{"version":3,"file":"static/js/main.cea0973a.js","mappings":"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","sources":["../node_modules/@fortawesome/fontawesome-free/js/fontawesome.js","../node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","../node_modules/aws-sdk/clients/acm.js","../node_modules/aws-sdk/clients/amp.js","../node_modules/aws-sdk/clients/apigateway.js","../node_modules/aws-sdk/clients/applicationautoscaling.js","../node_modules/aws-sdk/clients/athena.js","../node_modules/aws-sdk/clients/autoscaling.js","../node_modules/aws-sdk/clients/browser_default.js","../node_modules/aws-sdk/clients/cloudformation.js","../node_modules/aws-sdk/clients/cloudfront.js","../node_modules/aws-sdk/clients/cloudhsm.js","../node_modules/aws-sdk/clients/cloudhsmv2.js","../node_modules/aws-sdk/clients/cloudtrail.js","../node_modules/aws-sdk/clients/cloudwatch.js","../node_modules/aws-sdk/clients/cloudwatchevents.js","../node_modules/aws-sdk/clients/cloudwatchlogs.js","../node_modules/aws-sdk/clients/codebuild.js","../node_modules/aws-sdk/clients/codecommit.js","../node_modules/aws-sdk/clients/codedeploy.js","../node_modules/aws-sdk/clients/codepipeline.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","../node_modules/aws-sdk/clients/cognitosync.js","../node_modules/aws-sdk/clients/comprehend.js","../node_modules/aws-sdk/clients/comprehendmedical.js","../node_modules/aws-sdk/clients/configservice.js","../node_modules/aws-sdk/clients/connect.js","../node_modules/aws-sdk/clients/costexplorer.js","../node_modules/aws-sdk/clients/cur.js","../node_modules/aws-sdk/clients/devicefarm.js","../node_modules/aws-sdk/clients/directconnect.js","../node_modules/aws-sdk/clients/dynamodb.js","../node_modules/aws-sdk/clients/dynamodbstreams.js","../node_modules/aws-sdk/clients/ec2.js","../node_modules/aws-sdk/clients/ecr.js","../node_modules/aws-sdk/clients/ecs.js","../node_modules/aws-sdk/clients/efs.js","../node_modules/aws-sdk/clients/elasticache.js","../node_modules/aws-sdk/clients/elasticbeanstalk.js","../node_modules/aws-sdk/clients/elastictranscoder.js","../node_modules/aws-sdk/clients/elb.js","../node_modules/aws-sdk/clients/elbv2.js","../node_modules/aws-sdk/clients/emr.js","../node_modules/aws-sdk/clients/firehose.js","../node_modules/aws-sdk/clients/forecastqueryservice.js","../node_modules/aws-sdk/clients/forecastservice.js","../node_modules/aws-sdk/clients/gamelift.js","../node_modules/aws-sdk/clients/iam.js","../node_modules/aws-sdk/clients/inspector.js","../node_modules/aws-sdk/clients/iot.js","../node_modules/aws-sdk/clients/iotanalytics.js","../node_modules/aws-sdk/clients/iotdata.js","../node_modules/aws-sdk/clients/kinesis.js","../node_modules/aws-sdk/clients/kinesisvideo.js","../node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","../node_modules/aws-sdk/clients/kinesisvideomedia.js","../node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","../node_modules/aws-sdk/clients/kms.js","../node_modules/aws-sdk/clients/lambda.js","../node_modules/aws-sdk/clients/lexmodelbuildingservice.js","../node_modules/aws-sdk/clients/lexruntime.js","../node_modules/aws-sdk/clients/lexruntimev2.js","../node_modules/aws-sdk/clients/location.js","../node_modules/aws-sdk/clients/machinelearning.js","../node_modules/aws-sdk/clients/marketplacecatalog.js","../node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","../node_modules/aws-sdk/clients/mediastoredata.js","../node_modules/aws-sdk/clients/mobileanalytics.js","../node_modules/aws-sdk/clients/mturk.js","../node_modules/aws-sdk/clients/opsworks.js","../node_modules/aws-sdk/clients/personalize.js","../node_modules/aws-sdk/clients/personalizeevents.js","../node_modules/aws-sdk/clients/personalizeruntime.js","../node_modules/aws-sdk/clients/polly.js","../node_modules/aws-sdk/clients/pricing.js","../node_modules/aws-sdk/clients/rds.js","../node_modules/aws-sdk/clients/redshift.js","../node_modules/aws-sdk/clients/rekognition.js","../node_modules/aws-sdk/clients/resourcegroups.js","../node_modules/aws-sdk/clients/route53.js","../node_modules/aws-sdk/clients/route53domains.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/secretsmanager.js","../node_modules/aws-sdk/clients/servicecatalog.js","../node_modules/aws-sdk/clients/ses.js","../node_modules/aws-sdk/clients/sns.js","../node_modules/aws-sdk/clients/sqs.js","../node_modules/aws-sdk/clients/ssm.js","../node_modules/aws-sdk/clients/storagegateway.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/clients/translate.js","../node_modules/aws-sdk/clients/waf.js","../node_modules/aws-sdk/clients/workdocs.js","../node_modules/aws-sdk/clients/xray.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browser.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/cloudfront/signer.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/dynamodb/converter.js","../node_modules/aws-sdk/lib/dynamodb/document_client.js","../node_modules/aws-sdk/lib/dynamodb/numberValue.js","../node_modules/aws-sdk/lib/dynamodb/set.js","../node_modules/aws-sdk/lib/dynamodb/translator.js","../node_modules/aws-sdk/lib/dynamodb/types.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/polly/presigner.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/rds/signer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/apigateway.js","../node_modules/aws-sdk/lib/services/cloudfront.js","../node_modules/aws-sdk/lib/services/dynamodb.js","../node_modules/aws-sdk/lib/services/ec2.js","../node_modules/aws-sdk/lib/services/iotdata.js","../node_modules/aws-sdk/lib/services/lambda.js","../node_modules/aws-sdk/lib/services/machinelearning.js","../node_modules/aws-sdk/lib/services/polly.js","../node_modules/aws-sdk/lib/services/rds.js","../node_modules/aws-sdk/lib/services/rdsutil.js","../node_modules/aws-sdk/lib/services/route53.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sqs.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/events/events.js","../node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","../node_modules/aws-sdk/node_modules/uuid/dist/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/v1.js","../node_modules/aws-sdk/node_modules/uuid/dist/v3.js","../node_modules/aws-sdk/node_modules/uuid/dist/v35.js","../node_modules/aws-sdk/node_modules/uuid/dist/v4.js","../node_modules/aws-sdk/node_modules/uuid/dist/v5.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/buffer/node_modules/isarray/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/define-data-property/index.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hasown/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/invariant/browser.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/jmespath/jmespath.js","../node_modules/possible-typed-array-names/index.js","../node_modules/prop-types-extra/lib/all.js","../node_modules/prop-types-extra/lib/utils/createChainableTypeChecker.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/set-function-length/index.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-with-selector.production.min.js","../node_modules/use-sync-external-store/with-selector.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/warning/warning.js","../node_modules/which-typed-array/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/classnames/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Row.js","../node_modules/react-bootstrap/esm/Col.js","../node_modules/react-bootstrap/esm/Feedback.js","../node_modules/react-bootstrap/esm/FormContext.js","../node_modules/react-bootstrap/esm/FormCheckInput.js","../node_modules/react-bootstrap/esm/FormCheckLabel.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/react-bootstrap/esm/FormCheck.js","../node_modules/react-bootstrap/esm/FormControl.js","../node_modules/react-bootstrap/esm/FormFloating.js","../node_modules/react-bootstrap/esm/FormGroup.js","../node_modules/react-bootstrap/esm/FormLabel.js","../node_modules/react-bootstrap/esm/FormRange.js","../node_modules/react-bootstrap/esm/FormSelect.js","../node_modules/react-bootstrap/esm/FormText.js","../node_modules/react-bootstrap/esm/Switch.js","../node_modules/react-bootstrap/esm/FloatingLabel.js","../node_modules/react-bootstrap/esm/Form.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/Spinner.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/jwt-decode/build/esm/index.js","services/prospectNav/apiClientInitializer.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/NavbarBrand.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/react-bootstrap/esm/createChainedFunction.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Collapse.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/NavbarCollapse.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/react-bootstrap/esm/NavbarToggle.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useMediaQuery.js","../node_modules/@restart/hooks/esm/useBreakpoint.js","../node_modules/dom-helpers/esm/activeElement.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/ModalManager.js","../node_modules/@restart/ui/esm/getScrollbarWidth.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/useWaitForDOMRef.js","../node_modules/@restart/ui/esm/NoopTransition.js","../node_modules/@restart/ui/esm/useRTGTransitionProps.js","../node_modules/@restart/ui/esm/RTGTransition.js","../node_modules/@restart/ui/esm/ImperativeTransition.js","../node_modules/@restart/ui/esm/Modal.js","../node_modules/@restart/ui/esm/utils.js","../node_modules/react-bootstrap/esm/Fade.js","../node_modules/react-bootstrap/esm/OffcanvasBody.js","../node_modules/react-bootstrap/esm/OffcanvasToggling.js","../node_modules/react-bootstrap/esm/ModalContext.js","../node_modules/react-bootstrap/esm/CloseButton.js","../node_modules/react-bootstrap/esm/AbstractModalHeader.js","../node_modules/react-bootstrap/esm/OffcanvasHeader.js","../node_modules/react-bootstrap/esm/divWithClassName.js","../node_modules/react-bootstrap/esm/OffcanvasTitle.js","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-bootstrap/esm/BootstrapModalManager.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-bootstrap/esm/Offcanvas.js","../node_modules/react-bootstrap/esm/NavbarOffcanvas.js","../node_modules/react-bootstrap/esm/NavbarText.js","../node_modules/react-bootstrap/esm/Navbar.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","../node_modules/@restart/ui/esm/TabContext.js","../node_modules/@restart/ui/esm/NavItem.js","../node_modules/@restart/ui/esm/Nav.js","../node_modules/react-bootstrap/esm/CardHeaderContext.js","../node_modules/react-bootstrap/esm/NavItem.js","../node_modules/react-bootstrap/esm/NavLink.js","../node_modules/react-bootstrap/esm/Nav.js","hooks/useFirstName.js","../node_modules/@fortawesome/fontawesome-svg-core/index.mjs","../node_modules/@fortawesome/react-fontawesome/index.es.js","../node_modules/@fortawesome/free-solid-svg-icons/index.mjs","modules/header/signInLink.js","modules/header/header.js","../node_modules/react-redux/src/utils/react.ts","../node_modules/react-redux/src/components/Context.ts","../node_modules/react-redux/src/utils/useSyncExternalStore.ts","../node_modules/react-redux/src/hooks/useReduxContext.ts","../node_modules/react-redux/src/hooks/useSelector.ts","../node_modules/react-redux/src/utils/react-is.ts","../node_modules/react-redux/src/utils/batch.ts","../node_modules/react-redux/src/utils/Subscription.ts","../node_modules/react-redux/src/utils/useIsomorphicLayoutEffect.ts","../node_modules/react-redux/src/utils/hoistStatics.ts","../node_modules/react-redux/src/components/Provider.tsx","../node_modules/react-redux/src/hooks/useStore.ts","../node_modules/react-redux/src/hooks/useDispatch.ts","../node_modules/redux/src/utils/formatProdErrorMessage.ts","../node_modules/react-redux/src/index.ts","../node_modules/react-redux/src/components/connect.tsx","../node_modules/redux/src/utils/symbol-observable.ts","../node_modules/redux/src/utils/actionTypes.ts","../node_modules/redux/src/utils/isPlainObject.ts","../node_modules/redux/src/createStore.ts","../node_modules/redux/src/combineReducers.ts","../node_modules/redux/src/compose.ts","../node_modules/redux-thunk/dist/redux-thunk.mjs","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/env.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/errors.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/common.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/utils/plugins.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/scope.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/finalize.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/proxy.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/immerClass.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/core/current.ts","../node_modules/@reduxjs/toolkit/node_modules/immer/src/immer.ts","../node_modules/@reduxjs/toolkit/src/createDraftSafeSelector.ts","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/redux/src/utils/isAction.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/getDefaultEnhancers.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/redux/src/applyMiddleware.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/exceptions.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/combineSlices.ts","../node_modules/@reduxjs/toolkit/src/formatProdErrorMessage.ts","reducers/alertReducer.js","modules/signin/signIn.js","modules/signup/signUp.js","modules/home/basic/basicHomeContent.js","modules/home/basic/basicHome.js","../node_modules/dom-helpers/esm/scrollbarSize.js","../node_modules/react-bootstrap/esm/ModalBody.js","../node_modules/react-bootstrap/esm/ModalDialog.js","../node_modules/react-bootstrap/esm/ModalFooter.js","../node_modules/react-bootstrap/esm/ModalHeader.js","../node_modules/react-bootstrap/esm/ModalTitle.js","../node_modules/react-bootstrap/esm/Modal.js","modules/home/generate/targetAccountListComponent.js","../node_modules/@restart/ui/esm/TabPanel.js","../node_modules/@restart/ui/esm/Tabs.js","../node_modules/react-bootstrap/esm/TabContent.js","../node_modules/react-bootstrap/esm/getTabTransitionComponent.js","../node_modules/react-bootstrap/esm/TabPane.js","../node_modules/react-bootstrap/esm/Tabs.js","../node_modules/react-bootstrap/esm/TabContainer.js","../node_modules/react-bootstrap/esm/Tab.js","modules/home/generate/emails.js","modules/home/generate/generationResultContent.js","modules/home/generate/generationContent.js","modules/home/generate/generateModalContent.js","modules/home/generate/generationResult.js","modules/home/generate/utils/generateRequest.js","modules/home/home.js","modules/checkout/CheckoutForm.js","../node_modules/@stripe/stripe-js/dist/index.mjs","modules/checkout/CheckoutFromWrapper.js","../node_modules/react-bootstrap/esm/createUtilityClasses.js","../node_modules/react-bootstrap/esm/Stack.js","modules/settings/personalInfo.js","hooks/useAccessToken.js","hooks/useUserId.js","modules/settings/companyInfo.js","../node_modules/react-bootstrap/esm/CardBody.js","../node_modules/react-bootstrap/esm/CardFooter.js","../node_modules/react-bootstrap/esm/CardHeader.js","../node_modules/react-bootstrap/esm/CardImg.js","../node_modules/react-bootstrap/esm/CardImgOverlay.js","../node_modules/react-bootstrap/esm/CardLink.js","../node_modules/react-bootstrap/esm/CardSubtitle.js","../node_modules/react-bootstrap/esm/CardText.js","../node_modules/react-bootstrap/esm/CardTitle.js","../node_modules/react-bootstrap/esm/Card.js","modules/settings/subscriptionCards.js","../node_modules/react-bootstrap/esm/AlertHeading.js","../node_modules/react-bootstrap/esm/AlertLink.js","../node_modules/react-bootstrap/esm/Alert.js","modules/settings/subscriptionInfo.js","modules/settings/subscription.js","modules/settings/Settings.js","modules/settings/createSubscriptionLoading.js","components/alartBanner.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["/*!\n * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2024 Fonticons, Inc.\n */\n(function () {\n 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n }\n\n function _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var noop = function noop() {};\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n var _MUTATION_OBSERVER = null;\n var _PERFORMANCE = {\n mark: noop,\n measure: noop\n };\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n var PERFORMANCE = _PERFORMANCE;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var _familyProxy, _familyProxy2, _familyProxy3, _familyProxy4, _familyProxy5;\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var UNITS_IN_GRID = 16;\n var DEFAULT_CSS_PREFIX = 'fa';\n var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n var DATA_FA_I2SVG = 'data-fa-i2svg';\n var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n var DATA_PREFIX = 'data-prefix';\n var DATA_ICON = 'data-icon';\n var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n var MUTATION_APPROACH_ASYNC = 'async';\n var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n var FAMILY_CLASSIC = 'classic';\n var FAMILY_SHARP = 'sharp';\n var FAMILIES = [FAMILY_CLASSIC, FAMILY_SHARP];\n\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[FAMILY_CLASSIC];\n }\n });\n }\n var PREFIX_TO_STYLE = familyProxy((_familyProxy = {}, _defineProperty(_familyProxy, FAMILY_CLASSIC, {\n 'fa': 'solid',\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fakd': 'kit',\n 'fa-kit': 'kit',\n 'fa-kit-duotone': 'kit'\n }), _defineProperty(_familyProxy, FAMILY_SHARP, {\n 'fa': 'solid',\n 'fass': 'solid',\n 'fa-solid': 'solid',\n 'fasr': 'regular',\n 'fa-regular': 'regular',\n 'fasl': 'light',\n 'fa-light': 'light',\n 'fast': 'thin',\n 'fa-thin': 'thin'\n }), _familyProxy));\n var STYLE_TO_PREFIX = familyProxy((_familyProxy2 = {}, _defineProperty(_familyProxy2, FAMILY_CLASSIC, {\n solid: 'fas',\n regular: 'far',\n light: 'fal',\n thin: 'fat',\n duotone: 'fad',\n brands: 'fab',\n kit: 'fak'\n }), _defineProperty(_familyProxy2, FAMILY_SHARP, {\n solid: 'fass',\n regular: 'fasr',\n light: 'fasl',\n thin: 'fast'\n }), _familyProxy2));\n var PREFIX_TO_LONG_STYLE = familyProxy((_familyProxy3 = {}, _defineProperty(_familyProxy3, FAMILY_CLASSIC, {\n fab: 'fa-brands',\n fad: 'fa-duotone',\n fak: 'fa-kit',\n fal: 'fa-light',\n far: 'fa-regular',\n fas: 'fa-solid',\n fat: 'fa-thin'\n }), _defineProperty(_familyProxy3, FAMILY_SHARP, {\n fass: 'fa-solid',\n fasr: 'fa-regular',\n fasl: 'fa-light',\n fast: 'fa-thin'\n }), _familyProxy3));\n var LONG_STYLE_TO_PREFIX = familyProxy((_familyProxy4 = {}, _defineProperty(_familyProxy4, FAMILY_CLASSIC, {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n }), _defineProperty(_familyProxy4, FAMILY_SHARP, {\n 'fa-solid': 'fass',\n 'fa-regular': 'fasr',\n 'fa-light': 'fasl',\n 'fa-thin': 'fast'\n }), _familyProxy4));\n var ICON_SELECTION_SYNTAX_PATTERN = /fa(s|r|l|t|d|b|k|ss|sr|sl|st)?[\\-\\ ]/; // eslint-disable-line no-useless-escape\n\n var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n var FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp|Kit)?.*/i;\n var FONT_WEIGHT_TO_PREFIX = familyProxy((_familyProxy5 = {}, _defineProperty(_familyProxy5, FAMILY_CLASSIC, {\n 900: 'fas',\n 400: 'far',\n normal: 'far',\n 300: 'fal',\n 100: 'fat'\n }), _defineProperty(_familyProxy5, FAMILY_SHARP, {\n 900: 'fass',\n 400: 'fasr',\n 300: 'fasl',\n 100: 'fast'\n }), _familyProxy5));\n var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n var DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n };\n var prefixes = new Set();\n Object.keys(STYLE_TO_PREFIX[FAMILY_CLASSIC]).map(prefixes.add.bind(prefixes));\n Object.keys(STYLE_TO_PREFIX[FAMILY_SHARP]).map(prefixes.add.bind(prefixes));\n var RESERVED_CLASSES = [].concat(FAMILIES, _toConsumableArray(prefixes), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n })).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n }));\n\n var initial = WINDOW.FontAwesomeConfig || {};\n\n function getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n }\n\n function coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n\n var _default = {\n styleDefault: 'solid',\n familyDefault: 'classic',\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n }; // familyPrefix is deprecated but we must still support it if present\n\n if (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n }\n\n var _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n var config = {};\n Object.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n }); // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n\n Object.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n });\n WINDOW.FontAwesomeConfig = config;\n var _onChangeCb = [];\n function onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n }\n\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n }\n function toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var baseStyles = \":host,:root{--fa-font-solid:normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";--fa-font-regular:normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";--fa-font-light:normal 300 1em/1 \\\"Font Awesome 6 Light\\\";--fa-font-thin:normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";--fa-font-duotone:normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";--fa-font-sharp-solid:normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";--fa-font-sharp-regular:normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";--fa-font-sharp-light:normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";--fa-font-sharp-thin:normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";--fa-font-brands:normal 400 1em/1 \\\"Font Awesome 6 Brands\\\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:var(--fa-counter-background-color,#ff253a);border-radius:var(--fa-counter-border-radius,1em);box-sizing:border-box;color:var(--fa-inverse,#fff);line-height:var(--fa-counter-line-height,1);max-width:var(--fa-counter-max-width,5em);min-width:var(--fa-counter-min-width,1.5em);overflow:hidden;padding:var(--fa-counter-padding,.25em .5em);right:var(--fa-right,0);text-overflow:ellipsis;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-counter-scale,.25));transform:scale(var(--fa-counter-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:var(--fa-bottom,0);right:var(--fa-right,0);top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:var(--fa-bottom,0);left:var(--fa-left,0);right:auto;top:auto;-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{top:var(--fa-top,0);right:var(--fa-right,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:var(--fa-left,0);right:auto;top:var(--fa-top,0);-webkit-transform:scale(var(--fa-layers-scale,.25));transform:scale(var(--fa-layers-scale,.25));-webkit-transform-origin:top left;transform-origin:top left}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-2xs{font-size:.625em;line-height:.1em;vertical-align:.225em}.fa-xs{font-size:.75em;line-height:.0833333337em;vertical-align:.125em}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}.fa-lg{font-size:1.25em;line-height:.05em;vertical-align:-.075em}.fa-xl{font-size:1.5em;line-height:.0416666682em;vertical-align:-.125em}.fa-2xl{font-size:2em;line-height:.03125em;vertical-align:-.1875em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:var(--fa-li-margin,2.5em);padding-left:0}.fa-ul>li{position:relative}.fa-li{left:calc(var(--fa-li-width,2em) * -1);position:absolute;text-align:center;width:var(--fa-li-width,2em);line-height:inherit}.fa-border{border-color:var(--fa-border-color,#eee);border-radius:var(--fa-border-radius,.1em);border-style:var(--fa-border-style,solid);border-width:var(--fa-border-width,.08em);padding:var(--fa-border-padding,.2em .25em .15em)}.fa-pull-left{float:left;margin-right:var(--fa-pull-margin,.3em)}.fa-pull-right{float:right;margin-left:var(--fa-pull-margin,.3em)}.fa-beat{-webkit-animation-name:fa-beat;animation-name:fa-beat;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-bounce{-webkit-animation-name:fa-bounce;animation-name:fa-bounce;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.28,.84,.42,1))}.fa-fade{-webkit-animation-name:fa-fade;animation-name:fa-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-beat-fade{-webkit-animation-name:fa-beat-fade;animation-name:fa-beat-fade;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1));animation-timing-function:var(--fa-animation-timing,cubic-bezier(.4,0,.6,1))}.fa-flip{-webkit-animation-name:fa-flip;animation-name:fa-flip;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,ease-in-out);animation-timing-function:var(--fa-animation-timing,ease-in-out)}.fa-shake{-webkit-animation-name:fa-shake;animation-name:fa-shake;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-delay:var(--fa-animation-delay,0s);animation-delay:var(--fa-animation-delay,0s);-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,2s);animation-duration:var(--fa-animation-duration,2s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,linear);animation-timing-function:var(--fa-animation-timing,linear)}.fa-spin-reverse{--fa-animation-direction:reverse}.fa-pulse,.fa-spin-pulse{-webkit-animation-name:fa-spin;animation-name:fa-spin;-webkit-animation-direction:var(--fa-animation-direction,normal);animation-direction:var(--fa-animation-direction,normal);-webkit-animation-duration:var(--fa-animation-duration,1s);animation-duration:var(--fa-animation-duration,1s);-webkit-animation-iteration-count:var(--fa-animation-iteration-count,infinite);animation-iteration-count:var(--fa-animation-iteration-count,infinite);-webkit-animation-timing-function:var(--fa-animation-timing,steps(8));animation-timing-function:var(--fa-animation-timing,steps(8))}@media (prefers-reduced-motion:reduce){.fa-beat,.fa-beat-fade,.fa-bounce,.fa-fade,.fa-flip,.fa-pulse,.fa-shake,.fa-spin,.fa-spin-pulse{-webkit-animation-delay:-1ms;animation-delay:-1ms;-webkit-animation-duration:1ms;animation-duration:1ms;-webkit-animation-iteration-count:1;animation-iteration-count:1;-webkit-transition-delay:0s;transition-delay:0s;-webkit-transition-duration:0s;transition-duration:0s}}@-webkit-keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-beat{0%,90%{-webkit-transform:scale(1);transform:scale(1)}45%{-webkit-transform:scale(var(--fa-beat-scale,1.25));transform:scale(var(--fa-beat-scale,1.25))}}@-webkit-keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@keyframes fa-bounce{0%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}10%{-webkit-transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0);transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,.9)) translateY(0)}30%{-webkit-transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em));transform:scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em))}50%{-webkit-transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0);transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,.95)) translateY(0)}57%{-webkit-transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em));transform:scale(1,1) translateY(var(--fa-bounce-rebound,-.125em))}64%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}100%{-webkit-transform:scale(1,1) translateY(0);transform:scale(1,1) translateY(0)}}@-webkit-keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,.4)}}@-webkit-keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,.4);-webkit-transform:scale(1);transform:scale(1)}50%{opacity:1;-webkit-transform:scale(var(--fa-beat-fade-scale,1.125));transform:scale(var(--fa-beat-fade-scale,1.125))}}@-webkit-keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-flip{50%{-webkit-transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg));transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@-webkit-keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@keyframes fa-shake{0%{-webkit-transform:rotate(-15deg);transform:rotate(-15deg)}4%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}24%,8%{-webkit-transform:rotate(-18deg);transform:rotate(-18deg)}12%,28%{-webkit-transform:rotate(18deg);transform:rotate(18deg)}16%{-webkit-transform:rotate(-22deg);transform:rotate(-22deg)}20%{-webkit-transform:rotate(22deg);transform:rotate(22deg)}32%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}36%{-webkit-transform:rotate(12deg);transform:rotate(12deg)}100%,40%{-webkit-transform:rotate(0);transform:rotate(0)}}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}.fa-rotate-by{-webkit-transform:rotate(var(--fa-rotate-angle,0));transform:rotate(var(--fa-rotate-angle,0))}.fa-stack{display:inline-block;vertical-align:middle;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;z-index:var(--fa-stack-z-index,auto)}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:var(--fa-inverse,#fff)}.fa-sr-only,.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.fa-sr-only-focusable:not(:focus),.sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fa-duotone.fa-inverse,.fad.fa-inverse{color:var(--fa-inverse,#fff)}\";\n\n function css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n }\n\n var _cssInserted = false;\n\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n\n var InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n };\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n };\n\n /**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n function ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n\n function toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n }\n function codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n }\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n }\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n }), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n })];\n\n var _LONG_STYLE, _PREFIXES, _PREFIXES_FOR_FAMILY;\n var styles = namespace.styles,\n shims = namespace.shims;\n var LONG_STYLE = (_LONG_STYLE = {}, _defineProperty(_LONG_STYLE, FAMILY_CLASSIC, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_LONG_STYLE, FAMILY_SHARP, Object.values(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _LONG_STYLE);\n var _defaultUsablePrefix = null;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var _byOldUnicode = {};\n var _byAlias = {};\n var PREFIXES = (_PREFIXES = {}, _defineProperty(_PREFIXES, FAMILY_CLASSIC, Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES, FAMILY_SHARP, Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP])), _PREFIXES);\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n };\n onChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault, {\n family: config.familyDefault\n });\n });\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n function byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n }\n function getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n }\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? FAMILY_CLASSIC : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n }\n var PREFIXES_FOR_FAMILY = (_PREFIXES_FOR_FAMILY = {}, _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_CLASSIC, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC])), _defineProperty(_PREFIXES_FOR_FAMILY, FAMILY_SHARP, Object.keys(PREFIX_TO_LONG_STYLE[FAMILY_SHARP])), _PREFIXES_FOR_FAMILY);\n function getCanonicalIcon(values) {\n var _famProps;\n\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var famProps = (_famProps = {}, _defineProperty(_famProps, FAMILY_CLASSIC, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_CLASSIC)), _defineProperty(_famProps, FAMILY_SHARP, \"\".concat(config.cssPrefix, \"-\").concat(FAMILY_SHARP)), _famProps);\n var givenPrefix = null;\n var family = FAMILY_CLASSIC;\n\n if (values.includes(famProps[FAMILY_CLASSIC]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_CLASSIC].includes(v);\n })) {\n family = FAMILY_CLASSIC;\n }\n\n if (values.includes(famProps[FAMILY_SHARP]) || values.some(function (v) {\n return PREFIXES_FOR_FAMILY[FAMILY_SHARP].includes(v);\n })) {\n family = FAMILY_SHARP;\n }\n\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.cssPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE[family].includes(cls) ? LONG_STYLE_TO_PREFIX[family][cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES[family].indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls, {\n family: family\n });\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass && cls !== famProps[FAMILY_CLASSIC] && cls !== famProps[FAMILY_SHARP]) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n\n if (values.includes('fa-duotone') || values.includes('fad')) {\n canonical.prefix = 'fad';\n }\n\n if (!canonical.prefix && family === FAMILY_SHARP && (styles['fass'] || config.autoFetchSvg)) {\n canonical.prefix = 'fass';\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n }\n\n var Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]); // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n\n var longPrefix = PREFIX_TO_LONG_STYLE[FAMILY_CLASSIC][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n }();\n\n var _plugins = [];\n var _hooks = {};\n var providers = {};\n var defaultProviderKeys = Object.keys(providers);\n function registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n }\n function chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n }\n function callHooks(hook) {\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\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n }\n function callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n }\n\n function findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n };\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n };\n var parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n };\n\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n\n function bootstrap(plugins) {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n callHooks('bootstrap');\n });\n }\n\n namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n build();\n autoReplace();\n },\n addPacks: function addPacks(packs) {\n packs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n prefix = _ref2[0],\n icons = _ref2[1];\n\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n });\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n function domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n var styles$1 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n var missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n };\n\n function maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n }\n\n function findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n }\n\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"6.5.2\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n\n var perf = {\n begin: begin,\n end: end\n };\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n }\n\n function hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n }\n\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n\n function createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n\n function createElement(tag) {\n return DOCUMENT.createElement(tag);\n }\n\n function convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n }\n\n function nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n }\n\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (_abstract) {\n node.parentNode.insertBefore(convertSVG(_abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var _abstract2 = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete _abstract2[0].attributes.id;\n\n if (_abstract2[0].attributes.class) {\n var splitClasses = _abstract2[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n\n _abstract2[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = _abstract2.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n\n return val;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n }\n\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n }\n\n var styles$2 = namespace.styles;\n\n function generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n }\n\n var knownPrefixes = new Set();\n FAMILIES.map(function (family) {\n knownPrefixes.add(\"fa-\".concat(family));\n });\n Object.keys(PREFIX_TO_STYLE[FAMILY_CLASSIC]).map(knownPrefixes.add.bind(knownPrefixes));\n Object.keys(PREFIX_TO_STYLE[FAMILY_SHARP]).map(knownPrefixes.add.bind(knownPrefixes));\n knownPrefixes = _toConsumableArray(knownPrefixes);\n\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? knownPrefixes : FAMILIES.map(function (f) {\n return \"fa-\".concat(f);\n }).concat(Object.keys(styles$2));\n\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n }\n\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n }\n\n var render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n };\n var ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n };\n\n var LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n };\n\n var LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n };\n\n var CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\n var SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n function hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n }\n\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var family = ~['Sharp'].indexOf(fontFamily[2]) ? FAMILY_SHARP : FAMILY_CLASSIC;\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[family][fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[family][fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var _abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = _abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n function replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n }\n\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n\n function searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n\n var PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n };\n\n var _unwatched = false;\n var MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n };\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n };\n var PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n };\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function fillBlack(_abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (_abstract.attributes && (_abstract.attributes.fill || force)) {\n _abstract.attributes.fill = 'black';\n }\n\n return _abstract;\n }\n\n function deGroup(_abstract2) {\n if (_abstract2.tag === 'g') {\n return _abstract2.children;\n } else {\n return [_abstract2];\n }\n }\n\n var Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n };\n\n var SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n };\n\n var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\n registerPlugins(plugins, {\n mixoutsTo: api\n });\n bunker(bootstrap);\n\n}());\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ReactStripe = {}, global.React));\n})(this, (function (exports, React) { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function getDefaultExportFromCjs (x) {\n \treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n }\n\n var propTypes = {exports: {}};\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 var ReactPropTypesSecret_1;\n var hasRequiredReactPropTypesSecret;\n\n function requireReactPropTypesSecret() {\n if (hasRequiredReactPropTypesSecret) return ReactPropTypesSecret_1;\n hasRequiredReactPropTypesSecret = 1;\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n ReactPropTypesSecret_1 = ReactPropTypesSecret;\n return ReactPropTypesSecret_1;\n }\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 var factoryWithThrowingShims;\n var hasRequiredFactoryWithThrowingShims;\n\n function requireFactoryWithThrowingShims() {\n if (hasRequiredFactoryWithThrowingShims) return factoryWithThrowingShims;\n hasRequiredFactoryWithThrowingShims = 1;\n\n var ReactPropTypesSecret = requireReactPropTypesSecret();\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n factoryWithThrowingShims = 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\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n return factoryWithThrowingShims;\n }\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\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n propTypes.exports = requireFactoryWithThrowingShims()();\n }\n\n var propTypesExports = propTypes.exports;\n var PropTypes = /*@__PURE__*/getDefaultExportFromCjs(propTypesExports);\n\n var useAttachEvent = function useAttachEvent(element, event, cb) {\n var cbDefined = !!cb;\n var cbRef = React.useRef(cb); // In many integrations the callback prop changes on each render.\n // Using a ref saves us from calling element.on/.off every render.\n\n React.useEffect(function () {\n cbRef.current = cb;\n }, [cb]);\n React.useEffect(function () {\n if (!cbDefined || !element) {\n return function () {};\n }\n\n var decoratedCb = function decoratedCb() {\n if (cbRef.current) {\n cbRef.current.apply(cbRef, arguments);\n }\n };\n\n element.on(event, decoratedCb);\n return function () {\n element.off(event, decoratedCb);\n };\n }, [cbDefined, event, element, cbRef]);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n // fallback to reference check.\n\n if (!leftPlainObject && !leftArray) return left === right;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n if (!isUnknownObject(options)) {\n return null;\n }\n\n return Object.keys(options).reduce(function (newOptions, key) {\n var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n if (immutableKeys.includes(key)) {\n if (isUpdated) {\n console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n }\n\n return newOptions;\n }\n\n if (!isUpdated) {\n return newOptions;\n }\n\n return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n }, null);\n };\n\n var INVALID_STRIPE_ERROR$2 = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(errorMsg);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n var errorMsg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : INVALID_STRIPE_ERROR$2;\n\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(function (result) {\n return validateStripe(result, errorMsg);\n })\n };\n }\n\n var stripe = validateStripe(raw, errorMsg);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var registerWithStripeJs = function registerWithStripeJs(stripe) {\n if (!stripe || !stripe._registerWrapper || !stripe.registerAppInfo) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"2.7.0\"\n });\n\n stripe.registerAppInfo({\n name: 'react-stripe-js',\n version: \"2.7.0\",\n url: 'https://stripe.com/docs/stripe-js/react'\n });\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n var _React$useState = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n var isMounted = true;\n\n var safeSetContext = function safeSetContext(stripe) {\n setContext(function (ctx) {\n // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n if (ctx.stripe) return ctx;\n return {\n stripe: stripe,\n elements: stripe.elements(options)\n };\n });\n }; // For an async stripePromise, store it in context once resolved\n\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n safeSetContext(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !ctx.stripe) {\n // Or, handle a sync stripe instance going from null -> populated\n safeSetContext(parsed.stripe);\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!ctx.elements) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n if (updates) {\n ctx.elements.update(updates);\n }\n }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts '); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: PropTypes.func.isRequired\n };\n\n var _excluded = [\"on\", \"session\"];\n var CustomCheckoutSdkContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutSdkContext.displayName = 'CustomCheckoutSdkContext';\n var parseCustomCheckoutSdkContext = function parseCustomCheckoutSdkContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find CustomCheckoutProvider context; You need to wrap the part of your app that \".concat(useCase, \" in an provider.\"));\n }\n\n return ctx;\n };\n var CustomCheckoutContext = /*#__PURE__*/React.createContext(null);\n CustomCheckoutContext.displayName = 'CustomCheckoutContext';\n var extractCustomCheckoutContextValue = function extractCustomCheckoutContextValue(customCheckoutSdk, sessionState) {\n if (!customCheckoutSdk) {\n return null;\n }\n\n customCheckoutSdk.on;\n customCheckoutSdk.session;\n var actions = _objectWithoutProperties(customCheckoutSdk, _excluded);\n\n if (!sessionState) {\n return _objectSpread2(_objectSpread2({}, actions), customCheckoutSdk.session());\n }\n\n return _objectSpread2(_objectSpread2({}, actions), sessionState);\n };\n var INVALID_STRIPE_ERROR$1 = 'Invalid prop `stripe` supplied to `CustomCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var CustomCheckoutProvider = function CustomCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR$1);\n }, [rawStripeProp]); // State used to trigger a re-render when sdk.session is updated\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n session = _React$useState2[0],\n setSession = _React$useState2[1];\n\n var _React$useState3 = React.useState(function () {\n return {\n stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n customCheckoutSdk: null\n };\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n ctx = _React$useState4[0],\n setContext = _React$useState4[1];\n\n var safeSetContext = function safeSetContext(stripe, customCheckoutSdk) {\n setContext(function (ctx) {\n if (ctx.stripe && ctx.customCheckoutSdk) {\n return ctx;\n }\n\n return {\n stripe: stripe,\n customCheckoutSdk: customCheckoutSdk\n };\n });\n }; // Ref used to avoid calling initCustomCheckout multiple times when options changes\n\n\n var initCustomCheckoutCalledRef = React.useRef(false);\n React.useEffect(function () {\n var isMounted = true;\n\n if (parsed.tag === 'async' && !ctx.stripe) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted && !initCustomCheckoutCalledRef.current) {\n // Only update context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n initCustomCheckoutCalledRef.current = true;\n stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n });\n } else if (parsed.tag === 'sync' && parsed.stripe && !initCustomCheckoutCalledRef.current) {\n initCustomCheckoutCalledRef.current = true;\n parsed.stripe.initCustomCheckout(options).then(function (customCheckoutSdk) {\n if (customCheckoutSdk) {\n safeSetContext(parsed.stripe, customCheckoutSdk);\n customCheckoutSdk.on('change', setSession);\n }\n });\n }\n\n return function () {\n isMounted = false;\n };\n }, [parsed, ctx, options, setSession]); // Warn on changes to stripe prop\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on CustomCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n var _prevOptions$elements, _options$elementsOpti;\n\n if (!ctx.customCheckoutSdk) {\n return;\n }\n\n if (options.clientSecret && !isUnknownObject(prevOptions) && !isEqual(options.clientSecret, prevOptions.clientSecret)) {\n console.warn('Unsupported prop change: options.client_secret is not a mutable property.');\n }\n\n var previousAppearance = prevOptions === null || prevOptions === void 0 ? void 0 : (_prevOptions$elements = prevOptions.elementsOptions) === null || _prevOptions$elements === void 0 ? void 0 : _prevOptions$elements.appearance;\n var currentAppearance = options === null || options === void 0 ? void 0 : (_options$elementsOpti = options.elementsOptions) === null || _options$elementsOpti === void 0 ? void 0 : _options$elementsOpti.appearance;\n\n if (currentAppearance && !isEqual(currentAppearance, previousAppearance)) {\n ctx.customCheckoutSdk.changeAppearance(currentAppearance);\n }\n }, [options, prevOptions, ctx.customCheckoutSdk]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(ctx.stripe);\n }, [ctx.stripe]);\n var customCheckoutContextValue = React.useMemo(function () {\n return extractCustomCheckoutContextValue(ctx.customCheckoutSdk, session);\n }, [ctx.customCheckoutSdk, session]);\n\n if (!ctx.customCheckoutSdk) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(CustomCheckoutSdkContext.Provider, {\n value: ctx\n }, /*#__PURE__*/React.createElement(CustomCheckoutContext.Provider, {\n value: customCheckoutContextValue\n }, children));\n };\n CustomCheckoutProvider.propTypes = {\n stripe: PropTypes.any,\n options: PropTypes.shape({\n clientSecret: PropTypes.string.isRequired,\n elementsOptions: PropTypes.object\n }).isRequired\n };\n var useCustomCheckoutSdkContextWithUseCase = function useCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var ctx = React.useContext(CustomCheckoutSdkContext);\n return parseCustomCheckoutSdkContext(ctx, useCaseString);\n };\n var useElementsOrCustomCheckoutSdkContextWithUseCase = function useElementsOrCustomCheckoutSdkContextWithUseCase(useCaseString) {\n var customCheckoutSdkContext = React.useContext(CustomCheckoutSdkContext);\n var elementsContext = React.useContext(ElementsContext);\n\n if (customCheckoutSdkContext && elementsContext) {\n throw new Error(\"You cannot wrap the part of your app that \".concat(useCaseString, \" in both and providers.\"));\n }\n\n if (customCheckoutSdkContext) {\n return parseCustomCheckoutSdkContext(customCheckoutSdkContext, useCaseString);\n }\n\n return parseElementsContext(elementsContext, useCaseString);\n };\n var useCustomCheckout = function useCustomCheckout() {\n // ensure it's in CustomCheckoutProvider\n useCustomCheckoutSdkContextWithUseCase('calls useCustomCheckout()');\n var ctx = React.useContext(CustomCheckoutContext);\n\n if (!ctx) {\n throw new Error('Could not find CustomCheckout Context; You need to wrap the part of your app that calls useCustomCheckout() in an provider.');\n }\n\n return ctx;\n };\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n onBlur = _ref.onBlur,\n onFocus = _ref.onFocus,\n onReady = _ref.onReady,\n onChange = _ref.onChange,\n onEscape = _ref.onEscape,\n onClick = _ref.onClick,\n onLoadError = _ref.onLoadError,\n onLoaderStart = _ref.onLoaderStart,\n onNetworksChange = _ref.onNetworksChange,\n onConfirm = _ref.onConfirm,\n onCancel = _ref.onCancel,\n onShippingAddressChange = _ref.onShippingAddressChange,\n onShippingRateChange = _ref.onShippingRateChange;\n var ctx = useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var elements = 'elements' in ctx ? ctx.elements : null;\n var customCheckoutSdk = 'customCheckoutSdk' in ctx ? ctx.customCheckoutSdk : null;\n\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n element = _React$useState2[0],\n setElement = _React$useState2[1];\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null); // For every event where the merchant provides a callback, call element.on\n // with that callback. If the merchant ever changes the callback, removes\n // the old callback with element.off and then call element.on with the new one.\n\n useAttachEvent(element, 'blur', onBlur);\n useAttachEvent(element, 'focus', onFocus);\n useAttachEvent(element, 'escape', onEscape);\n useAttachEvent(element, 'click', onClick);\n useAttachEvent(element, 'loaderror', onLoadError);\n useAttachEvent(element, 'loaderstart', onLoaderStart);\n useAttachEvent(element, 'networkschange', onNetworksChange);\n useAttachEvent(element, 'confirm', onConfirm);\n useAttachEvent(element, 'cancel', onCancel);\n useAttachEvent(element, 'shippingaddresschange', onShippingAddressChange);\n useAttachEvent(element, 'shippingratechange', onShippingRateChange);\n useAttachEvent(element, 'change', onChange);\n var readyCallback;\n\n if (onReady) {\n if (type === 'expressCheckout') {\n // Passes through the event, which includes visible PM types\n readyCallback = onReady;\n } else {\n // For other Elements, pass through the Element itself.\n readyCallback = function readyCallback() {\n onReady(element);\n };\n }\n }\n\n useAttachEvent(element, 'ready', readyCallback);\n React.useLayoutEffect(function () {\n if (elementRef.current === null && domNode.current !== null && (elements || customCheckoutSdk)) {\n var newElement = null;\n\n if (customCheckoutSdk) {\n newElement = customCheckoutSdk.createElement(type, options);\n } else if (elements) {\n newElement = elements.create(type, options);\n } // Store element in a ref to ensure it's _immediately_ available in cleanup hooks in StrictMode\n\n\n elementRef.current = newElement; // Store element in state to facilitate event listener attachment\n\n setElement(newElement);\n\n if (newElement) {\n newElement.mount(domNode.current);\n }\n }\n }, [elements, customCheckoutSdk, options]);\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (!elementRef.current) {\n return;\n }\n\n var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n if (updates) {\n elementRef.current.update(updates);\n }\n }, [options, prevOptions]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current && typeof elementRef.current.destroy === 'function') {\n try {\n elementRef.current.destroy();\n elementRef.current = null;\n } catch (error) {// Do nothing\n }\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n useElementsOrCustomCheckoutSdkContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n onChange: PropTypes.func,\n onBlur: PropTypes.func,\n onFocus: PropTypes.func,\n onReady: PropTypes.func,\n onEscape: PropTypes.func,\n onClick: PropTypes.func,\n onLoadError: PropTypes.func,\n onLoaderStart: PropTypes.func,\n onNetworksChange: PropTypes.func,\n onConfirm: PropTypes.func,\n onCancel: PropTypes.func,\n onShippingAddressChange: PropTypes.func,\n onShippingRateChange: PropTypes.func,\n options: PropTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n\n var EmbeddedCheckoutContext = /*#__PURE__*/React.createContext(null);\n EmbeddedCheckoutContext.displayName = 'EmbeddedCheckoutProviderContext';\n var useEmbeddedCheckoutContext = function useEmbeddedCheckoutContext() {\n var ctx = React.useContext(EmbeddedCheckoutContext);\n\n if (!ctx) {\n throw new Error(' must be used within ');\n }\n\n return ctx;\n };\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `EmbeddedCheckoutProvider`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.';\n var EmbeddedCheckoutProvider = function EmbeddedCheckoutProvider(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp, INVALID_STRIPE_ERROR);\n }, [rawStripeProp]);\n var embeddedCheckoutPromise = React.useRef(null);\n var loadedStripe = React.useRef(null);\n\n var _React$useState = React.useState({\n embeddedCheckout: null\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n React.useEffect(function () {\n // Don't support any ctx updates once embeddedCheckout or stripe is set.\n if (loadedStripe.current || embeddedCheckoutPromise.current) {\n return;\n }\n\n var setStripeAndInitEmbeddedCheckout = function setStripeAndInitEmbeddedCheckout(stripe) {\n if (loadedStripe.current || embeddedCheckoutPromise.current) return;\n loadedStripe.current = stripe;\n embeddedCheckoutPromise.current = loadedStripe.current.initEmbeddedCheckout(options).then(function (embeddedCheckout) {\n setContext({\n embeddedCheckout: embeddedCheckout\n });\n });\n }; // For an async stripePromise, store it once resolved\n\n\n if (parsed.tag === 'async' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n parsed.stripePromise.then(function (stripe) {\n if (stripe) {\n setStripeAndInitEmbeddedCheckout(stripe);\n }\n });\n } else if (parsed.tag === 'sync' && !loadedStripe.current && (options.clientSecret || options.fetchClientSecret)) {\n // Or, handle a sync stripe instance going from null -> populated\n setStripeAndInitEmbeddedCheckout(parsed.stripe);\n }\n }, [parsed, options, ctx, loadedStripe]);\n React.useEffect(function () {\n // cleanup on unmount\n return function () {\n // If embedded checkout is fully initialized, destroy it.\n if (ctx.embeddedCheckout) {\n embeddedCheckoutPromise.current = null;\n ctx.embeddedCheckout.destroy();\n } else if (embeddedCheckoutPromise.current) {\n // If embedded checkout is still initializing, destroy it once\n // it's done. This could be caused by unmounting very quickly\n // after mounting.\n embeddedCheckoutPromise.current.then(function () {\n embeddedCheckoutPromise.current = null;\n\n if (ctx.embeddedCheckout) {\n ctx.embeddedCheckout.destroy();\n }\n });\n }\n };\n }, [ctx.embeddedCheckout]); // Attach react-stripe-js version to stripe.js instance\n\n React.useEffect(function () {\n registerWithStripeJs(loadedStripe);\n }, [loadedStripe]); // Warn on changes to stripe prop.\n // The stripe prop value can only go from null to non-null once and\n // can't be changed after that.\n\n var prevStripe = usePrevious(rawStripeProp);\n React.useEffect(function () {\n if (prevStripe !== null && prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the `stripe` prop after setting it.');\n }\n }, [prevStripe, rawStripeProp]); // Warn on changes to options.\n\n var prevOptions = usePrevious(options);\n React.useEffect(function () {\n if (prevOptions == null) {\n return;\n }\n\n if (options == null) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot unset options after setting them.');\n return;\n }\n\n if (options.clientSecret === undefined && options.fetchClientSecret === undefined) {\n console.warn('Invalid props passed to EmbeddedCheckoutProvider: You must provide one of either `options.fetchClientSecret` or `options.clientSecret`.');\n }\n\n if (prevOptions.clientSecret != null && options.clientSecret !== prevOptions.clientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the client secret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.fetchClientSecret != null && options.fetchClientSecret !== prevOptions.fetchClientSecret) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change fetchClientSecret after setting it. Unmount and create a new instance of EmbeddedCheckoutProvider instead.');\n }\n\n if (prevOptions.onComplete != null && options.onComplete !== prevOptions.onComplete) {\n console.warn('Unsupported prop change on EmbeddedCheckoutProvider: You cannot change the onComplete option after setting it.');\n }\n }, [prevOptions, options]);\n return /*#__PURE__*/React.createElement(EmbeddedCheckoutContext.Provider, {\n value: ctx\n }, children);\n };\n\n var EmbeddedCheckoutClientElement = function EmbeddedCheckoutClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className;\n\n var _useEmbeddedCheckoutC = useEmbeddedCheckoutContext(),\n embeddedCheckout = _useEmbeddedCheckoutC.embeddedCheckout;\n\n var isMounted = React.useRef(false);\n var domNode = React.useRef(null);\n React.useLayoutEffect(function () {\n if (!isMounted.current && embeddedCheckout && domNode.current !== null) {\n embeddedCheckout.mount(domNode.current);\n isMounted.current = true;\n } // Clean up on unmount\n\n\n return function () {\n if (isMounted.current && embeddedCheckout) {\n try {\n embeddedCheckout.unmount();\n isMounted.current = false;\n } catch (e) {// Do nothing.\n // Parent effects are destroyed before child effects, so\n // in cases where both the EmbeddedCheckoutProvider and\n // the EmbeddedCheckout component are removed at the same\n // time, the embeddedCheckout instance will be destroyed,\n // which causes an error when calling unmount.\n }\n }\n };\n }, [embeddedCheckout]);\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: domNode,\n id: id,\n className: className\n });\n }; // Only render the wrapper in a server environment.\n\n\n var EmbeddedCheckoutServerElement = function EmbeddedCheckoutServerElement(_ref2) {\n var id = _ref2.id,\n className = _ref2.className;\n // Validate that we are in the right context by calling useEmbeddedCheckoutContext.\n useEmbeddedCheckoutContext();\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var EmbeddedCheckout = isServer ? EmbeddedCheckoutServerElement : EmbeddedCheckoutClientElement;\n\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsOrCustomC = useElementsOrCustomCheckoutSdkContextWithUseCase('calls useStripe()'),\n stripe = _useElementsOrCustomC.stripe;\n\n return stripe;\n };\n\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n var PaymentElement = createElementComponent('payment', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ExpressCheckoutElement = createElementComponent('expressCheckout', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AddressElement = createElementComponent('address', isServer);\n /**\n * @deprecated\n * Use `AddressElement` instead.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AddressElement = AddressElement;\n exports.AffirmMessageElement = AffirmMessageElement;\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.CustomCheckoutProvider = CustomCheckoutProvider;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EmbeddedCheckout = EmbeddedCheckout;\n exports.EmbeddedCheckoutProvider = EmbeddedCheckoutProvider;\n exports.EpsBankElement = EpsBankElement;\n exports.ExpressCheckoutElement = ExpressCheckoutElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.LinkAuthenticationElement = LinkAuthenticationElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentElement = PaymentElement;\n exports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.ShippingAddressElement = ShippingAddressElement;\n exports.useCustomCheckout = useCustomCheckout;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n}));\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1589.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 100 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n var isAwsQueryCompatible = shape.api && shape.api.awsQueryCompatible;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n } else if (isAwsQueryCompatible && memberShape.defaultValue) {\n if (memberShape.type === 'list') {\n struct[name] = typeof memberShape.defaultValue === 'function' ? memberShape.defaultValue() : memberShape.defaultValue;\n }\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'The AWS SDK for JavaScript (v2) will enter maintenance mode',\n 'on September 8, 2024 and reach end-of-support on September 8, 2025.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check blog post at https://a.co/cUPnyil'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n fn.call(this, name, null);\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov'\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.setExpiresString);\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n },\n\n /**\n * @api private\n */\n setExpiresString: function setExpiresString(response) {\n // Check if response contains Expires value, and populate ExpiresString.\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n response.httpResponse.headers.expiresstring = response.httpResponse.headers.expires;\n }\n }\n\n // Check if value in Expires is not a Date using parseTimestamp.\n try {\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n AWS.util.date.parseTimestamp(response.httpResponse.headers.expires);\n }\n }\n } catch (e) {\n console.log('AWS SDK', '(warning)', e);\n delete response.httpResponse.headers.expires;\n }\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\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\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TYPE_NAME_TABLE = {\n 0: 'number',\n 1: 'any',\n 2: 'string',\n 3: 'array',\n 4: 'object',\n 5: 'boolean',\n 6: 'expression',\n 7: 'null',\n 8: 'Array',\n 9: 'Array'\n };\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n }\n return node;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n }\n return this._parseMultiselectList();\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n }\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n }\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value !== null && isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n }\n return null;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n var expected = currentSpec\n .map(function(typeIdentifier) {\n return TYPE_NAME_TABLE[typeIdentifier];\n })\n .join(',');\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + expected +\n \" but received type \" +\n TYPE_NAME_TABLE[actualType] + \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = all;\n\nvar _createChainableTypeChecker = require('./utils/createChainableTypeChecker');\n\nvar _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction all() {\n for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {\n validators[_key] = arguments[_key];\n }\n\n function allPropTypes() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var error = null;\n\n validators.forEach(function (validator) {\n if (error != null) {\n return;\n }\n\n var result = validator.apply(undefined, args);\n if (result != null) {\n error = result;\n }\n });\n\n return error;\n }\n\n return (0, _createChainableTypeChecker2.default)(allPropTypes);\n}\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createChainableTypeChecker;\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n// Mostly taken from ReactPropTypes.\n\nfunction createChainableTypeChecker(validate) {\n function checkType(isRequired, props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (props[propName] == null) {\n if (isRequired) {\n return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {\n args[_key - 6] = arguments[_key];\n }\n\n return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n}\nmodule.exports = exports['default'];","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\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","/**\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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\n });\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n Object.keys(relative).forEach(function(k) {\n result[k] = relative[k];\n });\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host) && (last === '.' || last === '..') ||\n last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last == '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n","/**\n * @license React\n * use-sync-external-store-with-selector.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 g=require(\"react\");function n(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var p=\"function\"===typeof Object.is?Object.is:n,q=g.useSyncExternalStore,r=g.useRef,t=g.useEffect,u=g.useMemo,v=g.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,h){var c=r(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=u(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==h&&f.hasValue){var b=f.value;if(h(b,a))return k=b}return k=a}b=k;if(p(d,a))return b;var e=l(a);if(void 0!==h&&h(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,h]);var d=q(a,c[0],c[1]);\nt(function(){f.hasValue=!0;f.value=d},[d]);v(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/use-sync-external-store-with-selector.production.min.js');\n} else {\n module.exports = require('./cjs/use-sync-external-store-with-selector.development.js');\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\n/** @type {(O: object) => string} */\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"cb63d3ec\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"prospecting-navigator:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t792: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkprospecting_navigator\"] = self[\"webpackChunkprospecting_navigator\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface HandlerResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData\n status?: number;\n}\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n unstable_actionStatus?: number;\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => Promise\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction | boolean;\n action?: ActionFunction | boolean;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n HandlerResult,\n ImmutableRouteKey,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n unstable_skipActionErrorRevalidation: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n unstable_dataStrategy?: DataStrategyFunction;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n unstable_skipActionErrorRevalidation: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\n }\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionResult: PendingActionResult | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: opts.pendingError },\n ];\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...getActionDataForCommit(pendingActionResult),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches\n );\n result = results[0];\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n pendingActionResult: [actionMatch.route.id, result],\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since it's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n\n let actionData: Record | null | undefined;\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n actionData = {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n actionData = null;\n } else {\n actionData = state.actionData;\n }\n }\n\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(request, redirect.result, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingActionResult,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\n });\n }\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n fetchRequest,\n [match],\n requestMatches\n );\n let actionResult = actionResults[0];\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(fetchRequest, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n future.unstable_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect([...loaderResults, ...fetcherResults]);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(revalidationRequest, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n fetchRequest,\n [match],\n matches\n );\n let result = results[0];\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(fetchRequest, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n request: Request,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(location);\n } else {\n routerWindow.location.assign(location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[]\n ): Promise {\n try {\n let results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n return {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n return matchesToLoad.map(() => ({\n type: ResultType.error,\n error: e,\n }));\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let [loaderResults, ...fetcherResults] = await Promise.all([\n matchesToLoad.length\n ? callDataStrategy(\"loader\", request, matchesToLoad, matches)\n : [],\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n let fetcherRequest = createClientSideRequest(\n init.history,\n f.path,\n f.controller.signal\n );\n return callDataStrategy(\n \"loader\",\n fetcherRequest,\n [f.match],\n f.matches\n ).then((r) => r[0]);\n } else {\n return Promise.resolve({\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n });\n }\n }),\n ]);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n *\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n *\n * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n null,\n false,\n match\n );\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction for a\n // `queryRoute` call, we throw the `HandlerResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isHandlerResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[0];\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.response.status,\n headers: {\n Location: result.response.headers.get(\"Location\")!,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n request,\n matchesToLoad,\n matches,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n return await Promise.all(\n results.map((result, i) => {\n if (isRedirectHandlerResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n matchesToLoad[i].route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n return convertHandlerResultToDataResult(result);\n })\n );\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (typeof route.loader !== \"function\" || route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n unstable_actionStatus: actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nfunction defaultDataStrategy(\n opts: DataStrategyFunctionArgs\n): ReturnType {\n return Promise.all(opts.matches.map((m) => m.resolve()));\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise {\n let routeIdsToLoad = matchesToLoad.reduce(\n (acc, m) => acc.add(m.route.id),\n new Set()\n );\n let loadedMatches = new Set();\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: matches.map((match) => {\n let shouldLoad = routeIdsToLoad.has(match.route.id);\n // `resolve` encapsulates the route.lazy, executing the\n // loader/action, and mapping return values/thrown errors to a\n // HandlerResult. Users can pass a callback to take fine-grained control\n // over the execution of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = (handlerOverride) => {\n loadedMatches.add(match.route.id);\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n manifest,\n mapRouteProperties,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n }),\n request,\n params: matches[0].params,\n context: requestContext,\n });\n\n // Throw if any loadRoute implementations not called since they are what\n // ensures a route is fully loaded\n matches.forEach((m) =>\n invariant(\n loadedMatches.has(m.route.id),\n `\\`match.resolve()\\` was not called for route id \"${m.route.id}\". ` +\n \"You must call `match.resolve()` on every match passed to \" +\n \"`dataStrategy` to ensure all routes are properly loaded.\"\n )\n );\n\n // Filter out any middleware-only matches for which we didn't need to run handlers\n return results.filter((_, i) => routeIdsToLoad.has(matches[i].route.id));\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: HandlerResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise;\n if (handlerOverride) {\n handlerPromise = handlerOverride((ctx: unknown) => actualHandler(ctx));\n } else {\n handlerPromise = (async () => {\n try {\n let val = await actualHandler();\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n }\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, result: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result.result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n // We should already be catching and converting normal handler executions to\n // HandlerResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertHandlerResultToDataResult(\n handlerResult: HandlerResult\n): Promise {\n let { result, type, status } = handlerResult;\n\n if (isResponse(result)) {\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : status,\n };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result, statusCode: status };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isHandlerResult(result: unknown): result is HandlerResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectHandlerResult(result: HandlerResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error !== undefined ? props.error : state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error !== undefined ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null,\n future: RemixRouter[\"future\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id] !== undefined\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\n\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error !== undefined) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\n future?: Partial>;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a