{"version":3,"file":"/uxab/ui-core-bundle.map.jsdbx","sections":[{"offset":{"line":18,"column":0},"map":{"mappings":"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","names":[],"sources":["../../../../node_modules/amb-client-js/lib/amb.Properties.js","../../../../node_modules/amb-client-js/lib/amb.Logger.js","../../../../node_modules/amb-client-js/lib/amb.EventManager.js","../../../../node_modules/amb-client-js/lib/amb.ChannelListener.js","../../../../node_modules/amb-client-js/lib/amb.ChannelRedirect.js","../../../../node_modules/amb-client-js/lib/amb.Helper.js","../../../../node_modules/cometd/cometd.js","../../../../node_modules/amb-client-js/lib/amb.GraphQLSubscriptionExtension.js","../../../../node_modules/amb-client-js/lib/amb.SessionExtension.js","../../../../node_modules/amb-client-js/lib/amb.TokenManagementExtension.js","../../../../node_modules/amb-client-js/lib/amb.Constants.js","../../../../node_modules/amb-client-js/lib/amb.CancelTransactionSender.js","../../../../node_modules/amb-client-js/lib/amb.MessageClient.js","(disabled):crypto","../../../../node_modules/crypto-js/core.js","../../../../node_modules/crypto-js/enc-base64.js","../../../../node_modules/crypto-js/enc-utf8.js","../../../../node_modules/amb-client-js/lib/amb.MessageClientBuilder.js","../../../../node_modules/amb-client-js/lib/amb.MessagesRedeliveryManager.js","../../../../node_modules/amb-client-js/lib/amb.Channel.js","../../../../node_modules/amb-client-js/lib/amb.CrossClientChannel.js","../../../../node_modules/amb-client-js/lib/amb.FunctionQueue.js","../../../../node_modules/amb-client-js/lib/amb.SubscriptionCommandSender.js","../../../../node_modules/amb-client-js/lib/amb.TransportManagement.js","../../../../node_modules/amb-client-js/lib/amb.ServerConnection.js","../../../../node_modules/amb-client-js/lib/index.js","../../../../build/index.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = exports.WEBSOCKET_TYPE_NAME = exports.TOKEN_MANAGEMENT_EXTENSION = void 0;\nvar properties = {\n  servletPath: 'amb',\n  logLevel: 'info',\n  loginWindow: 'true',\n  wsConnectTimeout: 10000,\n  overlayStyle: '',\n  pruneFailedTransports: 'true',\n  subscribeCommandsFlow: {\n    /* glide.amb.client.subscribe.commands.flow.* ... */\n    enable: false,\n    maxInflight: 1,\n    maxWait: 10000,\n    retries: 3,\n    retryDelay: {\n      min: 2000,\n      max: 300000,\n      increaseFactor: 2\n    }\n  },\n  redeliveryDisconnectTimeoutInMins: 10,\n  requestHeaderToClearStickySessionCookie: true,\n  batchLogging: {\n    enabled: false,\n    channels: [],\n    startTime: null\n  }\n};\nvar WEBSOCKET_TYPE_NAME = 'websocket';\nexports.WEBSOCKET_TYPE_NAME = WEBSOCKET_TYPE_NAME;\nvar TOKEN_MANAGEMENT_EXTENSION = \"tokenManagementExtension\";\nexports.TOKEN_MANAGEMENT_EXTENSION = TOKEN_MANAGEMENT_EXTENSION;\nvar _default = properties;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Properties\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Logger = function Logger(callerType) {\n  function print(\n  /*String*/\n  message) {\n    if (window.console) console.log(callerType + ' ' + message);\n  }\n\n  return {\n    debug: function debug(\n    /*String*/\n    message) {\n      if (_amb.default.logLevel === 'debug') print('[DEBUG] ' + message);\n    },\n    addInfoMessage:\n    /*void*/\n    function addInfoMessage(\n    /*String*/\n    message) {\n      print('[INFO] ' + message);\n    },\n    addErrorMessage:\n    /*void*/\n    function addErrorMessage(\n    /*String*/\n    message) {\n      print('[ERROR] ' + message);\n    },\n    addWarnMessage:\n    /*void*/\n    function addWarnMessage(\n    /*String*/\n    message) {\n      print('[WARN] ' + message);\n    }\n  };\n};\n\nvar _default = Logger;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar EventManager = function EventManager(events) {\n  var _subscriptions = [];\n  var _idCounter = 0;\n  return {\n    subscribe:\n    /*Number*/\n    function subscribe(\n    /*String*/\n    event,\n    /*Function*/\n    callback) {\n      var id = _idCounter++;\n\n      _subscriptions.push({\n        event: event,\n        callback: callback,\n        id: id\n      });\n\n      return id;\n    },\n    unsubscribe:\n    /*void*/\n    function unsubscribe(\n    /* Number */\n    id) {\n      for (var i = 0; i < _subscriptions.length; i++) {\n        if (id === _subscriptions[i].id) _subscriptions.splice(i, 1);\n      }\n    },\n    publish:\n    /*void*/\n    function publish(event, args) {\n      var subscriptions = this._getSubscriptions(event);\n\n      for (var i = 0; i < subscriptions.length; i++) {\n        subscriptions[i].callback.apply(null, args);\n      }\n    },\n    getEvents:\n    /*Hash*/\n    function getEvents() {\n      return events;\n    },\n    _getSubscriptions: function _getSubscriptions(\n    /*String*/\n    event) {\n      var subscriptions = [];\n\n      for (var i = 0; i < _subscriptions.length; i++) {\n        if (_subscriptions[i].event === event) subscriptions.push(_subscriptions[i]);\n      }\n\n      return subscriptions;\n    }\n  };\n};\n\nvar _default = EventManager;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * A listener for an amb channel\n * Returned from amb.getChannel. Client only interacts with cometd through this object.\n * @param channel - amb.Channel\n * @param serverConnection - amb.ServerConnection\n * @param subscriptionCallback - Callback to call on\n * @return amb.ChannelListener this listener\n */\nvar ChannelListener = function ChannelListener(channel, serverConnection, subscriptionCallback) {\n  var id;\n  var messageCallback;\n  var LOGGER = new _amb.default('amb.ChannelListener');\n  var currentChannel = channel;\n  return {\n    getCallback:\n    /*Function*/\n    function getCallback() {\n      return messageCallback;\n    },\n    getSubscriptionCallback: function getSubscriptionCallback() {\n      return subscriptionCallback;\n    },\n    getID:\n    /*Integer*/\n    function getID() {\n      return id;\n    },\n    setNewChannel: function setNewChannel(channel) {\n      currentChannel.unsubscribe(this);\n      currentChannel = channel;\n      this.subscribe(messageCallback);\n    },\n\n    /**\n     * Register this listener with its channel.\n     *\n     * @return amb.ChannelListener this listener\n     */\n    subscribe:\n    /*amb.ChannelListener*/\n    function subscribe(\n    /*Function*/\n    callback) {\n      messageCallback = callback;\n      id = currentChannel.subscribe(this);\n      return this;\n    },\n    resubscribe:\n    /*amb.channelListener*/\n    function resubscribe() {\n      return this.subscribe(messageCallback);\n    },\n\n    /**\n     * Unregister this listener from its channel.\n     *\n     * @return amb.ChannelListener this listener\n     */\n    unsubscribe:\n    /*amb.ChannelListener*/\n    function unsubscribe() {\n      currentChannel.unsubscribe(this);\n      LOGGER.debug(\"Unsubscribed from channel: \" + currentChannel.getName());\n      return this;\n    },\n    publish:\n    /*void*/\n    function publish(\n    /*Hash*/\n    message,\n    /*Function*/\n    callback) {\n      currentChannel.publish(message, callback);\n    },\n    publishAsync: function publishAsync(message, callback) {\n      currentChannel.publishAsync(message, callback);\n    },\n    getName:\n    /*String*/\n    function getName() {\n      return currentChannel.getName();\n    }\n  };\n};\n\nvar _default = ChannelListener;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.ChannelListener\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ChannelRedirect = function ChannelRedirect(\n/*cometd*/\ncometd,\n/*amb.ServerConnection*/\nserverConnection) {\n  var _metaChannel;\n\n  var _cometd = cometd;\n  var LOGGER = new _amb.default('amb.ChannelRedirect');\n\n  function _switchToChannel(fromChannel, toChannel) {\n    var listeners = fromChannel.getChannelListeners();\n\n    for (var i = 0; i < listeners.length; i++) {\n      var listener = listeners[i];\n      listener.setNewChannel(toChannel);\n    }\n  }\n\n  function _onAdvice(advice) {\n    LOGGER.debug('_onAdvice:' + advice.data.clientId);\n    var channels = serverConnection.getChannels();\n    var fromChannel = channels != null ? channels[advice.data.fromChannel] : null;\n\n    if (!fromChannel) {\n      var removedChannels = serverConnection.getRemovedChannels();\n      fromChannel = removedChannels != null ? removedChannels[advice.data.fromChannel] : null;\n    }\n\n    var toChannel = serverConnection.getChannel(advice.data.toChannel);\n\n    if (!fromChannel || !toChannel) {\n      LOGGER.debug('Could not redirect from ' + advice.data.fromChannel + ' to ' + advice.data.toChannel);\n      return;\n    }\n\n    _switchToChannel(fromChannel, toChannel);\n\n    LOGGER.debug('published channel switch event, fromChannel:' + fromChannel.getName() + ', toChannel:' + toChannel.getName());\n  }\n\n  return {\n    initialize: function initialize(\n    /*Function*/\n    onSubscriptionCompleted) {\n      var channelName = '/sn/meta/channel_redirect/' + _cometd.getClientId();\n\n      var newMetaChannel = serverConnection.getChannel(channelName); // Only do this when we're creating a new redirect channel\n\n      if (!_metaChannel || newMetaChannel !== _metaChannel) {\n        // Delete old redirect channel in case of reconnection\n        if (_metaChannel) serverConnection.removeChannel(_metaChannel.getName());\n        _metaChannel = newMetaChannel; //channelRedirect meta channelListener will not get redirected\n\n        new _amb2.default(_metaChannel, serverConnection, onSubscriptionCompleted).subscribe(_onAdvice);\n      } else _metaChannel.resubscribeToCometD();\n\n      LOGGER.debug(\"ChannelRedirect initialized: \" + channelName);\n    },\n    _onAdvice: _onAdvice,\n    getName: function getName() {\n      return _metaChannel ? _metaChannel.getName() : null;\n    }\n  };\n};\n\nvar _default = ChannelRedirect;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.isUndefined = exports.isObject = exports.isNull = exports.isNil = exports.isEmptyObject = void 0;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nvar isUndefined = function isUndefined(value) {\n  return value === undefined;\n};\n\nexports.isUndefined = isUndefined;\n\nvar isNull = function isNull(value) {\n  return value === null;\n};\n\nexports.isNull = isNull;\n\nvar isNil = function isNil(value) {\n  return isNull(value) || isUndefined(value);\n};\n\nexports.isNil = isNil;\n\nvar isObject = function isObject(x) {\n  return x != null && _typeof(x) === 'object';\n};\n\nexports.isObject = isObject;\n\nvar isEmptyObject = function isEmptyObject(obj) {\n  return isObject(obj) && Object.keys(obj).length === 0;\n};\n\nexports.isEmptyObject = isEmptyObject;","/*\n * Copyright (c) 2008-2022 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* CometD Version 5.0.14 */\n\n(function(root, factory) {\n    if (typeof exports === 'object') {\n        // CommonJS.\n        module.exports = factory();\n    } else if (typeof define === 'function' && define.amd) {\n        // AMD.\n        define([], factory);\n    } else {\n        // Globals.\n        root.org = root.org || {};\n        root.org.cometd = factory();\n    }\n}(this, function() {\n    /**\n     * Browsers may throttle the Window scheduler,\n     * so we may replace it with a Worker scheduler.\n     */\n    var Scheduler = function() {\n        var _ids = 0;\n        var _tasks = {};\n        this.register = function(funktion) {\n            var id = ++_ids;\n            _tasks[id] = funktion;\n            return id;\n        };\n        this.unregister = function(id) {\n            var funktion = _tasks[id];\n            delete _tasks[id];\n            return funktion;\n        };\n        this.setTimeout = function(funktion, delay) {\n            return window.setTimeout(funktion, delay);\n        };\n        this.clearTimeout = function(id) {\n            window.clearTimeout(id);\n        };\n    };\n\n    /**\n     * The scheduler code that will run in the Worker.\n     * Workers have a built-in `self` variable similar to `window`.\n     */\n    function WorkerScheduler() {\n        var _tasks = {};\n        self.onmessage = function(e) {\n            var cmd = e.data;\n            var id = _tasks[cmd.id];\n            switch (cmd.type) {\n                case 'setTimeout':\n                    _tasks[cmd.id] = self.setTimeout(function() {\n                        delete _tasks[cmd.id];\n                        self.postMessage({\n                            id: cmd.id\n                        });\n                    }, cmd.delay);\n                    break;\n                case 'clearTimeout':\n                    delete _tasks[cmd.id];\n                    if (id) {\n                        self.clearTimeout(id);\n                    }\n                    break;\n                default:\n                    throw 'Unknown command ' + cmd.type;\n            }\n        };\n    }\n\n\n    /**\n     * Utility functions.\n     */\n    var Utils = {\n        isString: function(value) {\n            if (value === undefined || value === null) {\n                return false;\n            }\n            return typeof value === 'string' || value instanceof String;\n        },\n        isArray: function(value) {\n            if (value === undefined || value === null) {\n                return false;\n            }\n            return value instanceof Array;\n        },\n        /**\n         * Returns whether the given element is contained into the given array.\n         * @param element the element to check presence for\n         * @param array the array to check for the element presence\n         * @return the index of the element, if present, or a negative index if the element is not present\n         */\n        inArray: function(element, array) {\n            for (var i = 0; i < array.length; ++i) {\n                if (element === array[i]) {\n                    return i;\n                }\n            }\n            return -1;\n        }\n    };\n\n\n    /**\n     * A registry for transports used by the CometD object.\n     */\n    var TransportRegistry = function() {\n        var _types = [];\n        var _transports = {};\n\n        this.getTransportTypes = function() {\n            return _types.slice(0);\n        };\n\n        this.findTransportTypes = function(version, crossDomain, url) {\n            var result = [];\n            for (var i = 0; i < _types.length; ++i) {\n                var type = _types[i];\n                if (_transports[type].accept(version, crossDomain, url) === true) {\n                    result.push(type);\n                }\n            }\n            return result;\n        };\n\n        this.negotiateTransport = function(types, version, crossDomain, url) {\n            for (var i = 0; i < _types.length; ++i) {\n                var type = _types[i];\n                for (var j = 0; j < types.length; ++j) {\n                    if (type === types[j]) {\n                        var transport = _transports[type];\n                        if (transport.accept(version, crossDomain, url) === true) {\n                            return transport;\n                        }\n                    }\n                }\n            }\n            return null;\n        };\n\n        this.add = function(type, transport, index) {\n            var existing = false;\n            for (var i = 0; i < _types.length; ++i) {\n                if (_types[i] === type) {\n                    existing = true;\n                    break;\n                }\n            }\n\n            if (!existing) {\n                if (typeof index !== 'number') {\n                    _types.push(type);\n                } else {\n                    _types.splice(index, 0, type);\n                }\n                _transports[type] = transport;\n            }\n\n            return !existing;\n        };\n\n        this.find = function(type) {\n            for (var i = 0; i < _types.length; ++i) {\n                if (_types[i] === type) {\n                    return _transports[type];\n                }\n            }\n            return null;\n        };\n\n        this.remove = function(type) {\n            for (var i = 0; i < _types.length; ++i) {\n                if (_types[i] === type) {\n                    _types.splice(i, 1);\n                    var transport = _transports[type];\n                    delete _transports[type];\n                    return transport;\n                }\n            }\n            return null;\n        };\n\n        this.clear = function() {\n            _types = [];\n            _transports = {};\n        };\n\n        this.reset = function(init) {\n            for (var i = 0; i < _types.length; ++i) {\n                _transports[_types[i]].reset(init);\n            }\n        };\n    };\n\n\n    /**\n     * Base object with the common functionality for transports.\n     */\n    var Transport = function() {\n        var _type;\n        var _cometd;\n        var _url;\n\n        /**\n         * Function invoked just after a transport has been successfully registered.\n         * @param type the type of transport (for example 'long-polling')\n         * @param cometd the cometd object this transport has been registered to\n         * @see #unregistered()\n         */\n        this.registered = function(type, cometd) {\n            _type = type;\n            _cometd = cometd;\n        };\n\n        /**\n         * Function invoked just after a transport has been successfully unregistered.\n         * @see #registered(type, cometd)\n         */\n        this.unregistered = function() {\n            _type = null;\n            _cometd = null;\n        };\n\n        this._notifyTransportTimeout = function(messages) {\n            var callbacks = _cometd._getTransportListeners('timeout');\n            if (callbacks) {\n                for (var i = 0; i < callbacks.length; ++i) {\n                    var listener = callbacks[i];\n                    try {\n                        var result = listener.call(this, messages);\n                        if (typeof result === 'number' && result > 0) {\n                            return result;\n                        }\n                    } catch (x) {\n                        this._info('Exception during execution of transport listener', listener, x);\n                    }\n                }\n            }\n            return 0;\n        }\n\n        this._debug = function() {\n            _cometd._debug.apply(_cometd, arguments);\n        };\n\n        this._info = function() {\n            _cometd._info.apply(_cometd, arguments);\n        };\n\n        this._mixin = function() {\n            return _cometd._mixin.apply(_cometd, arguments);\n        };\n\n        this.getConfiguration = function() {\n            return _cometd.getConfiguration();\n        };\n\n        this.getAdvice = function() {\n            return _cometd.getAdvice();\n        };\n\n        this.setTimeout = function(funktion, delay) {\n            return _cometd.setTimeout(funktion, delay);\n        };\n\n        this.clearTimeout = function(id) {\n            _cometd.clearTimeout(id);\n        };\n\n        this.convertToJSON = function(messages) {\n            var maxSize = this.getConfiguration().maxSendBayeuxMessageSize;\n            var result = '[';\n            for (var i = 0; i < messages.length; ++i) {\n                if (i > 0) {\n                    result += ',';\n                }\n                var message = messages[i];\n                var json = JSON.stringify(message);\n                if (json.length > maxSize) {\n                    throw 'maxSendBayeuxMessageSize ' + maxSize + ' exceeded';\n                }\n                result += json;\n            }\n            result += ']';\n            return result;\n        };\n\n        /**\n         * Converts the given response into an array of bayeux messages\n         * @param response the response to convert\n         * @return an array of bayeux messages obtained by converting the response\n         */\n        this.convertToMessages = function(response) {\n            if (Utils.isString(response)) {\n                try {\n                    return JSON.parse(response);\n                } catch (x) {\n                    this._debug('Could not convert to JSON the following string', '\"' + response + '\"');\n                    throw x;\n                }\n            }\n            if (Utils.isArray(response)) {\n                return response;\n            }\n            if (response === undefined || response === null) {\n                return [];\n            }\n            if (response instanceof Object) {\n                return [response];\n            }\n            throw 'Conversion Error ' + response + ', typeof ' + (typeof response);\n        };\n\n        /**\n         * Returns whether this transport can work for the given version and cross domain communication case.\n         * @param version a string indicating the transport version\n         * @param crossDomain a boolean indicating whether the communication is cross domain\n         * @param url the URL to connect to\n         * @return true if this transport can work for the given version and cross domain communication case,\n         * false otherwise\n         */\n        this.accept = function(version, crossDomain, url) {\n            throw 'Abstract';\n        };\n\n        /**\n         * Returns the type of this transport.\n         * @see #registered(type, cometd)\n         */\n        this.getType = function() {\n            return _type;\n        };\n\n        this.getURL = function() {\n            return _url;\n        };\n\n        this.setURL = function(url) {\n            _url = url;\n        };\n\n        this.send = function(envelope, metaConnect) {\n            throw 'Abstract';\n        };\n\n        this.reset = function(init) {\n            this._debug('Transport', _type, 'reset', init ? 'initial' : 'retry');\n        };\n\n        this.abort = function() {\n            this._debug('Transport', _type, 'aborted');\n        };\n\n        this.toString = function() {\n            return this.getType();\n        };\n    };\n\n    Transport.derive = function(baseObject) {\n        function F() {\n        }\n\n        F.prototype = baseObject;\n        return new F();\n    };\n\n\n    /**\n     * Base object with the common functionality for transports based on requests.\n     * The key responsibility is to allow at most 2 outstanding requests to the server,\n     * to avoid that requests are sent behind a long poll.\n     * To achieve this, we have one reserved request for the long poll, and all other\n     * requests are serialized one after the other.\n     */\n    var RequestTransport = function() {\n        var _super = new Transport();\n        var _self = Transport.derive(_super);\n        var _requestIds = 0;\n        var _metaConnectRequest = null;\n        var _requests = [];\n        var _envelopes = [];\n\n        function _coalesceEnvelopes(envelope) {\n            while (_envelopes.length > 0) {\n                var envelopeAndRequest = _envelopes[0];\n                var newEnvelope = envelopeAndRequest[0];\n                var newRequest = envelopeAndRequest[1];\n                if (newEnvelope.url === envelope.url &&\n                    newEnvelope.sync === envelope.sync) {\n                    _envelopes.shift();\n                    envelope.messages = envelope.messages.concat(newEnvelope.messages);\n                    this._debug('Coalesced', newEnvelope.messages.length, 'messages from request', newRequest.id);\n                    continue;\n                }\n                break;\n            }\n        }\n\n        function _onTransportTimeout(envelope, request, delay) {\n            var result = this._notifyTransportTimeout(envelope.messages);\n            if (result > 0) {\n                this._debug('Transport', this.getType(), 'extended waiting for message replies of request', request.id, ':', result, 'ms');\n                var self = this;\n                request.timeout = this.setTimeout(function() {\n                    _onTransportTimeout.call(self, envelope, request, delay + result);\n                }, result);\n            } else {\n                request.expired = true;\n                var errorMessage = 'Transport ' + this.getType() + ' expired waiting for message replies of request ' + request.id + ': ' + delay + ' ms';\n                var failure = {\n                    reason: errorMessage\n                };\n                var xhr = request.xhr;\n                failure.httpCode = this.xhrStatus(xhr);\n                this.abortXHR(xhr);\n                this._debug(errorMessage);\n                this.complete(request, false, request.metaConnect);\n                envelope.onFailure(xhr, envelope.messages, failure);\n            }\n        }\n\n        function _transportSend(envelope, request) {\n            if (this.transportSend(envelope, request)) {\n                request.expired = false;\n                if (!envelope.sync) {\n                    var delay = this.getConfiguration().maxNetworkDelay;\n                    if (request.metaConnect === true) {\n                        delay += this.getAdvice().timeout;\n                    }\n\n                    this._debug('Transport', this.getType(), 'started waiting for message replies of request', request.id, ':', delay, 'ms');\n\n                    var self = this;\n                    request.timeout = this.setTimeout(function() {\n                        _onTransportTimeout.call(self, envelope, request, delay);\n                    }, delay);\n                }\n            }\n        }\n\n        function _queueSend(envelope) {\n            var requestId = ++_requestIds;\n            var request = {\n                id: requestId,\n                metaConnect: false,\n                envelope: envelope\n            };\n\n            // Consider the /meta/connect requests which should always be present.\n            if (_requests.length < this.getConfiguration().maxConnections - 1) {\n                _requests.push(request);\n                _transportSend.call(this, envelope, request);\n            } else {\n                this._debug('Transport', this.getType(), 'queueing request', requestId, 'envelope', envelope);\n                _envelopes.push([envelope, request]);\n            }\n        }\n\n        function _metaConnectComplete(request) {\n            var requestId = request.id;\n            this._debug('Transport', this.getType(), '/meta/connect complete, request', requestId);\n            if (_metaConnectRequest !== null && _metaConnectRequest.id !== requestId) {\n                throw '/meta/connect request mismatch, completing request ' + requestId;\n            }\n            _metaConnectRequest = null;\n        }\n\n        function _complete(request, success) {\n            var index = Utils.inArray(request, _requests);\n            // The index can be negative if the request has been aborted\n            if (index >= 0) {\n                _requests.splice(index, 1);\n            }\n\n            if (_envelopes.length > 0) {\n                var envelopeAndRequest = _envelopes.shift();\n                var nextEnvelope = envelopeAndRequest[0];\n                var nextRequest = envelopeAndRequest[1];\n                this._debug('Transport dequeued request', nextRequest.id);\n                if (success) {\n                    if (this.getConfiguration().autoBatch) {\n                        _coalesceEnvelopes.call(this, nextEnvelope);\n                    }\n                    _queueSend.call(this, nextEnvelope);\n                    this._debug('Transport completed request', request.id, nextEnvelope);\n                } else {\n                    // Keep the semantic of calling callbacks asynchronously.\n                    var self = this;\n                    this.setTimeout(function() {\n                        self.complete(nextRequest, false, nextRequest.metaConnect);\n                        var failure = {\n                            reason: 'Previous request failed'\n                        };\n                        var xhr = nextRequest.xhr;\n                        failure.httpCode = self.xhrStatus(xhr);\n                        nextEnvelope.onFailure(xhr, nextEnvelope.messages, failure);\n                    }, 0);\n                }\n            }\n        }\n\n        _self.complete = function(request, success, metaConnect) {\n            if (metaConnect) {\n                _metaConnectComplete.call(this, request);\n            } else {\n                _complete.call(this, request, success);\n            }\n        };\n\n        /**\n         * Performs the actual send depending on the transport type details.\n         * @param envelope the envelope to send\n         * @param request the request information\n         * @return {boolean} whether the send succeeded\n         */\n        _self.transportSend = function(envelope, request) {\n            throw 'Abstract';\n        };\n\n        _self.transportSuccess = function(envelope, request, responses) {\n            if (!request.expired) {\n                this.clearTimeout(request.timeout);\n                this._debug('Transport', this.getType(), 'cancelled waiting for message replies');\n                this.complete(request, true, request.metaConnect);\n                if (responses && responses.length > 0) {\n                    envelope.onSuccess(responses);\n                } else {\n                    envelope.onFailure(request.xhr, envelope.messages, {\n                        httpCode: 204\n                    });\n                }\n            }\n        };\n\n        _self.transportFailure = function(envelope, request, failure) {\n            if (!request.expired) {\n                this.clearTimeout(request.timeout);\n                this._debug('Transport', this.getType(), 'cancelled waiting for failed message replies');\n                this.complete(request, false, request.metaConnect);\n                envelope.onFailure(request.xhr, envelope.messages, failure);\n            }\n        };\n\n        function _metaConnectSend(envelope) {\n            if (_metaConnectRequest !== null) {\n                throw 'Concurrent /meta/connect requests not allowed, request id=' + _metaConnectRequest.id + ' not yet completed';\n            }\n\n            var requestId = ++_requestIds;\n            this._debug('Transport', this.getType(), '/meta/connect send, request', requestId, 'envelope', envelope);\n            var request = {\n                id: requestId,\n                metaConnect: true,\n                envelope: envelope\n            };\n            _transportSend.call(this, envelope, request);\n            _metaConnectRequest = request;\n        }\n\n        _self.send = function(envelope, metaConnect) {\n            if (metaConnect) {\n                _metaConnectSend.call(this, envelope);\n            } else {\n                _queueSend.call(this, envelope);\n            }\n        };\n\n        _self.abort = function() {\n            _super.abort();\n            for (var i = 0; i < _requests.length; ++i) {\n                var request = _requests[i];\n                if (request) {\n                    this._debug('Aborting request', request);\n                    if (!this.abortXHR(request.xhr)) {\n                        this.transportFailure(request.envelope, request, {reason: 'abort'});\n                    }\n                }\n            }\n            var metaConnectRequest = _metaConnectRequest;\n            if (metaConnectRequest) {\n                this._debug('Aborting /meta/connect request', metaConnectRequest);\n                if (!this.abortXHR(metaConnectRequest.xhr)) {\n                    this.transportFailure(metaConnectRequest.envelope, metaConnectRequest, {reason: 'abort'});\n                }\n            }\n            this.reset(true);\n        };\n\n        _self.reset = function(init) {\n            _super.reset(init);\n            _metaConnectRequest = null;\n            _requests = [];\n            _envelopes = [];\n        };\n\n        _self.abortXHR = function(xhr) {\n            if (xhr) {\n                try {\n                    var state = xhr.readyState;\n                    xhr.abort();\n                    return state !== window.XMLHttpRequest.UNSENT;\n                } catch (x) {\n                    this._debug(x);\n                }\n            }\n            return false;\n        };\n\n        _self.xhrStatus = function(xhr) {\n            if (xhr) {\n                try {\n                    return xhr.status;\n                } catch (x) {\n                    this._debug(x);\n                }\n            }\n            return -1;\n        };\n\n        return _self;\n    };\n\n\n    var LongPollingTransport = function() {\n        var _super = new RequestTransport();\n        var _self = Transport.derive(_super);\n        // By default, support cross domain\n        var _supportsCrossDomain = true;\n\n        _self.accept = function(version, crossDomain, url) {\n            return _supportsCrossDomain || !crossDomain;\n        };\n\n        _self.newXMLHttpRequest = function() {\n            return new window.XMLHttpRequest();\n        };\n\n        function _copyContext(xhr) {\n            try {\n                // Copy external context, to be used in other environments.\n                xhr.context = _self.context;\n            } catch (e) {\n                // May happen if XHR is wrapped by Object.seal(),\n                // Object.freeze(), or Object.preventExtensions().\n                _self._debug('Could not copy transport context into XHR', e);\n            }\n        }\n\n        _self.xhrSend = function(packet) {\n            var xhr = _self.newXMLHttpRequest();\n            _copyContext(xhr);\n            xhr.withCredentials = true;\n            xhr.open('POST', packet.url, packet.sync !== true);\n            var headers = packet.headers;\n            if (headers) {\n                for (var headerName in headers) {\n                    if (headers.hasOwnProperty(headerName)) {\n                        xhr.setRequestHeader(headerName, headers[headerName]);\n                    }\n                }\n            }\n            xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');\n            xhr.onload = function() {\n                if (xhr.status === 200) {\n                    packet.onSuccess(xhr.responseText);\n                } else {\n                    packet.onError(xhr.statusText);\n                }\n            };\n            xhr.onabort = xhr.onerror = function() {\n                packet.onError(xhr.statusText);\n            };\n            xhr.send(packet.body);\n            return xhr;\n        };\n\n        _self.transportSend = function(envelope, request) {\n            this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelope);\n\n            var self = this;\n            try {\n                var sameStack = true;\n                request.xhr = this.xhrSend({\n                    transport: this,\n                    url: envelope.url,\n                    sync: envelope.sync,\n                    headers: this.getConfiguration().requestHeaders,\n                    body: this.convertToJSON(envelope.messages),\n                    onSuccess: function(response) {\n                        self._debug('Transport', self.getType(), 'received response', response);\n                        var success = false;\n                        try {\n                            var received = self.convertToMessages(response);\n                            if (received.length === 0) {\n                                _supportsCrossDomain = false;\n                                self.transportFailure(envelope, request, {\n                                    httpCode: 204\n                                });\n                            } else {\n                                success = true;\n                                self.transportSuccess(envelope, request, received);\n                            }\n                        } catch (x) {\n                            self._debug(x);\n                            if (!success) {\n                                _supportsCrossDomain = false;\n                                var failure = {\n                                    exception: x\n                                };\n                                failure.httpCode = self.xhrStatus(request.xhr);\n                                self.transportFailure(envelope, request, failure);\n                            }\n                        }\n                    },\n                    onError: function(reason, exception) {\n                        self._debug('Transport', self.getType(), 'received error', reason, exception);\n                        _supportsCrossDomain = false;\n                        var failure = {\n                            reason: reason,\n                            exception: exception\n                        };\n                        failure.httpCode = self.xhrStatus(request.xhr);\n                        if (sameStack) {\n                            // Keep the semantic of calling callbacks asynchronously.\n                            self.setTimeout(function() {\n                                self.transportFailure(envelope, request, failure);\n                            }, 0);\n                        } else {\n                            self.transportFailure(envelope, request, failure);\n                        }\n                    }\n                });\n                sameStack = false;\n                return true;\n            } catch (x) {\n                this._debug('Transport', this.getType(), 'exception:', x);\n                _supportsCrossDomain = false;\n                // Keep the semantic of calling callbacks asynchronously.\n                this.setTimeout(function() {\n                    self.transportFailure(envelope, request, {\n                        exception: x\n                    });\n                }, 0);\n                return false;\n            }\n        };\n\n        _self.reset = function(init) {\n            _super.reset(init);\n            _supportsCrossDomain = true;\n        };\n\n        return _self;\n    };\n\n\n    var CallbackPollingTransport = function() {\n        var _super = new RequestTransport();\n        var _self = Transport.derive(_super);\n        var jsonp = 0;\n\n        _self.accept = function(version, crossDomain, url) {\n            return true;\n        };\n\n        _self.jsonpSend = function(packet) {\n            var head = document.getElementsByTagName('head')[0];\n            var script = document.createElement('script');\n\n            var callbackName = '_cometd_jsonp_' + jsonp++;\n            window[callbackName] = function(responseText) {\n                head.removeChild(script);\n                delete window[callbackName];\n                packet.onSuccess(responseText);\n            };\n\n            var url = packet.url;\n            url += url.indexOf('?') < 0 ? '?' : '&';\n            url += 'jsonp=' + callbackName;\n            url += '&message=' + encodeURIComponent(packet.body);\n            script.src = url;\n            script.async = packet.sync !== true;\n            script.type = 'application/javascript';\n            script.onerror = function(e) {\n                packet.onError('jsonp ' + e.type);\n            };\n            head.appendChild(script);\n        };\n\n        function _failTransportFn(envelope, request, x) {\n            var self = this;\n            return function() {\n                self.transportFailure(envelope, request, 'error', x);\n            };\n        }\n\n        _self.transportSend = function(envelope, request) {\n            var self = this;\n\n            // Microsoft Internet Explorer has a 2083 URL max length\n            // We must ensure that we stay within that length\n            var start = 0;\n            var length = envelope.messages.length;\n            var lengths = [];\n            while (length > 0) {\n                // Encode the messages because all brackets, quotes, commas, colons, etc\n                // present in the JSON will be URL encoded, taking many more characters\n                var json = JSON.stringify(envelope.messages.slice(start, start + length));\n                var urlLength = envelope.url.length + encodeURI(json).length;\n\n                var maxLength = this.getConfiguration().maxURILength;\n                if (urlLength > maxLength) {\n                    if (length === 1) {\n                        var x = 'Bayeux message too big (' + urlLength + ' bytes, max is ' + maxLength + ') ' +\n                            'for transport ' + this.getType();\n                        // Keep the semantic of calling callbacks asynchronously.\n                        this.setTimeout(_failTransportFn.call(this, envelope, request, x), 0);\n                        return;\n                    }\n\n                    --length;\n                    continue;\n                }\n\n                lengths.push(length);\n                start += length;\n                length = envelope.messages.length - start;\n            }\n\n            // Here we are sure that the messages can be sent within the URL limit\n\n            var envelopeToSend = envelope;\n            if (lengths.length > 1) {\n                var begin = 0;\n                var end = lengths[0];\n                this._debug('Transport', this.getType(), 'split', envelope.messages.length, 'messages into', lengths.join(' + '));\n                envelopeToSend = this._mixin(false, {}, envelope);\n                envelopeToSend.messages = envelope.messages.slice(begin, end);\n                envelopeToSend.onSuccess = envelope.onSuccess;\n                envelopeToSend.onFailure = envelope.onFailure;\n\n                for (var i = 1; i < lengths.length; ++i) {\n                    var nextEnvelope = this._mixin(false, {}, envelope);\n                    begin = end;\n                    end += lengths[i];\n                    nextEnvelope.messages = envelope.messages.slice(begin, end);\n                    nextEnvelope.onSuccess = envelope.onSuccess;\n                    nextEnvelope.onFailure = envelope.onFailure;\n                    this.send(nextEnvelope, request.metaConnect);\n                }\n            }\n\n            this._debug('Transport', this.getType(), 'sending request', request.id, 'envelope', envelopeToSend);\n\n            try {\n                var sameStack = true;\n                this.jsonpSend({\n                    transport: this,\n                    url: envelopeToSend.url,\n                    sync: envelopeToSend.sync,\n                    headers: this.getConfiguration().requestHeaders,\n                    body: JSON.stringify(envelopeToSend.messages),\n                    onSuccess: function(responses) {\n                        var success = false;\n                        try {\n                            var received = self.convertToMessages(responses);\n                            if (received.length === 0) {\n                                self.transportFailure(envelopeToSend, request, {\n                                    httpCode: 204\n                                });\n                            } else {\n                                success = true;\n                                self.transportSuccess(envelopeToSend, request, received);\n                            }\n                        } catch (x) {\n                            self._debug(x);\n                            if (!success) {\n                                self.transportFailure(envelopeToSend, request, {\n                                    exception: x\n                                });\n                            }\n                        }\n                    },\n                    onError: function(reason, exception) {\n                        var failure = {\n                            reason: reason,\n                            exception: exception\n                        };\n                        if (sameStack) {\n                            // Keep the semantic of calling callbacks asynchronously.\n                            self.setTimeout(function() {\n                                self.transportFailure(envelopeToSend, request, failure);\n                            }, 0);\n                        } else {\n                            self.transportFailure(envelopeToSend, request, failure);\n                        }\n                    }\n                });\n                sameStack = false;\n                return true;\n            } catch (xx) {\n                // Keep the semantic of calling callbacks asynchronously.\n                this.setTimeout(function() {\n                    self.transportFailure(envelopeToSend, request, {\n                        exception: xx\n                    });\n                }, 0);\n                return false;\n            }\n        };\n\n        return _self;\n    };\n\n\n    var WebSocketTransport = function() {\n        var _super = new Transport();\n        var _self = Transport.derive(_super);\n        var _cometd;\n        // By default WebSocket is supported\n        var _webSocketSupported = true;\n        // Whether we were able to establish a WebSocket connection\n        var _webSocketConnected = false;\n        var _stickyReconnect = true;\n        // The context contains the envelopes that have been sent\n        // and the timeouts for the messages that have been sent.\n        var _context = null;\n        var _connecting = null;\n        var _connected = false;\n        var _successCallback = null;\n\n        _self.reset = function(init) {\n            _super.reset(init);\n            _webSocketSupported = true;\n            if (init) {\n                _webSocketConnected = false;\n            }\n            _stickyReconnect = true;\n            if (init) {\n                _context = null;\n            }\n            _connecting = null;\n            _connected = false;\n        };\n\n        function _forceClose(context, event) {\n            if (context) {\n                this.webSocketClose(context, event.code, event.reason);\n                // Force immediate failure of pending messages to trigger reconnect.\n                // This is needed because the server may not reply to our close()\n                // and therefore the onclose function is never called.\n                this.onClose(context, event);\n            }\n        }\n\n        function _sameContext(context) {\n            return context === _connecting || context === _context;\n        }\n\n        function _storeEnvelope(context, envelope, metaConnect) {\n            var messageIds = [];\n            for (var i = 0; i < envelope.messages.length; ++i) {\n                var message = envelope.messages[i];\n                if (message.id) {\n                    messageIds.push(message.id);\n                }\n            }\n            context.envelopes[messageIds.join(',')] = [envelope, metaConnect];\n            this._debug('Transport', this.getType(), 'stored envelope, envelopes', context.envelopes);\n        }\n\n        function _removeEnvelope(context, messageIds) {\n            var removed = false;\n            var envelopes = context.envelopes;\n            for (var j = 0; j < messageIds.length; ++j) {\n                var id = messageIds[j];\n                for (var key in envelopes) {\n                    if (envelopes.hasOwnProperty(key)) {\n                        var ids = key.split(',');\n                        var index = Utils.inArray(id, ids);\n                        if (index >= 0) {\n                            removed = true;\n                            ids.splice(index, 1);\n                            var envelope = envelopes[key][0];\n                            var metaConnect = envelopes[key][1];\n                            delete envelopes[key];\n                            if (ids.length > 0) {\n                                envelopes[ids.join(',')] = [envelope, metaConnect];\n                            }\n                            break;\n                        }\n                    }\n                }\n            }\n            if (removed) {\n                this._debug('Transport', this.getType(), 'removed envelope, envelopes', envelopes);\n            }\n        }\n\n        function _websocketConnect(context) {\n            // We may have multiple attempts to open a WebSocket\n            // connection, for example a /meta/connect request that\n            // may take time, along with a user-triggered publish.\n            // Early return if we are already connecting.\n            if (_connecting) {\n                return;\n            }\n\n            // Mangle the URL, changing the scheme from 'http' to 'ws'.\n            var url = _cometd.getURL().replace(/^http/, 'ws');\n            this._debug('Transport', this.getType(), 'connecting to URL', url);\n\n            try {\n                var protocol = _cometd.getConfiguration().protocol;\n                context.webSocket = protocol ? new window.WebSocket(url, protocol) : new window.WebSocket(url);\n                _connecting = context;\n            } catch (x) {\n                _webSocketSupported = false;\n                this._debug('Exception while creating WebSocket object', x);\n                throw x;\n            }\n\n            // By default use sticky reconnects.\n            _stickyReconnect = _cometd.getConfiguration().stickyReconnect !== false;\n\n            var self = this;\n            var connectTimeout = _cometd.getConfiguration().connectTimeout;\n            if (connectTimeout > 0) {\n                context.connectTimer = this.setTimeout(function() {\n                    _cometd._debug('Transport', self.getType(), 'timed out while connecting to URL', url, ':', connectTimeout, 'ms');\n                    // The connection was not opened, close anyway.\n                    _forceClose.call(self, context, {code: 1000, reason: 'Connect Timeout'});\n                }, connectTimeout);\n            }\n\n            var onopen = function() {\n                _cometd._debug('WebSocket onopen', context);\n                if (context.connectTimer) {\n                    self.clearTimeout(context.connectTimer);\n                }\n\n                if (_sameContext(context)) {\n                    _connecting = null;\n                    _context = context;\n                    _webSocketConnected = true;\n                    self.onOpen(context);\n                } else {\n                    // We have a valid connection already, close this one.\n                    _cometd._warn('Closing extra WebSocket connection', this, 'active connection', _context);\n                    _forceClose.call(self, context, {code: 1000, reason: 'Extra Connection'});\n                }\n            };\n\n            // This callback is invoked when the server sends the close frame.\n            // The close frame for a connection may arrive *after* another\n            // connection has been opened, so we must make sure that actions\n            // are performed only if it's the same connection.\n            var onclose = function(event) {\n                event = event || {code: 1000};\n                _cometd._debug('WebSocket onclose', context, event, 'connecting', _connecting, 'current', _context);\n\n                if (context.connectTimer) {\n                    self.clearTimeout(context.connectTimer);\n                }\n\n                self.onClose(context, event);\n            };\n\n            var onmessage = function(wsMessage) {\n                _cometd._debug('WebSocket onmessage', wsMessage, context);\n                self.onMessage(context, wsMessage);\n            };\n\n            context.webSocket.onopen = onopen;\n            context.webSocket.onclose = onclose;\n            context.webSocket.onerror = function() {\n                // Clients should call onclose(), but if they do not we do it here for safety.\n                onclose({code: 1000, reason: 'Error'});\n            };\n            context.webSocket.onmessage = onmessage;\n\n            this._debug('Transport', this.getType(), 'configured callbacks on', context);\n        }\n\n        function _onTransportTimeout(context, message, delay) {\n            var result = this._notifyTransportTimeout([message]);\n            if (result > 0) {\n                this._debug('Transport', this.getType(), 'extended waiting for message replies:', result, 'ms');\n                var self = this;\n                context.timeouts[message.id] = this.setTimeout(function() {\n                    _onTransportTimeout.call(self, context, message, delay + result);\n                }, result);\n            } else {\n                this._debug('Transport', this.getType(), 'expired waiting for message reply', message.id, ':', delay, 'ms');\n                _forceClose.call(this, context, {code: 1000, reason: 'Message Timeout'});\n            }\n        }\n\n        function _webSocketSend(context, envelope, metaConnect) {\n            var self = this;\n\n            try {\n                var json = this.convertToJSON(envelope.messages);\n            } catch (x) {\n                this._debug('Transport', this.getType(), 'exception:', x);\n                var mIds = [];\n                for (var j = 0; j < envelope.messages.length; ++j) {\n                    var m = envelope.messages[j];\n                    mIds.push(m.id);\n                }\n                _removeEnvelope.call(this, context, mIds);\n                // Keep the semantic of calling callbacks asynchronously.\n                this.setTimeout(function() {\n                    self._notifyFailure(envelope.onFailure, context, envelope.messages, {\n                        exception: x\n                    });\n                }, 0);\n                return;\n            }\n\n            context.webSocket.send(json);\n            this._debug('Transport', this.getType(), 'sent', envelope, '/meta/connect =', metaConnect);\n\n            // Manage the timeout waiting for the response.\n            var delay = this.getConfiguration().maxNetworkDelay;\n            if (metaConnect) {\n                delay += this.getAdvice().timeout;\n                _connected = true;\n            }\n\n            var messageIds = [];\n            for (var i = 0; i < envelope.messages.length; ++i) {\n                (function() {\n                    var message = envelope.messages[i];\n                    if (message.id) {\n                        messageIds.push(message.id);\n                        context.timeouts[message.id] = self.setTimeout(function() {\n                            _onTransportTimeout.call(self, context, message, delay);\n                        }, delay);\n                    }\n                })();\n            }\n\n            this._debug('Transport', this.getType(), 'started waiting for message replies', delay, 'ms, messageIds:', messageIds, ', timeouts:', context.timeouts);\n        }\n\n        _self._notifySuccess = function(fn, messages) {\n            fn.call(this, messages);\n        };\n\n        _self._notifyFailure = function(fn, context, messages, failure) {\n            fn.call(this, context, messages, failure);\n        };\n\n        function _send(context, envelope, metaConnect) {\n            try {\n                if (context === null) {\n                    context = _connecting || {\n                        envelopes: {},\n                        timeouts: {}\n                    };\n                    _storeEnvelope.call(this, context, envelope, metaConnect);\n                    _websocketConnect.call(this, context);\n                } else {\n                    _storeEnvelope.call(this, context, envelope, metaConnect);\n                    _webSocketSend.call(this, context, envelope, metaConnect);\n                }\n            } catch (x) {\n                // Keep the semantic of calling callbacks asynchronously.\n                var self = this;\n                this.setTimeout(function() {\n                    _forceClose.call(self, context, {\n                        code: 1000,\n                        reason: 'Exception',\n                        exception: x\n                    });\n                }, 0);\n            }\n        }\n\n        _self.onOpen = function(context) {\n            var envelopes = context.envelopes;\n            this._debug('Transport', this.getType(), 'opened', context, 'pending messages', envelopes);\n            for (var key in envelopes) {\n                if (envelopes.hasOwnProperty(key)) {\n                    var element = envelopes[key];\n                    var envelope = element[0];\n                    var metaConnect = element[1];\n                    // Store the success callback, which is independent from the envelope,\n                    // so that it can be used to notify arrival of messages.\n                    _successCallback = envelope.onSuccess;\n                    _webSocketSend.call(this, context, envelope, metaConnect);\n                }\n            }\n        };\n\n        _self.onMessage = function(context, wsMessage) {\n            this._debug('Transport', this.getType(), 'received websocket message', wsMessage, context);\n\n            var close = false;\n            var messages = this.convertToMessages(wsMessage.data);\n            var messageIds = [];\n            for (var i = 0; i < messages.length; ++i) {\n                var message = messages[i];\n\n                // Detect if the message is a response to a request we made.\n                // If it's a meta message, for sure it's a response; otherwise it's\n                // a publish message and publish responses don't have the data field.\n                if (/^\\/meta\\//.test(message.channel) || message.data === undefined) {\n                    if (message.id) {\n                        messageIds.push(message.id);\n\n                        var timeout = context.timeouts[message.id];\n                        if (timeout) {\n                            this.clearTimeout(timeout);\n                            delete context.timeouts[message.id];\n                            this._debug('Transport', this.getType(), 'removed timeout for message', message.id, ', timeouts', context.timeouts);\n                        }\n                    }\n                }\n\n                if ('/meta/connect' === message.channel) {\n                    _connected = false;\n                }\n                if ('/meta/disconnect' === message.channel && !_connected) {\n                    close = true;\n                }\n            }\n\n            // Remove the envelope corresponding to the messages.\n            _removeEnvelope.call(this, context, messageIds);\n\n            this._notifySuccess(_successCallback, messages);\n\n            if (close) {\n                this.webSocketClose(context, 1000, 'Disconnect');\n            }\n        };\n\n        _self.onClose = function(context, event) {\n            this._debug('Transport', this.getType(), 'closed', context, event);\n\n            if (_sameContext(context)) {\n                // Remember if we were able to connect.\n                // This close event could be due to server shutdown,\n                // and if it restarts we want to try websocket again.\n                _webSocketSupported = _stickyReconnect && _webSocketConnected;\n                _connecting = null;\n                _context = null;\n            }\n\n            var timeouts = context.timeouts;\n            context.timeouts = {};\n            for (var id in timeouts) {\n                if (timeouts.hasOwnProperty(id)) {\n                    this.clearTimeout(timeouts[id]);\n                }\n            }\n\n            var envelopes = context.envelopes;\n            context.envelopes = {};\n            for (var key in envelopes) {\n                if (envelopes.hasOwnProperty(key)) {\n                    var envelope = envelopes[key][0];\n                    var metaConnect = envelopes[key][1];\n                    if (metaConnect) {\n                        _connected = false;\n                    }\n                    var failure = {\n                        websocketCode: event.code,\n                        reason: event.reason\n                    };\n                    if (event.exception) {\n                        failure.exception = event.exception;\n                    }\n                    this._notifyFailure(envelope.onFailure, context, envelope.messages, failure);\n                }\n            }\n        };\n\n        _self.registered = function(type, cometd) {\n            _super.registered(type, cometd);\n            _cometd = cometd;\n        };\n\n        _self.accept = function(version, crossDomain, url) {\n            this._debug('Transport', this.getType(), 'accept, supported:', _webSocketSupported);\n            // Using !! to return a boolean (and not the WebSocket object).\n            return _webSocketSupported && !!window.WebSocket && _cometd.websocketEnabled !== false;\n        };\n\n        _self.send = function(envelope, metaConnect) {\n            this._debug('Transport', this.getType(), 'sending', envelope, '/meta/connect =', metaConnect);\n            _send.call(this, _context, envelope, metaConnect);\n        };\n\n        _self.webSocketClose = function(context, code, reason) {\n            try {\n                if (context.webSocket) {\n                    context.webSocket.close(code, reason);\n                }\n            } catch (x) {\n                this._debug(x);\n            }\n        };\n\n        _self.abort = function() {\n            _super.abort();\n            _forceClose.call(this, _context, {code: 1000, reason: 'Abort'});\n            this.reset(true);\n        };\n\n        return _self;\n    };\n\n\n    /**\n     * The constructor for a CometD object, identified by an optional name.\n     * The default name is the string 'default'.\n     * @param name the optional name of this cometd object\n     */\n    var CometD = function(name) {\n        var _scheduler = new Scheduler();\n        var _cometd = this;\n        var _name = name || 'default';\n        var _crossDomain = false;\n        var _transports = new TransportRegistry();\n        var _transport;\n        var _status = 'disconnected';\n        var _messageId = 0;\n        var _clientId = null;\n        var _batch = 0;\n        var _messageQueue = [];\n        var _internalBatch = false;\n        var _listenerId = 0;\n        var _listeners = {};\n        var _transportListeners = {};\n        var _backoff = 0;\n        var _scheduledSend = null;\n        var _extensions = [];\n        var _advice = {};\n        var _handshakeProps;\n        var _handshakeCallback;\n        var _callbacks = {};\n        var _remoteCalls = {};\n        var _reestablish = false;\n        var _connected = false;\n        var _unconnectTime = 0;\n        var _handshakeMessages = 0;\n        var _metaConnect = null;\n        var _config = {\n            useWorkerScheduler: true,\n            protocol: null,\n            stickyReconnect: true,\n            connectTimeout: 0,\n            maxConnections: 2,\n            backoffIncrement: 1000,\n            maxBackoff: 60000,\n            logLevel: 'info',\n            maxNetworkDelay: 10000,\n            requestHeaders: {},\n            appendMessageTypeToURL: true,\n            autoBatch: false,\n            urls: {},\n            maxURILength: 2000,\n            maxSendBayeuxMessageSize: 8192,\n            advice: {\n                timeout: 60000,\n                interval: 0,\n                reconnect: undefined,\n                maxInterval: 0\n            }\n        };\n\n        function _fieldValue(object, name) {\n            try {\n                return object[name];\n            } catch (x) {\n                return undefined;\n            }\n        }\n\n        /**\n         * Mixes in the given objects into the target object by copying the properties.\n         * @param deep if the copy must be deep\n         * @param target the target object\n         * @param objects the objects whose properties are copied into the target\n         */\n        this._mixin = function(deep, target, objects) {\n            var result = target || {};\n\n            // Skip first 2 parameters (deep and target), and loop over the others\n            for (var i = 2; i < arguments.length; ++i) {\n                var object = arguments[i];\n\n                if (object === undefined || object === null) {\n                    continue;\n                }\n\n                for (var propName in object) {\n                    if (object.hasOwnProperty(propName)) {\n                        var prop = _fieldValue(object, propName);\n                        var targ = _fieldValue(result, propName);\n\n                        // Avoid infinite loops\n                        if (prop === target) {\n                            continue;\n                        }\n                        // Do not mixin undefined values\n                        if (prop === undefined) {\n                            continue;\n                        }\n\n                        if (deep && typeof prop === 'object' && prop !== null) {\n                            if (prop instanceof Array) {\n                                result[propName] = this._mixin(deep, targ instanceof Array ? targ : [], prop);\n                            } else {\n                                var source = typeof targ === 'object' && !(targ instanceof Array) ? targ : {};\n                                result[propName] = this._mixin(deep, source, prop);\n                            }\n                        } else {\n                            result[propName] = prop;\n                        }\n                    }\n                }\n            }\n\n            return result;\n        };\n\n        function _isString(value) {\n            return Utils.isString(value);\n        }\n\n        function _isAlpha(char) {\n            if (char >= 'A' && char <= 'Z') {\n                return true;\n            }\n            return char >= 'a' && char <= 'z';\n        }\n\n        function _isNumeric(char) {\n            return char >= '0' && char <= '9';\n        }\n\n        function _isAllowed(char) {\n            switch (char) {\n                case ' ':\n                case '!':\n                case '#':\n                case '$':\n                case '(':\n                case ')':\n                case '*':\n                case '+':\n                case '-':\n                case '.':\n                case '/':\n                case '@':\n                case '_':\n                case '{':\n                case '~':\n                case '}':\n                    return true;\n                default:\n                    return false;\n            }\n        }\n\n        function _isValidChannel(value) {\n            if (!_isString(value)) {\n                return false;\n            }\n            if (value.length < 2) {\n                return false;\n            }\n            if (value.charAt(0) !== '/') {\n                return false;\n            }\n            for (var i = 1; i < value.length; ++i) {\n                var char = value.charAt(i);\n                if (_isAlpha(char) || _isNumeric(char) || _isAllowed(char)) {\n                    continue;\n                }\n                return false;\n            }\n            return true;\n        }\n\n        function _isFunction(value) {\n            if (value === undefined || value === null) {\n                return false;\n            }\n            return typeof value === 'function';\n        }\n\n        function _zeroPad(value, length) {\n            var result = '';\n            while (--length > 0) {\n                if (value >= Math.pow(10, length)) {\n                    break;\n                }\n                result += '0';\n            }\n            result += value;\n            return result;\n        }\n\n        function _log(level, args) {\n            if (window.console) {\n                var logger = window.console[level];\n                if (_isFunction(logger)) {\n                    var now = new Date();\n                    [].splice.call(args, 0, 0, _zeroPad(now.getHours(), 2) + ':' + _zeroPad(now.getMinutes(), 2) + ':' +\n                        _zeroPad(now.getSeconds(), 2) + '.' + _zeroPad(now.getMilliseconds(), 3));\n                    logger.apply(window.console, args);\n                }\n            }\n        }\n\n        this._warn = function() {\n            _log('warn', arguments);\n        };\n\n        this._info = function() {\n            if (_config.logLevel !== 'warn') {\n                _log('info', arguments);\n            }\n        };\n\n        this._debug = function() {\n            if (_config.logLevel === 'debug') {\n                _log('debug', arguments);\n            }\n        };\n\n        function _splitURL(url) {\n            // [1] = protocol://,\n            // [2] = host:port,\n            // [3] = host,\n            // [4] = IPv6_host,\n            // [5] = IPv4_host,\n            // [6] = :port,\n            // [7] = port,\n            // [8] = uri,\n            // [9] = rest (query / fragment)\n            return new RegExp('(^https?://)?(((\\\\[[^\\\\]]+])|([^:/?#]+))(:(\\\\d+))?)?([^?#]*)(.*)?').exec(url);\n        }\n\n        /**\n         * Returns whether the given hostAndPort is cross domain.\n         * The default implementation checks against window.location.host\n         * but this function can be overridden to make it work in non-browser\n         * environments.\n         *\n         * @param hostAndPort the host and port in format host:port\n         * @return whether the given hostAndPort is cross domain\n         */\n        this._isCrossDomain = function(hostAndPort) {\n            if (window.location && window.location.host) {\n                if (hostAndPort) {\n                    return hostAndPort !== window.location.host;\n                }\n            }\n            return false;\n        };\n\n        function _configure(configuration) {\n            _cometd._debug('Configuring cometd object with', configuration);\n            // Support old style param, where only the Bayeux server URL was passed.\n            if (_isString(configuration)) {\n                configuration = {\n                    url: configuration\n                };\n            }\n            if (!configuration) {\n                configuration = {};\n            }\n\n            _config = _cometd._mixin(false, _config, configuration);\n\n            var url = _cometd.getURL();\n            if (!url) {\n                throw 'Missing required configuration parameter \\'url\\' specifying the Bayeux server URL';\n            }\n\n            // Check if we're cross domain.\n            var urlParts = _splitURL(url);\n            var hostAndPort = urlParts[2];\n            var uri = urlParts[8];\n            var afterURI = urlParts[9];\n            _crossDomain = _cometd._isCrossDomain(hostAndPort);\n\n            // Check if appending extra path is supported.\n            if (_config.appendMessageTypeToURL) {\n                if (afterURI !== undefined && afterURI.length > 0) {\n                    _cometd._info('Appending message type to URI ' + uri + afterURI + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n                    _config.appendMessageTypeToURL = false;\n                } else {\n                    var uriSegments = uri.split('/');\n                    var lastSegmentIndex = uriSegments.length - 1;\n                    if (uri.match(/\\/$/)) {\n                        lastSegmentIndex -= 1;\n                    }\n                    if (uriSegments[lastSegmentIndex].indexOf('.') >= 0) {\n                        // Very likely the CometD servlet's URL pattern is mapped to an extension, such as *.cometd\n                        // It will be difficult to add the extra path in this case\n                        _cometd._info('Appending message type to URI ' + uri + ' is not supported, disabling \\'appendMessageTypeToURL\\' configuration');\n                        _config.appendMessageTypeToURL = false;\n                    }\n                }\n            }\n\n            if (window.Worker && window.Blob && window.URL && _config.useWorkerScheduler) {\n                var code = WorkerScheduler.toString();\n                // Remove the function declaration, the opening brace and the closing brace.\n                code = code.substring(code.indexOf('{') + 1, code.lastIndexOf('}'));\n                var blob = new window.Blob([code], {\n                    type: 'application/json'\n                });\n                var blobURL = window.URL.createObjectURL(blob);\n                var worker = new window.Worker(blobURL);\n                _scheduler.setTimeout = function(funktion, delay) {\n                    var id = _scheduler.register(funktion);\n                    worker.postMessage({\n                        id: id,\n                        type: 'setTimeout',\n                        delay: delay\n                    });\n                    return id;\n                };\n                _scheduler.clearTimeout = function(id) {\n                    _scheduler.unregister(id);\n                    worker.postMessage({\n                        id: id,\n                        type: 'clearTimeout'\n                    });\n                };\n                worker.onmessage = function(e) {\n                    var id = e.data.id;\n                    var funktion = _scheduler.unregister(id);\n                    if (funktion) {\n                        funktion();\n                    }\n                };\n            }\n        }\n\n        function _removeListener(subscription) {\n            if (subscription) {\n                var subscriptions = _listeners[subscription.channel];\n                if (subscriptions && subscriptions[subscription.id]) {\n                    delete subscriptions[subscription.id];\n                    _cometd._debug('Removed', subscription.listener ? 'listener' : 'subscription', subscription);\n                }\n            }\n        }\n\n        function _removeSubscription(subscription) {\n            if (subscription && !subscription.listener) {\n                _removeListener(subscription);\n            }\n        }\n\n        function _clearSubscriptions() {\n            for (var channel in _listeners) {\n                if (_listeners.hasOwnProperty(channel)) {\n                    var subscriptions = _listeners[channel];\n                    if (subscriptions) {\n                        for (var id in subscriptions) {\n                            if (subscriptions.hasOwnProperty(id)) {\n                                _removeSubscription(subscriptions[id]);\n                            }\n                        }\n                    }\n                }\n            }\n        }\n\n        function _setStatus(newStatus) {\n            if (_status !== newStatus) {\n                _cometd._debug('Status', _status, '->', newStatus);\n                _status = newStatus;\n            }\n        }\n\n        function _isDisconnected() {\n            return _status === 'disconnecting' || _status === 'disconnected';\n        }\n\n        function _nextMessageId() {\n            var result = ++_messageId;\n            return '' + result;\n        }\n\n        function _applyExtension(scope, callback, name, message, outgoing) {\n            try {\n                return callback.call(scope, message);\n            } catch (x) {\n                var handler = _cometd.onExtensionException;\n                if (_isFunction(handler)) {\n                    _cometd._debug('Invoking extension exception handler', name, x);\n                    try {\n                        handler.call(_cometd, x, name, outgoing, message);\n                    } catch (xx) {\n                        _cometd._info('Exception during execution of extension exception handler', name, xx);\n                    }\n                } else {\n                    _cometd._info('Exception during execution of extension', name, x);\n                }\n                return message;\n            }\n        }\n\n        function _applyIncomingExtensions(message) {\n            for (var i = 0; i < _extensions.length; ++i) {\n                if (message === undefined || message === null) {\n                    break;\n                }\n\n                var extension = _extensions[i];\n                var callback = extension.extension.incoming;\n                if (_isFunction(callback)) {\n                    var result = _applyExtension(extension.extension, callback, extension.name, message, false);\n                    message = result === undefined ? message : result;\n                }\n            }\n            return message;\n        }\n\n        function _applyOutgoingExtensions(message) {\n            for (var i = _extensions.length - 1; i >= 0; --i) {\n                if (message === undefined || message === null) {\n                    break;\n                }\n\n                var extension = _extensions[i];\n                var callback = extension.extension.outgoing;\n                if (_isFunction(callback)) {\n                    var result = _applyExtension(extension.extension, callback, extension.name, message, true);\n                    message = result === undefined ? message : result;\n                }\n            }\n            return message;\n        }\n\n        function _notify(channel, message) {\n            var subscriptions = _listeners[channel];\n            if (subscriptions) {\n                for (var id in subscriptions) {\n                    if (subscriptions.hasOwnProperty(id)) {\n                        var subscription = subscriptions[id];\n                        // Subscriptions may come and go, so the array may have 'holes'\n                        if (subscription) {\n                            try {\n                                subscription.callback.call(subscription.scope, message);\n                            } catch (x) {\n                                var handler = _cometd.onListenerException;\n                                if (_isFunction(handler)) {\n                                    _cometd._debug('Invoking listener exception handler', subscription, x);\n                                    try {\n                                        handler.call(_cometd, x, subscription, subscription.listener, message);\n                                    } catch (xx) {\n                                        _cometd._info('Exception during execution of listener exception handler', subscription, xx);\n                                    }\n                                } else {\n                                    _cometd._info('Exception during execution of listener', subscription, message, x);\n                                }\n                            }\n                        }\n                    }\n                }\n            }\n        }\n\n        function _notifyListeners(channel, message) {\n            // Notify direct listeners\n            _notify(channel, message);\n\n            // Notify the globbing listeners\n            var channelParts = channel.split('/');\n            var last = channelParts.length - 1;\n            for (var i = last; i > 0; --i) {\n                var channelPart = channelParts.slice(0, i).join('/') + '/*';\n                // We don't want to notify /foo/* if the channel is /foo/bar/baz,\n                // so we stop at the first non recursive globbing\n                if (i === last) {\n                    _notify(channelPart, message);\n                }\n                // Add the recursive globber and notify\n                channelPart += '*';\n                _notify(channelPart, message);\n            }\n        }\n\n        function _cancelDelayedSend() {\n            if (_scheduledSend !== null) {\n                _cometd.clearTimeout(_scheduledSend);\n            }\n            _scheduledSend = null;\n        }\n\n        function _delayedSend(operation, delay) {\n            _cancelDelayedSend();\n            var time = _advice.interval + delay;\n            _cometd._debug('Function scheduled in', time, 'ms, interval =', _advice.interval, 'backoff =', _backoff, operation);\n            _scheduledSend = _cometd.setTimeout(operation, time);\n        }\n\n        // Needed to break cyclic dependencies between function definitions\n        var _handleMessages;\n        var _handleFailure;\n\n        /**\n         * Delivers the messages to the CometD server\n         * @param messages the array of messages to send\n         * @param metaConnect true if this send is on /meta/connect\n         * @param extraPath an extra path to append to the Bayeux server URL\n         */\n        function _send(messages, metaConnect, extraPath) {\n            // We must be sure that the messages have a clientId.\n            // This is not guaranteed since the handshake may take time to return\n            // (and hence the clientId is not known yet) and the application\n            // may create other messages.\n            for (var i = 0; i < messages.length; ++i) {\n                var message = messages[i];\n                var messageId = message.id;\n\n                if (_clientId) {\n                    message.clientId = _clientId;\n                }\n\n                message = _applyOutgoingExtensions(message);\n                if (message !== undefined && message !== null) {\n                    // Extensions may have modified the message id, but we need to own it.\n                    message.id = messageId;\n                    messages[i] = message;\n                } else {\n                    delete _callbacks[messageId];\n                    messages.splice(i--, 1);\n                }\n            }\n\n            if (messages.length === 0) {\n                return;\n            }\n\n            if (metaConnect) {\n                _metaConnect = messages[0];\n            }\n\n            var url = _cometd.getURL();\n            if (_config.appendMessageTypeToURL) {\n                // If url does not end with '/', then append it\n                if (!url.match(/\\/$/)) {\n                    url = url + '/';\n                }\n                if (extraPath) {\n                    url = url + extraPath;\n                }\n            }\n\n            var envelope = {\n                url: url,\n                sync: false,\n                messages: messages,\n                onSuccess: function(rcvdMessages) {\n                    try {\n                        _handleMessages.call(_cometd, rcvdMessages);\n                    } catch (x) {\n                        _cometd._info('Exception during handling of messages', x);\n                    }\n                },\n                onFailure: function(conduit, messages, failure) {\n                    try {\n                        var transport = _cometd.getTransport();\n                        failure.connectionType = transport ? transport.getType() : \"unknown\";\n                        _handleFailure.call(_cometd, conduit, messages, failure);\n                    } catch (x) {\n                        _cometd._info('Exception during handling of failure', x);\n                    }\n                }\n            };\n            _cometd._debug('Send', envelope);\n            _transport.send(envelope, metaConnect);\n        }\n\n        function _queueSend(message) {\n            if (_batch > 0 || _internalBatch === true) {\n                _messageQueue.push(message);\n            } else {\n                _send([message], false);\n            }\n        }\n\n        /**\n         * Sends a complete bayeux message.\n         * This method is exposed as a public so that extensions may use it\n         * to send bayeux message directly, for example in case of re-sending\n         * messages that have already been sent but that for some reason must\n         * be resent.\n         */\n        this.send = _queueSend;\n\n        function _resetBackoff() {\n            _backoff = 0;\n        }\n\n        function _increaseBackoff() {\n            if (_backoff < _config.maxBackoff) {\n                _backoff += _config.backoffIncrement;\n            }\n            return _backoff;\n        }\n\n        /**\n         * Starts a the batch of messages to be sent in a single request.\n         * @see #_endBatch(sendMessages)\n         */\n        function _startBatch() {\n            ++_batch;\n            _cometd._debug('Starting batch, depth', _batch);\n        }\n\n        function _flushBatch() {\n            var messages = _messageQueue;\n            _messageQueue = [];\n            if (messages.length > 0) {\n                _send(messages, false);\n            }\n        }\n\n        /**\n         * Ends the batch of messages to be sent in a single request,\n         * optionally sending messages present in the message queue depending\n         * on the given argument.\n         * @see #_startBatch()\n         */\n        function _endBatch() {\n            --_batch;\n            _cometd._debug('Ending batch, depth', _batch);\n            if (_batch < 0) {\n                throw 'Calls to startBatch() and endBatch() are not paired';\n            }\n\n            if (_batch === 0 && !_isDisconnected() && !_internalBatch) {\n                _flushBatch();\n            }\n        }\n\n        /**\n         * Sends the connect message\n         */\n        function _connect() {\n            if (!_isDisconnected()) {\n                var bayeuxMessage = {\n                    id: _nextMessageId(),\n                    channel: '/meta/connect',\n                    connectionType: _transport.getType()\n                };\n\n                // In case of reload or temporary loss of connection\n                // we want the next successful connect to return immediately\n                // instead of being held by the server, so that connect listeners\n                // can be notified that the connection has been re-established\n                if (!_connected) {\n                    bayeuxMessage.advice = {\n                        timeout: 0\n                    };\n                }\n\n                _setStatus('connecting');\n                _cometd._debug('Connect sent', bayeuxMessage);\n                _send([bayeuxMessage], true, 'connect');\n                _setStatus('connected');\n            }\n        }\n\n        function _delayedConnect(delay) {\n            _setStatus('connecting');\n            _delayedSend(function() {\n                _connect();\n            }, delay);\n        }\n\n        function _updateAdvice(newAdvice) {\n            if (newAdvice) {\n                _advice = _cometd._mixin(false, {}, _config.advice, newAdvice);\n                _cometd._debug('New advice', _advice);\n            }\n        }\n\n        function _disconnect(abort) {\n            _cancelDelayedSend();\n            if (abort && _transport) {\n                _transport.abort();\n            }\n            _crossDomain = false;\n            _transport = null;\n            _setStatus('disconnected');\n            _clientId = null;\n            _batch = 0;\n            _resetBackoff();\n            _reestablish = false;\n            _connected = false;\n            _unconnectTime = 0;\n            _metaConnect = null;\n\n            // Fail any existing queued message\n            if (_messageQueue.length > 0) {\n                var messages = _messageQueue;\n                _messageQueue = [];\n                _handleFailure.call(_cometd, undefined, messages, {\n                    reason: 'Disconnected'\n                });\n            }\n        }\n\n        function _notifyTransportException(oldTransport, newTransport, failure) {\n            var handler = _cometd.onTransportException;\n            if (_isFunction(handler)) {\n                _cometd._debug('Invoking transport exception handler', oldTransport, newTransport, failure);\n                try {\n                    handler.call(_cometd, failure, oldTransport, newTransport);\n                } catch (x) {\n                    _cometd._info('Exception during execution of transport exception handler', x);\n                }\n            }\n        }\n\n        /**\n         * Sends the initial handshake message\n         */\n        function _handshake(handshakeProps, handshakeCallback) {\n            if (_isFunction(handshakeProps)) {\n                handshakeCallback = handshakeProps;\n                handshakeProps = undefined;\n            }\n\n            _clientId = null;\n\n            _clearSubscriptions();\n\n            // Reset the transports if we're not retrying the handshake\n            if (_isDisconnected()) {\n                _transports.reset(true);\n            }\n\n            // Reset the advice.\n            _updateAdvice({});\n\n            _batch = 0;\n\n            // Mark the start of an internal batch.\n            // This is needed because handshake and connect are async.\n            // It may happen that the application calls init() then subscribe()\n            // and the subscribe message is sent before the connect message, if\n            // the subscribe message is not held until the connect message is sent.\n            // So here we start a batch to hold temporarily any message until\n            // the connection is fully established.\n            _internalBatch = true;\n\n            // Save the properties provided by the user, so that\n            // we can reuse them during automatic re-handshake\n            _handshakeProps = handshakeProps;\n            _handshakeCallback = handshakeCallback;\n\n            var version = '1.0';\n\n            // Figure out the transports to send to the server\n            var url = _cometd.getURL();\n            var transportTypes = _transports.findTransportTypes(version, _crossDomain, url);\n\n            var bayeuxMessage = {\n                id: _nextMessageId(),\n                version: version,\n                minimumVersion: version,\n                channel: '/meta/handshake',\n                supportedConnectionTypes: transportTypes,\n                advice: {\n                    timeout: _advice.timeout,\n                    interval: _advice.interval\n                }\n            };\n            // Do not allow the user to override important fields.\n            var message = _cometd._mixin(false, {}, _handshakeProps, bayeuxMessage);\n\n            // Save the callback.\n            _cometd._putCallback(message.id, handshakeCallback);\n\n            // Pick up the first available transport as initial transport\n            // since we don't know if the server supports it\n            if (!_transport) {\n                _transport = _transports.negotiateTransport(transportTypes, version, _crossDomain, url);\n                if (!_transport) {\n                    var failure = 'Could not find initial transport among: ' + _transports.getTransportTypes();\n                    _cometd._warn(failure);\n                    throw failure;\n                }\n            }\n\n            _cometd._debug('Initial transport is', _transport.getType());\n\n            // We started a batch to hold the application messages,\n            // so here we must bypass it and send immediately.\n            _setStatus('handshaking');\n            _cometd._debug('Handshake sent', message);\n            _send([message], false, 'handshake');\n        }\n\n        function _delayedHandshake(delay) {\n            _setStatus('handshaking');\n\n            // We will call _handshake() which will reset _clientId, but we want to avoid\n            // that between the end of this method and the call to _handshake() someone may\n            // call publish() (or other methods that call _queueSend()).\n            _internalBatch = true;\n\n            _delayedSend(function() {\n                _handshake(_handshakeProps, _handshakeCallback);\n            }, delay);\n        }\n\n        function _notifyCallback(callback, message) {\n            try {\n                callback.call(_cometd, message);\n            } catch (x) {\n                var handler = _cometd.onCallbackException;\n                if (_isFunction(handler)) {\n                    _cometd._debug('Invoking callback exception handler', x);\n                    try {\n                        handler.call(_cometd, x, message);\n                    } catch (xx) {\n                        _cometd._info('Exception during execution of callback exception handler', xx);\n                    }\n                } else {\n                    _cometd._info('Exception during execution of message callback', x);\n                }\n            }\n        }\n\n        this._getCallback = function(messageId) {\n            return _callbacks[messageId];\n        };\n\n        this._putCallback = function(messageId, callback) {\n            var result = this._getCallback(messageId);\n            if (_isFunction(callback)) {\n                _callbacks[messageId] = callback;\n            }\n            return result;\n        };\n\n        function _handleCallback(message) {\n            var callback = _cometd._getCallback([message.id]);\n            if (_isFunction(callback)) {\n                delete _callbacks[message.id];\n                _notifyCallback(callback, message);\n            }\n        }\n\n        function _handleRemoteCall(message) {\n            var context = _remoteCalls[message.id];\n            delete _remoteCalls[message.id];\n            if (context) {\n                _cometd._debug('Handling remote call response for', message, 'with context', context);\n\n                // Clear the timeout, if present.\n                var timeout = context.timeout;\n                if (timeout) {\n                    _cometd.clearTimeout(timeout);\n                }\n\n                var callback = context.callback;\n                if (_isFunction(callback)) {\n                    _notifyCallback(callback, message);\n                    return true;\n                }\n            }\n            return false;\n        }\n\n        this.onTransportFailure = function(message, failureInfo, failureHandler) {\n            this._debug('Transport failure', failureInfo, 'for', message);\n\n            var transports = this.getTransportRegistry();\n            var url = this.getURL();\n            var crossDomain = this._isCrossDomain(_splitURL(url)[2]);\n            var version = '1.0';\n            var transportTypes = transports.findTransportTypes(version, crossDomain, url);\n\n            if (failureInfo.action === 'none') {\n                if (message.channel === '/meta/handshake') {\n                    if (!failureInfo.transport) {\n                        var failure = 'Could not negotiate transport, client=[' + transportTypes + '], server=[' + message.supportedConnectionTypes + ']';\n                        this._warn(failure);\n                        _notifyTransportException(_transport.getType(), null, {\n                            reason: failure,\n                            connectionType: _transport.getType(),\n                            transport: _transport\n                        });\n                    }\n                }\n            } else {\n                failureInfo.delay = this.getBackoffPeriod();\n                // Different logic depending on whether we are handshaking or connecting.\n                if (message.channel === '/meta/handshake') {\n                    if (!failureInfo.transport) {\n                        // The transport is invalid, try to negotiate again.\n                        var oldTransportType = _transport ? _transport.getType() : null;\n                        var newTransport = transports.negotiateTransport(transportTypes, version, crossDomain, url);\n                        if (!newTransport) {\n                            this._warn('Could not negotiate transport, client=[' + transportTypes + ']');\n                            _notifyTransportException(oldTransportType, null, message.failure);\n                            failureInfo.action = 'none';\n                        } else {\n                            var newTransportType = newTransport.getType();\n                            this._debug('Transport', oldTransportType, '->', newTransportType);\n                            _notifyTransportException(oldTransportType, newTransportType, message.failure);\n                            failureInfo.action = 'handshake';\n                            failureInfo.transport = newTransport;\n                        }\n                    }\n\n                    if (failureInfo.action !== 'none') {\n                        this.increaseBackoffPeriod();\n                    }\n                } else {\n                    var now = new Date().getTime();\n\n                    if (_unconnectTime === 0) {\n                        _unconnectTime = now;\n                    }\n\n                    if (failureInfo.action === 'retry') {\n                        failureInfo.delay = this.increaseBackoffPeriod();\n                        // Check whether we may switch to handshaking.\n                        var maxInterval = _advice.maxInterval;\n                        if (maxInterval > 0) {\n                            var expiration = _advice.timeout + _advice.interval + maxInterval;\n                            var unconnected = now - _unconnectTime;\n                            if (unconnected + _backoff > expiration) {\n                                failureInfo.action = 'handshake';\n                            }\n                        }\n                    }\n\n                    if (failureInfo.action === 'handshake') {\n                        failureInfo.delay = 0;\n                        transports.reset(false);\n                        this.resetBackoffPeriod();\n                    }\n                }\n            }\n\n            failureHandler.call(_cometd, failureInfo);\n        };\n\n        function _handleTransportFailure(failureInfo) {\n            _cometd._debug('Transport failure handling', failureInfo);\n\n            if (failureInfo.transport) {\n                _transport = failureInfo.transport;\n            }\n\n            if (failureInfo.url) {\n                _transport.setURL(failureInfo.url);\n            }\n\n            var action = failureInfo.action;\n            var delay = failureInfo.delay || 0;\n            switch (action) {\n                case 'handshake':\n                    _delayedHandshake(delay);\n                    break;\n                case 'retry':\n                    _delayedConnect(delay);\n                    break;\n                case 'none':\n                    _disconnect(true);\n                    break;\n                default:\n                    throw 'Unknown action ' + action;\n            }\n        }\n\n        function _failHandshake(message, failureInfo) {\n            _handleCallback(message);\n            _notifyListeners('/meta/handshake', message);\n            _notifyListeners('/meta/unsuccessful', message);\n\n            // The listeners may have disconnected.\n            if (_isDisconnected()) {\n                failureInfo.action = 'none';\n            }\n\n            _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n        }\n\n        function _handshakeResponse(message) {\n            var url = _cometd.getURL();\n            if (message.successful) {\n                var crossDomain = _cometd._isCrossDomain(_splitURL(url)[2]);\n                var newTransport = _transports.negotiateTransport(message.supportedConnectionTypes, message.version, crossDomain, url);\n                if (newTransport === null) {\n                    message.successful = false;\n                    _failHandshake(message, {\n                        cause: 'negotiation',\n                        action: 'none',\n                        transport: null\n                    });\n                    return;\n                } else if (_transport !== newTransport) {\n                    _cometd._debug('Transport', _transport.getType(), '->', newTransport.getType());\n                    _transport = newTransport;\n                }\n\n                _clientId = message.clientId;\n\n                // End the internal batch and allow held messages from the application\n                // to go to the server (see _handshake() where we start the internal batch).\n                _internalBatch = false;\n                _flushBatch();\n\n                // Here the new transport is in place, as well as the clientId, so\n                // the listeners can perform a publish() if they want.\n                // Notify the listeners before the connect below.\n                message.reestablish = _reestablish;\n                _reestablish = true;\n\n                _handleCallback(message);\n                _notifyListeners('/meta/handshake', message);\n\n                _handshakeMessages = message['x-messages'] || 0;\n\n                var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n                switch (action) {\n                    case 'retry':\n                        _resetBackoff();\n                        if (_handshakeMessages === 0) {\n                            _delayedConnect(0);\n                        } else {\n                            _cometd._debug('Processing', _handshakeMessages, 'handshake-delivered messages');\n                        }\n                        break;\n                    case 'none':\n                        _disconnect(true);\n                        break;\n                    default:\n                        throw 'Unrecognized advice action ' + action;\n                }\n            } else {\n                _failHandshake(message, {\n                    cause: 'unsuccessful',\n                    action: _advice.reconnect || 'handshake',\n                    transport: _transport\n                });\n            }\n        }\n\n        function _handshakeFailure(message) {\n            _failHandshake(message, {\n                cause: 'failure',\n                action: 'handshake',\n                transport: null\n            });\n        }\n\n        function _matchMetaConnect(connect) {\n            if (_status === 'disconnected') {\n                return true;\n            }\n            if (_metaConnect && _metaConnect.id === connect.id) {\n                _metaConnect = null;\n                return true;\n            }\n            return false;\n        }\n\n        function _failConnect(message, failureInfo) {\n            // Notify the listeners after the status change but before the next action.\n            _notifyListeners('/meta/connect', message);\n            _notifyListeners('/meta/unsuccessful', message);\n\n            // The listeners may have disconnected.\n            if (_isDisconnected()) {\n                failureInfo.action = 'none';\n            }\n\n            _cometd.onTransportFailure.call(_cometd, message, failureInfo, _handleTransportFailure);\n        }\n\n        function _connectResponse(message) {\n            if (_matchMetaConnect(message)) {\n                _connected = message.successful;\n                if (_connected) {\n                    _notifyListeners('/meta/connect', message);\n\n                    // Normally, the advice will say \"reconnect: 'retry', interval: 0\"\n                    // and the server will hold the request, so when a response returns\n                    // we immediately call the server again (long polling).\n                    // Listeners can call disconnect(), so check the state after they run.\n                    var action = _isDisconnected() ? 'none' : _advice.reconnect || 'retry';\n                    switch (action) {\n                        case 'retry':\n                            _resetBackoff();\n                            _delayedConnect(_backoff);\n                            break;\n                        case 'none':\n                            _disconnect(false);\n                            break;\n                        default:\n                            throw 'Unrecognized advice action ' + action;\n                    }\n                } else {\n                    _failConnect(message, {\n                        cause: 'unsuccessful',\n                        action: _advice.reconnect || 'retry',\n                        transport: _transport\n                    });\n                }\n            } else {\n                _cometd._debug('Mismatched /meta/connect reply', message);\n            }\n        }\n\n        function _connectFailure(message) {\n            if (_matchMetaConnect(message)) {\n                _connected = false;\n                _failConnect(message, {\n                    cause: 'failure',\n                    action: 'retry',\n                    transport: null\n                });\n            } else {\n                _cometd._debug('Mismatched /meta/connect failure', message);\n            }\n        }\n\n        function _failDisconnect(message) {\n            _disconnect(true);\n            _handleCallback(message);\n            _notifyListeners('/meta/disconnect', message);\n            _notifyListeners('/meta/unsuccessful', message);\n        }\n\n        function _disconnectResponse(message) {\n            if (message.successful) {\n                // Wait for the /meta/connect to arrive.\n                _disconnect(false);\n                _handleCallback(message);\n                _notifyListeners('/meta/disconnect', message);\n            } else {\n                _failDisconnect(message);\n            }\n        }\n\n        function _disconnectFailure(message) {\n            _failDisconnect(message);\n        }\n\n        function _failSubscribe(message) {\n            var subscriptions = _listeners[message.subscription];\n            if (subscriptions) {\n                for (var id in subscriptions) {\n                    if (subscriptions.hasOwnProperty(id)) {\n                        var subscription = subscriptions[id];\n                        if (subscription && !subscription.listener) {\n                            delete subscriptions[id];\n                            _cometd._debug('Removed failed subscription', subscription);\n                        }\n                    }\n                }\n            }\n            _handleCallback(message);\n            _notifyListeners('/meta/subscribe', message);\n            _notifyListeners('/meta/unsuccessful', message);\n        }\n\n        function _subscribeResponse(message) {\n            if (message.successful) {\n                _handleCallback(message);\n                _notifyListeners('/meta/subscribe', message);\n            } else {\n                _failSubscribe(message);\n            }\n        }\n\n        function _subscribeFailure(message) {\n            _failSubscribe(message);\n        }\n\n        function _failUnsubscribe(message) {\n            _handleCallback(message);\n            _notifyListeners('/meta/unsubscribe', message);\n            _notifyListeners('/meta/unsuccessful', message);\n        }\n\n        function _unsubscribeResponse(message) {\n            if (message.successful) {\n                _handleCallback(message);\n                _notifyListeners('/meta/unsubscribe', message);\n            } else {\n                _failUnsubscribe(message);\n            }\n        }\n\n        function _unsubscribeFailure(message) {\n            _failUnsubscribe(message);\n        }\n\n        function _failMessage(message) {\n            if (!_handleRemoteCall(message)) {\n                _handleCallback(message);\n                _notifyListeners('/meta/publish', message);\n                _notifyListeners('/meta/unsuccessful', message);\n            }\n        }\n\n        function _messageResponse(message) {\n            if (message.data !== undefined) {\n                if (!_handleRemoteCall(message)) {\n                    _notifyListeners(message.channel, message);\n                    if (_handshakeMessages > 0) {\n                        --_handshakeMessages;\n                        if (_handshakeMessages === 0) {\n                            _cometd._debug('Processed last handshake-delivered message');\n                            _delayedConnect(0);\n                        }\n                    }\n                }\n            } else {\n                if (message.successful === undefined) {\n                    _cometd._warn('Unknown Bayeux Message', message);\n                } else {\n                    if (message.successful) {\n                        _handleCallback(message);\n                        _notifyListeners('/meta/publish', message);\n                    } else {\n                        _failMessage(message);\n                    }\n                }\n            }\n        }\n\n        function _messageFailure(failure) {\n            _failMessage(failure);\n        }\n\n        function _receive(message) {\n            _unconnectTime = 0;\n\n            message = _applyIncomingExtensions(message);\n            if (message === undefined || message === null) {\n                return;\n            }\n\n            _updateAdvice(message.advice);\n\n            var channel = message.channel;\n            switch (channel) {\n                case '/meta/handshake':\n                    _handshakeResponse(message);\n                    break;\n                case '/meta/connect':\n                    _connectResponse(message);\n                    break;\n                case '/meta/disconnect':\n                    _disconnectResponse(message);\n                    break;\n                case '/meta/subscribe':\n                    _subscribeResponse(message);\n                    break;\n                case '/meta/unsubscribe':\n                    _unsubscribeResponse(message);\n                    break;\n                default:\n                    _messageResponse(message);\n                    break;\n            }\n        }\n\n        /**\n         * Receives a message.\n         * This method is exposed as a public so that extensions may inject\n         * messages simulating that they had been received.\n         */\n        this.receive = _receive;\n\n        _handleMessages = function(rcvdMessages) {\n            _cometd._debug('Received', rcvdMessages);\n\n            for (var i = 0; i < rcvdMessages.length; ++i) {\n                var message = rcvdMessages[i];\n                _receive(message);\n            }\n        };\n\n        _handleFailure = function(conduit, messages, failure) {\n            _cometd._debug('handleFailure', conduit, messages, failure);\n\n            failure.transport = conduit;\n            for (var i = 0; i < messages.length; ++i) {\n                var message = messages[i];\n                var failureMessage = {\n                    id: message.id,\n                    successful: false,\n                    channel: message.channel,\n                    failure: failure\n                };\n                failure.message = message;\n                switch (message.channel) {\n                    case '/meta/handshake':\n                        _handshakeFailure(failureMessage);\n                        break;\n                    case '/meta/connect':\n                        _connectFailure(failureMessage);\n                        break;\n                    case '/meta/disconnect':\n                        _disconnectFailure(failureMessage);\n                        break;\n                    case '/meta/subscribe':\n                        failureMessage.subscription = message.subscription;\n                        _subscribeFailure(failureMessage);\n                        break;\n                    case '/meta/unsubscribe':\n                        failureMessage.subscription = message.subscription;\n                        _unsubscribeFailure(failureMessage);\n                        break;\n                    default:\n                        _messageFailure(failureMessage);\n                        break;\n                }\n            }\n        };\n\n        function _hasSubscriptions(channel) {\n            var subscriptions = _listeners[channel];\n            if (subscriptions) {\n                for (var id in subscriptions) {\n                    if (subscriptions.hasOwnProperty(id)) {\n                        if (subscriptions[id]) {\n                            return true;\n                        }\n                    }\n                }\n            }\n            return false;\n        }\n\n        function _resolveScopedCallback(scope, callback) {\n            var delegate = {\n                scope: scope,\n                method: callback\n            };\n            if (_isFunction(scope)) {\n                delegate.scope = undefined;\n                delegate.method = scope;\n            } else {\n                if (_isString(callback)) {\n                    if (!scope) {\n                        throw 'Invalid scope ' + scope;\n                    }\n                    delegate.method = scope[callback];\n                    if (!_isFunction(delegate.method)) {\n                        throw 'Invalid callback ' + callback + ' for scope ' + scope;\n                    }\n                } else if (!_isFunction(callback)) {\n                    throw 'Invalid callback ' + callback;\n                }\n            }\n            return delegate;\n        }\n\n        function _addListener(channel, scope, callback, isListener) {\n            // The data structure is a map<channel, subscription[]>, where each subscription\n            // holds the callback to be called and its scope.\n\n            var delegate = _resolveScopedCallback(scope, callback);\n            _cometd._debug('Adding', isListener ? 'listener' : 'subscription', 'on', channel, 'with scope', delegate.scope, 'and callback', delegate.method);\n\n            var id = ++_listenerId;\n            var subscription = {\n                id: id,\n                channel: channel,\n                scope: delegate.scope,\n                callback: delegate.method,\n                listener: isListener\n            };\n\n            var subscriptions = _listeners[channel];\n            if (!subscriptions) {\n                subscriptions = {};\n                _listeners[channel] = subscriptions;\n            }\n\n            subscriptions[id] = subscription;\n\n            _cometd._debug('Added', isListener ? 'listener' : 'subscription', subscription);\n\n            return subscription;\n        }\n\n        //\n        // PUBLIC API\n        //\n\n        /**\n         * Registers the given transport under the given transport type.\n         * The optional index parameter specifies the \"priority\" at which the\n         * transport is registered (where 0 is the max priority).\n         * If a transport with the same type is already registered, this function\n         * does nothing and returns false.\n         * @param type the transport type\n         * @param transport the transport object\n         * @param index the index at which this transport is to be registered\n         * @return true if the transport has been registered, false otherwise\n         * @see #unregisterTransport(type)\n         */\n        this.registerTransport = function(type, transport, index) {\n            var result = _transports.add(type, transport, index);\n            if (result) {\n                this._debug('Registered transport', type);\n\n                if (_isFunction(transport.registered)) {\n                    transport.registered(type, this);\n                }\n            }\n            return result;\n        };\n\n        /**\n         * Unregisters the transport with the given transport type.\n         * @param type the transport type to unregister\n         * @return the transport that has been unregistered,\n         * or null if no transport was previously registered under the given transport type\n         */\n        this.unregisterTransport = function(type) {\n            var transport = _transports.remove(type);\n            if (transport !== null) {\n                this._debug('Unregistered transport', type);\n\n                if (_isFunction(transport.unregistered)) {\n                    transport.unregistered();\n                }\n            }\n            return transport;\n        };\n\n        this.unregisterTransports = function() {\n            _transports.clear();\n        };\n\n        /**\n         * @return an array of all registered transport types\n         */\n        this.getTransportTypes = function() {\n            return _transports.getTransportTypes();\n        };\n\n        this.findTransport = function(name) {\n            return _transports.find(name);\n        };\n\n        /**\n         * @returns the TransportRegistry object\n         */\n        this.getTransportRegistry = function() {\n            return _transports;\n        };\n\n        /**\n         * Configures the initial Bayeux communication with the Bayeux server.\n         * Configuration is passed via an object that must contain a mandatory field <code>url<\/code>\n         * of type string containing the URL of the Bayeux server.\n         * @param configuration the configuration object\n         */\n        this.configure = function(configuration) {\n            _configure.call(this, configuration);\n        };\n\n        /**\n         * Configures and establishes the Bayeux communication with the Bayeux server\n         * via a handshake and a subsequent connect.\n         * @param configuration the configuration object\n         * @param handshakeProps an object to be merged with the handshake message\n         * @see #configure(configuration)\n         * @see #handshake(handshakeProps)\n         */\n        this.init = function(configuration, handshakeProps) {\n            this.configure(configuration);\n            this.handshake(handshakeProps);\n        };\n\n        /**\n         * Establishes the Bayeux communication with the Bayeux server\n         * via a handshake and a subsequent connect.\n         * @param handshakeProps an object to be merged with the handshake message\n         * @param handshakeCallback a function to be invoked when the handshake is acknowledged\n         */\n        this.handshake = function(handshakeProps, handshakeCallback) {\n            if (_status !== 'disconnected') {\n                throw 'Illegal state: handshaken';\n            }\n            _handshake(handshakeProps, handshakeCallback);\n        };\n\n        /**\n         * Disconnects from the Bayeux server.\n         * @param disconnectProps an object to be merged with the disconnect message\n         * @param disconnectCallback a function to be invoked when the disconnect is acknowledged\n         */\n        this.disconnect = function(disconnectProps, disconnectCallback) {\n            if (_isDisconnected()) {\n                return;\n            }\n\n            if (_isFunction(disconnectProps)) {\n                disconnectCallback = disconnectProps;\n                disconnectProps = undefined;\n            }\n\n            var bayeuxMessage = {\n                id: _nextMessageId(),\n                channel: '/meta/disconnect'\n            };\n            // Do not allow the user to override important fields.\n            var message = this._mixin(false, {}, disconnectProps, bayeuxMessage);\n\n            // Save the callback.\n            _cometd._putCallback(message.id, disconnectCallback);\n\n            _setStatus('disconnecting');\n            _send([message], false, 'disconnect');\n        };\n\n        /**\n         * Marks the start of a batch of application messages to be sent to the server\n         * in a single request, obtaining a single response containing (possibly) many\n         * application reply messages.\n         * Messages are held in a queue and not sent until {@link #endBatch()} is called.\n         * If startBatch() is called multiple times, then an equal number of endBatch()\n         * calls must be made to close and send the batch of messages.\n         * @see #endBatch()\n         */\n        this.startBatch = function() {\n            _startBatch();\n        };\n\n        /**\n         * Marks the end of a batch of application messages to be sent to the server\n         * in a single request.\n         * @see #startBatch()\n         */\n        this.endBatch = function() {\n            _endBatch();\n        };\n\n        /**\n         * Executes the given callback in the given scope, surrounded by a {@link #startBatch()}\n         * and {@link #endBatch()} calls.\n         * @param scope the scope of the callback, may be omitted\n         * @param callback the callback to be executed within {@link #startBatch()} and {@link #endBatch()} calls\n         */\n        this.batch = function(scope, callback) {\n            var delegate = _resolveScopedCallback(scope, callback);\n            this.startBatch();\n            try {\n                delegate.method.call(delegate.scope);\n                this.endBatch();\n            } catch (x) {\n                this._info('Exception during execution of batch', x);\n                this.endBatch();\n                throw x;\n            }\n        };\n\n        /**\n         * Adds a transport listener for the specified transport event,\n         * executing the given callback when the event happens.\n         *\n         * The currently supported event is `timeout`.\n         *\n         * The callback function takes an array of messages for which\n         * the event happened.\n         *\n         * For the 'timeout' event, the callback function may return a\n         * positive value that extends the wait for message replies by\n         * the returned amount, in milliseconds.\n         *\n         * @param {String} event the type of transport event\n         * @param {Function} callback the function associate to the given transport event\n         * @see #removeTransportListener\n         */\n        this.addTransportListener = function(event, callback) {\n            if (event !== 'timeout') {\n                throw 'Unsupported event ' + event;\n            }\n            var callbacks = _transportListeners[event];\n            if (!callbacks) {\n                _transportListeners[event] = callbacks = [];\n            }\n            callbacks.push(callback);\n        }\n\n        /**\n         * Removes the transport listener for the specified transport event.\n         * @param {String} event the type of transport event\n         * @param {Function} callback the function disassociate from the given transport event\n         * @return {boolean} whether the disassociation was successful\n         * @see #addTransportListener\n         */\n        this.removeTransportListener = function(event, callback) {\n            var callbacks = _transportListeners[event];\n            if (callbacks) {\n                var index = callbacks.indexOf(callback);\n                if (index >= 0) {\n                    callbacks.splice(index, 1);\n                    return true;\n                }\n            }\n            return false;\n        }\n\n        this._getTransportListeners = function(event) {\n            return _transportListeners[event];\n        }\n\n        /**\n         * Adds a listener for bayeux messages, performing the given callback in the given scope\n         * when a message for the given channel arrives.\n         * @param channel the channel the listener is interested to\n         * @param scope the scope of the callback, may be omitted\n         * @param callback the callback to call when a message is sent to the channel\n         * @returns the subscription handle to be passed to {@link #removeListener(object)}\n         * @see #removeListener(subscription)\n         */\n        this.addListener = function(channel, scope, callback) {\n            if (arguments.length < 2) {\n                throw 'Illegal arguments number: required 2, got ' + arguments.length;\n            }\n            if (!_isString(channel)) {\n                throw 'Illegal argument type: channel must be a string';\n            }\n\n            return _addListener(channel, scope, callback, true);\n        };\n\n        /**\n         * Removes the subscription obtained with a call to {@link #addListener(string, object, function)}.\n         * @param subscription the subscription to unsubscribe.\n         * @see #addListener(channel, scope, callback)\n         */\n        this.removeListener = function(subscription) {\n            // Beware of subscription.id == 0, which is falsy => cannot use !subscription.id\n            if (!subscription || !subscription.channel || !(\"id\" in subscription)) {\n                throw 'Invalid argument: expected subscription, not ' + subscription;\n            }\n\n            _removeListener(subscription);\n        };\n\n        /**\n         * Removes all listeners registered with {@link #addListener(channel, scope, callback)} or\n         * {@link #subscribe(channel, scope, callback)}.\n         */\n        this.clearListeners = function() {\n            _listeners = {};\n        };\n\n        /**\n         * Subscribes to the given channel, performing the given callback in the given scope\n         * when a message for the channel arrives.\n         * @param channel the channel to subscribe to\n         * @param scope the scope of the callback, may be omitted\n         * @param callback the callback to call when a message is sent to the channel\n         * @param subscribeProps an object to be merged with the subscribe message\n         * @param subscribeCallback a function to be invoked when the subscription is acknowledged\n         * @return the subscription handle to be passed to {@link #unsubscribe(object)}\n         */\n        this.subscribe = function(channel, scope, callback, subscribeProps, subscribeCallback) {\n            if (arguments.length < 2) {\n                throw 'Illegal arguments number: required 2, got ' + arguments.length;\n            }\n            if (!_isValidChannel(channel)) {\n                throw 'Illegal argument: invalid channel ' + channel;\n            }\n            if (_isDisconnected()) {\n                throw 'Illegal state: disconnected';\n            }\n\n            // Normalize arguments\n            if (_isFunction(scope)) {\n                subscribeCallback = subscribeProps;\n                subscribeProps = callback;\n                callback = scope;\n                scope = undefined;\n            }\n            if (_isFunction(subscribeProps)) {\n                subscribeCallback = subscribeProps;\n                subscribeProps = undefined;\n            }\n\n            // Only send the message to the server if this client has not yet subscribed to the channel\n            var send = !_hasSubscriptions(channel);\n\n            var subscription = _addListener(channel, scope, callback, false);\n\n            if (send) {\n                // Send the subscription message after the subscription registration to avoid\n                // races where the server would send a message to the subscribers, but here\n                // on the client the subscription has not been added yet to the data structures\n                var bayeuxMessage = {\n                    id: _nextMessageId(),\n                    channel: '/meta/subscribe',\n                    subscription: channel\n                };\n                // Do not allow the user to override important fields.\n                var message = this._mixin(false, {}, subscribeProps, bayeuxMessage);\n\n                // Save the callback.\n                _cometd._putCallback(message.id, subscribeCallback);\n\n                _queueSend(message);\n            } else {\n                if (_isFunction(subscribeCallback)) {\n                    // Keep the semantic of calling callbacks asynchronously.\n                    _cometd.setTimeout(function() {\n                        _notifyCallback(subscribeCallback, {\n                            id: _nextMessageId(),\n                            successful: true,\n                            channel: '/meta/subscribe',\n                            subscription: channel\n                        });\n                    }, 0);\n                }\n            }\n\n            return subscription;\n        };\n\n        /**\n         * Unsubscribes the subscription obtained with a call to {@link #subscribe(string, object, function)}.\n         * @param subscription the subscription to unsubscribe.\n         * @param unsubscribeProps an object to be merged with the unsubscribe message\n         * @param unsubscribeCallback a function to be invoked when the unsubscription is acknowledged\n         */\n        this.unsubscribe = function(subscription, unsubscribeProps, unsubscribeCallback) {\n            if (arguments.length < 1) {\n                throw 'Illegal arguments number: required 1, got ' + arguments.length;\n            }\n            if (_isDisconnected()) {\n                throw 'Illegal state: disconnected';\n            }\n\n            if (_isFunction(unsubscribeProps)) {\n                unsubscribeCallback = unsubscribeProps;\n                unsubscribeProps = undefined;\n            }\n\n            // Remove the local listener before sending the message\n            // This ensures that if the server fails, this client does not get notifications\n            this.removeListener(subscription);\n\n            var channel = subscription.channel;\n            // Only send the message to the server if this client unsubscribes the last subscription\n            if (!_hasSubscriptions(channel)) {\n                var bayeuxMessage = {\n                    id: _nextMessageId(),\n                    channel: '/meta/unsubscribe',\n                    subscription: channel\n                };\n                // Do not allow the user to override important fields.\n                var message = this._mixin(false, {}, unsubscribeProps, bayeuxMessage);\n\n                // Save the callback.\n                _cometd._putCallback(message.id, unsubscribeCallback);\n\n                _queueSend(message);\n            } else {\n                if (_isFunction(unsubscribeCallback)) {\n                    // Keep the semantic of calling callbacks asynchronously.\n                    _cometd.setTimeout(function() {\n                        _notifyCallback(unsubscribeCallback, {\n                            id: _nextMessageId(),\n                            successful: true,\n                            channel: '/meta/unsubscribe',\n                            subscription: channel\n                        });\n                    }, 0);\n                }\n            }\n        };\n\n        this.resubscribe = function(subscription, subscribeProps) {\n            _removeSubscription(subscription);\n            if (subscription) {\n                return this.subscribe(subscription.channel, subscription.scope, subscription.callback, subscribeProps);\n            }\n            return undefined;\n        };\n\n        /**\n         * Removes all subscriptions added via {@link #subscribe(channel, scope, callback, subscribeProps)},\n         * but does not remove the listeners added via {@link addListener(channel, scope, callback)}.\n         */\n        this.clearSubscriptions = function() {\n            _clearSubscriptions();\n        };\n\n        /**\n         * Publishes a message on the given channel, containing the given content.\n         * @param channel the channel to publish the message to\n         * @param content the content of the message\n         * @param publishProps an object to be merged with the publish message\n         * @param publishCallback a function to be invoked when the publish is acknowledged by the server\n         */\n        this.publish = function(channel, content, publishProps, publishCallback) {\n            if (arguments.length < 1) {\n                throw 'Illegal arguments number: required 1, got ' + arguments.length;\n            }\n            if (!_isValidChannel(channel)) {\n                throw 'Illegal argument: invalid channel ' + channel;\n            }\n            if (/^\\/meta\\//.test(channel)) {\n                throw 'Illegal argument: cannot publish to meta channels';\n            }\n            if (_isDisconnected()) {\n                throw 'Illegal state: disconnected';\n            }\n\n            if (_isFunction(content)) {\n                publishCallback = content;\n                content = {};\n                publishProps = undefined;\n            } else if (_isFunction(publishProps)) {\n                publishCallback = publishProps;\n                publishProps = undefined;\n            }\n\n            var bayeuxMessage = {\n                id: _nextMessageId(),\n                channel: channel,\n                data: content\n            };\n            // Do not allow the user to override important fields.\n            var message = this._mixin(false, {}, publishProps, bayeuxMessage);\n\n            // Save the callback.\n            _cometd._putCallback(message.id, publishCallback);\n\n            _queueSend(message);\n        };\n\n        /**\n         * Publishes a message with binary data on the given channel.\n         * The binary data chunk may be an ArrayBuffer, a DataView, a TypedArray\n         * (such as Uint8Array) or a plain integer array.\n         * The meta data object may contain additional application data such as\n         * a file name, a mime type, etc.\n         * @param channel the channel to publish the message to\n         * @param data the binary data to publish\n         * @param last whether the binary data chunk is the last\n         * @param meta an object containing meta data associated to the binary chunk\n         * @param publishProps an object to be merged with the publish message\n         * @param publishCallback a function to be invoked when the publish is acknowledged by the server\n         */\n        this.publishBinary = function(channel, data, last, meta, publishProps, publishCallback) {\n            if (_isFunction(data)) {\n                publishCallback = data;\n                data = new ArrayBuffer(0);\n                last = true;\n                meta = undefined;\n                publishProps = undefined;\n            } else if (_isFunction(last)) {\n                publishCallback = last;\n                last = true;\n                meta = undefined;\n                publishProps = undefined;\n            } else if (_isFunction(meta)) {\n                publishCallback = meta;\n                meta = undefined;\n                publishProps = undefined;\n            } else if (_isFunction(publishProps)) {\n                publishCallback = publishProps;\n                publishProps = undefined;\n            }\n            var content = {\n                meta: meta,\n                data: data,\n                last: last\n            };\n            var ext = this._mixin(false, publishProps, {\n                ext: {\n                    binary: {}\n                }\n            });\n            this.publish(channel, content, ext, publishCallback);\n        };\n\n        /**\n         * Performs a remote call, a request with a response, to the given target with the given data.\n         * The response returned by the server is notified the given callback function.\n         * The invocation may specify a timeout in milliseconds, after which the call is aborted on\n         * the client-side, causing a failed response to be passed to the given callback function.\n         * @param target the remote call target\n         * @param content the remote call content\n         * @param timeout the remote call timeout, or 0 for no timeout\n         * @param callProps an object to be merged with the remote call message\n         * @param callback the function to be invoked with the response\n         */\n        this.remoteCall = function(target, content, timeout, callProps, callback) {\n            if (arguments.length < 1) {\n                throw 'Illegal arguments number: required 1, got ' + arguments.length;\n            }\n            if (!_isString(target)) {\n                throw 'Illegal argument type: target must be a string';\n            }\n            if (_isDisconnected()) {\n                throw 'Illegal state: disconnected';\n            }\n\n            if (_isFunction(content)) {\n                callback = content;\n                content = {};\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(timeout)) {\n                callback = timeout;\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(callProps)) {\n                callback = callProps;\n                callProps = undefined;\n            }\n\n            if (typeof timeout !== 'number') {\n                throw 'Illegal argument type: timeout must be a number';\n            }\n\n            if (!target.match(/^\\//)) {\n                target = '/' + target;\n            }\n            var channel = '/service' + target;\n            if (!_isValidChannel(channel)) {\n                throw 'Illegal argument: invalid target ' + target;\n            }\n\n            var bayeuxMessage = {\n                id: _nextMessageId(),\n                channel: channel,\n                data: content\n            };\n            var message = this._mixin(false, {}, callProps, bayeuxMessage);\n\n            var context = {\n                callback: callback\n            };\n            if (timeout > 0) {\n                context.timeout = _cometd.setTimeout(function() {\n                    _cometd._debug('Timing out remote call', message, 'after', timeout, 'ms');\n                    _failMessage({\n                        id: message.id,\n                        error: '406::timeout',\n                        successful: false,\n                        failure: {\n                            message: message,\n                            reason: 'Remote Call Timeout'\n                        }\n                    });\n                }, timeout);\n                _cometd._debug('Scheduled remote call timeout', message, 'in', timeout, 'ms');\n            }\n            _remoteCalls[message.id] = context;\n\n            _queueSend(message);\n        };\n\n        /**\n         * Performs a remote call with binary data.\n         * @param target the remote call target\n         * @param data the remote call binary data\n         * @param last whether the binary data chunk is the last\n         * @param meta an object containing meta data associated to the binary chunk\n         * @param timeout the remote call timeout, or 0 for no timeout\n         * @param callProps an object to be merged with the remote call message\n         * @param callback the function to be invoked with the response\n         */\n        this.remoteCallBinary = function(target, data, last, meta, timeout, callProps, callback) {\n            if (_isFunction(data)) {\n                callback = data;\n                data = new ArrayBuffer(0);\n                last = true;\n                meta = undefined;\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(last)) {\n                callback = last;\n                last = true;\n                meta = undefined;\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(meta)) {\n                callback = meta;\n                meta = undefined;\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(timeout)) {\n                callback = timeout;\n                timeout = _config.maxNetworkDelay;\n                callProps = undefined;\n            } else if (_isFunction(callProps)) {\n                callback = callProps;\n                callProps = undefined;\n            }\n\n            var content = {\n                meta: meta,\n                data: data,\n                last: last\n            };\n            var ext = this._mixin(false, callProps, {\n                ext: {\n                    binary: {}\n                }\n            });\n\n            this.remoteCall(target, content, timeout, ext, callback);\n        };\n\n        /**\n         * Returns a string representing the status of the bayeux communication with the Bayeux server.\n         */\n        this.getStatus = function() {\n            return _status;\n        };\n\n        /**\n         * Returns whether this instance has been disconnected.\n         */\n        this.isDisconnected = _isDisconnected;\n\n        /**\n         * Sets the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n         * Default value is 1 second, which means if there is a persistent failure the retries will happen\n         * after 1 second, then after 2 seconds, then after 3 seconds, etc. So for example with 15 seconds of\n         * elapsed time, there will be 5 retries (at 1, 3, 6, 10 and 15 seconds elapsed).\n         * @param period the backoff period to set\n         * @see #getBackoffIncrement()\n         */\n        this.setBackoffIncrement = function(period) {\n            _config.backoffIncrement = period;\n        };\n\n        /**\n         * Returns the backoff period used to increase the backoff time when retrying an unsuccessful or failed message.\n         * @see #setBackoffIncrement(period)\n         */\n        this.getBackoffIncrement = function() {\n            return _config.backoffIncrement;\n        };\n\n        /**\n         * Returns the backoff period to wait before retrying an unsuccessful or failed message.\n         */\n        this.getBackoffPeriod = function() {\n            return _backoff;\n        };\n\n        /**\n         * Increases the backoff period up to the maximum value configured.\n         * @returns the backoff period after increment\n         * @see getBackoffIncrement\n         */\n        this.increaseBackoffPeriod = function() {\n            return _increaseBackoff();\n        };\n\n        /**\n         * Resets the backoff period to zero.\n         */\n        this.resetBackoffPeriod = function() {\n            _resetBackoff();\n        };\n\n        /**\n         * Sets the log level for console logging.\n         * Valid values are the strings 'error', 'warn', 'info' and 'debug', from\n         * less verbose to more verbose.\n         * @param level the log level string\n         */\n        this.setLogLevel = function(level) {\n            _config.logLevel = level;\n        };\n\n        /**\n         * Registers an extension whose callbacks are called for every incoming message\n         * (that comes from the server to this client implementation) and for every\n         * outgoing message (that originates from this client implementation for the\n         * server).\n         * The format of the extension object is the following:\n         * <pre>\n         * {\n         *     incoming: function(message) { ... },\n         *     outgoing: function(message) { ... }\n         * }\n         * <\/pre>\n         * Both properties are optional, but if they are present they will be called\n         * respectively for each incoming message and for each outgoing message.\n         * @param name the name of the extension\n         * @param extension the extension to register\n         * @return true if the extension was registered, false otherwise\n         * @see #unregisterExtension(name)\n         */\n        this.registerExtension = function(name, extension) {\n            if (arguments.length < 2) {\n                throw 'Illegal arguments number: required 2, got ' + arguments.length;\n            }\n            if (!_isString(name)) {\n                throw 'Illegal argument type: extension name must be a string';\n            }\n\n            var existing = false;\n            for (var i = 0; i < _extensions.length; ++i) {\n                var existingExtension = _extensions[i];\n                if (existingExtension.name === name) {\n                    existing = true;\n                    break;\n                }\n            }\n            if (!existing) {\n                _extensions.push({\n                    name: name,\n                    extension: extension\n                });\n                this._debug('Registered extension', name);\n\n                // Callback for extensions\n                if (_isFunction(extension.registered)) {\n                    extension.registered(name, this);\n                }\n\n                return true;\n            } else {\n                this._info('Could not register extension with name', name, 'since another extension with the same name already exists');\n                return false;\n            }\n        };\n\n        /**\n         * Unregister an extension previously registered with\n         * {@link #registerExtension(name, extension)}.\n         * @param name the name of the extension to unregister.\n         * @return true if the extension was unregistered, false otherwise\n         */\n        this.unregisterExtension = function(name) {\n            if (!_isString(name)) {\n                throw 'Illegal argument type: extension name must be a string';\n            }\n\n            var unregistered = false;\n            for (var i = 0; i < _extensions.length; ++i) {\n                var extension = _extensions[i];\n                if (extension.name === name) {\n                    _extensions.splice(i, 1);\n                    unregistered = true;\n                    this._debug('Unregistered extension', name);\n\n                    // Callback for extensions\n                    var ext = extension.extension;\n                    if (_isFunction(ext.unregistered)) {\n                        ext.unregistered();\n                    }\n\n                    break;\n                }\n            }\n            return unregistered;\n        };\n\n        /**\n         * Find the extension registered with the given name.\n         * @param name the name of the extension to find\n         * @return the extension found or null if no extension with the given name has been registered\n         */\n        this.getExtension = function(name) {\n            for (var i = 0; i < _extensions.length; ++i) {\n                var extension = _extensions[i];\n                if (extension.name === name) {\n                    return extension.extension;\n                }\n            }\n            return null;\n        };\n\n        /**\n         * Returns the name assigned to this CometD object, or the string 'default'\n         * if no name has been explicitly passed as parameter to the constructor.\n         */\n        this.getName = function() {\n            return _name;\n        };\n\n        /**\n         * Returns the clientId assigned by the Bayeux server during handshake.\n         */\n        this.getClientId = function() {\n            return _clientId;\n        };\n\n        /**\n         * Returns the URL of the Bayeux server.\n         */\n        this.getURL = function() {\n            if (_transport) {\n                var url = _transport.getURL();\n                if (url) {\n                    return url;\n                }\n                url = _config.urls[_transport.getType()];\n                if (url) {\n                    return url;\n                }\n            }\n            return _config.url;\n        };\n\n        this.getTransport = function() {\n            return _transport;\n        };\n\n        this.getConfiguration = function() {\n            return this._mixin(true, {}, _config);\n        };\n\n        this.getAdvice = function() {\n            return this._mixin(true, {}, _advice);\n        };\n\n        this.setTimeout = function(funktion, delay) {\n            return _scheduler.setTimeout(function() {\n                try {\n                    _cometd._debug('Invoking timed function', funktion);\n                    funktion();\n                } catch (x) {\n                    _cometd._debug('Exception invoking timed function', funktion, x);\n                }\n            }, delay);\n        };\n\n        this.clearTimeout = function(id) {\n            _scheduler.clearTimeout(id);\n        };\n\n        // Initialize transports.\n        if (window.WebSocket) {\n            this.registerTransport('websocket', new WebSocketTransport());\n        }\n        this.registerTransport('long-polling', new LongPollingTransport());\n        this.registerTransport('callback-polling', new CallbackPollingTransport());\n    };\n\n    var _z85EncodeTable = [\n        '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n        'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',\n        'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',\n        'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',\n        'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',\n        'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',\n        'Y', 'Z', '.', '-', ':', '+', '=', '^', '!', '/',\n        '*', '?', '&', '<', '>', '(', ')', '[', ']', '{',\n        '}', '@', '%', '$', '#'\n    ];\n    var _z85DecodeTable = [\n        0x00, 0x44, 0x00, 0x54, 0x53, 0x52, 0x48, 0x00,\n        0x4B, 0x4C, 0x46, 0x41, 0x00, 0x3F, 0x3E, 0x45,\n        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,\n        0x08, 0x09, 0x40, 0x00, 0x49, 0x42, 0x4A, 0x47,\n        0x51, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A,\n        0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32,\n        0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A,\n        0x3B, 0x3C, 0x3D, 0x4D, 0x00, 0x4E, 0x43, 0x00,\n        0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10,\n        0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,\n        0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x20,\n        0x21, 0x22, 0x23, 0x4F, 0x00, 0x50, 0x00, 0x00\n    ];\n    /**\n     * Z85 encoding/decoding as specified by https://rfc.zeromq.org/spec/32/.\n     * Z85 encodes binary data to a string that may be sent as JSON payload,\n     * and decodes strings to binary data.\n     */\n    var Z85 = {\n        /**\n         * Encodes the given bytes to a string.\n         * @param bytes the bytes to encode, either a number[], or an ArrayBuffer, or a TypedArray.\n         * @return {string} the bytes encoded as a string\n         */\n        encode: function(bytes) {\n            var buffer = null;\n            if (bytes instanceof ArrayBuffer) {\n                buffer = bytes;\n            } else if (bytes.buffer instanceof ArrayBuffer) {\n                buffer = bytes.buffer;\n            } else if (Array.isArray(bytes)) {\n                buffer = new Uint8Array(bytes).buffer;\n            }\n            if (buffer == null) {\n                throw 'Cannot Z85 encode ' + bytes;\n            }\n\n            var length = buffer.byteLength;\n            var remainder = length % 4;\n            var padding = 4 - (remainder === 0 ? 4 : remainder);\n            var view = new DataView(buffer);\n            var result = '';\n            var value = 0;\n            for (var i = 0; i < length + padding; ++i) {\n                var isPadding = i >= length;\n                value = value * 256 + (isPadding ? 0 : view.getUint8(i));\n                if ((i + 1) % 4 === 0) {\n                    var divisor = 85 * 85 * 85 * 85;\n                    for (var j = 5; j > 0; --j) {\n                        if (!isPadding || j > padding) {\n                            var code = Math.floor(value / divisor) % 85;\n                            result += _z85EncodeTable[code];\n                        }\n                        divisor /= 85;\n                    }\n                    value = 0;\n                }\n            }\n\n            return result;\n        },\n        /**\n         * Decodes the given string into an ArrayBuffer.\n         * @param string the string to decode\n         * @return {ArrayBuffer} the decoded bytes\n         */\n        decode: function(string) {\n            var remainder = string.length % 5;\n            var padding = 5 - (remainder === 0 ? 5 : remainder);\n            for (var p = 0; p < padding; ++p) {\n                string += _z85EncodeTable[_z85EncodeTable.length - 1];\n            }\n            var length = string.length;\n\n            var buffer = new ArrayBuffer((length * 4 / 5) - padding);\n            var view = new DataView(buffer);\n            var value = 0;\n            var charIdx = 0;\n            var byteIdx = 0;\n            for (var i = 0; i < length; ++i) {\n                var code = string.charCodeAt(charIdx++) - 32;\n                value = value * 85 + _z85DecodeTable[code];\n                if (charIdx % 5 === 0) {\n                    var divisor = 256 * 256 * 256;\n                    while (divisor >= 1) {\n                        if (byteIdx < view.byteLength) {\n                            view.setUint8(byteIdx++, Math.floor(value / divisor) % 256);\n                        }\n                        divisor /= 256;\n                    }\n                    value = 0;\n                }\n            }\n\n            return buffer;\n        }\n    };\n\n    return {\n        CometD: CometD,\n        Transport: Transport,\n        RequestTransport: RequestTransport,\n        LongPollingTransport: LongPollingTransport,\n        CallbackPollingTransport: CallbackPollingTransport,\n        WebSocketTransport: WebSocketTransport,\n        Utils: Utils,\n        Z85: Z85\n    };\n}));\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar GraphQLSubscriptionExtension = function GraphQLSubscriptionExtension() {\n  var LOGGER = new _amb.default('amb.GraphQLSubscriptionExtension');\n  var RW_GRAPHQL_CHANNEL = '/rw/graphql';\n  var META_SUBSCRIBE = '/meta/subscribe';\n  var graphQLSubscriptions = {};\n\n  this.isGraphQLChannel = function (channel) {\n    return channel && channel.startsWith(RW_GRAPHQL_CHANNEL);\n  };\n\n  this.addGraphQLChannel = function (channel, graphQLSubscription) {\n    graphQLSubscriptions[channel] = graphQLSubscription;\n  };\n\n  this.removeGraphQLChannel = function (channel) {\n    delete graphQLSubscriptions[channel];\n  };\n\n  this.getGraphQLSubscriptions = function () {\n    return graphQLSubscriptions;\n  };\n\n  this.outgoing = function (message) {\n    if (message.channel === META_SUBSCRIBE && this.isGraphQLChannel(message.subscription)) {\n      if (!message.ext) message.ext = {};\n\n      if (graphQLSubscriptions[message.subscription]) {\n        LOGGER.debug('Subscribing with GraphQL subscription:' + graphQLSubscriptions[message.subscription]);\n        message.ext.serializedGraphQLSubscription = graphQLSubscriptions[message.subscription];\n      }\n    }\n\n    return message;\n  };\n};\n\nvar _default = GraphQLSubscriptionExtension;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SessionExtension = function SessionExtension() {\n  var LOGGER = new _amb.default('amb.SessionExtension');\n  var META_CONNECT = '/meta/connect';\n  var extendSession = false;\n\n  this.extendSession = function () {\n    extendSession = true;\n  };\n\n  this.outgoing = function (message) {\n    if (message.channel === META_CONNECT && extendSession) {\n      if (!message.ext) message.ext = {};\n      LOGGER.debug('extendSession');\n      message.ext.extendSession = true;\n      extendSession = false;\n    }\n\n    return message;\n  };\n};\n\nvar _default = SessionExtension;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Properties\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar TokenManagementExtension = function TokenManagementExtension() {\n  var LOGGER = new _amb.default('amb.TokenManagementExtension');\n  var META_SUBSCRIBE = '/meta/subscribe';\n  var META_UNSUBSCRIBE = '/meta/unsubscribe';\n  var META_HANDSHAKE = '/meta/handshake';\n  var tokenCount = _amb2.default.subscribeCommandsFlow.maxInflight;\n  var tokenEventListeners = [];\n\n  this.updateTokenCount = function (count) {\n    tokenCount = count;\n  };\n\n  this.refillTokens = function () {\n    tokenCount = _amb2.default.subscribeCommandsFlow.maxInflight;\n    notifyOnAvailabilityOfToken();\n    LOGGER.debug(\"refillTokens -- tokenCount : \" + tokenCount);\n  };\n\n  function isMetaSubUnsubChannel(message) {\n    return message.channel == META_SUBSCRIBE || message.channel == META_UNSUBSCRIBE;\n  }\n\n  function isReceivedByGlideAndMetaSubUnsubChannel(message) {\n    if (!message.ext) return false;\n    var receivedByGlide = message.ext['received_by_glide'];\n    if (!receivedByGlide) return false;\n    return receivedByGlide && isMetaSubUnsubChannel(receivedByGlide);\n  }\n\n  function isMetaHandshake(message) {\n    return message.channel === META_HANDSHAKE;\n  }\n\n  this.outgoing = function (message) {\n    if (isMetaHandshake(message)) {\n      if (!message.ext) message.ext = {};\n      message.ext.supportsSubscribeCommandFlow = true;\n    }\n\n    if (!_amb2.default.subscribeCommandsFlow.enable) return message;\n    if (isMetaSubUnsubChannel(message) && tokenCount > 0) tokenCount--;\n    return message;\n  };\n\n  this.incoming = function (message) {\n    if (!_amb2.default.subscribeCommandsFlow.enable) return message;\n\n    if (isMetaSubUnsubChannel(message)) {\n      if (tokenCount < _amb2.default.subscribeCommandsFlow.maxInflight) tokenCount++;\n      notifyOnAvailabilityOfToken();\n    } else if (isReceivedByGlideAndMetaSubUnsubChannel(message)) {\n      message = null; // Make cometd not to call back any listeners based on the message id.\n    }\n\n    return message;\n  };\n\n  this.getTokenCount = function () {\n    return tokenCount;\n  };\n\n  this.addTokenAvailabilityListener = function (tokenEventListener) {\n    if (!tokenEventListener) return;\n    LOGGER.debug(\"addTokenAvailabilityListener - tokenEventListener : \" + tokenEventListener);\n    tokenEventListeners.push(tokenEventListener);\n  };\n\n  this.removeTokenAvailabilityListener = function (tokenEventListener) {\n    if (!tokenEventListener) return;\n    LOGGER.debug(\"removeTokenAvailabilityListener - tokenEventListener : \" + tokenEventListener);\n    var removeIndex = tokenEventListeners.findIndex(function (listener) {\n      return tokenEventListener === listener;\n    });\n\n    if (removeIndex !== -1) {\n      LOGGER.debug(\"removeTokenAvailabilityListener - removing listener at index : \" + removeIndex);\n      tokenEventListeners.splice(removeIndex, 1);\n    }\n  };\n\n  function notifyOnAvailabilityOfToken() {\n    LOGGER.debug(\"notifyOnAvailabilityOfToken - current tokenCount: \" + tokenCount);\n\n    try {\n      tokenEventListeners.forEach(function (listener) {\n        listener();\n      });\n    } catch (error) {\n      LOGGER.addErrorMessage(\"notifyOnAvailabilityOfToken - failed to call tokenEventListeners. Error Details : \" + error);\n    }\n  }\n};\n\nvar _default = TokenManagementExtension;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.WS_CONNECTION_NODE_ID = exports.TRANSACTION_ALREADY_SUBMITTED = exports.REQUEST_SUCCESS = exports.REQUEST_ACCEPTED = exports.PUBLISH_FAILURE = exports.NODEID_COOKIE_KEY = exports.MSG_SHARD = exports.MSG_NUM = exports.MISSING_REQUEST_DATA = exports.MISSING_INTERACTION_ID = exports.META_HANDSHAKE = exports.MESSAGE_REDELIVERY_OPTIONS = exports.GLIDE_REMEMBER_ME = exports.GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC = exports.GLIDE_AMB_HANDSHAKE_LIMIT_ENABLED = exports.CHANNEL_READY_TO_DELIVER = exports.CHANNEL_NOT_READY_TO_DELIVER = exports.CANCEL_TRANSACTION_CHANNEL = exports.CANCEL_TRANSACTION_ACTION = void 0;\n// Redelivery\nvar MSG_NUM = 'msg_num';\nexports.MSG_NUM = MSG_NUM;\nvar MSG_SHARD = 'msg_shard';\nexports.MSG_SHARD = MSG_SHARD;\nvar MESSAGE_REDELIVERY_OPTIONS = 'msg_redelivery_options';\nexports.MESSAGE_REDELIVERY_OPTIONS = MESSAGE_REDELIVERY_OPTIONS;\nvar CHANNEL_READY_TO_DELIVER = 'Channel set to deliver messages now: ';\nexports.CHANNEL_READY_TO_DELIVER = CHANNEL_READY_TO_DELIVER;\nvar CHANNEL_NOT_READY_TO_DELIVER = 'Channel set to not deliver messages until re-subscription & re-delivery of missed messages is over: ';\nexports.CHANNEL_NOT_READY_TO_DELIVER = CHANNEL_NOT_READY_TO_DELIVER;\nvar META_HANDSHAKE = '/meta/handshake';\nexports.META_HANDSHAKE = META_HANDSHAKE;\nvar WS_CONNECTION_NODE_ID = 'glide.amb.wsConnectionNodeId';\nexports.WS_CONNECTION_NODE_ID = WS_CONNECTION_NODE_ID;\nvar NODEID_COOKIE_KEY = \"glide_node_id_for_js\";\nexports.NODEID_COOKIE_KEY = NODEID_COOKIE_KEY;\nvar GLIDE_REMEMBER_ME = \"glide.remember.me\";\nexports.GLIDE_REMEMBER_ME = GLIDE_REMEMBER_ME;\nvar GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC = \"glide.amb.hup.signal.reconnect.in.sec\";\nexports.GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC = GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC;\nvar GLIDE_AMB_HANDSHAKE_LIMIT_ENABLED = \"glide.amb.client.websocket_handshake_limit_enabled\"; // amb cancel API\n\nexports.GLIDE_AMB_HANDSHAKE_LIMIT_ENABLED = GLIDE_AMB_HANDSHAKE_LIMIT_ENABLED;\nvar CANCEL_TRANSACTION_CHANNEL = \"/service/transaction/cancel\";\nexports.CANCEL_TRANSACTION_CHANNEL = CANCEL_TRANSACTION_CHANNEL;\nvar CANCEL_TRANSACTION_ACTION = \"cancelTransaction\";\nexports.CANCEL_TRANSACTION_ACTION = CANCEL_TRANSACTION_ACTION;\nvar REQUEST_SUCCESS = \"200::Success\";\nexports.REQUEST_SUCCESS = REQUEST_SUCCESS;\nvar REQUEST_ACCEPTED = \"202::Request accepted\";\nexports.REQUEST_ACCEPTED = REQUEST_ACCEPTED;\nvar MISSING_REQUEST_DATA = \"400::Missing request data\";\nexports.MISSING_REQUEST_DATA = MISSING_REQUEST_DATA;\nvar MISSING_INTERACTION_ID = \"400::Missing nowUiInteractionId id\";\nexports.MISSING_INTERACTION_ID = MISSING_INTERACTION_ID;\nvar TRANSACTION_ALREADY_SUBMITTED = \"409::Transaction with nowUiInteraction has already been submitted for cancel\";\nexports.TRANSACTION_ALREADY_SUBMITTED = TRANSACTION_ALREADY_SUBMITTED;\nvar PUBLISH_FAILURE = \"503::Unable to publish message\";\nexports.PUBLISH_FAILURE = PUBLISH_FAILURE;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = require(\"./amb.Constants\");\n\nvar _excluded = [\"callback\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nvar CancelTransactionSender = function CancelTransactionSender() {\n  var LOGGER = new _amb.default('amb.CancelTransactionSender');\n  var ambCancelTransactionSender = {};\n  var transactionCancelCallbacks = new Map();\n  var batchSize = 10;\n  var cancelTransactionChannel = null;\n  var isSubscribed = false;\n\n  function _validateRequest(request) {\n    var result = {\n      isValid: true,\n      error: null\n    };\n\n    if (!request) {\n      LOGGER.debug(\"empty cancel request\");\n      result.isValid = false;\n      result.error = _amb2.MISSING_REQUEST_DATA;\n      return result;\n    }\n\n    if (!request.hasOwnProperty(\"nowUiInteraction\") || typeof request.nowUiInteraction !== \"string\") {\n      LOGGER.debug(\"nowUiInteraction is unavailable or invalid\");\n      result.isValid = false;\n      result.error = _amb2.MISSING_INTERACTION_ID;\n      return result;\n    }\n\n    if (transactionCancelCallbacks.has(request.nowUiInteraction)) {\n      LOGGER.debug(\"Transaction has already been submitted for cancellation. nowUiInteraction: \" + request.nowUiInteraction);\n      result.isValid = false;\n      result.error = _amb2.TRANSACTION_ALREADY_SUBMITTED;\n      return result;\n    }\n\n    return result;\n  }\n\n  function _getCallbackParams(request, response) {\n    var callbackParams = {};\n    callbackParams.request = request;\n    callbackParams.request.action = _amb2.CANCEL_TRANSACTION_ACTION;\n    callbackParams.response = response;\n    return callbackParams;\n  }\n\n  function _executeCallbackForInvalidRequest(request, errorMessage) {\n    if (!(request !== null && request !== void 0 && request.callback)) return;\n\n    var callback = request.callback,\n        requestWithoutCallback = _objectWithoutProperties(request, _excluded);\n\n    var errorResponse = {\n      successful: false,\n      status: errorMessage\n    };\n    callback(_getCallbackParams(requestWithoutCallback, errorResponse));\n  }\n\n  function _executeCallback(nowUiInteraction, callbackParams) {\n    if (!transactionCancelCallbacks.has(nowUiInteraction)) return;\n    transactionCancelCallbacks.get(nowUiInteraction)(callbackParams);\n    transactionCancelCallbacks.delete(nowUiInteraction);\n  }\n\n  function _handleCancelResponse(response) {\n    var _response$ext$result;\n\n    if (!response) {\n      LOGGER.addWarnMessage(\"Empty response for cancel request\");\n      return;\n    }\n\n    if (!response.data || !response.ext || !response.ext.status) {\n      LOGGER.addWarnMessage(\"Invalid response for cancel request\");\n      return;\n    }\n\n    if (response.ext.status === _amb2.REQUEST_ACCEPTED) {\n      LOGGER.debug(\"Batch Cancel Request accepted\");\n      return;\n    }\n\n    if (response.ext.status === _amb2.REQUEST_SUCCESS && ((_response$ext$result = response.ext.result) === null || _response$ext$result === void 0 ? void 0 : _response$ext$result.length) !== response.data.length) {\n      LOGGER.addWarnMessage(\"Invalid response for cancel request\");\n      return;\n    }\n\n    response.data.forEach(function (cancelRequest, index) {\n      if (!cancelRequest.hasOwnProperty(\"nowUiInteraction\")) return;\n      var individualCancelResponse = response.ext.status === _amb2.REQUEST_SUCCESS ? response.ext.result[index] : response.ext;\n\n      var callbackParams = _getCallbackParams(cancelRequest, individualCancelResponse);\n\n      _executeCallback(cancelRequest.nowUiInteraction, callbackParams);\n    });\n  }\n\n  function _handlePublishResponse(batchRequest, response) {\n    if (response.successful) return;\n    var publishFailureResponse = {\n      successful: false,\n      status: _amb2.PUBLISH_FAILURE\n    };\n    batchRequest.forEach(function (request) {\n      _executeCallback(request.nowUiInteraction, _getCallbackParams(request, publishFailureResponse));\n    });\n  }\n\n  function _subscribeToCancelTransactionChannel(messageClient) {\n    cancelTransactionChannel = messageClient.getChannel(_amb2.CANCEL_TRANSACTION_CHANNEL);\n    cancelTransactionChannel.subscribe(_handleCancelResponse);\n    isSubscribed = true;\n  }\n\n  ambCancelTransactionSender.cancelTransaction =\n  /* void */\n  function (cancelTransactionRequests, messageClient) {\n    LOGGER.debug('cancelTransaction');\n    if (!isSubscribed) _subscribeToCancelTransactionChannel(messageClient);\n\n    if (!cancelTransactionRequests || cancelTransactionRequests.length === 0) {\n      LOGGER.addWarnMessage(\"Request array is empty or not defined\");\n      return;\n    }\n\n    var cancelRequestsWithoutCallback = [];\n    cancelTransactionRequests.forEach(function (cancelTransactionRequest) {\n      var result = _validateRequest(cancelTransactionRequest);\n\n      if (!result.isValid) {\n        _executeCallbackForInvalidRequest(cancelTransactionRequest, result.error);\n\n        return;\n      }\n\n      var nowUiInteraction = cancelTransactionRequest.nowUiInteraction,\n          callback = cancelTransactionRequest.callback;\n      cancelRequestsWithoutCallback.push({\n        nowUiInteraction: nowUiInteraction\n      });\n      if (callback) transactionCancelCallbacks.set(cancelTransactionRequest.nowUiInteraction, callback);\n    });\n\n    if (cancelRequestsWithoutCallback.length === 0) {\n      LOGGER.debug(\"All requests filtered due to invalid inputs\");\n      return;\n    }\n\n    var _loop = function _loop(batchStart) {\n      var batchedRequest = cancelRequestsWithoutCallback.slice(batchStart, batchStart + batchSize);\n      cancelTransactionChannel.publish(batchedRequest, function (response) {\n        return _handlePublishResponse(batchedRequest, response);\n      });\n    };\n\n    for (var batchStart = 0; batchStart < cancelRequestsWithoutCallback.length; batchStart += batchSize) {\n      _loop(batchStart);\n    }\n  };\n\n  return ambCancelTransactionSender;\n};\n\nvar _default = CancelTransactionSender;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _cometd = _interopRequireDefault(require(\"cometd\"));\n\nvar _amb = _interopRequireDefault(require(\"./amb.ServerConnection\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb3 = _interopRequireDefault(require(\"./amb.ChannelListener\"));\n\nvar _amb4 = _interopRequireDefault(require(\"./amb.GraphQLSubscriptionExtension\"));\n\nvar _amb5 = _interopRequireWildcard(require(\"./amb.Properties\"));\n\nvar _amb6 = _interopRequireDefault(require(\"./amb.SessionExtension\"));\n\nvar _amb7 = _interopRequireDefault(require(\"./amb.TokenManagementExtension\"));\n\nvar _amb8 = _interopRequireDefault(require(\"./amb.CancelTransactionSender\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MessageClient = function MessageClient(baseURL) {\n  var cometd = new _cometd.default.CometD();\n  cometd.registerTransport(_amb5.WEBSOCKET_TYPE_NAME, new _cometd.default.WebSocketTransport(), 0);\n  cometd.registerTransport('long-polling', new _cometd.default.LongPollingTransport(), 1);\n  cometd.unregisterTransport('callback-polling'); // Global batch logging variables (shared across all channels)\n\n  var globalLogBatch = [];\n  var MAX_BATCH_SIZE = 5; // Prevent memory issues\n\n  var REST_LOG_PUBLISH_PATH = \"api/now/amb/log/\";\n  var allowedChannels = []; // Register extension needed for GraphQL subscriptions.\n\n  var graphQLSubscriptionExtension = new _amb4.default();\n  cometd.registerExtension('graphQLSubscription', graphQLSubscriptionExtension);\n  var sessionExtension = new _amb6.default();\n  cometd.registerExtension(\"sessionExtension\", sessionExtension);\n  var tokenManagementExtension = new _amb7.default();\n  cometd.registerExtension(_amb5.TOKEN_MANAGEMENT_EXTENSION, tokenManagementExtension);\n  var clientBaseURL = baseURL;\n  var serverConnection = new _amb.default(cometd, clientBaseURL);\n  var LOGGER = new _amb2.default('amb.MessageClient');\n  var cancelTransactionSender = new _amb8.default();\n  var connected = false; // Batch logging functions\n\n  function flushGlobalBatch() {\n    if (globalLogBatch.length === 0) return; // Double-check that batch logging is still enabled before publishing\n\n    if (!_amb5.default.batchLogging.enabled) {\n      LOGGER.debug(\"[AMB Client] Batch logging disabled - clearing \".concat(globalLogBatch.length, \" pending entries\"));\n      globalLogBatch.length = 0;\n      return;\n    }\n\n    var currentBatch = [].concat(globalLogBatch);\n    globalLogBatch.length = 0; // Clear the batch immediately regardless of success or failure\n\n    try {\n      var batchData = new Map();\n      batchData.set('clientId', cometd.getClientId());\n      batchData.set('data', currentBatch.map(function (entry) {\n        return {\n          channelName: entry.channelName,\n          duration: entry.duration,\n          error: entry.error || null\n        };\n      }));\n      publishBatchData(batchData);\n    } catch (error) {\n      LOGGER.addErrorMessage(\"[AMB Client] Error processing global batch: \".concat(error));\n    }\n  }\n\n  function publishBatchData(message) {\n    var request = new XMLHttpRequest();\n    request.withCredentials = true;\n    request.open(\"POST\", serverConnection.getURL(REST_LOG_PUBLISH_PATH + \"client\"), true);\n    request.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\n    request.setRequestHeader(\"X-UserToken\", window.g_ck);\n\n    request.onload = function () {\n      if (request.status === 200) LOGGER.debug('Global batch logging request sent successfully via REST');else LOGGER.addErrorMessage('Error sending global batch logging request via REST - ' + request.responseText);\n    }; // Convert Map to plain object for JSON serialization\n\n\n    var messageObj = Object.fromEntries(message);\n    request.send(JSON.stringify(messageObj));\n  }\n\n  function _addToBatch(logEntry) {\n    LOGGER.debug(\"[AMB Client] addToBatch called for channel: \".concat(logEntry.channelName, \", batchLogging.enabled: \").concat(_amb5.default.batchLogging.enabled)); // Check 1: Batch logging enabled\n\n    if (!_amb5.default.batchLogging.enabled) {\n      LOGGER.debug(\"[AMB Client] Batch logging disabled - skipping entry for channel: \".concat(logEntry.channelName));\n      return;\n    } // Check 2: Channel allowed list validation (empty allowed list means no channels allowed)\n\n\n    allowedChannels = _toConsumableArray(new Set([].concat(_toConsumableArray(_amb5.default.batchLogging.channels), _toConsumableArray(allowedChannels))));\n    var isChannelAllowed = allowedChannels.length > 0 && allowedChannels.includes(logEntry.channelName);\n    LOGGER.debug(\"[AMB Client] Currently allowed channels: \".concat(allowedChannels));\n\n    if (!isChannelAllowed) {\n      LOGGER.debug(\"[AMB Client] Channel not allowed for batch logging - skipping entry for channel: \".concat(logEntry.channelName));\n      return;\n    } // Check 3: Start time validation\n\n\n    if (!_amb5.default.batchLogging.startTime) {\n      LOGGER.debug(\"[AMB Client] Batch logging start time is not set - skipping entry for channel: \".concat(logEntry.channelName));\n      return;\n    } // Check 4: TTL validation (48 hours)\n\n\n    var now = Date.now();\n    var defaultTTLForBatchLogging = 48 * 60 * 60 * 1000; // 48 hours in milliseconds\n    // Parse startTime string format \"YYYY-MM-DD HH:MM:SS\"\n    // The space between date and time needs to be replaced with 'T' for ISO 8601 compatibility\n\n    var isoString = _amb5.default.batchLogging.startTime.replace(' ', 'T');\n\n    var startTimeMs = new Date(isoString).getTime();\n\n    if (isNaN(startTimeMs)) {\n      LOGGER.debug(\"[AMB Client] Invalid batch logging start time format: \".concat(_amb5.default.batchLogging.startTime, \" - skipping entry for channel: \").concat(logEntry.channelName));\n      return;\n    }\n\n    var isWithinTTL = now - startTimeMs <= defaultTTLForBatchLogging;\n\n    if (!isWithinTTL) {\n      LOGGER.debug(\"[AMB Client] Batch logging start time is older than 48 hours - skipping entry for channel: \".concat(logEntry.channelName));\n      return;\n    }\n\n    globalLogBatch.push(logEntry);\n    LOGGER.debug(\"[AMB Client] batch size is: \" + globalLogBatch.length); // Force flush if batch gets too large\n\n    if (globalLogBatch.length >= MAX_BATCH_SIZE) {\n      LOGGER.debug(\"[AMB Client] Force flushing global batch - reached max size \".concat(MAX_BATCH_SIZE));\n      flushGlobalBatch();\n    }\n  }\n\n  return {\n    getServerConnection: function getServerConnection() {\n      return serverConnection;\n    },\n    isLoggedIn: function isLoggedIn() {\n      return serverConnection.isLoggedIn();\n    },\n    loginComplete: function loginComplete() {\n      serverConnection.loginComplete();\n    },\n    reestablishSession: function reestablishSession() {\n      serverConnection.reestablishSession();\n    },\n\n    /**\n     * Server Connection\n     */\n    connect:\n    /*void*/\n    function connect() {\n      if (connected) {\n        LOGGER.addInfoMessage(\">>> connection exists, request satisfied\");\n        return;\n      }\n\n      connected = true;\n      serverConnection.connect();\n    },\n    reload:\n    /*void*/\n    function reload() {\n      connected = false;\n      serverConnection.reload();\n    },\n    abort:\n    /*void*/\n    function abort() {\n      connected = false;\n      serverConnection.abort();\n    },\n    disconnect:\n    /*void*/\n    function disconnect() {\n      connected = false;\n      serverConnection.disconnect();\n    },\n    // For unit testing.\n    isConnected: function isConnected() {\n      return connected;\n    },\n\n    /**\n     * Connection Events\n     */\n    getConnectionEvents:\n    /*Hash*/\n    function getConnectionEvents() {\n      return serverConnection.getEvents();\n    },\n    subscribeToEvent:\n    /*Number*/\n    function subscribeToEvent(\n    /*String*/\n    event,\n    /*Function*/\n    callback) {\n      return serverConnection.subscribeToEvent(event, callback);\n    },\n    unsubscribeFromEvent:\n    /*void*/\n    function unsubscribeFromEvent(\n    /*Number*/\n    id) {\n      serverConnection.unsubscribeFromEvent(id);\n    },\n    getConnectionState:\n    /*String*/\n    function getConnectionState() {\n      return serverConnection.getConnectionState();\n    },\n\n    /**\n     * Client info\n     */\n    getClientId:\n    /*String*/\n    function getClientId() {\n      return cometd.getClientId();\n    },\n\n    /**\n     * Channels\n     */\n    getChannel:\n    /*amb.ChannelListener*/\n    function getChannel(channelName, subscriptionConfig) {\n      var _ref = subscriptionConfig || {},\n          subscriptionCallback = _ref.subscriptionCallback,\n          serializedGraphQLSubscription = _ref.serializedGraphQLSubscription,\n          subscribeOptionsCallback = _ref.subscribeOptionsCallback;\n\n      var channel = serverConnection.getChannel(channelName, subscribeOptionsCallback);\n\n      if (graphQLSubscriptionExtension.isGraphQLChannel(channelName)) {\n        if (serializedGraphQLSubscription) graphQLSubscriptionExtension.addGraphQLChannel(channelName, serializedGraphQLSubscription);else LOGGER.addErrorMessage(\"Serialized subscription not present for GraphQL channel \" + channelName);\n      }\n\n      return new _amb3.default(channel, serverConnection, subscriptionCallback);\n    },\n    removeChannel: function removeChannel(channelName) {\n      serverConnection.removeChannel(channelName);\n      if (graphQLSubscriptionExtension.isGraphQLChannel(channelName)) graphQLSubscriptionExtension.removeGraphQLChannel(channelName);\n    },\n    getChannels: function getChannels() {\n      return serverConnection.getChannels();\n    },\n\n    /**\n     * Cancel transactions\n     * @param cancelTransactionRequests: array of requests, which in the format: [{\"nowUIInteraction\": \"interaction_2\", \"callback\":function(message) { console.log(message);}}, {\"nowUIInteraction\": \"interaction_3\", \"callback\":function(message) { console.log(message);}}];\n     */\n    cancelTransaction: function cancelTransaction(cancelTransactionRequests) {\n      cancelTransactionSender.cancelTransaction(cancelTransactionRequests, this);\n    },\n    extendSession: function extendSession() {\n      sessionExtension.extendSession();\n    },\n    getTokenManagementExtension: function getTokenManagementExtension() {\n      return tokenManagementExtension;\n    },\n\n    /**\n     * Extensions\n     */\n    registerExtension:\n    /*void*/\n    function registerExtension(\n    /*String*/\n    extensionName,\n    /*Object*/\n    extension) {\n      cometd.registerExtension(extensionName, extension);\n    },\n    unregisterExtension:\n    /*void*/\n    function unregisterExtension(\n    /*String*/\n    extensionName) {\n      cometd.unregisterExtension(extensionName);\n    },\n\n    /**\n     * Utility\n     */\n\n    /**\n     * Executes messages in a batch.\n     *\n     * block is an anonymous function, containing a chain of messages to be posted\n     * together, and executed in sequence\n     *\n     * Example:\n     *        block = function() {\n           * \t\t\tchannel.subscribe();\n           *\t\t\tchannel.publish({ user: 'Fred', message: 'Fred has joined the channel' });\n           *\t\t}\n     */\n    batch:\n    /*void*/\n    function batch(\n    /*function(){...}*/\n    block) {\n      cometd.batch(block);\n    },\n    getBaseURL: function getBaseURL() {\n      return clientBaseURL;\n    },\n\n    /**\n     * Batch logging methods\n     */\n    addToBatch: function addToBatch(logEntry) {\n      return _addToBatch(logEntry);\n    },\n    flushBatch: function flushBatch() {\n      return flushGlobalBatch();\n    },\n    getBatchSize: function getBatchSize() {\n      return globalLogBatch.length;\n    },\n    addAllowedChannels: function addAllowedChannels(channels) {\n      if (Array.isArray(channels)) {\n        // Add multiple channels\n        channels.forEach(function (channel) {\n          if (!allowedChannels.includes(channel)) allowedChannels.push(channel);\n        });\n        LOGGER.debug(\"[AMB Client] Added channels to allowed list: \".concat(channels, \". Current allowed list: \").concat(allowedChannels));\n      } else if (typeof channels === 'string') {\n        // Add single channel\n        if (!allowedChannels.includes(channels)) allowedChannels.push(channels);\n        LOGGER.debug(\"[AMB Client] Added channel to allowed list: \".concat(channels, \". Current allowed list: \").concat(allowedChannels));\n      } else LOGGER.addErrorMessage(\"[AMB Client] Invalid channels parameter: \".concat(channels, \". Expected string or array.\"));\n    },\n    setBatchLoggingStartTime: function setBatchLoggingStartTime(startTime) {\n      if (typeof startTime === 'string' && startTime.length > 0) {\n        // Accept string format \"YYYY-MM-DD HH:MM:SS\"\n        _amb5.default.batchLogging.startTime = startTime;\n        LOGGER.debug(\"[AMB Client] Set batch logging start time to: \".concat(startTime));\n      } else if (startTime === null || startTime === undefined) {\n        _amb5.default.batchLogging.startTime = null;\n        LOGGER.debug(\"[AMB Client] Cleared batch logging start time\");\n      } else LOGGER.addErrorMessage(\"[AMB Client] Invalid startTime parameter: \".concat(startTime, \". Expected string format \\\"YYYY-MM-DD HH:MM:SS\\\", null, or undefined.\"));\n    },\n    setBatchLogEnabled: function setBatchLogEnabled(enabled) {\n      if (typeof enabled === 'boolean') {\n        _amb5.default.batchLogging.enabled = enabled;\n        LOGGER.debug(\"[AMB Client] Set batch logging enabled to: \".concat(enabled));\n      } else if (enabled === null || enabled === undefined) {\n        _amb5.default.batchLogging.enabled = false;\n        LOGGER.debug(\"[AMB Client] Set batch logging enabled to: false (null/undefined provided)\");\n      } else LOGGER.addErrorMessage(\"[AMB Client] Invalid enabled parameter: \".concat(enabled, \". Expected boolean, null, or undefined.\"));\n    }\n  };\n};\n\nvar _default = MessageClient;\nexports.default = _default;","",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t    var crypto;\n\n\t    // Native crypto from window (Browser)\n\t    if (typeof window !== 'undefined' && window.crypto) {\n\t        crypto = window.crypto;\n\t    }\n\n\t    // Native crypto in web worker (Browser)\n\t    if (typeof self !== 'undefined' && self.crypto) {\n\t        crypto = self.crypto;\n\t    }\n\n\t    // Native crypto from worker\n\t    if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t        crypto = globalThis.crypto;\n\t    }\n\n\t    // Native (experimental IE 11) crypto from window (Browser)\n\t    if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t        crypto = window.msCrypto;\n\t    }\n\n\t    // Native crypto from global (NodeJS)\n\t    if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t        crypto = global.crypto;\n\t    }\n\n\t    // Native crypto import via require (NodeJS)\n\t    if (!crypto && typeof require === 'function') {\n\t        try {\n\t            crypto = require('crypto');\n\t        } catch (err) {}\n\t    }\n\n\t    /*\n\t     * Cryptographically secure pseudorandom number generator\n\t     *\n\t     * As Math.random() is cryptographically not safe to use\n\t     */\n\t    var cryptoSecureRandomInt = function () {\n\t        if (crypto) {\n\t            // Use getRandomValues method (Browser)\n\t            if (typeof crypto.getRandomValues === 'function') {\n\t                try {\n\t                    return crypto.getRandomValues(new Uint32Array(1))[0];\n\t                } catch (err) {}\n\t            }\n\n\t            // Use randomBytes method (NodeJS)\n\t            if (typeof crypto.randomBytes === 'function') {\n\t                try {\n\t                    return crypto.randomBytes(4).readInt32LE();\n\t                } catch (err) {}\n\t            }\n\t        }\n\n\t        throw new Error('Native crypto module could not be used to get secure random number.');\n\t    };\n\n\t    /*\n\t     * Local polyfill of Object.create\n\n\t     */\n\t    var create = Object.create || (function () {\n\t        function F() {}\n\n\t        return function (obj) {\n\t            var subtype;\n\n\t            F.prototype = obj;\n\n\t            subtype = new F();\n\n\t            F.prototype = null;\n\n\t            return subtype;\n\t        };\n\t    }());\n\n\t    /**\n\t     * CryptoJS namespace.\n\t     */\n\t    var C = {};\n\n\t    /**\n\t     * Library namespace.\n\t     */\n\t    var C_lib = C.lib = {};\n\n\t    /**\n\t     * Base object for prototypal inheritance.\n\t     */\n\t    var Base = C_lib.Base = (function () {\n\n\n\t        return {\n\t            /**\n\t             * Creates a new object that inherits from this object.\n\t             *\n\t             * @param {Object} overrides Properties to copy into the new object.\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         field: 'value',\n\t             *\n\t             *         method: function () {\n\t             *         }\n\t             *     });\n\t             */\n\t            extend: function (overrides) {\n\t                // Spawn\n\t                var subtype = create(this);\n\n\t                // Augment\n\t                if (overrides) {\n\t                    subtype.mixIn(overrides);\n\t                }\n\n\t                // Create default initializer\n\t                if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t                    subtype.init = function () {\n\t                        subtype.$super.init.apply(this, arguments);\n\t                    };\n\t                }\n\n\t                // Initializer's prototype is the subtype object\n\t                subtype.init.prototype = subtype;\n\n\t                // Reference supertype\n\t                subtype.$super = this;\n\n\t                return subtype;\n\t            },\n\n\t            /**\n\t             * Extends this object and runs the init method.\n\t             * Arguments to create() will be passed to init().\n\t             *\n\t             * @return {Object} The new object.\n\t             *\n\t             * @static\n\t             *\n\t             * @example\n\t             *\n\t             *     var instance = MyType.create();\n\t             */\n\t            create: function () {\n\t                var instance = this.extend();\n\t                instance.init.apply(instance, arguments);\n\n\t                return instance;\n\t            },\n\n\t            /**\n\t             * Initializes a newly created object.\n\t             * Override this method to add some logic when your objects are created.\n\t             *\n\t             * @example\n\t             *\n\t             *     var MyType = CryptoJS.lib.Base.extend({\n\t             *         init: function () {\n\t             *             // ...\n\t             *         }\n\t             *     });\n\t             */\n\t            init: function () {\n\t            },\n\n\t            /**\n\t             * Copies properties into this object.\n\t             *\n\t             * @param {Object} properties The properties to mix in.\n\t             *\n\t             * @example\n\t             *\n\t             *     MyType.mixIn({\n\t             *         field: 'value'\n\t             *     });\n\t             */\n\t            mixIn: function (properties) {\n\t                for (var propertyName in properties) {\n\t                    if (properties.hasOwnProperty(propertyName)) {\n\t                        this[propertyName] = properties[propertyName];\n\t                    }\n\t                }\n\n\t                // IE won't copy toString using the loop above\n\t                if (properties.hasOwnProperty('toString')) {\n\t                    this.toString = properties.toString;\n\t                }\n\t            },\n\n\t            /**\n\t             * Creates a copy of this object.\n\t             *\n\t             * @return {Object} The clone.\n\t             *\n\t             * @example\n\t             *\n\t             *     var clone = instance.clone();\n\t             */\n\t            clone: function () {\n\t                return this.init.prototype.extend(this);\n\t            }\n\t        };\n\t    }());\n\n\t    /**\n\t     * An array of 32-bit words.\n\t     *\n\t     * @property {Array} words The array of 32-bit words.\n\t     * @property {number} sigBytes The number of significant bytes in this word array.\n\t     */\n\t    var WordArray = C_lib.WordArray = Base.extend({\n\t        /**\n\t         * Initializes a newly created word array.\n\t         *\n\t         * @param {Array} words (Optional) An array of 32-bit words.\n\t         * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.create();\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t         *     var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t         */\n\t        init: function (words, sigBytes) {\n\t            words = this.words = words || [];\n\n\t            if (sigBytes != undefined) {\n\t                this.sigBytes = sigBytes;\n\t            } else {\n\t                this.sigBytes = words.length * 4;\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts this word array to a string.\n\t         *\n\t         * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t         *\n\t         * @return {string} The stringified word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     var string = wordArray + '';\n\t         *     var string = wordArray.toString();\n\t         *     var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t         */\n\t        toString: function (encoder) {\n\t            return (encoder || Hex).stringify(this);\n\t        },\n\n\t        /**\n\t         * Concatenates a word array to this word array.\n\t         *\n\t         * @param {WordArray} wordArray The word array to append.\n\t         *\n\t         * @return {WordArray} This word array.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray1.concat(wordArray2);\n\t         */\n\t        concat: function (wordArray) {\n\t            // Shortcuts\n\t            var thisWords = this.words;\n\t            var thatWords = wordArray.words;\n\t            var thisSigBytes = this.sigBytes;\n\t            var thatSigBytes = wordArray.sigBytes;\n\n\t            // Clamp excess bits\n\t            this.clamp();\n\n\t            // Concat\n\t            if (thisSigBytes % 4) {\n\t                // Copy one byte at a time\n\t                for (var i = 0; i < thatSigBytes; i++) {\n\t                    var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                    thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t                }\n\t            } else {\n\t                // Copy one word at a time\n\t                for (var j = 0; j < thatSigBytes; j += 4) {\n\t                    thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t                }\n\t            }\n\t            this.sigBytes += thatSigBytes;\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Removes insignificant bits.\n\t         *\n\t         * @example\n\t         *\n\t         *     wordArray.clamp();\n\t         */\n\t        clamp: function () {\n\t            // Shortcuts\n\t            var words = this.words;\n\t            var sigBytes = this.sigBytes;\n\n\t            // Clamp\n\t            words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t            words.length = Math.ceil(sigBytes / 4);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this word array.\n\t         *\n\t         * @return {WordArray} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = wordArray.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone.words = this.words.slice(0);\n\n\t            return clone;\n\t        },\n\n\t        /**\n\t         * Creates a word array filled with random bytes.\n\t         *\n\t         * @param {number} nBytes The number of random bytes to generate.\n\t         *\n\t         * @return {WordArray} The random word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.lib.WordArray.random(16);\n\t         */\n\t        random: function (nBytes) {\n\t            var words = [];\n\n\t            for (var i = 0; i < nBytes; i += 4) {\n\t                words.push(cryptoSecureRandomInt());\n\t            }\n\n\t            return new WordArray.init(words, nBytes);\n\t        }\n\t    });\n\n\t    /**\n\t     * Encoder namespace.\n\t     */\n\t    var C_enc = C.enc = {};\n\n\t    /**\n\t     * Hex encoding strategy.\n\t     */\n\t    var Hex = C_enc.Hex = {\n\t        /**\n\t         * Converts a word array to a hex string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The hex string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var hexChars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                hexChars.push((bite >>> 4).toString(16));\n\t                hexChars.push((bite & 0x0f).toString(16));\n\t            }\n\n\t            return hexChars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a hex string to a word array.\n\t         *\n\t         * @param {string} hexStr The hex string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t         */\n\t        parse: function (hexStr) {\n\t            // Shortcut\n\t            var hexStrLength = hexStr.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < hexStrLength; i += 2) {\n\t                words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t            }\n\n\t            return new WordArray.init(words, hexStrLength / 2);\n\t        }\n\t    };\n\n\t    /**\n\t     * Latin1 encoding strategy.\n\t     */\n\t    var Latin1 = C_enc.Latin1 = {\n\t        /**\n\t         * Converts a word array to a Latin1 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Latin1 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\n\t            // Convert\n\t            var latin1Chars = [];\n\t            for (var i = 0; i < sigBytes; i++) {\n\t                var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t                latin1Chars.push(String.fromCharCode(bite));\n\t            }\n\n\t            return latin1Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Latin1 string to a word array.\n\t         *\n\t         * @param {string} latin1Str The Latin1 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t         */\n\t        parse: function (latin1Str) {\n\t            // Shortcut\n\t            var latin1StrLength = latin1Str.length;\n\n\t            // Convert\n\t            var words = [];\n\t            for (var i = 0; i < latin1StrLength; i++) {\n\t                words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t            }\n\n\t            return new WordArray.init(words, latin1StrLength);\n\t        }\n\t    };\n\n\t    /**\n\t     * UTF-8 encoding strategy.\n\t     */\n\t    var Utf8 = C_enc.Utf8 = {\n\t        /**\n\t         * Converts a word array to a UTF-8 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The UTF-8 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            try {\n\t                return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t            } catch (e) {\n\t                throw new Error('Malformed UTF-8 data');\n\t            }\n\t        },\n\n\t        /**\n\t         * Converts a UTF-8 string to a word array.\n\t         *\n\t         * @param {string} utf8Str The UTF-8 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t         */\n\t        parse: function (utf8Str) {\n\t            return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t        }\n\t    };\n\n\t    /**\n\t     * Abstract buffered block algorithm template.\n\t     *\n\t     * The property blockSize must be implemented in a concrete subtype.\n\t     *\n\t     * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t     */\n\t    var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t        /**\n\t         * Resets this block algorithm's data buffer to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm.reset();\n\t         */\n\t        reset: function () {\n\t            // Initial values\n\t            this._data = new WordArray.init();\n\t            this._nDataBytes = 0;\n\t        },\n\n\t        /**\n\t         * Adds new data to this block algorithm's buffer.\n\t         *\n\t         * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t         *\n\t         * @example\n\t         *\n\t         *     bufferedBlockAlgorithm._append('data');\n\t         *     bufferedBlockAlgorithm._append(wordArray);\n\t         */\n\t        _append: function (data) {\n\t            // Convert string to WordArray, else assume WordArray already\n\t            if (typeof data == 'string') {\n\t                data = Utf8.parse(data);\n\t            }\n\n\t            // Append\n\t            this._data.concat(data);\n\t            this._nDataBytes += data.sigBytes;\n\t        },\n\n\t        /**\n\t         * Processes available data blocks.\n\t         *\n\t         * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t         *\n\t         * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t         *\n\t         * @return {WordArray} The processed data.\n\t         *\n\t         * @example\n\t         *\n\t         *     var processedData = bufferedBlockAlgorithm._process();\n\t         *     var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t         */\n\t        _process: function (doFlush) {\n\t            var processedWords;\n\n\t            // Shortcuts\n\t            var data = this._data;\n\t            var dataWords = data.words;\n\t            var dataSigBytes = data.sigBytes;\n\t            var blockSize = this.blockSize;\n\t            var blockSizeBytes = blockSize * 4;\n\n\t            // Count blocks ready\n\t            var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t            if (doFlush) {\n\t                // Round up to include partial blocks\n\t                nBlocksReady = Math.ceil(nBlocksReady);\n\t            } else {\n\t                // Round down to include only full blocks,\n\t                // less the number of blocks that must remain in the buffer\n\t                nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t            }\n\n\t            // Count words ready\n\t            var nWordsReady = nBlocksReady * blockSize;\n\n\t            // Count bytes ready\n\t            var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t            // Process blocks\n\t            if (nWordsReady) {\n\t                for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t                    // Perform concrete-algorithm logic\n\t                    this._doProcessBlock(dataWords, offset);\n\t                }\n\n\t                // Remove processed words\n\t                processedWords = dataWords.splice(0, nWordsReady);\n\t                data.sigBytes -= nBytesReady;\n\t            }\n\n\t            // Return processed words\n\t            return new WordArray.init(processedWords, nBytesReady);\n\t        },\n\n\t        /**\n\t         * Creates a copy of this object.\n\t         *\n\t         * @return {Object} The clone.\n\t         *\n\t         * @example\n\t         *\n\t         *     var clone = bufferedBlockAlgorithm.clone();\n\t         */\n\t        clone: function () {\n\t            var clone = Base.clone.call(this);\n\t            clone._data = this._data.clone();\n\n\t            return clone;\n\t        },\n\n\t        _minBufferSize: 0\n\t    });\n\n\t    /**\n\t     * Abstract hasher template.\n\t     *\n\t     * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t     */\n\t    var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t        /**\n\t         * Configuration options.\n\t         */\n\t        cfg: Base.extend(),\n\n\t        /**\n\t         * Initializes a newly created hasher.\n\t         *\n\t         * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hasher = CryptoJS.algo.SHA256.create();\n\t         */\n\t        init: function (cfg) {\n\t            // Apply config defaults\n\t            this.cfg = this.cfg.extend(cfg);\n\n\t            // Set initial values\n\t            this.reset();\n\t        },\n\n\t        /**\n\t         * Resets this hasher to its initial state.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.reset();\n\t         */\n\t        reset: function () {\n\t            // Reset data buffer\n\t            BufferedBlockAlgorithm.reset.call(this);\n\n\t            // Perform concrete-hasher logic\n\t            this._doReset();\n\t        },\n\n\t        /**\n\t         * Updates this hasher with a message.\n\t         *\n\t         * @param {WordArray|string} messageUpdate The message to append.\n\t         *\n\t         * @return {Hasher} This hasher.\n\t         *\n\t         * @example\n\t         *\n\t         *     hasher.update('message');\n\t         *     hasher.update(wordArray);\n\t         */\n\t        update: function (messageUpdate) {\n\t            // Append\n\t            this._append(messageUpdate);\n\n\t            // Update the hash\n\t            this._process();\n\n\t            // Chainable\n\t            return this;\n\t        },\n\n\t        /**\n\t         * Finalizes the hash computation.\n\t         * Note that the finalize operation is effectively a destructive, read-once operation.\n\t         *\n\t         * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t         *\n\t         * @return {WordArray} The hash.\n\t         *\n\t         * @example\n\t         *\n\t         *     var hash = hasher.finalize();\n\t         *     var hash = hasher.finalize('message');\n\t         *     var hash = hasher.finalize(wordArray);\n\t         */\n\t        finalize: function (messageUpdate) {\n\t            // Final message update\n\t            if (messageUpdate) {\n\t                this._append(messageUpdate);\n\t            }\n\n\t            // Perform concrete-hasher logic\n\t            var hash = this._doFinalize();\n\n\t            return hash;\n\t        },\n\n\t        blockSize: 512/32,\n\n\t        /**\n\t         * Creates a shortcut function to a hasher's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to create a helper for.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHelper: function (hasher) {\n\t            return function (message, cfg) {\n\t                return new hasher.init(cfg).finalize(message);\n\t            };\n\t        },\n\n\t        /**\n\t         * Creates a shortcut function to the HMAC's object interface.\n\t         *\n\t         * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t         *\n\t         * @return {Function} The shortcut function.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t         */\n\t        _createHmacHelper: function (hasher) {\n\t            return function (message, key) {\n\t                return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t            };\n\t        }\n\t    });\n\n\t    /**\n\t     * Algorithm namespace.\n\t     */\n\t    var C_algo = C.algo = {};\n\n\t    return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t    // Shortcuts\n\t    var C = CryptoJS;\n\t    var C_lib = C.lib;\n\t    var WordArray = C_lib.WordArray;\n\t    var C_enc = C.enc;\n\n\t    /**\n\t     * Base64 encoding strategy.\n\t     */\n\t    var Base64 = C_enc.Base64 = {\n\t        /**\n\t         * Converts a word array to a Base64 string.\n\t         *\n\t         * @param {WordArray} wordArray The word array.\n\t         *\n\t         * @return {string} The Base64 string.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t         */\n\t        stringify: function (wordArray) {\n\t            // Shortcuts\n\t            var words = wordArray.words;\n\t            var sigBytes = wordArray.sigBytes;\n\t            var map = this._map;\n\n\t            // Clamp excess bits\n\t            wordArray.clamp();\n\n\t            // Convert\n\t            var base64Chars = [];\n\t            for (var i = 0; i < sigBytes; i += 3) {\n\t                var byte1 = (words[i >>> 2]       >>> (24 - (i % 4) * 8))       & 0xff;\n\t                var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t                var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t                var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t                for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t                    base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t                }\n\t            }\n\n\t            // Add padding\n\t            var paddingChar = map.charAt(64);\n\t            if (paddingChar) {\n\t                while (base64Chars.length % 4) {\n\t                    base64Chars.push(paddingChar);\n\t                }\n\t            }\n\n\t            return base64Chars.join('');\n\t        },\n\n\t        /**\n\t         * Converts a Base64 string to a word array.\n\t         *\n\t         * @param {string} base64Str The Base64 string.\n\t         *\n\t         * @return {WordArray} The word array.\n\t         *\n\t         * @static\n\t         *\n\t         * @example\n\t         *\n\t         *     var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t         */\n\t        parse: function (base64Str) {\n\t            // Shortcuts\n\t            var base64StrLength = base64Str.length;\n\t            var map = this._map;\n\t            var reverseMap = this._reverseMap;\n\n\t            if (!reverseMap) {\n\t                    reverseMap = this._reverseMap = [];\n\t                    for (var j = 0; j < map.length; j++) {\n\t                        reverseMap[map.charCodeAt(j)] = j;\n\t                    }\n\t            }\n\n\t            // Ignore padding\n\t            var paddingChar = map.charAt(64);\n\t            if (paddingChar) {\n\t                var paddingIndex = base64Str.indexOf(paddingChar);\n\t                if (paddingIndex !== -1) {\n\t                    base64StrLength = paddingIndex;\n\t                }\n\t            }\n\n\t            // Convert\n\t            return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t        },\n\n\t        _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t    };\n\n\t    function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t      var words = [];\n\t      var nBytes = 0;\n\t      for (var i = 0; i < base64StrLength; i++) {\n\t          if (i % 4) {\n\t              var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t              var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t              var bitsCombined = bits1 | bits2;\n\t              words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t              nBytes++;\n\t          }\n\t      }\n\t      return WordArray.create(words, nBytes);\n\t    }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS.enc.Utf8;\n\n}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.MessageClient\"));\n\nvar _encBase = _interopRequireDefault(require(\"crypto-js/enc-base64\"));\n\nvar _encUtf = _interopRequireDefault(require(\"crypto-js/enc-utf8\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n'use strict';\n\nvar LOGGER = new _amb2.default('amb.MessageClientBuilder');\n/**\n * @param {string} baseURL - optional URL of the ServiceNow instance for the AMB Client on a third-party page\n */\n\nvar getClient = function getClient() {\n  var baseURL = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n  var client = getParentAmbClient(window);\n\n  if (!client) {\n    /* IE11 has an instance of the amb client for each iframe. This check ensures that there is only one login popup\n    per page by turning off the login popup for clients inside an iframe.\n    */\n    var dontShowLogin = isIE11(window) && window.frameElement !== null;\n    if (!baseURL) baseURL = window.location.protocol + '//' + window.location.host;\n    client = wrapClient(buildClient(dontShowLogin, baseURL), window); // set it for reuse\n\n    setClient(client);\n  } else if (baseURL && baseURL !== client.getBaseURL()) {\n    LOGGER.addErrorMessage('Client already set up to connect to ' + client.getBaseURL());\n    throw new Error('Client already set up to connect to ' + client.getBaseURL());\n  }\n\n  return wrapClient(client, window);\n};\n\nfunction getParentAmbClient(clientWindow) {\n  // PRB682487 try/catch in case parent is accessed from an iframe\n  try {\n    // try to find an existing client\n    // PRB713556 do not walk up to the parent window for IE11 as it causes a memory leak.\n    if (!isIE11(clientWindow)) {\n      while (clientWindow !== clientWindow.parent) {\n        if (clientWindow.g_ambClient) {\n          break;\n        }\n\n        clientWindow = clientWindow.parent;\n      }\n    }\n\n    if (clientWindow.g_ambClient) {\n      return clientWindow.g_ambClient;\n    }\n  } catch (e) {\n    console.log('AMB getClient() tried to access parent from an iFrame. Caught error: ' + e);\n  }\n\n  return null;\n}\n\nfunction isIE11(window) {\n  return window.MSInputMethodContext && window.document.documentMode;\n}\n/**\n * Enforces the calling window context for event subscription cleanup\n * @param {AMBClient} client\n * @param {Window} clientWindow\n */\n\n\nfunction wrapClient(client, clientWindow) {\n  if (typeof client.getClientWindow !== 'undefined') {\n    var context = client.getClientWindow(); // we don't need to wrap the client\n\n    if (context === clientWindow) {\n      return client;\n    }\n  }\n\n  var wrappedClient = clone({}, client);\n\n  wrappedClient.getChannel = function (channelName, subscriptionConfig, overrideWindow) {\n    return client.getChannel(channelName, subscriptionConfig, overrideWindow || clientWindow);\n  };\n\n  wrappedClient.getRecordWatcherChannel = function (table, query, actionPrefix, subscriptionConfig, overrideWindow) {\n    return client.getRecordWatcherChannel(table, query, actionPrefix, subscriptionConfig, overrideWindow || clientWindow);\n  };\n\n  wrappedClient.subscribeToEvent = function (event, callback, overrideWindow) {\n    return client.subscribeToEvent(event, callback, overrideWindow || clientWindow);\n  };\n\n  wrappedClient.unsubscribeFromEvent = function (id, overrideWindow) {\n    return client.unsubscribeFromEvent(id, overrideWindow || clientWindow);\n  };\n\n  wrappedClient.getClientWindow = function () {\n    return clientWindow;\n  };\n\n  return wrappedClient;\n}\n/**\n * Shallow object clone\n * @param {Object} dest\n * @param {Object} source\n * @return {Object}\n */\n\n\nfunction clone(dest, source) {\n  for (var prop in source) {\n    if (Object.prototype.hasOwnProperty.call(source, prop)) dest[prop] = source[prop];\n  }\n\n  return dest;\n}\n\nfunction setClient(client) {\n  var _window = window.self;\n  _window.g_ambClient = client; // disconnect when the client is unloaded\n\n  _window.addEventListener(\"unload\", function () {\n    _window.g_ambClient.disconnect();\n  });\n\n  var defaultAmbConnectionTimeout = 10000;\n  var shouldDeferAmbConnection = _window.NOW && _window.NOW.hasOwnProperty('deferAmbConnection') ? _window.NOW.deferAmbConnection : false;\n  var deferredAmbConnectionTimeout = _window.NOW && _window.NOW.hasOwnProperty('deferredAmbConnectionTimeout') && isValidAmbConnectionTimeout(_window.NOW.deferredAmbConnectionTimeout) ? _window.NOW.deferredAmbConnectionTimeout : defaultAmbConnectionTimeout;\n\n  if (shouldDeferAmbConnection) {\n    _window.setTimeout(autoConnect, deferredAmbConnectionTimeout);\n  } else {\n    // auto-connect on load or timeout\n    var documentReadyState = _window.document ? _window.document.readyState : null;\n    if (documentReadyState === 'complete') autoConnect();else _window.addEventListener('load', autoConnect);\n\n    _window.setTimeout(autoConnect, defaultAmbConnectionTimeout);\n  }\n\n  var initiatedConnection = false;\n\n  function autoConnect() {\n    if (!initiatedConnection) {\n      initiatedConnection = true;\n\n      _window.g_ambClient.connect();\n    }\n  }\n\n  function isInteger(num) {\n    return parseInt(num, 10) === num;\n  }\n\n  function isValidAmbConnectionTimeout(timeout) {\n    return isInteger(timeout) && timeout > 0;\n  }\n}\n\nfunction buildClient(dontShowLogin, baseURL) {\n  return function () {\n    var ambClient = new _amb.default(baseURL);\n    var clientSubscriptions = buildClientSubscriptions();\n    var serverConnection = ambClient.getServerConnection();\n\n    if (dontShowLogin) {\n      serverConnection.setLoginWindowEnabled(false);\n    }\n\n    return {\n      getServerConnection: function getServerConnection() {\n        return serverConnection;\n      },\n      connect:\n      /*void*/\n      function connect() {\n        ambClient.connect();\n      },\n      abort:\n      /*void*/\n      function abort() {\n        ambClient.abort();\n      },\n      disconnect:\n      /*void*/\n      function disconnect() {\n        ambClient.disconnect();\n      },\n      getConnectionState:\n      /*String*/\n      function getConnectionState() {\n        return ambClient.getConnectionState();\n      },\n      getState:\n      /*String*/\n      function getState() {\n        return ambClient.getConnectionState();\n      },\n\n      /**\n       * Cancel transaction\n       * @param cancelRequests: array of requests, which in the format: [{\"nowUIInteraction\": \"interaction_2\", \"callback\":function(message) { console.log(message);}}, {\"nowUIInteraction\": \"interaction_3\", \"callback\":function(message) { console.log(message);}}];\n       */\n      cancelTransaction:\n      /*void*/\n      function cancelTransaction(cancelRequests) {\n        ambClient.cancelTransaction(cancelRequests);\n      },\n      getClientId:\n      /*String*/\n      function getClientId() {\n        return ambClient.getClientId();\n      },\n      getChannel:\n      /*amb.ChannelListener*/\n      function getChannel(channelName, subscriptionConfig, windowContext) {\n        var channel = ambClient.getChannel(channelName, subscriptionConfig);\n        var originalSubscribe = channel.subscribe;\n        var originalUnsubscribe = channel.unsubscribe;\n        windowContext = windowContext || window;\n\n        channel.subscribe = function (listener) {\n          clientSubscriptions.add(windowContext, channel, listener, function () {\n            channel.unsubscribe(listener);\n          });\n          originalSubscribe.call(channel, listener);\n          return channel;\n        };\n\n        channel.unsubscribe = function (listener) {\n          clientSubscriptions.remove(windowContext, channel, listener);\n          var call = originalUnsubscribe.call(channel, listener);\n\n          if (serverConnection.getChannel(channelName).getChannelListeners().length === 0) {\n            ambClient.removeChannel(channelName);\n          }\n\n          return call;\n        };\n\n        return channel;\n      },\n      getChannel0:\n      /*amb.ChannelListener*/\n      function getChannel0(\n      /*String*/\n      channelName,\n      /*Function*/\n      subscriptionCallback) {\n        return ambClient.getChannel(channelName, subscriptionCallback);\n      },\n\n      /**\n       * Creates a channel with a properly encoded name required for Record Watcher. Returns a channel listener.\n       *\n       * @param {string} table\n       * @param {string} query\n       * @param {string} actionPrefix\n       * @param {Object<*>} subscriptionConfig\n       * @param {Object<*>} windowContext\n       * @returns {*|amb.ChannelListener}\n       */\n      getRecordWatcherChannel: function getRecordWatcherChannel(table, query, actionPrefix, subscriptionConfig, windowContext) {\n        // replace base64 padding character due to '=' is invalid channel name\n        var base64EncodedQuery = _encBase.default.stringify(_encUtf.default.parse(query)).replace(/=/g, '-');\n\n        actionPrefix = actionPrefix || 'default';\n        return this.getChannel('/rw/' + actionPrefix + '/' + table + '/' + base64EncodedQuery, subscriptionConfig, windowContext);\n      },\n      registerExtension:\n      /*void*/\n      function registerExtension(\n      /*String*/\n      extensionName,\n      /*Object*/\n      extension) {\n        ambClient.registerExtension(extensionName, extension);\n      },\n      unregisterExtension:\n      /*void*/\n      function unregisterExtension(\n      /*String*/\n      extensionName) {\n        ambClient.unregisterExtension(extensionName);\n      },\n      batch:\n      /*void*/\n      function batch(\n      /*function(){...}*/\n      block) {\n        ambClient.batch(block);\n      },\n      subscribeToEvent:\n      /*Number*/\n      function subscribeToEvent(\n      /*String*/\n      event,\n      /*Function*/\n      callback,\n      /*Object*/\n      windowContext) {\n        windowContext = windowContext || window;\n        var id = ambClient.subscribeToEvent(event, callback);\n        clientSubscriptions.add(windowContext, id, true, function () {\n          ambClient.unsubscribeFromEvent(id);\n        });\n        return id;\n      },\n      unsubscribeFromEvent:\n      /*void*/\n      function unsubscribeFromEvent(\n      /*Number*/\n      id,\n      /*Object*/\n      windowContext) {\n        windowContext = windowContext || window;\n        clientSubscriptions.remove(windowContext, id, true);\n        ambClient.unsubscribeFromEvent(id);\n      },\n      isLoggedIn:\n      /*boolean*/\n      function isLoggedIn() {\n        return ambClient.isLoggedIn();\n      },\n      getConnectionEvents:\n      /*Hash*/\n      function getConnectionEvents() {\n        return ambClient.getConnectionEvents();\n      },\n      getEvents:\n      /*Hash*/\n      function getEvents() {\n        return ambClient.getConnectionEvents();\n      },\n      reestablishSession: function reestablishSession() {\n        ambClient.reestablishSession();\n      },\n      loginComplete: function loginComplete() {\n        ambClient.loginComplete();\n      },\n      getChannels: function getChannels() {\n        return ambClient.getChannels();\n      },\n      extendSession: function extendSession() {\n        return ambClient.extendSession();\n      },\n      getTokenManagementExtension: function getTokenManagementExtension() {\n        return ambClient.getTokenManagementExtension();\n      },\n      // For unit testing\n      getBaseURL: function getBaseURL() {\n        return baseURL;\n      },\n      // Batch logging methods\n      addToBatch: function addToBatch(logEntry) {\n        return ambClient.addToBatch(logEntry);\n      },\n      flushBatch: function flushBatch() {\n        return ambClient.flushBatch();\n      },\n      getBatchSize: function getBatchSize() {\n        return ambClient.getBatchSize();\n      },\n      addAllowedChannels: function addAllowedChannels(channels) {\n        return ambClient.addAllowedChannels(channels);\n      },\n      setBatchLoggingStartTime: function setBatchLoggingStartTime(startTime) {\n        return ambClient.setBatchLoggingStartTime(startTime);\n      },\n      setBatchLogEnabled: function setBatchLogEnabled(enabled) {\n        return ambClient.setBatchLogEnabled(enabled);\n      }\n    };\n  }();\n\n  function buildClientSubscriptions() {\n    var contexts = [];\n\n    function addSubscription(clientWindow, id, callback, unsubscribe) {\n      if (!clientWindow || !callback || !unsubscribe) return;\n      removeSubscription(clientWindow, id, callback);\n      var context = getContext(clientWindow);\n\n      if (!context) {\n        context = createContext(clientWindow);\n      }\n\n      if (context.unloading) return;\n      context.subscriptions.push({\n        id: id,\n        callback: callback,\n        unsubscribe: unsubscribe\n      });\n    }\n\n    function removeSubscription(clientWindow, id, callback) {\n      if (!clientWindow || !callback) return;\n      var context = getContext(clientWindow);\n      if (!context) return;\n      var subscriptions = context.subscriptions;\n\n      for (var i = subscriptions.length - 1; i >= 0; i--) {\n        if (subscriptions[i].id === id && subscriptions[i].callback === callback) subscriptions.splice(i, 1);\n      }\n    }\n\n    function getContext(clientWindow) {\n      for (var i = 0, iM = contexts.length; i < iM; i++) {\n        if (contexts[i].window === clientWindow) return contexts[i];\n      }\n\n      return null;\n    }\n\n    function createContext(clientWindow) {\n      var context = {\n        window: clientWindow,\n        onUnload: function onUnload() {\n          context.unloading = true;\n          var subscriptions = context.subscriptions;\n          var subscription;\n\n          while (subscription = subscriptions.pop()) {\n            subscription.unsubscribe();\n          }\n\n          destroyContext(context);\n        },\n        unloading: false,\n        subscriptions: []\n      };\n      clientWindow.addEventListener('unload', context.onUnload);\n      contexts.push(context);\n      return context;\n    }\n\n    function destroyContext(context) {\n      for (var i = 0, iM = contexts.length; i < iM; i++) {\n        if (contexts[i].window === context.window) {\n          contexts.splice(i, 1);\n          break;\n        }\n      }\n\n      context.subscriptions = [];\n      context.window.removeEventListener('unload', context.onUnload);\n      context.onUnload = null;\n      context.window = null;\n    }\n\n    return {\n      add: addSubscription,\n      remove: removeSubscription\n    };\n  }\n}\n\nvar _default = getClient;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = require(\"./amb.Constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar MessagesRedeliveryManager = function MessagesRedeliveryManager() {\n  var LOGGER = new _amb.default('amb.MessagesRedeliveryManager');\n  var REDELIVERY_MESSAGE = 'redelivery_message';\n  var REDELIVERY_NOTIFICATION = 'redelivery_notification';\n  var IS_LAST_REDELIVERY = \"is_last_redelivery\";\n  var CAN_REDELIVER = \"can_redeliver\";\n  var REDELIVERY_NOT_AUTHORIZED = \"redelivery_not_authorized\";\n  var redeliveredMessages = [];\n  var originalMessages = [];\n  var awaitingRedeliveredMessages;\n  var isPendingDelivery;\n\n  var isLastRedelivered = function isLastRedelivered(message) {\n    return isRedelivered(message) && message.ext[REDELIVERY_MESSAGE][IS_LAST_REDELIVERY] === true;\n  };\n\n  var noneToRedeliverTag = function noneToRedeliverTag(message) {\n    return message.ext[REDELIVERY_NOTIFICATION] && message.ext[REDELIVERY_NOTIFICATION][CAN_REDELIVER] === false;\n  };\n\n  var isRedelivered = function isRedelivered(message) {\n    return message.ext[REDELIVERY_MESSAGE];\n  };\n\n  var redeliveryAuthorized = function redeliveryAuthorized(message) {\n    return message.ext[REDELIVERY_MESSAGE][REDELIVERY_NOT_AUTHORIZED] !== true;\n  };\n\n  var areSameMessages = function areSameMessages(m1, m2) {\n    return m1.ext[_amb2.MSG_SHARD] === m2.ext[_amb2.MSG_SHARD] && m1.ext[_amb2.MSG_NUM] === m2.ext[_amb2.MSG_NUM];\n  };\n\n  var isAlreadyReceived = function isAlreadyReceived(arr, message) {\n    return arr.find(function (messageExisting) {\n      return areSameMessages(messageExisting, message);\n    });\n  };\n\n  var getDeDupedMessages = function getDeDupedMessages(baseArr, dupeArr) {\n    return dupeArr.filter(function (message) {\n      return !isAlreadyReceived(baseArr, message);\n    });\n  };\n\n  var areMessagesAvailable = function areMessagesAvailable() {\n    return redeliveredMessages.length > 0 || originalMessages.length > 0;\n  };\n\n  var stringifyMetaInfo = function stringifyMetaInfo(message) {\n    return _amb2.MSG_NUM + ':' + message.ext[_amb2.MSG_NUM] + ',' + _amb2.MSG_SHARD + ':' + message.ext[_amb2.MSG_SHARD];\n  };\n\n  function stringifyMetaArr(arr) {\n    var logMessage = '';\n\n    var _iterator = _createForOfIteratorHelper(arr),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var message = _step.value;\n        logMessage = logMessage.concat('<' + stringifyMetaInfo(message) + '>');\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    return logMessage;\n  }\n\n  function clearMessages() {\n    LOGGER.debug('Clearing all messages');\n    redeliveredMessages = [];\n    originalMessages = [];\n  }\n\n  function redeliveryOver() {\n    LOGGER.debug('Redelivery over');\n    awaitingRedeliveredMessages = false;\n    isPendingDelivery = true;\n  }\n\n  return {\n    resetState: function resetState() {\n      clearMessages();\n      awaitingRedeliveredMessages = true;\n      isPendingDelivery = false;\n    },\n    containsMetaInfo: function containsMetaInfo(message) {\n      return message.ext && message.ext[_amb2.MSG_NUM] && message.ext[_amb2.MSG_SHARD];\n    },\n    shouldDeliver: function shouldDeliver(message) {\n      // Enqueue every message until all redelivered messages are received\n      if (awaitingRedeliveredMessages) {\n        if (noneToRedeliverTag(message)) {\n          LOGGER.debug('No messages to redeliver');\n          awaitingRedeliveredMessages = false;\n          return false;\n        }\n\n        if (!this.containsMetaInfo(message)) return false;\n\n        if (isRedelivered(message) && redeliveryAuthorized(message)) {\n          LOGGER.debug('Processing redelivered - ' + stringifyMetaInfo(message));\n          redeliveredMessages.push(message);\n        } else if (isRedelivered(message) && !redeliveryAuthorized(message)) {\n          LOGGER.debug('Not Processing unauthorized redelivery message - ' + stringifyMetaInfo(message));\n        } else {\n          originalMessages.push(message);\n          LOGGER.debug('Processing original - ' + stringifyMetaInfo(message));\n        }\n\n        if (isLastRedelivered(message)) redeliveryOver();\n        return false;\n      } // Worker thread message: new\n\n\n      if (!isAlreadyReceived(redeliveredMessages, message)) {\n        LOGGER.debug('Out of redelivery. New message received: ' + stringifyMetaInfo(message));\n        clearMessages();\n        return true;\n      } // Worker thread message: duplicate\n\n\n      LOGGER.debug('Dropping duplicate: ' + stringifyMetaInfo(message));\n      return false;\n    },\n    shouldDeliverPendingMessages: function shouldDeliverPendingMessages() {\n      return isPendingDelivery;\n    },\n    getAllPendingMessages: function getAllPendingMessages() {\n      var pendingMessages = [];\n\n      if (areMessagesAvailable()) {\n        var deDupedOriginal = getDeDupedMessages(redeliveredMessages, originalMessages);\n        pendingMessages = redeliveredMessages.concat(deDupedOriginal);\n      }\n\n      LOGGER.debug('Flushing: ' + stringifyMetaArr(pendingMessages));\n      redeliveredMessages = pendingMessages; //retain list for later comparison\n\n      originalMessages = []; // clear delivered messages\n\n      isPendingDelivery = false;\n      return pendingMessages;\n    },\n    getMissedMessagesSize: function getMissedMessagesSize() {\n      return redeliveredMessages.length;\n    },\n    getOriginalMessagesSize: function getOriginalMessagesSize() {\n      return originalMessages.length;\n    }\n  };\n};\n\nvar _default = MessagesRedeliveryManager;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = require(\"./amb.Helper\");\n\nvar _amb3 = _interopRequireDefault(require(\"./amb.MessageClientBuilder\"));\n\nvar _amb4 = _interopRequireDefault(require(\"./amb.MessagesRedeliveryManager\"));\n\nvar _amb5 = _interopRequireDefault(require(\"./amb.Properties\"));\n\nvar _amb6 = require(\"./amb.Constants\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Channel = function Channel(cometd, channelName, initialized) {\n  var subscribeOptionsCallback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {\n    return {};\n  };\n  var subscription = null;\n  var subscriptionCallbackResponse = null;\n  var listeners = [];\n  var listenerCallbackQueue = [];\n  var LOGGER = new _amb.default('amb.Channel');\n  var idCounter = 0;\n  var _initialized = initialized;\n  var lastMessageNumber = -1;\n  var lastMessageShard = null;\n  var UPPER_MSG_LIMIT = 1024 * 1024;\n  var LIMIT_EXCEEDED_ERROR = 'maxSendBayeuxMessageSize ' + cometd.getConfiguration().maxSendBayeuxMessageSize + ' exceeded';\n  var REST_PUBLISH_PATH = \"api/now/amb/publish/\";\n  var OUTGOING_EXT_MSG_NUM = 'last_msg_num';\n  var OUTGOING_EXT_MSG_SHARD = 'last_msg_shard';\n  var OUTGOING_EXT_REQUEST_DURATION = 'request_duration';\n  var readyToDeliver = true;\n  var redeliveryManager = new _amb4.default();\n\n  function _disconnected() {\n    var status = cometd.getStatus();\n    return status === 'disconnecting' || status === 'disconnected';\n  }\n\n  function getSubscriptionCommandSender() {\n    return (0, _amb3.default)().getServerConnection().getSubscriptionCommandSender();\n  } // Helper function to add entries to client-level batch\n\n\n  function addToBatch(logEntry) {\n    // Use client-level batch logging\n    (0, _amb3.default)().addToBatch(logEntry);\n  }\n\n  return {\n    /**\n     * Subscribe to have this channel's messages be published to the specified\n     * callback.\n     *\n     * @return Integer id for the newly registered listener\n     */\n    subscribe:\n    /*Integer*/\n    function subscribe(listener) {\n      if (!listener.getCallback()) {\n        LOGGER.addErrorMessage('Cannot subscribe to channel: ' + channelName + ', callback not provided');\n        return;\n      }\n\n      for (var i = 0; i < listeners.length; i++) {\n        if (listeners[i] === listener) {\n          LOGGER.debug('Channel listener already in the list');\n          return listener.getID();\n        }\n      }\n\n      listeners.push(listener);\n      LOGGER.debug(\"[AMB Client] Channel \".concat(channelName, \" now has \").concat(listeners.length, \" listener(s) registered\"));\n      var listenerSubCallback = listener.getSubscriptionCallback();\n\n      if (listenerSubCallback) {\n        if (subscriptionCallbackResponse) listenerSubCallback(subscriptionCallbackResponse);else listenerCallbackQueue.push(listenerSubCallback);\n      }\n\n      if (!subscription && _initialized) {\n        try {\n          this.subscribeToCometD();\n        } catch (e) {\n          LOGGER.addErrorMessage(e);\n          return;\n        }\n      }\n\n      return ++idCounter;\n    },\n    resubscribe:\n    /*void*/\n    function resubscribe() {\n      subscription = null;\n\n      for (var i = 0; i < listeners.length; i++) {\n        listeners[i].resubscribe();\n      }\n    },\n    _handleResponse:\n    /*void*/\n    function _handleResponse(\n    /*Hash*/\n    message) {\n      if (readyToDeliver) this.processMessageCallback(message);else this.processReSubscriptionMessages(message);\n    },\n    processReSubscriptionMessages: function processReSubscriptionMessages(message) {\n      var _this = this;\n\n      var deliver = redeliveryManager.shouldDeliver(message);\n\n      if (deliver) {\n        LOGGER.debug(_amb6.CHANNEL_READY_TO_DELIVER + channelName);\n        readyToDeliver = true;\n        this.processMessageCallback(message);\n      } else if (redeliveryManager.shouldDeliverPendingMessages()) redeliveryManager.getAllPendingMessages().forEach(function (item) {\n        return _this.processMessageCallback(item);\n      });\n    },\n    processMessageCallback: function processMessageCallback(message) {\n      LOGGER.debug(\"[AMB Client] processMessageCallback called - listeners: \".concat(listeners.length, \", batchLogging.enabled: \").concat(_amb5.default.batchLogging.enabled));\n\n      for (var i = 0; i < listeners.length; i++) {\n        var listenerId = listeners[i].getID();\n        var startTime = Date.now();\n        LOGGER.debug(\"[AMB Client] Message delivered to listener \" + listenerId + \" of channel name \" + listeners[i].getName() + \" at \" + startTime);\n\n        try {\n          listeners[i].getCallback()(message);\n          var endTime = Date.now();\n          LOGGER.debug(\"[AMB Client] Listener \" + listenerId + \" of channel name \" + listeners[i].getName() + \" callback completed at \" + endTime + \" (duration: \" + (endTime - startTime) + \"ms)\"); // Add to batch for successful processing\n\n          addToBatch({\n            channelName: listeners[i].getName(),\n            duration: endTime - startTime,\n            error: null\n          });\n        } catch (error) {\n          var _endTime = Date.now();\n\n          LOGGER.addErrorMessage(\"[AMB Client] Listener \" + listenerId + \" of channel name \" + listeners[i].getName() + \" callback failed at \" + _endTime + \" (duration: \" + (_endTime - startTime) + \"ms): \" + error); // Add to batch for failed processing\n\n          addToBatch({\n            channelName: listeners[i].getName(),\n            duration: _endTime - startTime,\n            error: error.length > 100 ? error.substring(0, 100) + \"...\" : error\n          });\n        }\n      }\n\n      if (redeliveryManager.containsMetaInfo(message)) {\n        lastMessageNumber = message.ext[_amb6.MSG_NUM];\n        lastMessageShard = message.ext[_amb6.MSG_SHARD];\n      }\n    },\n\n    /**\n     * Remove listener from channel, so callback pertaining to listener\n     * no longer receives messages published to channel. When the last\n     * listener is removed, the subscription is destroyed.\n     */\n    unsubscribe:\n    /*void*/\n    function unsubscribe(\n    /*amb.ChannelListener*/\n    listener) {\n      if (!listener) {\n        LOGGER.addErrorMessage('Cannot unsubscribe from channel: ' + channelName + ', listener argument does not exist');\n        return;\n      } // Remove listener\n\n\n      for (var i = 0; i < listeners.length; i++) {\n        if (listeners[i].getID() === listener.getID()) {\n          listeners.splice(i, 1);\n          break;\n        }\n      }\n\n      LOGGER.debug(\"[AMB Client] Channel \".concat(channelName, \" now has \").concat(listeners.length, \" listener(s) registered after unsubscribe\")); // Flush batch on every listener unsubscription\n\n      if ((0, _amb3.default)().getBatchSize() > 0) {\n        LOGGER.debug(\"[AMB Client] Flushing batch on listener unsubscribe for \".concat(channelName, \" - \").concat((0, _amb3.default)().getBatchSize(), \" pending entries\"));\n        (0, _amb3.default)().flushBatch();\n      } // Unsubscribe from CometD if this was the last listener\n\n\n      if (listeners.length < 1 && subscription && !_disconnected()) this.unsubscribeFromCometD();\n    },\n    publish:\n    /*void*/\n    function publish(\n    /*Hash*/\n    message,\n    /*Function*/\n    callback) {\n      cometd.publish(channelName, message, function (response) {\n        if (callback) callback(response);\n        if (response.failure !== undefined && response.failure.exception === LIMIT_EXCEEDED_ERROR) LOGGER.addErrorMessage(LIMIT_EXCEEDED_ERROR + ' - use publishAsync() to send large messages via REST automatically');\n      });\n    },\n    publishAsync: function publishAsync(message, callback) {\n      var _this2 = this;\n\n      cometd.publish(channelName, message, function (response) {\n        if (callback) callback(response);\n        LOGGER.debug('CometD publish response ' + JSON.stringify(response));\n\n        if (response.failure !== undefined) {\n          var exception = response.failure.exception;\n          var msgPayload = response.failure.message;\n\n          if (exception === LIMIT_EXCEEDED_ERROR && JSON.stringify(msgPayload).length <= UPPER_MSG_LIMIT) {\n            LOGGER.debug('Message size exceeded, publish message via REST');\n\n            _this2._publishViaRest(msgPayload, callback);\n          }\n        }\n      });\n    },\n    _publishViaRest: function _publishViaRest(message, callback) {\n      var request = new XMLHttpRequest();\n      request.withCredentials = true;\n      request.open(\"POST\", (0, _amb3.default)().getServerConnection().getURL(REST_PUBLISH_PATH + channelName.split(\"/\")[1]), true);\n      request.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\n      request.setRequestHeader(\"X-UserToken\", window.g_ck);\n\n      request.onload = function () {\n        if (request.status === 200) LOGGER.debug('Message publish request sent successfully via REST');else LOGGER.addErrorMessage('Error sending message publish request via REST - ' + request.responseText);\n        if (callback) callback(request.response);\n      };\n\n      request.send(JSON.stringify(message));\n    },\n    subscribeToCometD:\n    /*void*/\n    function subscribeToCometD() {\n      LOGGER.debug(\"subscribeToCometD channelName : \" + channelName + \", subscription : \" + subscription);\n      if (getSubscriptionCommandSender()) getSubscriptionCommandSender().subscribeToChannel(this);else this._subscribeToCometD(this.subscriptionCallback);\n    },\n    _subscribeToCometD: function _subscribeToCometD(overLoadedSubscriptionCallBack) {\n      LOGGER.debug(\"_subscribeToCometD channelName : \" + channelName);\n\n      var subscribeOptions = this._populateSubscriptionOptions();\n\n      if ((0, _amb2.isNil)(subscribeOptions) || (0, _amb2.isEmptyObject)(subscribeOptions)) subscription = cometd.subscribe(channelName, this._handleResponse.bind(this), overLoadedSubscriptionCallBack);else {\n        var subscribeOptionsWrapper = {\n          \"subscribeOptions\": subscribeOptions\n        };\n        subscription = cometd.subscribe(channelName, this._handleResponse.bind(this), subscribeOptionsWrapper, overLoadedSubscriptionCallBack);\n      }\n      LOGGER.debug('Successfully subscribed to channel: ' + channelName + ', subscribeOptions: ' + JSON.stringify(subscribeOptions));\n    },\n    _populateSubscriptionOptions: function _populateSubscriptionOptions() {\n      var subscribeOptions = subscribeOptionsCallback();\n      var durationSinceLastMessageReceived = Date.now() - this.fetchDisconnectionTS();\n\n      if (this._shouldRedeliveryBeRequested(durationSinceLastMessageReceived)) {\n        if ((0, _amb2.isNil)(subscribeOptions)) subscribeOptions = {};\n        subscribeOptions[_amb6.MESSAGE_REDELIVERY_OPTIONS] = {};\n        subscribeOptions[_amb6.MESSAGE_REDELIVERY_OPTIONS][OUTGOING_EXT_MSG_NUM] = lastMessageNumber;\n        subscribeOptions[_amb6.MESSAGE_REDELIVERY_OPTIONS][OUTGOING_EXT_MSG_SHARD] = lastMessageShard;\n        subscribeOptions[_amb6.MESSAGE_REDELIVERY_OPTIONS][OUTGOING_EXT_REQUEST_DURATION] = durationSinceLastMessageReceived;\n        LOGGER.debug(_amb6.CHANNEL_NOT_READY_TO_DELIVER + channelName);\n        readyToDeliver = false;\n        redeliveryManager.resetState();\n      }\n\n      return subscribeOptions;\n    },\n    _shouldRedeliveryBeRequested: function _shouldRedeliveryBeRequested(durationSinceLastMessageReceived) {\n      return durationSinceLastMessageReceived <= _amb5.default.redeliveryDisconnectTimeoutInMins * 60000 && lastMessageNumber != -1 && !(0, _amb2.isNil)(lastMessageShard);\n    },\n\n    /**\n     * Callback that gets fired when a cometd channel subscription is completed.\n     * Triggers channel listener callbacks.\n     * @param response\n     */\n    subscriptionCallback: function subscriptionCallback(response) {\n      LOGGER.debug(\"Cometd subscription callback completed for channel: \" + channelName);\n      LOGGER.debug(\"Listener callback queue size: \" + listenerCallbackQueue.length);\n      subscriptionCallbackResponse = response;\n      listenerCallbackQueue.map(function (listenerSubCallback) {\n        listenerSubCallback(subscriptionCallbackResponse);\n      });\n      listenerCallbackQueue = [];\n    },\n    unsubscribeFromCometD:\n    /*void*/\n    function unsubscribeFromCometD() {\n      LOGGER.debug(\"unsubscribeFromCometD  from : \" + channelName + ', subscription : ' + subscription);\n\n      if (subscription !== null) {\n        if (getSubscriptionCommandSender()) getSubscriptionCommandSender().unsubscribeToChannel(this);else this._unsubscribeFromCometD();\n      }\n    },\n    _unsubscribeFromCometD:\n    /*void*/\n    function _unsubscribeFromCometD() {\n      LOGGER.debug(\"_unsubscribeFromCometD  from : \" + channelName + ', subscription : ' + subscription);\n\n      if (subscription !== null) {\n        cometd.unsubscribe(subscription);\n        subscription = null;\n        subscriptionCallbackResponse = null;\n        LOGGER.debug('Successfully unsubscribed from channel: ' + channelName);\n      }\n    },\n    resubscribeToCometD:\n    /*void*/\n    function resubscribeToCometD() {\n      LOGGER.debug(\"Resubscribe to \" + channelName);\n      if (subscription !== null) cometd.removeListener(subscription);\n      if (getSubscriptionCommandSender()) getSubscriptionCommandSender().subscribeToChannel(this);else this._subscribeToCometD(this.subscriptionCallback);\n    },\n    getSubscribeOptionsCallback: function getSubscribeOptionsCallback() {\n      return subscribeOptionsCallback;\n    },\n    getName: function getName() {\n      return channelName;\n    },\n\n    /**\n     * Returns the array of amb.ChannelListeners.\n     * @returns {Array}\n     */\n    getChannelListeners: function getChannelListeners() {\n      return listeners;\n    },\n    getLastMessageShard: function getLastMessageShard() {\n      return lastMessageShard;\n    },\n    getLastMessageNumber: function getLastMessageNumber() {\n      return lastMessageNumber;\n    },\n    fetchDisconnectionTS: function fetchDisconnectionTS() {\n      var clientDisconnectTime = (0, _amb3.default)().getServerConnection().getConnectionBrokenTS();\n      LOGGER.debug(\"Client Disconnect Time in ms:\" + clientDisconnectTime);\n      return clientDisconnectTime ? clientDisconnectTime : 0;\n    },\n    getRedeliveryManager: function getRedeliveryManager() {\n      return redeliveryManager;\n    },\n    isReadyToDeliver: function isReadyToDeliver() {\n      return readyToDeliver;\n    },\n\n    /**\n     * Returns the array of channel listener subscription callbacks\n     * For unit testing.\n     * @returns {Array}\n     */\n    getListenerCallbackQueue: function getListenerCallbackQueue() {\n      return listenerCallbackQueue;\n    },\n\n    /**\n     * Don't use this, for unit testing.\n     * Need the ability to set the subscription callback response from cometd subscribe callback\n     *\n     * @param response\n     */\n    setSubscriptionCallbackResponse: function setSubscriptionCallbackResponse(response) {\n      subscriptionCallbackResponse = response;\n    }\n  };\n};\n\nvar _default = Channel;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar CrossClientChannel = /*#__PURE__*/_createClass(function CrossClientChannel() {\n  var _this = this;\n\n  _classCallCheck(this, CrossClientChannel);\n\n  _defineProperty(this, \"emit\", function (eventName, message) {\n    window.localStorage.setItem(eventName, JSON.stringify(message));\n    window.localStorage.removeItem(eventName);\n  });\n\n  _defineProperty(this, \"on\", function (eventName, listener) {\n    if (_this.registeredListeners.has(eventName)) {\n      var existingListener = _this.registeredListeners.get(eventName);\n\n      window.removeEventListener('storage', existingListener);\n\n      _this.LOGGER.debug('Removed storage event listener ' + eventName);\n    }\n\n    var newListener = function newListener(_ref) {\n      var key = _ref.key,\n          newValue = _ref.newValue;\n\n      if (key === eventName && newValue) {\n        listener(JSON.parse(newValue));\n      }\n    };\n\n    window.addEventListener('storage', newListener);\n\n    _this.LOGGER.debug('Registered storage event listener ' + eventName);\n\n    _this.registeredListeners.set(eventName, newListener);\n  });\n\n  this.registeredListeners = new Map();\n  this.LOGGER = new _amb.default('amb.CrossClientChannel');\n});\n\nvar _default = CrossClientChannel;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\n/**\n * Models a simple function queue\n * @param queueSize the maximum allowed queue size\n */\nvar _defaultMaxFunctionQueueSize = 0x7ffffff; // pseudo-infinity: max 32-bit signed int\n\nvar FunctionQueue = function FunctionQueue() {\n  var queueSize = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _defaultMaxFunctionQueueSize;\n  var queueBuffer = [];\n  var maxQueueSize = Math.max(1, Math.floor(queueSize));\n  return {\n    /**\n     * Adds an item to this queue.\n     * @param item  item to add to this queue\n     * @returns  true if the item was added; otherwise false (queue is full)\n     */\n    enqueue: function enqueue(item) {\n      if (this.getAvailableSpace() > 0) {\n        queueBuffer.push(item);\n        return true;\n      }\n\n      return false;\n    },\n\n    /**\n     * Adds multiple items to this queue.\n     * @param items  items to add to this queue\n     * @returns  true if all the items were added; false if insufficient room\n     */\n    enqueueMultiple: function enqueueMultiple(items) {\n      if (this.getAvailableSpace() >= items.length) {\n        queueBuffer = queueBuffer.concat(items);\n        return true;\n      }\n\n      return false;\n    },\n\n    /**\n     * Removes and returns an item from this queue.\n     * @returns  the item removed; otherwise an undefined is returned\n     */\n    dequeue: function dequeue() {\n      var result;\n      if (queueBuffer.length > 0) result = queueBuffer.shift();\n      return result;\n    },\n\n    /**\n     * Removes and returns up to a specified number of items from this queue.\n     * @param count the # of items to remove (if more than contained in queue or negative, undefined is returned)\n     * @returns  an array of containing the items removed, or undefined if count is out of range.\n     */\n    dequeueMultiple: function dequeueMultiple(count) {\n      var retbuf;\n\n      if (count >= 0) {\n        if (queueBuffer.length >= count) {\n          retbuf = [];\n\n          if (count > 0) {\n            retbuf = queueBuffer.slice(0, count);\n            queueBuffer = queueBuffer.slice(count);\n          }\n        }\n      }\n\n      return retbuf;\n    },\n\n    /**\n     * Removes all items from this queue.\n     */\n    clear: function clear() {\n      queueBuffer = [];\n    },\n\n    /**\n     * Returns the # of items in this queue.\n     * @returns  the # of items in this queue.\n     */\n    getSize: function getSize() {\n      return queueBuffer.length;\n    },\n\n    /**\n     * Returns the maximum capacity of this queue.\n     * @returns  the maximum capacity of this queue.\n     */\n    getCapacity: function getCapacity() {\n      return maxQueueSize;\n    },\n\n    /**\n     * Returns the space currently available for more items.\n     * @returns  the space currently available for more items.\n     */\n    getAvailableSpace: function getAvailableSpace() {\n      return maxQueueSize - queueBuffer.length;\n    },\n    getQueueBuffer: function getQueueBuffer() {\n      return queueBuffer;\n    }\n  };\n};\n\nvar _default = FunctionQueue;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Properties\"));\n\nvar _amb2 = require(\"./amb.Helper\");\n\nvar _amb3 = _interopRequireDefault(require(\"./amb.Logger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Controls the flow of subscription-related (subscribe, resubscribe, unsubscribe) commands\n * @param commandQueue  the queue to hold commands to process.\n */\nvar SubscriptionCommandSender = function SubscriptionCommandSender(commandQueue, tokenManager) {\n  var CommandModes = {\n    SUBSCRIBE: \"subscribe\",\n    UNSUBSCRIBE: \"unsubscribe\"\n  };\n  var HTTP_STATUS_ACCEPTED = 202;\n  var HTTP_STATUS_TOO_MANY_REQUESTS = 429;\n  var maxTimeInterval = 5 * 60 * 1000;\n  /* 5 minutes in milliseconds */\n\n  var LOGGER = new _amb3.default('amb.SubscriptionCommandSender');\n  registerToTokenAvailabilityListener();\n  var stopping = !_amb.default.subscribeCommandsFlow.enable;\n  var timerObject = null;\n\n  function _clamp(val, minLimit, maxLimit) {\n    return Math.min(maxLimit, Math.max(minLimit, val));\n  }\n\n  function getTokenCount() {\n    return _clamp(tokenManager.getTokenCount(), 0, _amb.default.subscribeCommandsFlow.maxInflight);\n  }\n\n  function isBucketFull() {\n    return tokenManager.getTokenCount() >= _amb.default.subscribeCommandsFlow.maxInflight;\n  }\n\n  function registerToTokenAvailabilityListener() {\n    tokenManager.addTokenAvailabilityListener(function () {\n      processQueue();\n    });\n  }\n\n  function restartTimer() {\n    var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n    if (force || (0, _amb2.isNil)(timerObject)) {\n      var timeInterval = _clamp(_amb.default.subscribeCommandsFlow.maxWait, 0, maxTimeInterval);\n\n      LOGGER.debug(\"restartTimer - force: \" + force + \", timerObject : \" + timerObject + \", timeInterval : \" + timeInterval);\n      stopTimer();\n      timerObject = setTimeout(function () {\n        onTimer();\n      }, timeInterval);\n    }\n  }\n\n  function stopTimer() {\n    if (!(0, _amb2.isNil)(timerObject)) {\n      LOGGER.debug(\"stopTimer\");\n      clearTimeout(timerObject);\n      timerObject = null;\n    }\n  }\n\n  function signalStop() {\n    LOGGER.debug(\"signalStop - stopping : \" + stopping);\n\n    if (!stopping) {\n      stopping = true;\n      stopTimer();\n      commandQueue.clear();\n    }\n  }\n\n  function getRetryDelay() {\n    var delay = parseInt(_amb.default.subscribeCommandsFlow.retryDelay.min);\n    delay = _clamp(delay, 0, maxTimeInterval);\n    return delay;\n  }\n\n  function scheduleRetry(channel, triesLeft, mode, retryDelay) {\n    LOGGER.debug(\"scheduleRetry - channel : \" + channel.getName() + \", triesLeft : \" + triesLeft + \", mode : \" + mode);\n    var retryMessage;\n    var newRetryDelay = getNewRetryDelay(retryDelay);\n\n    switch (mode) {\n      case CommandModes.SUBSCRIBE:\n        {\n          retryMessage = function retryMessage() {\n            return enqueueSubscribe(channel, triesLeft, newRetryDelay);\n          };\n\n          break;\n        }\n\n      case CommandModes.UNSUBSCRIBE:\n        {\n          retryMessage = function retryMessage() {\n            return enqueueUnsubscribe(channel, triesLeft, newRetryDelay);\n          };\n\n          break;\n        }\n    }\n\n    if (!(0, _amb2.isNil)(retryMessage)) setTimeout(retryMessage, retryDelay);\n  }\n\n  function onResponse(response, channel, mode, triesLeft, retryDelay) {\n    LOGGER.debug(\"onResponse - response \".concat(JSON.stringify(response), \", channel \").concat(JSON.stringify(channel), \", mode : \").concat(mode, \", \\n\\t\\t\\ttriesLeft \").concat(triesLeft, \", stopping : \").concat(stopping, \", tokenCount : \").concat(tokenManager.getTokenCount(), \", isBucketFull - \").concat(isBucketFull(), \", retryDelay - \").concat(retryDelay));\n\n    if (!stopping) {\n      triesLeft = triesLeft - 1;\n      if (isBucketFull()) stopTimer();\n      if (triesLeft > 0 && isRetriable(response)) scheduleRetry(channel, triesLeft, mode, retryDelay);else channel.subscriptionCallback(response);\n      processQueue();\n    } else channel.subscriptionCallback(response);\n  }\n\n  function getNewRetryDelay(retryDelay) {\n    return _clamp(_amb.default.subscribeCommandsFlow.retryDelay.increaseFactor * retryDelay, _amb.default.subscribeCommandsFlow.retryDelay.min, _amb.default.subscribeCommandsFlow.retryDelay.max);\n  }\n\n  function onTimer() {\n    timerObject = null;\n    LOGGER.debug(\"onTimer - stopping : \" + stopping);\n\n    if (!stopping) {\n      tokenManager.refillTokens();\n      processQueue();\n    }\n  }\n\n  function addItemToQueue(item) {\n    LOGGER.debug(\"addItemToQueue - item : \" + item);\n\n    if (commandQueue.enqueue(item)) {\n      processQueue();\n      return true;\n    }\n\n    return false;\n  }\n\n  function enqueueSubscribe(channel) {\n    var triesLeft = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getRetryDelay();\n    LOGGER.debug(\"enqueueSubscribe - channel: \" + channel.getName() + \", triesLeft : \" + triesLeft + \", stopping : \" + stopping + \", retryDelay : \" + retryDelay);\n\n    if (!stopping) {\n      if ((0, _amb2.isObject)(channel)) {\n        if ((0, _amb2.isNil)(triesLeft)) triesLeft = 1 + Math.floor(_amb.default.subscribeCommandsFlow.retries);\n\n        if (triesLeft > 0) {\n          var item = function item() {\n            LOGGER.debug(\"enqueueSubscribe - inside the item execution. Calling channel._subscribeToCometD - channel: \" + channel.getName() + \", triesLeft : \" + triesLeft);\n\n            channel._subscribeToCometD(function (resp) {\n              return onResponse(resp, channel, CommandModes.SUBSCRIBE, triesLeft, retryDelay);\n            });\n          };\n\n          return addItemToQueue(item);\n        }\n      }\n    }\n\n    return false;\n  }\n\n  function enqueueUnsubscribe(channel) {\n    var triesLeft = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n    var retryDelay = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getRetryDelay();\n    LOGGER.debug(\"enqueueUnsubscribe - channel: \" + channel.getName() + \", triesLeft : \" + triesLeft + \", stopping : \" + stopping + \", retryDelay : \" + retryDelay);\n\n    if (!stopping) {\n      if ((0, _amb2.isObject)(channel)) {\n        if ((0, _amb2.isNil)(triesLeft)) triesLeft = 1 + Math.floor(_amb.default.subscribeCommandsFlow.retries);\n\n        if (triesLeft > 0) {\n          var item = function item() {\n            channel._unsubscribeFromCometD(function (resp) {\n              return onResponse(resp, channel, CommandModes.UNSUBSCRIBE, triesLeft, retryDelay);\n            });\n          };\n\n          return addItemToQueue(item);\n        }\n      }\n    }\n\n    return false;\n  }\n\n  function isRetriable(response) {\n    LOGGER.debug(\"isRetriable - response : \" + response);\n\n    if (response && response.ext) {\n      var isRejected = response.ext['rejected_by_glide'];\n\n      if (isRejected) {\n        var statusCode = parseInt(response.ext['glide.amb.reply.status.code']);\n        LOGGER.addWarnMessage(\"isRetriable - rejected_by_glide : \" + isRejected + \", glide.amb.reply.status.code : \" + statusCode);\n        if (!isNaN(statusCode)) return statusCode == HTTP_STATUS_TOO_MANY_REQUESTS || statusCode == HTTP_STATUS_ACCEPTED;\n      }\n    }\n\n    LOGGER.debug(\"isRetriable -  \" + false);\n    return false;\n  }\n\n  function processQueue() {\n    var numberToProcess = Math.min(commandQueue.getSize(), getTokenCount());\n    LOGGER.debug(\"processQueue - numberToProcess : \" + numberToProcess);\n\n    if (numberToProcess > 0) {\n      var itemsToRun = commandQueue.dequeueMultiple(numberToProcess);\n      itemsToRun.forEach(function (item) {\n        return (0, _amb2.isNil)(item) || item();\n      });\n      restartTimer(false); // false: don't push the timer farther away if already running.\n    }\n  }\n\n  return {\n    /**\n     * Adds a request to subscribe to the specified channel.\n     * @param channel  the channel to subscribe\n     * @returns  true if accepted; false if there's insufficient room\n     */\n    subscribeToChannel: function subscribeToChannel(channel) {\n      LOGGER.debug(\"subscribeToChannel - to : \" + channel.getName());\n      return enqueueSubscribe(channel);\n    },\n\n    /**\n     * Adds a request to unsubscribe to the specified channel.\n     * @param channel  the channel to unsubscribe\n     * @returns  true if accepted; false if there's insufficient room\n     */\n    unsubscribeToChannel: function unsubscribeToChannel(channel) {\n      LOGGER.debug(\"unsubscribeToChannel - from : \" + channel.getName());\n      return enqueueUnsubscribe(channel);\n    },\n\n    /**\n     * Signals this instance to stop.\n     */\n    stop: function stop() {\n      LOGGER.debug(\"stop\");\n      signalStop();\n    },\n\n    /**\n     * Whether this instance is stopped or stopping.\n     * @returns  true if stopped or stopping; otherwise false.\n     */\n    isStopping: function isStopping() {\n      return stopping;\n    },\n    getQueue: function getQueue() {\n      return commandQueue;\n    },\n    isBucketEmpty: function isBucketEmpty() {\n      return !isBucketFull();\n    },\n    getTimerObject: function getTimerObject() {\n      return timerObject;\n    },\n    getTokenCountFromTokenManager: function getTokenCountFromTokenManager() {\n      return tokenManager.getTokenCount();\n    }\n  };\n};\n\nvar _default = SubscriptionCommandSender;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Properties\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar TransportManagement = function TransportManagement(cometd) {\n  var ambTransportManagement = {};\n  var LOGGER = new _amb.default('amb.TransportManagement');\n\n  ambTransportManagement.isPruningEnabled =\n  /* boolean */\n  function () {\n    return _amb2.default['pruneFailedTransports'] !== 'false';\n  };\n\n  ambTransportManagement.processConnectionOpened =\n  /* void */\n  function () {\n    if (this.isPruningEnabled()) {\n      LOGGER.debug(\"Processing connection opened\");\n      this.removeSkippedTransportsInConnect();\n    }\n  };\n\n  ambTransportManagement.removeSkippedTransportsInConnect =\n  /* void */\n  function () {\n    var connectedTransportType = cometd.getTransport() === null ? null : cometd.getTransport().getType();\n    LOGGER.addInfoMessage(\"Connected using transport \" + connectedTransportType);\n    LOGGER.debug(\"Purging failed transports from registry...\");\n\n    if (connectedTransportType !== null) {\n      var removed = [];\n\n      var _iterator = _createForOfIteratorHelper(cometd.getTransportTypes()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var transportType = _step.value;\n          if (transportType == connectedTransportType) break;\n          cometd.unregisterTransport(transportType);\n          removed.push(transportType);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      LOGGER.addInfoMessage(\"Removed failed registry transports after connect: {\" + removed + \"}\");\n    }\n  };\n\n  return ambTransportManagement;\n};\n\nvar _default = TransportManagement;\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.EventManager\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb3 = _interopRequireWildcard(require(\"./amb.Properties\"));\n\nvar _amb4 = _interopRequireDefault(require(\"./amb.ChannelRedirect\"));\n\nvar _amb5 = _interopRequireDefault(require(\"./amb.Channel\"));\n\nvar _amb6 = _interopRequireDefault(require(\"./amb.CrossClientChannel\"));\n\nvar _amb7 = require(\"./amb.Helper\");\n\nvar _amb8 = _interopRequireDefault(require(\"./amb.FunctionQueue\"));\n\nvar _amb9 = _interopRequireDefault(require(\"./amb.SubscriptionCommandSender\"));\n\nvar _amb10 = _interopRequireDefault(require(\"./amb.TransportManagement\"));\n\nvar _amb11 = require(\"./amb.Constants\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ServerConnection = function ServerConnection(cometd, baseURL) {\n  var crossClientChannel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new _amb6.default();\n  var connected = false;\n  var disconnecting = false;\n  var nodeId = null;\n  var eventManager = new _amb.default({\n    CONNECTION_INITIALIZED: 'connection.initialized',\n    CONNECTION_OPENED: 'connection.opened',\n    CONNECTION_CLOSED: 'connection.closed',\n    CONNECTION_BROKEN: 'connection.broken',\n    SESSION_LOGGED_IN: 'session.logged.in',\n    SESSION_LOGGED_OUT: 'session.logged.out',\n    SESSION_INVALIDATED: 'session.invalidated',\n    SESSION_REESTABLISHED: 'session.reestablished'\n  });\n  var sessionStates = {\n    SESSION_LOGGED_IN: 'session.logged.in',\n    SESSION_LOGGED_OUT: 'session.logged.out',\n    SESSION_INVALIDATED: 'session.invalidated'\n  };\n  var state = \"closed\";\n  var channels = {};\n  var removedChannels = {};\n  var LOGGER = new _amb2.default('amb.ServerConnection');\n\n  _initializeMetaChannelListeners();\n\n  var sessionStatus = sessionStates.SESSION_INVALIDATED;\n  var loginWindow = null;\n  var loginWindowEnabled = _amb3.default['loginWindow'] === 'true';\n  var lastError = null;\n  var errorMessages = {\n    'UNKNOWN_CLIENT': '402::Unknown client',\n    'UNKNOWN_SESSION': '402::session_unknown',\n    'NODE_MISMATCH': 'websocket_http_node_mismatch',\n    'RECONNECT_REMEMBER_ME': 'reconnect_remember_me_http_activity',\n    'HUP_SIGNAL': 'reconnect_on_hup_signal'\n  };\n  var loginWindowOverride = false;\n  var ambServerConnection = {};\n  var needToReestablishSession = false;\n  var channelRedirect = new _amb4.default(cometd, ambServerConnection);\n  var initialized = false;\n  var SESSION_LOGOUT_OVERLAY_STYLE = 'glide.amb.session.logout.overlay.style';\n  var GLIDE_REDELIVERY_DISCONNECT_TIMEOUT_IN_MINS = 'glide.amb.redelivery.disconnect.timeout.in.mins';\n  var GLIDE_AMB_CLEAR_NODE_AFFINITY_COOKIE = 'glide.amb.clear_node_affinity_cookie';\n  var GLIDE_SESSION_STATUS = 'glide.session.status';\n  var TOUCH_HTTP_SESSION = 'session.touch.http';\n  var REESTABLISH_SESSION = 'amb.ServerConnection.reestablish.session';\n  var SET_HEADER_REQUEST_SENT = 'set.header.request.sent';\n  var REQUEST_RECONNECTION = 'request.reconnection';\n  var tokenManagementExtension = cometd.getExtension(_amb3.TOKEN_MANAGEMENT_EXTENSION);\n  var subscriptionCommandSender = null;\n  var transportManager = new _amb10.default(cometd);\n  var connectionBrokenTimestamp = null;\n  var sendRequestForNodeAffinityHeader = true;\n  var rememberMeEnabled = null;\n  var cookieListenerIntervalId = null;\n  var reconnectOnHupTimeoutId = null;\n  var lastMetaConnectTime = null;\n  var lastReconnectionEventTime = null;\n  var connectionURL = baseURL;\n  var handshakeTimestamps = [];\n  var FIVE_MINUTES_IN_SECONDS = 5 * 60 * 1000;\n  var LONGPOLLING_FALLBACK_THRESHOLD = 3;\n  /**\n   * Connection maintenance\n   */\n\n  ambServerConnection.connect =\n  /*void*/\n  function () {\n    // Protection against anyone who things they should be calling connect\n    if (connected) {\n      LOGGER.debug(\">>> connection exists, request satisfied\");\n      return;\n    }\n\n    LOGGER.debug('Connecting to glide amb server -> ' + _amb3.default['servletURI']);\n    cometd.configure({\n      url: ambServerConnection.getURL(_amb3.default['servletPath']),\n      logLevel: _amb3.default.logLevel,\n      connectTimeout: _amb3.default['wsConnectTimeout']\n    });\n    cometd.handshake();\n    crossClientChannel.on(REESTABLISH_SESSION, function () {\n      ambServerConnection._reestablishSession(false);\n    });\n    crossClientChannel.on(SET_HEADER_REQUEST_SENT, function () {\n      sendRequestForNodeAffinityHeader = false;\n    });\n    crossClientChannel.on(REQUEST_RECONNECTION, function () {\n      LOGGER.debug('Received signal to reconnect');\n\n      _checkAndReestablishSession();\n    });\n  };\n\n  ambServerConnection.reload =\n  /*void*/\n  function () {\n    cometd.reload();\n  };\n\n  ambServerConnection.abort =\n  /*void*/\n  function () {\n    cometd.getTransport().abort();\n  };\n\n  ambServerConnection.disconnect =\n  /*void*/\n  function (disconnectCallback) {\n    LOGGER.debug('Disconnecting from glide amb server..');\n    disconnecting = true;\n    cometd.disconnect(disconnectCallback);\n  };\n\n  ambServerConnection.getURL = function (ambServletPath) {\n    return connectionURL + '/' + ambServletPath;\n  };\n\n  ambServerConnection.getConnectionBrokenTS = function () {\n    return connectionBrokenTimestamp;\n  };\n  /**\n   * Initialize connection event callbacks\n   */\n\n\n  function _initializeMetaChannelListeners() {\n    cometd.addListener('/meta/handshake', this, _metaHandshake);\n    cometd.addListener('/meta/connect', this, _metaConnect);\n    cometd.addListener('/meta/subscribe', this, _metaSubscribe);\n    cometd.addListener('/meta/unsubscribe', this, applyAMBProperties);\n  }\n  /**\n   * Connection event listeners\n   */\n\n\n  function _metaHandshake(message) {\n    checkWebSocketHealth(message);\n    applyAMBProperties(message);\n\n    if (getExt(message, _amb11.WS_CONNECTION_NODE_ID) !== undefined) {\n      nodeId = getExt(message, _amb11.WS_CONNECTION_NODE_ID);\n      LOGGER.debug(\"Node Id from handshake callback initially set to \" + nodeId);\n    }\n\n    var logoutOverlayStyle = getExt(message, SESSION_LOGOUT_OVERLAY_STYLE);\n    if (logoutOverlayStyle) _amb3.default.overlayStyle = logoutOverlayStyle;\n    var redeliveryDisconnectTimeoutInMins = getExt(message, GLIDE_REDELIVERY_DISCONNECT_TIMEOUT_IN_MINS);\n    if (redeliveryDisconnectTimeoutInMins) _amb3.default.redeliveryDisconnectTimeoutInMins = redeliveryDisconnectTimeoutInMins;\n    var requestHeaderToClearNodeAffinityCookie = getExt(message, GLIDE_AMB_CLEAR_NODE_AFFINITY_COOKIE);\n    if (requestHeaderToClearNodeAffinityCookie !== undefined) _amb3.default.requestHeaderToClearStickySessionCookie = getExt(message, GLIDE_AMB_CLEAR_NODE_AFFINITY_COOKIE) === true;\n    sessionStatus = getExt(message, GLIDE_SESSION_STATUS);\n    applySubscriptionCommandFlowProperties(message);\n    setTimeout(function () {\n      if (message['successful']) _connectionInitialized();\n    }, 0);\n  }\n\n  function checkWebSocketHealth(message) {\n    if (isWebsocketTransport()) {\n      var now = new Date();\n      handshakeTimestamps.push(now); // Remove handshakes older than 5 minutes\n\n      var fiveMinutesAgo = now - FIVE_MINUTES_IN_SECONDS;\n\n      while (handshakeTimestamps.length > 0 && handshakeTimestamps[0] < fiveMinutesAgo) {\n        handshakeTimestamps.shift();\n      }\n\n      var handshakeLimitEnabled = getExt(message, _amb11.GLIDE_AMB_HANDSHAKE_LIMIT_ENABLED);\n\n      if (handshakeLimitEnabled) {\n        if (handshakeTimestamps.length >= LONGPOLLING_FALLBACK_THRESHOLD) {\n          LOGGER.addInfoMessage(\"Transport type will switch to long-polling in next connection error\");\n          cometd.websocketEnabled = false;\n        }\n      }\n    }\n  }\n\n  function getExt(message, extensionName) {\n    if ((0, _amb7.isObject)(message.ext)) return message.ext[extensionName];\n  }\n\n  function _getChannel(\n  /*String*/\n  channelName, subscriptionOptionsCallback) {\n    if (channelName in channels) return channels[channelName];\n    var channel = new _amb5.default(cometd, channelName, initialized, subscriptionOptionsCallback);\n    channels[channelName] = channel;\n    return channel;\n  }\n\n  function _removeChannel(channelName) {\n    removedChannels[channelName] = channels[channelName];\n    delete channels[channelName];\n  }\n\n  function applyAMBProperties(message) {\n    if (message.ext) {\n      if (message.ext['glide.amb.active'] === false) ambServerConnection.disconnect();\n      var logLevel = getExt(message, 'glide.amb.client.log.level');\n\n      if (logLevel) {\n        _amb3.default.logLevel = logLevel;\n        cometd.setLogLevel(_amb3.default.logLevel);\n      }\n\n      _amb3.default.pruneFailedTransports = getExt(message, 'glide.amb.pruneFailedTransports') !== 'false'; // Apply batch logging configuration from server\n\n      var batchLoggingEnabled = getExt(message, 'glide.amb.client.batch.logging.enabled');\n      if (batchLoggingEnabled !== undefined) _amb3.default.batchLogging.enabled = batchLoggingEnabled !== false;\n      var batchLoggingStartTime = getExt(message, 'glide.amb.client.batch.logging.startTime');\n      if (batchLoggingStartTime !== undefined) _amb3.default.batchLogging.startTime = batchLoggingStartTime || null;\n      var batchLoggingChannels = getExt(message, 'glide.amb.client.batch.logging.channels');\n      if (batchLoggingChannels !== undefined) _amb3.default.batchLogging.channels = batchLoggingChannels ? batchLoggingChannels.split(',').map(function (ch) {\n        return ch.trim();\n      }) : [];\n    }\n  }\n\n  function cookieUpdateListener() {\n    var cookieValue = fetchNodeCookie();\n\n    if (cookieValue !== null) {\n      clearInterval(cookieListenerIntervalId);\n      cookieListenerIntervalId = null;\n      rememberMeEnabled = null;\n      needToReestablishSession = true;\n      lastError = errorMessages['RECONNECT_REMEMBER_ME'];\n      ambServerConnection.connect();\n    }\n  }\n\n  function fetchNodeCookie() {\n    if (typeof document.cookie !== 'undefined') {\n      var cookies = document.cookie.split(';');\n\n      for (var i = 0; i < cookies.length; i++) {\n        var cookie = cookies[i].trim();\n        if (cookie.startsWith(\"\".concat(_amb11.NODEID_COOKIE_KEY, \"=\"))) return cookie.substring(_amb11.NODEID_COOKIE_KEY.length + 1);\n      }\n    }\n\n    return null;\n  }\n\n  function reconnectIfHttpSessionMigrated() {\n    if (nodeId !== null) {\n      var cookieValue = fetchNodeCookie();\n\n      if (cookieValue !== null && nodeId !== cookieValue) {\n        setTimeout(function () {\n          //check cookie value again, so we don't reconnect if the http session settled back on the same node\n          cookieValue = fetchNodeCookie();\n\n          if (cookieValue !== null && nodeId !== cookieValue) {\n            LOGGER.addInfoMessage('WS Connection is with ' + nodeId + ' whereas httpsession is with ' + cookieValue + '. Disconnecting WS connection');\n            reconnect(errorMessages['NODE_MISMATCH']);\n          }\n        }, 20000);\n      }\n    }\n  }\n\n  function reconnectAfterTimeout(timeout) {\n    if (!reconnectOnHupTimeoutId) {\n      reconnectOnHupTimeoutId = setTimeout(function () {\n        LOGGER.addInfoMessage('Reconnecting after ' + timeout + 'sec as the server received an HUP signal from load balancer');\n        reconnect(errorMessages['HUP_SIGNAL']);\n      }, timeout * 1000);\n    }\n  }\n\n  function reconnect(error) {\n    nodeId = null;\n    disconnecting = true;\n    cometd.disconnect(function () {\n      LOGGER.addInfoMessage('Disconnected WS Connection. Connecting back');\n      lastError = error;\n      connected = false;\n\n      _connectionClosed();\n\n      reconnectOnHupTimeoutId = null;\n      needToReestablishSession = true;\n      disconnecting = false;\n      ambServerConnection.connect();\n    });\n  }\n\n  function _metaSubscribe(message) {\n    applyAMBProperties(message);\n    /** TODO: re-visit\n    if (message['successful'] === false && message['subscription'])\n    \t_removeChannel(message['subscription']);\n     */\n  }\n\n  function _getIntMessageExtProperty(valueStr, defaultVal) {\n    var propValue = Math.floor(parseInt(valueStr));\n    if (isNaN(propValue) || propValue < 0) propValue = defaultVal;\n    return propValue;\n  }\n\n  function _getBooleanMessageExtProperty(valueStr, defaultVal) {\n    var propValue = defaultVal;\n    if (!(0, _amb7.isNil)(valueStr)) propValue = valueStr ? true : false;\n    return propValue;\n  }\n\n  function applySubscriptionCommandFlowProperties(message) {\n    if (!message.ext) return;\n    var glideAMBSubscribeCommandsFlow = message.ext['subscribeCommandsFlow'];\n    if (!glideAMBSubscribeCommandsFlow) return;\n    var subCommandFlowDefault = _amb3.default.subscribeCommandsFlow;\n    _amb3.default.subscribeCommandsFlow.enable = _getBooleanMessageExtProperty(glideAMBSubscribeCommandsFlow['enable'], subCommandFlowDefault.enable);\n\n    if (_amb3.default.subscribeCommandsFlow.enable) {\n      _amb3.default.subscribeCommandsFlow.retries = _getIntMessageExtProperty(glideAMBSubscribeCommandsFlow['retries'], subCommandFlowDefault.retries);\n      _amb3.default.subscribeCommandsFlow.maxInflight = _getIntMessageExtProperty(glideAMBSubscribeCommandsFlow['maxInflight'], subCommandFlowDefault.maxInflight);\n      _amb3.default.subscribeCommandsFlow.maxWait = _getIntMessageExtProperty(glideAMBSubscribeCommandsFlow['maxWait'], subCommandFlowDefault.maxWait);\n      var glideAMBRetryDelay = glideAMBSubscribeCommandsFlow['retryDelay'];\n\n      if (glideAMBRetryDelay) {\n        var retryDelayDefault = _amb3.default.subscribeCommandsFlow.retryDelay;\n        _amb3.default.subscribeCommandsFlow.retryDelay.min = _getIntMessageExtProperty(glideAMBRetryDelay['min'], retryDelayDefault.min);\n        _amb3.default.subscribeCommandsFlow.retryDelay.max = _getIntMessageExtProperty(glideAMBRetryDelay['max'], retryDelayDefault.max);\n        _amb3.default.subscribeCommandsFlow.retryDelay.increaseFactor = _getIntMessageExtProperty(glideAMBRetryDelay['increaseFactor'], retryDelayDefault.increaseFactor);\n      }\n    }\n\n    _initializeSubscriptionCommandSender();\n  }\n\n  function _initializeSubscriptionCommandSender() {\n    if (_amb3.default.subscribeCommandsFlow.enable) {\n      LOGGER.addInfoMessage(\"_initializeSubscriptionCommandSender: SubscriptionCommandSender is enabled\");\n      if (tokenManagementExtension != null) tokenManagementExtension.updateTokenCount(_amb3.default.subscribeCommandsFlow.maxInflight);\n      if (subscriptionCommandSender) subscriptionCommandSender.stop();\n      subscriptionCommandSender = new _amb9.default(new _amb8.default(10000), tokenManagementExtension);\n    }\n  }\n\n  function _isClearNodeAffinityCookieEnabled() {\n    return _amb3.default.requestHeaderToClearStickySessionCookie;\n  }\n\n  function _resubscribeAll() {\n    LOGGER.debug(\"Resubscribing to all!\");\n\n    for (var name in channels) {\n      var channel = channels[name];\n      channel && channel.resubscribeToCometD();\n    }\n  }\n\n  function _unsubscribeAll() {\n    LOGGER.debug(\"Unsubscribing from all!\");\n\n    for (var channelName in channels) {\n      var channel = channels[channelName];\n      channel && channel.unsubscribeFromCometD();\n    }\n  }\n\n  function _metaConnect(\n  /*Hash*/\n  message) {\n    applyAMBProperties(message);\n    if (getExt(message, _amb11.GLIDE_REMEMBER_ME)) rememberMeEnabled = getExt(message, _amb11.GLIDE_REMEMBER_ME);\n    if (getExt(message, _amb11.GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC)) reconnectAfterTimeout(getExt(message, _amb11.GLIDE_AMB_HUP_SIGNAL_RECONNECT_IN_SEC));\n\n    if (disconnecting) {\n      setTimeout(function () {\n        connected = false;\n\n        _connectionClosed();\n      }, 0);\n      return;\n    }\n\n    if (connected && !isSessionInvalidated(getExt(message, GLIDE_SESSION_STATUS))) reconnectIfHttpSessionMigrated();\n    var shouldTouchHttpSession = getExt(message, TOUCH_HTTP_SESSION);\n    if (isWebsocketTransport() && shouldTouchHttpSession === true) ambServerConnection._touchHttpSession();\n    var error = message['error'];\n    if (error) lastError = error;\n\n    _sessionStatus(message);\n\n    var wasConnected = connected;\n    connected = message['successful'] === true;\n    if (!wasConnected && connected) _connectionOpened();else if (wasConnected && !connected) _connectionBroken();\n    lastMetaConnectTime = new Date();\n  }\n\n  function isWebsocketTransport() {\n    return _amb3.WEBSOCKET_TYPE_NAME === cometd.getTransport().getType();\n  }\n\n  function _touchHttpSession() {\n    var request = new XMLHttpRequest();\n    request.withCredentials = true;\n    request.open(\"POST\", ambServerConnection.getURL(\"amb\"), true);\n    request.setRequestHeader(\"Content-type\", \"application/json\");\n    request.send();\n  }\n\n  function _connectionInitialized() {\n    LOGGER.debug('Connection initialized');\n    initialized = true;\n    state = \"initialized\";\n\n    _publishEvent(eventManager.getEvents().CONNECTION_INITIALIZED);\n  }\n\n  function _connectionOpened() {\n    LOGGER.debug('Connection opened');\n    transportManager.processConnectionOpened();\n\n    if (needToReestablishSession) {\n      _setupSession();\n    } else {\n      channelRedirect.initialize(function () {\n        _onChannelRedirectSubscriptionComplete(true);\n      });\n    }\n  }\n\n  function _onChannelRedirectSubscriptionComplete(emit) {\n    LOGGER.debug(\"Resubscribing to all, except channel_redirect\");\n    var redirectName = channelRedirect.getName();\n\n    for (var name in channels) {\n      if (name !== redirectName) {\n        var channel = channels[name];\n        channel && channel.resubscribeToCometD();\n      }\n    }\n\n    _publishConnectionOpened();\n\n    if (emit) _emitCheckReconnection();\n  }\n\n  function _emitCheckReconnection() {\n    LOGGER.debug('Sending signal to reconnect');\n    crossClientChannel.emit(REQUEST_RECONNECTION, REQUEST_RECONNECTION);\n  }\n\n  function _publishConnectionOpened() {\n    state = \"opened\";\n\n    _publishEvent(eventManager.getEvents().CONNECTION_OPENED);\n  }\n\n  function _setupSession() {\n    if (!_isKnownError(ambServerConnection.getLastError())) {\n      LOGGER.addWarnMessage(\"Error connecting to server. Unkown status \" + ambServerConnection.getLastError());\n      return;\n    }\n\n    ambServerConnection.setLastError(null);\n\n    ambServerConnection._sendSessionSetupRequest(function (_ref) {\n      var status = _ref.status,\n          response = _ref.response;\n\n      if (status !== 200) {\n        LOGGER.addWarnMessage(\"/amb_session_setup.do status: \" + status);\n        return;\n      }\n\n      needToReestablishSession = false;\n      var newStatus = JSON.parse(response)['glide.session.status'];\n      LOGGER.debug(\"/amb_session_setup.do response: \" + response);\n\n      if (!newStatus || sessionStatus === newStatus) {\n        channelRedirect.initialize(function () {\n          _onChannelRedirectSubscriptionComplete(false);\n        });\n      } else {\n        channelRedirect.initialize(_publishConnectionOpened);\n\n        _processSessionStatus(newStatus);\n      }\n    });\n  }\n\n  function _isKnownError(error) {\n    return Object.values(errorMessages).includes(error);\n  }\n\n  function _sendRequestToSetUpGlideSession() {\n    var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n    // We are reconnected, but the GlideSession may not have been set up. We currently do not support\n    // re-establishing a connection from an AMB message (CometD 2.X does not support asynchronous\n    // request handling).\n    var xhr = _buildSetUpSessionRequest();\n\n    xhr.onload = function () {\n      return callback(xhr);\n    };\n\n    xhr.send();\n  }\n\n  function _buildSetUpSessionRequest() {\n    LOGGER.debug(\"sending /amb_session_setup.do!\");\n    var request = new XMLHttpRequest();\n    request.withCredentials = true;\n    request.open(\"POST\", ambServerConnection.getURL(\"amb_session_setup.do\"), true);\n    request.setRequestHeader(\"Content-type\", \"application/json;charset=UTF-8\");\n    request.setRequestHeader(\"X-UserToken\", window.g_ck);\n    request.setRequestHeader(\"X-CometD-SessionID\", cometd.getClientId());\n    return request;\n  }\n\n  function _connectionClosed() {\n    LOGGER.debug('Connection closed');\n    state = \"closed\";\n\n    _publishEvent(eventManager.getEvents().CONNECTION_CLOSED);\n  }\n\n  function _connectionBroken() {\n    LOGGER.addErrorMessage('Connection broken');\n    state = \"broken\";\n    needToReestablishSession = true;\n\n    _publishEvent(eventManager.getEvents().CONNECTION_BROKEN);\n\n    connectionBrokenTimestamp = Date.now();\n\n    _stopSubscriptionCommandSender();\n  }\n\n  function _stopSubscriptionCommandSender() {\n    if (subscriptionCommandSender) {\n      subscriptionCommandSender.stop();\n      subscriptionCommandSender = null;\n    }\n  }\n  /**\n   * Session management/maintenance\n   */\n\n\n  function _sendSetHeaderToClearNodeAffinityCookie() {\n    var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : function () {};\n\n    var xhr = _buildSetHeaderToClearNodeAffinityCookieRequest();\n\n    xhr.onload = function () {\n      return callback(xhr);\n    };\n\n    xhr.send();\n  }\n\n  function _buildSetHeaderToClearNodeAffinityCookieRequest() {\n    var request = new XMLHttpRequest();\n    request.open(\"POST\", ambServerConnection.getURL(\"set_clear_node_affinity_header\"), true);\n    return request;\n  }\n\n  function _sessionStatus(\n  /*Hash*/\n  message) {\n    var newSessionStatus = getExt(message, GLIDE_SESSION_STATUS);\n    if (!newSessionStatus || newSessionStatus === sessionStatus) return;\n    loginWindowOverride = getExt(message, 'glide.amb.login.window.override') === true;\n\n    _processSessionStatus(newSessionStatus);\n  }\n\n  function _processSessionStatus(newSessionStatus) {\n    LOGGER.debug('session.status - ' + newSessionStatus);\n\n    if (isSessionInvalidated(newSessionStatus)) {\n      _invalidated();\n    } else if (isLoggedOut(newSessionStatus)) {\n      _loggedOut();\n    } else if (isReestablished(newSessionStatus)) {\n      _reestablished();\n    } else if (isLoggedIn(newSessionStatus)) {\n      _loggedIn();\n    }\n\n    sessionStatus = newSessionStatus;\n  }\n\n  function isLoggedIn(newSessionStatus) {\n    return (sessionStatus === sessionStates.SESSION_INVALIDATED || sessionStatus === sessionStates.SESSION_LOGGED_OUT) && newSessionStatus === sessionStates.SESSION_LOGGED_IN;\n  }\n\n  function isLoggedOut(newSessionStatus) {\n    return sessionStatus === sessionStates.SESSION_LOGGED_IN && newSessionStatus === sessionStates.SESSION_LOGGED_OUT;\n  }\n\n  function isReestablished(newSessionStatus) {\n    return sessionStatus === sessionStates.SESSION_INVALIDATED && newSessionStatus === sessionStates.SESSION_LOGGED_OUT;\n  }\n  /**\n   * For logged in users session invalidation happens instead of being logged out when they have remember me on\n   */\n\n\n  function isSessionInvalidated(newSessionStatus) {\n    return (sessionStatus === sessionStates.SESSION_LOGGED_IN || sessionStatus === sessionStates.SESSION_LOGGED_OUT) && newSessionStatus === sessionStates.SESSION_INVALIDATED;\n  }\n\n  function _loggedIn() {\n    LOGGER.debug(\"LOGGED_IN event fire!\");\n\n    _resubscribeAll();\n\n    _publishEvent(eventManager.getEvents().SESSION_LOGGED_IN);\n\n    ambServerConnection.loginHide();\n    sendRequestForNodeAffinityHeader = true;\n  }\n\n  function _loggedOut() {\n    LOGGER.debug(\"LOGGED_OUT event fire!\");\n\n    _unsubscribeAll();\n\n    _publishEvent(eventManager.getEvents().SESSION_LOGGED_OUT);\n\n    if (loginWindowEnabled && !loginWindowOverride) ambServerConnection.loginShow();\n    reestablishSessionIfNeeded();\n  }\n\n  function _reestablished() {\n    LOGGER.debug(\"REESTABLISHED event fire!\");\n\n    _resubscribeAll();\n\n    _publishEvent(eventManager.getEvents().SESSION_REESTABLISHED);\n  }\n\n  function _invalidated() {\n    LOGGER.debug(\"INVALIDATED event fire!\");\n\n    _unsubscribeAll();\n\n    _publishEvent(eventManager.getEvents().SESSION_INVALIDATED);\n\n    if (_isClearNodeAffinityCookieEnabled()) {\n      if (navigator.locks !== undefined) navigator.locks.request('lock-set_clear_node_affinity_header', prepareSendSetHeaderRequest); // blocks multiple tabs from sending the request\n      else {\n        LOGGER.debug(\"navigator.locks.request not supported\");\n        prepareSendSetHeaderRequest();\n      }\n    }\n\n    if (!reestablishSessionIfNeeded()) {\n      ambServerConnection.disconnect(function () {\n        ambServerConnection.loginHide();\n        connected = false;\n\n        _connectionClosed();\n\n        disconnecting = false;\n        if (rememberMeEnabled && deleteCookie(_amb11.NODEID_COOKIE_KEY)) cookieListenerIntervalId = setInterval(cookieUpdateListener, 5000);\n      });\n    }\n  }\n  /*\n  \tCalls amb_session_setup if the session status changes to logged out/invalidated and there is a REQUEST_RECONNECTION event received\n  \tafter the last meta/connect heartbeat response. This usually means that one of the tab has logged out/session timed out. This would reduce the \n  \tnumber of amb_session_setup calls by only making these calls to sync the cometd session status when needed.  \n  */\n\n\n  function reestablishSessionIfNeeded() {\n    if (lastMetaConnectTime && lastReconnectionEventTime) {\n      if (lastReconnectionEventTime > lastMetaConnectTime) {\n        LOGGER.debug('Either the session is logged out/invalidated from a different tab. Calling reestablishSession as lastReconnectionEventTime ' + lastReconnectionEventTime + ' happened after lastMetaConnectResponseTime ' + lastMetaConnectTime);\n\n        _reestablishSession(false);\n\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  function deleteCookie(cookie) {\n    if (typeof document.cookie !== 'undefined') {\n      document.cookie = cookie + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/';\n      return true;\n    }\n\n    return false;\n  }\n\n  function prepareSendSetHeaderRequest() {\n    if (sendRequestForNodeAffinityHeader) {\n      LOGGER.debug(\"Sending set_clear_node_affinity_header\");\n\n      _emitRequestedSetHeaderToClearCookie();\n\n      ambServerConnection._sendSetHeaderToClearNodeAffinityCookie(function (_ref2) {\n        var status = _ref2.status;\n        if (status !== 200) LOGGER.addErrorMessage(\"Error sending set_clear_node_affinity_header: \" + status);else sendRequestForNodeAffinityHeader = false;\n      });\n    } else LOGGER.debug(\"set_clear_node_affinity_header not sent\");\n  }\n\n  function _emitRequestedSetHeaderToClearCookie() {\n    crossClientChannel.emit(SET_HEADER_REQUEST_SENT, SET_HEADER_REQUEST_SENT);\n  }\n\n  function _publishEvent(event) {\n    try {\n      eventManager.publish(event);\n    } catch (e) {\n      LOGGER.addErrorMessage(\"error publishing '\" + event + \"' - \" + e);\n    }\n  }\n\n  function _emitReestablishSession() {\n    crossClientChannel.emit(REESTABLISH_SESSION, REESTABLISH_SESSION);\n  }\n  /**\n   * Channel management\n   */\n\n\n  ambServerConnection.unsubscribeAll = function () {\n    _unsubscribeAll();\n  };\n\n  ambServerConnection.resubscribeAll = function () {\n    _resubscribeAll();\n  };\n\n  ambServerConnection.removeChannel = function (\n  /*String*/\n  channelName) {\n    _removeChannel(channelName);\n  };\n  /**\n   * Connection event management\n   */\n\n\n  ambServerConnection.getEvents = function () {\n    return eventManager.getEvents();\n  };\n\n  ambServerConnection.getConnectionState = function () {\n    return state;\n  };\n\n  ambServerConnection.getLastError = function () {\n    return lastError;\n  };\n\n  ambServerConnection.setLastError = function (\n  /*String*/\n  error) {\n    lastError = error;\n  };\n\n  ambServerConnection.getErrorMessages =\n  /*Hash*/\n  function () {\n    return errorMessages;\n  };\n\n  ambServerConnection.isLoggedIn = function () {\n    return sessionStatus === sessionStates.SESSION_LOGGED_IN;\n  };\n\n  ambServerConnection.isSessionActive = function () {\n    return sessionStatus !== sessionStates.SESSION_INVALIDATED;\n  };\n\n  ambServerConnection.getChannelRedirect = function () {\n    return channelRedirect;\n  };\n\n  ambServerConnection.getChannel = function (\n  /*String*/\n  channelName, subscriptionOptionsCallback) {\n    return _getChannel(channelName, subscriptionOptionsCallback);\n  };\n\n  ambServerConnection.getChannels = function () {\n    return channels;\n  };\n\n  ambServerConnection.getRemovedChannels = function () {\n    return removedChannels;\n  };\n\n  ambServerConnection.getState = function () {\n    return state;\n  };\n\n  ambServerConnection.getLoginWindowOverlayStyle = function () {\n    return _amb3.default.overlayStyle;\n  };\n\n  ambServerConnection.loginShow = function () {\n    LOGGER.debug(\"Show login window\"); // noinspection HtmlUnknownTarget\n\n    var modalContent = '<iframe src=\"/amb_login.do\" style=\"border: 0\" height=\"400px\" width=\"405px\"><\/iframe>';\n    var modalTemplate = \"<div id=\\\"amb_disconnect_modal\\\" tabindex=\\\"-1\\\" aria-hidden=\\\"true\\\" class=\\\"modal\\\" role=\\\"dialog\\\" style=\\\"\".concat(_amb3.default.overlayStyle, \"\\\">\\n\\t\\t\\t\\t<div class=\\\"modal-dialog small-modal\\\" style=\\\"width:450px\\\">\\n\\t\\t\\t\\t   <div class=\\\"modal-content\\\">\\n\\t\\t\\t\\t\\t  <header class=\\\"modal-header\\\">\\n\\t\\t\\t\\t\\t\\t <h4 id=\\\"small_modal1_title\\\" class=\\\"modal-title\\\">Login<\/h4>\\n\\t\\t\\t\\t\\t  <\/header>\\n\\t\\t\\t\\t\\t  <div class=\\\"modal-body\\\">\\n\\t\\t\\t\\t\\t  <\/div>\\n\\t\\t\\t\\t   <\/div>\\n\\t\\t\\t\\t<\/div>\\n\\t\\t\\t<\/div>\"); // Protect against GlideModal not being defined\n\n    try {\n      if (window.NOW && window.NOW.amb_themed_login === true) {\n        // Renders login in modal and uses page theme\n        var dialog = new GlideModal('amb_login_router'); // on older browsers the class has a different api\n\n        if (dialog['renderWithContent']) dialog.template = modalTemplate;\n        dialog.render();\n        loginWindow = dialog;\n      } else {\n        // Renders login in modal and iframe (has white background)\n        var _dialog = new GlideModal('amb_disconnect_modal'); // on older browsers the class has a different api\n\n\n        if (_dialog['renderWithContent']) {\n          _dialog.template = modalTemplate;\n\n          _dialog.renderWithContent(modalContent);\n        } else {\n          _dialog.setBody(modalContent);\n\n          _dialog.render();\n        }\n\n        loginWindow = _dialog;\n      }\n    } catch (e) {\n      LOGGER.debug(e);\n    }\n  };\n\n  ambServerConnection.loginHide = function () {\n    if (!loginWindow) return;\n    loginWindow.destroy();\n    loginWindow = null;\n  };\n\n  ambServerConnection.loginComplete = function () {\n    ambServerConnection.reestablishSession();\n  };\n\n  function _checkAndReestablishSession() {\n    if (!connected) {\n      ambServerConnection.connect();\n      return;\n    }\n\n    if (sessionStatus === sessionStates.SESSION_LOGGED_OUT) _reestablishSession(false);else if (sessionStatus === sessionStates.SESSION_LOGGED_IN) lastReconnectionEventTime = new Date();\n  }\n\n  function _reestablishSession(emit) {\n    ambServerConnection._sendSessionSetupRequest(function (_ref3) {\n      var response = _ref3.response;\n      if (!response) return;\n      var status = JSON.parse(response)['glide.session.status'];\n\n      _processSessionStatus(status);\n    });\n\n    if (emit) _emitReestablishSession();\n  }\n\n  ambServerConnection.reestablishSession = function () {\n    ambServerConnection._reestablishSession(true);\n  };\n\n  ambServerConnection.subscribeToEvent =\n  /*Number*/\n  function (\n  /*String*/\n  event,\n  /*Function*/\n  callback) {\n    // If we're already connected, and someone subscribes to the connection opened\n    // event, just fire their callback\n    if (eventManager.getEvents().CONNECTION_OPENED === event && connected) callback();\n    return eventManager.subscribe(event, callback);\n  };\n\n  ambServerConnection.unsubscribeFromEvent =\n  /*void*/\n  function (\n  /*Number*/\n  id) {\n    eventManager.unsubscribe(id);\n  };\n\n  ambServerConnection.isLoginWindowEnabled =\n  /*Boolean*/\n  function () {\n    return loginWindowEnabled;\n  };\n\n  ambServerConnection.setLoginWindowEnabled = function (enableLoginWindow) {\n    loginWindowEnabled = enableLoginWindow;\n  };\n\n  ambServerConnection.isLoginWindowOverride = function () {\n    return loginWindowOverride;\n  };\n\n  ambServerConnection.getSubscriptionCommandSender = function () {\n    return subscriptionCommandSender;\n  };\n  /* These are for testing, do not use. */\n\n\n  ambServerConnection._metaConnect = _metaConnect;\n  ambServerConnection._metaHandshake = _metaHandshake;\n  ambServerConnection._metaSubscribe = _metaSubscribe;\n  ambServerConnection._sendSessionSetupRequest = _sendRequestToSetUpGlideSession;\n  ambServerConnection._onChannelRedirectSubscriptionComplete = _onChannelRedirectSubscriptionComplete;\n  ambServerConnection._getChannel = _getChannel;\n  ambServerConnection._removeChannel = _removeChannel;\n  ambServerConnection._connectionInitialized = _connectionInitialized;\n  ambServerConnection._connectionOpened = _connectionOpened;\n  ambServerConnection._reestablishSession = _reestablishSession;\n  ambServerConnection._touchHttpSession = _touchHttpSession;\n  ambServerConnection._sendSetHeaderToClearNodeAffinityCookie = _sendSetHeaderToClearNodeAffinityCookie;\n  return ambServerConnection;\n};\n\nvar _default = ServerConnection;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = void 0;\n\nvar _amb = _interopRequireDefault(require(\"./amb.Properties\"));\n\nvar _amb2 = _interopRequireDefault(require(\"./amb.Logger\"));\n\nvar _amb3 = _interopRequireDefault(require(\"./amb.EventManager\"));\n\nvar _amb4 = _interopRequireDefault(require(\"./amb.ServerConnection\"));\n\nvar _amb5 = _interopRequireDefault(require(\"./amb.ChannelRedirect\"));\n\nvar _amb6 = _interopRequireDefault(require(\"./amb.ChannelListener\"));\n\nvar _amb7 = _interopRequireDefault(require(\"./amb.Channel\"));\n\nvar _amb8 = _interopRequireDefault(require(\"./amb.MessageClient\"));\n\nvar _amb9 = _interopRequireDefault(require(\"./amb.MessageClientBuilder\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar amb = {\n  properties: _amb.default,\n  Logger: _amb2.default,\n  EventManager: _amb3.default,\n  ServerConnection: _amb4.default,\n  ChannelRedirect: _amb5.default,\n  ChannelListener: _amb6.default,\n  Channel: _amb7.default,\n  MessageClient: _amb8.default,\n  getClient: _amb9.default\n};\nvar _default = amb;\nexports.default = _default;","import amb from 'amb-client-js';\nwindow.__TECTONIC__amb_client_js = amb;\nwindow.amb = amb;\nexport default amb;"],"version":3}},{"offset":{"line":57,"column":0},"map":{"mappings":"mpBAAA,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,KAAO,GAAQ,gBAAkB,GAAQ,iBAAmB,GAAQ,SAAW,GAAQ,WAAa,OAE5G,YAAiB,EAAK,CAAE,MAAI,OAAO,SAAW,YAAc,MAAO,QAAO,UAAa,SAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,OAAO,EAAK,EAAY,GAAU,SAAiB,EAAK,CAAE,MAAO,IAAO,MAAO,SAAW,YAAc,EAAI,cAAgB,QAAU,IAAQ,OAAO,UAAY,SAAW,MAAO,EAAK,EAAY,GAAQ,CAAG,CAAG,CAE9V,YAAyB,EAAK,EAAK,EAAO,CAAE,MAAI,KAAO,GAAO,OAAO,eAAe,EAAK,EAAK,CAAE,MAAO,EAAO,WAAY,GAAM,aAAc,GAAM,SAAU,EAAK,CAAC,EAAY,EAAI,GAAO,EAAgB,CAAK,CAEhN,GAAI,IAAe,qBACf,GAAY,OAAO,IAAI,EAAY,EAEnC,GAAa,GAAgB,CAAC,EAAG,GAAc,EAAS,EAE5D,GAAQ,WAAa,GAErB,GAAI,IAAW,SAAkB,EAAM,CACrC,MAAO,QAAO,OAAO,CAAC,EAAG,EAAM,EAAU,CAC3C,EAEI,GAAkB,SAAyB,EAAO,CACpD,MAAO,GAAM,WAAa,QAAa,EAAM,OAAS,QAAa,EAAM,MAAQ,MACnF,EAEI,GAAW,SAAkB,EAAO,CACtC,MAAO,GAAM,KAAO,EAAM,KAAK,MAAkB,GAAY,GAAgB,CAAK,CACpF,EAEI,GAA0B,SAAiC,EAAM,CACnE,MAAO,QAAO,OAAO,CAAC,EAAG,EAAM,GAAgB,CAAC,EAAG,GAAc,MAAS,CAAC,CAC7E,EAEI,GAAc,SAAqB,EAAG,CACxC,MAAO,CAAC,SAAU,QAAQ,EAAE,SAAS,GAAQ,CAAC,CAAC,CACjD,EAEI,GAAW,SAAkB,EAAU,CACzC,MAAO,UAAU,EAAK,EAAG,EAAG,CAC1B,MAAI,KAAM,OAED,EAAS,EAAK,GAAS,CAAC,EAAG,CAAC,EAC1B,IAAM,OAER,EAAS,EAAK,EAAU,EACtB,MAAM,QAAQ,CAAC,GAAK,EAAE,KAAO,GAAY,CAAC,EAE5C,EAAS,EAAK,GAAY,CAAC,EAG3B,EAAS,EAAK,GAAS,CAAC,CAAC,CAEpC,CACF,EAEA,GAAQ,SAAW,GAEnB,GAAI,IAAuB,SAA8B,EAAU,EAAO,CACxE,GAAI,CAAC,GAAS,CAAK,EACjB,KAAM,IAAI,OAAM,sDAAsD,CAE1E,EAEI,GAAmB,CACrB,OAAQ,GACR,OAAQ,EACV,EACA,GAAQ,iBAAmB,GAE3B,GAAI,IAAyB,SAAgC,EAAmB,EAAe,CAC7F,GAAI,GAAK,WAAY,EAAM,CACzB,EAAkB,CAAI,EACtB,GAAI,GAAO,EAAc,EAAK,IAAI,EAC9B,EAAW,EAAK,SAAW,EAAK,SAAS,IAAI,CAAE,EAAI,OACvD,MAAO,QAAO,OAAO,CAAC,EAAG,EAAM,CAC7B,KAAM,EACN,SAAU,CACZ,CAAC,CACH,EAEA,MAAO,EACT,EAEI,GAAkB,GAAuB,SAAU,EAAO,CAC5D,GAAI,CAAC,GAAS,CAAK,EACjB,KAAM,IAAI,OAAM,kEAAkE,CAEtF,EAAG,EAAuB,EAC1B,GAAQ,gBAAkB,GAC1B,GAAI,IAAO,GAAuB,UAAY,CAAC,EAAG,EAAQ,EAC1D,GAAQ,KAAO,KC3Ff,wBAGA,GAAO,QAAU,GACjB,GAAO,QAAQ,MAAQ,GACvB,GAAO,QAAQ,iBAAmB,GAClC,GAAO,QAAQ,MAAQ,GACvB,GAAO,QAAQ,QAAU,GACzB,GAAO,QAAQ,iBAAmB,GAClC,GAAO,QAAQ,eAAiB,GAKhC,GAAI,IAAoB,IAOpB,GAAc,GAAI,QAAO,CAG3B,UAMA,qFACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,YAAgB,EAAK,EAAS,CAU5B,OATI,GAAS,CAAC,EACV,EAAM,EACN,EAAQ,EACR,EAAO,GACP,EAAoB,GAAW,EAAQ,WAAc,GACrD,EAAa,GAAW,EAAQ,WAAc,OAC9C,EAAc,GACd,EAEI,GAAM,GAAY,KAAK,CAAG,KAAO,MAAM,CAC7C,GAAI,GAAI,EAAI,GACR,EAAU,EAAI,GACd,EAAS,EAAI,MAKjB,GAJA,GAAQ,EAAI,MAAM,EAAO,CAAM,EAC/B,EAAQ,EAAS,EAAE,OAGf,EAAS,CACX,GAAQ,EAAQ,GAChB,EAAc,GACd,QACF,CAEA,GAAI,GAAO,GACP,EAAO,EAAI,GACX,EAAU,EAAI,GACd,EAAQ,EAAI,GACZ,EAAW,EAAI,GAEnB,GAAI,CAAC,GAAe,EAAK,OAAQ,CAC/B,GAAI,GAAI,EAAK,OAAS,EAClB,EAAI,EAAK,GACT,EAAU,EAAY,EAAU,QAAQ,CAAC,EAAI,GAAK,GAEtD,AAAI,GACF,GAAO,EACP,EAAO,EAAK,MAAM,EAAG,CAAC,EAE1B,CAGA,AAAI,GACF,GAAO,KAAK,CAAI,EAChB,EAAO,GACP,EAAc,IAGhB,GAAI,GAAS,IAAa,KAAO,IAAa,IAC1C,EAAW,IAAa,KAAO,IAAa,IAC5C,EAAU,GAAW,EACrB,EAAY,GAAQ,EACpB,EAAW,GAAS,OAAO,GAAO,EAAO,OAAS,IAAO,SAAW,EAAO,EAAO,OAAS,GAAK,IAEpG,EAAO,KAAK,CACV,KAAM,GAAQ,IACd,OAAQ,EACR,UAAW,EACX,SAAU,EACV,OAAQ,EACR,QAAS,EACL,GAAY,CAAO,EACnB,GAAkB,EAAW,EAAkB,CAAQ,CAC7D,CAAC,CACH,CAGA,MAAI,IAAQ,EAAQ,EAAI,SACtB,EAAO,KAAK,EAAO,EAAI,OAAO,CAAK,CAAC,EAG/B,CACT,CAEA,YAA4B,EAAW,EAAkB,EAAU,CACjE,GAAI,GAAY,KAAO,GAAa,IAAc,EAAmB,EAAa,EAAY,CAAiB,EAAI,IAEnH,MAAI,CAAC,GAAY,EAAS,QAAQ,CAAS,EAAI,IAAM,EAAS,QAAQ,CAAgB,EAAI,GACjF,EAAY,KAGd,GAAa,CAAQ,EAAI,UAAY,GAAa,CAAQ,EAAI,IAAM,EAAY,KACzF,CASA,YAAkB,EAAK,EAAS,CAC9B,MAAO,IAAiB,GAAM,EAAK,CAAO,EAAG,CAAO,CACtD,CAKA,YAAgB,EAAK,EAAS,CAC5B,GAAI,GAAO,CAAC,EACR,EAAK,GAAa,EAAK,EAAM,CAAO,EACxC,MAAO,IAAiB,EAAI,CAAI,CAClC,CAKA,YAA2B,EAAI,EAAM,CACnC,MAAO,UAAU,EAAU,EAAS,CAClC,GAAI,GAAI,EAAG,KAAK,CAAQ,EACxB,GAAI,CAAC,EAAG,MAAO,GAOf,OALI,GAAO,EAAE,GACT,EAAQ,EAAE,MACV,EAAS,CAAC,EACV,EAAU,GAAW,EAAQ,QAAW,mBAEnC,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,GAAI,EAAE,KAAO,OAEb,IAAI,GAAM,EAAK,EAAI,GAEnB,AAAI,EAAI,OACN,EAAO,EAAI,MAAQ,EAAE,GAAG,MAAM,EAAI,SAAS,EAAE,IAAI,SAAU,EAAO,CAChE,MAAO,GAAO,EAAO,CAAG,CAC1B,CAAC,EAED,EAAO,EAAI,MAAQ,EAAO,EAAE,GAAI,CAAG,EAIvC,MAAO,CAAE,KAAM,EAAM,MAAO,EAAO,OAAQ,CAAO,CACpD,CACF,CAKA,YAA2B,EAAQ,EAAS,CAK1C,OAHI,GAAU,GAAI,OAAM,EAAO,MAAM,EAG5B,EAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,MAAO,GAAO,IAAO,UACvB,GAAQ,GAAK,GAAI,QAAO,OAAS,EAAO,GAAG,QAAU,KAAM,GAAM,CAAO,CAAC,GAI7E,MAAO,UAAU,EAAM,EAAS,CAK9B,OAJI,GAAO,GACP,EAAU,GAAW,EAAQ,QAAW,mBACxC,EAAW,EAAU,EAAQ,WAAa,GAAQ,GAE7C,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,GAAI,GAAQ,EAAO,GAEnB,GAAI,MAAO,IAAU,SAAU,CAC7B,GAAQ,EACR,QACF,CAEA,GAAI,GAAQ,EAAO,EAAK,EAAM,MAAQ,OAClC,EAEJ,GAAI,MAAM,QAAQ,CAAK,EAAG,CACxB,GAAI,CAAC,EAAM,OACT,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,gCAAgC,EAGlF,GAAI,EAAM,SAAW,EAAG,CACtB,GAAI,EAAM,SAAU,SAEpB,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,mBAAmB,CACrE,CAEA,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAGrC,GAFA,EAAU,EAAO,EAAM,GAAI,CAAK,EAE5B,GAAY,CAAC,EAAQ,GAAG,KAAK,CAAO,EACtC,KAAM,IAAI,WAAU,iBAAmB,EAAM,KAAO,eAAiB,EAAM,QAAU,GAAG,EAG1F,GAAS,KAAM,EAAI,EAAM,OAAS,EAAM,WAAa,CACvD,CAEA,QACF,CAEA,GAAI,MAAO,IAAU,UAAY,MAAO,IAAU,UAAY,MAAO,IAAU,UAAW,CAGxF,GAFA,EAAU,EAAO,OAAO,CAAK,EAAG,CAAK,EAEjC,GAAY,CAAC,EAAQ,GAAG,KAAK,CAAO,EACtC,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,eAAiB,EAAM,QAAU,eAAiB,EAAU,GAAG,EAGjH,GAAQ,EAAM,OAAS,EACvB,QACF,CAEA,GAAI,GAAM,SAEV,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,WAAc,GAAM,OAAS,WAAa,WAAW,CACvG,CAEA,MAAO,EACT,CACF,CAQA,YAAuB,EAAK,CAC1B,MAAO,GAAI,QAAQ,4BAA6B,MAAM,CACxD,CAQA,YAAsB,EAAO,CAC3B,MAAO,GAAM,QAAQ,eAAgB,MAAM,CAC7C,CAQA,YAAgB,EAAS,CACvB,MAAO,IAAW,EAAQ,UAAY,GAAK,GAC7C,CASA,YAAyB,EAAM,EAAM,CACnC,GAAI,CAAC,EAAM,MAAO,GAGlB,GAAI,GAAS,EAAK,OAAO,MAAM,WAAW,EAE1C,GAAI,EACF,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAK,KAAK,CACR,KAAM,EACN,OAAQ,KACR,UAAW,KACX,SAAU,GACV,OAAQ,GACR,QAAS,IACX,CAAC,EAIL,MAAO,EACT,CAUA,YAAwB,EAAM,EAAM,EAAS,CAG3C,OAFI,GAAQ,CAAC,EAEJ,EAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAM,KAAK,GAAa,EAAK,GAAI,EAAM,CAAO,EAAE,MAAM,EAGxD,MAAO,IAAI,QAAO,MAAQ,EAAM,KAAK,GAAG,EAAI,IAAK,GAAM,CAAO,CAAC,CACjE,CAUA,YAAyB,EAAM,EAAM,EAAS,CAC5C,MAAO,IAAe,GAAM,EAAM,CAAO,EAAG,EAAM,CAAO,CAC3D,CAUA,YAAyB,EAAQ,EAAM,EAAS,CAC9C,EAAU,GAAW,CAAC,EAUtB,OARI,GAAS,EAAQ,OACjB,EAAQ,EAAQ,QAAU,GAC1B,EAAM,EAAQ,MAAQ,GACtB,EAAY,EAAQ,WAAa,GACjC,EAAW,CAAC,EAAE,OAAO,EAAQ,UAAY,CAAC,CAAC,EAAE,IAAI,EAAY,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EACnF,EAAQ,EAAQ,IAAM,GAGjB,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,GAAI,GAAQ,EAAO,GAEnB,GAAI,MAAO,IAAU,SACnB,GAAS,GAAa,CAAK,MACtB,CACL,GAAI,GAAU,EAAM,OAChB,MAAQ,EAAM,QAAU,OAAS,GAAa,EAAM,SAAS,EAAI,MAAQ,EAAM,QAAU,MACzF,EAAM,QAEV,AAAI,GAAM,EAAK,KAAK,CAAK,EAEzB,AAAI,EAAM,SACR,AAAK,EAAM,OAGT,GAAS,MAAQ,GAAa,EAAM,MAAM,EAAI,IAAM,EAAU,MAF9D,GAAS,IAAM,EAAU,KAK3B,GAAS,GAAa,EAAM,MAAM,EAAI,IAAM,EAAU,GAE1D,CACF,CAEA,GAAI,EACF,AAAK,GAAQ,IAAS,MAAQ,GAAa,CAAS,EAAI,MAExD,GAAS,IAAa,IAAM,IAAM,MAAQ,EAAW,QAChD,CACL,GAAI,GAAW,EAAO,EAAO,OAAS,GAClC,EAAiB,MAAO,IAAa,SACrC,EAAS,EAAS,OAAS,KAAO,EAClC,IAAa,OAEjB,AAAK,GAAQ,IAAS,MAAQ,GAAa,CAAS,EAAI,MAAQ,EAAW,OACtE,GAAgB,IAAS,MAAQ,GAAa,CAAS,EAAI,IAAM,EAAW,IACnF,CAEA,MAAO,IAAI,QAAO,EAAO,GAAM,CAAO,CAAC,CACzC,CAcA,YAAuB,EAAM,EAAM,EAAS,CAC1C,MAAI,aAAgB,QACX,GAAe,EAAM,CAAI,EAG9B,MAAM,QAAQ,CAAI,EACb,GAAqC,EAAO,EAAM,CAAO,EAG3D,GAAsC,EAAO,EAAM,CAAO,CACnE,ICpaA,mBAOA,AAAC,UAAyB,EAAQ,EAAS,CACzC,AAAI,MAAO,KAAY,UAAY,IAAW,MAAO,IAAQ,UAAa,SACxE,EAAQ,EAAO,EACV,AAAI,MAAO,SAAW,YAAc,OAAO,IAChD,OAAO,CAAC,SAAS,EAAG,CAAO,EAE3B,GAAO,SAAW,CAAC,EACnB,EAAQ,EAAO,QAAQ,EAE3B,GAAE,GAAM,SAA0B,EAAU,CAE1C,GAAI,GAAiB,OAAO,UAAU,SAClC,EAAU,MAAM,SAAW,SAA0B,EAAQ,CAC/D,MAAO,GAAe,KAAK,CAAM,IAAM,gBACzC,EAEA,WAAqB,EAAQ,CAC3B,MAAO,OAAO,IAAW,UAC3B,CAMA,WAAkB,EAAK,CACrB,MAAO,GAAQ,CAAG,EAAI,QAAU,MAAO,EACzC,CAEA,WAAuB,EAAQ,CAC7B,MAAO,GAAO,QAAQ,8BAA+B,MAAM,CAC7D,CAMA,WAAsB,EAAK,EAAU,CACnC,MAAO,IAAO,MAAQ,MAAO,IAAQ,UAAa,IAAY,EAChE,CAMA,WAAkC,EAAW,EAAU,CACrD,MACE,IAAa,MACV,MAAO,IAAc,UACrB,EAAU,gBACV,EAAU,eAAe,CAAQ,CAExC,CAIA,GAAI,GAAa,OAAO,UAAU,KAClC,WAAqB,EAAI,EAAQ,CAC/B,MAAO,GAAW,KAAK,EAAI,CAAM,CACnC,CAEA,GAAI,GAAa,KACjB,WAAuB,EAAQ,CAC7B,MAAO,CAAC,EAAW,EAAY,CAAM,CACvC,CAEA,GAAI,GAAY,CACd,IAAK,QACL,IAAK,OACL,IAAK,OACL,IAAK,SACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,QACP,EAEA,WAAqB,EAAQ,CAC3B,MAAO,QAAO,CAAM,EAAE,QAAQ,eAAgB,SAAwB,EAAG,CACvE,MAAO,GAAU,EACnB,CAAC,CACH,CAEA,GAAI,GAAU,MACV,EAAU,MACV,EAAW,OACX,EAAU,QACV,EAAQ,qBAwBZ,WAAwB,EAAU,EAAM,CACtC,GAAI,CAAC,EACH,MAAO,CAAC,EAEV,GAAI,GAAW,CAAC,EACZ,EAAS,CAAC,EACV,EAAS,CAAC,EACV,EAAS,GACT,EAAW,GAIf,YAAuB,CACrB,GAAI,GAAU,CAAC,EACb,KAAO,EAAO,QACZ,MAAO,GAAO,EAAO,IAAI,OAE3B,GAAS,CAAC,EAGZ,EAAS,GACT,EAAW,EACb,CAEA,GAAI,GAAc,EAAc,GAChC,YAAsB,GAAe,CAInC,GAHI,MAAO,KAAkB,UAC3B,IAAgB,GAAc,MAAM,EAAS,CAAC,GAE5C,CAAC,EAAQ,EAAa,GAAK,GAAc,SAAW,EACtD,KAAM,IAAI,OAAM,iBAAmB,EAAa,EAElD,EAAe,GAAI,QAAO,EAAa,GAAc,EAAE,EAAI,MAAM,EACjE,EAAe,GAAI,QAAO,OAAS,EAAa,GAAc,EAAE,CAAC,EACjE,GAAiB,GAAI,QAAO,OAAS,EAAa,IAAM,GAAc,EAAE,CAAC,CAC3E,CAEA,GAAY,GAAQ,EAAS,IAAI,EAKjC,OAHI,GAAU,GAAI,GAAQ,CAAQ,EAE9B,GAAO,GAAM,GAAO,GAAK,GAAO,GAC7B,CAAC,EAAQ,IAAI,GAAG,CAMrB,GALA,GAAQ,EAAQ,IAGhB,GAAQ,EAAQ,UAAU,CAAY,EAElC,GACF,OAAS,IAAI,EAAG,GAAc,GAAM,OAAQ,GAAI,GAAa,EAAE,GAC7D,GAAM,GAAM,OAAO,EAAC,EAEpB,AAAI,EAAa,EAAG,EAClB,EAAO,KAAK,EAAO,MAAM,EAEzB,EAAW,GAGb,EAAO,KAAK,CAAE,OAAQ,GAAK,GAAO,GAAQ,CAAE,CAAC,EAC7C,IAAS,EAGL,KAAQ;AAAA,GACV,EAAW,EAKjB,GAAI,CAAC,EAAQ,KAAK,CAAY,EAC5B,MAuBF,GArBA,EAAS,GAGT,GAAO,EAAQ,KAAK,CAAK,GAAK,OAC9B,EAAQ,KAAK,CAAO,EAGpB,AAAI,KAAS,IACX,IAAQ,EAAQ,UAAU,CAAQ,EAClC,EAAQ,KAAK,CAAQ,EACrB,EAAQ,UAAU,CAAY,GACzB,AAAI,KAAS,IAClB,IAAQ,EAAQ,UAAU,EAAc,EACxC,EAAQ,KAAK,CAAO,EACpB,EAAQ,UAAU,CAAY,EAC9B,GAAO,KAEP,GAAQ,EAAQ,UAAU,CAAY,EAIpC,CAAC,EAAQ,KAAK,CAAY,EAC5B,KAAM,IAAI,OAAM,mBAAqB,EAAQ,GAAG,EAKlD,GAHA,GAAQ,CAAE,GAAM,GAAO,GAAO,EAAQ,GAAI,EAC1C,EAAO,KAAK,EAAK,EAEb,KAAS,KAAO,KAAS,IAC3B,EAAS,KAAK,EAAK,UACV,KAAS,IAAK,CAIvB,GAFA,GAAc,EAAS,IAAI,EAEvB,CAAC,GACH,KAAM,IAAI,OAAM,qBAAuB,GAAQ,QAAU,EAAK,EAEhE,GAAI,GAAY,KAAO,GACrB,KAAM,IAAI,OAAM,qBAAuB,GAAY,GAAK,QAAU,EAAK,CAC3E,KAAO,AAAI,MAAS,QAAU,KAAS,KAAO,KAAS,IACrD,EAAW,GACF,KAAS,KAElB,GAAY,EAAK,CAErB,CAKA,GAFA,GAAc,EAAS,IAAI,EAEvB,GACF,KAAM,IAAI,OAAM,qBAAuB,GAAY,GAAK,QAAU,EAAQ,GAAG,EAE/E,MAAO,GAAW,EAAa,CAAM,CAAC,CACxC,CAMA,WAAuB,EAAQ,CAI7B,OAHI,GAAiB,CAAC,EAElB,EAAO,EACF,EAAI,EAAG,EAAY,EAAO,OAAQ,EAAI,EAAW,EAAE,EAC1D,EAAQ,EAAO,GAEX,GACF,CAAI,EAAM,KAAO,QAAU,GAAa,EAAU,KAAO,OACvD,GAAU,IAAM,EAAM,GACtB,EAAU,GAAK,EAAM,IAErB,GAAe,KAAK,CAAK,EACzB,EAAY,IAKlB,MAAO,EACT,CAQA,WAAqB,EAAQ,CAM3B,OALI,GAAe,CAAC,EAChB,EAAY,EACZ,EAAW,CAAC,EAEZ,EAAO,EACF,EAAI,EAAG,EAAY,EAAO,OAAQ,EAAI,EAAW,EAAE,EAG1D,OAFA,EAAQ,EAAO,GAEP,EAAM,QACP,QACA,IACH,EAAU,KAAK,CAAK,EACpB,EAAS,KAAK,CAAK,EACnB,EAAY,EAAM,GAAK,CAAC,EACxB,UACG,IACH,EAAU,EAAS,IAAI,EACvB,EAAQ,GAAK,EAAM,GACnB,EAAY,EAAS,OAAS,EAAI,EAAS,EAAS,OAAS,GAAG,GAAK,EACrE,cAEA,EAAU,KAAK,CAAK,EAI1B,MAAO,EACT,CAMA,WAAkB,EAAQ,CACxB,KAAK,OAAS,EACd,KAAK,KAAO,EACZ,KAAK,IAAM,CACb,CAKA,EAAQ,UAAU,IAAM,UAAgB,CACtC,MAAO,MAAK,OAAS,EACvB,EAMA,EAAQ,UAAU,KAAO,SAAe,EAAI,CAC1C,GAAI,GAAQ,KAAK,KAAK,MAAM,CAAE,EAE9B,GAAI,CAAC,GAAS,EAAM,QAAU,EAC5B,MAAO,GAET,GAAI,GAAS,EAAM,GAEnB,YAAK,KAAO,KAAK,KAAK,UAAU,EAAO,MAAM,EAC7C,KAAK,KAAO,EAAO,OAEZ,CACT,EAMA,EAAQ,UAAU,UAAY,SAAoB,EAAI,CACpD,GAAI,GAAQ,KAAK,KAAK,OAAO,CAAE,EAAG,EAElC,OAAQ,OACD,GACH,EAAQ,KAAK,KACb,KAAK,KAAO,GACZ,UACG,GACH,EAAQ,GACR,cAEA,EAAQ,KAAK,KAAK,UAAU,EAAG,CAAK,EACpC,KAAK,KAAO,KAAK,KAAK,UAAU,CAAK,EAGzC,YAAK,KAAO,EAAM,OAEX,CACT,EAMA,WAAkB,EAAM,EAAe,CACrC,KAAK,KAAO,EACZ,KAAK,MAAQ,CAAE,IAAK,KAAK,IAAK,EAC9B,KAAK,OAAS,CAChB,CAMA,EAAQ,UAAU,KAAO,SAAe,EAAM,CAC5C,MAAO,IAAI,GAAQ,EAAM,IAAI,CAC/B,EAMA,EAAQ,UAAU,OAAS,SAAiB,EAAM,CAChD,GAAI,GAAQ,KAAK,MAEb,EACJ,GAAI,EAAM,eAAe,CAAI,EAC3B,EAAQ,EAAM,OACT,CAGL,OAFI,GAAU,KAAM,EAAmB,EAAO,EAAO,EAAY,GAE1D,GAAS,CACd,GAAI,EAAK,QAAQ,GAAG,EAAI,EAsBtB,IArBA,EAAoB,EAAQ,KAC5B,EAAQ,EAAK,MAAM,GAAG,EACtB,EAAQ,EAmBD,GAAqB,MAAQ,EAAQ,EAAM,QAChD,AAAI,IAAU,EAAM,OAAS,GAC3B,GACE,EAAY,EAAmB,EAAM,EAAM,GACxC,EAAwB,EAAmB,EAAM,EAAM,GAG9D,EAAoB,EAAkB,EAAM,UAG9C,GAAoB,EAAQ,KAAK,GAqBjC,EAAY,EAAY,EAAQ,KAAM,CAAI,EAG5C,GAAI,EAAW,CACb,EAAQ,EACR,KACF,CAEA,EAAU,EAAQ,MACpB,CAEA,EAAM,GAAQ,CAChB,CAEA,MAAI,GAAW,CAAK,GAClB,GAAQ,EAAM,KAAK,KAAK,IAAI,GAEvB,CACT,EAOA,YAAmB,CACjB,KAAK,MAAQ,CAAC,CAChB,CAKA,EAAO,UAAU,WAAa,UAAuB,CACnD,KAAK,MAAQ,CAAC,CAChB,EAOA,EAAO,UAAU,MAAQ,SAAgB,EAAU,EAAM,CACvD,GAAI,GAAQ,KAAK,MACb,EAAW,EAAW,IAAO,IAAQ,EAAS,MAAM,KAAK,GAAG,EAC5D,EAAS,EAAM,GAEnB,MAAI,IAAU,MACZ,GAAS,EAAM,GAAY,EAAc,EAAU,CAAI,GAElD,CACT,EAeA,EAAO,UAAU,OAAS,SAAiB,EAAU,EAAM,EAAU,EAAM,CACzE,GAAI,GAAS,KAAK,MAAM,EAAU,CAAI,EAClC,EAAW,YAAgB,GAAW,EAAO,GAAI,GAAQ,CAAI,EACjE,MAAO,MAAK,aAAa,EAAQ,EAAS,EAAU,CAAQ,CAC9D,EAWA,EAAO,UAAU,aAAe,SAAuB,EAAQ,EAAS,EAAU,EAAkB,CAIlG,OAHI,GAAS,GAET,EAAO,EAAQ,EACV,EAAI,EAAG,GAAY,EAAO,OAAQ,EAAI,GAAW,EAAE,EAC1D,EAAQ,OACR,EAAQ,EAAO,GACf,EAAS,EAAM,GAEf,AAAI,IAAW,IAAK,EAAQ,KAAK,cAAc,EAAO,EAAS,EAAU,CAAgB,EACpF,AAAI,IAAW,IAAK,EAAQ,KAAK,eAAe,EAAO,EAAS,EAAU,CAAgB,EAC1F,AAAI,IAAW,IAAK,EAAQ,KAAK,cAAc,EAAO,EAAS,EAAU,CAAgB,EACzF,AAAI,IAAW,IAAK,EAAQ,KAAK,eAAe,EAAO,CAAO,EAC9D,AAAI,IAAW,OAAQ,EAAQ,KAAK,aAAa,EAAO,CAAO,EAC3D,IAAW,QAAQ,GAAQ,KAAK,SAAS,CAAK,GAEnD,IAAU,QACZ,IAAU,GAGd,MAAO,EACT,EAEA,EAAO,UAAU,cAAgB,SAAwB,EAAO,EAAS,EAAU,EAAkB,CACnG,GAAI,GAAO,KACP,EAAS,GACT,EAAQ,EAAQ,OAAO,EAAM,EAAE,EAInC,WAAoB,GAAU,CAC5B,MAAO,GAAK,OAAO,GAAU,EAAS,CAAQ,CAChD,CAEA,GAAI,EAAC,EAEL,IAAI,EAAQ,CAAK,EACf,OAAS,GAAI,EAAG,GAAc,EAAM,OAAQ,EAAI,GAAa,EAAE,EAC7D,GAAU,KAAK,aAAa,EAAM,GAAI,EAAQ,KAAK,EAAM,EAAE,EAAG,EAAU,CAAgB,UAEjF,MAAO,IAAU,UAAY,MAAO,IAAU,UAAY,MAAO,IAAU,SACpF,GAAU,KAAK,aAAa,EAAM,GAAI,EAAQ,KAAK,CAAK,EAAG,EAAU,CAAgB,UAC5E,EAAW,CAAK,EAAG,CAC5B,GAAI,MAAO,IAAqB,SAC9B,KAAM,IAAI,OAAM,gEAAgE,EAGlF,EAAQ,EAAM,KAAK,EAAQ,KAAM,EAAiB,MAAM,EAAM,GAAI,EAAM,EAAE,EAAG,CAAS,EAElF,GAAS,MACX,IAAU,EACd,KACE,IAAU,KAAK,aAAa,EAAM,GAAI,EAAS,EAAU,CAAgB,EAE3E,MAAO,GACT,EAEA,EAAO,UAAU,eAAiB,SAAyB,EAAO,EAAS,EAAU,EAAkB,CACrG,GAAI,GAAQ,EAAQ,OAAO,EAAM,EAAE,EAInC,GAAI,CAAC,GAAU,EAAQ,CAAK,GAAK,EAAM,SAAW,EAChD,MAAO,MAAK,aAAa,EAAM,GAAI,EAAS,EAAU,CAAgB,CAC1E,EAEA,EAAO,UAAU,cAAgB,SAAwB,EAAO,EAAS,EAAU,CACjF,GAAI,EAAC,EAEL,IAAI,GAAQ,EAAW,CAAQ,EAAI,EAAS,EAAM,EAAE,EAAI,EAAS,EAAM,IACvE,GAAI,GAAS,KACX,MAAO,MAAK,aAAa,KAAK,MAAM,CAAK,EAAG,EAAS,EAAU,CAAK,EACxE,EAEA,EAAO,UAAU,eAAiB,SAAyB,EAAO,EAAS,CACzE,GAAI,GAAQ,EAAQ,OAAO,EAAM,EAAE,EACnC,GAAI,GAAS,KACX,MAAO,EACX,EAEA,EAAO,UAAU,aAAe,SAAuB,EAAO,EAAS,CACrE,GAAI,GAAQ,EAAQ,OAAO,EAAM,EAAE,EACnC,GAAI,GAAS,KACX,MAAO,GAAS,OAAO,CAAK,CAChC,EAEA,EAAO,UAAU,SAAW,SAAmB,EAAO,CACpD,MAAO,GAAM,EACf,EAEA,EAAS,KAAO,cAChB,EAAS,QAAU,QACnB,EAAS,KAAO,CAAE,KAAM,IAAK,EAG7B,GAAI,GAAgB,GAAI,GAKxB,SAAS,WAAa,UAAuB,CAC3C,MAAO,GAAc,WAAW,CAClC,EAOA,EAAS,MAAQ,SAAgB,EAAU,EAAM,CAC/C,MAAO,GAAc,MAAM,EAAU,CAAI,CAC3C,EAQA,EAAS,OAAS,SAAiB,EAAU,EAAM,EAAU,EAAM,CACjE,GAAI,MAAO,IAAa,SACtB,KAAM,IAAI,WAAU,wDACU,EAAQ,CAAQ,EAAI,iFAC0B,EAG9E,MAAO,GAAc,OAAO,EAAU,EAAM,EAAU,CAAI,CAC5D,EAIA,EAAS,QAAU,SAAkB,EAAU,EAAM,EAAU,EAAM,CAGnE,GAAI,GAAS,EAAS,OAAO,EAAU,EAAM,CAAQ,EAErD,GAAI,EAAW,CAAI,EACjB,EAAK,CAAM,MAEX,OAAO,EAEX,EAIA,EAAS,OAAS,EAGlB,EAAS,QAAU,EACnB,EAAS,QAAU,EACnB,EAAS,OAAS,EAEX,CACT,CAAC,ICzqBD,wBAGA,GAAO,QAAU,GACjB,GAAO,QAAQ,MAAQ,GACvB,GAAO,QAAQ,iBAAmB,GAClC,GAAO,QAAQ,MAAQ,GACvB,GAAO,QAAQ,QAAU,GACzB,GAAO,QAAQ,iBAAmB,GAClC,GAAO,QAAQ,eAAiB,GAKhC,GAAI,IAAoB,IAOpB,GAAc,GAAI,QAAO,CAG3B,UAMA,qFACF,EAAE,KAAK,GAAG,EAAG,GAAG,EAShB,YAAgB,EAAK,EAAS,CAU5B,OATI,GAAS,CAAC,EACV,EAAM,EACN,EAAQ,EACR,EAAO,GACP,EAAoB,GAAW,EAAQ,WAAc,GACrD,EAAa,GAAW,EAAQ,WAAc,OAC9C,EAAc,GACd,EAEI,GAAM,GAAY,KAAK,CAAG,KAAO,MAAM,CAC7C,GAAI,GAAI,EAAI,GACR,EAAU,EAAI,GACd,EAAS,EAAI,MAKjB,GAJA,GAAQ,EAAI,MAAM,EAAO,CAAM,EAC/B,EAAQ,EAAS,EAAE,OAGf,EAAS,CACX,GAAQ,EAAQ,GAChB,EAAc,GACd,QACF,CAEA,GAAI,GAAO,GACP,EAAO,EAAI,GACX,EAAU,EAAI,GACd,EAAQ,EAAI,GACZ,EAAW,EAAI,GAEnB,GAAI,CAAC,GAAe,EAAK,OAAQ,CAC/B,GAAI,GAAI,EAAK,OAAS,EAClB,EAAI,EAAK,GACT,EAAU,EAAY,EAAU,QAAQ,CAAC,EAAI,GAAK,GAEtD,AAAI,GACF,GAAO,EACP,EAAO,EAAK,MAAM,EAAG,CAAC,EAE1B,CAGA,AAAI,GACF,GAAO,KAAK,CAAI,EAChB,EAAO,GACP,EAAc,IAGhB,GAAI,GAAS,IAAa,KAAO,IAAa,IAC1C,EAAW,IAAa,KAAO,IAAa,IAC5C,EAAU,GAAW,EACrB,EAAY,GAAQ,EACpB,EAAW,GAAS,OAAO,GAAO,EAAO,OAAS,IAAO,SAAW,EAAO,EAAO,OAAS,GAAK,IAEpG,EAAO,KAAK,CACV,KAAM,GAAQ,IACd,OAAQ,EACR,UAAW,EACX,SAAU,EACV,OAAQ,EACR,QAAS,EACL,GAAY,CAAO,EACnB,GAAkB,EAAW,EAAkB,CAAQ,CAC7D,CAAC,CACH,CAGA,MAAI,IAAQ,EAAQ,EAAI,SACtB,EAAO,KAAK,EAAO,EAAI,OAAO,CAAK,CAAC,EAG/B,CACT,CAEA,YAA4B,EAAW,EAAkB,EAAU,CACjE,GAAI,GAAY,KAAO,GAAa,IAAc,EAAmB,EAAa,EAAY,CAAiB,EAAI,IAEnH,MAAI,CAAC,GAAY,EAAS,QAAQ,CAAS,EAAI,IAAM,EAAS,QAAQ,CAAgB,EAAI,GACjF,EAAY,KAGd,GAAa,CAAQ,EAAI,UAAY,GAAa,CAAQ,EAAI,IAAM,EAAY,KACzF,CASA,YAAkB,EAAK,EAAS,CAC9B,MAAO,IAAiB,GAAM,EAAK,CAAO,EAAG,CAAO,CACtD,CAKA,YAAgB,EAAK,EAAS,CAC5B,GAAI,GAAO,CAAC,EACR,EAAK,GAAa,EAAK,EAAM,CAAO,EACxC,MAAO,IAAiB,EAAI,CAAI,CAClC,CAKA,YAA2B,EAAI,EAAM,CACnC,MAAO,UAAU,EAAU,EAAS,CAClC,GAAI,GAAI,EAAG,KAAK,CAAQ,EACxB,GAAI,CAAC,EAAG,MAAO,GAOf,OALI,GAAO,EAAE,GACT,EAAQ,EAAE,MACV,EAAS,CAAC,EACV,EAAU,GAAW,EAAQ,QAAW,mBAEnC,EAAI,EAAG,EAAI,EAAE,OAAQ,IAC5B,GAAI,EAAE,KAAO,OAEb,IAAI,GAAM,EAAK,EAAI,GAEnB,AAAI,EAAI,OACN,EAAO,EAAI,MAAQ,EAAE,GAAG,MAAM,EAAI,SAAS,EAAE,IAAI,SAAU,EAAO,CAChE,MAAO,GAAO,EAAO,CAAG,CAC1B,CAAC,EAED,EAAO,EAAI,MAAQ,EAAO,EAAE,GAAI,CAAG,EAIvC,MAAO,CAAE,KAAM,EAAM,MAAO,EAAO,OAAQ,CAAO,CACpD,CACF,CAKA,YAA2B,EAAQ,EAAS,CAK1C,OAHI,GAAU,GAAI,OAAM,EAAO,MAAM,EAG5B,EAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,AAAI,MAAO,GAAO,IAAO,UACvB,GAAQ,GAAK,GAAI,QAAO,OAAS,EAAO,GAAG,QAAU,KAAM,GAAM,CAAO,CAAC,GAI7E,MAAO,UAAU,EAAM,EAAS,CAK9B,OAJI,GAAO,GACP,EAAU,GAAW,EAAQ,QAAW,mBACxC,EAAW,EAAU,EAAQ,WAAa,GAAQ,GAE7C,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,GAAI,GAAQ,EAAO,GAEnB,GAAI,MAAO,IAAU,SAAU,CAC7B,GAAQ,EACR,QACF,CAEA,GAAI,GAAQ,EAAO,EAAK,EAAM,MAAQ,OAClC,EAEJ,GAAI,MAAM,QAAQ,CAAK,EAAG,CACxB,GAAI,CAAC,EAAM,OACT,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,gCAAgC,EAGlF,GAAI,EAAM,SAAW,EAAG,CACtB,GAAI,EAAM,SAAU,SAEpB,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,mBAAmB,CACrE,CAEA,OAAS,GAAI,EAAG,EAAI,EAAM,OAAQ,IAAK,CAGrC,GAFA,EAAU,EAAO,EAAM,GAAI,CAAK,EAE5B,GAAY,CAAC,EAAQ,GAAG,KAAK,CAAO,EACtC,KAAM,IAAI,WAAU,iBAAmB,EAAM,KAAO,eAAiB,EAAM,QAAU,GAAG,EAG1F,GAAS,KAAM,EAAI,EAAM,OAAS,EAAM,WAAa,CACvD,CAEA,QACF,CAEA,GAAI,MAAO,IAAU,UAAY,MAAO,IAAU,UAAY,MAAO,IAAU,UAAW,CAGxF,GAFA,EAAU,EAAO,OAAO,CAAK,EAAG,CAAK,EAEjC,GAAY,CAAC,EAAQ,GAAG,KAAK,CAAO,EACtC,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,eAAiB,EAAM,QAAU,eAAiB,EAAU,GAAG,EAGjH,GAAQ,EAAM,OAAS,EACvB,QACF,CAEA,GAAI,GAAM,SAEV,KAAM,IAAI,WAAU,aAAe,EAAM,KAAO,WAAc,GAAM,OAAS,WAAa,WAAW,CACvG,CAEA,MAAO,EACT,CACF,CAQA,YAAuB,EAAK,CAC1B,MAAO,GAAI,QAAQ,4BAA6B,MAAM,CACxD,CAQA,YAAsB,EAAO,CAC3B,MAAO,GAAM,QAAQ,eAAgB,MAAM,CAC7C,CAQA,YAAgB,EAAS,CACvB,MAAO,IAAW,EAAQ,UAAY,GAAK,GAC7C,CASA,YAAyB,EAAM,EAAM,CACnC,GAAI,CAAC,EAAM,MAAO,GAGlB,GAAI,GAAS,EAAK,OAAO,MAAM,WAAW,EAE1C,GAAI,EACF,OAAS,GAAI,EAAG,EAAI,EAAO,OAAQ,IACjC,EAAK,KAAK,CACR,KAAM,EACN,OAAQ,KACR,UAAW,KACX,SAAU,GACV,OAAQ,GACR,QAAS,IACX,CAAC,EAIL,MAAO,EACT,CAUA,YAAwB,EAAM,EAAM,EAAS,CAG3C,OAFI,GAAQ,CAAC,EAEJ,EAAI,EAAG,EAAI,EAAK,OAAQ,IAC/B,EAAM,KAAK,GAAa,EAAK,GAAI,EAAM,CAAO,EAAE,MAAM,EAGxD,MAAO,IAAI,QAAO,MAAQ,EAAM,KAAK,GAAG,EAAI,IAAK,GAAM,CAAO,CAAC,CACjE,CAUA,YAAyB,EAAM,EAAM,EAAS,CAC5C,MAAO,IAAe,GAAM,EAAM,CAAO,EAAG,EAAM,CAAO,CAC3D,CAUA,YAAyB,EAAQ,EAAM,EAAS,CAC9C,EAAU,GAAW,CAAC,EAUtB,OARI,GAAS,EAAQ,OACjB,EAAQ,EAAQ,QAAU,GAC1B,EAAM,EAAQ,MAAQ,GACtB,EAAY,EAAQ,WAAa,GACjC,EAAW,CAAC,EAAE,OAAO,EAAQ,UAAY,CAAC,CAAC,EAAE,IAAI,EAAY,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EACnF,EAAQ,EAAQ,IAAM,GAGjB,EAAI,EAAG,EAAI,EAAO,OAAQ,IAAK,CACtC,GAAI,GAAQ,EAAO,GAEnB,GAAI,MAAO,IAAU,SACnB,GAAS,GAAa,CAAK,MACtB,CACL,GAAI,GAAU,EAAM,OAChB,MAAQ,EAAM,QAAU,OAAS,GAAa,EAAM,SAAS,EAAI,MAAQ,EAAM,QAAU,MACzF,EAAM,QAEV,AAAI,GAAM,EAAK,KAAK,CAAK,EAEzB,AAAI,EAAM,SACR,AAAK,EAAM,OAGT,GAAS,MAAQ,GAAa,EAAM,MAAM,EAAI,IAAM,EAAU,MAF9D,GAAS,IAAM,EAAU,KAK3B,GAAS,GAAa,EAAM,MAAM,EAAI,IAAM,EAAU,GAE1D,CACF,CAEA,GAAI,EACF,AAAK,GAAQ,IAAS,MAAQ,GAAa,CAAS,EAAI,MAExD,GAAS,IAAa,IAAM,IAAM,MAAQ,EAAW,QAChD,CACL,GAAI,GAAW,EAAO,EAAO,OAAS,GAClC,EAAiB,MAAO,IAAa,SACrC,EAAS,EAAS,OAAS,KAAO,EAClC,IAAa,OAEjB,AAAK,GAAQ,IAAS,MAAQ,GAAa,CAAS,EAAI,MAAQ,EAAW,OACtE,GAAgB,IAAS,MAAQ,GAAa,CAAS,EAAI,IAAM,EAAW,IACnF,CAEA,MAAO,IAAI,QAAO,EAAO,GAAM,CAAO,CAAC,CACzC,CAcA,YAAuB,EAAM,EAAM,EAAS,CAC1C,MAAI,aAAgB,QACX,GAAe,EAAM,CAAI,EAG9B,MAAM,QAAQ,CAAI,EACb,GAAqC,EAAO,EAAM,CAAO,EAG3D,GAAsC,EAAO,EAAM,CAAO,CACnE,ICpaA,2BAAI,IAAQ,uBAEZ,GAAO,QAAU,GAEjB,YAAkB,EAAQ,CACtB,GAAI,GAEJ,GAAI,UAAU,SAAW,GAAK,MAAO,WAAU,IAAO,SAClD,EAAO,UAAU,OACd,CACH,EAAO,GAAI,OAAM,UAAU,OAAS,CAAC,EACrC,OAAS,GAAI,EAAG,EAAI,UAAU,OAAQ,EAAE,EACpC,EAAK,EAAI,GAAK,UAAU,EAEhC,CAEA,MAAI,EAAC,GAAQ,CAAC,EAAK,iBACf,GAAO,CAAC,GAGL,EAAO,QAAQ,GAAO,SAAoB,EAAO,EAAG,EAAO,CAC9D,GAAI,GAEJ,MAAI,GAAO,EAAQ,KAAO,KACtB,EAAO,EAAQ,EAAM,UAAY,IAC1B,EAEP,GAAS,EAAK,eAAe,CAAC,EAAI,EAAK,GAAK,KACxC,GAAW,KACJ,GAGJ,EAEf,CAAC,CACL,ICnCA,qCAQA,GAAI,IAAwB,OAAO,sBAC/B,GAAiB,OAAO,UAAU,eAClC,GAAmB,OAAO,UAAU,qBAExC,YAAkB,EAAK,CACtB,GAAI,GAAQ,KACX,KAAM,IAAI,WAAU,uDAAuD,EAG5E,MAAO,QAAO,CAAG,CAClB,CAEA,aAA2B,CAC1B,GAAI,CACH,GAAI,CAAC,OAAO,OACX,MAAO,GAMR,GAAI,GAAQ,GAAI,QAAO,KAAK,EAE5B,GADA,EAAM,GAAK,KACP,OAAO,oBAAoB,CAAK,EAAE,KAAO,IAC5C,MAAO,GAKR,OADI,GAAQ,CAAC,EACJ,EAAI,EAAG,EAAI,GAAI,IACvB,EAAM,IAAM,OAAO,aAAa,CAAC,GAAK,EAEvC,GAAI,GAAS,OAAO,oBAAoB,CAAK,EAAE,IAAI,SAAU,EAAG,CAC/D,MAAO,GAAM,EACd,CAAC,EACD,GAAI,EAAO,KAAK,EAAE,IAAM,aACvB,MAAO,GAIR,GAAI,GAAQ,CAAC,EAIb,MAHA,uBAAuB,MAAM,EAAE,EAAE,QAAQ,SAAU,EAAQ,CAC1D,EAAM,GAAU,CACjB,CAAC,EACG,OAAO,KAAK,OAAO,OAAO,CAAC,EAAG,CAAK,CAAC,EAAE,KAAK,EAAE,IAC/C,sBAKH,MAAE,CAED,MAAO,EACR,CACD,CAEA,GAAO,QAAU,GAAgB,EAAI,OAAO,OAAS,SAAU,EAAQ,EAAQ,CAK9E,OAJI,GACA,EAAK,GAAS,CAAM,EACpB,EAEK,EAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAC1C,EAAO,OAAO,UAAU,EAAE,EAE1B,OAAS,KAAO,GACf,AAAI,GAAe,KAAK,EAAM,CAAG,GAChC,GAAG,GAAO,EAAK,IAIjB,GAAI,GAAuB,CAC1B,EAAU,GAAsB,CAAI,EACpC,OAAS,GAAI,EAAG,EAAI,EAAQ,OAAQ,IACnC,AAAI,GAAiB,KAAK,EAAM,EAAQ,EAAE,GACzC,GAAG,EAAQ,IAAM,EAAK,EAAQ,IAGjC,CACD,CAEA,MAAO,EACR,ICzFA,gCASa,GAAI,IAAE,KAAyB,GAAE,AAAa,MAAO,SAApB,YAA4B,OAAO,IAAI,GAAE,GAAE,OAAO,IAAI,eAAe,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,cAAc,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,eAAe,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,YAAY,EAAE,MAAM,GAAE,GAAE,OAAO,IAAI,YAAY,EACpf,MAAM,GAAE,AAAa,MAAO,SAApB,YAA4B,OAAO,SAAS,YAAW,EAAE,CAAC,OAAQ,GAAE,yDAAyD,EAAE,EAAE,EAAE,EAAE,UAAU,OAAO,IAAI,GAAG,WAAW,mBAAmB,UAAU,EAAE,EAAE,MAAM,yBAAyB,EAAE,WAAW,EAAE,gHAAgH,CAC/W,GAAI,IAAE,CAAC,UAAU,UAAU,CAAC,MAAM,EAAE,EAAE,mBAAmB,UAAU,CAAC,EAAE,oBAAoB,UAAU,CAAC,EAAE,gBAAgB,UAAU,CAAC,CAAC,EAAE,GAAE,CAAC,EAAE,YAAW,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,GAAE,KAAK,QAAQ,GAAG,EAAC,CAAC,GAAE,UAAU,iBAAiB,CAAC,EAAE,GAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,GAAG,AAAW,MAAO,IAAlB,UAAqB,AAAa,MAAO,IAApB,YAAuB,AAAM,GAAN,KAAQ,KAAM,OAAM,GAAE,EAAE,CAAC,EAAE,KAAK,QAAQ,gBAAgB,KAAK,EAAE,EAAE,UAAU,CAAC,EAAE,GAAE,UAAU,YAAY,SAAS,EAAE,CAAC,KAAK,QAAQ,mBAAmB,KAAK,EAAE,aAAa,CAAC,EAC/e,aAAY,CAAC,CAAC,GAAE,UAAU,GAAE,UAAU,YAAW,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,GAAE,KAAK,QAAQ,GAAG,EAAC,CAAC,GAAI,IAAE,GAAE,UAAU,GAAI,IAAE,GAAE,YAAY,GAAE,GAAE,GAAE,GAAE,SAAS,EAAE,GAAE,qBAAqB,GAAG,GAAI,IAAE,CAAC,QAAQ,IAAI,EAAE,GAAE,OAAO,UAAU,eAAe,GAAE,CAAC,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,EAAE,EAClS,YAAW,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,AAAM,GAAN,KAAQ,IAAI,IAAK,AAAS,GAAE,MAAX,QAAiB,GAAE,EAAE,KAAK,AAAS,EAAE,MAAX,QAAiB,GAAE,GAAG,EAAE,KAAK,EAAE,GAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAE,eAAe,CAAC,GAAI,GAAE,GAAG,EAAE,IAAI,GAAI,GAAE,UAAU,OAAO,EAAE,GAAG,AAAI,IAAJ,EAAM,EAAE,SAAS,UAAU,EAAE,EAAE,CAAC,OAAQ,GAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,aAAa,IAAI,IAAK,GAAE,EAAE,aAAa,EAAE,AAAS,EAAE,KAAX,QAAgB,GAAE,GAAG,EAAE,IAAI,MAAM,CAAC,SAAS,GAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,CAAC,CAC7a,YAAW,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAE,KAAK,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,EAAE,MAAM,OAAO,EAAE,MAAM,CAAC,CAAC,YAAW,EAAE,CAAC,MAAM,AAAW,OAAO,IAAlB,UAAqB,AAAO,IAAP,MAAU,EAAE,WAAW,EAAC,CAAC,YAAgB,EAAE,CAAC,GAAI,GAAE,CAAC,IAAI,KAAK,IAAI,IAAI,EAAE,MAAM,IAAK,IAAG,GAAG,QAAQ,QAAQ,SAAS,EAAE,CAAC,MAAO,GAAE,EAAE,CAAC,CAAC,CAAC,GAAI,IAAE,OAAO,GAAE,CAAC,EAAE,YAAW,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAE,OAAO,CAAC,GAAI,GAAE,GAAE,IAAI,EAAE,SAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAS,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAC9b,YAAW,EAAE,CAAC,EAAE,OAAO,KAAK,EAAE,UAAU,KAAK,EAAE,KAAK,KAAK,EAAE,QAAQ,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,QAAQ,GAAE,KAAK,CAAC,CAAC,CACxG,YAAW,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,MAAO,GAAE,AAAG,CAAc,IAAd,aAAiB,AAAY,IAAZ,YAAc,GAAE,MAAK,GAAI,GAAE,GAAG,GAAG,AAAO,IAAP,KAAS,EAAE,OAAQ,QAAO,OAAQ,aAAc,SAAS,EAAE,GAAG,UAAW,SAAS,OAAO,EAAE,cAAe,QAAO,IAAE,EAAE,IAAI,GAAG,EAAE,MAAO,GAAE,EAAE,EAAE,AAAK,IAAL,GAAO,IAAI,GAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAyB,GAAvB,EAAE,EAAE,EAAE,AAAK,IAAL,GAAO,IAAI,EAAE,IAAO,MAAM,QAAQ,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,GAAG,GAAI,GAAE,EAAE,GAAE,EAAE,CAAC,EAAE,GAAG,GAAE,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,AAAO,IAAP,MAAU,AAAW,MAAO,IAAlB,SAAoB,EAAE,KAAM,GAAE,IAAG,EAAE,KAAI,EAAE,cAAc,EAAE,AAAa,MAAO,IAApB,WAAsB,EAAE,MAAM,AAAa,MAAO,IAApB,WAAsB,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EACpf,EAAE,CAAE,GAAE,EAAE,KAAK,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,GAAE,EAAE,GAAG,EAAE,GAAG,GAAE,EAAE,EAAE,EAAE,CAAC,UAAU,AAAW,IAAX,SAAa,KAAM,GAAE,GAAG,EAAE,MAAM,GAAE,GAAG,AAAoB,IAApB,kBAAsB,qBAAqB,OAAO,KAAK,CAAC,EAAE,KAAK,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAO,EAAC,CAAC,YAAW,EAAE,EAAE,EAAE,CAAC,MAAO,AAAM,IAAN,KAAQ,EAAE,GAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,YAAW,EAAE,EAAE,CAAC,MAAM,AAAW,OAAO,IAAlB,UAAqB,AAAO,IAAP,MAAU,AAAM,EAAE,KAAR,KAAY,GAAO,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,YAAW,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,CAAC,CAChY,YAAY,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC,EAAE,GAAE,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,MAAO,EAAC,CAAC,EAAE,AAAM,GAAN,MAAU,IAAE,CAAC,GAAI,GAAE,GAAE,EAAE,EAAG,EAAC,EAAE,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,GAAI,IAAG,EAAE,KAAK,QAAQ,GAAE,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,YAAW,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAI,GAAE,GAAG,AAAM,GAAN,MAAU,GAAG,IAAG,GAAG,QAAQ,GAAE,KAAK,EAAE,KAAK,EAAE,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,GAAE,EAAE,GAAG,CAAC,EAAE,GAAE,CAAC,CAAC,CAAC,GAAI,IAAE,CAAC,QAAQ,IAAI,EAAE,aAAY,CAAC,GAAI,GAAE,GAAE,QAAQ,GAAG,AAAO,IAAP,KAAS,KAAM,OAAM,GAAE,GAAG,CAAC,EAAE,MAAO,EAAC,CACza,GAAI,IAAG,CAAC,uBAAuB,GAAE,wBAAwB,CAAC,SAAS,IAAI,EAAE,kBAAkB,GAAE,qBAAqB,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAC,EAAE,GAAQ,SAAS,CAAC,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAM,GAAN,KAAQ,MAAO,GAAE,GAAI,GAAE,CAAC,EAAE,UAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAS,CAAC,EAAE,QAAQ,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAM,GAAN,KAAQ,MAAO,GAAE,EAAE,GAAE,KAAK,KAAK,EAAE,CAAC,EAAE,GAAE,EAAE,GAAE,CAAC,EAAE,GAAE,CAAC,CAAC,EAAE,MAAM,SAAS,EAAE,CAAC,MAAO,IAAE,EAAE,UAAU,CAAC,MAAO,KAAI,EAAE,IAAI,CAAC,EAAE,QAAQ,SAAS,EAAE,CAAC,GAAI,GAAE,CAAC,EAAE,UAAE,EAAE,EAAE,KAAK,SAAS,EAAE,CAAC,MAAO,EAAC,CAAC,EAAS,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,GAAE,CAAC,EAAE,KAAM,OAAM,GAAE,GAAG,CAAC,EAAE,MAAO,EAAC,CAAC,EAChf,GAAQ,UAAU,GAAE,GAAQ,SAAS,GAAE,GAAQ,SAAS,GAAE,GAAQ,cAAc,GAAE,GAAQ,WAAW,GAAE,GAAQ,SAAS,GAAE,GAAQ,mDAAmD,GACrL,GAAQ,aAAa,SAAS,EAAE,EAAE,EAAE,CAAC,GAAG,AAAO,GAAP,KAAqB,KAAM,OAAM,GAAE,IAAI,CAAC,CAAC,EAAE,GAAI,GAAE,GAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,GAAG,AAAM,GAAN,KAAQ,CAAoE,GAAnE,AAAS,EAAE,MAAX,QAAiB,GAAE,EAAE,IAAI,EAAE,GAAE,SAAS,AAAS,EAAE,MAAX,QAAiB,GAAE,GAAG,EAAE,KAAQ,EAAE,MAAM,EAAE,KAAK,aAAa,GAAI,GAAE,EAAE,KAAK,aAAa,IAAI,IAAK,GAAE,GAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAE,eAAe,CAAC,GAAI,GAAE,GAAG,AAAS,EAAE,KAAX,QAAe,AAAS,IAAT,OAAW,EAAE,GAAG,EAAE,GAAG,CAAC,GAAI,GAAE,UAAU,OAAO,EAAE,GAAG,AAAI,IAAJ,EAAM,EAAE,SAAS,UAAU,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,OAAQ,GAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,GAAE,KAAK,EAAE,KACxf,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,GAAQ,cAAc,SAAS,EAAE,EAAE,CAAC,MAAS,KAAT,QAAa,GAAE,MAAM,EAAE,CAAC,SAAS,GAAE,sBAAsB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,KAAK,SAAS,IAAI,EAAE,EAAE,SAAS,CAAC,SAAS,GAAE,SAAS,CAAC,EAAS,EAAE,SAAS,CAAC,EAAE,GAAQ,cAAc,GAAE,GAAQ,cAAc,SAAS,EAAE,CAAC,GAAI,GAAE,GAAE,KAAK,KAAK,CAAC,EAAE,SAAE,KAAK,EAAS,CAAC,EAAE,GAAQ,UAAU,UAAU,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,EAAE,GAAQ,WAAW,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,GAAE,OAAO,CAAC,CAAC,EAAE,GAAQ,eAAe,GAC3e,GAAQ,KAAK,SAAS,EAAE,CAAC,MAAM,CAAC,SAAS,GAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,IAAI,CAAC,EAAE,GAAQ,KAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAE,KAAK,EAAE,QAAQ,AAAS,IAAT,OAAW,KAAK,CAAC,CAAC,EAAE,GAAQ,YAAY,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,GAAQ,WAAW,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,GAAQ,cAAc,UAAU,CAAC,EAAE,GAAQ,UAAU,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,GAAQ,oBAAoB,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,EACxc,GAAQ,gBAAgB,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,gBAAgB,EAAE,CAAC,CAAC,EAAE,GAAQ,QAAQ,SAAS,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAQ,WAAW,SAAS,EAAE,EAAE,EAAE,CAAC,MAAO,IAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,GAAQ,OAAO,SAAS,EAAE,CAAC,MAAO,IAAE,EAAE,OAAO,CAAC,CAAC,EAAE,GAAQ,SAAS,SAAS,EAAE,CAAC,MAAO,IAAE,EAAE,SAAS,CAAC,CAAC,EAAE,GAAQ,QAAQ,YCxBrT,qCAGE,GAAO,QAAU,OCHnB,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAClB,YAAmB,EAAK,CACtB,MAAO,GAAI,QAAQ,SAAU,GAAG,EAAE,QAAQ,WAAY,EAAE,EAAE,QAAQ,QAAS,SAAU,EAAI,CACvF,MAAO,GAAG,YAAY,CACxB,CAAC,EAAE,QAAQ,KAAM,EAAE,EAAE,QAAQ,MAAO,SAAU,EAAI,CAChD,MAAO,GAAG,YAAY,CACxB,CAAC,CACH,ICZA,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,gBAAkB,GAAQ,WAAa,OAC/C,GAAI,IAAa,GAAQ,WAAa,CAAC,eAAgB,YAAa,OAAQ,UAAW,mBAAoB,MAAO,0BAA2B,iCAAkC,2BAA4B,MAAO,QAAS,eAAgB,YAAa,WAAY,UAAW,UAAW,UAAW,QAAS,WAAY,YAAa,WAAY,SAAU,OAAQ,WAAY,aAAc,OAAQ,KAAM,KAAM,YAAa,YAAa,QAAS,SAAU,WAAY,OAAQ,cAAe,WAAY,MAAO,WAAY,WAAY,OAAQ,OAAQ,UAAW,WAAY,OAAQ,MAAO,WAAY,SAAU,QAAS,OAAQ,OAAO,EAC9mB,GAAkB,GAAQ,gBAAkB,CAAC,OAAO,ICPxD,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAClB,YAA4B,EAAG,CAAE,MAAO,IAAmB,CAAC,GAAK,GAAiB,CAAC,GAAK,GAA4B,CAAC,GAAK,GAAmB,CAAG,CAChJ,aAA8B,CAAE,KAAM,IAAI,WAAU;AAAA,mFAAsI,CAAG,CAC7L,YAA0B,EAAG,CAAE,GAAI,AAAe,MAAO,QAAtB,KAAgC,AAAQ,EAAE,OAAO,WAAjB,MAA8B,AAAQ,EAAE,eAAV,KAAyB,MAAO,OAAM,KAAK,CAAC,CAAG,CAChJ,YAA4B,EAAG,CAAE,GAAI,MAAM,QAAQ,CAAC,EAAG,MAAO,IAAkB,CAAC,CAAG,CACpF,YAAoC,EAAG,EAAG,CAAE,GAAI,GAAI,AAAe,MAAO,QAAtB,KAAgC,EAAE,OAAO,WAAa,EAAE,cAAe,GAAI,CAAC,EAAG,CAAE,GAAI,MAAM,QAAQ,CAAC,GAAM,GAAI,GAA4B,CAAC,IAAM,GAAK,GAAK,AAAY,MAAO,GAAE,QAArB,SAA6B,CAAE,GAAM,GAAI,GAAI,GAAI,GAAK,EAAG,EAAI,UAAa,CAAC,EAAG,MAAO,CAAE,EAAG,EAAG,EAAG,UAAa,CAAE,MAAO,IAAM,EAAE,OAAS,CAAE,KAAM,EAAG,EAAI,CAAE,KAAM,GAAI,MAAO,EAAE,IAAM,CAAG,EAAG,EAAG,SAAW,EAAG,CAAE,KAAM,EAAG,EAAG,EAAG,CAAE,CAAG,CAAE,KAAM,IAAI,WAAU;AAAA,mFAAuI,CAAG,CAAE,GAAI,GAAG,EAAI,GAAI,EAAI,GAAI,MAAO,CAAE,EAAG,UAAa,CAAE,EAAI,EAAE,KAAK,CAAC,CAAG,EAAG,EAAG,UAAa,CAAE,GAAI,GAAI,EAAE,KAAK,EAAG,MAAO,GAAI,EAAE,KAAM,CAAG,EAAG,EAAG,SAAW,EAAG,CAAE,EAAI,GAAI,EAAI,CAAG,EAAG,EAAG,UAAa,CAAE,GAAI,CAAE,GAAK,AAAQ,EAAE,QAAV,MAAoB,EAAE,OAAO,CAAG,QAAE,CAAU,GAAI,EAAG,KAAM,EAAG,CAAE,CAAE,CAAG,CACr1B,YAAqC,EAAG,EAAG,CAAE,GAAI,EAAG,CAAE,GAAI,AAAY,MAAO,IAAnB,SAAsB,MAAO,IAAkB,EAAG,CAAC,EAAG,GAAI,GAAI,CAAC,EAAE,SAAS,KAAK,CAAC,EAAE,MAAM,EAAG,EAAE,EAAG,MAAO,AAAa,KAAb,UAAkB,EAAE,aAAgB,GAAI,EAAE,YAAY,MAAO,AAAU,IAAV,OAAe,AAAU,IAAV,MAAc,MAAM,KAAK,CAAC,EAAI,AAAgB,IAAhB,aAAqB,2CAA2C,KAAK,CAAC,EAAI,GAAkB,EAAG,CAAC,EAAI,MAAQ,CAAE,CACzX,YAA2B,EAAG,EAAG,CAAE,AAAC,CAAQ,GAAR,MAAa,EAAI,EAAE,SAAY,GAAI,EAAE,QAAS,OAAS,GAAI,EAAG,EAAI,MAAM,CAAC,EAAG,EAAI,EAAG,IAAK,EAAE,GAAK,EAAE,GAAI,MAAO,EAAG,CACnJ,GAAI,IAAI,WACJ,GAAS,KAAK,MAAM,KAAK,OAAO,EAAI,EAAC,EAAE,SAAS,EAAE,EAAI,KAAK,IAAI,KAAK,MAAM,KAAK,OAAO,EAAI,EAAC,EAAI,KAAK,IAAI,CAAC,EAAE,SAAS,EAAE,EACtH,GAAQ,EACZ,aAAgB,CACd,UAAQ,GAAQ,EACT,GAAG,OAAO,GAAQ,GAAG,EAAE,OAAO,EAAK,CAC5C,CACA,GAAI,IAAY,QAAQ,QAAQ,EAAE,KAAK,KAAK,QAAQ,QAAQ,CAAC,EACzD,GAAyC,GAAI,KAC7C,GAA6C,GAAI,KACjD,GAAuB,GAAI,KAC3B,GAA4B,GAAI,KACpC,YAAwB,EAAM,EAAO,CACnC,GAAI,MAAO,IAAS,SAClB,MAAO,CACL,wBAAyB,UAAmC,CAAC,EAC7D,aAAc,UAAwB,CAAC,EACvC,YAAa,EACf,EAYF,GAAI,GAAuB,CAAC,EAC5B,GAAI,MAAO,IAAS,UAClB,OAAS,KAAY,GACnB,GAAI,EAAS,WAAW,OAAO,GAAK,EAAM,IAAa,MAAO,GAAM,GAAU,WAAc,WAAY,CACtG,GAAI,GAAK,IAAI,OAAO,GAAK,CAAC,EACtB,EAAY,EAAM,GACtB,EAAM,GAAY,EAClB,EAAqB,KAAK,CACxB,UAAW,EACX,GAAI,EACJ,cAAe,CACjB,CAAC,CACH,EAGJ,GAAI,GACJ,AAAI,GAAS,EAAM,iBACjB,GAAU,EAAM,gBAChB,MAAO,GAAM,iBAEf,WAAgC,EAAM,CACpC,GAAI,CAAC,EAAM,CACT,EAAQ,WAAW,CAAI,EACvB,MACF,CACA,GAAI,GAAoB,EAAK,YAAY,EACrC,EAAqB,GAAqB,IAAI,CAAiB,EACnE,AAAK,GACH,GAAqB,CAAC,EACtB,GAAqB,IAAI,EAAmB,CAAkB,GAEhE,EAAmB,KAAK,CACtB,QAAS,EACT,QAAS,CACX,CAAC,EACD,GAAU,UAAY,CACpB,GAAI,GAAgB,GAA0B,IAAI,CAAiB,EAMnE,GALK,GACH,GAAgB,CAAC,EACjB,GAA0B,IAAI,EAAmB,CAAa,GAEhE,EAAc,KAAK,CAAO,EACtB,EAAc,SAAW,EAAmB,OAAQ,CACtD,GAAqB,OAAO,CAAiB,EAC7C,GAA0B,OAAO,CAAiB,EAGlD,OAFI,GAAc,EAAmB,QAAQ,EACzC,EAAsB,GAAI,KACrB,EAAI,EAAG,EAAI,EAAY,OAAQ,IAAK,CAC3C,GAAI,GAAoB,EAAY,GAKpC,GAJA,EAAoB,IAAI,EAAkB,QAAS,CAAiB,EAIhE,EAAI,EAEN,OADI,GAAwB,EAAY,EAAI,GAAG,QACxC,GAAuB,CAC5B,GAAI,EAAsB,SAAS,EAAkB,OAAO,EAAG,CAC7D,EAAsB,sBAAsB,EAAkB,QAAS,GAAmB,EAAoB,IAAI,CAAqB,EAAE,QAAS,EAAkB,OAAO,CAAC,EAC5K,EAAkB,QAAQ,iBAAiB,CAAqB,EAChE,KACF,CACA,EAAwB,EAAsB,iBAAiB,CACjE,CAEF,EAAkB,QAAQ,WAAW,EAAkB,OAAO,CAChE,CACF,CACF,CAAC,CACH,CACA,WAAiC,EAAM,CACrC,AAAI,GACF,EAAuB,CAAI,EAE7B,GAAI,GAAY,GAA2B,CAAoB,EAC7D,EACF,GAAI,CACF,GAAI,GAAQ,UAAiB,CAC3B,GAAI,GAAO,EAAM,MAEjB,GADA,EAAK,QAAU,EACX,CAAC,EACH,MAAI,GAAK,cAAgB,EAAK,aAAa,YACzC,GAAK,aAAa,WAAW,YAAY,EAAK,YAAY,EAC1D,EAAK,aAAe,MAElB,EAAK,UACP,GAAK,UAAU,YAAY,CACzB,QAAS,EACT,UAAW,EAAK,aAClB,CAAC,EACD,EAAK,SAAW,MAEX,EAET,WAAkB,EAAW,CAC3B,GAAI,CAAC,GAAa,CAAC,EAAU,MAAM,EAAG,CACpC,AAAI,EAAK,cAAgB,EAAK,aAAa,YACzC,GAAK,aAAa,WAAW,YAAY,EAAK,YAAY,EAC1D,EAAK,aAAe,MAEtB,EAAK,gBAAgB,EAAK,aAAa,EACvC,MACF,KACE,GAAK,aAAa,EAAK,cAAe,EAAK,EAAE,EAK/C,GAAI,EAAK,YAAY,IAAM,EAAU,YAAY,EAAG,CAClD,GAAI,GAAM,EAAU,aAAa,IAAI,EACrC,AAAI,EACF,EAAK,aAAa,EAAK,cAAe,CAAG,EAEzC,EAAU,MAAM,EAAK,EAAE,EAEzB,MACF,CACA,GAAI,GAAmB,EAAK,YAAY,EACpC,EAA6B,GAAuC,IAAI,CAAgB,EAC5F,AAAK,GACH,GAA6B,GAAI,KACjC,GAAuC,IAAI,EAAkB,CAA0B,GAEzF,EAA2B,IAAI,CAAI,EACnC,GAAU,UAAY,CACpB,GAAI,GAAmB,EAAU,YAAY,EACzC,EAA8B,MAAM,KAAK,CAA0B,EAAE,OAAO,SAAU,EAAG,CAC3F,MAAO,GAAE,UAAU,MAAM,GAAK,EAAE,UAAU,YAAY,IAAM,CAC9D,CAAC,EACG,EAA+B,GAA2C,IAAI,CAAgB,EAClG,AAAK,GACH,GAA+B,GAAI,KACnC,GAA2C,IAAI,EAAkB,CAA4B,GAE/F,EAA6B,IAAI,CAAI,EACjC,EAA6B,OAAS,EAA4B,QACpE,IAA2B,CAA4B,EACvD,GAAuC,OAAO,CAAgB,EAC9D,GAA2C,OAAO,CAAgB,EAEtE,CAAC,CACH,CAIA,EAAK,SAAW,EAChB,EAAK,UAAU,UAAU,CACvB,QAAS,EACT,UAAW,EAAK,aAClB,EAAG,CAAQ,CACb,EACA,IAAK,EAAU,EAAE,EAAG,CAAE,GAAQ,EAAU,EAAE,GAAG,MAC3C,AAAI,EAAM,CAEd,OAAS,EAAP,CACA,EAAU,EAAE,CAAG,CACjB,QAAE,CACA,EAAU,EAAE,CACd,CACF,CACA,WAAsB,EAAO,CAC3B,OAAS,GAAI,EAAG,EAAI,EAAqB,OAAQ,IAAK,CACpD,GAAI,GAAO,EAAqB,GAChC,EAAK,MAAQ,CACf,CACF,CACA,MAAO,CACL,wBAAyB,EACzB,aAAc,EACd,YAAa,CAAC,CAAE,IAAW,EAAqB,OAClD,CACF,CACA,YAAoC,EAAwB,CA0C1D,OAvCI,GAAsB,GAAI,KAC1B,EAAkB,CAAC,EACnB,EAAc,MAAM,KAAK,CAAsB,EAC/C,EAAS,UAAkB,CAC7B,GAAI,GAAa,EAAY,GACzB,EAAW,EAAoB,IAAI,EAAW,SAAS,EAC3D,AAAK,GACH,GAAW,CACT,YAAa,CAAC,EACd,SAAU,CAAC,EACX,UAAW,EAAW,UACtB,gBAAiB,IACnB,EACA,EAAoB,IAAI,EAAW,UAAW,CAAQ,GAExD,EAAS,YAAY,KAAK,CAAU,EAEpC,OADI,GAAgB,EAAW,UAAU,iBAAiB,EACnD,GAAe,CACpB,GAAI,EAAY,KAAK,SAAU,EAAM,CACnC,MAAO,GAAK,YAAc,CAC5B,CAAC,EAAG,CACF,GAAI,GAAa,EAAoB,IAAI,CAAa,EACtD,AAAK,GACH,GAAa,CACX,YAAa,CAAC,EACd,SAAU,CAAC,EACX,UAAW,EACX,gBAAiB,IACnB,EACA,EAAoB,IAAI,EAAe,CAAU,GAEnD,EAAS,gBAAkB,EAC3B,EAAW,SAAS,KAAK,CAAU,EACnC,KACF,CACA,EAAgB,EAAc,iBAAiB,CACjD,CACA,AAAK,GAAe,EAAgB,KAAK,CAAU,CACrD,EACS,EAAI,EAAG,EAAI,EAAY,OAAQ,IACtC,EAAO,EAUT,OAFI,GAAS,GAAI,KACb,EAA2B,GAAI,KAC1B,EAAK,EAAG,EAAK,EAAgB,OAAQ,IAAM,CAClD,GAAI,GAAiB,EAAgB,GACjC,EAAyB,EAAO,IAAI,EAAe,SAAS,EAEhE,GADA,EAAe,QAAQ,aAAa,EAAe,cAAe,EAAyB,EAAuB,GAAK,EAAe,EAAE,EACpI,CAAC,EAAwB,CAC3B,EAAO,IAAI,EAAe,UAAW,CAAc,EACnD,GAAI,GAAQ,EAAe,UAAU,UAAU,EAAI,EACnD,EAAM,GAAK,EAAe,GAC1B,EAAM,aAAa,cAAe,EAAI,EACtC,GAAI,GAAY,SAAS,cAAc,KAAK,EAC5C,EAAU,MAAQ,uKAClB,EAAU,YAAY,CAAK,EACvB,EAAe,cAAgB,EAAe,aAAa,YAAY,EAAe,aAAa,WAAW,YAAY,EAAe,YAAY,EACzJ,EAAe,QAAQ,YAAY,EAAE,YAAY,CAAS,EAC1D,EAAe,aAAe,CAChC,CACA,GAAI,GAAW,GAAmB,EAAoB,IAAI,EAAe,SAAS,EAAE,QAAQ,EAE5F,IADA,EAAyB,IAAI,EAAe,UAAW,EAAE,EAClD,EAAS,QAAQ,CACtB,GAAI,GAAY,EAAS,MAAM,EAC3B,EAA0B,EAAO,IAAI,EAAU,SAAS,EACxD,EAAS,EAA0B,EAAwB,GAAK,EAAU,GAE9E,GADA,EAAU,QAAQ,aAAa,EAAU,cAAe,CAAM,EAC1D,CAAC,EAAyB,CAC5B,EAAO,IAAI,EAAU,UAAW,CAAS,EACzC,GAAI,GAAW,EAAoB,IAAI,EAAU,SAAS,EACtD,EAAa,CAAC,EACd,EAAgB,OAChB,EAAe,EAAU,UAC7B,EAAG,CACD,EAAgB,EAAa,iBAAiB,EAC9C,GAAI,GAAkB,EAAc,sBAAsB,CAAY,EACtE,EAAW,KAAK,CAAe,EAC/B,EAAe,CACjB,OAAS,IAAkB,EAAe,WAC1C,GAAI,GAAW,EAAW,QAAQ,EAAE,KAAK,KAAK,EAC1C,EAAO,EAAe,aAAa,cAAc,CAAQ,EAC7D,EAAK,GAAK,EACV,EAAW,EAAS,OAAO,EAAS,QAAQ,CAC9C,CACF,CACF,CACF,CACA,YAA4B,EAAQ,EAAO,CAGzC,OAFI,GAAO,CAAC,EACR,EAAK,EACF,IAAO,GAAQ,CAGpB,OAFI,GAAW,EACX,EAAU,EACP,GACL,AAAI,EAAQ,UAAY,EAAG,SAAS,IAAY,GAChD,EAAU,EAAQ,uBAEpB,EAAK,KAAK,GAAG,OAAO,EAAG,QAAQ,YAAY,EAAG,eAAe,EAAE,OAAO,EAAU,GAAG,CAAC,EACpF,EAAK,EAAG,UACV,CACA,MAAO,GAAK,QAAQ,EAAE,KAAK,KAAK,CAClC,ICpUA,gCAEA,OAAO,eAAe,GAAS,aAAc,CAC3C,MAAO,EACT,CAAC,EACD,GAAQ,QAAU,GAClB,GAAI,IAAS,GAAuB,IAAgB,EAChD,GAAa,GAAuB,IAAsB,EAC1D,GAAa,KACb,GAAmB,GAAuB,IAA2B,EACzE,YAAgC,EAAG,CAAE,MAAO,IAAK,EAAE,WAAa,EAAI,CAAE,QAAS,CAAE,CAAG,CACpF,YAAiB,EAAG,CAA6B,MAAO,IAAU,AAAc,MAAO,SAArB,YAA+B,AAAY,MAAO,QAAO,UAA1B,SAAqC,SAAU,EAAG,CAAE,MAAO,OAAO,EAAG,EAAI,SAAU,EAAG,CAAE,MAAO,IAAK,AAAc,MAAO,SAArB,YAA+B,EAAE,cAAgB,QAAU,IAAM,OAAO,UAAY,SAAW,MAAO,EAAG,EAAG,GAAQ,CAAC,CAAG,CAC7T,YAAuB,EAAG,CAAE,OAAS,GAAI,EAAG,EAAI,UAAU,OAAQ,IAAK,CAAE,GAAI,GAAI,AAAQ,UAAU,IAAlB,KAAuB,OAAO,UAAU,EAAE,EAAI,CAAC,EAAG,EAAI,OAAO,KAAK,CAAC,EAAG,AAAc,MAAO,QAAO,uBAA5B,YAAqD,EAAE,KAAK,MAAM,EAAG,OAAO,sBAAsB,CAAC,EAAE,OAAO,SAAU,EAAG,CAAE,MAAO,QAAO,yBAAyB,EAAG,CAAC,EAAE,UAAY,CAAC,CAAC,EAAG,EAAE,QAAQ,SAAU,EAAG,CAAE,GAAgB,EAAG,EAAG,EAAE,EAAE,CAAG,CAAC,CAAG,CAAE,MAAO,EAAG,CACtZ,YAAyB,EAAG,EAAG,EAAG,CAAE,MAAQ,GAAI,GAAe,CAAC,IAAM,GAAI,OAAO,eAAe,EAAG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAG,CAAC,EAAI,EAAE,GAAK,EAAG,CAAG,CACnL,YAAwB,EAAG,CAAE,GAAI,GAAI,GAAa,EAAG,QAAQ,EAAG,MAAO,AAAY,IAAQ,CAAC,GAArB,SAAyB,EAAI,EAAI,EAAI,CAC5G,YAAsB,EAAG,EAAG,CAAE,GAAI,AAAY,GAAQ,CAAC,GAArB,UAA0B,CAAC,EAAG,MAAO,GAAG,GAAI,GAAI,EAAE,OAAO,aAAc,GAAI,AAAW,IAAX,OAAc,CAAE,GAAI,GAAI,EAAE,KAAK,EAAG,GAAK,SAAS,EAAG,GAAI,AAAY,GAAQ,CAAC,GAArB,SAAwB,MAAO,GAAG,KAAM,IAAI,WAAU,8CAA8C,CAAG,CAAE,MAAQ,CAAa,IAAb,SAAiB,OAAS,QAAQ,CAAC,CAAG,CAC3T,YAAuB,EAAM,CAC3B,GAAI,GAAQ,UAAU,OAAS,GAAK,UAAU,KAAO,OAAY,UAAU,GAAK,CAAC,EACjF,WAA4B,EAAM,CAChC,MAAO,OAAO,IAAS,UAAY,EAAK,QAAQ,GAAG,IAAM,EAC3D,CACA,WAAqB,EAAM,CACzB,MAAO,IAAW,WAAW,QAAQ,CAAI,IAAM,IAAM,EAAK,WAAW,OAAO,GAAK,EAAK,WAAW,OAAO,CAC1G,CACA,WAAyB,EAAM,CAC7B,MAAO,IAAW,gBAAgB,QAAQ,CAAI,IAAM,EACtD,CAKA,OAJI,GAAmB,AA3BzB,GA2B4B,GAAiB,SAAS,EAAM,CAAK,EAC7D,EAA0B,EAAgB,wBAC1C,EAAe,EAAgB,aAC/B,EAAc,EAAgB,YACvB,EAAO,UAAU,OAAQ,EAAW,GAAI,OAAM,EAAO,EAAI,EAAO,EAAI,CAAC,EAAG,EAAO,EAAG,EAAO,EAAM,IACtG,EAAS,EAAO,GAAK,UAAU,GAEjC,GAAI,GAAS,CAAC,CAAC,OAAO,KAAK,CAAK,EAAE,QAAU,EAAmB,CAAI,EAAG,CACpE,GAAI,GAAc,EAAM,KAAO,MAAO,GAAM,KAAQ,YAAc,EAAM,IACpE,EAAa,CAAC,EACd,EAAa,CAAC,EAClB,OAAS,KAAS,GAChB,AAAI,EAAY,CAAK,EAAG,EAAW,GAAS,EAAM,GAAY,EAAY,AAvChF,GAuCmF,GAAW,SAAS,CAAK,GAAK,EAAM,GAC7G,EAAgB,CAAK,GAAG,GAAW,GAAS,EAAM,IAExD,GAAM,OAAO,KAAK,CAAU,EAAE,OAAQ,CACpC,GAAI,GAAQ,GAAO,QAAQ,cAAc,MAAM,GAAO,QAAS,CAAC,EAAM,OAAO,OAAO,CAAC,EAAG,EAAY,CAClG,IAAK,SAAa,EAAM,CAEtB,AADA,EAAwB,CAAI,EACxB,AAAC,GACL,IAAe,EAAY,CAAI,EAC/B,OAAO,OAAO,EAAM,CAAU,EAChC,CACF,CAAC,CAAC,EAAE,OAAO,CAAQ,CAAC,EACpB,SAAa,CAAK,EACX,CACT,CACF,CACA,GAAI,EAAa,CACf,GAAI,GAAS,GAAO,QAAQ,cAAc,MAAM,GAAO,QAAS,CAAC,EAAM,GAAc,CAAC,EAAG,EAAO,CAC9F,IAAK,SAAa,EAAM,CACtB,EAAwB,CAAI,EACxB,GAAS,EAAM,KACjB,EAAM,IAAI,CAAI,CAElB,CACF,CAAC,CAAC,EAAE,OAAO,CAAQ,CAAC,EACpB,SAAa,CAAM,EACZ,CACT,KACE,OAAO,IAAO,QAAQ,cAAc,MAAM,GAAO,QAAS,CAAC,EAAM,CAAK,EAAE,OAAO,CAAQ,CAAC,CAE5F,ICrEA,ICAA,kFCAA,kFCAA,IAAO,GAAM,IAAoB,oBAEjC,YAAkB,CAAC,kBAAiB,SAAQ,CAC3C,GAAI,GAAQ,aAAa,QAAQ,CAAe,EAChD,MAAI,IAAS,MAAO,IAAU,UAAU,GAAQ,KAAK,MAAM,CAAK,GAEzD,CACR,CAEA,YAA2B,CAAC,OAAM,OAAM,CACvC,MAAO,GAAG,EAAK,WAAW,GAC3B,CAEe,YAAoC,CAClD,MACA,WACA,cACA,QACA,cACE,CACF,GAAI,GACE,EAAY,GAAY,EACxB,EAAe,GAAe,eAC9B,EAAY,aAAa,KAAgB,IAE/C,MAAO,CACN,KAAM,EACN,gBAAgB,CAAC,OAAM,cAAa,CACnC,SAAmB,IAAc,IAAmB,CAAC,MAAK,OAAM,YAAU,CAAC,EAEpE,CACN,CAAC,GAAY,GAAS,CAAC,kBAAiB,OAAK,CAAC,CAC/C,CACD,EACA,eAAgB,CACf,CAAC,IAAmB,CACnB,OAAQ,CACP,QAAS,CAAC,UAEX,eACE,CACF,GAAI,GAAoB,EACxB,AAAI,GAAS,MAAO,IAAU,UAAU,GAAoB,KAAK,UAAU,CAAK,GAEhF,aAAa,QAAQ,EAAiB,CAAiB,EACvD,EAAY,CAAC,KAAM,EAAW,QAAO,UAAW,KAAK,CAAC,CACvD,CACD,CACD,CACD,CFxCA,AAAI,MAAO,QAAW,KACrB,QAAO,kDAAoD,IGV5D,kFCAA,kFCAA,IAAO,GAAM,IAAe,qCACf,GAAmB,yCACnB,GAAoB,0CCFjC,ICAA,i8CCAA,OAAM,IAAY,QAAQ,QAAQ,EAAE,KAAK,KAAK,QAAQ,QAAQ,CAAC,EACxD,GAAQ,GCDf,IAAO,GAAM,IAAY,OAAO,eAAe,EAClC,GAAyB,OAAO,4BAA4B,EAC5D,GAAiC,OAAO,oCAAoC,ECFzF,IAAO,GAAM,IAAa,CACzB,uBAAwB,gCACzB,EAGa,GAAc,CAC1B,oBAAqB,8BACrB,uBAAwB,iCACxB,uBAAwB,iCACxB,2BAA4B,qCAC5B,mBAAoB,6BACpB,oBAAqB,8BACrB,oCAAqC,8CACrC,2BAA4B,qCAC5B,yBAA0B,mCAC1B,wBAAyB,kCACzB,4BAA6B,sCAC7B,uBAAwB,GAAW,uBACnC,sBAAuB,+BACxB,EAEa,EAAY,CACxB,OAAQ,0BACR,MAAO,yBACP,cAAe,iCACf,YAAa,+BACb,UAAW,6BACX,SAAU,4BACV,SAAU,4BACV,gBAAiB,mCACjB,KAAM,uBACP,EAEa,GAAyB,eACzB,GAAmB,SACnB,GAAc,QACd,GAAoB,OAAO,qCAAqC,EAEhE,GAA6B,CACzC,oBAAqB,mBACrB,iBAAkB,gBAClB,iBAAkB,gBAClB,oBAAqB,kBACtB,EAEa,GAAoB,OAAO,uBAAuB,EAClD,GAA8B,OAAO,iCAAiC,EACtE,GAA6C,OACzD,gDACD,EAGa,GAAc,OAAO,iBAAiB,EACtC,GAAmB,EACnB,GAAkC,eAClC,GAAoB,kBACpB,GAAiC,aACjC,GAA6B,UAC7B,GAAkB,IAWlB,GAAqC,gCACrC,GAAgC,4BAChC,GAA2B,kBAC3B,GAAsB,iBAQtB,GAAmC,8BACnC,GAA2B,qBCjFxC,ICAA,ICAA,OAAM,IAAQ,QACR,GAAO,OACP,GAAO,OACP,GAAQ,QACR,GAAQ,QACR,GAAO,OAEA,GAAW,CAAC,GAAO,GAAM,GAAM,GAAO,GAAO,EAAI,EACjD,GAAc,CAC1B,SACA,QACA,QACA,SACA,SACA,OACD,ECfA,IAAe,YAA0B,CACxC,OACA,QAAS,EACT,cACA,QACA,QACA,OACA,SACA,SACA,UACA,WACE,CACF,GAAM,GAAW,GAAc,CAAC,EAC1B,CACL,UAAU,KACV,QAAQ,KACR,qDAAqD,KACrD,mBAAmB,MAChB,EAEE,EAAa,CAClB,cAAe,GAAoB,EACnC,YAAa,GAAgB,EAC7B,kBAAmB,EACnB,QACA,QACA,OACA,SACA,SACA,UACA,kBACD,EAEA,SAAW,WAAa,GAAc,EAAY,CAAO,EAClD,CACR,CAEA,GAAM,IAAgB,CAAC,EAAY,IAAY,CAC9C,GAAM,CAAC,gBAAe,cAAa,OAAM,QAAO,UAAS,SAAQ,UAAU,EACrE,EAAe,EAClB,IAAI,EAAc,YAAY,KAAK,EAAc,iBAAiB,KAAiB,OACnF,GAEC,EAAe,GACnB,MAAI,IAAgB,EACnB,EAAe,iBAAiB,kBAA6B,OACzD,AAAI,EAAc,EAAe,iBAAiB,MAC9C,GAAQ,GAAe,cAAc,QAEvC,GAAG,KAAU,IAAe,IAAU,EAAQ;AAAA,EAAK,EAAM,QAAU,KACzE,EAAO;AAAA,iBAAoB,IAAS;AAAA,EAAK,KAE3C,ECpDA,ICAA,wLCAA,ICAA,+gBCAA,IAWe,YAAmB,EAAK,CACtC,MAAI,OAAO,IAAQ,SAAiB,GAE7B,EACL,KAAK,EACL,QAAQ,qBAAsB,KAAK,EACnC,QAAQ,UAAW,GAAG,EACtB,YAAY,CACf,CCnBA,IAae,YAAmB,EAAK,CACtC,MAAO,IAAU,CAAG,EAClB,QAAQ,SAAU,GAAG,EACrB,QAAQ,WAAY,EAAE,EACtB,QAAQ,QAAS,GAAM,EAAG,YAAY,CAAC,EACvC,QAAQ,KAAM,EAAE,CACnB,CCnBA,IAMe,YAAkB,EAAO,CACvC,MAAI,IAAU,KAAoC,GAE3C,EAAM,SAAS,CACvB,CCVA,IAWe,YAAiB,EAAK,CACpC,MAAI,OAAO,IAAQ,SAAiB,GAE7B,EAAI,YAAY,CACxB,CCfA,IAWe,YAAiB,EAAK,CACpC,MAAI,OAAO,IAAQ,SAAiB,GAE7B,EAAI,YAAY,CACxB,CCfA,OAAI,IAAa,GACb,GAAQ,CAAC,EACb,YAAoB,EAAa,EAAK,CACrC,GAAI,GAAO,GAAM,GAEjB,AAAK,GACJ,GAAO,CAAC,MAAO,EAAG,KAAM,EAAG,KAAM,CAAC,EAClC,GAAM,GAAe,GAGtB,EAAK,OAAS,EACd,AAAI,EAAK,EAAK,MAAQ,EACjB,EAAK,MAAQ,CACnB,CAmBe,YAAiB,EAAM,EAAgB,EAAS,CAC9D,GAAI,GAAM,EACN,EACA,EAAW,GACf,AAAI,IAAY,QAAa,MAAO,IAAmB,SACtD,GAAM,EAAe,eACrB,EAAc,EAAe,YAC7B,EAAW,EAAe,UAChB,MAAO,IAAY,UAC7B,GAAM,GAAkB,EAAQ,eAChC,EAAc,EAAQ,YACtB,EAAW,EAAQ,UAGpB,GAAM,GAAW,YAAa,EAAM,CACnC,GAAM,GAAM,EAAM,EAAI,MAAM,KAAM,CAAI,EAAI,EAAK,GACzC,CAAC,SAAS,EAEhB,GAAI,EAAM,IAAI,CAAG,EAAG,CACnB,AAAI,IAAY,GAAW,EAAa,EAAI,EAE5C,GAAM,GAAS,EAAM,IAAI,CAAG,EAC5B,MAAO,GAAW,GAAW,CAAM,EAAI,CACxC,CAEA,AAAI,IAAY,GAAW,EAAa,EAAK,EAE7C,GAAM,GAAS,EAAK,MAAM,KAAM,CAAI,EAC9B,EAAa,EAAW,GAAW,CAAM,EAAI,EACnD,SAAS,MAAQ,EAAM,IAAI,EAAK,CAAU,GAAK,EAExC,CACR,EACA,SAAS,MAAQ,GAAK,IAAQ,OAAS,KAChC,CACR,CAEA,GAAQ,MAAQ,IAEhB,GAAQ,aAAe,SAAsB,EAAQ,GAAM,CAC1D,GAAa,CACd,EAEA,GAAQ,WAAa,UAAsB,CAC1C,GAAQ,CAAC,CACV,EAEA,GAAQ,SAAW,UAAoB,CACtC,MAAO,QAAO,KAAK,EAAK,EAAE,OAAO,CAAC,EAAK,IAAY,CAClD,GAAM,CAAC,OAAM,SAAS,GAAM,GACtB,EAAO,CACZ,GAAG,GAAM,GACT,MAAO,EAAQ,GAAK,GAAO,EAAS,KAAK,QAAQ,CAAC,KAAO,SAC1D,EACA,MAAO,CACN,GAAG,EACH,CAAC,GAAU,CACZ,CACD,EAAG,CAAC,CAAC,CACN,EAEA,YAAoB,EAAO,CAC1B,MAAK,IACE,CACN,SACC,EAAM,WAAa,OAAY,EAAM,SAAS,IAAI,GAAS,GAAW,CAAK,CAAC,EAAI,OACjF,KAAM,EAAM,KACZ,IAAK,OACL,IAAK,EAAM,IACX,IAAK,EAAM,IACX,KAAM,EAAM,IACb,CACD,CCxGA,IAYe,YAAiB,EAAQ,EAAW,CAClD,GAAI,CAAC,EAAQ,OAEb,GAAM,GAAS,OAAO,QAAQ,CAAM,EAAE,KAAK,CAAC,CAAC,EAAK,KAAW,EAAU,EAAO,CAAG,CAAC,EAClF,GAAI,EAAQ,CACX,GAAM,CAAC,GAAO,EACd,MAAO,EACR,CACD,CCpBA,ICAA,IASA,GAAM,IAAoB,GACzB,SAAmB,EAAM,CAExB,GAAI,MAAO,IAAS,SAAU,MAAO,CAAC,CAAI,EAE1C,GAAI,MAAO,IAAS,UAAY,CAAC,MAAM,QAAQ,CAAI,EAAG,MAAO,CAAC,EAE9D,GAAI,MAAM,QAAQ,CAAI,EAAG,MAAO,GAEhC,GAAM,GAAO,EAAK,MAAM,GAAG,EAE3B,OAAS,GAAI,EAAG,EAAI,EAAK,OAAQ,IAAK,CACrC,GAAM,GAAO,EAAK,GACZ,CAAC,OAAQ,GAAc,EAC7B,GAAI,EAAK,OAAO,EAAa,CAAC,IAAM,IAAK,CACxC,GAAM,GAAQ,CAAC,EACX,EAAO,IACP,EAAqB,EAAK,QAAQ,CAAI,EACpC,EAAM,EAAK,UAAU,EAAG,CAAkB,EAMhD,IAJI,GAEH,EAAM,KAAK,CAAG,EAER,EAAqB,GAAY,CACvC,GAAI,IAAS,KAAO,IAAS,IAAK,CACjC,GAAM,GAAmB,EAAK,QAAQ,IAAK,CAAkB,EACzD,EAAY,EAAK,UAAU,EAAoB,CAAgB,EAGnE,AACC,EAAU,OAAO,CAAC,IAAM,EAAU,OAAO,EAAU,OAAS,CAAC,GAC7D,CAAC,IAAK,GAAG,EAAE,SAAS,EAAU,OAAO,CAAC,CAAC,GAEvC,GAAY,EAAU,MAAM,EAAG,EAAE,GAElC,EAAM,KAAK,CAAS,EACpB,EAAqB,CACtB,KACC,IAAsB,EAGvB,EAAO,EAAK,OAAO,CAAkB,CACtC,CAEA,GAAM,CAAC,OAAQ,GAAe,EAC9B,AAAI,GACH,GAAK,OAAO,EAAG,EAAG,GAAG,CAAK,EAC1B,GAAK,EAAc,EAErB,CACD,CAEA,MAAO,EACR,EACA,KACA,CAAC,YAAa,WAAW,CAC1B,EDjDe,WAAa,EAAQ,EAAM,EAAc,CACvD,GAAI,CAAC,GAAU,CAAC,EAAM,MAAO,GAE7B,GAAM,GAAQ,GAAU,CAAI,EACxB,EAAO,EACL,CAAC,OAAQ,GAAc,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAY,IAAK,CACpC,GAAI,CAAC,GAAQ,CAAC,OAAO,UAAU,eAAe,KAAK,EAAM,EAAM,EAAE,EAAG,MAAO,GAC3E,EAAO,EAAK,EAAM,GACnB,CAEA,MAAO,KAAS,OAAY,EAAO,CACpC,CE7BA,IAiBe,YAAa,EAAQ,EAAM,EAAO,CAChD,GAAI,CAAC,GAAU,CAAC,EAAM,OAEtB,GAAM,GAAQ,GAAU,CAAI,EAExB,EAAO,EACP,EACE,CAAC,OAAQ,GAAc,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAY,IAAK,CACpC,GAAM,GAAY,EAAI,IAAM,EACtB,EAAO,EAAM,GAEnB,GADA,EAAO,EAAK,GACR,CAAC,EAAM,CACV,GAAM,GAAW,EAAM,EAAI,GACrB,EAAQ,OAAO,SAAS,CAAQ,EACtC,EAAO,EAAK,GAAQ,GAAS,GAAY,CAAC,OAAO,MAAM,CAAK,EAAI,CAAC,EAAI,CAAC,CACvE,CACA,AAAI,GAAW,GAAK,GAAQ,GAE5B,EAAO,CACR,CACD,CCtCA,IAYe,YAAc,EAAQ,EAAM,CAC1C,GAAM,GAAS,CAAC,EAChB,GAAI,CAAC,GAAQ,CAAC,EAAK,QAAU,CAAC,EAAQ,MAAO,CAAC,EAE9C,GAAM,GAAQ,MAAO,IAAS,SAAW,CAAC,CAAI,EAAI,EAC5C,CAAC,OAAQ,GAAc,EAC7B,OAAS,GAAI,EAAG,EAAI,EAAY,IAAK,CACpC,GAAM,GAAM,EAAM,GAClB,AAAI,EAAO,eAAe,CAAG,GAAG,GAAO,GAAO,EAAO,GACtD,CAEA,MAAO,EACR,CCxBA,IAYe,YAAc,EAAQ,EAAM,CAC1C,GAAI,CAAC,GAAQ,CAAC,EAAK,QAAU,CAAC,EAAQ,MAAO,GAE7C,GAAM,GAAS,CAAC,EACV,EAAQ,MAAO,IAAS,SAAW,CAAC,CAAI,EAAI,EAC5C,CAAC,OAAQ,GAAc,EAC7B,OAAW,KAAO,GAAQ,CACzB,GAAI,GAAa,GACjB,OAAS,GAAI,EAAG,EAAI,EAAY,IAC/B,AAAI,IAAQ,EAAM,IAAI,GAAa,IAGpC,AAAK,GAAY,GAAO,GAAO,EAAO,GACvC,CAEA,MAAO,EACR,CC5BA,IAgBe,YAAgB,EAAQ,CACtC,GAAM,GAAS,CAAC,EAChB,GAAI,CAAC,EAAQ,MAAO,GAEpB,GAAM,GAAU,OAAO,QAAQ,CAAM,EAC/B,CAAC,OAAQ,GAAiB,EAChC,OAAS,GAAI,EAAG,EAAI,EAAe,IAAK,EAAO,KAAK,EAAQ,GAAG,EAAE,EAEjE,MAAO,EACR,CCzBA,IASe,aAAgB,CAE/B,CCXA,gBAAsB,EAAQ,EAAQ,EAAS,CAC9C,GAAM,CAAC,OAAQ,GAAgB,EACzB,CAAC,OAAQ,GAAgB,EAE/B,GAAI,IAAiB,EAAc,MAAO,GAE1C,OAAS,GAAI,EAAG,EAAI,EAAc,IACjC,GAAI,CAAC,GAAQ,EAAO,GAAI,EAAO,GAAI,CAAO,EAAG,MAAO,GAGrD,MAAO,EACR,CAEA,YAAuB,EAAQ,EAAQ,EAAS,CAC/C,GAAK,CAAC,GAAU,GAAY,GAAU,CAAC,EAAS,MAAO,GAEvD,GAAM,GAAa,OAAO,KAAK,CAAM,EAC/B,EAAa,OAAO,KAAK,CAAM,EAC/B,CAAC,OAAQ,GAAmB,EAC5B,CAAC,OAAQ,GAAmB,EAElC,MAAI,KAAoB,EAAwB,GAEzC,EAAW,MAAM,GAAO,GAAQ,EAAO,GAAM,EAAO,GAAM,CAAO,CAAC,CAC1E,CAEA,YAA0B,EAAQ,EAAQ,EAAS,CAClD,GAAM,CAAC,UAAU,IAAQ,EACnB,EAAY,OAAO,UAAU,SAAS,KAAK,CAAM,EACjD,EAAY,OAAO,UAAU,SAAS,KAAK,CAAM,EAEvD,GAAI,IAAc,EAAW,MAAO,GAEpC,OAAQ,OACF,uBACA,sBACA,gBACJ,MAAO,IAAG,CAAC,EAAQ,CAAC,CAAM,MAEtB,eACJ,MAAO,IAAa,CAAC,GAAG,CAAM,EAAG,CAAC,GAAG,CAAM,EAAG,CAAO,MAEjD,eACJ,MAAO,IAAc,OAAO,YAAY,CAAM,EAAG,OAAO,YAAY,CAAM,EAAG,CAAO,MAEhF,kBACJ,MAAO,GAAG,KAAa,GAAG,QAEtB,kBACJ,MAAI,CAAC,GAAW,EAAO,cAAgB,OAAe,IAAW,EAC1D,GAAc,EAAQ,EAAQ,CAAO,EAE/C,CAEO,GAAM,IAAK,SAAU,EAAQ,EAAQ,CAW3C,MAAO,KAAW,GAAW,IAAW,GAAU,IAAW,CAC9D,EAoBe,YAAiB,EAAQ,EAAQ,EAAU,CAAC,EAAG,CAC7D,GAAI,IAAW,EAAQ,MAAO,GAE9B,GAAI,MAAM,QAAQ,CAAM,GAAK,MAAM,QAAQ,CAAM,EAAG,MAAO,IAAa,EAAQ,EAAQ,CAAO,EAE/F,GAAM,GAAS,GAAiB,EAAQ,EAAQ,CAAO,EACvD,MAAI,KAAW,OAAkB,EAE7B,MAAO,IAAW,UAAY,MAAO,IAAW,SAC5C,GAAc,EAAQ,EAAQ,CAAO,EAEtC,MAAO,IAAW,YAAc,MAAO,IAAW,YAAc,IAAW,CACnF,CClGA,IAsBA,YAAyB,EAAQ,EAAQ,EAAU,CAAC,EAAG,CAEtD,GADI,CAAC,GAAU,CAAC,GACZ,MAAO,IAAW,UAAY,MAAO,IAAW,SAAU,MAAO,GACrE,OAAS,KAAO,GAEf,GADI,EAAO,eAAe,CAAG,GAAK,CAAC,EAAO,eAAe,CAAG,GACxD,EAAO,eAAe,CAAG,GAAK,CAAC,GAAiB,EAAO,GAAM,EAAO,GAAM,CAAO,EACpF,MAAO,GAET,MAAO,EACR,CAqBA,YAAwB,EAAQ,EAAQ,EAAS,CAChD,GAAM,CAAC,OAAQ,GAAgB,EACzB,CAAC,OAAQ,GAAgB,EAE/B,GAAI,IAAiB,EAAc,MAAO,GAE1C,OAAS,GAAI,EAAG,EAAI,EAAc,IACjC,GAAI,CAAC,GAAiB,EAAO,GAAI,EAAO,GAAI,CAAO,EAAG,MAAO,GAG9D,MAAO,EACR,CAqBe,YAA0B,EAAQ,EAAQ,EAAU,CAAC,EAAG,CACtE,GAAI,IAAW,EAAQ,MAAO,GAC9B,GAAI,MAAM,QAAQ,CAAM,GAAK,MAAM,QAAQ,CAAM,EAChD,MAAO,IAAe,EAAQ,EAAQ,CAAO,EAC9C,GAAM,GAAS,GAAmB,EAAQ,EAAQ,CAAO,EACzD,MAAI,KAAW,OAAkB,EAE7B,MAAO,IAAW,UAAY,MAAO,IAAW,SAC5C,GAAgB,EAAQ,EAAQ,CAAO,EAExC,MAAO,IAAW,YAAc,MAAO,IAAW,YAAc,IAAW,CACnF,CAsBA,YAA4B,EAAQ,EAAQ,EAAS,CACpD,GAAM,CAAC,UAAU,IAAQ,EACnB,EAAY,OAAO,UAAU,SAAS,KAAK,CAAM,EACjD,EAAY,OAAO,UAAU,SAAS,KAAK,CAAM,EAEvD,GAAI,IAAc,EAAW,MAAO,GAEpC,OAAQ,OACF,uBACA,sBACA,gBACJ,MAAO,IAAG,CAAC,EAAQ,CAAC,CAAM,MAEtB,eACJ,MAAO,IAAe,CAAC,GAAG,CAAM,EAAG,CAAC,GAAG,CAAM,EAAG,CAAO,MAEnD,eACJ,MAAO,IAAgB,OAAO,YAAY,CAAM,EAAG,OAAO,YAAY,CAAM,EAAG,CAAO,MAElF,kBACJ,MAAO,GAAG,KAAa,GAAG,QAEtB,kBACJ,MAAI,CAAC,GAAW,EAAO,cAAgB,OAAe,IAAW,EAC1D,GAAgB,EAAQ,EAAQ,CAAO,EAEjD,CC/IA,IAce,YAAuB,EAAO,CAC5C,MACC,CAAC,CAAC,GACF,MAAO,IAAU,UACjB,OAAO,UAAU,SAAS,KAAK,CAAK,IAAM,iBAE5C,CCpBA,IAKe,YAAiB,EAAO,CACtC,MAAI,IAAS,KAAa,GACtB,MAAO,IAAU,UAAY,MAAM,QAAQ,CAAK,EAAU,EAAM,SAAW,EAE3E,YAAiB,MAAO,YAAiB,KAAY,EAAM,OAAS,EAEpE,MAAO,IAAU,SAAiB,OAAO,KAAK,CAAK,EAAE,SAAW,EAE7D,EACR,CCdA,ICAA,OAAM,IAAuB,GAAS,IAAU,IAAQ,IAAU,OAE3D,GAAQ,IAAG,CAFlB,cAGC,gBAAS,QACT,CAAC,GACA,iCAAQ,aAAR,cAAoB,WAApB,cAA+B,kDAChC,GACA,CAAC,GACA,oCAAQ,aAAR,cAAoB,OAApB,cAA0B,WAA1B,cAAqC,kDACtC,GCTD,OAAM,IAAW,GAAM,CACtB,GAAM,GAAU,GAAI,gBACpB,EAAQ,MAAM,UAAY,IAAM,EAAG,EACnC,EAAQ,MAAM,YAAY,IAAI,CAC/B,EACO,GAAQ,GCLf,IACA,GAAI,IAAe,CAAC,EACd,GAAyB,UAExB,aAA6B,CACnC,GAAe,CAAC,CACjB,CAEO,YAAqB,EAAS,EAAW,EAAG,EAAuB,CACzE,GAAM,GAAgB,GAAgD,GACtE,AAAK,EAAQ,IAAgB,GAAQ,GAAiB,CAAC,GAEvD,EAAQ,GAAe,KAAK,CAAQ,CACrC,CAEO,aAA2B,CACjC,MAAO,GACR,CAEO,YAAwB,EAAU,CACxC,GAAY,GAAc,CAAQ,CACnC,CHjBe,YAAe,EAAI,EAAW,EAAG,CAC/C,UAAe,CAAQ,EAChB,GAAY,EAAI,GAAS,CAAE,EAAI,WAAW,EAAI,CAAQ,CAC9D,CIPA,ICAA,IAEO,YAAsC,EAAU,CACtD,GAAM,UAA+C,CACpD,GAAM,GAAQ,KAAK,IAAI,EACjB,EAAU,IAChB,EAAS,CACR,WAAY,GACZ,eAAgB,CACf,MAAO,MAAK,IAAI,EAAG,EAAW,MAAK,IAAI,EAAI,EAAM,CAClD,CACD,CAAC,CACF,CAAC,CACF,CAWA,GAAM,IAAsB,OAAO,qBAAuB,GAxB1D,SAwCM,GAAa,uCAAQ,YAAR,eAAmB,gBAAnB,eAAkC,SAAlC,eAA0C,KAAK,GAAK,EAAE,QAAU,YAxCnF,GAyCM,GAAW,4BAAQ,YAAa,gCAAQ,SAAR,eAAgB,UAEhD,GAAc,MAAO,mBAAsB,KAAe,eAAgB,mBAE1E,GACL,IAAgB,IAAc,GAAY,GAA+B,GAEnE,GAAQ,GD7CA,YAAkB,EAAI,CACpC,MAAO,IAAY,EAAI,GAA6B,CAAE,EAAI,GAAoB,CAAE,CACjF,CELA,IAGe,YAAa,EAAI,CAC/B,MAAO,IAAY,EAAI,GAAS,CAAE,EAAI,sBAAsB,CAAE,CAC/D,CCLA,IAKA,GAAM,IAAe,GAAuB,SAAY,CACvD,GAAM,GAAgB,KAAM,QAAO,yDAC7B,CAAC,iBAAiB,EAGxB,MAFe,GAAc,CAAmB,CAGjD,EAEO,GAAQ,GCbf,8sDAAO,GAAM,IAAU,UACV,GAAO,OACP,GAAM,cACN,GAAO,aACP,GAAmB,iBACnB,GAAgB,gBAChB,GAAe,eAKf,GAAS,QACT,GAAqB,uBACrB,GAAsB,wBACtB,GAA4B,oBAC5B,GAAwB,qBACxB,GAAsB,oBACtB,GAAuB,qBACvB,GAA6B,iBAC7B,GAAyB,sBACzB,GAA4B,0BAC5B,GACZ,2CACY,GAAuB,yBACvB,GAAwB,sBACxB,GAAoC,iCACpC,GAA6B,6BAC7B,GAAwB,sBACxB,GAAkB,iBAClB,GAAiB,gBACjB,GAAyB,uBACzB,GAAwB,sBACxB,GAAU,UACV,GAAgB,eAChB,GAA4B,0BAC5B,GAAgB,cAChB,GAAqC,mCACrC,GAAsB,oBACtB,GAAgC,gCAChC,GAAmB,kBACnB,GAAyB,uBACzB,GAAiC,8BACjC,GAA+B,4BAC/B,GACZ,0CACY,GAAqC,kCACrC,GAAkC,+BAClC,GAA8B,2BAC9B,GAAgC,6BAChC,GAAiC,8BACjC,GAAwC,qCACxC,GAA8B,2BAC9B,GAA2B,wBAC3B,GAAiC,6BACjC,GAAkC,8BAClC,GAAsC,iCACtC,GAAwB,sBACxB,GAAgC,6BAChC,GAA0B,wBAC1B,GAAsB,oBAEtB,GAAsB,OAAO,qBAAqB,EAElD,GAA+B,CAC3C,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EAEa,GAAiB,CAC7B,uDAAwD,GACxD,sDAAuD,GACvD,0DAA2D,GAC3D,oDAAqD,GACrD,oDAAqD,GACrD,mDAAoD,GACpD,uDAAwD,GACxD,iDAAkD,GAClD,0DAA2D,GAC3D,6DAA8D,GAC9D,8DAA+D,GAC/D,8EACC,GACD,mEACC,GACD,gEAAiE,GACjE,4DAA6D,GAC7D,+DAAgE,GAChE,wDAAyD,GACzD,+DAAgE,GAChE,qCAAsC,GACtC,2CAA4C,GAC5C,+CAAgD,GAChD,gDAAiD,GACjD,mDAAoD,GACpD,4CAA6C,GAC7C,wCAAyC,GACzC,+CAAgD,GAChD,0CAA2C,GAC3C,sCAAuC,GACvC,iCAAkC,GAClC,oCAAqC,GACrC,kCAAmC,EACpC,EC/IA,IAEA,GAAM,IAAiB,CAAC,EAAM,IAAW,CACxC,GAAI,CAAC,OAAO,wBAAyB,OACrC,GAAM,GAAQ,GAAI,aAAY,GAAc,CAC3C,SAAU,GACV,QAAS,GACT,OAAQ,CACP,OACA,GAAG,CACJ,CACD,CAAC,EACD,SAAS,cAAc,CAAK,CAC7B,EAEO,GAAQ,GCff,ICAA,IA8BO,GAAM,IAAY,CAAC,EAG1B,GAAU,IAAU,CAAC,EACrB,GAAU,IAAQ,IAA8B,IAChD,GAAU,IAAQ,IAAiC,IAGnD,GAAU,IAAuB,GACjC,GAAU,IAA6B,IACvC,GAAU,IAAsB,EAChC,GAAU,IAAwB,GAClC,GAAU,IAAuB,EACjC,GAAU,IAA8B,IAGxC,GAAU,IAAmB,GAC7B,GAAU,IAAkB,GAC5B,GAAU,IAA0B,IACpC,GAAU,IAAyB,IAGnC,GAAU,IAAoB,GAC9B,GAAU,IAAgD,GAE1D,GAAU,IAA0B,GAEpC,GAAU,IAAyC,GAEnD,GAAU,IAA+B,IACzC,GAAU,IAA4B,IAEtC,GAAU,IAAkC,IAC5C,GAAU,IAAmC,GAC7C,GAAU,IAAuC,GAEjD,GAAU,IAA6B,IACvC,GAAU,IAAyB,EAEnC,GAAU,IAAiC,IAC3C,GAAU,IAA2B,IACrC,GAAU,IAAuB,GCvEjC,IAuCO,GAAM,IAAa,CAAC,EAG3B,GAAW,IAAU,CAAC,EACtB,GAAW,IAAQ,IAA8B,IACjD,GAAW,IAAQ,IAAiC,IAGpD,GAAW,IAAuB,GAClC,GAAW,IAAsB,IACjC,GAAW,IAAwB,GACnC,GAAW,IAAuB,IAGlC,GAAW,IAAwB,GACnC,GAAW,IAAyB,GAGpC,GAAW,IAAW,GAGtB,GAAW,IAAoB,GAC/B,GAAW,IAAgD,GAC3D,GAAW,IAAsC,CAAC,EAQlD,GAAW,IAAiB,KAC5B,GAAW,IAAiB,KAC5B,GAAW,IAA6B,IACxC,GAAW,IAA0B,GACrC,GAAW,IAA6B,GAGxC,GAAW,IAAqC,GAGhD,GAAW,IAAyB,QAGpC,GAAW,IAAuB,GAGlC,GAAW,IAAmB,GAC9B,GAAW,IAAkB,KAC7B,GAAW,IAA0B,IACrC,GAAW,IAAyB,IAEpC,GAAW,IAAyC,GAEpD,GAAW,IAA+B,IAC1C,GAAW,IAA4B,IAEvC,GAAW,IAAkC,IAC7C,GAAW,IAAmC,GAC9C,GAAW,IAAuC,GAElD,GAAW,IAAyB,EAEpC,GAAW,IAAiC,IAC5C,GAAW,IAA2B,IACtC,GAAW,IAAuB,GCxGlC,IAqBO,GAAM,IAAa,CAAC,EAE3B,GAAW,IAA6B,IACxC,GAAW,IAA8B,IAGzC,GAAW,IAAiB,CAAC,MAAM,EACnC,GAAW,IAA0B,GAGrC,GAAW,IAAyB,QAGpC,GAAW,IAAmB,GAG9B,GAAW,IAAoB,GAE/B,GAAW,IAAyC,GAEpD,GAAW,IAA+B,IAC1C,GAAW,IAA4B,IAEvC,GAAW,IAAkC,IAC7C,GAAW,IAAmC,GAC9C,GAAW,IAAuC,GAElD,GAAW,IAA6B,IAExC,GAAW,IAAyB,EAEpC,GAAW,IAAiC,IAC5C,GAAW,IAA2B,IACtC,GAAW,IAAuB,GH5C3B,GAAM,IAAkB,IAAM,CACpC,GAAM,GAAmC,aACzC,MAAI,KAAc,GAAa,GAE3B,IAAc,GAAY,CAAC,GAAG,GAAY,GAAG,EAAS,EAEtD,IAAc,GAAa,CAAC,GAAG,GAAY,GAAG,EAAU,EAErD,CAAC,CACT,E9BTA,GAAM,IAAiB,CAAC,EAUlB,GAAsB,IAAM,CACjC,GAAM,GAAe,CAAC,EAEtB,MAAK,YAAW,KAEhB,GAA6B,QAAQ,GAAO,CAC3C,AAAI,WAAW,IAAkB,KAAS,QACzC,GAAa,GAAO,WAAW,IAAkB,GACnD,CAAC,EAEM,CACR,EAEM,GAAwB,IAAM,CAjCpC,QAkCC,GAAM,GAAa,CAAC,EAEpB,GAAI,CAAC,kBAAW,aAAX,cAAuB,OAAvB,QAA6B,UAAU,MAAO,GAEnD,GAAM,GAAc,OAAO,KAAK,EAAc,EAC9C,OAAW,KAAW,YAAW,WAAW,KAAK,SAChD,GAAI,EAAY,QAAQ,CAAO,EAAI,GAAI,CACtC,GAAM,GAAY,GAAe,GAC3B,EAAe,WAAW,WAAW,KAAK,SAAS,GACzD,AAAI,IAAiB,OAAQ,EAAW,GAAa,GAChD,AAAI,IAAiB,QAAS,EAAW,GAAa,GACtD,EAAW,GAAa,CAC9B,CAGD,MAAO,EACR,EAEM,GAAuB,CAAC,EAWjB,GAAY,IAAM,CAE9B,GAAM,GAAe,GAAoB,EACnC,EAAgB,GAAsB,EAK5C,MADkB,CAAC,GAHD,GAAgB,EAGD,GAAG,EAAe,GAAG,EAAc,GAAG,EAAc,CAEtF,EASa,GAAoB,CAAC,EAAM,IAAO,CAC9C,GAAM,GAAY,GAAqB,IAAU,IAAqB,GAAQ,GAAI,MAClF,SAAU,IAAI,CAAE,EACT,IAAM,EAAU,OAAO,CAAE,CACjC,EAOa,EAAgB,GAAQ,CACpC,GAAM,GAAa,EAAI,GAAgB,CAAI,EAC3C,GAAI,IAAe,OAAW,MAAO,GAErC,GAAM,GAAY,EAAI,GAAoB,EAAG,CAAI,EACjD,GAAI,IAAc,OAAW,MAAO,GAEpC,GAAM,GAAa,EAAI,GAAsB,EAAG,CAAI,EACpD,MAAI,KAAe,OAAkB,EAE9B,EAAI,GAAgB,EAAG,EAAM,MAAS,CAC9C,EAYa,GAAgB,CAAC,EAAM,IAAU,CAC7C,GAAI,EAAc,CAAI,IAAM,EAAO,OAEnC,GAAe,GAAe,CAAC,OAAM,QAAO,cAAe,EAAc,CAAI,CAAC,CAAC,EAC/E,GAAM,GAAS,GAAI,GAAgB,EAAM,CAAK,EACxC,EAAY,GAAqB,GACvC,MAAI,IAAW,EAAU,QAAQ,GAAM,EAAG,EAAM,CAAK,CAAC,EAE/C,CACR,EkC5HA,ICAA,IAQO,GAAM,IAAuB,GAAO,GAAc,GAAqB,CAAG,EAKpE,GAAuB,IAAM,EAAc,EAAmB,GAAK,GpCThF,WAAW,eAAiB,WAAW,gBAAkB,CAAC,EAC1D,WAAW,eAAe,UAAY,GACtC,WAAW,eAAe,cAAgB,EAC1C,WAAW,eAAe,cAAgB,GAC1C,WAAW,eAAe,kBAAoB,GAC9C,WAAW,eAAe,qBAAuB,GACjD,WAAW,eAAe,qBAAuB,GDRjD,GAAM,CAAC,mBAAiB,mBAAkB,EAEtC,GAAuB,EAAc,EAAe,EACpD,GAAsB,EAAc,EAAc,EAEhD,GAAW,CAAC,EAAM,IAAU,CACjC,OAAQ,OACF,IACJ,GAAuB,EACvB,UACI,IACJ,GAAsB,EACtB,MAEH,EAEA,GAAkB,GAAiB,EAAQ,EAC3C,GAAkB,GAAgB,EAAQ,EAE3B,YAAmB,EAAY,EAAS,CACtD,GAAM,CAAC,SAAQ,MAAO,GAAW,EACjC,GAAI,EAAQ,MAAO,GAEnB,GAAI,CAAC,GAAS,SAAS,CAAO,EAAG,MAAO,GAExC,GAAM,CAAC,oBAAoB,EAE3B,MAAI,KAAqB,IAAQ,IAAqB,GAAc,EAEhE,MAAM,QAAQ,CAAgB,EAAU,EAAiB,SAAS,CAAO,EAEzE,KAAwB,IAAQ,KAAwB,GAAc,GAEtE,MAAM,QAAQ,EAAmB,EAAU,GAAoB,SAAS,CAAO,EAE5E,CAAC,CAAC,EACV,CsCtCA,ICAA,OAAO,IAAQ,GAAI,KDEJ,YAAiB,EAAU,CACzC,GAAI,MAAO,IAAa,WAAY,CACnC,GAAM,GAAc,CAAC,WAAU,WAAY,CAAC,CAAC,EAC7C,UAAa,IAAI,CAAW,EACrB,IAAM,GAAa,OAAO,CAAW,CAC7C,CACD,CERA,IAIA,GAAM,CAAC,2BAA0B,EAC7B,GACA,GAAuB,EAAc,EAAsB,EAEzD,GAAW,CAAC,EAAM,IAAU,CACjC,AAAI,IAAS,IACZ,IAAuB,EAEzB,EAEA,GAAkB,GAAwB,EAAQ,EAElD,GAAM,IAAS,GAAc,CAC5B,OAAW,KAAY,IAAc,EAAS,WAAW,KAAK,CAAU,CACzE,EAEM,GAAoB,GAAY,CACrC,GAAM,CAAC,cAAc,EACrB,EAAS,SAAS,EAAW,OAAO,EAAG,EAAW,MAAM,CAAC,CAC1D,EAEe,YAA4B,EAAY,CACtD,GAAI,GAAa,KAAM,CACtB,GAAI,GAAc,GAClB,AAAI,GAAY,GAAO,CAAU,EACjC,aAAa,EAAS,EACtB,GAAY,GAAM,IAAM,CACvB,GAAS,GAAY,CACpB,OAAW,KAAY,IACtB,GAAI,EAAS,cAAc,EAAI,EAC9B,AAAI,EAAS,WAAW,QAAQ,GAAkB,CAAQ,MACpD,CACN,EAAc,GACd,KACD,CAGD,AAAI,GAAa,GAAmB,CACrC,CAAC,CACF,EAAG,IAAwB,GAAI,CAChC,CACD,C3CvCA,WAAW,mBAAqB,CAC/B,WACA,WACD,EDHA,GAAM,IAAe,CAAC,EAEhB,GAAW,CAChB,QAAS,uEACT,OAAQ,qBACT,EAEM,GAAoB,CACzB,MAAO,GAAS,KAChB,MAAO,KACP,OAAQ,GACR,KAAM,KACN,QAAS,KACT,YAAa,IACd,EAUe,YAAsB,EAAU,CAAC,EAAG,CAClD,GAAM,GAAgB,CAAC,GAAG,GAAU,GAAG,CAAO,EACxC,CAAC,SAAQ,WAAW,EACpB,EAAU,SAAS,gEACzB,MAAO,gBAAmB,EAAS,EAAU,CAAC,EAAG,CAChD,GAAM,GAAa,CAAC,GAAG,GAAmB,UAAS,SAAQ,UAAS,GAAG,CAAO,EACxE,EAAqB,GAAiB,CAAU,EACtD,GAAI,GAAU,EAAoB,CAAU,EAAG,CAC9C,GAAM,CAAC,SAAS,EACV,EAAS,QAAQ,IAAU,QAAQ,IACnC,CAAC,gBAAe,cAAc,EACpC,GAAI,EAAe,CAClB,GAAI,IAAiB,KAAgB,IAAW,IAAa,GAAgB,OAE7E,GAAa,GAAiB,GAAa,IAAkB,CAAC,EAC9D,GAAa,GAAe,GAAW,EACxC,CACA,EAAO,CAAU,EACjB,GAAmB,CAAkB,CACtC,CACD,CACD,C6CnDA,IAEe,YAAqB,EAAM,CACzC,MAAO,CACN,QAAS,GAAQ,EAAK,OAAO,EAC7B,YAAa,EAAK,aAAa,cAAc,CAC9C,CACD,CCPA,IAEe,WAAyB,EAAM,EAAU,CAAC,EAAG,CAC3D,GAAM,CAAC,iBAAgB,eAAe,EACtC,MAAO,IAAQ,EAAM,GAAmB,IAAQ,GAAO,CAAC,aAAW,CAAC,CACrE,CCLA,ICAA,oiBCAA,OAAM,IAAkB,WAClB,GAAe,QACf,GAAa,MACb,GAAc,OACd,GAAoB,aACpB,GAA2B,oBAC3B,GAAsB,eACtB,GAAsB,eACtB,GAAoB,aACpB,GAAqB,cACrB,GAAsB,eACtB,GAAkB,WAClB,GAAiB,UACjB,GAAe,QACf,GAA6B,sBAC7B,GAAsB,eACtB,GAAoB,aACpB,GAAqB,cACrB,GAAmB,YACnB,GAAoB,aACpB,GAAkB,WAClB,GAAqB,cACrB,GAA0B,mBAC1B,GAAwB,iBAGvB,GAAM,GAAQ,CACpB,SAAU,GACV,MAAO,GACP,IAAK,GACL,KAAM,GACN,WAAY,GACZ,kBAAmB,GACnB,aAAc,GACd,aAAc,GACd,WAAY,GACZ,YAAa,GACb,aAAc,GACd,SAAU,GACV,QAAS,GACT,MAAO,GACP,oBAAqB,GACrB,aAAc,GACd,WAAY,GACZ,YAAa,GACb,UAAW,GACX,WAAY,GACZ,SAAU,GACV,YAAa,GACb,iBAAkB,GAClB,eAAgB,EACjB,EAEa,GAAS,CACrB,CAAC,IAA0B,EAC3B,CAAC,IAAqB,EACtB,CAAC,IAAe,EAChB,CAAC,IAAa,EACd,CAAC,IAAc,EACf,CAAC,IAAkB,EACnB,CAAC,IAAsB,EACvB,CAAC,IAAoB,EACrB,CAAC,IAAqB,EACtB,CAAC,IAAsB,EACvB,CAAC,IAAoB,EACrB,CAAC,IAA2B,EAC5B,CAAC,IAAsB,EACvB,CAAC,IAAkB,EACnB,CAAC,IAAiB,EAClB,CAAC,IAAe,EAChB,CAAC,IAA6B,EAC9B,CAAC,IAAsB,EACvB,CAAC,IAAoB,EACrB,CAAC,IAAqB,EACtB,CAAC,IAAmB,EACpB,CAAC,IAAoB,EACrB,CAAC,IAAkB,EACnB,CAAC,IAAwB,CAC1B,EAIa,GAAyB,gBAEzB,GAAU,CACtB,eAAgB,SAChB,OAAQ,WACR,eAAgB,QACjB,EACa,GAAoB,CAChC,MAAO,QACP,SAAU,UACX,EC5FA,ICAA,IAAO,GAAM,IAAiB,OAAO,oBAAoB,ECAzD,IACA,GAAM,IACL,KAAK,MAAM,KAAK,OAAO,EAAI,UAAC,EAAE,SAAS,EAAE,EACzC,KAAK,IAAI,KAAK,MAAM,KAAK,OAAO,EAAI,UAAC,EAAI,KAAK,IAAI,CAAC,EAAE,SAAS,EAAE,EAE7D,GAAQ,EAEN,GAAY,IAAG,CAPrB,QAOwB,gDAAY,iBAAZ,cAA4B,UAA5B,cAAqC,uBAAwB,IAEtE,aAA+B,CAC7C,UAAQ,GAAQ,EACT,GAAG,GAAU,KAAK,IAC1B,CFTe,YAA4B,EAAM,CAChD,MAAK,GAAK,KAAiB,GAAK,IAAkB,GAAoB,GAE/D,CACR,CGPA,ICAA,ICAA,IDGe,YAAsB,EAAM,EAAY,CAKvD,CDSe,YAA0B,EAAM,CAC9C,UAAa,EAAM,kBAAkB,EAC9B,EAAK,GACb,CGpBA,ICAA,IAGe,YAA2C,EAAM,EAAQ,EAAI,CAC3E,GAAa,EAAM,CAAM,CAK1B,CDNe,YAA0B,EAAM,EAAI,CAClD,UAAkC,EAAM,mBAAoB,CAAE,EAC9D,EAAK,IAAkB,EAChB,CACR,CEPA,wFACA,GAAM,CAAC,iBAAe,mBAAkB,GAExC,aAA4B,CAC3B,MAAO,IAAe,aAAa,IAAM,EAC1C,CAEe,aAA+B,CAC7C,MAAK,IAAiB,EAGf,GAAc,EAFb,IAGT,CCZA,ICAA,wFAEA,GAAM,CAAC,oBAAmB,GACpB,GAAQ,CAAC,EACf,OAAW,KAAK,IACf,GAAM,GAAK,CACV,MAAO,GAAO,GACd,UAAW,GAAgB,CAAC,CAC7B,EAGD,GAAO,IAAQ,GDVf,oFACA,GAAM,CAAC,oBAAmB,GAuBX,YAAsB,EAAM,EAAQ,EAAG,CACrD,GAAI,GAAO,GAAO,KAAM,IAAI,OAAM,0BAA0B,gCAAmC,EAC/F,GAAI,CAAC,OAAO,UAAU,CAAK,GAAK,EAAQ,GAAK,EAAQ,EACpD,KAAM,IAAI,OAAM,0BAA0B,8BAAkC,EAE7E,GAAO,GAAQ,CAAC,QAAO,UAAW,GAAgB,CAAI,CAAC,CACxD,CE/BA,ICAA,IAEe,YAAwB,EAAS,CAE/C,GAAI,CADqB,EAAQ,MACV,MAAO,GAE9B,GAAM,GAAe,EAAQ,UAAY,GAAyB,EAAQ,cAAgB,EAE1F,MAAO,CACN,cAAe,EAAa,QAC5B,YAAa,EAAa,MAC1B,kBAAmB,EAAa,mDAChC,YAAa,EAAa,YAC1B,aAAc,EAAa,aAC3B,MAAO,EAAa,2BACrB,CACD,CDdA,oFEFA,ICAA,OAAO,IAAQ,GAAI,KDEJ,YAAiB,EAAK,CACpC,MAAK,IAAW,KAET,CAAC,GAAG,EAAU,EAAE,YAAY,CAAC,EAAK,IAAQ,EAAI,CAAG,EAAG,CAAG,EAFjC,CAG9B,CENA,OAAO,IAAQ,CAAC,ECAhB,IAEA,GAAM,CAAC,OAAK,QAAM,gBAAc,qBAAmB,YAAU,iBAAgB,EAEzE,GAAW,EACX,GAAY,EACZ,GAAe,EACf,GAAkB,EAClB,GAAgB,EAChB,GAAoB,EAEX,GAAc,IAAO,EACjC,YACA,aACA,gBACA,mBACA,iBACA,oBACD,GAEa,GAAgB,IAAM,CAClC,GAAW,EACX,GAAY,EACZ,GAAe,EACf,GAAkB,EAClB,GAAgB,EAChB,GAAoB,CACrB,EAEa,GAAY,GAAQ,CAChC,OAAQ,OACF,IACJ,KACA,UACI,IACJ,KACA,UACI,IACJ,KACA,UACI,IACJ,KACA,UACI,IACJ,KACA,UACI,IACJ,KACA,MAEH,EClDA,IAGA,GAAM,CAAC,iBAAe,iBAAe,6BAA2B,mCAC/D,EAEG,GAAqB,SAAS,EAAc,EAAa,CAAC,EAC1D,GAA8B,OAAO,UAAU,EAAkB,EACjE,GAAoB,EAAc,EAAa,EAC/C,GAA2B,EAAc,EAAyB,EAClE,GAAoC,EAAc,EAA8B,EAEhF,GAAiB,CAAC,EAChB,GAAoB,GAAS,CAClC,GAAI,GAAe,GAAQ,MAAO,GAElC,GAAM,GAAU,OAAO,UAAU,CAAK,GAAK,GAAS,GAAK,GAAS,EAElE,MAAI,IAAS,IAAe,GAAS,IAE9B,CACR,EAEM,GAAW,CAAC,EAAM,IAAU,CAGjC,OAFA,GAAiB,CAAC,EAEV,OACF,IACJ,GAAqB,EACrB,GAA8B,OAAO,UAAU,EAAkB,EACjE,UACI,IACJ,GAAoB,EACpB,UACI,IACJ,GAA2B,EAC3B,UACI,IACJ,GAAoC,EACpC,MAEH,EAEA,GAAkB,GAAe,EAAQ,EACzC,GAAkB,GAAe,EAAQ,EACzC,GAAkB,GAA2B,EAAQ,EACrD,GAAkB,GAAgC,EAAQ,EAE3C,YAAoB,EAAS,EAAY,CAKvD,GAJI,KAA6B,IAI7B,CAAC,EAAQ,MAAO,MAAO,GAE3B,GAAI,IAAqC,MAAM,QAAQ,EAAQ,cAAc,EAC5E,MAAO,GAAQ,eAAe,SAAS,CAAU,EAElD,GAAI,MAAM,QAAQ,EAAiB,EAAG,MAAO,IAAkB,SAAS,CAAU,EAElF,GAAM,CAAC,QAAQ,IAAM,GAAO,IAAe,CAAC,EAE5C,MAAK,IAAkB,CAAK,EAExB,IAAqC,OAAO,UAAU,EAAQ,eAAe,EACzE,GAAS,EAAQ,gBAElB,IAA+B,GAAS,GALT,EAMvC,CCpEA,OAAO,IAAQ,GAAI,KCAnB,ICAA,IDIe,YAA+B,EAAS,EAAe,EAAO,EAAS,EAAM,CAa5F,CRJA,GAAM,CAAC,UAAS,GACV,CACL,6BACA,kCACA,iCACA,2BACA,wBACG,EACA,GACE,GAAS,CAAC,EACV,GAAwB,EAAc,EAA6B,EACnE,GAAkB,EAAc,EAAuB,EACvD,GAAc,EAAc,EAAmB,EAEjD,CAAC,gBAAe,OACpB,GAAI,CAAC,EAAc,EAA8B,EAChD,GAAI,CACH,GAAc,OAAO,IAAI,WAC1B,MAAE,CAEF,CAGD,GAAM,IAAgB,IAAM,CAC3B,AAAI,GAAU,MACb,cAAa,EAAS,EACtB,GAAY,GAAM,IAAM,CACvB,GAAS,IAAM,CACd,GAAM,GAAc,GAAO,OAAO,CAAC,EACnC,AAAI,EAAY,QAAQ,GAAU,QAAQ,GAAY,EAAS,CAAC,GAAG,CAAW,CAAC,CAAC,CACjF,CAAC,CACF,EAAG,EAAc,EAAyB,CAAC,EAE7C,EAEM,GAA0B,CAAC,EAE3B,GAAU,CAAC,EAAM,IAAa,CAlDpC,MAqDC,MAFI,MAAqB,CAAI,GAAK,GAAmB,CAAQ,GAEzD,EAAS,KAAK,SAAS,oBAAM,UAAN,cAAe,IAAI,EAG/C,EAEM,GAAqB,GAAY,EAAS,KAAK,SAAS,mBAAmB,EAC3E,GAAuB,GAAK,CA3DlC,MA2DqC,0BAAM,UAAN,cAAe,OAGpD,AAAI,OAAO,qBA2BV,AA1BiB,GAAI,qBAAoB,GAAQ,CAChD,GAAM,GAAY,EAAK,WAAW,EAAE,KAAK,CAAC,EAAG,IACxC,EAAE,UAAY,EAAE,UAAkB,GAClC,EAAE,UAAY,EAAE,UAAkB,EAE/B,CACP,EAED,OAAS,GAAI,EAAG,EAAI,GAAwB,OAAQ,IAAK,CACxD,GAAM,GAAO,GAAwB,GAErC,OAAS,GAAI,EAAG,EAAI,EAAU,OAAQ,IAAK,CAC1C,GAAM,GAAW,EAAU,GAE3B,GAAI,EAAS,UAAY,EAAK,UAAY,GAAQ,EAAM,CAAQ,EAAG,CAClE,EAAK,QAAQ,SAAW,EAAS,OAAO,EACxC,GAAwB,OAAO,EAAG,CAAC,EACnC,GAAK,EACL,GAAO,KAAK,CAAI,EAChB,GAAc,EACT,GAAqB,CAAI,GAAG,EAAU,OAAO,EAAG,CAAC,EACtD,KACD,CACD,CACD,CACD,CAAC,EACQ,QAAQ,CAChB,WAAY,CAAC,UAAU,CACxB,CAAC,EAGF,AAAI,IAAe,GAAwB,GAC1C,YAAY,IAAM,CACjB,GAAM,GAAM,GAAY,IAAI,EAE5B,OAAS,GAAI,EAAG,EAAI,GAAwB,OAAQ,IACnD,GAAI,EAAM,GAAwB,GAAG,UAAY,GAAiB,CASjE,GAAwB,OAAO,CAAC,EAChC,KACD,CAGD,OAAS,GAAI,EAAG,EAAI,GAAM,OAAQ,IACjC,GAAI,EAAM,GAAM,GAAG,UAAY,GAAiB,CAS/C,GAAM,OAAO,CAAC,EACd,KACD,CAEF,EAAG,EAAqB,EAgCV,WACd,EAAU,CAAC,EACX,EACA,EACA,EAAU,CAAC,EACX,EAAO,cACN,CArKF,QAsKC,GAAM,GAAkB,GAAe,CAAO,EACxC,CAAC,gBAAe,cAAa,qBAAqB,EAExD,GADA,GAAe,EAAO,CAAC,gBAAe,cAAa,mBAAiB,CAAC,EACjE,CAAC,GAAW,EAAiB,CAAK,EAAG,OAEzC,GAAsB,EAAiB,EAAe,EAAO,EAAS,CAAI,EAC1E,GAAM,GAAO,CACZ,gBACA,cACA,oBACA,SAAU,GAAY,IAAI,EAC1B,gBACA,QACA,UACA,MACD,EACM,EAAgB,GAAQ,CAAI,EASlC,GAPI,KAAU,EAAM,MAAQ,IAAU,EAAM,MAC3C,IAAwB,KAAK,CAAa,EAC1C,EAAc,QAAQ,SAAW,CAChC,WAAY,EACb,GAGG,IAAS,eAAiB,IAAS,MAAO,CAC7C,GAAM,CAAC,aAAa,GAAO,GAC3B,EAAU,kBAAO,QAAS,EAAO,CAAa,CAC/C,CACA,AAAI,KAAS,SAAW,IAAS,QAChC,GAAM,EAAO,CAAC,WAAY,CAAa,CAAC,EAGzC,GAAM,KAAK,CAAa,EAEpB,GAAU,MAAQ,CAAC,wBAAe,UAAf,cAAwB,WAAxB,QAAkC,aACxD,IAAO,KAAK,CAAa,EACzB,GAAc,EAEhB,CU7MA,IAEe,aAAoB,CAClC,MAAO,CAAC,GAAG,EAAK,CACjB,CCJA,IAEe,aAAsB,CACpC,GAAM,OAAS,CAChB,CCJA,IAEe,YAAiB,EAAU,CACzC,UAAU,IAAI,CAAQ,EACf,IAAM,GAAU,OAAO,CAAQ,CACvC,CCLA,IAEA,GAAM,IAAiB,IAAO,EAAC,GAAG,EAAM,GAEjC,GAAQ,GCJf,IAEe,YAA0B,EAAW,CACnD,MAAI,OAAO,IAAc,WAAmB,IAAM,CAAC,EAEnD,IAAW,IAAI,CAAS,EACjB,IAAM,GAAW,OAAO,CAAS,EACzC,CCPA,ICAA,IAIA,GAAI,IAAkB,CAAC,EAEnB,GAAe,GAAgB,EAEtB,GAAqB,IAAM,CACvC,GAAkB,CAAC,EACnB,GAAkB,EAClB,GAAe,GAAgB,CAChC,EAEa,GAAmB,CAAC,EAAM,EAAW,EAAG,IAAkB,CACtE,GAAI,EAAC,GAAqB,EAC1B,OAAQ,OACF,IAAkB,MACtB,GAAY,GAAc,EAAU,CAAa,EACjD,UACI,IAAkB,SACtB,GAAY,GAAiB,EAAU,CAAa,EACpD,MAEH,EAEO,aAAgC,CACtC,MAAO,CACN,CAAC,GAAkB,OAAQ,GAAa,EAAY,EACpD,CAAC,GAAkB,UAAW,GAAa,EAAe,CAC3D,CACD,CAEA,YAAsB,EAAS,CAC9B,GAAM,GAAY,CACjB,CAAC,GAAQ,gBAAiB,CAAC,EAC3B,CAAC,GAAQ,QAAS,CAAC,EACnB,CAAC,GAAQ,gBAAiB,CAAC,CAC5B,EACA,cAAO,KAAK,CAAO,EAAE,QAAQ,GAAiB,CAE7C,AADuB,GAAQ,IAAkB,CAAC,GACnC,QAAQ,GAAa,CACnC,AAAI,GAAa,GAChB,EAAU,GAAQ,gBAAgB,GAChC,GAAU,GAAQ,gBAAgB,GAChC,EAAU,GAAQ,gBAAgB,GAClC,GAAK,EACH,AAAI,EAAY,IACtB,EAAU,GAAQ,gBAAgB,GAChC,GAAU,GAAQ,gBAAgB,GAChC,EAAU,GAAQ,gBAAgB,GAClC,GAAK,EAET,EAAU,GAAQ,QAAQ,GACxB,GAAU,GAAQ,QAAQ,GACxB,EAAU,GAAQ,QAAQ,GAC1B,GAAK,CAEX,CAAC,CACF,CAAC,EACM,CACR,CD3DA,GAAI,IAAqB,GAEZ,GAAiB,CAAC,EAAU,CAAC,IAAM,CAC/C,GAAM,CAAC,cAAc,GAAO,gBAAgB,IAAS,EAGrD,AAAI,GAAe,IAAqB,IAGxC,GAAM,GAAW,GAAY,EAG7B,MAAI,IAAa,GAAiB,EAC3B,CAAC,UAAQ,CACjB,EAEM,GAAc,IACZ,GAAqB,EAGhB,GAAS,IAAM,CAC3B,GAAqB,EACtB,EAEa,GAAuB,IAC5B,GAGK,GAAmB,IAAM,CACrC,GAAmB,CACpB,E5BXA,GAAM,CAAC,mBAAkB,GACzB,GAAe,gBAAiB,EAAI,EACpC,GAAe,kBAAmB,EAAI,EACtC,GAAe,cAAe,EAAI,EAElC,WAAW,sBAAwB,CAClC,sBACA,oBACA,oBACA,uBACA,iBACA,gBACA,OACA,cACA,YACA,WACA,QACA,kBACA,oBACA,0BACA,2BACA,kBACA,oBACA,wBACA,gBACD,E8B9CA,IAEe,YAAwB,EAAM,EAAQ,GAAiB,CAFtE,MAGC,MAAO,CACN,WAAY,CACX,QAAS,KAAK,UAAL,cAAc,cACvB,YAAa,EAAK,MAClB,KAAM,GACN,gBAAiB,CAClB,CACD,CACD,C/BTA,oFACA,GAAM,CAAC,UAAS,GAcV,GAAgB,GAAI,KAiC1B,YAAiB,EAAI,EAAU,CAAC,EAAG,CAClC,GAAM,CAAC,OAAO,CAAC,GAAK,EACpB,GAAI,CAEH,MADc,GAAG,GAAG,CAAI,CAEzB,OAAS,EAAP,CACD,GAAO,EAAO,CAAO,CACtB,CACD,CAEO,YACN,EACA,CACC,WACA,OACA,WACA,UAAU,CAAC,EACX,YAAY,GAAW,uBACvB,WAAW,CAAC,EACZ,OAEA,CACD,GAAM,GAAU,EAAK,SAAW,EAAK,QAAQ,YAAY,EACnD,EAAc,EAAK,IACnB,EAAkB,GAAQ,GAAY,GAAO,IAAQ,CAAS,EACpE,GAAmB,CAAQ,EAC3B,GAAM,GAAgB,GAAiB,CAAQ,EAI/C,GAHA,EAAK,EAAM,EAAe,EAAQ,MAAO,CAAC,UAAQ,CAAC,EAG/C,CAAC,GAAY,CAAC,WAAU,SAAO,CAAC,EAAG,CACtC,GAAM,GACL,IAAc,GAAW,uBACtB,GAAM,GAAmB,CACzB,GAAG,GAAe,CAAI,EACtB,QAAS,EAAS,MAAQ,EAAS,KAAK,QACxC,KAAM,GACN,WAAY,EAAS,IACrB,CAAC,EACD,KAEJ,AAAI,GACH,GAAc,aAAa,GAAgC,EAA+B,EAC1F,EAAc,aAAa,GAA4B,EAAM,OAAO,EACpE,EAAS,KAAO,EAChB,EAAS,IAA0B,IAGpC,GAAM,GAAiB,CACtB,EACA,EACA,EACA,EACA,OAAO,KAAK,CAAO,EAAE,OAAS,GAC3B,OAAO,KAAK,CAAO,EAAE,OACrB,OAAO,QAAQ,CAAO,EAAE,KAAK,CACjC,EACE,OAAO,OAAO,EACd,KAAK,GAAG,EACV,AAAK,GAAc,IAAI,CAAc,EAI1B,GACV,EAAc,aAAa,aAAc,WAAW,EAJpD,IAAc,IAAI,CAAc,EAChC,EAAS,EAAW,CAAC,OAAM,WAAU,UAAS,OAAK,EAAG,CAAC,SAAU,GAAM,GAAG,CAAQ,EAAG,EAAI,EACzF,WAAW,IAAM,GAAc,OAAO,CAAc,EAAG,CAAC,GAKzD,GAAiB,EAAc,IAAI,CACpC,CAEA,AAAI,GACH,EACC,wBAAwB,mBAAyB,SAAmB,kDACpE,CAAC,QAAO,MAAO,GAAS,MAAO,OAAM,OAAQ,SAAS,CACvD,CAEF,CAKA,YAAqB,CAAC,WAAU,WAAU,CACzC,MAAI,KAAa,EAAU,QAAU,EAAQ,aAAe,GAAW,sBAIxE,CAEA,GAAO,IAAQ,GgC1If,IACA,GAAM,IACL,KAAK,MAAM,KAAK,OAAO,EAAI,UAAC,EAAE,SAAS,EAAE,EACzC,KAAK,IAAI,KAAK,MAAM,KAAK,OAAO,EAAI,UAAC,EAAI,KAAK,IAAI,CAAC,EAAE,SAAS,EAAE,EAE7D,GAAQ,EACG,aAAgB,CAC9B,UAAQ,GAAQ,EACT,GAAG,MAAU,IACrB,CCTA,IAKe,aAAyB,CACvC,GAAM,GAAkB,GAAI,KACtB,EAAqB,GAAI,SAC3B,EACA,EAEE,EAAM,CACX,UAAW,GACX,WAAW,EAAO,CACjB,EAAY,EACZ,GAAU,IAAM,CACf,EAAgB,QAAQ,GAAuB,CAC9C,OAAW,KAAa,GAAqB,EAAoB,GAAW,IAAI,CACjF,CAAC,CACF,CAAC,CACF,EACA,iBAAiB,EAAe,CAC/B,EAAW,CACZ,EACA,kBAAmB,CAClB,MAAO,EACR,EACA,OAAQ,CACP,MAAO,CAAC,CAAC,CACV,EACA,MAAM,EAAI,CACT,EAAU,GAAK,CAChB,EACA,aAAa,EAAM,CAClB,MAAO,GAAU,aAAa,CAAI,CACnC,EACA,aAAc,CACb,MAAO,GAAU,YAAY,CAC9B,EACA,UAAU,EAAM,CACf,MAAO,GAAU,UAAU,CAAI,CAChC,EACA,sBAAsB,EAAc,EAAM,CACzC,EAAmB,IAAI,EAAc,CAAI,CAC1C,EACA,sBAAsB,EAAc,CACnC,MAAO,GAAmB,IAAI,CAAY,CAC3C,EACA,SAAS,EAAM,CACd,MAAI,GAAkB,EAAU,SAAS,CAAI,EAEtC,EACR,EACA,UAAU,CAAC,UAAS,aAAY,EAAI,CACnC,GAAI,GAAsB,EAAgB,IAAI,CAAO,EACrD,GAAI,EAAqB,CACxB,GAAM,GAAQ,EAAoB,GAClC,AAAI,GAAO,EAAM,IAAI,CACtB,KACC,GAAsB,CAAC,EACvB,EAAgB,IAAI,EAAS,CAAmB,EAGjD,EAAoB,GAAa,EACjC,EAAG,IAAI,CACR,EACA,YAAY,CAAC,UAAS,aAAY,CACjC,GAAM,GAAsB,EAAgB,IAAI,CAAO,EACvD,GAAI,EAAqB,CACxB,GAAM,GAAK,EAAoB,GAE/B,AAAI,GAAI,EAAG,IAAI,EAEf,MAAO,GAAoB,GACvB,OAAO,KAAK,CAAmB,EAAE,SAAW,GAAG,EAAgB,OAAO,CAAO,CAClF,CACD,CACD,EAEA,cAAO,KAAK,CAAG,EAER,CACR,CClFA,ICAA,IAEe,YAAe,EAAK,CAClC,MAAO,MAAO,EAAI,IACnB,CCJA,IAUe,aAAqB,CACnC,GAAI,GAAU,KACR,EAAgB,GAAI,KACpB,EAAM,CACX,CAAC,IAAoB,GACrB,GAAI,SAAQ,EAAK,CAChB,GAAI,IAAY,EAAK,CACpB,EAAU,EACV,OAAW,CAAC,EAAW,IAAU,GAChC,OAAW,KAAQ,GAAO,EAAU,GAAQ,CAE9C,CACD,EACA,GAAI,UAAU,CACb,MAAO,EACR,EACA,CAAC,IAA6B,EAAW,EAAc,CACtD,SAAc,IAAI,EAAY,GAAc,IAAI,CAAS,GAAK,GAAI,MAAO,IAAI,CAAY,CAAC,EACnF,IAAM,CACZ,GAAM,GAAW,EAAc,IAAI,CAAS,EAC5C,WAAU,OAAO,GACjB,kBAAU,QAAS,GAAK,EAAc,OAAO,CAAS,CACvD,CACD,EACA,CAAC,IAA4C,EAAW,CACvD,GAAM,GAAoB,EAAc,IAAI,CAAS,EACrD,MAAO,GAAoB,CAAC,GAAG,CAAiB,EAAI,CAAC,CACtD,CACD,EACA,cAAO,KAAK,CAAG,EACR,CACR,CCzCA,IAEe,YAAwB,EAAK,EAAW,EAAc,CACpE,MAAO,IAAO,EAAI,IAA6B,EAAW,CAAY,CACvE,CCJA,OAAM,IAAW,GAAI,SACf,GAAoC,CAAC,EACvC,GAAc,EAEX,aAAwC,CAC9C,MAAO,GACR,CAEO,YAA0C,EAAM,CACtD,MAAO,IAAS,IAAI,CAAI,EAAI,GAAS,IAAI,CAAI,EAAE,KAAO,CACvD,CAEO,YAAwC,EAAsB,EAAM,CAC1E,AAAK,GAAS,IAAI,CAAI,GAAG,GAAS,IAAI,EAAM,GAAI,IAAK,EACrD,GAAS,IAAI,CAAI,EAAE,IAAI,CAAoB,EAC3C,IACD,CAEO,YAA2C,EAAsB,EAAM,CAE7E,GADI,CAAC,GAAS,IAAI,CAAI,GAClB,CAAC,GAAS,IAAI,CAAI,EAAE,OAAO,CAAoB,EAAG,OACtD,KACA,GAAM,GAAM,GAAkC,OAC9C,OAAS,GAAI,EAAG,EAAI,EAAK,IAAK,GAAkC,GAAG,CAAI,CACxE,CAEO,YAA2C,EAAM,CACvD,GAAI,CAAC,GAAS,IAAI,CAAI,EAAG,OACzB,GAAM,GAAiB,GAAS,IAAI,CAAI,EACxC,IAAe,EAAe,KAC9B,EAAe,MAAM,CACtB,CAEO,YAA0C,EAAI,CACpD,GAAkC,KAAK,CAAE,CAC1C,CAEO,YAA0C,EAAM,CACtD,MAAQ,IAAS,IAAI,CAAI,GAAK,GAAS,IAAI,CAAI,EAAE,MAAS,CAC3D,CCvCA,IAEA,GAAO,IAAQ,GAAa,CAC3B,OAAQ,sCACT,CAAC,E3FAD,GAAM,IAAgB,GAAI,SAC1B,OAAO,iBAAiB,UAAW,GAAgB,EAAK,EAExD,YAAkC,EAAc,EAAc,CAC7D,GAAM,GAA+B,GAAc,IAAI,CAAY,EACnE,GAAI,EAAC,EAEL,MAAO,CACN,GAAG,EAA6B,GAChC,GAAG,EAA6B,IACjC,CACD,CAEA,YAAwB,CAAC,OAAM,SAAQ,UAAS,CAC/C,GAAM,GAAwB,GAAyB,EAAQ,CAAM,EACrE,GAAI,CAAC,EAAuB,OAE5B,GAAM,GAAY,OAAO,OAAO,CAAqB,EACrD,OAAW,KAAY,GAAW,EAAS,CAAI,CAChD,CAEA,YAAgC,CAAC,cAAa,eAAc,gBAAe,EAAU,CACpF,GAAI,GAA+B,GAAc,IAAI,CAAY,EACjE,AAAK,GACJ,GAA+B,CAAC,EAChC,GAAc,IAAI,EAAc,CAA4B,GAG7D,GAAI,GAAwB,EAA6B,GACzD,AAAK,GACJ,GAAwB,CAAC,EACzB,EAA6B,GAAgB,GAG9C,EAAsB,GAAe,CACtC,CAEA,YAAmC,CAAC,cAAa,eAAc,gBAAe,CAC7E,GAAM,GAAwB,GAAyB,EAAc,CAAY,EAEjF,AAAI,GAAyB,IAAe,IAC3C,MAAO,GAAsB,EAC/B,CAEe,YAAmC,CACjD,oBAAoB,GACpB,wBAAwB,GACxB,wBAAwB,GACxB,gBACE,CACF,MAAK,IACJ,GAAI,2BAA4B,CAAC,MAAO,GAAS,MAAO,OAAQ,2BAA2B,CAAC,EAEtF,CACN,KAAM,sBACN,aAAc,CACb,aAAc,IACf,EACA,eAAgB,CACf,CAAC,GAAuB,CAAC,cAAa,SAAQ,aAAY,YAAW,CACpE,GAAM,CAAC,gBAAgB,EAAO,QACxB,EAAc,EAAW,MAE/B,EACC,CACC,KAAM,eACN,MAAO,EACP,UAAW,MACX,aAAc,EACf,EACA,CAAC,iEAAkE,EAAI,CACxE,EAEA,AAAI,GAAgB,EACnB,GAAuB,CAAC,cAAa,eAAc,cAAY,EAAG,GAAQ,CACzE,EAAS,EAAuB,CAAI,CACrC,CAAC,EAED,GAA0B,CAAC,cAAa,eAAc,cAAY,CAAC,CAErE,EACA,CAAC,GAAmB,CAAC,QAAO,SAAQ,QAAO,CAC1C,GAAM,CAAC,gBAAgB,EACvB,GAAI,EACH,EAAa,YAAY,EAAO,QAAS,CAAY,MAC/C,CACN,GAAM,CAAC,UAAS,eAAe,GAAY,CAAI,EAC/C,GACC,GAAG,gFACH,CACC,UACA,cACA,OACA,OAAQ,GAAG,GACZ,CACD,CACD,CACD,EACA,CAAC,GAAY,wBAAwB,CAAC,aAAY,MAAO,CAAC,iBAAgB,CACzE,GAAM,GAAc,EAAW,MAC/B,AAAI,GAAgB,GACnB,GAA0B,CAAC,cAAa,eAAc,cAAY,CAAC,CACrE,CACD,CACD,CACD,CF3GO,GAAM,IAAqB,CAAC,gBAAc,oBAAkB,oBAAiB,EDOpF,AAAI,MAAO,QAAW,KACrB,QAAO,iDAAmD,I+FV3D,wLASA,AAAI,MAAO,QAAW,KAAa,QAAO,kCAAoC,ICT9E,0wBCAA,0wBCAA,ICAA,s7DAGO,GAAM,IAAiB,wBACjB,GAAyB,eAG/B,GAAM,IAAgB,gBAEtB,GAAM,IAAiB,iBAEvB,GAAM,IAAsB,gBACtB,GAAoB,oBACpB,GAAsB,iBACtB,GAAsB,gBACtB,GAAuB,gBACvB,GAAuB,kBACvB,GAAa,QACb,GAAyB,gBACzB,GAA4B,mCAC5B,GAAkB,QAClB,GAA8B,kBAC9B,GAA2B,eAC3B,GAA0B,IAC1B,GAA2B,kBAG3B,GAAuB,YACvB,GAA0B,eAC1B,GAAyB,cAGzB,CAAC,wBAAuB,GACxB,CAAC,2BAA0B,GAC3B,CAAC,2BAA0B,GAC3B,CAAC,+BAA8B,GAC/B,CAAC,uBAAsB,GACvB,CAAC,wBAAuB,GACxB,CAAC,wCAAuC,GACxC,CAAC,+BAA8B,GAC/B,CAAC,6BAA4B,GAC7B,CAAC,4BAA2B,GAC5B,CAAC,gCAA+B,GAChC,CAAC,0BAAyB,GAG1B,GAAiB,YACjB,GAAiB,WACjB,GAA2B,sBAC3B,GAA4B,uBAC5B,GAA2B,mBAC3B,GAA4B,oBAC5B,GAAc,SACd,GAAc,QACd,GAA0B,WAC1B,GAA0B,UAEhC,GAAM,IAA8C,qCAC9C,GAA0B,mBAC1B,GAA8B,uBAC9B,GAA6B,sBAC7B,GAA8B,2BAG9B,GAAoB,eACpB,GAAoB,cACpB,GAAqB,MACrB,GAAwB,SAGxB,GAAgB,WAChB,GAAgB,UAChB,GAAwB,SACxB,GAAyB,UACzB,GAAwB,SAGxB,GAAwB,iBACxB,GAAyB,kBAEzB,GAAe,eAEf,GAAgB,gBAChB,GAAoB,oBACpB,GAAiB,iBACjB,GAAsB,sBACtB,GAAoB,oBAEpB,GACZ,mEACY,GAA4B,gCAE5B,GAAoB,oBACpB,GAAgB,gBAChB,GAAoB,oBACpB,GAAe,uBAEf,GAA0B,SAC1B,GAAwB,OAExB,GAA0B,kCAG1B,GAAwB,iBAExB,GAAoC,4CACpC,GAAmB,SACnB,GAAsB,YACtB,GAAqB,gBACrB,GAA8B,YAC9B,GAA6B,WAC7B,GAAyB,OACzB,GAAwB,MAExB,GAAmB,EACnB,GAAkB,SAClB,GAA0B,gBAC1B,GAAoB,kBACpB,GAA6B,oBAC7B,GAAwB,eACxB,GAAiC,mBAEjC,GAAwB,eACxB,GAA0B,iBAE1B,GAA+B,YAC/B,GAAkC,eAClC,GAAkC,eAClC,GAA8B,WAC9B,GAA+B,YAC/B,GAAsC,mBACtC,GAAsC,mBACtC,GAAoC,iBACpC,GAAmC,gBACnC,GAAkC,eAClC,GAAwB,CACpC,CAAC,GAAY,qBAAsB,GACnC,CAAC,GAAY,wBAAyB,GACtC,CAAC,GAAY,wBAAyB,GACtC,CAAC,GAAY,oBAAqB,GAClC,CAAC,GAAY,qBAAsB,GACnC,CAAC,GAAY,4BAA6B,GAC1C,CAAC,GAAY,4BAA6B,GAC1C,CAAC,GAAY,0BAA2B,GACxC,CAAC,GAAY,yBAA0B,GACvC,CAAC,GAAY,wBAAyB,EACvC,EAEa,GAAgC,YAChC,GAAgC,YAChC,GAA+B,WAC/B,GAAkC,QAClC,GAA4B,cAC5B,GAAwC,oBACxC,GAAkC,cAClC,GAAqC,gBACrC,GAA8C,mBAC9C,GAAgD,qBAChD,GAAiC,aACjC,GAA0C,qBAEhD,GAAM,IAAqC,iBACrC,GAA+B,oBAC/B,GAAwC,2BACxC,GAA4C,eAC5C,GAAuC,eACvC,GAAwC,gBAG9C,GAAM,IAAgC,aAChC,GAAwC,cAExC,GAAyB,cAE/B,GAAM,IAAuB,YACvB,GAA0B,eAE1B,GAA2B,gBAC3B,GAAyB,cACzB,GAAyB,cACzB,GAA2B,gBAE3B,GAAwB,cACxB,GAAwC,2BACxC,GAAyB,cAG/B,GAAM,IAAkB,gBAElB,GAAkB,IAExB,GAAM,IAAoB,GAEpB,GAAuB,GAAe,QD/LnD,GAAI,IAAoB,CAAC,EACnB,GAAQ,CACb,qBAAsB,CAAC,EACvB,gBAAiB,CAAC,EAClB,kBAAmB,CAAC,CACrB,EAEa,GAAiB,GAAY,CACzC,GAAoB,EACpB,GAAM,qBAAuB,CAAC,EAC9B,GAAM,gBAAkB,CAAC,EACzB,GAAM,kBAAoB,CAAC,CAC5B,EAEa,GAAM,IAAM,CACxB,GAAM,GAAiB,CAAC,EACxB,OAAW,KAAK,IAAmB,CAClC,GAAM,GAAU,GAAkB,GAAG,QAAQ,YAAY,EACzD,AAAK,EAAe,IAAU,GAAe,GAAW,GAExD,EAAe,IAChB,CAEA,GAAI,GAAmB,EACvB,OAAW,KAAK,IAAM,qBACrB,GAAoB,GAAM,qBAAqB,GAGhD,GAAM,GAAiB,CAAC,EACxB,OAAS,GAAI,EAAG,EAAI,GAAM,gBAAgB,OAAQ,IAAK,CACtD,GAAM,GAAU,GAAM,gBAAgB,GACtC,AAAK,GAAM,qBAAqB,IAC/B,EAAe,KAAK,CAAO,CAE7B,CAEA,MAAO,CACN,QAAS,GACT,YAAa,CACZ,MAAO,GAAM,gBAAgB,OAC7B,iBACA,SAAU,CAAC,GAAG,GAAM,eAAe,CACpC,EACA,YAAa,CACZ,MAAO,EACP,eAAgB,GAAM,oBACvB,EACA,UAAW,CACV,MAAO,OAAO,KAAK,EAAiB,EAAE,OACtC,iBACA,kBAAmB,GAAM,kBACzB,MAAO,CAAC,GAAG,EAAiB,CAC7B,CACD,CACD,EAEa,GAAM,CAAC,EAAU,IAAY,CACzC,OAAQ,OACF,cACJ,GAAM,qBAAqB,GAAW,GAAM,qBAAqB,IAAY,EAC7E,GAAM,qBAAqB,KAC3B,UACI,UACJ,GAAM,gBAAgB,KAAK,CAAO,EAClC,UACI,QACJ,GAAM,kBAAkB,GAAW,GAAM,kBAAkB,IAAY,EACvE,GAAM,kBAAkB,KACxB,UACI,UACJ,GAAM,kBAAkB,GAAW,GAAM,kBAAkB,IAAY,EACnE,GAAM,kBAAkB,IAAU,GAAM,kBAAkB,KAC9D,MAEH,EE5EA,ICAA,ICAA,IAMA,GAAqB,IAArB,KAA2B,CAC1B,YAAY,EAAQ,EAAa,CAAC,EAAG,EAA8B,CAClE,KAAK,KAAO,GAAI,SAChB,KAAK,OAAS,CAAC,EACf,KAAK,QAAU,EACf,KAAK,YAAc,EACnB,KAAK,8BAAgC,CACtC,CAEA,KAAK,EAAM,CACV,GAAM,CAAC,MAAM,EAAK,KAClB,KAAK,KAAK,IAAI,EAAI,KAAK,eAAe,CAAE,EAAI,CAAC,EAC7C,KAAK,OAAO,KAAK,CAAI,CACtB,CAIA,GAAI,SAAS,CACZ,MAAO,MAAK,OAAO,MACpB,CAEA,eAAe,EAAI,CAClB,MAAO,MAAK,KAAK,IAAI,CAAE,GAAK,CAC7B,CAEA,OAAQ,CA/BT,MAgCE,KAAO,KAAK,OAAO,QAAQ,CAC1B,GAAM,GAAO,KAAK,OAAO,MAAM,EACzB,CAAC,MAAM,EAAK,KACZ,EAAgB,KAAK,KAAK,IAAI,CAAE,EAQtC,GAPA,AAAI,IAAkB,EACrB,MAAK,KAAK,OAAO,CAAE,EACf,KAAK,+BAA+B,KAAK,8BAA8B,CAAE,GAE7E,KAAK,KAAK,IAAI,EAAI,EAAgB,CAAC,EAInC,IAAkB,GAClB,CAAC,KAAK,SACN,KAAK,YAAY,QAAQ,EAAK,IAAI,IAAM,IACxC,CAAC,EAAG,YAEJ,MAAO,GAEP,AAAI,KAAK,OAAL,QAAW,MACd,GAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,UAAW,KAAK,OAAO,MACxB,CAAC,EACD,EAAK,KAAK,KAAK,IAAI,EAGtB,CACD,CACD,EC7DA,IAEe,YAAiB,EAAM,EAAM,EAAU,EAAU,EAAO,CACtE,GAAM,CAAC,gBAAe,MAAM,EAC5B,EAAK,EAAI,EAAe,EAAM,CAAC,KAAM,EAAU,WAAU,YAAa,EAAM,MAAM,CAAC,CACpF,CFMA,GAAM,CAAC,0BAAwB,0BAAyB,EAClD,GAAuB,EAAc,EAAsB,EAC3D,GAAmB,mBACnB,GAAY,YACZ,GAAiB,iBACjB,GAAsB,sBACtB,GAAY,YACZ,GAAa,aACb,GAAqB,qBACrB,GAAW,WACX,GAAU,UACV,GAAe,eACf,GAAyB,yBACzB,GAAyB,yBACzB,GAA2B,2BAC3B,GAAY,CACjB,oBACA,aACA,kBACA,uBACA,aACA,cACA,sBACA,YACA,WACA,gBACA,0BACA,0BACA,2BACD,EAEM,GAAK,aACL,GAAO,eACP,GAAK,aACL,GAAK,aACL,GAAK,aACL,GAAY,GAAI,IAAM,GAAO,CAAC,CAAC,EAC/B,GAAU,GAAI,IAAM,GAAM,CAAC,EAAG,EAA0B,EACxD,GAAU,GAAI,IAAM,GAAO,CAAC,EAAG,EAA0B,EACzD,GAAU,GAAI,IAAM,GAAM,CAAC,GAAwB,EAAwB,CAAC,EAC5E,GAA2B,CAAC,EAC9B,GAAQ,CAAC,EAEP,GAAQ,CACb,CAAC,IAAY,CAAC,SAAU,EAAE,EAC1B,CAAC,IAAyB,CAAC,SAAU,EAAI,EACzC,CAAC,IAAmB,CAAC,SAAU,EAAE,EACjC,CAAC,IAAY,CAAC,SAAU,EAAE,EAC1B,CAAC,IAAe,CAAC,SAAU,EAAE,EAC7B,CAAC,IAAiB,CAAC,SAAU,EAAE,EAC/B,CAAC,IAAsB,CAAC,SAAU,EAAE,EACpC,CAAC,IAAW,CAAC,SAAU,EAAE,EACzB,CAAC,IAAa,CAAC,SAAU,EAAE,EAC3B,CAAC,IAAqB,CAAC,SAAU,EAAE,EACnC,CAAC,IAAyB,CAAC,SAAU,EAAE,EACvC,CAAC,IAA2B,CAAC,SAAU,EAAE,CAC1C,EAEM,GAA8D,GAEhE,GAAsB,GACtB,GAAwB,GACxB,GAAqB,GAEnB,GAAoB,IACzB,OAAO,QAAQ,EAAK,EAClB,KAAK,CAAC,CAAC,GAAY,CAAC,KAAe,EAAU,cAAc,CAAS,CAAC,EACrE,IACA,CAAC,CACA,EACA,CACC,gBACA,cACA,iBACA,eACA,kBACA,qBACA,uBAEK,EACN,WACA,QAAS,CACR,CAAC,IAAK,EACN,CAAC,IAAO,GAAU,OAClB,CAAC,IAAK,GAAQ,OACd,CAAC,IAAK,GAAQ,OACd,CAAC,IAAK,GAAQ,MACf,EAAE,GACF,gBACA,cACA,iBAAkB,EAAiB,EACnC,eACA,kBACA,qBAAsB,EAAqB,EAC3C,kBACD,EACD,EACI,GAAsB,IAAM,CACjC,GAAQ,CAAC,CACV,EACA,WAAW,eAAiB,WAAW,gBAAkB,CAAC,EAC1D,WAAW,eAAe,oBAAsB,GAChD,WAAW,eAAe,sBAAwB,GAElD,GAAM,IAAkB,IAAO,EAC9B,cAAe,EACf,YAAa,EACb,eAAgB,EAChB,aAAc,EACd,gBAAiB,EACjB,mBAAoB,EACpB,iBAAkB,CACnB,GAEM,GAAqB,CAAC,EAAM,EAAU,IAAU,CACrD,GAAI,CAAC,GAAsB,OAC3B,GAAM,GAAY,GAAM,IAAa,GAAgB,EACrD,EAAK,UAAY,YAAY,IAAI,EACjC,GAAM,GAAU,cAChB,GAAM,GAAY,EAAQ,EAAM,OAAS,EACzC,AAAI,EAAY,GAAM,GAAU,eAAe,IAAM,GAAU,cAAgB,EAChF,EAEM,GAAiB,CAAC,EAAM,IAAa,CAC1C,GAAI,CAAC,GAAsB,OAC3B,GAAM,GAAY,GAAM,IAAa,GAAgB,EACrD,EAAK,QAAU,YAAY,IAAI,EAC/B,GAAM,GAAY,EAAK,QAAU,EAAK,UACtC,GAAM,GAAU,gBAAkB,EAC9B,EAAY,GAAM,GAAU,cAAc,IAAM,GAAU,aAAe,EAC9E,EAEM,GAAqB,CAAC,EAAM,IAAa,CAC9C,GAAI,CAAC,GAAsB,OAC3B,GAAM,GAAY,GAAM,IAAa,GAAgB,EACrD,GAAM,GAAgB,YAAY,IAAI,EAAI,EAAK,QAC/C,GAAM,GAAU,oBAAsB,EACtC,GAAM,GAAU,kBACZ,EAAgB,GAAM,GAAU,kBACnC,IAAM,GAAU,iBAAmB,EACrC,EAEA,YAAkB,EAAM,CACvB,GAAM,CAAC,OAAM,KAAI,OAAO,CAAC,GAAK,EAC9B,GAAI,CAAC,EAAI,CACR,GAAM,GAAQ,GAAI,OAAM,wCAAwC,EAChE,KAAI,GAAK,MACR,EAAK,KAAK,gBAAgB,CAAK,EAE1B,CACP,CACA,GAAI,CAAC,EAAM,CACV,GAAM,GAAQ,GAAI,OAAM,0CAA0C,EAClE,KAAI,GAAK,MACR,EAAK,KAAK,gBAAgB,CAAK,EAE1B,CACP,CAEA,GAAM,EACJ,GAAO,CAAC,WAAW,KACjB,GAEJ,OAAQ,OACF,IACJ,GAAQ,EAAM,EAAe,SAAU,EAAM,KAAM,CAAC,CAAC,EACjD,EAAK,MACR,GAAK,KAAK,SAAS,GAA0B,CAAC,OAAM,SAAU,KAAM,UAAW,CAAC,CAAC,EACjF,EAAK,KAAK,SAAS,GAAwB,CAAC,OAAM,SAAU,KAAM,UAAW,CAAC,CAAC,GAEhF,GAAmB,EAAM,EAAE,EAC3B,GAAe,EAAM,CAAQ,EAC7B,EAAG,CAAI,EACH,EAAK,MACR,EAAK,KAAK,SAAS,GAA0B,CAC5C,OACA,SAAU,KACV,UAAW,CACZ,CAAC,EAEF,GAAmB,EAAM,CAAQ,EACjC,UACI,IACJ,GAAQ,EAAM,EAAe,SAAU,EAAM,OAAQ,EAAS,EAC1D,EAAK,MACR,EAAK,KAAK,SAAS,GAA0B,CAC5C,OACA,SAAU,OACV,UAAW,GAAU,MACtB,CAAC,EAEF,GAAU,KAAK,CAAI,EACnB,GAAmB,EAAM,EAAU,EAAS,EAC5C,GAAgB,EAChB,UACI,IACJ,GAAQ,EAAM,EAAe,SAAU,EAAM,KAAM,EAAO,EACtD,EAAK,MACR,EAAK,KAAK,SAAS,GAA0B,CAC5C,OACA,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAQ,KAAK,CAAI,EACjB,GAAmB,EAAM,EAAU,EAAO,EAC1C,GAAqB,EACrB,UACI,IACJ,GAAQ,EAAM,EAAe,SAAU,EAAM,KAAM,EAAO,EACtD,EAAK,MACR,EAAK,KAAK,SAAS,GAA0B,CAC5C,OACA,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAQ,KAAK,CAAI,EACjB,GAAmB,EAAM,EAAU,EAAO,EAC1C,GAAuB,EACvB,UACI,IACJ,GAAQ,EAAM,EAAe,SAAU,EAAM,KAAM,EAAO,EACtD,EAAK,MACR,EAAK,KAAK,SAAS,GAA0B,CAC5C,OACA,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAQ,KAAK,CAAI,EACjB,GAAmB,EAAM,EAAU,EAAO,EAC1C,GAAoB,EACpB,MAEH,CAEA,GAAI,IAAc,GACZ,GAA+B,EAAc,EAAqB,EAExE,aAA2B,CAC1B,GAAM,IAAM,CACX,GAAM,GAAO,GAAU,MAAM,EAC7B,AAAI,GACH,IAAQ,EAAK,KAAM,EAAe,QAAS,EAAK,KAAM,OAAQ,EAAS,EACvE,GAAe,EAAM,EAAI,EACrB,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,OACV,UAAW,GAAU,MACtB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,OACV,UAAW,GAAU,MACtB,CAAC,EAEF,GAAmB,EAAM,EAAI,EAE/B,EAAG,CAAC,CACL,CAEA,aAAgC,CAC/B,GAAI,GAAqB,OAEzB,GAAsB,GACtB,GAAc,GACd,GAAM,GAAiC,GAAM,IAAM,CAClD,GAAgB,EAChB,GAAc,EACf,EAAG,EAA4B,EAC/B,GAAI,IAAM,CACT,aAAa,CAA8B,EAC3C,GAAI,GACE,EAAQ,KAAK,IAAI,EACvB,KAAQ,GAAO,GAAQ,MAAM,IAC5B,IAAQ,EAAK,KAAM,EAAe,QAAS,EAAK,KAAM,KAAM,EAAO,EACnE,GAAe,EAAM,EAAE,EACnB,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAmB,EAAM,EAAE,EACvB,OAAK,IAAI,EAAI,GAAS,OAA1B,CAGD,GAAc,GACd,GAAsB,GAClB,GAAQ,QAAQ,GAAqB,EAErC,GAAQ,QAAQ,GAAuB,EAEvC,GAAQ,QAAQ,GAAoB,CACzC,CAAC,CACF,CAEA,aAAkC,CACjC,AAAI,IACA,IAEJ,IAAwB,GACxB,GACC,GAAY,CACX,GAAwB,GACxB,GAAI,GAEJ,KAAO,EAAS,cAAc,EAAI,GAAM,GAAO,GAAQ,MAAM,IAC5D,GAAQ,EAAK,KAAM,EAAe,QAAS,EAAK,KAAM,KAAM,EAAO,EACnE,GAAe,EAAM,EAAE,EACnB,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAmB,EAAM,EAAE,EAG5B,AAAI,GAAQ,QAAQ,GAAuB,EAEvC,GAAQ,QAAQ,GAAoB,CACzC,EACA,CAAC,QAAS,EAAW,CACtB,EACD,CAEA,aAA+B,CAC9B,AAAI,IAEA,IAEA,IAEJ,IAAqB,GACrB,GACC,GAAY,CACX,GAAI,GACJ,KAAO,EAAS,cAAc,EAAI,GAAM,GAAO,GAAQ,MAAM,IAC5D,GAAQ,EAAK,KAAM,EAAe,QAAS,EAAK,KAAM,KAAM,EAAO,EACnE,GAAe,EAAM,EAAE,EACnB,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,GAAmB,EAAM,EAAE,EAG5B,GAAqB,GACjB,GAAQ,QAAQ,GAAoB,CACzC,EACA,CAAC,QAAS,EAAW,CACtB,EACD,CAEA,aAA2B,CAC1B,GAAI,GACJ,KAAQ,EAAO,GAAU,MAAM,GAC9B,AAAI,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,OACV,UAAW,GAAU,MACtB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,OACV,UAAW,GAAU,MACtB,CAAC,EAGH,KAAQ,EAAO,GAAQ,MAAM,GAC5B,AAAI,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAIH,IADA,GAAsB,GACd,EAAO,GAAQ,MAAM,GAC5B,AAAI,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAGH,KAAQ,EAAO,GAAQ,MAAM,GAC5B,AAAI,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAAwB,CAC/C,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,EAEF,EAAK,GAAG,EAAK,IAAI,EACb,EAAK,KAAK,MACb,EAAK,KAAK,KAAK,SAAS,GAA0B,CACjD,KAAM,EAAK,KACX,SAAU,KACV,UAAW,GAAQ,MACpB,CAAC,CAGJ,CAEA,aAA+B,CAC9B,MACiD,QAAO,eAAe,oBAAsB,EAE9F,CAEA,GAAI,IAAW,GAEf,aAAuB,CACtB,GAAW,GACX,GAAI,GAEJ,KAAQ,EAAO,GAAU,MAAM,GAAI,EAAK,GAAG,EAAK,IAAI,EACpD,KAAQ,EAAO,GAAQ,MAAM,GAAI,EAAK,GAAG,EAAK,IAAI,EAClD,KAAQ,EAAO,GAAQ,MAAM,GAAI,EAAK,GAAG,EAAK,IAAI,EAClD,KAAQ,EAAO,GAAQ,MAAM,GAAI,EAAK,GAAG,EAAK,IAAI,EAElD,GAAM,IAAM,CACX,GAAI,GAAU,QAAU,GAAQ,QAAU,GAAQ,QAAU,GAAQ,OACnE,MAAO,IAAY,EAEpB,GAAW,GACX,GAAM,GAAQ,GAAI,aAAY,wBAAyB,CAAC,SAAU,GAAM,QAAS,EAAI,CAAC,EACtF,MAAO,UAAS,cAAc,CAAK,CACpC,EAAG,CAAC,CACL,CAEA,SAAS,iBAAiB,sBAAuB,IAAM,CACtD,AAAI,CAAC,IAAY,GAAoB,GAAG,GAAY,CACrD,CAAC,EAED,SAAS,iBACR,mBACA,IAAM,CACL,AAAI,GAAY,GAAG,GAAgB,CACpC,EACA,EACD,EAEA,YAAgC,EAAS,CACxC,MAAO,IAAQ,eAAe,CAAO,CACtC,CAEA,aAAqC,CACpC,MAAO,IAAQ,MAChB,CAEA,aAAuC,CACtC,MAAO,IAAQ,MAChB,CAEA,YAAkC,EAAS,CAC1C,MAAO,IAAQ,eAAe,CAAO,CACtC,CAEA,YAA8B,EAAI,CACjC,GAAyB,KAAK,CAAE,CACjC,CAEA,YAAoC,EAAI,CACvC,GAAM,GAAM,GAAyB,OACrC,OAAS,GAAI,EAAG,EAAI,EAAK,IAAK,GAAyB,GAAG,CAAE,CAC7D,CGvhBA,IAEA,GAAO,GAAQ,GAAa,CAC3B,OAAQ,qBACT,CAAC,EJWD,GAAM,CACL,kCACA,mCACA,wCACG,EACE,GAAU,EAAc,EAA8B,EACtD,GAAW,EAAc,EAA+B,EACxD,GAAW,EAAc,EAAmC,EAC5D,CAAC,0BAAwB,6BAA4B,GAErD,GAAQ,GACN,GAAI,SAAQ,GAAW,CAC7B,GAAS,CACR,IAAK,CACJ,EACC,GAAiC,CAAE,EAClC,GAAuB,CAAE,EACzB,GAAyB,CAAE,CAC7B,CACD,EACA,KAAM,GACN,KAAM,CAAC,KAAI,cAAe,oBAAoB,CAC/C,CAAC,CACF,CAAC,EAGI,GAAQ,IACb,GAAI,SAAQ,GAAW,CACtB,WAAW,IAAM,EAAQ,EAAG,EAAQ,CACrC,CAAC,EAEI,GAAW,IACT,GAAI,SAAQ,GAAW,CAC7B,GAAS,CACR,IAAK,CACJ,EACC,GAA6B,EAC5B,GAA4B,EAC5B,GAA0B,CAC5B,CACD,EACA,KAAM,GACN,KAAM,CAAC,GAAI,CAAC,EAAG,cAAe,wBAAwB,CACvD,CAAC,CACF,CAAC,EAGK,YAA+B,EAAU,CAAC,EAAG,CACnD,MAAO,IAAI,SAAQ,GAAW,CAC7B,GAAS,CACR,KAAM,KAAK,CACV,GAAI,GAAO,GACP,EAAW,GACT,CAAC,kBAAkB,IAAS,EAC5B,EAAY,WAAW,IAAM,CAClC,EAAO,GACP,EAAQ,EAAkB,CAAC,WAAU,SAAU,EAAI,EAAI,CAAQ,CAChE,EAAG,EAAO,EAEV,KAAO,GACN,EAAO,KAAM,IAAS,EAClB,GACH,GAAW,GACX,KAAM,IAAM,GAId,aAAa,CAAS,EACtB,EAAQ,EAAkB,CAAC,WAAU,SAAU,EAAK,EAAI,CAAQ,CACjE,EACA,KAAM,GACN,KAAM,CAAC,GAAI,CAAC,EAAG,cAAe,uBAAuB,CACtD,CAAC,CACF,CAAC,CACF,CAEe,YAA6B,EAAI,CAC/C,MAAO,IAAI,SAAQ,GAAW,CAC7B,GAAS,CACR,KAAM,KAAK,CACV,GAAI,GAAO,GACL,EAAY,WAAW,IAAM,CAClC,EAAI,iCAAkC,CACrC,KAAM,EACN,OAAQ,qBACT,CAAC,EACD,EAAO,GACP,EAAQ,CAAE,CACX,EAAG,EAAO,EAEV,KAAO,GAAM,CACZ,GAAM,GAAQ,KAAK,IAAI,EACvB,EAAO,KAAM,IAAM,CAAE,EACrB,GAAM,GAAM,KAAK,IAAI,EAGrB,AAAI,GAAQ,EAAM,EAAQ,IAAU,KAAM,IAAM,CACjD,CAEA,aAAa,CAAS,EACtB,EAAQ,CAAE,CACX,EACA,KAAM,GACN,KAAM,CAAC,KAAI,cAAe,qBAAqB,CAChD,CAAC,CACF,CAAC,CACF,CKzHA,ICAA,wFCAA,ICAA,IAIA,aAAgB,CACf,MAAO,IAAM,EACd,CAEA,GAAO,IAAQ,GCRf,ICAA,ICAA,ICAA,IAAO,GAAM,IAAiB,OAAO,oBAAoB,EAC5C,EAAe,OAAO,iBAAiB,EACvC,GAAY,OAAO,eAAe,EAClC,GAAgB,OAAO,kBAAkB,EACzC,GAAQ,OAAO,WAAW,EAC1B,EAAQ,OAAO,WAAW,EAC1B,GAAU,OAAO,aAAa,EAC9B,GAAkB,OAAO,oBAAoB,EAC7C,GAAW,OAAO,cAAc,EAChC,GAAuB,OAAO,0BAA0B,EACxD,GAAY,OAAO,cAAc,EACjC,GAAU,OAAO,aAAa,EAC9B,GAAqB,OAAO,wBAAwB,EACpD,GAAU,cACV,GAAW,eACX,GAAS,OAAO,YAAY,EAC5B,GAA2B,OAAO,8BAA8B,EAChE,GAAmB,OAAO,sBAAsB,EAChD,GAAsB,OAAO,yBAAyB,EACtD,GAAoB,OAAO,uBAAuB,EAClD,GAAiB,OAAO,oBAAoB,EAC5C,GAAuB,OAAO,0BAA0B,EACxD,GAA0B,OAAO,6BAA6B,EAC9D,GAAS,OAAO,YAAY,EAC5B,GAAyB,OAAO,4BAA4B,EAC5D,GAAgB,OAAO,aAAa,EACpC,GAAqB,OAAO,kBAAkB,EAC9C,GAAoB,OAAO,uBAAuB,EAClD,GAAgB,OAAO,mBAAmB,EAC1C,GAAoB,OAAO,uBAAuB,EAClD,GAA0B,OAAO,6BAA6B,EAC9D,GAAwB,OAAO,2BAA2B,EAC1D,GAAc,OAAO,iBAAiB,EACtC,GAAwB,OAAO,2BAA2B,EAC1D,GAAgB,OAAO,mBAAmB,EAC1C,GAAuB,OAAO,0BAA0B,EACxD,GAAe,OAAO,kBAAkB,EACxC,GAAsB,OAAO,yBAAyB,EACtD,GAAuB,OAAO,0BAA0B,EACxD,GAAoB,OAAO,uBAAuB,EAClD,GAAwB,OAAO,2BAA2B,EAC1D,GAA6B,OAAO,gCAAgC,EACpE,GAA6B,OAAO,gCAAgC,EACpE,GAAkC,OAAO,qCAAqC,EAC9E,GAA0B,OAAO,6BAA6B,EAC9D,GAAyB,OAAO,4BAA4B,EAC5D,GAAqB,OAAO,wBAAwB,EACpD,GAAqB,OAAO,wBAAwB,EACpD,GAAwC,OACpD,2CACD,EACa,GAA6C,OACzD,gDACD,EACa,GAAmC,OAAO,sCAAsC,EAChF,GAAqB,OAAO,wBAAwB,EACpD,GAAgB,OAAO,mBAAmB,EAC1C,GAA6B,OAAO,gCAAgC,EACpE,GAA0B,OAAO,6BAA6B,EAC9D,GAA8B,OAAO,iCAAiC,EACtE,GAAc,OAAO,iBAAiB,EACtC,GAAyB,OAAO,4BAA4B,EAC5D,GAA4B,OAAO,+BAA+B,EAClE,GAAyC,OACrD,4CACD,EACa,GAAkC,OAAO,qCAAqC,EAC9E,GAAuB,OAAO,0BAA0B,EACxD,GAAwB,OAAO,2BAA2B,EAC1D,GAAsB,OAAO,yBAAyB,EACtD,GAA6B,OAAO,gCAAgC,EACpE,GAAwB,OAAO,2BAA2B,EAC1D,GAA2B,OAAO,8BAA8B,EAChE,GAAkC,OAAO,qCAAqC,EAC9E,GAA+B,OAAO,kCAAkC,EACxE,GAA0B,OAAO,6BAA6B,EAC9D,GAA+B,OAAO,kCAAkC,EACxE,GAAU,OAAO,aAAa,EAC9B,GAAmB,OAAO,sBAAsB,EAChD,GAAyB,OAAO,4BAA4B,EAC5D,GAAwC,OACpD,2CACD,EACa,GAA0B,OAAO,6BAA6B,EAC9D,GAAoB,OAAO,uBAAuB,EAElD,GAAyB,OAAO,4BAA4B,EDpF1D,WAA0B,EAAM,CAC9C,MAAK,GAEE,EAAK,IAFM,IAGnB,CDDA,GAAM,CAAC,gBAAe,EAEtB,YAA4B,EAAmB,CAC9C,GAAM,CAAC,KAAI,OAAM,YAAY,EAC7B,MAAO,CACN,GAAG,EACH,GAAI,SAA8B,EAAS,CAC1C,GAAM,CACL,UAAW,CAAC,SACT,EACJ,GAAI,IAAS,SAEZ,MAAO,GAAG,CAAO,EAElB,GAAM,GAAgB,EAAiB,CAAI,EAC3C,MAAO,IAAQ,EAAI,CAClB,KAAM,CAAC,CAAO,EACd,SAAU,GACV,OACA,QAAS,CACR,OACA,UACD,EACA,SAAU,EAAc,IACxB,KACD,CAAC,CACF,CACD,CACD,CAEA,YAA4B,EAAc,EAAQ,EAAK,CACtD,EAAI,IAAI,EAAQ,EAAa,IAAI,EAAkB,CAAC,CACrD,CAEO,YAA4B,EAAgB,CAClD,GAAM,GAA4B,CAAC,EAEnC,OAAW,KAAK,GAAgB,CAC/B,EAA0B,GAAK,GAAI,KACnC,GAAM,CAAC,OAAQ,GAAgB,EAAe,GAC9C,OAAS,GAAI,EAAG,EAAI,EAAc,IAAK,CACtC,GAAM,CACL,aAAc,CAAC,SAAQ,SACvB,OACA,SACA,WAAW,CAAC,EACZ,SAAS,OACT,kBACA,UACA,eACA,WACA,kBACG,EAAe,GAAG,GAClB,EAAuB,EAA0B,GAAG,IAAI,CAAM,EAC/D,EAA0B,GAAG,IAAI,CAAM,EACvC,CAAC,EAEE,EAAoB,EACvB,CACA,GAAI,SAAwC,EAAS,CACpD,MAAO,CACN,GAAG,EACH,QAAS,CACR,GAAG,EAAQ,QACX,CACC,SACA,KAAM,CAAC,GAAG,EAAM,EAAQ,SAAS,EACjC,WACA,QAAS,EACT,gBACD,CACD,CACD,CACD,EACA,KAAM,SACN,UACA,cACA,EACA,KAEG,EAAsB,EAAS,IAAI,GAAY,EACpD,GAAI,SAAmC,EAAS,CAC/C,GAAM,CAAC,SAAQ,OAAO,CAAC,GAAK,EAC5B,MAAO,CACN,GAAG,EACH,QAAS,CACR,GAAG,EAAQ,QACX,CACC,SACA,KAAM,CAAC,GAAG,EAAM,EAAQ,SAAS,EACjC,WACA,QAAS,EACT,gBACD,CACD,CACD,CACD,EACA,KAAM,SACN,UACA,cACD,EAAE,EAEF,EAAuB,CACtB,GAAG,EACH,GAAG,EACH,GAAI,EAAoB,CAAC,CAAiB,EAAI,CAAC,EAC/C,GAAG,EACH,GAAG,CACJ,EACA,EAA0B,GAAG,IAAI,EAAQ,CAAoB,CAC9D,CAEA,EAA0B,GAAG,QAAQ,EAAkB,CACxD,CAEA,MAAO,EACR,CGzHA,ICAA,ICAA,OAAM,IAAc,aAEL,YAA4B,EAAW,EAAU,CAC/D,MAAO,QAAO,KAAK,CAAQ,EAAE,OAAS,EAAW,EAAU,OAAS,CAAC,KAAM,EAAW,EAAI,CAAC,CAC5F,CDDA,YAAyB,EAAI,EAAM,EAAU,CAC5C,MAAO,CAAC,KAAI,OAAM,UAAQ,CAC3B,CAEA,YAAyB,EAAc,CACtC,GAAM,GAAS,CAAC,OAAQ,CAAC,EAAG,MAAO,CAAC,CAAC,EAC/B,CAAC,OAAQ,GAAoB,EACnC,OAAS,GAAI,EAAG,EAAI,EAAkB,IAAK,CAC1C,GAAM,GAAc,EAAa,GAC3B,CAAC,SAAQ,SAAS,EACxB,GAAI,CAAC,GAAU,CAAC,EAAO,CACtB,EAAO,OAAO,KAAK,GAAgB,CAAW,CAAC,EAC/C,QACD,CACA,AAAI,GAAQ,EAAO,OAAO,KAAK,GAAgB,EAAQ,SAAU,EAAO,OAAO,MAAM,CAAC,EAClF,GAAO,EAAO,MAAM,QAAQ,GAAgB,EAAO,QAAS,EAAO,MAAM,MAAM,CAAC,CACrF,CAEA,MAAO,EACR,CAEA,YAA2B,EAAU,EAAS,CAC7C,MAAI,GAAS,QACZ,EAAI,+CAA+C,KAAY,CAC9D,UACA,OAAQ,oBACR,KAAM,qIACP,CAAC,EAGK,EAAS,IAAI,GACnB,MAAO,IAAY,WAChB,CACA,OAAQ,EACR,KAAM,CAAC,CACP,EACA,CACA,GAAG,EACH,OAAQ,EAAQ,QAAU,EAAQ,GAClC,KAAM,EAAQ,MAAQ,CAAC,CACvB,CACJ,CACD,CAEO,YAAgC,EAAe,EAAS,CAC9D,GAAM,CACL,WAAW,CAAC,EACZ,OAAO,CAAC,EACR,eAAe,CAAC,EAChB,kBACA,QAAS,EACT,SACA,YAAY,CAAC,EACb,WAAW,CAAC,EACZ,UAAU,GACV,eAAe,GACf,iBAAiB,IACd,EAEJ,GAAI,MAAO,IAAkB,WAC5B,MAAO,CACN,kBACA,OAAQ,EACR,SAAU,CAAC,EACX,OACA,aAAc,GAAgB,CAAY,EAC1C,SACA,SAAU,GAAmB,EAAW,CAAQ,EAChD,UACA,eACA,gBACD,EAGD,cAA2B,EAAM,CAEhC,MAAO,GAAc,OAAO,GAAG,CAAI,CACpC,CAEA,MAAO,CACN,gBAAiB,GAAmB,EACpC,OAAQ,MAAO,GAAc,QAAW,WAAa,EAAiB,EAAc,OACpF,SAAU,GAAkB,EAAU,CAAO,EAC7C,OACA,aAAc,GAAgB,CAAY,EAC1C,SACA,SAAU,GAAmB,EAAW,CAAQ,EAChD,UACA,eACA,gBACD,CACD,CE9FA,ICAA,IAEO,YAAyB,EAAI,EAAS,CAC5C,GAAM,GAAkB,EAAG,IAC3B,MAAK,GAEE,CAAC,GAAG,EAAS,GAAG,CAAe,EAFT,CAG9B,CCPA,ICAA,ICAA,ICAA,IAOA,YAAkC,EAAY,CAc7C,MAAO,EACR,CAEA,GAAO,IAAQ,GCxBf,OAAM,IAA0B,CAAC,EAAS,CAAC,IAC1C,EAAO,OAAS,UACf,MAAM,QAAQ,EAAO,IAAI,GAAK,EAAO,KAAK,QAAQ,QAAQ,IAAM,IAChE,EAAO,OAAS,EAAO,MAAM,KAAK,CAAC,CAAC,UAAU,IAAS,QAAQ,EAQ3D,GAAuB,CAAC,EAAO,IAChC,GAAS,IAAiB,OAAkB,EAEzC,EAUF,GAAe,CAAC,EAAoB,EAAQ,IAAiB,CAClE,GAAM,CAAC,OAAQ,GAAc,EAC7B,GAAI,GAAY,iBAAoB,OAEpC,OAAS,GAAI,EAAG,EAAI,EAAY,IAAK,CACpC,GAAM,GAAQ,EAAO,GACrB,GAAI,MAAO,IAAU,SACpB,GAAK,GACA,GACJ,EAAM,QACL,EAAmB,QAAU,GAAwB,EAAmB,MAAM,EAE/E,MAAO,OALQ,OAAO,IAAqB,EAAO,CAAY,UAO3D,IAAU,QAAa,CAAC,EAAmB,SAAU,MAAO,EAElE,CAEA,MAAO,EACR,EAEe,YACd,EAAQ,CAAC,WAAY,CAAC,CAAC,EACvB,EACA,EAAqB,CAAC,EACrB,CACD,GAAM,GAAqB,CAAC,EAE5B,OAAW,KAAK,GACf,EAAmB,GAAK,GACvB,EAAoB,GACpB,CAAC,EAAmB,GAAI,EAAM,WAAW,EAAE,EAC3C,EAAoB,GAAG,OACxB,EAGD,MAAO,EACR,CC7DA,ICAA,QCAA,yOCAA,ICAA,ICAA,ICAA,IAAO,GAAM,IAAc,OACd,GAAc,OACd,GAAc,OACd,GAAc,OACd,GAAe,KAEf,GAAU,CACtB,OACA,MACA,eACA,KACA,QACA,QACA,QACA,QACA,SACD,EAEa,GAAgB,CAAC,YAAa,WAAW,EACzC,GAAgC,CAAC,YAAa,WAAW,EACzD,GAAoC,CAChD,UAAW,0BACX,UAAW,yBACZ,EACa,GAAmC,CAC/C,wBAAyB,YACzB,wBAAyB,WAC1B,EAEa,GAAoB,oBAG1B,GAAM,IAAkB,CAC9B,OACA,UACA,mBACA,MACA,MACA,QACA,eACA,YACA,WACA,UACA,UACA,UACA,QACA,WACA,YACA,WACA,SACA,OACA,WACA,aACA,OACA,KACA,KACA,YACA,YACA,QACA,SACA,WACA,OACA,cACA,WACA,MACA,WACA,WACA,OACA,OACA,UACA,WACA,OACA,MACA,WACA,SACA,QACA,OACA,OACD,EAEa,GAA4B,CACxC,GAAG,GACH,eACA,YACA,0BACA,0BACA,iCACA,0BACD,EAEa,GAAgC,CAC5C,GAAG,GACH,SACA,iBACA,YACA,SACA,QACA,QACA,iBACA,aACA,UACA,SACA,WACA,YACA,UACA,OACA,OACA,WACA,QACA,OACA,UACA,UACA,kBACA,cACA,WACA,SACA,cACA,WACA,WACA,MACA,UACA,WACA,UACA,MACA,OACA,aACA,cACA,aACA,iBACA,aACA,UACA,SACA,OACA,YACA,gBACA,YACA,QACA,WACA,UACA,OACA,QACA,OACA,WACA,OACA,OACA,MACA,WACA,MACA,MACA,QACA,aACA,OACA,UACA,UACA,OACA,SACA,UACA,aACA,iBACA,UACA,QACA,SACA,QACA,OACA,QACA,OACA,aACA,SACA,UACA,SACA,QACA,OACA,UACA,YACA,SACA,QACA,MACD,ECjLA,IAEA,GAAO,IAAQ,GAAa,CAC3B,OAAQ,kCACT,CAAC,ECJD,IAAO,GAAM,IAAQ,OAAO,WAAW,EAC1B,GAAiB,OAAO,oBAAoB,EHyBzD,GAAM,CAAC,gCAA+B,EAChC,GAAyB,EAAc,EAA2B,EAElE,GAAQ,GAAS,GAAU,KAG3B,GAAoB,EAAQ,GAAW,CAAC,YAAa,oBAAoB,CAAC,EAC1E,GAAkB,GAAO,EAAI,QAAQ,GAAG,EAAI,EAC5C,GAA0B,EAAQ,GAAiB,CAAC,YAAa,0BAA0B,CAAC,EAElG,YAA8B,EAAO,CACpC,GAAM,CAAC,KAAO,GAAQ,EACtB,MAAO,CAAC,EAAO,IAAU,CACxB,EAAG,MAAM,EAAO,CAAC,GAAG,EAAM,EAAO,CAAK,CAAC,CACxC,CACD,CAEA,GAAM,IAAkB,GAAO,CAC9B,GAAM,GAAQ,EAAI,QAAQ,GAAG,E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B,GAAa,CAClB,GAAG,GACH,qBAAsB,CACrB,GAAG,GACH,WAAY,CACX,QAAS,CAAC,EACV,SAAU,GACV,SAAU,GACV,WAAY,GACZ,QAAS,GACT,YAAa,GACb,WAAY,GACZ,oBAAqB,GACrB,OAAQ,GACR,cAAe,CACd,GAAG,GACH,WAAY,+CACb,EACA,yBAA0B,CACzB,GAAG,GACH,WAAY,+CACb,EACA,aAAc,CACb,GAAG,GACH,MAAO,EACR,EACA,SAAU,EACX,EACA,qBAAsB,EACvB,CACD,EAEM,GAAe,CACpB,GAAG,GACH,MAAO,CACN,MAAO,CACN,CACC,GAAG,GACH,WAAY,CACX,OAAQ,GACR,MAAO,EACR,EACA,qBAAsB,EACvB,EACA,EACD,CACD,CACD,EAEM,GAAU,CACf,GAAG,GACH,qBAAsB,CACrB,GAAG,GACH,WAAY,CACX,SAAU,CACT,GAAG,GACH,WAAY,oDACZ,MAAO,CACN,MAAO,CACN,CACC,GAAG,GACH,WAAY,CACX,OAAQ,GACR,GAAI,GACJ,KAAM,EACP,EACA,qBAAsB,EACvB,EACA,EACD,CACD,CACD,EACA,aAAc,CACb,GAAG,GACH,WAAY,iEACb,EACA,OAAQ,CACP,GAAG,GACH,WAAY,mDACb,EACA,QAAS,CACR,KAAM,UACN,WAAY,qEACb,EACA,OAAQ,EACT,EACA,qBAAsB,EACvB,CACD,EAEM,GAAiB,CACtB,GAAG,GACH,qBAAsB,CACrB,MAAO,CACN,CACC,GAAG,GACH,WAAY,CACX,OAAQ,GACR,KAAM,GACN,eAAgB,GAChB,gBAAiB,GACjB,gBACA,SAAU,CACT,MAAO,CACN,CACC,GAAG,GACH,WAAY,CACX,KAAM,CACL,GAAG,GACH,KAAM,CAAC,GAAc,QAAQ,CAC9B,EACA,MAAO,GACP,QAAS,GACT,QAAS,EACV,EACA,qBAAsB,EACvB,EACA,CACC,GAAG,GACH,WAAY,CACX,KAAM,CACL,GAAG,GACH,KAAM,CAAC,GAAc,QAAQ,CAC9B,EACA,MAAO,EACR,EACA,qBAAsB,EACvB,EACA,CACC,GAAG,GACH,WAAY,CACX,KAAM,CACL,GAAG,GA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CA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,GACA,GACA,MACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,OACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,SACF,EC/KA,IASO,GAAM,IAAQ,OAAO,OAAO,CAAC,CAAC,EAgF9B,YAAe,EAAM,EAAS,EAAc,GAAmB,CACpE,GAAM,GAAgB,GAAI,KAE1B,OAAW,KAAQ,QAAO,OAAO,CAAI,EACnC,EAAc,IAAI,EAAM,GAAqB,EAAS,CAAI,CAAC,EAI7D,GAAI,GACA,EAAU,MAAM,QAAQ,CAAI,EAC5B,EAAO,CAAC,CAAI,EACZ,EAAQ,GACR,EAAQ,CAAC,EACT,EAAO,EACP,EACA,EACE,EAAO,CAAC,EACR,EAAY,CAAC,EAGnB,EAAG,CACD,IACA,GAAM,GAAY,IAAU,EAAK,OAC3B,EAAW,GAAa,EAAM,SAAW,EAE/C,GAAI,EAAW,CAKb,GAJA,EAAM,EAAU,SAAW,EAAI,OAAY,EAAK,EAAK,OAAS,GAC9D,EAAO,EACP,EAAS,EAAU,IAAI,EAEnB,EACF,GAAI,EAAS,C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","names":[],"sources":["../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom-signature/dist/index.js","../../../../../../../packages/effects/effect-amb/node_modules/path-to-regexp/index.js","../../../../../../../packages/effects/effect-graphql/node_modules/mustache/mustache.js","../../../../../../../packages/effects/effect-http/node_modules/path-to-regexp/index.js","../../../../../../../node_modules/string-template/index.js","../../../../../../../node_modules/object-assign/index.js","../../../../../../../node_modules/react/cjs/react.production.min.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/sn-custom-create-element/lib/camelCase.js","../../../../../../../node_modules/sn-custom-create-element/lib/constants.js","../../../../../../../node_modules/sn-custom-create-element/lib/ariaRefHelpers.js","../../../../../../../node_modules/sn-custom-create-element/lib/index.js","../../../../../../../mega-bundle-entry.js","../../../../../../../packages/behaviors/behavior-local-storage/src/global-shim.js","../../../../../../../packages/behaviors/behavior-local-storage/src/index.js","../../../../../../../packages/behaviors/behavior-local-storage/src/createLocalStorageBehavior.js","../../../../../../../packages/behaviors/behavior-post-message/src/global-shim.js","../../../../../../../packages/behaviors/behavior-post-message/src/index.js","../../../../../../../packages/behaviors/behavior-post-message/src/constants.js","../../../../../../../packages/behaviors/behavior-post-message/src/createPostMessageBehavior.js","../../../../../../../packages/internal/src/index.js","../../../../../../../packages/internal/src/callAsync.js","../../../../../../../packages/internal/src/symbols.js","../../../../../../../packages/internal/src/constants.js","../../../../../../../packages/internal/src/createLogger.js","../../../../../../../packages/internal/src/logHandler/index.js","../../../../../../../packages/internal/src/logHandler/constants.js","../../../../../../../packages/internal/src/logHandler/createLogContext.js","../../../../../../../packages/internal/src/logHandler/shouldLog.js","../../../../../../../packages/config/src/index.js","../../../../../../../packages/config/src/config.js","../../../../../../../packages/utils/src/index.js","../../../../../../../packages/utils/src/kebabCase.js","../../../../../../../packages/utils/src/camelCase.js","../../../../../../../packages/utils/src/toString.js","../../../../../../../packages/utils/src/toLower.js","../../../../../../../packages/utils/src/toUpper.js","../../../../../../../packages/utils/src/memoize.js","../../../../../../../packages/utils/src/findKey.js","../../../../../../../packages/utils/src/get.js","../../../../../../../packages/utils/src/splitPath.js","../../../../../../../packages/utils/src/set.js","../../../../../../../packages/utils/src/pick.js","../../../../../../../packages/utils/src/omit.js","../../../../../../../packages/utils/src/values.js","../../../../../../../packages/utils/src/noop.js","../../../../../../../packages/utils/src/isEqual.js","../../../../../../../packages/utils/src/isSelectiveEqual.js","../../../../../../../packages/utils/src/isPlainObject.js","../../../../../../../packages/utils/src/isEmpty.js","../../../../../../../packages/utils/src/defer.js","../../../../../../../packages/utils/src/isThrottled.js","../../../../../../../packages/utils/src/nextTick.js","../../../../../../../packages/utils/src/deferMetrics.js","../../../../../../../packages/utils/src/whenIdle.js","../../../../../../../packages/utils/src/requestIdleCallback.js","../../../../../../../packages/utils/src/raf.js","../../../../../../../packages/utils/src/createSnHttp.js","../../../../../../../packages/config/src/constants.js","../../../../../../../packages/config/src/emitNowUiEvent.js","../../../../../../../packages/config/src/configs/index.js","../../../../../../../packages/config/src/configs/dev.js","../../../../../../../packages/config/src/configs/prod.js","../../../../../../../packages/config/src/configs/test.js","../../../../../../../packages/config/src/config-embeddable/index.js","../../../../../../../packages/config/src/config-embeddable/baseUrl.js","../../../../../../../packages/internal/src/logHandler/observe.js","../../../../../../../packages/internal/src/logHandler/logObservers.js","../../../../../../../packages/internal/src/logHandler/notifyLogObservers.js","../../../../../../../packages/internal/src/getHostInfo.js","../../../../../../../packages/internal/src/memoizeProfiler.js","../../../../../../../packages/internal/src/sandbox.js","../../../../../../../packages/metrics/src/index.js","../../../../../../../packages/metrics/src/constants.js","../../../../../../../packages/metrics/src/applyInteractionId.js","../../../../../../../packages/metrics/src/symbols.js","../../../../../../../packages/metrics/src/createInteractionId.js","../../../../../../../packages/metrics/src/getInteractionId.js","../../../../../../../packages/metrics/src/validateMeta.js","../../../../../../../packages/metrics/src/isObject.js","../../../../../../../packages/metrics/src/setInteractionId.js","../../../../../../../packages/metrics/src/validateSetInteractionIdArguments.js","../../../../../../../packages/metrics/src/createTraceId.js","../../../../../../../packages/metrics/src/defineMetric.js","../../../../../../../packages/metrics/src/levels.js","../../../../../../../packages/metrics/src/mark.js","../../../../../../../packages/metrics/src/resolveContext.js","../../../../../../../packages/metrics/src/augment.js","../../../../../../../packages/metrics/src/augmenters.js","../../../../../../../packages/metrics/src/marks.js","../../../../../../../packages/metrics/src/counters.js","../../../../../../../packages/metrics/src/shouldMark.js","../../../../../../../packages/metrics/src/observers.js","../../../../../../../packages/metrics/src/validateMarkArguments.js","../../../../../../../packages/metrics/src/isElement.js","../../../../../../../packages/metrics/src/getMarks.js","../../../../../../../packages/metrics/src/clearMarks.js","../../../../../../../packages/metrics/src/observe.js","../../../../../../../packages/metrics/src/getMetricTypes.js","../../../../../../../packages/metrics/src/addMarkAugmenter.js","../../../../../../../packages/metrics/src/metrics.js","../../../../../../../packages/metrics/src/timingMetrics.js","../../../../../../../packages/internal/src/getSpanOptions.js","../../../../../../../packages/internal/src/guid.js","../../../../../../../packages/internal/src/createAriaRef.js","../../../../../../../packages/internal/src/refs/index.js","../../../../../../../packages/internal/src/refs/isRef.js","../../../../../../../packages/internal/src/refs/createRef.js","../../../../../../../packages/internal/src/refs/subscribeToRef.js","../../../../../../../packages/internal/src/pendingNetworkActionsRegistry.js","../../../../../../../packages/behaviors/behavior-post-message/src/log.js","../../../../../../../packages/config/src/global-shim.js","../../../../../../../packages/core/src/global-shim.js","../../../../../../../packages/core/src/index.js","../../../../../../../packages/core/src/stats.js","../../../../../../../packages/core/src/constants.js","../../../../../../../packages/core/src/whenComponentIsIdle.js","../../../../../../../packages/core/src/scheduler/index.js","../../../../../../../packages/core/src/scheduler/queue.js","../../../../../../../packages/core/src/scheduler/metrics.js","../../../../../../../packages/core/src/log.js","../../../../../../../packages/core/src/createCustomElementFactory.js","../../../../../../../packages/core/src/createElementClass.js","../../../../../../../packages/core/src/utils/schema/index.js","../../../../../../../packages/core/src/utils/schema/build/noop.js","../../../../../../../packages/core/src/utils/config/index.js","../../../../../../../packages/core/src/utils/config/createInterceptors.js","../../../../../../../packages/core/src/utils/getHostVariables.js","../../../../../../../packages/core/src/symbols.js","../../../../../../../packages/core/src/utils/config/lifeCycleFnsToHandlers.js","../../../../../../../packages/core/src/utils/config/normalizeActionHandler.js","../../../../../../../packages/core/src/utils/config/normalizeModifiers.js","../../../../../../../packages/core/src/actions/utils/index.js","../../../../../../../packages/core/src/actions/utils/appendToPayload.js","../../../../../../../packages/core/src/actions/utils/createMetaData.js","../../../../../../../packages/core/src/actions/utils/getComponentName.js","../../../../../../../packages/core/src/utils/index.js","../../../../../../../packages/core/src/utils/assertValidPropertyNames.js","../../../../../../../packages/core/src/utils/resolveProperties.js","../../../../../../../packages/core/src/utils/resolveRenderer.js","../../../../../../../packages/core/src/defaults.js","../../../../../../../packages/renderers/snabbdom/src/index.js","../../../../../../../packages/renderers/snabbdom/src/onStateChange.js","../../../../../../../packages/renderers/snabbdom/src/utils/index.js","../../../../../../../packages/renderers/snabbdom/src/utils/formatProps.js","../../../../../../../packages/renderers/snabbdom/src/constants/index.js","../../../../../../../packages/renderers/snabbdom/src/log.js","../../../../../../../packages/renderers/snabbdom/src/symbols.js","../../../../../../../packages/renderers/snabbdom/src/utils/formatChildren.js","../../../../../../../packages/renderers/snabbdom/src/utils/flat.js","../../../../../../../packages/renderers/snabbdom/src/utils/patch.js","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/init.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/vnode.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/is.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/htmldomapi.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/modules/class.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/modules/style.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/modules/eventlisteners.ts","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/modules/dataset.ts","../../../../../../../packages/renderers/snabbdom/src/modules/index.js","../../../../../../../packages/renderers/snabbdom/src/modules/ref.js","../../../../../../../packages/renderers/snabbdom/src/modules/props.js","../../../../../../../packages/renderers/snabbdom/src/modules/attributes.js","../../../../../../../packages/renderers/snabbdom/src/utils/validateProps.js","../../../../../../../packages/renderers/snabbdom/src/utils/hydrate.js","../../../../../../../packages/renderers/snabbdom/src/createElementFromNode.js","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/tovnode.ts","../../../../../../../packages/renderers/snabbdom/src/utils/toVNodeFromServerSideRenderedNode.js","../../../../../../../packages/renderers/snabbdom/src/onDisconnect.js","../../../../../../../packages/renderers/snabbdom/src/createAriaRef.js","../../../../../../../packages/renderers/snabbdom/src/createSlot.js","../../../../../../../packages/renderers/snabbdom/src/createElement.js","../../../../../../../packages/renderers/snabbdom/node_modules/snabbdom/src/package/h.ts","../../../../../../../packages/renderers/snabbdom/src/createElementFromString.js","../../../../../../../packages/renderers/snabbdom/src/dangerouslyCreateElementFromString.js","../../../../../../../packages/renderers/snabbdom/src/fragment.js","../../../../../../../packages/renderers/default/src/index.js","../../../../../../../packages/core/src/utils/getInitialPropertyValue.js","../../../../../../../packages/core/src/utils/toAttributeName.js","../../../../../../../packages/core/src/property-selectors/index.js","../../../../../../../packages/core/src/property-selectors/createAddMapping.js","../../../../../../../packages/core/src/property-selectors/createRemoveMappings.js","../../../../../../../packages/core/src/property-selectors/createGetAffected.js","../../../../../../../packages/core/src/property-selectors/isSelectableProperty.js","../../../../../../../packages/core/src/property-selectors/createGetComponentAffected.js","../../../../../../../packages/core/src/property-selectors/createAddResolvedPropertyMapping.js","../../../../../../../packages/core/src/property-selectors/createAddSelectablePropertyMapping.js","../../../../../../../packages/core/src/property-selectors/resolvedMappingHasKey.js","../../../../../../../packages/core/src/property-selectors/getResolvedPropertyValue.js","../../../../../../../packages/core/src/property-selectors/createRemoveResolvedPropertyMapping.js","../../../../../../../packages/core/src/property-selectors/createAddResolvedPropertyMappingWithKey.js","../../../../../../../packages/core/src/property-selectors/resolveSelectedProperty.js","../../../../../../../packages/core/src/property-selectors/resolveSelectedProperties.js","../../../../../../../packages/core/src/property-selectors/resolveProviderSelectedProperty.js","../../../../../../../packages/core/src/utils/getResolvedValue.js","../../../../../../../packages/core/src/utils/shouldAddToResolvedPropertyMapping.js","../../../../../../../packages/core/src/property-selectors/getSelectorParts.js","../../../../../../../packages/core/src/property-selectors/isSelector.js","../../../../../../../packages/core/src/property-selectors/updatePropertiesWithSelector.js","../../../../../../../packages/core/src/property-selectors/getPartsForNestedSelectableProps.js","../../../../../../../packages/core/src/property-selectors/applyUpdatesForSelectableProps.js","../../../../../../../packages/core/src/property-selectors/createUnstableResolvePropertySelectorValue.js","../../../../../../../packages/core/src/property-selectors/unstableAddRenderOnPropertySelectorValueChange.js","../../../../../../../packages/core/src/property-selectors/unstableRemoveRenderOnPropertySelectorValueChange.js","../../../../../../../packages/core/src/utils/filterPropertyDefinitions.js","../../../../../../../packages/core/src/utils/createStyleFragment.js","../../../../../../../packages/core/src/utils/reflectQueue.js","../../../../../../../packages/core/src/utils/isReflecting.js","../../../../../../../packages/core/src/utils/clearReflection.js","../../../../../../../packages/core/src/utils/isComputedProperty.js","../../../../../../../packages/core/src/utils/toPropertyName.js","../../../../../../../packages/core/src/utils/isReadOnlyProperty.js","../../../../../../../packages/core/src/utils/shouldSetAttribute.js","../../../../../../../packages/core/src/utils/shouldSetProperty.js","../../../../../../../packages/core/src/utils/beforeNextTick.js","../../../../../../../packages/core/src/utils/measure.js","../../../../../../../packages/core/src/utils/selectablePropertyResolver.js","../../../../../../../packages/core/src/utils/triggerComponentUpdates.js","../../../../../../../packages/core/src/utils/triggerPropertyChangeAction.js","../../../../../../../packages/core/src/utils/isPropToSkipRender.js","../../../../../../../packages/core/src/utils/updateSelectedPropertyMappings.js","../../../../../../../packages/core/src/utils/updateResolvedSelectedPropertyMappings.js","../../../../../../../packages/core/src/utils/helpers/quickEquals.js","../../../../../../../packages/core/src/utils/updateResolvedValue.js","../../../../../../../packages/core/src/utils/createLifecycleFunctions.js","../../../../../../../packages/core/src/utils/emitNowUiEvent.js","../../../../../../../packages/core/src/utils/camelCaseProperties.js","../../../../../../../packages/core/src/utils/unescapeReservedCharacters.js","../../../../../../../packages/core/src/utils/isHoisted.js","../../../../../../../packages/core/src/utils/getHoistTarget.js","../../../../../../../packages/core/src/utils/getRootNode.js","../../../../../../../packages/core/src/utils/applyMetrics.js","../../../../../../../packages/core/src/utils/normalizeActionMeta.js","../../../../../../../packages/core/src/utils/helpers/createComponentLogger.js","../../../../../../../packages/core/src/utils/helpers/deferHelperExecution.js","../../../../../../../packages/core/src/utils/resolveComputedProperties.js","../../../../../../../packages/core/src/utils/filterComputedProperties.js","../../../../../../../packages/core/src/utils/computeProperty.js","../../../../../../../packages/core/src/utils/activeSpan.js","../../../../../../../packages/core/src/utils/computeProperties.js","../../../../../../../packages/core/src/utils/intersectionObserver.js","../../../../../../../packages/core/src/utils/applyIntersectStyles.js","../../../../../../../packages/core/src/utils/operators/index.js","../../../../../../../packages/core/src/utils/operators/assign.js","../../../../../../../packages/core/src/utils/operators/merge.js","../../../../../../../packages/core/src/utils/operators/operations.js","../../../../../../../packages/core/src/utils/shouldOptOutOfDeepCompareForPage.js","../../../../../../../packages/core/src/utils/styleSheetsContentCache.js","../../../../../../../packages/core/src/utils/resolveStylesheetsContent.js","../../../../../../../packages/core/src/utils/styleSheetsRequestCache.js","../../../../../../../packages/core/src/utils/markComponentInteractive.js","../../../../../../../packages/core/src/utils/createOnStateChangeArgs.js","../../../../../../../packages/core/src/utils/getAncestorNode.js","../../../../../../../packages/core/src/utils/updateCustomElement.js","../../../../../../../packages/core/src/utils/getSpanOptions.js","../../../../../../../packages/core/src/utils/resolveParentTraceId.js","../../../../../../../packages/core/src/actions/utils/isPropertyUpdate.js","../../../../../../../packages/core/src/actions/utils/validateActionPayload.js","../../../../../../../packages/core/src/actions/utils/isInternalActionType.js","../../../../../../../packages/core/src/actions/utils/getInternalActionName.js","../../../../../../../packages/core/src/actions/utils/createEventActionDetails.js","../../../../../../../packages/core/src/actions/utils/wrapDispatch.js","../../../../../../../packages/core/src/actions/utils/isStoreUpdate.js","../../../../../../../packages/core/src/actions/utils/hasActionHandlerForType.js","../../../../../../../packages/core/src/actions/utils/wasActionDispatchedByDescendant.js","../../../../../../../packages/core/src/actions/utils/applyRuntimeActionHandlers.js","../../../../../../../packages/core/src/actions/customEventActionHandler.js","../../../../../../../packages/core/src/actions/onAction.js","../../../../../../../packages/core/src/actions/createContext.js","../../../../../../../packages/core/src/context/createContextProxy.js","../../../../../../../packages/core/src/context/consumers.js","../../../../../../../packages/core/src/context/createContext.js","../../../../../../../packages/core/src/context/contexts.js","../../../../../../../packages/core/src/actions/sandboxEffect.js","../../../../../../../packages/core/src/effects/index.js","../../../../../../../packages/core/src/effects/effectRunner.js","../../../../../../../packages/core/src/effects/modifiers/index.js","../../../../../../../packages/core/src/effects/modifiers/debounce.js","../../../../../../../packages/core/src/effects/modifiers/hostMap.js","../../../../../../../packages/core/src/effects/modifiers/takeLatest.js","../../../../../../../packages/core/src/effects/modifiers/throttle.js","../../../../../../../packages/core/src/effects/modifiers/getTargetElement.js","../../../../../../../packages/core/src/effects/modifiers/types.js","../../../../../../../packages/core/src/effects/runEffect.js","../../../../../../../packages/core/src/actions/onActionHoisted.js","../../../../../../../packages/core/src/actions/utils/skipForDetachedComponent.js","../../../../../../../packages/core/src/utils/config/mergeBehaviorActionHandlers.js","../../../../../../../packages/core/src/utils/config/mergeBehaviorInitialState.js","../../../../../../../packages/core/src/utils/config/mergeBehaviorProperties.js","../../../../../../../packages/core/src/utils/config/mergeLifeCycleActionHandlers.js","../../../../../../../packages/core/src/utils/config/normalizeActionHandlers.js","../../../../../../../packages/core/src/utils/config/normalizeBehaviors.js","../../../../../../../packages/core/src/utils/config/getStopPropagation.js","../../../../../../../packages/core/src/utils/config/mergeActions.js","../../../../../../../packages/core/src/utils/config/mergeEventActionHandlers.js","../../../../../../../packages/core/src/utils/config/applyPayloadValidators.js","../../../../../../../packages/core/src/utils/config/mergeBehaviorActions.js","../../../../../../../packages/core/src/utils/config/getActionsToDispatch.js","../../../../../../../packages/core/src/utils/config/normalizeBehaviorEventHandlers.js","../../../../../../../packages/core/src/accessibility/ariaLiveRegion.js","../../../../../../../packages/core/src/context/validateContext.js","../../../../../../../packages/core/src/utils/schema/getComponentName.js","../../../../../../../packages/core/src/utils/schema/validate/validateSchema.js","../../../../../../../packages/core/src/utils/schema/logValidationError.js","../../../../../../../packages/core/src/utils/parse/index.js","../../../../../../../packages/core/src/utils/parse/property.js","../../../../../../../packages/core/src/utils/parse/isValuePropertySelector.js","../../../../../../../packages/core/src/utils/parse/refProperty.js","../../../../../../../packages/core/src/utils/parse/types.js","../../../../../../../packages/core/src/utils/parse/parse.js","../../../../../../../packages/core/src/utils/parse/properties.js","../../../../../../../packages/core/src/actions/index.js","../../../../../../../packages/core/src/actions/createDispatcher.js","../../../../../../../packages/core/src/actions/customEventDispatcher.js","../../../../../../../packages/core/src/actions/addActionHandlerForUnknownType.js","../../../../../../../packages/core/src/actions/createConditionalDispatch.js","../../../../../../../packages/core/src/actions/addActionHandlers.js","../../../../../../../packages/core/src/actions/removeActionHandlers.js","../../../../../../../packages/core/src/utils/helpers/index.js","../../../../../../../packages/core/src/utils/helpers/createUpdateState.js","../../../../../../../packages/core/node_modules/immer/src/common.js","../../../../../../../packages/core/node_modules/immer/src/scope.js","../../../../../../../packages/core/node_modules/immer/src/es5.js","../../../../../../../packages/core/node_modules/immer/src/proxy.js","../../../../../../../packages/core/node_modules/immer/src/patches.js","../../../../../../../packages/core/node_modules/immer/src/immer.js","../../../../../../../packages/core/node_modules/immer/src/index.js","../../../../../../../packages/core/src/utils/helpers/utils.js","../../../../../../../packages/core/src/utils/helpers/getStatePropsContext.js","../../../../../../../packages/core/src/utils/helpers/createUpdateContext.js","../../../../../../../packages/core/src/context/renderContextConsumers.js","../../../../../../../packages/core/src/utils/helpers/createUpdateProperties.js","../../../../../../../packages/core/src/utils/helpers/createDispatch.js","../../../../../../../packages/core/src/hoist.js","../../../../../../../packages/core/src/applyStyles.js","../../../../../../../packages/core/src/removeStyles.js","../../../../../../../packages/core/src/shape-render-data/index.js","../../../../../../../packages/core/src/shape-render-data/reflectProperties.js","../../../../../../../packages/core/src/utils/addResolvedSelectedPropertyMappingWithResolvedValue.js","../../../../../../../packages/core/src/utils/nowResolvedPropsHandler.js","../../../../../../../packages/core/src/validateConfig.js","../../../../../../../packages/effects/effect-amb/src/global-shim.js","../../../../../../../packages/effects/effect-amb/src/index.js","../../../../../../../packages/effects/effect-amb/src/ambSubscriptionEffect.js","../../../../../../../packages/effects/effect-amb/src/getAMBClient.js","../../../../../../../packages/effects/effect-amb/src/utils/index.js","../../../../../../../packages/effects/effect-amb/src/utils/createSubscriptionId.js","../../../../../../../packages/effects/effect-amb/src/utils/createRegistryId.js","../../../../../../../packages/effects/effect-amb/src/utils/replaceChannelParameters.js","../../../../../../../packages/effects/effect-amb/src/createGarbageCollectorMap.js","../../../../../../../packages/effects/effect-amb/src/utils/setInterval.js","../../../../../../../packages/effects/effect-amb/src/ambPublishEffect.js","../../../../../../../packages/effects/effect-amb/src/ambEventEffect.js","../../../../../../../packages/effects/effect-graphql/src/global-shim.js","../../../../../../../packages/effects/effect-graphql/src/index.js","../../../../../../../packages/effects/effect-graphql/src/gqlEffect.js","../../../../../../../packages/effects/effect-helpers/src/index.js","../../../../../../../packages/effects/effect-helpers/src/createHttpErrorAction.js","../../../../../../../packages/effects/effect-helpers/src/resolveDomainContext.js","../../../../../../../packages/effects/effect-helpers/src/cache/getUserSysId.js","../../../../../../../packages/effects/effect-helpers/src/cache/hash.js","../../../../../../../packages/effects/effect-helpers/src/cache/cachePolicies/lruCachePolicy.js","../../../../../../../packages/effects/effect-helpers/src/cache/cache.js","../../../../../../../packages/effects/effect-helpers/src/cache/store.js","../../../../../../../packages/effects/effect-helpers/src/cache/murmur-hash3.js","../../../../../../../packages/effects/effect-graphql/src/http/index.js","../../../../../../../packages/effects/effect-graphql/src/http/sendRequest.js","../../../../../../../packages/effects/effect-graphql/src/http/createQueryBatcher.js","../../../../../../../packages/effects/effect-graphql/src/http/snHttp.js","../../../../../../../packages/effects/effect-graphql/src/utils/index.js","../../../../../../../packages/effects/effect-graphql/src/utils/addDomainContextToGraphQLDocument.js","../../../../../../../packages/effects/effect-graphql/src/utils/addQueryNameToGraphQLDocument.js","../../../../../../../packages/effects/effect-graphql/src/utils/getGlobalObject.js","../../../../../../../packages/effects/effect-graphql/src/utils/isSubscription.js","../../../../../../../packages/effects/effect-graphql/src/utils/isSubscriptionResult.js","../../../../../../../packages/effects/effect-graphql/src/utils/replaceQueryTemplateVariables.js","../../../../../../../packages/effects/effect-graphql/src/utils/graphQLDocument.js","../../../../../../../packages/effects/effect-graphql/node_modules/tslib/tslib.es6.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/index.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/jsutils/devAssert.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/parser.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/error/syntaxError.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/error/GraphQLError.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/jsutils/isObjectLike.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/location.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/jsutils/invariant.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/printLocation.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/ast.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/directiveLocation.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/kinds.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/lexer.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/blockString.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/characterClasses.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/tokenKind.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/source.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/jsutils/inspect.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/jsutils/instanceOf.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/printer.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/printString.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/visitor.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/language/index.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/utilities/index.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../../../../../../../packages/effects/effect-graphql/node_modules/graphql-tag/src/index.ts","../../../../../../../packages/effects/effect-graphql/src/utils/getOperationName.js","../../../../../../../packages/effects/effect-graphql/src/utils/getSpanOptions.js","../../../../../../../packages/effects/effect-graphql/src/constants.js","../../../../../../../packages/effects/effect-graphql/src/http/documentToQueryString.js","../../../../../../../packages/effects/effect-graphql/src/http/resultsCache.js","../../../../../../../packages/effects/effect-graphql/src/http/shouldCache.js","../../../../../../../packages/effects/effect-graphql/src/utils/traceHelper.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/index.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/createSubscriptionId.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/createRegistryId.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/getAMBClient.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/handleGraphQLSubscription.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/getChannelsFromSubscriptionQuery.js","../../../../../../../packages/effects/effect-graphql/src/subscriptions/handleAMBSubscription.js","../../../../../../../packages/effects/effect-graphql/src/queryContext.js","../../../../../../../packages/effects/effect-helpers/src/global-shim.js","../../../../../../../packages/effects/effect-http/src/global-shim.js","../../../../../../../packages/effects/effect-http/src/index.js","../../../../../../../packages/effects/effect-http/src/httpEffect.js","../../../../../../../packages/effects/effect-http/src/sendRequest.js","../../../../../../../packages/effects/effect-http/src/snHttp.js","../../../../../../../packages/effects/effect-http/src/getGlobalObject.js","../../../../../../../packages/effects/effect-http/src/isBatchingEnabled.js","../../../../../../../packages/effects/effect-http/src/filterHeaders.js","../../../../../../../packages/effects/effect-http/src/log.js","../../../../../../../packages/effects/effect-http/src/replacePathParams.js","../../../../../../../packages/effects/effect-http/src/constants.js","../../../../../../../packages/effects/effect-update-state/src/global-shim.js","../../../../../../../packages/effects/effect-update-state/src/index.js","../../../../../../../packages/effects/effect-update-state/src/updateStateEffect.js","../../../../../../../packages/internal/src/global-shim.js","../../../../../../../packages/metrics/src/global-shim.js","../../../../../../../packages/renderers/default/src/global-shim.js","../../../../../../../packages/renderers/default/src/index.js","../../../../../../../packages/renderers/snabbdom/src/global-shim.js","../../../../../../../packages/types/src/global-shim.js","../../../../../../../packages/types/src/index.js","../../../../../../../packages/types/src/primitives.js","../../../../../../../packages/types/src/sets.js","../../../../../../../packages/utils/src/global-shim.js","../../../../../../../sn-seismic-post-message.js","../../../../../../../node_modules/sn-seismic-post-message/src/index.js","../../../../../../../sn-translate.js","../../../../../../../node_modules/sn-translate/src/index.js","../../../../../../../sn-custom-create-element.js"],"sourcesContent":["\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.sign = exports.removeSignature = exports.denyUnlessSigned = exports.signingH = exports.signedData = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar signatureKey = 'snabbdom_signature';\nvar signature = Symbol.for(signatureKey);\n\nvar signedData = _defineProperty({}, signatureKey, signature);\n\nexports.signedData = signedData;\n\nvar signData = function signData(data) {\n  return Object.assign({}, data, signedData);\n};\n\nvar isPlainTextNode = function isPlainTextNode(vnode) {\n  return vnode.children === undefined && vnode.data === undefined && vnode.key === undefined;\n};\n\nvar isSigned = function isSigned(vnode) {\n  return vnode.data ? vnode.data[signatureKey] === signature : isPlainTextNode(vnode);\n};\n\nvar removeSignatureFromData = function removeSignatureFromData(data) {\n  return Object.assign({}, data, _defineProperty({}, signatureKey, undefined));\n};\n\nvar isPrimitive = function isPrimitive(a) {\n  return ['string', 'number'].includes(_typeof(a));\n};\n\nvar signingH = function signingH(defaultH) {\n  return function (sel, b, c) {\n    if (c !== undefined) {\n      // a - sel, b - data, c - primitive/child/children\n      return defaultH(sel, signData(b), c);\n    } else if (b === undefined) {\n      // a - sel\n      return defaultH(sel, signedData);\n    } else if (Array.isArray(b) || b.sel || isPrimitive(b)) {\n      // a - sel, b - primitive/child/children\n      return defaultH(sel, signedData, b);\n    } else {\n      // a - sel, b - data\n      return defaultH(sel, signData(b));\n    }\n  };\n};\n\nexports.signingH = signingH;\n\nvar denyUnlessSignedHook = function denyUnlessSignedHook(oldVnode, vnode) {\n  if (!isSigned(vnode)) {\n    throw new Error('Patching with a vnode which is not correctly signed!');\n  }\n};\n\nvar denyUnlessSigned = {\n  create: denyUnlessSignedHook,\n  update: denyUnlessSignedHook\n};\nexports.denyUnlessSigned = denyUnlessSigned;\n\nvar processDataRecursively = function processDataRecursively(checkIfValidVnode, dataProcessFn) {\n  var fn = function fn(tree) {\n    checkIfValidVnode(tree);\n    var data = dataProcessFn(tree.data);\n    var children = tree.children ? tree.children.map(fn) : undefined;\n    return Object.assign({}, tree, {\n      data: data,\n      children: children\n    });\n  };\n\n  return fn;\n};\n\nvar removeSignature = processDataRecursively(function (vnode) {\n  if (!isSigned(vnode)) {\n    throw new Error('Unable to remove the signature, because the vnode is not signed.');\n  }\n}, removeSignatureFromData);\nexports.removeSignature = removeSignature;\nvar sign = processDataRecursively(function () {}, signData);\nexports.sign = sign;","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n  // \"(\\\\d+)\"  => [undefined, undefined, \"\\d+\", undefined]\n  '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n  var whitelist = (options && options.whitelist) || undefined\n  var pathEscaped = false\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) !== null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      pathEscaped = true\n      continue\n    }\n\n    var prev = ''\n    var name = res[2]\n    var capture = res[3]\n    var group = res[4]\n    var modifier = res[5]\n\n    if (!pathEscaped && path.length) {\n      var k = path.length - 1\n      var c = path[k]\n      var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n      if (matches) {\n        prev = c\n        path = path.slice(0, k)\n      }\n    }\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n      pathEscaped = false\n    }\n\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var pattern = capture || group\n    var delimiter = prev || defaultDelimiter\n    var prevText = prev || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n    tokens.push({\n      name: name || key++,\n      prefix: prev,\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      pattern: pattern\n        ? escapeGroup(pattern)\n        : restrictBacktrack(delimiter, defaultDelimiter, prevText)\n    })\n  }\n\n  // Push any remaining characters.\n  if (path || index < str.length) {\n    tokens.push(path + str.substr(index))\n  }\n\n  return tokens\n}\n\nfunction restrictBacktrack (delimiter, defaultDelimiter, prevText) {\n  var charGroup = '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']'\n\n  if (!prevText || prevText.indexOf(delimiter) > -1 || prevText.indexOf(defaultDelimiter) > -1) {\n    return charGroup + '+?'\n  }\n\n  return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')' + charGroup + ')+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n  var keys = []\n  var re = pathToRegexp(str, keys, options)\n  return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n  return function (pathname, options) {\n    var m = re.exec(pathname)\n    if (!m) return false\n\n    var path = m[0]\n    var index = m.index\n    var params = {}\n    var decode = (options && options.decode) || decodeURIComponent\n\n    for (var i = 1; i < m.length; i++) {\n      if (m[i] === undefined) continue\n\n      var key = keys[i - 1]\n\n      if (key.repeat) {\n        params[key.name] = m[i].split(key.delimiter).map(function (value) {\n          return decode(value, key)\n        })\n      } else {\n        params[key.name] = decode(m[i], key)\n      }\n    }\n\n    return { path: path, index: index, params: params }\n  }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n    }\n  }\n\n  return function (data, options) {\n    var path = ''\n    var encode = (options && options.encode) || encodeURIComponent\n    var validate = options ? options.validate !== false : true\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n        continue\n      }\n\n      var value = data ? data[token.name] : undefined\n      var segment\n\n      if (Array.isArray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) continue\n\n          throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j], token)\n\n          if (validate && !matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n        segment = encode(String(value), token)\n\n        if (validate && !matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment\n        continue\n      }\n\n      if (token.optional) continue\n\n      throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {Array=}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  if (!keys) return path\n\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        pattern: null\n      })\n    }\n  }\n\n  return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}  tokens\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  options = options || {}\n\n  var strict = options.strict\n  var start = options.start !== false\n  var end = options.end !== false\n  var delimiter = options.delimiter || DEFAULT_DELIMITER\n  var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n  var route = start ? '^' : ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var capture = token.repeat\n        ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n        : token.pattern\n\n      if (keys) keys.push(token)\n\n      if (token.optional) {\n        if (!token.prefix) {\n          route += '(' + capture + ')?'\n        } else {\n          route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n        }\n      } else {\n        route += escapeString(token.prefix) + '(' + capture + ')'\n      }\n    }\n  }\n\n  if (end) {\n    if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n    route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n  } else {\n    var endToken = tokens[tokens.length - 1]\n    var isEndDelimited = typeof endToken === 'string'\n      ? endToken[endToken.length - 1] === delimiter\n      : endToken === undefined\n\n    if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n    if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n  }\n\n  return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {Array=}                keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, keys)\n  }\n\n  if (Array.isArray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","/*!\n * mustache.js - Logic-less {{mustache}} templates with JavaScript\n * http://github.com/janl/mustache.js\n */\n\n/*global define: false Mustache: true*/\n\n(function defineMustache (global, factory) {\n  if (typeof exports === 'object' && exports && typeof exports.nodeName !== 'string') {\n    factory(exports); // CommonJS\n  } else if (typeof define === 'function' && define.amd) {\n    define(['exports'], factory); // AMD\n  } else {\n    global.Mustache = {};\n    factory(global.Mustache); // script, wsh, asp\n  }\n}(this, function mustacheFactory (mustache) {\n\n  var objectToString = Object.prototype.toString;\n  var isArray = Array.isArray || function isArrayPolyfill (object) {\n    return objectToString.call(object) === '[object Array]';\n  };\n\n  function isFunction (object) {\n    return typeof object === 'function';\n  }\n\n  /**\n   * More correct typeof string handling array\n   * which normally returns typeof 'object'\n   */\n  function typeStr (obj) {\n    return isArray(obj) ? 'array' : typeof obj;\n  }\n\n  function escapeRegExp (string) {\n    return string.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, '\\\\$&');\n  }\n\n  /**\n   * Null safe way of checking whether or not an object,\n   * including its prototype, has a given property\n   */\n  function hasProperty (obj, propName) {\n    return obj != null && typeof obj === 'object' && (propName in obj);\n  }\n\n  /**\n   * Safe way of detecting whether or not the given thing is a primitive and\n   * whether it has the given property\n   */\n  function primitiveHasOwnProperty (primitive, propName) {  \n    return (\n      primitive != null\n      && typeof primitive !== 'object'\n      && primitive.hasOwnProperty\n      && primitive.hasOwnProperty(propName)\n    );\n  }\n\n  // Workaround for https://issues.apache.org/jira/browse/COUCHDB-577\n  // See https://github.com/janl/mustache.js/issues/189\n  var regExpTest = RegExp.prototype.test;\n  function testRegExp (re, string) {\n    return regExpTest.call(re, string);\n  }\n\n  var nonSpaceRe = /\\S/;\n  function isWhitespace (string) {\n    return !testRegExp(nonSpaceRe, string);\n  }\n\n  var entityMap = {\n    '&': '&amp;',\n    '<': '&lt;',\n    '>': '&gt;',\n    '\"': '&quot;',\n    \"'\": '&#39;',\n    '/': '&#x2F;',\n    '`': '&#x60;',\n    '=': '&#x3D;'\n  };\n\n  function escapeHtml (string) {\n    return String(string).replace(/[&<>\"'`=\\/]/g, function fromEntityMap (s) {\n      return entityMap[s];\n    });\n  }\n\n  var whiteRe = /\\s*/;\n  var spaceRe = /\\s+/;\n  var equalsRe = /\\s*=/;\n  var curlyRe = /\\s*\\}/;\n  var tagRe = /#|\\^|\\/|>|\\{|&|=|!/;\n\n  /**\n   * Breaks up the given `template` string into a tree of tokens. If the `tags`\n   * argument is given here it must be an array with two string values: the\n   * opening and closing tags used in the template (e.g. [ \"<%\", \"%>\" ]). Of\n   * course, the default is to use mustaches (i.e. mustache.tags).\n   *\n   * A token is an array with at least 4 elements. The first element is the\n   * mustache symbol that was used inside the tag, e.g. \"#\" or \"&\". If the tag\n   * did not contain a symbol (i.e. {{myValue}}) this element is \"name\". For\n   * all text that appears outside a symbol this element is \"text\".\n   *\n   * The second element of a token is its \"value\". For mustache tags this is\n   * whatever else was inside the tag besides the opening symbol. For text tokens\n   * this is the text itself.\n   *\n   * The third and fourth elements of the token are the start and end indices,\n   * respectively, of the token in the original template.\n   *\n   * Tokens that are the root node of a subtree contain two more elements: 1) an\n   * array of tokens in the subtree and 2) the index in the original template at\n   * which the closing tag for that section begins.\n   */\n  function parseTemplate (template, tags) {\n    if (!template)\n      return [];\n\n    var sections = [];     // Stack to hold section tokens\n    var tokens = [];       // Buffer to hold the tokens\n    var spaces = [];       // Indices of whitespace tokens on the current line\n    var hasTag = false;    // Is there a {{tag}} on the current line?\n    var nonSpace = false;  // Is there a non-space char on the current line?\n\n    // Strips all whitespace tokens array for the current line\n    // if there was a {{#tag}} on it and otherwise only space.\n    function stripSpace () {\n      if (hasTag && !nonSpace) {\n        while (spaces.length)\n          delete tokens[spaces.pop()];\n      } else {\n        spaces = [];\n      }\n\n      hasTag = false;\n      nonSpace = false;\n    }\n\n    var openingTagRe, closingTagRe, closingCurlyRe;\n    function compileTags (tagsToCompile) {\n      if (typeof tagsToCompile === 'string')\n        tagsToCompile = tagsToCompile.split(spaceRe, 2);\n\n      if (!isArray(tagsToCompile) || tagsToCompile.length !== 2)\n        throw new Error('Invalid tags: ' + tagsToCompile);\n\n      openingTagRe = new RegExp(escapeRegExp(tagsToCompile[0]) + '\\\\s*');\n      closingTagRe = new RegExp('\\\\s*' + escapeRegExp(tagsToCompile[1]));\n      closingCurlyRe = new RegExp('\\\\s*' + escapeRegExp('}' + tagsToCompile[1]));\n    }\n\n    compileTags(tags || mustache.tags);\n\n    var scanner = new Scanner(template);\n\n    var start, type, value, chr, token, openSection;\n    while (!scanner.eos()) {\n      start = scanner.pos;\n\n      // Match any text between tags.\n      value = scanner.scanUntil(openingTagRe);\n\n      if (value) {\n        for (var i = 0, valueLength = value.length; i < valueLength; ++i) {\n          chr = value.charAt(i);\n\n          if (isWhitespace(chr)) {\n            spaces.push(tokens.length);\n          } else {\n            nonSpace = true;\n          }\n\n          tokens.push([ 'text', chr, start, start + 1 ]);\n          start += 1;\n\n          // Check for whitespace on the current line.\n          if (chr === '\\n')\n            stripSpace();\n        }\n      }\n\n      // Match the opening tag.\n      if (!scanner.scan(openingTagRe))\n        break;\n\n      hasTag = true;\n\n      // Get the tag type.\n      type = scanner.scan(tagRe) || 'name';\n      scanner.scan(whiteRe);\n\n      // Get the tag value.\n      if (type === '=') {\n        value = scanner.scanUntil(equalsRe);\n        scanner.scan(equalsRe);\n        scanner.scanUntil(closingTagRe);\n      } else if (type === '{') {\n        value = scanner.scanUntil(closingCurlyRe);\n        scanner.scan(curlyRe);\n        scanner.scanUntil(closingTagRe);\n        type = '&';\n      } else {\n        value = scanner.scanUntil(closingTagRe);\n      }\n\n      // Match the closing tag.\n      if (!scanner.scan(closingTagRe))\n        throw new Error('Unclosed tag at ' + scanner.pos);\n\n      token = [ type, value, start, scanner.pos ];\n      tokens.push(token);\n\n      if (type === '#' || type === '^') {\n        sections.push(token);\n      } else if (type === '/') {\n        // Check section nesting.\n        openSection = sections.pop();\n\n        if (!openSection)\n          throw new Error('Unopened section \"' + value + '\" at ' + start);\n\n        if (openSection[1] !== value)\n          throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + start);\n      } else if (type === 'name' || type === '{' || type === '&') {\n        nonSpace = true;\n      } else if (type === '=') {\n        // Set the tags for the next time around.\n        compileTags(value);\n      }\n    }\n\n    // Make sure there are no open sections when we're done.\n    openSection = sections.pop();\n\n    if (openSection)\n      throw new Error('Unclosed section \"' + openSection[1] + '\" at ' + scanner.pos);\n\n    return nestTokens(squashTokens(tokens));\n  }\n\n  /**\n   * Combines the values of consecutive text tokens in the given `tokens` array\n   * to a single token.\n   */\n  function squashTokens (tokens) {\n    var squashedTokens = [];\n\n    var token, lastToken;\n    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n      token = tokens[i];\n\n      if (token) {\n        if (token[0] === 'text' && lastToken && lastToken[0] === 'text') {\n          lastToken[1] += token[1];\n          lastToken[3] = token[3];\n        } else {\n          squashedTokens.push(token);\n          lastToken = token;\n        }\n      }\n    }\n\n    return squashedTokens;\n  }\n\n  /**\n   * Forms the given array of `tokens` into a nested tree structure where\n   * tokens that represent a section have two additional items: 1) an array of\n   * all tokens that appear in that section and 2) the index in the original\n   * template that represents the end of that section.\n   */\n  function nestTokens (tokens) {\n    var nestedTokens = [];\n    var collector = nestedTokens;\n    var sections = [];\n\n    var token, section;\n    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n      token = tokens[i];\n\n      switch (token[0]) {\n        case '#':\n        case '^':\n          collector.push(token);\n          sections.push(token);\n          collector = token[4] = [];\n          break;\n        case '/':\n          section = sections.pop();\n          section[5] = token[2];\n          collector = sections.length > 0 ? sections[sections.length - 1][4] : nestedTokens;\n          break;\n        default:\n          collector.push(token);\n      }\n    }\n\n    return nestedTokens;\n  }\n\n  /**\n   * A simple string scanner that is used by the template parser to find\n   * tokens in template strings.\n   */\n  function Scanner (string) {\n    this.string = string;\n    this.tail = string;\n    this.pos = 0;\n  }\n\n  /**\n   * Returns `true` if the tail is empty (end of string).\n   */\n  Scanner.prototype.eos = function eos () {\n    return this.tail === '';\n  };\n\n  /**\n   * Tries to match the given regular expression at the current position.\n   * Returns the matched text if it can match, the empty string otherwise.\n   */\n  Scanner.prototype.scan = function scan (re) {\n    var match = this.tail.match(re);\n\n    if (!match || match.index !== 0)\n      return '';\n\n    var string = match[0];\n\n    this.tail = this.tail.substring(string.length);\n    this.pos += string.length;\n\n    return string;\n  };\n\n  /**\n   * Skips all text until the given regular expression can be matched. Returns\n   * the skipped string, which is the entire tail if no match can be made.\n   */\n  Scanner.prototype.scanUntil = function scanUntil (re) {\n    var index = this.tail.search(re), match;\n\n    switch (index) {\n      case -1:\n        match = this.tail;\n        this.tail = '';\n        break;\n      case 0:\n        match = '';\n        break;\n      default:\n        match = this.tail.substring(0, index);\n        this.tail = this.tail.substring(index);\n    }\n\n    this.pos += match.length;\n\n    return match;\n  };\n\n  /**\n   * Represents a rendering context by wrapping a view object and\n   * maintaining a reference to the parent context.\n   */\n  function Context (view, parentContext) {\n    this.view = view;\n    this.cache = { '.': this.view };\n    this.parent = parentContext;\n  }\n\n  /**\n   * Creates a new context using the given view with this context\n   * as the parent.\n   */\n  Context.prototype.push = function push (view) {\n    return new Context(view, this);\n  };\n\n  /**\n   * Returns the value of the given name in this context, traversing\n   * up the context hierarchy if the value is absent in this context's view.\n   */\n  Context.prototype.lookup = function lookup (name) {\n    var cache = this.cache;\n\n    var value;\n    if (cache.hasOwnProperty(name)) {\n      value = cache[name];\n    } else {\n      var context = this, intermediateValue, names, index, lookupHit = false;\n\n      while (context) {\n        if (name.indexOf('.') > 0) {\n          intermediateValue = context.view;\n          names = name.split('.');\n          index = 0;\n\n          /**\n           * Using the dot notion path in `name`, we descend through the\n           * nested objects.\n           *\n           * To be certain that the lookup has been successful, we have to\n           * check if the last object in the path actually has the property\n           * we are looking for. We store the result in `lookupHit`.\n           *\n           * This is specially necessary for when the value has been set to\n           * `undefined` and we want to avoid looking up parent contexts.\n           *\n           * In the case where dot notation is used, we consider the lookup\n           * to be successful even if the last \"object\" in the path is\n           * not actually an object but a primitive (e.g., a string, or an\n           * integer), because it is sometimes useful to access a property\n           * of an autoboxed primitive, such as the length of a string.\n           **/\n          while (intermediateValue != null && index < names.length) {\n            if (index === names.length - 1)\n              lookupHit = (\n                hasProperty(intermediateValue, names[index]) \n                || primitiveHasOwnProperty(intermediateValue, names[index])\n              );\n\n            intermediateValue = intermediateValue[names[index++]];\n          }\n        } else {\n          intermediateValue = context.view[name];\n\n          /**\n           * Only checking against `hasProperty`, which always returns `false` if\n           * `context.view` is not an object. Deliberately omitting the check\n           * against `primitiveHasOwnProperty` if dot notation is not used.\n           *\n           * Consider this example:\n           * ```\n           * Mustache.render(\"The length of a football field is {{#length}}{{length}}{{/length}}.\", {length: \"100 yards\"})\n           * ```\n           *\n           * If we were to check also against `primitiveHasOwnProperty`, as we do\n           * in the dot notation case, then render call would return:\n           *\n           * \"The length of a football field is 9.\"\n           *\n           * rather than the expected:\n           *\n           * \"The length of a football field is 100 yards.\"\n           **/\n          lookupHit = hasProperty(context.view, name);\n        }\n\n        if (lookupHit) {\n          value = intermediateValue;\n          break;\n        }\n\n        context = context.parent;\n      }\n\n      cache[name] = value;\n    }\n\n    if (isFunction(value))\n      value = value.call(this.view);\n\n    return value;\n  };\n\n  /**\n   * A Writer knows how to take a stream of tokens and render them to a\n   * string, given a context. It also maintains a cache of templates to\n   * avoid the need to parse the same template twice.\n   */\n  function Writer () {\n    this.cache = {};\n  }\n\n  /**\n   * Clears all cached templates in this writer.\n   */\n  Writer.prototype.clearCache = function clearCache () {\n    this.cache = {};\n  };\n\n  /**\n   * Parses and caches the given `template` according to the given `tags` or\n   * `mustache.tags` if `tags` is omitted,  and returns the array of tokens\n   * that is generated from the parse.\n   */\n  Writer.prototype.parse = function parse (template, tags) {\n    var cache = this.cache;\n    var cacheKey = template + ':' + (tags || mustache.tags).join(':');\n    var tokens = cache[cacheKey];\n\n    if (tokens == null)\n      tokens = cache[cacheKey] = parseTemplate(template, tags);\n\n    return tokens;\n  };\n\n  /**\n   * High-level method that is used to render the given `template` with\n   * the given `view`.\n   *\n   * The optional `partials` argument may be an object that contains the\n   * names and templates of partials that are used in the template. It may\n   * also be a function that is used to load partial templates on the fly\n   * that takes a single argument: the name of the partial.\n   *\n   * If the optional `tags` argument is given here it must be an array with two\n   * string values: the opening and closing tags used in the template (e.g.\n   * [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n   */\n  Writer.prototype.render = function render (template, view, partials, tags) {\n    var tokens = this.parse(template, tags);\n    var context = (view instanceof Context) ? view : new Context(view);\n    return this.renderTokens(tokens, context, partials, template);\n  };\n\n  /**\n   * Low-level method that renders the given array of `tokens` using\n   * the given `context` and `partials`.\n   *\n   * Note: The `originalTemplate` is only ever used to extract the portion\n   * of the original template that was contained in a higher-order section.\n   * If the template doesn't use higher-order sections, this argument may\n   * be omitted.\n   */\n  Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate) {\n    var buffer = '';\n\n    var token, symbol, value;\n    for (var i = 0, numTokens = tokens.length; i < numTokens; ++i) {\n      value = undefined;\n      token = tokens[i];\n      symbol = token[0];\n\n      if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);\n      else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);\n      else if (symbol === '>') value = this.renderPartial(token, context, partials, originalTemplate);\n      else if (symbol === '&') value = this.unescapedValue(token, context);\n      else if (symbol === 'name') value = this.escapedValue(token, context);\n      else if (symbol === 'text') value = this.rawValue(token);\n\n      if (value !== undefined)\n        buffer += value;\n    }\n\n    return buffer;\n  };\n\n  Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {\n    var self = this;\n    var buffer = '';\n    var value = context.lookup(token[1]);\n\n    // This function is used to render an arbitrary template\n    // in the current context by higher-order sections.\n    function subRender (template) {\n      return self.render(template, context, partials);\n    }\n\n    if (!value) return;\n\n    if (isArray(value)) {\n      for (var j = 0, valueLength = value.length; j < valueLength; ++j) {\n        buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);\n      }\n    } else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {\n      buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);\n    } else if (isFunction(value)) {\n      if (typeof originalTemplate !== 'string')\n        throw new Error('Cannot use higher-order sections without the original template');\n\n      // Extract the portion of the original template that the section contains.\n      value = value.call(context.view, originalTemplate.slice(token[3], token[5]), subRender);\n\n      if (value != null)\n        buffer += value;\n    } else {\n      buffer += this.renderTokens(token[4], context, partials, originalTemplate);\n    }\n    return buffer;\n  };\n\n  Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {\n    var value = context.lookup(token[1]);\n\n    // Use JavaScript's definition of falsy. Include empty arrays.\n    // See https://github.com/janl/mustache.js/issues/186\n    if (!value || (isArray(value) && value.length === 0))\n      return this.renderTokens(token[4], context, partials, originalTemplate);\n  };\n\n  Writer.prototype.renderPartial = function renderPartial (token, context, partials) {\n    if (!partials) return;\n\n    var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];\n    if (value != null)\n      return this.renderTokens(this.parse(value), context, partials, value);\n  };\n\n  Writer.prototype.unescapedValue = function unescapedValue (token, context) {\n    var value = context.lookup(token[1]);\n    if (value != null)\n      return value;\n  };\n\n  Writer.prototype.escapedValue = function escapedValue (token, context) {\n    var value = context.lookup(token[1]);\n    if (value != null)\n      return mustache.escape(value);\n  };\n\n  Writer.prototype.rawValue = function rawValue (token) {\n    return token[1];\n  };\n\n  mustache.name = 'mustache.js';\n  mustache.version = '3.0.0';\n  mustache.tags = [ '{{', '}}' ];\n\n  // All high-level mustache.* functions use this writer.\n  var defaultWriter = new Writer();\n\n  /**\n   * Clears all cached templates in the default writer.\n   */\n  mustache.clearCache = function clearCache () {\n    return defaultWriter.clearCache();\n  };\n\n  /**\n   * Parses and caches the given template in the default writer and returns the\n   * array of tokens it contains. Doing this ahead of time avoids the need to\n   * parse templates on the fly as they are rendered.\n   */\n  mustache.parse = function parse (template, tags) {\n    return defaultWriter.parse(template, tags);\n  };\n\n  /**\n   * Renders the `template` with the given `view` and `partials` using the\n   * default writer. If the optional `tags` argument is given here it must be an\n   * array with two string values: the opening and closing tags used in the\n   * template (e.g. [ \"<%\", \"%>\" ]). The default is to mustache.tags.\n   */\n  mustache.render = function render (template, view, partials, tags) {\n    if (typeof template !== 'string') {\n      throw new TypeError('Invalid template! Template should be a \"string\" ' +\n                          'but \"' + typeStr(template) + '\" was given as the first ' +\n                          'argument for mustache#render(template, view, partials)');\n    }\n\n    return defaultWriter.render(template, view, partials, tags);\n  };\n\n  // This is here for backwards compatibility with 0.4.x.,\n  /*eslint-disable */ // eslint wants camel cased function name\n  mustache.to_html = function to_html (template, view, partials, send) {\n    /*eslint-enable*/\n\n    var result = mustache.render(template, view, partials);\n\n    if (isFunction(send)) {\n      send(result);\n    } else {\n      return result;\n    }\n  };\n\n  // Export the escaping function so that the user may override it.\n  // See https://github.com/janl/mustache.js/issues/244\n  mustache.escape = escapeHtml;\n\n  // Export these mainly for testing, but also for advanced usage.\n  mustache.Scanner = Scanner;\n  mustache.Context = Context;\n  mustache.Writer = Writer;\n\n  return mustache;\n}));\n","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n  // Match escaped characters that would otherwise appear in future matches.\n  // This allows the user to escape special characters that won't transform.\n  '(\\\\\\\\.)',\n  // Match Express-style parameters and un-named parameters with a prefix\n  // and optional suffixes. Matches appear as:\n  //\n  // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n  // \"(\\\\d+)\"  => [undefined, undefined, \"\\d+\", undefined]\n  '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param  {string}  str\n * @param  {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n  var tokens = []\n  var key = 0\n  var index = 0\n  var path = ''\n  var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n  var whitelist = (options && options.whitelist) || undefined\n  var pathEscaped = false\n  var res\n\n  while ((res = PATH_REGEXP.exec(str)) !== null) {\n    var m = res[0]\n    var escaped = res[1]\n    var offset = res.index\n    path += str.slice(index, offset)\n    index = offset + m.length\n\n    // Ignore already escaped sequences.\n    if (escaped) {\n      path += escaped[1]\n      pathEscaped = true\n      continue\n    }\n\n    var prev = ''\n    var name = res[2]\n    var capture = res[3]\n    var group = res[4]\n    var modifier = res[5]\n\n    if (!pathEscaped && path.length) {\n      var k = path.length - 1\n      var c = path[k]\n      var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n      if (matches) {\n        prev = c\n        path = path.slice(0, k)\n      }\n    }\n\n    // Push the current path onto the tokens.\n    if (path) {\n      tokens.push(path)\n      path = ''\n      pathEscaped = false\n    }\n\n    var repeat = modifier === '+' || modifier === '*'\n    var optional = modifier === '?' || modifier === '*'\n    var pattern = capture || group\n    var delimiter = prev || defaultDelimiter\n    var prevText = prev || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n    tokens.push({\n      name: name || key++,\n      prefix: prev,\n      delimiter: delimiter,\n      optional: optional,\n      repeat: repeat,\n      pattern: pattern\n        ? escapeGroup(pattern)\n        : restrictBacktrack(delimiter, defaultDelimiter, prevText)\n    })\n  }\n\n  // Push any remaining characters.\n  if (path || index < str.length) {\n    tokens.push(path + str.substr(index))\n  }\n\n  return tokens\n}\n\nfunction restrictBacktrack (delimiter, defaultDelimiter, prevText) {\n  var charGroup = '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']'\n\n  if (!prevText || prevText.indexOf(delimiter) > -1 || prevText.indexOf(defaultDelimiter) > -1) {\n    return charGroup + '+?'\n  }\n\n  return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')' + charGroup + ')+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param  {string}             str\n * @param  {Object=}            options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n  return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n  var keys = []\n  var re = pathToRegexp(str, keys, options)\n  return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n  return function (pathname, options) {\n    var m = re.exec(pathname)\n    if (!m) return false\n\n    var path = m[0]\n    var index = m.index\n    var params = {}\n    var decode = (options && options.decode) || decodeURIComponent\n\n    for (var i = 1; i < m.length; i++) {\n      if (m[i] === undefined) continue\n\n      var key = keys[i - 1]\n\n      if (key.repeat) {\n        params[key.name] = m[i].split(key.delimiter).map(function (value) {\n          return decode(value, key)\n        })\n      } else {\n        params[key.name] = decode(m[i], key)\n      }\n    }\n\n    return { path: path, index: index, params: params }\n  }\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n  // Compile all the tokens into regexps.\n  var matches = new Array(tokens.length)\n\n  // Compile all the patterns before compilation.\n  for (var i = 0; i < tokens.length; i++) {\n    if (typeof tokens[i] === 'object') {\n      matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n    }\n  }\n\n  return function (data, options) {\n    var path = ''\n    var encode = (options && options.encode) || encodeURIComponent\n    var validate = options ? options.validate !== false : true\n\n    for (var i = 0; i < tokens.length; i++) {\n      var token = tokens[i]\n\n      if (typeof token === 'string') {\n        path += token\n        continue\n      }\n\n      var value = data ? data[token.name] : undefined\n      var segment\n\n      if (Array.isArray(value)) {\n        if (!token.repeat) {\n          throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n        }\n\n        if (value.length === 0) {\n          if (token.optional) continue\n\n          throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n        }\n\n        for (var j = 0; j < value.length; j++) {\n          segment = encode(value[j], token)\n\n          if (validate && !matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n        segment = encode(String(value), token)\n\n        if (validate && !matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment\n        continue\n      }\n\n      if (token.optional) continue\n\n      throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {Array=}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  if (!keys) return path\n\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        pattern: null\n      })\n    }\n  }\n\n  return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}  tokens\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  options = options || {}\n\n  var strict = options.strict\n  var start = options.start !== false\n  var end = options.end !== false\n  var delimiter = options.delimiter || DEFAULT_DELIMITER\n  var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n  var route = start ? '^' : ''\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n    } else {\n      var capture = token.repeat\n        ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n        : token.pattern\n\n      if (keys) keys.push(token)\n\n      if (token.optional) {\n        if (!token.prefix) {\n          route += '(' + capture + ')?'\n        } else {\n          route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n        }\n      } else {\n        route += escapeString(token.prefix) + '(' + capture + ')'\n      }\n    }\n  }\n\n  if (end) {\n    if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n    route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n  } else {\n    var endToken = tokens[tokens.length - 1]\n    var isEndDelimited = typeof endToken === 'string'\n      ? endToken[endToken.length - 1] === delimiter\n      : endToken === undefined\n\n    if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n    if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n  }\n\n  return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {Array=}                keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, keys)\n  }\n\n  if (Array.isArray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","var nargs = /\\{([0-9a-zA-Z_]+)\\}/g\n\nmodule.exports = template\n\nfunction template(string) {\n    var args\n\n    if (arguments.length === 2 && typeof arguments[1] === \"object\") {\n        args = arguments[1]\n    } else {\n        args = new Array(arguments.length - 1)\n        for (var i = 1; i < arguments.length; ++i) {\n            args[i - 1] = arguments[i]\n        }\n    }\n\n    if (!args || !args.hasOwnProperty) {\n        args = {}\n    }\n\n    return string.replace(nargs, function replaceArg(match, i, index) {\n        var result\n\n        if (string[index - 1] === \"{\" &&\n            string[index + match.length] === \"}\") {\n            return i\n        } else {\n            result = args.hasOwnProperty(i) ? args[i] : null\n            if (result === null || result === undefined) {\n                return \"\"\n            }\n\n            return result\n        }\n    })\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = camelCase;\nfunction camelCase(str) {\n  return str.replace(/[-_]+/g, ' ').replace(/[^\\w\\s]/g, '').replace(/ (.)/g, function ($1) {\n    return $1.toUpperCase();\n  }).replace(/ /g, '').replace(/^./g, function ($1) {\n    return $1.toLowerCase();\n  });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.MAPPED_TO_PROPS = exports.ATTRIBUTES = void 0;\nvar ATTRIBUTES = exports.ATTRIBUTES = ['component-id', 'listen-to', 'path', 'context', 'context-modifier', 'key', 'dangerouslySetInnerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'alt', 'async', 'autocomplete', 'autofocus', 'autoplay', 'capture', 'checked', 'default', 'defer', 'disabled', 'draggable', 'dropzone', 'hidden', 'href', 'hreflang', 'http-equiv', 'icon', 'id', 'is', 'maxlength', 'minlength', 'media', 'method', 'multiple', 'name', 'placeholder', 'readonly', 'rel', 'required', 'reversed', 'role', 'rows', 'rowspan', 'selected', 'slot', 'src', 'tabindex', 'target', 'title', 'type', 'value'];\nvar MAPPED_TO_PROPS = exports.MAPPED_TO_PROPS = ['value'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = ariaRefHelpers;\nfunction _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(r) { if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r); }\nfunction _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar x = 2147483648;\nvar baseId = Math.floor(Math.random() * x).toString(36) + Math.abs(Math.floor(Math.random() * x) ^ Date.now()).toString(36);\nvar count = 0;\nfunction guid() {\n  count = count + 1;\n  return \"\".concat(baseId, \"-\").concat(count);\n}\nvar callAsync = Promise.resolve().then.bind(Promise.resolve());\nvar shadowRootToSharedAccessibilityTargets = new Map();\nvar shadowRootToAccessibilityTargetsItemsQueue = new Map();\nvar shadowRootToAriaRefs = new Map();\nvar shadowRootToAriaRefsQueue = new Map();\nfunction ariaRefHelpers(name, props) {\n  if (typeof name !== 'string') {\n    return {\n      handleAriaAccessibility: function handleAriaAccessibility() {},\n      ariaSetVnode: function ariaSetVnode() {},\n      requiresRef: false\n    };\n  }\n  /**\n   * Array<{\n   *   targetRef: AriaRef,\n   *   id: string,\n   *   ariaAttribute: string,\n   *   callback?: (targetRef: AriaRef) => {},\n   *   currentClone?: Element,\n   *   element?: Element\n   * }>\n   */\n  var accessibilityTargets = [];\n  if (typeof name === 'string') {\n    for (var propName in props) {\n      if (propName.startsWith('aria-') && props[propName] && typeof props[propName].subscribe === 'function') {\n        var id = \"a\".concat(guid());\n        var targetRef = props[propName];\n        props[propName] = id;\n        accessibilityTargets.push({\n          targetRef: targetRef,\n          id: id,\n          ariaAttribute: propName\n        });\n      }\n    }\n  }\n  var ariaRef;\n  if (props && props['now-aria-ref']) {\n    ariaRef = props['now-aria-ref'];\n    delete props['now-aria-ref'];\n  }\n  function createAriaRefHierarchy(node) {\n    if (!node) {\n      ariaRef.setCurrent(node);\n      return;\n    }\n    var ariaRefShadowRoot = node.getRootNode();\n    var ariaRefAssignments = shadowRootToAriaRefs.get(ariaRefShadowRoot);\n    if (!ariaRefAssignments) {\n      ariaRefAssignments = [];\n      shadowRootToAriaRefs.set(ariaRefShadowRoot, ariaRefAssignments);\n    }\n    ariaRefAssignments.push({\n      ariaRef: ariaRef,\n      element: node\n    });\n    callAsync(function () {\n      var ariaRefsQueue = shadowRootToAriaRefsQueue.get(ariaRefShadowRoot);\n      if (!ariaRefsQueue) {\n        ariaRefsQueue = [];\n        shadowRootToAriaRefsQueue.set(ariaRefShadowRoot, ariaRefsQueue);\n      }\n      ariaRefsQueue.push(ariaRef);\n      if (ariaRefsQueue.length === ariaRefAssignments.length) {\n        shadowRootToAriaRefs.delete(ariaRefShadowRoot);\n        shadowRootToAriaRefsQueue.delete(ariaRefShadowRoot);\n        var assignments = ariaRefAssignments.reverse(); // Reverse so that children always come after parents\n        var ariaRefToAssignment = new Map();\n        for (var i = 0; i < assignments.length; i++) {\n          var ariaRefAssignment = assignments[i];\n          ariaRefToAssignment.set(ariaRefAssignment.ariaRef, ariaRefAssignment);\n          // We know that a parent of an ariaRef will always be before\n          // it in the refs array. We can use this knowledge to efficiently figure out\n          // each ariaRef's parent ariaRef\n          if (i > 0) {\n            var possibleParentAriaRef = assignments[i - 1].ariaRef;\n            while (possibleParentAriaRef) {\n              if (possibleParentAriaRef.contains(ariaRefAssignment.element)) {\n                possibleParentAriaRef.setChildQuerySelector(ariaRefAssignment.ariaRef, buildQuerySelector(ariaRefToAssignment.get(possibleParentAriaRef).element, ariaRefAssignment.element));\n                ariaRefAssignment.ariaRef.setParentAriaRef(possibleParentAriaRef);\n                break;\n              }\n              possibleParentAriaRef = possibleParentAriaRef.getParentAriaRef();\n            }\n          }\n          ariaRefAssignment.ariaRef.setCurrent(ariaRefAssignment.element);\n        }\n      }\n    });\n  }\n  function handleAriaAccessibility(node) {\n    if (ariaRef) {\n      createAriaRefHierarchy(node);\n    }\n    var _iterator = _createForOfIteratorHelper(accessibilityTargets),\n      _step;\n    try {\n      var _loop = function _loop() {\n        var item = _step.value;\n        item.element = node;\n        if (!node) {\n          if (item.currentClone && item.currentClone.parentNode) {\n            item.currentClone.parentNode.removeChild(item.currentClone);\n            item.currentClone = null;\n          }\n          if (item.callback) {\n            item.targetRef.unsubscribe({\n              element: node,\n              attribute: item.ariaAttribute\n            });\n            item.callback = null;\n          }\n          return 1; // continue\n        }\n        function callback(targetRef) {\n          if (!targetRef || !targetRef.isSet()) {\n            if (item.currentClone && item.currentClone.parentNode) {\n              item.currentClone.parentNode.removeChild(item.currentClone);\n              item.currentClone = null;\n            }\n            node.removeAttribute(item.ariaAttribute);\n            return;\n          } else {\n            node.setAttribute(item.ariaAttribute, item.id);\n          }\n\n          // If the element and target are in the same shadowRoot, don't clone the target\n          // but instead just add the id to the target\n          if (node.getRootNode() === targetRef.getRootNode()) {\n            var _id = targetRef.getAttribute('id');\n            if (_id) {\n              node.setAttribute(item.ariaAttribute, _id);\n            } else {\n              targetRef.setId(item.id);\n            }\n            return;\n          }\n          var sourceShadowRoot = node.getRootNode();\n          var sharedAccessibilityTargets = shadowRootToSharedAccessibilityTargets.get(sourceShadowRoot);\n          if (!sharedAccessibilityTargets) {\n            sharedAccessibilityTargets = new Set();\n            shadowRootToSharedAccessibilityTargets.set(sourceShadowRoot, sharedAccessibilityTargets);\n          }\n          sharedAccessibilityTargets.add(item);\n          callAsync(function () {\n            var targetShadowRoot = targetRef.getRootNode();\n            var targetItemsWithSharedShadow = Array.from(sharedAccessibilityTargets).filter(function (t) {\n              return t.targetRef.isSet() && t.targetRef.getRootNode() === targetShadowRoot;\n            });\n            var targetItemsSharedShadowQueue = shadowRootToAccessibilityTargetsItemsQueue.get(targetShadowRoot);\n            if (!targetItemsSharedShadowQueue) {\n              targetItemsSharedShadowQueue = new Set();\n              shadowRootToAccessibilityTargetsItemsQueue.set(targetShadowRoot, targetItemsSharedShadowQueue);\n            }\n            targetItemsSharedShadowQueue.add(item);\n            if (targetItemsSharedShadowQueue.size === targetItemsWithSharedShadow.length) {\n              handleAccessibilityTargets(targetItemsSharedShadowQueue);\n              shadowRootToSharedAccessibilityTargets.delete(sourceShadowRoot);\n              shadowRootToAccessibilityTargetsItemsQueue.delete(targetShadowRoot);\n            }\n          });\n        }\n        ;\n\n        // Subscribe for any changes to the aria ref so we can replace the cloned node\n        item.callback = callback;\n        item.targetRef.subscribe({\n          element: node,\n          attribute: item.ariaAttribute\n        }, callback);\n      };\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        if (_loop()) continue;\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  }\n  function ariaSetVnode(vnode) {\n    for (var i = 0; i < accessibilityTargets.length; i++) {\n      var item = accessibilityTargets[i];\n      item.vnode = vnode;\n    }\n  }\n  return {\n    handleAriaAccessibility: handleAriaAccessibility,\n    ariaSetVnode: ariaSetVnode,\n    requiresRef: !!(ariaRef || accessibilityTargets.length)\n  };\n}\nfunction handleAccessibilityTargets(targetItemsShadowQueue) {\n  // Separate ariaRefs that do and do not have a parent.\n  // Those without a parent are the refs that should be cloned\n  var targetRefToTreeNode = new Map();\n  var targetItemRoots = [];\n  var targetItems = Array.from(targetItemsShadowQueue);\n  var _loop2 = function _loop2() {\n    var targetItem = targetItems[i];\n    var treeNode = targetRefToTreeNode.get(targetItem.targetRef);\n    if (!treeNode) {\n      treeNode = {\n        targetItems: [],\n        children: [],\n        targetRef: targetItem.targetRef,\n        parentTargetRef: null\n      };\n      targetRefToTreeNode.set(targetItem.targetRef, treeNode);\n    }\n    treeNode.targetItems.push(targetItem);\n    var parentAriaRef = targetItem.targetRef.getParentAriaRef();\n    while (parentAriaRef) {\n      if (targetItems.find(function (item) {\n        return item.targetRef === parentAriaRef;\n      })) {\n        var parentNode = targetRefToTreeNode.get(parentAriaRef);\n        if (!parentNode) {\n          parentNode = {\n            targetItems: [],\n            children: [],\n            targetRef: parentAriaRef,\n            parentTargetRef: null\n          };\n          targetRefToTreeNode.set(parentAriaRef, parentNode);\n        }\n        treeNode.parentTargetRef = parentAriaRef;\n        parentNode.children.push(targetItem);\n        break;\n      }\n      parentAriaRef = parentAriaRef.getParentAriaRef();\n    }\n    if (!parentAriaRef) targetItemRoots.push(targetItem);\n  };\n  for (var i = 0; i < targetItems.length; i++) {\n    _loop2();\n  }\n\n  // Loop over targetItemRoots:\n  // For each one, if it hasn't been cloned yet, clone into DOM and then for each child:\n  // If it hasn't been handled yet, create the query selector from the child targetRef to the\n  // parent targetRef, then use that selector on the cloned item, then edit the returned element\n  // to have the correct id\n  var cloned = new Map();\n  var targetRefToQuerySelector = new Map();\n  for (var _i = 0; _i < targetItemRoots.length; _i++) {\n    var rootTargetItem = targetItemRoots[_i];\n    var firstItemWithTargetRef = cloned.get(rootTargetItem.targetRef);\n    rootTargetItem.element.setAttribute(rootTargetItem.ariaAttribute, firstItemWithTargetRef ? firstItemWithTargetRef.id : rootTargetItem.id);\n    if (!firstItemWithTargetRef) {\n      cloned.set(rootTargetItem.targetRef, rootTargetItem);\n      var clone = rootTargetItem.targetRef.cloneNode(true);\n      clone.id = rootTargetItem.id;\n      clone.setAttribute('aria-hidden', true);\n      var container = document.createElement('div');\n      container.style = 'position: absolute; overflow: hidden; width: 1px; height: 1px; margin: 0; border: none; padding: 0; white-space: nowrap; clip: rect(0 0 0 0); clip-path: inset(50%);';\n      container.appendChild(clone);\n      if (rootTargetItem.currentClone && rootTargetItem.currentClone.parentNode) rootTargetItem.currentClone.parentNode.removeChild(rootTargetItem.currentClone);\n      rootTargetItem.element.getRootNode().appendChild(container);\n      rootTargetItem.currentClone = container;\n    }\n    var children = _toConsumableArray(targetRefToTreeNode.get(rootTargetItem.targetRef).children);\n    targetRefToQuerySelector.set(rootTargetItem.targetRef, '');\n    while (children.length) {\n      var childItem = children.shift();\n      var _firstItemWithTargetRef = cloned.get(childItem.targetRef);\n      var itemId = _firstItemWithTargetRef ? _firstItemWithTargetRef.id : childItem.id;\n      childItem.element.setAttribute(childItem.ariaAttribute, itemId);\n      if (!_firstItemWithTargetRef) {\n        cloned.set(childItem.targetRef, childItem);\n        var treeNode = targetRefToTreeNode.get(childItem.targetRef);\n        var selections = [];\n        var currentParent = void 0;\n        var currentChild = childItem.targetRef;\n        do {\n          currentParent = currentChild.getParentAriaRef();\n          var partialSelector = currentParent.getChildQuerySelector(currentChild);\n          selections.push(partialSelector);\n          currentChild = currentParent;\n        } while (currentParent !== rootTargetItem.targetRef);\n        var selector = selections.reverse().join(' > ');\n        var node = rootTargetItem.currentClone.querySelector(selector);\n        node.id = itemId;\n        children = children.concat(treeNode.children);\n      }\n    }\n  }\n}\nfunction buildQuerySelector(parent, child) {\n  var path = [];\n  var el = child;\n  while (el !== parent) {\n    var position = 0;\n    var current = el;\n    while (current) {\n      if (current.tagName === el.tagName) position += 1;\n      current = current.previousElementSibling;\n    }\n    path.push(\"\".concat(el.tagName.toLowerCase(), \":nth-of-type(\").concat(position, \")\"));\n    el = el.parentNode;\n  }\n  return path.reverse().join(' > ');\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = createElement;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _camelCase = _interopRequireDefault(require(\"./camelCase\"));\nvar _constants = require(\"./constants\");\nvar _ariaRefHelpers2 = _interopRequireDefault(require(\"./ariaRefHelpers\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? Object(arguments[r]) : {}, o = Object.keys(t); \"function\" == typeof Object.getOwnPropertySymbols && o.push.apply(o, Object.getOwnPropertySymbols(t).filter(function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable; })), o.forEach(function (r) { _defineProperty(e, r, t[r]); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction createElement(name) {\n  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  function isSeismicComponent(name) {\n    return typeof name === 'string' && name.indexOf('-') !== -1;\n  }\n  function isAttribute(name) {\n    return _constants.ATTRIBUTES.indexOf(name) !== -1 || name.startsWith('aria-') || name.startsWith('data-');\n  }\n  function isMappedToProps(name) {\n    return _constants.MAPPED_TO_PROPS.indexOf(name) !== -1;\n  }\n  var _ariaRefHelpers = (0, _ariaRefHelpers2.default)(name, props),\n    handleAriaAccessibility = _ariaRefHelpers.handleAriaAccessibility,\n    ariaSetVnode = _ariaRefHelpers.ariaSetVnode,\n    requiresRef = _ariaRefHelpers.requiresRef;\n  for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n    children[_key - 2] = arguments[_key];\n  }\n  if (props && !!Object.keys(props).length && isSeismicComponent(name)) {\n    var existingRef = props.ref && typeof props.ref === 'function' && props.ref;\n    var attributes = {};\n    var properties = {};\n    for (var _name in props) {\n      if (isAttribute(_name)) attributes[_name] = props[_name];else properties[(0, _camelCase.default)(_name)] = props[_name];\n      if (isMappedToProps(_name)) properties[_name] = props[_name];\n    }\n    if (!!Object.keys(properties).length) {\n      var vnode = _react.default.createElement.apply(_react.default, [name, Object.assign({}, attributes, {\n        ref: function ref(node) {\n          handleAriaAccessibility(node);\n          if (!node) return;\n          existingRef && existingRef(node);\n          Object.assign(node, properties);\n        }\n      })].concat(children));\n      ariaSetVnode(vnode);\n      return vnode;\n    }\n  }\n  if (requiresRef) {\n    var _vnode = _react.default.createElement.apply(_react.default, [name, _objectSpread({}, props, {\n      ref: function ref(node) {\n        handleAriaAccessibility(node);\n        if (props && props.ref) {\n          props.ref(node);\n        }\n      }\n    })].concat(children));\n    ariaSetVnode(_vnode);\n    return _vnode;\n  } else {\n    return _react.default.createElement.apply(_react.default, [name, props].concat(children));\n  }\n}","export * as servicenowUiBehaviorLocalStorage from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/behaviors/behavior-local-storage/src/global-shim.js';\nexport * as servicenowUiBehaviorPostMessage from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/behaviors/behavior-post-message/src/global-shim.js';\nexport * as servicenowUiConfig from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/config/src/global-shim.js';\nexport * as servicenowUiCore from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/core/src/global-shim.js';\nexport * as servicenowUiEffectAmb from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/effects/effect-amb/src/global-shim.js';\nexport * as servicenowUiEffectGraphql from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/effects/effect-graphql/src/global-shim.js';\nexport * as servicenowUiEffectHelpers from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/effects/effect-helpers/src/global-shim.js';\nexport * as servicenowUiEffectHttp from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/effects/effect-http/src/global-shim.js';\nexport * as servicenowUiEffectUpdateState from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/effects/effect-update-state/src/global-shim.js';\nexport * as servicenowUiInternal from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/internal/src/global-shim.js';\nexport * as servicenowUiMetrics from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/metrics/src/global-shim.js';\nexport * as servicenowUiRendererDefault from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/renderers/default/src/global-shim.js';\nexport * as servicenowUiRendererSnabbdom from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/renderers/snabbdom/src/global-shim.js';\nexport * as servicenowUiTypes from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/types/src/global-shim.js';\nexport * as servicenowUiUtils from '/home/jenkins/agent/workspace/groups_seismic_sn-seismic_zurich/target/checkout/packages/utils/src/global-shim.js';\nexport * as snSeismicPostMessage from './sn-seismic-post-message';\nexport * as snTranslate from './sn-translate';\nexport * as snCustomCreateElement from './sn-custom-create-element';","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined')\n\twindow.__TECTONIC__$servicenow_ui_behavior_local_storage = exports;\n\nexport * from './index.js';\n","export {\n\tdefault as createLocalStorageBehavior,\n\tLOCAL_STORAGE_SET\n} from './createLocalStorageBehavior';\n","export const LOCAL_STORAGE_SET = 'LOCAL_STORAGE_SET';\n\nfunction getValue({localStorageKey, parse}) {\n\tlet value = localStorage.getItem(localStorageKey);\n\tif (parse && typeof value === 'string') value = JSON.parse(value);\n\n\treturn value;\n}\n\nfunction defaultSetKeyName({host, key}) {\n\treturn `${host.tagName}_${key}`;\n}\n\nexport default function createLocalStorageBehavior({\n\tkey,\n\tstateKey,\n\tbehaviorKey,\n\tparse,\n\tsetKeyName\n}) {\n\tlet localStorageKey;\n\tconst stateName = stateKey || key;\n\tconst behaviorName = behaviorKey || 'localStorage';\n\tconst statePath = `behaviors.${behaviorName}.${stateName}`;\n\n\treturn {\n\t\tname: behaviorName,\n\t\tsetInitialState({host, properties}) {\n\t\t\tlocalStorageKey = (setKeyName || defaultSetKeyName)({key, host, properties});\n\n\t\t\treturn {\n\t\t\t\t[stateName]: getValue({localStorageKey, parse})\n\t\t\t};\n\t\t},\n\t\tactionHandlers: {\n\t\t\t[LOCAL_STORAGE_SET]({\n\t\t\t\taction: {\n\t\t\t\t\tpayload: {value}\n\t\t\t\t},\n\t\t\t\tupdateState\n\t\t\t}) {\n\t\t\t\tlet localStorageValue = value;\n\t\t\t\tif (parse && typeof value !== 'string') localStorageValue = JSON.stringify(value);\n\n\t\t\t\tlocalStorage.setItem(localStorageKey, localStorageValue);\n\t\t\t\tupdateState({path: statePath, value, operation: 'set'});\n\t\t\t}\n\t\t}\n\t};\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined')\n\twindow.__TECTONIC__$servicenow_ui_behavior_post_message = exports;\n\nexport * from './index.js';\n","import {POST_MESSAGE, MESSAGE_RECEIVED, SET_TARGET_WINDOW} from './constants';\n\nexport const postMessageActions = {POST_MESSAGE, MESSAGE_RECEIVED, SET_TARGET_WINDOW};\nexport {default as createPostMessageBehavior} from './createPostMessageBehavior';\n","export const POST_MESSAGE = 'POST_MESSAGE_BEHAVIOR#POST_MESSAGE';\nexport const MESSAGE_RECEIVED = 'POST_MESSAGE_BEHAVIOR#MESSAGE_RECEIVED';\nexport const SET_TARGET_WINDOW = 'POST_MESSAGE_BEHAVIOR#SET_TARGET_WINDOW';\n","import {getHostInfo, actionTypes, allLogTypes as logTypes} from '@servicenow/ui-internal';\nimport log from './log';\nimport {POST_MESSAGE, MESSAGE_RECEIVED, SET_TARGET_WINDOW} from './constants';\n\nconst targetWindows = new WeakMap();\nwindow.addEventListener('message', receiveMessage, false);\n\nfunction getComponentIdToCallback(targetWindow, targetOrigin) {\n\tconst targetOriginToComponentIdMap = targetWindows.get(targetWindow);\n\tif (!targetOriginToComponentIdMap) return;\n\n\treturn {\n\t\t...targetOriginToComponentIdMap[targetOrigin],\n\t\t...targetOriginToComponentIdMap['*']\n\t};\n}\n\nfunction receiveMessage({data, origin, source}) {\n\tconst componentIdToCallback = getComponentIdToCallback(source, origin);\n\tif (!componentIdToCallback) return;\n\n\tconst callbacks = Object.values(componentIdToCallback);\n\tfor (const callback of callbacks) callback(data);\n}\n\nfunction addPostMessageListener({componentId, targetWindow, targetOrigin}, callback) {\n\tlet targetOriginToComponentIdMap = targetWindows.get(targetWindow);\n\tif (!targetOriginToComponentIdMap) {\n\t\ttargetOriginToComponentIdMap = {};\n\t\ttargetWindows.set(targetWindow, targetOriginToComponentIdMap);\n\t}\n\n\tlet componentIdToCallback = targetOriginToComponentIdMap[targetOrigin];\n\tif (!componentIdToCallback) {\n\t\tcomponentIdToCallback = {};\n\t\ttargetOriginToComponentIdMap[targetOrigin] = componentIdToCallback;\n\t}\n\n\tcomponentIdToCallback[componentId] = callback;\n}\n\nfunction removePostMessageListener({componentId, targetWindow, targetOrigin}) {\n\tconst componentIdToCallback = getComponentIdToCallback(targetWindow, targetOrigin);\n\n\tif (componentIdToCallback && componentId in componentIdToCallback)\n\t\tdelete componentIdToCallback[componentId];\n}\n\nexport default function createPostMessageBehavior({\n\tpostMessageAction = POST_MESSAGE,\n\tmessageReceivedAction = MESSAGE_RECEIVED,\n\tsetTargetWindowAction = SET_TARGET_WINDOW,\n\ttargetOrigin\n}) {\n\tif (!targetOrigin)\n\t\tlog('targetOrigin must be set', {level: logTypes.ERROR, origin: 'createPostMessageBehavior'});\n\n\treturn {\n\t\tname: 'postMessageBehavior',\n\t\tinitialState: {\n\t\t\ttargetWindow: null\n\t\t},\n\t\tactionHandlers: {\n\t\t\t[setTargetWindowAction]({updateState, action, properties, dispatch}) {\n\t\t\t\tconst {targetWindow} = action.payload;\n\t\t\t\tconst componentId = properties.nowId;\n\n\t\t\t\tupdateState(\n\t\t\t\t\t{\n\t\t\t\t\t\tpath: 'targetWindow',\n\t\t\t\t\t\tvalue: targetWindow,\n\t\t\t\t\t\toperation: 'set',\n\t\t\t\t\t\tshouldRender: false\n\t\t\t\t\t},\n\t\t\t\t\t{SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED: true}\n\t\t\t\t);\n\n\t\t\t\tif (targetWindow && componentId) {\n\t\t\t\t\taddPostMessageListener({componentId, targetWindow, targetOrigin}, data => {\n\t\t\t\t\t\tdispatch(messageReceivedAction, data);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tremovePostMessageListener({componentId, targetWindow, targetOrigin});\n\t\t\t\t}\n\t\t\t},\n\t\t\t[postMessageAction]({state, action, host}) {\n\t\t\t\tconst {targetWindow} = state;\n\t\t\t\tif (targetWindow) {\n\t\t\t\t\ttargetWindow.postMessage(action.payload, targetOrigin);\n\t\t\t\t} else {\n\t\t\t\t\tconst {tagName, componentId} = getHostInfo(host);\n\t\t\t\t\tlog(\n\t\t\t\t\t\t`${postMessageAction} could not post message to targetWindow because targetWindow is not defined.`,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttagName,\n\t\t\t\t\t\t\tcomponentId,\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\torigin: `${postMessageAction}`\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[actionTypes.COMPONENT_DISCONNECTED]({properties, state: {targetWindow}}) {\n\t\t\t\tconst componentId = properties.nowId;\n\t\t\t\tif (targetWindow && componentId)\n\t\t\t\t\tremovePostMessageListener({componentId, targetWindow, targetOrigin});\n\t\t\t}\n\t\t}\n\t};\n}\n","export {default as callAsync} from './callAsync';\nexport * from './symbols';\n\nexport {\n\terrorTypes,\n\tactionTypes,\n\tlocations,\n\tdomainSeparationProperties,\n\tDISCONNECTED_TIME,\n\tACTIVE_SPAN,\n\tNOW_ID_ATTRIBUTE,\n\tCOMPONENT_ID_ATTRIBUTE,\n\tNOW_SKIP_RENDER_UNTIL_PRESENT_ATTR,\n\tNOW_SKIP_RENDER_UNTIL_PRESENT,\n\tRESOLVED_PROPS_ATTRIBUTE,\n\tNOW_EXCLUDED_FROM_HYDRATION_ATTR,\n\tNOW_DEFER_HYDRATION_ATTR,\n\tNOW_DEFER_HYDRATION\n} from './constants';\nexport {default as createLogger} from './createLogger';\nexport {default as getHostInfo} from './getHostInfo';\nexport {default as memoize} from './memoizeProfiler';\nexport {default as sandbox} from './sandbox';\nexport {notify as dispatchError} from './sandbox';\nexport {default as guid} from './guid';\nexport {default as createAriaRef} from './createAriaRef';\nexport {createRef, isRef, subscribeToRef} from './refs';\n\nexport {\n\tkebabCase,\n\tcamelCase,\n\ttoString,\n\ttoLower,\n\ttoUpper,\n\tfindKey,\n\tsplitPath,\n\tget,\n\tset,\n\tpick,\n\tomit,\n\tvalues,\n\tnoop,\n\tisEqual,\n\tisSelectiveEqual,\n\tisPlainObject,\n\tisEmpty,\n\tdefer,\n\traf,\n\twhenIdle,\n\trequestIdleCallback,\n\trequestIdleCallbackPollyfill,\n\tisThrottled\n} from '@servicenow/ui-utils';\nexport * from './logHandler';\nexport * from './pendingNetworkActionsRegistry';\nexport {default as getSpanOptions} from './getSpanOptions';\n","const callAsync = Promise.resolve().then.bind(Promise.resolve());\nexport default callAsync;\n","export const VARIABLES = Symbol('__variables__');\nexport const INTERNAL_HOST_DISPATCH = Symbol('__internal_host_dispatch__');\nexport const EXISTING_SHADOW_ROOT_ON_CREATE = Symbol('__existing_shadow_root_on_create__');\n","export const errorTypes = {\n\tCOMPONENT_ERROR_THROWN: 'SEISMIC_COMPONENT_ERROR_THROWN'\n};\n\n// Public action types\nexport const actionTypes = {\n\tCOMPONENT_CONNECTED: 'SEISMIC_COMPONENT_CONNECTED',\n\tCOMPONENT_DISCONNECTED: 'SEISMIC_COMPONENT_DISCONNECTED',\n\tCOMPONENT_BOOTSTRAPPED: 'SEISMIC_COMPONENT_BOOTSTRAPPED',\n\tCOMPONENT_PROPERTY_CHANGED: 'SEISMIC_COMPONENT_PROPERTY_CHANGED',\n\tCOMPONENT_RENDERED: 'SEISMIC_COMPONENT_RENDERED',\n\tCOMPONENT_DOM_READY: 'SEISMIC_COMPONENT_DOM_READY',\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED: 'SEISMIC_COMPONENT_PROPERTY_UPDATE_REQUESTED',\n\tCOMPONENT_RENDER_REQUESTED: 'SEISMIC_COMPONENT_RENDER_REQUESTED',\n\tCOMPONENT_DOM_TREE_READY: 'SEISMIC_COMPONENT_DOM_TREE_READY',\n\tCOMPONENT_TREE_RENDERED: 'SEISMIC_COMPONENT_TREE_RENDERED',\n\tCOMPONENT_ACTION_DISPATCHED: 'SEISMIC_COMPONENT_ACTION_DISPATCHED',\n\tCOMPONENT_ERROR_THROWN: errorTypes.COMPONENT_ERROR_THROWN,\n\tCOMPONENT_INTERACTIVE: 'SEISMIC_COMPONENT_INTERACTIVE'\n};\n\nexport const locations = {\n\tEFFECT: 'SEISMIC_LOCATION_EFFECT',\n\tEVENT: 'SEISMIC_LOCATION_EVENT',\n\tINITIAL_STATE: 'SEISMIC_LOCATION_INITIAL_STATE',\n\tINTERCEPTOR: 'SEISMIC_LOCATION_INTERCEPTOR',\n\tLIFECYCLE: 'SEISMIC_LOCATION_LIFECYCLE',\n\tPROPERTY: 'SEISMIC_LOCATION_PROPERTY',\n\tRENDERER: 'SEISMIC_LOCATION_RENDERER',\n\tTRANSFORM_STATE: 'SEISMIC_LOCATION_TRANSFORM_STATE',\n\tVIEW: 'SEISMIC_LOCATION_VIEW'\n};\n\nexport const COMPONENT_ID_ATTRIBUTE = 'component-id';\nexport const NOW_ID_ATTRIBUTE = 'now-id';\nexport const NOW_ID_PROP = 'nowId';\nexport const DISCONNECTED_TIME = Symbol('SEISMIC_COMPONENT_DISCONNECTED_TIME');\n\nexport const domainSeparationProperties = {\n\tNOW_DS_RECORD_TABLE: 'nowDsRecordTable',\n\tNOW_DS_RECORD_ID: 'nowDsRecordId',\n\tNOW_DS_DOMAIN_ID: 'nowDsDomainId',\n\tNOW_DS_DOMAIN_SCOPE: 'nowDsDomainScope'\n};\n\nexport const CREATE_REF_SYMBOL = Symbol('__CREATE_REF_SYMBOL__');\nexport const CREATE_REF_SUBSCRIBE_SYMBOL = Symbol('__CREATE_REF_SUBSCRIBE_SYMBOL__');\nexport const CREATE_REF_COMP_PROPS_SUBSCRIPTIONS_SYMBOL = Symbol(\n\t'__CREATE_REF_COMP_PROPS_SUBSCRIPTIONS_SYMBOL__'\n);\n\n//tracing\nexport const ACTIVE_SPAN = Symbol('__ACTIVE_SPAN__');\nexport const SPAN_KIND_CLIENT = 3;\nexport const SPAN_FOR_COMPONENT_ERROR_THROWN = 'ERROR_THROWN';\nexport const SPAN_FOR_DISPATCH = 'ACTION_DISPATCH';\nexport const SPAN_ATTR_DISPATCH_ACTION_TYPE = 'actionType';\nexport const SPAN_ATTR_DISPATCH_MESSAGE = 'message';\nexport const SPAN_LEVEL_FINE = 100;\n\n// server-side rendering\n/**\n * NOW_SKIP_RENDER_UNTIL_PRESENT_ATTR defines a comma-separated list of property names\n * whose values should be present before the component is rendered. The reason for this\n * attribute is that the server rendered markup presents the settled state of the component,\n * while the client-side rendering may take a few renders before getting to the same state.\n * If we don't skip the intermediate renders, the hydration/patch process will trash the\n * server-rendered markups.\n */\nexport const NOW_SKIP_RENDER_UNTIL_PRESENT_ATTR = 'now-skip-render-until-present';\nexport const NOW_SKIP_RENDER_UNTIL_PRESENT = 'nowSkipRenderUntilPresent';\nexport const NOW_DEFER_HYDRATION_ATTR = 'defer-hydration';\nexport const NOW_DEFER_HYDRATION = 'deferHydration';\n/**\n * NOW_EXCLUDED_FROM_HYDRATION_ATTR is a boolean to indicate if an element should be excluded\n * from the hydration. The reason is that some components (like some UXR components) directly\n * manipulate the DOM without going through the seismic renderer. In such case, the client-side\n * rendering will not be able to generate the same DOM structure as the server-side rendering,\n * which causes the server markups to be trashed during the hydration process.\n */\nexport const NOW_EXCLUDED_FROM_HYDRATION_ATTR = 'now-excluded-from-hydration';\nexport const RESOLVED_PROPS_ATTRIBUTE = 'now-resolved-props';\n","import {\n\tcreateLogContext,\n\tshouldLog,\n\tnotifyLogObservers,\n\tallLogTypes as logTypes\n} from './logHandler';\nconst tagNameCache = {};\n\nconst defaults = {\n\tsupport: 'https://developer.servicenow.com/now-experience-ui-framework/support',\n\tmodule: '@servicenow/ui-core'\n};\n\nconst logOptionDefaults = {\n\tlevel: logTypes.WARN,\n\terror: null,\n\talways: false,\n\tdocs: null,\n\ttagName: null,\n\tcomponentId: null\n};\n\n/**\n * Creates a logger.\n * @function createLogger\n * @private\n * @param {Object} config - The logger configuration.\n * @param {string} [config.support] - Link to NX UI Documentation & Support\n * @param {string} [config.module] - Module name.\n */\nexport default function createLogger(options = {}) {\n\tconst loggerOptions = {...defaults, ...options};\n\tconst {module, support} = loggerOptions;\n\tconst postfix = `Visit ${support} for more information about UI Framework on Next Experience.`;\n\treturn async function log(message, options = {}) {\n\t\tconst logOptions = {...logOptionDefaults, message, module, postfix, ...options};\n\t\tconst resolvedLogContext = createLogContext(logOptions);\n\t\tif (shouldLog(resolvedLogContext, logOptions)) {\n\t\t\tconst {level} = logOptions;\n\t\t\tconst logger = console[level] || console.log; // eslint-disable-line no-console\n\t\t\tconst {componentName, logMessage} = resolvedLogContext;\n\t\t\tif (componentName) {\n\t\t\t\tif (componentName in tagNameCache && message in tagNameCache[componentName]) return;\n\n\t\t\t\ttagNameCache[componentName] = tagNameCache[componentName] || {};\n\t\t\t\ttagNameCache[componentName][message] = true;\n\t\t\t}\n\t\t\tlogger(logMessage);\n\t\t\tnotifyLogObservers(resolvedLogContext);\n\t\t}\n\t};\n}\n","import {logTypes, allLogTypes} from './constants';\nimport {default as createLogContext} from './createLogContext';\nimport {default as shouldLog} from './shouldLog';\nimport {default as observe} from './observe';\nimport {default as notifyLogObservers} from './notifyLogObservers';\n\nglobalThis.nowUiFrameworkLogs = {\n\tobserve,\n\tlogTypes\n};\n\nexport {shouldLog, observe, createLogContext, notifyLogObservers, allLogTypes};\n","const ERROR = 'error';\nconst WARN = 'warn';\nconst INFO = 'info';\nconst DEBUG = 'debug';\nconst TRACE = 'trace';\nconst EMIT = 'emit';\n\nexport const logTypes = [ERROR, WARN, INFO, DEBUG, TRACE, EMIT];\nexport const allLogTypes = {\n\tERROR,\n\tWARN,\n\tINFO,\n\tDEBUG,\n\tTRACE,\n\tEMIT\n};\n","export default function createLogContext({\n\thost,\n\ttagName: componentName,\n\tcomponentId,\n\tlevel,\n\terror,\n\tdocs,\n\torigin,\n\tmodule,\n\tmessage,\n\tpostfix\n}) {\n\tconst tempHost = host ? host : {};\n\tconst {\n\t\ttagName = null,\n\t\tnowId = null,\n\t\t__DO_NOT_USE_OR_YOU_WILL_BE_FIRED_BY_YOUR_PARENT__ = null,\n\t\tnowLoggingLevels = null\n\t} = tempHost;\n\n\tconst logContext = {\n\t\tcomponentName: tagName ? tagName : componentName,\n\t\tcomponentId: nowId ? nowId : componentId,\n\t\tparentComponentId: __DO_NOT_USE_OR_YOU_WILL_BE_FIRED_BY_YOUR_PARENT__,\n\t\tlevel,\n\t\terror,\n\t\tdocs,\n\t\torigin,\n\t\tmodule,\n\t\tpostfix,\n\t\tnowLoggingLevels\n\t};\n\n\tlogContext.logMessage = getLogMessage(logContext, message);\n\treturn logContext;\n}\n\nconst getLogMessage = (logContext, message) => {\n\tconst {componentName, componentId, docs, error, postfix, module, origin} = logContext;\n\tconst componentMsg = componentName\n\t\t? `<${componentName.toLowerCase()} ${componentId ? `component-id=\"${componentId}\"` : ''}/>`\n\t\t: '';\n\n\tlet startMessage = '';\n\tif (componentMsg && origin)\n\t\tstartMessage = `For component ${componentMsg} with origin '${origin}': `;\n\telse if (componentMsg) startMessage = `For component ${componentMsg}: `;\n\telse if (origin) startMessage = `At origin '${origin}': `;\n\n\treturn `${module} ${startMessage}${message}${error ? `\\n${error.stack}` : ''}${\n\t\tdocs ? `\\nDocumentation: ${docs}` : `\\n${postfix}`\n\t}`;\n};\n","import {logTypes} from './constants';\nimport {getConfigItem, configConstants, observeConfigItem} from '@servicenow/ui-config';\nconst {LOGGING_ENABLED, LOGGING_LEVELS} = configConstants;\n\nlet globalLoggingEnabled = getConfigItem(LOGGING_ENABLED);\nlet globalLoggingLevels = getConfigItem(LOGGING_LEVELS);\n\nconst observer = (path, value) => {\n\tswitch (path) {\n\t\tcase LOGGING_ENABLED:\n\t\t\tglobalLoggingEnabled = value;\n\t\t\tbreak;\n\t\tcase LOGGING_LEVELS:\n\t\t\tglobalLoggingLevels = value;\n\t\t\tbreak;\n\t}\n};\n\nobserveConfigItem(LOGGING_ENABLED, observer);\nobserveConfigItem(LOGGING_LEVELS, observer);\n\nexport default function shouldLog(logContext, options) {\n\tconst {always, level: logType} = options;\n\tif (always) return true;\n\n\tif (!logTypes.includes(logType)) return false;\n\n\tconst {nowLoggingLevels} = logContext;\n\n\tif (nowLoggingLevels === true || nowLoggingLevels === false) return nowLoggingLevels;\n\n\tif (Array.isArray(nowLoggingLevels)) return nowLoggingLevels.includes(logType);\n\n\tif (globalLoggingLevels === true || globalLoggingLevels === false) return globalLoggingLevels;\n\n\tif (Array.isArray(globalLoggingLevels)) return globalLoggingLevels.includes(logType);\n\n\treturn !!globalLoggingEnabled;\n}\n","import {getConfig, getConfigItem, setConfigItem, observeConfigItem} from './config';\nimport {getEmbeddableBaseUrl, setEmbeddableBaseUrl} from './config-embeddable';\nimport * as configConstants from './constants';\n\nglobalThis.nowUiFramework = globalThis.nowUiFramework || {};\nglobalThis.nowUiFramework.getConfig = getConfig;\nglobalThis.nowUiFramework.getConfigItem = getConfigItem;\nglobalThis.nowUiFramework.setConfigItem = setConfigItem;\nglobalThis.nowUiFramework.observeConfigItem = observeConfigItem;\nglobalThis.nowUiFramework.getEmbeddableBaseUrl = getEmbeddableBaseUrl;\nglobalThis.nowUiFramework.setEmbeddableBaseUrl = setEmbeddableBaseUrl;\n\nexport {\n\tconfigConstants,\n\tgetConfig,\n\tgetConfigItem,\n\tsetConfigItem,\n\tobserveConfigItem,\n\tgetEmbeddableBaseUrl,\n\tsetEmbeddableBaseUrl\n};\n","import {get, set} from '@servicenow/ui-utils';\nimport {\n\tNOW_UI_CONFIG,\n\tNOW_UI_FRAMEWORK,\n\tNOW_UI_FRAMEWORK_CONFIG_KEYS,\n\tNXUI_SYS_PROPS\n} from './constants';\nimport {default as emitNowUiEvent} from './emitNowUiEvent';\nimport {getConfigForEnv} from './configs/index';\n\nconst configInstance = {};\n\n/***\n * Private\n */\n\n/***\n * @function getConfigFromGlobal\n * @description checks the globalThis object for configs\n */\nconst getConfigFromGlobal = () => {\n\tconst globalConfig = {};\n\n\tif (!globalThis[NOW_UI_FRAMEWORK]) return globalConfig;\n\n\tNOW_UI_FRAMEWORK_CONFIG_KEYS.forEach(key => {\n\t\tif (globalThis[NOW_UI_FRAMEWORK][key] !== undefined)\n\t\t\tglobalConfig[key] = globalThis[NOW_UI_FRAMEWORK][key];\n\t});\n\n\treturn globalConfig;\n};\n\nconst getConfigFromSysProps = () => {\n\tconst nxuiConfig = {};\n\n\tif (!globalThis.ux_globals?.nxui?.sysprops) return nxuiConfig;\n\n\tconst sysPropKeys = Object.keys(NXUI_SYS_PROPS);\n\tfor (const sysProp in globalThis.ux_globals.nxui.sysprops) {\n\t\tif (sysPropKeys.indexOf(sysProp) > -1) {\n\t\t\tconst configKey = NXUI_SYS_PROPS[sysProp];\n\t\t\tconst sysPropValue = globalThis.ux_globals.nxui.sysprops[sysProp];\n\t\t\tif (sysPropValue === 'true') nxuiConfig[configKey] = true;\n\t\t\telse if (sysPropValue === 'false') nxuiConfig[configKey] = false;\n\t\t\telse nxuiConfig[configKey] = sysPropValue;\n\t\t}\n\t}\n\n\treturn nxuiConfig;\n};\n\nconst observeredProperties = {};\n\n/***\n * Public\n */\n\n/**\n * getConfig\n * @description returns the config instance\n * @function getConfig\n */\nexport const getConfig = () => {\n\t// Need to whitelist keys\n\tconst globalConfig = getConfigFromGlobal();\n\tconst sysPropConfig = getConfigFromSysProps();\n\tconst envConfig = getConfigForEnv();\n\n\t// Build Config Object -> Env Defaults -> Sys Props -> Global Config -> Overrides\n\tconst configObj = {...envConfig, ...sysPropConfig, ...globalConfig, ...configInstance};\n\treturn configObj;\n};\n\n/**\n * observeConfigItem\n * @description returns a function to remove the observer\n * @param {String} path\n * @param {Function} fn\n * @function observeConfigItem\n */\nexport const observeConfigItem = (path, fn) => {\n\tconst observers = observeredProperties[path] || (observeredProperties[path] = new Set());\n\tobservers.add(fn);\n\treturn () => observers.delete(fn);\n};\n\n/**\n * Getter for Config\n * @param {String} path\n * @returns {Object} Returns the key and value for the config item\n */\nexport const getConfigItem = path => {\n\tconst overridden = get(configInstance, path);\n\tif (overridden !== undefined) return overridden;\n\n\tconst globalVar = get(getConfigFromGlobal(), path);\n\tif (globalVar !== undefined) return globalVar;\n\n\tconst sysPropVar = get(getConfigFromSysProps(), path);\n\tif (sysPropVar !== undefined) return sysPropVar;\n\n\treturn get(getConfigForEnv(), path, undefined);\n};\n\n/**\n * Setter for Config\n * @function setConfigItem\n * @description Setter for the Seismic config\n * @param {String} path\n * @param {*} value\n * @returns {Object} Returns the key and value for the config item that was set\n *\n * Is it a junk drawer or do we want to whitelist keys?\n */\nexport const setConfigItem = (path, value) => {\n\tif (getConfigItem(path) === value) return;\n\n\temitNowUiEvent(NOW_UI_CONFIG, {path, value, previousValue: getConfigItem(path)});\n\tconst retVal = set(configInstance, path, value);\n\tconst observers = observeredProperties[path];\n\tif (observers) observers.forEach(fn => fn(path, value));\n\n\treturn retVal;\n};\n","export {default as kebabCase} from './kebabCase';\nexport {default as camelCase} from './camelCase';\nexport {default as toString} from './toString';\nexport {default as toLower} from './toLower';\nexport {default as toUpper} from './toUpper';\nexport {default as memoize} from './memoize';\nexport {default as findKey} from './findKey';\nexport {default as get} from './get';\nexport {default as set} from './set';\nexport {splitPath} from './splitPath';\nexport {default as pick} from './pick';\nexport {default as omit} from './omit';\nexport {default as values} from './values';\nexport {default as noop} from './noop';\nexport {default as isEqual} from './isEqual';\nexport {default as isSelectiveEqual} from './isSelectiveEqual';\nexport {default as isPlainObject} from './isPlainObject';\nexport {default as isEmpty} from './isEmpty';\nexport {default as defer} from './defer';\nexport {default as whenIdle} from './whenIdle';\nexport {default as raf} from './raf';\nexport {default as requestIdleCallback, requestIdleCallbackPollyfill} from './requestIdleCallback';\nexport {default as isThrottled} from './isThrottled';\nexport {default as createSnHttp} from './createSnHttp';\nexport * from './deferMetrics';\n","/**\n * Converts a string to [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @example\n * kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * @function kebabCase\n * @param {string} str The string to convert.\n * @return {string} Returns the kebab cased string.\n */\nexport default function kebabCase(str) {\n\tif (typeof str !== 'string') return '';\n\n\treturn str\n\t\t.trim()\n\t\t.replace(/(\\B[A-Z]|\\B[0-9])/g, '-$1')\n\t\t.replace(/[\\s_]+/g, '-')\n\t\t.toLowerCase();\n}\n","import kebabCase from './kebabCase';\n\n/**\n * Converts a string to [camel case](https://en.wikipedia.org/wiki/Camel_case).\n *\n * @example\n * camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * @function camelCase\n * @param {string} str The string to convert.\n * @return {string} Returns the camel cased string.\n */\nexport default function camelCase(str) {\n\treturn kebabCase(str)\n\t\t.replace(/[-_]+/g, ' ')\n\t\t.replace(/[^\\w\\s]/g, '')\n\t\t.replace(/ (.)/g, $1 => $1.toUpperCase())\n\t\t.replace(/ /g, '');\n}\n","/**\n * Converts a value to string.  If given `null` or `undefined`, an empty string is returned.\n * @function toString\n * @param value The value to convert.\n * @return {string} Returns converted string value.\n */\nexport default function toString(value) {\n\tif (value === null || value === undefined) return '';\n\n\treturn value.toString();\n}\n","/**\n * Converts a string to lower case similar to [String#toLowerCase](https://mdn.io/toLowerCase).\n *\n * @example\n * toLower('FOO BAR');\n * // => 'foo bar'\n *\n * @function toLower\n * @param {string} str The string to convert.\n * @return {string} Returns the lower cased string.\n */\nexport default function toLower(str) {\n\tif (typeof str !== 'string') return '';\n\n\treturn str.toLowerCase();\n}\n","/**\n * Converts a string to upper case similar to [String#toUpperCase](https://mdn.io/toUpperCase).\n *\n * @example\n * toUpper('foo bar');\n * // => 'FOO BAR'\n *\n * @function toUpper\n * @param {string} str The string to convert.\n * @return {string} Returns the upper cased string.\n */\nexport default function toUpper(str) {\n\tif (typeof str !== 'string') return '';\n\n\treturn str.toUpperCase();\n}\n","let trackStats = false;\nlet stats = {};\nfunction recordStat(profileName, hit) {\n\tlet stat = stats[profileName];\n\n\tif (!stat) {\n\t\tstat = {calls: 0, hits: 0, size: 0};\n\t\tstats[profileName] = stat;\n\t}\n\n\tstat.calls += 1;\n\tif (hit) stat.hits += 1;\n\telse stat.size += 1;\n}\n/**\n * Creates a new function that memoizes the result of the provided `func` function.  When the\n * `resolver` function is specified, its returned value is used as the cache key of the memoized\n * function. By default, the first argument of the memoized function is used as the cache key.\n *\n * The cache is exposed as the `cache` property on the returned memoized function. It can be\n * customized by replacing the `memoize.Cache` constructor with one whose instances implement the\n * same [instance methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Instance_methods)\n * of `Map`.\n *\n * @function memoize\n * @param {Function} func The function to have its output memoized.\n * @param {Object} options Additional memoize options.\n * @param {Function} options.createCacheKey The function to resolve the cache key. Must return a string.\n * @param {string} options.profileName A unique name to use to track this function and its performance. Optional but highly encouraged to set it\n * @param {string} options.snabbdom Set to true if the function is returning JSX and is using snabbdom-renderer\n * @return {Function} Returns a new memoized function.\n */\nexport default function memoize(func, createCacheKey, options) {\n\tlet cck = createCacheKey;\n\tlet profileName;\n\tlet snabbdom = false;\n\tif (options === undefined && typeof createCacheKey === 'object') {\n\t\tcck = createCacheKey.createCacheKey;\n\t\tprofileName = createCacheKey.profileName;\n\t\tsnabbdom = createCacheKey.snabbdom;\n\t} else if (typeof options === 'object') {\n\t\tcck = createCacheKey || options.createCacheKey;\n\t\tprofileName = options.profileName;\n\t\tsnabbdom = options.snabbdom;\n\t}\n\n\tconst memoized = function (...args) {\n\t\tconst key = cck ? cck.apply(this, args) : args[0];\n\t\tconst {cache} = memoized;\n\n\t\tif (cache.has(key)) {\n\t\t\tif (trackStats) recordStat(profileName, true);\n\n\t\t\tconst result = cache.get(key);\n\t\t\treturn snabbdom ? cloneVnode(result) : result;\n\t\t}\n\n\t\tif (trackStats) recordStat(profileName, false);\n\n\t\tconst result = func.apply(this, args);\n\t\tconst cacheValue = snabbdom ? cloneVnode(result) : result;\n\t\tmemoized.cache = cache.set(key, cacheValue) || cache;\n\n\t\treturn cacheValue;\n\t};\n\tmemoized.cache = new (memoize.Cache || Map)();\n\treturn memoized;\n}\n\nmemoize.Cache = Map;\n\nmemoize.collectStats = function collectStats(value = true) {\n\ttrackStats = value;\n};\n\nmemoize.clearStats = function clearStats() {\n\tstats = {};\n};\n\nmemoize.getStats = function getStats() {\n\treturn Object.keys(stats).reduce((obj, current) => {\n\t\tconst {hits, calls} = stats[current];\n\t\tconst stat = {\n\t\t\t...stats[current],\n\t\t\tusage: calls ? `${((hits / calls) * 100).toFixed(4)}%` : '0.0000%'\n\t\t};\n\t\treturn {\n\t\t\t...obj,\n\t\t\t[current]: stat\n\t\t};\n\t}, {});\n};\n\nfunction cloneVnode(vnode) {\n\tif (!vnode) return vnode;\n\treturn {\n\t\tchildren:\n\t\t\tvnode.children !== undefined ? vnode.children.map(child => cloneVnode(child)) : undefined,\n\t\tdata: vnode.data,\n\t\telm: undefined,\n\t\tkey: vnode.key,\n\t\tsel: vnode.sel,\n\t\ttext: vnode.text\n\t};\n}\n","/**\n * Finds the key of the first element predicate that returns truthy.\n *\n * @example\n * findKey({foo: 0, bar: 1}, value => value === 1);\n * // => 'bar'\n *\n * @function findKey\n * @param {Object} object The object to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @return {*} Returns the key of the first matched element, otherwise `undefined`.\n */\nexport default function findKey(object, predicate) {\n\tif (!object) return;\n\n\tconst result = Object.entries(object).find(([key, value]) => predicate(value, key));\n\tif (result) {\n\t\tconst [key] = result;\n\t\treturn key;\n\t}\n}\n","import {splitPath} from './splitPath';\n\n/**\n * Gets the property value at `path` from `object`.  If the value cannot\n * resolved or is `undefined`, the `defaultValue` is returned.\n *\n * @example\n * const object = { 'foo': [{ 'bar': { 'baz': 1 } }] }\n * get(object, 'foo[0].bar.baz');\n * // => 1\n *\n * @function get\n * @param {Object} object The object to query.\n * @param {string} path The path of the property to get.\n * @param {*} [defaultValue] The returned value for unresolved properties.\n * @return {*} Returns the value from the specified `path`.\n */\nexport default function get(object, path, defaultValue) {\n\tif (!object || !path) return defaultValue;\n\n\tconst parts = splitPath(path);\n\tlet here = object;\n\tconst {length: partsCount} = parts;\n\tfor (let i = 0; i < partsCount; i++) {\n\t\tif (!here || !Object.prototype.hasOwnProperty.call(here, parts[i])) return defaultValue;\n\t\there = here[parts[i]];\n\t}\n\n\treturn here !== undefined ? here : defaultValue;\n}\n","import memoize from './memoize';\n\n/**\n * Splits a property path into parts.\n * @function splitPath\n * @private\n * @param {string} path String path to split into parts.\n * @return {Array<(string)>} An array of path parts.\n */\nconst splitPathMemoized = memoize(\n\tfunction splitPath(path) {\n\t\t// Added support using Symbol as keys\n\t\tif (typeof path === 'symbol') return [path];\n\n\t\tif (typeof path !== 'string' && !Array.isArray(path)) return [];\n\n\t\tif (Array.isArray(path)) return path;\n\n\t\tconst keys = path.split('.');\n\n\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\tconst part = keys[i];\n\t\t\tconst {length: partLength} = part;\n\t\t\tif (part.charAt(partLength - 1) === ']') {\n\t\t\t\tconst index = [];\n\t\t\t\tlet char = '[';\n\t\t\t\tlet indexStartPosition = part.indexOf(char);\n\t\t\t\tconst key = part.substring(0, indexStartPosition);\n\n\t\t\t\tif (key)\n\t\t\t\t\t// key will be empty for `[0].bar`\n\t\t\t\t\tindex.push(key);\n\n\t\t\t\twhile (indexStartPosition < partLength) {\n\t\t\t\t\tif (char !== '[' && char !== ']') {\n\t\t\t\t\t\tconst indexEndPosition = part.indexOf(']', indexStartPosition);\n\t\t\t\t\t\tlet arrayPart = part.substring(indexStartPosition, indexEndPosition);\n\n\t\t\t\t\t\t// If the part inside the array access is wrapped in quotes, remove them\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tarrayPart.charAt(0) === arrayPart.charAt(arrayPart.length - 1) &&\n\t\t\t\t\t\t\t[\"'\", '\"'].includes(arrayPart.charAt(0))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\tarrayPart = arrayPart.slice(1, -1);\n\n\t\t\t\t\t\tindex.push(arrayPart); // this could be [0] or [foo]\n\t\t\t\t\t\tindexStartPosition = indexEndPosition;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tindexStartPosition += 1;\n\t\t\t\t\t}\n\n\t\t\t\t\tchar = part.charAt(indexStartPosition);\n\t\t\t\t}\n\n\t\t\t\tconst {length: indexLength} = index;\n\t\t\t\tif (indexLength) {\n\t\t\t\t\tkeys.splice(i, 1, ...index);\n\t\t\t\t\ti += indexLength - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn keys;\n\t},\n\tnull,\n\t{profileName: 'splitPath'}\n);\n\nexport {splitPathMemoized as splitPath};\n","import {splitPath} from './splitPath';\n\n/**\n * Sets the property value at `path` on `object`.  If a portion of the `path` does not exist, it\n * will be created.\n *\n * Note: This method mutates the object.\n *\n * @example\n * const object = { foo: [{ bar: { baz: 3 } }] };\n * set(object, 'foo[0].bar.baz', 4);\n *\n * @function set\n * @param {Object} object The object to modify.\n * @param {string} path The path of the property to set.\n * @param {*} value The value to set.\n */\nexport default function set(object, path, value) {\n\tif (!object || !path) return;\n\n\tconst parts = splitPath(path);\n\n\tlet here = object;\n\tlet next;\n\tconst {length: partsCount} = parts;\n\tfor (let i = 0; i < partsCount; i++) {\n\t\tconst shouldSet = i + 1 === partsCount;\n\t\tconst part = parts[i];\n\t\tnext = here[part];\n\t\tif (!next) {\n\t\t\tconst nextNext = parts[i + 1];\n\t\t\tconst index = Number.parseInt(nextNext);\n\t\t\tnext = here[part] = index == nextNext && !Number.isNaN(index) ? [] : {}; // eslint-disable-line eqeqeq, no-multi-assign\n\t\t}\n\t\tif (shouldSet) here[part] = value;\n\n\t\there = next;\n\t}\n}\n","/**\n * Creates an object composed of the picked properties from the `source` object.\n * @example\n * const object = { foo: 0, bar: 1, baz: 2 };\n * pick(object, ['bar', 'baz']);\n * // => { bar: 1, baz: 2 }\n *\n * @function pick\n * @param {Object} source The object to pick from.\n * @param {(string[]|string)} path The property path(s) to pick.\n * @return {Object} Returns an object with the picked properties.\n */\nexport default function pick(source, path) {\n\tconst values = {};\n\tif (!path || !path.length || !source) return {};\n\n\tconst paths = typeof path === 'string' ? [path] : path;\n\tconst {length: pathLength} = paths;\n\tfor (let i = 0; i < pathLength; i++) {\n\t\tconst key = paths[i];\n\t\tif (source.hasOwnProperty(key)) values[key] = source[key];\n\t}\n\n\treturn values;\n}\n","/**\n * Creates an object composed of all but the omitted properties from the `source` object.\n * @example\n * const object = { foo: 0, bar: 1, baz: 2 };\n * omit(object, ['bar', 'baz']);\n * // => { foo: 0 }\n *\n * @function omit\n * @param {Object} source The object to omit from.\n * @param {(string[]|string)} path The property path(s) to omit.\n * @return {Object} Returns an object without the omitted properties.\n */\nexport default function omit(source, path) {\n\tif (!path || !path.length || !source) return source;\n\n\tconst values = {};\n\tconst paths = typeof path === 'string' ? [path] : path;\n\tconst {length: pathLength} = paths;\n\tfor (const key in source) {\n\t\tlet shouldOmit = false;\n\t\tfor (let i = 0; i < pathLength; i++) {\n\t\t\tif (key === paths[i]) shouldOmit = true;\n\t\t}\n\n\t\tif (!shouldOmit) values[key] = source[key];\n\t}\n\n\treturn values;\n}\n","/**\n * Creates an array of the own enumerable string-keyed property values from the `source` object.\n * @example\n * function Foo() {\n *   this.bar = 0;\n *   this.baz = 1;\n * }\n * Foo.prototype.qux = 2\n *\n * values(new Foo);\n * // => [0, 1]\n *\n * @function values\n * @param {Object} source The object to query.\n * @return {Array<*>} Returns an array of property values.\n */\nexport default function values(source) {\n\tconst values = [];\n\tif (!source) return values;\n\n\tconst entries = Object.entries(source);\n\tconst {length: entriesLength} = entries;\n\tfor (let i = 0; i < entriesLength; i++) values.push(entries[i][1]);\n\n\treturn values;\n}\n","/**\n * This method does nothing and returns undefined.\n *\n * @example\n * noop()\n * // => undefined\n *\n * @function noop\n */\nexport default function noop() {\n\t// No operation performed.\n}\n","function isArrayEqual(source, target, options) {\n\tconst {length: sourceLength} = source;\n\tconst {length: targetLength} = target;\n\n\tif (sourceLength !== targetLength) return false;\n\n\tfor (let i = 0; i < sourceLength; i++) {\n\t\tif (!isEqual(source[i], target[i], options)) return false;\n\t}\n\n\treturn true;\n}\n\nfunction isObjectEqual(source, target, options) {\n\tif ((!source && target) || (source && !target)) return false;\n\n\tconst sourceKeys = Object.keys(source);\n\tconst targetKeys = Object.keys(target);\n\tconst {length: sourceKeyLength} = sourceKeys;\n\tconst {length: targetKeyLength} = targetKeys;\n\n\tif (sourceKeyLength !== targetKeyLength) return false;\n\n\treturn sourceKeys.every(key => isEqual(source[key], target[key], options));\n}\n\nfunction isObjectTagEqual(source, target, options) {\n\tconst {classes = true} = options;\n\tconst sourceTag = Object.prototype.toString.call(source);\n\tconst targetTag = Object.prototype.toString.call(target);\n\n\tif (sourceTag !== targetTag) return false;\n\n\tswitch (sourceTag) {\n\t\tcase '[object Boolean]':\n\t\tcase '[object Number]':\n\t\tcase '[object Date]':\n\t\t\treturn eq(+source, +target);\n\n\t\tcase '[object Set]':\n\t\t\treturn isArrayEqual([...source], [...target], options);\n\n\t\tcase '[object Map]':\n\t\t\treturn isObjectEqual(Object.fromEntries(source), Object.fromEntries(target), options);\n\n\t\tcase '[object String]':\n\t\t\treturn `${source}` === `${target}`;\n\n\t\tcase '[object Object]':\n\t\t\tif (!classes && source.constructor !== Object) return source === target;\n\t\t\treturn isObjectEqual(source, target, options);\n\t}\n}\n\nexport const eq = function (source, target) {\n\t// Given:\n\t// const source = { 'a': 1 };\n\t// const target = { 'a': 1 };\n\t//\n\t// Results:\n\t// eq(source, source)  => true\n\t// eq(source, target) => false\n\t// eq('a', 'a') => true\n\t// eq('a', Object('a')) => false\n\t// eq(NaN, NaN) => true\n\treturn source === target || (source !== source && target !== target);\n};\n\n/**\n * Performs a deep equality check between two values.\n *\n * @example\n * const foo = { a: 1 };\n * const bar = { a: 1 };\n *\n * isEqual(foo, bar);\n * // => true\n *\n * foo === bar\n * // => false\n *\n * @function isEqual\n * @param {*} source The value to compare.\n * @param {*} target The value to compare `source` against.\n * @return {boolean} Returns `true` if the values are equal, otherwise `false`.\n */\nexport default function isEqual(source, target, options = {}) {\n\tif (source === target) return true;\n\n\tif (Array.isArray(source) && Array.isArray(target)) return isArrayEqual(source, target, options);\n\n\tconst result = isObjectTagEqual(source, target, options);\n\tif (result !== undefined) return result;\n\n\tif (typeof source === 'object' && typeof target === 'object')\n\t\treturn isObjectEqual(source, target, options);\n\n\treturn typeof source === 'function' && typeof target === 'function' && source === target;\n}\n","import {eq} from './isEqual';\n/**\n * Performs a deep equality check between two object values selectively.\n *\n * @example\n * const source = { a: 1, b:1 };\n * const target = { a: 1 };\n *\n * isObjectMatches(foo, bar);\n * // => true\n * const source = { a: 1, b:1 };\n * const target = { a: 2 };\n *\n * foo === bar\n * // => false\n *\n * @function isObjectMatches\n * @param {*} source The value to compare.\n * @param {*} target The value to compare `source` against selectively.\n * @return {boolean} Returns `true` if the target values are selectively equal, otherwise `false`.\n */\n\nfunction isObjectMatches(source, target, options = {}) {\n\tif (!source || !target) return false;\n\tif (typeof target !== 'object' && typeof source !== 'object') return false;\n\tfor (var key in target) {\n\t\tif (target.hasOwnProperty(key) && !source.hasOwnProperty(key)) return false;\n\t\tif (source.hasOwnProperty(key) && !isSelectiveEqual(source[key], target[key], options))\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\n/**\n * Performs a deep equality check between two values of array.\n *\n * @example\n * const source = [{ a: 1 }, { b:1 }];\n * const target = [{ a: 1 }, { b:1 }];\n *\n * isArrayMatches(foo, bar);\n * // => true\n *\n * foo === bar\n * // => false\n *\n * @function isArrayMatches\n * @param {*} source The value to compare.\n * @param {*} target The value to compare `source` against selectively.\n * @return {boolean} Returns `true` if the target values are selectively equal, otherwise `false`.\n */\n\nfunction isArrayMatches(source, target, options) {\n\tconst {length: sourceLength} = source;\n\tconst {length: targetLength} = target;\n\n\tif (sourceLength !== targetLength) return false;\n\n\tfor (let i = 0; i < sourceLength; i++) {\n\t\tif (!isSelectiveEqual(source[i], target[i], options)) return false;\n\t}\n\n\treturn true;\n}\n\n/**\n * Performs a deep equality check between two values selectively.\n *\n * @example\n * const source = { a: 1, b:1 };\n * const target = { a: 1 };\n *\n * isSelectiveEqual(foo, bar);\n * // => true\n *\n * foo === bar\n * // => false\n *\n * @function isSelectiveEqual\n * @param {*} source The value to compare.\n * @param {*} target The value to compare `source` against selectively.\n * @return {boolean} Returns `true` if the target values are selectively equal, otherwise `false`.\n */\n\nexport default function isSelectiveEqual(source, target, options = {}) {\n\tif (source === target) return true;\n\tif (Array.isArray(source) && Array.isArray(target))\n\t\treturn isArrayMatches(source, target, options);\n\tconst result = isObjectTagMatches(source, target, options);\n\tif (result !== undefined) return result;\n\n\tif (typeof source === 'object' && typeof target === 'object')\n\t\treturn isObjectMatches(source, target, options);\n\n\treturn typeof source === 'function' && typeof target === 'function' && source === target;\n}\n\n/**\n * Performs a object type comparision based on different data types of object and delegates the comparision to respective functions\n *\n * @example\n * const source = { a: 1, b:1 };\n * const target = { a: 1 };\n *\n * isObjectTagMatches(foo, bar);\n * // => true\n *\n * const source = { a: 1, b:1 };\n * const target = { a: 2 };\n * // => false\n *\n * @function isObjectTagMatches\n * @param {*} source The value to compare.\n * @param {*} target The value to compare `source` against selectively.\n * @return {boolean} Returns `true` if the target values are selectively equal, otherwise `false`.\n */\n\nfunction isObjectTagMatches(source, target, options) {\n\tconst {classes = true} = options;\n\tconst sourceTag = Object.prototype.toString.call(source);\n\tconst targetTag = Object.prototype.toString.call(target);\n\n\tif (sourceTag !== targetTag) return false;\n\n\tswitch (sourceTag) {\n\t\tcase '[object Boolean]':\n\t\tcase '[object Number]':\n\t\tcase '[object Date]':\n\t\t\treturn eq(+source, +target);\n\n\t\tcase '[object Set]':\n\t\t\treturn isArrayMatches([...source], [...target], options);\n\n\t\tcase '[object Map]':\n\t\t\treturn isObjectMatches(Object.fromEntries(source), Object.fromEntries(target), options);\n\n\t\tcase '[object String]':\n\t\t\treturn `${source}` === `${target}`;\n\n\t\tcase '[object Object]':\n\t\t\tif (!classes && source.constructor !== Object) return source === target;\n\t\t\treturn isObjectMatches(source, target, options);\n\t}\n}\n","/**\n * Checks whether a value is a plain object, an object with a prototype of `Object`.\n *\n * @example\n * isPlainObject(new Date());\n * // => false\n *\n * isPlainObject({ foo: 1, bar: 2 });\n * // => true\n *\n * @function isPlainObject\n * @param {*} value The value to check.\n * @return {boolean} Returns `true` if `value` is a plain object, else `false`.\n */\nexport default function isPlainObject(value) {\n\treturn (\n\t\t!!value &&\n\t\ttypeof value === 'object' &&\n\t\tObject.prototype.toString.call(value) === '[object Object]'\n\t);\n}\n","/**\n * The isEmpty function determines if a given value is empty or not.\n * @param {any} value The value to check\n * @returns {boolean} True if the value is empty, false otherwise\n */\nexport default function isEmpty(value) {\n\tif (value == null) return true;\n\tif (typeof value === 'string' || Array.isArray(value)) return value.length === 0;\n\n\tif (value instanceof Map || value instanceof Set) return value.size === 0;\n\n\tif (typeof value === 'object') return Object.keys(value).length === 0;\n\n\treturn false;\n}\n","import isThrottled from './isThrottled';\nimport nextTick from './nextTick';\nimport {logDeferTiming} from './deferMetrics';\n\nexport default function defer(fn, duration = 0) {\n\tlogDeferTiming(duration);\n\treturn isThrottled() ? nextTick(fn) : setTimeout(fn, duration);\n}\n","const globalValueToBoolean = value => value === true || value === 'true';\n\nexport default () =>\n\tdocument.hidden &&\n\t!globalValueToBoolean(\n\t\twindow?.ux_globals?.sysprops?.['sn_nxui_framework.scheduler.unchained.defer.off']\n\t) &&\n\t!globalValueToBoolean(\n\t\twindow?.ux_globals?.nxui?.sysprops?.['sn_nxui_framework.scheduler.unchained.defer.off']\n\t);\n","const nextTick = fn => {\n\tconst channel = new MessageChannel();\n\tchannel.port1.onmessage = () => fn();\n\tchannel.port2.postMessage(null);\n};\nexport default nextTick;\n","//Have to have the following logic within utils package to avoid circular dependency\nlet deferMetrics = {};\nconst UNKNOWN_COMPONENT_NAME = 'UNKNOWN';\n\nexport function clearDeferMetrics() {\n\tdeferMetrics = {};\n}\n\nexport function logDuration(metrics, duration = 0, incomingComponentName) {\n\tconst componentName = incomingComponentName ? incomingComponentName : UNKNOWN_COMPONENT_NAME;\n\tif (!metrics[componentName]) metrics[componentName] = [];\n\n\tmetrics[componentName].push(duration);\n}\n\nexport function getDeferMetrics() {\n\treturn deferMetrics;\n}\n\nexport function logDeferTiming(duration) {\n\tlogDuration(deferMetrics, duration);\n}\n","import isThrottled from './isThrottled';\nimport {default as requestIdleCallback, requestIdleCallbackPollyfill} from './requestIdleCallback';\n\nexport default function whenIdle(fn) {\n\treturn isThrottled() ? requestIdleCallbackPollyfill(fn) : requestIdleCallback(fn);\n}\n","import defer from './defer';\n\nexport function requestIdleCallbackPollyfill(callback) {\n\tdefer(function requestIdleCallbackPollyfillTimeout() {\n\t\tconst start = Date.now();\n\t\tconst maxBusy = 100;\n\t\tcallback({\n\t\t\tdidTimeout: false,\n\t\t\ttimeRemaining() {\n\t\t\t\treturn Math.max(0, maxBusy - (Date.now() - start));\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * This method queues a function to be called during a browser's idle periods\n * @example\n * requestIdleCallback(() => {})\n *\n * @function requestIdleCallback\n * @param {Function} callback The callback function to execute\n * @return {Object} undefined\n */\nconst requestIdleCallback = window.requestIdleCallback || requestIdleCallbackPollyfill;\n\n/*\nChromium based browsers have a bug in which Iframes and rIC do not work well together.\n\nSee -\n\nhttps://bugs.chromium.org/p/chromium/issues/detail?id=1240307\nhttps://bugs.chromium.org/p/chromium/issues/detail?id=1240317\n\nso when we see an Iframe on Chromium, we force rIC to be called every X milliseconds to\nensure the tasks are run.\n\nDO NOT MOVE THIS TO A UTILS FILE, we want to get rid of this logic ASAP rather than reuse it\nelsewhere\n*/\nconst isChromium = window?.navigator?.userAgentData?.brands?.some(b => b.brand === 'Chromium');\nconst isIframe = window?.location !== window?.parent?.location;\n// eslint-disable-next-line no-undef\nconst isWebWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;\n\nconst rIC =\n\tisWebWorker || (isChromium && isIframe) ? requestIdleCallbackPollyfill : requestIdleCallback;\n\nexport default rIC;\n","import isThrottled from './isThrottled';\nimport nextTick from './nextTick';\n\nexport default function raf(fn) {\n\treturn isThrottled() ? nextTick(fn) : requestAnimationFrame(fn);\n}\n","/**\n *\n * @param {*} snHttpFactoryConfig\n * @returns A function, that when called, will create an instance of sn-http-request\n */\nconst createSnHttp = snHttpFactoryConfig => async () => {\n\tconst snHttpRequest = await import('sn-http-request');\n\tconst {snHttpFactory} = snHttpRequest;\n\tconst snHttp = snHttpFactory(snHttpFactoryConfig);\n\n\treturn snHttp;\n};\n\nexport default createSnHttp;\n","export const DEFAULT = 'DEFAULT';\nexport const TEST = 'test';\nexport const DEV = 'development';\nexport const PROD = 'production';\nexport const NOW_UI_FRAMEWORK = 'nowUiFramework';\nexport const NOW_UI_CONFIG = 'NOW_UI_CONFIG';\nexport const NOW_UI_EVENT = 'NOW_UI_EVENT';\n\n/**\n * Config Values\n */\nexport const AMB_GC = 'ambGC';\nexport const GQL_CACHE_CAPACITY = 'graphQLCacheCapacity';\nexport const GQL_CACHING_ENABLED = 'graphQLCachingEnabled';\nexport const GQL_CACHING_REFRESH_DELAY = 'graphQLCacheDelay';\nexport const GQL_CACHE_MAX_PERSIST = 'gqlCacheMaxPersist';\nexport const HTTP_CACHE_CAPACITY = 'httpCacheCapacity';\nexport const HTTP_CACHING_ENABLED = 'httpCachingEnabled';\nexport const HTTP_CACHING_REFRESH_DELAY = 'httpCacheDelay';\nexport const HTTP_CACHE_MAX_PERSIST = 'httpCacheMaxPersist';\nexport const TELEMETRY_MARKING_ENABLED = 'telemetryMarkingEnabled';\nexport const CHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS =\n\t'checkForPossiblePresentationalComponents';\nexport const DISABLE_GQL_BATCHING = 'disableGraphQLBatching';\nexport const DISABLE_REST_BATCHING = 'disableRestBatching';\nexport const ENABLE_ACTION_DISPATCHED_HANDLING = 'enableActionDispatchedHandling';\nexport const GARBAGE_COLLECTOR_INTERVAL = 'GARBAGE_COLLECTOR_INTERVAL';\nexport const INTERSECT_ROOT_MARGIN = 'intersectRootMargin';\nexport const LOGGING_ENABLED = 'loggingEnabled';\nexport const LOGGING_LEVELS = 'loggingLevels';\nexport const LOGS_OBSERVER_INTERVAL = 'logsObserverInterval';\nexport const LOGS_CLEANUP_INTERVAL = 'logsCleanupInterval';\nexport const MEMOIZE = 'memoize';\nexport const METRICS_LEVEL = 'metricsLevel';\nexport const METRICS_OBSERVER_INTERVAL = 'metricsObserverInterval';\nexport const METRICS_TYPES = 'metricTypes';\nexport const POSSIBLE_PRESENTATIONAL_COMPONENTS = 'possiblePresentationalComponents';\nexport const QUEUE_FLUSH_ENABLED = 'queueFlushEnabled';\nexport const TIME_TO_WAIT_AFTER_DISCONNECT = 'TIME_TO_WAIT_AFTER_DISCONNECT';\nexport const VALIDATE_SCHEMAS = 'validateSchemas';\nexport const ENABLE_SCHEDULER_STATS = 'enableSchedulerStats';\nexport const METRICS_USE_WINDOW_PERFORMANCE = 'metricsUseWindowPerformance';\nexport const ENABLE_PROPERTY_DEEP_COMPARE = 'enablePropertyDeepCompare';\nexport const ENABLE_DECLARATIVE_STATE_UPDATE_DEEP_COMPARE =\n\t'enableDeclarativeStateUpdateDeepCompare';\nexport const PAGE_OPT_OUT_PROPERTY_DEEP_COMPARE = 'pageOptOutOfPropertyDeepCompare';\nexport const PAGE_OPT_OUT_STATE_DEEP_COMPARE = 'pageOptOutOfStateDeepCompare';\nexport const MEMOIZE_SNABBDOM_PROP_PARTS = 'memoizeSnabbdomPropParts';\nexport const ENABLE_SCHEDULER_QUEUE_COUNTS = 'enableSchedulerQueueCounts';\nexport const METRICS_ELEMENT_CONFIG_ENABLED = 'metricsElementConfigEnabled';\nexport const METRICS_COMPONENT_INTERACTIVE_ENABLED = 'metricsComponentInteractiveEnabled';\nexport const ARIA_LIVE_ASSERTIVE_TIMEOUT = 'ariaLiveAssertiveTimeout';\nexport const ARIA_LIVE_POLITE_TIMEOUT = 'ariaLivePoliteTimeout';\nexport const WHEN_COMPONENT_IS_IDLE_TIMEOUT = 'whenComponentIsIdleTimeout';\nexport const WHEN_COMPONENT_IS_IDLE_THROTTLE = 'whenComponentIsIdleThrottle';\nexport const WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL = 'whenComponentIsIdleMinInterval';\nexport const SCHEDULER_RAF_TIMEOUT = 'schedulerRafTimeout';\nexport const METRICS_MARK_PRUNING_INTERVAL = 'metricsMarkPruningInterval';\nexport const METRICS_MARK_EXPIRATION = 'metricsMarkExpiration';\nexport const METRICS_PRUNE_MARKS = 'metricsPruneMarks';\n\nexport const EMBEDDABLE_BASE_URL = Symbol('EMBEDDABLE_BASE_URL');\n\nexport const NOW_UI_FRAMEWORK_CONFIG_KEYS = [\n\tAMB_GC,\n\tGQL_CACHE_CAPACITY,\n\tGQL_CACHING_ENABLED,\n\tGQL_CACHE_MAX_PERSIST,\n\tGQL_CACHING_REFRESH_DELAY,\n\tHTTP_CACHE_CAPACITY,\n\tHTTP_CACHING_ENABLED,\n\tTELEMETRY_MARKING_ENABLED,\n\tCHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS,\n\tDISABLE_GQL_BATCHING,\n\tDISABLE_REST_BATCHING,\n\tENABLE_ACTION_DISPATCHED_HANDLING,\n\tINTERSECT_ROOT_MARGIN,\n\tLOGGING_ENABLED,\n\tLOGGING_LEVELS,\n\tLOGS_OBSERVER_INTERVAL,\n\tLOGS_CLEANUP_INTERVAL,\n\tMETRICS_LEVEL,\n\tMETRICS_OBSERVER_INTERVAL,\n\tMETRICS_TYPES,\n\tPOSSIBLE_PRESENTATIONAL_COMPONENTS,\n\tQUEUE_FLUSH_ENABLED,\n\tVALIDATE_SCHEMAS,\n\tENABLE_SCHEDULER_STATS,\n\tMETRICS_USE_WINDOW_PERFORMANCE,\n\tPAGE_OPT_OUT_PROPERTY_DEEP_COMPARE,\n\tPAGE_OPT_OUT_STATE_DEEP_COMPARE,\n\tMEMOIZE_SNABBDOM_PROP_PARTS,\n\tENABLE_SCHEDULER_QUEUE_COUNTS,\n\tENABLE_PROPERTY_DEEP_COMPARE,\n\tENABLE_DECLARATIVE_STATE_UPDATE_DEEP_COMPARE,\n\tMETRICS_ELEMENT_CONFIG_ENABLED,\n\tMETRICS_COMPONENT_INTERACTIVE_ENABLED,\n\tARIA_LIVE_ASSERTIVE_TIMEOUT,\n\tARIA_LIVE_POLITE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_THROTTLE,\n\tWHEN_COMPONENT_IS_IDLE_MIN_INTERVAL,\n\tSCHEDULER_RAF_TIMEOUT,\n\tMETRICS_MARK_PRUNING_INTERVAL,\n\tMETRICS_MARK_EXPIRATION,\n\tMETRICS_PRUNE_MARKS,\n\tEMBEDDABLE_BASE_URL\n];\n\nexport const NXUI_SYS_PROPS = {\n\t'sn_nxui_framework.performance.cache.graphql.capacity': GQL_CACHE_CAPACITY,\n\t'sn_nxui_framework.performance.cache.graphql.enabled': GQL_CACHING_ENABLED,\n\t'sn_nxui_framework.performance.cache.graphql.max_persist': GQL_CACHE_MAX_PERSIST,\n\t'sn_nxui_framework.performance.cache.graphql.delay': GQL_CACHING_REFRESH_DELAY,\n\t'sn_nxui_framework.performance.cache.http.capacity': HTTP_CACHE_CAPACITY,\n\t'sn_nxui_framework.performance.cache.http.enabled': HTTP_CACHING_ENABLED,\n\t'sn_nxui_framework.performance.cache.http.max_persist': HTTP_CACHE_MAX_PERSIST,\n\t'sn_nxui_framework.performance.cache.http.delay': HTTP_CACHING_REFRESH_DELAY,\n\t'sn_nxui_framework.performance.telemetry.marking.enabled': TELEMETRY_MARKING_ENABLED,\n\t'sn_nxui_framework.performance.telemetry.window.top.enabled': METRICS_USE_WINDOW_PERFORMANCE,\n\t'sn_nxui_framework.performance.property.deep.compare.enabled': ENABLE_PROPERTY_DEEP_COMPARE,\n\t'sn_nxui_framework.performance.declarative.state.update.deep.compare.enabled':\n\t\tENABLE_DECLARATIVE_STATE_UPDATE_DEEP_COMPARE,\n\t'sn_nxui_framework.performance.page.opt.out.property.deep.compare':\n\t\tPAGE_OPT_OUT_PROPERTY_DEEP_COMPARE,\n\t'sn_nxui_framework.performance.page.opt.out.state.deep.compare': PAGE_OPT_OUT_STATE_DEEP_COMPARE,\n\t'sn_nxui_framework.performance.memoize.snabbdom.prop.parts': MEMOIZE_SNABBDOM_PROP_PARTS,\n\t'sn_nxui_framework.performance.scheduler.queue.counts.enabled': ENABLE_SCHEDULER_QUEUE_COUNTS,\n\t'sn_nxui_framework.performance.scheduler.stats.enabled': ENABLE_SCHEDULER_STATS,\n\t'sn_nxui_framework.performance.metrics.element.config.enabled': METRICS_ELEMENT_CONFIG_ENABLED,\n\t'sn_nxui_framework.interactive_mark': METRICS_COMPONENT_INTERACTIVE_ENABLED,\n\t'sn_nxui_framework.disableGraphQLBatching': DISABLE_GQL_BATCHING,\n\t'sn_nxui_framework.whenComponentIsIdleTimeout': WHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\t'sn_nxui_framework.whenComponentIsIdleThrottle': WHEN_COMPONENT_IS_IDLE_THROTTLE,\n\t'sn_nxui_framework.whenComponentIsIdleMinInterval': WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL,\n\t'sn_nxui_framework.metricsObserverInterval': METRICS_OBSERVER_INTERVAL,\n\t'sn_nxui_framework.schedulerRafTimeout': SCHEDULER_RAF_TIMEOUT,\n\t'sn_nxui_framework.metricsMarkPruningInterval': METRICS_MARK_PRUNING_INTERVAL,\n\t'sn_nxui_framework.metricsMarkExpiration': METRICS_MARK_EXPIRATION,\n\t'sn_nxui_framework.metricsPruneMarks': METRICS_PRUNE_MARKS,\n\t'sn_nxui_framework.metricsLevel': METRICS_LEVEL,\n\t'sn_nxui_framework.logging.enabled': LOGGING_ENABLED,\n\t'sn_nxui_framework.logging.level': LOGGING_LEVELS\n};\n","import {NOW_UI_EVENT} from './constants';\n\nconst emitNowUiEvent = (type, detail) => {\n\tif (!window.__ENABLE_NOW_UI_EVENT__) return;\n\tconst event = new CustomEvent(NOW_UI_EVENT, {\n\t\tcomposed: true,\n\t\tbubbles: true,\n\t\tdetail: {\n\t\t\ttype,\n\t\t\t...detail\n\t\t}\n\t});\n\tdocument.dispatchEvent(event);\n};\n\nexport default emitNowUiEvent;\n","import {devConfig} from './dev';\nimport {prodConfig} from './prod';\nimport {testConfig} from './test';\n\nimport {DEV, PROD, TEST} from '../constants';\n\n/***\n * @function getConfigForEnv\n * @description gets the default config values for the process.env\n */\nexport const getConfigForEnv = () => {\n\tconst configEnv = process.env.NODE_ENV ? process.env.NODE_ENV : PROD;\n\tif (configEnv === PROD) return prodConfig;\n\n\tif (configEnv === DEV) return {...prodConfig, ...devConfig};\n\n\tif (configEnv === TEST) return {...prodConfig, ...testConfig};\n\n\treturn {};\n};\n","import {\n\tAMB_GC,\n\tGARBAGE_COLLECTOR_INTERVAL,\n\tTIME_TO_WAIT_AFTER_DISCONNECT,\n\tGQL_CACHE_CAPACITY,\n\tGQL_CACHING_ENABLED,\n\tGQL_CACHING_REFRESH_DELAY,\n\tHTTP_CACHING_REFRESH_DELAY,\n\tHTTP_CACHE_CAPACITY,\n\tHTTP_CACHING_ENABLED,\n\tCHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS,\n\tLOGGING_ENABLED,\n\tLOGGING_LEVELS,\n\tLOGS_OBSERVER_INTERVAL,\n\tLOGS_CLEANUP_INTERVAL,\n\tVALIDATE_SCHEMAS,\n\tENABLE_SCHEDULER_STATS,\n\tMETRICS_COMPONENT_INTERACTIVE_ENABLED,\n\tARIA_LIVE_ASSERTIVE_TIMEOUT,\n\tARIA_LIVE_POLITE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_THROTTLE,\n\tWHEN_COMPONENT_IS_IDLE_MIN_INTERVAL,\n\tMETRICS_OBSERVER_INTERVAL,\n\tSCHEDULER_RAF_TIMEOUT,\n\tMETRICS_MARK_PRUNING_INTERVAL,\n\tMETRICS_MARK_EXPIRATION,\n\tMETRICS_PRUNE_MARKS\n} from '../constants';\n\nexport const devConfig = {};\n\n// AMB GC\ndevConfig[AMB_GC] = {};\ndevConfig[AMB_GC][GARBAGE_COLLECTOR_INTERVAL] = 20000;\ndevConfig[AMB_GC][TIME_TO_WAIT_AFTER_DISCONNECT] = 5000;\n\n// Caching\ndevConfig[GQL_CACHING_ENABLED] = true;\ndevConfig[GQL_CACHING_REFRESH_DELAY] = 500;\ndevConfig[GQL_CACHE_CAPACITY] = 3;\ndevConfig[HTTP_CACHING_ENABLED] = true;\ndevConfig[HTTP_CACHE_CAPACITY] = 3;\ndevConfig[HTTP_CACHING_REFRESH_DELAY] = 500;\n\n// Logging\ndevConfig[LOGGING_ENABLED] = true;\ndevConfig[LOGGING_LEVELS] = true;\ndevConfig[LOGS_OBSERVER_INTERVAL] = 1000;\ndevConfig[LOGS_CLEANUP_INTERVAL] = 60000;\n\n// Validation\ndevConfig[VALIDATE_SCHEMAS] = true;\ndevConfig[CHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS] = true;\n\ndevConfig[ENABLE_SCHEDULER_STATS] = true;\n\ndevConfig[METRICS_COMPONENT_INTERACTIVE_ENABLED] = true;\n\ndevConfig[ARIA_LIVE_ASSERTIVE_TIMEOUT] = 500;\ndevConfig[ARIA_LIVE_POLITE_TIMEOUT] = 5000;\n\ndevConfig[WHEN_COMPONENT_IS_IDLE_TIMEOUT] = 5000;\ndevConfig[WHEN_COMPONENT_IS_IDLE_THROTTLE] = 50;\ndevConfig[WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL] = 25;\n\ndevConfig[METRICS_OBSERVER_INTERVAL] = 3000;\ndevConfig[SCHEDULER_RAF_TIMEOUT] = 0;\n\ndevConfig[METRICS_MARK_PRUNING_INTERVAL] = 300000;\ndevConfig[METRICS_MARK_EXPIRATION] = 300000;\ndevConfig[METRICS_PRUNE_MARKS] = true;\n","import {memoize} from '@servicenow/ui-utils';\nimport {\n\tAMB_GC,\n\tGQL_CACHE_CAPACITY,\n\tGQL_CACHING_ENABLED,\n\tHTTP_CACHE_CAPACITY,\n\tHTTP_CACHING_ENABLED,\n\tDISABLE_GQL_BATCHING,\n\tDISABLE_REST_BATCHING,\n\tENABLE_ACTION_DISPATCHED_HANDLING,\n\tGARBAGE_COLLECTOR_INTERVAL,\n\tINTERSECT_ROOT_MARGIN,\n\tVALIDATE_SCHEMAS,\n\tCHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS,\n\tPOSSIBLE_PRESENTATIONAL_COMPONENTS,\n\tLOGGING_ENABLED,\n\tLOGGING_LEVELS,\n\tLOGS_OBSERVER_INTERVAL,\n\tLOGS_CLEANUP_INTERVAL,\n\tMEMOIZE,\n\tMETRICS_LEVEL,\n\tMETRICS_OBSERVER_INTERVAL,\n\tMETRICS_TYPES,\n\tQUEUE_FLUSH_ENABLED,\n\tTELEMETRY_MARKING_ENABLED,\n\tTIME_TO_WAIT_AFTER_DISCONNECT,\n\tENABLE_SCHEDULER_STATS,\n\tMETRICS_COMPONENT_INTERACTIVE_ENABLED,\n\tARIA_LIVE_ASSERTIVE_TIMEOUT,\n\tARIA_LIVE_POLITE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_THROTTLE,\n\tWHEN_COMPONENT_IS_IDLE_MIN_INTERVAL,\n\tSCHEDULER_RAF_TIMEOUT,\n\tMETRICS_MARK_PRUNING_INTERVAL,\n\tMETRICS_MARK_EXPIRATION,\n\tMETRICS_PRUNE_MARKS\n} from '../constants';\n\nexport const prodConfig = {};\n\n// AMB GC\nprodConfig[AMB_GC] = {};\nprodConfig[AMB_GC][GARBAGE_COLLECTOR_INTERVAL] = 5000;\nprodConfig[AMB_GC][TIME_TO_WAIT_AFTER_DISCONNECT] = 1000;\n\n// Caching\nprodConfig[GQL_CACHING_ENABLED] = false;\nprodConfig[GQL_CACHE_CAPACITY] = 200;\nprodConfig[HTTP_CACHING_ENABLED] = false;\nprodConfig[HTTP_CACHE_CAPACITY] = 200;\n\n// Request Batching\nprodConfig[DISABLE_GQL_BATCHING] = false;\nprodConfig[DISABLE_REST_BATCHING] = false;\n\n// Memoize\nprodConfig[MEMOIZE] = memoize;\n\n// Validation\nprodConfig[VALIDATE_SCHEMAS] = false;\nprodConfig[CHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS] = false;\nprodConfig[POSSIBLE_PRESENTATIONAL_COMPONENTS] = [];\n\n// Metrics\n//\n// Heads up that these following 2 config values are a little tricky when\n// unset:\n// - When `metricTypes` is not defined, then fall back to checking `metricsLevel`\n// - When `metricsLevel` is not defined, then nothing is marked\nprodConfig[METRICS_TYPES] = null;\nprodConfig[METRICS_LEVEL] = null;\nprodConfig[METRICS_OBSERVER_INTERVAL] = 3000;\nprodConfig[ENABLE_SCHEDULER_STATS] = false;\nprodConfig[TELEMETRY_MARKING_ENABLED] = true;\n\n// Custom Event Dispatching\nprodConfig[ENABLE_ACTION_DISPATCHED_HANDLING] = false;\n\n// Intersection Observer\nprodConfig[INTERSECT_ROOT_MARGIN] = '500px';\n\n// Queue Flush Enabled\nprodConfig[QUEUE_FLUSH_ENABLED] = false;\n\n// Logging\nprodConfig[LOGGING_ENABLED] = false;\nprodConfig[LOGGING_LEVELS] = null;\nprodConfig[LOGS_OBSERVER_INTERVAL] = 1000;\nprodConfig[LOGS_CLEANUP_INTERVAL] = 60000;\n\nprodConfig[METRICS_COMPONENT_INTERACTIVE_ENABLED] = false;\n\nprodConfig[ARIA_LIVE_ASSERTIVE_TIMEOUT] = 500;\nprodConfig[ARIA_LIVE_POLITE_TIMEOUT] = 5000;\n\nprodConfig[WHEN_COMPONENT_IS_IDLE_TIMEOUT] = 5000;\nprodConfig[WHEN_COMPONENT_IS_IDLE_THROTTLE] = 50;\nprodConfig[WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL] = 25;\n\nprodConfig[SCHEDULER_RAF_TIMEOUT] = 0;\n\nprodConfig[METRICS_MARK_PRUNING_INTERVAL] = 300000;\nprodConfig[METRICS_MARK_EXPIRATION] = 300000;\nprodConfig[METRICS_PRUNE_MARKS] = true;\n","import {\n\tENABLE_SCHEDULER_STATS,\n\tGQL_CACHING_REFRESH_DELAY,\n\tHTTP_CACHING_REFRESH_DELAY,\n\tINTERSECT_ROOT_MARGIN,\n\tLOGGING_ENABLED,\n\tMETRICS_COMPONENT_INTERACTIVE_ENABLED,\n\tMETRICS_TYPES,\n\tVALIDATE_SCHEMAS,\n\tARIA_LIVE_ASSERTIVE_TIMEOUT,\n\tARIA_LIVE_POLITE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_THROTTLE,\n\tWHEN_COMPONENT_IS_IDLE_MIN_INTERVAL,\n\tMETRICS_OBSERVER_INTERVAL,\n\tSCHEDULER_RAF_TIMEOUT,\n\tMETRICS_MARK_PRUNING_INTERVAL,\n\tMETRICS_MARK_EXPIRATION,\n\tMETRICS_PRUNE_MARKS\n} from '../constants';\n\nexport const testConfig = {};\n// caching\ntestConfig[GQL_CACHING_REFRESH_DELAY] = 500;\ntestConfig[HTTP_CACHING_REFRESH_DELAY] = 500;\n\n// Metrics\ntestConfig[METRICS_TYPES] = ['TEST'];\ntestConfig[ENABLE_SCHEDULER_STATS] = false;\n\n// Intersection Observer\ntestConfig[INTERSECT_ROOT_MARGIN] = '400px';\n\n// Logging\ntestConfig[LOGGING_ENABLED] = true;\n\n// Validation\ntestConfig[VALIDATE_SCHEMAS] = true;\n\ntestConfig[METRICS_COMPONENT_INTERACTIVE_ENABLED] = true;\n\ntestConfig[ARIA_LIVE_ASSERTIVE_TIMEOUT] = 500;\ntestConfig[ARIA_LIVE_POLITE_TIMEOUT] = 5000;\n\ntestConfig[WHEN_COMPONENT_IS_IDLE_TIMEOUT] = 600;\ntestConfig[WHEN_COMPONENT_IS_IDLE_THROTTLE] = 50;\ntestConfig[WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL] = 25;\n\ntestConfig[METRICS_OBSERVER_INTERVAL] = 3000;\n\ntestConfig[SCHEDULER_RAF_TIMEOUT] = 0;\n\ntestConfig[METRICS_MARK_PRUNING_INTERVAL] = 300000;\ntestConfig[METRICS_MARK_EXPIRATION] = 300000;\ntestConfig[METRICS_PRUNE_MARKS] = true;\n","export * from './baseUrl';\n","import {getConfigItem, setConfigItem} from '../config';\nimport {EMBEDDABLE_BASE_URL} from '../constants';\n\n/**\n * Description: Setter for `baseUrl` for Embeddable environment\n * @param {string} url - value to be used as baseurl\n * @returns {void}\n */\nexport const setEmbeddableBaseUrl = url => setConfigItem(EMBEDDABLE_BASE_URL, url);\n/**\n * Description: Getter for `baseUrl` , used by HttpEffect, GraphQLEffect for preparing request `url`\n * @returns {string}\n */\nexport const getEmbeddableBaseUrl = () => getConfigItem(EMBEDDABLE_BASE_URL) || '';\n","import logObservers from './logObservers';\n\nexport default function observe(observer) {\n\tif (typeof observer === 'function') {\n\t\tconst observerObj = {observer, logsToSend: []};\n\t\tlogObservers.add(observerObj);\n\t\treturn () => logObservers.delete(observerObj);\n\t}\n}\n","export default new Set();\n","import {getConfigItem, configConstants, observeConfigItem} from '@servicenow/ui-config';\nimport logObservers from './logObservers';\nimport {defer, whenIdle} from '@servicenow/ui-utils';\n\nconst {LOGS_OBSERVER_INTERVAL} = configConstants;\nlet timeoutId;\nlet logsObserverInterval = getConfigItem(LOGS_OBSERVER_INTERVAL);\n\nconst observer = (path, value) => {\n\tif (path === LOGS_OBSERVER_INTERVAL) {\n\t\tlogsObserverInterval = value;\n\t}\n};\n\nobserveConfigItem(LOGS_OBSERVER_INTERVAL, observer);\n\nconst addLog = logContext => {\n\tfor (const observer of logObservers) observer.logsToSend.push(logContext);\n};\n\nconst notifyLogObserver = observer => {\n\tconst {logsToSend} = observer;\n\tobserver.observer(logsToSend.splice(0, logsToSend.length));\n};\n\nexport default function notifyLogObservers(logContext) {\n\tif (logObservers.size) {\n\t\tlet timeExpired = false;\n\t\tif (logContext) addLog(logContext);\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = defer(() => {\n\t\t\twhenIdle(deadLine => {\n\t\t\t\tfor (const observer of logObservers) {\n\t\t\t\t\tif (deadLine.timeRemaining() > 0) {\n\t\t\t\t\t\tif (observer.logsToSend.length) notifyLogObserver(observer);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeExpired = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (timeExpired) notifyLogObservers();\n\t\t\t});\n\t\t}, logsObserverInterval || 1000);\n\t}\n}\n","import {toLower} from '@servicenow/ui-utils';\n\nexport default function getHostInfo(host) {\n\treturn {\n\t\ttagName: toLower(host.tagName),\n\t\tcomponentId: host.getAttribute('component-id')\n\t};\n}\n","import {memoize} from '@servicenow/ui-utils';\n\nexport default function memoizeProfiler(func, options = {}) {\n\tconst {createCacheKey, profileName} = options;\n\treturn memoize(func, createCacheKey || (arg1 => arg1), {profileName});\n}\n","import {applyInteractionId, mark, types as metrics, getInteractionId} from '@servicenow/ui-metrics';\nimport getSpanOptions from './getSpanOptions';\nimport * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nconst {trace} = uiAnalyticsConsumer;\nimport {\n\terrorTypes,\n\tlocations,\n\tNOW_ID_PROP,\n\tSPAN_FOR_COMPONENT_ERROR_THROWN,\n\tSPAN_KIND_CLIENT,\n\tSPAN_FOR_DISPATCH,\n\tSPAN_ATTR_DISPATCH_ACTION_TYPE,\n\tSPAN_ATTR_DISPATCH_MESSAGE\n} from './constants';\nimport {allLogTypes as logTypes} from './logHandler';\nimport {findKey} from '@servicenow/ui-utils';\nimport {INTERNAL_HOST_DISPATCH} from './symbols';\nconst notifiedHosts = new Set();\n\n/**\n * Wrap the execution of code with a try catch and dispatch the error\n * @function sandbox\n * @private\n * @example\n * import {sandbox, errorTypes, locations} from '@servicenow/ui-internal'\n *\n * sandbox(\n *   onChange,\n *   {\n *     args: [value, previousValue, dispatch],\n *     dispatch,\n *     host,\n *     location: locations.LIFECYCLE,\n *     details: {name: 'onChange', propertyName},\n *     errorType: errorTypes.COMPONENT_ERROR_THROWN\n *   }\n * )\n *\n * @param {Function} fn - arbitrary function to execute\n * @param {Object} options - The sandbox options\n * @param {Array} [options.args] - Arguments to pass into the fn.\n * @param {Object} [options.dispatch] - Dispatch function, required.\n * @param {string} [options.location] - Enum of acceptable locations, import {locations} from '@servicenow/ui-internal', required.\n * @param {Object} [options.host] - The host most closely related to the executing code.\n * @param {Object} [options.details] - Object to store arbitrary data\n * @param {string} [options.errorType] - Type of action to dispatch on error caught. Default is COMPONENT_ERROR_THROWN\n * @param {Object} [options.metadata] - Metadata to be passed to the dispatch function\n * @param {function} [options.log] - Logger to log the error\n * @returns {any} Value returned from the function\n */\nfunction sandbox(fn, options = {}) {\n\tconst {args = []} = options;\n\ttry {\n\t\tconst value = fn(...args);\n\t\treturn value;\n\t} catch (error) {\n\t\tnotify(error, options);\n\t}\n}\n\nexport function notify(\n\terror,\n\t{\n\t\tdispatch,\n\t\thost,\n\t\tlocation,\n\t\tdetails = {},\n\t\terrorType = errorTypes.COMPONENT_ERROR_THROWN,\n\t\tmetadata = {},\n\t\tlog\n\t}\n) {\n\tconst tagName = host.tagName && host.tagName.toLowerCase();\n\tconst componentId = host[NOW_ID_PROP];\n\tconst errorActionType = findKey(errorTypes, val => val === errorType);\n\tapplyInteractionId(metadata);\n\tconst interactionId = getInteractionId(metadata);\n\tmark(host, interactionId, metrics.ERROR, {location});\n\n\t// This if statement prevents a recursive loop when an error is thrown within the COMPONENT_ERROR_THROWN effect\n\tif (!isRecursive({location, details})) {\n\t\tconst lifecycleSpan =\n\t\t\terrorType === errorTypes.COMPONENT_ERROR_THROWN\n\t\t\t\t? trace(SPAN_FOR_DISPATCH, {\n\t\t\t\t\t\t...getSpanOptions(host),\n\t\t\t\t\t\ttraceId: metadata.span && metadata.span.traceId,\n\t\t\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t\t\tparentSpan: metadata.span\n\t\t\t\t  })\n\t\t\t\t: null;\n\n\t\tif (lifecycleSpan) {\n\t\t\tlifecycleSpan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, SPAN_FOR_COMPONENT_ERROR_THROWN);\n\t\t\tlifecycleSpan.setAttribute(SPAN_ATTR_DISPATCH_MESSAGE, error.message);\n\t\t\tmetadata.span = lifecycleSpan;\n\t\t\tmetadata[INTERNAL_HOST_DISPATCH] = true;\n\t\t}\n\n\t\tconst hostIdentifier = [\n\t\t\ttagName,\n\t\t\tcomponentId,\n\t\t\terrorType,\n\t\t\tlocation,\n\t\t\tObject.keys(details).length > 10\n\t\t\t\t? Object.keys(details).length\n\t\t\t\t: Object.entries(details).flat()\n\t\t]\n\t\t\t.filter(Boolean)\n\t\t\t.join('-');\n\t\tif (!notifiedHosts.has(hostIdentifier)) {\n\t\t\tnotifiedHosts.add(hostIdentifier);\n\t\t\tdispatch(errorType, {host, location, details, error}, {internal: true, ...metadata}, true);\n\t\t\tsetTimeout(() => notifiedHosts.delete(hostIdentifier), 0); // Clean notifiedHosts after the next tick\n\t\t} else if (lifecycleSpan) {\n\t\t\tlifecycleSpan.setAttribute('error.type', 'recursive');\n\t\t}\n\n\t\tlifecycleSpan && lifecycleSpan.end();\n\t}\n\n\tif (log) {\n\t\tlog(\n\t\t\t`An Error occured in <${tagName} component-id=\"${componentId}\"/>. ${errorActionType} action type is dispatched with error details.`,\n\t\t\t{error, level: logTypes.ERROR, host, origin: 'sandbox'}\n\t\t);\n\t}\n}\n\n// Note: Ideally we would want to remove this as we already have more generic check\n// using hostIdentifier & notifiedHosts to prevent recursive calls.\n//TODO: Revisit this function and remove if not needed\nfunction isRecursive({location, details}) {\n\tif (location === locations.EFFECT && details.actionType === errorTypes.COMPONENT_ERROR_THROWN)\n\t\treturn true;\n\n\treturn false;\n}\n\nexport default sandbox;\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {types, timingMetricTypes} from './constants';\nimport applyInteractionId from './applyInteractionId';\nimport getInteractionId from './getInteractionId';\nimport setInteractionId from './setInteractionId';\nimport createInteractionId from './createInteractionId';\nimport createTraceId from './createTraceId';\nimport defineMetric from './defineMetric';\nimport mark from './mark';\nimport getMarks from './getMarks';\nimport {\n\tgetCounters as getPerformanceCounters,\n\tclearCounters as clearPerfomanceCounters\n} from './counters';\nimport clearMarks from './clearMarks';\nimport observe from './observe';\nimport getMetricTypes from './getMetricTypes';\nimport addMarkAugmenter from './addMarkAugmenter';\nimport {collectMetrics, enable as enableMetrics, isPerfMetricsEnabled} from './metrics';\nimport {logTimingMetrics} from './timingMetrics';\n\nconst {setConfigValue} = uiAnalyticsConsumer;\nsetConfigValue('enableCounter', true);\nsetConfigValue('enableHistogram', true);\nsetConfigValue('enableTrack', true);\n\nglobalThis.nowUiFrameworkMetrics = {\n\tapplyInteractionId,\n\tgetInteractionId,\n\tsetInteractionId,\n\tcreateInteractionId,\n\tcreateTraceId,\n\tdefineMetric,\n\tmark,\n\tclearMarks,\n\tgetMarks,\n\tobserve,\n\ttypes,\n\tgetMetricTypes,\n\taddMarkAugmenter,\n\tgetPerformanceCounters,\n\tclearPerfomanceCounters,\n\tcollectMetrics,\n\tlogTimingMetrics,\n\tisPerfMetricsEnabled,\n\tenableMetrics\n};\n\nexport {\n\tapplyInteractionId,\n\tgetInteractionId,\n\tsetInteractionId,\n\tcreateInteractionId,\n\tcreateTraceId,\n\tdefineMetric,\n\tmark,\n\tclearMarks,\n\tgetMarks,\n\tobserve,\n\ttypes,\n\ttimingMetricTypes,\n\tgetMetricTypes,\n\taddMarkAugmenter,\n\tgetPerformanceCounters,\n\tclearPerfomanceCounters,\n\tcollectMetrics,\n\tlogTimingMetrics,\n\tisPerfMetricsEnabled,\n\tenableMetrics\n};\n","const METRIC_DISPATCH = 'DISPATCH';\nconst METRIC_ERROR = 'ERROR';\nconst METRIC_GQL = 'GQL';\nconst METRIC_HTTP = 'HTTP';\nconst METRIC_CONNECTION = 'CONNECTION';\nconst METRIC_UPDATE_PROPERTIES = 'UPDATE_PROPERTIES';\nconst METRIC_UPDATE_STATE = 'UPDATE_STATE';\nconst METRIC_RENDER_START = 'RENDER_START';\nconst METRIC_RENDER_END = 'RENDER_END';\nconst METRIC_RENDER_TREE = 'RENDER_TREE';\nconst METRIC_INTERSECTION = 'INTERSECTION';\nconst METRIC_SCHEDULE = 'SCHEDULE';\nconst METRIC_EXECUTE = 'EXECUTE';\nconst METRIC_DEFER = 'DEFER';\nconst METRIC_PROPERTY_REFLECTION = 'PROPERTY_REFLECTION';\nconst METRIC_EFFECT_START = 'EFFECT_START';\nconst METRIC_EFFECT_END = 'EFFECT_END';\nconst METRIC_PATCH_START = 'PATCH_START';\nconst METRIC_PATCH_END = 'PATCH_END';\nconst METRIC_HOOK_START = 'HOOK_START';\nconst METRIC_HOOK_END = 'HOOK_END';\nconst METRIC_INTERACTIVE = 'INTERACTIVE';\nconst METRIC_HERO_INTERACTIVE = 'HERO_INTERACTIVE';\nconst METRIC_UPDATE_CONTEXT = 'UPDATE_CONTEXT';\nexport const LIB_NAME = '@servicenow/ui-metrics';\n\nexport const types = {\n\tDISPATCH: METRIC_DISPATCH,\n\tERROR: METRIC_ERROR,\n\tGQL: METRIC_GQL,\n\tHTTP: METRIC_HTTP,\n\tCONNECTION: METRIC_CONNECTION,\n\tUPDATE_PROPERTIES: METRIC_UPDATE_PROPERTIES,\n\tUPDATE_STATE: METRIC_UPDATE_STATE,\n\tRENDER_START: METRIC_RENDER_START,\n\tRENDER_END: METRIC_RENDER_END,\n\tRENDER_TREE: METRIC_RENDER_TREE,\n\tINTERSECTION: METRIC_INTERSECTION,\n\tSCHEDULE: METRIC_SCHEDULE,\n\tEXECUTE: METRIC_EXECUTE,\n\tDEFER: METRIC_DEFER,\n\tPROPERTY_REFLECTION: METRIC_PROPERTY_REFLECTION,\n\tEFFECT_START: METRIC_EFFECT_START,\n\tEFFECT_END: METRIC_EFFECT_END,\n\tPATCH_START: METRIC_PATCH_START,\n\tPATCH_END: METRIC_PATCH_END,\n\tHOOK_START: METRIC_HOOK_START,\n\tHOOK_END: METRIC_HOOK_END,\n\tINTERACTIVE: METRIC_INTERACTIVE,\n\tHERO_INTERACTIVE: METRIC_HERO_INTERACTIVE,\n\tUPDATE_CONTEXT: METRIC_UPDATE_CONTEXT\n};\n\nexport const levels = {\n\t[METRIC_HERO_INTERACTIVE]: 5,\n\t[METRIC_INTERACTIVE]: 5,\n\t[METRIC_ERROR]: 5,\n\t[METRIC_GQL]: 4,\n\t[METRIC_HTTP]: 4,\n\t[METRIC_DISPATCH]: 3,\n\t[METRIC_RENDER_START]: 2,\n\t[METRIC_RENDER_END]: 2,\n\t[METRIC_RENDER_TREE]: 2,\n\t[METRIC_INTERSECTION]: 1,\n\t[METRIC_CONNECTION]: 1,\n\t[METRIC_UPDATE_PROPERTIES]: 1,\n\t[METRIC_UPDATE_STATE]: 1,\n\t[METRIC_SCHEDULE]: 1,\n\t[METRIC_EXECUTE]: 1,\n\t[METRIC_DEFER]: 1,\n\t[METRIC_PROPERTY_REFLECTION]: 1,\n\t[METRIC_EFFECT_START]: 0,\n\t[METRIC_EFFECT_END]: 0,\n\t[METRIC_PATCH_START]: 0,\n\t[METRIC_PATCH_END]: 0,\n\t[METRIC_HOOK_START]: 0,\n\t[METRIC_HOOK_END]: 0,\n\t[METRIC_UPDATE_CONTEXT]: 1\n};\n\n// Copied from @servicenow/ui-core. This should be in @servicenow/ui-internals, however that package\n// depends on this package, which would create a circular dependency\nexport const SEISMIC_HOIST_TAG_NAME = 'SEISMIC-HOIST';\n\nexport const timings = {\n\tLOWER_BOUNDARY: '0-50ms',\n\tMIDDLE: '51-100ms',\n\tUPPER_BOUNDARY: '100+ms'\n};\nexport const timingMetricTypes = {\n\tDEFER: 'defer',\n\tDEBOUNCE: 'debounce'\n};\n\nexport const UNKNOWN_COMPONENT_NAME = 'UNKNOWN';\n","import {INTERACTION_ID} from './symbols';\nimport createInteractionId from './createInteractionId';\n\nexport default function applyInteractionId(meta) {\n\tif (!meta[INTERACTION_ID]) meta[INTERACTION_ID] = createInteractionId(); // eslint-disable-line no-param-reassign\n\n\treturn meta;\n}\n","export const INTERACTION_ID = Symbol('__INTERACTION_ID__');\n","const x = 2147483648;\nconst baseId =\n\tMath.floor(Math.random() * x).toString(36) +\n\tMath.abs(Math.floor(Math.random() * x) ^ Date.now()).toString(36);\n\nlet count = 0;\n\nconst getBaseId = () => globalThis?.nowUiFramework?.metrics?.uxfInteractionIdBase || baseId;\n\nexport default function createTransactionId() {\n\tcount = count + 1;\n\treturn `${getBaseId()}-${count}`;\n}\n","import {INTERACTION_ID} from './symbols';\nimport validateMeta from './validateMeta';\n\n/**\n * Retrieves the interactionId from an action\n * @function getInteractionId\n * @example\n * import {getInteractionId} from '@servicenow/ui-metrics';\n *\n * const captureClickEvent = (coeffects, target) => {\n * \t const {action, host} = coeffects;\n *\n *   mark(host, getInteractionId(action.meta), 'CLICK_EVENT', {eventTarget: target});\n * }\n *\n * @param {Object} meta - The meta data from the action object\n */\nexport default function getInteractionId(meta) {\n\tvalidateMeta(meta, 'getInteractionId');\n\treturn meta[INTERACTION_ID];\n}\n","import {LIB_NAME} from './constants';\nimport isObject from './isObject';\n\nexport default function validateMeta(meta, callerName) {\n\tif (process.env.NODE_ENV === 'development') {\n\t\tif (!isObject(meta))\n\t\t\tconsole.warn(`${LIB_NAME} ${callerName}() arguments[0] meta must be an object.`); // eslint-disable-line no-console\n\t}\n}\n","export default function isObject(obj) {\n\treturn (\n\t\t!!obj && typeof obj === 'object' && Object.prototype.toString.call(obj) === '[object Object]'\n\t);\n}\n","import {INTERACTION_ID} from './symbols';\nimport validateSetInteractionIdArguments from './validateSetInteractionIdArguments';\n\nexport default function setInteractionId(meta, id) {\n\tvalidateSetInteractionIdArguments(meta, 'setInteractionId', id);\n\tmeta[INTERACTION_ID] = id; // eslint-disable-line no-param-reassign\n\treturn meta;\n}\n","import validateMeta from './validateMeta';\nimport {LIB_NAME} from './constants';\n\nexport default function validateSetInteractionIdArguments(meta, fnName, id) {\n\tvalidateMeta(meta, fnName);\n\tif (process.env.NODE_ENV === 'development') {\n\t\tif (typeof id !== 'string')\n\t\t\tconsole.warn(`${LIB_NAME} ${fnName}() arguments[1] interactionId must be a string.`); // eslint-disable-line no-console\n\t}\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nconst {createTraceId, getConfigValue} = uiAnalyticsConsumer;\n\nfunction isTracingEnabled() {\n\treturn getConfigValue('enableTrace') === true;\n}\n\nexport default function createTransactionId() {\n\tif (!isTracingEnabled()) {\n\t\treturn null;\n\t}\n\treturn createTraceId();\n}\n","import levels from './levels';\nimport * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nconst {createHistogram} = uiAnalyticsConsumer;\n\n/**\n * Defines a custom metric\n * @function defineMetric\n * @example\n * import {defineMetric} from '@servicenow/ui-metrics';\n *\n * export const initCustomMetrics = () => {\n *\t\tif (shouldPersistMetrics) {\n *\t\t\tsetInteractionId();\n *\t\t\twindow.addEventListener('unload', () => {\n *\t\t\t\tpersistMetrics();\n *\t\t\t});\n *\n *\t\t\tdefineMetric('NAVIGATE', 4);\n *\t\t\tpersistAtInterval(intervalDuration);\n *\t\t}\n * };\n *\n * @param {String} name\n * @param {Number} level\n */\nexport default function defineMetric(name, level = 0) {\n\tif (levels[name]) throw new Error(`@servicenow/ui-metrics ${name} is already a defined metric.`);\n\tif (!Number.isInteger(level) || level > 5 || level < 0)\n\t\tthrow new Error(`@servicenow/ui-metrics ${level} is not valid metric level.`);\n\n\tlevels[name] = {level, histogram: createHistogram(name)};\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {levels} from './constants';\nconst {createHistogram} = uiAnalyticsConsumer;\nconst types = {};\nfor (const k in levels) {\n\ttypes[k] = {\n\t\tlevel: levels[k],\n\t\thistogram: createHistogram(k)\n\t};\n}\n\nexport default types;\n","import levels from './levels';\nimport resolveContext from './resolveContext';\nimport * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport augment from './augment';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport {defer, whenIdle} from '@servicenow/ui-utils';\nimport marks from './marks';\nimport {increment as incrementCount} from './counters';\nimport shouldMark from './shouldMark';\nimport {types} from './constants';\nimport observers from './observers';\nimport validateMarkArguments from './validateMarkArguments';\n\nconst {track} = uiAnalyticsConsumer;\nconst {\n\tMETRICS_OBSERVER_INTERVAL,\n\tMETRICS_USE_WINDOW_PERFORMANCE,\n\tMETRICS_MARK_PRUNING_INTERVAL,\n\tMETRICS_MARK_EXPIRATION,\n\tMETRICS_PRUNE_MARKS\n} = configConstants;\nlet timeoutId;\nconst latest = [];\nconst MARK_PRUNING_INTERVAL = getConfigItem(METRICS_MARK_PRUNING_INTERVAL);\nconst MARK_EXPIRATION = getConfigItem(METRICS_MARK_EXPIRATION);\nconst PRUNE_MARKS = getConfigItem(METRICS_PRUNE_MARKS);\n\nlet {performance} = window;\nif (!getConfigItem(METRICS_USE_WINDOW_PERFORMANCE)) {\n\ttry {\n\t\tperformance = window.top.performance; // eslint-disable-line prefer-destructuring\n\t} catch (e) {\n\t\t/* catch if !window.top */\n\t}\n}\n\nconst callObservers = () => {\n\tif (observers.size) {\n\t\tclearTimeout(timeoutId);\n\t\ttimeoutId = defer(() => {\n\t\t\twhenIdle(() => {\n\t\t\t\tconst latestSlice = latest.splice(0);\n\t\t\t\tif (latestSlice.length) observers.forEach(observer => observer([...latestSlice]));\n\t\t\t});\n\t\t}, getConfigItem(METRICS_OBSERVER_INTERVAL));\n\t}\n};\n\nconst unresolvedResourceMarks = [];\n\nconst isMatch = (mark, resource) => {\n\tif (isMarkBatchedRequest(mark) && isResourceBatchApi(resource)) return true;\n\n\tif (resource.name.includes(mark?.options?.path)) return true;\n\n\treturn false;\n};\n\nconst isResourceBatchApi = resource => resource.name.includes('/api/now/v1/batch');\nconst isMarkBatchedRequest = mark => mark?.options?.batch;\n\n// not currently supported in component unit testing environment\nif (window.PerformanceObserver) {\n\tconst observer = new PerformanceObserver(list => {\n\t\tconst resources = list.getEntries().sort((a, b) => {\n\t\t\tif (a.startTime < b.startTime) return -1;\n\t\t\tif (a.startTime > b.startTime) return 1;\n\n\t\t\treturn 0;\n\t\t});\n\n\t\tfor (let m = 0; m < unresolvedResourceMarks.length; m++) {\n\t\t\tconst mark = unresolvedResourceMarks[m];\n\n\t\t\tfor (let e = 0; e < resources.length; e++) {\n\t\t\t\tconst resource = resources[e];\n\n\t\t\t\tif (resource.startTime > mark.markTime && isMatch(mark, resource)) {\n\t\t\t\t\tmark.options.resource = resource.toJSON();\n\t\t\t\t\tunresolvedResourceMarks.splice(m, 1);\n\t\t\t\t\tm -= 1;\n\t\t\t\t\tlatest.push(mark);\n\t\t\t\t\tcallObservers();\n\t\t\t\t\tif (!isMarkBatchedRequest(mark)) resources.splice(e, 1);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tobserver.observe({\n\t\tentryTypes: ['resource']\n\t});\n}\n\nif (PRUNE_MARKS && MARK_PRUNING_INTERVAL > 0) {\n\tsetInterval(() => {\n\t\tconst now = performance.now();\n\n\t\tfor (let i = 0; i < unresolvedResourceMarks.length; i++) {\n\t\t\tif (now - unresolvedResourceMarks[i].markTime >= MARK_EXPIRATION) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\tconst count = unresolvedResourceMarks.length - i;\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`@servicenow/ui-metrics Pruning ${count} unresolved resource mark${\n\t\t\t\t\t\t\tcount > 1 ? 's' : ''\n\t\t\t\t\t\t}.`\n\t\t\t\t\t); // eslint-disable-line no-console\n\t\t\t\t}\n\t\t\t\tunresolvedResourceMarks.splice(i);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = 0; i < marks.length; i++) {\n\t\t\tif (now - marks[i].markTime >= MARK_EXPIRATION) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\tconst count = marks.length - i;\n\t\t\t\t\tconsole.info(\n\t\t\t\t\t\t`@servicenow/ui-metrics Pruning ${marks.length - i} expired mark${\n\t\t\t\t\t\t\tcount > 1 ? 's' : ''\n\t\t\t\t\t\t}.`\n\t\t\t\t\t); // eslint-disable-line no-console\n\t\t\t\t}\n\t\t\t\tmarks.splice(i);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}, MARK_PRUNING_INTERVAL);\n}\n\n/**\n * Marks a Seismic friendly performance marker\n * @function mark\n * @example\n * import {mark} from '@servicenow/ui-metrics';\n *\n * actionHandlers: {\n * \t\t[COMPONENT_TREE_RENDERED]({host, action: {meta}}) {\n *\t\t\tif (hasFetched && !loading && !interactive) {\n *\n * \t\t\t\t// Mark a custom defined metric and flip interactive\n * \t\t\t\t// Initial interactive state is false\n *\t\t\t\tmark(host, getInteractionId(meta), metrics.HERO_INTERACTIVE);\n *\t\t\t\tupdateState({\n *\t\t\t\t\tshouldRender: false,\n *\t\t\t\t\tpath: 'interactive',\n *\t\t\t\t\tvalue: true,\n *\t\t\t\t\toperation: 'set'\n *\t\t\t\t});\n *\t\t\t}\n *\t\t}\n * }\n *\n * @param {Object} context - (Optional) Context object to attach mark to\n * @param {String} interactionId - The id of the action that trigger the mark. Helps track client transactions during the interaction\n * @param {String} event - The metric type you are marking (custom metrics must be defined first).\n * @param {Object} options - (Optional) Typically this is the label or type of the mark.  Labels should be `:` delimited.\n * @param {String} type - (Optional) The category of metric.  Defaults to `performance`.  Other common options are `usage` || `both`.\n */\nexport default function mark(\n\tcontext = {},\n\tinteractionId,\n\tevent,\n\toptions = {},\n\ttype = 'performance'\n) {\n\tconst resolvedContext = resolveContext(context);\n\tconst {componentName, componentId, parentComponentId} = resolvedContext;\n\tincrementCount(event, {componentName, componentId, parentComponentId});\n\tif (!shouldMark(resolvedContext, event)) return;\n\n\tvalidateMarkArguments(resolvedContext, interactionId, event, options, type);\n\tconst mark = {\n\t\tcomponentName,\n\t\tcomponentId,\n\t\tparentComponentId,\n\t\tmarkTime: performance.now(),\n\t\tinteractionId,\n\t\tevent,\n\t\toptions,\n\t\ttype\n\t};\n\tconst augmentedMark = augment(mark);\n\n\tif (event === types.HTTP || event === types.GQL) {\n\t\tunresolvedResourceMarks.push(augmentedMark);\n\t\taugmentedMark.options.resource = {\n\t\t\tunresolved: true\n\t\t};\n\t}\n\n\tif (type === 'performance' || type === 'all') {\n\t\tconst {histogram} = levels[event];\n\t\thistogram(event?.value || event, augmentedMark);\n\t}\n\tif (type === 'usage' || type === 'all') {\n\t\ttrack(event, {attributes: augmentedMark});\n\t}\n\n\tmarks.push(augmentedMark);\n\n\tif (observers.size && !augmentedMark?.options?.resource?.unresolved) {\n\t\tlatest.push(augmentedMark);\n\t\tcallObservers();\n\t}\n}\n","import {SEISMIC_HOIST_TAG_NAME} from './constants';\n\nexport default function resolveContext(context) {\n\tconst isSeismicElement = context.nowId;\n\tif (!isSeismicElement) return context;\n\n\tconst resolvedHost = context.tagName === SEISMIC_HOIST_TAG_NAME ? context.sourceElement : context;\n\n\treturn {\n\t\tcomponentName: resolvedHost.tagName,\n\t\tcomponentId: resolvedHost.nowId,\n\t\tparentComponentId: resolvedHost.__DO_NOT_USE_OR_YOU_WILL_BE_FIRED_BY_YOUR_PARENT__,\n\t\tmetricTypes: resolvedHost.metricTypes,\n\t\tmetricsLevel: resolvedHost.metricsLevel,\n\t\tready: resolvedHost.__DO_NOT_USE_BOOTSTRAPPED__\n\t};\n}\n","import augmenters from './augmenters';\n\nexport default function augment(obj) {\n\tif (!augmenters.size) return obj;\n\n\treturn [...augmenters].reduceRight((acc, val) => val(acc), obj);\n}\n","export default new Set();\n","export default [];\n","import {types} from './constants';\n\nconst {GQL, HTTP, RENDER_START, UPDATE_PROPERTIES, DISPATCH, UPDATE_STATE} = types;\n\nlet totalGQL = 0;\nlet totalHTTP = 0;\nlet totalRenders = 0;\nlet totalPropChange = 0;\nlet totalDispatch = 0;\nlet totalStateUpdates = 0;\n\nexport const getCounters = () => ({\n\ttotalGQL,\n\ttotalHTTP,\n\ttotalRenders,\n\ttotalPropChange,\n\ttotalDispatch,\n\ttotalStateUpdates\n});\n\nexport const clearCounters = () => {\n\ttotalGQL = 0;\n\ttotalHTTP = 0;\n\ttotalRenders = 0;\n\ttotalPropChange = 0;\n\ttotalDispatch = 0;\n\ttotalStateUpdates = 0;\n};\n\nexport const increment = type => {\n\tswitch (type) {\n\t\tcase GQL:\n\t\t\ttotalGQL++;\n\t\t\tbreak;\n\t\tcase HTTP:\n\t\t\ttotalHTTP++;\n\t\t\tbreak;\n\t\tcase RENDER_START:\n\t\t\ttotalRenders++;\n\t\t\tbreak;\n\t\tcase UPDATE_PROPERTIES:\n\t\t\ttotalPropChange++;\n\t\t\tbreak;\n\t\tcase DISPATCH:\n\t\t\ttotalDispatch++;\n\t\t\tbreak;\n\t\tcase UPDATE_STATE:\n\t\t\ttotalStateUpdates++;\n\t\t\tbreak;\n\t}\n};\n","import levels from './levels';\nimport {getConfigItem, configConstants, observeConfigItem} from '@servicenow/ui-config';\n\nconst {METRICS_LEVEL, METRICS_TYPES, TELEMETRY_MARKING_ENABLED, METRICS_ELEMENT_CONFIG_ENABLED} =\n\tconfigConstants;\n\nlet globalMetricsLevel = parseInt(getConfigItem(METRICS_LEVEL));\nlet globalMetricsLevelIsInteger = Number.isInteger(globalMetricsLevel);\nlet globalMetricTypes = getConfigItem(METRICS_TYPES);\nlet globalIsTelemetryEnabled = getConfigItem(TELEMETRY_MARKING_ENABLED);\nlet globalElementMetricsConfigEnabled = getConfigItem(METRICS_ELEMENT_CONFIG_ENABLED);\n\nlet resolvedLevels = {};\nconst isMetricTypeValid = level => {\n\tif (resolvedLevels[level]) return true;\n\n\tconst isValid = Number.isInteger(level) && level >= 0 && level <= 5;\n\n\tif (isValid) resolvedLevels[level] = true;\n\n\treturn isValid;\n};\n\nconst observer = (path, value) => {\n\tresolvedLevels = {};\n\n\tswitch (path) {\n\t\tcase METRICS_LEVEL:\n\t\t\tglobalMetricsLevel = value;\n\t\t\tglobalMetricsLevelIsInteger = Number.isInteger(globalMetricsLevel);\n\t\t\tbreak;\n\t\tcase METRICS_TYPES:\n\t\t\tglobalMetricTypes = value;\n\t\t\tbreak;\n\t\tcase TELEMETRY_MARKING_ENABLED:\n\t\t\tglobalIsTelemetryEnabled = value;\n\t\t\tbreak;\n\t\tcase METRICS_ELEMENT_CONFIG_ENABLED:\n\t\t\tglobalElementMetricsConfigEnabled = value;\n\t\t\tbreak;\n\t}\n};\n\nobserveConfigItem(METRICS_LEVEL, observer);\nobserveConfigItem(METRICS_TYPES, observer);\nobserveConfigItem(TELEMETRY_MARKING_ENABLED, observer);\nobserveConfigItem(METRICS_ELEMENT_CONFIG_ENABLED, observer);\n\nexport default function shouldMark(context, metricType) {\n\tif (globalIsTelemetryEnabled === false) return false;\n\n\t// non-bootstrapped components don't have enough\n\t// data to send a valid mark\n\tif (!context.ready) return false;\n\n\tif (globalElementMetricsConfigEnabled && Array.isArray(context.nowMetricTypes))\n\t\treturn context.nowMetricTypes.includes(metricType);\n\n\tif (Array.isArray(globalMetricTypes)) return globalMetricTypes.includes(metricType);\n\n\tconst {level = -1} = levels[metricType] || {};\n\n\tif (!isMetricTypeValid(level)) return false;\n\n\tif (globalElementMetricsConfigEnabled && Number.isInteger(context.nowMetricsLevel))\n\t\treturn level >= context.nowMetricsLevel;\n\n\treturn globalMetricsLevelIsInteger && level >= globalMetricsLevel;\n}\n","export default new Set();\n","import isObject from './isObject';\nimport isElement from './isElement';\nimport {LIB_NAME} from './constants';\n\nexport default function validateMarkArguments(context, interactionId, event, options, type) {\n\tif (process.env.NODE_ENV === 'development') {\n\t\tif (!isObject(context) && !isElement(context))\n\t\t\tconsole.error(`${LIB_NAME} mark() arguments[0] context must be an object.`); // eslint-disable-line no-console\n\t\tif (typeof interactionId !== 'string')\n\t\t\tconsole.error(`${LIB_NAME} mark() arguments[1] interactionId must be a string.`); // eslint-disable-line no-console\n\t\tif (typeof event !== 'string')\n\t\t\tconsole.error(`${LIB_NAME} mark() arguments[2] event must be a string.`); // eslint-disable-line no-console\n\t\tif (!isObject(options))\n\t\t\tconsole.error(`${LIB_NAME} mark() arguments[3] options must be an object.`); // eslint-disable-line no-console\n\t\tif (typeof type !== 'string')\n\t\t\tconsole.error(`${LIB_NAME} mark() arguments[4] type must be a string.`); // eslint-disable-line no-console\n\t}\n}\n","export default function isElement(obj) {\n\treturn Object.prototype.toString.call(obj).startsWith('[object HTML');\n}\n","import marks from './marks';\n\nexport default function getMarks() {\n\treturn [...marks];\n}\n","import marks from './marks';\n\nexport default function clearMarks() {\n\tmarks.length = 0;\n}\n","import observers from './observers';\n\nexport default function observe(observer) {\n\tobservers.add(observer);\n\treturn () => observers.delete(observer);\n}\n","import levels from './levels';\n\nconst getMetricTypes = () => ({...levels});\n\nexport default getMetricTypes;\n","import augmenters from './augmenters';\n\nexport default function addMarkAugmenter(augmenter) {\n\tif (typeof augmenter !== 'function') return () => {};\n\n\taugmenters.add(augmenter);\n\treturn () => augmenters.delete(augmenter);\n}\n","import {getCountersHistogram, clearTimingMetrics} from './timingMetrics';\n\nlet perfMetricsEnabled = false;\n\nexport const collectMetrics = (options = {}) => {\n\tconst {shouldClear = false, shouldDisable = false} = options;\n\n\t// Disable metric collection if needed\n\tif (shouldDisable) perfMetricsEnabled = false;\n\n\t// Collect metrics\n\tconst counters = getCounters();\n\n\t// Clear metric collection objects if needed\n\tif (shouldClear) clearPerfMetrics();\n\treturn {counters};\n};\n\nconst getCounters = () => {\n\treturn getCountersHistogram();\n};\n\nexport const enable = () => {\n\tperfMetricsEnabled = true;\n};\n\nexport const isPerfMetricsEnabled = () => {\n\treturn perfMetricsEnabled;\n};\n\nexport const clearPerfMetrics = () => {\n\tclearTimingMetrics();\n};\n","import {timingMetricTypes, timings} from './constants';\nimport {clearDeferMetrics, getDeferMetrics, logDuration} from '@servicenow/ui-utils';\nimport {isPerfMetricsEnabled} from './metrics';\n\nlet debounceMetrics = {};\n//Have to do this to avoid circular dependency between utils and metrics packages\nlet deferMetrics = getDeferMetrics();\n\nexport const clearTimingMetrics = () => {\n\tdebounceMetrics = {};\n\tclearDeferMetrics();\n\tdeferMetrics = getDeferMetrics();\n};\n\nexport const logTimingMetrics = (type, duration = 0, componentName) => {\n\tif (!isPerfMetricsEnabled()) return;\n\tswitch (type) {\n\t\tcase timingMetricTypes.DEFER:\n\t\t\tlogDuration(deferMetrics, duration, componentName);\n\t\t\tbreak;\n\t\tcase timingMetricTypes.DEBOUNCE:\n\t\t\tlogDuration(debounceMetrics, duration, componentName);\n\t\t\tbreak;\n\t}\n};\n\nexport function getCountersHistogram() {\n\treturn {\n\t\t[timingMetricTypes.DEFER]: getHistogram(deferMetrics),\n\t\t[timingMetricTypes.DEBOUNCE]: getHistogram(debounceMetrics)\n\t};\n}\n\nfunction getHistogram(metrics) {\n\tconst histogram = {\n\t\t[timings.LOWER_BOUNDARY]: {},\n\t\t[timings.MIDDLE]: {},\n\t\t[timings.UPPER_BOUNDARY]: {}\n\t};\n\tObject.keys(metrics).forEach(componentName => {\n\t\tconst delayTimeArray = metrics[componentName] || [];\n\t\tdelayTimeArray.forEach(delayTime => {\n\t\t\tif (delayTime <= 50) {\n\t\t\t\thistogram[timings.LOWER_BOUNDARY][componentName] =\n\t\t\t\t\t(histogram[timings.LOWER_BOUNDARY][componentName]\n\t\t\t\t\t\t? histogram[timings.LOWER_BOUNDARY][componentName]\n\t\t\t\t\t\t: 0) + 1;\n\t\t\t} else if (delayTime > 100) {\n\t\t\t\thistogram[timings.UPPER_BOUNDARY][componentName] =\n\t\t\t\t\t(histogram[timings.UPPER_BOUNDARY][componentName]\n\t\t\t\t\t\t? histogram[timings.UPPER_BOUNDARY][componentName]\n\t\t\t\t\t\t: 0) + 1;\n\t\t\t} else {\n\t\t\t\thistogram[timings.MIDDLE][componentName] =\n\t\t\t\t\t(histogram[timings.MIDDLE][componentName]\n\t\t\t\t\t\t? histogram[timings.MIDDLE][componentName]\n\t\t\t\t\t\t: 0) + 1;\n\t\t\t}\n\t\t});\n\t});\n\treturn histogram;\n}\n","import {SPAN_KIND_CLIENT, SPAN_LEVEL_FINE} from './constants';\n\nexport default function getSpanOptions(host, level = SPAN_LEVEL_FINE) {\n\treturn {\n\t\tattributes: {\n\t\t\ttagName: host.tagName?.toLowerCase(),\n\t\t\tcomponentId: host.nowId,\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t'seismic.level': level\n\t\t}\n\t};\n}\n","const x = 2147483648;\nconst baseId =\n\tMath.floor(Math.random() * x).toString(36) +\n\tMath.abs(Math.floor(Math.random() * x) ^ Date.now()).toString(36);\n\nlet count = 0;\nexport default function guid() {\n\tcount = count + 1;\n\treturn `${baseId}-${count}`;\n}\n","import callAsync from './callAsync';\n\n/**\n * Creates a react-like ref that prohibits access to the actual element.\n */\nexport default function createAriaRef() {\n\tconst subscriptionMap = new Map();\n\tconst childAriaRefToPath = new WeakMap();\n\tlet __current;\n\tlet __parent;\n\n\tconst ref = {\n\t\tisAriaRef: true,\n\t\tsetCurrent(value) {\n\t\t\t__current = value;\n\t\t\tcallAsync(() => {\n\t\t\t\tsubscriptionMap.forEach(attributeToCallback => {\n\t\t\t\t\tfor (const attribute in attributeToCallback) attributeToCallback[attribute](this);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tsetParentAriaRef(parentAriaRef) {\n\t\t\t__parent = parentAriaRef;\n\t\t},\n\t\tgetParentAriaRef() {\n\t\t\treturn __parent;\n\t\t},\n\t\tisSet() {\n\t\t\treturn !!__current;\n\t\t},\n\t\tsetId(id) {\n\t\t\t__current.id = id;\n\t\t},\n\t\tgetAttribute(name) {\n\t\t\treturn __current.getAttribute(name);\n\t\t},\n\t\tgetRootNode() {\n\t\t\treturn __current.getRootNode();\n\t\t},\n\t\tcloneNode(deep) {\n\t\t\treturn __current.cloneNode(deep);\n\t\t},\n\t\tsetChildQuerySelector(childAriaRef, path) {\n\t\t\tchildAriaRefToPath.set(childAriaRef, path);\n\t\t},\n\t\tgetChildQuerySelector(childAriaRef) {\n\t\t\treturn childAriaRefToPath.get(childAriaRef);\n\t\t},\n\t\tcontains(node) {\n\t\t\tif (__current) return __current.contains(node);\n\n\t\t\treturn false;\n\t\t},\n\t\tsubscribe({element, attribute}, cb) {\n\t\t\tlet attributeToCallback = subscriptionMap.get(element);\n\t\t\tif (attributeToCallback) {\n\t\t\t\tconst oldCb = attributeToCallback[attribute];\n\t\t\t\tif (oldCb) oldCb(null);\n\t\t\t} else {\n\t\t\t\tattributeToCallback = {};\n\t\t\t\tsubscriptionMap.set(element, attributeToCallback);\n\t\t\t}\n\n\t\t\tattributeToCallback[attribute] = cb;\n\t\t\tcb(this);\n\t\t},\n\t\tunsubscribe({element, attribute}) {\n\t\t\tconst attributeToCallback = subscriptionMap.get(element);\n\t\t\tif (attributeToCallback) {\n\t\t\t\tconst cb = attributeToCallback[attribute];\n\n\t\t\t\tif (cb) cb(null);\n\n\t\t\t\tdelete attributeToCallback[attribute];\n\t\t\t\tif (Object.keys(attributeToCallback).length === 0) subscriptionMap.delete(element);\n\t\t\t}\n\t\t}\n\t};\n\n\tObject.seal(ref);\n\n\treturn ref;\n}\n","export {default as isRef} from './isRef';\nexport {default as createRef} from './createRef';\nexport {default as subscribeToRef} from './subscribeToRef';\n","import {CREATE_REF_SYMBOL} from '../constants';\n\nexport default function isRef(ref) {\n\treturn ref && ref[CREATE_REF_SYMBOL] ? true : false;\n}\n","import {\n\tCREATE_REF_SYMBOL,\n\tCREATE_REF_SUBSCRIBE_SYMBOL,\n\tCREATE_REF_COMP_PROPS_SUBSCRIPTIONS_SYMBOL\n} from '../constants';\n/**\n * Creates a react-like ref.\n * @method createRef\n * @returns {{current: null}}\n */\nexport default function createRef() {\n\tlet current = null;\n\tconst subscriptions = new Map();\n\tconst ref = {\n\t\t[CREATE_REF_SYMBOL]: true,\n\t\tset current(val) {\n\t\t\tif (current !== val) {\n\t\t\t\tcurrent = val;\n\t\t\t\tfor (const [component, props] of subscriptions) {\n\t\t\t\t\tfor (const name of props) component[name] = val;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tget current() {\n\t\t\treturn current;\n\t\t},\n\t\t[CREATE_REF_SUBSCRIBE_SYMBOL](component, propertyName) {\n\t\t\tsubscriptions.set(component, (subscriptions.get(component) || new Set()).add(propertyName));\n\t\t\treturn () => {\n\t\t\t\tconst propList = subscriptions.get(component);\n\t\t\t\tpropList?.delete(propertyName);\n\t\t\t\tpropList?.size === 0 && subscriptions.delete(component);\n\t\t\t};\n\t\t},\n\t\t[CREATE_REF_COMP_PROPS_SUBSCRIPTIONS_SYMBOL](component) {\n\t\t\tconst compSubscriptions = subscriptions.get(component);\n\t\t\treturn compSubscriptions ? [...compSubscriptions] : [];\n\t\t}\n\t};\n\tObject.seal(ref);\n\treturn ref;\n}\n","import {CREATE_REF_SUBSCRIBE_SYMBOL} from '../constants';\n\nexport default function subscribeToRef(ref, component, propertyName) {\n\treturn ref && ref[CREATE_REF_SUBSCRIBE_SYMBOL](component, propertyName);\n}\n","const registry = new WeakMap();\nconst networkActionsEmptyForElCallbacks = [];\nlet globalCount = 0;\n\nexport function getPendingNetworkActionCount() {\n\treturn globalCount;\n}\n\nexport function pendingNetworkActionCountForHost(host) {\n\treturn registry.has(host) ? registry.get(host).size : 0;\n}\n\nexport function addPendingNetworkActionForHost(pendingNetworkAction, host) {\n\tif (!registry.has(host)) registry.set(host, new Set());\n\tregistry.get(host).add(pendingNetworkAction);\n\tglobalCount++;\n}\n\nexport function removePendingNetworkActionForHost(pendingNetworkAction, host) {\n\tif (!registry.has(host)) return;\n\tif (!registry.get(host).delete(pendingNetworkAction)) return;\n\tglobalCount--;\n\tconst len = networkActionsEmptyForElCallbacks.length;\n\tfor (let i = 0; i < len; i++) networkActionsEmptyForElCallbacks[i](host);\n}\n\nexport function clearPendingNetworkActionsForHost(host) {\n\tif (!registry.has(host)) return;\n\tconst networkActions = registry.get(host);\n\tglobalCount -= networkActions.size;\n\tnetworkActions.clear();\n}\n\nexport function addPendingNetworkActionForHostCb(fn) {\n\tnetworkActionsEmptyForElCallbacks.push(fn);\n}\n\nexport function getHostPendingNetworkActionCount(host) {\n\treturn (registry.has(host) && registry.get(host).size) || 0;\n}\n","import {createLogger} from '@servicenow/ui-internal';\n\nexport default createLogger({\n\tmodule: '@servicenow/ui-behavior-post-message'\n});\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_config = exports;\n\nexport * from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_core = exports;\n\nexport * from './index.js';\n","import {defineRegistry, get as getStats} from './stats';\nimport whenComponentIsIdle from './whenComponentIsIdle';\nimport {whenAllComponentsIdle} from './whenComponentIsIdle';\nimport createCustomElementFactory from './createCustomElementFactory';\nimport {\n\tregisterNowResolvedPropsHandler,\n\tclearNowResolvedPropsHandler\n} from './utils/nowResolvedPropsHandler';\nimport {\n\tactionTypes as componentActionTypes,\n\tlocations,\n\tallLogTypes as logTypes\n} from '@servicenow/ui-internal';\nimport {\n\tCOMPONENT_MODE_SUSPEND as SUSPEND,\n\tCOMPONENT_MODE_ACTIVE as ACTIVE,\n\tCOMPONENT_MODE_DETACH as DETACH,\n\tSHADOW_ROOT_MODE_OPEN as OPEN,\n\tSHADOW_ROOT_MODE_CLOSED as CLOSED,\n\tPRIORITY_LEVEL_LOW as LOW,\n\tPRIORITY_LEVEL_MEDIUM as MEDIUM,\n\tARIA_LIVE_REGION_UPDATE_REQUESTED,\n\tARIA_LIVE_TRIGGER_ADDITIONS,\n\tARIA_LIVE_TRIGGER_ALL,\n\tARIA_LIVE_TRIGGER_REMOVALS,\n\tARIA_LIVE_TRIGGER_TEXT\n} from './constants';\nimport {\n\tcreateUnstableResolvePropertySelectorValue,\n\tunstableAddRenderOnPropertySelectorValueChange,\n\tunstableRemoveRenderOnPropertySelectorValueChange\n} from './property-selectors';\nimport {modifierTypes} from './effects';\nimport {declarativeOperations, getAncestorNode, unstableUpdateCustomElement} from './utils';\nimport createContext from './context/createContext';\nimport {politeId, assertiveId} from './accessibility/ariaLiveRegion';\nimport {CONTEXT_VIEW_KEY} from './symbols';\n\nconst componentModes = {\n\tSUSPEND,\n\tACTIVE,\n\tDETACH\n};\n\nconst shadowRootModes = {\n\tOPEN,\n\tCLOSED\n};\n\nconst nowPriorityLevels = {\n\tLOW,\n\tMEDIUM\n};\n\nconst componentRegistry = {};\n\nconst unstableResolvePropertySelectorValue =\n\tcreateUnstableResolvePropertySelectorValue(componentRegistry);\n\nconst createCustomElement = createCustomElementFactory({\n\tcomponentRegistry\n});\nconst createPresentationalCustomElement = createCustomElementFactory({\n\tcomponentRegistry,\n\tpresentational: true\n});\n\nconst actionTypes = {...componentActionTypes, ARIA_LIVE_REGION_UPDATE_REQUESTED};\nconst ariaLiveRegionIds = {polite: politeId, assertive: assertiveId};\nconst contextViewKey = CONTEXT_VIEW_KEY;\n\nconst getComponentById = id => componentRegistry[id];\nconst getComponentInstances = () => ({...componentRegistry});\nconst ariaLiveRegionTriggers = {\n\tARIA_LIVE_TRIGGER_ADDITIONS,\n\tARIA_LIVE_TRIGGER_ALL,\n\tARIA_LIVE_TRIGGER_REMOVALS,\n\tARIA_LIVE_TRIGGER_TEXT\n};\n\ndefineRegistry(componentRegistry);\n\nwindow.nowUiFramework = window.nowUiFramework || {};\nwindow.nowUiFramework.core = {getStats};\n\nexport {\n\tregisterNowResolvedPropsHandler,\n\tclearNowResolvedPropsHandler,\n\tcreateCustomElement,\n\tcreatePresentationalCustomElement,\n\tactionTypes,\n\tariaLiveRegionTriggers,\n\tlogTypes,\n\tmodifierTypes,\n\tshadowRootModes,\n\tnowPriorityLevels,\n\tdeclarativeOperations,\n\tlocations as errorLocations,\n\tcomponentModes,\n\tariaLiveRegionIds,\n\tcreateContext,\n\twhenComponentIsIdle,\n\twhenAllComponentsIdle,\n\tcontextViewKey,\n\tgetAncestorNode,\n\tgetComponentById,\n\tgetComponentInstances,\n\tgetStats,\n\t// Unstable APIs - Subject to change\n\tunstableResolvePropertySelectorValue,\n\tunstableAddRenderOnPropertySelectorValueChange,\n\tunstableRemoveRenderOnPropertySelectorValueChange,\n\tunstableUpdateCustomElement\n};\n","import {PACKAGE_JSON_VERSION} from './constants';\n\nlet componentRegistry = {};\nconst stats = {\n\tconstructedByTagName: {},\n\tdefinedTagNames: [],\n\tdeferredByTagName: {}\n};\n\nexport const defineRegistry = registry => {\n\tcomponentRegistry = registry;\n\tstats.constructedByTagName = {};\n\tstats.definedTagNames = [];\n\tstats.deferredByTagName = {};\n};\n\nexport const get = () => {\n\tconst countByTagName = {};\n\tfor (const k in componentRegistry) {\n\t\tconst tagName = componentRegistry[k].tagName.toLowerCase();\n\t\tif (!countByTagName[tagName]) countByTagName[tagName] = 0;\n\n\t\tcountByTagName[tagName]++; // eslint-disable-line no-plusplus\n\t}\n\n\tlet totalConstructed = 0;\n\tfor (const k in stats.constructedByTagName) {\n\t\ttotalConstructed += stats.constructedByTagName[k];\n\t}\n\n\tconst unusedTagNames = [];\n\tfor (let i = 0; i < stats.definedTagNames.length; i++) {\n\t\tconst tagName = stats.definedTagNames[i];\n\t\tif (!stats.constructedByTagName[tagName]) {\n\t\t\tunusedTagNames.push(tagName);\n\t\t}\n\t}\n\n\treturn {\n\t\tversion: PACKAGE_JSON_VERSION,\n\t\tdefinitions: {\n\t\t\ttotal: stats.definedTagNames.length,\n\t\t\tunusedTagNames,\n\t\t\ttagNames: [...stats.definedTagNames]\n\t\t},\n\t\tconstructed: {\n\t\t\ttotal: totalConstructed,\n\t\t\tcountByTagName: stats.constructedByTagName\n\t\t},\n\t\tconnected: {\n\t\t\ttotal: Object.keys(componentRegistry).length,\n\t\t\tcountByTagName,\n\t\t\tdeferredByTagName: stats.deferredByTagName,\n\t\t\tnodes: {...componentRegistry}\n\t\t}\n\t};\n};\n\nexport const set = (statName, tagName) => {\n\tswitch (statName) {\n\t\tcase 'constructed':\n\t\t\tstats.constructedByTagName[tagName] = stats.constructedByTagName[tagName] || 0;\n\t\t\tstats.constructedByTagName[tagName]++; // eslint-disable-line no-plusplus\n\t\t\tbreak;\n\t\tcase 'defined':\n\t\t\tstats.definedTagNames.push(tagName);\n\t\t\tbreak;\n\t\tcase 'defer':\n\t\t\tstats.deferredByTagName[tagName] = stats.deferredByTagName[tagName] || 0;\n\t\t\tstats.deferredByTagName[tagName]++; // eslint-disable-line no-plusplus\n\t\t\tbreak;\n\t\tcase 'undefer':\n\t\t\tstats.deferredByTagName[tagName] = stats.deferredByTagName[tagName] || 0;\n\t\t\tif (stats.deferredByTagName[tagName]) stats.deferredByTagName[tagName]--; // eslint-disable-line no-plusplus\n\t\t\tbreak;\n\t}\n};\n","import {actionTypes} from '@servicenow/ui-internal';\nimport pkgJsonContent from '../package.json';\n\nexport const DISPATCH_EVENT = 'DISPATCH_CUSTOM_EVENT';\nexport const COMPONENT_ID_ATTRIBUTE = 'component-id';\nexport const RESOLVED_PROPS_ATTRIBUTE = 'now-resolved-props';\nexport const ATTRIBUTE_SET = 'ATTRIBUTE_SET';\nexport const STORE_UPDATED = 'STORE_UPDATED';\nexport const HANDLE_ACTIONS = 'handle-actions';\nexport const PROPERTIES_SET = 'PROPERTIES_SET';\nexport const SHOULD_NOT_PROPAGATE = [PROPERTIES_SET, STORE_UPDATED];\nexport const PARSE_PROP_CONF_KEY = 'unstableParse';\nexport const SET_INITIAL_STATE = 'SET_INITIAL_STATE';\nexport const COMPONENT_NAME_ATTR = 'component-name';\nexport const COMPONENT_NAME_PROP = 'componentName';\nexport const HOIST_APPEND_TO_PROP = 'hoistAppendTo';\nexport const HOIST_APPEND_TO_ATTR = 'hoist-append-to';\nexport const HOIST_ATTR = 'hoist';\nexport const SEISMIC_HOIST_TAG_NAME = 'SEISMIC-HOIST';\nexport const HOIST_FIRST_SCROLL_PARENT = 'now-unstable-first-scroll-parent';\nexport const DEFER_ATTRIBUTE = 'defer';\nexport const APPEND_TO_PAYLOAD_PROP_NAME = 'appendToPayload';\nexport const APPEND_TO_META_PROP_NAME = 'appendToMeta';\nexport const PROPERTY_SELECTOR_SIGIL = '@';\nexport const PROPERTIES_SET_LIFECYCLE = 'onPropertiesSet';\n\n// legacy life cycle functions\nexport const ON_CONNECT_LIFECYCLE = 'onConnect';\nexport const ON_DISCONNECT_LIFECYCLE = 'onDisconnect';\nexport const ON_BOOTSTRAP_LIFECYCLE = 'onBootstrap';\n\n// public action types\nexport const {COMPONENT_CONNECTED} = actionTypes;\nexport const {COMPONENT_DISCONNECTED} = actionTypes;\nexport const {COMPONENT_BOOTSTRAPPED} = actionTypes;\nexport const {COMPONENT_PROPERTY_CHANGED} = actionTypes;\nexport const {COMPONENT_RENDERED} = actionTypes;\nexport const {COMPONENT_DOM_READY} = actionTypes;\nexport const {COMPONENT_PROPERTY_UPDATE_REQUESTED} = actionTypes;\nexport const {COMPONENT_RENDER_REQUESTED} = actionTypes;\nexport const {COMPONENT_DOM_TREE_READY} = actionTypes;\nexport const {COMPONENT_TREE_RENDERED} = actionTypes;\nexport const {COMPONENT_ACTION_DISPATCHED} = actionTypes;\nexport const {COMPONENT_INTERACTIVE} = actionTypes;\n\n// now namespace\nexport const NOW_HOIST_ATTR = 'now-hoist';\nexport const NOW_HOIST_PROP = 'nowHoist';\nexport const NOW_HOIST_APPEND_TO_ATTR = 'now-hoist-append-to';\nexport const NOW_HOIST_PREPEND_TO_ATTR = 'now-hoist-prepend-to';\nexport const NOW_HOIST_APPEND_TO_PROP = 'nowHoistAppendTo';\nexport const NOW_HOIST_PREPEND_TO_PROP = 'nowHoistPrependTo';\nexport const NOW_ID_ATTR = 'now-id';\nexport const NOW_ID_PROP = 'nowId';\nexport const NOW_COMPONENT_NAME_ATTR = 'now-name';\nexport const NOW_COMPONENT_NAME_PROP = 'nowName';\nexport const NOW_ENABLE_PROPERTY_SETTING_PREVENTION_ATTR = 'now-enable-property-setting-prevention';\nexport const NOW_ENABLE_PROPERTY_SETTING_PREVENTION_PROP = 'nowEnablePropertySettingPrevention';\nexport const NOW_LOGGING_LEVELS_PROP = 'nowLoggingLevels';\nexport const NOW_PLACEHOLDER_HEIGHT_PROP = 'nowPlaceholderHeight';\nexport const NOW_PLACEHOLDER_WIDTH_PROP = 'nowPlaceholderWidth';\nexport const NOW_NESTED_SELECTABLE_PROPS = 'nowNestedSelectableProps';\n\n// priorities\nexport const NOW_PRIORITY_ATTR = 'now-priority';\nexport const NOW_PRIORITY_PROP = 'nowPriority';\nexport const PRIORITY_LEVEL_LOW = 'low';\nexport const PRIORITY_LEVEL_MEDIUM = 'medium';\n\n// modes\nexport const NOW_MODE_ATTR = 'now-mode';\nexport const NOW_MODE_PROP = 'nowMode';\nexport const COMPONENT_MODE_ACTIVE = 'active';\nexport const COMPONENT_MODE_SUSPEND = 'suspend';\nexport const COMPONENT_MODE_DETACH = 'detach';\n\n// metrics\nexport const NOW_METRIC_TYPES_PROP = 'nowMetricTypes';\nexport const NOW_METRICS_LEVEL_PROP = 'nowMetricsLevel';\n\nexport const NOW_UI_EVENT = 'NOW_UI_EVENT';\n// now event types\nexport const STATE_UPDATED = 'STATE_UPDATED';\nexport const ACTION_DISPATCHED = 'ACTION_DISPATCHED';\nexport const ACTION_HANDLED = 'ACTION_HANDLED';\nexport const PROPAGATION_STOPPED = 'PROPAGATION_STOPPED';\nexport const DEFAULT_PREVENTED = 'DEFAULT_PREVENTED';\n\nexport const SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED =\n\t'SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED';\nexport const COMPONENT_INTERNAL_ACTION = 'NOW_COMPONENT_INTERNAL_ACTION';\n\nexport const HELPERS_IMMEDIATE = 'HELPERS_IMMEDIATE';\nexport const HELPERS_DEFER = 'HELPERS_DEFER';\nexport const HELPERS_SCHEDULED = 'HELPERS_SCHEDULED';\nexport const PACKAGE_NAME = '@servivcenow/ui-core';\n\nexport const SHADOW_ROOT_MODE_CLOSED = 'closed';\nexport const SHADOW_ROOT_MODE_OPEN = 'open';\n\nexport const COMPONENT_STATE_UPDATED = 'SEISMIC_COMPONENT_STATE_UPDATED';\n\n// Avoid re-render prop used to avoid component re-render if new & old states are same\nexport const NOW_AVOID_RENDER_PROP = 'nowAvoidRender';\n\nexport const ARIA_LIVE_REGION_UPDATE_REQUESTED = 'SEISMIC_ARIA_LIVE_REGION_UPDATE_REQUESTED';\nexport const ARIA_LIVE_POLITE = 'polite';\nexport const ARIA_LIVE_ASSERTIVE = 'assertive';\nexport const ARIA_LIVE_RELEVANT = 'aria-relevant';\nexport const ARIA_LIVE_TRIGGER_ADDITIONS = 'additions';\nexport const ARIA_LIVE_TRIGGER_REMOVALS = 'removals';\nexport const ARIA_LIVE_TRIGGER_TEXT = 'text';\nexport const ARIA_LIVE_TRIGGER_ALL = 'all';\n\nexport const SPAN_KIND_CLIENT = 3;\nexport const SPAN_FOR_RENDER = 'RENDER';\nexport const SPAN_FOR_ACTION_HANDLED = 'ACTION_HANDLE';\nexport const SPAN_FOR_DISPATCH = 'ACTION_DISPATCH';\nexport const SPAN_FOR_UPDATE_PROPERTIES = 'UPDATE_PROPERTIES';\nexport const SPAN_FOR_SET_PROPERTY = 'SET_PROPERTY';\nexport const SPAN_FOR_NOW_RESOLVE_PROPS_SET = 'NRP_SET_PROPERTY';\n\nexport const SPAN_FOR_UPDATE_STATE = 'UPDATE_STATE';\nexport const SPAN_FOR_UPDATE_CONTEXT = 'UPDATE_CONTEXT';\n\nexport const SPAN_FOR_COMPONENT_CONNECTED = 'CONNECTED';\nexport const SPAN_FOR_COMPONENT_DISCONNECTED = 'DISCONNECTED';\nexport const SPAN_FOR_COMPONENT_BOOTSTRAPPED = 'BOOTSTRAPPED';\nexport const SPAN_FOR_COMPONENT_RENDERED = 'RENDERED';\nexport const SPAN_FOR_COMPONENT_DOM_READY = 'DOM_READY';\nexport const SPAN_FOR_COMPONENT_PROPERTY_CHANGED = 'PROPERTY_CHANGED';\nexport const SPAN_FOR_COMPONENT_RENDER_REQUESTED = 'RENDER_REQUESTED';\nexport const SPAN_FOR_COMPONENT_DOM_TREE_READY = 'DOM_TREE_READY';\nexport const SPAN_FOR_COMPONENT_TREE_RENDERED = 'TREE_RENDERED';\nexport const SPAN_FOR_COMPONENT_ERROR_THROWN = 'ERROR_THROWN';\nexport const SPAN_LIFECYCLE_EVENTS = {\n\t[actionTypes.COMPONENT_CONNECTED]: SPAN_FOR_COMPONENT_CONNECTED,\n\t[actionTypes.COMPONENT_DISCONNECTED]: SPAN_FOR_COMPONENT_DISCONNECTED,\n\t[actionTypes.COMPONENT_BOOTSTRAPPED]: SPAN_FOR_COMPONENT_BOOTSTRAPPED,\n\t[actionTypes.COMPONENT_RENDERED]: SPAN_FOR_COMPONENT_RENDERED,\n\t[actionTypes.COMPONENT_DOM_READY]: SPAN_FOR_COMPONENT_DOM_READY,\n\t[actionTypes.COMPONENT_PROPERTY_CHANGED]: SPAN_FOR_COMPONENT_PROPERTY_CHANGED,\n\t[actionTypes.COMPONENT_RENDER_REQUESTED]: SPAN_FOR_COMPONENT_RENDER_REQUESTED,\n\t[actionTypes.COMPONENT_DOM_TREE_READY]: SPAN_FOR_COMPONENT_DOM_TREE_READY,\n\t[actionTypes.COMPONENT_TREE_RENDERED]: SPAN_FOR_COMPONENT_TREE_RENDERED,\n\t[actionTypes.COMPONENT_ERROR_THROWN]: SPAN_FOR_COMPONENT_ERROR_THROWN\n};\n\nexport const SPAN_ATTR_COMPONENT_CONNECTED = 'connected';\nexport const SPAN_ATTR_COMPONENT_SUSPENDED = 'suspended';\nexport const SPAN_ATTR_COMPONENT_DETACHED = 'detached';\nexport const SPAN_ATTR_COMPONENT_QUICK_EQUAL = 'equal';\nexport const SPAN_ATTR_COMPONENT_EQUAL = 'quick-equal';\nexport const SPAN_ATTR_COMPONENT_READONLY_COMPUTED = 'readonly-computed';\nexport const SPAN_ATTR_COMPONENT_INTERSECTED = 'intersected';\nexport const SPAN_ATTR_COMPONENT_RENDER_SKIPPED = 'renderSkipped';\nexport const SPAN_ATTR_COMPONENT_EVENT_DEFAULT_PREVENTED = 'defaultPrevented';\nexport const SPAN_ATTR_COMPONENT_EVENT_PROPAGATION_STOPPED = 'propagationStopped';\nexport const SPAN_ATTR_DISPATCH_ACTION_TYPE = 'actionType';\nexport const SPAN_ATTR_DISPATCH_ACTION_INTERNAL_TYPE = 'internalActionType';\nexport const SPAN_ATTR_DISPATCH_PAYLOAD = 'payload';\nexport const SPAN_ATTR_DISPATCH_SHOULD_DISPATCH = 'shouldDispatch';\nexport const SPAN_ATTR_DISPATCH_UNDEFINED = 'isActionUndefined';\nexport const SPAN_ATTR_DISPATCH_FLAG_HOST_DISPATCH = 'undocumentedHostDispatch';\nexport const SPAN_ATTR_UPDATE_PROPERTIES_SHOULD_UPDATE = 'shouldUpdate';\nexport const SPAN_ATTR_UPDATE_PROPERTIES_PROPNAME = 'propertyName';\nexport const SPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE = 'propertyValue';\nexport const SPAN_ATTR_UPDATE_PROPERTIES_PROP = 'property';\n\nexport const SPAN_ATTR_SET_PROPERTY_SKIPED = 'setSkipped';\nexport const SPAN_ATTR_UPDATE_CONTEXT_SHOULD_BATCH = 'shouldBatch';\n\nexport const SPAN_ATTR_RENDER_CAUSE = 'renderCause';\nexport const SPAN_ATTR_UPDATE_PAYLOAD = 'updatePayload';\nexport const SPAN_ATTR_DID_UPDATE = 'didUpdate';\nexport const SPAN_ATTR_SHOULD_RENDER = 'shouldRender';\n\nexport const SPAN_ATTR_TASK_SCHEDULED = 'taskScheduled';\nexport const SPAN_ATTR_TASK_STARTED = 'taskStarted';\nexport const SPAN_ATTR_TASK_DEDUPED = 'taskDeduped';\nexport const SPAN_ATTR_TASK_COMPLETED = 'taskCompleted';\n\nexport const SPAN_ATTR_CONDITIONAL = 'conditional';\nexport const SPAN_ATTR_SKIP_FOR_DETACHED_COMPONENT = 'skipForDetachedComponent';\nexport const SPAN_ATTR_STORE_UPDATE = 'storeUpdate';\n\nexport const SPAN_ATTR_KIND = 'kind';\nexport const SPAN_ATTR_LEVEL = 'seismic.level';\n\nexport const SPAN_LEVEL_FINE = 100;\nexport const SPAN_LEVEL_FINER = 50;\nexport const SPAN_LEVEL_FINEST = 10;\n\nexport const PACKAGE_JSON_VERSION = pkgJsonContent.version;\n","import {\n\tschedule,\n\ttypes,\n\tcountHighPriorityTasks,\n\tcountMediumPriorityTasks,\n\tcountAllHighPriorityTasks,\n\tcountAllMediumPriorityTasks\n} from './scheduler';\nimport log from './log';\nimport {\n\tgetHostPendingNetworkActionCount,\n\tgetPendingNetworkActionCount\n} from '@servicenow/ui-internal';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\n\nconst {\n\tWHEN_COMPONENT_IS_IDLE_TIMEOUT,\n\tWHEN_COMPONENT_IS_IDLE_THROTTLE,\n\tWHEN_COMPONENT_IS_IDLE_MIN_INTERVAL\n} = configConstants;\nconst timeout = getConfigItem(WHEN_COMPONENT_IS_IDLE_TIMEOUT);\nconst throttle = getConfigItem(WHEN_COMPONENT_IS_IDLE_THROTTLE);\nconst interval = getConfigItem(WHEN_COMPONENT_IS_IDLE_MIN_INTERVAL);\nconst {WHEN_COMPONENT_IS_IDLE, WHEN_ALL_COMPONENTS_IDLE} = types;\n\nconst check = el => {\n\treturn new Promise(resolve => {\n\t\tschedule({\n\t\t\tfn() {\n\t\t\t\tresolve(\n\t\t\t\t\tgetHostPendingNetworkActionCount(el) +\n\t\t\t\t\t\tcountHighPriorityTasks(el) +\n\t\t\t\t\t\tcountMediumPriorityTasks(el)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttype: WHEN_COMPONENT_IS_IDLE,\n\t\t\tmeta: {el, interactionId: 'componentIdleCheck'}\n\t\t});\n\t});\n};\n\nconst pause = () =>\n\tnew Promise(resolve => {\n\t\tsetTimeout(() => resolve(), throttle);\n\t});\n\nconst checkAll = () => {\n\treturn new Promise(resolve => {\n\t\tschedule({\n\t\t\tfn() {\n\t\t\t\tresolve(\n\t\t\t\t\tgetPendingNetworkActionCount() +\n\t\t\t\t\t\tcountAllMediumPriorityTasks() +\n\t\t\t\t\t\tcountAllHighPriorityTasks()\n\t\t\t\t);\n\t\t\t},\n\t\t\ttype: WHEN_ALL_COMPONENTS_IDLE,\n\t\t\tmeta: {el: {}, interactionId: 'allComponentsIdleCheck'}\n\t\t});\n\t});\n};\n\nexport function whenAllComponentsIdle(payload = {}) {\n\treturn new Promise(resolve => {\n\t\tschedule({\n\t\t\tasync fn() {\n\t\t\t\tlet busy = true;\n\t\t\t\tlet didPause = false;\n\t\t\t\tconst {withTimeOutInfo = false} = payload;\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tbusy = false;\n\t\t\t\t\tresolve(withTimeOutInfo ? {didPause, timedOut: true} : didPause);\n\t\t\t\t}, timeout);\n\n\t\t\t\twhile (busy) {\n\t\t\t\t\tbusy = await checkAll();\n\t\t\t\t\tif (busy) {\n\t\t\t\t\t\tdidPause = true;\n\t\t\t\t\t\tawait pause();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tresolve(withTimeOutInfo ? {didPause, timedOut: false} : didPause);\n\t\t\t},\n\t\t\ttype: WHEN_ALL_COMPONENTS_IDLE,\n\t\t\tmeta: {el: {}, interactionId: 'whenAllComponentsIdle'}\n\t\t});\n\t});\n}\n\nexport default function whenComponentIsIdle(el) {\n\treturn new Promise(resolve => {\n\t\tschedule({\n\t\t\tasync fn() {\n\t\t\t\tlet busy = true;\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tlog('whenComponentIsIdle timed out.', {\n\t\t\t\t\t\thost: el,\n\t\t\t\t\t\torigin: 'whenComponentIsIdle'\n\t\t\t\t\t});\n\t\t\t\t\tbusy = false;\n\t\t\t\t\tresolve(el);\n\t\t\t\t}, timeout);\n\n\t\t\t\twhile (busy) {\n\t\t\t\t\tconst start = Date.now();\n\t\t\t\t\tbusy = await check(el);\n\t\t\t\t\tconst end = Date.now();\n\t\t\t\t\t// throttle in case of network activity, i.e. something is pending, but component is otherwise idle\n\t\t\t\t\t// if not there will be numerous unnecessary checks while waiting for network request to complete\n\t\t\t\t\tif (busy && end - start < interval) await pause();\n\t\t\t\t}\n\n\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\tresolve(el);\n\t\t\t},\n\t\t\ttype: WHEN_COMPONENT_IS_IDLE,\n\t\t\tmeta: {el, interactionId: 'whenComponentIsIdle'}\n\t\t});\n\t});\n}\n","import {defer, requestIdleCallbackPollyfill, raf, isThrottled} from '@servicenow/ui-internal';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport {types as schedulerTypes} from '@servicenow/ui-metrics';\nimport Queue from './queue';\nimport metrics from './metrics';\nimport {\n\tSPAN_ATTR_TASK_COMPLETED,\n\tSPAN_ATTR_TASK_SCHEDULED,\n\tSPAN_ATTR_TASK_STARTED\n} from '../constants';\n\nconst {ENABLE_SCHEDULER_STATS, SCHEDULER_RAF_TIMEOUT} = configConstants;\nconst enableSchedulerStats = getConfigItem(ENABLE_SCHEDULER_STATS);\nconst COMPONENT_RENDER = 'COMPONENT_RENDER';\nconst STATE_SET = 'STATE_SET';\nconst ACTION_HANDLER = 'ACTION_HANDLER';\nconst LEGACY_LIFECYCLE_FN = 'LEGACY_LIFECYCLE_FN';\nconst IMMEDIATE = 'IMMEDIATE';\nconst DEFER_IDLE = 'DEFER_IDLE';\nconst REFLECT_PROPERTIES = 'REFLECT_PROPERTIES';\nconst DISPATCH = 'DISPATCH';\nconst CLEANUP = 'CLEANUP';\nconst PROPERTY_SET = 'PROPERTY_SET';\nconst DEFER_HELPER_EXECUTION = 'DEFER_HELPER_EXECUTION';\nconst WHEN_COMPONENT_IS_IDLE = 'WHEN_COMPONENT_IS_IDLE';\nconst WHEN_ALL_COMPONENTS_IDLE = 'WHEN_ALL_COMPONENTS_IDLE';\nconst constants = {\n\tCOMPONENT_RENDER,\n\tSTATE_SET,\n\tACTION_HANDLER,\n\tLEGACY_LIFECYCLE_FN,\n\tIMMEDIATE,\n\tDEFER_IDLE,\n\tREFLECT_PROPERTIES,\n\tDISPATCH,\n\tCLEANUP,\n\tPROPERTY_SET,\n\tDEFER_HELPER_EXECUTION,\n\tWHEN_COMPONENT_IS_IDLE,\n\tWHEN_ALL_COMPONENTS_IDLE\n};\n\nconst P0 = 'PRIORITY_0';\nconst P0_5 = 'PRIORITY_0_5';\nconst P1 = 'PRIORITY_1';\nconst P2 = 'PRIORITY_2';\nconst P3 = 'PRIORITY_3';\nconst p0_5Queue = new Queue(false, []);\nconst p1Queue = new Queue(true, [], whenQueueIsEmptyForElement);\nconst p2Queue = new Queue(false, [], whenQueueIsEmptyForElement);\nconst p3Queue = new Queue(true, [WHEN_COMPONENT_IS_IDLE, WHEN_ALL_COMPONENTS_IDLE]);\nconst queueEmptyForElCallbacks = [];\nlet stats = {};\n\nconst types = {\n\t[IMMEDIATE]: {priority: P0},\n\t[DEFER_HELPER_EXECUTION]: {priority: P0_5},\n\t[COMPONENT_RENDER]: {priority: P1},\n\t[STATE_SET]: {priority: P2},\n\t[PROPERTY_SET]: {priority: P2},\n\t[ACTION_HANDLER]: {priority: P2},\n\t[LEGACY_LIFECYCLE_FN]: {priority: P2},\n\t[DISPATCH]: {priority: P2},\n\t[DEFER_IDLE]: {priority: P3},\n\t[REFLECT_PROPERTIES]: {priority: P3},\n\t[WHEN_COMPONENT_IS_IDLE]: {priority: P3},\n\t[WHEN_ALL_COMPONENTS_IDLE]: {priority: P3}\n};\n\nconst idleTimeout = process.env.UNSAFE_SEISMIC_TASK_TIMEOUT ? 100 : -1;\n\nlet highPriorityPending = false;\nlet mediumPriorityPending = false;\nlet lowPriorityPending = false;\n\nconst getSchedulerStats = () =>\n\tObject.entries(stats)\n\t\t.sort(([priority1], [priority2]) => priority1.localeCompare(priority2))\n\t\t.map(\n\t\t\t([\n\t\t\t\tpriority,\n\t\t\t\t{\n\t\t\t\t\tmaxQueueDepth,\n\t\t\t\t\ttotalQueued,\n\t\t\t\t\ttotalQueueTime,\n\t\t\t\t\tmaxQueueTime,\n\t\t\t\t\ttotalExecutions,\n\t\t\t\t\ttotalExecutionTime,\n\t\t\t\t\tmaxExecutionTime\n\t\t\t\t}\n\t\t\t]) => ({\n\t\t\t\tpriority,\n\t\t\t\tinQueue: {\n\t\t\t\t\t[P0]: 0,\n\t\t\t\t\t[P0_5]: p0_5Queue.length,\n\t\t\t\t\t[P1]: p1Queue.length,\n\t\t\t\t\t[P2]: p2Queue.length,\n\t\t\t\t\t[P3]: p3Queue.length\n\t\t\t\t}[priority],\n\t\t\t\tmaxQueueDepth,\n\t\t\t\ttotalQueued,\n\t\t\t\taverageQueueTime: totalQueueTime / totalQueued,\n\t\t\t\tmaxQueueTime,\n\t\t\t\ttotalExecutions,\n\t\t\t\taverageExecutionTime: totalExecutionTime / totalExecutions,\n\t\t\t\tmaxExecutionTime\n\t\t\t})\n\t\t);\nconst resetSchedulerStats = () => {\n\tstats = {};\n};\nglobalThis.nowUiFramework = globalThis.nowUiFramework || {};\nglobalThis.nowUiFramework.__getSchedulerStats = getSchedulerStats;\nglobalThis.nowUiFramework.__resetSchedulerStats = resetSchedulerStats;\n\nconst getDefaultStats = () => ({\n\tmaxQueueDepth: 0,\n\ttotalQueued: 0,\n\ttotalQueueTime: 0,\n\tmaxQueueTime: 0,\n\ttotalExecutions: 0,\n\ttotalExecutionTime: 0,\n\tmaxExecutionTime: 0\n});\n\nconst trackTaskScheduled = (task, priority, queue) => {\n\tif (!enableSchedulerStats) return;\n\tstats[priority] = stats[priority] || getDefaultStats();\n\ttask.scheduled = performance.now();\n\tstats[priority].totalQueued++;\n\tconst queueSize = queue ? queue.length : 0;\n\tif (queueSize > stats[priority].maxQueueDepth) stats[priority].maxQueueDepth = queueSize;\n};\n\nconst trackTaskStart = (task, priority) => {\n\tif (!enableSchedulerStats) return;\n\tstats[priority] = stats[priority] || getDefaultStats();\n\ttask.started = performance.now();\n\tconst queueTime = task.started - task.scheduled;\n\tstats[priority].totalQueueTime += queueTime;\n\tif (queueTime > stats[priority].maxQueueTime) stats[priority].maxQueueTime = queueTime;\n};\n\nconst trackTaskCompleted = (task, priority) => {\n\tif (!enableSchedulerStats) return;\n\tstats[priority] = stats[priority] || getDefaultStats();\n\tconst executionTime = performance.now() - task.started;\n\tstats[priority].totalExecutionTime += executionTime;\n\tstats[priority].totalExecutions++;\n\tif (executionTime > stats[priority].maxExecutionTime)\n\t\tstats[priority].maxExecutionTime = executionTime;\n};\n\nfunction schedule(task) {\n\tconst {type, fn, meta = {}} = task;\n\tif (!fn) {\n\t\tconst error = new Error('a fn is required for scheduling a task');\n\t\tif (meta.span) {\n\t\t\tmeta.span.recordException(error);\n\t\t}\n\t\tthrow error;\n\t}\n\tif (!type) {\n\t\tconst error = new Error('a type is required for scheduling a task');\n\t\tif (meta.span) {\n\t\t\tmeta.span.recordException(error);\n\t\t}\n\t\tthrow error;\n\t}\n\n\tconst {\n\t\t[type]: {priority = P2}\n\t} = types;\n\n\tswitch (priority) {\n\t\tcase P0:\n\t\t\tmetrics(meta, schedulerTypes.SCHEDULE, type, 'P0', []);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_SCHEDULED, {type, priority: 'P0', queueSize: 0});\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_STARTED, {type, priority: 'P0', queueSize: 0});\n\t\t\t}\n\t\t\ttrackTaskScheduled(task, P0);\n\t\t\ttrackTaskStart(task, priority);\n\t\t\tfn(meta);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpriority: 'P0',\n\t\t\t\t\tqueueSize: 0\n\t\t\t\t});\n\t\t\t}\n\t\t\ttrackTaskCompleted(task, priority);\n\t\t\tbreak;\n\t\tcase P0_5:\n\t\t\tmetrics(meta, schedulerTypes.SCHEDULE, type, 'P0_5', p0_5Queue);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_SCHEDULED, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpriority: 'P0_5',\n\t\t\t\t\tqueueSize: p0_5Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\tp0_5Queue.push(task);\n\t\t\ttrackTaskScheduled(task, priority, p0_5Queue);\n\t\t\trunDeferredTask();\n\t\t\tbreak;\n\t\tcase P1:\n\t\t\tmetrics(meta, schedulerTypes.SCHEDULE, type, 'P1', p1Queue);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_SCHEDULED, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpriority: 'P1',\n\t\t\t\t\tqueueSize: p1Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\tp1Queue.push(task);\n\t\t\ttrackTaskScheduled(task, priority, p1Queue);\n\t\t\trunHighPriorityTasks();\n\t\t\tbreak;\n\t\tcase P2:\n\t\t\tmetrics(meta, schedulerTypes.SCHEDULE, type, 'P2', p2Queue);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_SCHEDULED, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpriority: 'P2',\n\t\t\t\t\tqueueSize: p2Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\tp2Queue.push(task);\n\t\t\ttrackTaskScheduled(task, priority, p2Queue);\n\t\t\trunMediumPriorityTasks();\n\t\t\tbreak;\n\t\tcase P3:\n\t\t\tmetrics(meta, schedulerTypes.SCHEDULE, type, 'P3', p3Queue);\n\t\t\tif (meta.span) {\n\t\t\t\tmeta.span.addEvent(SPAN_ATTR_TASK_SCHEDULED, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpriority: 'P3',\n\t\t\t\t\tqueueSize: p3Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\tp3Queue.push(task);\n\t\t\ttrackTaskScheduled(task, priority, p3Queue);\n\t\t\trunLowPriorityTasks();\n\t\t\tbreak;\n\t}\n}\n\nlet isRendering = false;\nconst requestAnimationFrameTimeout = getConfigItem(SCHEDULER_RAF_TIMEOUT);\n\nfunction runDeferredTask() {\n\tdefer(() => {\n\t\tconst task = p0_5Queue.shift();\n\t\tif (task) {\n\t\t\tmetrics(task.meta, schedulerTypes.EXECUTE, task.type, 'P0_5', p0_5Queue);\n\t\t\ttrackTaskStart(task, P0_5);\n\t\t\tif (task.meta.span) {\n\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\t\ttype: task.type,\n\t\t\t\t\tpriority: 'P0_5',\n\t\t\t\t\tqueueSize: p0_5Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\ttask.fn(task.meta);\n\t\t\tif (task.meta.span) {\n\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\t\ttype: task.type,\n\t\t\t\t\tpriority: 'P0_5',\n\t\t\t\t\tqueueSize: p0_5Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\ttrackTaskCompleted(task, P0_5);\n\t\t}\n\t}, 0);\n}\n\nfunction runHighPriorityTasks() {\n\tif (highPriorityPending) return;\n\n\thighPriorityPending = true;\n\tisRendering = true;\n\tconst requestAnimationFrameTimeoutId = defer(() => {\n\t\tflushIdleQueues();\n\t\tisRendering = false;\n\t}, requestAnimationFrameTimeout);\n\traf(() => {\n\t\tclearTimeout(requestAnimationFrameTimeoutId);\n\t\tlet task;\n\t\tconst start = Date.now();\n\t\twhile ((task = p1Queue.shift())) {\n\t\t\tmetrics(task.meta, schedulerTypes.EXECUTE, task.type, 'P1', p1Queue);\n\t\t\ttrackTaskStart(task, P1);\n\t\t\tif (task.meta.span) {\n\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\t\ttype: task.type,\n\t\t\t\t\tpriority: 'P1',\n\t\t\t\t\tqueueSize: p1Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\ttask.fn(task.meta);\n\t\t\tif (task.meta.span) {\n\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\t\ttype: task.type,\n\t\t\t\t\tpriority: 'P1',\n\t\t\t\t\tqueueSize: p1Queue.length\n\t\t\t\t});\n\t\t\t}\n\t\t\ttrackTaskCompleted(task, P1);\n\t\t\tif (Date.now() - start >= 100) break;\n\t\t}\n\n\t\tisRendering = false;\n\t\thighPriorityPending = false;\n\t\tif (p1Queue.length) runHighPriorityTasks();\n\n\t\tif (p2Queue.length) runMediumPriorityTasks();\n\n\t\tif (p3Queue.length) runLowPriorityTasks();\n\t});\n}\n\nfunction runMediumPriorityTasks() {\n\tif (mediumPriorityPending) return;\n\tif (isRendering) return;\n\n\tmediumPriorityPending = true;\n\trequestIdleCallbackPollyfill(\n\t\tdeadline => {\n\t\t\tmediumPriorityPending = false;\n\t\t\tlet task;\n\n\t\t\twhile (deadline.timeRemaining() > 1 && (task = p2Queue.shift())) {\n\t\t\t\tmetrics(task.meta, schedulerTypes.EXECUTE, task.type, 'P2', p2Queue);\n\t\t\t\ttrackTaskStart(task, P2);\n\t\t\t\tif (task.meta.span) {\n\t\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\t\t\ttype: task.type,\n\t\t\t\t\t\tpriority: 'P2',\n\t\t\t\t\t\tqueueSize: p2Queue.length\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttask.fn(task.meta);\n\t\t\t\tif (task.meta.span) {\n\t\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\t\t\ttype: task.type,\n\t\t\t\t\t\tpriority: 'P2',\n\t\t\t\t\t\tqueueSize: p2Queue.length\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttrackTaskCompleted(task, P2);\n\t\t\t}\n\n\t\t\tif (p2Queue.length) runMediumPriorityTasks();\n\n\t\t\tif (p3Queue.length) runLowPriorityTasks();\n\t\t},\n\t\t{timeout: idleTimeout}\n\t);\n}\n\nfunction runLowPriorityTasks() {\n\tif (mediumPriorityPending) return;\n\n\tif (lowPriorityPending) return;\n\n\tif (isRendering) return;\n\n\tlowPriorityPending = true;\n\trequestIdleCallbackPollyfill(\n\t\tdeadline => {\n\t\t\tlet task;\n\t\t\twhile (deadline.timeRemaining() > 1 && (task = p3Queue.shift())) {\n\t\t\t\tmetrics(task.meta, schedulerTypes.EXECUTE, task.type, 'P3', p3Queue);\n\t\t\t\ttrackTaskStart(task, P3);\n\t\t\t\tif (task.meta.span) {\n\t\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\t\t\ttype: task.type,\n\t\t\t\t\t\tpriority: 'P3',\n\t\t\t\t\t\tqueueSize: p3Queue.length\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttask.fn(task.meta);\n\t\t\t\tif (task.meta.span) {\n\t\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\t\t\ttype: task.type,\n\t\t\t\t\t\tpriority: 'P3',\n\t\t\t\t\t\tqueueSize: p3Queue.length\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\ttrackTaskCompleted(task, P3);\n\t\t\t}\n\n\t\t\tlowPriorityPending = false;\n\t\t\tif (p3Queue.length) runLowPriorityTasks();\n\t\t},\n\t\t{timeout: idleTimeout}\n\t);\n}\n\nfunction flushIdleQueues() {\n\tlet task;\n\twhile ((task = p0_5Queue.shift())) {\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P0_5',\n\t\t\t\tqueueSize: p0_5Queue.length\n\t\t\t});\n\t\t}\n\t\ttask.fn(task.meta);\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P0_5',\n\t\t\t\tqueueSize: p0_5Queue.length\n\t\t\t});\n\t\t}\n\t}\n\twhile ((task = p1Queue.shift())) {\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P1',\n\t\t\t\tqueueSize: p1Queue.length\n\t\t\t});\n\t\t}\n\t\ttask.fn(task.meta);\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P1',\n\t\t\t\tqueueSize: p1Queue.length\n\t\t\t});\n\t\t}\n\t}\n\thighPriorityPending = false;\n\twhile ((task = p2Queue.shift())) {\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P2',\n\t\t\t\tqueueSize: p2Queue.length\n\t\t\t});\n\t\t}\n\t\ttask.fn(task.meta);\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P2',\n\t\t\t\tqueueSize: p2Queue.length\n\t\t\t});\n\t\t}\n\t}\n\twhile ((task = p3Queue.shift())) {\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_STARTED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P3',\n\t\t\t\tqueueSize: p3Queue.length\n\t\t\t});\n\t\t}\n\t\ttask.fn(task.meta);\n\t\tif (task.meta.span) {\n\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_COMPLETED, {\n\t\t\t\ttype: task.type,\n\t\t\t\tpriority: 'P3',\n\t\t\t\tqueueSize: p3Queue.length\n\t\t\t});\n\t\t}\n\t}\n}\n\nfunction isQueueFlushEnabled() {\n\treturn (\n\t\tprocess.env.UNSAFE_SEISMIC_EMIT_CUSTOM_EVENT || window.nowUiFramework.queueFlushEnabled === true\n\t);\n}\n\nlet flushing = false;\n// eslint-disable-next-line no-inner-declarations\nfunction flushQueues() {\n\tflushing = true;\n\tlet task;\n\n\twhile ((task = p0_5Queue.shift())) task.fn(task.meta);\n\twhile ((task = p1Queue.shift())) task.fn(task.meta);\n\twhile ((task = p2Queue.shift())) task.fn(task.meta);\n\twhile ((task = p3Queue.shift())) task.fn(task.meta);\n\n\tdefer(() => {\n\t\tif (p0_5Queue.length || p1Queue.length || p2Queue.length || p3Queue.length)\n\t\t\treturn flushQueues();\n\n\t\tflushing = false;\n\t\tconst event = new CustomEvent('SEISMIC_QUEUE_FLUSHED', {composed: true, bubbles: true});\n\t\treturn document.dispatchEvent(event);\n\t}, 0);\n}\n\ndocument.addEventListener('FLUSH_SEISMIC_QUEUE', () => {\n\tif (!flushing && isQueueFlushEnabled()) flushQueues();\n});\n\ndocument.addEventListener(\n\t'visibilitychange',\n\t() => {\n\t\tif (isThrottled()) flushIdleQueues();\n\t},\n\tfalse\n);\n\nfunction countHighPriorityTasks(element) {\n\treturn p1Queue.sizeForElement(element);\n}\n\nfunction countAllHighPriorityTasks() {\n\treturn p1Queue.length;\n}\n\nfunction countAllMediumPriorityTasks() {\n\treturn p2Queue.length;\n}\n\nfunction countMediumPriorityTasks(element) {\n\treturn p2Queue.sizeForElement(element);\n}\n\nfunction addQueueEmptyForElCb(fn) {\n\tqueueEmptyForElCallbacks.push(fn);\n}\n\nfunction whenQueueIsEmptyForElement(el) {\n\tconst len = queueEmptyForElCallbacks.length;\n\tfor (let i = 0; i < len; i++) queueEmptyForElCallbacks[i](el);\n}\n\nexport {\n\tschedule,\n\tconstants as types,\n\tcountHighPriorityTasks,\n\tcountMediumPriorityTasks,\n\taddQueueEmptyForElCb,\n\tcountAllHighPriorityTasks,\n\tcountAllMediumPriorityTasks,\n\tgetSchedulerStats,\n\tresetSchedulerStats\n};\n","import {SPAN_ATTR_TASK_DEDUPED} from '../constants';\n\n/**\n * Maintains task insert order but (when dedupe==true) will skip earlier tasks\n * if there's another task for the same element enqueued later\n */\nexport default class Queue {\n\tconstructor(dedupe, doNotDedup = [], whenQueueIsEmptyForElementCb) {\n\t\tthis._els = new WeakMap();\n\t\tthis._tasks = [];\n\t\tthis._dedupe = dedupe;\n\t\tthis._doNotDedup = doNotDedup;\n\t\tthis._whenQueueIsEmptyForElementCb = whenQueueIsEmptyForElementCb;\n\t}\n\n\tpush(task) {\n\t\tconst {el} = task.meta;\n\t\tthis._els.set(el, this.sizeForElement(el) + 1);\n\t\tthis._tasks.push(task);\n\t}\n\n\t// this value may be a little misleading because it doesn't account for\n\t// possible task duplicates\n\tget length() {\n\t\treturn this._tasks.length;\n\t}\n\n\tsizeForElement(el) {\n\t\treturn this._els.get(el) || 0;\n\t}\n\n\tshift() {\n\t\twhile (this._tasks.length) {\n\t\t\tconst task = this._tasks.shift();\n\t\t\tconst {el} = task.meta;\n\t\t\tconst existingCount = this._els.get(el);\n\t\t\tif (existingCount === 1) {\n\t\t\t\tthis._els.delete(el);\n\t\t\t\tif (this._whenQueueIsEmptyForElementCb) this._whenQueueIsEmptyForElementCb(el);\n\t\t\t} else {\n\t\t\t\tthis._els.set(el, existingCount - 1);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\texistingCount === 1 ||\n\t\t\t\t!this._dedupe ||\n\t\t\t\tthis._doNotDedup.indexOf(task.type) !== -1 ||\n\t\t\t\t!el.isConnected\n\t\t\t)\n\t\t\t\treturn task;\n\t\t\telse {\n\t\t\t\tif (task.meta?.span) {\n\t\t\t\t\ttask.meta.span.addEvent(SPAN_ATTR_TASK_DEDUPED, {\n\t\t\t\t\t\ttype: task.type,\n\t\t\t\t\t\tqueueSize: this._tasks.length\n\t\t\t\t\t});\n\t\t\t\t\ttask.meta.span.end();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n","import {mark} from '@servicenow/ui-metrics';\n\nexport default function metrics(meta, type, taskType, priority, queue) {\n\tconst {interactionId, el} = meta;\n\tmark(el, interactionId, type, {type: taskType, priority, queueLength: queue.length});\n}\n","import {createLogger} from '@servicenow/ui-internal';\n\nexport default createLogger({\n\tmodule: '@servicenow/ui-core'\n});\n","import {set as setStat} from './stats';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport createElementClass from './createElementClass';\nimport log from './log';\nimport validateConfig, {validatePresentationalConfig} from './validateConfig';\nconst {CHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS, POSSIBLE_PRESENTATIONAL_COMPONENTS} =\n\tconfigConstants;\nconst checkForPossiblePresentationalComponents = getConfigItem(\n\tCHECK_FOR_POSSIBLE_PRESENTATIONAL_COMPONENTS\n);\nconst possiblePresentationalComponents = getConfigItem(POSSIBLE_PRESENTATIONAL_COMPONENTS);\n\n/**\n * Define a custom element.\n * @function createCustomElement\n * @example\n * import {createCustomElement} from '@servicenow/ui-core';\n *\n * createCustomElement('sn-hello-world', {\n *   properties: {\n *     name: {\n *       default: 'Fred'\n *     }\n *   },\n *   transformState: ({properties}) => properties,\n *   view: ({name}) => <p>Hello {name}!<\/p>\n * });\n * @param {string} elementName - The tag name of the custom element.\n * @param {Object} config - The custom element configuration.\n * @param {function} [config.setInitialState] - Function that returns the initial state for a component.\n * @param {Object} [config.properties] - The properties used by a custom element.\n * @param {*} [config.properties.&lt;name&gt;.default] - The default value of the property.\n * @param {function} [config.properties.&lt;name&gt;.computed] - A function that computes the property value.\n * @param {boolean} [config.properties.&lt;name&gt;.reflect] - Reflect property change to corresponding attribute. This value is `false` by default, but for a limited, finite subset of keys that overlap with HTML Attribute keys, it is `true` and cannot be set to `false`.\n * @param {boolean} [config.properties.&lt;name&gt;.unstableParse] - Deprecated, use Type Schemas instead. Parse attribute values when corresponding properties are set. This value is `false` by default.\n * @param {boolean} [config.properties.&lt;name&gt;.unstablePreserveEmptyStr] - Deprecated, use Type Schemas instead. Preserve an empty string when attribute, property is present instead of converting the value to a boolean.\n * @param {boolean} [config.properties.&lt;name&gt;.readOnly] - Property cannot be externally set. This value is `false` by default.\n * @param {boolean} [config.properties.&lt;name&gt;.schema] - Schema that will validate the passed in value of the property during development. This value is `null` by default.\n * @param {boolean} [config.properties.&lt;name&gt;.selectable] - A selectable property can be selected or pointed by other component and map to its local property.\n * @param {boolean} [config.properties.&lt;name&gt;.shouldRenderWhenSet] - Property value change should trigger component render. This value is `true` by default.\n * @param {Object} [config.actions] - The actions the custom element dispatches.\n * @param {boolean} [config.actions.&lt;type&gt;.schema] - Schema that will validate if the payload of the action dispatched from this element is correct.\n * @param {Object} [config.actionHandlers] - Handlers to run when the action type is dispatched.\n * @param {function} [config.actionHandlers.&lt;type&gt;] - The action handler as an effect function or config object.\n * @param {function} [config.view] - A function that renders transformed component state and properties to virtual DOM.\n * @param {function} [config.transformState] - A function that executes before a component's state is passed to the view.\n * @param {Array} [config.behaviors] - Behaviors applied to the custom element.\n * @param {Object} [config.shadowRootOptions] - Options applied to the shadowRoot of a custom element.\n * @param {String} [config.shadowRootOptions.mode] - Mode of the shadowRoot.  Allowed values are `open` and `closed`.  When `closed` access is denied to `shadowRoot` from the element.  This value is `open` by default.\n */\nexport default function createCustomElementFactory(options) {\n\tconst {componentRegistry, presentational = false} = options;\n\n\treturn function createCustomElement(name, config = {}) {\n\t\tif (customElements.get(name))\n\t\t\treturn log(`The custom element, ${name}, has already been defined.`);\n\n\t\tif (presentational) {\n\t\t\tvalidatePresentationalConfig(name, config);\n\t\t} else {\n\t\t\tif (\n\t\t\t\tcheckForPossiblePresentationalComponents &&\n\t\t\t\tvalidatePresentationalConfig(name, config, {shouldLog: false})\n\t\t\t)\n\t\t\t\tpossiblePresentationalComponents.push(name);\n\n\t\t\tvalidateConfig(name, config);\n\t\t}\n\n\t\tcustomElements.define(\n\t\t\tname,\n\t\t\tcreateElementClass({\n\t\t\t\tpresentational,\n\t\t\t\t...config,\n\t\t\t\tname,\n\t\t\t\tcomponentRegistry\n\t\t\t})\n\t\t);\n\n\t\tsetStat('defined', name.toLowerCase());\n\t};\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {set as setStat} from './stats';\nimport {\n\tcreateInteractionId,\n\tmark,\n\ttypes as metrics,\n\tsetInteractionId\n} from '@servicenow/ui-metrics';\nimport {buildPropertiesValidator} from './utils/schema';\nimport {\n\tsandbox,\n\tlocations,\n\tguid,\n\tpendingNetworkActionCountForHost,\n\tclearPendingNetworkActionsForHost,\n\taddPendingNetworkActionForHostCb,\n\tisEqual,\n\tisEmpty,\n\tNOW_SKIP_RENDER_UNTIL_PRESENT,\n\tRESOLVED_PROPS_ATTRIBUTE,\n\tget,\n\tNOW_DEFER_HYDRATION_ATTR\n} from '@servicenow/ui-internal';\nimport {normalizeConfig} from './utils/config';\nimport {\n\tCOMPONENT_ID_ATTRIBUTE,\n\tDEFER_ATTRIBUTE,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_RENDERED as COMPONENT_RENDERED_ACTION_TYPE,\n\tNOW_MODE_PROP,\n\tNOW_ENABLE_PROPERTY_SETTING_PREVENTION_PROP,\n\tCOMPONENT_MODE_SUSPEND,\n\tCOMPONENT_MODE_DETACH,\n\tNOW_ID_ATTR,\n\tCOMPONENT_DOM_READY,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tHELPERS_SCHEDULED as HELPERS_SCHEDULED_CONST,\n\tHELPERS_DEFER as HELPERS_DEFER_CONST,\n\tHELPERS_IMMEDIATE as HELPERS_IMMEDIATE_CONST,\n\tSTATE_UPDATED,\n\tCOMPONENT_INTERNAL_ACTION,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED,\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_TREE_RENDERED,\n\tSHADOW_ROOT_MODE_CLOSED,\n\tNOW_PLACEHOLDER_HEIGHT_PROP,\n\tNOW_PLACEHOLDER_WIDTH_PROP,\n\tNOW_HOIST_PROP,\n\tHOIST_ATTR,\n\tNOW_PRIORITY_PROP,\n\tNOW_PRIORITY_ATTR,\n\tPRIORITY_LEVEL_LOW,\n\tSPAN_FOR_RENDER,\n\tSPAN_FOR_SET_PROPERTY,\n\tSPAN_KIND_CLIENT,\n\tSPAN_ATTR_COMPONENT_CONNECTED,\n\tSPAN_ATTR_COMPONENT_DETACHED,\n\tSPAN_ATTR_COMPONENT_INTERSECTED,\n\tSPAN_ATTR_COMPONENT_EVENT_DEFAULT_PREVENTED,\n\tSPAN_ATTR_COMPONENT_RENDER_SKIPPED,\n\tSPAN_ATTR_COMPONENT_SUSPENDED,\n\tSPAN_ATTR_SET_PROPERTY_SKIPED,\n\tSPAN_ATTR_UPDATE_PROPERTIES_PROPNAME,\n\tSPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE,\n\tSPAN_ATTR_RENDER_CAUSE,\n\tPACKAGE_JSON_VERSION,\n\tSPAN_ATTR_COMPONENT_QUICK_EQUAL,\n\tSPAN_ATTR_COMPONENT_EQUAL,\n\tSPAN_ATTR_COMPONENT_READONLY_COMPUTED,\n\tNOW_NESTED_SELECTABLE_PROPS,\n\tSPAN_FOR_NOW_RESOLVE_PROPS_SET\n} from './constants';\nimport {\n\tPRESENTATIONAL,\n\tVARIABLES,\n\tCOMPONENT_ID,\n\tCONNECTED,\n\tPROPERTY_DEFS,\n\tSTATE,\n\tPROPS,\n\tDISPATCH,\n\tCONDITIONAL_DISPATCH,\n\tBOOTSTRAPPED_HANDLED,\n\tCONNECTED_HANDLED,\n\tUNHOIST,\n\tHOIST_CHANGED,\n\tHOIST_PARENT_CHANGED,\n\tGET_RESOLVED_PROPERTY,\n\tROOT_NODE,\n\tVERSION,\n\tATTACHED_ROOT_NODE,\n\tDEFERRED,\n\tCONFIG,\n\tACTION_HANDLERS,\n\tTARGETED_ACTION_TYPES,\n\tRENDERED_ONCE,\n\tTREE_RENDERED_ONCE,\n\tHELPERS_SCHEDULED,\n\tHELPERS_DEFER,\n\tHELPERS_IMMEDIATE,\n\tRENDER,\n\tSTYLE_PROXY,\n\tSET_PROPERTY,\n\tPREVIOUS_RENDER_STATE,\n\tPREVIOUS_RENDER_PROPERTIES,\n\tPREVIOUS_TREE_RENDER_STATE,\n\tPREVIOUS_TREE_RENDER_PROPERTIES,\n\tCHECK_IF_TREE_RENDERED,\n\tCHILD_IS_RENDERING,\n\tCHILDREN_TO_BE_RENDERED,\n\tCHILD_HAS_RENDERED,\n\tNOTIFY_PARENT_THAT_CHILD_IS_RENDERING,\n\tNOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED,\n\tNEEDS_TO_KNOW_ABOUT_TREE_RENDERS,\n\tANCESTOR_ROOT_NODE,\n\tANCESTOR_PATH,\n\tUPDATE_AFFECTED_COMPONENTS,\n\tRUNTIME_ACTION_HANDLERS,\n\tINTERSECTED,\n\tUSING_INTERSECTION_OBSERVER,\n\tINTERSECTION_TRIGGERED,\n\tREMOVE_INTERSECTED_STYLES,\n\tDETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT,\n\tDETACHED_COMPONENT_PROPERTY_MAP,\n\tLOW_PRIORITY_PENDING,\n\tCONNECTED_TIMESTAMP,\n\tCHILDREN_TO_BE_INTERACTIVE,\n\tSELECTABLE_PROPERTIES,\n\tTREE_RENDERED_ONCE_TIMESTAMP,\n\tRENDERED_ONCE_TIMESTAMP,\n\tCONNECTED_DEFERRED_TIMESTAMP,\n\tCONTEXT,\n\tPROPERTIES_WITH_SELECTOR,\n\tREMOVE_UPDATE_CUSTOM_ELEMENT_OBSERVER,\n\tEXISTING_SHADOW_ROOT_ON_CREATE,\n\tPROPERTIES_WITH_NESTED_SELECTOR,\n\tHAS_NOW_RESOLVED_PROPS\n} from './symbols';\nimport {\n\tresolveRenderer,\n\tassertValidPropertyNames,\n\tresolveProperties,\n\tgetInitialPropertyValue,\n\tisReflecting,\n\tclearReflection,\n\tfilterPropertyDefinitions,\n\tshouldSetAttribute,\n\tshouldSetProperty,\n\ttoPropertyName,\n\ttoAttributeName,\n\tcreateLifecycleFunctions,\n\tmeasure,\n\tselectablePropertyResolver,\n\ttriggerComponentUpdates,\n\tupdateSelectedPropertyMappings,\n\tcamelCaseProperties,\n\tunescapeReservedCharacters,\n\tisHoisted,\n\tgetHoistTarget,\n\temitNowUiEvent,\n\tgetHostVariables,\n\tgetRootNode,\n\tapplyMetrics,\n\tresolveComputedProperties,\n\tcomputeProperties,\n\tintersectionObserver,\n\tapplyIntersectStyles,\n\tshouldOptOutOfDeepCompareForPage,\n\tmarkComponentInteractive,\n\tcreateOnStateChangeArgs,\n\tremoveStyleFragmentFromCache,\n\tsetUpdateConfigResolver,\n\taddUpdateCustomElementObserver,\n\tgetSpanOptions,\n\tresolveParentTraceId\n} from './utils';\n\nimport createContextProxy from './context/createContextProxy';\nimport {removeConsumer as removeContextConsumer} from './context/consumers';\nimport validateContext from './context/validateContext';\nimport {property as parseProperty, properties as parseProperties, parse} from './utils/parse';\nimport log from './log';\nimport {\n\tcreateDispatcher,\n\tcreateConditionalDispatch,\n\taddActionHandlers,\n\tremoveActionHandlers\n} from './actions';\nimport createHelpers from './utils/helpers';\nimport {shouldHoistAttribute, hoistAttribute, unhoistAttribute, default as hoist} from './hoist';\nimport applyStyles from './applyStyles';\nimport removeStyles from './removeStyles';\nimport {\n\tschedule,\n\ttypes,\n\tcountHighPriorityTasks,\n\tcountMediumPriorityTasks,\n\taddQueueEmptyForElCb\n} from './scheduler';\nimport {default as shapeRenderData, reflectProperty} from './shape-render-data';\nimport {\n\tgetAffected,\n\tresolveSelectedProperty,\n\tresolveSelectedProperties,\n\tremoveMappings,\n\tgetComponentAffected,\n\tremoveResolvedMapping,\n\tgetPartsForNestedSelectableProps,\n\tupdatePropertiesWithSelector,\n\tapplyUpdatesForSelectableProps\n} from './property-selectors';\nimport {mergeBehaviorProperties} from './utils/config/mergeBehaviorProperties';\nimport {normalizeBehaviors} from './utils/config/normalizeBehaviors';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport quickEquals from './utils/helpers/quickEquals';\nimport addResolvedSelectedPropertyMappingWithResolvedValue from './utils/addResolvedSelectedPropertyMappingWithResolvedValue';\nimport {getActiveSpan} from './utils/activeSpan';\n\nimport {\n\tconnectNowResolvedPropsCallbacks,\n\tdisconnectNowResolvedPropsCallbacks,\n\tprocessNowResolvedProps\n} from './utils/nowResolvedPropsHandler';\n\nconst {isValidTraceId, trace} = uiAnalyticsConsumer;\nconst {ENABLE_SCHEDULER_QUEUE_COUNTS, METRICS_COMPONENT_INTERACTIVE_ENABLED} = configConstants;\nconst enableSchedulerQueueCounts = getConfigItem(ENABLE_SCHEDULER_QUEUE_COUNTS);\nconst {COMPONENT_RENDER, DEFER_IDLE} = types;\nconst {ENABLE_PROPERTY_DEEP_COMPARE} = configConstants;\n\nconst enableDeepPropertyCompare = getConfigItem(ENABLE_PROPERTY_DEEP_COMPARE);\nlet optOutDeepCompare = shouldOptOutOfDeepCompareForPage('property');\nwindow.addEventListener(\n\t'popstate',\n\t() => (optOutDeepCompare = shouldOptOutOfDeepCompareForPage('property'))\n);\n\nconst shouldMarkInteractive = getConfigItem(METRICS_COMPONENT_INTERACTIVE_ENABLED);\nconst idleCallback = shouldMarkInteractive\n\t? el => markComponentInteractive(el, componentRegistryForInteractive)\n\t: () => null;\nlet componentRegistryForInteractive;\naddPendingNetworkActionForHostCb(idleCallback);\naddQueueEmptyForElCb(idleCallback);\n\nfunction clearRootNode(host, rootNode, onStateChange) {\n\tsandbox(onStateChange, {\n\t\targs: [rootNode, () => null, {}, host[HELPERS_DEFER]],\n\t\thost,\n\t\tdetails: {\n\t\t\ttype: 'onStateChange'\n\t\t},\n\t\tlocation: locations.RENDERER,\n\t\tdispatch: host[DISPATCH],\n\t\tlog\n\t});\n}\n\nfunction getResolvedState(hostVariables, componentRegistry) {\n\treturn {\n\t\t...hostVariables[STATE],\n\t\tproperties: resolveSelectedProperties(\n\t\t\tcomponentRegistry,\n\t\t\tselectablePropertyResolver,\n\t\t\t{...hostVariables[PROPS]},\n\t\t\thostVariables[PROPERTY_DEFS],\n\t\t\thostVariables[PROPERTIES_WITH_SELECTOR]\n\t\t)\n\t};\n}\n\nexport default function createElementClass(config) {\n\tconst {componentRegistry, presentational, state: initialState, name: tagName} = config;\n\tconst renderer = resolveRenderer(config);\n\tconst {\n\t\ttype: {\n\t\t\tonStateChange,\n\t\t\tonConnect: rendererOnConnect,\n\t\t\tonDisconnect: rendererOnDisconnect,\n\t\t\tdeprioritizeStyles = false // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttransformState = props => props,\n\t\tcoeffects: useCoeffectsLikeObjectInView,\n\t\tview\n\t} = renderer;\n\n\tlet initialized = false;\n\tlet normalizedConfig;\n\tlet onConnect;\n\tlet onDisconnect;\n\tlet combinedPropertyDefs;\n\tlet shadowRootOptions;\n\tlet validateProperties;\n\tlet propertyKeys;\n\tlet rendererView;\n\tconst selectabledProperties = [];\n\tcomponentRegistryForInteractive = componentRegistryForInteractive || componentRegistry;\n\n\tfunction initialize() {\n\t\tif (initialized) return;\n\n\t\tinitialized = true;\n\t\tnormalizedConfig = normalizeConfig(config);\n\t\tconst lifecycleFns = createLifecycleFunctions(\n\t\t\trendererOnConnect,\n\t\t\trendererOnDisconnect,\n\t\t\tdeprioritizeStyles\n\t\t);\n\t\tonConnect = lifecycleFns.onConnect;\n\t\tonDisconnect = lifecycleFns.onDisconnect;\n\n\t\tcombinedPropertyDefs = normalizedConfig.properties;\n\t\tshadowRootOptions = normalizedConfig.shadowRootOptions;\n\n\t\tvalidateProperties = buildPropertiesValidator(combinedPropertyDefs);\n\t\tpropertyKeys = Object.keys(combinedPropertyDefs);\n\n\t\trendererView = view;\n\n\t\tfor (const k in combinedPropertyDefs) {\n\t\t\tif (combinedPropertyDefs[k].selectable) selectabledProperties.push(k);\n\t\t}\n\n\t\tconst {length: propertyKeysCount} = propertyKeys;\n\t\tfor (let i = 0; i < propertyKeysCount; i++) {\n\t\t\tconst name = propertyKeys[i];\n\t\t\taccessors[name] = {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.getProperty(name);\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tthis[SET_PROPERTY](name, value);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tObject.defineProperties(SeismicElement.prototype, accessors);\n\n\t\tassertValidPropertyNames(propertyKeys);\n\t}\n\n\tsetUpdateConfigResolver(tagName, (update, updateMeta) => {\n\t\tconst {comparison = {}} = updateMeta;\n\t\tconst modifiedConfig = {};\n\t\tfor (const configKey in update) {\n\t\t\tif (configKey in comparison) {\n\t\t\t\tif (comparison[configKey]) {\n\t\t\t\t\tmodifiedConfig[configKey] = update[configKey];\n\t\t\t\t}\n\t\t\t} else if (update[configKey] !== config[configKey]) {\n\t\t\t\tmodifiedConfig[configKey] = update[configKey];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\tsupportedConfigKeys: presentational\n\t\t\t\t? ['styles', 'view']\n\t\t\t\t: ['styles', 'view', 'actionHandlers'],\n\t\t\tmodifiedConfig\n\t\t};\n\t});\n\taddUpdateCustomElementObserver(tagName, update => {\n\t\tif (update.styles) {\n\t\t\tconfig.styles = update.styles;\n\t\t\tremoveStyleFragmentFromCache(tagName);\n\t\t}\n\t\tif (update.actionHandlers) {\n\t\t\tconfig.actionHandlers = update.actionHandlers;\n\t\t\tnormalizedConfig = normalizeConfig(config);\n\t\t}\n\t\tif (update.view) {\n\t\t\tconfig.view = update.view;\n\t\t\trendererView = update.view;\n\t\t}\n\t});\n\n\tclass SeismicElement extends HTMLElement {\n\t\tconstructor() {\n\t\t\tsuper();\n\n\t\t\tinitialize();\n\n\t\t\tconst variables = {};\n\t\t\tthis[VARIABLES] = variables;\n\n\t\t\tvariables[SELECTABLE_PROPERTIES] = selectabledProperties;\n\t\t\tvariables[PROPERTIES_WITH_SELECTOR] = {};\n\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR] = {};\n\t\t\tvariables[PRESENTATIONAL] = presentational;\n\t\t\tvariables[PROPS] = {};\n\t\t\tvariables[CHILDREN_TO_BE_INTERACTIVE] = {};\n\t\t\tvariables[INTERSECTED] = true;\n\t\t\tvariables[CONFIG] = normalizedConfig;\n\t\t\tvariables[PROPERTY_DEFS] = combinedPropertyDefs;\n\t\t\tvariables[ANCESTOR_PATH] = [];\n\t\t\tif (!presentational) {\n\t\t\t\tvariables[TARGETED_ACTION_TYPES] = [];\n\t\t\t\tvariables[PREVIOUS_RENDER_STATE] = {};\n\t\t\t\tvariables[PREVIOUS_RENDER_PROPERTIES] = {};\n\t\t\t\tvariables[PREVIOUS_TREE_RENDER_STATE] = {};\n\t\t\t\tvariables[PREVIOUS_TREE_RENDER_PROPERTIES] = {};\n\t\t\t\tvariables[RENDERED_ONCE] = false;\n\t\t\t\tvariables[TREE_RENDERED_ONCE] = false;\n\t\t\t\tvariables[ACTION_HANDLERS] = [];\n\t\t\t\tvariables[RUNTIME_ACTION_HANDLERS] = [];\n\t\t\t}\n\n\t\t\tvariables[VERSION] = PACKAGE_JSON_VERSION; // For CSS externalization. TODO Revisit this logic\n\t\t\t// variables[EXISTING_SHADOW_ROOT_ON_CREATE] === true means the component has been server-side rendered\n\t\t\tvariables[EXISTING_SHADOW_ROOT_ON_CREATE] = this.shadowRoot !== null;\n\t\t\t// reuse the declared shadow root instead of creating a new shadow root if the component has been server-side rendered\n\t\t\tconst shadowRoot = this.shadowRoot || this.attachShadow(shadowRootOptions);\n\t\t\tvariables[ROOT_NODE] = shadowRoot;\n\t\t\tvariables[ATTACHED_ROOT_NODE] = shadowRoot;\n\t\t\tthis.upgradeProperties();\n\n\t\t\t// ui-metrics checks this to know if marks for this component are valid.\n\t\t\t// Components that are not bootstrapped don't have enough data to emit\n\t\t\t// a valid mark\n\t\t\tthis.__DO_NOT_USE_BOOTSTRAPPED__ = false;\n\n\t\t\tvariables[STYLE_PROXY] = new Proxy(super.style, {\n\t\t\t\tset: (style, key, value) => {\n\t\t\t\t\tstyle[key] = value; // eslint-disable-line no-param-reassign\n\t\t\t\t\tif (this.__DO_NOT_USE_BOOTSTRAPPED__ && isHoisted(this))\n\t\t\t\t\t\tgetHoistTarget(variables).style[key] = value;\n\n\t\t\t\t\treturn true;\n\t\t\t\t},\n\t\t\t\tget(style, key) {\n\t\t\t\t\tif (typeof style[key] === 'function') return style[key].bind(style);\n\n\t\t\t\t\treturn style[key];\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsetStat('constructed', this.tagName.toLowerCase());\n\t\t}\n\n\t\tget [CONFIG]() {\n\t\t\treturn normalizedConfig;\n\t\t}\n\n\t\tget [PROPERTY_DEFS]() {\n\t\t\treturn combinedPropertyDefs;\n\t\t}\n\n\t\tget version() {\n\t\t\treturn PACKAGE_JSON_VERSION;\n\t\t}\n\n\t\tstatic get observedAttributes() {\n\t\t\tconst pKeys = Object.keys(\n\t\t\t\tmergeBehaviorProperties(\n\t\t\t\t\tnormalizeBehaviors(config.behaviors || [], tagName),\n\t\t\t\t\tconfig.properties || {},\n\t\t\t\t\ttagName\n\t\t\t\t)\n\t\t\t);\n\t\t\treturn pKeys.map(toAttributeName);\n\t\t}\n\n\t\tupgradeProperties() {\n\t\t\tconst rawResolvedProps = sandbox(parse, {\n\t\t\t\targs: [\n\t\t\t\t\tthis.getAttribute(RESOLVED_PROPS_ATTRIBUTE),\n\t\t\t\t\t'object',\n\t\t\t\t\tRESOLVED_PROPS_ATTRIBUTE,\n\t\t\t\t\tthis.tagName\n\t\t\t\t],\n\t\t\t\thost: this,\n\t\t\t\tdispatch: () => {},\n\t\t\t\tlocation: locations.PROPERTY,\n\t\t\t\tdetails: {parse: true, name: RESOLVED_PROPS_ATTRIBUTE},\n\t\t\t\tlog\n\t\t\t});\n\n\t\t\tconst shouldProcess = rawResolvedProps && typeof rawResolvedProps === 'object';\n\t\t\tthis[VARIABLES][HAS_NOW_RESOLVED_PROPS] = shouldProcess;\n\t\t\tconst processedResolvedProps = shouldProcess\n\t\t\t\t? sandbox(processNowResolvedProps, {\n\t\t\t\t\t\targs: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\thost: this,\n\t\t\t\t\t\t\t\trawResolvedProps,\n\t\t\t\t\t\t\t\tpropertyKeys,\n\t\t\t\t\t\t\t\tlog\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t],\n\t\t\t\t\t\thost: this,\n\t\t\t\t\t\tdispatch: () => {},\n\t\t\t\t\t\tlocation: locations.PROPERTY,\n\t\t\t\t\t\tdetails: {parse: true, name: RESOLVED_PROPS_ATTRIBUTE},\n\t\t\t\t\t\tlog\n\t\t\t\t  })\n\t\t\t\t: {};\n\n\t\t\tconst {length: propertyKeysCount} = propertyKeys;\n\t\t\tfor (let i = 0; i < propertyKeysCount; i++) {\n\t\t\t\tconst name = propertyKeys[i];\n\t\t\t\tif (this.hasOwnProperty(name)) {\n\t\t\t\t\tconst value = this[name];\n\t\t\t\t\tdelete this[name];\n\t\t\t\t\tthis[name] = value;\n\t\t\t\t} else if (processedResolvedProps && name in processedResolvedProps) {\n\t\t\t\t\tthis[name] = processedResolvedProps[name];\n\t\t\t\t} else if (rawResolvedProps && name in rawResolvedProps) {\n\t\t\t\t\tthis[name] = rawResolvedProps[name];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tgetComponentId() {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\treturn variables[COMPONENT_ID];\n\t\t}\n\n\t\tsetComponentId() {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tvariables[COMPONENT_ID] = this.getAttribute(COMPONENT_ID_ATTRIBUTE) || guid();\n\t\t\tthis.setAttribute(NOW_ID_ATTR, variables[COMPONENT_ID], false);\n\t\t\tthis.setAttribute(COMPONENT_ID_ATTRIBUTE, variables[COMPONENT_ID], false);\n\t\t}\n\n\t\tgetProperty(name) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\treturn variables[PROPS][name];\n\t\t}\n\n\t\t[SET_PROPERTY](name, value, updateProperties = false, options = {}) {\n\t\t\tconst {interactionId = createInteractionId(), span: activeSpan} = options;\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tconst parentSpan = activeSpan || getActiveSpan(this);\n\t\t\t// get noisy during initialize, ex setting nowId\n\t\t\tconst setPropSpan =\n\t\t\t\tthis.__DO_NOT_USE_BOOTSTRAPPED__ === true && parentSpan\n\t\t\t\t\t? trace(SPAN_FOR_SET_PROPERTY, {\n\t\t\t\t\t\t\t...getSpanOptions(this),\n\t\t\t\t\t\t\ttraceId: parentSpan.traceId,\n\t\t\t\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t\t\t\tparentSpan\n\t\t\t\t\t  })\n\t\t\t\t\t: null;\n\n\t\t\tif (setPropSpan && (value === null || typeof value !== 'object')) {\n\t\t\t\tsetPropSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPNAME, name);\n\t\t\t\tif (typeof value !== 'object')\n\t\t\t\t\tsetPropSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE, value);\n\t\t\t}\n\n\t\t\tif (variables[PROPS][NOW_MODE_PROP] === COMPONENT_MODE_DETACH) {\n\t\t\t\tif (name !== NOW_MODE_PROP) {\n\t\t\t\t\tif (!this[DETACHED_COMPONENT_PROPERTY_MAP])\n\t\t\t\t\t\tthis[DETACHED_COMPONENT_PROPERTY_MAP] = new Map();\n\n\t\t\t\t\tthis[DETACHED_COMPONENT_PROPERTY_MAP].set(name, {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tupdateProperties,\n\t\t\t\t\t\tinteractionId\n\t\t\t\t\t});\n\t\t\t\t\tif (setPropSpan) {\n\t\t\t\t\t\tsetPropSpan.setAttribute(SPAN_ATTR_SET_PROPERTY_SKIPED, SPAN_ATTR_COMPONENT_DETACHED);\n\t\t\t\t\t\tsetPropSpan.end();\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst valueOrDefault = parseProperty(\n\t\t\t\tname,\n\t\t\t\tvalue === undefined ? combinedPropertyDefs[name].default : value,\n\t\t\t\tcombinedPropertyDefs[name],\n\t\t\t\tthis,\n\t\t\t\tvariables[DISPATCH] || createDispatcher(this)\n\t\t\t);\n\n\t\t\tif (quickEquals(valueOrDefault, variables[PROPS][name])) {\n\t\t\t\tif (setPropSpan) {\n\t\t\t\t\tsetPropSpan.setAttribute(SPAN_ATTR_SET_PROPERTY_SKIPED, SPAN_ATTR_COMPONENT_QUICK_EQUAL);\n\t\t\t\t\tsetPropSpan.end();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// we might want to consider doing some of this in createUpdateProperties like we\n\t\t\t// do for createUpdateState, so that we never even get this far if the property\n\t\t\t// update is declarative\n\t\t\tif (\n\t\t\t\t(enableDeepPropertyCompare && !optOutDeepCompare) || combinedPropertyDefs[name].deepCompare\n\t\t\t\t\t? isEqual(variables[PROPS][name], valueOrDefault)\n\t\t\t\t\t: variables[PROPS][name] === valueOrDefault\n\t\t\t) {\n\t\t\t\tif (setPropSpan) {\n\t\t\t\t\tsetPropSpan.setAttribute(SPAN_ATTR_SET_PROPERTY_SKIPED, SPAN_ATTR_COMPONENT_EQUAL);\n\t\t\t\t\tsetPropSpan.end();\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.__DO_NOT_USE_BOOTSTRAPPED__ !== true) {\n\t\t\t\tvariables[PROPS][name] = valueOrDefault;\n\t\t\t\tsetPropSpan && setPropSpan.end();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!shouldSetProperty(tagName, name, combinedPropertyDefs, updateProperties)) {\n\t\t\t\tif (setPropSpan) {\n\t\t\t\t\tsetPropSpan.setAttribute(\n\t\t\t\t\t\tSPAN_ATTR_SET_PROPERTY_SKIPED,\n\t\t\t\t\t\tSPAN_ATTR_COMPONENT_READONLY_COMPUTED\n\t\t\t\t\t);\n\t\t\t\t\tsetPropSpan.end();\n\t\t\t\t}\n\t\t\t\treturn log(`Cannot set read only or computed property ${name}.`, {\n\t\t\t\t\thost: this,\n\t\t\t\t\torigin: String(SET_PROPERTY)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (variables[PROPS][NOW_ENABLE_PROPERTY_SETTING_PREVENTION_PROP]) {\n\t\t\t\tconst event = variables[DISPATCH](\n\t\t\t\t\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\t\t\t\t\t{name, value: variables[PROPS][name], nextValue: valueOrDefault, host: this},\n\t\t\t\t\tsetInteractionId(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\t\t[COMPONENT_INTERNAL_ACTION]: true,\n\t\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t\tinternalPropertyUpdateRequested: updateProperties,\n\t\t\t\t\t\t\t...(setPropSpan && isValidTraceId(setPropSpan.traceId) && {span: setPropSpan})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinteractionId\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\tif (event.defaultPrevented) {\n\t\t\t\t\tsetPropSpan && setPropSpan.end();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst previousValue = variables[PROPS][name];\n\t\t\tvariables[PROPS][name] = valueOrDefault;\n\n\t\t\t// If nowPlaceholderHeight or Width changes, we want to replace the previous intersect styles so long as:\n\t\t\t// We are currently observing for an intersection (because otherwise we don't want to apply these styles)\n\t\t\t// We have not intersected yet (these styles should only be applied when the component has not intersected yet)\n\t\t\tif (\n\t\t\t\tvariables[USING_INTERSECTION_OBSERVER] &&\n\t\t\t\t[NOW_PLACEHOLDER_HEIGHT_PROP, NOW_PLACEHOLDER_WIDTH_PROP].includes(name) &&\n\t\t\t\t!variables[INTERSECTED] &&\n\t\t\t\tpreviousValue !== valueOrDefault\n\t\t\t) {\n\t\t\t\tconst removeIntersectedStyles = applyIntersectStyles(this, config, {\n\t\t\t\t\theight: variables[PROPS][NOW_PLACEHOLDER_HEIGHT_PROP],\n\t\t\t\t\twidth: variables[PROPS][NOW_PLACEHOLDER_WIDTH_PROP]\n\t\t\t\t});\n\n\t\t\t\tif (variables[REMOVE_INTERSECTED_STYLES]) variables[REMOVE_INTERSECTED_STYLES]();\n\n\t\t\t\tvariables[REMOVE_INTERSECTED_STYLES] = removeIntersectedStyles;\n\t\t\t}\n\n\t\t\tconst propertyDetails = {\n\t\t\t\tpreviousValue,\n\t\t\t\tvalue: valueOrDefault\n\t\t\t};\n\n\t\t\tif (name === NOW_NESTED_SELECTABLE_PROPS && Array.isArray(valueOrDefault)) {\n\t\t\t\tpreviousValue.forEach(nestedSelectablePropName => {\n\t\t\t\t\tif (!valueOrDefault.includes(nestedSelectablePropName)) {\n\t\t\t\t\t\tconst [propName, path] = getPartsForNestedSelectableProps(nestedSelectablePropName);\n\t\t\t\t\t\tdelete variables[PROPERTIES_WITH_SELECTOR][nestedSelectablePropName];\n\t\t\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][propName]?.delete(path);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tvalueOrDefault.forEach(nestedSelectablePropName => {\n\t\t\t\t\tconst [propName, path] = getPartsForNestedSelectableProps(nestedSelectablePropName);\n\n\t\t\t\t\tconst propValue = get(variables[PROPS][propName], path);\n\n\t\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][propName] = (\n\t\t\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][propName] || new Set()\n\t\t\t\t\t).add(path);\n\t\t\t\t\tapplyUpdatesForSelectableProps({\n\t\t\t\t\t\tname: nestedSelectablePropName,\n\t\t\t\t\t\tvalue: propValue,\n\t\t\t\t\t\tpropertiesWithSelector: variables[PROPERTIES_WITH_SELECTOR],\n\t\t\t\t\t\tcomponentId: variables[COMPONENT_ID],\n\t\t\t\t\t\tpropertyDetails,\n\t\t\t\t\t\tcomponentRegistry,\n\t\t\t\t\t\tnormalizedConfigForProp: normalizedConfig.properties[name]\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else if (variables[PROPERTIES_WITH_NESTED_SELECTOR][name]?.size > 0) {\n\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][name].forEach(path => {\n\t\t\t\t\tconst nestedSelectablePropName = `${name}.${path}`;\n\t\t\t\t\tconst propValue = get(valueOrDefault, path);\n\t\t\t\t\tapplyUpdatesForSelectableProps({\n\t\t\t\t\t\tname: nestedSelectablePropName,\n\t\t\t\t\t\tvalue: propValue,\n\t\t\t\t\t\tpropertiesWithSelector: variables[PROPERTIES_WITH_SELECTOR],\n\t\t\t\t\t\tcomponentId: variables[COMPONENT_ID],\n\t\t\t\t\t\tpropertyDetails,\n\t\t\t\t\t\tcomponentRegistry,\n\t\t\t\t\t\tnormalizedConfigForProp: normalizedConfig.properties[name]\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tapplyUpdatesForSelectableProps({\n\t\t\t\t\tname,\n\t\t\t\t\tvalue: valueOrDefault,\n\t\t\t\t\tpropertiesWithSelector: variables[PROPERTIES_WITH_SELECTOR],\n\t\t\t\t\tcomponentId: variables[COMPONENT_ID],\n\t\t\t\t\tpropertyDetails,\n\t\t\t\t\tcomponentRegistry,\n\t\t\t\t\tnormalizedConfigForProp: normalizedConfig.properties[name]\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis[UPDATE_AFFECTED_COMPONENTS]({\n\t\t\t\tname,\n\t\t\t\tpropertyDetails,\n\t\t\t\tinteractionId,\n\t\t\t\tincludeSource: true,\n\t\t\t\t...(setPropSpan && isValidTraceId(setPropSpan.traceId) && {activeSpan: setPropSpan})\n\t\t\t});\n\t\t\tsetPropSpan && setPropSpan.end();\n\t\t}\n\n\t\t[UPDATE_AFFECTED_COMPONENTS]({\n\t\t\tname,\n\t\t\tpropertyDetails,\n\t\t\tinteractionId,\n\t\t\tincludeSource,\n\t\t\tactiveSpan\n\t\t}) {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tconst allAffectedComponents = getAffected(\n\t\t\t\tname,\n\t\t\t\tvariables[COMPONENT_ID],\n\t\t\t\tcomponentRegistry,\n\t\t\t\tincludeSource\n\t\t\t);\n\t\t\ttriggerComponentUpdates(\n\t\t\t\tcomponentRegistry,\n\t\t\t\tallAffectedComponents,\n\t\t\t\tpropertyDetails,\n\t\t\t\tinteractionId,\n\t\t\t\t'PROPERTY_SET',\n\t\t\t\t{activeSpan}\n\t\t\t);\n\t\t}\n\n\t\t[HOIST_CHANGED](value) {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tif ((value && variables[UNHOIST]) || (!value && !variables[UNHOIST])) return;\n\n\t\t\tif (!presentational) {\n\t\t\t\tvariables[ACTION_HANDLERS] = removeActionHandlers(variables[ACTION_HANDLERS]);\n\t\t\t\tvariables[TARGETED_ACTION_TYPES] = [];\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\t// render null to host's shadowRoot to ensure cleanup\n\t\t\t\tclearRootNode(this, variables[ATTACHED_ROOT_NODE], onStateChange);\n\t\t\t\tvariables[UNHOIST] = hoist(this, deprioritizeStyles, onStateChange);\n\t\t\t} else {\n\t\t\t\ttypeof variables[UNHOIST] === 'function' && variables[UNHOIST]();\n\t\t\t\tdelete variables[UNHOIST];\n\t\t\t}\n\n\t\t\tif (!presentational)\n\t\t\t\tvariables[ACTION_HANDLERS] = addActionHandlers(this, normalizedConfig.interceptors);\n\t\t}\n\n\t\t[HOIST_PARENT_CHANGED](propName) {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tconst resolvedState = getResolvedState(variables, componentRegistry, this);\n\t\t\t// reflect hoist targeting properties immediately, these attributes are used when hoisting\n\t\t\t[HOIST_ATTR, NOW_HOIST_PROP, propName].forEach(p => {\n\t\t\t\treflectProperty(p, combinedPropertyDefs[p], resolvedState, this, {});\n\t\t\t});\n\t\t\tif (!presentational) {\n\t\t\t\tvariables[ACTION_HANDLERS] = removeActionHandlers(variables[ACTION_HANDLERS]);\n\t\t\t\tvariables[TARGETED_ACTION_TYPES] = [];\n\t\t\t}\n\n\t\t\ttypeof variables[UNHOIST] === 'function' && variables[UNHOIST]();\n\t\t\tvariables[UNHOIST] = hoist(this, deprioritizeStyles, onStateChange);\n\n\t\t\tif (!presentational)\n\t\t\t\tvariables[ACTION_HANDLERS] = addActionHandlers(this, normalizedConfig.interceptors);\n\t\t}\n\n\t\t[GET_RESOLVED_PROPERTY](propName) {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\treturn resolveSelectedProperty(\n\t\t\t\tcomponentRegistry,\n\t\t\t\tselectablePropertyResolver,\n\t\t\t\tvariables[PROPS][propName],\n\t\t\t\tnormalizedConfig.properties[propName]\n\t\t\t);\n\t\t}\n\n\t\tsetAttribute(name, value, isReflecting = false) {\n\t\t\tif (!shouldSetAttribute(tagName, isReflecting, name, combinedPropertyDefs)) {\n\t\t\t\treturn log(`Cannot set read only or computed property ${name}`, {\n\t\t\t\t\thost: this,\n\t\t\t\t\torigin: 'setAttribute'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (shouldHoistAttribute(this, name)) hoistAttribute(this, name, value);\n\n\t\t\treturn HTMLElement.prototype.setAttribute.call(this, name, value);\n\t\t}\n\n\t\tremoveAttribute(name) {\n\t\t\tif (shouldHoistAttribute(this, name)) unhoistAttribute(this, name);\n\n\t\t\tHTMLElement.prototype.removeAttribute.call(this, name);\n\t\t}\n\n\t\tgenerateDeferGetterAndSetter() {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tvariables[DEFERRED] = true;\n\t\t\tObject.defineProperty(this, DEFER_ATTRIBUTE, {\n\t\t\t\tget: () => variables[DEFERRED],\n\t\t\t\tset: value => {\n\t\t\t\t\tif (variables[DEFERRED] === value) return;\n\n\t\t\t\t\tvariables[DEFERRED] = value;\n\t\t\t\t\tif (!variables[CONNECTED]) {\n\t\t\t\t\t\tsetStat('undefer', this.tagName.toLowerCase());\n\t\t\t\t\t\tthis.connectedCallback();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlog(\n\t\t\t\t\t\t\t`${this.tagName.toLowerCase()}[component-id=\"${\n\t\t\t\t\t\t\t\tvariables[COMPONENT_ID]\n\t\t\t\t\t\t\t}\"] cannot be deferred. It is already connected.`,\n\t\t\t\t\t\t\t{host: this, origin: 'generateDeferGetterAndSetter'}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tconfigurable: true\n\t\t\t});\n\t\t}\n\n\t\tshouldLegacyDefer() {\n\t\t\treturn this.hasAttribute(DEFER_ATTRIBUTE) && !this.__DO_NOT_USE_BOOTSTRAPPED__;\n\t\t}\n\n\t\tsetInitialProperties() {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tconst defaults = {};\n\t\t\tconst {length: propertyKeysCount} = propertyKeys;\n\t\t\tfor (let i = 0; i < propertyKeysCount; i++) {\n\t\t\t\tconst name = propertyKeys[i];\n\t\t\t\tdefaults[name] = getInitialPropertyValue(this, name, combinedPropertyDefs);\n\t\t\t}\n\n\t\t\tconst propertyDefs = combinedPropertyDefs;\n\t\t\tvariables[PROPS] = parseProperties(\n\t\t\t\tresolveProperties(\n\t\t\t\t\tinitialState,\n\t\t\t\t\tfilterPropertyDefinitions(propertyDefs, def => !def.computed),\n\t\t\t\t\tdefaults\n\t\t\t\t),\n\t\t\t\tpropertyDefs,\n\t\t\t\t{host: this, dispatch: variables[DISPATCH]}\n\t\t\t);\n\n\t\t\tconst properties = variables[PROPS];\n\t\t\tfor (const k in properties) {\n\t\t\t\tif (k === NOW_NESTED_SELECTABLE_PROPS && Array.isArray(properties[k])) {\n\t\t\t\t\tproperties[k].forEach(name => {\n\t\t\t\t\t\tconst [propName, path] = getPartsForNestedSelectableProps(name);\n\t\t\t\t\t\tconst propValue = get(properties[propName], path);\n\n\t\t\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][propName] = (\n\t\t\t\t\t\t\tvariables[PROPERTIES_WITH_NESTED_SELECTOR][propName] || new Set()\n\t\t\t\t\t\t).add(path);\n\t\t\t\t\t\tupdatePropertiesWithSelector(name, propValue, variables[PROPERTIES_WITH_SELECTOR]);\n\t\t\t\t\t\tupdateSelectedPropertyMappings(\n\t\t\t\t\t\t\tpropValue,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\tvariables[COMPONENT_ID],\n\t\t\t\t\t\t\tthis.__DO_NOT_USE_BOOTSTRAPPED__\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tupdatePropertiesWithSelector(k, properties[k], variables[PROPERTIES_WITH_SELECTOR]);\n\t\t\t\t\tupdateSelectedPropertyMappings(\n\t\t\t\t\t\tproperties[k],\n\t\t\t\t\t\tk,\n\t\t\t\t\t\tvariables[COMPONENT_ID],\n\t\t\t\t\t\tthis.__DO_NOT_USE_BOOTSTRAPPED__\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (combinedPropertyDefs[k] && combinedPropertyDefs[k].selectable) {\n\t\t\t\t\taddResolvedSelectedPropertyMappingWithResolvedValue(\n\t\t\t\t\t\tproperties[k],\n\t\t\t\t\t\tk,\n\t\t\t\t\t\tvariables[COMPONENT_ID]\n\t\t\t\t\t);\n\t\t\t\t\ttriggerComponentUpdates(\n\t\t\t\t\t\tcomponentRegistry,\n\t\t\t\t\t\tgetComponentAffected(k, variables[COMPONENT_ID]),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: variables[PROPS][k]\n\t\t\t\t\t\t},\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t'INITIAL_PROPERTY_SET',\n\t\t\t\t\t\t{activeSpan: getActiveSpan(this)}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tgetResolvedProperties(interactionId) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst state = getResolvedState(variables, componentRegistry, this);\n\t\t\tconst resolvedProperties = resolveComputedProperties(state, this, variables, interactionId);\n\t\t\treturn unescapeReservedCharacters(resolvedProperties).properties;\n\t\t}\n\n\t\tgetProperties() {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\treturn {...variables[PROPS]};\n\t\t}\n\n\t\tattributeChangedCallback(name, oldValue, newValue) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tif (name === DEFER_ATTRIBUTE) return (this[DEFER_ATTRIBUTE] = newValue);\n\n\t\t\tif (!variables[CONNECTED]) return;\n\n\t\t\tconst propName = toPropertyName(name);\n\t\t\tconst propValue = this[propName];\n\t\t\tif (isReflecting(name)) return clearReflection(name);\n\n\t\t\t// vdom renderers set prop, then attribute values on nodes; this check prevents a double render\n\t\t\t// while allowing for direct attribute setting and removal, e.g., el.setAttribute, el.removeAttribute\n\t\t\t// 1. if newValue is null and propValue is falsey then the property was set already and removeAttribute was called\n\t\t\t// 2. if propValue is truthy and newValue is a string and values are equal then the property was set\n\t\t\t//    already and setAttribute was called\n\t\t\t// 3. if propValue is truthy and newValue is empty string setAttribute was called after setting property to true\n\t\t\t// 4. if propValue is falsey and newValue is null removeAttribute was called after setting property to false\n\t\t\tif (newValue === null && !propValue) return;\n\n\t\t\tif (propValue && typeof newValue === 'string' && propValue === newValue) return;\n\n\t\t\tif (typeof propValue === 'boolean') {\n\t\t\t\tif (\n\t\t\t\t\tpropValue &&\n\t\t\t\t\tnewValue === '' &&\n\t\t\t\t\t!combinedPropertyDefs[propName].unstablePreserveEmptyStr\n\t\t\t\t)\n\t\t\t\t\treturn;\n\n\t\t\t\tif (!propValue && newValue === null) return;\n\t\t\t}\n\n\t\t\t// if newValue is null then removeAttribute was called, We should set the property to undefined, which will\n\t\t\t// be set to default in the setter if necessary\n\t\t\tif (variables[CONNECTED] && oldValue !== newValue)\n\t\t\t\tthis[propName] = newValue === null ? undefined : newValue;\n\t\t}\n\n\t\tconnectedCallback() {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\t// if a node is quickly connected and disconnected then by the time\n\t\t\t// connectedCallback is called it can actually be disconnected\n\t\t\tif (!this.isConnected) return;\n\t\t\tif (this.shouldLegacyDefer()) {\n\t\t\t\tvariables[CONNECTED_DEFERRED_TIMESTAMP] = performance.now();\n\t\t\t\tsetStat('defer', this.tagName.toLowerCase());\n\t\t\t\treturn this.generateDeferGetterAndSetter();\n\t\t\t}\n\n\t\t\tvariables[REMOVE_UPDATE_CUSTOM_ELEMENT_OBSERVER] = addUpdateCustomElementObserver(\n\t\t\t\ttagName,\n\t\t\t\tupdate => {\n\t\t\t\t\tvariables[CONFIG] = normalizedConfig;\n\t\t\t\t\tif (update.styles) {\n\t\t\t\t\t\tremoveStyles(this);\n\t\t\t\t\t\tapplyStyles(this, config);\n\t\t\t\t\t}\n\t\t\t\t\tif (update.actionHandlers && !presentational) {\n\t\t\t\t\t\tvariables[ACTION_HANDLERS] = removeActionHandlers(variables[ACTION_HANDLERS]);\n\t\t\t\t\t\tvariables[ACTION_HANDLERS] = addActionHandlers(this, normalizedConfig.interceptors);\n\t\t\t\t\t}\n\t\t\t\t\tif (update.view) {\n\t\t\t\t\t\tthis[RENDER]();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\t// We haven't called `setInitialProperties()` yet until later in the\n\t\t\t// connect, so `this[NOW_PRIORITY_PROP]` may not have the default value\n\t\t\t// from the property config.\n\t\t\tconst priorityLevel =\n\t\t\t\tthis[NOW_PRIORITY_PROP] === undefined\n\t\t\t\t\t? combinedPropertyDefs[NOW_PRIORITY_PROP]\n\t\t\t\t\t\t? combinedPropertyDefs[NOW_PRIORITY_PROP].default\n\t\t\t\t\t\t: undefined\n\t\t\t\t\t: this[NOW_PRIORITY_PROP];\n\t\t\tif (priorityLevel === PRIORITY_LEVEL_LOW && !variables[LOW_PRIORITY_PENDING]) {\n\t\t\t\tthis.setAttribute(NOW_PRIORITY_ATTR, priorityLevel);\n\t\t\t\tvariables[LOW_PRIORITY_PENDING] = true;\n\t\t\t\tschedule({\n\t\t\t\t\tfn: () => {\n\t\t\t\t\t\tif (!variables[CONNECTED]) this.connectedCallback();\n\t\t\t\t\t\tthis.removeAttribute(NOW_PRIORITY_ATTR);\n\t\t\t\t\t\tdelete variables[LOW_PRIORITY_PENDING];\n\t\t\t\t\t},\n\t\t\t\t\ttype: DEFER_IDLE,\n\t\t\t\t\tmeta: {el: this, interactionId: createInteractionId()}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvariables[CONNECTED] = true;\n\t\t\tvariables[CONNECTED_TIMESTAMP] = performance.now();\n\t\t\tthis.setComponentId();\n\t\t\tthis.dispatch = createDispatcher(this);\n\t\t\tvariables[HELPERS_SCHEDULED] = createHelpers(\n\t\t\t\tthis,\n\t\t\t\tcombinedPropertyDefs,\n\t\t\t\tHELPERS_SCHEDULED_CONST,\n\t\t\t\t{presentational}\n\t\t\t);\n\t\t\tvariables[HELPERS_IMMEDIATE] = createHelpers(\n\t\t\t\tthis,\n\t\t\t\tcombinedPropertyDefs,\n\t\t\t\tHELPERS_IMMEDIATE_CONST,\n\t\t\t\t{presentational}\n\t\t\t);\n\t\t\tvariables[HELPERS_DEFER] = createHelpers(this, combinedPropertyDefs, HELPERS_DEFER_CONST, {\n\t\t\t\tpresentational\n\t\t\t});\n\t\t\tthis.helpers = variables[HELPERS_SCHEDULED]; // @servicenow/ui-internal relies on this\n\t\t\tvariables[DISPATCH] = this.dispatch;\n\t\t\tvariables[CONDITIONAL_DISPATCH] = createConditionalDispatch(this);\n\t\t\tvariables[UNHOIST] = hoist(this, deprioritizeStyles, onStateChange);\n\t\t\tconst rootNode = getRootNode(this);\n\t\t\tvariables[ANCESTOR_ROOT_NODE] = rootNode && rootNode.nowId ? rootNode : null;\n\t\t\tif (variables[ANCESTOR_ROOT_NODE]) {\n\t\t\t\tvariables[ANCESTOR_ROOT_NODE][VARIABLES][CHILDREN_TO_BE_INTERACTIVE][\n\t\t\t\t\tvariables[COMPONENT_ID]\n\t\t\t\t] = true;\n\t\t\t\tvariables[ANCESTOR_PATH] = [\n\t\t\t\t\tvariables[ANCESTOR_ROOT_NODE],\n\t\t\t\t\t...(variables[ANCESTOR_ROOT_NODE]?.[VARIABLES]?.[ANCESTOR_PATH] || [])\n\t\t\t\t];\n\t\t\t} else {\n\t\t\t\tvariables[ANCESTOR_PATH] = [];\n\t\t\t}\n\t\t\tthis.__DO_NOT_USE_OR_YOU_WILL_BE_FIRED_BY_YOUR_PARENT__ =\n\t\t\t\t(variables[ANCESTOR_ROOT_NODE] && variables[ANCESTOR_ROOT_NODE].nowId) || null;\n\t\t\tvariables[CHILDREN_TO_BE_RENDERED] = {};\n\t\t\tvariables[NEEDS_TO_KNOW_ABOUT_TREE_RENDERS] =\n\t\t\t\tnormalizedConfig.shouldDispatch[COMPONENT_DOM_TREE_READY] ||\n\t\t\t\tnormalizedConfig.shouldDispatch[COMPONENT_TREE_RENDERED] ||\n\t\t\t\t(variables[ANCESTOR_ROOT_NODE] &&\n\t\t\t\t\tvariables[ANCESTOR_ROOT_NODE][VARIABLES][NEEDS_TO_KNOW_ABOUT_TREE_RENDERS]);\n\n\t\t\tif (!presentational)\n\t\t\t\tvariables[ACTION_HANDLERS] = addActionHandlers(this, normalizedConfig.interceptors);\n\n\t\t\tif (componentRegistry[this.getComponentId()] !== undefined)\n\t\t\t\tlog(\n\t\t\t\t\t`The componentId- ${this.getComponentId()} already exists. Component identifiers must be unique.`\n\t\t\t\t);\n\n\t\t\tcomponentRegistry[this.getComponentId()] = this;\n\t\t\tconst activeSpan = getActiveSpan(this);\n\n\t\t\t// This must be called here syncronously instead of in the callback of onConnect\n\t\t\t// just below. If any code gets added that could prevent this[RENDER] being called\n\t\t\t// between here and inside the onConnect callback just below, it will break the\n\t\t\t// TREE_RENDERED and TREE_READY lifecycles\n\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_IS_RENDERING]();\n\n\t\t\tif (variables[HAS_NOW_RESOLVED_PROPS]) {\n\t\t\t\tsandbox(connectNowResolvedPropsCallbacks, {\n\t\t\t\t\targs: [\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tpropertyUpdates => {\n\t\t\t\t\t\t\tconst span = trace(SPAN_FOR_NOW_RESOLVE_PROPS_SET, {\n\t\t\t\t\t\t\t\t...getSpanOptions(this),\n\t\t\t\t\t\t\t\tkind: SPAN_KIND_CLIENT\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tconst options = {\n\t\t\t\t\t\t\t\tinteractionId: createInteractionId(),\n\t\t\t\t\t\t\t\tspan\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tthis.helpers.updateProperties(propertyUpdates, options);\n\t\t\t\t\t\t\tspan.end();\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\thost: this,\n\t\t\t\t\tdetails: {\n\t\t\t\t\t\ttype: 'connectNowResolvedPropsCallbacks'\n\t\t\t\t\t},\n\t\t\t\t\tlocation: locations.RENDERER,\n\t\t\t\t\tdispatch: variables[DISPATCH],\n\t\t\t\t\tlog\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsandbox(onConnect, {\n\t\t\t\targs: [\n\t\t\t\t\tvariables[ROOT_NODE],\n\t\t\t\t\tthis.dispatch,\n\t\t\t\t\t() => {\n\t\t\t\t\t\tthis.setInitialProperties();\n\t\t\t\t\t\tif (!presentational && !variables[STATE]) {\n\t\t\t\t\t\t\t// Set variables[STATE] to just initialState and not include setInitialState\n\t\t\t\t\t\t\t// for backwards compatibility: so that initialState is still available\n\t\t\t\t\t\t\t// within a computed property's computed() method\n\t\t\t\t\t\t\tvariables[STATE] = {...normalizedConfig.initialState};\n\n\t\t\t\t\t\t\tconst initialState = {\n\t\t\t\t\t\t\t\t...variables[STATE],\n\t\t\t\t\t\t\t\t...normalizedConfig.setInitialState({\n\t\t\t\t\t\t\t\t\thost: this,\n\t\t\t\t\t\t\t\t\tproperties: unescapeReservedCharacters(\n\t\t\t\t\t\t\t\t\t\tcomputeProperties(\n\t\t\t\t\t\t\t\t\t\t\tcamelCaseProperties(getResolvedState(variables, componentRegistry, this)),\n\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t).properties,\n\t\t\t\t\t\t\t\t\tcontext: createContextProxy(this)\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\temitNowUiEvent(STATE_UPDATED, {\n\t\t\t\t\t\t\t\tcomponentId: variables[COMPONENT_ID],\n\t\t\t\t\t\t\t\tpreviousState: undefined,\n\t\t\t\t\t\t\t\tnextState: initialState\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tvariables[STATE] = initialState;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis[RENDER](null, metrics.CONNECTION, {traceId: resolveParentTraceId(this)});\n\n\t\t\t\t\t\t// this is to handle the case in which a renderer has not already set the properties on the host because it is async.\n\t\t\t\t\t\t// i do not want to unconditionally move hoisting initialization here without a design and supporting tests.\n\t\t\t\t\t\t// this change is backwards compatible with existing hoist use cases and renderers.\n\t\t\t\t\t\tif (typeof variables[UNHOIST] !== 'function' && isHoisted(this)) {\n\t\t\t\t\t\t\tif (presentational) {\n\t\t\t\t\t\t\t\tvariables[UNHOIST] = hoist(this, deprioritizeStyles, onStateChange);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tremoveActionHandlers(variables[ACTION_HANDLERS]);\n\t\t\t\t\t\t\t\tvariables[TARGETED_ACTION_TYPES] = [];\n\t\t\t\t\t\t\t\tvariables[UNHOIST] = hoist(this, deprioritizeStyles, onStateChange);\n\t\t\t\t\t\t\t\tvariables[ACTION_HANDLERS] = addActionHandlers(this, normalizedConfig.interceptors);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapplyStyles(this, config);\n\n\t\t\t\t\t\tvariables[USING_INTERSECTION_OBSERVER] =\n\t\t\t\t\t\t\tvariables[PROPS][NOW_PLACEHOLDER_HEIGHT_PROP] ||\n\t\t\t\t\t\t\tvariables[PROPS][NOW_PLACEHOLDER_WIDTH_PROP];\n\t\t\t\t\t\tif (variables[USING_INTERSECTION_OBSERVER]) {\n\t\t\t\t\t\t\tvariables[INTERSECTED] = false;\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tvariables[PROPS][NOW_PLACEHOLDER_HEIGHT_PROP] ||\n\t\t\t\t\t\t\t\tvariables[PROPS][NOW_PLACEHOLDER_WIDTH_PROP]\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tif (variables[REMOVE_INTERSECTED_STYLES]) variables[REMOVE_INTERSECTED_STYLES]();\n\t\t\t\t\t\t\t\tvariables[REMOVE_INTERSECTED_STYLES] = applyIntersectStyles(this, config, {\n\t\t\t\t\t\t\t\t\theight: variables[PROPS][NOW_PLACEHOLDER_HEIGHT_PROP],\n\t\t\t\t\t\t\t\t\twidth: variables[PROPS][NOW_PLACEHOLDER_WIDTH_PROP]\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tintersectionObserver.observe(this);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!this.__DO_NOT_USE_BOOTSTRAPPED__) {\n\t\t\t\t\t\t\tthis.__DO_NOT_USE_BOOTSTRAPPED__ = true;\n\n\t\t\t\t\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\t\t\tCOMPONENT_BOOTSTRAPPED,\n\t\t\t\t\t\t\t\t{host: this},\n\t\t\t\t\t\t\t\t{internal: true, span: activeSpan}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\t\tCOMPONENT_CONNECTED,\n\t\t\t\t\t\t\t{host: this},\n\t\t\t\t\t\t\t{internal: true, span: activeSpan}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\thost: this,\n\t\t\t\tdetails: {\n\t\t\t\t\ttype: 'onConnect'\n\t\t\t\t},\n\t\t\t\tlocation: locations.RENDERER,\n\t\t\t\tdispatch: variables[DISPATCH],\n\t\t\t\tlog\n\t\t\t});\n\t\t}\n\n\t\tdisconnectedCallback() {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tif (!variables[CONNECTED]) return;\n\n\t\t\tvariables[CONNECTED] = false;\n\t\t\tconst activeSpan = getActiveSpan(this);\n\t\t\t// render null to ensure that view specific clean up hooks are called\n\t\t\tclearRootNode(this, variables[ROOT_NODE], onStateChange);\n\n\t\t\tremoveStyles(this);\n\t\t\tif (variables[USING_INTERSECTION_OBSERVER] && !variables[INTERSECTED])\n\t\t\t\tintersectionObserver.unobserve(this);\n\n\t\t\tif (\n\t\t\t\t(!normalizedConfig.shouldDispatch[COMPONENT_BOOTSTRAPPED] &&\n\t\t\t\t\t!normalizedConfig.shouldDispatch[COMPONENT_CONNECTED]) ||\n\t\t\t\t(normalizedConfig.shouldDispatch[COMPONENT_BOOTSTRAPPED] &&\n\t\t\t\t\tvariables[BOOTSTRAPPED_HANDLED]) ||\n\t\t\t\t(normalizedConfig.shouldDispatch[COMPONENT_CONNECTED] && variables[CONNECTED_HANDLED])\n\t\t\t) {\n\t\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\tCOMPONENT_DISCONNECTED,\n\t\t\t\t\t{host: this},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\tspan: activeSpan\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tsandbox(onDisconnect, {\n\t\t\t\targs: [\n\t\t\t\t\tvariables[ROOT_NODE],\n\t\t\t\t\tthis.dispatch,\n\t\t\t\t\t() => {\n\t\t\t\t\t\ttypeof variables[UNHOIST] === 'function' && variables[UNHOIST]();\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\thost: this,\n\t\t\t\tdetails: {\n\t\t\t\t\ttype: 'onDisconnect'\n\t\t\t\t},\n\t\t\t\tlocation: locations.RENDERER,\n\t\t\t\tdispatch: variables[DISPATCH],\n\t\t\t\tlog\n\t\t\t});\n\n\t\t\tremoveResolvedMapping(variables[COMPONENT_ID]);\n\n\t\t\tif (presentational) {\n\t\t\t\tremoveMappings(variables[COMPONENT_ID]);\n\t\t\t} else {\n\t\t\t\tvariables[CONNECTED_HANDLED] = false;\n\t\t\t\tvariables[ACTION_HANDLERS] = removeActionHandlers(variables[ACTION_HANDLERS]);\n\t\t\t\tvariables[TARGETED_ACTION_TYPES] = [];\n\t\t\t\tremoveMappings(variables[COMPONENT_ID]);\n\t\t\t\tvariables[RENDERED_ONCE] = false;\n\t\t\t\tvariables[TREE_RENDERED_ONCE] = false;\n\t\t\t\tclearPendingNetworkActionsForHost(this);\n\t\t\t}\n\n\t\t\tremoveContextConsumer(this);\n\n\t\t\t// there are cases where connectedCallback has not executed, but disconnectedCallback does\n\t\t\tthis.getComponentId() && delete componentRegistry[this.getComponentId()];\n\n\t\t\tif (typeof variables[REMOVE_UPDATE_CUSTOM_ELEMENT_OBSERVER] === 'function') {\n\t\t\t\tvariables[REMOVE_UPDATE_CUSTOM_ELEMENT_OBSERVER]();\n\t\t\t}\n\n\t\t\tif (variables[HAS_NOW_RESOLVED_PROPS]) {\n\t\t\t\tsandbox(disconnectNowResolvedPropsCallbacks, {\n\t\t\t\t\targs: [this],\n\t\t\t\t\thost: this,\n\t\t\t\t\tdetails: {\n\t\t\t\t\t\ttype: 'disconnectNowResolvedPropsCallbacks'\n\t\t\t\t\t},\n\t\t\t\t\tlocation: locations.RENDERER,\n\t\t\t\t\tdispatch: variables[DISPATCH],\n\t\t\t\t\tlog\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t[RENDER](interactionId, source = metrics.CONNECTION, options = {}) {\n\t\t\tconst parentSpan = options.activeSpan || getActiveSpan(this);\n\t\t\tconst renderSpan = trace(SPAN_FOR_RENDER, {\n\t\t\t\t...getSpanOptions(this),\n\t\t\t\ttraceId: options.traceId || (parentSpan && parentSpan.traceId),\n\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\tparentSpan\n\t\t\t});\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tif (typeof source === 'string') renderSpan.setAttribute(SPAN_ATTR_RENDER_CAUSE, source);\n\t\t\toptions.cause = source; // eslint-disable-line no-param-reassign\n\n\t\t\tif (enableSchedulerQueueCounts) {\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\toptions.highPriorityTaskCount = countHighPriorityTasks(this);\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\toptions.mediumPriorityTaskCount = countMediumPriorityTasks(this);\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\toptions.pendingNetworkActionCount = pendingNetworkActionCountForHost(this);\n\t\t\t}\n\n\t\t\t// tell parent that a child is rendering. Once this is called,\n\t\t\t// this[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]() must be called at some point,\n\t\t\t// either directly or via this[CHECK_IF_TREE_RENDERED]()\n\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_IS_RENDERING]({interactionId});\n\n\t\t\tif (!this.isConnected) {\n\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_CONNECTED, false);\n\t\t\t\trenderSpan.end();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tschedule({\n\t\t\t\tfn: () => {\n\t\t\t\t\tif (!this.isConnected) {\n\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_CONNECTED, false);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (variables[PROPS][NOW_MODE_PROP] === COMPONENT_MODE_SUSPEND) {\n\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_SUSPENDED, true);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (variables[PROPS][NOW_MODE_PROP] === COMPONENT_MODE_DETACH) {\n\t\t\t\t\t\tconst fragment = document.createDocumentFragment();\n\n\t\t\t\t\t\tif (!this[DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT]) {\n\t\t\t\t\t\t\twhile (variables[ROOT_NODE].firstChild) {\n\t\t\t\t\t\t\t\tfragment.appendChild(\n\t\t\t\t\t\t\t\t\tvariables[ROOT_NODE].removeChild(variables[ROOT_NODE].firstChild)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis[DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT] = fragment;\n\t\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\t}\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_DETACHED, true);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we are observing for an intersection, and it has not happened yet, then cancel the render\n\t\t\t\t\tif (variables[USING_INTERSECTION_OBSERVER] && !variables[INTERSECTED]) {\n\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_INTERSECTED, false);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t/**\n\t\t\t\t\t * A component may take a few intemediate renders before settling on the final view that matches the SSR view.\n\t\t\t\t\t * If we do hydration on the first render, we will end up trashing the SSR view due to the view mismatch.\n\t\t\t\t\t * NOW_SKIP_RENDER_UNTIL_PRESENT is an array of properties that are needed to render the final view. We will\n\t\t\t\t\t * wait until all those properties are present before rendering the component, which also helps with the performance\n\t\t\t\t\t * since we skip the intermediate unnecessary renders.\n\t\t\t\t\t */\n\t\t\t\t\tconst shouldSkipRenderDueToEmptyProps =\n\t\t\t\t\t\t!variables[RENDERED_ONCE] &&\n\t\t\t\t\t\tArray.isArray(variables[PROPS][NOW_SKIP_RENDER_UNTIL_PRESENT])\n\t\t\t\t\t\t\t? variables[PROPS][NOW_SKIP_RENDER_UNTIL_PRESENT].some(prop =>\n\t\t\t\t\t\t\t\t\tisEmpty(this.getResolvedProperties()[prop])\n\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t: false;\n\n\t\t\t\t\tconst shouldSkipRenderDueToDeferHydration = this.getAttribute(NOW_DEFER_HYDRATION_ATTR);\n\t\t\t\t\tif (shouldSkipRenderDueToEmptyProps || shouldSkipRenderDueToDeferHydration) {\n\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_INTERSECTED, false);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst state = getResolvedState(variables, componentRegistry);\n\t\t\t\t\tvalidateProperties(state.properties, this);\n\t\t\t\t\tvalidateContext(variables[CONTEXT], this);\n\n\t\t\t\t\tconst updatedState = shapeRenderData(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tvariables,\n\t\t\t\t\t\ttransformState,\n\t\t\t\t\t\tvariables[DISPATCH],\n\t\t\t\t\t\tinteractionId\n\t\t\t\t\t);\n\n\t\t\t\t\tconst event = variables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\tCOMPONENT_RENDER_REQUESTED,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpreviousRenderState: variables[PREVIOUS_RENDER_STATE],\n\t\t\t\t\t\t\tpreviousRenderProperties: variables[PREVIOUS_RENDER_PROPERTIES],\n\t\t\t\t\t\t\thost: this\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfirstRenderOnConnect: !variables[RENDERED_ONCE],\n\t\t\t\t\t\t\t[COMPONENT_INTERNAL_ACTION]: true,\n\t\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\t\trenderCause: options.cause,\n\t\t\t\t\t\t\t...(isValidTraceId(renderSpan.traceId) && {span: renderSpan})\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tif (event && event.defaultPrevented) {\n\t\t\t\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId});\n\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_EVENT_DEFAULT_PREVENTED, true);\n\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet shouldSkipRender = false;\n\t\t\t\t\tif (this[DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT]) {\n\t\t\t\t\t\tif (this[DETACHED_COMPONENT_PROPERTY_MAP]) {\n\t\t\t\t\t\t\tthis[DETACHED_COMPONENT_PROPERTY_MAP].forEach(\n\t\t\t\t\t\t\t\t({name, value, updateProperties, interactionId}) => {\n\t\t\t\t\t\t\t\t\tshouldSkipRender = shouldSkipRender || this[VARIABLES][PROPS][name] !== value;\n\t\t\t\t\t\t\t\t\tthis[SET_PROPERTY](name, value, updateProperties, {interactionId});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvariables[ROOT_NODE].appendChild(this[DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT]);\n\t\t\t\t\t\tdelete this[DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT];\n\t\t\t\t\t\tdelete this[DETACHED_COMPONENT_PROPERTY_MAP];\n\t\t\t\t\t\tif (shouldSkipRender) {\n\t\t\t\t\t\t\trenderSpan.setAttribute(SPAN_ATTR_COMPONENT_RENDER_SKIPPED, true);\n\t\t\t\t\t\t\trenderSpan.end();\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmeasure(\n\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\tconst [state, helpers] = createOnStateChangeArgs(\n\t\t\t\t\t\t\t\tuseCoeffectsLikeObjectInView,\n\t\t\t\t\t\t\t\tvariables[COMPONENT_ID],\n\t\t\t\t\t\t\t\tupdatedState,\n\t\t\t\t\t\t\t\tcreateContextProxy(this),\n\t\t\t\t\t\t\t\tapplyMetrics(variables[HELPERS_DEFER], renderSpan.id),\n\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsandbox(onStateChange, {\n\t\t\t\t\t\t\t\targs: [\n\t\t\t\t\t\t\t\t\tvariables[ROOT_NODE],\n\t\t\t\t\t\t\t\t\trendererView,\n\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\thelpers,\n\t\t\t\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\t\t\t\tisValidTraceId(renderSpan.traceId) ? renderSpan : null\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\thost: this,\n\t\t\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\t\t\ttype: 'onStateChange'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tlocation: locations.RENDERER,\n\t\t\t\t\t\t\t\tdispatch: variables[DISPATCH],\n\t\t\t\t\t\t\t\tlog\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\t`render-${tagName}#${variables[COMPONENT_ID]}`,\n\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\toptions\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!variables[RENDERED_ONCE]) {\n\t\t\t\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\t\tCOMPONENT_DOM_READY,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tpreviousRenderState: variables[PREVIOUS_RENDER_STATE],\n\t\t\t\t\t\t\t\tpreviousRenderProperties: variables[PREVIOUS_RENDER_PROPERTIES],\n\t\t\t\t\t\t\t\thost: this\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t\t\tfirstRenderOnConnect: true,\n\t\t\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\t\t\t...(isValidTraceId(renderSpan.traceId) && {span: renderSpan})\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\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\tCOMPONENT_RENDERED_ACTION_TYPE,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpreviousRenderState: variables[PREVIOUS_RENDER_STATE],\n\t\t\t\t\t\t\tpreviousRenderProperties: variables[PREVIOUS_RENDER_PROPERTIES],\n\t\t\t\t\t\t\thost: this\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\t\tfirstRenderOnConnect: !variables[RENDERED_ONCE],\n\t\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\t\t...(isValidTraceId(renderSpan.traceId) && {span: renderSpan})\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tvariables[RENDERED_ONCE] = true;\n\t\t\t\t\tvariables[RENDERED_ONCE_TIMESTAMP] =\n\t\t\t\t\t\tvariables[RENDERED_ONCE_TIMESTAMP] || performance.now();\n\t\t\t\t\tvariables[PREVIOUS_RENDER_STATE] = updatedState;\n\t\t\t\t\tvariables[PREVIOUS_RENDER_PROPERTIES] = state.properties;\n\n\t\t\t\t\tthis[CHECK_IF_TREE_RENDERED](\n\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\toptions,\n\t\t\t\t\t\tisValidTraceId(renderSpan.traceId) ? renderSpan : null\n\t\t\t\t\t);\n\t\t\t\t\trenderSpan.end();\n\t\t\t\t},\n\t\t\t\ttype: COMPONENT_RENDER,\n\t\t\t\tmeta: {\n\t\t\t\t\tel: this,\n\t\t\t\t\tinteractionId,\n\t\t\t\t\t...(isValidTraceId(renderSpan.traceId) && {span: renderSpan})\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t[INTERSECTION_TRIGGERED]() {\n\t\t\tconst variables = getHostVariables(this);\n\n\t\t\tvariables[INTERSECTED] = true;\n\t\t\tif (variables[REMOVE_INTERSECTED_STYLES]) {\n\t\t\t\tvariables[REMOVE_INTERSECTED_STYLES]();\n\t\t\t\tvariables[REMOVE_INTERSECTED_STYLES] = null;\n\t\t\t}\n\n\t\t\tthis[RENDER](createInteractionId(), metrics.INTERSECTION);\n\t\t}\n\n\t\t[CHECK_IF_TREE_RENDERED](interactionId, options = {}, activeSpan = null) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst parentSpan = activeSpan || getActiveSpan(this);\n\t\t\tif (enableSchedulerQueueCounts) {\n\t\t\t\toptions.highPriorityTaskCount = countHighPriorityTasks(this);\n\t\t\t\toptions.mediumPriorityTaskCount = countMediumPriorityTasks(this);\n\t\t\t\toptions.pendingNetworkActionCount = pendingNetworkActionCountForHost(this);\n\t\t\t}\n\n\t\t\t// Check if all children are complete. if so, dispatch that this component is also complete\n\t\t\tif (Object.keys(variables[CHILDREN_TO_BE_RENDERED]).length) return;\n\n\t\t\tif (!variables[TREE_RENDERED_ONCE]) {\n\t\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\tCOMPONENT_DOM_TREE_READY,\n\t\t\t\t\t{\n\t\t\t\t\t\tpreviousRenderState: variables[PREVIOUS_TREE_RENDER_STATE],\n\t\t\t\t\t\tpreviousRenderProperties: variables[PREVIOUS_TREE_RENDER_PROPERTIES],\n\t\t\t\t\t\thost: this\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternal: true,\n\t\t\t\t\t\tfirstRenderOnConnect: true,\n\t\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t\t...(parentSpan && isValidTraceId(parentSpan.traceId) && {span: parentSpan})\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tmark(this, interactionId, metrics.RENDER_TREE, options);\n\t\t\tvariables[CONDITIONAL_DISPATCH](\n\t\t\t\tCOMPONENT_TREE_RENDERED,\n\t\t\t\t{\n\t\t\t\t\tpreviousRenderState: variables[PREVIOUS_TREE_RENDER_STATE],\n\t\t\t\t\tpreviousRenderProperties: variables[PREVIOUS_TREE_RENDER_PROPERTIES],\n\t\t\t\t\thost: this\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tinternal: true,\n\t\t\t\t\tfirstRenderOnConnect: !variables[TREE_RENDERED_ONCE],\n\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\t\t...(parentSpan && isValidTraceId(parentSpan.traceId) && {span: parentSpan})\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tvariables[TREE_RENDERED_ONCE] = true;\n\t\t\tvariables[TREE_RENDERED_ONCE_TIMESTAMP] =\n\t\t\t\tvariables[TREE_RENDERED_ONCE_TIMESTAMP] || performance.now();\n\t\t\tvariables[PREVIOUS_TREE_RENDER_STATE] = variables[PREVIOUS_RENDER_STATE];\n\t\t\tvariables[PREVIOUS_TREE_RENDER_PROPERTIES] = variables[PREVIOUS_RENDER_PROPERTIES];\n\n\t\t\tthis[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({\n\t\t\t\tinteractionId,\n\t\t\t\t...(parentSpan && isValidTraceId(parentSpan.traceId) && {activeSpan: parentSpan})\n\t\t\t});\n\t\t}\n\n\t\t[CHILD_IS_RENDERING](child) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst childVariables = getHostVariables(child);\n\t\t\tvariables[CHILDREN_TO_BE_RENDERED][childVariables[COMPONENT_ID]] = true;\n\t\t}\n\n\t\t[CHILD_HAS_RENDERED]({child, interactionId, activeSpan = null}) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst childVariables = getHostVariables(child);\n\t\t\tdelete variables[CHILDREN_TO_BE_RENDERED][childVariables[COMPONENT_ID]];\n\n\t\t\tthis[CHECK_IF_TREE_RENDERED](interactionId, {}, activeSpan);\n\t\t}\n\n\t\t[NOTIFY_PARENT_THAT_CHILD_IS_RENDERING]() {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst parentHost = variables[ANCESTOR_ROOT_NODE];\n\t\t\tif (parentHost && getHostVariables(parentHost)[NEEDS_TO_KNOW_ABOUT_TREE_RENDERS])\n\t\t\t\tparentHost[CHILD_IS_RENDERING](this);\n\t\t}\n\n\t\t[NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED]({interactionId, activeSpan = null}) {\n\t\t\tconst variables = getHostVariables(this);\n\t\t\tconst parentHost = variables[ANCESTOR_ROOT_NODE];\n\t\t\tif (parentHost && getHostVariables(parentHost)[NEEDS_TO_KNOW_ABOUT_TREE_RENDERS])\n\t\t\t\tparentHost[CHILD_HAS_RENDERED]({child: this, interactionId, activeSpan});\n\t\t}\n\t}\n\n\tconst accessors = {\n\t\tnowElementConfig: {\n\t\t\tget() {\n\t\t\t\tinitialize();\n\t\t\t\treturn normalizedConfig;\n\t\t\t}\n\t\t},\n\t\tnowRootNode: {\n\t\t\tget() {\n\t\t\t\tif (!initialized || shadowRootOptions.mode === SHADOW_ROOT_MODE_CLOSED) return null;\n\n\t\t\t\treturn getHostVariables(this)[ROOT_NODE];\n\t\t\t}\n\t\t},\n\t\tstyle: {\n\t\t\tget() {\n\t\t\t\treturn getHostVariables(this)[STYLE_PROXY];\n\t\t\t},\n\t\t\tset() {\n\t\t\t\tlog('setting style property directly is not supported');\n\t\t\t}\n\t\t}\n\t};\n\treturn SeismicElement;\n}\n","export {default as buildActionPayloadValidator} from './build/buildActionPayloadValidator';\nexport {default as buildPropertiesValidator} from './build/buildPropertiesValidator';\n","/**\n * Noop validation in production\n * @private\n */\nfunction noop() {\n\treturn () => true;\n}\n\nexport default noop;\n","import {createInterceptors} from './createInterceptors';\nimport {lifeCycleFnsToHandlers} from './lifeCycleFnsToHandlers';\nimport {mergeBehaviorActionHandlers} from './mergeBehaviorActionHandlers';\nimport {mergeBehaviorInitialState} from './mergeBehaviorInitialState';\nimport {mergeBehaviorProperties} from './mergeBehaviorProperties';\nimport {mergeLifeCycleActionHandlers} from './mergeLifeCycleActionHandlers';\nimport {normalizeActionHandlers} from './normalizeActionHandlers';\nimport {normalizeActionHandler} from './normalizeActionHandler';\nimport {normalizeBehaviors} from './normalizeBehaviors';\nimport {getStopPropagation} from './getStopPropagation';\nimport {mergeActions} from './mergeActions';\nimport {mergeEventActionHandlers} from './mergeEventActionHandlers';\nimport {applyPayloadValidators} from './applyPayloadValidators';\nimport {mergeBehaviorActions} from './mergeBehaviorActions';\nimport {getActionsToDispatch} from './getActionsToDispatch';\nimport {normalizeBehaviorEventHandlers} from './normalizeBehaviorEventHandlers';\nimport {SHADOW_ROOT_MODE_OPEN, ARIA_LIVE_REGION_UPDATE_REQUESTED} from '../../constants';\nimport {actionHandler as ariaLiveRegionActionHandler} from '../../accessibility/ariaLiveRegion';\n\nexport function normalizeConfig(config) {\n\tconst {\n\t\teventHandlers: componentEventHandlers = [],\n\t\tactionHandlers = {},\n\t\tbehaviors = [],\n\t\tproperties = {},\n\t\tname,\n\t\tinitialState,\n\t\tsetInitialState,\n\t\tactions = {},\n\t\tshadowRootOptions: {mode: shadowRootMode = SHADOW_ROOT_MODE_OPEN} = {}\n\t} = config;\n\n\tconst normalizedBehaviors = normalizeBehaviors(behaviors, name);\n\tconst eventHandlers = [\n\t\t...componentEventHandlers,\n\t\t...normalizeBehaviorEventHandlers(normalizedBehaviors)\n\t];\n\tconst mergedActionHandlers = mergeEventActionHandlers(\n\t\tmergeBehaviorActionHandlers(\n\t\t\tnormalizedBehaviors,\n\t\t\tmergeActions(\n\t\t\t\tmergeLifeCycleActionHandlers(\n\t\t\t\t\tlifeCycleFnsToHandlers(\n\t\t\t\t\t\t[config, ...normalizedBehaviors.map(({behavior}) => behavior)],\n\t\t\t\t\t\tname\n\t\t\t\t\t),\n\t\t\t\t\tnormalizeActionHandlers(actionHandlers, name)\n\t\t\t\t),\n\t\t\t\tactions,\n\t\t\t\tname\n\t\t\t)\n\t\t),\n\t\teventHandlers,\n\t\tname\n\t);\n\n\tmergedActionHandlers[ARIA_LIVE_REGION_UPDATE_REQUESTED] = [\n\t\tnormalizeActionHandler(ariaLiveRegionActionHandler)\n\t];\n\n\tconst interceptors = createInterceptors(mergedActionHandlers);\n\tconst mergedInitialStates = mergeBehaviorInitialState(\n\t\tnormalizedBehaviors,\n\t\tinitialState,\n\t\tsetInitialState,\n\t\tname\n\t);\n\n\treturn {\n\t\tshouldDispatch: getActionsToDispatch(interceptors),\n\t\teventHandlers,\n\t\tshouldStopPropagation: getStopPropagation(mergedActionHandlers),\n\t\tactions: applyPayloadValidators(mergeBehaviorActions(actions, normalizedBehaviors, name)),\n\t\tactionTypes: {}, // TODO: add action data types for validation\n\t\tinitialState: mergedInitialStates.initialState,\n\t\tsetInitialState: mergedInitialStates.setInitialState,\n\t\tproperties: mergeBehaviorProperties(normalizedBehaviors, properties, name),\n\t\tinterceptors,\n\t\tbehaviors: normalizedBehaviors,\n\t\tshadowRootOptions: {\n\t\t\tmode: shadowRootMode\n\t\t}\n\t};\n}\n","import {sandbox, locations} from '@servicenow/ui-internal';\nimport getHostVariables from '../getHostVariables';\nimport {DISPATCH} from '../../symbols';\nimport log from '../../log';\n\nconst {INTERCEPTOR} = locations;\n\nfunction sandboxInterceptor(effectInterceptor) {\n\tconst {fn, type, position} = effectInterceptor;\n\treturn {\n\t\t...effectInterceptor,\n\t\tfn: function sandboxedInterceptor(context) {\n\t\t\tconst {\n\t\t\t\tcoeffects: {host}\n\t\t\t} = context;\n\t\t\tif (type === 'effect')\n\t\t\t\t// don't need to wrap seismic defined interceptors\n\t\t\t\treturn fn(context);\n\n\t\t\tconst hostVariables = getHostVariables(host);\n\t\t\treturn sandbox(fn, {\n\t\t\t\targs: [context],\n\t\t\t\tlocation: INTERCEPTOR,\n\t\t\t\thost,\n\t\t\t\tdetails: {\n\t\t\t\t\ttype,\n\t\t\t\t\tposition\n\t\t\t\t},\n\t\t\t\tdispatch: hostVariables[DISPATCH],\n\t\t\t\tlog\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction forEachInterceptor(interceptors, target, map) {\n\tmap.set(target, interceptors.map(sandboxInterceptor));\n}\n\nexport function createInterceptors(actionHandlers) {\n\tconst actionHandlerInterceptors = {};\n\n\tfor (const k in actionHandlers) {\n\t\tactionHandlerInterceptors[k] = new Map();\n\t\tconst {length: handlerCount} = actionHandlers[k];\n\t\tfor (let i = 0; i < handlerCount; i++) {\n\t\t\tconst {\n\t\t\t\tinterceptors: {before, after},\n\t\t\t\targs,\n\t\t\t\teffect,\n\t\t\t\thandlers = [],\n\t\t\t\ttarget = 'host',\n\t\t\t\tbehaviorOptions,\n\t\t\t\tcapture,\n\t\t\t\teventHandler,\n\t\t\t\tmodifier,\n\t\t\t\tdescendantOnly\n\t\t\t} = actionHandlers[k][i];\n\t\t\tlet combinedInterceptors = actionHandlerInterceptors[k].has(target)\n\t\t\t\t? actionHandlerInterceptors[k].get(target)\n\t\t\t\t: [];\n\n\t\t\tconst effectInterceptor = effect\n\t\t\t\t? {\n\t\t\t\t\t\tfn: function createEffectHandlerInterceptor(context) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t...context,\n\t\t\t\t\t\t\t\teffects: [\n\t\t\t\t\t\t\t\t\t...context.effects,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\teffect,\n\t\t\t\t\t\t\t\t\t\targs: [...args, context.coeffects],\n\t\t\t\t\t\t\t\t\t\tmodifier,\n\t\t\t\t\t\t\t\t\t\toptions: behaviorOptions,\n\t\t\t\t\t\t\t\t\t\tdescendantOnly\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttype: 'effect',\n\t\t\t\t\t\tcapture,\n\t\t\t\t\t\teventHandler\n\t\t\t\t  }\n\t\t\t\t: null;\n\n\t\t\tconst handlerInterceptors = handlers.map(handler => ({\n\t\t\t\tfn: function createHandlersInterceptor(context) {\n\t\t\t\t\tconst {effect, args = []} = handler;\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...context,\n\t\t\t\t\t\teffects: [\n\t\t\t\t\t\t\t...context.effects,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\teffect,\n\t\t\t\t\t\t\t\targs: [...args, context.coeffects],\n\t\t\t\t\t\t\t\tmodifier,\n\t\t\t\t\t\t\t\toptions: behaviorOptions,\n\t\t\t\t\t\t\t\tdescendantOnly\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},\n\t\t\t\ttype: 'effect',\n\t\t\t\tcapture,\n\t\t\t\teventHandler\n\t\t\t}));\n\n\t\t\tcombinedInterceptors = [\n\t\t\t\t...combinedInterceptors,\n\t\t\t\t...before,\n\t\t\t\t...(effectInterceptor ? [effectInterceptor] : []),\n\t\t\t\t...handlerInterceptors,\n\t\t\t\t...after\n\t\t\t];\n\t\t\tactionHandlerInterceptors[k].set(target, combinedInterceptors);\n\t\t}\n\n\t\tactionHandlerInterceptors[k].forEach(forEachInterceptor);\n\t}\n\n\treturn actionHandlerInterceptors;\n}\n","import {VARIABLES} from '../symbols';\n\nexport default function getHostVariables(host) {\n\tif (!host) return null;\n\n\treturn host[VARIABLES];\n}\n","export const PRESENTATIONAL = Symbol('__presentational__');\nexport const COMPONENT_ID = Symbol('__componentId__');\nexport const CONNECTED = Symbol('__connected__');\nexport const PROPERTY_DEFS = Symbol('__propertyDefs__');\nexport const STATE = Symbol('__state__');\nexport const PROPS = Symbol('__props__');\nexport const ACTIONS = Symbol('__actions__');\nexport const ACTION_HANDLERS = Symbol('__actionHandlers__');\nexport const DISPATCH = Symbol('__dispatch__');\nexport const CONDITIONAL_DISPATCH = Symbol('__conditional_dispatch__');\nexport const ROOT_NODE = Symbol('__rootNode__');\nexport const VERSION = Symbol('__version__');\nexport const ATTACHED_ROOT_NODE = Symbol('__attached_root_node__');\nexport const UNHOIST = '__unHoist__';\nexport const DEFERRED = '__deferred__';\nexport const RENDER = Symbol('__render__');\nexport const LAST_HANDLE_STATE_CHANGE = Symbol('__last_handle_state_change__');\nexport const RENDER_SCHEDULED = Symbol('__render_scheduled__');\nexport const LAST_STATE_RENDERED = Symbol('__last_state_rendered__');\nexport const LAST_STATE_CHANGE = Symbol('__last_state_change__');\nexport const EVENT_HANDLERS = Symbol('__event_handlers__');\nexport const LIFE_CYCLE_COEFFECTS = Symbol('__life_cycle_coeffects__');\nexport const BOOTSTRAP_LIFECYCLE_RAN = Symbol('__bootstrap_lifecycle_ran__');\nexport const CONFIG = Symbol('__config__');\nexport const REMOVE_ACTION_HANDLERS = Symbol('__remove_action_handlers__');\nexport const RENDERED_ONCE = Symbol('__renders__');\nexport const TREE_RENDERED_ONCE = Symbol('__tree_renders__');\nexport const HELPERS_IMMEDIATE = Symbol('__helpers_immediate__');\nexport const HELPERS_DEFER = Symbol('__helpers_defer__');\nexport const HELPERS_SCHEDULED = Symbol('__helpers_scheduled__');\nexport const RETARGETED_ACTION_TYPES = Symbol('__retargeted_action_types__');\nexport const TARGETED_ACTION_TYPES = Symbol('__targeted_action_types__');\nexport const STYLE_PROXY = Symbol('__style_proxy__');\nexport const GET_RESOLVED_PROPERTY = Symbol('__get_resolved_property__');\nexport const HOIST_CHANGED = Symbol('__hoist_changed__');\nexport const HOIST_PARENT_CHANGED = Symbol('__hoist_parent_changed__');\nexport const SET_PROPERTY = Symbol('__set_property__');\nexport const HOIST_COMPOSED_PATH = Symbol('__hoist_composed_path__');\nexport const BOOTSTRAPPED_HANDLED = Symbol('__bootstrapped_handled__');\nexport const CONNECTED_HANDLED = Symbol('__connected_handled__');\nexport const PREVIOUS_RENDER_STATE = Symbol('__previous_render_state__');\nexport const PREVIOUS_RENDER_PROPERTIES = Symbol('__previous_render_properties__');\nexport const PREVIOUS_TREE_RENDER_STATE = Symbol('__previous_tree_render_state__');\nexport const PREVIOUS_TREE_RENDER_PROPERTIES = Symbol('__previous_tree_render_properties__');\nexport const CHILDREN_TO_BE_RENDERED = Symbol('__children_to_be_rendered__');\nexport const CHECK_IF_TREE_RENDERED = Symbol('__check_if_tree_rendered__');\nexport const CHILD_IS_RENDERING = Symbol('__child_is_rendering__');\nexport const CHILD_HAS_RENDERED = Symbol('__child_has_rendered__');\nexport const NOTIFY_PARENT_THAT_CHILD_IS_RENDERING = Symbol(\n\t'__notify_parent_that_child_is_rendering__'\n);\nexport const NOTIFY_PARENT_THAT_CHILD_TREE_HAS_RENDERED = Symbol(\n\t'__notify_parent_that_child_tree_has_rendered__'\n);\nexport const NEEDS_TO_KNOW_ABOUT_TREE_RENDERS = Symbol('__needs_to_know_about_tree_renders__');\nexport const ANCESTOR_ROOT_NODE = Symbol('__ancestor_root_node__');\nexport const ANCESTOR_PATH = Symbol('__ancestor_path__');\nexport const UPDATE_AFFECTED_COMPONENTS = Symbol('__update_affected_components__');\nexport const RUNTIME_ACTION_HANDLERS = Symbol('__runtime_action_handlers__');\nexport const USING_INTERSECTION_OBSERVER = Symbol('__using_intersection_observer__');\nexport const INTERSECTED = Symbol('__intersected__');\nexport const INTERSECTION_TRIGGERED = Symbol('__intersection_triggered__');\nexport const REMOVE_INTERSECTED_STYLES = Symbol('__remove_intersected_styles__');\nexport const DETACHED_SHADOW_ROOT_CHILDREN_FRAGMENT = Symbol(\n\t'__detached_shadow_root_children_fragment__'\n);\nexport const DETACHED_COMPONENT_PROPERTY_MAP = Symbol('__detached_component_property_map__');\nexport const LOW_PRIORITY_PENDING = Symbol('__low_priority_pending__');\nexport const INTERACTIVE_TIMESTAMP = Symbol('__interactive_timestamp__');\nexport const CONNECTED_TIMESTAMP = Symbol('__connected_timestamp__');\nexport const CHILDREN_TO_BE_INTERACTIVE = Symbol('__children_to_be_interactive__');\nexport const SELECTABLE_PROPERTIES = Symbol('__SELECTABLE_PROPERTIES__');\nexport const PROPERTIES_WITH_SELECTOR = Symbol('__properties_with_selector__');\nexport const PROPERTIES_WITH_NESTED_SELECTOR = Symbol('__properties_with_nested_selector__');\nexport const TREE_RENDERED_ONCE_TIMESTAMP = Symbol('__tree_rendered_once_timestamp__');\nexport const RENDERED_ONCE_TIMESTAMP = Symbol('__rendered_once_timestamp__');\nexport const CONNECTED_DEFERRED_TIMESTAMP = Symbol('__connected_deferred_timestamp__');\nexport const CONTEXT = Symbol('__context__');\nexport const CONTEXT_VIEW_KEY = Symbol('__context_view_key__');\nexport const CONTEXT_RESOLVED_VALUE = Symbol('__context_resolved_value__');\nexport const REMOVE_UPDATE_CUSTOM_ELEMENT_OBSERVER = Symbol(\n\t'__remove_update_custom_element_observer__'\n);\nexport const PREVIOUS_INTERACTION_ID = Symbol('__previous_interaction_id__');\nexport const PREVIOUS_TRACE_ID = Symbol('__previous_trace_id__');\n\nexport const HAS_NOW_RESOLVED_PROPS = Symbol('__has_now_resolved_props__');\n\nexport {\n\tVARIABLES,\n\tINTERNAL_HOST_DISPATCH,\n\tEXISTING_SHADOW_ROOT_ON_CREATE\n} from '@servicenow/ui-internal';\n","import {normalizeActionHandler} from './normalizeActionHandler';\nimport {sandbox, locations} from '@servicenow/ui-internal';\nimport log from '../../log';\n\nconst {LIFECYCLE} = locations;\nimport {\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tPROPERTIES_SET_LIFECYCLE,\n\tON_CONNECT_LIFECYCLE,\n\tON_DISCONNECT_LIFECYCLE,\n\tON_BOOTSTRAP_LIFECYCLE\n} from '../../constants';\nimport getHostVariables from '../getHostVariables';\nimport {HELPERS_SCHEDULED} from '../../symbols';\nimport {wrapDispatch} from '../../actions/utils';\n\nconst lifeCycleFnsToHandlerMap = {\n\t[COMPONENT_CONNECTED]: {lifecycle: ON_CONNECT_LIFECYCLE, display: 'COMPONENT_CONNECTED'},\n\t[COMPONENT_DISCONNECTED]: {lifecycle: ON_DISCONNECT_LIFECYCLE, display: 'COMPONENT_DISCONNECTED'},\n\t[COMPONENT_BOOTSTRAPPED]: {lifecycle: ON_BOOTSTRAP_LIFECYCLE, display: 'COMPONENT_BOOTSTRAPPED'},\n\t[COMPONENT_PROPERTY_CHANGED]: {\n\t\tlifecycle: PROPERTIES_SET_LIFECYCLE,\n\t\tdisplay: 'COMPONENT_PROPERTY_CHANGED'\n\t}\n};\n\nfunction createOnPropertyChangeHandler(config, def) {\n\tconst {properties} = config;\n\tconst onPropertiesSet = config[def.lifecycle];\n\tconst fns = {};\n\tfor (const k in properties) {\n\t\tconst {onChange} = properties[k];\n\t\tif (typeof onChange === 'function') fns[k] = onChange;\n\t}\n\n\tif (!Object.keys(fns).length && !onPropertiesSet) return;\n\n\treturn function onPropertyChange({\n\t\tdispatch,\n\t\taction: {\n\t\t\tpayload: {host, name, previousValue, value}\n\t\t}\n\t}) {\n\t\tconst hostVariables = getHostVariables(host);\n\n\t\tif (onPropertiesSet) {\n\t\t\tsandbox(onPropertiesSet, {\n\t\t\t\targs: [host, hostVariables[HELPERS_SCHEDULED]],\n\t\t\t\tdispatch,\n\t\t\t\thost,\n\t\t\t\tlocation: LIFECYCLE,\n\t\t\t\tdetails: {name: def.lifecycle},\n\t\t\t\tlog\n\t\t\t});\n\t\t}\n\n\t\tconst fn = fns[name];\n\t\tif (fn) {\n\t\t\tsandbox(fn, {\n\t\t\t\targs: [value, previousValue, hostVariables[HELPERS_SCHEDULED]],\n\t\t\t\tdispatch,\n\t\t\t\thost,\n\t\t\t\tlocation: LIFECYCLE,\n\t\t\t\tdetails: {name: def.lifecycle},\n\t\t\t\tlog\n\t\t\t});\n\t\t}\n\t};\n}\n\nexport function lifeCycleFnsToHandlers(configs, tagName) {\n\tconst actionHandlers = {};\n\tfor (const k in lifeCycleFnsToHandlerMap) {\n\t\tconst def = lifeCycleFnsToHandlerMap[k];\n\t\tconst {length: configsCount} = configs;\n\t\tconst actionType = k;\n\t\tactionHandlers[actionType] = [];\n\n\t\tfor (let i = 0; i < configsCount; i++) {\n\t\t\tconst config = configs[i];\n\t\t\tif (actionType === COMPONENT_PROPERTY_CHANGED) {\n\t\t\t\tconst onPropertyChangeEffect = createOnPropertyChangeHandler(config, def);\n\t\t\t\tif (onPropertyChangeEffect) {\n\t\t\t\t\tactionHandlers[actionType].push(\n\t\t\t\t\t\tnormalizeActionHandler(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\teffect: onPropertyChangeEffect,\n\t\t\t\t\t\t\t\ttype: 'effect'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttagName\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst fn = config[def.lifecycle];\n\t\t\t\tif (typeof fn === 'function') {\n\t\t\t\t\tactionHandlers[actionType].push(\n\t\t\t\t\t\tnormalizeActionHandler(\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\teffect({\n\t\t\t\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t\t\t\taction,\n\t\t\t\t\t\t\t\t\taction: {\n\t\t\t\t\t\t\t\t\t\tpayload: {host}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}) {\n\t\t\t\t\t\t\t\t\tconst wrappedDispatch = wrapDispatch(host, action);\n\t\t\t\t\t\t\t\t\tconst helpers = wrappedDispatch.dispatch;\n\t\t\t\t\t\t\t\t\tObject.assign(helpers, wrappedDispatch);\n\n\t\t\t\t\t\t\t\t\tsandbox(fn, {\n\t\t\t\t\t\t\t\t\t\targs: config.options ? [host, helpers, config.options] : [host, helpers],\n\t\t\t\t\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\t\t\t\tlocation: LIFECYCLE,\n\t\t\t\t\t\t\t\t\t\tdetails: {name: def.lifecycle},\n\t\t\t\t\t\t\t\t\t\tlog\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\ttype: 'effect'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttagName\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn actionHandlers;\n}\n","import normalizeModifiers from './normalizeModifiers';\nimport log from '../../log';\n\nfunction typeInterceptor(fn, type, position) {\n\treturn {fn, type, position};\n}\n\nfunction mapInterceptors(interceptors) {\n\tconst mapped = {before: [], after: []};\n\tconst {length: interceptorCount} = interceptors;\n\tfor (let i = 0; i < interceptorCount; i++) {\n\t\tconst interceptor = interceptors[i];\n\t\tconst {before, after} = interceptor;\n\t\tif (!before && !after) {\n\t\t\tmapped.before.push(typeInterceptor(interceptor));\n\t\t\tcontinue;\n\t\t}\n\t\tif (before) mapped.before.push(typeInterceptor(before, 'before', mapped.before.length));\n\t\tif (after) mapped.after.unshift(typeInterceptor(after, 'after', mapped.after.length));\n\t}\n\n\treturn mapped;\n}\n\nfunction normalizeHandlers(handlers, tagName) {\n\tif (handlers.length) {\n\t\tlog(`Please update action handler definition in <${tagName}>`, {\n\t\t\ttagName,\n\t\t\torigin: 'normalizeHandlers',\n\t\t\tdocs: 'https://developer.servicenow.com/dev.do#!/guide/orlando/now-experience/ui-framework/now-experience-ui-framework-101/action-handlers'\n\t\t});\n\t}\n\n\treturn handlers.map(handler =>\n\t\ttypeof handler === 'function'\n\t\t\t? {\n\t\t\t\t\teffect: handler,\n\t\t\t\t\targs: []\n\t\t\t  }\n\t\t\t: {\n\t\t\t\t\t...handler,\n\t\t\t\t\teffect: handler.effect || handler.fn,\n\t\t\t\t\targs: handler.args || []\n\t\t\t  }\n\t);\n}\n\nexport function normalizeActionHandler(actionHandler, tagName) {\n\tconst {\n\t\thandlers = [],\n\t\targs = [],\n\t\tinterceptors = [],\n\t\tstopPropagation,\n\t\tprivate: isPrivate,\n\t\ttarget,\n\t\tmodifiers = [],\n\t\tmodifier = {},\n\t\tcapture = false,\n\t\teventHandler = false,\n\t\tdescendantOnly = false\n\t} = actionHandler;\n\n\tif (typeof actionHandler === 'function') {\n\t\treturn {\n\t\t\tstopPropagation,\n\t\t\teffect: actionHandler,\n\t\t\thandlers: [],\n\t\t\targs,\n\t\t\tinterceptors: mapInterceptors(interceptors),\n\t\t\ttarget,\n\t\t\tmodifier: normalizeModifiers(modifiers, modifier),\n\t\t\tcapture,\n\t\t\teventHandler,\n\t\t\tdescendantOnly\n\t\t};\n\t}\n\n\tfunction effectDelegate(...args) {\n\t\t// Effect delegate function to enable stubbing in tests\n\t\treturn actionHandler.effect(...args);\n\t}\n\n\treturn {\n\t\tstopPropagation: stopPropagation || isPrivate,\n\t\teffect: typeof actionHandler.effect === 'function' ? effectDelegate : actionHandler.effect,\n\t\thandlers: normalizeHandlers(handlers, tagName),\n\t\targs,\n\t\tinterceptors: mapInterceptors(interceptors),\n\t\ttarget,\n\t\tmodifier: normalizeModifiers(modifiers, modifier),\n\t\tcapture,\n\t\teventHandler,\n\t\tdescendantOnly\n\t};\n}\n","const TAKE_LATEST = 'takeLatest';\n\nexport default function normalizeModifiers(modifiers, modifier) {\n\treturn Object.keys(modifier).length ? modifier : modifiers.length ? {name: TAKE_LATEST} : {};\n}\n","export {appendToPayload} from './appendToPayload';\nexport {createMetaData} from './createMetaData';\nexport {isPropertyUpdate} from './isPropertyUpdate';\nexport {validateActionPayload} from './validateActionPayload';\nexport {getComponentName} from './getComponentName';\nexport {isHoisted, getHoistTarget} from '../../utils';\nexport {isInternalActionType} from './isInternalActionType';\nexport {getInternalActionName} from './getInternalActionName';\nexport {createEventActionDetails} from './createEventActionDetails';\nexport {wrapDispatch} from './wrapDispatch';\nexport {default as isStoreUpdate} from './isStoreUpdate';\nexport {hasActionHandlerForType} from './hasActionHandlerForType';\nexport {wasActionDispatchedByDescendant} from './wasActionDispatchedByDescendant';\nexport {applyRuntimeActionHandlers} from './applyRuntimeActionHandlers';\nexport {normalizeActionMeta} from '../../utils/';\nexport {skipForDetachedComponent} from './skipForDetachedComponent';\n","import {APPEND_TO_PAYLOAD_PROP_NAME} from '../../constants';\n\nexport function appendToPayload(el, payload) {\n\tconst appendToPayload = el[APPEND_TO_PAYLOAD_PROP_NAME];\n\tif (!appendToPayload) return payload;\n\n\treturn {...payload, ...appendToPayload};\n}\n","import {guid} from '@servicenow/ui-internal';\nimport {getComponentName} from './getComponentName';\nimport {COMPONENT_ID, ROOT_NODE} from '../../symbols';\nimport {SEISMIC_HOIST_TAG_NAME, APPEND_TO_META_PROP_NAME} from '../../constants';\n\nexport function createMetaData(host, actionMeta, hostVariables) {\n\tconst componentName = getComponentName(host) || actionMeta.componentName;\n\tconst id = hostVariables[COMPONENT_ID];\n\tconst appendToMeta = actionMeta.retargeted ? actionMeta.appended : host[APPEND_TO_META_PROP_NAME];\n\n\treturn {\n\t\t...actionMeta,\n\t\t...(appendToMeta !== undefined ? {appended: appendToMeta} : {}),\n\t\thoistHost:\n\t\t\thostVariables[ROOT_NODE].host.tagName === SEISMIC_HOIST_TAG_NAME\n\t\t\t\t? hostVariables[ROOT_NODE].host\n\t\t\t\t: undefined,\n\t\tcomponentName,\n\t\tid,\n\t\tactionId: guid()\n\t};\n}\n","import {getHostVariables} from '../../utils';\nimport {COMPONENT_NAME_PROP, COMPONENT_NAME_ATTR} from '../../constants';\nimport {PROPS} from '../../symbols';\n\nexport function getComponentName(el) {\n\tconst hostVariables = getHostVariables(el);\n\treturn hostVariables[PROPS] && hostVariables[PROPS].hasOwnProperty(COMPONENT_NAME_PROP)\n\t\t? hostVariables[PROPS][COMPONENT_NAME_PROP]\n\t\t: el[COMPONENT_NAME_PROP] || el.getAttribute(COMPONENT_NAME_ATTR);\n}\n","export {default as assertValidPropertyNames} from './assertValidPropertyNames';\nexport {default as getHostVariables} from './getHostVariables';\nexport {default as resolveProperties} from './resolveProperties';\nexport {default as resolveRenderer} from './resolveRenderer';\nexport {default as getInitialPropertyValue} from './getInitialPropertyValue';\nexport {default as filterPropertyDefinitions} from './filterPropertyDefinitions';\nexport {default as createStyleFragment, removeStyleFragmentFromCache} from './createStyleFragment';\nexport {default as relfectQueue} from './reflectQueue';\nexport {default as isReflecting} from './isReflecting';\nexport {default as clearReflection} from './clearReflection';\nexport {default as isComputedProperty} from './isComputedProperty';\nexport {default as toAttributeName} from './toAttributeName';\nexport {default as toPropertyName} from './toPropertyName';\nexport {default as isReadOnlyProperty} from './isReadOnlyProperty';\nexport {default as shouldSetAttribute} from './shouldSetAttribute';\nexport {default as shouldSetProperty} from './shouldSetProperty';\nexport {default as beforeNextTick} from './beforeNextTick';\nexport {default as measure} from './measure';\nexport {default as selectablePropertyResolver} from './selectablePropertyResolver';\nexport {default as triggerComponentUpdates} from './triggerComponentUpdates';\nexport {default as triggerPropertyChangeAction} from './triggerPropertyChangeAction';\nexport {default as updateSelectedPropertyMappings} from './updateSelectedPropertyMappings';\nexport {default as updateResolvedSelectedPropertyMappings} from './updateResolvedSelectedPropertyMappings';\nexport {default as createLifecycleFunctions} from './createLifecycleFunctions';\nexport {emitNowUiEvent} from './emitNowUiEvent';\nexport {default as camelCaseProperties} from './camelCaseProperties';\nexport {default as unescapeReservedCharacters} from './unescapeReservedCharacters';\nexport {default as isHoisted} from './isHoisted';\nexport {getHoistTarget} from './getHoistTarget';\nexport {default as getRootNode} from './getRootNode';\nexport {default as applyMetrics} from './applyMetrics';\nexport {default as resolveComputedProperties} from './resolveComputedProperties';\nexport {default as computeProperties} from './computeProperties';\nexport {normalizeActionMeta} from './normalizeActionMeta';\nexport {default as intersectionObserver} from './intersectionObserver';\nexport {default as applyIntersectStyles} from './applyIntersectStyles';\nexport {declarativeOperations} from './operators';\nexport {default as shouldOptOutOfDeepCompareForPage} from './shouldOptOutOfDeepCompareForPage';\nexport {default as styleSheetsContentCache} from './styleSheetsContentCache';\nexport {default as resolveStylesheetsContent} from './resolveStylesheetsContent';\nexport {default as markComponentInteractive} from './markComponentInteractive';\nexport {default as createOnStateChangeArgs} from './createOnStateChangeArgs';\nexport {default as getAncestorNode} from './getAncestorNode';\nexport {\n\tsetUpdateConfigResolver,\n\taddUpdateCustomElementObserver,\n\tunstableUpdateCustomElement\n} from './updateCustomElement';\nexport {default as getSpanOptions} from './getSpanOptions';\nexport {default as resolveParentTraceId} from './resolveParentTraceId';\nexport {default as styleSheetsRequestCache} from './styleSheetsRequestCache';\n","import log from '../log';\nimport {allLogTypes as logTypes} from '@servicenow/ui-internal';\n\nfunction isAlphaNumeric(str) {\n\treturn /^[a-z]+[a-z0-9]*$/i.test(str);\n}\n\nfunction assertValidPropertyNames(properties) {\n\tif (process.env.NODE_ENV === 'development') {\n\t\tconst {length: propertiesCount} = properties;\n\t\tfor (let i = 0; i < propertiesCount; i++) {\n\t\t\tconst property = properties[i];\n\t\t\tif (isAlphaNumeric(property) === false) {\n\t\t\t\tlog(`Invalid property name ${property}`, {\n\t\t\t\t\tlevel: logTypes.ERROR,\n\t\t\t\t\torigin: 'assertValidPropertyNames'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}\n\nexport default assertValidPropertyNames;\n","const shouldReturnEmptyString = (schema = {}) =>\n\tschema.type === 'string' ||\n\t(Array.isArray(schema.type) && schema.type.indexOf('string') !== -1) ||\n\t(schema.oneOf && schema.oneOf.find(({type}) => type === 'string'));\n\n/**\n * @private\n * @param {*} value\n * @param {*} defaultValue\n * @returns resolved safe string value\n */\nconst fetchSafeStringValue = (value, defaultValue) => {\n\tif (value || defaultValue === undefined) return value;\n\n\treturn defaultValue;\n};\n\n/**\n * @private\n * @param {*} propertyDefinition\n * @param {*} values\n * @param {*} defaultValue\n * @returns resolved value\n **/\nconst resolveValue = (propertyDefinition, values, defaultValue) => {\n\tconst {length: valueCount} = values;\n\tvar hasSchema = propertyDefinition?.schema;\n\n\tfor (let i = 0; i < valueCount; i++) {\n\t\tconst value = values[i];\n\t\tif (typeof value === 'string') {\n\t\t\tif (!hasSchema) return fetchSafeStringValue(value, defaultValue);\n\t\t\telse if (\n\t\t\t\tvalue.length ||\n\t\t\t\t(propertyDefinition.schema && shouldReturnEmptyString(propertyDefinition.schema))\n\t\t\t)\n\t\t\t\treturn value;\n\t\t} else {\n\t\t\tif (value !== undefined && !propertyDefinition.readOnly) return value;\n\t\t}\n\t}\n\n\treturn defaultValue;\n};\n\nexport default function resolveProperties(\n\tstate = {properties: {}},\n\tpropertyDefinitions,\n\tinstanceProperties = {}\n) {\n\tconst resolvedProperties = {};\n\n\tfor (const k in propertyDefinitions) {\n\t\tresolvedProperties[k] = resolveValue(\n\t\t\tpropertyDefinitions[k],\n\t\t\t[instanceProperties[k], state.properties[k]],\n\t\t\tpropertyDefinitions[k].default\n\t\t);\n\t}\n\n\treturn resolvedProperties;\n}\n","import {DEFAULT_RENDERER} from '../defaults';\nimport {get} from '@servicenow/ui-internal';\n\nexport default function resolveRenderer(config = {}) {\n\tconst type = get(config, 'renderer.type', config.type || DEFAULT_RENDERER.type);\n\tconst coeffects = get(config, 'renderer.coeffects', null);\n\tconst transformProps = get(\n\t\tconfig,\n\t\t'renderer.transformProps',\n\t\tconfig.transformProps || DEFAULT_RENDERER.transformState\n\t);\n\tconst transformState = get(\n\t\tconfig,\n\t\t'renderer.transformState',\n\t\tconfig.transformState || transformProps\n\t);\n\tconst view = get(config, 'renderer.view', config.view || DEFAULT_RENDERER.view);\n\n\treturn {\n\t\ttype,\n\t\ttransformState,\n\t\tview,\n\t\tcoeffects\n\t};\n}\n","import renderer from '@servicenow/ui-renderer-default';\n\nexport const DEFAULT_RENDERER = {\n\ttype: renderer,\n\ttransformState: state => state,\n\tview: () => null\n};\n","import {createRef} from '@servicenow/ui-internal';\nimport onStateChange from './onStateChange';\nimport onDisconnect from './onDisconnect';\nimport createAriaRef from './createAriaRef';\nimport createSlot from './createSlot';\nimport createElement from './createElement';\nimport createElementFromNode from './createElementFromNode';\nimport createElementFromString from './createElementFromString';\nimport dangerouslyCreateElementFromString from './dangerouslyCreateElementFromString';\nimport Fragment from './fragment';\n\nexport default {\n\tcreateSlot,\n\tcreateElement,\n\tcreateElementFromNode,\n\tcreateElementFromString,\n\tdangerouslyCreateElementFromString,\n\tcreateRef,\n\tonDisconnect,\n\tonStateChange,\n\tFragment\n};\n\nexport {\n\tcreateAriaRef,\n\tcreateSlot,\n\tcreateElement,\n\tcreateElementFromNode,\n\tcreateElementFromString,\n\tdangerouslyCreateElementFromString,\n\tcreateRef,\n\tFragment\n};\n","import {\n\tcreateInteractionId,\n\tsetInteractionId,\n\tmark,\n\ttypes as metrics\n} from '@servicenow/ui-metrics';\nimport {\n\terrorTypes,\n\tlocations,\n\ttoLower,\n\tallLogTypes as logTypes,\n\tACTIVE_SPAN,\n\tVARIABLES,\n\tEXISTING_SHADOW_ROOT_ON_CREATE\n} from '@servicenow/ui-internal';\nimport {patch, hydrate} from './utils';\nimport {VNODE, INTERACTION_ID} from './symbols';\nimport createElementFromNode, {\n\tcreateElementFromServerSideRenderedNode\n} from './createElementFromNode';\nimport log from './log';\n\nconst noop = () => null;\n\nconst helperNoop = Object.assign(noop, {\n\tdispatch: noop,\n\tupdateState: noop,\n\tupdateProperties: noop\n});\n\n/**\n * Renders a view using Snabbdom\n * @method render\n * @param {HTMLElement} element Element to append rendered view to\n * @param {Function} handler Render function\n * @param {Object} [props = {}] Optional properties object\n * @param {Object } [helpers] Optional object containing helpful functions, such as dispatch, updateState, and updateProperties\n * @param {Function} [helpers.dispatch] Optional function for dispatching actions\n * @param {Function} [helpers.updateState] Optional function for updating component state\n * @param {Function} [helpers.updateProperties] Optional function for updating component properties\n * @param {String} [interactionId] Optional identifier used by ui-metrics for instrumentation\n * @returns {VNode}\n */\nexport default function onStateChange(\n\telement,\n\thandler,\n\tprops = {},\n\thelpers = helperNoop,\n\tinteractionId = createInteractionId(),\n\tspan\n) {\n\t// The renderer is sometimes used to render DOM to native elements, typically in test fixtures\n\t// or example code.  Since we're not in a shadowRoot, we're not in a framework element, we\n\t// shouldn't mark as context is not complete, e.g. componentId, componentName, etc are missing\n\t// from `element.host`.\n\tconst isShadowRoot = element instanceof ShadowRoot;\n\tconst getHostVariables = () => element?.host?.[VARIABLES];\n\n\ttry {\n\t\tconst result = handler(props, helpers);\n\t\tconst serverSideRendered = getHostVariables()?.[EXISTING_SHADOW_ROOT_ON_CREATE];\n\t\tconst prev =\n\t\t\telement[VNODE] ||\n\t\t\t(serverSideRendered\n\t\t\t\t? createElementFromServerSideRenderedNode(element)\n\t\t\t\t: createElementFromNode(element));\n\t\tconst styles = [];\n\t\tconst {children} = prev;\n\t\tconst {length: childrenCount} = children;\n\t\tfor (let i = 0; i < childrenCount; i++) {\n\t\t\tconst child = children[i];\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\ttypeof child.sel === 'string' &&\n\t\t\t\t(child.sel.startsWith('style') || child.sel.startsWith('link'))\n\t\t\t)\n\t\t\t\tstyles.push(child);\n\t\t}\n\n\t\tconst next = {\n\t\t\t...prev,\n\t\t\tchildren: [].concat(result, styles)\n\t\t};\n\n\t\tconst {host = {}} = element;\n\t\thost[INTERACTION_ID] = interactionId; // eslint-disable-line no-param-reassign\n\t\tif (span) host[ACTIVE_SPAN] = span; // eslint-disable-line no-param-reassign\n\t\tif (isShadowRoot) mark(host, interactionId, metrics.PATCH_START, {location: locations.VIEW});\n\n\t\tif (isShadowRoot) mark(host, interactionId, metrics.PATCH_END, {location: locations.VIEW});\n\n\t\tlet resultVnode = element[VNODE];\n\t\tif (!element[VNODE] && result && serverSideRendered) {\n\t\t\tconst {error} = hydrate(prev, next);\n\t\t\tif (!error) {\n\t\t\t\tresultVnode = next;\n\t\t\t} else {\n\t\t\t\tconst tagName = toLower(host.tagName);\n\t\t\t\tconst componentId = host.getAttribute('component-id');\n\n\t\t\t\tlog(\n\t\t\t\t\t`Error occurred while hydrating <${tagName} component-id=\"${componentId}\"/>. Mismatch between server rendered: ${error.server} and client rendered: ${error.client}. Falling back to patching the DOM.`,\n\t\t\t\t\t{origin: 'hydrate'}\n\t\t\t\t);\n\t\t\t\tresultVnode = patch(prev, {\n\t\t\t\t\t...prev,\n\t\t\t\t\tchildren: []\n\t\t\t\t});\n\t\t\t\tresultVnode = patch(resultVnode, next);\n\t\t\t}\n\t\t} else {\n\t\t\tresultVnode = patch(prev, next);\n\t\t}\n\n\t\telement[VNODE] = resultVnode; // eslint-disable-line no-param-reassign\n\t\tdelete host[INTERACTION_ID]; // eslint-disable-line no-param-reassign\n\t\tqueueMicrotask(() => {\n\t\t\tdelete host[ACTIVE_SPAN]; // eslint-disable-line no-param-reassign\n\t\t});\n\t\treturn resultVnode;\n\t} catch (e) {\n\t\tconst {host = {}} = element;\n\t\tconst metadata = setInteractionId({internal: true}, interactionId);\n\n\t\tif (isShadowRoot) mark(host, interactionId, metrics.ERROR, {location: locations.VIEW});\n\n\t\thelpers.dispatch(\n\t\t\terrorTypes.COMPONENT_ERROR_THROWN,\n\t\t\t{\n\t\t\t\thost,\n\t\t\t\tlocation: locations.VIEW,\n\t\t\t\terror: e,\n\t\t\t\tdetails: {boundaryError: true}\n\t\t\t},\n\t\t\tmetadata,\n\t\t\ttrue\n\t\t);\n\n\t\tconst tagName = toLower(host.tagName);\n\t\tconst componentId = host.getAttribute('component-id');\n\n\t\tlog(\n\t\t\t`An Error occurred in <${tagName} component-id=\"${componentId}\"/>. COMPONENT_ERROR_THROWN action type is dispatched with error details.`,\n\t\t\t{error: e, level: logTypes.ERROR, host, origin: 'onStateChange'}\n\t\t);\n\n\t\treturn createElementFromNode(element);\n\t}\n}\n","export {default as formatProps} from './formatProps';\nexport {default as formatChildren} from './formatChildren';\nexport {default as flat} from './flat';\nexport {default as patch} from './patch';\nexport {default as validateProps} from './validateProps';\nexport {hydrate} from './hydrate';\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport {createInteractionId, mark, types as metrics} from '@servicenow/ui-metrics';\nimport {\n\tsandbox,\n\tlocations,\n\tcamelCase,\n\tmemoize,\n\tallLogTypes as logTypes\n} from '@servicenow/ui-internal';\nimport {\n\tMODULES,\n\tARIA_PREFIX,\n\tATTR_PREFIX,\n\tDATA_PREFIX,\n\tHOOK_PREFIX,\n\tEVENT_PREFIX,\n\tCUSTOM_ELEMENT_ATTRIBUTES,\n\tNON_CUSTOM_ELEMENT_ATTRIBUTES,\n\tACRONYM_PROPS,\n\tDEPRECATED_HTML_ACRONYM_PROPS,\n\tDANGEROUS_HTML_ACRONYM_PROPS_MAP,\n\tDEPRECATED_HTML_ACRONYM_PROPS_MAP\n} from '../constants';\nimport log from '../log';\nimport {INTERACTION_ID} from '../symbols';\n\nconst {MEMOIZE_SNABBDOM_PROP_PARTS} = configConstants;\nconst shouldMemoizePropParts = getConfigItem(MEMOIZE_SNABBDOM_PROP_PARTS);\n\nconst isNil = value => value === null || value === undefined;\n\n// TODO: investigate the benifit and drawbacks of memoizing this.  This does make it faster but at the cost of memory.\nconst memoizedCamelCase = memoize(camelCase, {profileName: 'snabbdom-camelCase'});\nconst isCustomElement = tag => tag.indexOf('-') > 0;\nconst memoizedIsCustomElement = memoize(isCustomElement, {profileName: 'snabbdom-isCustomElement'});\n\nfunction convertToLoadedEvent(value) {\n\tconst [fn, ...args] = value;\n\treturn (event, vnode) => {\n\t\tfn.apply(vnode, [...args, event, vnode]);\n\t};\n}\n\nconst getPropKeyParts = key => {\n\tconst index = key.indexOf('-');\n\tconst prefix = index > 0 ? key.substring(0, index) : null;\n\tconst name =\n\t\tprefix === ATTR_PREFIX || DATA_PREFIX || HOOK_PREFIX || EVENT_PREFIX\n\t\t\t? key.slice(index + 1)\n\t\t\t: key;\n\n\treturn {index, prefix, name};\n};\n\nconst memoizedGetPropKeyParts = shouldMemoizePropParts\n\t? memoize(getPropKeyParts, {profileName: 'snabbdom-getPropKeyParts'})\n\t: getPropKeyParts;\n\n/**\n * Move props into the proper module fields so they can properly be handled by modules registered with snabbdom.\n * @private\n * @method formatProps\n * @param tagName element name\n * @param {object} props Properties to format by prefixes\n * @returns {{hook: {}, ref: {}, now-aria-ref: {}, on: {}, style: {}, class: {}, attrs: {}, props: {}, dataset: {}}}\n */\nexport default function formatProps(tagName, props) {\n\tconst result = {\n\t\thook: {},\n\t\tref: null,\n\t\t'now-aria-ref': null,\n\t\ton: {},\n\t\tstyle: {},\n\t\tclass: {},\n\t\tattrs: {},\n\t\tprops: {}\n\t};\n\n\tconst isCustomTag = memoizedIsCustomElement(tagName);\n\n\t// this is the fastest way to iterate over an object's keys:\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tconst keys = Object.keys(props);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key = keys[i];\n\t\tconst value = props[key];\n\t\tif (key === 'key') {\n\t\t\tresult.key = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst {index: keyIndex, prefix, name: keyName} = memoizedGetPropKeyParts(key);\n\t\tif (keyIndex > 0) {\n\t\t\tif (prefix === ATTR_PREFIX) {\n\t\t\t\tresult.attrs[keyName] = isNil(value) ? false : value;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (prefix === ARIA_PREFIX) {\n\t\t\t\tresult.attrs[key] = isNil(value) ? false : value;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (prefix === DATA_PREFIX) {\n\t\t\t\t// Perf: Defer defining dataset on the resulting vnode as snabbdom will\n\t\t\t\t// otherwise do un-necessary reading from the DOM in the dataset module.\n\t\t\t\tif (!result.dataset) result.dataset = {};\n\n\t\t\t\tresult.dataset[keyName] = value;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (prefix === HOOK_PREFIX && typeof value === 'function') {\n\t\t\t\tconst name = keyName;\n\n\t\t\t\tresult.hook[name] = (vnode, ...rest) => {\n\t\t\t\t\tconst host = vnode.elm && vnode.elm.getRootNode().host;\n\n\t\t\t\t\tif (!host) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\treturn value(vnode, ...rest);\n\t\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t\tlog(`An Error occured while executing hook-${name}`, {\n\t\t\t\t\t\t\t\terror: e,\n\t\t\t\t\t\t\t\tlevel: logTypes.ERROR,\n\t\t\t\t\t\t\t\torigin: 'formatProps'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn sandbox(\n\t\t\t\t\t\t(host, vnode, ...rest) => {\n\t\t\t\t\t\t\tconst interactionId = host[INTERACTION_ID] || createInteractionId();\n\t\t\t\t\t\t\tmark(host, interactionId, metrics.HOOK_START, {name, tagName: vnode.elm.tagName});\n\t\t\t\t\t\t\tvalue(vnode, ...rest);\n\t\t\t\t\t\t\tmark(host, interactionId, metrics.HOOK_END, {name, tagName: vnode.elm.tagName});\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\targs: [host, vnode, ...rest],\n\t\t\t\t\t\t\tdispatch: host.helpers,\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\tlocation: locations.VIEW,\n\t\t\t\t\t\t\tdetails: {name},\n\t\t\t\t\t\t\tlog\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t};\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Backwards compatibility for snabbdom's `loaded event` feature:\n\t\t\t//\n\t\t\t//   on-click={[function handler() {}, a, b]}\n\t\t\t//\n\t\t\t// would automatically bind `a` and `b` as the first args to the handler:\n\t\t\t//\n\t\t\t//   handler(a, b, event, vnode);\n\t\t\t//\n\t\t\t// This was supported in snabbdom@0.7 but removed in snabbdom@2.0\n\t\t\t// https://github.com/snabbdom/snabbdom/pull/804\n\t\t\tif (\n\t\t\t\tprefix === EVENT_PREFIX &&\n\t\t\t\tArray.isArray(value) &&\n\t\t\t\ttypeof value[0] === 'function' &&\n\t\t\t\tvalue.length > 1\n\t\t\t) {\n\t\t\t\tresult.on[keyName] = convertToLoadedEvent(value);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (MODULES.includes(prefix)) {\n\t\t\t\tresult[prefix][keyName] = value;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tif (MODULES.includes(key)) {\n\t\t\tresult[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (isCustomTag) {\n\t\t\tif (CUSTOM_ELEMENT_ATTRIBUTES.includes(key)) {\n\t\t\t\tresult.attrs[key] = isNil(value) ? false : value;\n\t\t\t\tif (!result.key && key === 'component-id') result.key = value;\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\tconst lowerKey = memoizedCamelCase(key).toLowerCase();\n\t\t\t\tif (\n\t\t\t\t\tNON_CUSTOM_ELEMENT_ATTRIBUTES.includes(lowerKey) &&\n\t\t\t\t\t!NON_CUSTOM_ELEMENT_ATTRIBUTES.includes(key)\n\t\t\t\t) {\n\t\t\t\t\tlog(\n\t\t\t\t\t\t`For tag <${tagName}>: the property '${key}' matches the standard HTML5 attribute '${lowerKey}'. Please use standard HTML attributes & avoid props matching standard HTML attributes`,\n\t\t\t\t\t\t{level: logTypes.WARN, tagName}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (NON_CUSTOM_ELEMENT_ATTRIBUTES.includes(key))\n\t\t\t\tresult.attrs[key] = isNil(value) ? false : value;\n\t\t}\n\n\t\tif (ACRONYM_PROPS.includes(key)) {\n\t\t\tif (DEPRECATED_HTML_ACRONYM_PROPS.includes(key)) {\n\t\t\t\tlog(`${key} deprecated, replace with ${DEPRECATED_HTML_ACRONYM_PROPS_MAP[key]}.`, {\n\t\t\t\t\tlevel: logTypes.WARN,\n\t\t\t\t\torigin: 'formatProps'\n\t\t\t\t});\n\t\t\t}\n\t\t\tresult.props[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (\n\t\t\tDANGEROUS_HTML_ACRONYM_PROPS_MAP[key] &&\n\t\t\ttypeof value === 'object' &&\n\t\t\tvalue.__html !== undefined\n\t\t) {\n\t\t\tresult.props[DANGEROUS_HTML_ACRONYM_PROPS_MAP[key]] = value.__html;\n\t\t\tdelete result.attrs[key];\n\t\t\tcontinue;\n\t\t}\n\n\t\tresult.props[memoizedCamelCase(key)] = value;\n\t}\n\n\treturn result;\n}\n","export const ARIA_PREFIX = 'aria';\nexport const ATTR_PREFIX = 'attr';\nexport const DATA_PREFIX = 'data';\nexport const HOOK_PREFIX = 'hook';\nexport const EVENT_PREFIX = 'on';\n\nexport const MODULES = [\n\t'hook',\n\t'ref',\n\t'now-aria-ref',\n\t'on',\n\t'style',\n\t'class',\n\t'attrs',\n\t'props',\n\t'dataset'\n];\n\nexport const ACRONYM_PROPS = ['innerHTML', 'outerHTML'];\nexport const DEPRECATED_HTML_ACRONYM_PROPS = ['innerHTML', 'outerHTML'];\nexport const DEPRECATED_HTML_ACRONYM_PROPS_MAP = {\n\tinnerHTML: 'dangerouslySetInnerHTML',\n\touterHTML: 'dangerouslySetOuterHTML'\n};\nexport const DANGEROUS_HTML_ACRONYM_PROPS_MAP = {\n\tdangerouslySetInnerHTML: 'innerHTML',\n\tdangerouslySetOuterHTML: 'outerHTML'\n};\n\nexport const APPEND_TO_PAYLOAD = 'append-to-payload';\nexport const APPEND_TO_META = 'append-to-meta';\n\nexport const BASE_ATTRIBUTES = [\n\t'path',\n\t'context',\n\t'context-modifier',\n\t'key',\n\t'alt',\n\t'async',\n\t'autocomplete',\n\t'autofocus',\n\t'autoplay',\n\t'capture',\n\t'checked',\n\t'default',\n\t'defer',\n\t'disabled',\n\t'draggable',\n\t'dropzone',\n\t'hidden',\n\t'href',\n\t'hreflang',\n\t'http-equiv',\n\t'icon',\n\t'id',\n\t'is',\n\t'maxlength',\n\t'minlength',\n\t'media',\n\t'method',\n\t'multiple',\n\t'name',\n\t'placeholder',\n\t'readonly',\n\t'rel',\n\t'required',\n\t'reversed',\n\t'role',\n\t'rows',\n\t'rowspan',\n\t'selected',\n\t'slot',\n\t'src',\n\t'tabindex',\n\t'target',\n\t'title',\n\t'type',\n\t'value'\n];\n\nexport const CUSTOM_ELEMENT_ATTRIBUTES = [\n\t...BASE_ATTRIBUTES,\n\t'component-id',\n\t'listen-to',\n\t'dangerouslySetInnerHTML',\n\t'dangerouslySetOuterHTML',\n\t'suppressContentEditableWarning',\n\t'suppressHydrationWarning'\n];\n\nexport const NON_CUSTOM_ELEMENT_ATTRIBUTES = [\n\t...BASE_ATTRIBUTES,\n\t'accept',\n\t'accept-charset',\n\t'accesskey',\n\t'action',\n\t'align',\n\t'allow',\n\t'autocapitalize',\n\t'background',\n\t'bgcolor',\n\t'border',\n\t'buffered',\n\t'challenge',\n\t'charset',\n\t'cite',\n\t'code',\n\t'codebase',\n\t'color',\n\t'cols',\n\t'colspan',\n\t'content',\n\t'contenteditable',\n\t'contextmenu',\n\t'controls',\n\t'coords',\n\t'crossorigin',\n\t'datetime',\n\t'decoding',\n\t'dir',\n\t'dirname',\n\t'download',\n\t'enctype',\n\t'for',\n\t'form',\n\t'formaction',\n\t'formenctype',\n\t'formmethod',\n\t'formnovalidate',\n\t'formtarget',\n\t'headers',\n\t'height',\n\t'high',\n\t'integrity',\n\t'intrinsicsize',\n\t'inputmode',\n\t'ismap',\n\t'itemprop',\n\t'keytype',\n\t'kind',\n\t'label',\n\t'lang',\n\t'language',\n\t'list',\n\t'loop',\n\t'low',\n\t'manifest',\n\t'max',\n\t'min',\n\t'muted',\n\t'novalidate',\n\t'open',\n\t'optimum',\n\t'pattern',\n\t'ping',\n\t'poster',\n\t'preload',\n\t'radiogroup',\n\t'referrerpolicy',\n\t'sandbox',\n\t'scope',\n\t'scoped',\n\t'shape',\n\t'size',\n\t'sizes',\n\t'span',\n\t'spellcheck',\n\t'srcdoc',\n\t'srclang',\n\t'srcset',\n\t'start',\n\t'step',\n\t'summary',\n\t'translate',\n\t'usemap',\n\t'width',\n\t'wrap'\n];\n","import {createLogger} from '@servicenow/ui-internal';\n\nexport default createLogger({\n\tmodule: '@servicenow/ui-renderer-snabbdom'\n});\n","export const VNODE = Symbol('__vnode__');\nexport const INTERACTION_ID = Symbol('__interaction_id__');\n","/**\n * Formats children to be rendered by snabbdom\n * - recursively flatten + compact arrays\n * - filter out boolean/Symbol values (snabbdom throws on these)\n */\n\nfunction recurse(arr, result) {\n\tconst {length} = arr;\n\tfor (let i = 0; i < length; i++) {\n\t\tconst item = arr[i];\n\t\tif (Array.isArray(item)) recurse(item, result);\n\t\telse if (\n\t\t\ttypeof item !== 'boolean' &&\n\t\t\ttypeof item !== 'symbol' &&\n\t\t\titem !== null &&\n\t\t\titem !== undefined\n\t\t)\n\t\t\tresult.push(item);\n\t}\n\n\treturn result;\n}\n\nexport default function formatChildren(arr) {\n\treturn recurse(arr, []);\n}\n","// this is required for envs that don't support arr.flat, i.e., JSDOM\n// babel polyfill doesn't package flat polyfill\nexport default function flat(arr) {\n\tif (arr.flat) return arr.flat(Infinity);\n\n\treturn arr.reduce(function reducer(acc, val) {\n\t\tif (Array.isArray(val)) val.reduce(reducer, acc);\n\t\telse acc.push(val);\n\t\treturn acc;\n\t}, []);\n}\n","// TODO (webpack v5): drop the `build/package/` part of these import paths.\n// Snabbdom>=1 uses the package.json#exports field that webpack v4 doesn't know\n// about\n//\n// https://github.com/webpack/webpack/issues/9509\n// https://webpack.js.org/guides/package-exports/\nimport {init} from 'snabbdom/build/package/init';\nimport {classModule} from 'snabbdom/build/package/modules/class';\nimport {styleModule} from 'snabbdom/build/package/modules/style';\nimport {eventListenersModule} from 'snabbdom/build/package/modules/eventlisteners';\nimport {datasetModule} from 'snabbdom/build/package/modules/dataset';\nimport {denyUnlessSigned} from 'snabbdom-signature';\nimport {ref, props, attributes} from '../modules';\n\nconst patch = init([\n\tprops,\n\tclassModule,\n\tstyleModule,\n\teventListenersModule,\n\tattributes,\n\tdatasetModule,\n\tref,\n\tdenyUnlessSigned\n]);\n\nexport default patch;\n","import { Module } from './modules/module'\nimport { vnode, VNode } from './vnode'\nimport * as is from './is'\nimport { htmlDomApi, DOMAPI } from './htmldomapi'\n\ntype NonUndefined<T> = T extends undefined ? never : T\n\nfunction isUndef (s: any): boolean {\n  return s === undefined\n}\nfunction isDef<A> (s: A): s is NonUndefined<A> {\n  return s !== undefined\n}\n\ntype VNodeQueue = VNode[]\n\nconst emptyNode = vnode('', {}, [], undefined, undefined)\n\nfunction sameVnode (vnode1: VNode, vnode2: VNode): boolean {\n  return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel\n}\n\nfunction isVnode (vnode: any): vnode is VNode {\n  return vnode.sel !== undefined\n}\n\ntype KeyToIndexMap = {[key: string]: number}\n\ntype ArraysOf<T> = {\n  [K in keyof T]: Array<T[K]>;\n}\n\ntype ModuleHooks = ArraysOf<Required<Module>>\n\nfunction createKeyToOldIdx (children: VNode[], beginIdx: number, endIdx: number): KeyToIndexMap {\n  const map: KeyToIndexMap = {}\n  for (let i = beginIdx; i <= endIdx; ++i) {\n    const key = children[i]?.key\n    if (key !== undefined) {\n      map[key] = i\n    }\n  }\n  return map\n}\n\nconst hooks: Array<keyof Module> = ['create', 'update', 'remove', 'destroy', 'pre', 'post']\n\nexport function init (modules: Array<Partial<Module>>, domApi?: DOMAPI) {\n  let i: number\n  let j: number\n  const cbs: ModuleHooks = {\n    create: [],\n    update: [],\n    remove: [],\n    destroy: [],\n    pre: [],\n    post: []\n  }\n\n  const api: DOMAPI = domApi !== undefined ? domApi : htmlDomApi\n\n  for (i = 0; i < hooks.length; ++i) {\n    cbs[hooks[i]] = []\n    for (j = 0; j < modules.length; ++j) {\n      const hook = modules[j][hooks[i]]\n      if (hook !== undefined) {\n        (cbs[hooks[i]] as any[]).push(hook)\n      }\n    }\n  }\n\n  function emptyNodeAt (elm: Element) {\n    const id = elm.id ? '#' + elm.id : ''\n    const c = elm.className ? '.' + elm.className.split(' ').join('.') : ''\n    return vnode(api.tagName(elm).toLowerCase() + id + c, {}, [], undefined, elm)\n  }\n\n  function createRmCb (childElm: Node, listeners: number) {\n    return function rmCb () {\n      if (--listeners === 0) {\n        const parent = api.parentNode(childElm) as Node\n        api.removeChild(parent, childElm)\n      }\n    }\n  }\n\n  function createElm (vnode: VNode, insertedVnodeQueue: VNodeQueue): Node {\n    let i: any\n    let data = vnode.data\n    if (data !== undefined) {\n      const init = data.hook?.init\n      if (isDef(init)) {\n        init(vnode)\n        data = vnode.data\n      }\n    }\n    const children = vnode.children\n    const sel = vnode.sel\n    if (sel === '!') {\n      if (isUndef(vnode.text)) {\n        vnode.text = ''\n      }\n      vnode.elm = api.createComment(vnode.text!)\n    } else if (sel !== undefined) {\n      // Parse selector\n      const hashIdx = sel.indexOf('#')\n      const dotIdx = sel.indexOf('.', hashIdx)\n      const hash = hashIdx > 0 ? hashIdx : sel.length\n      const dot = dotIdx > 0 ? dotIdx : sel.length\n      const tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel\n      const elm = vnode.elm = isDef(data) && isDef(i = data.ns)\n        ? api.createElementNS(i, tag)\n        : api.createElement(tag)\n      if (hash < dot) elm.setAttribute('id', sel.slice(hash + 1, dot))\n      if (dotIdx > 0) elm.setAttribute('class', sel.slice(dot + 1).replace(/\\./g, ' '))\n      for (i = 0; i < cbs.create.length; ++i) cbs.create[i](emptyNode, vnode)\n      if (is.array(children)) {\n        for (i = 0; i < children.length; ++i) {\n          const ch = children[i]\n          if (ch != null) {\n            api.appendChild(elm, createElm(ch as VNode, insertedVnodeQueue))\n          }\n        }\n      } else if (is.primitive(vnode.text)) {\n        api.appendChild(elm, api.createTextNode(vnode.text))\n      }\n      const hook = vnode.data!.hook\n      if (isDef(hook)) {\n        hook.create?.(emptyNode, vnode)\n        if (hook.insert) {\n          insertedVnodeQueue.push(vnode)\n        }\n      }\n    } else {\n      vnode.elm = api.createTextNode(vnode.text!)\n    }\n    return vnode.elm\n  }\n\n  function addVnodes (\n    parentElm: Node,\n    before: Node | null,\n    vnodes: VNode[],\n    startIdx: number,\n    endIdx: number,\n    insertedVnodeQueue: VNodeQueue\n  ) {\n    for (; startIdx <= endIdx; ++startIdx) {\n      const ch = vnodes[startIdx]\n      if (ch != null) {\n        api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before)\n      }\n    }\n  }\n\n  function invokeDestroyHook (vnode: VNode) {\n    const data = vnode.data\n    if (data !== undefined) {\n      data?.hook?.destroy?.(vnode)\n      for (let i = 0; i < cbs.destroy.length; ++i) cbs.destroy[i](vnode)\n      if (vnode.children !== undefined) {\n        for (let j = 0; j < vnode.children.length; ++j) {\n          const child = vnode.children[j]\n          if (child != null && typeof child !== 'string') {\n            invokeDestroyHook(child)\n          }\n        }\n      }\n    }\n  }\n\n  function removeVnodes (parentElm: Node,\n    vnodes: VNode[],\n    startIdx: number,\n    endIdx: number): void {\n    for (; startIdx <= endIdx; ++startIdx) {\n      let listeners: number\n      let rm: () => void\n      const ch = vnodes[startIdx]\n      if (ch != null) {\n        if (isDef(ch.sel)) {\n          invokeDestroyHook(ch)\n          listeners = cbs.remove.length + 1\n          rm = createRmCb(ch.elm!, listeners)\n          for (let i = 0; i < cbs.remove.length; ++i) cbs.remove[i](ch, rm)\n          const removeHook = ch?.data?.hook?.remove\n          if (isDef(removeHook)) {\n            removeHook(ch, rm)\n          } else {\n            rm()\n          }\n        } else { // Text node\n          api.removeChild(parentElm, ch.elm!)\n        }\n      }\n    }\n  }\n\n  function updateChildren (parentElm: Node,\n    oldCh: VNode[],\n    newCh: VNode[],\n    insertedVnodeQueue: VNodeQueue) {\n    let oldStartIdx = 0\n    let newStartIdx = 0\n    let oldEndIdx = oldCh.length - 1\n    let oldStartVnode = oldCh[0]\n    let oldEndVnode = oldCh[oldEndIdx]\n    let newEndIdx = newCh.length - 1\n    let newStartVnode = newCh[0]\n    let newEndVnode = newCh[newEndIdx]\n    let oldKeyToIdx: KeyToIndexMap | undefined\n    let idxInOld: number\n    let elmToMove: VNode\n    let before: any\n\n    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n      if (oldStartVnode == null) {\n        oldStartVnode = oldCh[++oldStartIdx] // Vnode might have been moved left\n      } else if (oldEndVnode == null) {\n        oldEndVnode = oldCh[--oldEndIdx]\n      } else if (newStartVnode == null) {\n        newStartVnode = newCh[++newStartIdx]\n      } else if (newEndVnode == null) {\n        newEndVnode = newCh[--newEndIdx]\n      } else if (sameVnode(oldStartVnode, newStartVnode)) {\n        patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue)\n        oldStartVnode = oldCh[++oldStartIdx]\n        newStartVnode = newCh[++newStartIdx]\n      } else if (sameVnode(oldEndVnode, newEndVnode)) {\n        patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue)\n        oldEndVnode = oldCh[--oldEndIdx]\n        newEndVnode = newCh[--newEndIdx]\n      } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n        patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue)\n        api.insertBefore(parentElm, oldStartVnode.elm!, api.nextSibling(oldEndVnode.elm!))\n        oldStartVnode = oldCh[++oldStartIdx]\n        newEndVnode = newCh[--newEndIdx]\n      } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n        patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue)\n        api.insertBefore(parentElm, oldEndVnode.elm!, oldStartVnode.elm!)\n        oldEndVnode = oldCh[--oldEndIdx]\n        newStartVnode = newCh[++newStartIdx]\n      } else {\n        if (oldKeyToIdx === undefined) {\n          oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)\n        }\n        idxInOld = oldKeyToIdx[newStartVnode.key as string]\n        if (isUndef(idxInOld)) { // New element\n          api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm!)\n        } else {\n          elmToMove = oldCh[idxInOld]\n          if (elmToMove.sel !== newStartVnode.sel) {\n            api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm!)\n          } else {\n            patchVnode(elmToMove, newStartVnode, insertedVnodeQueue)\n            oldCh[idxInOld] = undefined as any\n            api.insertBefore(parentElm, elmToMove.elm!, oldStartVnode.elm!)\n          }\n        }\n        newStartVnode = newCh[++newStartIdx]\n      }\n    }\n    if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {\n      if (oldStartIdx > oldEndIdx) {\n        before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm\n        addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue)\n      } else {\n        removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx)\n      }\n    }\n  }\n\n  function patchVnode (oldVnode: VNode, vnode: VNode, insertedVnodeQueue: VNodeQueue) {\n    const hook = vnode.data?.hook\n    hook?.prepatch?.(oldVnode, vnode)\n    const elm = vnode.elm = oldVnode.elm!\n    const oldCh = oldVnode.children as VNode[]\n    const ch = vnode.children as VNode[]\n    if (oldVnode === vnode) return\n    if (vnode.data !== undefined) {\n      for (let i = 0; i < cbs.update.length; ++i) cbs.update[i](oldVnode, vnode)\n      vnode.data.hook?.update?.(oldVnode, vnode)\n    }\n    if (isUndef(vnode.text)) {\n      if (isDef(oldCh) && isDef(ch)) {\n        if (oldCh !== ch) updateChildren(elm, oldCh, ch, insertedVnodeQueue)\n      } else if (isDef(ch)) {\n        if (isDef(oldVnode.text)) api.setTextContent(elm, '')\n        addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue)\n      } else if (isDef(oldCh)) {\n        removeVnodes(elm, oldCh, 0, oldCh.length - 1)\n      } else if (isDef(oldVnode.text)) {\n        api.setTextContent(elm, '')\n      }\n    } else if (oldVnode.text !== vnode.text) {\n      if (isDef(oldCh)) {\n        removeVnodes(elm, oldCh, 0, oldCh.length - 1)\n      }\n      api.setTextContent(elm, vnode.text!)\n    }\n    hook?.postpatch?.(oldVnode, vnode)\n  }\n\n  return function patch (oldVnode: VNode | Element, vnode: VNode): VNode {\n    let i: number, elm: Node, parent: Node\n    const insertedVnodeQueue: VNodeQueue = []\n    for (i = 0; i < cbs.pre.length; ++i) cbs.pre[i]()\n\n    if (!isVnode(oldVnode)) {\n      oldVnode = emptyNodeAt(oldVnode)\n    }\n\n    if (sameVnode(oldVnode, vnode)) {\n      patchVnode(oldVnode, vnode, insertedVnodeQueue)\n    } else {\n      elm = oldVnode.elm!\n      parent = api.parentNode(elm) as Node\n\n      createElm(vnode, insertedVnodeQueue)\n\n      if (parent !== null) {\n        api.insertBefore(parent, vnode.elm!, api.nextSibling(elm))\n        removeVnodes(parent, [oldVnode], 0, 0)\n      }\n    }\n\n    for (i = 0; i < insertedVnodeQueue.length; ++i) {\n      insertedVnodeQueue[i].data!.hook!.insert!(insertedVnodeQueue[i])\n    }\n    for (i = 0; i < cbs.post.length; ++i) cbs.post[i]()\n    return vnode\n  }\n}\n","import { Hooks } from './hooks'\nimport { AttachData } from './helpers/attachto'\nimport { VNodeStyle } from './modules/style'\nimport { On } from './modules/eventlisteners'\nimport { Attrs } from './modules/attributes'\nimport { Classes } from './modules/class'\nimport { Props } from './modules/props'\nimport { Dataset } from './modules/dataset'\nimport { Hero } from './modules/hero'\n\nexport type Key = string | number\n\nexport interface VNode {\n  sel: string | undefined\n  data: VNodeData | undefined\n  children: Array<VNode | string> | undefined\n  elm: Node | undefined\n  text: string | undefined\n  key: Key | undefined\n}\n\nexport interface VNodeData {\n  props?: Props\n  attrs?: Attrs\n  class?: Classes\n  style?: VNodeStyle\n  dataset?: Dataset\n  on?: On\n  hero?: Hero\n  attachData?: AttachData\n  hook?: Hooks\n  key?: Key\n  ns?: string // for SVGs\n  fn?: () => VNode // for thunks\n  args?: any[] // for thunks\n  [key: string]: any // for any other 3rd party module\n}\n\nexport function vnode (sel: string | undefined,\n  data: any | undefined,\n  children: Array<VNode | string> | undefined,\n  text: string | undefined,\n  elm: Element | Text | undefined): VNode {\n  const key = data === undefined ? undefined : data.key\n  return { sel, data, children, text, elm, key }\n}\n","export const array = Array.isArray\nexport function primitive (s: any): s is (string | number) {\n  return typeof s === 'string' || typeof s === 'number'\n}\n","export interface DOMAPI {\n  createElement: (tagName: any) => HTMLElement\n  createElementNS: (namespaceURI: string, qualifiedName: string) => Element\n  createTextNode: (text: string) => Text\n  createComment: (text: string) => Comment\n  insertBefore: (parentNode: Node, newNode: Node, referenceNode: Node | null) => void\n  removeChild: (node: Node, child: Node) => void\n  appendChild: (node: Node, child: Node) => void\n  parentNode: (node: Node) => Node | null\n  nextSibling: (node: Node) => Node | null\n  tagName: (elm: Element) => string\n  setTextContent: (node: Node, text: string | null) => void\n  getTextContent: (node: Node) => string | null\n  isElement: (node: Node) => node is Element\n  isText: (node: Node) => node is Text\n  isComment: (node: Node) => node is Comment\n}\n\nfunction createElement (tagName: any): HTMLElement {\n  return document.createElement(tagName)\n}\n\nfunction createElementNS (namespaceURI: string, qualifiedName: string): Element {\n  return document.createElementNS(namespaceURI, qualifiedName)\n}\n\nfunction createTextNode (text: string): Text {\n  return document.createTextNode(text)\n}\n\nfunction createComment (text: string): Comment {\n  return document.createComment(text)\n}\n\nfunction insertBefore (parentNode: Node, newNode: Node, referenceNode: Node | null): void {\n  parentNode.insertBefore(newNode, referenceNode)\n}\n\nfunction removeChild (node: Node, child: Node): void {\n  node.removeChild(child)\n}\n\nfunction appendChild (node: Node, child: Node): void {\n  node.appendChild(child)\n}\n\nfunction parentNode (node: Node): Node | null {\n  return node.parentNode\n}\n\nfunction nextSibling (node: Node): Node | null {\n  return node.nextSibling\n}\n\nfunction tagName (elm: Element): string {\n  return elm.tagName\n}\n\nfunction setTextContent (node: Node, text: string | null): void {\n  node.textContent = text\n}\n\nfunction getTextContent (node: Node): string | null {\n  return node.textContent\n}\n\nfunction isElement (node: Node): node is Element {\n  return node.nodeType === 1\n}\n\nfunction isText (node: Node): node is Text {\n  return node.nodeType === 3\n}\n\nfunction isComment (node: Node): node is Comment {\n  return node.nodeType === 8\n}\n\nexport const htmlDomApi: DOMAPI = {\n  createElement,\n  createElementNS,\n  createTextNode,\n  createComment,\n  insertBefore,\n  removeChild,\n  appendChild,\n  parentNode,\n  nextSibling,\n  tagName,\n  setTextContent,\n  getTextContent,\n  isElement,\n  isText,\n  isComment,\n}\n","import { VNode, VNodeData } from '../vnode'\nimport { Module } from './module'\n\nexport type Classes = Record<string, boolean>\n\nfunction updateClass (oldVnode: VNode, vnode: VNode): void {\n  var cur: any\n  var name: string\n  var elm: Element = vnode.elm as Element\n  var oldClass = (oldVnode.data as VNodeData).class\n  var klass = (vnode.data as VNodeData).class\n\n  if (!oldClass && !klass) return\n  if (oldClass === klass) return\n  oldClass = oldClass || {}\n  klass = klass || {}\n\n  for (name in oldClass) {\n    if (\n      oldClass[name] &&\n      !Object.prototype.hasOwnProperty.call(klass, name)\n    ) {\n      // was `true` and now not provided\n      elm.classList.remove(name)\n    }\n  }\n  for (name in klass) {\n    cur = klass[name]\n    if (cur !== oldClass[name]) {\n      (elm.classList as any)[cur ? 'add' : 'remove'](name)\n    }\n  }\n}\n\nexport const classModule: Module = { create: updateClass, update: updateClass }\n","import { VNode, VNodeData } from '../vnode'\nimport { Module } from './module'\n\nexport type VNodeStyle = Record<string, string> & {\n  delayed?: Record<string, string>\n  remove?: Record<string, string>\n}\n\n// Bindig `requestAnimationFrame` like this fixes a bug in IE/Edge. See #360 and #409.\nvar raf = (typeof window !== 'undefined' && (window.requestAnimationFrame).bind(window)) || setTimeout\nvar nextFrame = function (fn: any) {\n  raf(function () {\n    raf(fn)\n  })\n}\nvar reflowForced = false\n\nfunction setNextFrame (obj: any, prop: string, val: any): void {\n  nextFrame(function () {\n    obj[prop] = val\n  })\n}\n\nfunction updateStyle (oldVnode: VNode, vnode: VNode): void {\n  var cur: any\n  var name: string\n  var elm = vnode.elm\n  var oldStyle = (oldVnode.data as VNodeData).style\n  var style = (vnode.data as VNodeData).style\n\n  if (!oldStyle && !style) return\n  if (oldStyle === style) return\n  oldStyle = oldStyle || {}\n  style = style || {}\n  var oldHasDel = 'delayed' in oldStyle\n\n  for (name in oldStyle) {\n    if (!style[name]) {\n      if (name[0] === '-' && name[1] === '-') {\n        (elm as any).style.removeProperty(name)\n      } else {\n        (elm as any).style[name] = ''\n      }\n    }\n  }\n  for (name in style) {\n    cur = style[name]\n    if (name === 'delayed' && style.delayed) {\n      for (const name2 in style.delayed) {\n        cur = style.delayed[name2]\n        if (!oldHasDel || cur !== (oldStyle.delayed as any)[name2]) {\n          setNextFrame((elm as any).style, name2, cur)\n        }\n      }\n    } else if (name !== 'remove' && cur !== oldStyle[name]) {\n      if (name[0] === '-' && name[1] === '-') {\n        (elm as any).style.setProperty(name, cur)\n      } else {\n        (elm as any).style[name] = cur\n      }\n    }\n  }\n}\n\nfunction applyDestroyStyle (vnode: VNode): void {\n  var style: any\n  var name: string\n  var elm = vnode.elm\n  var s = (vnode.data as VNodeData).style\n  if (!s || !(style = s.destroy)) return\n  for (name in style) {\n    (elm as any).style[name] = style[name]\n  }\n}\n\nfunction applyRemoveStyle (vnode: VNode, rm: () => void): void {\n  var s = (vnode.data as VNodeData).style\n  if (!s || !s.remove) {\n    rm()\n    return\n  }\n  if (!reflowForced) {\n    // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n    (vnode.elm as any).offsetLeft\n    reflowForced = true\n  }\n  var name: string\n  var elm = vnode.elm\n  var i = 0\n  var compStyle: CSSStyleDeclaration\n  var style = s.remove\n  var amount = 0\n  var applied: string[] = []\n  for (name in style) {\n    applied.push(name);\n    (elm as any).style[name] = style[name]\n  }\n  compStyle = getComputedStyle(elm as Element)\n  var props = (compStyle as any)['transition-property'].split(', ')\n  for (; i < props.length; ++i) {\n    if (applied.indexOf(props[i]) !== -1) amount++\n  }\n  (elm as Element).addEventListener('transitionend', function (ev: TransitionEvent) {\n    if (ev.target === elm) --amount\n    if (amount === 0) rm()\n  })\n}\n\nfunction forceReflow () {\n  reflowForced = false\n}\n\nexport const styleModule: Module = {\n  pre: forceReflow,\n  create: updateStyle,\n  update: updateStyle,\n  destroy: applyDestroyStyle,\n  remove: applyRemoveStyle\n}\n","import { VNode, VNodeData } from '../vnode'\nimport { Module } from './module'\n\ntype Listener<T> = (this: VNode, ev: T, vnode: VNode) => void\n\nexport type On = {\n  [N in keyof HTMLElementEventMap]?: Listener<HTMLElementEventMap[N]> | Array<Listener<HTMLElementEventMap[N]>>\n} & {\n  [event: string]: Listener<any> | Array<Listener<any>>\n}\n\ntype SomeListener<N extends keyof HTMLElementEventMap> = Listener<HTMLElementEventMap[N]> | Listener<any>\n\nfunction invokeHandler<N extends keyof HTMLElementEventMap> (handler: SomeListener<N> | Array<SomeListener<N>>, vnode: VNode, event?: Event): void {\n  if (typeof handler === 'function') {\n    // call function handler\n    handler.call(vnode, event, vnode)\n  } else if (typeof handler === 'object') {\n    // call multiple handlers\n    for (var i = 0; i < handler.length; i++) {\n      invokeHandler(handler[i], vnode, event)\n    }\n  }\n}\n\nfunction handleEvent (event: Event, vnode: VNode) {\n  var name = event.type\n  var on = (vnode.data as VNodeData).on\n\n  // call event handler(s) if exists\n  if (on && on[name]) {\n    invokeHandler(on[name], vnode, event)\n  }\n}\n\nfunction createListener () {\n  return function handler (event: Event) {\n    handleEvent(event, (handler as any).vnode)\n  }\n}\n\nfunction updateEventListeners (oldVnode: VNode, vnode?: VNode): void {\n  var oldOn = (oldVnode.data as VNodeData).on\n  var oldListener = (oldVnode as any).listener\n  var oldElm: Element = oldVnode.elm as Element\n  var on = vnode && (vnode.data as VNodeData).on\n  var elm: Element = (vnode && vnode.elm) as Element\n  var name: string\n\n  // optimization for reused immutable handlers\n  if (oldOn === on) {\n    return\n  }\n\n  // remove existing listeners which no longer used\n  if (oldOn && oldListener) {\n    // if element changed or deleted we remove all existing listeners unconditionally\n    if (!on) {\n      for (name in oldOn) {\n        // remove listener if element was changed or existing listeners removed\n        oldElm.removeEventListener(name, oldListener, false)\n      }\n    } else {\n      for (name in oldOn) {\n        // remove listener if existing listener removed\n        if (!on[name]) {\n          oldElm.removeEventListener(name, oldListener, false)\n        }\n      }\n    }\n  }\n\n  // add new listeners which has not already attached\n  if (on) {\n    // reuse existing listener or create new\n    var listener = (vnode as any).listener = (oldVnode as any).listener || createListener()\n    // update vnode for listener\n    listener.vnode = vnode\n\n    // if element changed or added we add all needed listeners unconditionally\n    if (!oldOn) {\n      for (name in on) {\n        // add listener if element was changed or new listeners added\n        elm.addEventListener(name, listener, false)\n      }\n    } else {\n      for (name in on) {\n        // add listener if new listener added\n        if (!oldOn[name]) {\n          elm.addEventListener(name, listener, false)\n        }\n      }\n    }\n  }\n}\n\nexport const eventListenersModule: Module = {\n  create: updateEventListeners,\n  update: updateEventListeners,\n  destroy: updateEventListeners\n}\n","import { VNode, VNodeData } from '../vnode'\nimport { Module } from './module'\n\nexport type Dataset = Record<string, string>\n\nconst CAPS_REGEX = /[A-Z]/g\n\nfunction updateDataset (oldVnode: VNode, vnode: VNode): void {\n  const elm: HTMLElement = vnode.elm as HTMLElement\n  let oldDataset = (oldVnode.data as VNodeData).dataset\n  let dataset = (vnode.data as VNodeData).dataset\n  let key: string\n\n  if (!oldDataset && !dataset) return\n  if (oldDataset === dataset) return\n  oldDataset = oldDataset || {}\n  dataset = dataset || {}\n  const d = elm.dataset\n\n  for (key in oldDataset) {\n    if (!dataset[key]) {\n      if (d) {\n        if (key in d) {\n          delete d[key]\n        }\n      } else {\n        elm.removeAttribute('data-' + key.replace(CAPS_REGEX, '-$&').toLowerCase())\n      }\n    }\n  }\n  for (key in dataset) {\n    if (oldDataset[key] !== dataset[key]) {\n      if (d) {\n        d[key] = dataset[key]\n      } else {\n        elm.setAttribute('data-' + key.replace(CAPS_REGEX, '-$&').toLowerCase(), dataset[key])\n      }\n    }\n  }\n}\n\nexport const datasetModule: Module = { create: updateDataset, update: updateDataset }\n","export {default as ref} from './ref';\nexport {default as props} from './props';\nexport {default as attributes} from './attributes';\n","/**\n * Assigns or executes a ref.\n * @private\n * @param vnode\n */\nconst getRef = vnode => {\n\tconst ref = vnode.data.ref; // eslint-disable-line prefer-destructuring\n\n\tif (ref && typeof ref === 'function') ref(vnode.elm);\n\telse if (ref && typeof ref === 'object') ref.current = vnode.elm;\n};\n\nexport default {\n\tcreate: (oldVnode, vnode) => getRef(vnode),\n\tupdate: (oldVnode, vnode) => getRef(vnode),\n\tdestroy: vnode => getRef(vnode)\n};\n","// This is a modified version of the snabbdom props module. Unlike the upstream\n// module, this implementation does set removed properties to `undefined`\nconst updateProps = (oldVnode, vnode) => {\n\tlet {\n\t\tdata: {props: oldProps}\n\t} = oldVnode;\n\tlet {\n\t\tdata: {props},\n\t\t// eslint-disable-next-line prefer-const\n\t\telm\n\t} = vnode;\n\n\tif (!oldProps && !props) return;\n\n\tif (oldProps === props) return;\n\n\toldProps = oldProps || {};\n\tprops = props || {};\n\n\tfor (const key in oldProps) {\n\t\tif (!props.hasOwnProperty(key)) elm[key] = key === 'className' ? '' : undefined;\n\t}\n\n\tfor (const key in props) {\n\t\tconst cur = props[key];\n\t\tconst old = oldProps[key];\n\t\tif (old !== cur && (key !== 'value' || elm[key] !== cur)) elm[key] = cur;\n\t}\n};\n\nexport default {\n\tcreate: updateProps,\n\tupdate: updateProps\n};\n","import {\n\tNOW_SKIP_RENDER_UNTIL_PRESENT_ATTR,\n\tNOW_ID_ATTRIBUTE,\n\tCOMPONENT_ID_ATTRIBUTE,\n\tRESOLVED_PROPS_ATTRIBUTE\n} from '@servicenow/ui-internal';\n\nconst xlinkNS = 'http://www.w3.org/1999/xlink';\nconst xmlNS = 'http://www.w3.org/XML/1998/namespace';\nconst colonChar = 58;\nconst xChar = 120;\n\nconst ATTRIBUTES_TO_PERSIST = [\n\tNOW_SKIP_RENDER_UNTIL_PRESENT_ATTR,\n\tNOW_ID_ATTRIBUTE,\n\tCOMPONENT_ID_ATTRIBUTE,\n\tRESOLVED_PROPS_ATTRIBUTE\n];\n\n// This is a modified version of the snabbdom attributes module, which never removes\n// NOW_SKIP_RENDER_UNTIL_PRESENT_ATTR attribute during the patch.\nfunction updateAttrs(oldVnode, vnode) {\n\tlet {\n\t\tdata: {attrs: oldAttrs}\n\t} = oldVnode;\n\tlet {\n\t\tdata: {attrs},\n\t\t// eslint-disable-next-line prefer-const\n\t\telm\n\t} = vnode;\n\n\tif (!oldAttrs && !attrs) return;\n\n\tif (oldAttrs === attrs) return;\n\n\toldAttrs = oldAttrs || {};\n\tattrs = attrs || {};\n\n\tfor (const key in attrs) {\n\t\tconst cur = attrs[key];\n\t\tconst old = oldAttrs[key];\n\t\tif (old !== cur) {\n\t\t\tif (cur === true) {\n\t\t\t\telm.setAttribute(key, '');\n\t\t\t} else if (cur === false) {\n\t\t\t\telm.removeAttribute(key);\n\t\t\t} else {\n\t\t\t\tif (key.charCodeAt(0) !== xChar) {\n\t\t\t\t\telm.setAttribute(key, cur);\n\t\t\t\t} else if (key.charCodeAt(3) === colonChar) {\n\t\t\t\t\t// Assume xml namespace\n\t\t\t\t\telm.setAttributeNS(xmlNS, key, cur);\n\t\t\t\t} else if (key.charCodeAt(5) === colonChar) {\n\t\t\t\t\t// Assume xlink namespace\n\t\t\t\t\telm.setAttributeNS(xlinkNS, key, cur);\n\t\t\t\t} else {\n\t\t\t\t\telm.setAttribute(key, cur);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const key in oldAttrs) {\n\t\t/**\n\t\t * Avoid removing NOW_SKIP_RENDER_UNTIL_PRESENT_ATTR during vdom patch/hydration,\n\t\t * because it could be removed before it is consumed by the component. For example:\n\t\t * <component-a>\n\t\t *  #shadow-root\n\t\t *  <component-b now-skip-render-until-present=\"foo,bar\">\n\t\t *  <\/component-b>\n\t\t * <\/component-a>\n\t\t * If we don't persist this attribute, when component-a is hydrated, it will be removed\n\t\t * before component-b consumes it.\n\t\t *\n\t\t * Avoid removing now-id and component-id during vdom patch/hydration.\n\t\t * Take the above example again, when we hydrate component-a, the component-b already has\n\t\t * component-id and now-id set on it by component-b's setComponentId(). So the initial\n\t\t * component-b's vnode in component-a's vdom tree will have these attributes. But the\n\t\t * component-a's vdom tree generated by the seismic view function doesn't have these attributes,\n\t\t * causing the trash of those two attributes during the patch process.\n\t\t */\n\t\tif (ATTRIBUTES_TO_PERSIST.includes(key)) continue;\n\t\tif (!(key in attrs)) {\n\t\t\telm.removeAttribute(key);\n\t\t}\n\t}\n}\nexport default {create: updateAttrs, update: updateAttrs};\n","import {APPEND_TO_PAYLOAD} from '../constants';\nimport log from '../log';\n\nexport default function validateProps(props) {\n\tif (!props[APPEND_TO_PAYLOAD]) return props;\n\n\tconst {[APPEND_TO_PAYLOAD]: appendToPayload, ...nonAppendProps} = props;\n\tif (appendToPayload && typeof appendToPayload !== 'object') {\n\t\tlog(`Expected ${APPEND_TO_PAYLOAD} property to be an Object. Found ${appendToPayload}`, {\n\t\t\torigin: 'validateProps'\n\t\t});\n\t\treturn nonAppendProps;\n\t}\n\n\treturn props;\n}\n","import {vnode} from 'snabbdom/build/package/vnode';\nimport {eventListenersModule} from 'snabbdom/build/package/modules/eventlisteners';\nimport {styleModule} from 'snabbdom/build/package/modules/style';\nimport {classModule} from 'snabbdom/build/package/modules/class';\nimport {datasetModule} from 'snabbdom/build/package/modules/dataset';\nimport {props, ref, attributes} from '../modules';\nimport patch from './patch';\n\nconst TAG_PLACEHOLDER = 'sn-ssr-placeholder';\n\nconst emptyNode = vnode('', {}, [], undefined, undefined);\nconst modules = [\n\tprops,\n\tattributes,\n\tclassModule,\n\tstyleModule,\n\teventListenersModule,\n\tdatasetModule,\n\tref\n];\n\nexport function hydrate(oldVnode, vnode) {\n\t// placeholder is temporary element,\n\t// eventually updated with intended content when available\n\tif (oldVnode?.sel === TAG_PLACEHOLDER) {\n\t\tpatch(oldVnode, vnode);\n\t\treturn {error: null};\n\t}\n\n\tif (vnode.sel && oldVnode.sel !== vnode.sel) {\n\t\treturn {error: {server: oldVnode.sel, client: vnode.sel}};\n\t}\n\tif (vnode.text && oldVnode.text !== vnode.text) {\n\t\treturn {error: {server: `\"${oldVnode.text}\"`, client: `\"${vnode.text}\"`}};\n\t}\n\tif (vnode.children) {\n\t\tif (oldVnode.children.length !== vnode.children.length) {\n\t\t\treturn {\n\t\t\t\terror: {\n\t\t\t\t\tserver: `${oldVnode.children.length} children`,\n\t\t\t\t\tclient: `${vnode.children.length} children`\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tfor (let i = 0; i < oldVnode.children.length; i++) {\n\t\t\tconst {error} = hydrate(oldVnode.children[i], vnode.children[i]);\n\t\t\tif (error) {\n\t\t\t\treturn {error};\n\t\t\t}\n\t\t}\n\t}\n\n\tvnode.elm = oldVnode.elm;\n\tif (vnode.data?.hook?.init) {\n\t\tvnode.data.hook.init(vnode);\n\t}\n\tif (vnode.data?.hook?.create) {\n\t\tvnode.data.hook.create(emptyNode, vnode);\n\t}\n\tif (vnode.data?.hook?.insert) {\n\t\tvnode.data.hook.insert(vnode);\n\t}\n\tif (vnode.data) {\n\t\tmodules.forEach(module => module.create(oldVnode, vnode));\n\t}\n\n\treturn {error: null};\n}\n","// TODO (webpack v5): drop the `build/package/` part of these import paths.\n// Snabbdom>=1 uses the package.json#exports field that webpack v4 doesn't know\n// about\n//\n// https://github.com/webpack/webpack/issues/9509\n// https://webpack.js.org/guides/package-exports/\nimport {toVNode} from 'snabbdom/build/package/tovnode';\nimport {toVNodeFromServerSideRenderedNode} from './utils/toVNodeFromServerSideRenderedNode';\nimport {sign} from 'snabbdom-signature';\n\n/**\n * Creates an element for the virtual DOM from an existing DOM node\n * @method createElementFromNode\n * @param {Node} node DOM node to convert\n * @returns {VNode} The vnode to use in the virtual DOM\n */\nexport default function createElementFromNode(node) {\n\tconst vnode = sign(toVNode(node));\n\tfixNamespace(vnode); // fixes issue with missing namespace for svgs: https://github.com/snabbdom/snabbdom/issues/388\n\treturn vnode;\n}\n\n/**\n * Create a vdom tree from an existing DOM node which has been server-side rendered\n * @method createElementFromServerSideRenderedNode\n * @param {Node} node DOM node to convert\n * @returns {VNode} The vnode to use in the virtual DOM\n */\nexport function createElementFromServerSideRenderedNode(node) {\n\tconst vnode = toVNodeFromServerSideRenderedNode(node);\n\tif (\n\t\tnode instanceof DocumentFragment &&\n\t\tvnode.children.length === 0 &&\n\t\tnode.childNodes.length > 0\n\t) {\n\t\t// snabbdom still doesn't handle DocumentFragment correctly\n\t\t// so we need to manually add the children\n\t\tconst {length: childrenCount} = node.childNodes;\n\t\tfor (let i = 0; i < childrenCount; i++) {\n\t\t\tconst childVNode = toVNodeFromServerSideRenderedNode(node.childNodes[i]);\n\t\t\t// skip the nullified child node if it has non-falsy NOW_EXCLUDED_FROM_HYDRATION_ATTR attribute\n\t\t\tif (childVNode) {\n\t\t\t\tvnode.children.push(childVNode);\n\t\t\t}\n\t\t}\n\t}\n\tconst signedVnode = sign(vnode);\n\tfixNamespace(signedVnode); // fixes issue with missing namespace for svgs: https://github.com/snabbdom/snabbdom/issues/388\n\treturn signedVnode;\n}\n\nconst fixNamespace = (vnode, xmlns = vnode.data && vnode.data.attrs && vnode.data.attrs.xmlns) => {\n\tconst {children, data} = vnode;\n\n\tif (data && !data.ns && xmlns) data.ns = xmlns;\n\n\tif (children) {\n\t\tconst {length: childrenCount} = children;\n\t\tfor (let i = 0; i < childrenCount; i++) fixNamespace(children[i], xmlns);\n\t}\n};\n","import { vnode, VNode } from './vnode'\nimport { htmlDomApi, DOMAPI } from './htmldomapi'\n\nexport function toVNode (node: Node, domApi?: DOMAPI): VNode {\n  const api: DOMAPI = domApi !== undefined ? domApi : htmlDomApi\n  let text: string\n  if (api.isElement(node)) {\n    const id = node.id ? '#' + node.id : ''\n    const cn = node.getAttribute('class')\n    const c = cn ? '.' + cn.split(' ').join('.') : ''\n    const sel = api.tagName(node).toLowerCase() + id + c\n    const attrs: any = {}\n    const children: VNode[] = []\n    let name: string\n    let i: number, n: number\n    const elmAttrs = node.attributes\n    const elmChildren = node.childNodes\n    for (i = 0, n = elmAttrs.length; i < n; i++) {\n      name = elmAttrs[i].nodeName\n      if (name !== 'id' && name !== 'class') {\n        attrs[name] = elmAttrs[i].nodeValue\n      }\n    }\n    for (i = 0, n = elmChildren.length; i < n; i++) {\n      children.push(toVNode(elmChildren[i], domApi))\n    }\n    return vnode(sel, { attrs }, children, undefined, node)\n  } else if (api.isText(node)) {\n    text = api.getTextContent(node) as string\n    return vnode(undefined, undefined, undefined, text, node)\n  } else if (api.isComment(node)) {\n    text = api.getTextContent(node) as string\n    return vnode('!', {}, [], text, node as any)\n  } else {\n    return vnode('', {}, [], undefined, node as any)\n  }\n}\n","import {vnode} from 'snabbdom/build/package/vnode';\nimport {htmlDomApi} from 'snabbdom/build/package/htmldomapi';\nimport {NOW_EXCLUDED_FROM_HYDRATION_ATTR} from '@servicenow/ui-internal';\n\n/**\n * This is a modified version of the snabbdom toVNode() to convert server-side rendered nodes to vnodes.\n * - it builds \"sel\" field only from the tagName of the element node,\n *   rather than a combination of selector, id, and class\n * - it assigns the class attribute value to the \"className\" property\n * - it skips the node if it has the NOW_EXCLUDED_FROM_HYDRATION_ATTR attribute\n */\n\nexport function toVNodeFromServerSideRenderedNode(node, domApi) {\n\tconst api = domApi !== undefined ? domApi : htmlDomApi;\n\tlet text;\n\tif (api.isElement(node)) {\n\t\tconst sel = api.tagName(node).toLowerCase();\n\t\tconst attrs = {};\n\t\tconst children = [];\n\t\tlet name;\n\t\tconst elmAttrs = node.attributes;\n\t\tconst elmChildren = node.childNodes;\n\t\tconst props = {};\n\t\tfor (let i = 0, n = elmAttrs.length; i < n; i++) {\n\t\t\tname = elmAttrs[i].nodeName;\n\t\t\tif (name === 'class') {\n\t\t\t\tprops.className = elmAttrs[i].nodeValue;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\t/**\n\t\t\t * exclude the node from the vdom tree during hydration if it has non-falsy NOW_EXCLUDED_FROM_HYDRATION_ATTR attribute\n\t\t\t * SSR may render nodes which are not managed by the virtual DOM, for example:\n\t\t\t * <sn-canvas-screen>\n\t\t\t *   #shadow-root\n\t\t\t *   <screen-action-transformer-12345>\n\t\t\t *       <macroponent-abcdef>\n\t\t\t *       <\/macroponent-abcdef>\n\t\t\t *   <\/screen-action-transformer-12345>\n\t\t\t * <\/sn-canvas-screen>\n\t\t\t * The screen action transformer and macroponent are not rendered by the view function of sn-canvas-screen.\n\t\t\t * Instead, they are manually inserted with DOM manipulation. If we convert them into vnodes during hydration,\n\t\t\t * they will be trashed in the snabbdom patch process because the new vdom tree does not contain them.\n\t\t\t * To solve this issue, we add NOW_EXCLUDED_FROM_HYDRATION_ATTR attribute to the nodes that will\n\t\t\t * be excluded from the vdom tree so snabbdom has no visibility of them and thus won't trash them.\n\t\t\t */\n\t\t\tif (name === NOW_EXCLUDED_FROM_HYDRATION_ATTR && elmAttrs[i].nodeValue !== 'false') {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tattrs[name] = elmAttrs[i].nodeValue;\n\t\t}\n\t\tfor (let i = 0, n = elmChildren.length; i < n; i++) {\n\t\t\tconst childVNode = toVNodeFromServerSideRenderedNode(elmChildren[i], domApi);\n\t\t\t// skip the nullified child node if it has non-falsy NOW_EXCLUDED_FROM_HYDRATION_ATTR attribute\n\t\t\tif (childVNode) {\n\t\t\t\tchildren.push(childVNode);\n\t\t\t}\n\t\t}\n\t\treturn vnode(sel, {attrs, props}, children, undefined, node);\n\t} else if (api.isText(node)) {\n\t\ttext = api.getTextContent(node);\n\t\treturn vnode(undefined, undefined, undefined, text, node);\n\t} else if (api.isComment(node)) {\n\t\ttext = api.getTextContent(node);\n\t\treturn vnode('!', {}, [], text, node);\n\t}\n\treturn vnode('', {}, [], undefined, node);\n}\n","import {patch} from './utils';\nimport {VNODE} from './symbols';\n\n/**\n * Patches an empty tree to a container so we run hooks and cleanup\n * @param {HTMLElement} element Element being disconnected\n * @param {Function} [dispatch] function contextualized to the element\n * @param {Function} [next] function to call after disconnect\n */\nexport default function onDisconnect(element, dispatch, next = () => null) {\n\tconst prev = element[VNODE];\n\n\tconst styles = [];\n\tconst {children} = prev;\n\tconst {length: childrenCount} = children;\n\tfor (let i = 0; i < childrenCount; i++) {\n\t\tconst child = children[i];\n\t\tif (\n\t\t\tchild &&\n\t\t\ttypeof child.sel === 'string' &&\n\t\t\t(child.sel.startsWith('style') || child.sel.startsWith('link'))\n\t\t)\n\t\t\tstyles.push(child);\n\t}\n\n\tconst nextEl = {\n\t\t...prev,\n\t\tchildren: styles\n\t};\n\n\tpatch(prev, nextEl, {disconnect: true});\n\n\tdelete element[VNODE]; // eslint-disable-line no-param-reassign\n\tnext();\n}\n","export default function createAriaRef() {\n\t// noop since we've removed the rest of the implementation\n\treturn {};\n}\n","// @jsx createElement\nimport createElement from './createElement'; // eslint-disable-line no-unused-vars\n\nfunction insertChildern(children, name) {\n\tif (!children) return null;\n\n\tif (children && !name) return children;\n\n\tconst slotted = [];\n\tconst {length: childrenCount} = children;\n\tfor (let i = 0; i < childrenCount; i++) {\n\t\tconst child = children[i];\n\t\tif (name === (child.data && child.data.props && child.data.props.slot)) slotted.push(child);\n\t}\n\n\treturn slotted;\n}\n\n/**\n * Creates a slot using snabbdom\n * @method createSlot\n * @param children\n * @param name\n * @returns {*}\n */\nexport default function createSlot(children, name) {\n\treturn <slot name={name}>{insertChildern(children, name)}<\/slot>;\n}\n","// TODO (webpack v5): drop the `build/package/` part of these import paths.\n// Snabbdom>=1 uses the package.json#exports field that webpack v4 doesn't know\n// about\n//\n// https://github.com/webpack/webpack/issues/9509\n// https://webpack.js.org/guides/package-exports/\nimport {signingH} from 'snabbdom-signature';\nimport {h as unsignedH} from 'snabbdom/build/package/h';\nimport {formatProps, validateProps, flat, formatChildren} from './utils';\n\nconst signedH = signingH(unsignedH);\n\n/**\n * Creates an element for the virtual DOM\n * @method createElement\n * @param {(string|function)} tag Name of the tag or a functional component\n * @param {object} [props] Properties\n * @param {object} [children] Child nodes\n * @returns {*}\n */\nexport default function createElement(tag, props, ...children) {\n\tif (typeof tag === 'function') return tag(props || {}, flat(children));\n\n\treturn signedH(\n\t\ttag,\n\t\tprops ? formatProps(tag, validateProps(props)) : {},\n\t\tformatChildren(children)\n\t);\n}\n","import { vnode, VNode, VNodeData } from './vnode'\nimport * as is from './is'\n\nexport type VNodes = VNode[]\nexport type VNodeChildElement = VNode | string | number | undefined | null\nexport type ArrayOrElement<T> = T | T[]\nexport type VNodeChildren = ArrayOrElement<VNodeChildElement>\n\nfunction addNS (data: any, children: VNodes | undefined, sel: string | undefined): void {\n  data.ns = 'http://www.w3.org/2000/svg'\n  if (sel !== 'foreignObject' && children !== undefined) {\n    for (let i = 0; i < children.length; ++i) {\n      const childData = children[i].data\n      if (childData !== undefined) {\n        addNS(childData, (children[i] as VNode).children as VNodes, children[i].sel)\n      }\n    }\n  }\n}\n\nexport function h (sel: string): VNode\nexport function h (sel: string, data: VNodeData | null): VNode\nexport function h (sel: string, children: VNodeChildren): VNode\nexport function h (sel: string, data: VNodeData | null, children: VNodeChildren): VNode\nexport function h (sel: any, b?: any, c?: any): VNode {\n  var data: VNodeData = {}\n  var children: any\n  var text: any\n  var i: number\n  if (c !== undefined) {\n    if (b !== null) {\n      data = b\n    }\n    if (is.array(c)) {\n      children = c\n    } else if (is.primitive(c)) {\n      text = c\n    } else if (c && c.sel) {\n      children = [c]\n    }\n  } else if (b !== undefined && b !== null) {\n    if (is.array(b)) {\n      children = b\n    } else if (is.primitive(b)) {\n      text = b\n    } else if (b && b.sel) {\n      children = [b]\n    } else { data = b }\n  }\n  if (children !== undefined) {\n    for (i = 0; i < children.length; ++i) {\n      if (is.primitive(children[i])) children[i] = vnode(undefined, undefined, undefined, children[i], undefined)\n    }\n  }\n  if (\n    sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' &&\n    (sel.length === 3 || sel[3] === '.' || sel[3] === '#')\n  ) {\n    addNS(data, children, sel)\n  }\n  return vnode(sel, data, children, text, undefined)\n};\n","import createElementFromNode from './createElementFromNode';\nimport {allLogTypes as logTypes} from '@servicenow/ui-internal';\nimport log from './log';\n\n/**\n * Creates an element for the virtual DOM from a string of HTML. WARNING: This method does not\n * sanitize the HTML string passed to it. If you use this method you may be vulnerable to\n * XSS attacks if you do not take the right precautions.\n *\n * @method createElementFromString\n * @param {String} html String of html to parse and convert to a vnode\n * @returns {VNode} The vnode to use in the virtual DOM\n */\nexport default function createElementFromString(html) {\n\tlog(\n\t\t'createElementFromString has been deprecated. Please use dangerouslyCreateElementFromString and make sure you are taking the necessary precautions to prevent XSS attacks',\n\t\t{level: logTypes.ERROR, origin: 'createElementFromString'}\n\t);\n\n\tif (!document || !document.createElement) return;\n\n\tconst element = document.createElement('div');\n\telement.innerHTML = html;\n\treturn createElementFromNode(element.firstChild);\n}\n","import createElementFromNode from './createElementFromNode';\n\n/**\n * Creates an element for the virtual DOM from a string of HTML. WARNING: This method does not\n * sanitize the HTML string passed to it. If you use this method you may be vulnerable to\n * XSS attacks if you do not take the right precautions.\n *\n * @method dangerouslyCreateElementFromString\n * @param {String} html String of html to parse and convert to a vnode\n * @returns {VNode} The vnode to use in the virtual DOM\n */\nexport default function dangerouslyCreateElementFromString(html) {\n\tif (!document || !document.createElement) return;\n\n\tconst element = document.createElement('div');\n\telement.innerHTML = html;\n\treturn createElementFromNode(element.firstChild);\n}\n","/**\n * Helper component for returning an array of vnodes from a view function\n *\n * @example\n * import {Fragment} from '@servicenow/ui-renderer-snabbdom';\n *\n * function view(state, dispatch) {\n *     return (\n *         <Fragment>\n *             <div>Foo<\/div>\n *             <div>Bar<\/div>\n *             <div>Baz<\/div>\n *         <\/Fragment>\n *     );\n * }\n *\n * @method Fragment\n * @param props\n * @param children\n * @returns {*}\n */\nexport default function Fragment(props, children) {\n\treturn children;\n}\n","import snabbdom from '@servicenow/ui-renderer-snabbdom';\n\nexport default snabbdom;\n","import {toString, get} from '@servicenow/ui-internal';\nimport toAttributeName from './toAttributeName';\nimport {isSelector} from '../property-selectors';\n\nexport default function getInitialPropertyValue(el, key, propertyDefs = {}) {\n\tif (propertyDefs[key] && propertyDefs[key].readOnly) return propertyDefs[key].default;\n\n\tconst property = el[key];\n\tconst attr = toAttributeName(key);\n\tconst unstablePreserveEmptyStr =\n\t\t(propertyDefs[key] && propertyDefs[key].unstablePreserveEmptyStr) || false;\n\n\tif (key !== 'style' && el.hasAttribute(attr) && !isSelector(property)) {\n\t\tlet value = el.getAttribute(attr);\n\t\t// instead of directly using the attribute value as the property intial value,\n\t\t// attrToInitPropTransformer allows transforming the attribute value to the property initial value\n\t\t// so property value can adopt a better data structure rather than just the string literal.\n\t\tif (propertyDefs[key] && propertyDefs[key].attrToInitPropTransformer) {\n\t\t\tvalue = propertyDefs[key].attrToInitPropTransformer({attributeValue: value});\n\t\t}\n\t\tconst preserve =\n\t\t\tunstablePreserveEmptyStr || get(propertyDefs, `[${key}].schema.type`) === 'string';\n\n\t\treturn value || (preserve ? value : true);\n\t}\n\n\t// property.toString() will return [object CSSStyleDeclaration] if the style property is a true style property\n\t// vs. a style object (key, value) that is passed via JSX in the view layer\n\treturn key === 'style'\n\t\t? toString(property) === '[object Object]'\n\t\t\t? property\n\t\t\t: undefined\n\t\t: property;\n}\n","import {memoize, kebabCase} from '@servicenow/ui-internal';\n\nexport default memoize(\n\tfunction toAttributeName(propName) {\n\t\treturn kebabCase(propName);\n\t},\n\t{profileName: 'toAttributeName'}\n);\n","import createAddMapping from './createAddMapping';\nimport createRemoveMappings from './createRemoveMappings';\nimport createGetAffected from './createGetAffected';\nimport createGetComponentAffected from './createGetComponentAffected';\nimport createAddResolvedPropertyMapping from './createAddResolvedPropertyMapping';\nimport createAddSelectablePropertyMapping from './createAddSelectablePropertyMapping';\nimport resolvedMappingHasKey from './resolvedMappingHasKey';\nimport getResolvedPropertyValue from './getResolvedPropertyValue';\nimport createRemoveResolvedPropertyMapping from './createRemoveResolvedPropertyMapping';\nimport createAddResolvedPropertyMappingWithKey from './createAddResolvedPropertyMappingWithKey';\n\nconst mappings = {};\nconst resolvedPropertyMappings = new Map();\n\nexport const addMapping = createAddMapping(mappings);\nexport const removeMappings = createRemoveMappings(mappings);\nexport const getAffected = createGetAffected(mappings);\nexport const getComponentAffected = createGetComponentAffected(mappings);\nexport const addResolvedPropertyMapping =\n\tcreateAddResolvedPropertyMapping(resolvedPropertyMappings);\nexport const removeResolvedMapping = createRemoveResolvedPropertyMapping(\n\tresolvedPropertyMappings,\n\tmappings\n);\nexport const addResolvedPropertyMappingWithKey =\n\tcreateAddResolvedPropertyMappingWithKey(resolvedPropertyMappings);\nexport const addSelectableResolvedPropertyMapping =\n\tcreateAddSelectablePropertyMapping(resolvedPropertyMappings);\nexport const resolveMappingHasKey = resolvedMappingHasKey(resolvedPropertyMappings);\nexport const getResolvedProperty = getResolvedPropertyValue(resolvedPropertyMappings);\nexport {default as resolveSelectedProperty} from './resolveSelectedProperty';\nexport {default as resolveSelectedProperties} from './resolveSelectedProperties';\nexport {default as getSelectorParts} from './getSelectorParts';\nexport {default as isSelectableProperty} from './isSelectableProperty';\nexport {default as isSelector} from './isSelector';\nexport {default as updatePropertiesWithSelector} from './updatePropertiesWithSelector';\nexport {default as getPartsForNestedSelectableProps} from './getPartsForNestedSelectableProps';\nexport {default as applyUpdatesForSelectableProps} from './applyUpdatesForSelectableProps';\n\n// Unstable APIs\nexport {default as createUnstableResolvePropertySelectorValue} from './createUnstableResolvePropertySelectorValue';\nexport {default as unstableAddRenderOnPropertySelectorValueChange} from './unstableAddRenderOnPropertySelectorValueChange';\nexport {default as unstableRemoveRenderOnPropertySelectorValueChange} from './unstableRemoveRenderOnPropertySelectorValueChange';\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\n/**\n * Create a function for mapping a provider compoent id, property selector, to a consumer component id, property name and path\n * Sample mapping Obj\n * mappings: {\n * \tproviderComponent@providerProp: {\n * \t\tselectorId@selectorProp: 'pathValue'\n * \t}\n * }\n * @function createAddMapping\n * @private\n * @param {Object} mappings\n * @returns {function} - A function for adding a mapping\n */\nexport default function createAddMapping(mappings) {\n\t/**\n\t * @function addMapping\n\t * @private\n\t * @param {Object} providerDetail - A object that will contain providerId, providerPropName, providerPropPath\n\t * @param {Object} consumerDetail - A object that will contain consumerId, consumerPropName\n\t */\n\treturn function addMapping(providerDetail, consumerDetail) {\n\t\tconst {providerId, providerPropName, providerPropPath} = providerDetail;\n\t\tconst {consumerId, consumerPropName} = consumerDetail;\n\t\tconst providerKey = `${providerId}${PROPERTY_SELECTOR_SIGIL}${providerPropName}`;\n\t\tconst consumerKey = `${consumerId}${PROPERTY_SELECTOR_SIGIL}${consumerPropName}`;\n\n\t\tif (!mappings[providerKey]) mappings[providerKey] = {}; // eslint-disable-line no-param-reassign\n\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tmappings[providerKey][consumerKey] = providerPropPath;\n\t};\n}\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n/**\n * Create a function removing mapped components by component id and optionally property name\n * @function createRemoveMappings\n * @private\n *\n * @param {Object} mappings - A object that will contain mappings\n * @returns {function} - A function for removing mapped components by component id and optionally property name\n */\nexport default mappings =>\n\tfunction removeMappings(elementId, propertyName) {\n\t\tif (elementId && propertyName) {\n\t\t\tfor (const key in mappings) {\n\t\t\t\tconst selectorKey = mappings[key][`${elementId}${PROPERTY_SELECTOR_SIGIL}${propertyName}`];\n\t\t\t\tif (selectorKey === '' || selectorKey)\n\t\t\t\t\tdelete mappings[key][`${elementId}${PROPERTY_SELECTOR_SIGIL}${propertyName}`]; // eslint-disable-line no-param-reassign\n\n\t\t\t\tif (Object.keys(mappings[key]).length === 0) delete mappings[key]; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t}\n\n\t\tif (elementId && !propertyName) {\n\t\t\tfor (const key in mappings) {\n\t\t\t\tfor (const subKey in mappings[key]) {\n\t\t\t\t\tconst componentId = subKey.split(PROPERTY_SELECTOR_SIGIL)[0];\n\t\t\t\t\tif (componentId === elementId) delete mappings[key][subKey]; // eslint-disable-line no-param-reassign\n\t\t\t\t}\n\n\t\t\t\tif (Object.keys(mappings[key]).length === 0) delete mappings[key]; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t}\n\t};\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\nimport isSelectableProperty from './isSelectableProperty';\n/**\n * Create a function for getting components affected by a property name and source component id\n * @function createGetAffected\n * @private\n *\n * @param {Object} mappings - A object that will contain mappings\n * @returns {function} - A function for getting components affected by a property name and source component id\n */\nexport default mappings =>\n\tfunction getAffected(propertyName, providerId, componentRegistry, includeSource = true) {\n\t\tconst sourceAffected = includeSource\n\t\t\t? {[`${providerId}${PROPERTY_SELECTOR_SIGIL}${propertyName}`]: ''}\n\t\t\t: {};\n\t\tlet componentsAffected = {\n\t\t\t...mappings[`${providerId}${PROPERTY_SELECTOR_SIGIL}${propertyName}`]\n\t\t};\n\n\t\tif (!Object.keys(componentsAffected).length) return sourceAffected;\n\n\t\tif (!isSelectableProperty(componentRegistry, providerId, propertyName)) return sourceAffected;\n\n\t\t(function getAffectedSelectorChain(componentMap) {\n\t\t\tfor (const selectorMap in componentMap) {\n\t\t\t\tif (mappings[selectorMap]) {\n\t\t\t\t\tcomponentsAffected = {\n\t\t\t\t\t\t...componentsAffected,\n\t\t\t\t\t\t...mappings[selectorMap]\n\t\t\t\t\t};\n\t\t\t\t\tgetAffectedSelectorChain(mappings[selectorMap]);\n\t\t\t\t}\n\t\t\t}\n\t\t})(componentsAffected);\n\n\t\treturn {\n\t\t\t...sourceAffected,\n\t\t\t...componentsAffected\n\t\t};\n\t};\n","import getHostVariables from '../utils/getHostVariables';\nimport {PROPERTY_DEFS} from '../symbols';\n\nexport default function isSelectableProperty(componentRegistry, id, name) {\n\tconst el = componentRegistry[id];\n\tconst hostVariables = getHostVariables(el);\n\tif (el) {\n\t\tconst propertyDefs = hostVariables[PROPERTY_DEFS];\n\n\t\treturn (propertyDefs[name] && propertyDefs[name].selectable) || false;\n\t}\n\n\treturn false;\n}\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\n// TODO: this should be refactored to remove some redundancy with creatGetAffected\nexport default mappings =>\n\tfunction getComponentAffected(propertyName, providerId) {\n\t\tlet componentsAffected = {\n\t\t\t...mappings[`${providerId}${PROPERTY_SELECTOR_SIGIL}${propertyName}`]\n\t\t};\n\n\t\tif (!Object.keys(componentsAffected).length) return componentsAffected;\n\n\t\t(function getAffectedSelectorChain(componentMap) {\n\t\t\tfor (const selectorMap in componentMap) {\n\t\t\t\tif (mappings[selectorMap]) {\n\t\t\t\t\tcomponentsAffected = {\n\t\t\t\t\t\t...componentsAffected,\n\t\t\t\t\t\t...mappings[selectorMap]\n\t\t\t\t\t};\n\t\t\t\t\tgetAffectedSelectorChain(mappings[selectorMap]);\n\t\t\t\t}\n\t\t\t}\n\t\t})(componentsAffected);\n\n\t\treturn componentsAffected;\n\t};\n","/**\n * Create a function to update the existing map with a providerDetail key and its resolved value\n * Sample mapping Obj\n * mappings: {\n * \tproviderComponent{\n * \t\tproviderProp: resolvedValue\n * \t\t}\n * }\n * @param resolvedMappings\n * @returns {(function(*, *): void)}\n */\nexport default function createAddResolvedPropertyMapping(resolvedMappings) {\n\treturn function addResolvedPropertyMapping(providerDetail, resolvedValue) {\n\t\tconst {providerId, providerPropName} = providerDetail;\n\t\tif (!resolvedMappings.has(providerId)) resolvedMappings.set(providerId, new Map());\n\t\tresolvedMappings.get(providerId).set(providerPropName, resolvedValue);\n\t};\n}\n","export default function createAddSelectablePropertyMapping(resolvedMappings) {\n\treturn function (consumerDetail, resolvedValue) {\n\t\tconst {consumerId, consumerPropName} = consumerDetail;\n\t\tif (!resolvedMappings.has(consumerId)) resolvedMappings.set(consumerId, new Map());\n\t\tresolvedMappings.get(consumerId).set(consumerPropName, resolvedValue);\n\t};\n}\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\nexport default resolvedMappings =>\n\tfunction resolvedMappingHasKey(key) {\n\t\tconst [componentId, componentPropName] = key.split(PROPERTY_SELECTOR_SIGIL);\n\t\tif (!resolvedMappings.has(componentId)) return false;\n\n\t\treturn resolvedMappings.get(componentId).has(componentPropName);\n\t};\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\nexport default resolvedMappings =>\n\tfunction getResolvedPropertyValue(key) {\n\t\tconst [componentId, componentPropName] = key.split(PROPERTY_SELECTOR_SIGIL);\n\t\tif (!resolvedMappings.has(componentId)) return;\n\t\treturn resolvedMappings.get(componentId).get(componentPropName);\n\t};\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\nimport {isEqual} from '@servicenow/ui-utils';\n\n/**\n * function to remove the entry from the resolvedSelectedPropertyMapping\n * 1. remove the entry if found\n * 2. If the entry to be deleted has impacted consumer components, those impacted ones will be cleared too\n * @param resolvedMappings\n * @param selectedMappings\n * @returns {(function(*, *, *): void)}\n */\nexport default (resolvedMappings, selectedMappings) =>\n\tfunction removeResolvedPropertyMapping(providerId, providerPropName, newValue) {\n\t\tif (!providerId) return;\n\t\tif (!resolvedMappings.has(providerId)) return;\n\n\t\tif (providerPropName) {\n\t\t\tconst existingResolvedProviderMapping = resolvedMappings.get(providerId);\n\t\t\tif (!existingResolvedProviderMapping.has(providerPropName)) return;\n\t\t\tif (!isEqual(newValue, existingResolvedProviderMapping.get(providerPropName))) {\n\t\t\t\texistingResolvedProviderMapping.delete(providerPropName);\n\t\t\t\tif (existingResolvedProviderMapping.size === 0) resolvedMappings.delete(providerId);\n\t\t\t\tdeleteImpactedMapping(selectedMappings, providerId, providerPropName, resolvedMappings);\n\t\t\t}\n\t\t} else {\n\t\t\tresolvedMappings.get(providerId).forEach((value, propName) => {\n\t\t\t\tdeleteImpactedMapping(selectedMappings, providerId, propName, resolvedMappings);\n\t\t\t});\n\t\t\tresolvedMappings.delete(providerId);\n\t\t}\n\t};\n\n// need to clear cached values for selectable consumer values down the chain\nfunction deleteImpactedMapping(selectedMappings, providerId, providerPropName, resolvedMappings) {\n\tconst selectorKey = `${providerId}${PROPERTY_SELECTOR_SIGIL}${providerPropName}`;\n\tconst impactedMappings = selectedMappings[selectorKey];\n\tif (!impactedMappings) return;\n\n\tfor (const impactedMappingKey in impactedMappings) {\n\t\tconst [componentId, componentPropName] = impactedMappingKey.split(PROPERTY_SELECTOR_SIGIL);\n\t\tconst existingResolvedEntry = resolvedMappings.get(componentId);\n\t\tif (existingResolvedEntry && existingResolvedEntry.has(componentPropName)) {\n\t\t\texistingResolvedEntry.delete(componentPropName);\n\t\t\tif (existingResolvedEntry.size === 0) resolvedMappings.delete(componentId);\n\n\t\t\tdeleteImpactedMapping(selectedMappings, componentId, componentPropName, resolvedMappings);\n\t\t}\n\t}\n}\n","import {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\n/**\n * Create a function to add to resolvedPropertyMappings with a key and its resolved value\n * The key should look like this: providerComponent@providerProp\n * @param resolvedMappings\n * @returns {(function(*, *): void)}\n */\nexport default function createAddResolvedPropertyMappingWithKey(resolvedMappings) {\n\treturn function (key, resolvedValue) {\n\t\tconst [componentId, componentPropName] = key.split(PROPERTY_SELECTOR_SIGIL);\n\t\tif (!resolvedMappings.has(componentId)) resolvedMappings.set(componentId, new Map());\n\t\tresolvedMappings.get(componentId).set(componentPropName, resolvedValue);\n\t};\n}\n","import {getSelectorParts, isSelectableProperty, isSelector} from './';\n\nfunction resolveSelectorChain(id, name, path, propertyResolver, componentRegistry) {\n\tconst property = propertyResolver(componentRegistry, id, name, path);\n\tif (property && property[0] === '@') {\n\t\tconst [id, name, path] = getSelectorParts(property);\n\t\treturn resolveSelectorChain(id, name, path, propertyResolver, componentRegistry);\n\t}\n\n\treturn property;\n}\n\n/**\n * Returns property selector parts for a single property\n * @function resolveSelectedProperty\n * @private\n *\n * @param {Object} componentRegistry - Component registry\n * @param {function} propertyResolver - Returns the value for a property\n * @param {Object} property - property to be resolved\n * @param {Object} propertyDef - property definition from the config\n * @returns {Object} - The  resolved property\n */\nexport default function resolveSelectedProperty(\n\tcomponentRegistry,\n\tpropertyResolver,\n\tproperty,\n\tpropertyDef\n) {\n\tconst [id, name, path] = getSelectorParts(property);\n\n\tif (!id || !name) return property;\n\n\tconst defaultValue = propertyDef && propertyDef.default;\n\tif (!isSelectableProperty(componentRegistry, id, name))\n\t\treturn !isSelector(defaultValue) ? defaultValue : undefined;\n\n\tconst resolvedValue = resolveSelectorChain(id, name, path, propertyResolver, componentRegistry);\n\tif (resolvedValue !== undefined) return resolvedValue;\n\n\treturn !isSelector(defaultValue) ? defaultValue : undefined;\n}\n","import {\n\taddResolvedPropertyMappingWithKey,\n\tgetResolvedProperty,\n\tresolveMappingHasKey\n} from './index';\nimport resolveProviderSelectedProperty from './resolveProviderSelectedProperty';\nimport getResolvedValue from '../utils/getResolvedValue';\nimport shouldAddToResolvedPropertyMapping from '../utils/shouldAddToResolvedPropertyMapping';\nimport {set, get} from '@servicenow/ui-internal';\n\n/**\n * Returns property selector parts for a set of properties\n * @function resolveSelectedProperties\n * @private\n *\n * @param {Object} componentRegistry - Component registry\n * @param {function} propertyResolver - Returns the value for a property\n * @param {Object} properties - A set of properties to be resolved\n * @param {Object} propertiesDef - property definition from the config\n * @param {Object} propWithSelector - A variable from the component\n * @returns {Object} - A set of resolved properties\n */\nexport default function resolveSelectedProperties(\n\tcomponentRegistry,\n\tpropertyResolver,\n\tproperties,\n\tpropertiesDef = {},\n\tpropWithSelector\n) {\n\tif (Object.entries(propWithSelector).length === 0) {\n\t\treturn properties;\n\t}\n\n\tconst resolved = {...properties};\n\tfor (const propName in propWithSelector) {\n\t\tconst [id, path] = propWithSelector[propName];\n\t\tconst hasBeenResolved = resolveMappingHasKey(id);\n\n\t\tif (hasBeenResolved) {\n\t\t\tconst resolvedValueObj = getResolvedProperty(id);\n\t\t\tset(resolved, propName, getResolvedValue(resolvedValueObj, path, propertiesDef[propName]));\n\t\t} else {\n\t\t\tconst propDef = propertiesDef[propName];\n\t\t\tconst propertyValue = get(properties, propName);\n\t\t\tconst resolvedValue = resolveProviderSelectedProperty(\n\t\t\t\tpropertyValue,\n\t\t\t\tpath,\n\t\t\t\tcomponentRegistry,\n\t\t\t\tpropDef\n\t\t\t);\n\t\t\tset(resolved, propName, getResolvedValue(resolvedValue, path, propertiesDef[propName]));\n\t\t\tif (shouldAddToResolvedPropertyMapping(propertyValue, componentRegistry))\n\t\t\t\taddResolvedPropertyMappingWithKey(id, resolvedValue);\n\t\t}\n\t}\n\n\treturn resolved;\n}\n","import {resolveSelectedProperty} from './index';\nimport {selectablePropertyResolver} from '../utils';\n\nexport default function resolveProviderSelectedProperty(\n\tpropertyValue,\n\tproviderPropPath,\n\tcomponentRegistry,\n\tpropertyDef\n) {\n\tif (providerPropPath) {\n\t\treturn resolveSelectedProperty(\n\t\t\tcomponentRegistry,\n\t\t\tselectablePropertyResolver,\n\t\t\tpropertyValue.substring(0, propertyValue.length - providerPropPath.length),\n\t\t\tpropertyDef\n\t\t);\n\t}\n\treturn resolveSelectedProperty(\n\t\tcomponentRegistry,\n\t\tselectablePropertyResolver,\n\t\tpropertyValue,\n\t\tpropertyDef\n\t);\n}\n","import {get} from '@servicenow/ui-internal';\nimport {isSelector} from '../property-selectors';\n\n/**\n * Utility function to get resolved value with a path\n * @param resolvedValue\n * @param path\n * @returns {*}\n */\nexport default function getResolvedValue(resolvedValue, path, propertyDef) {\n\tif (resolvedValue && path) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tresolvedValue = get(resolvedValue, path);\n\t}\n\n\tif (\n\t\tresolvedValue === undefined &&\n\t\tpropertyDef?.default !== undefined &&\n\t\t!isSelector(propertyDef?.default)\n\t) {\n\t\treturn propertyDef.default;\n\t}\n\n\treturn resolvedValue;\n}\n","import {getSelectorParts} from '../property-selectors';\nimport {getHostVariables, isComputedProperty} from './index';\nimport {PROPERTY_DEFS} from '../symbols';\n\n/**\n * Util function to determine if a resolved selected property should be added to the mapping\n * If provider's property is computed, it always needs to be recalculated at runtime\n * So returns false\n * @param propValue\n * @param componentRegistry\n * @returns {boolean}\n */\nexport default function shouldAddToResolvedPropertyMapping(propValue, componentRegistry) {\n\tconst [id, name] = getSelectorParts(propValue);\n\tconst component = componentRegistry[id];\n\tif (!component) return false;\n\n\treturn !isComputedProperty(name, getHostVariables(component)?.[PROPERTY_DEFS]);\n}\n","import {memoize} from '@servicenow/ui-internal';\n\nconst getParts = memoize(\n\tvalue => {\n\t\tconst slashIndex = value.indexOf('/');\n\n\t\tif (slashIndex === -1) return [];\n\n\t\tconst [delimeter, pathSplitIndex] = getDelimeterDetail(value);\n\n\t\treturn [\n\t\t\tvalue.substring(1, slashIndex),\n\t\t\tvalue.substring(\n\t\t\t\tslashIndex + 1,\n\t\t\t\tpathSplitIndex === -1\n\t\t\t\t\t? value.length\n\t\t\t\t\t: delimeter === '.'\n\t\t\t\t\t? pathSplitIndex\n\t\t\t\t\t: pathSplitIndex + 1\n\t\t\t),\n\t\t\tpathSplitIndex !== -1 ? value.substring(pathSplitIndex + 1) : ''\n\t\t];\n\t},\n\t{profileName: 'getParts'}\n);\n\nconst getDelimeterDetail = selector => {\n\tconst {length: selectorLength} = selector;\n\tfor (let i = 0; i < selectorLength; i++) {\n\t\tconst value = selector.charAt(i);\n\t\tif (value === '.') return [value, i];\n\t\tif (value === '[') return [value, i - 1];\n\t}\n\n\treturn ['', -1];\n};\n\n/**\n * Returns property selector parts, id and property name\n * @function getSelectorParts\n * @private\n *\n * @param {Object} mappings - A object that will contain mappings\n * @returns {Array} - Property selector parts, id, property name and path\n */\nexport default function getSelectorParts(value) {\n\tif (typeof value !== 'string') return [];\n\tif (value[0] !== '@') return [];\n\n\treturn getParts(value);\n}\n","import {memoize} from '@servicenow/ui-internal';\n\nconst hasSeperator = memoize(value => value.indexOf('/') > 0, {profileName: 'hasSeperator'});\n\nexport default function isSelector(value) {\n\treturn typeof value === 'string' && value[0] === '@' && hasSeperator(value);\n}\n","import isSelector from './isSelector';\nimport {getSelectorParts} from './index';\nimport {PROPERTY_SELECTOR_SIGIL} from '../constants';\n\n/**\n * function to update an object of selectedProperties\n * example obj:\n * resolvedSelectedPropertyMapKey = providerComponentId@PropName\n * {\n *     propertyName: [resolvedSelectedPropertyMapKey, pathValue]\n * }\n * @param {string} propertyName\n * @param {string} propertyValue\n * @param {object} selectedProperties\n */\nexport default function updatePropertiesWithSelector(\n\tpropertyName,\n\tpropertyValue,\n\tselectedProperties\n) {\n\tif (!isSelector(propertyValue)) return;\n\n\tconst [id, name, path] = getSelectorParts(propertyValue);\n\tconst key = `${id}${PROPERTY_SELECTOR_SIGIL}${name}`;\n\tselectedProperties[propertyName] = [key, path];\n}\n","import {memoize} from '@servicenow/ui-internal';\nimport log from '../log';\n\n/**\n * Returns parts for nested selectable properties\n * @function getPartsForNestedSelectableProps\n * @private\n *\n * @param {string} value - The value to be split\n * @returns {Array} - The parts of the value, first element is the root prop name,\n * the second element is path within the object that has the selectable prop\n */\nexport default memoize(\n\tvalue => {\n\t\tconst dotIndex = value.indexOf('.');\n\n\t\tif (dotIndex === -1) {\n\t\t\tlog(`Invalid nested selectable property name: ${value}`, {\n\t\t\t\torigin: 'get_parts_for_nested_selectable_props'\n\t\t\t});\n\t\t\treturn [];\n\t\t}\n\n\t\tconst path = value.substring(dotIndex + 1);\n\n\t\tif (!path) {\n\t\t\tlog(`Invalid nested selectable property name: ${value}`, {\n\t\t\t\torigin: 'get_parts_for_nested_selectable_props'\n\t\t\t});\n\t\t\treturn [];\n\t\t}\n\n\t\treturn [value.substring(0, dotIndex), path];\n\t},\n\t{profileName: 'getPartsForNestedSelectableProps'}\n);\n","import updatePropertiesWithSelector from './updatePropertiesWithSelector';\nimport {updateSelectedPropertyMappings, updateResolvedSelectedPropertyMappings} from '../utils';\n\nexport default function applyUpdatesForSelectableProps({\n\tname,\n\tvalue,\n\tpropertiesWithSelector,\n\tcomponentId,\n\tpropertyDetails,\n\tcomponentRegistry,\n\tnormalizedConfigForProp\n}) {\n\tupdatePropertiesWithSelector(name, value, propertiesWithSelector);\n\tupdateSelectedPropertyMappings(value, name, componentId);\n\tupdateResolvedSelectedPropertyMappings(\n\t\tpropertyDetails,\n\t\tname,\n\t\tcomponentId,\n\t\tcomponentRegistry,\n\t\tnormalizedConfigForProp,\n\t\tpropertiesWithSelector\n\t);\n}\n","import {selectablePropertyResolver} from '../utils';\nimport resolveSelectedProperty from './resolveSelectedProperty';\n\nexport default function createUnstableResolvePropertySelectorValue(componentRegistry) {\n\treturn function unstableResolvePropertySelectorValue(propertySelector) {\n\t\treturn resolveSelectedProperty(\n\t\t\tcomponentRegistry,\n\t\t\tselectablePropertyResolver,\n\t\t\tpropertySelector,\n\t\t\t{}\n\t\t);\n\t};\n}\n","import {COMPONENT_ID} from '../symbols';\nimport {updateSelectedPropertyMappings, getHostVariables} from '../utils';\n\nexport default function unstableAddRenderOnPropertySelectorValueChange(host, propertySelector) {\n\tconst hostVariables = getHostVariables(host);\n\tupdateSelectedPropertyMappings(propertySelector, propertySelector, hostVariables[COMPONENT_ID]);\n}\n","import {getHostVariables} from '../utils';\nimport {COMPONENT_ID} from '../symbols';\nimport {removeMappings} from '../property-selectors';\n\nexport default function unstableRemoveRenderOnPropertySelectorValueChange(host, propertySelector) {\n\tconst hostVariables = getHostVariables(host);\n\tremoveMappings(hostVariables[COMPONENT_ID], propertySelector);\n}\n","export default function filterPropertyDefinitions(properties, fn) {\n\tconst filteredPropertyDefs = {};\n\tif (!properties) return filteredPropertyDefs;\n\n\tconst keys = Object.keys(properties);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst k = keys[i];\n\t\tconst value = properties[k];\n\t\tif (fn(value)) filteredPropertyDefs[k] = value;\n\t}\n\n\treturn filteredPropertyDefs;\n}\n","import {toLower} from '@servicenow/ui-internal';\nimport {SEISMIC_HOIST_TAG_NAME} from '../constants';\n\nconst doc = window.document;\nconst styleFragments = {};\n\nexport function removeStyleFragmentFromCache(tagName) {\n\tdelete styleFragments[tagName.toUpperCase()];\n}\n\n/**\n * @function\n * @param {String} [style]\n * @param {Array.<String>} [stylesheetsContent]\n * @param {String} [tagName]\n * @returns {HTMLElement}\n */\nexport default function createStyleFragment(style, stylesheetsContent, tagName) {\n\tconst cachedStyleFragment = styleFragments[tagName];\n\tif (cachedStyleFragment) return cachedStyleFragment.content.cloneNode(true);\n\n\tlet styleFragment;\n\tconst externalStylesFragment = document.head.querySelector(`#now-${toLower(tagName)}-styles`);\n\tif (externalStylesFragment) {\n\t\tstyleFragment = mergeStylesheets(externalStylesFragment, stylesheetsContent);\n\t} else {\n\t\tlet styles = '';\n\t\tstyleFragment = doc.createElement('template');\n\n\t\tif (style) styles += style;\n\n\t\tif (stylesheetsContent) styles += stylesheetsContent;\n\n\t\tstyleFragment.innerHTML = `<style type=\"text/css\">${styles}<\/style>`;\n\t}\n\n\tif (tagName !== SEISMIC_HOIST_TAG_NAME) styleFragments[tagName] = styleFragment;\n\n\treturn styleFragment.content.cloneNode(true);\n}\n\nfunction mergeStylesheets(externalStylesFragment, stylesheetsContent) {\n\tif (!stylesheetsContent) return externalStylesFragment;\n\n\t// this case should be rare, if ever; ideally we should deprecate support for config.stylesheets\n\tconst externalStylesEl = externalStylesFragment.content.cloneNode(true).children[0];\n\texternalStylesEl.textContent = `${stylesheetsContent}\\n${externalStylesEl.textContent}`;\n\tconst mergedStyleFragment = doc.createElement('template');\n\tmergedStyleFragment.content.appendChild(externalStylesEl);\n\n\treturn mergedStyleFragment;\n}\n","export default [];\n","import reflectQueue from './reflectQueue';\nexport default function isReflecting(name) {\n\tconst {length: reflectCount} = reflectQueue;\n\tfor (let i = 0; i < reflectCount; i++) {\n\t\tif (name === reflectQueue[i]) return name;\n\t}\n}\n","import reflectQueue from './reflectQueue';\n\nexport default function clearReflection(name) {\n\tlet index = reflectQueue.indexOf(name);\n\twhile (index !== -1) {\n\t\treflectQueue.splice(index, 1);\n\t\tindex = reflectQueue.indexOf(name);\n\t}\n\n\treturn reflectQueue;\n}\n","export default function isComputedProperty(name, definitions) {\n\treturn definitions[name] && definitions[name].computed;\n}\n","import {memoize, camelCase} from '@servicenow/ui-internal';\n\nexport default memoize(\n\tfunction toPropertyName(attrName) {\n\t\treturn camelCase(attrName);\n\t},\n\t{profileName: 'toPropertyName'}\n);\n","export default function isReadOnlyProperty(name, definitions) {\n\treturn definitions[name] && definitions[name].readOnly;\n}\n","import isReadOnlyProperty from './isReadOnlyProperty';\nimport toPropertyName from './toPropertyName';\nimport isComputedProperty from './isComputedProperty';\nimport {memoize} from '@servicenow/ui-internal';\n\nconst shouldSetMemoized = memoize(\n\tfunction shouldSetAttribute(tagName, name, defs) {\n\t\tconst readOnly = isReadOnlyProperty(toPropertyName(name), defs);\n\t\tconst computedProperty = isComputedProperty(toPropertyName(name), defs);\n\n\t\treturn !readOnly && !computedProperty;\n\t},\n\t{profileName: 'shouldSetAttribute'}\n);\n\nexport default function shouldSetAttribute(tagName, isReflecting, name, defs = {}) {\n\treturn isReflecting || shouldSetMemoized(tagName, name, defs);\n}\n","import isReadOnlyProperty from './isReadOnlyProperty';\nimport toPropertyName from './toPropertyName';\nimport isComputedProperty from './isComputedProperty';\nimport {memoize} from '@servicenow/ui-internal';\n\nexport default memoize(\n\tfunction shouldSetProperty(tagName, name, defs = {}, setReadOnly = false) {\n\t\tconst propertyName = toPropertyName(name);\n\t\tconst readOnly = isReadOnlyProperty(propertyName, defs);\n\t\tconst computedProperty = isComputedProperty(propertyName, defs);\n\n\t\treturn (!readOnly || (readOnly && setReadOnly)) && !computedProperty;\n\t},\n\t{\n\t\tcreateCacheKey: (tagName, name, defs, setReadOnly) => `${tagName}|${name}|${setReadOnly}`,\n\t\tprofileName: 'shouldSetProperty'\n\t}\n);\n","const beforeNextTick = Promise.resolve().then.bind(Promise.resolve());\nexport default beforeNextTick;\n","import {mark, types as metrics} from '@servicenow/ui-metrics';\n\nconst performanceApiExists =\n\tperformance &&\n\ttypeof performance.mark === 'function' &&\n\ttypeof performance.measure === 'function';\nlet {__ENABLE_NOW_UI_PERFORMANCE__} = window;\nlet uiPerfEnabled =\n\tprocess.env.NODE_ENV === 'performance' ||\n\tprocess.env.NODE_ENV === 'test' ||\n\t__ENABLE_NOW_UI_PERFORMANCE__;\n\ntry {\n\tdelete window.__ENABLE_NOW_UI_PERFORMANCE__;\n\n\tObject.defineProperty(window, '__ENABLE_NOW_UI_PERFORMANCE__', {\n\t\tconfigurable: true,\n\t\tget() {\n\t\t\treturn __ENABLE_NOW_UI_PERFORMANCE__;\n\t\t},\n\t\tset(value) {\n\t\t\t__ENABLE_NOW_UI_PERFORMANCE__ = value;\n\t\t\tuiPerfEnabled =\n\t\t\t\tprocess.env.NODE_ENV === 'performance' || process.env.NODE_ENV === 'test' || value;\n\t\t}\n\t});\n} catch (e) {\n\t// fail silently\n}\n\nexport default function measure(fn, host, marker, interactionId, options) {\n\tif (!performanceApiExists) return fn();\n\n\tmark(host, interactionId, metrics.RENDER_START, options);\n\n\tlet startMarker;\n\tif (uiPerfEnabled) {\n\t\tstartMarker = `${marker}-start`;\n\t\tperformance.mark(startMarker);\n\t}\n\tfn();\n\tmark(host, interactionId, metrics.RENDER_END, options);\n\tif (uiPerfEnabled) performance.measure(marker, startMarker);\n}\n","import getHostVariables from './getHostVariables';\nimport {PROPS} from '../symbols';\nimport {get} from '@servicenow/ui-internal';\n\nexport default function selectablePropertyResolver(componentRegistry, id, name, path) {\n\tconst el = componentRegistry[id];\n\tif (el) {\n\t\tconst hostVariables = getHostVariables(el);\n\t\tconst property = hostVariables[PROPS][name];\n\t\tif (path) {\n\t\t\treturn property && property[0] === '@'\n\t\t\t\t? path[0] === '['\n\t\t\t\t\t? `${property}${path}`\n\t\t\t\t\t: `${property}.${path}`\n\t\t\t\t: get(property, path);\n\t\t}\n\n\t\treturn property;\n\t}\n\n\treturn undefined;\n}\n","import triggerPropertyChangeAction from './triggerPropertyChangeAction';\nimport {\n\tHOIST_APPEND_TO_PROP,\n\tHOIST_ATTR,\n\tNOW_HOIST_APPEND_TO_PROP,\n\tNOW_HOIST_PREPEND_TO_PROP,\n\tNOW_HOIST_PROP,\n\tPROPERTY_SELECTOR_SIGIL\n} from '../constants';\nimport {HOIST_CHANGED, HOIST_PARENT_CHANGED, PROPERTY_DEFS, RENDER, VARIABLES} from '../symbols';\nimport log from '../log';\nimport {isPropToSkipRender} from './isPropToSkipRender';\n\nexport default function triggerComponentUpdates(\n\tcomponentRegistry,\n\taffected,\n\tpropertyDetails,\n\tinteractionId,\n\tlabel,\n\toptions = {}\n) {\n\tconst {value} = propertyDetails;\n\tconst renderList = [];\n\tfor (const id in affected) {\n\t\tconst [elementId, propName] = id.split(PROPERTY_SELECTOR_SIGIL);\n\t\tconst el = componentRegistry[elementId];\n\t\trenderList.push({\n\t\t\telementId,\n\t\t\ttagName: el?.tagName,\n\t\t\tpropName,\n\t\t\tpropDef: el?.[VARIABLES]?.[PROPERTY_DEFS]?.[propName]\n\t\t});\n\n\t\tif (el && propName) {\n\t\t\ttriggerPropertyChangeAction(\n\t\t\t\tel,\n\t\t\t\tpropertyDetails,\n\t\t\t\t{propName, path: affected[id]},\n\t\t\t\tinteractionId,\n\t\t\t\toptions.activeSpan\n\t\t\t);\n\n\t\t\tif (propName === NOW_HOIST_PROP || propName === HOIST_ATTR) el[HOIST_CHANGED](value);\n\n\t\t\tif (\n\t\t\t\tpropName === HOIST_APPEND_TO_PROP ||\n\t\t\t\tpropName === NOW_HOIST_APPEND_TO_PROP ||\n\t\t\t\tpropName === NOW_HOIST_PREPEND_TO_PROP\n\t\t\t)\n\t\t\t\tel[HOIST_PARENT_CHANGED](propName);\n\t\t}\n\t}\n\n\tfor (let i = 0; i < renderList.length; i++) {\n\t\tconst {elementId, tagName, propName, propDef} = renderList[i];\n\t\tif (componentRegistry[elementId]) {\n\t\t\tif (!isPropToSkipRender(tagName, propName, propDef))\n\t\t\t\tcomponentRegistry[elementId][RENDER](interactionId, label, {\n\t\t\t\t\tpropName,\n\t\t\t\t\tvalue,\n\t\t\t\t\tactiveSpan: options.activeSpan\n\t\t\t\t});\n\t\t} else {\n\t\t\tlog(\n\t\t\t\t`Component with id \"${elementId}\" could not be re-rendered from a change in property \"${propName}\" because the component is disconnected or not known.`,\n\t\t\t\t{\n\t\t\t\t\tcomponentId: elementId,\n\t\t\t\t\torigin: 'triggerComponentUpdates'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n}\n","import {setInteractionId} from '@servicenow/ui-metrics';\nimport {CONDITIONAL_DISPATCH} from '../symbols';\nimport {COMPONENT_PROPERTY_CHANGED} from '../constants';\nimport {get} from '@servicenow/ui-internal';\nimport getHostVariables from './getHostVariables';\n\nexport default function triggerPropertyChangeAction(\n\tel,\n\tpropertyDetail,\n\taffectedPropDetail,\n\tinteractionId,\n\tactiveSpan = null\n) {\n\tconst {propName: name, path} = affectedPropDetail;\n\tlet {previousValue, value} = propertyDetail;\n\tif (path) {\n\t\tpreviousValue = get(previousValue, path);\n\t\tvalue = get(value, path);\n\t}\n\tconst hostVariables = getHostVariables(el);\n\thostVariables[CONDITIONAL_DISPATCH](\n\t\tCOMPONENT_PROPERTY_CHANGED,\n\t\t{\n\t\t\tname,\n\t\t\tpreviousValue,\n\t\t\tvalue,\n\t\t\thost: el\n\t\t},\n\t\tsetInteractionId(\n\t\t\t{\n\t\t\t\tinternal: true,\n\t\t\t\tspan: activeSpan\n\t\t\t},\n\t\t\tinteractionId\n\t\t)\n\t);\n}\n","import {memoize} from '@servicenow/ui-internal';\nimport {NOW_METRIC_TYPES_PROP, NOW_METRICS_LEVEL_PROP, NOW_LOGGING_LEVELS_PROP} from '../constants';\n\nconst skipRenderPropsList = [\n\tNOW_METRIC_TYPES_PROP,\n\tNOW_METRICS_LEVEL_PROP,\n\tNOW_LOGGING_LEVELS_PROP\n];\n\nexport const isPropToSkipRender = memoize(\n\t(_tagName, propName, propDef) =>\n\t\tskipRenderPropsList.includes(propName) || propDef?.shouldRenderWhenSet === false,\n\t{\n\t\tcreateCacheKey: (tagName, propName) => `${tagName}|${propName}`,\n\t\tprofileName: `isPropToSkipRender`\n\t}\n);\n","import {addMapping, getSelectorParts, removeMappings} from '../property-selectors';\n\nexport default function updateSelectedPropertyMappings(\n\tpropertyValue,\n\tconsumerPropName,\n\tconsumerId,\n\tshouldRemove = true\n) {\n\tconst [providerId, providerPropName, providerPropPath] = getSelectorParts(propertyValue);\n\n\tif (shouldRemove) removeMappings(consumerId, consumerPropName);\n\n\tif (providerId && providerPropName)\n\t\taddMapping({providerId, providerPropName, providerPropPath}, {consumerId, consumerPropName});\n}\n","import {\n\taddResolvedPropertyMapping,\n\taddSelectableResolvedPropertyMapping,\n\tgetResolvedProperty,\n\tgetSelectorParts,\n\tremoveResolvedMapping\n} from '../property-selectors';\nimport {getHostVariables} from './index';\nimport {PROPERTY_DEFS} from '../symbols';\nimport resolveProviderSelectedProperty from '../property-selectors/resolveProviderSelectedProperty';\nimport shouldAddToResolvedPropertyMapping from './shouldAddToResolvedPropertyMapping';\nimport quickEquals from './helpers/quickEquals';\nimport getResolvedValue from './getResolvedValue';\nimport updateResolvedValue from './updateResolvedValue';\n\n/**\n * function to update resolvedSelectedPropertyMapping so that we don't need to re-resolve the same property if found\n\n * @param propertyDetails\n * @param consumerPropName\n * @param consumerId\n * @param componentRegistry\n * @param propertyDef\n * @param propertiesWithSelector\n */\nexport default function updateResolvedSelectedPropertyMappings(\n\tpropertyDetails,\n\tconsumerPropName,\n\tconsumerId,\n\tcomponentRegistry = {},\n\tpropertyDef = {},\n\tpropertiesWithSelector = {}\n) {\n\tconst {previousValue, value} = propertyDetails;\n\tconst [previousProviderId, previousProviderPropName, previousProviderPath] =\n\t\tgetSelectorParts(previousValue);\n\tconst [providerId, providerPropName, providerPropPath] = getSelectorParts(value);\n\tif (previousProviderId && previousProviderPropName) {\n\t\tif (!shouldAddToResolvedPropertyMapping(previousValue, componentRegistry)) return;\n\t\t//when the property value has been resolved and added to the mapping\n\t\t//if the new value is different, need to update the mapping accordingly\n\t\tconst [id] = propertiesWithSelector[consumerPropName];\n\t\tconst alreadyResolvedValue = getResolvedProperty(id);\n\t\tif (\n\t\t\talreadyResolvedValue &&\n\t\t\t!quickEquals(getResolvedValue(alreadyResolvedValue, previousProviderPath, propertyDef), value)\n\t\t) {\n\t\t\tconst newValue = updateResolvedValue(alreadyResolvedValue, previousProviderPath, value);\n\t\t\tremoveResolvedMapping(previousProviderId, previousProviderPropName, newValue);\n\t\t\taddResolvedPropertyMapping(\n\t\t\t\t{providerId: previousProviderId, providerPropName: previousProviderPropName},\n\t\t\t\tnewValue\n\t\t\t);\n\t\t}\n\t} else if (providerId && providerPropName) {\n\t\tif (!shouldAddToResolvedPropertyMapping(value, componentRegistry)) return;\n\n\t\tconst resolvedValue = resolveProviderSelectedProperty(\n\t\t\tvalue,\n\t\t\tproviderPropPath,\n\t\t\tcomponentRegistry,\n\t\t\tpropertyDef\n\t\t);\n\t\tremoveResolvedMapping(providerId, providerPropName, resolvedValue);\n\t\taddResolvedPropertyMapping({providerId, providerPropName}, resolvedValue);\n\t} else if (consumerId && consumerPropName) {\n\t\t// when providerId & providerPropName is empty, it means that consumer itself is a provider when it's selectable\n\t\tconst consumerComponent = componentRegistry[consumerId];\n\t\tif (!consumerComponent) return;\n\n\t\tconst consumerPropDef = getHostVariables(consumerComponent)[PROPERTY_DEFS];\n\t\tif (consumerPropDef[consumerPropName]?.selectable) {\n\t\t\tremoveResolvedMapping(consumerId, consumerPropName, value);\n\t\t\taddSelectableResolvedPropertyMapping({consumerId, consumerPropName}, value);\n\t\t}\n\t}\n}\n","export default function quickEquals(newValue, oldValue) {\n\tif (newValue === oldValue) {\n\t\treturn true;\n\t}\n\n\t// If its a primitive and doesnt match we should bail out before going further\n\tif (isPrimitiveOrNull(newValue) || isPrimitiveOrNull(oldValue)) return false;\n\n\t// Trying to rule out anything that might cause false positive for typeof === object later on\n\tif (!supportedType(newValue)) return false;\n\tif (!supportedType(oldValue)) return false;\n\n\tif (!quickEqualsType(newValue, oldValue)) return false;\n\tif (quickEqualsEmptyValue(oldValue, newValue)) return true;\n\n\tif (Array.isArray(newValue)) {\n\t\tconst {length: newValueLength} = newValue;\n\t\tconst {length: oldValueLength} = oldValue;\n\t\tif (newValueLength !== oldValueLength) return false;\n\t\tif (newValueLength > 10) return false;\n\t\tif (newValueLength < 1) return false;\n\n\t\tfor (let i = 0; i < newValueLength; i++) {\n\t\t\tif (!isPrimitiveOrNull(newValue[i]) || !isPrimitiveOrNull(oldValue[i])) {\n\t\t\t\treturn false;\n\t\t\t} else if (newValue[i] !== oldValue[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t} else if (typeof newValue === 'object') {\n\t\tconst keys = Object.keys(newValue);\n\t\tconst {length: newKeyLength} = keys;\n\t\tconst {length: oldKeyLength} = Object.keys(oldValue);\n\n\t\tif (newKeyLength !== oldKeyLength) return false;\n\t\tif (newKeyLength > 6) return false;\n\t\tfor (let key in keys) {\n\t\t\tkey = keys[key];\n\t\t\tif (isPrimitive(newValue[key]) && isPrimitive(oldValue[key])) {\n\t\t\t\tif (newValue[key] !== oldValue[key]) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tcontinue;\n\t\t\t} else if (isUndefinedOrNull(newValue[key]) || isUndefinedOrNull(oldValue[key])) {\n\t\t\t\treturn false;\n\t\t\t} else if (\n\t\t\t\tObject.keys(newValue[key]).length === 2 &&\n\t\t\t\tObject.keys(oldValue[key]).length === 2\n\t\t\t) {\n\t\t\t\tconst currentKeys = Object.keys(newValue[key]);\n\t\t\t\tconst current1 = newValue[key][currentKeys[0]];\n\t\t\t\tconst current2 = newValue[key][currentKeys[1]];\n\t\t\t\tconst old1 = oldValue[key][currentKeys[0]];\n\t\t\t\tconst old2 = oldValue[key][currentKeys[1]];\n\t\t\t\tif (\n\t\t\t\t\t!isPrimitiveOrNull(current1) ||\n\t\t\t\t\t!isPrimitiveOrNull(current2) ||\n\t\t\t\t\t!isPrimitiveOrNull(old1) ||\n\t\t\t\t\t!isPrimitiveOrNull(old2)\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (current1 !== old1 || current2 !== old2) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nexport function supportedType(value) {\n\tif (value instanceof Set) {\n\t\treturn false;\n\t} else if (value instanceof Map) {\n\t\treturn false;\n\t} else if (typeof value === 'function') {\n\t\treturn false;\n\t} else if (Object.getOwnPropertySymbols(value).length > 0) {\n\t\treturn false;\n\t} else if (value instanceof HTMLElement) {\n\t\treturn false;\n\t} else if (value instanceof DOMRect) {\n\t\treturn false;\n\t}\n\n\treturn true;\n}\n\nfunction isPrimitiveOrNull(value) {\n\treturn isPrimitive(value) || isUndefinedOrNull(value);\n}\n\nfunction isPrimitive(value) {\n\tconst type = typeof value;\n\tif (type === 'object' || type === 'function') return false;\n\n\tif (type === 'string') return true;\n\tif (type === 'bigint') return true;\n\tif (type === 'boolean') return true;\n\tif (type === 'number') return true;\n\tif (type === 'symbol') return true;\n\treturn false;\n}\n\nfunction isUndefinedOrNull(value) {\n\treturn value === null || value === undefined;\n}\n\nconst quickEqualsType = (newValue, oldValue) => {\n\tif (typeof newValue !== typeof oldValue) return false;\n\telse if (Array.isArray(newValue) !== Array.isArray(oldValue)) return false;\n\treturn true;\n};\n\nconst quickEqualsEmptyValue = (newValue, oldValue) => {\n\tif (Object.keys(newValue).length == 0 && Object.keys(oldValue).length == 0) return true;\n\treturn false;\n};\n","import {set} from '@servicenow/ui-utils';\n\n/**\n * Utility function to update resolved value with a path\n */\nexport default function updateResolvedValue(alreadyResolvedValue, path, newValue) {\n\tif (!path) return newValue;\n\t//deals with scenario when selected property has a path, e.g. arrayProp[1], objProp.foo\n\tconst updatedValue = alreadyResolvedValue;\n\tset(updatedValue, path, newValue);\n\treturn updatedValue;\n}\n","import beforeNextTick from './beforeNextTick';\n\nconst defaultLifecycleFn = (node, dispatch, next) => next();\nconst defaultAsyncLifecycleFn = (node, dispatch, next) =>\n\tbeforeNextTick(() => defaultLifecycleFn(node, dispatch, next));\n\nexport default function createLifecycleFunctions(\n\trendererOnConnect,\n\trendererOnDisconnect,\n\tshouldRunAsync\n) {\n\tif (shouldRunAsync && !rendererOnConnect) {\n\t\t// only the legacy react renderer should match this case\n\t\treturn {\n\t\t\tonConnect: defaultAsyncLifecycleFn,\n\t\t\tonDisconnect: rendererOnDisconnect || defaultLifecycleFn\n\t\t};\n\t}\n\n\treturn {\n\t\tonConnect: rendererOnConnect || defaultAsyncLifecycleFn,\n\t\tonDisconnect: rendererOnDisconnect || defaultLifecycleFn\n\t};\n}\n","import {NOW_UI_EVENT} from '../constants';\n\nexport function emitNowUiEvent(type, detail) {\n\tif (!window.__ENABLE_NOW_UI_EVENT__) return;\n\tconst event = new CustomEvent(NOW_UI_EVENT, {\n\t\tcomposed: true,\n\t\tbubbles: true,\n\t\tdetail: {\n\t\t\ttype,\n\t\t\t...detail\n\t\t}\n\t});\n\tdocument.dispatchEvent(event);\n}\n","import {toPropertyName} from '../utils';\n\nexport default function camelCaseProperties(state) {\n\tfor (const k in state.properties) {\n\t\tconst newKey = toPropertyName(k);\n\t\tif (newKey !== k) {\n\t\t\tstate.properties[newKey] = state.properties[k];\n\t\t\tdelete state.properties[k];\n\t\t}\n\t}\n\treturn state;\n}\n","/**\n * Unescape reserved characters and seismic\n * Currently, only @ is reserved, we can expand this later if needed\n *\n * @private\n * @param state\n * @param container\n * @returns Object - State\n */\nexport default function unescapeReservedCharacters(state) {\n\tfor (const k in state.properties) {\n\t\tconst value = state.properties[k];\n\t\tif (typeof value === 'string' && (value.startsWith('\\\\@') || value.startsWith('\\\\\\\\@'))) {\n\t\t\tstate.properties[k] = value.slice(1);\n\t\t}\n\t}\n\treturn state;\n}\n","import {GET_RESOLVED_PROPERTY} from '../symbols';\nimport {HOIST_ATTR, NOW_HOIST_PROP, NOW_HOIST_ATTR} from '../constants';\n\nexport default function isHoisted(host) {\n\treturn (\n\t\thost[GET_RESOLVED_PROPERTY](HOIST_ATTR) ||\n\t\thost[GET_RESOLVED_PROPERTY](NOW_HOIST_PROP) ||\n\t\thost.hasAttribute(NOW_HOIST_ATTR) ||\n\t\thost.hasAttribute(HOIST_ATTR)\n\t);\n}\n","import {ROOT_NODE} from '../symbols';\n\nexport function getHoistTarget(hostVariables) {\n\treturn hostVariables[ROOT_NODE].host;\n}\n","import getHostVariables from './getHostVariables';\nimport {COMPONENT_ID} from '../symbols';\nimport {SEISMIC_HOIST_TAG_NAME} from '../constants';\n\nexport default function getRootNode(node) {\n\tconst rootNode = node.getRootNode();\n\n\tif (rootNode.host && rootNode.host.tagName === SEISMIC_HOIST_TAG_NAME)\n\t\treturn rootNode.host.sourceElement;\n\n\tif (rootNode !== document) return rootNode.host;\n\n\tif (node.assignedSlot) return getRootNode(node.assignedSlot);\n\n\tlet {parentNode} = node;\n\twhile (parentNode !== document.body) {\n\t\tconst parentVariables = getHostVariables(parentNode);\n\n\t\tif (parentVariables && parentVariables[COMPONENT_ID]) return parentNode;\n\n\t\tparentNode = parentNode.parentNode; // eslint-disable-line prefer-destructuring\n\t}\n\n\treturn null;\n}\n","import {createInteractionId, applyInteractionId} from '@servicenow/ui-metrics';\nimport {normalizeActionMeta} from './normalizeActionMeta';\nimport {setLogContext} from './helpers/createComponentLogger';\n\nfunction applyMetricsToDispatch(dispatch) {\n\treturn (type, payload, meta = {}, error) => {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tmeta = normalizeActionMeta(meta, {});\n\t\tapplyInteractionId(meta);\n\t\treturn dispatch(type, payload, meta, error);\n\t};\n}\n\nfunction applyMetricsToLogger(logger, traceId, spanId) {\n\tsetLogContext({traceId, spanId});\n\treturn logger;\n}\n\nexport default function applyMetrics(helpers, spanId, interactionId = createInteractionId()) {\n\tconst withMetrics = typeof helpers === 'function' ? applyMetricsToDispatch(helpers) : {};\n\n\tif (helpers.updateState)\n\t\twithMetrics.updateState = (...args) => helpers.updateState(...args, {interactionId});\n\n\tif (helpers.updateContext)\n\t\twithMetrics.updateContext = (...args) => helpers.updateContext(...args, {interactionId});\n\n\tif (helpers.updateProperties)\n\t\twithMetrics.updateProperties = (...args) => helpers.updateProperties(...args, {interactionId});\n\n\tif (helpers.dispatch) withMetrics.dispatch = applyMetricsToDispatch(helpers.dispatch);\n\n\tif (helpers.logger)\n\t\twithMetrics.logger = applyMetricsToLogger(helpers.logger, interactionId, spanId);\n\n\treturn withMetrics;\n}\n","import {isPlainObject} from '@servicenow/ui-internal';\nimport log from '../log';\n\nexport function normalizeActionMeta(meta, {host}) {\n\tlet normalizedMeta = meta;\n\tif (!isPlainObject(meta)) {\n\t\tnormalizedMeta = {...meta};\n\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\tlog(\n\t\t\t\t`While dispatching an action, Expected meta to be an Object but found ${meta}. This will result in inconsistent behavior when passing meta to an action handler`,\n\t\t\t\t{\n\t\t\t\t\thost,\n\t\t\t\t\torigin: 'normalizeActionMeta'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\treturn normalizedMeta;\n}\n","import {getConfigItem, configConstants, observeConfigItem} from '@servicenow/ui-config';\nimport {createInteractionId} from '@servicenow/ui-metrics';\nimport deferHelperExecution from './deferHelperExecution';\nimport {LoggerProvider} from '@devsnc/sn-ui-logger';\n\nglobalThis.nowUiFramework = globalThis.nowUiFramework || {};\nconst {LOGGING_ENABLED, LOGGING_LEVELS} = configConstants;\nconst globalLoggerProvider = getLoggerProvider();\nif (!getConfigItem(LOGGING_ENABLED)) globalLoggerProvider.disableLogging();\n\nconst loggerFunctions = globalThis.nowUiFrameworkLogs.logTypes;\nconst observer = (path, value) => {\n\tswitch (path) {\n\t\tcase LOGGING_ENABLED:\n\t\t\tif (value) globalLoggerProvider.enableLogging();\n\t\t\telse globalLoggerProvider.disableLogging();\n\t\t\tbreak;\n\t\tcase LOGGING_LEVELS:\n\t\t\tglobalLoggerProvider.logLevel = value;\n\t\t\tbreak;\n\t}\n};\n\nobserveConfigItem(LOGGING_ENABLED, observer);\nobserveConfigItem(LOGGING_LEVELS, observer);\n\nexport function getLoggerProvider() {\n\tconst globalLoggerProvider = globalThis.nowUiFramework.snUiLoggerProvider;\n\tif (globalLoggerProvider) {\n\t\treturn globalLoggerProvider;\n\t}\n\n\tconst {LOGGING_LEVELS, LOGS_OBSERVER_INTERVAL, LOGS_CLEANUP_INTERVAL, LOG_EXPORTER} =\n\t\tconfigConstants;\n\n\tglobalThis.nowUiFramework.snUiLoggerProvider = new LoggerProvider({\n\t\tcollectTimeInterval: getConfigItem(LOGS_OBSERVER_INTERVAL),\n\t\tcleanupTimeInterval: getConfigItem(LOGS_CLEANUP_INTERVAL),\n\t\tlogLevel: getConfigItem(LOGGING_LEVELS),\n\t\texporter: getConfigItem(LOG_EXPORTER)\n\t});\n\treturn globalThis.nowUiFramework.snUiLoggerProvider;\n}\n\nexport function getComponentLogger(host) {\n\tconst logger = {};\n\n\tconst globalLoggerProvider = globalThis.nowUiFramework.snUiLoggerProvider;\n\tif (!globalLoggerProvider) return logger;\n\n\treturn globalLoggerProvider.getLogger(host.tagName.toLowerCase());\n}\n\nexport function setLogContext({traceId = createInteractionId(), spanId}) {\n\tconst globalLoggerProvider = globalThis.nowUiFramework.snUiLoggerProvider;\n\tif (globalLoggerProvider) globalLoggerProvider.context = {traceId, spanId};\n}\n\nexport default function createComponentLogger(host, executionTiming) {\n\tconst logger = {};\n\tloggerFunctions.forEach(loggerFn => {\n\t\tlogger[loggerFn] = function logFn(...args) {\n\t\t\tdeferHelperExecution(\n\t\t\t\texecutionTiming,\n\t\t\t\t() => {\n\t\t\t\t\tconst loggerClass = getComponentLogger(host);\n\t\t\t\t\tif (loggerClass[loggerFn] && typeof loggerClass[loggerFn] === 'function')\n\t\t\t\t\t\tloggerClass[loggerFn](...args);\n\t\t\t\t\telse if (loggerClass?.info) loggerClass.info(...args);\n\t\t\t\t},\n\t\t\t\t{el: host}\n\t\t\t);\n\t\t};\n\t});\n\treturn logger;\n}\n","import {HELPERS_DEFER} from '../../constants';\nimport {schedule, types} from '../../scheduler';\nconst {DEFER_HELPER_EXECUTION} = types;\n\n// the origin event handler for an action is ran as a microtask because it has to wait to see if\n// preventDefault has been called by an ancestor. because of this back-to-back dispatches\n// triggered from a user event such as a click can cause stale state or properties in helper\n// callbacks (or just event handlers) in the view. so far this is only replicable programmtically\n// doing something like btn.click(); btn.click(); where these clicks dispatch an action that then updates\n// state or properties in an effect hander and the dispatch callback in the view relies on state\n// or properties. eventually this use case needs to be accounted for in the scheduler design.\nexport default function deferHelperExecution(executionTiming, fn, meta) {\n\treturn executionTiming === HELPERS_DEFER\n\t\t? schedule({fn, type: DEFER_HELPER_EXECUTION, meta})\n\t\t: fn();\n}\n","// TODO: account for p2.computed relying on p1.computed; use getters???\nimport {UPDATE_AFFECTED_COMPONENTS, PROPS} from '../symbols';\nimport filterComputedProperties from './filterComputedProperties';\nimport computeProperty from './computeProperty';\nimport quickEquals from './helpers/quickEquals';\nimport {getActiveSpan} from '../utils/activeSpan';\n\nexport default function resolveComputedProperties(state, host, hostVariables, interactionId) {\n\tconst computed = filterComputedProperties(host);\n\tstate.properties = state.properties || {};\n\n\tfor (const k in computed) {\n\t\tconst previousValue = hostVariables[PROPS][k];\n\n\t\tstate.properties[k] = computeProperty(k, computed[k], {state, host});\n\t\thostVariables[PROPS][k] = state.properties[k]; // eslint-disable-line no-param-reassign\n\n\t\tif (!quickEquals(state.properties[k], previousValue)) {\n\t\t\thost[UPDATE_AFFECTED_COMPONENTS]({\n\t\t\t\tname: k,\n\t\t\t\tpropertyDetails: {\n\t\t\t\t\tpreviousValue,\n\t\t\t\t\tvalue: state.properties[k]\n\t\t\t\t},\n\t\t\t\tinteractionId,\n\t\t\t\tincludeSource: false,\n\t\t\t\tactiveSpan: getActiveSpan(host)\n\t\t\t});\n\t\t}\n\t}\n\n\treturn state;\n}\n","import {memoize} from '@servicenow/ui-internal';\nimport {PROPERTY_DEFS} from '../symbols';\nimport filterPropertyDefinitions from './filterPropertyDefinitions';\nimport getHostVariables from './getHostVariables';\n\nconst filterComputedProperties = memoize(\n\thost => {\n\t\tconst hostVariables = getHostVariables(host);\n\t\treturn filterPropertyDefinitions(hostVariables[PROPERTY_DEFS], d => d.computed);\n\t},\n\t{createCacheKey: host => host.tagName, profileName: 'filterComputedProperties'}\n);\n\nexport default filterComputedProperties;\n","import {sandbox, locations} from '@servicenow/ui-internal';\nimport log from '../log';\n\nexport default function computeProperty(name, propertyDefinition, {state, host}) {\n\treturn sandbox(propertyDefinition.computed, {\n\t\targs: [state],\n\t\tdispatch: host.helpers,\n\t\thost,\n\t\tlocation: locations.PROPERTY,\n\t\tdetails: {compute: true, name},\n\t\tlog\n\t});\n}\n","import getHostVariables from './getHostVariables';\nimport {ANCESTOR_ROOT_NODE} from '../symbols';\nimport {ACTIVE_SPAN} from '@servicenow/ui-internal';\n\nexport function getActiveSpan(host) {\n\tif (!host) return;\n\tconst hostVariables = getHostVariables(host);\n\tif (!hostVariables[ANCESTOR_ROOT_NODE]) return;\n\treturn hostVariables[ANCESTOR_ROOT_NODE][ACTIVE_SPAN];\n}\n","import filterComputedProperties from './filterComputedProperties';\nimport computeProperty from './computeProperty';\n\nexport default function computeProperties(state, host) {\n\tconst computed = filterComputedProperties(host);\n\n\tfor (const k in computed) state.properties[k] = computeProperty(k, computed[k], {state, host});\n\n\treturn state;\n}\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport {INTERSECTION_TRIGGERED} from '../symbols';\nconst {INTERSECT_ROOT_MARGIN} = configConstants;\nfunction intersection(entries) {\n\tentries.forEach(entry => {\n\t\tif (entry.isIntersecting) {\n\t\t\tentry.target[INTERSECTION_TRIGGERED]();\n\t\t\tobserver.unobserve(entry.target);\n\t\t}\n\t});\n}\n\n// The distance away from the viewport when a component should render\nconst VIEWPORT_INTERSECTION_MARGIN = getConfigItem(INTERSECT_ROOT_MARGIN);\nconst options = {rootMargin: VIEWPORT_INTERSECTION_MARGIN};\n\nlet observer;\nif (!window.IntersectionObserver) observer = {observe() {}, unobserve() {}};\nelse observer = new IntersectionObserver(intersection, options);\n\nexport default observer;\n","import getHostVariables from './getHostVariables';\nimport {ROOT_NODE} from '../symbols';\n\nexport default function applyIntersectStyles(el, config, options) {\n\tconst {width, height} = options;\n\n\tif (!width && !height) return;\n\n\tconst hostVariables = getHostVariables(el);\n\tconst rootNode = hostVariables[ROOT_NODE];\n\n\t/**\n\t * Fix for inline elements with intersection observer:\n\t *\n\t * Problem: Custom elements default to display:inline in browsers. Inline elements\n\t * don't respect width/height CSS properties - they derive dimensions from content.\n\t * This causes getBoundingClientRect() to return {width: 0, height: 0}, making the\n\t * Intersection Observer report isIntersecting:false even when the element is in view.\n\t *\n\t * Solution: Apply display:inline-block to elements that:\n\t * 1. Have computed display:inline (browser default for custom elements)\n\t * 2. Haven't explicitly set an inline style for display (respects component intent)\n\t *\n\t * This fix is temporary - the cleanup function returned by applyWithTag removes\n\t * all placeholder styles (including this display fix) when INTERSECTION_TRIGGERED\n\t * is called after the element enters the viewport.\n\t *\n\t * Note: We only check el.style.display (inline styles), not :host styles (stylesheet).\n\t * If a component defines :host { display: inline; } in CSS while using intersection\n\t * observer, they likely need this fix too.\n\t */\n\tconst displayFix = getInlineBlockFixIfNeeded(el);\n\n\tconst styles = `:host {${displayFix}${width ? `width: ${width};` : ''}${\n\t\theight ? `height: ${height};` : ''\n\t}}`;\n\n\treturn applyWithTag(rootNode, styles);\n}\n\nfunction getInlineBlockFixIfNeeded(el) {\n\ttry {\n\t\tconst computedStyle = window.getComputedStyle(el);\n\t\tif (!computedStyle || !el.style) {\n\t\t\treturn '';\n\t\t}\n\n\t\tconst isInlineDisplay = computedStyle.display === 'inline';\n\t\tconst hasExplicitInlineStyle = el.style.display !== '';\n\t\tconst needsFix = isInlineDisplay && !hasExplicitInlineStyle;\n\n\t\treturn needsFix ? 'display: inline-block;' : '';\n\t} catch (e) {\n\t\t// Fail silently if we can't determine display\n\t\treturn '';\n\t}\n}\n\nfunction applyWithTag(rootNode, styles) {\n\tconst styleElement = window.document.createElement('style');\n\tstyleElement.type = 'text/css';\n\tstyleElement.innerHTML = styles;\n\trootNode.appendChild(styleElement);\n\n\treturn () => {\n\t\tif (styleElement.parentNode === rootNode) {\n\t\t\trootNode.removeChild(styleElement);\n\t\t}\n\t};\n}\n","export {assign} from './assign';\nexport {merge} from './merge';\nexport {declarativeOperations} from './operations';\n","export function assign(target, source) {\n\tif (target && typeof target === 'object') Object.assign(target, source);\n}\n","export function merge(target, source) {\n\tfor (const k in source) {\n\t\tif (target[k] === undefined) target[k] = source[k]; // eslint-disable-line no-param-reassign\n\t\tif (typeof target[k] === 'object' && typeof source[k] === 'object') merge(target[k], source[k]);\n\t\telse target[k] = source[k]; // eslint-disable-line no-param-reassign\n\t}\n}\n","import {get as _get, set as _set} from '@servicenow/ui-internal';\nimport {assign as _assign} from './assign';\nimport {merge as _merge} from './merge';\n\nfunction operateAtPath(operationFn, obj, path, value) {\n\tif (!path) return operationFn(obj, value);\n\n\tconst location = _get(obj, path);\n\tif (location === undefined || typeof location !== 'object') return _set(obj, path, value);\n\n\treturn operationFn(location, value);\n}\n\n// Object\nexport const set = (obj, {path, value}) => _set(obj, path, value);\nexport const assign = (obj, {path, value}) => operateAtPath(_assign, obj, path, value);\nexport const merge = (obj, {path, value}) => operateAtPath(_merge, obj, path, value);\n\n// Array\nexport const pop = (obj, {path}) => _get(obj, path).pop();\nexport const push = (obj, {path, value}) => _get(obj, path).push(value);\nexport const shift = (obj, {path}) => _get(obj, path).shift();\nexport const unshift = (obj, {path, value}) => _get(obj, path).unshift(value);\nexport const splice = (obj, {path, start = 0, deleteCount = 0, addItems = []}) =>\n\t_get(obj, path).splice(start, deleteCount, ...addItems);\nexport const concat = (obj, {path, value}) => {\n\tconst arr = _get(obj, path);\n\treturn arr.push.apply(arr, value); // eslint-disable-line prefer-spread\n};\n\nexport const declarativeOperations = {\n\tSET: 'set',\n\tASSIGN: 'assign',\n\tMERGE: 'merge',\n\tPOP: 'pop',\n\tPUSH: 'push',\n\tSHIFT: 'shift',\n\tUNSHIFT: 'unshift',\n\tSPLICE: 'splice',\n\tCONCAT: 'concat'\n};\n\n// TODO: Map / Set / Date\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\n\nconst {PAGE_OPT_OUT_PROPERTY_DEEP_COMPARE, PAGE_OPT_OUT_STATE_DEEP_COMPARE} = configConstants;\nconst propertyOptOutPages = (getConfigItem(PAGE_OPT_OUT_PROPERTY_DEEP_COMPARE) || '').split(',');\nconst stateOptOutPages = (getConfigItem(PAGE_OPT_OUT_STATE_DEEP_COMPARE) || '').split(',');\n\nexport default function shouldOptOutOfDeepCompareForPage(type) {\n\tconst pages = type === 'property' ? propertyOptOutPages : stateOptOutPages;\n\treturn pages.find(page => window.location.href.includes(page));\n}\n","import {requestIdleCallback} from '@servicenow/ui-utils';\nimport log from '../log';\n\nconst styleSheetsContent = {};\nconst PREFIX = 'SEISMIC_STYLES';\n\nconst get = (version, tagName) => {\n\tlet contents = styleSheetsContent[tagName];\n\tif (contents) return contents;\n\n\ttry {\n\t\tconst errorText = `<title>Error<\/title>`;\n\t\tcontents = localStorage.getItem(`${PREFIX}_${tagName}${version}`);\n\t\tif (contents.includes(errorText)) contents = '';\n\t} catch (e) {\n\t\tlog(`The stylesheets content for the tag, ${tagName}, could not be retrieved.`);\n\t}\n\n\treturn contents;\n};\n\nconst set = (version, tagName, contents) => {\n\ttry {\n\t\tstyleSheetsContent[tagName] = contents;\n\t\trequestIdleCallback(() => {\n\t\t\tlocalStorage.setItem(`${PREFIX}_${tagName}${version}`, contents);\n\t\t});\n\t} catch (e) {\n\t\tlog(`The stylesheets content for the custom element, ${name}, could not be cached.`);\n\t}\n};\n\nexport default {set, get};\n","import styleSheetsRequestCache from './styleSheetsRequestCache';\n\nexport default async function resolveStylesheetsContent(stylesheets) {\n\ttry {\n\t\tconst errorText = `<title>Error<\/title>`;\n\t\tconst responses = await Promise.all(\n\t\t\tstylesheets.map(stylesheet => {\n\t\t\t\tif (styleSheetsRequestCache.has(stylesheet)) {\n\t\t\t\t\treturn styleSheetsRequestCache.get(stylesheet);\n\t\t\t\t}\n\t\t\t\tconst request = fetch(stylesheet);\n\t\t\t\tstyleSheetsRequestCache.set(stylesheet, request);\n\t\t\t\treturn request;\n\t\t\t})\n\t\t);\n\t\tlet text = await Promise.all(\n\t\t\tresponses.map(response => (response.clone ? response.clone() : response).text())\n\t\t);\n\t\ttext = text.filter(t => !t.includes(errorText));\n\t\treturn text.join(' ');\n\t} catch (e) {\n\t\treturn '';\n\t}\n}\n","const styleSheetsRequestCache = new Map();\n\nexport default {\n\thas: key => styleSheetsRequestCache.has(key),\n\tget: key => styleSheetsRequestCache.get(key),\n\tset: (key, value) => styleSheetsRequestCache.set(key, value),\n\tclear: () => styleSheetsRequestCache.clear()\n};\n","import {memoize, pendingNetworkActionCountForHost} from '@servicenow/ui-internal';\nimport {createInteractionId, mark, types as metrics} from '@servicenow/ui-metrics';\nimport {getSelectorParts, getAffected} from '../property-selectors';\nimport {PROPERTY_SELECTOR_SIGIL, COMPONENT_INTERACTIVE} from '../constants';\nimport {\n\tCHILDREN_TO_BE_INTERACTIVE,\n\tANCESTOR_ROOT_NODE,\n\tCOMPONENT_ID,\n\tPROPS,\n\tINTERACTIVE_TIMESTAMP,\n\tSELECTABLE_PROPERTIES,\n\tCONDITIONAL_DISPATCH\n} from '../symbols';\nimport getHostVariables from './getHostVariables';\nimport {countHighPriorityTasks, countMediumPriorityTasks} from '../scheduler';\n\nconst isProvider = memoize(\n\tel => {\n\t\tconst variables = getHostVariables(el);\n\t\treturn variables[SELECTABLE_PROPERTIES] && variables[SELECTABLE_PROPERTIES].length;\n\t},\n\t{createCacheKey: el => el.tagName, profileName: 'isProvider'}\n);\n\nconst areProvidersInteractive = (el, componentRegistry) => {\n\tconst variables = getHostVariables(el);\n\tconst properties = variables[PROPS];\n\n\tfor (const k in properties) {\n\t\tconst value = properties[k];\n\t\tconst [id] = getSelectorParts(value);\n\t\tif (id) {\n\t\t\tconst providerEl = componentRegistry[id];\n\t\t\tif (providerEl) {\n\t\t\t\tconst providerVariables = getHostVariables(providerEl);\n\t\t\t\tif (providerVariables && !providerVariables[INTERACTIVE_TIMESTAMP]) return false;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst notifySubscribers = (el, componentRegistry) => {\n\tconst variables = getHostVariables(el);\n\tconst selectabledProperties = variables[SELECTABLE_PROPERTIES];\n\tconst selectabledPropertiesLength = (selectabledProperties && selectabledProperties.length) || 0;\n\n\tfor (let i = 0; i < selectabledPropertiesLength; i++) {\n\t\tconst propertyName = selectabledProperties[i];\n\t\tconst affectedComponents = getAffected(\n\t\t\tpropertyName,\n\t\t\tvariables[COMPONENT_ID],\n\t\t\tcomponentRegistry,\n\t\t\tfalse\n\t\t);\n\n\t\tfor (const id in affectedComponents) {\n\t\t\tconst [componentId] = id.split(PROPERTY_SELECTOR_SIGIL);\n\t\t\tconst subscriberEl = componentRegistry[componentId];\n\t\t\tif (subscriberEl) markComponentInteractive(subscriberEl, componentRegistry);\n\t\t}\n\t}\n};\n\nexport default function markComponentInteractive(el, componentRegistry) {\n\tconst variables = getHostVariables(el);\n\tif (!variables || variables[INTERACTIVE_TIMESTAMP]) return;\n\n\tif (countHighPriorityTasks(el)) return false;\n\tif (countMediumPriorityTasks(el)) return false;\n\tif (pendingNetworkActionCountForHost(el)) return false;\n\n\tconst childrenToBeInteractive = variables[CHILDREN_TO_BE_INTERACTIVE];\n\tif (!childrenToBeInteractive) return false;\n\n\tfor (const k in childrenToBeInteractive) return false;\n\n\tconst providersInteractive = areProvidersInteractive(el, componentRegistry);\n\tif (!providersInteractive) return false;\n\n\tconst interactiveTimestamp = performance.now();\n\tvariables[INTERACTIVE_TIMESTAMP] = interactiveTimestamp;\n\tmark(el, createInteractionId(), metrics.INTERACTIVE, {});\n\tvariables[CONDITIONAL_DISPATCH](\n\t\tCOMPONENT_INTERACTIVE,\n\t\t{host: el, interactiveTimestamp},\n\t\t{internal: true}\n\t);\n\n\tconst parentEl = variables[ANCESTOR_ROOT_NODE];\n\tif (parentEl) {\n\t\tconst parentVariables = getHostVariables(parentEl);\n\t\tdelete parentVariables[CHILDREN_TO_BE_INTERACTIVE][variables[COMPONENT_ID]];\n\t\tmarkComponentInteractive(parentEl, componentRegistry);\n\t}\n\n\tif (isProvider(el)) notifySubscribers(el, componentRegistry);\n}\n","import log from '../log';\nimport {CONTEXT_VIEW_KEY} from '../symbols';\n\nexport default function createOnStateChangeArgs(\n\tuseCoeffectsLikeObjectInView,\n\tcomponentId,\n\tstate,\n\tcontext,\n\thelpers,\n\thost\n) {\n\tif (useCoeffectsLikeObjectInView) {\n\t\tconst {properties} = state;\n\t\tconst stateSansProperties = {...state};\n\t\tdelete stateSansProperties.properties;\n\n\t\treturn [{state: stateSansProperties, properties, context, ...helpers, host}, undefined];\n\t}\n\n\tlet contextKey = 'context';\n\tif (state.context) {\n\t\tcontextKey = CONTEXT_VIEW_KEY;\n\t\tconst message =\n\t\t\t'A \"context\" property key already exists in the view derived state object. The context value was assigned to a symbol.' +\n\t\t\t' The symbol constant, \"contextViewKey\", can imported from @servicenow/ui-core.';\n\t\tlog(message, {host, origin: 'createOnStateChangeArgs'});\n\t}\n\n\treturn [{componentId, ...state, [contextKey]: context}, helpers];\n}\n","import getHostVariables from './getHostVariables';\nimport {ANCESTOR_ROOT_NODE} from '../symbols';\n\nexport default function getAncestorNode(host) {\n\treturn getHostVariables(host)[ANCESTOR_ROOT_NODE];\n}\n","const updateCustomElementResolvers = {};\nconst updateCustomElementObservers = {};\n// eslint-disable-next-line prefer-destructuring\nconst HMR_ENABLED = process.env.HMR_ENABLED;\n\nexport function addUpdateCustomElementObserver(tagName, observer) {\n\tif (HMR_ENABLED) {\n\t\tconst observers = (updateCustomElementObservers[tagName] =\n\t\t\tupdateCustomElementObservers[tagName] || new Set());\n\t\tobservers.add(observer);\n\t\treturn () => observers.delete(observer);\n\t}\n}\n\nexport function setUpdateConfigResolver(tagName, resolver) {\n\tif (HMR_ENABLED) {\n\t\tupdateCustomElementResolvers[tagName] = resolver;\n\t}\n}\n\nlet unstableUpdateCustomElement;\nif (HMR_ENABLED) {\n\tunstableUpdateCustomElement = (tagName, config = {}, meta = {}) => {\n\t\tif (!updateCustomElementResolvers[tagName]) {\n\t\t\treturn {\n\t\t\t\taccept: false,\n\t\t\t\treason: `unknown tag \"${tagName}\"`\n\t\t\t};\n\t\t}\n\t\tconst {supportedConfigKeys, modifiedConfig} = updateCustomElementResolvers[tagName](\n\t\t\tconfig,\n\t\t\tmeta\n\t\t);\n\t\tconst modifiedConfigKeys = Object.keys(modifiedConfig);\n\t\tif (modifiedConfigKeys.length === 0) {\n\t\t\treturn {\n\t\t\t\taccept: true,\n\t\t\t\treason: 'nothing updated'\n\t\t\t};\n\t\t}\n\t\tconst unsupportedConfigKeys = modifiedConfigKeys.filter(\n\t\t\tkey => !supportedConfigKeys.includes(key)\n\t\t);\n\t\tif (unsupportedConfigKeys.length > 0) {\n\t\t\treturn {\n\t\t\t\taccept: false,\n\t\t\t\treason: `unsupported config: [${unsupportedConfigKeys.join(', ')}]`\n\t\t\t};\n\t\t}\n\t\tfor (const observer of updateCustomElementObservers[tagName]) {\n\t\t\tobserver(modifiedConfig);\n\t\t}\n\t\treturn {\n\t\t\taccept: true,\n\t\t\treason: `updated config: [${modifiedConfigKeys.join(', ')}]`\n\t\t};\n\t};\n}\n\nlet unstableRemoveUpdateForTag;\nif (process.env.NODE_ENV === 'test') {\n\tunstableRemoveUpdateForTag = tagName => {\n\t\tdelete updateCustomElementResolvers[tagName];\n\t\tdelete updateCustomElementObservers[tagName];\n\t};\n}\n\nexport {unstableUpdateCustomElement, unstableRemoveUpdateForTag};\n","import {SPAN_KIND_CLIENT, SPAN_LEVEL_FINE} from '../constants';\n\nexport default function getSpanOptions(host, level = SPAN_LEVEL_FINE) {\n\treturn {\n\t\tattributes: {\n\t\t\ttagName: host.tagName?.toLowerCase(),\n\t\t\tcomponentId: host.nowId,\n\t\t\t'seismic.level': level,\n\t\t\tkind: SPAN_KIND_CLIENT\n\t\t}\n\t};\n}\n","import {createTraceId} from '@servicenow/ui-metrics';\nimport getHostVariables from './getHostVariables';\nimport {ANCESTOR_ROOT_NODE, PREVIOUS_TRACE_ID} from '../symbols';\n\nexport default function resolveParentTraceId(host) {\n\tconst variables = getHostVariables(host);\n\n\tif (variables[ANCESTOR_ROOT_NODE]) {\n\t\tconst parentVariables = getHostVariables(variables[ANCESTOR_ROOT_NODE]);\n\t\tconst traceId = parentVariables[PREVIOUS_TRACE_ID];\n\t\tif (traceId) {\n\t\t\tvariables[PREVIOUS_TRACE_ID] = traceId;\n\t\t\treturn traceId;\n\t\t}\n\t}\n\n\tconst traceId = createTraceId();\n\tif (traceId) {\n\t\tvariables[PREVIOUS_TRACE_ID] = traceId;\n\t}\n\treturn traceId;\n}\n","import {PROPERTIES_SET} from '../../constants';\n\nexport function isPropertyUpdate(type) {\n\treturn type === PROPERTIES_SET;\n}\n","import {CONFIG} from '../../symbols';\nimport log from '../../log';\n\nexport function validateActionPayload(host, type, payload, hostVariables) {\n\tconst {[type]: {validate} = {}} = hostVariables[CONFIG].actions;\n\n\tif (\n\t\t(process.env.NODE_ENV !== 'production' && payload && typeof payload !== 'object') ||\n\t\tArray.isArray(payload)\n\t) {\n\t\tlog(\n\t\t\t`Expected payload of ${type} to be an Object but found ${payload}. This will result in inconsistent behavior when combined with behavior options or appendToPayload.`,\n\t\t\t{host, origin: 'validateActionPayload'}\n\t\t);\n\t}\n\n\tif (typeof validate === 'function') validate(payload, host);\n}\n","import {\n\tSTORE_UPDATED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tSET_INITIAL_STATE,\n\tNOW_UI_EVENT,\n\tPROPERTIES_SET,\n\tDISPATCH_EVENT,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED\n} from '../../constants';\n\nconst internalActionTypes = [\n\tPROPERTIES_SET,\n\tDISPATCH_EVENT,\n\tSTORE_UPDATED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tSET_INITIAL_STATE,\n\tNOW_UI_EVENT,\n\t'SEISMIC_COMPONENT_ERROR_THROWN',\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED\n];\n\n// TODO: memoize\nexport function isInternalActionType(type, internal = false) {\n\treturn internalActionTypes.includes(type) && !internal;\n}\n","// TODO: move to const internalActionTypes.NAME\nimport {\n\tSTORE_UPDATED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tSET_INITIAL_STATE,\n\tNOW_UI_EVENT,\n\tPROPERTIES_SET,\n\tDISPATCH_EVENT,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED\n} from '../../constants';\n\nconst internalActionTypes = {\n\tPROPERTIES_SET,\n\tDISPATCH_EVENT,\n\tSTORE_UPDATED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tSET_INITIAL_STATE,\n\tNOW_UI_EVENT,\n\tCOMPONENT_ERROR_THROWN: 'SEISMIC_COMPONENT_ERROR_THROWN',\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED\n};\n\n// TODO: memoize\nexport function getInternalActionName(type) {\n\tfor (const k in internalActionTypes) {\n\t\tif (internalActionTypes[k] === type) return k;\n\t}\n}\n","import {locations} from '@servicenow/ui-internal';\nimport {getHostVariables} from '../../utils';\nimport {createMetaData} from './createMetaData';\nimport {appendToPayload} from './appendToPayload';\nimport {COMPONENT_ID} from '../../symbols';\n\nexport function createEventActionDetails(actionType, host, event, capture, eventHandler) {\n\tconst {detail = {}} = event;\n\tconst {\n\t\ttype = actionType,\n\t\tpayload = eventHandler ? appendToPayload(host, {event, host}) : undefined,\n\t\terror = null,\n\t\tmeta = createMetaData(\n\t\t\thost,\n\t\t\t{\n\t\t\t\teventHandler,\n\t\t\t\tcapture,\n\t\t\t\teffectType: locations.EVENT,\n\t\t\t\tevent,\n\t\t\t\thost,\n\t\t\t\tget path() {\n\t\t\t\t\treturn event\n\t\t\t\t\t\t.composedPath()\n\t\t\t\t\t\t.map(el => {\n\t\t\t\t\t\t\tconst hostVariables = getHostVariables(el);\n\t\t\t\t\t\t\treturn hostVariables && hostVariables[COMPONENT_ID];\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.filter(componentId => componentId);\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetHostVariables(host)\n\t\t)\n\t} = detail;\n\n\treturn {type, payload, error, meta};\n}\n","import {getInteractionId, setInteractionId} from '@servicenow/ui-metrics';\nimport {\n\tCOMPONENT_DISCONNECTED,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED\n} from '../../constants';\nimport {HELPERS_SCHEDULED, HELPERS_IMMEDIATE} from '../../symbols';\nimport {normalizeActionMeta, getHostVariables} from '../../utils';\n\nconst attachTraceContext = (span, meta) => {\n\tif (!meta.span && span) {\n\t\tmeta.span = span;\n\t}\n};\n// this is done so that we don't break anyone dispatching from a disconnect\n// function or action handler; people are relying on this to unsubscribe from\n// AMB and other types of clean up. the AMB effect should be changed into a\n// behavior that has a COMPONENT_DISCONNECTED handler, so that people don't\n// have to manually clean up or rely on this broken functionality.\nexport function wrapDispatch(host, action) {\n\tconst hostVariables = getHostVariables(host);\n\tconst interactionId = getInteractionId(action.meta);\n\tconst span = action.meta.actionSpan || action.meta.span;\n\tconst helpers = action.meta[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]\n\t\t? hostVariables[HELPERS_IMMEDIATE]\n\t\t: hostVariables[HELPERS_SCHEDULED];\n\tconst {\n\t\tupdateState: originalUpdateState,\n\t\tupdateProperties: originalUpdateProperties,\n\t\tupdateContext: originalUpdateContext,\n\t\tdispatch: originalDispatch,\n\t\tlogger\n\t} = helpers;\n\tconst updateState = (...args) => originalUpdateState(...args, {interactionId, span});\n\tconst updateProperties = (...args) => originalUpdateProperties(...args, {interactionId, span});\n\tconst updateContext = (...args) => originalUpdateContext(...args, {interactionId, span});\n\tlet dispatch;\n\n\tif (\n\t\taction.type !== COMPONENT_DISCONNECTED &&\n\t\t!action.meta[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]\n\t) {\n\t\tdispatch = (type, payload, meta = {}, error) => {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tmeta = normalizeActionMeta(meta, {host});\n\t\t\tattachTraceContext(span, meta);\n\t\t\tmeta.parentActionId = action.meta.actionId;\n\t\t\tsetInteractionId(meta, interactionId);\n\t\t\treturn originalDispatch(type, payload, meta, error);\n\t\t};\n\t} else {\n\t\tdispatch = (type, payload, meta = {}, error) => {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tmeta = normalizeActionMeta(meta, {host});\n\t\t\tsetInteractionId(meta, interactionId);\n\t\t\tattachTraceContext(span, meta);\n\t\t\tmeta.parentActionId = action.meta.actionId;\n\t\t\tmeta[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED] = true; // eslint-disable-line no-param-reassign\n\t\t\treturn originalDispatch(type, payload, meta, error);\n\t\t};\n\t}\n\n\tdispatch.updateState = updateState;\n\tdispatch.updateProperties = updateProperties;\n\tdispatch.updateContext = updateContext;\n\tdispatch.logger = logger;\n\n\treturn {\n\t\tupdateState,\n\t\tupdateProperties,\n\t\tupdateContext,\n\t\tdispatch,\n\t\tlogger\n\t};\n}\n","export default function isStoreUpdate(actionType) {\n\treturn actionType === 'STORE_UPDATED';\n}\n","import {TARGETED_ACTION_TYPES} from '../../symbols';\n\nexport function hasActionHandlerForType(hostVariables, type) {\n\treturn hostVariables[TARGETED_ACTION_TYPES].some(actionType => actionType === type);\n}\n","import {SEISMIC_HOIST_TAG_NAME} from '../../constants';\n\nexport function wasActionDispatchedByDescendant(composedPath, host) {\n\t/*\n\t\taction was dispatched from within hook or event handlers in view\n\n\t\tview(state, {dispatch}) {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<p on-click={() => dispatch('SN-BUTTON#BUTTON_CLICKED', {})}>I am a paragraph. Click me.<\/p>\n\t\t\t\t<\/div>\n\t\t\t);\n\t\t}\n\t */\n\tif (!composedPath.length) return true;\n\n\tlet slotted = false;\n\tfor (let i = 0; i < composedPath.length; i++) {\n\t\tconst el = composedPath[i];\n\t\tif (el.tagName === 'SLOT') slotted = true;\n\n\t\tif (el.host) {\n\t\t\t/*\n\t\t\t\tif the first shadowRoot encountered belongs to the host and a slot is not in the path\n\t\t\t\te.g., button dispatches and component that owns view should handle\n\n\t\t\t\tview() {\n\t\t\t\t\treturn <p><sn-button><\/sn-button><\/p>;\n\t\t\t\t}\n\t\t\t */\n\t\t\tif (el.host === host || el.host.tagName === SEISMIC_HOIST_TAG_NAME)\n\t\t\t\treturn slotted ? false : true;\n\n\t\t\t/*\n\t\t\t\tif content is slotted and first shadowRoot encountered does not belong to the host\n\t\t\t\te.g., button dispatches and component that owns view should handle\n\n\t\t\t\tview() {\n\t\t\t\t\treturn <slotted-child><sn-button><\/sn-button><\/slotted-child>;\n\t\t\t\t},\n\t\t\t */\n\t\t\treturn slotted ? true : false;\n\t\t}\n\t}\n}\n","import {getHostVariables} from '../../utils';\nimport {addActionHandler} from '../customEventActionHandler';\nimport {onAction} from '../onAction';\nimport {COMPONENT_ACTION_DISPATCHED} from '../../constants';\nimport {\n\tRUNTIME_ACTION_HANDLERS,\n\tTARGETED_ACTION_TYPES,\n\tANCESTOR_ROOT_NODE,\n\tCONFIG,\n\tACTION_HANDLERS,\n\tPRESENTATIONAL\n} from '../../symbols';\n\nconst shouldApplyActionHandler = (hostVariables, type) =>\n\t!hostVariables[PRESENTATIONAL] &&\n\t!hostVariables[RUNTIME_ACTION_HANDLERS].includes(type) &&\n\thostVariables[TARGETED_ACTION_TYPES].includes(COMPONENT_ACTION_DISPATCHED);\n\nconst createActionHandler = (host, hostVariables, type) => {\n\thostVariables[RUNTIME_ACTION_HANDLERS].push(type);\n\n\tif (\n\t\thostVariables[CONFIG].interceptors[type] &&\n\t\thostVariables[CONFIG].interceptors[type].has('host')\n\t) {\n\t\tconst interceptors = [\n\t\t\t...hostVariables[CONFIG].interceptors[type].get('host'),\n\t\t\t...hostVariables[CONFIG].interceptors[COMPONENT_ACTION_DISPATCHED].get('host')\n\t\t];\n\t\thostVariables[CONFIG].interceptors[type].set('host', interceptors);\n\t\treturn;\n\t}\n\n\thostVariables[CONFIG].interceptors[type] =\n\t\thostVariables[CONFIG].interceptors[COMPONENT_ACTION_DISPATCHED]; // eslint-disable-line no-param-reassign\n\tconst removeActionHandler = addActionHandler(host, 'host', host, type, false, false, onAction);\n\thostVariables[ACTION_HANDLERS].push(removeActionHandler);\n\thostVariables[TARGETED_ACTION_TYPES] = [...hostVariables[TARGETED_ACTION_TYPES], type]; // eslint-disable-line no-param-reassign\n};\n\nexport function applyRuntimeActionHandlers(host, type) {\n\tlet parent = host;\n\tlet parentVariables = getHostVariables(parent);\n\n\twhile (parent) {\n\t\tif (shouldApplyActionHandler(parentVariables, type))\n\t\t\tcreateActionHandler(parent, parentVariables, type);\n\n\t\tparent = parentVariables[ANCESTOR_ROOT_NODE];\n\t\tparentVariables = getHostVariables(parent);\n\t}\n}\n","import {createEventActionDetails} from './utils';\nimport {CONFIG, HOIST_COMPOSED_PATH} from '../symbols';\nimport {SEISMIC_HOIST_TAG_NAME, PROPAGATION_STOPPED, DEFAULT_PREVENTED} from '../constants';\nimport {getHostVariables, emitNowUiEvent} from '../utils';\n\nconst allowedPropertyUpdates = ['payload', 'error', 'meta'];\n\nexport function getPath(meta, host) {\n\tif (meta.event.path) return meta.event.path;\n\n\tconst path = [];\n\tlet el = host;\n\tlet parentNode = el.parentNode || el.host;\n\twhile (parentNode) {\n\t\tpath.push(el);\n\t\tel = parentNode;\n\t\tparentNode = el.parentNode || el.host;\n\t}\n\n\treturn [...path, document, window];\n}\n\nexport function getComposedPath(meta, host) {\n\tconst hoistComposedPath = meta[HOIST_COMPOSED_PATH];\n\n\tif (!hoistComposedPath) return meta.event.composedPath();\n\n\tconst composedPath = [];\n\tfor (let i = 0; i < hoistComposedPath.length; i++) {\n\t\tconst el = hoistComposedPath[i];\n\t\tif (el.tagName === SEISMIC_HOIST_TAG_NAME) break;\n\n\t\tcomposedPath.push(el);\n\t}\n\n\treturn [...composedPath, ...getPath(meta, host)];\n}\n\nexport function addActionHandler(\n\ttargetEl,\n\ttargetSelector,\n\thost,\n\ttype,\n\tcapture,\n\teventHandler,\n\thandler\n) {\n\tconst hostVariables = getHostVariables(host);\n\tconst listener = event => {\n\t\tconst config = hostVariables[CONFIG];\n\t\tconst detail = createEventActionDetails(type, host, event, capture, eventHandler);\n\t\tconst emitPropagationStopped = () => {\n\t\t\temitNowUiEvent(PROPAGATION_STOPPED, {host, action: detail});\n\t\t};\n\t\thandler(\n\t\t\ttargetEl,\n\t\t\ttargetSelector,\n\t\t\thost,\n\t\t\ttype,\n\t\t\tnew Proxy(\n\t\t\t\t{\n\t\t\t\t\t...detail,\n\t\t\t\t\tstopPropagation() {\n\t\t\t\t\t\temitPropagationStopped();\n\t\t\t\t\t\treturn event.stopPropagation();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tget(action, key) {\n\t\t\t\t\t\tconst {payload, meta} = action;\n\t\t\t\t\t\tif (key === 'defaultPrevented') {\n\t\t\t\t\t\t\treturn payload && payload.event\n\t\t\t\t\t\t\t\t? payload.event.defaultPrevented\n\t\t\t\t\t\t\t\t: event.defaultPrevented;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (key === 'preventDefault') {\n\t\t\t\t\t\t\treturn function preventDefault() {\n\t\t\t\t\t\t\t\temitNowUiEvent(DEFAULT_PREVENTED, {host, action});\n\t\t\t\t\t\t\t\treturn payload && payload.event\n\t\t\t\t\t\t\t\t\t? payload.event.preventDefault()\n\t\t\t\t\t\t\t\t\t: event.preventDefault();\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (key === 'composedPath') return () => getComposedPath(meta, host);\n\n\t\t\t\t\t\treturn action[key];\n\t\t\t\t\t},\n\t\t\t\t\tset(action, key, value) {\n\t\t\t\t\t\tif (allowedPropertyUpdates.includes(key)) {\n\t\t\t\t\t\t\taction[key] = value; // eslint-disable-line no-param-reassign\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t);\n\n\t\tif (config && config.shouldStopPropagation[type]) {\n\t\t\temitPropagationStopped();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t};\n\n\ttargetEl.addEventListener(type, listener, capture);\n\treturn function removeActionHandler() {\n\t\ttargetEl.removeEventListener(type, listener, capture);\n\t};\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {applyInteractionId} from '@servicenow/ui-metrics';\nimport {beforeNextTick, emitNowUiEvent, getSpanOptions} from '../utils';\nimport {createContext} from './createContext';\nimport {\n\tCOMPONENT_ID,\n\tCONFIG,\n\tDISPATCH,\n\tRETARGETED_ACTION_TYPES,\n\tBOOTSTRAPPED_HANDLED,\n\tCONNECTED_HANDLED\n} from '../symbols';\nimport {sandboxEffect} from './sandboxEffect';\nimport {\n\tACTION_HANDLED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tSEISMIC_HOIST_TAG_NAME,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED,\n\tCOMPONENT_TREE_RENDERED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tCOMPONENT_DOM_TREE_READY,\n\tSPAN_KIND_CLIENT,\n\tSPAN_ATTR_DISPATCH_ACTION_TYPE,\n\tSPAN_ATTR_COMPONENT_EVENT_DEFAULT_PREVENTED,\n\tSPAN_ATTR_COMPONENT_EVENT_PROPAGATION_STOPPED,\n\tSPAN_LIFECYCLE_EVENTS,\n\tSPAN_FOR_ACTION_HANDLED\n} from '../constants';\nimport {normalizeActionHandler} from '../utils/config/normalizeActionHandler';\nimport getHostVariables from '../utils/getHostVariables';\nimport {addActionHandler} from './customEventActionHandler';\nimport {onActionHoisted} from './onActionHoisted';\nimport {wasActionDispatchedByDescendant} from './utils';\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\n// defer the execution of the origin handler to support preventDefault\nfunction runEffects(fn, isOrigin) {\n\treturn isOrigin ? beforeNextTick(() => fn()) : fn();\n}\n\nexport function onAction(targetEl, targetSelector, host, actionType, action = {}) {\n\tconst hostVariables = getHostVariables(host);\n\tconst {type = actionType, meta = {path: [], eventHandler: false}} = action;\n\tconst {path, eventHandler, event, capture} = meta;\n\tconst [origin] = path;\n\tconst isOrigin = hostVariables[COMPONENT_ID] === origin;\n\n\tif (eventHandler)\n\t\t// interaction ids aren't applied to native events dispacthed by the browser\n\t\tapplyInteractionId(meta);\n\n\tconst isImmediate = [\n\t\tCOMPONENT_DISCONNECTED,\n\t\tCOMPONENT_DOM_READY,\n\t\tCOMPONENT_DOM_TREE_READY,\n\t\tCOMPONENT_TREE_RENDERED,\n\t\tCOMPONENT_RENDERED,\n\t\tCOMPONENT_RENDER_REQUESTED,\n\t\tCOMPONENT_PROPERTY_UPDATE_REQUESTED\n\t].includes(actionType);\n\n\tif (event && !eventHandler) {\n\t\tconst hoistElm = event.composedPath().find(elem => elem.tagName === SEISMIC_HOIST_TAG_NAME);\n\t\tconst hoistElmVariables = getHostVariables(hoistElm);\n\t\tif (\n\t\t\thoistElm &&\n\t\t\thoistElmVariables &&\n\t\t\t!hoistElmVariables[RETARGETED_ACTION_TYPES].some(actionType => actionType === type)\n\t\t) {\n\t\t\taddActionHandler(\n\t\t\t\thoistElm,\n\t\t\t\ttargetSelector,\n\t\t\t\thoistElm.sourceElement,\n\t\t\t\ttype,\n\t\t\t\tcapture,\n\t\t\t\teventHandler,\n\t\t\t\tonActionHoisted\n\t\t\t);\n\t\t\thoistElmVariables[RETARGETED_ACTION_TYPES] = [\n\t\t\t\t...hoistElmVariables[RETARGETED_ACTION_TYPES],\n\t\t\t\ttype\n\t\t\t];\n\t\t}\n\t}\n\n\trunEffects(() => {\n\t\tconst startTime = performance.now();\n\t\tconst interceptors =\n\t\t\thostVariables[CONFIG].interceptors[type] &&\n\t\t\thostVariables[CONFIG].interceptors[type].has(targetSelector)\n\t\t\t\t? hostVariables[CONFIG].interceptors[type].get(targetSelector)\n\t\t\t\t: null;\n\n\t\tif (!interceptors || !interceptors.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst onActionSpan = trace(SPAN_FOR_ACTION_HANDLED, {\n\t\t\t...getSpanOptions(host),\n\t\t\ttraceId: action.meta.span && action.meta.span.traceId,\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\tparentSpan: action.meta.span\n\t\t});\n\t\tonActionSpan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, SPAN_LIFECYCLE_EVENTS[type] || type);\n\n\t\tconst {length: interceptorCount} = interceptors;\n\t\tif ((isOrigin && action.defaultPrevented) || (!isOrigin && action.propagationStopped)) {\n\t\t\tif (isOrigin) {\n\t\t\t\tonActionSpan.setAttribute(SPAN_ATTR_COMPONENT_EVENT_DEFAULT_PREVENTED, true);\n\t\t\t} else {\n\t\t\t\tonActionSpan.setAttribute(SPAN_ATTR_COMPONENT_EVENT_PROPAGATION_STOPPED, true);\n\t\t\t}\n\t\t\tonActionSpan.end();\n\t\t\treturn;\n\t\t}\n\n\t\tif (actionType === COMPONENT_BOOTSTRAPPED) hostVariables[BOOTSTRAPPED_HANDLED] = true; // eslint-disable-line no-param-reassign\n\t\tif (actionType === COMPONENT_CONNECTED) hostVariables[CONNECTED_HANDLED] = true; // eslint-disable-line no-param-reassign\n\t\tif (isValidTraceId(onActionSpan.traceId)) action.meta.actionSpan = onActionSpan;\n\n\t\tconst context = createContext(host, action);\n\t\tlet ctx = context;\n\t\tfor (let i = 0; i < interceptorCount; i++) {\n\t\t\tconst interceptor = interceptors[i];\n\t\t\tctx = interceptor.fn(ctx) || ctx;\n\t\t}\n\n\t\tconst {effects} = ctx;\n\t\tconst {length: effectCount} = effects;\n\t\tfor (let i = 0; i < effectCount; i++) {\n\t\t\tconst effect = effects[i];\n\t\t\tif (typeof effect === 'function') {\n\t\t\t\tconst normalizedEffect = normalizeActionHandler(effect, host.tagName.toLowerCase());\n\t\t\t\tsandboxEffect(\n\t\t\t\t\tnormalizedEffect,\n\t\t\t\t\thostVariables[DISPATCH],\n\t\t\t\t\taction,\n\t\t\t\t\thost\n\t\t\t\t)(...normalizedEffect.args);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!effect.descendantOnly || wasActionDispatchedByDescendant(action.composedPath(), host))\n\t\t\t\tsandboxEffect(effect, hostVariables[DISPATCH], action, host)(...effect.args);\n\t\t}\n\t\tonActionSpan.end();\n\t\tconst endTime = performance.now();\n\t\temitNowUiEvent(ACTION_HANDLED, {\n\t\t\thost,\n\t\t\taction,\n\t\t\ttargetSelector,\n\t\t\tinterceptors,\n\t\t\tcontext: ctx,\n\t\t\tduration: endTime - startTime\n\t\t});\n\t}, isOrigin && !eventHandler && !isImmediate);\n}\n","import {STATE} from '../symbols';\nimport {getHostVariables} from '../utils';\nimport {wrapDispatch} from './utils';\nimport createContextProxy from '../context/createContextProxy';\n\nexport function createContext(host, action) {\n\tconst properties = host.getResolvedProperties();\n\tconst hostVariables = getHostVariables(host);\n\n\treturn {\n\t\tcoeffects: {\n\t\t\tstate: {...hostVariables[STATE], properties: host.getProperties()},\n\t\t\tcontext: createContextProxy(host),\n\t\t\tproperties,\n\t\t\thost,\n\t\t\taction,\n\t\t\t...wrapDispatch(host, action)\n\t\t},\n\t\teffects: []\n\t};\n}\n","import {memoize} from '@servicenow/ui-internal';\nimport log from '../log';\nimport {addConsumer} from './consumers';\nimport {prefix} from './createContext';\nimport {getContext} from './contexts';\n\nconst shouldNotResolveContext = memoize(key => !key.toString().includes(prefix), {\n\tprofileName: 'shouldNotResolveContext'\n});\n\nexport default function createContextProxy(host) {\n\treturn new Proxy(\n\t\t{},\n\t\t{\n\t\t\tget(target, prop) {\n\t\t\t\tif (shouldNotResolveContext(prop)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\t\tlog(\n\t\t\t\t\t\t\t`The context ${prop.toString()} could not be accessed. Context must be defined using the \"createContext\" function. \"createContext\" can imported from @servicenow/ui-core.`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\thost: this,\n\t\t\t\t\t\t\t\torigin: 'createContextProxy'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn target[prop];\n\t\t\t\t}\n\n\t\t\t\taddConsumer(prop, host);\n\t\t\t\treturn getContext(prop);\n\t\t\t},\n\t\t\tset(target, prop) {\n\t\t\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\t\t\tlog(`Cannot set context value ${prop.toString()}. updateContext must be used.`, {\n\t\t\t\t\t\thost: this,\n\t\t\t\t\t\torigin: 'createContextProxy'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n}\n","const consumerCache = {};\n\nexport const addConsumer = (key, host) => {\n\tif (!consumerCache[key]) {\n\t\tconsumerCache[key] = new Set();\n\t\treturn consumerCache[key].add(host);\n\t} else if (consumerCache[key].has(host)) {\n\t\treturn;\n\t}\n\n\tconsumerCache[key].add(host);\n};\n\nexport const removeConsumer = host => {\n\tReflect.ownKeys(consumerCache).forEach(k => {\n\t\tif (consumerCache[k].has(host)) {\n\t\t\tconsumerCache[k].delete(host);\n\t\t}\n\t});\n};\n\nexport const getConsumers = key => {\n\treturn (consumerCache[key] && consumerCache[key].values()) || new Set().values();\n};\n\nexport const removeConsumersForContextKey = key => {\n\tif (consumerCache[key]) consumerCache[key].clear();\n};\n\nexport const removeAllConsumers = () => {\n\tReflect.ownKeys(consumerCache).forEach(k => {\n\t\tdelete consumerCache[k];\n\t});\n};\n","import contexts from './contexts';\nimport buildContextValidator from '../utils/schema/build/buildContextValidator';\nimport {guid} from '@servicenow/ui-internal';\n\nexport const prefix = guid();\n\nexport default function createContext(name, definition = {}) {\n\tconst key = Symbol(`${prefix}_${name}`);\n\tcontexts.set(key, {...definition, validate: buildContextValidator(definition.schema)});\n\treturn key;\n}\n","import {CONTEXT_RESOLVED_VALUE} from '../symbols';\nimport log from '../log';\n\nconst contexts = new Map();\nconst getContext = contextKey => {\n\tif (contexts.has(contextKey)) {\n\t\tconst context = contexts.get(contextKey) || {};\n\t\tconst resolvedValue = context[CONTEXT_RESOLVED_VALUE];\n\t\tif (resolvedValue !== undefined) {\n\t\t\treturn resolvedValue;\n\t\t} else if (context.default !== undefined) {\n\t\t\treturn context.default;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nconst setContext = (contextKey, value) => {\n\tif (contexts.has(contextKey)) {\n\t\tcontexts.get(contextKey)[CONTEXT_RESOLVED_VALUE] = value;\n\t} else {\n\t\tif (process.env.NODE_ENV !== 'production') {\n\t\t\tlog(\n\t\t\t\t`The context \"${contextKey?.toString()}\" could not be accessed. Context must be defined using the \"createContext\" function. \"createContext\" can imported from @servicenow/ui-core.`,\n\t\t\t\t{\n\t\t\t\t\torigin: 'context'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n};\n\nexport default contexts;\nexport {getContext, setContext};\n","import {getInteractionId} from '@servicenow/ui-metrics';\nimport {dispatchError, locations} from '@servicenow/ui-internal';\nimport log from '../log';\nimport {effectRunner} from '../effects';\n\nfunction sandboxEffect(effect, dispatch, action, host) {\n\tconst {\n\t\ttype: actionType,\n\t\tmeta: {effectType = ''},\n\t\tpayload = {}\n\t} = action;\n\tlet location = '';\n\tlet details = {};\n\n\tif (effectType === locations.EVENT) {\n\t\tconst {event} = payload;\n\t\tconst {type} = event;\n\t\tlocation = locations.EVENT;\n\t\tdetails = {type, event};\n\t} else {\n\t\tlocation = locations.EFFECT;\n\t\tdetails = {actionType};\n\t}\n\n\treturn function sandboxedEffect(...args) {\n\t\ttry {\n\t\t\t// there can be multiple handlers for a given action type defined\n\t\t\t// by multiple behaviors; we only want to apply the options specific\n\t\t\t// to the effects for a single behavior, type, and effect combination\n\t\t\tconst {options} = effect;\n\t\t\tif (options) {\n\t\t\t\tconst {payload, meta} = args[args.length - 1].action;\n\n\t\t\t\tif (meta.options === null || meta.options === undefined) meta.options = options;\n\n\t\t\t\tif (payload === null || payload === undefined) {\n\t\t\t\t\targs[args.length - 1].action.payload = {options}; // eslint-disable-line no-param-reassign\n\t\t\t\t} else if (typeof payload === 'object') {\n\t\t\t\t\t// TODO: payload.options could have be applied from a previous behavior\n\t\t\t\t\t// or it could be part of the payload dispatched; not sure what to log\n\t\t\t\t\t// or how to properly handle this scenario. if options were part of the metadata\n\t\t\t\t\t// instead it would solved the problem.\n\t\t\t\t\t// if (typeof payload.options === 'object')\n\t\t\t\t\tpayload.options = options;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst transactionCtx = {\n\t\t\t\tinteractionId: getInteractionId(action.meta),\n\t\t\t\thost,\n\t\t\t\ttype: action.type\n\t\t\t};\n\t\t\teffectRunner(effect, transactionCtx, ...args);\n\t\t} catch (error) {\n\t\t\tdispatchError(error, {\n\t\t\t\tdispatch,\n\t\t\t\thost,\n\t\t\t\tlocation,\n\t\t\t\tdetails,\n\t\t\t\tmetadata: {internal: true, span: action.meta ? action.meta.span : null},\n\t\t\t\tlog\n\t\t\t});\n\t\t}\n\t};\n}\n\nexport {sandboxEffect};\n","import effectRunner from './effectRunner';\nimport {modifierTypes} from './modifiers';\n\nexport {effectRunner, modifierTypes};\n","import {\n\tdebounce,\n\ttakeLatest,\n\tthrottle,\n\tgetTargetElement,\n\thostMap,\n\tmodifierTypes\n} from './modifiers';\nimport runEffect from './runEffect';\n\nexport default function effectRunner(effect, ctx, ...args) {\n\tconst {effect: effectFn, modifier = {}} = effect;\n\tconst coeffects = args[args.length - 1];\n\tif (!coeffects) return runEffect(effectFn, args, ctx);\n\n\tconst targetElement = getTargetElement(coeffects);\n\tswitch (modifier.name) {\n\t\tcase modifierTypes.DEBOUNCE:\n\t\t\treturn debounce(\n\t\t\t\ttargetElement,\n\t\t\t\tcoeffects.action.type,\n\t\t\t\teffectFn,\n\t\t\t\tmodifier,\n\t\t\t\tctx,\n\t\t\t\trunEffect\n\t\t\t)(...args);\n\t\tcase modifierTypes.TAKE_LATEST:\n\t\t\treturn runEffect(takeLatest(targetElement, coeffects.action.type, effectFn), args, ctx).then(\n\t\t\t\t() => {\n\t\t\t\t\tdelete hostMap.get(targetElement).get(effectFn)[coeffects.action.type];\n\t\t\t\t}\n\t\t\t);\n\t\tcase modifierTypes.THROTTLE:\n\t\t\treturn throttle(\n\t\t\t\ttargetElement,\n\t\t\t\tcoeffects.action.type,\n\t\t\t\teffectFn,\n\t\t\t\tmodifier,\n\t\t\t\tctx,\n\t\t\t\trunEffect\n\t\t\t)(...args);\n\t\tdefault:\n\t\t\treturn runEffect(effectFn, args, ctx);\n\t}\n}\n","import debounce from './debounce';\nimport takeLatest from './takeLatest';\nimport throttle from './throttle';\nimport getTargetElement from './getTargetElement';\nimport hostMap from './hostMap';\nimport * as modifierTypes from './types';\n\nexport {debounce, takeLatest, throttle, getTargetElement, hostMap, modifierTypes};\n","import {allLogTypes as logTypes, defer} from '@servicenow/ui-internal';\nimport hostMap from './hostMap';\nimport log from '../../log';\nimport {timingMetricTypes, logTimingMetrics} from '@servicenow/ui-metrics';\n\nfunction createDebounce(fn, {delay = 0, maxWait, collate = false}, host, ctx, runEffectFn) {\n\tlet debounceVariables = getDebounceVariables();\n\tconst validMaxWait = Number.isInteger(maxWait);\n\tconst shouldCollate = collate === true;\n\tconst tDelay = !Number.isInteger(delay) ? 0 : delay;\n\tconst tMaxWait = validMaxWait ? maxWait : 0;\n\n\tconst componentName = host?.tagName;\n\tlogTimingMetrics(timingMetricTypes.DEBOUNCE, tDelay, componentName);\n\n\tif (validMaxWait && tMaxWait < tDelay) {\n\t\tlog(\n\t\t\t'For the debounce modifier configurations, the property maxWait should be greater than the property delay.',\n\t\t\t{level: logTypes.WARN, host, origin: 'debounce'}\n\t\t);\n\t}\n\n\tconst finishDebounce = fn => {\n\t\tinvokeFn(shouldCollate, debounceVariables, runEffectFn, fn, ctx);\n\t\tdebounceVariables = getDebounceVariables();\n\t};\n\n\tconst collateData = coeffects => {\n\t\tconst {\n\t\t\taction: {payload = {}}\n\t\t} = coeffects;\n\t\tdebounceVariables.collated.push({action: {payload}});\n\t};\n\n\treturn function debouncedEffect(...args) {\n\t\tclearTimeout(debounceVariables.delayId);\n\t\tdebounceVariables.lastArgs = args;\n\t\tdebounceVariables.saveEventProps();\n\t\tif (shouldCollate) collateData(args[args.length - 1]);\n\t\tdebounceVariables.delayId = defer(() => finishDebounce(fn), tDelay);\n\t\tif (validMaxWait && tMaxWait && !debounceVariables.maxWaitId)\n\t\t\tdebounceVariables.maxWaitId = defer(() => finishDebounce(fn), tMaxWait);\n\t};\n}\n\nconst invokeFn = (accumulate, debounceVariables, runEffectFn, fn, ctx) => {\n\tdebounceVariables.retrieveEventProps();\n\tconst {collated, lastArgs} = debounceVariables;\n\tclearTimers(debounceVariables);\n\tif (accumulate && lastArgs && lastArgs.length > 0) {\n\t\tconst coeffects = lastArgs[lastArgs.length - 1];\n\t\tcoeffects.collated = collated;\n\t}\n\n\t// defensive check for defer when throttled\n\t// nextTick not cancellable so lastArgs can be null from previous invocation\n\tif (lastArgs) runEffectFn(fn, lastArgs, ctx);\n};\n\nconst clearTimers = ({delayId, maxWaitId}) => {\n\tclearTimeout(delayId);\n\tclearTimeout(maxWaitId);\n};\n\nconst getDebounceVariables = () => ({\n\tdelayId: null,\n\tmaxWaitId: null,\n\tlastArgs: null,\n\tcollated: [],\n\tevent: {\n\t\teventPath: [],\n\t\tcurrentTarget: null\n\t},\n\tsaveEventProps() {\n\t\tif (!this.lastArgs || this.lastArgs.length === 0) return;\n\t\tconst coeffects = this.lastArgs[this.lastArgs.length - 1];\n\t\tconst event = coeffects.action?.payload.event;\n\t\tthis.event.eventPath = event?.composedPath();\n\t\tthis.event.currentTarget = event?.currentTarget;\n\t},\n\tretrieveEventProps() {\n\t\tif (!this.lastArgs || this.lastArgs.length === 0) return;\n\t\tconst coeffects = this.lastArgs[this.lastArgs.length - 1];\n\t\tconst event = coeffects.action?.payload.event;\n\t\tif (typeof event === 'undefined') return;\n\t\tevent.composedPath = () => this.event.eventPath;\n\t\tObject.defineProperty(event, 'currentTarget', {\n\t\t\tvalue: this.event.currentTarget,\n\t\t\twritable: false\n\t\t});\n\t}\n});\n\n/**\n * Debounce modifier for effect functions\n *\n * @param host\n * @param actionType\n * @param effectFn\n * @param modifier\n */\nexport default function debounce(host, actionType, effectFn, modifier, ctx, runEffectFn) {\n\tif (!hostMap.has(host)) hostMap.set(host, new WeakMap());\n\n\tconst effectMap = hostMap.get(host);\n\n\tif (!effectMap.has(effectFn)) effectMap.set(effectFn, {});\n\n\tconst actionMappings = effectMap.get(effectFn);\n\tif (!actionMappings[actionType])\n\t\tactionMappings[actionType] = createDebounce(effectFn, modifier, host, ctx, runEffectFn);\n\n\treturn actionMappings[actionType];\n}\n","// WeakMap: host -> WeakMap: effectFn -> {actionType: value}\nexport default new WeakMap();\n","import hostMap from './hostMap';\n\nfunction createCancelable(fn) {\n\treturn function cancelableEffect(...args) {\n\t\treturn fn(...args);\n\t};\n}\n\n/**\n * Take the latest effect and cancel any previously started effect fns\n *\n * Currently only supports generator fns\n *\n * @param host\n * @param actionType\n * @param effectFn\n * @returns {R|*}\n */\nexport default function takeLatest(host, actionType, effectFn) {\n\tif (!hostMap.has(host)) hostMap.set(host, new WeakMap());\n\n\tconst effectMap = hostMap.get(host);\n\n\tif (!effectMap.has(effectFn)) effectMap.set(effectFn, {});\n\n\tconst actionMappings = effectMap.get(effectFn);\n\tif (actionMappings[actionType]) actionMappings[actionType].cancelled = true;\n\n\tactionMappings[actionType] = createCancelable(effectFn);\n\n\treturn actionMappings[actionType];\n}\n","import hostMap from './hostMap';\nimport {defer} from '@servicenow/ui-internal';\n\nfunction createThrottle(fn, {limit = 0}, ctx, runEffectFn) {\n\tlet free = true;\n\treturn function throttledEffect(...args) {\n\t\tif (!free) return;\n\n\t\tfree = false;\n\t\trunEffectFn(fn, args, ctx);\n\t\tdefer(() => {\n\t\t\tfree = true;\n\t\t}, limit);\n\t};\n}\n\n/**\n * Throttle modifier for effect functions\n *\n * @param host\n * @param actionType\n * @param effectFn\n * @param modifier\n */\nexport default function throttle(host, actionType, effectFn, modifier, ctx, runEffectFn) {\n\tif (!hostMap.has(host)) hostMap.set(host, new WeakMap());\n\n\tconst effectMap = hostMap.get(host);\n\n\tif (!effectMap.has(effectFn)) effectMap.set(effectFn, {});\n\n\tconst actionMappings = effectMap.get(effectFn);\n\tif (!actionMappings[actionType])\n\t\tactionMappings[actionType] = createThrottle(effectFn, modifier, ctx, runEffectFn);\n\n\treturn actionMappings[actionType];\n}\n","/**\n * Parse target element from coeffects\n *\n * @param coeffects\n */\nexport default function getTargetElement(coeffects) {\n\tif (\n\t\tcoeffects &&\n\t\tcoeffects.action &&\n\t\tcoeffects.action.payload &&\n\t\tcoeffects.action.payload.event &&\n\t\tcoeffects.action.payload.event.target\n\t)\n\t\treturn coeffects.action.payload.event.target;\n\n\treturn coeffects.host;\n}\n","export const DEBOUNCE = 'debounce';\nexport const TAKE_LATEST = 'takeLatest';\nexport const THROTTLE = 'throttle';\n","import {mark, types as metrics} from '@servicenow/ui-metrics';\n\n/**\n * Runs effect function (includes async and generator functions)\n *\n * @param fn\n * @param args\n * @returns {Promise}\n */\nexport default function runEffect(fn, args, {host, interactionId, type}) {\n\tmark(host, interactionId, metrics.EFFECT_START, {type});\n\tconst generator = fn(...args);\n\n\tif (!generator || !generator.next) {\n\t\tmark(host, interactionId, metrics.EFFECT_END, {type});\n\t\treturn Promise.resolve(generator);\n\t}\n\n\tfunction runner(verb, arg) {\n\t\tif (fn.cancelled) {\n\t\t\tmark(host, interactionId, metrics.EFFECT_END, {type});\n\t\t\treturn Promise.resolve(generator.return());\n\t\t}\n\n\t\tlet result;\n\t\ttry {\n\t\t\tresult = generator[verb](arg);\n\t\t} catch (err) {\n\t\t\tmark(host, interactionId, metrics.EFFECT_END, {type});\n\t\t\treturn Promise.reject(err);\n\t\t}\n\n\t\tif (result.done) {\n\t\t\tmark(host, interactionId, metrics.EFFECT_END, {type});\n\t\t\treturn Promise.resolve(result.value);\n\t\t}\n\n\t\tmark(host, interactionId, metrics.EFFECT_END, {type});\n\t\treturn Promise.resolve(result.value).then(onResolved, onRejected);\n\t}\n\n\tconst onResolved = runner.bind(runner, 'next');\n\tconst onRejected = runner.bind(runner, 'throw');\n\treturn onResolved();\n}\n","import {getHostVariables} from '../utils';\nimport {HELPERS_IMMEDIATE, HOIST_COMPOSED_PATH, INTERNAL_HOST_DISPATCH} from '../symbols';\n\nexport function onActionHoisted(targetEl, targetSelector, host, actionType, action = {}) {\n\tconst {type, payload, meta, error} = action;\n\tconst hostVariables = getHostVariables(host);\n\n\t// stop this event from propagating, since we'll turn around and redispatch\n\t// from the original host\n\tif (meta.event) meta.event.stopPropagation();\n\n\thostVariables[HELPERS_IMMEDIATE].dispatch(\n\t\ttype,\n\t\tpayload,\n\t\t{\n\t\t\t...meta,\n\t\t\tretargeted: true,\n\t\t\t[HOIST_COMPOSED_PATH]: meta.event.composedPath(),\n\t\t\t[INTERNAL_HOST_DISPATCH]: true\n\t\t},\n\t\terror\n\t);\n}\n","import {\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_MODE_DETACH,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tNOW_MODE_PROP\n} from '../../constants';\n\nexport function skipForDetachedComponent(host, type, payload) {\n\tif (host[NOW_MODE_PROP] !== COMPONENT_MODE_DETACH) return false;\n\tconst allowedLifeCycleActions = [\n\t\tCOMPONENT_CONNECTED,\n\t\tCOMPONENT_BOOTSTRAPPED,\n\t\tCOMPONENT_DISCONNECTED\n\t];\n\tif (allowedLifeCycleActions.includes(type)) return false;\n\tif (type !== COMPONENT_PROPERTY_CHANGED) return true;\n\treturn payload.name !== NOW_MODE_PROP;\n}\n","export function mergeBehaviorActionHandlers(behaviors, actionHandlers) {\n\tconst mergedActionHandlers = {...actionHandlers};\n\tconst {length: behaviorsCount} = behaviors;\n\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\tconst {\n\t\t\tbehavior: {actionHandlers: behaviorActionHandlers, options}\n\t\t} = behaviors[i];\n\t\tfor (const k in behaviorActionHandlers) {\n\t\t\tconst behaviorActionHandler = {...behaviorActionHandlers[k], behaviorOptions: options};\n\t\t\tif (mergedActionHandlers[k]) mergedActionHandlers[k].push(behaviorActionHandler);\n\t\t\telse mergedActionHandlers[k] = [behaviorActionHandler];\n\t\t}\n\t}\n\n\treturn mergedActionHandlers;\n}\n","import log from '../../log';\n\n// this code executes before an instance is created. @servicenow/ui-internal/sandbox currently relies on host and dispatch.\n// refactoring @servicenow/ui-internal/sandbox to support this single use case - all other user code is executed after an\n// instance is created - didn't seem worth it. Even if we move to a lazy configuration initialization in the constructor\n// dispatch won't be created until connectedCallback is executed.\nfunction sandbox(fn, options, message) {\n\ttry {\n\t\treturn fn(options);\n\t} catch (error) {\n\t\tlog(message, {origin: 'sandbox', host: options ? options.host : null});\n\t\treturn {};\n\t}\n}\n\nexport function mergeBehaviorInitialState(\n\tbehaviors,\n\tcomponentInitialState,\n\tcomponentSetInitialState,\n\ttagName\n) {\n\tconst behaviorState = {};\n\tconst {length: behaviorsCount} = behaviors;\n\n\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\tconst {\n\t\t\tname,\n\t\t\toptions,\n\t\t\tbehavior: {initialState: behaviorInitialState, options: behaviorOptions}\n\t\t} = behaviors[i];\n\t\tbehaviorState[name] =\n\t\t\ttypeof behaviorInitialState === 'function'\n\t\t\t\t? sandbox(\n\t\t\t\t\t\tbehaviorInitialState,\n\t\t\t\t\t\toptions || behaviorOptions,\n\t\t\t\t\t\t`The initialState function for the ${name} behavior threw an error when defining <${tagName} />`\n\t\t\t\t  )\n\t\t\t\t: behaviorInitialState;\n\t}\n\n\tfunction setInitialState({host, properties, context}) {\n\t\tconst behaviorStateDynamic = behaviorState;\n\t\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\toptions,\n\t\t\t\tbehavior: {setInitialState: behaviorSetInitialState, options: behaviorOptions}\n\t\t\t} = behaviors[i];\n\n\t\t\tif (typeof behaviorSetInitialState === 'function') {\n\t\t\t\tbehaviorStateDynamic[name] = {\n\t\t\t\t\t...behaviorState[name],\n\t\t\t\t\t...sandbox(\n\t\t\t\t\t\tbehaviorSetInitialState,\n\t\t\t\t\t\t{host, properties, context, options: options || behaviorOptions},\n\t\t\t\t\t\t`The setInitialState function for the ${name} behavior threw an error when defining <${tagName} />`\n\t\t\t\t\t)\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\t...(Object.keys(behaviorStateDynamic).length ? {behaviors: behaviorStateDynamic} : {}),\n\t\t\t...(typeof componentSetInitialState === 'function' &&\n\t\t\t\tsandbox(\n\t\t\t\t\tcomponentSetInitialState,\n\t\t\t\t\t{host, properties, context},\n\t\t\t\t\t`The setInitialState function for ${tagName} threw an error`\n\t\t\t\t))\n\t\t};\n\t}\n\n\tconst initialState = {\n\t\t...(Object.keys(behaviorState).length ? {behaviors: behaviorState} : {}),\n\t\t...componentInitialState\n\t};\n\n\treturn {\n\t\tinitialState,\n\t\tsetInitialState\n\t};\n}\n","import {memoize, NOW_SKIP_RENDER_UNTIL_PRESENT, NOW_DEFER_HYDRATION} from '@servicenow/ui-internal';\nimport toPropertyName from '../toPropertyName';\nimport {\n\tCOMPONENT_NAME_ATTR,\n\tHOIST_ATTR,\n\tHOIST_APPEND_TO_ATTR,\n\tDEFER_ATTRIBUTE,\n\tNOW_HOIST_PROP,\n\tNOW_HOIST_APPEND_TO_PROP,\n\tNOW_HOIST_PREPEND_TO_PROP,\n\tNOW_ID_PROP,\n\tNOW_MODE_PROP,\n\tNOW_COMPONENT_NAME_PROP,\n\tNOW_ENABLE_PROPERTY_SETTING_PREVENTION_PROP,\n\tNOW_METRIC_TYPES_PROP,\n\tNOW_METRICS_LEVEL_PROP,\n\tNOW_LOGGING_LEVELS_PROP,\n\tNOW_PLACEHOLDER_HEIGHT_PROP,\n\tNOW_PLACEHOLDER_WIDTH_PROP,\n\tNOW_PRIORITY_PROP,\n\tPRIORITY_LEVEL_LOW,\n\tPRIORITY_LEVEL_MEDIUM,\n\tNOW_AVOID_RENDER_PROP,\n\tNOW_NESTED_SELECTABLE_PROPS\n} from '../../constants';\nimport log from '../../log';\n\nexport const mergeBehaviorProperties = memoize(mergeBehaviorPropertiesInner, {\n\tprofileName: 'mergeBehaviorProperties',\n\tcreateCacheKey: (b, p, t) => t\n});\n\nfunction mergeBehaviorPropertiesInner(behaviors, properties, tagName) {\n\tconst mergedProperties = {};\n\tconst {length: behaviorsCount} = behaviors;\n\tconst behaviorNames = {};\n\n\tfor (const k in properties) mergedProperties[k] = properties[k];\n\n\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\tconst {\n\t\t\tname,\n\t\t\tbehavior: {properties: behaviorProperties}\n\t\t} = behaviors[i];\n\t\tfor (const k in behaviorProperties) {\n\t\t\tif (mergedProperties[k]) {\n\t\t\t\tlog(`Behavior ${name} overwrote property ${k} for ${tagName}.`, {\n\t\t\t\t\ttagName,\n\t\t\t\t\torigin: 'mergeBehaviorProperties'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tmergedProperties[k] = behaviorProperties[k];\n\t\t\tbehaviorNames[k] = name;\n\t\t}\n\t}\n\n\treturn {\n\t\t...mergedProperties,\n\t\t[toPropertyName(DEFER_ATTRIBUTE)]: {},\n\t\t[toPropertyName(HOIST_ATTR)]: {\n\t\t\t...(mergedProperties[toPropertyName(HOIST_ATTR)] || {}),\n\t\t\treflect: true\n\t\t},\n\t\t[toPropertyName(HOIST_APPEND_TO_ATTR)]: {\n\t\t\t...(mergedProperties[toPropertyName(HOIST_APPEND_TO_ATTR)] || {}),\n\t\t\treflect: true\n\t\t},\n\t\t[toPropertyName(COMPONENT_NAME_ATTR)]: {reflect: true}, // @temporary add component-name\n\t\t[NOW_HOIST_PROP]: {...(mergedProperties[NOW_HOIST_PROP] || {}), reflect: true},\n\t\t[NOW_HOIST_APPEND_TO_PROP]: {\n\t\t\t...(mergedProperties[NOW_HOIST_APPEND_TO_PROP] || {}),\n\t\t\treflect: true\n\t\t},\n\t\t[NOW_HOIST_PREPEND_TO_PROP]: {\n\t\t\t...(mergedProperties[NOW_HOIST_PREPEND_TO_PROP] || {}),\n\t\t\treflect: true\n\t\t},\n\t\t[NOW_PLACEHOLDER_HEIGHT_PROP]: {\n\t\t\t...(mergedProperties[NOW_PLACEHOLDER_HEIGHT_PROP] || {}),\n\t\t\tschema: {type: 'string'}\n\t\t},\n\t\t[NOW_PLACEHOLDER_WIDTH_PROP]: {\n\t\t\t...(mergedProperties[NOW_PLACEHOLDER_WIDTH_PROP] || {}),\n\t\t\tschema: {type: 'string'}\n\t\t},\n\t\t[NOW_ID_PROP]: {},\n\t\t[NOW_MODE_PROP]: {},\n\t\t[NOW_COMPONENT_NAME_PROP]: {},\n\t\t[NOW_ENABLE_PROPERTY_SETTING_PREVENTION_PROP]: {},\n\t\t[NOW_LOGGING_LEVELS_PROP]: {\n\t\t\t...(mergedProperties[NOW_LOGGING_LEVELS_PROP] || []),\n\t\t\tschema: {type: ['array', 'boolean'], items: {type: 'string'}}\n\t\t},\n\t\t[NOW_METRIC_TYPES_PROP]: {\n\t\t\t...(mergedProperties[NOW_METRIC_TYPES_PROP] || {}),\n\t\t\tschema: {type: 'array', items: {type: 'string'}}\n\t\t},\n\t\t[NOW_METRICS_LEVEL_PROP]: {\n\t\t\t...(mergedProperties[NOW_METRICS_LEVEL_PROP] || {}),\n\t\t\tschema: {type: 'integer', minimum: 0, maximum: 5}\n\t\t},\n\t\t[NOW_PRIORITY_PROP]: {\n\t\t\t...(mergedProperties[NOW_PRIORITY_PROP] || {}),\n\t\t\tschema: {type: 'string', enum: [PRIORITY_LEVEL_LOW, PRIORITY_LEVEL_MEDIUM]}\n\t\t},\n\t\t[NOW_AVOID_RENDER_PROP]: {\n\t\t\t...(mergedProperties[NOW_AVOID_RENDER_PROP] || {default: false}),\n\t\t\tschema: {type: 'boolean'}\n\t\t},\n\t\t[NOW_SKIP_RENDER_UNTIL_PRESENT]: {\n\t\t\tattrToInitPropTransformer({attributeValue}) {\n\t\t\t\tif (attributeValue && typeof attributeValue === 'string') {\n\t\t\t\t\treturn attributeValue.split(',') || [];\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t},\n\t\t\tschema: {type: ['array'], items: {type: 'string'}}\n\t\t},\n\t\t[NOW_NESTED_SELECTABLE_PROPS]: {\n\t\t\t...(mergedProperties[NOW_NESTED_SELECTABLE_PROPS] || {}),\n\t\t\tschema: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: {type: 'string'}\n\t\t\t}\n\t\t},\n\t\t[NOW_DEFER_HYDRATION]: {}\n\t};\n}\n","export function mergeLifeCycleActionHandlers(lifecycleActionHandlers, componentActionHandlers) {\n\tconst mergedActionHandlers = {};\n\n\tfor (const k in componentActionHandlers) {\n\t\tmergedActionHandlers[k] = mergedActionHandlers[k] || [];\n\t\tmergedActionHandlers[k].push(componentActionHandlers[k]);\n\t}\n\n\tfor (const k in lifecycleActionHandlers) {\n\t\tconst actionHandlers = lifecycleActionHandlers[k] || [];\n\t\tmergedActionHandlers[k] = mergedActionHandlers[k] || [];\n\t\tmergedActionHandlers[k] = [...mergedActionHandlers[k], ...actionHandlers];\n\t}\n\n\treturn mergedActionHandlers;\n}\n","import {normalizeActionHandler} from './normalizeActionHandler';\n\nexport function normalizeActionHandlers(actionHandlers, tagName) {\n\tconst normalizedActionHandlers = {};\n\n\tfor (const k in actionHandlers)\n\t\tnormalizedActionHandlers[k] = normalizeActionHandler(actionHandlers[k], tagName);\n\n\treturn normalizedActionHandlers;\n}\n","import {normalizeActionHandlers} from './normalizeActionHandlers';\nimport {memoize} from '@servicenow/ui-internal';\n\nexport const normalizeBehaviors = memoize(normalizeBehaviorsInner, {\n\tprofileName: 'normalizeBehaviors',\n\tcreateCacheKey: (b, t) => t\n});\n\nfunction normalizeBehaviorsInner(behaviors = [], tagName) {\n\tconst {length: behaviorsCount} = behaviors;\n\tconst normalizedBehaviors = [];\n\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\tconst {behavior, options = {}} = behaviors[i] || {};\n\t\tconst resolvedBehavior = behavior || behaviors[i] || {};\n\t\tconst {name} = resolvedBehavior;\n\t\tconst {initialState = {}, actionHandlers, eventHandlers = [], actions} = resolvedBehavior;\n\n\t\tnormalizedBehaviors[i] = {\n\t\t\tbehavior: {\n\t\t\t\t...resolvedBehavior,\n\t\t\t\tactionHandlers: normalizeActionHandlers(actionHandlers, tagName),\n\t\t\t\tinitialState,\n\t\t\t\teventHandlers,\n\t\t\t\tactions,\n\t\t\t\toptions\n\t\t\t},\n\t\t\tname\n\t\t};\n\t}\n\n\treturn normalizedBehaviors;\n}\n","export function getStopPropagation(actionHandlers) {\n\tconst stopPropagation = {};\n\tfor (const k in actionHandlers) {\n\t\tif (actionHandlers[k].some(v => v.stopPropagation)) stopPropagation[k] = true;\n\t}\n\n\treturn stopPropagation;\n}\n","import {normalizeActionHandler} from './normalizeActionHandler';\n\n// TODO: this format should be deprecated in paris\nexport function mergeActions(actionHandlers, actions, tagName) {\n\tfor (const k in actions) {\n\t\tconst {\n\t\t\thandlers = [],\n\t\t\teffect: actionEffect,\n\t\t\targs: actionArgs,\n\t\t\tinterceptors: actionInterceptors,\n\t\t\tprivate: isPrivate\n\t\t} = actions[k];\n\t\tconst {length: handlersCount} = handlers;\n\n\t\tactionHandlers[k] = actionHandlers[k] || []; // eslint-disable-line no-param-reassign\n\t\tfor (let i = 0; i < handlersCount; i++) {\n\t\t\tconst handler = handlers[i];\n\t\t\tconst {effect} = handler;\n\t\t\tconst {fn, args = []} = effect || handler;\n\t\t\tif (typeof fn === 'function') {\n\t\t\t\tconst {interceptors} = handler;\n\t\t\t\tactionHandlers[k].push(\n\t\t\t\t\tnormalizeActionHandler({effect: fn, args, interceptors, private: isPrivate}, tagName)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tactionHandlers[k].push(normalizeActionHandler({...handler, private: isPrivate}, tagName));\n\t\t\t}\n\t\t}\n\n\t\tif ((handlersCount === 0 && isPrivate) || actionEffect || actionInterceptors) {\n\t\t\tactionHandlers[k].push(\n\t\t\t\tnormalizeActionHandler(\n\t\t\t\t\t{\n\t\t\t\t\t\teffect: actionEffect || (() => ({})),\n\t\t\t\t\t\tinterceptors: actionInterceptors,\n\t\t\t\t\t\targs: actionArgs,\n\t\t\t\t\t\tprivate: isPrivate\n\t\t\t\t\t},\n\t\t\t\t\ttagName\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t}\n\n\treturn actionHandlers;\n}\n","import {normalizeActionHandler} from './normalizeActionHandler';\n\nexport function mergeEventActionHandlers(actionHandlers, eventHandlers, tagName) {\n\tconst {length: eventHandlerCount} = eventHandlers;\n\tfor (let i = 0; i < eventHandlerCount; i++) {\n\t\tconst {\n\t\t\tevents = [],\n\t\t\teffect,\n\t\t\tmodifiers = [],\n\t\t\tmodifier = {},\n\t\t\tinterceptors = [],\n\t\t\ttarget,\n\t\t\tcapture,\n\t\t\tbehaviorOptions\n\t\t} = eventHandlers[i];\n\t\tconst {length: eventsCount} = events;\n\t\tfor (let j = 0; j < eventsCount; j++) {\n\t\t\tconst eventName = events[j];\n\t\t\tactionHandlers[eventName] = actionHandlers[eventName] || []; // eslint-disable-line no-param-reassign\n\t\t\tconst normalizedActionHandler = {\n\t\t\t\t...normalizeActionHandler(\n\t\t\t\t\t{effect, modifiers, modifier, interceptors, target, capture, eventHandler: true},\n\t\t\t\t\ttagName\n\t\t\t\t),\n\t\t\t\t...(behaviorOptions && {behaviorOptions})\n\t\t\t};\n\t\t\tactionHandlers[eventName].push(normalizedActionHandler);\n\t\t}\n\t}\n\n\treturn actionHandlers;\n}\n","import {buildActionPayloadValidator} from '../schema';\n\nexport function applyPayloadValidators(actions) {\n\tfor (const k in actions) {\n\t\tconst action = actions[k];\n\t\tconst {schema} = action;\n\t\tif (schema) action.validate = buildActionPayloadValidator(schema);\n\t}\n\n\treturn actions;\n}\n","import log from '../../log';\n\nexport function mergeBehaviorActions(actions, behaviors, tagName) {\n\tconst mergedActions = {};\n\tconst {length: behaviorsCount} = behaviors;\n\tconst behaviorNames = {};\n\n\tfor (let i = 0; i < behaviorsCount; i++) {\n\t\tconst {\n\t\t\tname,\n\t\t\tbehavior: {actions: behaviorActions = {}}\n\t\t} = behaviors[i];\n\n\t\tfor (const k in behaviorActions) {\n\t\t\tif (mergedActions[k]) {\n\t\t\t\tlog(`Behavior ${name} overwrote action ${k} for ${tagName}.`, {\n\t\t\t\t\ttagName,\n\t\t\t\t\torigin: 'mergeBehaviorActions'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tmergedActions[k] = behaviorActions[k];\n\t\t\tbehaviorNames[k] = name;\n\t\t}\n\t}\n\n\tfor (const k in actions) {\n\t\tif (mergedActions[k]) {\n\t\t\tlog(\n\t\t\t\t`The component definition for ${tagName} overwrote action ${k} defined by the ${behaviorNames[k]} behavior.`,\n\t\t\t\t{tagName, origin: 'mergeBehaviorActions'}\n\t\t\t);\n\t\t}\n\n\t\tmergedActions[k] = actions[k];\n\t}\n\n\treturn mergedActions;\n}\n","import {\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED,\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_TREE_RENDERED,\n\tCOMPONENT_STATE_UPDATED,\n\tCOMPONENT_INTERACTIVE\n} from '../../constants';\n\nconst actions = {\n\tCOMPONENT_CONNECTED,\n\tCOMPONENT_DISCONNECTED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_RENDERED,\n\tCOMPONENT_DOM_READY,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED,\n\tCOMPONENT_RENDER_REQUESTED,\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_TREE_RENDERED,\n\tCOMPONENT_STATE_UPDATED,\n\tCOMPONENT_INTERACTIVE\n};\n\nexport function getActionsToDispatch(interceptors) {\n\tconst shouldDispatch = {};\n\n\tfor (const k in actions) {\n\t\tconst type = actions[k];\n\t\tconst intercpetorsByType = interceptors[type];\n\t\tif (intercpetorsByType && intercpetorsByType.has('host')) shouldDispatch[type] = true;\n\t}\n\n\treturn shouldDispatch;\n}\n","export function normalizeBehaviorEventHandlers(normalizedBehaviors) {\n\tconst normalizedBehaviorEventHandlers = [];\n\tconst {length: numberOfBehaviors} = normalizedBehaviors;\n\tfor (let i = 0; i < numberOfBehaviors; i++) {\n\t\tconst {\n\t\t\tbehavior: {eventHandlers = [], options = {}}\n\t\t} = normalizedBehaviors[i];\n\t\tconst {length: numberOfEvents} = eventHandlers;\n\t\tfor (let k = 0; k < numberOfEvents; k++)\n\t\t\tnormalizedBehaviorEventHandlers.push({...eventHandlers[k], behaviorOptions: {...options}});\n\t}\n\n\treturn normalizedBehaviorEventHandlers;\n}\n","import {\n\tARIA_LIVE_ASSERTIVE,\n\tARIA_LIVE_POLITE,\n\tARIA_LIVE_RELEVANT,\n\tARIA_LIVE_TRIGGER_ADDITIONS,\n\tARIA_LIVE_TRIGGER_ALL,\n\tARIA_LIVE_TRIGGER_REMOVALS,\n\tARIA_LIVE_TRIGGER_TEXT\n} from '../constants';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport log from '../log';\nimport {allLogTypes as logTypes} from '@servicenow/ui-internal';\n\nexport const politeId = 'SEISMIC_ARIA_LIVE_REGION_POLITE';\nexport const assertiveId = 'SEISMIC_ARIA_LIVE_REGION_ASSERTIVE';\n\nconst validateTriggerTypes = triggers => {\n\t// triggers is a space-separated string of trigger types\n\t// check that the trigger type is one of the allowed values\n\tconst validTriggers = [\n\t\tARIA_LIVE_TRIGGER_ADDITIONS,\n\t\tARIA_LIVE_TRIGGER_REMOVALS,\n\t\tARIA_LIVE_TRIGGER_TEXT,\n\t\tARIA_LIVE_TRIGGER_ALL\n\t];\n\tconst triggerTypes = triggers.split(' ');\n\n\tlet validTriggerTypes = [];\n\tlet hasInvalidTrigger = false;\n\n\tfor (const trigger of triggerTypes) {\n\t\tif (validTriggers.includes(trigger)) {\n\t\t\tvalidTriggerTypes.push(trigger);\n\t\t} else {\n\t\t\thasInvalidTrigger = true;\n\t\t}\n\t}\n\n\tif (!validTriggerTypes.length || hasInvalidTrigger) {\n\t\treturn undefined;\n\t}\n\n\tif (\n\t\tvalidTriggerTypes.includes(ARIA_LIVE_TRIGGER_ALL) ||\n\t\t(validTriggerTypes.includes(ARIA_LIVE_TRIGGER_ADDITIONS) &&\n\t\t\tvalidTriggerTypes.includes(ARIA_LIVE_TRIGGER_REMOVALS) &&\n\t\t\tvalidTriggerTypes.includes(ARIA_LIVE_TRIGGER_TEXT))\n\t) {\n\t\treturn ARIA_LIVE_TRIGGER_ALL;\n\t}\n\treturn validTriggerTypes.join(' ');\n};\n\nconst applyAriaLiveRegionAttributes = (el, type, id, triggers) => {\n\tconst live = type === ARIA_LIVE_ASSERTIVE || type === ARIA_LIVE_POLITE ? type : ARIA_LIVE_POLITE;\n\tel.setAttribute('id', id || (type === ARIA_LIVE_ASSERTIVE ? assertiveId : politeId));\n\tel.setAttribute('aria-live', live);\n\tel.setAttribute('aria-atomic', true);\n\tif (triggers) {\n\t\tconst triggerTypes = validateTriggerTypes(triggers);\n\t\tif (triggerTypes) {\n\t\t\tel.setAttribute(ARIA_LIVE_RELEVANT, triggerTypes);\n\t\t}\n\t}\n\tapplyStyles(el);\n};\n\nconst applyStyles = el => {\n\tel.style.position = 'absolute';\n\tel.style.overflow = 'hidden';\n\tel.style.width = '1px';\n\tel.style.height = '0px';\n\tel.style.margin = 0;\n\tel.style.border = 'none';\n\tel.style.padding = 0;\n\tel.style.whiteSpace = 'nowrap';\n\tel.style.clip = 'rect(0 0 0 0)';\n\tel.style.clipPath = 'inset(50%)';\n};\n\nconst politeTimeout = getConfigItem(configConstants.ARIA_LIVE_POLITE_TIMEOUT);\nconst assertiveTimeout = getConfigItem(configConstants.ARIA_LIVE_ASSERTIVE_TIMEOUT);\n\nconst createAriaLiveRegionEl = (id, type, triggers) => {\n\tconst el = document.createElement('SPAN');\n\tapplyAriaLiveRegionAttributes(el, type, id, triggers);\n\tdocument.body.appendChild(el);\n\treturn el;\n};\n\nconst getAriaLiveRegionEl = (type, triggers) => {\n\tconst id = type === ARIA_LIVE_ASSERTIVE ? assertiveId : politeId;\n\treturn document.querySelector(`#${id}`) || createAriaLiveRegionEl(id, type, triggers);\n};\n\nconst upsertComponentLiveContentNode = ({\n\tariaLiveRegionEl,\n\thost,\n\ttextNode,\n\treplaceContent = false\n}) => {\n\tconst id = `${host.tagName}_${host.getAttribute('now-id')}`;\n\tconst curNode = ariaLiveRegionEl.querySelector(`#${id}`);\n\tif (curNode) {\n\t\tif (replaceContent) {\n\t\t\tcurNode.innerHTML = '';\n\t\t}\n\t\tcurNode.appendChild(textNode);\n\t\treturn curNode;\n\t} else {\n\t\tconst newNode = document.createElement('SPAN');\n\t\tnewNode.setAttribute('id', id);\n\t\tnewNode.appendChild(textNode);\n\t\tariaLiveRegionEl.appendChild(newNode);\n\t\treturn newNode;\n\t}\n};\nexport const actionHandler = {\n\tstopPropagation: true,\n\teffect({\n\t\thost,\n\t\taction: {\n\t\t\tpayload: {message, type = ARIA_LIVE_POLITE, replaceContent = false, triggers}\n\t\t}\n\t}) {\n\t\tif (type !== ARIA_LIVE_ASSERTIVE && type !== ARIA_LIVE_POLITE) {\n\t\t\tprocess.env.NODE_ENV !== 'production' &&\n\t\t\t\tlog(\n\t\t\t\t\t`\"ARIA_LIVE_REGION_UPDATE_REQUESTED\" was dispatched with action.type: ${type}. Only action.type of \"assertive\" or \"polite\" is allowed.`,\n\t\t\t\t\t{level: logTypes.WARN, host, origin: 'dispatch'}\n\t\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst ariaLiveRegionEl = getAriaLiveRegionEl(type, triggers);\n\t\tconst textNode = document.createTextNode(message);\n\t\tconst ariaLiveRegionCompNode = upsertComponentLiveContentNode({\n\t\t\tariaLiveRegionEl,\n\t\t\thost,\n\t\t\ttextNode,\n\t\t\treplaceContent\n\t\t});\n\t\tsetTimeout(\n\t\t\t() => {\n\t\t\t\tif (textNode.parentNode === ariaLiveRegionCompNode)\n\t\t\t\t\tariaLiveRegionCompNode.removeChild(textNode);\n\t\t\t},\n\t\t\ttype === ARIA_LIVE_ASSERTIVE ? assertiveTimeout : politeTimeout\n\t\t);\n\t}\n};\n","import getComponentName from '../utils/schema/getComponentName';\nimport validateSchema from '../utils/schema/validate/validateSchema';\nimport contexts from './contexts';\nimport {isPlainObject} from '@servicenow/ui-utils';\n\nexport default function validateContext(context, host) {\n\tif (isPlainObject(context)) {\n\t\tconst contextKeys = Reflect.ownKeys(context);\n\t\tfor (let i = 0; i < contextKeys.length; i++) {\n\t\t\tconst k = contextKeys[i];\n\t\t\tif (contexts.has(k)) {\n\t\t\t\tconst {validate} = contexts.get(k);\n\t\t\t\tvalidateSchema(validate, context[k], {\n\t\t\t\t\terrorPrefix: `Context property for ${getComponentName(host)}: `\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n","import {toLower} from '@servicenow/ui-internal';\n\n/**\n * Returns a string representing the host element, i.e. `<sn-component component-id=\"123\" />`\n * @private\n * @param {host} host\n * @returns {string}\n */\nfunction getComponentName(host) {\n\treturn `<${toLower(host.tagName)} component-id=\"${host.getAttribute('component-id')}\" />`;\n}\n\nexport default getComponentName;\n","import log from '../logValidationError';\n\nfunction getPath(pathPrefix, dataPath) {\n\tif (!pathPrefix && !dataPath) return '';\n\n\tif (!pathPrefix && dataPath.startsWith('.')) return `${dataPath.substr(1)} `;\n\n\treturn `${pathPrefix}${dataPath} `;\n}\n\n/**\n * Run a validator against a value to determine its validity. If it is not valid, log an error.\n * @private\n * @param {Function} validator The validator built from one of the methods in ./build\n * @param {any} value The value to run the schema validation against\n * @param {Object} options\n * @param {string} options.pathPrefix Name of the value being validated. Optional\n * @param {string} options.errorPrefix Prefix for the error message\n * @returns {boolean} Whether the value passed validation\n */\nfunction validateSchema(\n\tvalidator,\n\tvalue,\n\t{pathPrefix = '', errorPrefix = '', shouldLog = true} = {}\n) {\n\tconst isValid = validator(value);\n\tif (!isValid) {\n\t\t// If there are errors, only report the first one\n\t\tconst [{dataPath, message, params: {level = 'error'} = {}}] = validator.errors;\n\n\t\tconst path = getPath(pathPrefix, dataPath);\n\t\tconst errorMessage = `${path}${message}`;\n\n\t\tif (shouldLog) log(`${errorPrefix}${errorMessage}`, {level, origin: 'validateSchema'});\n\t}\n\treturn isValid;\n}\n\nexport default validateSchema;\n","import {createLogger, memoize} from '@servicenow/ui-internal';\n\nconst logger = createLogger({\n\tmodule: '@servicenow/ui-core'\n});\n\n// Prevent the same validation error message from being printed more than once\nexport default memoize(logger, {profileName: 'ui-core logger'});\n","export {default as property} from './property';\nexport {default as properties} from './properties';\nexport {default as parse} from './parse';\n","import {PARSE_PROP_CONF_KEY, PACKAGE_NAME} from '../../constants';\nimport isValuePropertySelector from './isValuePropertySelector';\nimport {\n\tsandbox,\n\tlocations,\n\ttoLower,\n\tkebabCase,\n\tallLogTypes as logTypes\n} from '@servicenow/ui-internal';\nimport log from '../../log';\nimport {parseRefProperty} from './refProperty';\nimport {default as validParseTypes} from './types';\nimport parse from './parse';\n\nexport default function parseProperty(name, value, def = {}, host, dispatch) {\n\tconst unstableParse = def[PARSE_PROP_CONF_KEY];\n\tconst schemaType = def.schema && def.schema.type;\n\tconst isValidParseType = validParseTypes.includes(schemaType);\n\tconst resolvedValue = def.resolveRef ? parseRefProperty(host, name, value) : value;\n\tconst shouldUnstableParse =\n\t\t(unstableParse || validParseTypes.includes(schemaType)) &&\n\t\t!isValuePropertySelector(resolvedValue) &&\n\t\ttypeof resolvedValue === 'string';\n\n\tif (shouldUnstableParse && isValidParseType && !host.hasAttribute(kebabCase(name))) {\n\t\tconst component = `<${toLower(host.tagName)} />`;\n\t\tlog(\n\t\t\t`For property ${name} on component ${component}: expected to be type ${schemaType} but received string. ${PACKAGE_NAME} will attempt to parse this value, but you should set this to the correct type.`,\n\t\t\t{level: logTypes.WARN, host, origin: 'parseProperty'}\n\t\t);\n\t}\n\n\treturn shouldUnstableParse\n\t\t? sandbox(parse, {\n\t\t\t\targs: [resolvedValue, schemaType, name, host.tagName],\n\t\t\t\thost,\n\t\t\t\tdispatch,\n\t\t\t\tlocation: locations.PROPERTY,\n\t\t\t\tdetails: {parse: true, name},\n\t\t\t\tlog\n\t\t  })\n\t\t: resolvedValue;\n}\n","import {PROPERTY_SELECTOR_SIGIL} from '../../constants';\n\nexport default function isValuePropertySelector(value) {\n\tif (typeof value !== 'string') return false;\n\n\treturn value.startsWith(PROPERTY_SELECTOR_SIGIL);\n}\n","import {isRef, subscribeToRef} from '@servicenow/ui-internal';\n\nconst refUnsubs = new Map();\nexport function parseRefProperty(host, name, value) {\n\tconst isReference = isRef(value);\n\tlet unsubs = refUnsubs.get(host);\n\tconst ref = unsubs?.get(name)?.ref;\n\n\tif (ref && (ref.current !== value || isReference)) {\n\t\tif (unsubs) {\n\t\t\tunsubs.get(name)?.fn();\n\t\t\tunsubs.delete(name);\n\t\t\tif (unsubs.size === 0) {\n\t\t\t\trefUnsubs.delete(host);\n\t\t\t\tunsubs = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (isReference) {\n\t\trefUnsubs.set(\n\t\t\thost,\n\t\t\t(unsubs || new Map()).set(name, {fn: subscribeToRef(value, host, name), ref: value})\n\t\t);\n\t\treturn value.current;\n\t}\n\treturn value;\n}\n\nexport function getUnsubscribe(host, propName) {\n\treturn refUnsubs.get(host)?.get(propName);\n}\n\nexport function getHostUnsubs(host) {\n\treturn refUnsubs.get(host);\n}\n","const types = ['number', 'integer', 'boolean', 'array', 'object', 'null'];\n\nexport default types;\n","import {toLower} from '@servicenow/ui-internal';\n\n/**\n * Parse the property value\n * @private\n *\n * @param {*} value The value of the property\n * @param {*} schemaType The type of the property defined in its schema\n */\nexport default function parse(value, schemaType, name, tagName) {\n\tif (schemaType === 'boolean' && value === '') return true;\n\n\ttry {\n\t\treturn JSON.parse(value);\n\t} catch (e) {\n\t\t// throw to take advantage of sandbox logging and dispatching\n\t\tthrow new Error(\n\t\t\t`Parsing failed for property ${name} on component ${toLower(\n\t\t\t\ttagName\n\t\t\t)}: expected to be type ${schemaType} but received string.`\n\t\t);\n\t}\n}\n","import {PARSE_PROP_CONF_KEY, PACKAGE_NAME} from '../../constants';\nimport isValuePropertySelector from './isValuePropertySelector';\nimport {\n\tsandbox,\n\tlocations,\n\ttoLower,\n\tkebabCase,\n\tallLogTypes as logTypes\n} from '@servicenow/ui-internal';\nimport log from '../../log';\nimport {default as validParseTypes} from './types';\nimport {parseRefProperty} from './refProperty';\nimport parse from './parse';\n\n/**\n * Parse any property that is configured with `unstableParse: true`, or any property that has a\n * defined schema with a parseable type\n */\nexport default function parseProperties(properties, defs = {}, {host, dispatch}) {\n\tconst parsedProperties = {};\n\tfor (const k in properties) {\n\t\tconst value = properties[k];\n\t\tconst unstableParse = defs[k] && defs[k][PARSE_PROP_CONF_KEY];\n\n\t\tconst schemaType = defs[k] && defs[k].schema && defs[k].schema.type;\n\t\tconst isValidParseType = validParseTypes.includes(schemaType);\n\t\tconst resolvedValue = defs[k] && defs[k].resolveRef ? parseRefProperty(host, k, value) : value;\n\t\tconst shouldUnstableParse =\n\t\t\t(unstableParse || validParseTypes.includes(schemaType)) &&\n\t\t\t!isValuePropertySelector(resolvedValue) &&\n\t\t\ttypeof resolvedValue === 'string';\n\n\t\tif (shouldUnstableParse && isValidParseType && !host.hasAttribute(kebabCase(k))) {\n\t\t\tconst component = `<${toLower(host.tagName)} />`;\n\t\t\tlog(\n\t\t\t\t`For property ${k} on component ${component}: expected to be type ${schemaType} but received string. ${PACKAGE_NAME} will attempt to parse this value, but you should set this to the correct type.`,\n\t\t\t\t{level: logTypes.WARN, host, origin: 'parseProperties'}\n\t\t\t);\n\t\t}\n\n\t\tparsedProperties[k] = shouldUnstableParse\n\t\t\t? sandbox(parse, {\n\t\t\t\t\targs: [resolvedValue, schemaType, k, host.tagName],\n\t\t\t\t\thost,\n\t\t\t\t\tdispatch,\n\t\t\t\t\tlocation: locations.PROPERTY,\n\t\t\t\t\tdetails: {parse: true, name: k},\n\t\t\t\t\tlog\n\t\t\t  })\n\t\t\t: resolvedValue;\n\t}\n\n\treturn parsedProperties;\n}\n","export {createDispatcher} from './createDispatcher';\nexport {createConditionalDispatch} from './createConditionalDispatch';\nexport {addActionHandlers} from './addActionHandlers';\nexport {addActionHandlerForUnknownType} from './addActionHandlerForUnknownType';\nexport {removeActionHandlers} from './removeActionHandlers';\nexport {hasActionHandlerForType} from './utils';\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {mark, getInteractionId, types as metrics} from '@servicenow/ui-metrics';\nimport {getHostInfo, allLogTypes as logTypes} from '@servicenow/ui-internal';\nimport {customEventDispatcher} from './customEventDispatcher';\nimport {\n\tcreateMetaData,\n\tappendToPayload,\n\tisPropertyUpdate,\n\tnormalizeActionMeta,\n\tvalidateActionPayload,\n\tisInternalActionType,\n\tgetInternalActionName,\n\tisStoreUpdate,\n\thasActionHandlerForType,\n\tskipForDetachedComponent\n} from './utils';\nimport {\n\tHELPERS_SCHEDULED,\n\tHELPERS_IMMEDIATE,\n\tPRESENTATIONAL,\n\tANCESTOR_PATH,\n\tINTERNAL_HOST_DISPATCH\n} from '../symbols';\nimport {emitNowUiEvent, getHostVariables, getSpanOptions} from '../utils';\nimport log from '../log';\nimport {\n\tACTION_DISPATCHED,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tPROPERTIES_SET,\n\tDISPATCH_EVENT,\n\tSPAN_FOR_DISPATCH,\n\tSPAN_KIND_CLIENT,\n\tSPAN_ATTR_DISPATCH_ACTION_TYPE,\n\tSPAN_ATTR_DISPATCH_UNDEFINED,\n\tSPAN_ATTR_DISPATCH_FLAG_HOST_DISPATCH,\n\tSPAN_ATTR_SKIP_FOR_DETACHED_COMPONENT,\n\tSPAN_ATTR_STORE_UPDATE,\n\tSPAN_ATTR_DISPATCH_ACTION_INTERNAL_TYPE,\n\tSPAN_ATTR_LEVEL,\n\tSPAN_LEVEL_FINEST\n} from '../constants';\nimport {addActionHandlerForUnknownType} from './addActionHandlerForUnknownType';\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\nexport function createDispatcher(host, dispatcher = customEventDispatcher) {\n\tconst hostVariables = getHostVariables(host);\n\n\treturn function dispatch(type, payload = {}, meta = {}, error = null) {\n\t\tconst isExternalHostDispatch = meta[INTERNAL_HOST_DISPATCH] !== true;\n\t\tlet {span} = meta;\n\t\tif (isExternalHostDispatch) {\n\t\t\tspan = trace(SPAN_FOR_DISPATCH, {\n\t\t\t\t...getSpanOptions(host),\n\t\t\t\ttraceId: span && span.traceId,\n\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t...(meta.span && isValidTraceId(meta.span.traceId) && {parentSpan: meta.span})\n\t\t\t});\n\t\t\tspan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, type);\n\t\t\tspan.setAttribute(SPAN_ATTR_DISPATCH_FLAG_HOST_DISPATCH, true);\n\t\t\tif (isValidTraceId(span.traceId)) meta.span = span;\n\t\t}\n\t\tif (type === undefined) {\n\t\t\tlog(\n\t\t\t\t`You are dispatching an action that is type: ${type}.  We will send undefined actions to the upside down place in the next release.`,\n\t\t\t\t{level: logTypes.WARN, host, origin: 'dispatch'}\n\t\t\t);\n\t\t\tif (span) {\n\t\t\t\tspan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, 'undefined');\n\t\t\t\tspan.setAttribute(SPAN_ATTR_DISPATCH_UNDEFINED, true);\n\t\t\t\tspan.setAttribute(SPAN_ATTR_LEVEL, SPAN_LEVEL_FINEST);\n\t\t\t}\n\t\t}\n\n\t\tif (skipForDetachedComponent(host, type, payload)) {\n\t\t\tif (span) {\n\t\t\t\tspan.setAttribute(SPAN_ATTR_SKIP_FOR_DETACHED_COMPONENT, true);\n\t\t\t\tspan.setAttribute(SPAN_ATTR_LEVEL, SPAN_LEVEL_FINEST);\n\t\t\t\tif (isExternalHostDispatch) {\n\t\t\t\t\tspan.end();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif (isStoreUpdate(type)) {\n\t\t\thostVariables[HELPERS_SCHEDULED].updateState(payload, {\n\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]: true,\n\t\t\t\tinteractionId: getInteractionId(meta)\n\t\t\t});\n\t\t\tif (span) {\n\t\t\t\tspan.setAttribute(SPAN_ATTR_STORE_UPDATE, true);\n\t\t\t\tif (isExternalHostDispatch) {\n\t\t\t\t\tspan.end();\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn log(\n\t\t\t\t`${type} is a private action type and has been deprecated. Please use updateState.`,\n\t\t\t\t{host, origin: 'dispatch'}\n\t\t\t);\n\t\t}\n\n\t\tif (isInternalActionType(type, meta.internal)) {\n\t\t\tconst {tagName, componentId} = getHostInfo(host);\n\t\t\tlog(`${getInternalActionName(type)} cannot be dispatched as it is an internal action type`, {\n\t\t\t\ttagName,\n\t\t\t\tcomponentId,\n\t\t\t\thost,\n\t\t\t\torigin: 'dispatch'\n\t\t\t});\n\n\t\t\t// Only return if the type is not one of the following, in order to maintain backwards compatibility\n\t\t\tif (![PROPERTIES_SET, DISPATCH_EVENT].includes(type)) {\n\t\t\t\tif (span) {\n\t\t\t\t\tspan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_INTERNAL_TYPE, true);\n\t\t\t\t\tspan.setAttribute(SPAN_ATTR_LEVEL, SPAN_LEVEL_FINEST);\n\t\t\t\t\tif (isExternalHostDispatch) {\n\t\t\t\t\t\tspan.end();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isPropertyUpdate(type)) {\n\t\t\tif (span && isExternalHostDispatch) {\n\t\t\t\tspan.end();\n\t\t\t}\n\t\t\treturn hostVariables[HELPERS_IMMEDIATE].updateProperties(payload, {\n\t\t\t\tinteractionId: getInteractionId(meta)\n\t\t\t});\n\t\t}\n\n\t\tvalidateActionPayload(host, type, payload, hostVariables); // TODO: fix\n\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tmeta = normalizeActionMeta(meta, {host});\n\n\t\tconst action = {\n\t\t\ttype,\n\t\t\tpayload: meta.retargeted ? payload : appendToPayload(host, payload),\n\t\t\tmeta: createMetaData(host, meta, hostVariables),\n\t\t\terror\n\t\t};\n\n\t\temitNowUiEvent(ACTION_DISPATCHED, {\n\t\t\thost,\n\t\t\taction,\n\t\t\tancestorPath: hostVariables?.[ANCESTOR_PATH]?.map(ancestorElement => {\n\t\t\t\treturn {componentId: ancestorElement.nowId, componentName: ancestorElement.tagName};\n\t\t\t})\n\t\t});\n\n\t\tif (\n\t\t\t!hostVariables[PRESENTATIONAL] &&\n\t\t\t!meta.internal &&\n\t\t\t!hasActionHandlerForType(hostVariables, type)\n\t\t)\n\t\t\taddActionHandlerForUnknownType(host, type, hostVariables);\n\n\t\tmark(host, getInteractionId(action.meta), metrics.DISPATCH, {type});\n\t\tif (span && isExternalHostDispatch) {\n\t\t\tspan.end();\n\t\t}\n\t\treturn dispatcher(host, action);\n\t};\n}\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport {memoize} from '@servicenow/ui-internal';\nimport {getInteractionId} from '@servicenow/ui-metrics';\nimport {\n\tDISPATCH_EVENT,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tCOMPONENT_PROPERTY_UPDATE_REQUESTED\n} from '../constants';\nimport {COMPONENT_ID, PRESENTATIONAL} from '../symbols';\nimport {getHostVariables} from '../utils';\nimport {schedule, types} from '../scheduler';\nimport {applyRuntimeActionHandlers} from './utils';\n\nconst {ENABLE_ACTION_DISPATCHED_HANDLING} = configConstants;\nconst shouldApplyRuntimeActionHandlers = memoize(\n\t() => getConfigItem(ENABLE_ACTION_DISPATCHED_HANDLING) === true,\n\t{profileName: 'shouldApplyRuntimeActionHandlers'}\n);\n\nconst {DISPATCH, IMMEDIATE} = types;\n\nfunction addEventGetters(event) {\n\tObject.defineProperty(event, 'path', {\n\t\tget() {\n\t\t\treturn event.composedPath();\n\t\t}\n\t});\n\t// FIXME: is there a better, faster way than this?\n\tObject.defineProperties(event.detail.meta, {\n\t\tevent: {\n\t\t\tvalue: event,\n\t\t\tenumerable: true\n\t\t},\n\t\tpath: {\n\t\t\tget() {\n\t\t\t\treturn event\n\t\t\t\t\t.composedPath()\n\t\t\t\t\t.map(el => {\n\t\t\t\t\t\tconst variables = getHostVariables(el);\n\t\t\t\t\t\treturn variables && variables[COMPONENT_ID];\n\t\t\t\t\t})\n\t\t\t\t\t.filter(componentId => componentId);\n\t\t\t}\n\t\t}\n\t});\n\n\treturn event;\n}\n\nfunction dispatchLegacyEvent(host, detail) {\n\tconst event = new CustomEvent(DISPATCH_EVENT, {composed: true, bubbles: true, detail});\n\thost.dispatchEvent(addEventGetters(event));\n}\n\nexport function customEventDispatcher(host, {type, payload, meta, error}) {\n\tconst hostVariables = getHostVariables(host);\n\tconst presentational = hostVariables[PRESENTATIONAL];\n\n\tconst shouldBubble = meta.internal && type !== COMPONENT_PROPERTY_UPDATE_REQUESTED ? false : true;\n\tconst event = new CustomEvent(type, {\n\t\tcomposed: shouldBubble,\n\t\tbubbles: shouldBubble,\n\t\tcancelable: true,\n\t\tdetail: {\n\t\t\ttype,\n\t\t\tpayload,\n\t\t\terror,\n\t\t\tmeta\n\t\t}\n\t});\n\n\tschedule({\n\t\tfn() {\n\t\t\tif (process.env.UNSAFE_SEISMIC_EMIT_CUSTOM_EVENT) {\n\t\t\t\tdispatchLegacyEvent(host, {\n\t\t\t\t\ttype,\n\t\t\t\t\tpayload,\n\t\t\t\t\terror,\n\t\t\t\t\t// spread or Object.defineProperties fails because the meta reference is the same\n\t\t\t\t\tmeta: {...meta}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (!presentational && shouldApplyRuntimeActionHandlers())\n\t\t\t\tapplyRuntimeActionHandlers(host, type);\n\t\t\treturn host.dispatchEvent(addEventGetters(event));\n\t\t},\n\t\tmeta: {el: host, interactionId: getInteractionId(meta), span: meta.span},\n\t\ttype: meta[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]\n\t\t\t? IMMEDIATE\n\t\t\t: DISPATCH\n\t});\n\n\treturn event;\n}\n","import {normalizeActionHandler} from '../utils/config/normalizeActionHandler';\nimport {createInterceptors} from '../utils/config/createInterceptors';\nimport {ACTION_HANDLERS, TARGETED_ACTION_TYPES, CONFIG} from '../symbols';\nimport {addActionHandler} from './customEventActionHandler';\nimport {onAction} from './onAction';\n\nexport function addActionHandlerForUnknownType(host, type, hostVariables) {\n\tif (!(type in hostVariables[CONFIG].interceptors)) {\n\t\tconst actionHandler = normalizeActionHandler(() => {}, host.tagName);\n\n\t\tconst interceptors = createInterceptors({\n\t\t\t[type]: actionHandler\n\t\t});\n\n\t\thostVariables[CONFIG].interceptors = {...hostVariables[CONFIG].interceptors, ...interceptors}; // eslint-disable-line no-param-reassign\n\t}\n\n\tconst removeActionHandler = addActionHandler(host, null, host, type, false, false, onAction);\n\thostVariables[ACTION_HANDLERS].push(removeActionHandler);\n\thostVariables[TARGETED_ACTION_TYPES] = [...hostVariables[TARGETED_ACTION_TYPES], type]; // eslint-disable-line no-param-reassign\n}\n","import {applyInteractionId} from '@servicenow/ui-metrics';\nimport {CONFIG, DISPATCH, INTERNAL_HOST_DISPATCH, PRESENTATIONAL} from '../symbols';\nimport {emitNowUiEvent, getHostVariables, getSpanOptions} from '../utils';\nimport {\n\tACTION_DISPATCHED,\n\tSPAN_ATTR_DISPATCH_ACTION_TYPE,\n\tSPAN_FOR_DISPATCH,\n\tSPAN_KIND_CLIENT,\n\tSPAN_LIFECYCLE_EVENTS,\n\tSPAN_ATTR_CONDITIONAL\n} from '../constants';\nimport * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\n\nexport function createConditionalDispatch(host) {\n\treturn function conditionalDispatch(type, payload, meta, error) {\n\t\tapplyInteractionId(meta);\n\t\tconst hostVariables = getHostVariables(host);\n\t\tconst shouldDispatch =\n\t\t\t!hostVariables[PRESENTATIONAL] && hostVariables[CONFIG].shouldDispatch[type];\n\t\tif (shouldDispatch) {\n\t\t\treturn dispatchWithLifecycleSpan({type, payload, meta, error, host});\n\t\t}\n\n\t\temitNowUiEvent(ACTION_DISPATCHED, {host, action: {type, payload, meta, error}});\n\t};\n}\n\nfunction dispatchWithLifecycleSpan(options) {\n\tconst {type, payload, meta, error, host} = options;\n\tconst hostVariables = getHostVariables(host);\n\tconst spanOptions = getSpanOptions(host);\n\n\tlet lifecycleSpan;\n\tconst parentSpan = meta.span;\n\tif (parentSpan && isValidTraceId(parentSpan.traceId)) {\n\t\tconst traceName = SPAN_LIFECYCLE_EVENTS[type];\n\t\tif (traceName) {\n\t\t\tlifecycleSpan = createLifecycleSpan(spanOptions, parentSpan, traceName);\n\t\t\tmeta.span = isValidTraceId(lifecycleSpan.traceId) && lifecycleSpan;\n\t\t}\n\t}\n\tmeta[INTERNAL_HOST_DISPATCH] = meta.internal === true;\n\tconst result = hostVariables[DISPATCH](type, payload, meta, error);\n\tif (lifecycleSpan) lifecycleSpan.end();\n\n\treturn result;\n}\n\nfunction createLifecycleSpan(spanOptions, parentSpan, traceName) {\n\tconst lifecycleSpan = trace(SPAN_FOR_DISPATCH, {\n\t\t...spanOptions,\n\t\ttraceId: parentSpan.traceId,\n\t\tkind: SPAN_KIND_CLIENT,\n\t\tparentSpan\n\t});\n\tlifecycleSpan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, traceName);\n\tlifecycleSpan.setAttribute(SPAN_ATTR_CONDITIONAL, true);\n\n\treturn lifecycleSpan;\n}\n","import {getHostVariables} from '../utils';\nimport {allLogTypes as logTypes} from '@servicenow/ui-internal';\n\nimport {onAction} from './onAction';\nimport {onActionHoisted} from './onActionHoisted';\nimport {addActionHandler} from './customEventActionHandler';\nimport {isHoisted, getHoistTarget} from './utils';\nimport {RETARGETED_ACTION_TYPES, TARGETED_ACTION_TYPES} from '../symbols';\nimport {SEISMIC_HOIST_TAG_NAME} from '../constants';\nimport log from '../log';\n\nfunction resolveCaptureHandlerMetaData(interceptors) {\n\tconst {length: interceptorCount} = interceptors;\n\tfor (let i = 0; i < interceptorCount; i++) {\n\t\tconst {capture, eventHandler} = interceptors[i];\n\t\tif (capture !== undefined && eventHandler !== undefined) return {capture, eventHandler};\n\t}\n\treturn {capture: false, eventHandler: false};\n}\n\nexport function addActionHandlers(host, actions) {\n\tconst handlers = [];\n\tconst hoisted = isHoisted(host);\n\tconst hostVariables = getHostVariables(host);\n\n\tif (actions[undefined]) {\n\t\tlog(\n\t\t\t'You are registering an action handler for a type that is: undefined.  We will send undefined actions to the upside down place in the next release.',\n\t\t\t{level: logTypes.WARN, host, origin: 'addActionHandlers'}\n\t\t);\n\t}\n\n\tfor (const k in actions) {\n\t\tactions[k].forEach(function forEachTarget(interceptors, targetSelector) {\n\t\t\tconst {capture, eventHandler} = resolveCaptureHandlerMetaData(interceptors);\n\t\t\tconst resolvedTarget =\n\t\t\t\ttargetSelector === 'host'\n\t\t\t\t\t? host\n\t\t\t\t\t: typeof targetSelector === 'string'\n\t\t\t\t\t? document.querySelector(targetSelector)\n\t\t\t\t\t: targetSelector;\n\n\t\t\tif (hoisted) {\n\t\t\t\tconst hoistElem = getHoistTarget(hostVariables);\n\t\t\t\tif (hoistElem.tagName === SEISMIC_HOIST_TAG_NAME) {\n\t\t\t\t\tconst hoistElemVariables = getHostVariables(hoistElem);\n\t\t\t\t\thandlers.push(\n\t\t\t\t\t\taddActionHandler(\n\t\t\t\t\t\t\thoistElem,\n\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\tk,\n\t\t\t\t\t\t\tcapture,\n\t\t\t\t\t\t\teventHandler,\n\t\t\t\t\t\t\tonActionHoisted\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t\thoistElemVariables[RETARGETED_ACTION_TYPES] = [\n\t\t\t\t\t\t...hoistElemVariables[RETARGETED_ACTION_TYPES],\n\t\t\t\t\t\tk\n\t\t\t\t\t];\n\t\t\t\t}\n\t\t\t}\n\t\t\thandlers.push(\n\t\t\t\taddActionHandler(resolvedTarget, targetSelector, host, k, capture, eventHandler, onAction)\n\t\t\t);\n\t\t\thostVariables[TARGETED_ACTION_TYPES] = [...hostVariables[TARGETED_ACTION_TYPES], k]; // eslint-disable-line no-param-reassign\n\t\t});\n\t}\n\n\treturn handlers;\n}\n","export function removeActionHandlers(handlers) {\n\tconst {length: actionsHandlersCount} = handlers;\n\n\tfor (let i = 0; i < actionsHandlersCount; i++) handlers[i]();\n\n\treturn [];\n}\n","import log from '../../log';\nimport createUpdateState from './createUpdateState';\nimport createUpdateContext from './createUpdateContext';\nimport createUpdateProperties from './createUpdateProperties';\nimport createDispatch from './createDispatch';\nimport createComponentLogger from './createComponentLogger';\n\nexport default function createHelpers(host, propertyDefs, executionTiming = null, options = {}) {\n\tconst wrappedDispatch = createDispatch(host, executionTiming);\n\tconst dispatch = (...args) => {\n\t\tlog(\n\t\t\t`Please update the view for ${host.tagName.toLowerCase()} from using dispatch as the second argument to an object with dispatch, updateState, and updateProperties`,\n\t\t\t{host, origin: 'createHelpers'}\n\t\t);\n\t\twrappedDispatch(...args);\n\t};\n\tconst logger = createComponentLogger(host, executionTiming);\n\tif (options.presentational) return {dispatch: wrappedDispatch, logger};\n\n\tdispatch.dispatch = wrappedDispatch;\n\tdispatch.updateState = createUpdateState(host, executionTiming);\n\tdispatch.updateProperties = createUpdateProperties(host, propertyDefs, executionTiming);\n\tdispatch.updateContext = createUpdateContext(host, executionTiming);\n\tdispatch.logger = logger;\n\treturn dispatch;\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {createInteractionId, mark, types as metrics} from '@servicenow/ui-metrics';\nimport {produce} from 'immer';\nimport {\n\tisDeclarativeUpdate,\n\tisValidOperation,\n\tisBatch,\n\tresolveUpdate,\n\tisValidOptimisationOperation,\n\tshouldUpdateState\n} from './utils';\nimport * as operations from '../operators/operations';\nimport getHostVariables from '../getHostVariables';\nimport {schedule, types} from '../../scheduler';\nimport deferHelperExecution from './deferHelperExecution';\nimport {STATE, RENDER, COMPONENT_ID, CONDITIONAL_DISPATCH, PROPS} from '../../symbols';\nimport {\n\tHELPERS_SCHEDULED,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tSTATE_UPDATED,\n\tHELPERS_DEFER,\n\tCOMPONENT_STATE_UPDATED,\n\tNOW_AVOID_RENDER_PROP,\n\tSPAN_ATTR_DID_UPDATE,\n\tSPAN_ATTR_SHOULD_RENDER,\n\tSPAN_FOR_UPDATE_STATE,\n\tSPAN_KIND_CLIENT\n} from '../../constants';\nimport log from '../../log';\nimport {emitNowUiEvent, shouldOptOutOfDeepCompareForPage, getSpanOptions} from '../';\nimport {get, isSelectiveEqual} from '@servicenow/ui-internal';\nimport {getConfigItem, configConstants} from '@servicenow/ui-config';\n\nconst {ENABLE_DECLARATIVE_STATE_UPDATE_DEEP_COMPARE} = configConstants;\nlet optOutDeepCompare = shouldOptOutOfDeepCompareForPage('state');\nconst shouldDeepCompareValues = getConfigItem(ENABLE_DECLARATIVE_STATE_UPDATE_DEEP_COMPARE);\nconst {IMMEDIATE, STATE_SET} = types;\nconst {\n\tdeclarativeOperations: {ASSIGN}\n} = operations;\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\n\nwindow.addEventListener(\n\t'popstate',\n\t() => (optOutDeepCompare = shouldOptOutOfDeepCompareForPage('state'))\n);\n\nfunction handleStateUpdate(host, hostVariables, update, interactionId) {\n\tconst resolvedUpdate = resolveUpdate(host, hostVariables, update, interactionId);\n\tconst {\n\t\tshouldUpdate = true,\n\t\toperation = ASSIGN,\n\t\tpath = '',\n\t\tstart,\n\t\tdeleteCount,\n\t\taddItems,\n\t\tshouldRender = true,\n\t\tvalue\n\t} = resolvedUpdate;\n\n\tif (!shouldUpdate || !shouldUpdateState(hostVariables[STATE], resolvedUpdate))\n\t\treturn {didUpdate: false, shouldRender: false};\n\n\t// this an extremly naive implementation. it doesn't account\n\t// for operations like push or pop that you'd want to perform\n\t// before diffing the values\n\tif (shouldDeepCompareValues && !optOutDeepCompare && path && operation && value) {\n\t\tconst nextValue = value;\n\t\tconst currentValue = get(hostVariables[STATE], path);\n\t\tif (isSelectiveEqual(currentValue, nextValue)) return {didUpdate: false, shouldRender: false};\n\t}\n\n\tconst previousState = hostVariables[STATE];\n\tconst props = hostVariables[PROPS];\n\tconst avoidRender = props && props[NOW_AVOID_RENDER_PROP];\n\tif (avoidRender && isValidOptimisationOperation(operation)) {\n\t\ttry {\n\t\t\tconst target = isDeclarativeUpdate(resolvedUpdate) ? value : resolvedUpdate;\n\t\t\tconst source = path ? get(previousState, path) : previousState;\n\t\t\tif (isSelectiveEqual(source, target)) return {didUpdate: false, shouldRender: false};\n\t\t} catch (error) {\n\t\t\tlog('Error while performing same state re-render optimisation pre-validation', {\n\t\t\t\terror,\n\t\t\t\thost,\n\t\t\t\torigin: 'handleStateUpdate'\n\t\t\t});\n\t\t}\n\t}\n\n\tconst nextState = produce(hostVariables[STATE] || {}, draftState => {\n\t\tif (operation === 'replace') return value;\n\n\t\tif (!isValidOperation(operation)) {\n\t\t\tlog(`Invalid update state operation: ${operation}`, {host, origin: 'handleStateUpdate'});\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\toperations[operation](draftState, {\n\t\t\t\tpath,\n\t\t\t\tvalue: isDeclarativeUpdate(resolvedUpdate) ? value : resolvedUpdate,\n\t\t\t\tstart,\n\t\t\t\tdeleteCount,\n\t\t\t\taddItems: Array.isArray(addItems) ? addItems : []\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlog('Error while performing state update', {error, host, origin: 'handleStateUpdate'});\n\t\t}\n\t});\n\n\tif (nextState === previousState) return {didUpdate: false, shouldRender: false};\n\n\thostVariables[STATE] = nextState; // eslint-disable-line no-param-reassign\n\treturn {didUpdate: true, shouldRender};\n}\n\nfunction handleStateUpdateBatch(host, hostVariables, batch, interactionId) {\n\treturn batch.reduce(\n\t\t(acc, update) => {\n\t\t\tconst {shouldRender, didUpdate} = handleStateUpdate(\n\t\t\t\thost,\n\t\t\t\thostVariables,\n\t\t\t\tupdate,\n\t\t\t\tinteractionId\n\t\t\t);\n\n\t\t\tconst result = {...acc};\n\t\t\tif (didUpdate) result.didUpdate = true;\n\n\t\t\tif (shouldRender) result.shouldRender = true;\n\n\t\t\treturn result;\n\t\t},\n\t\t{didUpdate: false, shouldRender: false}\n\t);\n}\n\nconst resolveUpdateForMark = update => (typeof update === 'function' ? 'FUNCTION' : update);\nconst transformUpdateForMark = (update, isBatch) => {\n\tif (isBatch) return update.map(resolveUpdateForMark);\n\n\treturn resolveUpdateForMark(update);\n};\n\nexport default function createUpdateState(host, executionTiming) {\n\tconst hostVariables = getHostVariables(host);\n\n\treturn function updateState(update, options = {}) {\n\t\tconst interactionId = options.interactionId || createInteractionId();\n\t\tconst {span: activeSpan} = options;\n\t\tif (executionTiming === HELPERS_DEFER)\n\t\t\tmark(host, interactionId, metrics.DEFER, {deferred: metrics.UPDATE_STATE});\n\t\tconst meta = {el: host, interactionId};\n\t\tif (activeSpan && isValidTraceId(activeSpan.traceId)) meta.span = activeSpan;\n\t\tdeferHelperExecution(\n\t\t\texecutionTiming,\n\t\t\t() => {\n\t\t\t\t// TODO: Remove this immediate option for a better scheduling alternative\n\t\t\t\t// https://code.devsnc.com/gist/dylan-mozlowski/07bf0ab13b2c8a12f0cc6e59bf4cf911\n\t\t\t\tconst {\n\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]:\n\t\t\t\t\t\toptionallyImmediate = false\n\t\t\t\t} = options;\n\t\t\t\tconst updateStateSpan = trace(SPAN_FOR_UPDATE_STATE, {\n\t\t\t\t\t...getSpanOptions(host),\n\t\t\t\t\ttraceId: meta.span && meta.span.traceId,\n\t\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t\t...(meta.span && isValidTraceId(meta.span.traceId) && {parentSpan: meta.span})\n\t\t\t\t});\n\t\t\t\tschedule({\n\t\t\t\t\tfn() {\n\t\t\t\t\t\tconst resolvedUpdate = resolveUpdate(host, hostVariables, update, interactionId);\n\t\t\t\t\t\tconst shouldBatch = isBatch(resolvedUpdate);\n\n\t\t\t\t\t\tmark(host, interactionId, metrics.UPDATE_STATE, {\n\t\t\t\t\t\t\tupdate: transformUpdateForMark(resolvedUpdate, shouldBatch)\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst previousState = hostVariables[STATE];\n\t\t\t\t\t\tconst updateHandler = shouldBatch ? handleStateUpdateBatch : handleStateUpdate;\n\t\t\t\t\t\tconst {didUpdate, shouldRender} = updateHandler(\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\thostVariables,\n\t\t\t\t\t\t\tresolvedUpdate,\n\t\t\t\t\t\t\tinteractionId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!didUpdate) {\n\t\t\t\t\t\t\tif (updateStateSpan) {\n\t\t\t\t\t\t\t\tupdateStateSpan.setAttribute(SPAN_ATTR_DID_UPDATE, false);\n\t\t\t\t\t\t\t\tupdateStateSpan.end();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\temitNowUiEvent(STATE_UPDATED, {\n\t\t\t\t\t\t\tcomponentId: hostVariables[COMPONENT_ID],\n\t\t\t\t\t\t\tpreviousState,\n\t\t\t\t\t\t\tnextState: hostVariables[STATE]\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (shouldRender) {\n\t\t\t\t\t\t\tif (updateStateSpan) updateStateSpan.setAttribute(SPAN_ATTR_SHOULD_RENDER, true);\n\t\t\t\t\t\t\thost[RENDER](interactionId, metrics.UPDATE_STATE, {\n\t\t\t\t\t\t\t\tupdate: transformUpdateForMark(resolvedUpdate, shouldBatch),\n\t\t\t\t\t\t\t\tactiveSpan: updateStateSpan\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (updateStateSpan) updateStateSpan.setAttribute(SPAN_ATTR_SHOULD_RENDER, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\thostVariables[CONDITIONAL_DISPATCH](\n\t\t\t\t\t\t\tCOMPONENT_STATE_UPDATED,\n\t\t\t\t\t\t\t{previousState, update},\n\t\t\t\t\t\t\t{internal: true, span: updateStateSpan}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (updateStateSpan) updateStateSpan.end();\n\t\t\t\t\t},\n\t\t\t\t\tmeta: {...meta, span: updateStateSpan},\n\t\t\t\t\ttype: executionTiming !== HELPERS_SCHEDULED || optionallyImmediate ? IMMEDIATE : STATE_SET\n\t\t\t\t});\n\t\t\t},\n\t\t\tmeta\n\t\t);\n\t};\n}\n",null,null,null,null,null,null,null,"const {\n\tdeclarativeOperations: {SET, ASSIGN, MERGE}\n} = operations;\nimport * as operations from '../operators/operations';\nimport getStatePropsContext from './getStatePropsContext';\nimport {get, isPlainObject} from '@servicenow/ui-internal';\n\nconst isEmptyStateUpdate = value => {\n\treturn (\n\t\t// (value instanceof Map && value.size === 0) ||\n\t\tisPlainObject(value) && Object.keys(value).length === 0\n\t);\n};\n\nfunction isPrimitive(value) {\n\tconst type = typeof value;\n\tif (type === 'object' || type === 'function') return false;\n\n\tif (type === 'string') return true;\n\tif (type === 'bigint') return true;\n\tif (type === 'boolean') return true;\n\tif (type === 'number') return true;\n\n\treturn false;\n}\n\nconst isPrimitiveOrNull = value => isPrimitive(value) || value === null;\n\nexport function isDeclarativeUpdate(update = {}) {\n\tconst {operation, path, value} = update;\n\treturn operation && (path || value);\n}\n\nexport function isValidOperation(operation) {\n\treturn operations[operation] !== undefined;\n}\n\nexport function isBatch(update) {\n\treturn Array.isArray(update) && update.every(u => isDeclarativeUpdate(u) || isUpdater(u));\n}\n\nexport function isUpdater(update) {\n\treturn typeof update === 'function';\n}\n\nexport function resolveUpdate(host, hostVariables, update, interactionId) {\n\tif (!isUpdater(update)) return update;\n\n\tconst statePropsContext = getStatePropsContext(host, interactionId);\n\treturn update(statePropsContext) || statePropsContext;\n}\n\nexport function isValidOptimisationOperation(operation) {\n\treturn operation && [SET, ASSIGN, MERGE].includes(operation);\n}\n\nexport function shouldUpdateState(currentState, update) {\n\tconst declarativeUpdate = !!isDeclarativeUpdate(update);\n\tconst {path = '', value, operation} = update;\n\tif (declarativeUpdate && operation !== SET && operation !== ASSIGN && operation !== MERGE)\n\t\treturn true;\n\n\tconst updateKeys = declarativeUpdate ? null : Object.keys(update);\n\tif (updateKeys === null || updateKeys.length === 1) {\n\t\tconst currentValue = declarativeUpdate ? get(currentState, path) : currentState[updateKeys[0]];\n\t\tconst nextValue = declarativeUpdate ? value : update[updateKeys[0]];\n\t\tif (\n\t\t\tisPrimitiveOrNull(nextValue) &&\n\t\t\tisPrimitiveOrNull(currentValue) &&\n\t\t\tnextValue === currentValue\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isEmptyStateUpdate(nextValue) && isEmptyStateUpdate(currentValue)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (isPlainObject(currentValue) && isPlainObject(nextValue)) {\n\t\t\tconst nextValueKeys = Object.keys(nextValue);\n\t\t\tconst currentValueKeys = Object.keys(currentValue);\n\n\t\t\tif (nextValueKeys.length <= 2 && nextValueKeys.length === currentValueKeys.length) {\n\t\t\t\tconst currentValue1 = currentValue[nextValueKeys[0]];\n\t\t\t\tconst currentValue2 = currentValue[nextValueKeys[1]];\n\t\t\t\tconst nextValue1 = nextValue[nextValueKeys[0]];\n\t\t\t\tconst nextValue2 = nextValue[nextValueKeys[1]];\n\n\t\t\t\tif (\n\t\t\t\t\tdeclarativeUpdate &&\n\t\t\t\t\toperation === SET &&\n\t\t\t\t\t(nextValueKeys[0] !== currentValueKeys[0] || nextValueKeys[1] !== currentValueKeys[1])\n\t\t\t\t)\n\t\t\t\t\treturn true;\n\n\t\t\t\tif (\n\t\t\t\t\tisPrimitiveOrNull(nextValue1) &&\n\t\t\t\t\tisPrimitiveOrNull(currentValue1) &&\n\t\t\t\t\tnextValue1 === currentValue1 &&\n\t\t\t\t\tisPrimitiveOrNull(nextValue2) &&\n\t\t\t\t\tisPrimitiveOrNull(currentValue2) &&\n\t\t\t\t\tnextValue2 === currentValue2\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn true;\n}\n","import getHostVariables from '../getHostVariables';\nimport {STATE, CONTEXT} from '../../symbols';\n\nexport default function getStatePropsContext(host, interactionId) {\n\tconst hostVariables = getHostVariables(host);\n\tconst properties = host.getResolvedProperties(interactionId);\n\tconst state = hostVariables[STATE] || {};\n\tconst context = hostVariables[CONTEXT];\n\n\treturn {properties, state, context};\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport getStatePropsContext from './getStatePropsContext';\nimport {createInteractionId, mark, types as metrics} from '@servicenow/ui-metrics';\nimport {produce} from 'immer';\nimport {isValidOperation, isBatch, isUpdater} from './utils';\nimport * as operations from '../operators/operations';\nimport getHostVariables from '../getHostVariables';\nimport {schedule, types} from '../../scheduler';\nimport deferHelperExecution from './deferHelperExecution';\nimport {\n\tHELPERS_SCHEDULED,\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tHELPERS_DEFER,\n\tSPAN_FOR_UPDATE_CONTEXT,\n\tSPAN_KIND_CLIENT,\n\tSPAN_ATTR_UPDATE_CONTEXT_SHOULD_BATCH,\n\tSPAN_ATTR_DID_UPDATE,\n\tSPAN_ATTR_SHOULD_RENDER\n} from '../../constants';\nimport log from '../../log';\nimport renderContextConsumers from '../../context/renderContextConsumers';\nimport {getContext, setContext} from '../../context/contexts';\nimport {getSpanOptions} from '../';\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\nconst {IMMEDIATE, STATE_SET} = types;\nconst {\n\tdeclarativeOperations: {ASSIGN}\n} = operations;\n\nconst resolveUpdate = (host, hostVariables, update, interactionId) => {\n\tif (!isUpdater(update)) return update;\n\n\tconst statePropsContext = getStatePropsContext(host, interactionId);\n\treturn update(statePropsContext);\n};\n\nfunction handleContextUpdate(host, hostVariables, update, interactionId) {\n\tconst resolvedUpdate = resolveUpdate(host, hostVariables, update, interactionId);\n\n\tif (!resolvedUpdate) return {didUpdate: false, shouldRender: false};\n\n\tconst {context: contextKey} = resolvedUpdate;\n\tconst previousContext = getContext(contextKey);\n\tconst {\n\t\tshouldUpdate = true,\n\t\toperation = previousContext !== null && typeof previousContext === 'object' ? ASSIGN : '',\n\t\tpath = '',\n\t\tstart,\n\t\tdeleteCount,\n\t\taddItems,\n\t\tshouldRender = true,\n\t\tvalue\n\t} = resolvedUpdate;\n\n\tif (!shouldUpdate) return {didUpdate: false, shouldRender: false};\n\n\tconst nextContext = produce(getContext(contextKey) || {}, draftState => {\n\t\tif (!operation) return value;\n\n\t\tif (!isValidOperation(operation)) {\n\t\t\tlog(`Invalid update context operation: ${operation}`, {host, origin: 'handleContextUpdate'});\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\toperations[operation](draftState, {\n\t\t\t\tpath,\n\t\t\t\tvalue,\n\t\t\t\tstart,\n\t\t\t\tdeleteCount,\n\t\t\t\taddItems: Array.isArray(addItems) ? addItems : []\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tlog('Error while performing context update', {error, host, origin: 'handleContextUpdate'});\n\t\t}\n\t});\n\n\tif (nextContext === previousContext) return {didUpdate: false, shouldRender: false};\n\n\tsetContext(contextKey, nextContext);\n\treturn {didUpdate: true, shouldRender};\n}\n\nfunction handleContextUpdateBatch(host, hostVariables, batch, interactionId) {\n\treturn batch.reduce(\n\t\t(acc, update) => {\n\t\t\tconst {shouldRender, didUpdate} = handleContextUpdate(\n\t\t\t\thost,\n\t\t\t\thostVariables,\n\t\t\t\tupdate,\n\t\t\t\tinteractionId\n\t\t\t);\n\n\t\t\tconst result = {...acc};\n\t\t\tif (didUpdate) result.didUpdate = true;\n\n\t\t\tif (shouldRender) result.shouldRender = true;\n\n\t\t\treturn result;\n\t\t},\n\t\t{didUpdate: false, shouldRender: false}\n\t);\n}\n\nconst resolveUpdateForMark = update => (update === 'function' ? 'FUNCTION' : update);\nconst transformUpdateForMark = (update, isBatch) => {\n\tif (isBatch) return update.map(resolveUpdateForMark);\n\n\treturn resolveUpdateForMark(update);\n};\n\nexport default function createUpdateContext(host, executionTiming) {\n\tconst hostVariables = getHostVariables(host);\n\n\treturn function updateContext(update, options = {}) {\n\t\tconst interactionId = options.interactionId || createInteractionId();\n\t\tconst activeSpan = options.span;\n\t\tif (executionTiming === HELPERS_DEFER)\n\t\t\tmark(host, interactionId, metrics.DEFER, {deferred: metrics.UPDATE_CONTEXT});\n\t\tconst meta = {el: host, interactionId, span: activeSpan};\n\t\tdeferHelperExecution(\n\t\t\texecutionTiming,\n\t\t\t() => {\n\t\t\t\t// TODO: Remove this immediate option for a better scheduling alternative\n\t\t\t\t// https://code.devsnc.com/gist/dylan-mozlowski/07bf0ab13b2c8a12f0cc6e59bf4cf911\n\t\t\t\tconst {\n\t\t\t\t\t[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED]:\n\t\t\t\t\t\toptionallyImmediate = false\n\t\t\t\t} = options;\n\t\t\t\tconst updateContextSpan = trace(SPAN_FOR_UPDATE_CONTEXT, {\n\t\t\t\t\t...getSpanOptions(host),\n\t\t\t\t\ttraceId: meta.span && meta.span.traceId,\n\t\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t\t...(meta.span && isValidTraceId(meta.span.traceId) && {parentSpan: meta.span})\n\t\t\t\t});\n\t\t\t\tschedule({\n\t\t\t\t\tfn() {\n\t\t\t\t\t\tconst shouldBatch = isBatch(update);\n\t\t\t\t\t\tconst transformedUpdate = transformUpdateForMark(update, shouldBatch);\n\t\t\t\t\t\tmark(host, interactionId, metrics.UPDATE_CONTEXT, {\n\t\t\t\t\t\t\tupdate: transformedUpdate\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (updateContextSpan)\n\t\t\t\t\t\t\tupdateContextSpan.setAttribute(SPAN_ATTR_UPDATE_CONTEXT_SHOULD_BATCH, shouldBatch);\n\t\t\t\t\t\tconst updateHandler = shouldBatch ? handleContextUpdateBatch : handleContextUpdate;\n\t\t\t\t\t\tconst {didUpdate, shouldRender} = updateHandler(\n\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\thostVariables,\n\t\t\t\t\t\t\tupdate,\n\t\t\t\t\t\t\tinteractionId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!didUpdate) {\n\t\t\t\t\t\t\tif (updateContextSpan) {\n\t\t\t\t\t\t\t\tupdateContextSpan.setAttribute(SPAN_ATTR_DID_UPDATE, false);\n\t\t\t\t\t\t\t\tupdateContextSpan.end();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (shouldRender) {\n\t\t\t\t\t\t\tconst contexts = shouldBatch ? update.map(({context}) => context) : [update.context];\n\t\t\t\t\t\t\tfor (let i = 0; i < contexts.length; i++) {\n\t\t\t\t\t\t\t\trenderContextConsumers(contexts[i], interactionId, {\n\t\t\t\t\t\t\t\t\tupdate: transformUpdateForMark(update, shouldBatch),\n\t\t\t\t\t\t\t\t\tactiveSpan: updateContextSpan\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (updateContextSpan) updateContextSpan.setAttribute(SPAN_ATTR_SHOULD_RENDER, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdateContextSpan && updateContextSpan.end();\n\t\t\t\t\t},\n\t\t\t\t\tmeta: {...meta, span: updateContextSpan},\n\t\t\t\t\ttype: executionTiming !== HELPERS_SCHEDULED || optionallyImmediate ? IMMEDIATE : STATE_SET\n\t\t\t\t});\n\t\t\t},\n\t\t\tmeta\n\t\t);\n\t};\n}\n","import {getConsumers} from './consumers';\nimport {RENDER} from '../symbols';\nimport {types as metrics} from '@servicenow/ui-metrics';\n\nexport default function renderContextConsumers(ctxKey, interactionId, details) {\n\tconst consumers = getConsumers(ctxKey);\n\n\tfor (const consumer of consumers) {\n\t\tconsumer[RENDER](interactionId, metrics.UPDATE_CONTEXT, details);\n\t}\n}\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {mark, types as metrics} from '@servicenow/ui-metrics';\nimport log from '../../log';\nimport * as operations from '../operators/operations';\nimport {splitPath} from '@servicenow/ui-internal';\nimport {schedule, types} from '../../scheduler';\nimport {properties as parseProperties} from '../parse';\nimport getHostVariables from '../getHostVariables';\nimport getStatePropsContext from './getStatePropsContext';\nimport deferHelperExecution from './deferHelperExecution';\nimport {\n\tHELPERS_SCHEDULED as HELPERS_SCHEDULED_CONST,\n\tHELPERS_DEFER,\n\tSPAN_FOR_UPDATE_PROPERTIES,\n\tSPAN_ATTR_UPDATE_PROPERTIES_PROPNAME,\n\tSPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE,\n\tSPAN_ATTR_UPDATE_PROPERTIES_SHOULD_UPDATE,\n\tSPAN_KIND_CLIENT\n} from '../../constants';\nimport {HELPERS_SCHEDULED, SET_PROPERTY, PROPS} from '../../symbols';\nimport quickEquals from './quickEquals';\nimport {getSpanOptions} from '../';\n\nconst {IMMEDIATE, PROPERTY_SET} = types;\nconst {\n\tdeclarativeOperations: {ASSIGN}\n} = operations;\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\n\nconst setProperties = (host, properties, propertyDefs, options) => {\n\tconst {interactionId, span: activeSpan} = options;\n\tconst hostVariables = getHostVariables(host);\n\tconst {dispatch} = hostVariables[HELPERS_SCHEDULED];\n\tconst parsedProperties = parseProperties(properties, propertyDefs, {host, dispatch});\n\tfor (const k in parsedProperties) {\n\t\t// for backwards compatibility an undefined must still be set on the instance\n\t\tif (!propertyDefs.hasOwnProperty(k)) {\n\t\t\thost[k] = parsedProperties[k]; // eslint-disable-line no-param-reassign\n\t\t\tif (process.env.NODE_ENV === 'development') {\n\t\t\t\tlog(\n\t\t\t\t\t`${host.tagName.toLowerCase()} is missing a property definition for \"${k}\".  Properties set with missing definitions will not be available to the view or action handlers.`,\n\t\t\t\t\t{host, origin: 'setProperties'}\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\t// FIXME: Not handling cases where component starts with no old props\n\t\t\tconst old = hostVariables[PROPS][k];\n\t\t\tconst current = parsedProperties[k];\n\t\t\tif (quickEquals(old, current)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (activeSpan) {\n\t\t\t\tactiveSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPNAME, k);\n\t\t\t\tif (typeof current !== 'object') {\n\t\t\t\t\tactiveSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE, current);\n\t\t\t\t}\n\t\t\t\thost[SET_PROPERTY](k, parsedProperties[k], true, {interactionId, span: activeSpan});\n\t\t\t}\n\t\t\t// eslint-disable-line no-param-reassign\n\t\t\telse host[SET_PROPERTY](k, parsedProperties[k], true, {interactionId}); // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n\nexport default function createUpdateProperties(host, propertyDefs, executionTiming) {\n\treturn function updateProperties(update, options = {}) {\n\t\tconst {interactionId, span: activeSpan} = options;\n\t\tif (executionTiming === HELPERS_DEFER) {\n\t\t\tmark(host, interactionId, metrics.DEFER, {deferred: metrics.UPDATE_PROPERTIES});\n\t\t}\n\n\t\tconst meta = {el: host, interactionId};\n\t\tif (activeSpan && isValidTraceId(activeSpan.traceId)) {\n\t\t\tmeta.span = activeSpan;\n\t\t}\n\n\t\tdeferHelperExecution(\n\t\t\texecutionTiming,\n\t\t\t() => {\n\t\t\t\tconst updatePropSpan = trace(SPAN_FOR_UPDATE_PROPERTIES, {\n\t\t\t\t\t...getSpanOptions(host),\n\t\t\t\t\ttraceId: meta.span && meta.span.traceId,\n\t\t\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t\t\t...(meta.span && isValidTraceId(meta.span.traceId) && {parentSpan: meta.span})\n\t\t\t\t});\n\t\t\t\tschedule({\n\t\t\t\t\tfn() {\n\t\t\t\t\t\tmark(host, interactionId, metrics.UPDATE_PROPERTIES, {\n\t\t\t\t\t\t\tupdate: typeof update === 'function' ? 'DECLARATIVE' : 'OBJECT'\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (typeof update === 'function') {\n\t\t\t\t\t\t\tconst stateProps = getStatePropsContext(host, interactionId);\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tshouldUpdate = true,\n\t\t\t\t\t\t\t\toperation = ASSIGN,\n\t\t\t\t\t\t\t\tpath,\n\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\tstart,\n\t\t\t\t\t\t\t\tdeleteCount,\n\t\t\t\t\t\t\t\taddItems\n\t\t\t\t\t\t\t} = update(stateProps);\n\n\t\t\t\t\t\t\tif (shouldUpdate) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst propertyPath = splitPath(path);\n\t\t\t\t\t\t\t\t\tconst propertyLen = propertyPath.length;\n\t\t\t\t\t\t\t\t\tconst [name] = propertyPath;\n\t\t\t\t\t\t\t\t\tconst propertyValue = host[name];\n\t\t\t\t\t\t\t\t\tif (propertyValue === null || typeof propertyValue !== 'object') {\n\t\t\t\t\t\t\t\t\t\tif (updatePropSpan) {\n\t\t\t\t\t\t\t\t\t\t\tupdatePropSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPNAME, name);\n\t\t\t\t\t\t\t\t\t\t\tupdatePropSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_PROPVALUE, value);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tsetProperties(host, {[name]: value}, propertyDefs, {\n\t\t\t\t\t\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\t\t\t\t\t\t...(updatePropSpan &&\n\t\t\t\t\t\t\t\t\t\t\t\tisValidTraceId(updatePropSpan.traceId) && {span: updatePropSpan})\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tconst propertyValue = {};\n\t\t\t\t\t\t\t\t\t\tlet pvRef = propertyValue;\n\t\t\t\t\t\t\t\t\t\tlet hostRef = host;\n\t\t\t\t\t\t\t\t\t\tfor (let i = 0; i < propertyLen; i++) {\n\t\t\t\t\t\t\t\t\t\t\tconst name = propertyPath[i];\n\t\t\t\t\t\t\t\t\t\t\tconst value = hostRef[name];\n\t\t\t\t\t\t\t\t\t\t\tif (value === null || typeof value !== 'object') break;\n\t\t\t\t\t\t\t\t\t\t\tif (Array.isArray(value)) pvRef[name] = value.slice();\n\t\t\t\t\t\t\t\t\t\t\telse pvRef[name] = {...value};\n\n\t\t\t\t\t\t\t\t\t\t\tpvRef = pvRef[name];\n\t\t\t\t\t\t\t\t\t\t\thostRef = hostRef[name];\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\toperations[operation](propertyValue, {\n\t\t\t\t\t\t\t\t\t\t\tpath: propertyLen ? propertyPath : [],\n\t\t\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t\t\t\tstart,\n\t\t\t\t\t\t\t\t\t\t\tdeleteCount,\n\t\t\t\t\t\t\t\t\t\t\taddItems: Array.isArray(addItems) ? addItems : []\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tsetProperties(host, propertyValue, propertyDefs, {\n\t\t\t\t\t\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\t\t\t\t\t\t...(updatePropSpan &&\n\t\t\t\t\t\t\t\t\t\t\t\tisValidTraceId(updatePropSpan.traceId) && {span: updatePropSpan})\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (updatePropSpan) updatePropSpan.end();\n\t\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t\tupdatePropSpan.recordException(error);\n\t\t\t\t\t\t\t\t\tlog('Error while performing properties update', {\n\t\t\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t\t\t\thost,\n\t\t\t\t\t\t\t\t\t\torigin: 'updateProperties'\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tif (updatePropSpan) {\n\t\t\t\t\t\t\t\t\tupdatePropSpan.setAttribute(SPAN_ATTR_UPDATE_PROPERTIES_SHOULD_UPDATE, false);\n\t\t\t\t\t\t\t\t\tupdatePropSpan.end();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (updatePropSpan) updatePropSpan.end();\n\t\t\t\t\t\t\tsetProperties(host, update, propertyDefs, {\n\t\t\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\t\t\t...(updatePropSpan &&\n\t\t\t\t\t\t\t\t\tisValidTraceId(updatePropSpan.traceId) && {span: updatePropSpan})\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\ttype: executionTiming !== HELPERS_SCHEDULED_CONST ? IMMEDIATE : PROPERTY_SET,\n\t\t\t\t\tmeta: {...meta, span: updatePropSpan}\n\t\t\t\t});\n\t\t\t},\n\t\t\tmeta\n\t\t);\n\t};\n}\n","import {applyInteractionId, mark, getInteractionId, types as metrics} from '@servicenow/ui-metrics';\nimport * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport getStatePropsContext from './getStatePropsContext';\nimport deferHelperExecution from './deferHelperExecution';\nimport {\n\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED,\n\tHELPERS_SCHEDULED,\n\tHELPERS_DEFER,\n\tSPAN_FOR_DISPATCH,\n\tSPAN_KIND_CLIENT,\n\tSPAN_ATTR_DISPATCH_ACTION_TYPE,\n\tSPAN_ATTR_DISPATCH_SHOULD_DISPATCH\n} from '../../constants';\nimport {normalizeActionMeta} from '../normalizeActionMeta';\nimport {getSpanOptions} from '../';\nimport {INTERNAL_HOST_DISPATCH} from '../../symbols';\n\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\nconst wrapDispatch = (host, shouldWrap) => {\n\tif (shouldWrap === HELPERS_SCHEDULED) return host.dispatch;\n\n\treturn function dispatch(type, payload, meta = {}, error) {\n\t\tmeta[SCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED] = true; // eslint-disable-line no-param-reassign\n\t\tmeta[INTERNAL_HOST_DISPATCH] = true; // eslint-disable-line no-param-reassign\n\t\treturn host.dispatch(type, payload, meta, error);\n\t};\n};\n\nexport default function createDispatch(host, executionTiming) {\n\treturn function dispatch(typeOrFn, payload, meta = {}, error) {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tmeta = normalizeActionMeta(meta, {host});\n\t\tconst interactionId = getInteractionId(meta);\n\t\tconst dispatchSpan = trace(SPAN_FOR_DISPATCH, {\n\t\t\t...getSpanOptions(host),\n\t\t\ttraceId: meta.span && meta.span.traceId,\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\tparentSpan: meta.span && isValidTraceId(meta.span.traceId) ? meta.span : null\n\t\t});\n\t\tif (executionTiming === HELPERS_DEFER)\n\t\t\tmark(host, interactionId, metrics.DEFER, {deferred: metrics.DISPATCH, type: typeOrFn});\n\n\t\tdeferHelperExecution(\n\t\t\texecutionTiming,\n\t\t\t() => {\n\t\t\t\tconst wrappedDispatch = wrapDispatch(host, executionTiming);\n\t\t\t\tif (typeof typeOrFn === 'function') {\n\t\t\t\t\tconst statePropsContext = getStatePropsContext(host, interactionId);\n\t\t\t\t\tconst {\n\t\t\t\t\t\ttype,\n\t\t\t\t\t\tpayload,\n\t\t\t\t\t\tmeta = {},\n\t\t\t\t\t\terror,\n\t\t\t\t\t\tshouldDispatch = true\n\t\t\t\t\t} = typeOrFn(statePropsContext);\n\t\t\t\t\tdispatchSpan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, type);\n\t\t\t\t\tif (isValidTraceId(dispatchSpan.traceId)) meta.span = dispatchSpan;\n\t\t\t\t\tif (shouldDispatch) {\n\t\t\t\t\t\tapplyInteractionId(meta);\n\t\t\t\t\t\tdispatchSpan.end();\n\t\t\t\t\t\twrappedDispatch(type, payload, meta, error);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdispatchSpan.setAttribute(SPAN_ATTR_DISPATCH_SHOULD_DISPATCH, false);\n\t\t\t\t\t\tdispatchSpan.end();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tapplyInteractionId(meta);\n\t\t\t\t\tif (isValidTraceId(dispatchSpan.traceId)) meta.span = dispatchSpan;\n\t\t\t\t\tdispatchSpan.setAttribute(SPAN_ATTR_DISPATCH_ACTION_TYPE, typeOrFn);\n\t\t\t\t\tdispatchSpan.end();\n\t\t\t\t\twrappedDispatch(typeOrFn, payload, meta, error);\n\t\t\t\t}\n\t\t\t},\n\t\t\t{...meta, el: host, interactionId, span: dispatchSpan}\n\t\t);\n\t};\n}\n","import {toLower} from '@servicenow/ui-internal';\nimport {\n\tSEISMIC_HOIST_TAG_NAME,\n\tHOIST_ATTR,\n\tNOW_HOIST_ATTR,\n\tCOMPONENT_ID_ATTRIBUTE,\n\tHOIST_APPEND_TO_ATTR,\n\tHOIST_APPEND_TO_PROP,\n\tNOW_HOIST_APPEND_TO_ATTR,\n\tNOW_HOIST_APPEND_TO_PROP,\n\tCOMPONENT_NAME_ATTR,\n\tHOIST_FIRST_SCROLL_PARENT,\n\tNOW_HOIST_PREPEND_TO_PROP,\n\tNOW_HOIST_PREPEND_TO_ATTR,\n\tNOW_HOIST_PROP,\n\tNOW_MODE_ATTR,\n\tNOW_COMPONENT_NAME_ATTR\n} from './constants';\nimport {\n\tROOT_NODE,\n\tATTACHED_ROOT_NODE,\n\tCONFIG,\n\tVARIABLES,\n\tCOMPONENT_ID,\n\tPROPERTY_DEFS,\n\tPROPS,\n\tRETARGETED_ACTION_TYPES,\n\tGET_RESOLVED_PROPERTY\n} from './symbols';\nimport {isHoisted, getHoistTarget, getHostVariables} from './utils';\n\nclass SeismicHoistElement extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t\tconst variables = {};\n\t\tthis[VARIABLES] = variables;\n\n\t\tvariables[RETARGETED_ACTION_TYPES] = [];\n\t}\n}\n\nconst hoistTagName = SEISMIC_HOIST_TAG_NAME.toLowerCase();\nwindow.customElements &&\n\t!window.customElements.get(hoistTagName) &&\n\twindow.customElements.define(hoistTagName, SeismicHoistElement);\n\nconst cast = (sourceEl, name, value) =>\n\tsourceEl[VARIABLES][PROPERTY_DEFS][name] && sourceEl[VARIABLES][PROPERTY_DEFS][name].unstableParse\n\t\t? JSON.stringify(sourceEl[VARIABLES][PROPS][name])\n\t\t: value;\n\nexport function createTargetAttr(tagName, componentId) {\n\treturn `${toLower(tagName)}[component-id=\"${componentId}\"]`;\n}\n\nexport function createTarget(sourceEl) {\n\tconst targetEl = document.createElement(hoistTagName);\n\tconst sourceVariables = getHostVariables(sourceEl);\n\tconst targetVariables = getHostVariables(targetEl);\n\tconst {\n\t\t[CONFIG]: {shadowRootOptions}\n\t} = sourceVariables;\n\ttargetVariables[ATTACHED_ROOT_NODE] = targetEl.attachShadow(shadowRootOptions);\n\ttargetEl.setAttribute(\n\t\t'target-for',\n\t\tcreateTargetAttr(sourceEl.tagName, sourceVariables[COMPONENT_ID])\n\t);\n\tconst {attributes} = sourceEl;\n\tconst {length: attributeCount} = sourceEl.attributes;\n\tfor (let i = 0; i < attributeCount; i++) {\n\t\tconst {name, value} = attributes[i];\n\t\tif (!omitAttrs.includes(name)) targetEl.setAttribute(name, cast(sourceEl, name, value));\n\t}\n\n\ttargetEl.sourceElement = sourceEl;\n\treturn targetEl;\n}\n\nexport const omitAttrs = [\n\tNOW_MODE_ATTR,\n\tNOW_COMPONENT_NAME_ATTR,\n\tNOW_HOIST_ATTR,\n\tNOW_HOIST_APPEND_TO_ATTR,\n\tNOW_HOIST_PREPEND_TO_ATTR,\n\tHOIST_ATTR,\n\tHOIST_APPEND_TO_ATTR,\n\tCOMPONENT_ID_ATTRIBUTE,\n\tCOMPONENT_NAME_ATTR\n];\n\nconst getParent = element => {\n\tconst parent = element.parentNode;\n\tif (parent && parent.host) return parent.host;\n\n\treturn parent;\n};\n\nconst overflowRegex = /(auto|scroll)/;\nconst getFirstScrollParent = sourceEl => {\n\tlet style = getComputedStyle(sourceEl);\n\tconst excludeStaticParent = style.position === 'absolute';\n\tlet parent = sourceEl;\n\n\tif (style.position === 'fixed') return document.body;\n\n\twhile ((parent = getParent(parent)) !== null) {\n\t\tif (parent === document.body) break;\n\n\t\tstyle = getComputedStyle(parent);\n\t\tif (excludeStaticParent && style.position === 'static') continue;\n\n\t\tif (overflowRegex.test(style.overflow + style.overflowY + style.overflowX)) return parent;\n\t}\n\n\treturn document.body;\n};\n\nconst shouldPrepend = sourceEl =>\n\tsourceEl[GET_RESOLVED_PROPERTY](NOW_HOIST_PREPEND_TO_PROP) ||\n\tsourceEl.getAttribute(NOW_HOIST_PREPEND_TO_ATTR);\n\nconst shouldAppend = sourceEl =>\n\tsourceEl[GET_RESOLVED_PROPERTY](HOIST_APPEND_TO_PROP) ||\n\tsourceEl.getAttribute(HOIST_APPEND_TO_ATTR) ||\n\tsourceEl[GET_RESOLVED_PROPERTY](NOW_HOIST_APPEND_TO_PROP) ||\n\tsourceEl.getAttribute(NOW_HOIST_APPEND_TO_ATTR);\n\nconst getAppendToEl = sourceEl => {\n\t// TODO: log and warn about legacy attributes, props\n\tconst hoistAppendToSelector = shouldAppend(sourceEl);\n\tconst hoistPrependToSelector = shouldPrepend(sourceEl);\n\n\tif (\n\t\thoistAppendToSelector === HOIST_FIRST_SCROLL_PARENT ||\n\t\thoistPrependToSelector === HOIST_FIRST_SCROLL_PARENT\n\t)\n\t\treturn getFirstScrollParent(sourceEl);\n\n\tconst selectorOrNode = hoistPrependToSelector || hoistAppendToSelector;\n\tif (!selectorOrNode) return document.body;\n\n\tconst node =\n\t\ttypeof selectorOrNode === 'string'\n\t\t\t? document.querySelector(selectorOrNode)\n\t\t\t: selectorOrNode instanceof HTMLElement\n\t\t\t? selectorOrNode\n\t\t\t: undefined;\n\n\treturn node || document.body;\n};\n\nexport function shouldHoistAttribute(host, name) {\n\treturn isHoisted(host) && !omitAttrs.includes(name);\n}\n\nexport function hoistAttribute(host, name, value) {\n\tconst hostVariables = getHostVariables(host);\n\tconst target = getHoistTarget(hostVariables);\n\tif (target.tagName === SEISMIC_HOIST_TAG_NAME) target.setAttribute(name, value);\n}\n\nexport function unhoistAttribute(host, name) {\n\tconst hostVariables = getHostVariables(host);\n\tconst target = getHoistTarget(hostVariables);\n\tif (target.tagName === SEISMIC_HOIST_TAG_NAME) target.removeAttribute(name);\n}\n\nexport function moveStyles(sourceEl, targetEl, deprioritizeStyles, onStateChange) {\n\tconst sourceVariables = getHostVariables(sourceEl);\n\tconst targetVariables = getHostVariables(targetEl);\n\tif (deprioritizeStyles) onStateChange(targetVariables[ATTACHED_ROOT_NODE], () => null);\n\n\tif (\n\t\tsourceVariables[ATTACHED_ROOT_NODE].adoptedStyleSheets &&\n\t\tsourceVariables[ATTACHED_ROOT_NODE].adoptedStyleSheets.length &&\n\t\t!targetVariables[ATTACHED_ROOT_NODE].adoptedStyleSheets.length\n\t) {\n\t\ttargetVariables[ATTACHED_ROOT_NODE].adoptedStyleSheets = [\n\t\t\t...sourceVariables[ATTACHED_ROOT_NODE].adoptedStyleSheets\n\t\t]; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tconst sourceElRootNode = sourceVariables[ATTACHED_ROOT_NODE];\n\t\tconst {length: sourceElRootNodeChildCount} = sourceElRootNode.children;\n\t\tif (\n\t\t\tsourceElRootNodeChildCount &&\n\t\t\tsourceElRootNode.firstChild.tagName === 'STYLE' &&\n\t\t\t!targetVariables[ATTACHED_ROOT_NODE].length\n\t\t) {\n\t\t\ttargetVariables[ATTACHED_ROOT_NODE].appendChild(\n\t\t\t\tsourceElRootNode.removeChild(sourceElRootNode.firstChild)\n\t\t\t);\n\t\t\twhile (sourceElRootNode.firstChild) sourceElRootNode.removeChild(sourceElRootNode.firstChild);\n\t\t}\n\t}\n}\n\nexport function moveChildren(sourceEl, targetEl) {\n\tif (sourceEl.children.length) {\n\t\tconst fragment = document.createDocumentFragment();\n\n\t\twhile (sourceEl.firstChild) fragment.appendChild(sourceEl.removeChild(sourceEl.firstChild));\n\n\t\ttargetEl.appendChild(fragment);\n\t}\n}\n\nfunction connectTarget(sourceEl, targetEl) {\n\tconst hoistAppendToEl = getAppendToEl(sourceEl);\n\tif (shouldPrepend(sourceEl)) hoistAppendToEl.prepend(targetEl);\n\telse hoistAppendToEl.appendChild(targetEl);\n}\n\nfunction disconnectTarget(targetEl) {\n\ttargetEl.parentNode.removeChild(targetEl);\n}\n\nexport default function hoist(sourceEl, deprioritizeStyles, onStateChange) {\n\tif (\n\t\t!sourceEl[GET_RESOLVED_PROPERTY](HOIST_ATTR) &&\n\t\t!sourceEl.hasAttribute(HOIST_ATTR) &&\n\t\t!sourceEl[GET_RESOLVED_PROPERTY](NOW_HOIST_PROP) &&\n\t\t!sourceEl.hasAttribute(NOW_HOIST_ATTR)\n\t)\n\t\treturn;\n\n\tconst targetEl = createTarget(sourceEl);\n\n\tconst sourceVariables = getHostVariables(sourceEl);\n\tconst targetVariables = getHostVariables(targetEl);\n\n\t// these blocks cover the case when the hoist property is set to true after the source has already been connected and\n\t// possibly rendered. this appends the styles to the target shadowRoot then clears out the remaining child nodes\n\t// that were rendered in the source shadowRoot. it would be more efficient to never render the source shadowRoot,\n\t// but there isn't a way to know if a node will be hoisted in the future.\n\tmoveStyles(sourceEl, targetEl, deprioritizeStyles, onStateChange);\n\tmoveChildren(sourceEl, targetEl);\n\n\tconnectTarget(sourceEl, targetEl);\n\tsourceVariables[ROOT_NODE] = targetVariables[ATTACHED_ROOT_NODE]; // eslint-disable-line no-param-reassign\n\n\treturn function unhoist() {\n\t\tsourceVariables[ROOT_NODE] = sourceVariables[ATTACHED_ROOT_NODE]; // eslint-disable-line no-param-reassign\n\t\tmoveStyles(targetEl, sourceEl, deprioritizeStyles, onStateChange);\n\t\tmoveChildren(targetEl, sourceEl);\n\t\tdisconnectTarget(targetEl);\n\t};\n}\n","import {toLower} from '@servicenow/ui-internal';\nimport {\n\tcreateStyleFragment,\n\tgetHostVariables,\n\tstyleSheetsContentCache,\n\tresolveStylesheetsContent\n} from './utils';\nimport {VERSION, ROOT_NODE} from './symbols';\n\nconst view = () => null;\nconst stylesMap = new Map();\n\nexport default async function applyStyles(el, config) {\n\tconst {\n\t\tstyles = '',\n\t\tstylesheets = [],\n\t\trenderer: {type: {onStateChange = () => null, deprioritizeStyles = false} = {}} = {}\n\t} = config;\n\n\t// eslint-disable-next-line nonblock-statement-body-position\n\tif (!styles && !stylesheets.length) return;\n\n\tconst hostVariables = getHostVariables(el);\n\tconst rootNode = hostVariables[ROOT_NODE];\n\tconst {tagName} = el;\n\n\tif (\n\t\tDocument &&\n\t\t'adoptedStyleSheets' in Document.prototype &&\n\t\t(process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test')\n\t)\n\t\treturn applyWithAdoptedStylesSheets(el, tagName, rootNode, styles, stylesheets);\n\n\tapplyWithTag(el, tagName, rootNode, styles, stylesheets, deprioritizeStyles, onStateChange);\n}\n\nasync function applyWithAdoptedStylesSheets(el, tagName, rootNode, styles = '', stylesheets) {\n\tif (!stylesMap.has(tagName)) {\n\t\tconst externalStyles = document.head.querySelector(`#now-${toLower(tagName)}-styles`);\n\t\tif (externalStyles) {\n\t\t\tconst styleEl = externalStyles.content.cloneNode(true).querySelector('style');\n\t\t\tstyles = styleEl ? styleEl.textContent : styles; // eslint-disable-line no-param-reassign\n\t\t}\n\n\t\tlet stylesheetsContent = '';\n\n\t\tif (stylesheets && stylesheets.length) {\n\t\t\tstylesheetsContent = styleSheetsContentCache.get(el, tagName);\n\t\t\tif (!stylesheetsContent) {\n\t\t\t\tconst previousDisplaValue = el.style.display;\n\t\t\t\tel.style.setProperty('display', 'none', 'important');\n\t\t\t\tstylesheetsContent = await resolveStylesheetsContent(stylesheets);\n\t\t\t\tel.style.setProperty('display', previousDisplaValue);\n\t\t\t}\n\t\t}\n\n\t\tconst sheet = new CSSStyleSheet();\n\t\tsheet.replace(`${styles} ${stylesheetsContent}`);\n\t\tstylesMap.set(tagName, [sheet]);\n\t}\n\n\trootNode.adoptedStyleSheets = stylesMap.get(tagName); // eslint-disable-line no-param-reassign\n}\n\nasync function applyWithTag(\n\tel,\n\ttagName,\n\trootNode,\n\tstyles,\n\tstylesheets,\n\tdeprioritizeStyles,\n\tonStateChange\n) {\n\tlet stylesheetsContent = '';\n\n\t// eslint-disable-next-line nonblock-statement-body-position\n\tif (deprioritizeStyles) onStateChange(rootNode, view);\n\n\tif (stylesheets && stylesheets.length) {\n\t\tconst version = getHostVariables(VERSION) || '';\n\t\tstylesheetsContent = styleSheetsContentCache.get(version, tagName);\n\t\tif (!stylesheetsContent) {\n\t\t\tconst previousDisplaValue = el.style.display;\n\t\t\tel.style.setProperty('display', 'none', 'important');\n\t\t\tstylesheetsContent = await resolveStylesheetsContent(stylesheets);\n\t\t\tel.style.setProperty('display', previousDisplaValue);\n\t\t\tif (stylesheetsContent) styleSheetsContentCache.set(version, tagName, stylesheetsContent);\n\t\t}\n\t}\n\n\tconst styleFragment = createStyleFragment(styles, stylesheetsContent, tagName);\n\trootNode.appendChild(styleFragment);\n}\n","import {getHostVariables} from './utils';\nimport {ROOT_NODE} from './symbols';\n\nexport default function removeStyles(el) {\n\tconst hostVariables = getHostVariables(el);\n\tconst nodes = [...hostVariables[ROOT_NODE].childNodes];\n\tconst {length: nodeCount} = nodes;\n\n\tfor (let i = 0; i < nodeCount; i++) {\n\t\tconst node = nodes[i];\n\t\tif (node && (node.tagName === 'STYLE' || node.tagName === 'SCRIPT'))\n\t\t\thostVariables[ROOT_NODE].removeChild(node);\n\t}\n}\n","import {sandbox, locations} from '@servicenow/ui-internal';\nimport {camelCaseProperties, unescapeReservedCharacters, resolveComputedProperties} from '../utils';\nimport reflectProperties from './reflectProperties';\nimport log from '../log';\n\nexport {reflectProperty} from './reflectProperties';\n\nexport default function shapeRenderData(\n\tstate,\n\thost,\n\thostVariables,\n\ttransform,\n\tdispatch,\n\tinteractionId\n) {\n\tconst transformedState = reflectProperties(\n\t\tunescapeReservedCharacters(\n\t\t\tresolveComputedProperties(camelCaseProperties(state), host, hostVariables, interactionId)\n\t\t),\n\t\thost,\n\t\tinteractionId\n\t);\n\n\treturn (\n\t\tsandbox(transform, {\n\t\t\targs: [transformedState],\n\t\t\thost,\n\t\t\tlocation: locations.TRANSFORM_STATE,\n\t\t\tdispatch,\n\t\t\tlog\n\t\t}) || transformedState\n\t);\n}\n","import {mark, types as metrics} from '@servicenow/ui-metrics';\nimport {memoize, toString} from '@servicenow/ui-internal';\nimport {filterPropertyDefinitions, toAttributeName, getHostVariables} from '../utils';\nimport reflectQueue from '../utils/reflectQueue'; // TODO: why is this required?\nimport {schedule, types} from '../scheduler';\nimport {PROPERTY_DEFS} from '../symbols';\n\nconst {REFLECT_PROPERTIES} = types;\n\nconst isAria = memoize(name => name.indexOf('aria') === 0, {profileName: 'isAria'});\n\nconst shouldRemoveAttribute = (name, value) => {\n\tif (isAria(name)) return !toString(value);\n\n\treturn !value;\n};\n\nconst getAttributeValue = (name, value) => {\n\tif (isAria(name)) return toString(value);\n\n\treturn value === true ? '' : value;\n};\n\nconst filterRelectedProperties = memoize(\n\thost => {\n\t\tconst hostVariables = getHostVariables(host);\n\t\tconst properties = filterPropertyDefinitions(hostVariables[PROPERTY_DEFS], d => d.reflect);\n\t\tconst keys = Object.keys(properties);\n\t\treturn {\n\t\t\tproperties,\n\t\t\tkeys\n\t\t};\n\t},\n\t{createCacheKey: host => host.tagName, profileName: 'filterRelectedProperties'}\n);\nconst filterUnstableParseProperties = memoize(\n\thost => {\n\t\tconst hostVariables = getHostVariables(host);\n\t\treturn filterPropertyDefinitions(hostVariables[PROPERTY_DEFS], d => d.unstableParse);\n\t},\n\t{createCacheKey: host => host.tagName, profileName: 'filterUnstableParseProperties'}\n);\nconst resolveValue = (propName, propDef, state) => {\n\tif (propDef.computed) {\n\t\tconst computedValue = propDef.computed(state);\n\t\tif (computedValue !== undefined) return computedValue;\n\t}\n\tconst stateValue = state.properties[propName];\n\tif (stateValue !== undefined) return stateValue;\n\n\treturn propDef.default || null;\n};\n\nexport function reflectProperty(propName, propDef, state, host, usingUnstableParse) {\n\tconst value = resolveValue(propName, propDef, state);\n\tconst attributeName = toAttributeName(propName);\n\tconst attributeValue = getAttributeValue(attributeName, value);\n\n\tif (shouldRemoveAttribute(attributeName, value) && host.hasAttribute(attributeName)) {\n\t\treflectQueue.push(attributeName);\n\n\t\thost.removeAttribute(attributeName);\n\t} else {\n\t\tif (\n\t\t\thost.getAttribute(attributeName) !== attributeValue &&\n\t\t\t((value !== null && value !== undefined && value !== false) ||\n\t\t\t\t(isAria(attributeName) && attributeValue))\n\t\t) {\n\t\t\treflectQueue.push(attributeName);\n\n\t\t\tif (usingUnstableParse[propName])\n\t\t\t\thost.setAttribute(attributeName, JSON.stringify(attributeValue), true);\n\t\t\telse host.setAttribute(attributeName, attributeValue, true);\n\t\t}\n\t}\n}\n\nexport default function reflectProperties(state, host, interactionId) {\n\tconst {properties: reflected, keys} = filterRelectedProperties(host);\n\tconst usingUnstableParse = filterUnstableParseProperties(host);\n\n\tschedule({\n\t\tfn() {\n\t\t\tmark(host, interactionId, metrics.PROPERTY_REFLECTION, {properties: keys});\n\t\t\tfor (const propName in reflected)\n\t\t\t\treflectProperty(propName, reflected[propName], state, host, usingUnstableParse);\n\t\t},\n\t\ttype: REFLECT_PROPERTIES,\n\t\tmeta: {el: host, interactionId}\n\t});\n\n\treturn state;\n}\n","import {addResolvedPropertyMapping, isSelector} from '../property-selectors';\n\n/**\n * function to update resolvedSelectedPropertyMapping when the property value does not contain selector\n * but itself is selectable, it could become a provider property for other consumer components\n * @param {string} propertyValue\n * @param {string} providerPropName\n * @param {string} providerId\n */\nexport default function addResolvedSelectedPropertyMappingWithResolvedValue(\n\tpropertyValue,\n\tproviderPropName,\n\tproviderId\n) {\n\tif (isSelector(propertyValue)) return;\n\n\taddResolvedPropertyMapping({providerId, providerPropName}, propertyValue);\n}\n","/**\n * Function called to allow handler to process the  now-resolved-props before they are assigned to the component/host\n * @name ProcessNowResolvedPropsFn\n * @function\n * @param {{host:SeismicElement, rawResolvedProps:obj, propertyKeys}} opts\n */\n\n/**\n * Function called to cleanup any subscriptions or listeners when the host is disconnected\n * @name DisconnectNowResolvedPropsCallbacksFn\n * @function\n * @param {SeismicElement} host\n */\n\n/**\n * Function provided by component that will initiate the property changes\n * @name ChangeCallbackFn\n * @function\n * @param {object} propertiesToUpdate\n */\n\n/**\n * Function called to create any subscriptions or listeners when the host is connected\n * @name ConnectNowResolvedPropsCallbacksFn\n * @function\n * @param {SeismicElement} host\n * @param {ChangeCallbackFn} changeCallback\n */\n\n/**\n * @typedef NowResolvedPropsHandler\n * @type {object}\n * @property {ProcessNowResolvedPropsFn} processNowResolvedProps\n * @property {DisconnectNowResolvedPropsCallbacksFn} disconnectNowResolvedPropsCallbacks\n * @property {ConnectNowResolvedPropsCallbacksFn} connectNowResolvedPropsCallbacks\n */\n\n/** @type {NowResolvedPropsHandler|null} */\nlet nowResolvedPropsHandler = null;\n\nexport function processNowResolvedProps({host, rawResolvedProps, propertyKeys}) {\n\tif (!nowResolvedPropsHandler) return {};\n\n\tif (\n\t\tnowResolvedPropsHandler.processNowResolvedProps === undefined ||\n\t\ttypeof nowResolvedPropsHandler.processNowResolvedProps !== 'function'\n\t) {\n\t\treturn {};\n\t}\n\treturn nowResolvedPropsHandler.processNowResolvedProps({host, rawResolvedProps, propertyKeys});\n}\n\nexport function disconnectNowResolvedPropsCallbacks(host) {\n\tif (!nowResolvedPropsHandler) return;\n\n\tif (\n\t\tnowResolvedPropsHandler.disconnectNowResolvedPropsCallbacks === undefined ||\n\t\ttypeof nowResolvedPropsHandler.disconnectNowResolvedPropsCallbacks !== 'function'\n\t) {\n\t\treturn;\n\t}\n\tnowResolvedPropsHandler.disconnectNowResolvedPropsCallbacks(host);\n}\n\nexport function connectNowResolvedPropsCallbacks(host, changeCallback) {\n\tif (!nowResolvedPropsHandler) return;\n\n\tif (\n\t\tnowResolvedPropsHandler.connectNowResolvedPropsCallbacks === undefined ||\n\t\ttypeof nowResolvedPropsHandler.connectNowResolvedPropsCallbacks !== 'function'\n\t) {\n\t\treturn;\n\t}\n\tnowResolvedPropsHandler.connectNowResolvedPropsCallbacks(host, changeCallback);\n}\n\nexport function clearNowResolvedPropsHandler() {\n\tnowResolvedPropsHandler = null;\n}\n\n/**\n * Registers a nowResolvedPropsHandler for resolving dynamic properties.\n * @param {NowResolvedPropsHandler} handler\n */\nexport function registerNowResolvedPropsHandler(handler) {\n\tnowResolvedPropsHandler = handler;\n}\n","import buildConfigValidator from './utils/schema/build/buildConfigValidator';\nimport {SHADOW_ROOT_MODE_CLOSED, SHADOW_ROOT_MODE_OPEN} from './constants';\nimport {modifierTypes} from './effects';\n\nconst TYPE_ARRAY = {type: 'array'};\nconst TYPE_BOOLEAN = {type: 'boolean'};\nconst TYPE_FN = {fn: true};\nconst TYPE_NUMBER = {type: 'number'};\nconst TYPE_OBJECT = {type: 'object'};\nconst TYPE_STRING = {type: 'string'};\n\nconst properties = {\n\t...TYPE_OBJECT,\n\tadditionalProperties: {\n\t\t...TYPE_OBJECT,\n\t\tproperties: {\n\t\t\tdefault: {},\n\t\t\tcomputed: TYPE_FN,\n\t\t\trequired: TYPE_BOOLEAN,\n\t\t\tselectable: TYPE_BOOLEAN,\n\t\t\treflect: TYPE_BOOLEAN,\n\t\t\tdeepCompare: TYPE_BOOLEAN,\n\t\t\tresolveRef: TYPE_BOOLEAN,\n\t\t\tshouldRenderWhenSet: TYPE_BOOLEAN,\n\t\t\tschema: TYPE_OBJECT,\n\t\t\tunstableParse: {\n\t\t\t\t...TYPE_BOOLEAN,\n\t\t\t\tdeprecated: 'has been deprecated, use Type Schemas instead'\n\t\t\t},\n\t\t\tunstablePreserveEmptyStr: {\n\t\t\t\t...TYPE_BOOLEAN,\n\t\t\t\tdeprecated: 'has been deprecated, use Type Schemas instead'\n\t\t\t},\n\t\t\tdependencies: {\n\t\t\t\t...TYPE_ARRAY,\n\t\t\t\titems: TYPE_STRING\n\t\t\t},\n\t\t\tonChange: TYPE_FN\n\t\t},\n\t\tadditionalProperties: false\n\t}\n};\n\nconst interceptors = {\n\t...TYPE_ARRAY,\n\titems: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\t...TYPE_OBJECT,\n\t\t\t\tproperties: {\n\t\t\t\t\tbefore: TYPE_FN,\n\t\t\t\t\tafter: TYPE_FN\n\t\t\t\t},\n\t\t\t\tadditionalProperties: false\n\t\t\t},\n\t\t\tTYPE_FN\n\t\t]\n\t}\n};\n\nconst actions = {\n\t...TYPE_OBJECT,\n\tadditionalProperties: {\n\t\t...TYPE_OBJECT,\n\t\tproperties: {\n\t\t\thandlers: {\n\t\t\t\t...TYPE_ARRAY,\n\t\t\t\tdeprecated: 'has been deprecated, use actions handlers instead',\n\t\t\t\titems: {\n\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\teffect: TYPE_FN,\n\t\t\t\t\t\t\t\tfn: TYPE_FN,\n\t\t\t\t\t\t\t\targs: TYPE_ARRAY\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t\t},\n\t\t\t\t\t\tTYPE_FN\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t},\n\t\t\tinterceptors: {\n\t\t\t\t...interceptors,\n\t\t\t\tdeprecated: 'has been deprecated, use actions handler `interceptors` instead'\n\t\t\t},\n\t\t\teffect: {\n\t\t\t\t...TYPE_FN,\n\t\t\t\tdeprecated: 'has been deprecated, use actions handlers instead'\n\t\t\t},\n\t\t\tprivate: {\n\t\t\t\ttype: 'boolean',\n\t\t\t\tdeprecated: 'has been deprecated, use actions handlers `stopPropagation` instead'\n\t\t\t},\n\t\t\tschema: TYPE_OBJECT\n\t\t},\n\t\tadditionalProperties: false\n\t}\n};\n\nconst actionHandlers = {\n\t...TYPE_OBJECT,\n\tadditionalProperties: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\t...TYPE_OBJECT,\n\t\t\t\tproperties: {\n\t\t\t\t\teffect: TYPE_FN,\n\t\t\t\t\targs: TYPE_ARRAY,\n\t\t\t\t\tdescendantOnly: TYPE_BOOLEAN,\n\t\t\t\t\tstopPropagation: TYPE_BOOLEAN,\n\t\t\t\t\tinterceptors,\n\t\t\t\t\tmodifier: {\n\t\t\t\t\t\tanyOf: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\t\t\tenum: [modifierTypes.DEBOUNCE]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdelay: TYPE_NUMBER,\n\t\t\t\t\t\t\t\t\tmaxWait: TYPE_NUMBER,\n\t\t\t\t\t\t\t\t\tcollate: TYPE_BOOLEAN\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\t\t\tenum: [modifierTypes.THROTTLE]\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tlimit: TYPE_NUMBER\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\t\t\tenum: [modifierTypes.TAKE_LATEST]\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tadditionalProperties: false\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},\n\t\t\t\tadditionalProperties: false\n\t\t\t},\n\t\t\tTYPE_FN\n\t\t]\n\t}\n};\n\nconst eventHandlers = {\n\t...TYPE_ARRAY,\n\titems: {\n\t\t...TYPE_OBJECT,\n\t\tproperties: {\n\t\t\tevents: {\n\t\t\t\t...TYPE_ARRAY,\n\t\t\t\tminItems: 1,\n\t\t\t\titems: TYPE_STRING\n\t\t\t},\n\t\t\teffect: TYPE_FN,\n\t\t\ttarget: {\n\t\t\t\tanyOf: [TYPE_OBJECT, TYPE_STRING]\n\t\t\t},\n\t\t\tcapture: TYPE_BOOLEAN,\n\t\t\tmodifier: {\n\t\t\t\tanyOf: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\tenum: [modifierTypes.DEBOUNCE]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdelay: TYPE_NUMBER,\n\t\t\t\t\t\t\tmaxWait: TYPE_NUMBER,\n\t\t\t\t\t\t\tcollate: TYPE_BOOLEAN\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\tenum: [modifierTypes.THROTTLE]\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tlimit: TYPE_NUMBER\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\t\t\t\tenum: [modifierTypes.TAKE_LATEST]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\trequired: ['events', 'effect'],\n\t\tadditionalProperties: false\n\t}\n};\n\nconst initialState = {};\n\nconst setInitialState = {\n\t...TYPE_FN\n};\n\nconst onBootstrap = {\n\t...TYPE_FN,\n\tdeprecated: 'life cycle has been deprecated, use `COMPONENT_BOOTSTRAPPED` action handler instead'\n};\nconst onConnect = {\n\t...TYPE_FN,\n\tdeprecated: 'life cycle has been deprecated, use `COMPONENT_CONNECTED` action handler instead'\n};\n\nconst onDisconnect = {\n\t...TYPE_FN,\n\tdeprecated: 'life cycle has been deprecated, use `COMPONENT_DISCONNECTED` action handler instead'\n};\n\nconst onPropertiesSet = {\n\t...TYPE_FN,\n\tdeprecated: true\n};\n\nconst behavior = {\n\t...TYPE_OBJECT,\n\tproperties: {\n\t\tname: TYPE_STRING,\n\t\tproperties,\n\t\tactions,\n\t\tactionHandlers,\n\t\tdispatches: TYPE_OBJECT,\n\t\teventHandlers,\n\t\tinitialState,\n\t\tsetInitialState,\n\t\tonBootstrap,\n\t\tonConnect,\n\t\tonDisconnect,\n\t\tonPropertiesSet\n\t},\n\tadditionalProperties: false\n};\n\nconst presentationalBehavior = {\n\t...TYPE_OBJECT,\n\tproperties: {\n\t\tname: TYPE_STRING,\n\t\tproperties\n\t},\n\tadditionalProperties: false\n};\n\nconst validator = buildConfigValidator({\n\t...TYPE_OBJECT,\n\tproperties: {\n\t\tbehaviors: {\n\t\t\t...TYPE_ARRAY,\n\t\t\titems: {\n\t\t\t\tanyOf: [\n\t\t\t\t\tbehavior,\n\t\t\t\t\t{\n\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tbehavior,\n\t\t\t\t\t\t\toptions: TYPE_OBJECT\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tuniqueItems: true\n\t\t},\n\t\tactions,\n\t\tactionHandlers,\n\t\teventHandlers,\n\t\tinitialState,\n\t\tsetInitialState,\n\t\tproperties,\n\t\trenderer: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tproperties: {\n\t\t\t\tview: TYPE_FN,\n\t\t\t\ttransformState: TYPE_FN,\n\t\t\t\ttransformProps: TYPE_FN,\n\t\t\t\ttype: TYPE_OBJECT\n\t\t\t},\n\t\t\tadditionalProperties: false\n\t\t},\n\t\tview: TYPE_FN,\n\t\ttransformState: TYPE_FN,\n\t\ttransformProps: TYPE_FN,\n\t\ttype: TYPE_OBJECT,\n\t\tresources: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tdeprecated: 'has been deprecated, use effects instead'\n\t\t},\n\t\tactionTypes: {\n\t\t\t...TYPE_ARRAY,\n\t\t\tdeprecated: true\n\t\t},\n\t\tactionTypesToProps: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tdeprecated: true\n\t\t},\n\t\tonBootstrap,\n\t\tonConnect,\n\t\tonDisconnect,\n\t\tonPropertiesSet,\n\t\tdispatches: TYPE_OBJECT,\n\t\tslots: TYPE_OBJECT,\n\t\tstyles: TYPE_STRING,\n\t\tstylesheets: {\n\t\t\t...TYPE_ARRAY,\n\t\t\titems: TYPE_STRING\n\t\t},\n\t\tshadowRootOptions: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tproperties: {\n\t\t\t\tmode: {\n\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\tenum: [SHADOW_ROOT_MODE_OPEN, SHADOW_ROOT_MODE_CLOSED]\n\t\t\t\t}\n\t\t\t},\n\t\t\tadditionalProperties: false\n\t\t}\n\t},\n\tadditionalProperties: false\n});\n\nconst presentationalValidator = buildConfigValidator({\n\t...TYPE_OBJECT,\n\tproperties: {\n\t\tbehaviors: {\n\t\t\t...TYPE_ARRAY,\n\t\t\titems: {\n\t\t\t\tanyOf: [\n\t\t\t\t\tpresentationalBehavior,\n\t\t\t\t\t{\n\t\t\t\t\t\t...TYPE_OBJECT,\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tbehavior: presentationalBehavior,\n\t\t\t\t\t\t\toptions: TYPE_OBJECT\n\t\t\t\t\t\t},\n\t\t\t\t\t\tadditionalProperties: false\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t},\n\t\t\tuniqueItems: true\n\t\t},\n\t\tproperties,\n\t\trenderer: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tproperties: {\n\t\t\t\ttype: TYPE_OBJECT\n\t\t\t},\n\t\t\tadditionalProperties: false\n\t\t},\n\t\tview: TYPE_FN,\n\t\ttransformProps: TYPE_FN,\n\t\tstyles: TYPE_STRING,\n\t\tshadowRootOptions: {\n\t\t\t...TYPE_OBJECT,\n\t\t\tproperties: {\n\t\t\t\tmode: {\n\t\t\t\t\t...TYPE_STRING,\n\t\t\t\t\tenum: [SHADOW_ROOT_MODE_OPEN, SHADOW_ROOT_MODE_CLOSED]\n\t\t\t\t}\n\t\t\t},\n\t\t\tadditionalProperties: false\n\t\t}\n\t},\n\tadditionalProperties: false\n});\n\nexport function validatePresentationalConfig(name, config, options) {\n\treturn presentationalValidator(config, `Config for ${name}: `, options);\n}\n\nexport default function validateConfig(name, config, options) {\n\treturn validator(config, `Config for ${name}: `, options);\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_effect_amb = exports;\n\nexport * from './index.js';\n","export {default as createAmbSubscriptionEffect} from './ambSubscriptionEffect';\nexport {default as createAmbPublishEffect} from './ambPublishEffect';\nexport {default as createAmbEventEffect} from './ambEventEffect';\n","import getAMBClient from './getAMBClient';\nimport {createSubscriptionId, createRegistryId, replaceChannelParameters} from './utils';\nimport {get, defer} from '@servicenow/ui-internal';\nimport createGarbageCollectorMap from './createGarbageCollectorMap';\n\nconst ambChannelRegistry = createGarbageCollectorMap((registryId, channelListener) => {\n\tchannelListener.unsubscribe(channelListener.getCallback());\n});\n\nfunction createSubscriptionCallback(dispatch, successActionType, errorActionType, actionMetaData) {\n\t// use setTimeout (defer) because of an AMB client subscription timing issue\n\treturn response =>\n\t\tdefer(() => {\n\t\t\tif (response.successful) {\n\t\t\t\tdispatch(successActionType, {response}, actionMetaData);\n\t\t\t} else {\n\t\t\t\tconst {error} = response;\n\t\t\t\tdispatch(errorActionType, error, actionMetaData, true);\n\t\t\t}\n\t\t});\n}\n\nfunction createSubscriptionOptionsCallback(options) {\n\treturn () => options || {};\n}\n\nexport const AMB_CHANNEL_SUBSCRIBE_STARTED = 'AMB_CHANNEL_SUBSCRIBE_STARTED';\nexport const AMB_CHANNEL_SUBSCRIBE_SUCCEEDED = 'AMB_CHANNEL_SUBSCRIBE_SUCCEEDED';\nexport const AMB_CHANNEL_SUBSCRIBE_FAILED = 'AMB_CHANNEL_SUBSCRIBE_FAILED';\nexport const AMB_CHANNEL_UNSUBSCRIBE_SUCCEEDED = 'AMB_CHANNEL_UNSUBSCRIBE_SUCCEEDED';\nexport const AMB_MESSAGE_RECEIVED = 'AMB_MESSAGE_RECEIVED';\n\nexport function ambSubscriptionEffect(\n\tambClient,\n\tsubscriptionId,\n\tambChannelRegistry,\n\tchannelId,\n\toptions = {},\n\tcoeffects\n) {\n\tconst {\n\t\tsubscribeStartedActionType = AMB_CHANNEL_SUBSCRIBE_STARTED,\n\t\tsubscribeSucceededActionType = AMB_CHANNEL_SUBSCRIBE_SUCCEEDED,\n\t\tsubscribeFailedActionType = AMB_CHANNEL_SUBSCRIBE_FAILED,\n\t\tunsubscribeSucceededActionType = AMB_CHANNEL_UNSUBSCRIBE_SUCCEEDED,\n\t\tmessageReceivedActionType = AMB_MESSAGE_RECEIVED,\n\t\tencodeURIComponentForChannelId = true,\n\t\tsubscriptionOptions = {}\n\t} = options;\n\tconst {\n\t\taction,\n\t\taction: {\n\t\t\tmeta: {id: containerId}\n\t\t},\n\t\tdispatch,\n\t\thost\n\t} = coeffects;\n\tconst registryId = createRegistryId(containerId, subscriptionId);\n\tconst resolvedChannel = replaceChannelParameters(\n\t\tchannelId,\n\t\taction.payload,\n\t\tencodeURIComponentForChannelId\n\t);\n\tconst metaData = {...action.meta, channelId: resolvedChannel};\n\tconst shouldSubscribe = get(action, 'payload.subscribe', false);\n\tconst subscriptionCallback = createSubscriptionCallback(\n\t\tdispatch,\n\t\tsubscribeSucceededActionType,\n\t\tsubscribeFailedActionType,\n\t\tmetaData\n\t);\n\tconst subscribeOptionsCallback = createSubscriptionOptionsCallback(subscriptionOptions);\n\n\tif (!ambChannelRegistry.has(registryId)) {\n\t\tambChannelRegistry.set(\n\t\t\tregistryId,\n\t\t\tambClient.getChannel(resolvedChannel, {\n\t\t\t\tsubscriptionCallback,\n\t\t\t\tsubscribeOptionsCallback\n\t\t\t}),\n\t\t\thost\n\t\t);\n\t}\n\n\tlet channelListener = ambChannelRegistry.get(registryId);\n\tconst channelIdChanged = resolvedChannel !== channelListener.getName();\n\tif (channelIdChanged) {\n\t\tambChannelRegistry.set(\n\t\t\tregistryId,\n\t\t\tambClient.getChannel(resolvedChannel, {\n\t\t\t\tsubscriptionCallback,\n\t\t\t\tsubscribeOptionsCallback\n\t\t\t}),\n\t\t\thost\n\t\t);\n\t\tchannelListener = ambChannelRegistry.get(registryId);\n\t}\n\n\tconst isSubscribed = channelListener.getCallback() !== undefined;\n\tconst listenerFn = message => {\n\t\tdispatch(messageReceivedActionType, message, metaData);\n\t};\n\tif (!isSubscribed && shouldSubscribe) {\n\t\tdispatch(subscribeStartedActionType, {}, metaData);\n\t\tchannelListener.subscribe(listenerFn);\n\t} else if (isSubscribed && !shouldSubscribe) {\n\t\tambChannelRegistry.delete(registryId);\n\t\tchannelListener.unsubscribe(channelListener.getCallback());\n\t\tdispatch(unsubscribeSucceededActionType, {}, metaData);\n\t}\n}\n\n/**\n * Effect to manage an an amb channel subscription.\n *\n * @function createAmbSubscriptionEffect\n * @example\n * import {createAmbSubscriptionEffect} from '@servicenow/ui-effect-amb';\n *\n * const recordWatcherHandler = createAmbSubscriptionEffect('/rw/default/:table/:filter', {\n *      subscribeStartedActionType: 'RECORD_WATCHER_SUBSCRIBE_STARTED',\n *      subscribeSucceededActionType: 'RECORD_WATCHER_SUBSCRIBED',\n *      subscribeFailedActionType: 'RECORD_WATCHER_SUBSCRIBE_FAILED',\n *      unsubscribeSucceededActionType: 'RECORD_WATCHER_UNSUBSCRIBED',\n *      messageReceivedActionType: 'RECORD_WATCHER_ITEM_CHANGED',\n *      subscriptionOptions: {foo: 'bar'}\n * });\n *\n * const recordItemComponent = createCustomElement('sn-record-item', {\n *      renderer: {\n *          view: (state, dispatch) => {\n *              const {table, filter} = state.properties;\n *              function subscribe() {\n *                  dispatch('RECORD_WATCHER_SUBSCRIPTION_CHANGED', {\n *                      table,\n *                      filter,\n *                      subscribe: true\n *                  });\n *              }\n *\n *              function unsubscribe() {\n *                  dispatch('RECORD_WATCHER_SUBSCRIPTION_CHANGED', {\n *                      table,\n *                      filter,\n *                      subscribe: false\n *                  });\n *              }\n *\n *              return (\n *                  <div>\n *                      <button on-click='subscribe'>Subscribe<\/button>\n *                      <button on-click='unsubscribe'>Unsubscribe<\/button>\n *                  <\/div>\n *              );\n *          }\n *      },\n *\t    properties: {\n *          table: {},\n *          filter: {}\n *\t    },\n *      actionHandlers: {\n *\t\t    'RECORD_WATCHER_SUBSCRIPTION_CHANGED': recordWatcherHandler\n *\t\t}\n * });\n *\n * @param {String} channelId - AMB Channel ID\n * @param {Object} options\n * @param {String} options.subscribeStartedActionType - Action dispatched when an amb subscription is started\n * @param {String} options.subscribeSucceededActionType - Action dispatched if an amb subscription succeeds\n * @param {String} options.subscribeFailedActionType - Action dispatched if an amb subscription fails\n * @param {String} options.unsubscribeSucceededActionType - Action dispatched when an amb unsubscribe is successful\n * @param {String} options.messageReceivedActionType - Action dispatched when a message is received on a channel\n * @param {Boolean} options.encodeURIComponentForChannelId - Encode channel id URL (default: true)\n * @param {Object} options.subscriptionOptions - Arbitary key/value pass through object (default: {})\n *\n * @return {Object} AMB Subscription Effect Descriptor\n */\nexport default function createAmbSubscriptionEffect(channelId, options) {\n\treturn {\n\t\teffect: ambSubscriptionEffect,\n\t\targs: [getAMBClient(), createSubscriptionId(), ambChannelRegistry, channelId, options]\n\t};\n}\n","import amb from 'amb-client-js';\n\nlet ambClient;\nlet clientUrl;\nexport default function getAMBClient(url = null) {\n\tif (!ambClient) {\n\t\tclientUrl = url;\n\t\tambClient = amb.getClient(clientUrl);\n\t}\n\tif (clientUrl !== url) throw new Error('Subsequent amb client request has different url');\n\treturn ambClient;\n}\n","export {default as createSubscriptionId} from './createSubscriptionId';\nexport {default as createRegistryId} from './createRegistryId';\nexport {default as replaceChannelParameters} from './replaceChannelParameters';\n","import {guid} from '@servicenow/ui-internal';\n\nexport default function createSubscriptionId() {\n\treturn guid();\n}\n","export default function createRegistryId(containerId, subscriptionId) {\n\treturn `${containerId}-${subscriptionId}`;\n}\n","import pathToRegexp from 'path-to-regexp';\n\nexport default function replaceChannelParameters(\n\tchannelId,\n\tchannelParams = {},\n\tencodeURIComponentForChannelId = true\n) {\n\tconst toPath = pathToRegexp.compile(channelId, {sensitive: true, whitelist: './'});\n\tconst toPathOptions = encodeURIComponentForChannelId === false ? {encode: str => str} : {};\n\treturn toPath(channelParams, toPathOptions);\n}\n","import {getConfigItem} from '@servicenow/ui-config';\nimport {DISCONNECTED_TIME} from '@servicenow/ui-internal';\nimport setInterval from './utils/setInterval';\n\nconst garbageCollectors = [];\nexport const GARBAGE_COLLECTOR_INTERVAL = getConfigItem('ambGC.GARBAGE_COLLECTOR_INTERVAL') || 5000;\nexport const TIME_TO_WAIT_AFTER_DISCONNECT =\n\tgetConfigItem('ambGC.TIME_TO_WAIT_AFTER_DISCONNECT') || 1000;\n\nsetInterval(() => {\n\tgarbageCollectors.forEach(garbageCollector => {\n\t\tgarbageCollector.__map.forEach((value, key) => {\n\t\t\tif (!value.host.isConnected) {\n\t\t\t\t// Component has disconnected. To avoid unsubscribing a component that may\n\t\t\t\t// immediately reconnect, flag the component for removal in the next interval if\n\t\t\t\t// the component has not already been flagged. If it is already flagged and enough time\n\t\t\t\t// has passed, remove it.\n\t\t\t\tif (!value.host[DISCONNECTED_TIME]) value.host[DISCONNECTED_TIME] = Date.now();\n\t\t\t\telse if (Date.now() - value.host[DISCONNECTED_TIME] > TIME_TO_WAIT_AFTER_DISCONNECT)\n\t\t\t\t\tgarbageCollector.delete(key);\n\t\t\t}\n\t\t});\n\t});\n}, GARBAGE_COLLECTOR_INTERVAL);\n\nexport default function createGarbageCollectorMap(cleanup) {\n\tconst map = new Map();\n\n\tfunction remove(key) {\n\t\tif (map.has(key)) {\n\t\t\tcleanup(key, map.get(key).value);\n\t\t\tmap.delete(key);\n\t\t}\n\t}\n\n\tconst garbageCollectorMap = {\n\t\tset(key, value, host) {\n\t\t\tremove(key);\n\t\t\tmap.set(key, {value, host});\n\t\t},\n\t\thas(key) {\n\t\t\treturn map.has(key);\n\t\t},\n\t\tget(key) {\n\t\t\tconst mapValue = map.get(key);\n\n\t\t\treturn mapValue && mapValue.value;\n\t\t},\n\t\tdelete(key) {\n\t\t\tremove(key);\n\t\t},\n\t\tforEach(callback, thisArg) {\n\t\t\tmap.forEach((entry, key) => callback(entry.value, key), thisArg);\n\t\t},\n\t\t__map: map\n\t};\n\n\tgarbageCollectors.push(garbageCollectorMap);\n\n\treturn garbageCollectorMap;\n}\n","/**\n * Module that just exports window.setInterval to make it easier to mock and test\n */\n\nexport default setInterval;\n","import getAMBClient from './getAMBClient';\nimport {replaceChannelParameters} from './utils';\n\nexport const AMB_MESSAGE_PUBLISHED = 'AMB_MESSAGE_PUBLISHED';\n\nexport function ambPublishEffect(ambClient, channelId, options = {}, coeffects) {\n\tconst {\n\t\tmessagePublishedActionType = AMB_MESSAGE_PUBLISHED,\n\t\tencodeURIComponentForChannelId = true\n\t} = options;\n\tconst {action, dispatch} = coeffects;\n\tconst resolvedChannel = replaceChannelParameters(\n\t\tchannelId,\n\t\taction.payload,\n\t\tencodeURIComponentForChannelId\n\t);\n\n\t// Should be able to publish messages even if not subscribed to channel\n\tconst channelListener = ambClient.getChannel(resolvedChannel);\n\n\tif (channelListener) {\n\t\tconst {payload: message = {}} = action;\n\t\tchannelListener.publish(message);\n\t\tdispatch(messagePublishedActionType, message, {...action.meta, channelId: resolvedChannel});\n\t}\n}\n\n/**\n * Effect to publish messages over an amb channel.\n *\n * @function createAmbPublishEffect\n * @example\n * import {createAmbPublishEffect} from '@servicenow/ui-effect-amb';\n *\n * const chatMessagePublishedEffect = createAmbPublishEffect('/chat/messages', {\n *     messagePublishedActionType: 'CHAT_MESSAGE_PUBLISH_COMPLETED'\n * });\n *\n * const chatComponent = createCustomElement('sn-chat', {\n *      renderer: {\n *          view: (state, dispatch) => {\n *              function sendMessage() {\n *                  dispatch('CHAT_MESSAGE_PUBLISHED', {\n *                     text: 'Hello World'\n *                  });\n *              }\n *\n *              return <button on-click=\"sendMessage\">Send Message<\/button>\n *          }\n *      },\n *      actionHandlers: {\n *\t\t    'CHAT_MESSAGE_PUBLISHED': chatMessagePublishedEffect\n *\t\t}\n * });\n *\n * @param {String} channelId - AMB Channel ID\n * @param {Object} options\n * @param {Object} options.messagePublishedActionType = Action dispatched when an amb message publish completes\n * @param {Boolean} options.encodeURIComponentForChannelId - Encode channel id URL (default: true)\n * @return {Object} AMB Publish Effect Descriptor\n */\nexport default function createAmbPublishEffect(channelId, options) {\n\treturn {\n\t\teffect: ambPublishEffect,\n\t\targs: [getAMBClient(), channelId, options]\n\t};\n}\n","import getAMBClient from './getAMBClient';\nimport {createSubscriptionId} from './utils';\nimport {get, toUpper} from '@servicenow/ui-internal';\nimport createGarbageCollectorMap from './createGarbageCollectorMap';\n\nconst eventSubscriptionRegistry = createGarbageCollectorMap((subscriptionId, eventIds) => {\n\teventIds.forEach(id => getAMBClient().unsubscribeFromEvent(id));\n});\n\nexport function ambEventEffect(subscriptionId, ambClient, eventSubscriptionRegistry, coeffects) {\n\tconst {action, dispatch, host} = coeffects;\n\tconst shouldSubscribe = get(action, 'payload.subscribe', false);\n\tif (!eventSubscriptionRegistry.has(subscriptionId) && shouldSubscribe) {\n\t\tconst eventMap = ambClient.getEvents();\n\t\tconst eventIds = [];\n\t\tfor (const key in eventMap) {\n\t\t\teventIds.push(\n\t\t\t\tambClient.subscribeToEvent(eventMap[key], () => dispatch(toUpper(`AMB_EVENT_${key}`)))\n\t\t\t);\n\t\t}\n\n\t\teventSubscriptionRegistry.set(subscriptionId, eventIds, host);\n\t} else if (eventSubscriptionRegistry.has(subscriptionId) && !shouldSubscribe) {\n\t\teventSubscriptionRegistry.delete(subscriptionId);\n\t}\n}\n\n/**\n * Effect to subscribe to AMB events.\n *\n * Dispatches the following actions when the corresponding AMB event occurs:\n *  * AMB_EVENT_CONNECTION_INITIALIZED\n *  * AMB_EVENT_CONNECTION_OPENED\n *  * AMB_EVENT_CONNECTION_CLOSED\n *  * AMB_EVENT_CONNECTION_BROKEN\n *  * AMB_EVENT_SESSION_LOGGED_IN\n *  * AMB_EVENT_SESSION_LOGGED_OUT\n *  * AMB_EVENT_SESSION_INVALIDATED\n *\n * @function createAmbEventEffect\n * @example\n * import {createCustomElement} from '@servicenow/ui-core';\n * import {createAmbEventEffect} from '@servicenow/ui-effect-amb';\n *\n * import {\n *  AMB_EVENT_SUBSCRIPTION_CHANGED,\n *  AMB_EVENT_SESSION_LOGGED_IN,\n *  AMB_EVENT_SESSION_LOGGED_OUT\n * } from './actions';\n *\n * createCustomElement('user-status', {\n *  renderer: {\n *      view(state) {\n *          if(state.loggedIn)\n *              return <h1>Logged In<\/h1>\n *          else\n *              return <h1>Logged Out<\/h1>\n *      }\n *  },\n *  actionHandlers: {\n *      [COMPONENT_CONNECTED]: () => {\n *          dispatch(AMB_EVENT_SUBSCRIPTION_CHANGED, {subscribe: true});\n *      },\n *      [COMPONENT_DISCONNECTED]: () => {\n *          dispatch(AMB_EVENT_SUBSCRIPTION_CHANGED, {subscribe: false});\n *      },\n *      [AMB_EVENT_SUBSCRIPTION_CHANGED]: createAmbEventEffect(),\n *      [AMB_EVENT_SESSION_LOGGED_IN]: ({updateState}) => updateState({loggedIn: true}),\n *      [AMB_EVENT_SESSION_LOGGED_OUT]: ({updateState}) => updateState({loggedIn: false})\n *  }\n * });\n *\n * @return {Object} AMB Event Effect Descriptor\n */\nexport default function createAmbEventEffect() {\n\treturn {\n\t\teffect: ambEventEffect,\n\t\targs: [createSubscriptionId(), getAMBClient(), eventSubscriptionRegistry]\n\t};\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_effect_graphql = exports;\n\nexport * from './index.js';\n","export {default as createGraphQLEffect} from './gqlEffect';\nexport {hashQuery} from './gqlEffect';\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {getInteractionId} from '@servicenow/ui-metrics';\nimport {createHttpErrorAction, resolveDomainContext} from '@servicenow/ui-effect-helpers';\nimport {sendRequest} from './http';\nimport {configConstants, getConfigItem} from '@servicenow/ui-config';\n\nimport {\n\tcreateSubscriptionId,\n\tcreateRegistryId,\n\tgetAMBClient,\n\thandleGraphQLSubscription\n} from './subscriptions';\n\nimport {createGraphQLDocument, getOperationName, getSpanOptions} from './utils';\n\nimport {\n\tdefer,\n\tpick,\n\taddPendingNetworkActionForHost,\n\tisEqual,\n\tremovePendingNetworkActionForHost\n} from '@servicenow/ui-internal';\n\nimport documentToQueryString from './http/documentToQueryString';\nimport QueryContext from './queryContext';\nimport {SPAN_FOR_GRAPHQL, SPAN_KIND_CLIENT} from './constants';\nconst {trace, isValidTraceId} = uiAnalyticsConsumer;\nconst ambChannelRegistry = new Map();\n\nexport const GRAPHQL_REQUEST_STARTED = 'GRAPHQL_REQUEST_STARTED';\nexport const GRAPHQL_REQUEST_SUCCEEDED = 'GRAPHQL_REQUEST_SUCCEEDED';\nexport const GRAPHQL_REQUEST_FAILED = 'GRAPHQL_REQUEST_FAILED';\nexport const GRAPHQL_CACHE_UPDATED = 'GRAPHQL_CACHE_UPDATED';\n\nconst {GQL_CACHING_REFRESH_DELAY} = configConstants;\n\nconst cacheDelay = getConfigItem(GQL_CACHING_REFRESH_DELAY) || 10000;\n\nexport async function hashQuery(rawQuery) {\n\tconst gqlDoc = createGraphQLDocument(rawQuery);\n\tconst queryString = documentToQueryString(gqlDoc);\n\tconst msgUint8 = new TextEncoder().encode(queryString);\n\tconst hashBuffer = await crypto.subtle.digest('SHA-256', msgUint8);\n\tconst hashArray = Array.from(new Uint8Array(hashBuffer));\n\tconst hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');\n\treturn hashHex;\n}\n\nexport function* gqlEffect(\n\tquery,\n\toptions = {},\n\tsubscriptionId,\n\tgetAMBClient,\n\tambChannelRegistry,\n\tcoeffects\n) {\n\tconst {\n\t\tvariableList = [],\n\t\ttemplateVarList = [],\n\t\theaderList = [],\n\t\tcacheable = false,\n\t\t__unstableQueryHash = null,\n\t\tstartActionType = GRAPHQL_REQUEST_STARTED,\n\t\tstreaming = null,\n\t\tsuccessActionType = GRAPHQL_REQUEST_SUCCEEDED,\n\t\terrorActionType = GRAPHQL_REQUEST_FAILED,\n\t\tcacheUpdateActionType = GRAPHQL_CACHE_UPDATED,\n\t\tqueryParams = []\n\t} = options;\n\n\tconst containerId = coeffects.action.meta.id;\n\tconst registryId = createRegistryId(containerId, subscriptionId);\n\n\tconst {action, dispatch, host} = coeffects;\n\tconst {payload = {}} = action;\n\tconst variables = pick(payload, variableList);\n\tconst templateVars = pick(payload, templateVarList);\n\tconst headers = pick(payload, headerList);\n\tconst params = pick(payload, queryParams);\n\n\tconst parentSpan = action.meta.span;\n\tconst gqlSpan =\n\t\tparentSpan &&\n\t\ttrace(SPAN_FOR_GRAPHQL, {\n\t\t\t...getSpanOptions(host),\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\ttraceId: parentSpan.traceId,\n\t\t\t...(isValidTraceId(parentSpan.traceId) && {parentSpan})\n\t\t});\n\n\tconst actionMetaData = {\n\t\t...action.meta,\n\t\t...(gqlSpan && isValidTraceId(gqlSpan.traceId) && {span: gqlSpan}),\n\t\toptions: {\n\t\t\tquery,\n\t\t\tvariables,\n\t\t\ttemplateVars,\n\t\t\theaders\n\t\t}\n\t};\n\taddPendingNetworkActionForHost(action, host);\n\ttry {\n\t\tconst queryContext = new QueryContext({\n\t\t\tinitialPayloadActionType: streaming?.initialPayloadActionType,\n\t\t\tadditionalDataActionType: streaming?.additionalDataActionType,\n\t\t\tsuccessActionType,\n\t\t\tdispatch,\n\t\t\tactionMetaData,\n\t\t\tspan: gqlSpan && isValidTraceId(gqlSpan.traceId) ? gqlSpan : null\n\t\t});\n\t\tconst operationName = getOperationName(host.tagName);\n\t\tconst domainContext = resolveDomainContext(host);\n\n\t\tif (domainContext) actionMetaData.domainContext = domainContext;\n\n\t\tdispatch(startActionType, {}, actionMetaData);\n\t\tconst interactionId = getInteractionId(action.meta);\n\n\t\tconst result = yield sendRequest(\n\t\t\toperationName,\n\t\t\tvariables,\n\t\t\ttemplateVars,\n\t\t\tdomainContext,\n\t\t\theaders,\n\t\t\t{\n\t\t\t\thost,\n\t\t\t\tinteractionId,\n\t\t\t\tactionType: action.type,\n\t\t\t\tcacheable,\n\t\t\t\t__unstableDisableBatching: payload.__unstableDisableBatching,\n\t\t\t\t__unstableQueryHash,\n\t\t\t\tquery,\n\t\t\t\tparams\n\t\t\t},\n\t\t\tqueryContext\n\t\t);\n\t\tconst {\n\t\t\theaders: responseHeaders,\n\t\t\tisCachedResult = false,\n\t\t\trefetchPromise = null,\n\t\t\t...successPayload\n\t\t} = result;\n\n\t\tqueryContext.successPayloadReceived(successPayload, responseHeaders);\n\t\tif (isCachedResult && refetchPromise) {\n\t\t\tdefer(() => {\n\t\t\t\trefetchPromise().then(refetchResult => {\n\t\t\t\t\t// compare cachedResult and refetchResult, refetch result will not be streamed\n\t\t\t\t\t// so can use refetchResult directly for comparison\n\t\t\t\t\tif (!isEqual(queryContext.finalPayload.data, refetchResult[0].data)) {\n\t\t\t\t\t\tdispatch(cacheUpdateActionType, refetchResult[0], {\n\t\t\t\t\t\t\t...actionMetaData,\n\t\t\t\t\t\t\tspan: gqlSpan,\n\t\t\t\t\t\t\tresponseHeaders\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, cacheDelay);\n\t\t}\n\n\t\t// isSubscription() searches for path 'definitions[0].operation' in the original document\n\t\t// for better performance, shortcut subscription detection without using createGraphQLDocument\n\t\tif (query?.trimStart().startsWith('subscription')) {\n\t\t\tconst {data} = result;\n\t\t\tconst ambClient = getAMBClient();\n\t\t\thandleGraphQLSubscription(\n\t\t\t\taction,\n\t\t\t\toptions,\n\t\t\t\tdata,\n\t\t\t\tactionMetaData,\n\t\t\t\tdispatch,\n\t\t\t\tregistryId,\n\t\t\t\tambClient,\n\t\t\t\tambChannelRegistry\n\t\t\t);\n\t\t}\n\t} catch (error) {\n\t\tconst {response = {}, result} = error;\n\t\tconst {status, statusText} = response;\n\t\tconst responseHeaders = response?.headers;\n\n\t\tdispatch(\n\t\t\terrorActionType,\n\t\t\terror,\n\t\t\t{\n\t\t\t\t...actionMetaData,\n\t\t\t\t...(gqlSpan && isValidTraceId(gqlSpan.traceId) && {span: gqlSpan}),\n\t\t\t\tresponseHeaders\n\t\t\t},\n\t\t\ttrue\n\t\t);\n\n\t\t// Standard action dispatched on HTTP errors from the server\n\t\tconst {\n\t\t\ttype,\n\t\t\tpayload,\n\t\t\tmeta,\n\t\t\terror: httpError\n\t\t} = createHttpErrorAction(status, statusText, '', result, actionMetaData);\n\t\tif (gqlSpan && isValidTraceId(gqlSpan.traceId)) meta.span = gqlSpan;\n\t\tdispatch(type, payload, meta, httpError);\n\t} finally {\n\t\tremovePendingNetworkActionForHost(action, host);\n\t\tif (gqlSpan) gqlSpan.end();\n\t}\n}\n\n/**\n * Effect that makes a GraphQL request and dispatches actions at relevant parts of the life cycle:\n *  - Before the request is sent\n *  - After the request has returned (success or error)\n *\n * The Success and Action Types that are returned also contain a `meta` property with helpful information\n * useful for debugging purposes including the response headers.\n *\n * @function createGraphQLEffect\n * @example\n * import {createGraphQLEffect} from '@servicenow/ui-effect-graphql';\n *\n * const incidentQuery = `query ($sys_id: String!) {\n *                          GlideRecord_Query (sys_id: $sys_id) {\n *                            incident {\n *                              _results {\n *                                sys_id {\n *                                  displayValue\n *                                }\n *                              }\n *                            }\n *                          }\n *                        }`;\n *\n * const fetchIncidentEffect = createGraphQLEffect(incidentQuery, {\n *     variableList: ['sys_id']\n * });\n *\n * // Register with component action handlers:\n * {\n *     actionHandlers:{\n *         'INCIDENT_FETCHED': fetchIncidentEffect\n *     }\n * }\n *\n * @param {String} query - GraphQL query\n * @param {Object} options\n * @param {Array<String>} options.variableList - GraphQL variables to use from action payload\n * @param {Array<String>} options.templateVarList - Template variables to use from action payload\n * @param {Object<String>} options.headerList - GraphQL request headers\n * @param {String} options.startActionType - Action to be dispatched when the GraphQL request has been issued\n * @param {Object} options.streaming - A JSON object to describe how to handle data when a streaming GraphQL response is expected\n * @param {String} options.&lt;streaming&gt;.initialPayloadActionType - The action to be dispatched when the initial part of the GraphQL payload is received\n * @param {String} options.&lt;streaming&gt;.additionalDataActionType - The action to be dispatched when a streaming update for the GraphQL response is received, this action (assuming the GraphQL Endpoint & schema support it) will be called multiple times until the whole payload is received. The updates will be received in the following format https://github.com/graphql/graphql-wg/blob/main/rfcs/DeferStream.md#payload-format\n * @param {String} options.successActionType - Action to be dispatched when the GraphQL request has either successfully completed or failed with an error not related to network issue\n * @param {String} options.cacheUpdateActionType - Action to be dispatched when the GraphQL cache has been updated with a new value\n * @param {String} options.errorActionType - Action to be dispatched only when the GraphQL request has failed due to network errors, not due to errors thrown in Glide\n * @param {String} options.subscriptionStartedActionType - Action to be dispatched when GraphQL subscription starts\n * @param {String} options.subscriptionSuccessActionType - Action to be dispatched when GraphQL subscription succeeds\n * @param {String} options.subscriptionFailedActionType - Action to be dispatched when GraphQL subscription fails\n * @param {String} options.unsubscribeSuccessActionType - Action to be dispatched when unsubscribing from GraphQL subscription\n * @param {String} options.itemEnteredActionType - Action to be dispatched when an item enters the GraphQL subscription query\n * @param {String} options.itemChangedActionType - Action to be dispatched when an item has changed in the GraphQL subscription query\n * @param {String} options.itemExitedActionType - Action to be dispatched when an item exits the GraphQL subscription query\n * @param {Array<String>} options.queryParams - Array of properties in dispatched action to map values to URL query string variables (\"api/users?id=abc123)\n * @return {Object} GraphQL Effect Descriptor\n */\n\nexport default function createGraphQLEffect(query, options) {\n\treturn {\n\t\teffect: gqlEffect,\n\t\targs: [query, options, createSubscriptionId(), getAMBClient, ambChannelRegistry]\n\t};\n}\n","export {default as createHttpErrorAction} from './createHttpErrorAction';\n\nexport {domainSeparationProperties} from '@servicenow/ui-internal';\nexport {default as resolveDomainContext} from './resolveDomainContext';\n\n// Caching\nexport {getUserSysId} from './cache/getUserSysId';\nexport {hashString} from './cache/hash';\nexport {makeLRUCachePolicy} from './cache/cachePolicies/lruCachePolicy';\nexport {makePersistentCache} from './cache/cache';\nexport {murmurhash3} from './cache/murmur-hash3';\nexport {openStore} from './cache/store';\n","/**\n * @private\n * @param status\n * @param statusText\n * @param message\n * @param data\n * @param meta\n * @returns {{payload: {data: *, statusText: *, message: *, status: *}, meta: *, type: string, error: boolean}}\n */\nexport default function createHttpErrorAction(status, statusText, message, data, meta) {\n\treturn {\n\t\ttype: 'HTTP_ERROR_OCCURRED',\n\t\tpayload: {\n\t\t\tstatus,\n\t\t\tstatusText,\n\t\t\tmessage,\n\t\t\tdata\n\t\t},\n\t\tmeta: {\n\t\t\t...meta,\n\t\t\tstopPropagation: false,\n\t\t\tstatus,\n\t\t\tstatusText\n\t\t},\n\t\terror: true\n\t};\n}\n","import {domainSeparationProperties, memoize, kebabCase} from '@servicenow/ui-internal';\n\nconst toAttributeName = memoize(\n\tfunction toAttributeName(propName) {\n\t\treturn kebabCase(propName);\n\t},\n\t{profileName: 'effect-helpers-toAttributeName'}\n);\n\nconst {NOW_DS_DOMAIN_ID, NOW_DS_DOMAIN_SCOPE, NOW_DS_RECORD_ID, NOW_DS_RECORD_TABLE} =\n\tdomainSeparationProperties;\n\nfunction isValidRecordArgument(table, id) {\n\treturn table && id;\n}\n\nfunction getDomainProp(el, name) {\n\treturn el[name] || (el.getAttribute && el.getAttribute(toAttributeName(name)));\n}\n\nfunction createDomainContextProperty(el) {\n\tconst table = getDomainProp(el, NOW_DS_RECORD_TABLE);\n\tconst sysId = getDomainProp(el, NOW_DS_RECORD_ID);\n\tconst domain = getDomainProp(el, NOW_DS_DOMAIN_ID);\n\tconst scope = getDomainProp(el, NOW_DS_DOMAIN_SCOPE);\n\tconst domainContext = {\n\t\t...(isValidRecordArgument(table, sysId) && {\n\t\t\t[NOW_DS_RECORD_TABLE]: table,\n\t\t\t[NOW_DS_RECORD_ID]: sysId\n\t\t}),\n\t\t...(domain && {\n\t\t\t[NOW_DS_DOMAIN_ID]: domain\n\t\t}),\n\t\t...(scope && {\n\t\t\t[NOW_DS_DOMAIN_SCOPE]: scope\n\t\t})\n\t};\n\treturn hasDomainProps(domainContext) ? domainContext : undefined;\n}\n\nexport function getSeismicHoistTargetFor(seismicHoistElement) {\n\treturn seismicHoistElement.sourceElement;\n}\n\nfunction isSeismicHoistElement(el) {\n\treturn el.tagName === 'SEISMIC-HOIST';\n}\n\n/**\n * Element contains a reserved domain separation property\n *\n * @param el\n * @return boolean\n */\nfunction hasDomainProps(el) {\n\treturn !!(\n\t\t(getDomainProp(el, NOW_DS_RECORD_TABLE) && getDomainProp(el, NOW_DS_RECORD_ID)) ||\n\t\tgetDomainProp(el, NOW_DS_DOMAIN_ID) ||\n\t\tgetDomainProp(el, NOW_DS_DOMAIN_SCOPE)\n\t);\n}\n\n/**\n *\n * @param element\n * @returns Object|undefined\n */\nexport default function resolveDomainContext(element) {\n\tlet el = element;\n\twhile (el) {\n\t\tif (!isSeismicHoistElement(el) && hasDomainProps(el)) return createDomainContextProperty(el);\n\t\tel = isSeismicHoistElement(el) ? getSeismicHoistTargetFor(el) : el.parentNode || el.host;\n\t}\n\treturn undefined;\n}\n","/**\n * Find any existing user info that may exist on the window\n * @param {*} windowObj\n */\nexport const getUserSysId = windowObj => {\n\t// we should only get this default user in a dev scenario or there is a bug with UXF\n\tconst userSysId = 'defaultSeismicUser';\n\n\tif (!windowObj) {\n\t\tsetUserSysId(userSysId);\n\t\treturn userSysId;\n\t}\n\n\t// Check for tempUserSysId\n\tif (windowObj.nowUiFramework && windowObj.nowUiFramework.tempUserSysId)\n\t\treturn windowObj.nowUiFramework.tempUserSysId;\n\n\t// Jelly && UXF based pages\n\tif (windowObj.NOW && windowObj.NOW.user && windowObj.NOW.user.userID)\n\t\treturn windowObj.NOW.user.userID;\n\n\t// Fall back on window token\n\tif (windowObj.g_ck) return windowObj.g_ck;\n\n\t//Is there a better way I'm missing?\n\tsetUserSysId(userSysId);\n\treturn userSysId;\n};\n\nexport const setUserSysId = userSysId => {\n\tglobalThis.nowUiFramework = globalThis.nowUiFramework || {};\n\tglobalThis.nowUiFramework.tempUserSysId = userSysId;\n};\n","export const hashString = string => {\n\tlet hash = 0;\n\tfor (let i = 0; i < string.length; i++) hash = (Math.imul(31, hash) + string.charCodeAt(i)) | 0;\n\n\treturn hash;\n};\n","// Simple LRU cache policy for use with the persistent IndexedDB cache\n\n// const {log} = console;\n\nexport const makeLRUCachePolicy = capacity => {\n\tlet lruArray = [];\n\n\tconst initLRU = all => {\n\t\tconst entries = Object.values(all);\n\t\t// log(`entries=${JSON.stringify(entries, null, 2)}`);\n\n\t\t// Sort all by timestamp in newest first order\n\t\tentries.sort((a, b) => {\n\t\t\tconst dateA = a.cachePolicyState.lastAccessed;\n\t\t\tconst dateB = b.cachePolicyState.lastAccessed;\n\t\t\t// log(`dateB=${dateB}`);\n\t\t\t// log(`dateA=${dateA}`);\n\t\t\tconst result = dateB - dateA;\n\t\t\t// log(`result=${result}`);\n\n\t\t\treturn result;\n\t\t});\n\t\t// log(`sorted=${JSON.stringify(all, null, 2)}`);\n\n\t\tfor (const entry of entries) lruArray.push(entry.key);\n\n\t\t// log(`lruArray=${JSON.stringify(lruArray, null, 2)}`);\n\t};\n\n\tconst evict = capacity => {\n\t\tconst len = lruArray.length;\n\t\tif (len > capacity) {\n\t\t\t// Even if this is over by more than one, we trim it to capacity\n\t\t\tconst keysToDelete = lruArray.splice(capacity, len - capacity);\n\t\t\t// log(`evict(): keysToDelete=${JSON.stringify(keysToDelete, null, 2)}`);\n\t\t\treturn keysToDelete;\n\t\t}\n\n\t\treturn [];\n\t};\n\n\t// Bump key to the front and evict if we are over capacity\n\tconst updateLRU = key => {\n\t\tconst index = lruArray.findIndex(k => k === key);\n\t\tlet keysToDelete;\n\t\tif (index === -1) {\n\t\t\t// Not found, so first evict to make space, then prepend the new key\n\t\t\tkeysToDelete = evict(capacity - 1);\n\t\t} else {\n\t\t\tkeysToDelete = evict(capacity);\n\t\t\tlruArray.splice(index, 1);\n\t\t}\n\t\tlruArray = [key, ...lruArray];\n\t\t// log(`updateLRU(): lruArray=${JSON.stringify(lruArray, null, 2)}`);\n\n\t\tconst result = {keysToDelete, state: {lastAccessed: new Date()}};\n\t\t// log(`updateLRU(): result=${JSON.stringify(result, null, 2)}`);\n\t\treturn result;\n\t};\n\n\tconst deleteFromLRU = key => {\n\t\tconst index = lruArray.findIndex(k => k === key);\n\t\tif (index === -1) return;\n\n\t\tlruArray.splice(index, 1);\n\t};\n\n\tconst clearLRU = () => {\n\t\tlruArray = [];\n\t};\n\n\treturn {\n\t\tcapacity,\n\t\tonInit: initLRU,\n\t\tonHit: updateLRU,\n\t\tonSet: updateLRU,\n\t\tonDelete: deleteFromLRU,\n\t\tonClear: clearLRU\n\t};\n};\n","import {openStore} from './store';\n\nconst cachePromises = {};\n\n// A persistent cache backed by IndexedDB\nexport const makePersistentCache = async ({dbName, storeName, schemaVersion, options}) => {\n\t// In case multiple clients want caches for the same store, we use the previously created promise to ensure\n\t// they all end up with the same one.  They will all get back the same resolved promise.\n\tconst dbKey = `${dbName}_${storeName}_${schemaVersion}`;\n\tif (cachePromises[dbKey]) return cachePromises[dbKey];\n\n\tconst creationPromise = new Promise((resolve, reject) => {\n\t\tconst map = new Map();\n\n\t\t// Persistent cache\n\t\topenStore({dbName, storeName, schemaVersion, options})\n\t\t\t.then(store => {\n\t\t\t\tlet inMemoryCacheHits = 0;\n\t\t\t\tlet persistentCacheHits = 0;\n\n\t\t\t\t// Return an object with the interface methods we expose\n\t\t\t\tconst self = {\n\t\t\t\t\tname() {\n\t\t\t\t\t\treturn dbName;\n\t\t\t\t\t},\n\n\t\t\t\t\tversion() {\n\t\t\t\t\t\treturn schemaVersion;\n\t\t\t\t\t},\n\n\t\t\t\t\tasync has(key) {\n\t\t\t\t\t\treturn map.has(key) || (await store.has(key));\n\t\t\t\t\t},\n\n\t\t\t\t\tasync set(key, value) {\n\t\t\t\t\t\t// log(`cache.set('${key}', '${value}')`);\n\t\t\t\t\t\t// NOTE: We always set directly into the in-memory Map, never into the underlying IndexedDB\n\t\t\t\t\t\tmap.set(key, value);\n\t\t\t\t\t},\n\n\t\t\t\t\tasync get(key, defaultValue = undefined) {\n\t\t\t\t\t\t// log(`cache.get(${key},${defaultValue})`);\n\t\t\t\t\t\tlet value = map.get(key);\n\t\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\t\tinMemoryCacheHits += 1;\n\t\t\t\t\t\t\t// log(`inMemoryCacheHits: ${inMemoryCacheHits}`);\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check the persistent cache\n\t\t\t\t\t\tvalue = await store.get(key, defaultValue);\n\t\t\t\t\t\tif (value !== undefined) {\n\t\t\t\t\t\t\tpersistentCacheHits += 1;\n\t\t\t\t\t\t\t// log(`persistentCacheHits: ${persistentCacheHits}`);\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn defaultValue;\n\t\t\t\t\t},\n\n\t\t\t\t\tasync getAll(includeMetadata = false) {\n\t\t\t\t\t\t// Get the persistent entries first\n\t\t\t\t\t\tconst result = await store.getAll(includeMetadata);\n\n\t\t\t\t\t\t// In-memory cache entries will overwrite persistent entries\n\t\t\t\t\t\tfor (const [key, value] of map.entries()) result[key] = value;\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t},\n\n\t\t\t\t\t// Delete from both the in-memory and persistent caches\n\t\t\t\t\tasync delete(key) {\n\t\t\t\t\t\tawait store.delete(key);\n\t\t\t\t\t\tmap.delete(key);\n\t\t\t\t\t},\n\n\t\t\t\t\tasync clear() {\n\t\t\t\t\t\tmap.clear();\n\t\t\t\t\t\tawait store.clear();\n\t\t\t\t\t\tinMemoryCacheHits = 0;\n\t\t\t\t\t\tpersistentCacheHits = 0;\n\t\t\t\t\t},\n\n\t\t\t\t\tclose() {\n\t\t\t\t\t\tself.clear();\n\t\t\t\t\t\tstore.close();\n\t\t\t\t\t},\n\n\t\t\t\t\t// Force all locally cached values into the database\n\t\t\t\t\tasync persist() {\n\t\t\t\t\t\tconst entries = map.entries();\n\t\t\t\t\t\tawait store.setMultiple(entries);\n\t\t\t\t\t\tmap.clear();\n\t\t\t\t\t},\n\n\t\t\t\t\tinMemorySize() {\n\t\t\t\t\t\treturn map.size;\n\t\t\t\t\t},\n\n\t\t\t\t\tasync persistedSize() {\n\t\t\t\t\t\treturn await store.size();\n\t\t\t\t\t},\n\n\t\t\t\t\tinMemoryCacheHits() {\n\t\t\t\t\t\treturn inMemoryCacheHits;\n\t\t\t\t\t},\n\n\t\t\t\t\tpersistentCacheHits() {\n\t\t\t\t\t\treturn persistentCacheHits;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tresolve(self);\n\t\t\t})\n\t\t\t.catch(e => {\n\t\t\t\treject(e);\n\t\t\t});\n\t});\n\n\t// Remember this promise so we can return it again if another caller asks for the same cache\n\tcachePromises[dbKey] = creationPromise;\n\treturn creationPromise;\n};\n","import {configConstants, getConfigItem} from '@servicenow/ui-config';\n\n// Persistent database key/value cache implemented over IndexedDB with an async interface\n\nconst {GQL_CACHE_CAPACITY} = configConstants;\n\nconst cacheCapacity = getConfigItem(GQL_CACHE_CAPACITY);\n\nexport const openStore = async params => {\n\tconst {dbName, storeName, schemaVersion, options = {}} = params;\n\n\tlet db = undefined;\n\tconst cachePolicy = {\n\t\tcapacity: cacheCapacity,\n\t\tonInit: () => [],\n\t\tonHit: () => ({keysToDelete: [], state: []}),\n\t\tonSet: () => ({keysToDelete: [], state: []}),\n\t\tonDelete: () => [],\n\t\tonClear: () => undefined,\n\t\t...options.cachePolicy // Caller-provided options override the defaults above\n\t};\n\n\tconst getStore = mode => db.transaction(storeName, mode).objectStore(storeName);\n\n\tconst self = {\n\t\tasync get(key, defaultValue = undefined) {\n\t\t\treturn new Promise(resolve => {\n\t\t\t\tconst store = getStore('readwrite');\n\t\t\t\tconst getRequest = store.get(key);\n\n\t\t\t\tgetRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`Error retrieving item in getter for '${key}': ${name}`);\n\t\t\t\t\tresolve(defaultValue);\n\t\t\t\t};\n\n\t\t\t\tgetRequest.onsuccess = event => {\n\t\t\t\t\t// log(`Item for ${key} is ${event.target.result}`);\n\t\t\t\t\tconst entry = event.target.result;\n\n\t\t\t\t\t// Create a set request and save the metadata for this key/value (don't resolve this request until the set is complete)\n\t\t\t\t\tconst {keysToDelete} = cachePolicy.onHit(key);\n\n\t\t\t\t\t// TODO: Delete all keys the cachePolicy asked us to\n\t\t\t\t\tfor (const key of keysToDelete) store.delete(key);\n\t\t\t\t\t// TODO: Probably don't really need to wait for these to delete, so let's not for now\n\n\t\t\t\t\tself\n\t\t\t\t\t\t.set(key, entry.value)\n\t\t\t\t\t\t.then(() => resolve(entry.value))\n\t\t\t\t\t\t.catch(() => resolve(defaultValue));\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync getAll(includeMetaData = false) {\n\t\t\treturn new Promise(resolve => {\n\t\t\t\t// log(`getAll(): dbName=${dbName}, storeName=${storeName}`);\n\t\t\t\tconst store = getStore('readonly');\n\t\t\t\tconst getAllKeysRequest = store.getAllKeys();\n\t\t\t\tconst all = {};\n\n\t\t\t\tgetAllKeysRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`Error in getAll(): ${name}`);\n\t\t\t\t\tresolve({});\n\t\t\t\t};\n\n\t\t\t\tgetAllKeysRequest.onsuccess = event => {\n\t\t\t\t\t// log(`Result for getAll() is ${JSON.stringify(event.target.result)}`);\n\n\t\t\t\t\t// Get all the entries\n\t\t\t\t\tconst keys = event.target.result;\n\t\t\t\t\tlet numRemaining = keys.length;\n\t\t\t\t\tif (numRemaining === 0) resolve({});\n\n\t\t\t\t\tfor (const key of keys) {\n\t\t\t\t\t\tconst getRequest = store.get(key);\n\n\t\t\t\t\t\tgetRequest.onerror = event => {\n\t\t\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\t\t\tconsole.error(`Error in getAll(): ${name}`);\n\t\t\t\t\t\t\tresolve({});\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\tgetRequest.onsuccess = event => {\n\t\t\t\t\t\t\tconst entry = event.target.result;\n\t\t\t\t\t\t\tall[key] = includeMetaData ? entry : entry.value;\n\t\t\t\t\t\t\tnumRemaining -= 1;\n\t\t\t\t\t\t\tif (numRemaining === 0) resolve(all);\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync set(key, value) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readwrite');\n\n\t\t\t\tconst {keysToDelete, state} = cachePolicy.onSet(key);\n\n\t\t\t\tconst putRequest = store.put({key, value, cachePolicyState: state}, key);\n\n\t\t\t\t// TODO: Delete all keys the cachePolicy asked us to\n\t\t\t\tfor (const key of keysToDelete) store.delete(key);\n\t\t\t\t// TODO: Probably don't really need to wait for these to delete, so let's not for now\n\n\t\t\t\tputRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`Error setting item in set() for '${key}': ${name}`);\n\t\t\t\t\treject(event.target?.error);\n\t\t\t\t};\n\n\t\t\t\tputRequest.onsuccess = event => {\n\t\t\t\t\t// log(`Item for ${key} is ${event.target.result}`);\n\t\t\t\t\tresolve(event.target.value);\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync setMultiple(obj) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readwrite');\n\n\t\t\t\tlet numRequestsMade = 0;\n\t\t\t\tlet numRequestsComplete = 0;\n\n\t\t\t\tfor (const [key, value] of obj) {\n\t\t\t\t\tconst {keysToDelete, state} = cachePolicy.onSet(key);\n\n\t\t\t\t\t// TODO: Delete all keys the cachePolicy asked us to\n\t\t\t\t\tfor (const key of keysToDelete) store.delete(key);\n\t\t\t\t\t// TODO: Probably don't really need to wait for these to delete, so let's not for now\n\n\t\t\t\t\tconst putRequest = store.put({key, value, cachePolicyState: state}, key);\n\n\t\t\t\t\t// TODO: Should abort() if any failures and ideally abort the txn\n\t\t\t\t\tputRequest.onerror = event => {\n\t\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\t\tconsole.error(`Error setting item in setMultiple: ${name}`);\n\t\t\t\t\t\tnumRequestsComplete += 1;\n\t\t\t\t\t\tif (numRequestsComplete === numRequestsMade) reject(event.target?.error);\n\t\t\t\t\t};\n\n\t\t\t\t\tputRequest.onsuccess = () => {\n\t\t\t\t\t\tnumRequestsComplete += 1;\n\t\t\t\t\t\tif (numRequestsComplete === numRequestsMade) resolve();\n\t\t\t\t\t};\n\n\t\t\t\t\tnumRequestsMade += 1;\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\tasync has(key) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readonly');\n\t\t\t\tconst countRequest = store.count(key);\n\n\t\t\t\tcountRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`Error getting count for '${key}': ${name}`);\n\t\t\t\t\treject(event.target?.error);\n\t\t\t\t};\n\n\t\t\t\tcountRequest.onsuccess = () => {\n\t\t\t\t\tresolve(countRequest.result > 0);\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync clear() {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readwrite');\n\t\t\t\tconst clearRequest = store.clear();\n\n\t\t\t\tclearRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`IndexedDB clear failed. ${name}`);\n\t\t\t\t\treject(event.target?.error);\n\t\t\t\t};\n\n\t\t\t\tclearRequest.onsuccess = () => {\n\t\t\t\t\t// options.onClear();\n\t\t\t\t\tresolve();\n\t\t\t\t\t// log('Store Cleared');\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync delete(key) {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readwrite');\n\t\t\t\tconst deleteRequest = store.delete(key);\n\n\t\t\t\tdeleteRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`IndexedDB delete failed. ${name}`);\n\t\t\t\t\treject(event.target?.error);\n\t\t\t\t};\n\n\t\t\t\tdeleteRequest.onsuccess = () => {\n\t\t\t\t\tresolve();\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tasync size() {\n\t\t\treturn new Promise((resolve, reject) => {\n\t\t\t\tconst store = getStore('readonly');\n\t\t\t\tconst countRequest = store.count();\n\n\t\t\t\tcountRequest.onerror = event => {\n\t\t\t\t\tconst {name} = event.target?.error || {};\n\t\t\t\t\tconsole.error(`Error getting total record count for ${storeName}: ${name}`);\n\t\t\t\t\treject(event.target?.error);\n\t\t\t\t};\n\n\t\t\t\tcountRequest.onsuccess = () => {\n\t\t\t\t\tresolve(countRequest.result);\n\t\t\t\t};\n\t\t\t});\n\t\t},\n\n\t\tclose() {\n\t\t\tdb.close();\n\t\t}\n\t};\n\n\t// Open the database and return an object that can reference the db via closure\n\treturn new Promise((resolve, reject) => {\n\t\tif (!globalThis.indexedDB) {\n\t\t\treject(\n\t\t\t\t'Browser does not seem to support IndexedDB, which is required for this feature to work.'\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst dbRequest = globalThis.indexedDB.open(dbName, schemaVersion);\n\n\t\tdbRequest.onsuccess = event => {\n\t\t\tdb = event.target.result;\n\t\t\t// log('openStore.onsuccess');\n\n\t\t\t// Give the policy a chance to update its internal state\n\t\t\tself.getAll(true).then(allEntries => {\n\t\t\t\tcachePolicy.onInit(allEntries);\n\t\t\t\tresolve(self);\n\t\t\t});\n\t\t};\n\n\t\tdbRequest.onerror = event => {\n\t\t\tconst {name} = event.target?.error || {};\n\t\t\tconsole.error(\n\t\t\t\t`openStore: IndexedDB error: ${name}.\\nBrowser possibly does not support IndexedDB.`\n\t\t\t);\n\t\t\treject(event.target?.error);\n\t\t};\n\n\t\tdbRequest.onupgradeneeded = event => {\n\t\t\t// log('openStore.onupgradeneeded');\n\n\t\t\tdb = event.target.result;\n\n\t\t\ttry {\n\t\t\t\tdb.createObjectStore(storeName, {\n\t\t\t\t\tautoIncrement: true\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`EXCEPTION: ${e}`);\n\t\t\t}\n\t\t};\n\t});\n};\n\nasync function dropDatabaseImpl(dbName) {\n\treturn new Promise((resolve, reject) => {\n\t\tif (!globalThis.indexedDB) {\n\t\t\treject(\n\t\t\t\t'Browser does not seem to support IndexedDB, which is required for this feature to work.'\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst deleteRequest = globalThis.indexedDB.deleteDatabase(dbName);\n\n\t\tdeleteRequest.onsuccess = () => {\n\t\t\t// log('Deleted database successfully');\n\t\t\tresolve();\n\t\t};\n\n\t\tdeleteRequest.onerror = event => {\n\t\t\tconst {name} = event.target?.error || {};\n\t\t\tconsole.error(`Error deleting database for name '${dbName}': ${name}`);\n\t\t\treject(event.target?.error);\n\t\t};\n\n\t\tdeleteRequest.onblocked = () => {\n\t\t\t// log('Database is busy.  Please try again later.  Goodbye.');\n\t\t\treject('Database is busy.');\n\t\t};\n\t});\n}\n\n// Drop an entire database\nexport async function dropDatabase(dbName) {\n\tlet result;\n\t// This needs to run at least twice if the database was recently closed\n\tdo {\n\t\ttry {\n\t\t\tresult = await dropDatabaseImpl(dbName);\n\t\t} catch (e) {\n\t\t\t// Database was busy and could not be deleted\n\t\t}\n\t} while (result);\n}\n\n// // Drop a single, named store within a given database\n// async function dropStoreImpl(storeName, dbName, version) {\n// \tlog('dropStore 1');\n// \t// Open the database and return an object that can reference the db via closure\n// \treturn new Promise((resolve, reject) => {\n// \t\tif (!globalThis.indexedDB) {\n// \t\t\treject(\n// \t\t\t\t'Browser does not seem to support IndexedDB, which is required for this feature to work.'\n// \t\t\t);\n// \t\t\treturn;\n// \t\t}\n\n// \t\tlog('dropStore 2');\n// \t\tconst dbRequest = globalThis.indexedDB.open(dbName, version);\n// \t\tlog('dropStore 3');\n\n// \t\tdbRequest.onsuccess = () => {\n// \t\t\tlog('opened!');\n// \t\t\tresolve();\n// \t\t};\n\n// \t\tdbRequest.onerror = err => {\n// \t\t\tlog(`err=${JSON.stringify(err)}`);\n// \t\t\terror(`dropStore: IndexedDB error: ${err.target.errorCode}`);\n// \t\t\treject(err.target.error);\n// \t\t};\n\n// \t\tlog('dropStore 4');\n\n// \t\tdbRequest.onupgradeneeded = event => {\n// \t\t\tlog('dbRequest.onupgradeneeded');\n// \t\t\tconst db = event.target.result;\n// \t\t\tlog(`db=${db} storeName=${storeName}`);\n\n// \t\t\tdb.deleteObjectStore(storeName);\n// \t\t\tresolve();\n// \t\t};\n\n// \t\tlog('dropStore 6');\n// \t});\n// }\n\n// export async function dropStore(storeName, dbName, version) {\n// \ttry {\n// \t\tawait dropStoreImpl(storeName, dbName, version);\n// \t} catch (e) {\n// \t\tlog(`dropStore Exception: ${e}`);\n// \t}\n// }\n","/* eslint-disable no-fallthrough */\nexport function murmurhash3(key, seed) {\n\tconst remainder = key.length & 3; // key.length % 4\n\tconst bytes = key.length - remainder;\n\tlet h1 = seed;\n\tlet k1;\n\tlet h1b;\n\tconst c1 = 0xcc9e2d51;\n\tconst c2 = 0x1b873593;\n\tlet i = 0;\n\n\twhile (i < bytes) {\n\t\tk1 =\n\t\t\t(key.charCodeAt(i) & 0xff) |\n\t\t\t((key.charCodeAt(i + 1) & 0xff) << 8) |\n\t\t\t((key.charCodeAt(i + 2) & 0xff) << 16) |\n\t\t\t((key.charCodeAt(i + 3) & 0xff) << 24);\n\t\ti += 4;\n\n\t\tk1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n\t\tk1 = (k1 << 15) | (k1 >>> 17);\n\t\tk1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n\n\t\th1 ^= k1;\n\t\th1 = (h1 << 13) | (h1 >>> 19);\n\t\th1b = ((h1 & 0xffff) * 5 + ((((h1 >>> 16) * 5) & 0xffff) << 16)) & 0xffffffff;\n\t\th1 = (h1b & 0xffff) + 0x6b64 + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16);\n\t}\n\n\tk1 = 0;\n\n\t// Intentional fallthoughs below\n\tswitch (remainder) {\n\t\tcase 3:\n\t\t\tk1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n\t\tcase 2:\n\t\t\tk1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n\t\tcase 1:\n\t\t\tk1 ^= key.charCodeAt(i) & 0xff;\n\n\t\t\tk1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n\t\t\tk1 = (k1 << 15) | (k1 >>> 17);\n\t\t\tk1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n\t\t\th1 ^= k1;\n\t}\n\n\th1 ^= key.length;\n\n\th1 ^= h1 >>> 16;\n\th1 = ((h1 & 0xffff) * 0x85ebca6b + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n\th1 ^= h1 >>> 13;\n\th1 = ((h1 & 0xffff) * 0xc2b2ae35 + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)) & 0xffffffff;\n\th1 ^= h1 >>> 16;\n\n\treturn h1 >>> 0;\n}\n","export {default as sendRequest} from './sendRequest';\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\nimport createQueryBatcher from './createQueryBatcher';\n\nconst {DISABLE_GQL_BATCHING} = configConstants;\nconst batchingEnabled = !getConfigItem(DISABLE_GQL_BATCHING);\n\nconst batcher = createQueryBatcher({\n\tbatchingEnabled\n});\n\nexport default function sendRequest(\n\toperationName = '',\n\tvariables = {},\n\ttemplateVars = {},\n\tdomainContext = {},\n\theaders = {},\n\ttransactionMetaData,\n\tqueryContext\n) {\n\tconst operation = {\n\t\tvariables,\n\t\ttemplateVars,\n\t\tdomainContext,\n\t\theaders,\n\t\toperationName,\n\t\ttransactionMetaData,\n\t\tqueryContext\n\t};\n\n\treturn batcher.enqueue(operation);\n}\n","import {mark, types as metrics} from '@servicenow/ui-metrics';\nimport createSnHttp from './snHttp';\nimport documentToQueryString from './documentToQueryString';\nimport {defer} from '@servicenow/ui-internal';\nimport {checkCacheForResult, shouldDoResultCaching, storeResultInCache} from './resultsCache';\nimport {getGraphQLDocument} from '../utils/graphQLDocument';\nimport {\n\tstartBatchTracing,\n\tcompleteBatchTracking,\n\tupdateHeadersWithSpan,\n\taddEventToBatchSpan,\n\tcrossLinkBatchSpan\n} from '../utils/traceHelper';\n\nconst DEFAULT_GQL_ENDPOINT = '/api/now/graphql';\nconst DEFAULT_BATCH_INTERVAL = 50;\nconst DEFAULT_MAX_BATCH_SIZE = 10;\nconst DEFAULT_BATCHING_ENABLED = true;\n\n//The instance does not support streaming GraphQL requests with 'batched' GraphQL requests,\n//so double check here again we only get one operation\nexport function createMultipartConfiguration(operations) {\n\tif (operations?.length !== 1) return null;\n\n\tconst {queryContext} = operations[0];\n\tif (!queryContext?.isStreamingRequest()) return null;\n\n\treturn {\n\t\tmultipartConsumer: ({body, headers} = {}) => queryContext.dataReceived(body, headers),\n\t\tparsePartsAsJson: true,\n\t\temitCompletedResponse: false\n\t};\n}\n\n//For now we do not allow streaming within streaming when batching, when this is resolved, we can\n//remove the 'operation.queryContext.isStreamingRequest()' check\nexport function canDoSnHttpLevelBatching(operations) {\n\tif (!Array.isArray(operations)) return;\n\n\tlet canDoBatching;\n\tfor (var operation of operations) {\n\t\tif (operation.__unstableDisableBatching || operation?.queryContext?.isStreamingRequest()) {\n\t\t\tcanDoBatching = false;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn canDoBatching;\n}\n\nexport default function createQueryBatcher({\n\tbatchInterval = DEFAULT_BATCH_INTERVAL,\n\tmaxBatchSize = DEFAULT_MAX_BATCH_SIZE,\n\tbatchingEnabled = DEFAULT_BATCHING_ENABLED\n} = {}) {\n\tlet queue = [];\n\tlet gqlBatchSpan;\n\n\tasync function enqueue(operation) {\n\t\tgqlBatchSpan = startBatchTracing({operation, maxBatchSize, batchInterval, gqlBatchSpan});\n\t\tlet deferredResolve, deferredReject;\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tdeferredResolve = resolve;\n\t\t\tdeferredReject = reject;\n\t\t});\n\t\tconst batchItem = {\n\t\t\toperation,\n\t\t\tdeferredResolve,\n\t\t\tdeferredReject\n\t\t};\n\n\t\tif (shouldDoResultCaching(operation)) {\n\t\t\tconst cacheResult = await checkCacheForResult(operation, batchItem, makeRequest);\n\t\t\tif (cacheResult) return cacheResult;\n\t\t}\n\t\tif (shouldNotDoGraphQLLevelBatching(operation)) {\n\t\t\tmakeRequest([batchItem]);\n\t\t\treturn promise;\n\t\t}\n\t\tqueue.push(batchItem);\n\t\taddEventToBatchSpan(operation, gqlBatchSpan, queue);\n\t\tif (queue.length === 1) {\n\t\t\tscheduleFlush();\n\t\t}\n\n\t\tif (queue.length === maxBatchSize) flushQueue();\n\t\treturn promise;\n\t}\n\n\t/**\n\t * This function determines if this graphQL operation should be batched.\n\t * If it defines any custom headers, or batching is not enabled globally,\n\t * or the query is known to be unstable, or it is a streaming graphql request,\n\t * or it has query params, we do not batch\n\t * @param {*} operation\n\t * @returns {boolean}\n\t */\n\tfunction shouldNotDoGraphQLLevelBatching(operation) {\n\t\tconst {transactionMetaData = {}, headers = [], queryContext} = operation;\n\t\treturn (\n\t\t\tObject.keys(headers).length ||\n\t\t\t!batchingEnabled ||\n\t\t\ttransactionMetaData?.__unstableDisableBatching ||\n\t\t\tqueryContext?.isStreamingRequest() ||\n\t\t\tObject.keys(transactionMetaData?.params || {}).length\n\t\t);\n\t}\n\n\tfunction scheduleFlush() {\n\t\tdefer(() => {\n\t\t\tif (queue.length) flushQueue();\n\t\t\telse gqlBatchSpan = null;\n\t\t}, batchInterval);\n\t}\n\n\tfunction flushQueue() {\n\t\tif (!queue.length) {\n\t\t\tgqlBatchSpan = null;\n\t\t\treturn;\n\t\t}\n\n\t\tconst batchItems = queue;\n\t\tqueue = [];\n\t\tif (gqlBatchSpan)\n\t\t\tgqlBatchSpan.addEvent(\n\t\t\t\t'items.queue.flush',\n\t\t\t\t{\n\t\t\t\t\tqueueSize: batchItems.length\n\t\t\t\t},\n\t\t\t\tDate.now()\n\t\t\t);\n\t\tmakeRequest(batchItems);\n\t}\n\n\tfunction makeRequest(batchItems = []) {\n\t\treturn sendRequestWithCanOmitQuery(batchItems, true);\n\t}\n\n\tasync function sendRequestWithCanOmitQuery(batchItems, canOmitQuery) {\n\t\tconst operations = await Promise.all(\n\t\t\tbatchItems.map(async ({operation}) => {\n\t\t\t\tconst {\n\t\t\t\t\toperationName,\n\t\t\t\t\tvariables,\n\t\t\t\t\ttemplateVars,\n\t\t\t\t\tdomainContext,\n\t\t\t\t\ttransactionMetaData: {\n\t\t\t\t\t\tcacheable,\n\t\t\t\t\t\tinteractionId,\n\t\t\t\t\t\t__unstableDisableBatching,\n\t\t\t\t\t\t__unstableQueryHash,\n\t\t\t\t\t\tquery,\n\t\t\t\t\t\thost\n\t\t\t\t\t},\n\t\t\t\t\tqueryContext\n\t\t\t\t} = operation;\n\t\t\t\treturn {\n\t\t\t\t\toperationName,\n\t\t\t\t\tquery:\n\t\t\t\t\t\t__unstableQueryHash && canOmitQuery\n\t\t\t\t\t\t\t? ''\n\t\t\t\t\t\t\t: documentToQueryString(\n\t\t\t\t\t\t\t\t\tgetGraphQLDocument(query, templateVars, domainContext, operationName)\n\t\t\t\t\t\t\t  ),\n\t\t\t\t\tvariables,\n\t\t\t\t\tnowUxInteraction:\n\t\t\t\t\t\t(window.nowUiFramework &&\n\t\t\t\t\t\t\t(window.nowUiFramework.getUxrInteractionIdByHost?.(host) ||\n\t\t\t\t\t\t\t\twindow.nowUiFramework.uxrInteractionId)) ||\n\t\t\t\t\t\tnull,\n\t\t\t\t\tnowUiInteraction: interactionId,\n\t\t\t\t\tcacheable,\n\t\t\t\t\t__unstableDisableBatching,\n\t\t\t\t\textensions: {\n\t\t\t\t\t\t...(__unstableQueryHash && {\n\t\t\t\t\t\t\tpersistedQuery: {version: 1, sha256Hash: __unstableQueryHash}\n\t\t\t\t\t\t})\n\t\t\t\t\t},\n\t\t\t\t\tqueryContext\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\n\t\tconst resolvers = batchItems.map(({deferredResolve, deferredReject}) => ({\n\t\t\tdeferredResolve,\n\t\t\tdeferredReject\n\t\t}));\n\n\t\tconst headers = batchItems[0].operation.headers || {};\n\t\tif (window.nowUiFramework && window.nowUiFramework.uxrInteractionId)\n\t\t\theaders['NOW-UX-INTERACTION'] = operations[0].nowUxInteraction;\n\n\t\tconst mergedParams = {};\n\t\tconst isBatched = operations.length !== 1 || !shouldNotDoGraphQLLevelBatching(operations[0]);\n\t\tfor (let i = 0; i < batchItems.length; i++) {\n\t\t\tconst {\n\t\t\t\ttransactionMetaData: {host, interactionId, actionType, params},\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tqueryContext\n\t\t\t} = batchItems[i].operation;\n\t\t\tmark(host, interactionId, metrics.GQL, {\n\t\t\t\ttype: actionType,\n\t\t\t\tquery,\n\t\t\t\tvariables,\n\t\t\t\tpath: DEFAULT_GQL_ENDPOINT,\n\t\t\t\tbatch: isBatched\n\t\t\t});\n\t\t\tupdateHeadersWithSpan({\n\t\t\t\tqueryContext,\n\t\t\t\tquery,\n\t\t\t\tbatch: isBatched,\n\t\t\t\theaders,\n\t\t\t\tgqlBatchSpan,\n\t\t\t\toperations,\n\t\t\t\tindex: i\n\t\t\t});\n\t\t\tcrossLinkBatchSpan(gqlBatchSpan, queryContext?.getActiveSpan());\n\t\t\tObject.assign(mergedParams, params);\n\t\t}\n\t\tconst snHttpRef =\n\t\t\t(window?.nowUiFramework?.batchGQLEffectRequests && window?.nowUiFramework?.snHttp) ||\n\t\t\t(await createSnHttp());\n\t\treturn snHttpRef\n\t\t\t.request(DEFAULT_GQL_ENDPOINT, 'POST', {\n\t\t\t\t//Only send the request in a batch format (in array) if we have more than one operation\n\t\t\t\tdata: operations.length === 1 ? operations[0] : operations,\n\t\t\t\theaders,\n\t\t\t\tbatch: canDoSnHttpLevelBatching(operations),\n\t\t\t\tmultipartConfig: createMultipartConfiguration(operations),\n\t\t\t\tparams: mergedParams,\n\t\t\t\tspan: gqlBatchSpan\n\t\t\t})\n\t\t\t.then(async result => {\n\t\t\t\treturn processResult(result, operations, resolvers, batchItems);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tfor (let i = 0; i < resolvers.length; i++) {\n\t\t\t\t\tconst {deferredReject} = resolvers[i];\n\t\t\t\t\tdeferredReject(error);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tgqlBatchSpan = completeBatchTracking(gqlBatchSpan, isBatched, operations);\n\t\t\t});\n\t}\n\n\tfunction checkResultForErrors(result, operations) {\n\t\tconst {data: results, headers = {}} = result;\n\n\t\tif (operations.length > 1 && results.length !== operations.length) {\n\t\t\tconst error = new Error();\n\t\t\terror.response = {\n\t\t\t\theaders\n\t\t\t};\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tfunction processResult(result, operations, resolvers, batchItems) {\n\t\tcheckResultForErrors(result, operations);\n\t\tconst {data, headers = {}} = result;\n\t\tlet results = data;\n\n\t\t//If we didn't batch our request, convert it back to an array\n\t\tif (!Array.isArray(results)) {\n\t\t\tresults = [results];\n\t\t}\n\n\t\tconst returnResult = [];\n\t\tfor (let i = 0; i < results.length; i++) {\n\t\t\tconst currOperation = operations[i];\n\t\t\tconst queryContext = currOperation?.queryContext;\n\t\t\tconst {deferredResolve} = resolvers[i];\n\n\t\t\tlet currResults = results[i];\n\t\t\t//For streaming queries get the final result from the QueryContext\n\t\t\tif (queryContext?.wasStreamingResponse(headers)) currResults = queryContext?.response;\n\n\t\t\tconst {data = null, errors = []} = currResults || {};\n\n\t\t\t// need to re-run the entire query because a persisted query wasn't found, run without persisted\n\t\t\tif (errors.some(({message}) => message === 'PersistedQueryNotFound')) {\n\t\t\t\tqueryContext?.resetContext();\n\t\t\t\treturn sendRequestWithCanOmitQuery(batchItems, false);\n\t\t\t}\n\n\t\t\tif (!errors.length) storeResultInCache(currOperation, currResults, headers);\n\n\t\t\treturnResult.push({data, errors, headers});\n\t\t\tdeferredResolve({data, errors, headers});\n\t\t}\n\n\t\treturn returnResult;\n\t}\n\n\treturn {\n\t\tenqueue\n\t};\n}\n","import {getGlobalObject} from '../utils';\nimport {createSnHttp} from '@servicenow/ui-utils';\n\nconst root = getGlobalObject();\nlet localSnHttp = null;\n\nconst createSnHttpForGql = async () => {\n\tif (!localSnHttp) {\n\t\tconst snHttpConfig = {\n\t\t\txsrfToken: root.g_ck,\n\t\t\txTransactionSource: root.transaction_source,\n\t\t\tbatching: false\n\t\t};\n\t\tconst snHttpFactory = createSnHttp(snHttpConfig);\n\t\tlocalSnHttp = await snHttpFactory();\n\t}\n\treturn localSnHttp;\n};\n\nexport default createSnHttpForGql;\n","export {default as addDomainContextToGraphQLDocument} from './addDomainContextToGraphQLDocument';\nexport {default as addQueryNameToGraphQLDocument} from './addQueryNameToGraphQLDocument';\nexport {default as getGlobalObject} from './getGlobalObject';\nexport {default as isSubscription} from './isSubscription';\nexport {default as isSubscriptionResult} from './isSubscriptionResult';\nexport {default as replaceQueryTemplateVariables} from './replaceQueryTemplateVariables';\nexport {createGraphQLDocument, getGraphQLDocument} from './graphQLDocument';\nexport {default as getOperationName} from './getOperationName';\nexport {default as getSpanOptions} from './getSpanOptions';\n","import {domainSeparationProperties} from '@servicenow/ui-effect-helpers';\n\nconst SUPPORTED_KINDS = ['OperationDefinition'];\n\nfunction canAddDomainSeparationDirective(definition) {\n\treturn (\n\t\t(SUPPORTED_KINDS.includes(definition.kind) && definition.operation === 'query') ||\n\t\tdefinition.operation === 'mutation'\n\t);\n}\n\n/**\n *\n * @param document\n * @param domainContext\n * @returns {*}\n */\nexport default function addDomainContextToGraphQLDocument(document, domainContext) {\n\tif (domainContext) {\n\t\tconst domainDirective = createDomainDirective(\n\t\t\tdomainContext[domainSeparationProperties.NOW_DS_RECORD_TABLE],\n\t\t\tdomainContext[domainSeparationProperties.NOW_DS_RECORD_ID],\n\t\t\tdomainContext[domainSeparationProperties.NOW_DS_DOMAIN_ID],\n\t\t\tdomainContext[domainSeparationProperties.NOW_DS_DOMAIN_SCOPE]\n\t\t);\n\t\tif (domainDirective) {\n\t\t\treturn {\n\t\t\t\t...document,\n\t\t\t\tdefinitions: document.definitions.map(def => ({\n\t\t\t\t\t...def,\n\t\t\t\t\tdirectives: [\n\t\t\t\t\t\t...def.directives,\n\t\t\t\t\t\t...insertIf(canAddDomainSeparationDirective(def), domainDirective)\n\t\t\t\t\t]\n\t\t\t\t}))\n\t\t\t};\n\t\t}\n\t}\n\treturn document;\n}\n\nexport function createDomainDirective(recordTable, recordId, domainId, domainScope) {\n\tconst recordArgument = createRecordArgument(recordTable, recordId);\n\tconst domainArgument = createDomainArgument(domainId, domainScope);\n\tconst args = [\n\t\t...insertIf(recordArgument !== undefined, recordArgument),\n\t\t...insertIf(domainArgument !== undefined, domainArgument)\n\t];\n\n\tif (!args.length) return undefined;\n\n\treturn {\n\t\tkind: 'Directive',\n\t\tname: {kind: 'Name', value: 'domain'},\n\t\targuments: args\n\t};\n}\n\nexport function createRecordArgument(table, id) {\n\tif (!isValidRecordArgument(table, id)) return undefined;\n\n\treturn {\n\t\tkind: 'Argument',\n\t\tname: {kind: 'Name', value: 'record'},\n\t\tvalue: {\n\t\t\tkind: 'ObjectValue',\n\t\t\tfields: [\n\t\t\t\t{\n\t\t\t\t\tkind: 'ObjectField',\n\t\t\t\t\tname: {kind: 'Name', value: 'tableName'},\n\t\t\t\t\tvalue: {kind: 'StringValue', value: table}\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tkind: 'ObjectField',\n\t\t\t\t\tname: {kind: 'Name', value: 'id'},\n\t\t\t\t\tvalue: {kind: 'StringValue', value: id}\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t};\n}\n\nexport function createDomainArgument(id, scope) {\n\tif (!isValidDomainArgument(id, scope)) return undefined;\n\n\treturn {\n\t\tkind: 'Argument',\n\t\tname: {kind: 'Name', value: 'domain'},\n\t\tvalue: {\n\t\t\tkind: 'ObjectValue',\n\t\t\tfields: [\n\t\t\t\t...insertIf(id !== undefined, {\n\t\t\t\t\tkind: 'ObjectField',\n\t\t\t\t\tname: {kind: 'Name', value: 'id'},\n\t\t\t\t\tvalue: {kind: 'StringValue', value: id}\n\t\t\t\t}),\n\t\t\t\t...insertIf(scope !== undefined, {\n\t\t\t\t\tkind: 'ObjectField',\n\t\t\t\t\tname: {kind: 'Name', value: 'scope'},\n\t\t\t\t\tvalue: {kind: 'EnumValue', value: scope}\n\t\t\t\t})\n\t\t\t]\n\t\t}\n\t};\n}\n\nexport function isValidRecordArgument(table, id) {\n\treturn table !== undefined && id !== undefined;\n}\n\nexport function isValidDomainArgument(id, scope) {\n\treturn id !== undefined || scope !== undefined;\n}\n\nexport function insertIf(condition, value) {\n\treturn condition ? [value] : [];\n}\n","/**\n * addQueryNameToGraphQLDocument\n * Add name to query document\n *\n * @param document\n * @param queryName\n * @returns {*}\n */\nexport default function addQueryNameToGraphQLDocument(document, queryName) {\n\treturn {\n\t\t...document,\n\t\tdefinitions: document.definitions.map(def => ({\n\t\t\t...def,\n\t\t\t...addIf(isQueryOrMutationOperation(def), {name: {kind: 'Name', value: queryName}})\n\t\t}))\n\t};\n}\n\nfunction isQueryOrMutationOperation(definition) {\n\treturn (\n\t\t(definition.kind === 'OperationDefinition' && definition.operation === 'query') ||\n\t\tdefinition.operation === 'mutation'\n\t);\n}\n\nfunction addIf(condition, value) {\n\treturn condition ? value : {};\n}\n","export default function getGlobalObject() {\n\tif (typeof self !== 'undefined') return self;\n\n\tif (typeof window !== 'undefined') return window;\n\n\tif (typeof global !== 'undefined') return global;\n\n\tthrow new Error('Unable to locate global object');\n}\n","import {get} from '@servicenow/ui-internal';\n\nexport default function isSubscription(document = {}) {\n\tconst operation = get(document, 'definitions[0].operation');\n\treturn operation && operation === 'subscription';\n}\n","export default function isSubscriptionResult(result) {\n\tconst {data} = result;\n\treturn data?.GlideRecord_Subscription;\n}\n","import Mustache from 'mustache';\nimport {memoize} from '@servicenow/ui-internal';\n\nconst mustacheTokens = ['#', '^', '>', '&', 'name'];\n\nfunction TemplateVarsMissingException(query, expectedTemplateVars) {\n\tthis.name = 'TemplateVarsMissingException';\n\tthis.message = 'template_vars missing for GraphQL query';\n\tthis.query = query;\n\tthis.expectedTemplateVars = expectedTemplateVars;\n\tthis.stack = new Error(this.message).stack;\n}\n\nTemplateVarsMissingException.prototype = new Error();\n\n/**\n * Match template vars up with query template, throw if missing any vars\n *\n * @private\n * @param queryStr\n * @param templateParts\n * @param templateVars\n * @throws TemplateVarsMissingException\n * @return {void}\n */\nfunction assertValidTemplateVars(queryStr, templateParts, templateVars) {\n\tconst {length: templatePartsLength} = templateParts;\n\tfor (let i = 0; i < templatePartsLength; i++) {\n\t\tif (!templateVars[templateParts[i]])\n\t\t\tthrow new TemplateVarsMissingException(queryStr, templateParts);\n\t}\n}\n\n/**\n * Parse template variable tokens from query\n *\n * @private\n * @param queryStr\n * @return [Array<String>] tokens\n */\nfunction getTokens(queryStr) {\n\tconst parts = Mustache.parse(queryStr);\n\tconst tokens = [];\n\tconst {length: partsLength} = parts;\n\n\tfor (let i = 0; i < partsLength; i++) {\n\t\tconst part = parts[i];\n\t\tif (mustacheTokens.includes(part[0])) tokens.push(part[1]);\n\t}\n\n\treturn tokens;\n}\n\nconst memGetTokens = memoize(getTokens, {profileName: 'getTokens'});\n\nexport default function replaceQueryTemplateVariables(queryStr = '', templateVars = {}) {\n\tconst tokens = memGetTokens(queryStr);\n\tassertValidTemplateVars(queryStr, tokens, templateVars);\n\treturn Mustache.render(queryStr, templateVars);\n}\n","import gql from 'graphql-tag';\nimport replaceQueryTemplateVariables from './replaceQueryTemplateVariables';\nimport addQueryNameToGraphQLDocument from './addQueryNameToGraphQLDocument';\nimport addDomainContextToGraphQLDocument from './addDomainContextToGraphQLDocument';\n\nexport function createGraphQLDocument(query = '') {\n\treturn gql(query);\n}\n\nexport function getGraphQLDocument(query, templateVars, domainContext, operationName) {\n\tconst updatedQuery = replaceQueryTemplateVariables(query, templateVars);\n\treturn addQueryNameToGraphQLDocument(\n\t\taddDomainContextToGraphQLDocument(createGraphQLDocument(updatedQuery), domainContext),\n\t\toperationName\n\t);\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n  return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose;\n    if (async) {\n        if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n        dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n        if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n        dispose = value[Symbol.dispose];\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  function next() {\n    while (env.stack.length) {\n      var rec = env.stack.pop();\n      try {\n        var result = rec.dispose && rec.dispose.call(rec.value);\n        if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n      }\n      catch (e) {\n          fail(e);\n      }\n    }\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n};\n","/**\n * GraphQL.js provides a reference implementation for the GraphQL specification\n * but is also a useful utility for operating on GraphQL files and building\n * sophisticated tools.\n *\n * This primary module exports a general purpose function for fulfilling all\n * steps of the GraphQL specification in a single operation, but also includes\n * utilities for every part of the GraphQL specification:\n *\n *   - Parsing the GraphQL language.\n *   - Building a GraphQL type schema.\n *   - Validating a GraphQL request against a type schema.\n *   - Executing a GraphQL request against a type schema.\n *\n * This also includes utility functions for operating on GraphQL types and\n * GraphQL documents to facilitate building tools.\n *\n * You may also import from each sub-directory directly. For example, the\n * following two import statements are equivalent:\n *\n * ```ts\n * import { parse } from 'graphql';\n * import { parse } from 'graphql/language';\n * ```\n *\n * @packageDocumentation\n */\n// The GraphQL.js version info.\nexport { version, versionInfo } from './version.mjs'; // The primary entry point into fulfilling a GraphQL request.\n\nexport { graphql, graphqlSync } from './graphql.mjs'; // Create and operate on GraphQL type definitions and schema.\n\nexport {\n  resolveObjMapThunk,\n  resolveReadonlyArrayThunk, // Definitions\n  GraphQLSchema,\n  GraphQLDirective,\n  GraphQLScalarType,\n  GraphQLObjectType,\n  GraphQLInterfaceType,\n  GraphQLUnionType,\n  GraphQLEnumType,\n  GraphQLInputObjectType,\n  GraphQLList,\n  GraphQLNonNull, // Standard GraphQL Scalars\n  specifiedScalarTypes,\n  GraphQLInt,\n  GraphQLFloat,\n  GraphQLString,\n  GraphQLBoolean,\n  GraphQLID, // Int boundaries constants\n  GRAPHQL_MAX_INT,\n  GRAPHQL_MIN_INT, // Built-in Directives defined by the Spec\n  specifiedDirectives,\n  GraphQLIncludeDirective,\n  GraphQLSkipDirective,\n  GraphQLDeprecatedDirective,\n  GraphQLSpecifiedByDirective, // \"Enum\" of Type Kinds\n  TypeKind, // Constant Deprecation Reason\n  DEFAULT_DEPRECATION_REASON, // GraphQL Types for introspection.\n  introspectionTypes,\n  __Schema,\n  __Directive,\n  __DirectiveLocation,\n  __Type,\n  __Field,\n  __InputValue,\n  __EnumValue,\n  __TypeKind, // Meta-field definitions.\n  SchemaMetaFieldDef,\n  TypeMetaFieldDef,\n  TypeNameMetaFieldDef, // Predicates\n  isSchema,\n  isDirective,\n  isType,\n  isScalarType,\n  isObjectType,\n  isInterfaceType,\n  isUnionType,\n  isEnumType,\n  isInputObjectType,\n  isListType,\n  isNonNullType,\n  isInputType,\n  isOutputType,\n  isLeafType,\n  isCompositeType,\n  isAbstractType,\n  isWrappingType,\n  isNullableType,\n  isNamedType,\n  isRequiredArgument,\n  isRequiredInputField,\n  isSpecifiedScalarType,\n  isIntrospectionType,\n  isSpecifiedDirective, // Assertions\n  assertSchema,\n  assertDirective,\n  assertType,\n  assertScalarType,\n  assertObjectType,\n  assertInterfaceType,\n  assertUnionType,\n  assertEnumType,\n  assertInputObjectType,\n  assertListType,\n  assertNonNullType,\n  assertInputType,\n  assertOutputType,\n  assertLeafType,\n  assertCompositeType,\n  assertAbstractType,\n  assertWrappingType,\n  assertNullableType,\n  assertNamedType, // Un-modifiers\n  getNullableType,\n  getNamedType, // Validate GraphQL schema.\n  validateSchema,\n  assertValidSchema, // Upholds the spec rules about naming.\n  assertName,\n  assertEnumValueName,\n} from './type/index.mjs';\n// Parse and operate on GraphQL language source files.\nexport {\n  Token,\n  Source,\n  Location,\n  OperationTypeNode,\n  getLocation, // Print source location.\n  printLocation,\n  printSourceLocation, // Lex\n  Lexer,\n  TokenKind, // Parse\n  parse,\n  parseValue,\n  parseConstValue,\n  parseType, // Print\n  print, // Visit\n  visit,\n  visitInParallel,\n  getVisitFn,\n  getEnterLeaveForKind,\n  BREAK,\n  Kind,\n  DirectiveLocation, // Predicates\n  isDefinitionNode,\n  isExecutableDefinitionNode,\n  isSelectionNode,\n  isValueNode,\n  isConstValueNode,\n  isTypeNode,\n  isTypeSystemDefinitionNode,\n  isTypeDefinitionNode,\n  isTypeSystemExtensionNode,\n  isTypeExtensionNode,\n} from './language/index.mjs';\n// Execute GraphQL queries.\nexport {\n  execute,\n  executeSync,\n  defaultFieldResolver,\n  defaultTypeResolver,\n  responsePathAsArray,\n  getArgumentValues,\n  getVariableValues,\n  getDirectiveValues,\n  subscribe,\n  createSourceEventStream,\n} from './execution/index.mjs';\n// Validate GraphQL documents.\nexport {\n  validate,\n  ValidationContext, // All validation rules in the GraphQL Specification.\n  specifiedRules, // Individual validation rules.\n  ExecutableDefinitionsRule,\n  FieldsOnCorrectTypeRule,\n  FragmentsOnCompositeTypesRule,\n  KnownArgumentNamesRule,\n  KnownDirectivesRule,\n  KnownFragmentNamesRule,\n  KnownTypeNamesRule,\n  LoneAnonymousOperationRule,\n  NoFragmentCyclesRule,\n  NoUndefinedVariablesRule,\n  NoUnusedFragmentsRule,\n  NoUnusedVariablesRule,\n  OverlappingFieldsCanBeMergedRule,\n  PossibleFragmentSpreadsRule,\n  ProvidedRequiredArgumentsRule,\n  ScalarLeafsRule,\n  SingleFieldSubscriptionsRule,\n  UniqueArgumentNamesRule,\n  UniqueDirectivesPerLocationRule,\n  UniqueFragmentNamesRule,\n  UniqueInputFieldNamesRule,\n  UniqueOperationNamesRule,\n  UniqueVariableNamesRule,\n  ValuesOfCorrectTypeRule,\n  VariablesAreInputTypesRule,\n  VariablesInAllowedPositionRule, // SDL-specific validation rules\n  LoneSchemaDefinitionRule,\n  UniqueOperationTypesRule,\n  UniqueTypeNamesRule,\n  UniqueEnumValueNamesRule,\n  UniqueFieldDefinitionNamesRule,\n  UniqueArgumentDefinitionNamesRule,\n  UniqueDirectiveNamesRule,\n  PossibleTypeExtensionsRule, // Custom validation rules\n  NoDeprecatedCustomRule,\n  NoSchemaIntrospectionCustomRule,\n} from './validation/index.mjs';\n// Create, format, and print GraphQL errors.\nexport {\n  GraphQLError,\n  syntaxError,\n  locatedError,\n  printError,\n  formatError,\n} from './error/index.mjs';\n// Utilities for operating on GraphQL type schema and parsed sources.\nexport {\n  // Produce the GraphQL query recommended for a full schema introspection.\n  // Accepts optional IntrospectionOptions.\n  getIntrospectionQuery, // Gets the target Operation from a Document.\n  getOperationAST, // Gets the Type for the target Operation AST.\n  getOperationRootType, // Convert a GraphQLSchema to an IntrospectionQuery.\n  introspectionFromSchema, // Build a GraphQLSchema from an introspection result.\n  buildClientSchema, // Build a GraphQLSchema from a parsed GraphQL Schema language AST.\n  buildASTSchema, // Build a GraphQLSchema from a GraphQL schema language document.\n  buildSchema, // Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST.\n  extendSchema, // Sort a GraphQLSchema.\n  lexicographicSortSchema, // Print a GraphQLSchema to GraphQL Schema language.\n  printSchema, // Print a GraphQLType to GraphQL Schema language.\n  printType, // Prints the built-in introspection schema in the Schema Language format.\n  printIntrospectionSchema, // Create a GraphQLType from a GraphQL language AST.\n  typeFromAST, // Create a JavaScript value from a GraphQL language AST with a Type.\n  valueFromAST, // Create a JavaScript value from a GraphQL language AST without a Type.\n  valueFromASTUntyped, // Create a GraphQL language AST from a JavaScript value.\n  astFromValue, // A helper to use within recursive-descent visitors which need to be aware of the GraphQL type system.\n  TypeInfo,\n  visitWithTypeInfo, // Coerces a JavaScript value to a GraphQL type, or produces errors.\n  coerceInputValue, // Concatenates multiple AST together.\n  concatAST, // Separates an AST into an AST per Operation.\n  separateOperations, // Strips characters that are not significant to the validity or execution of a GraphQL document.\n  stripIgnoredCharacters, // Comparators for types\n  isEqualType,\n  isTypeSubTypeOf,\n  doTypesOverlap, // Asserts a string is a valid GraphQL name.\n  assertValidName, // Determine if a string is a valid GraphQL name.\n  isValidNameError, // Compares two GraphQLSchemas and detects breaking changes.\n  BreakingChangeType,\n  DangerousChangeType,\n  findBreakingChanges,\n  findDangerousChanges,\n} from './utilities/index.mjs';\n","export function devAssert(condition, message) {\n  const booleanCondition = Boolean(condition);\n\n  if (!booleanCondition) {\n    throw new Error(message);\n  }\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n  const parser = new Parser(source, options);\n  return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n  const parser = new Parser(source, options);\n  parser.expectToken(TokenKind.SOF);\n  const value = parser.parseValueLiteral(false);\n  parser.expectToken(TokenKind.EOF);\n  return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n  const parser = new Parser(source, options);\n  parser.expectToken(TokenKind.SOF);\n  const value = parser.parseConstValueLiteral();\n  parser.expectToken(TokenKind.EOF);\n  return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n  const parser = new Parser(source, options);\n  parser.expectToken(TokenKind.SOF);\n  const type = parser.parseTypeReference();\n  parser.expectToken(TokenKind.EOF);\n  return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport class Parser {\n  constructor(source, options = {}) {\n    const sourceObj = isSource(source) ? source : new Source(source);\n    this._lexer = new Lexer(sourceObj);\n    this._options = options;\n    this._tokenCounter = 0;\n  }\n  /**\n   * Converts a name lex token into a name parse node.\n   */\n\n  parseName() {\n    const token = this.expectToken(TokenKind.NAME);\n    return this.node(token, {\n      kind: Kind.NAME,\n      value: token.value,\n    });\n  } // Implements the parsing rules in the Document section.\n\n  /**\n   * Document : Definition+\n   */\n\n  parseDocument() {\n    return this.node(this._lexer.token, {\n      kind: Kind.DOCUMENT,\n      definitions: this.many(\n        TokenKind.SOF,\n        this.parseDefinition,\n        TokenKind.EOF,\n      ),\n    });\n  }\n  /**\n   * Definition :\n   *   - ExecutableDefinition\n   *   - TypeSystemDefinition\n   *   - TypeSystemExtension\n   *\n   * ExecutableDefinition :\n   *   - OperationDefinition\n   *   - FragmentDefinition\n   *\n   * TypeSystemDefinition :\n   *   - SchemaDefinition\n   *   - TypeDefinition\n   *   - DirectiveDefinition\n   *\n   * TypeDefinition :\n   *   - ScalarTypeDefinition\n   *   - ObjectTypeDefinition\n   *   - InterfaceTypeDefinition\n   *   - UnionTypeDefinition\n   *   - EnumTypeDefinition\n   *   - InputObjectTypeDefinition\n   */\n\n  parseDefinition() {\n    if (this.peek(TokenKind.BRACE_L)) {\n      return this.parseOperationDefinition();\n    } // Many definitions begin with a description and require a lookahead.\n\n    const hasDescription = this.peekDescription();\n    const keywordToken = hasDescription\n      ? this._lexer.lookahead()\n      : this._lexer.token;\n\n    if (keywordToken.kind === TokenKind.NAME) {\n      switch (keywordToken.value) {\n        case 'schema':\n          return this.parseSchemaDefinition();\n\n        case 'scalar':\n          return this.parseScalarTypeDefinition();\n\n        case 'type':\n          return this.parseObjectTypeDefinition();\n\n        case 'interface':\n          return this.parseInterfaceTypeDefinition();\n\n        case 'union':\n          return this.parseUnionTypeDefinition();\n\n        case 'enum':\n          return this.parseEnumTypeDefinition();\n\n        case 'input':\n          return this.parseInputObjectTypeDefinition();\n\n        case 'directive':\n          return this.parseDirectiveDefinition();\n      }\n\n      if (hasDescription) {\n        throw syntaxError(\n          this._lexer.source,\n          this._lexer.token.start,\n          'Unexpected description, descriptions are supported only on type definitions.',\n        );\n      }\n\n      switch (keywordToken.value) {\n        case 'query':\n        case 'mutation':\n        case 'subscription':\n          return this.parseOperationDefinition();\n\n        case 'fragment':\n          return this.parseFragmentDefinition();\n\n        case 'extend':\n          return this.parseTypeSystemExtension();\n      }\n    }\n\n    throw this.unexpected(keywordToken);\n  } // Implements the parsing rules in the Operations section.\n\n  /**\n   * OperationDefinition :\n   *  - SelectionSet\n   *  - OperationType Name? VariableDefinitions? Directives? SelectionSet\n   */\n\n  parseOperationDefinition() {\n    const start = this._lexer.token;\n\n    if (this.peek(TokenKind.BRACE_L)) {\n      return this.node(start, {\n        kind: Kind.OPERATION_DEFINITION,\n        operation: OperationTypeNode.QUERY,\n        name: undefined,\n        variableDefinitions: [],\n        directives: [],\n        selectionSet: this.parseSelectionSet(),\n      });\n    }\n\n    const operation = this.parseOperationType();\n    let name;\n\n    if (this.peek(TokenKind.NAME)) {\n      name = this.parseName();\n    }\n\n    return this.node(start, {\n      kind: Kind.OPERATION_DEFINITION,\n      operation,\n      name,\n      variableDefinitions: this.parseVariableDefinitions(),\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n    });\n  }\n  /**\n   * OperationType : one of query mutation subscription\n   */\n\n  parseOperationType() {\n    const operationToken = this.expectToken(TokenKind.NAME);\n\n    switch (operationToken.value) {\n      case 'query':\n        return OperationTypeNode.QUERY;\n\n      case 'mutation':\n        return OperationTypeNode.MUTATION;\n\n      case 'subscription':\n        return OperationTypeNode.SUBSCRIPTION;\n    }\n\n    throw this.unexpected(operationToken);\n  }\n  /**\n   * VariableDefinitions : ( VariableDefinition+ )\n   */\n\n  parseVariableDefinitions() {\n    return this.optionalMany(\n      TokenKind.PAREN_L,\n      this.parseVariableDefinition,\n      TokenKind.PAREN_R,\n    );\n  }\n  /**\n   * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n   */\n\n  parseVariableDefinition() {\n    return this.node(this._lexer.token, {\n      kind: Kind.VARIABLE_DEFINITION,\n      variable: this.parseVariable(),\n      type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n      defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n        ? this.parseConstValueLiteral()\n        : undefined,\n      directives: this.parseConstDirectives(),\n    });\n  }\n  /**\n   * Variable : $ Name\n   */\n\n  parseVariable() {\n    const start = this._lexer.token;\n    this.expectToken(TokenKind.DOLLAR);\n    return this.node(start, {\n      kind: Kind.VARIABLE,\n      name: this.parseName(),\n    });\n  }\n  /**\n   * ```\n   * SelectionSet : { Selection+ }\n   * ```\n   */\n\n  parseSelectionSet() {\n    return this.node(this._lexer.token, {\n      kind: Kind.SELECTION_SET,\n      selections: this.many(\n        TokenKind.BRACE_L,\n        this.parseSelection,\n        TokenKind.BRACE_R,\n      ),\n    });\n  }\n  /**\n   * Selection :\n   *   - Field\n   *   - FragmentSpread\n   *   - InlineFragment\n   */\n\n  parseSelection() {\n    return this.peek(TokenKind.SPREAD)\n      ? this.parseFragment()\n      : this.parseField();\n  }\n  /**\n   * Field : Alias? Name Arguments? Directives? SelectionSet?\n   *\n   * Alias : Name :\n   */\n\n  parseField() {\n    const start = this._lexer.token;\n    const nameOrAlias = this.parseName();\n    let alias;\n    let name;\n\n    if (this.expectOptionalToken(TokenKind.COLON)) {\n      alias = nameOrAlias;\n      name = this.parseName();\n    } else {\n      name = nameOrAlias;\n    }\n\n    return this.node(start, {\n      kind: Kind.FIELD,\n      alias,\n      name,\n      arguments: this.parseArguments(false),\n      directives: this.parseDirectives(false),\n      selectionSet: this.peek(TokenKind.BRACE_L)\n        ? this.parseSelectionSet()\n        : undefined,\n    });\n  }\n  /**\n   * Arguments[Const] : ( Argument[?Const]+ )\n   */\n\n  parseArguments(isConst) {\n    const item = isConst ? this.parseConstArgument : this.parseArgument;\n    return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n  }\n  /**\n   * Argument[Const] : Name : Value[?Const]\n   */\n\n  parseArgument(isConst = false) {\n    const start = this._lexer.token;\n    const name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    return this.node(start, {\n      kind: Kind.ARGUMENT,\n      name,\n      value: this.parseValueLiteral(isConst),\n    });\n  }\n\n  parseConstArgument() {\n    return this.parseArgument(true);\n  } // Implements the parsing rules in the Fragments section.\n\n  /**\n   * Corresponds to both FragmentSpread and InlineFragment in the spec.\n   *\n   * FragmentSpread : ... FragmentName Directives?\n   *\n   * InlineFragment : ... TypeCondition? Directives? SelectionSet\n   */\n\n  parseFragment() {\n    const start = this._lexer.token;\n    this.expectToken(TokenKind.SPREAD);\n    const hasTypeCondition = this.expectOptionalKeyword('on');\n\n    if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n      return this.node(start, {\n        kind: Kind.FRAGMENT_SPREAD,\n        name: this.parseFragmentName(),\n        directives: this.parseDirectives(false),\n      });\n    }\n\n    return this.node(start, {\n      kind: Kind.INLINE_FRAGMENT,\n      typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n    });\n  }\n  /**\n   * FragmentDefinition :\n   *   - fragment FragmentName on TypeCondition Directives? SelectionSet\n   *\n   * TypeCondition : NamedType\n   */\n\n  parseFragmentDefinition() {\n    const start = this._lexer.token;\n    this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes\n    // the grammar of FragmentDefinition:\n    //   - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n    if (this._options.allowLegacyFragmentVariables === true) {\n      return this.node(start, {\n        kind: Kind.FRAGMENT_DEFINITION,\n        name: this.parseFragmentName(),\n        variableDefinitions: this.parseVariableDefinitions(),\n        typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n        directives: this.parseDirectives(false),\n        selectionSet: this.parseSelectionSet(),\n      });\n    }\n\n    return this.node(start, {\n      kind: Kind.FRAGMENT_DEFINITION,\n      name: this.parseFragmentName(),\n      typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n      directives: this.parseDirectives(false),\n      selectionSet: this.parseSelectionSet(),\n    });\n  }\n  /**\n   * FragmentName : Name but not `on`\n   */\n\n  parseFragmentName() {\n    if (this._lexer.token.value === 'on') {\n      throw this.unexpected();\n    }\n\n    return this.parseName();\n  } // Implements the parsing rules in the Values section.\n\n  /**\n   * Value[Const] :\n   *   - [~Const] Variable\n   *   - IntValue\n   *   - FloatValue\n   *   - StringValue\n   *   - BooleanValue\n   *   - NullValue\n   *   - EnumValue\n   *   - ListValue[?Const]\n   *   - ObjectValue[?Const]\n   *\n   * BooleanValue : one of `true` `false`\n   *\n   * NullValue : `null`\n   *\n   * EnumValue : Name but not `true`, `false` or `null`\n   */\n\n  parseValueLiteral(isConst) {\n    const token = this._lexer.token;\n\n    switch (token.kind) {\n      case TokenKind.BRACKET_L:\n        return this.parseList(isConst);\n\n      case TokenKind.BRACE_L:\n        return this.parseObject(isConst);\n\n      case TokenKind.INT:\n        this.advanceLexer();\n        return this.node(token, {\n          kind: Kind.INT,\n          value: token.value,\n        });\n\n      case TokenKind.FLOAT:\n        this.advanceLexer();\n        return this.node(token, {\n          kind: Kind.FLOAT,\n          value: token.value,\n        });\n\n      case TokenKind.STRING:\n      case TokenKind.BLOCK_STRING:\n        return this.parseStringLiteral();\n\n      case TokenKind.NAME:\n        this.advanceLexer();\n\n        switch (token.value) {\n          case 'true':\n            return this.node(token, {\n              kind: Kind.BOOLEAN,\n              value: true,\n            });\n\n          case 'false':\n            return this.node(token, {\n              kind: Kind.BOOLEAN,\n              value: false,\n            });\n\n          case 'null':\n            return this.node(token, {\n              kind: Kind.NULL,\n            });\n\n          default:\n            return this.node(token, {\n              kind: Kind.ENUM,\n              value: token.value,\n            });\n        }\n\n      case TokenKind.DOLLAR:\n        if (isConst) {\n          this.expectToken(TokenKind.DOLLAR);\n\n          if (this._lexer.token.kind === TokenKind.NAME) {\n            const varName = this._lexer.token.value;\n            throw syntaxError(\n              this._lexer.source,\n              token.start,\n              `Unexpected variable \"$${varName}\" in constant value.`,\n            );\n          } else {\n            throw this.unexpected(token);\n          }\n        }\n\n        return this.parseVariable();\n\n      default:\n        throw this.unexpected();\n    }\n  }\n\n  parseConstValueLiteral() {\n    return this.parseValueLiteral(true);\n  }\n\n  parseStringLiteral() {\n    const token = this._lexer.token;\n    this.advanceLexer();\n    return this.node(token, {\n      kind: Kind.STRING,\n      value: token.value,\n      block: token.kind === TokenKind.BLOCK_STRING,\n    });\n  }\n  /**\n   * ListValue[Const] :\n   *   - [ ]\n   *   - [ Value[?Const]+ ]\n   */\n\n  parseList(isConst) {\n    const item = () => this.parseValueLiteral(isConst);\n\n    return this.node(this._lexer.token, {\n      kind: Kind.LIST,\n      values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n    });\n  }\n  /**\n   * ```\n   * ObjectValue[Const] :\n   *   - { }\n   *   - { ObjectField[?Const]+ }\n   * ```\n   */\n\n  parseObject(isConst) {\n    const item = () => this.parseObjectField(isConst);\n\n    return this.node(this._lexer.token, {\n      kind: Kind.OBJECT,\n      fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n    });\n  }\n  /**\n   * ObjectField[Const] : Name : Value[?Const]\n   */\n\n  parseObjectField(isConst) {\n    const start = this._lexer.token;\n    const name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    return this.node(start, {\n      kind: Kind.OBJECT_FIELD,\n      name,\n      value: this.parseValueLiteral(isConst),\n    });\n  } // Implements the parsing rules in the Directives section.\n\n  /**\n   * Directives[Const] : Directive[?Const]+\n   */\n\n  parseDirectives(isConst) {\n    const directives = [];\n\n    while (this.peek(TokenKind.AT)) {\n      directives.push(this.parseDirective(isConst));\n    }\n\n    return directives;\n  }\n\n  parseConstDirectives() {\n    return this.parseDirectives(true);\n  }\n  /**\n   * ```\n   * Directive[Const] : @ Name Arguments[?Const]?\n   * ```\n   */\n\n  parseDirective(isConst) {\n    const start = this._lexer.token;\n    this.expectToken(TokenKind.AT);\n    return this.node(start, {\n      kind: Kind.DIRECTIVE,\n      name: this.parseName(),\n      arguments: this.parseArguments(isConst),\n    });\n  } // Implements the parsing rules in the Types section.\n\n  /**\n   * Type :\n   *   - NamedType\n   *   - ListType\n   *   - NonNullType\n   */\n\n  parseTypeReference() {\n    const start = this._lexer.token;\n    let type;\n\n    if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n      const innerType = this.parseTypeReference();\n      this.expectToken(TokenKind.BRACKET_R);\n      type = this.node(start, {\n        kind: Kind.LIST_TYPE,\n        type: innerType,\n      });\n    } else {\n      type = this.parseNamedType();\n    }\n\n    if (this.expectOptionalToken(TokenKind.BANG)) {\n      return this.node(start, {\n        kind: Kind.NON_NULL_TYPE,\n        type,\n      });\n    }\n\n    return type;\n  }\n  /**\n   * NamedType : Name\n   */\n\n  parseNamedType() {\n    return this.node(this._lexer.token, {\n      kind: Kind.NAMED_TYPE,\n      name: this.parseName(),\n    });\n  } // Implements the parsing rules in the Type Definition section.\n\n  peekDescription() {\n    return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n  }\n  /**\n   * Description : StringValue\n   */\n\n  parseDescription() {\n    if (this.peekDescription()) {\n      return this.parseStringLiteral();\n    }\n  }\n  /**\n   * ```\n   * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n   * ```\n   */\n\n  parseSchemaDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('schema');\n    const directives = this.parseConstDirectives();\n    const operationTypes = this.many(\n      TokenKind.BRACE_L,\n      this.parseOperationTypeDefinition,\n      TokenKind.BRACE_R,\n    );\n    return this.node(start, {\n      kind: Kind.SCHEMA_DEFINITION,\n      description,\n      directives,\n      operationTypes,\n    });\n  }\n  /**\n   * OperationTypeDefinition : OperationType : NamedType\n   */\n\n  parseOperationTypeDefinition() {\n    const start = this._lexer.token;\n    const operation = this.parseOperationType();\n    this.expectToken(TokenKind.COLON);\n    const type = this.parseNamedType();\n    return this.node(start, {\n      kind: Kind.OPERATION_TYPE_DEFINITION,\n      operation,\n      type,\n    });\n  }\n  /**\n   * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n   */\n\n  parseScalarTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('scalar');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    return this.node(start, {\n      kind: Kind.SCALAR_TYPE_DEFINITION,\n      description,\n      name,\n      directives,\n    });\n  }\n  /**\n   * ObjectTypeDefinition :\n   *   Description?\n   *   type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n   */\n\n  parseObjectTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('type');\n    const name = this.parseName();\n    const interfaces = this.parseImplementsInterfaces();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseFieldsDefinition();\n    return this.node(start, {\n      kind: Kind.OBJECT_TYPE_DEFINITION,\n      description,\n      name,\n      interfaces,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * ImplementsInterfaces :\n   *   - implements `&`? NamedType\n   *   - ImplementsInterfaces & NamedType\n   */\n\n  parseImplementsInterfaces() {\n    return this.expectOptionalKeyword('implements')\n      ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n      : [];\n  }\n  /**\n   * ```\n   * FieldsDefinition : { FieldDefinition+ }\n   * ```\n   */\n\n  parseFieldsDefinition() {\n    return this.optionalMany(\n      TokenKind.BRACE_L,\n      this.parseFieldDefinition,\n      TokenKind.BRACE_R,\n    );\n  }\n  /**\n   * FieldDefinition :\n   *   - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n   */\n\n  parseFieldDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    const name = this.parseName();\n    const args = this.parseArgumentDefs();\n    this.expectToken(TokenKind.COLON);\n    const type = this.parseTypeReference();\n    const directives = this.parseConstDirectives();\n    return this.node(start, {\n      kind: Kind.FIELD_DEFINITION,\n      description,\n      name,\n      arguments: args,\n      type,\n      directives,\n    });\n  }\n  /**\n   * ArgumentsDefinition : ( InputValueDefinition+ )\n   */\n\n  parseArgumentDefs() {\n    return this.optionalMany(\n      TokenKind.PAREN_L,\n      this.parseInputValueDef,\n      TokenKind.PAREN_R,\n    );\n  }\n  /**\n   * InputValueDefinition :\n   *   - Description? Name : Type DefaultValue? Directives[Const]?\n   */\n\n  parseInputValueDef() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    const name = this.parseName();\n    this.expectToken(TokenKind.COLON);\n    const type = this.parseTypeReference();\n    let defaultValue;\n\n    if (this.expectOptionalToken(TokenKind.EQUALS)) {\n      defaultValue = this.parseConstValueLiteral();\n    }\n\n    const directives = this.parseConstDirectives();\n    return this.node(start, {\n      kind: Kind.INPUT_VALUE_DEFINITION,\n      description,\n      name,\n      type,\n      defaultValue,\n      directives,\n    });\n  }\n  /**\n   * InterfaceTypeDefinition :\n   *   - Description? interface Name Directives[Const]? FieldsDefinition?\n   */\n\n  parseInterfaceTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('interface');\n    const name = this.parseName();\n    const interfaces = this.parseImplementsInterfaces();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseFieldsDefinition();\n    return this.node(start, {\n      kind: Kind.INTERFACE_TYPE_DEFINITION,\n      description,\n      name,\n      interfaces,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * UnionTypeDefinition :\n   *   - Description? union Name Directives[Const]? UnionMemberTypes?\n   */\n\n  parseUnionTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('union');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const types = this.parseUnionMemberTypes();\n    return this.node(start, {\n      kind: Kind.UNION_TYPE_DEFINITION,\n      description,\n      name,\n      directives,\n      types,\n    });\n  }\n  /**\n   * UnionMemberTypes :\n   *   - = `|`? NamedType\n   *   - UnionMemberTypes | NamedType\n   */\n\n  parseUnionMemberTypes() {\n    return this.expectOptionalToken(TokenKind.EQUALS)\n      ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n      : [];\n  }\n  /**\n   * EnumTypeDefinition :\n   *   - Description? enum Name Directives[Const]? EnumValuesDefinition?\n   */\n\n  parseEnumTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('enum');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const values = this.parseEnumValuesDefinition();\n    return this.node(start, {\n      kind: Kind.ENUM_TYPE_DEFINITION,\n      description,\n      name,\n      directives,\n      values,\n    });\n  }\n  /**\n   * ```\n   * EnumValuesDefinition : { EnumValueDefinition+ }\n   * ```\n   */\n\n  parseEnumValuesDefinition() {\n    return this.optionalMany(\n      TokenKind.BRACE_L,\n      this.parseEnumValueDefinition,\n      TokenKind.BRACE_R,\n    );\n  }\n  /**\n   * EnumValueDefinition : Description? EnumValue Directives[Const]?\n   */\n\n  parseEnumValueDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    const name = this.parseEnumValueName();\n    const directives = this.parseConstDirectives();\n    return this.node(start, {\n      kind: Kind.ENUM_VALUE_DEFINITION,\n      description,\n      name,\n      directives,\n    });\n  }\n  /**\n   * EnumValue : Name but not `true`, `false` or `null`\n   */\n\n  parseEnumValueName() {\n    if (\n      this._lexer.token.value === 'true' ||\n      this._lexer.token.value === 'false' ||\n      this._lexer.token.value === 'null'\n    ) {\n      throw syntaxError(\n        this._lexer.source,\n        this._lexer.token.start,\n        `${getTokenDesc(\n          this._lexer.token,\n        )} is reserved and cannot be used for an enum value.`,\n      );\n    }\n\n    return this.parseName();\n  }\n  /**\n   * InputObjectTypeDefinition :\n   *   - Description? input Name Directives[Const]? InputFieldsDefinition?\n   */\n\n  parseInputObjectTypeDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('input');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseInputFieldsDefinition();\n    return this.node(start, {\n      kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n      description,\n      name,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * ```\n   * InputFieldsDefinition : { InputValueDefinition+ }\n   * ```\n   */\n\n  parseInputFieldsDefinition() {\n    return this.optionalMany(\n      TokenKind.BRACE_L,\n      this.parseInputValueDef,\n      TokenKind.BRACE_R,\n    );\n  }\n  /**\n   * TypeSystemExtension :\n   *   - SchemaExtension\n   *   - TypeExtension\n   *\n   * TypeExtension :\n   *   - ScalarTypeExtension\n   *   - ObjectTypeExtension\n   *   - InterfaceTypeExtension\n   *   - UnionTypeExtension\n   *   - EnumTypeExtension\n   *   - InputObjectTypeDefinition\n   */\n\n  parseTypeSystemExtension() {\n    const keywordToken = this._lexer.lookahead();\n\n    if (keywordToken.kind === TokenKind.NAME) {\n      switch (keywordToken.value) {\n        case 'schema':\n          return this.parseSchemaExtension();\n\n        case 'scalar':\n          return this.parseScalarTypeExtension();\n\n        case 'type':\n          return this.parseObjectTypeExtension();\n\n        case 'interface':\n          return this.parseInterfaceTypeExtension();\n\n        case 'union':\n          return this.parseUnionTypeExtension();\n\n        case 'enum':\n          return this.parseEnumTypeExtension();\n\n        case 'input':\n          return this.parseInputObjectTypeExtension();\n      }\n    }\n\n    throw this.unexpected(keywordToken);\n  }\n  /**\n   * ```\n   * SchemaExtension :\n   *  - extend schema Directives[Const]? { OperationTypeDefinition+ }\n   *  - extend schema Directives[Const]\n   * ```\n   */\n\n  parseSchemaExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('schema');\n    const directives = this.parseConstDirectives();\n    const operationTypes = this.optionalMany(\n      TokenKind.BRACE_L,\n      this.parseOperationTypeDefinition,\n      TokenKind.BRACE_R,\n    );\n\n    if (directives.length === 0 && operationTypes.length === 0) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.SCHEMA_EXTENSION,\n      directives,\n      operationTypes,\n    });\n  }\n  /**\n   * ScalarTypeExtension :\n   *   - extend scalar Name Directives[Const]\n   */\n\n  parseScalarTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('scalar');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n\n    if (directives.length === 0) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.SCALAR_TYPE_EXTENSION,\n      name,\n      directives,\n    });\n  }\n  /**\n   * ObjectTypeExtension :\n   *  - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n   *  - extend type Name ImplementsInterfaces? Directives[Const]\n   *  - extend type Name ImplementsInterfaces\n   */\n\n  parseObjectTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('type');\n    const name = this.parseName();\n    const interfaces = this.parseImplementsInterfaces();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseFieldsDefinition();\n\n    if (\n      interfaces.length === 0 &&\n      directives.length === 0 &&\n      fields.length === 0\n    ) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.OBJECT_TYPE_EXTENSION,\n      name,\n      interfaces,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * InterfaceTypeExtension :\n   *  - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n   *  - extend interface Name ImplementsInterfaces? Directives[Const]\n   *  - extend interface Name ImplementsInterfaces\n   */\n\n  parseInterfaceTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('interface');\n    const name = this.parseName();\n    const interfaces = this.parseImplementsInterfaces();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseFieldsDefinition();\n\n    if (\n      interfaces.length === 0 &&\n      directives.length === 0 &&\n      fields.length === 0\n    ) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.INTERFACE_TYPE_EXTENSION,\n      name,\n      interfaces,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * UnionTypeExtension :\n   *   - extend union Name Directives[Const]? UnionMemberTypes\n   *   - extend union Name Directives[Const]\n   */\n\n  parseUnionTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('union');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const types = this.parseUnionMemberTypes();\n\n    if (directives.length === 0 && types.length === 0) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.UNION_TYPE_EXTENSION,\n      name,\n      directives,\n      types,\n    });\n  }\n  /**\n   * EnumTypeExtension :\n   *   - extend enum Name Directives[Const]? EnumValuesDefinition\n   *   - extend enum Name Directives[Const]\n   */\n\n  parseEnumTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('enum');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const values = this.parseEnumValuesDefinition();\n\n    if (directives.length === 0 && values.length === 0) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.ENUM_TYPE_EXTENSION,\n      name,\n      directives,\n      values,\n    });\n  }\n  /**\n   * InputObjectTypeExtension :\n   *   - extend input Name Directives[Const]? InputFieldsDefinition\n   *   - extend input Name Directives[Const]\n   */\n\n  parseInputObjectTypeExtension() {\n    const start = this._lexer.token;\n    this.expectKeyword('extend');\n    this.expectKeyword('input');\n    const name = this.parseName();\n    const directives = this.parseConstDirectives();\n    const fields = this.parseInputFieldsDefinition();\n\n    if (directives.length === 0 && fields.length === 0) {\n      throw this.unexpected();\n    }\n\n    return this.node(start, {\n      kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n      name,\n      directives,\n      fields,\n    });\n  }\n  /**\n   * ```\n   * DirectiveDefinition :\n   *   - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n   * ```\n   */\n\n  parseDirectiveDefinition() {\n    const start = this._lexer.token;\n    const description = this.parseDescription();\n    this.expectKeyword('directive');\n    this.expectToken(TokenKind.AT);\n    const name = this.parseName();\n    const args = this.parseArgumentDefs();\n    const repeatable = this.expectOptionalKeyword('repeatable');\n    this.expectKeyword('on');\n    const locations = this.parseDirectiveLocations();\n    return this.node(start, {\n      kind: Kind.DIRECTIVE_DEFINITION,\n      description,\n      name,\n      arguments: args,\n      repeatable,\n      locations,\n    });\n  }\n  /**\n   * DirectiveLocations :\n   *   - `|`? DirectiveLocation\n   *   - DirectiveLocations | DirectiveLocation\n   */\n\n  parseDirectiveLocations() {\n    return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n  }\n  /*\n   * DirectiveLocation :\n   *   - ExecutableDirectiveLocation\n   *   - TypeSystemDirectiveLocation\n   *\n   * ExecutableDirectiveLocation : one of\n   *   `QUERY`\n   *   `MUTATION`\n   *   `SUBSCRIPTION`\n   *   `FIELD`\n   *   `FRAGMENT_DEFINITION`\n   *   `FRAGMENT_SPREAD`\n   *   `INLINE_FRAGMENT`\n   *\n   * TypeSystemDirectiveLocation : one of\n   *   `SCHEMA`\n   *   `SCALAR`\n   *   `OBJECT`\n   *   `FIELD_DEFINITION`\n   *   `ARGUMENT_DEFINITION`\n   *   `INTERFACE`\n   *   `UNION`\n   *   `ENUM`\n   *   `ENUM_VALUE`\n   *   `INPUT_OBJECT`\n   *   `INPUT_FIELD_DEFINITION`\n   */\n\n  parseDirectiveLocation() {\n    const start = this._lexer.token;\n    const name = this.parseName();\n\n    if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n      return name;\n    }\n\n    throw this.unexpected(start);\n  } // Core parsing utility functions\n\n  /**\n   * Returns a node that, if configured to do so, sets a \"loc\" field as a\n   * location object, used to identify the place in the source that created a\n   * given parsed object.\n   */\n\n  node(startToken, node) {\n    if (this._options.noLocation !== true) {\n      node.loc = new Location(\n        startToken,\n        this._lexer.lastToken,\n        this._lexer.source,\n      );\n    }\n\n    return node;\n  }\n  /**\n   * Determines if the next token is of a given kind\n   */\n\n  peek(kind) {\n    return this._lexer.token.kind === kind;\n  }\n  /**\n   * If the next token is of the given kind, return that token after advancing the lexer.\n   * Otherwise, do not change the parser state and throw an error.\n   */\n\n  expectToken(kind) {\n    const token = this._lexer.token;\n\n    if (token.kind === kind) {\n      this.advanceLexer();\n      return token;\n    }\n\n    throw syntaxError(\n      this._lexer.source,\n      token.start,\n      `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n    );\n  }\n  /**\n   * If the next token is of the given kind, return \"true\" after advancing the lexer.\n   * Otherwise, do not change the parser state and return \"false\".\n   */\n\n  expectOptionalToken(kind) {\n    const token = this._lexer.token;\n\n    if (token.kind === kind) {\n      this.advanceLexer();\n      return true;\n    }\n\n    return false;\n  }\n  /**\n   * If the next token is a given keyword, advance the lexer.\n   * Otherwise, do not change the parser state and throw an error.\n   */\n\n  expectKeyword(value) {\n    const token = this._lexer.token;\n\n    if (token.kind === TokenKind.NAME && token.value === value) {\n      this.advanceLexer();\n    } else {\n      throw syntaxError(\n        this._lexer.source,\n        token.start,\n        `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n      );\n    }\n  }\n  /**\n   * If the next token is a given keyword, return \"true\" after advancing the lexer.\n   * Otherwise, do not change the parser state and return \"false\".\n   */\n\n  expectOptionalKeyword(value) {\n    const token = this._lexer.token;\n\n    if (token.kind === TokenKind.NAME && token.value === value) {\n      this.advanceLexer();\n      return true;\n    }\n\n    return false;\n  }\n  /**\n   * Helper function for creating an error when an unexpected lexed token is encountered.\n   */\n\n  unexpected(atToken) {\n    const token =\n      atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n    return syntaxError(\n      this._lexer.source,\n      token.start,\n      `Unexpected ${getTokenDesc(token)}.`,\n    );\n  }\n  /**\n   * Returns a possibly empty list of parse nodes, determined by the parseFn.\n   * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n\n  any(openKind, parseFn, closeKind) {\n    this.expectToken(openKind);\n    const nodes = [];\n\n    while (!this.expectOptionalToken(closeKind)) {\n      nodes.push(parseFn.call(this));\n    }\n\n    return nodes;\n  }\n  /**\n   * Returns a list of parse nodes, determined by the parseFn.\n   * It can be empty only if open token is missing otherwise it will always return non-empty list\n   * that begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n\n  optionalMany(openKind, parseFn, closeKind) {\n    if (this.expectOptionalToken(openKind)) {\n      const nodes = [];\n\n      do {\n        nodes.push(parseFn.call(this));\n      } while (!this.expectOptionalToken(closeKind));\n\n      return nodes;\n    }\n\n    return [];\n  }\n  /**\n   * Returns a non-empty list of parse nodes, determined by the parseFn.\n   * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n   * Advances the parser to the next lex token after the closing token.\n   */\n\n  many(openKind, parseFn, closeKind) {\n    this.expectToken(openKind);\n    const nodes = [];\n\n    do {\n      nodes.push(parseFn.call(this));\n    } while (!this.expectOptionalToken(closeKind));\n\n    return nodes;\n  }\n  /**\n   * Returns a non-empty list of parse nodes, determined by the parseFn.\n   * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n   * Advances the parser to the next lex token after last item in the list.\n   */\n\n  delimitedMany(delimiterKind, parseFn) {\n    this.expectOptionalToken(delimiterKind);\n    const nodes = [];\n\n    do {\n      nodes.push(parseFn.call(this));\n    } while (this.expectOptionalToken(delimiterKind));\n\n    return nodes;\n  }\n\n  advanceLexer() {\n    const { maxTokens } = this._options;\n\n    const token = this._lexer.advance();\n\n    if (maxTokens !== undefined && token.kind !== TokenKind.EOF) {\n      ++this._tokenCounter;\n\n      if (this._tokenCounter > maxTokens) {\n        throw syntaxError(\n          this._lexer.source,\n          token.start,\n          `Document contains more that ${maxTokens} tokens. Parsing aborted.`,\n        );\n      }\n    }\n  }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n  const value = token.value;\n  return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n  return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n  return new GraphQLError(`Syntax Error: ${description}`, {\n    source,\n    positions: [position],\n  });\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n  printLocation,\n  printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n  const firstArg = args[0];\n\n  if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n    return {\n      nodes: firstArg,\n      source: args[1],\n      positions: args[2],\n      path: args[3],\n      originalError: args[4],\n      extensions: args[5],\n    };\n  }\n\n  return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n  /**\n   * An array of `{ line, column }` locations within the source GraphQL document\n   * which correspond to this error.\n   *\n   * Errors during validation often contain multiple locations, for example to\n   * point out two things with the same name. Errors during execution include a\n   * single location, the field which produced the error.\n   *\n   * Enumerable, and appears in the result of JSON.stringify().\n   */\n\n  /**\n   * An array describing the JSON-path into the execution response which\n   * corresponds to this error. Only included for errors during execution.\n   *\n   * Enumerable, and appears in the result of JSON.stringify().\n   */\n\n  /**\n   * An array of GraphQL AST Nodes corresponding to this error.\n   */\n\n  /**\n   * The source GraphQL document for the first location of this error.\n   *\n   * Note that if this Error represents more than one node, the source may not\n   * represent nodes after the first node.\n   */\n\n  /**\n   * An array of character offsets within the source GraphQL document\n   * which correspond to this error.\n   */\n\n  /**\n   * The original error thrown from a field resolver during execution.\n   */\n\n  /**\n   * Extension fields to add to the formatted error.\n   */\n\n  /**\n   * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n   */\n  constructor(message, ...rawArgs) {\n    var _this$nodes, _nodeLocations$, _ref;\n\n    const { nodes, source, positions, path, originalError, extensions } =\n      toNormalizedOptions(rawArgs);\n    super(message);\n    this.name = 'GraphQLError';\n    this.path = path !== null && path !== void 0 ? path : undefined;\n    this.originalError =\n      originalError !== null && originalError !== void 0\n        ? originalError\n        : undefined; // Compute list of blame nodes.\n\n    this.nodes = undefinedIfEmpty(\n      Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n    );\n    const nodeLocations = undefinedIfEmpty(\n      (_this$nodes = this.nodes) === null || _this$nodes === void 0\n        ? void 0\n        : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n    ); // Compute locations in the source for the given nodes/positions.\n\n    this.source =\n      source !== null && source !== void 0\n        ? source\n        : nodeLocations === null || nodeLocations === void 0\n        ? void 0\n        : (_nodeLocations$ = nodeLocations[0]) === null ||\n          _nodeLocations$ === void 0\n        ? void 0\n        : _nodeLocations$.source;\n    this.positions =\n      positions !== null && positions !== void 0\n        ? positions\n        : nodeLocations === null || nodeLocations === void 0\n        ? void 0\n        : nodeLocations.map((loc) => loc.start);\n    this.locations =\n      positions && source\n        ? positions.map((pos) => getLocation(source, pos))\n        : nodeLocations === null || nodeLocations === void 0\n        ? void 0\n        : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n    const originalExtensions = isObjectLike(\n      originalError === null || originalError === void 0\n        ? void 0\n        : originalError.extensions,\n    )\n      ? originalError === null || originalError === void 0\n        ? void 0\n        : originalError.extensions\n      : undefined;\n    this.extensions =\n      (_ref =\n        extensions !== null && extensions !== void 0\n          ? extensions\n          : originalExtensions) !== null && _ref !== void 0\n        ? _ref\n        : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n    // Keep the rest as non-enumerable.\n\n    Object.defineProperties(this, {\n      message: {\n        writable: true,\n        enumerable: true,\n      },\n      name: {\n        enumerable: false,\n      },\n      nodes: {\n        enumerable: false,\n      },\n      source: {\n        enumerable: false,\n      },\n      positions: {\n        enumerable: false,\n      },\n      originalError: {\n        enumerable: false,\n      },\n    }); // Include (non-enumerable) stack trace.\n\n    /* c8 ignore start */\n    // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n    if (\n      originalError !== null &&\n      originalError !== void 0 &&\n      originalError.stack\n    ) {\n      Object.defineProperty(this, 'stack', {\n        value: originalError.stack,\n        writable: true,\n        configurable: true,\n      });\n    } else if (Error.captureStackTrace) {\n      Error.captureStackTrace(this, GraphQLError);\n    } else {\n      Object.defineProperty(this, 'stack', {\n        value: Error().stack,\n        writable: true,\n        configurable: true,\n      });\n    }\n    /* c8 ignore stop */\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'GraphQLError';\n  }\n\n  toString() {\n    let output = this.message;\n\n    if (this.nodes) {\n      for (const node of this.nodes) {\n        if (node.loc) {\n          output += '\\n\\n' + printLocation(node.loc);\n        }\n      }\n    } else if (this.source && this.locations) {\n      for (const location of this.locations) {\n        output += '\\n\\n' + printSourceLocation(this.source, location);\n      }\n    }\n\n    return output;\n  }\n\n  toJSON() {\n    const formattedError = {\n      message: this.message,\n    };\n\n    if (this.locations != null) {\n      formattedError.locations = this.locations;\n    }\n\n    if (this.path != null) {\n      formattedError.path = this.path;\n    }\n\n    if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n      formattedError.extensions = this.extensions;\n    }\n\n    return formattedError;\n  }\n}\n\nfunction undefinedIfEmpty(array) {\n  return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n  return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n  return error.toJSON();\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n  return typeof value == 'object' && value !== null;\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n  let lastLineStart = 0;\n  let line = 1;\n\n  for (const match of source.body.matchAll(LineRegExp)) {\n    typeof match.index === 'number' || invariant(false);\n\n    if (match.index >= position) {\n      break;\n    }\n\n    lastLineStart = match.index + match[0].length;\n    line += 1;\n  }\n\n  return {\n    line,\n    column: position + 1 - lastLineStart,\n  };\n}\n","export function invariant(condition, message) {\n  const booleanCondition = Boolean(condition);\n\n  if (!booleanCondition) {\n    throw new Error(\n      message != null ? message : 'Unexpected invariant triggered.',\n    );\n  }\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n  return printSourceLocation(\n    location.source,\n    getLocation(location.source, location.start),\n  );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n  const firstLineColumnOffset = source.locationOffset.column - 1;\n  const body = ''.padStart(firstLineColumnOffset) + source.body;\n  const lineIndex = sourceLocation.line - 1;\n  const lineOffset = source.locationOffset.line - 1;\n  const lineNum = sourceLocation.line + lineOffset;\n  const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n  const columnNum = sourceLocation.column + columnOffset;\n  const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n  const lines = body.split(/\\r\\n|[\\n\\r]/g);\n  const locationLine = lines[lineIndex]; // Special case for minified documents\n\n  if (locationLine.length > 120) {\n    const subLineIndex = Math.floor(columnNum / 80);\n    const subLineColumnNum = columnNum % 80;\n    const subLines = [];\n\n    for (let i = 0; i < locationLine.length; i += 80) {\n      subLines.push(locationLine.slice(i, i + 80));\n    }\n\n    return (\n      locationStr +\n      printPrefixedLines([\n        [`${lineNum} |`, subLines[0]],\n        ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n        ['|', '^'.padStart(subLineColumnNum)],\n        ['|', subLines[subLineIndex + 1]],\n      ])\n    );\n  }\n\n  return (\n    locationStr +\n    printPrefixedLines([\n      // Lines specified like this: [\"prefix\", \"string\"],\n      [`${lineNum - 1} |`, lines[lineIndex - 1]],\n      [`${lineNum} |`, locationLine],\n      ['|', '^'.padStart(columnNum)],\n      [`${lineNum + 1} |`, lines[lineIndex + 1]],\n    ])\n  );\n}\n\nfunction printPrefixedLines(lines) {\n  const existingLines = lines.filter(([_, line]) => line !== undefined);\n  const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n  return existingLines\n    .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n    .join('\\n');\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n  /**\n   * The character offset at which this Node begins.\n   */\n\n  /**\n   * The character offset at which this Node ends.\n   */\n\n  /**\n   * The Token at which this Node begins.\n   */\n\n  /**\n   * The Token at which this Node ends.\n   */\n\n  /**\n   * The Source document the AST represents.\n   */\n  constructor(startToken, endToken, source) {\n    this.start = startToken.start;\n    this.end = endToken.end;\n    this.startToken = startToken;\n    this.endToken = endToken;\n    this.source = source;\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'Location';\n  }\n\n  toJSON() {\n    return {\n      start: this.start,\n      end: this.end,\n    };\n  }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n  /**\n   * The kind of Token.\n   */\n\n  /**\n   * The character offset at which this Node begins.\n   */\n\n  /**\n   * The character offset at which this Node ends.\n   */\n\n  /**\n   * The 1-indexed line number on which this Token appears.\n   */\n\n  /**\n   * The 1-indexed column number at which this Token begins.\n   */\n\n  /**\n   * For non-punctuation tokens, represents the interpreted value of the token.\n   *\n   * Note: is undefined for punctuation tokens, but typed as string for\n   * convenience in the parser.\n   */\n\n  /**\n   * Tokens exist as nodes in a double-linked-list amongst all tokens\n   * including ignored tokens. <SOF> is always the first node and <EOF>\n   * the last.\n   */\n  constructor(kind, start, end, line, column, value) {\n    this.kind = kind;\n    this.start = start;\n    this.end = end;\n    this.line = line;\n    this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n    this.value = value;\n    this.prev = null;\n    this.next = null;\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'Token';\n  }\n\n  toJSON() {\n    return {\n      kind: this.kind,\n      value: this.value,\n      line: this.line,\n      column: this.column,\n    };\n  }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n  Name: [],\n  Document: ['definitions'],\n  OperationDefinition: [\n    'name',\n    'variableDefinitions',\n    'directives',\n    'selectionSet',\n  ],\n  VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n  Variable: ['name'],\n  SelectionSet: ['selections'],\n  Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n  Argument: ['name', 'value'],\n  FragmentSpread: ['name', 'directives'],\n  InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n  FragmentDefinition: [\n    'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n    'variableDefinitions',\n    'typeCondition',\n    'directives',\n    'selectionSet',\n  ],\n  IntValue: [],\n  FloatValue: [],\n  StringValue: [],\n  BooleanValue: [],\n  NullValue: [],\n  EnumValue: [],\n  ListValue: ['values'],\n  ObjectValue: ['fields'],\n  ObjectField: ['name', 'value'],\n  Directive: ['name', 'arguments'],\n  NamedType: ['name'],\n  ListType: ['type'],\n  NonNullType: ['type'],\n  SchemaDefinition: ['description', 'directives', 'operationTypes'],\n  OperationTypeDefinition: ['type'],\n  ScalarTypeDefinition: ['description', 'name', 'directives'],\n  ObjectTypeDefinition: [\n    'description',\n    'name',\n    'interfaces',\n    'directives',\n    'fields',\n  ],\n  FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n  InputValueDefinition: [\n    'description',\n    'name',\n    'type',\n    'defaultValue',\n    'directives',\n  ],\n  InterfaceTypeDefinition: [\n    'description',\n    'name',\n    'interfaces',\n    'directives',\n    'fields',\n  ],\n  UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n  EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n  EnumValueDefinition: ['description', 'name', 'directives'],\n  InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n  DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n  SchemaExtension: ['directives', 'operationTypes'],\n  ScalarTypeExtension: ['name', 'directives'],\n  ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n  InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n  UnionTypeExtension: ['name', 'directives', 'types'],\n  EnumTypeExtension: ['name', 'directives', 'values'],\n  InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n  const maybeKind =\n    maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n  return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n  OperationTypeNode['QUERY'] = 'query';\n  OperationTypeNode['MUTATION'] = 'mutation';\n  OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","/**\n * The set of allowed directive location values.\n */\nvar DirectiveLocation;\n\n(function (DirectiveLocation) {\n  DirectiveLocation['QUERY'] = 'QUERY';\n  DirectiveLocation['MUTATION'] = 'MUTATION';\n  DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n  DirectiveLocation['FIELD'] = 'FIELD';\n  DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n  DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n  DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n  DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n  DirectiveLocation['SCHEMA'] = 'SCHEMA';\n  DirectiveLocation['SCALAR'] = 'SCALAR';\n  DirectiveLocation['OBJECT'] = 'OBJECT';\n  DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n  DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n  DirectiveLocation['INTERFACE'] = 'INTERFACE';\n  DirectiveLocation['UNION'] = 'UNION';\n  DirectiveLocation['ENUM'] = 'ENUM';\n  DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n  DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n  DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n\nexport { DirectiveLocation };\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n  Kind['NAME'] = 'Name';\n  Kind['DOCUMENT'] = 'Document';\n  Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n  Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n  Kind['SELECTION_SET'] = 'SelectionSet';\n  Kind['FIELD'] = 'Field';\n  Kind['ARGUMENT'] = 'Argument';\n  Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n  Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n  Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n  Kind['VARIABLE'] = 'Variable';\n  Kind['INT'] = 'IntValue';\n  Kind['FLOAT'] = 'FloatValue';\n  Kind['STRING'] = 'StringValue';\n  Kind['BOOLEAN'] = 'BooleanValue';\n  Kind['NULL'] = 'NullValue';\n  Kind['ENUM'] = 'EnumValue';\n  Kind['LIST'] = 'ListValue';\n  Kind['OBJECT'] = 'ObjectValue';\n  Kind['OBJECT_FIELD'] = 'ObjectField';\n  Kind['DIRECTIVE'] = 'Directive';\n  Kind['NAMED_TYPE'] = 'NamedType';\n  Kind['LIST_TYPE'] = 'ListType';\n  Kind['NON_NULL_TYPE'] = 'NonNullType';\n  Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n  Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n  Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n  Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n  Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n  Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n  Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n  Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n  Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n  Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n  Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n  Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n  Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n  Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n  Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n  Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n  Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n  Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n  Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport class Lexer {\n  /**\n   * The previously focused non-ignored token.\n   */\n\n  /**\n   * The currently focused non-ignored token.\n   */\n\n  /**\n   * The (1-indexed) line containing the current token.\n   */\n\n  /**\n   * The character offset at which the current line begins.\n   */\n  constructor(source) {\n    const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n    this.source = source;\n    this.lastToken = startOfFileToken;\n    this.token = startOfFileToken;\n    this.line = 1;\n    this.lineStart = 0;\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'Lexer';\n  }\n  /**\n   * Advances the token stream to the next non-ignored token.\n   */\n\n  advance() {\n    this.lastToken = this.token;\n    const token = (this.token = this.lookahead());\n    return token;\n  }\n  /**\n   * Looks ahead and returns the next non-ignored token, but does not change\n   * the state of Lexer.\n   */\n\n  lookahead() {\n    let token = this.token;\n\n    if (token.kind !== TokenKind.EOF) {\n      do {\n        if (token.next) {\n          token = token.next;\n        } else {\n          // Read the next token and form a link in the token linked-list.\n          const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n          token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n          nextToken.prev = token;\n          token = nextToken;\n        }\n      } while (token.kind === TokenKind.COMMENT);\n    }\n\n    return token;\n  }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n  return (\n    kind === TokenKind.BANG ||\n    kind === TokenKind.DOLLAR ||\n    kind === TokenKind.AMP ||\n    kind === TokenKind.PAREN_L ||\n    kind === TokenKind.PAREN_R ||\n    kind === TokenKind.SPREAD ||\n    kind === TokenKind.COLON ||\n    kind === TokenKind.EQUALS ||\n    kind === TokenKind.AT ||\n    kind === TokenKind.BRACKET_L ||\n    kind === TokenKind.BRACKET_R ||\n    kind === TokenKind.BRACE_L ||\n    kind === TokenKind.PIPE ||\n    kind === TokenKind.BRACE_R\n  );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n *   - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n  return (\n    (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n  );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n  return (\n    isLeadingSurrogate(body.charCodeAt(location)) &&\n    isTrailingSurrogate(body.charCodeAt(location + 1))\n  );\n}\n\nfunction isLeadingSurrogate(code) {\n  return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n  return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n  const code = lexer.source.body.codePointAt(location);\n\n  if (code === undefined) {\n    return TokenKind.EOF;\n  } else if (code >= 0x0020 && code <= 0x007e) {\n    // Printable ASCII\n    const char = String.fromCodePoint(code);\n    return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n  } // Unicode code point\n\n  return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n  const line = lexer.line;\n  const col = 1 + start - lexer.lineStart;\n  return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n  const body = lexer.source.body;\n  const bodyLength = body.length;\n  let position = start;\n\n  while (position < bodyLength) {\n    const code = body.charCodeAt(position); // SourceCharacter\n\n    switch (code) {\n      // Ignored ::\n      //   - UnicodeBOM\n      //   - WhiteSpace\n      //   - LineTerminator\n      //   - Comment\n      //   - Comma\n      //\n      // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n      //\n      // WhiteSpace ::\n      //   - \"Horizontal Tab (U+0009)\"\n      //   - \"Space (U+0020)\"\n      //\n      // Comma :: ,\n      case 0xfeff: // <BOM>\n\n      case 0x0009: // \\t\n\n      case 0x0020: // <space>\n\n      case 0x002c:\n        // ,\n        ++position;\n        continue;\n      // LineTerminator ::\n      //   - \"New Line (U+000A)\"\n      //   - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n      //   - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n      case 0x000a:\n        // \\n\n        ++position;\n        ++lexer.line;\n        lexer.lineStart = position;\n        continue;\n\n      case 0x000d:\n        // \\r\n        if (body.charCodeAt(position + 1) === 0x000a) {\n          position += 2;\n        } else {\n          ++position;\n        }\n\n        ++lexer.line;\n        lexer.lineStart = position;\n        continue;\n      // Comment\n\n      case 0x0023:\n        // #\n        return readComment(lexer, position);\n      // Token ::\n      //   - Punctuator\n      //   - Name\n      //   - IntValue\n      //   - FloatValue\n      //   - StringValue\n      //\n      // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n      case 0x0021:\n        // !\n        return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n      case 0x0024:\n        // $\n        return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n      case 0x0026:\n        // &\n        return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n      case 0x0028:\n        // (\n        return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n      case 0x0029:\n        // )\n        return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n      case 0x002e:\n        // .\n        if (\n          body.charCodeAt(position + 1) === 0x002e &&\n          body.charCodeAt(position + 2) === 0x002e\n        ) {\n          return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n        }\n\n        break;\n\n      case 0x003a:\n        // :\n        return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n      case 0x003d:\n        // =\n        return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n      case 0x0040:\n        // @\n        return createToken(lexer, TokenKind.AT, position, position + 1);\n\n      case 0x005b:\n        // [\n        return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n      case 0x005d:\n        // ]\n        return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n      case 0x007b:\n        // {\n        return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n      case 0x007c:\n        // |\n        return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n      case 0x007d:\n        // }\n        return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n      // StringValue\n\n      case 0x0022:\n        // \"\n        if (\n          body.charCodeAt(position + 1) === 0x0022 &&\n          body.charCodeAt(position + 2) === 0x0022\n        ) {\n          return readBlockString(lexer, position);\n        }\n\n        return readString(lexer, position);\n    } // IntValue | FloatValue (Digit | -)\n\n    if (isDigit(code) || code === 0x002d) {\n      return readNumber(lexer, position, code);\n    } // Name\n\n    if (isNameStart(code)) {\n      return readName(lexer, position);\n    }\n\n    throw syntaxError(\n      lexer.source,\n      position,\n      code === 0x0027\n        ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n        : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n        ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n        : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n    );\n  }\n\n  return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n  const body = lexer.source.body;\n  const bodyLength = body.length;\n  let position = start + 1;\n\n  while (position < bodyLength) {\n    const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n    if (code === 0x000a || code === 0x000d) {\n      break;\n    } // SourceCharacter\n\n    if (isUnicodeScalarValue(code)) {\n      ++position;\n    } else if (isSupplementaryCodePoint(body, position)) {\n      position += 2;\n    } else {\n      break;\n    }\n  }\n\n  return createToken(\n    lexer,\n    TokenKind.COMMENT,\n    start,\n    position,\n    body.slice(start + 1, position),\n  );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n *   - NegativeSign? 0\n *   - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n *   - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *   - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n *   - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n  const body = lexer.source.body;\n  let position = start;\n  let code = firstCode;\n  let isFloat = false; // NegativeSign (-)\n\n  if (code === 0x002d) {\n    code = body.charCodeAt(++position);\n  } // Zero (0)\n\n  if (code === 0x0030) {\n    code = body.charCodeAt(++position);\n\n    if (isDigit(code)) {\n      throw syntaxError(\n        lexer.source,\n        position,\n        `Invalid number, unexpected digit after 0: ${printCodePointAt(\n          lexer,\n          position,\n        )}.`,\n      );\n    }\n  } else {\n    position = readDigits(lexer, position, code);\n    code = body.charCodeAt(position);\n  } // Full stop (.)\n\n  if (code === 0x002e) {\n    isFloat = true;\n    code = body.charCodeAt(++position);\n    position = readDigits(lexer, position, code);\n    code = body.charCodeAt(position);\n  } // E e\n\n  if (code === 0x0045 || code === 0x0065) {\n    isFloat = true;\n    code = body.charCodeAt(++position); // + -\n\n    if (code === 0x002b || code === 0x002d) {\n      code = body.charCodeAt(++position);\n    }\n\n    position = readDigits(lexer, position, code);\n    code = body.charCodeAt(position);\n  } // Numbers cannot be followed by . or NameStart\n\n  if (code === 0x002e || isNameStart(code)) {\n    throw syntaxError(\n      lexer.source,\n      position,\n      `Invalid number, expected digit but got: ${printCodePointAt(\n        lexer,\n        position,\n      )}.`,\n    );\n  }\n\n  return createToken(\n    lexer,\n    isFloat ? TokenKind.FLOAT : TokenKind.INT,\n    start,\n    position,\n    body.slice(start, position),\n  );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n  if (!isDigit(firstCode)) {\n    throw syntaxError(\n      lexer.source,\n      start,\n      `Invalid number, expected digit but got: ${printCodePointAt(\n        lexer,\n        start,\n      )}.`,\n    );\n  }\n\n  const body = lexer.source.body;\n  let position = start + 1; // +1 to skip first firstCode\n\n  while (isDigit(body.charCodeAt(position))) {\n    ++position;\n  }\n\n  return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n *   - `\"\"` [lookahead != `\"`]\n *   - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n *   - SourceCharacter but not `\"` or `\\` or LineTerminator\n *   - `\\u` EscapedUnicode\n *   - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n *   - `{` HexDigit+ `}`\n *   - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n  const body = lexer.source.body;\n  const bodyLength = body.length;\n  let position = start + 1;\n  let chunkStart = position;\n  let value = '';\n\n  while (position < bodyLength) {\n    const code = body.charCodeAt(position); // Closing Quote (\")\n\n    if (code === 0x0022) {\n      value += body.slice(chunkStart, position);\n      return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n    } // Escape Sequence (\\)\n\n    if (code === 0x005c) {\n      value += body.slice(chunkStart, position);\n      const escape =\n        body.charCodeAt(position + 1) === 0x0075 // u\n          ? body.charCodeAt(position + 2) === 0x007b // {\n            ? readEscapedUnicodeVariableWidth(lexer, position)\n            : readEscapedUnicodeFixedWidth(lexer, position)\n          : readEscapedCharacter(lexer, position);\n      value += escape.value;\n      position += escape.size;\n      chunkStart = position;\n      continue;\n    } // LineTerminator (\\n | \\r)\n\n    if (code === 0x000a || code === 0x000d) {\n      break;\n    } // SourceCharacter\n\n    if (isUnicodeScalarValue(code)) {\n      ++position;\n    } else if (isSupplementaryCodePoint(body, position)) {\n      position += 2;\n    } else {\n      throw syntaxError(\n        lexer.source,\n        position,\n        `Invalid character within String: ${printCodePointAt(\n          lexer,\n          position,\n        )}.`,\n      );\n    }\n  }\n\n  throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n  const body = lexer.source.body;\n  let point = 0;\n  let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n  while (size < 12) {\n    const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n    if (code === 0x007d) {\n      // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n      if (size < 5 || !isUnicodeScalarValue(point)) {\n        break;\n      }\n\n      return {\n        value: String.fromCodePoint(point),\n        size,\n      };\n    } // Append this hex digit to the code point.\n\n    point = (point << 4) | readHexDigit(code);\n\n    if (point < 0) {\n      break;\n    }\n  }\n\n  throw syntaxError(\n    lexer.source,\n    position,\n    `Invalid Unicode escape sequence: \"${body.slice(\n      position,\n      position + size,\n    )}\".`,\n  );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n  const body = lexer.source.body;\n  const code = read16BitHexCode(body, position + 2);\n\n  if (isUnicodeScalarValue(code)) {\n    return {\n      value: String.fromCodePoint(code),\n      size: 6,\n    };\n  } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n  // a valid pair is formed.\n\n  if (isLeadingSurrogate(code)) {\n    // \\u\n    if (\n      body.charCodeAt(position + 6) === 0x005c &&\n      body.charCodeAt(position + 7) === 0x0075\n    ) {\n      const trailingCode = read16BitHexCode(body, position + 8);\n\n      if (isTrailingSurrogate(trailingCode)) {\n        // JavaScript defines strings as a sequence of UTF-16 code units and\n        // encodes Unicode code points above U+FFFF using a surrogate pair of\n        // code units. Since this is a surrogate pair escape sequence, just\n        // include both codes into the JavaScript string value. Had JavaScript\n        // not been internally based on UTF-16, then this surrogate pair would\n        // be decoded to retrieve the supplementary code point.\n        return {\n          value: String.fromCodePoint(code, trailingCode),\n          size: 12,\n        };\n      }\n    }\n  }\n\n  throw syntaxError(\n    lexer.source,\n    position,\n    `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n  );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n  // readHexDigit() returns -1 on error. ORing a negative value with any other\n  // value always produces a negative value.\n  return (\n    (readHexDigit(body.charCodeAt(position)) << 12) |\n    (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n    (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n    readHexDigit(body.charCodeAt(position + 3))\n  );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n *   - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n *   - `A` `B` `C` `D` `E` `F`\n *   - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n  return code >= 0x0030 && code <= 0x0039 // 0-9\n    ? code - 0x0030\n    : code >= 0x0041 && code <= 0x0046 // A-F\n    ? code - 0x0037\n    : code >= 0x0061 && code <= 0x0066 // a-f\n    ? code - 0x0057\n    : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name               |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"`               | U+0022     | double quote                 |\n * | `\\`               | U+005C     | reverse solidus (back slash) |\n * | `/`               | U+002F     | solidus (forward slash)      |\n * | `b`               | U+0008     | backspace                    |\n * | `f`               | U+000C     | form feed                    |\n * | `n`               | U+000A     | line feed (new line)         |\n * | `r`               | U+000D     | carriage return              |\n * | `t`               | U+0009     | horizontal tab               |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n  const body = lexer.source.body;\n  const code = body.charCodeAt(position + 1);\n\n  switch (code) {\n    case 0x0022:\n      // \"\n      return {\n        value: '\\u0022',\n        size: 2,\n      };\n\n    case 0x005c:\n      // \\\n      return {\n        value: '\\u005c',\n        size: 2,\n      };\n\n    case 0x002f:\n      // /\n      return {\n        value: '\\u002f',\n        size: 2,\n      };\n\n    case 0x0062:\n      // b\n      return {\n        value: '\\u0008',\n        size: 2,\n      };\n\n    case 0x0066:\n      // f\n      return {\n        value: '\\u000c',\n        size: 2,\n      };\n\n    case 0x006e:\n      // n\n      return {\n        value: '\\u000a',\n        size: 2,\n      };\n\n    case 0x0072:\n      // r\n      return {\n        value: '\\u000d',\n        size: 2,\n      };\n\n    case 0x0074:\n      // t\n      return {\n        value: '\\u0009',\n        size: 2,\n      };\n  }\n\n  throw syntaxError(\n    lexer.source,\n    position,\n    `Invalid character escape sequence: \"${body.slice(\n      position,\n      position + 2,\n    )}\".`,\n  );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n *   - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n *   - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n *   - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n  const body = lexer.source.body;\n  const bodyLength = body.length;\n  let lineStart = lexer.lineStart;\n  let position = start + 3;\n  let chunkStart = position;\n  let currentLine = '';\n  const blockLines = [];\n\n  while (position < bodyLength) {\n    const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n    if (\n      code === 0x0022 &&\n      body.charCodeAt(position + 1) === 0x0022 &&\n      body.charCodeAt(position + 2) === 0x0022\n    ) {\n      currentLine += body.slice(chunkStart, position);\n      blockLines.push(currentLine);\n      const token = createToken(\n        lexer,\n        TokenKind.BLOCK_STRING,\n        start,\n        position + 3, // Return a string of the lines joined with U+000A.\n        dedentBlockStringLines(blockLines).join('\\n'),\n      );\n      lexer.line += blockLines.length - 1;\n      lexer.lineStart = lineStart;\n      return token;\n    } // Escaped Triple-Quote (\\\"\"\")\n\n    if (\n      code === 0x005c &&\n      body.charCodeAt(position + 1) === 0x0022 &&\n      body.charCodeAt(position + 2) === 0x0022 &&\n      body.charCodeAt(position + 3) === 0x0022\n    ) {\n      currentLine += body.slice(chunkStart, position);\n      chunkStart = position + 1; // skip only slash\n\n      position += 4;\n      continue;\n    } // LineTerminator\n\n    if (code === 0x000a || code === 0x000d) {\n      currentLine += body.slice(chunkStart, position);\n      blockLines.push(currentLine);\n\n      if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n        position += 2;\n      } else {\n        ++position;\n      }\n\n      currentLine = '';\n      chunkStart = position;\n      lineStart = position;\n      continue;\n    } // SourceCharacter\n\n    if (isUnicodeScalarValue(code)) {\n      ++position;\n    } else if (isSupplementaryCodePoint(body, position)) {\n      position += 2;\n    } else {\n      throw syntaxError(\n        lexer.source,\n        position,\n        `Invalid character within String: ${printCodePointAt(\n          lexer,\n          position,\n        )}.`,\n      );\n    }\n  }\n\n  throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n *   - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n  const body = lexer.source.body;\n  const bodyLength = body.length;\n  let position = start + 1;\n\n  while (position < bodyLength) {\n    const code = body.charCodeAt(position);\n\n    if (isNameContinue(code)) {\n      ++position;\n    } else {\n      break;\n    }\n  }\n\n  return createToken(\n    lexer,\n    TokenKind.NAME,\n    start,\n    position,\n    body.slice(start, position),\n  );\n}\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n  var _firstNonEmptyLine2;\n\n  let commonIndent = Number.MAX_SAFE_INTEGER;\n  let firstNonEmptyLine = null;\n  let lastNonEmptyLine = -1;\n\n  for (let i = 0; i < lines.length; ++i) {\n    var _firstNonEmptyLine;\n\n    const line = lines[i];\n    const indent = leadingWhitespace(line);\n\n    if (indent === line.length) {\n      continue; // skip empty lines\n    }\n\n    firstNonEmptyLine =\n      (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n      _firstNonEmptyLine !== void 0\n        ? _firstNonEmptyLine\n        : i;\n    lastNonEmptyLine = i;\n\n    if (i !== 0 && indent < commonIndent) {\n      commonIndent = indent;\n    }\n  }\n\n  return lines // Remove common indentation from all lines but first.\n    .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n    .slice(\n      (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n        _firstNonEmptyLine2 !== void 0\n        ? _firstNonEmptyLine2\n        : 0,\n      lastNonEmptyLine + 1,\n    );\n}\n\nfunction leadingWhitespace(str) {\n  let i = 0;\n\n  while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n    ++i;\n  }\n\n  return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n  if (value === '') {\n    return true; // empty string is printable\n  }\n\n  let isEmptyLine = true;\n  let hasIndent = false;\n  let hasCommonIndent = true;\n  let seenNonEmptyLine = false;\n\n  for (let i = 0; i < value.length; ++i) {\n    switch (value.codePointAt(i)) {\n      case 0x0000:\n      case 0x0001:\n      case 0x0002:\n      case 0x0003:\n      case 0x0004:\n      case 0x0005:\n      case 0x0006:\n      case 0x0007:\n      case 0x0008:\n      case 0x000b:\n      case 0x000c:\n      case 0x000e:\n      case 0x000f:\n        return false;\n      // Has non-printable characters\n\n      case 0x000d:\n        //  \\r\n        return false;\n      // Has \\r or \\r\\n which will be replaced as \\n\n\n      case 10:\n        //  \\n\n        if (isEmptyLine && !seenNonEmptyLine) {\n          return false; // Has leading new line\n        }\n\n        seenNonEmptyLine = true;\n        isEmptyLine = true;\n        hasIndent = false;\n        break;\n\n      case 9: //   \\t\n\n      case 32:\n        //  <space>\n        hasIndent || (hasIndent = isEmptyLine);\n        break;\n\n      default:\n        hasCommonIndent && (hasCommonIndent = hasIndent);\n        isEmptyLine = false;\n    }\n  }\n\n  if (isEmptyLine) {\n    return false; // Has trailing empty lines\n  }\n\n  if (hasCommonIndent && seenNonEmptyLine) {\n    return false; // Has internal indent\n  }\n\n  return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n  const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n  const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n  const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n  const forceLeadingNewLine =\n    lines.length > 1 &&\n    lines\n      .slice(1)\n      .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n  const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n  const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n  const hasTrailingSlash = value.endsWith('\\\\');\n  const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n  const printAsMultipleLines =\n    !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n    (!isSingleLine ||\n      value.length > 70 ||\n      forceTrailingNewline ||\n      forceLeadingNewLine ||\n      hasTrailingTripleQuotes);\n  let result = ''; // Format a multi-line block quote to account for leading space.\n\n  const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n  if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n    result += '\\n';\n  }\n\n  result += escapedValue;\n\n  if (printAsMultipleLines || forceTrailingNewline) {\n    result += '\\n';\n  }\n\n  return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * ```\n * WhiteSpace ::\n *   - \"Horizontal Tab (U+0009)\"\n *   - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n  return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n *   - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n  return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n *   - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n *   - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n *   - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n *   - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n  return (\n    (code >= 0x0061 && code <= 0x007a) || // A-Z\n    (code >= 0x0041 && code <= 0x005a) // a-z\n  );\n}\n/**\n * ```\n * NameStart ::\n *   - Letter\n *   - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n  return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n *   - Letter\n *   - Digit\n *   - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n  return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n  TokenKind['SOF'] = '<SOF>';\n  TokenKind['EOF'] = '<EOF>';\n  TokenKind['BANG'] = '!';\n  TokenKind['DOLLAR'] = '$';\n  TokenKind['AMP'] = '&';\n  TokenKind['PAREN_L'] = '(';\n  TokenKind['PAREN_R'] = ')';\n  TokenKind['SPREAD'] = '...';\n  TokenKind['COLON'] = ':';\n  TokenKind['EQUALS'] = '=';\n  TokenKind['AT'] = '@';\n  TokenKind['BRACKET_L'] = '[';\n  TokenKind['BRACKET_R'] = ']';\n  TokenKind['BRACE_L'] = '{';\n  TokenKind['PIPE'] = '|';\n  TokenKind['BRACE_R'] = '}';\n  TokenKind['NAME'] = 'Name';\n  TokenKind['INT'] = 'Int';\n  TokenKind['FLOAT'] = 'Float';\n  TokenKind['STRING'] = 'String';\n  TokenKind['BLOCK_STRING'] = 'BlockString';\n  TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n  constructor(\n    body,\n    name = 'GraphQL request',\n    locationOffset = {\n      line: 1,\n      column: 1,\n    },\n  ) {\n    typeof body === 'string' ||\n      devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n    this.body = body;\n    this.name = name;\n    this.locationOffset = locationOffset;\n    this.locationOffset.line > 0 ||\n      devAssert(\n        false,\n        'line in locationOffset is 1-indexed and must be positive.',\n      );\n    this.locationOffset.column > 0 ||\n      devAssert(\n        false,\n        'column in locationOffset is 1-indexed and must be positive.',\n      );\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'Source';\n  }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n  return instanceOf(source, Source);\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n  return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n  switch (typeof value) {\n    case 'string':\n      return JSON.stringify(value);\n\n    case 'function':\n      return value.name ? `[function ${value.name}]` : '[function]';\n\n    case 'object':\n      return formatObjectValue(value, seenValues);\n\n    default:\n      return String(value);\n  }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n  if (value === null) {\n    return 'null';\n  }\n\n  if (previouslySeenValues.includes(value)) {\n    return '[Circular]';\n  }\n\n  const seenValues = [...previouslySeenValues, value];\n\n  if (isJSONable(value)) {\n    const jsonValue = value.toJSON(); // check for infinite recursion\n\n    if (jsonValue !== value) {\n      return typeof jsonValue === 'string'\n        ? jsonValue\n        : formatValue(jsonValue, seenValues);\n    }\n  } else if (Array.isArray(value)) {\n    return formatArray(value, seenValues);\n  }\n\n  return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n  return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n  const entries = Object.entries(object);\n\n  if (entries.length === 0) {\n    return '{}';\n  }\n\n  if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n    return '[' + getObjectTag(object) + ']';\n  }\n\n  const properties = entries.map(\n    ([key, value]) => key + ': ' + formatValue(value, seenValues),\n  );\n  return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n  if (array.length === 0) {\n    return '[]';\n  }\n\n  if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n    return '[Array]';\n  }\n\n  const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n  const remaining = array.length - len;\n  const items = [];\n\n  for (let i = 0; i < len; ++i) {\n    items.push(formatValue(array[i], seenValues));\n  }\n\n  if (remaining === 1) {\n    items.push('... 1 more item');\n  } else if (remaining > 1) {\n    items.push(`... ${remaining} more items`);\n  }\n\n  return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n  const tag = Object.prototype.toString\n    .call(object)\n    .replace(/^\\[object /, '')\n    .replace(/]$/, '');\n\n  if (tag === 'Object' && typeof object.constructor === 'function') {\n    const name = object.constructor.name;\n\n    if (typeof name === 'string' && name !== '') {\n      return name;\n    }\n  }\n\n  return tag;\n}\n","import { inspect } from './inspect.mjs';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n  /* c8 ignore next 6 */\n  // FIXME: https://github.com/graphql/graphql-js/issues/2317\n  globalThis.process && globalThis.process.env.NODE_ENV === 'production'\n    ? function instanceOf(value, constructor) {\n        return value instanceof constructor;\n      }\n    : function instanceOf(value, constructor) {\n        if (value instanceof constructor) {\n          return true;\n        }\n\n        if (typeof value === 'object' && value !== null) {\n          var _value$constructor;\n\n          // Prefer Symbol.toStringTag since it is immune to minification.\n          const className = constructor.prototype[Symbol.toStringTag];\n          const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n            Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n              ? value[Symbol.toStringTag]\n              : (_value$constructor = value.constructor) === null ||\n                _value$constructor === void 0\n              ? void 0\n              : _value$constructor.name;\n\n          if (className === valueClassName) {\n            const stringifiedValue = inspect(value);\n            throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n          }\n        }\n\n        return false;\n      };\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n  return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n  Name: {\n    leave: (node) => node.value,\n  },\n  Variable: {\n    leave: (node) => '$' + node.name,\n  },\n  // Document\n  Document: {\n    leave: (node) => join(node.definitions, '\\n\\n'),\n  },\n  OperationDefinition: {\n    leave(node) {\n      const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n      const prefix = join(\n        [\n          node.operation,\n          join([node.name, varDefs]),\n          join(node.directives, ' '),\n        ],\n        ' ',\n      ); // Anonymous queries with no directives or variable definitions can use\n      // the query short form.\n\n      return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n    },\n  },\n  VariableDefinition: {\n    leave: ({ variable, type, defaultValue, directives }) =>\n      variable +\n      ': ' +\n      type +\n      wrap(' = ', defaultValue) +\n      wrap(' ', join(directives, ' ')),\n  },\n  SelectionSet: {\n    leave: ({ selections }) => block(selections),\n  },\n  Field: {\n    leave({ alias, name, arguments: args, directives, selectionSet }) {\n      const prefix = wrap('', alias, ': ') + name;\n      let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n      if (argsLine.length > MAX_LINE_LENGTH) {\n        argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n      }\n\n      return join([argsLine, join(directives, ' '), selectionSet], ' ');\n    },\n  },\n  Argument: {\n    leave: ({ name, value }) => name + ': ' + value,\n  },\n  // Fragments\n  FragmentSpread: {\n    leave: ({ name, directives }) =>\n      '...' + name + wrap(' ', join(directives, ' ')),\n  },\n  InlineFragment: {\n    leave: ({ typeCondition, directives, selectionSet }) =>\n      join(\n        [\n          '...',\n          wrap('on ', typeCondition),\n          join(directives, ' '),\n          selectionSet,\n        ],\n        ' ',\n      ),\n  },\n  FragmentDefinition: {\n    leave: (\n      { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n    ) =>\n      // or removed in the future.\n      `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n      `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n      selectionSet,\n  },\n  // Value\n  IntValue: {\n    leave: ({ value }) => value,\n  },\n  FloatValue: {\n    leave: ({ value }) => value,\n  },\n  StringValue: {\n    leave: ({ value, block: isBlockString }) =>\n      isBlockString ? printBlockString(value) : printString(value),\n  },\n  BooleanValue: {\n    leave: ({ value }) => (value ? 'true' : 'false'),\n  },\n  NullValue: {\n    leave: () => 'null',\n  },\n  EnumValue: {\n    leave: ({ value }) => value,\n  },\n  ListValue: {\n    leave: ({ values }) => '[' + join(values, ', ') + ']',\n  },\n  ObjectValue: {\n    leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n  },\n  ObjectField: {\n    leave: ({ name, value }) => name + ': ' + value,\n  },\n  // Directive\n  Directive: {\n    leave: ({ name, arguments: args }) =>\n      '@' + name + wrap('(', join(args, ', '), ')'),\n  },\n  // Type\n  NamedType: {\n    leave: ({ name }) => name,\n  },\n  ListType: {\n    leave: ({ type }) => '[' + type + ']',\n  },\n  NonNullType: {\n    leave: ({ type }) => type + '!',\n  },\n  // Type System Definitions\n  SchemaDefinition: {\n    leave: ({ description, directives, operationTypes }) =>\n      wrap('', description, '\\n') +\n      join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n  },\n  OperationTypeDefinition: {\n    leave: ({ operation, type }) => operation + ': ' + type,\n  },\n  ScalarTypeDefinition: {\n    leave: ({ description, name, directives }) =>\n      wrap('', description, '\\n') +\n      join(['scalar', name, join(directives, ' ')], ' '),\n  },\n  ObjectTypeDefinition: {\n    leave: ({ description, name, interfaces, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(\n        [\n          'type',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  FieldDefinition: {\n    leave: ({ description, name, arguments: args, type, directives }) =>\n      wrap('', description, '\\n') +\n      name +\n      (hasMultilineItems(args)\n        ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n        : wrap('(', join(args, ', '), ')')) +\n      ': ' +\n      type +\n      wrap(' ', join(directives, ' ')),\n  },\n  InputValueDefinition: {\n    leave: ({ description, name, type, defaultValue, directives }) =>\n      wrap('', description, '\\n') +\n      join(\n        [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n        ' ',\n      ),\n  },\n  InterfaceTypeDefinition: {\n    leave: ({ description, name, interfaces, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(\n        [\n          'interface',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  UnionTypeDefinition: {\n    leave: ({ description, name, directives, types }) =>\n      wrap('', description, '\\n') +\n      join(\n        ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n        ' ',\n      ),\n  },\n  EnumTypeDefinition: {\n    leave: ({ description, name, directives, values }) =>\n      wrap('', description, '\\n') +\n      join(['enum', name, join(directives, ' '), block(values)], ' '),\n  },\n  EnumValueDefinition: {\n    leave: ({ description, name, directives }) =>\n      wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n  },\n  InputObjectTypeDefinition: {\n    leave: ({ description, name, directives, fields }) =>\n      wrap('', description, '\\n') +\n      join(['input', name, join(directives, ' '), block(fields)], ' '),\n  },\n  DirectiveDefinition: {\n    leave: ({ description, name, arguments: args, repeatable, locations }) =>\n      wrap('', description, '\\n') +\n      'directive @' +\n      name +\n      (hasMultilineItems(args)\n        ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n        : wrap('(', join(args, ', '), ')')) +\n      (repeatable ? ' repeatable' : '') +\n      ' on ' +\n      join(locations, ' | '),\n  },\n  SchemaExtension: {\n    leave: ({ directives, operationTypes }) =>\n      join(\n        ['extend schema', join(directives, ' '), block(operationTypes)],\n        ' ',\n      ),\n  },\n  ScalarTypeExtension: {\n    leave: ({ name, directives }) =>\n      join(['extend scalar', name, join(directives, ' ')], ' '),\n  },\n  ObjectTypeExtension: {\n    leave: ({ name, interfaces, directives, fields }) =>\n      join(\n        [\n          'extend type',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  InterfaceTypeExtension: {\n    leave: ({ name, interfaces, directives, fields }) =>\n      join(\n        [\n          'extend interface',\n          name,\n          wrap('implements ', join(interfaces, ' & ')),\n          join(directives, ' '),\n          block(fields),\n        ],\n        ' ',\n      ),\n  },\n  UnionTypeExtension: {\n    leave: ({ name, directives, types }) =>\n      join(\n        [\n          'extend union',\n          name,\n          join(directives, ' '),\n          wrap('= ', join(types, ' | ')),\n        ],\n        ' ',\n      ),\n  },\n  EnumTypeExtension: {\n    leave: ({ name, directives, values }) =>\n      join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n  },\n  InputObjectTypeExtension: {\n    leave: ({ name, directives, fields }) =>\n      join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n  },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n  var _maybeArray$filter$jo;\n\n  return (_maybeArray$filter$jo =\n    maybeArray === null || maybeArray === void 0\n      ? void 0\n      : maybeArray.filter((x) => x).join(separator)) !== null &&\n    _maybeArray$filter$jo !== void 0\n    ? _maybeArray$filter$jo\n    : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n  return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n  return maybeString != null && maybeString !== ''\n    ? start + maybeString + end\n    : '';\n}\n\nfunction indent(str) {\n  return wrap('  ', str.replace(/\\n/g, '\\n  '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n  var _maybeArray$some;\n\n  // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n  /* c8 ignore next */\n  return (_maybeArray$some =\n    maybeArray === null || maybeArray === void 0\n      ? void 0\n      : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n    _maybeArray$some !== void 0\n    ? _maybeArray$some\n    : false;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n  return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n  return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n  '\\\\u0000',\n  '\\\\u0001',\n  '\\\\u0002',\n  '\\\\u0003',\n  '\\\\u0004',\n  '\\\\u0005',\n  '\\\\u0006',\n  '\\\\u0007',\n  '\\\\b',\n  '\\\\t',\n  '\\\\n',\n  '\\\\u000B',\n  '\\\\f',\n  '\\\\r',\n  '\\\\u000E',\n  '\\\\u000F',\n  '\\\\u0010',\n  '\\\\u0011',\n  '\\\\u0012',\n  '\\\\u0013',\n  '\\\\u0014',\n  '\\\\u0015',\n  '\\\\u0016',\n  '\\\\u0017',\n  '\\\\u0018',\n  '\\\\u0019',\n  '\\\\u001A',\n  '\\\\u001B',\n  '\\\\u001C',\n  '\\\\u001D',\n  '\\\\u001E',\n  '\\\\u001F',\n  '',\n  '',\n  '\\\\\"',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 2F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 3F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 4F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '\\\\\\\\',\n  '',\n  '',\n  '', // 5F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '', // 6F\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '',\n  '\\\\u007F',\n  '\\\\u0080',\n  '\\\\u0081',\n  '\\\\u0082',\n  '\\\\u0083',\n  '\\\\u0084',\n  '\\\\u0085',\n  '\\\\u0086',\n  '\\\\u0087',\n  '\\\\u0088',\n  '\\\\u0089',\n  '\\\\u008A',\n  '\\\\u008B',\n  '\\\\u008C',\n  '\\\\u008D',\n  '\\\\u008E',\n  '\\\\u008F',\n  '\\\\u0090',\n  '\\\\u0091',\n  '\\\\u0092',\n  '\\\\u0093',\n  '\\\\u0094',\n  '\\\\u0095',\n  '\\\\u0096',\n  '\\\\u0097',\n  '\\\\u0098',\n  '\\\\u0099',\n  '\\\\u009A',\n  '\\\\u009B',\n  '\\\\u009C',\n  '\\\\u009D',\n  '\\\\u009E',\n  '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n *   enter(node, key, parent, path, ancestors) {\n *     // @return\n *     //   undefined: no action\n *     //   false: skip visiting this node\n *     //   visitor.BREAK: stop visiting altogether\n *     //   null: delete this node\n *     //   any value: replace this node with the returned value\n *   },\n *   leave(node, key, parent, path, ancestors) {\n *     // @return\n *     //   undefined: no action\n *     //   false: no action\n *     //   visitor.BREAK: stop visiting altogether\n *     //   null: delete this node\n *     //   any value: replace this node with the returned value\n *   }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n *   Kind(node) {\n *     // enter the \"Kind\" node\n *   }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n *   Kind: {\n *     enter(node) {\n *       // enter the \"Kind\" node\n *     }\n *     leave(node) {\n *       // leave the \"Kind\" node\n *     }\n *   }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n *   enter(node) {\n *     // enter any node\n *   },\n *   leave(node) {\n *     // leave any node\n *   }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n  const enterLeaveMap = new Map();\n\n  for (const kind of Object.values(Kind)) {\n    enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n  }\n  /* eslint-disable no-undef-init */\n\n  let stack = undefined;\n  let inArray = Array.isArray(root);\n  let keys = [root];\n  let index = -1;\n  let edits = [];\n  let node = root;\n  let key = undefined;\n  let parent = undefined;\n  const path = [];\n  const ancestors = [];\n  /* eslint-enable no-undef-init */\n\n  do {\n    index++;\n    const isLeaving = index === keys.length;\n    const isEdited = isLeaving && edits.length !== 0;\n\n    if (isLeaving) {\n      key = ancestors.length === 0 ? undefined : path[path.length - 1];\n      node = parent;\n      parent = ancestors.pop();\n\n      if (isEdited) {\n        if (inArray) {\n          node = node.slice();\n          let editOffset = 0;\n\n          for (const [editKey, editValue] of edits) {\n            const arrayKey = editKey - editOffset;\n\n            if (editValue === null) {\n              node.splice(arrayKey, 1);\n              editOffset++;\n            } else {\n              node[arrayKey] = editValue;\n            }\n          }\n        } else {\n          node = Object.defineProperties(\n            {},\n            Object.getOwnPropertyDescriptors(node),\n          );\n\n          for (const [editKey, editValue] of edits) {\n            node[editKey] = editValue;\n          }\n        }\n      }\n\n      index = stack.index;\n      keys = stack.keys;\n      edits = stack.edits;\n      inArray = stack.inArray;\n      stack = stack.prev;\n    } else if (parent) {\n      key = inArray ? index : keys[index];\n      node = parent[key];\n\n      if (node === null || node === undefined) {\n        continue;\n      }\n\n      path.push(key);\n    }\n\n    let result;\n\n    if (!Array.isArray(node)) {\n      var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n      isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n      const visitFn = isLeaving\n        ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n          _enterLeaveMap$get === void 0\n          ? void 0\n          : _enterLeaveMap$get.leave\n        : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n          _enterLeaveMap$get2 === void 0\n        ? void 0\n        : _enterLeaveMap$get2.enter;\n      result =\n        visitFn === null || visitFn === void 0\n          ? void 0\n          : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n      if (result === BREAK) {\n        break;\n      }\n\n      if (result === false) {\n        if (!isLeaving) {\n          path.pop();\n          continue;\n        }\n      } else if (result !== undefined) {\n        edits.push([key, result]);\n\n        if (!isLeaving) {\n          if (isNode(result)) {\n            node = result;\n          } else {\n            path.pop();\n            continue;\n          }\n        }\n      }\n    }\n\n    if (result === undefined && isEdited) {\n      edits.push([key, node]);\n    }\n\n    if (isLeaving) {\n      path.pop();\n    } else {\n      var _node$kind;\n\n      stack = {\n        inArray,\n        index,\n        keys,\n        edits,\n        prev: stack,\n      };\n      inArray = Array.isArray(node);\n      keys = inArray\n        ? node\n        : (_node$kind = visitorKeys[node.kind]) !== null &&\n          _node$kind !== void 0\n        ? _node$kind\n        : [];\n      index = -1;\n      edits = [];\n\n      if (parent) {\n        ancestors.push(parent);\n      }\n\n      parent = node;\n    }\n  } while (stack !== undefined);\n\n  if (edits.length !== 0) {\n    // New root\n    return edits[edits.length - 1][1];\n  }\n\n  return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n  const skipping = new Array(visitors.length).fill(null);\n  const mergedVisitor = Object.create(null);\n\n  for (const kind of Object.values(Kind)) {\n    let hasVisitor = false;\n    const enterList = new Array(visitors.length).fill(undefined);\n    const leaveList = new Array(visitors.length).fill(undefined);\n\n    for (let i = 0; i < visitors.length; ++i) {\n      const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n      hasVisitor || (hasVisitor = enter != null || leave != null);\n      enterList[i] = enter;\n      leaveList[i] = leave;\n    }\n\n    if (!hasVisitor) {\n      continue;\n    }\n\n    const mergedEnterLeave = {\n      enter(...args) {\n        const node = args[0];\n\n        for (let i = 0; i < visitors.length; i++) {\n          if (skipping[i] === null) {\n            var _enterList$i;\n\n            const result =\n              (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n                ? void 0\n                : _enterList$i.apply(visitors[i], args);\n\n            if (result === false) {\n              skipping[i] = node;\n            } else if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined) {\n              return result;\n            }\n          }\n        }\n      },\n\n      leave(...args) {\n        const node = args[0];\n\n        for (let i = 0; i < visitors.length; i++) {\n          if (skipping[i] === null) {\n            var _leaveList$i;\n\n            const result =\n              (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n                ? void 0\n                : _leaveList$i.apply(visitors[i], args);\n\n            if (result === BREAK) {\n              skipping[i] = BREAK;\n            } else if (result !== undefined && result !== false) {\n              return result;\n            }\n          } else if (skipping[i] === node) {\n            skipping[i] = null;\n          }\n        }\n      },\n    };\n    mergedVisitor[kind] = mergedEnterLeave;\n  }\n\n  return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n  const kindVisitor = visitor[kind];\n\n  if (typeof kindVisitor === 'object') {\n    // { Kind: { enter() {}, leave() {} } }\n    return kindVisitor;\n  } else if (typeof kindVisitor === 'function') {\n    // { Kind() {} }\n    return {\n      enter: kindVisitor,\n      leave: undefined,\n    };\n  } // { enter() {}, leave() {} }\n\n  return {\n    enter: visitor.enter,\n    leave: visitor.leave,\n  };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n  const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n  return isLeaving ? leave : enter;\n}\n","export { Source } from './source.mjs';\nexport { getLocation } from './location.mjs';\nexport { printLocation, printSourceLocation } from './printLocation.mjs';\nexport { Kind } from './kinds.mjs';\nexport { TokenKind } from './tokenKind.mjs';\nexport { Lexer } from './lexer.mjs';\nexport { parse, parseValue, parseConstValue, parseType } from './parser.mjs';\nexport { print } from './printer.mjs';\nexport {\n  visit,\n  visitInParallel,\n  getVisitFn,\n  getEnterLeaveForKind,\n  BREAK,\n} from './visitor.mjs';\nexport { Location, Token, OperationTypeNode } from './ast.mjs';\nexport {\n  isDefinitionNode,\n  isExecutableDefinitionNode,\n  isSelectionNode,\n  isValueNode,\n  isConstValueNode,\n  isTypeNode,\n  isTypeSystemDefinitionNode,\n  isTypeDefinitionNode,\n  isTypeSystemExtensionNode,\n  isTypeExtensionNode,\n} from './predicates.mjs';\nexport { DirectiveLocation } from './directiveLocation.mjs';\n","// Produce the GraphQL query recommended for a full schema introspection.\nexport { getIntrospectionQuery } from './getIntrospectionQuery.mjs';\n// Gets the target Operation from a Document.\nexport { getOperationAST } from './getOperationAST.mjs'; // Gets the Type for the target Operation AST.\n\nexport { getOperationRootType } from './getOperationRootType.mjs'; // Convert a GraphQLSchema to an IntrospectionQuery.\n\nexport { introspectionFromSchema } from './introspectionFromSchema.mjs'; // Build a GraphQLSchema from an introspection result.\n\nexport { buildClientSchema } from './buildClientSchema.mjs'; // Build a GraphQLSchema from GraphQL Schema language.\n\nexport { buildASTSchema, buildSchema } from './buildASTSchema.mjs';\n// Extends an existing GraphQLSchema from a parsed GraphQL Schema language AST.\nexport { extendSchema } from './extendSchema.mjs'; // Sort a GraphQLSchema.\n\nexport { lexicographicSortSchema } from './lexicographicSortSchema.mjs'; // Print a GraphQLSchema to GraphQL Schema language.\n\nexport {\n  printSchema,\n  printType,\n  printIntrospectionSchema,\n} from './printSchema.mjs'; // Create a GraphQLType from a GraphQL language AST.\n\nexport { typeFromAST } from './typeFromAST.mjs'; // Create a JavaScript value from a GraphQL language AST with a type.\n\nexport { valueFromAST } from './valueFromAST.mjs'; // Create a JavaScript value from a GraphQL language AST without a type.\n\nexport { valueFromASTUntyped } from './valueFromASTUntyped.mjs'; // Create a GraphQL language AST from a JavaScript value.\n\nexport { astFromValue } from './astFromValue.mjs'; // A helper to use within recursive-descent visitors which need to be aware of the GraphQL type system.\n\nexport { TypeInfo, visitWithTypeInfo } from './TypeInfo.mjs'; // Coerces a JavaScript value to a GraphQL type, or produces errors.\n\nexport { coerceInputValue } from './coerceInputValue.mjs'; // Concatenates multiple AST together.\n\nexport { concatAST } from './concatAST.mjs'; // Separates an AST into an AST per Operation.\n\nexport { separateOperations } from './separateOperations.mjs'; // Strips characters that are not significant to the validity or execution of a GraphQL document.\n\nexport { stripIgnoredCharacters } from './stripIgnoredCharacters.mjs'; // Comparators for types\n\nexport {\n  isEqualType,\n  isTypeSubTypeOf,\n  doTypesOverlap,\n} from './typeComparators.mjs'; // Asserts that a string is a valid GraphQL name\n\nexport { assertValidName, isValidNameError } from './assertValidName.mjs'; // Compares two GraphQLSchemas and detects breaking changes.\n\nexport {\n  BreakingChangeType,\n  DangerousChangeType,\n  findBreakingChanges,\n  findDangerousChanges,\n} from './findBreakingChanges.mjs';\n","import { printBlockString } from '../language/blockString.mjs';\nimport { isPunctuatorTokenKind, Lexer } from '../language/lexer.mjs';\nimport { isSource, Source } from '../language/source.mjs';\nimport { TokenKind } from '../language/tokenKind.mjs';\n/**\n * Strips characters that are not significant to the validity or execution\n * of a GraphQL document:\n *   - UnicodeBOM\n *   - WhiteSpace\n *   - LineTerminator\n *   - Comment\n *   - Comma\n *   - BlockString indentation\n *\n * Note: It is required to have a delimiter character between neighboring\n * non-punctuator tokens and this function always uses single space as delimiter.\n *\n * It is guaranteed that both input and output documents if parsed would result\n * in the exact same AST except for nodes location.\n *\n * Warning: It is guaranteed that this function will always produce stable results.\n * However, it's not guaranteed that it will stay the same between different\n * releases due to bugfixes or changes in the GraphQL specification.\n *\n * Query example:\n *\n * ```graphql\n * query SomeQuery($foo: String!, $bar: String) {\n *   someField(foo: $foo, bar: $bar) {\n *     a\n *     b {\n *       c\n *       d\n *     }\n *   }\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * query SomeQuery($foo:String!$bar:String){someField(foo:$foo bar:$bar){a b{c d}}}\n * ```\n *\n * SDL example:\n *\n * ```graphql\n * \"\"\"\n * Type description\n * \"\"\"\n * type Foo {\n *   \"\"\"\n *   Field description\n *   \"\"\"\n *   bar: String\n * }\n * ```\n *\n * Becomes:\n *\n * ```graphql\n * \"\"\"Type description\"\"\" type Foo{\"\"\"Field description\"\"\" bar:String}\n * ```\n */\n\nexport function stripIgnoredCharacters(source) {\n  const sourceObj = isSource(source) ? source : new Source(source);\n  const body = sourceObj.body;\n  const lexer = new Lexer(sourceObj);\n  let strippedBody = '';\n  let wasLastAddedTokenNonPunctuator = false;\n\n  while (lexer.advance().kind !== TokenKind.EOF) {\n    const currentToken = lexer.token;\n    const tokenKind = currentToken.kind;\n    /**\n     * Every two non-punctuator tokens should have space between them.\n     * Also prevent case of non-punctuator token following by spread resulting\n     * in invalid token (e.g. `1...` is invalid Float token).\n     */\n\n    const isNonPunctuator = !isPunctuatorTokenKind(currentToken.kind);\n\n    if (wasLastAddedTokenNonPunctuator) {\n      if (isNonPunctuator || currentToken.kind === TokenKind.SPREAD) {\n        strippedBody += ' ';\n      }\n    }\n\n    const tokenBody = body.slice(currentToken.start, currentToken.end);\n\n    if (tokenKind === TokenKind.BLOCK_STRING) {\n      strippedBody += printBlockString(currentToken.value, {\n        minimize: true,\n      });\n    } else {\n      strippedBody += tokenBody;\n    }\n\n    wasLastAddedTokenNonPunctuator = isNonPunctuator;\n  }\n\n  return strippedBody;\n}\n",null,"import {camelCase} from '@servicenow/ui-internal';\n\nexport default function getOperationName(tagName) {\n\treturn camelCase(tagName.toLowerCase());\n}\n","//This should be removed , it's a dup now for unit test :-(\n//Import from ui-internal can't be resolved for unit test\nimport {SPAN_KIND_CLIENT, SPAN_LEVEL_FINE} from '../constants';\nexport default function getSpanOptions(host, level = SPAN_LEVEL_FINE) {\n\treturn {\n\t\tattributes: {\n\t\t\ttagName: host.tagName?.toLowerCase(),\n\t\t\tcomponentId: host.nowId,\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\t'seismic.level': level\n\t\t}\n\t};\n}\n","export const SPAN_FOR_GRAPHQL = 'GQL';\nexport const SPAN_KIND_CLIENT = 3;\nexport const SPNA_ATTR_GQL_QUERY = 'query';\nexport const SPAN_ATTR_GQL_VARIABLES = 'variables';\nexport const SPAN_ATTR_GQL_BATCH = 'batch';\nexport const SPAN_LEVEL_FINE = 100;\n\nexport const SPAN_TRACE_PARENT = 'traceparent';\nexport const SPAN_DOCUMENT_TRACE_PARENT = 'X-DocumentTraceParent';\n","import {print, stripIgnoredCharacters} from 'graphql';\n\nexport default function documentToQueryString(document) {\n\treturn stripIgnoredCharacters(print(document));\n}\n","import {configConstants, getConfigItem} from '@servicenow/ui-config';\nimport {shouldCache} from './shouldCache';\nimport {getUserSysId, makeLRUCachePolicy, makePersistentCache} from '@servicenow/ui-effect-helpers';\nimport {getGraphQLDocument, isSubscriptionResult} from '../utils';\nimport documentToQueryString from './documentToQueryString';\n\nconst {GQL_CACHE_MAX_PERSIST, GQL_CACHE_CAPACITY, GQL_CACHING_ENABLED} = configConstants;\n\nlet persistantCache;\n\nconst getCache = async function () {\n\tif (persistantCache) {\n\t\treturn persistantCache;\n\t}\n\ttry {\n\t\tpersistantCache = await makePersistentCache({\n\t\t\tdbName: 'Seismic',\n\t\t\tstoreName: 'gqlQueries',\n\t\t\tschemaVersion: 1,\n\t\t\toptions: {cachePolicy: makeLRUCachePolicy(getConfigItem(GQL_CACHE_CAPACITY))}\n\t\t});\n\t} catch (e) {\n\t\treturn null;\n\t}\n\treturn persistantCache;\n};\n\nexport async function clearGraphQLResultsCache() {\n\tawait (await getCache())?.clear();\n}\n\nexport function shouldDoResultCaching(operation) {\n\tconst {transactionMetaData} = operation;\n\treturn (\n\t\tgetConfigItem(GQL_CACHING_ENABLED) &&\n\t\ttransactionMetaData?.cacheable &&\n\t\tshouldCache(transactionMetaData?.query, globalThis)\n\t);\n}\n\n// @TODO: add Domain info to cacheQueryKey\nconst getCacheQueryKey = ({query, variables, params = {}}) => {\n\tlet resolvedQuery = query,\n\t\tresolvedVariables = variables,\n\t\tresolvedParams = params;\n\tif (typeof resolvedQuery !== 'string') resolvedQuery = JSON.stringify(resolvedQuery);\n\n\tif (typeof resolvedVariables !== 'string') resolvedVariables = JSON.stringify(resolvedVariables);\n\n\tif (typeof resolvedParams !== 'string') resolvedParams = JSON.stringify(resolvedParams);\n\n\tconst userToken = getUserSysId(globalThis);\n\treturn `${resolvedQuery}:${resolvedVariables}:${resolvedParams}:${userToken}`;\n};\n\nexport async function checkCacheForResult(operation, batchItem, fetchFunc) {\n\tconst {\n\t\toperationName,\n\t\tvariables,\n\t\ttemplateVars,\n\t\tdomainContext,\n\t\ttransactionMetaData: {query, params} = {}\n\t} = operation;\n\tconst gqlDocument = getGraphQLDocument(query, templateVars, domainContext, operationName);\n\tconst queryString = documentToQueryString(gqlDocument);\n\tconst cacheQueryKey = getCacheQueryKey({query: queryString, variables, params});\n\n\tconst cache = await getCache();\n\tconst isCached = cache ? await cache.has(cacheQueryKey) : false;\n\n\tif (isCached) {\n\t\tconst refetchPromise = () => {\n\t\t\treturn makeRefetchRequest([batchItem], fetchFunc);\n\t\t};\n\t\tconst cachedResult = await cache.get(cacheQueryKey);\n\t\tconst {headers} = cachedResult;\n\t\tconst cachedDate = new Date(headers?.date);\n\n\t\tif (cachedDate) {\n\t\t\tconst minutesSinceCached = (Date.now() - cachedDate) / 1000 / 60;\n\n\t\t\tif (minutesSinceCached < (getConfigItem(GQL_CACHE_MAX_PERSIST) || 2880)) {\n\t\t\t\treturn {\n\t\t\t\t\tisCachedResult: true,\n\t\t\t\t\trefetchPromise,\n\t\t\t\t\t...cachedResult\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n}\n\n//For refetch requests clear out any streaming since it is not needed as the request will happen in the background\n//after the main request\nfunction makeRefetchRequest(batchItems = [], fetchFunc) {\n\tbatchItems.forEach(currItem => currItem?.operation?.queryContext?.clearStreaming());\n\treturn fetchFunc(batchItems);\n}\n\nexport async function storeResultInCache(operation, result, headers) {\n\tconst {query, variables, cacheable, transactionMetaData: {params} = {}} = operation;\n\tconst {data = null, errors = []} = result;\n\tconst payload = {data, errors, headers};\n\n\t// Check equality ?\n\tif (\n\t\tgetConfigItem(GQL_CACHING_ENABLED) &&\n\t\t!query.startsWith('mutation') &&\n\t\tcacheable &&\n\t\t!isSubscriptionResult(result)\n\t) {\n\t\tconst cache = await getCache();\n\t\tif (cache) {\n\t\t\tconst cacheQueryKey = getCacheQueryKey({query, variables, params});\n\t\t\tawait cache.set(cacheQueryKey, payload);\n\t\t\trequestIdleCallback(() => cache.persist());\n\t\t}\n\t}\n}\n","/**\n * shouldCache\n * @description Checks the current env and query to see if we should cache.\n * Safeguards against users that are impersonating other users as well as mutation or\n * subscription GQL requests\n * @param {*} query - The API query to check\n * @param {*} windowObj - globalThis to check for keys\n * @returns Boolean\n */\nexport const shouldCache = (query, windowObj) => {\n\tif (!query || !windowObj) return false;\n\n\tif (windowObj.NOW?.user?.isImpersonating === true) return false;\n\n\tif (query.definitions) {\n\t\tif (\n\t\t\tquery.definitions.every(d => d.operation === 'mutation') ||\n\t\t\tquery.definitions.every(d => d.operation === 'subscription')\n\t\t)\n\t\t\treturn false;\n\t}\n\n\treturn true;\n};\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {\n\tSPAN_ATTR_GQL_BATCH,\n\tSPAN_DOCUMENT_TRACE_PARENT,\n\tSPAN_KIND_CLIENT,\n\tSPAN_TRACE_PARENT,\n\tSPNA_ATTR_GQL_QUERY\n} from '../constants';\n\nconst {createTraceParentHeader, trace} = uiAnalyticsConsumer;\n\n/**\n * Adds a key value pair to the span attributes.\n * @param {Span} span The span to add the attribute to.\n * @param {string} key The key of the attribute.\n * @param {string} value The value of the attribute.\n */\nfunction appendSpanAttribute(span, key, value) {\n\tif (!span) return;\n\tconst current = span.attributes[key] || [];\n\tcurrent.push(value);\n\tspan.setAttribute(key, current);\n}\n\n/**\n * Starts batch tracing for GraphQL operations.\n * @param {Object} params The parameters for batch tracing.\n * @returns {Span} The GraphQL batch span.\n */\nfunction startBatchTracing(params) {\n\tconst {operation, maxBatchSize, batchInterval, gqlBatchSpan: existingGqlBatchSpan} = params;\n\tif (existingGqlBatchSpan) return existingGqlBatchSpan;\n\n\tconst activeSpan = operation?.queryContext?.getActiveSpan();\n\tif (!activeSpan) return null;\n\n\tconst spanAttributes = {\n\t\t'config.maxSize': maxBatchSize,\n\t\t'config.interval': `${batchInterval}ms`\n\t};\n\n\tconst gqlBatchSpan = trace('seismic.gql.batch', {\n\t\tkind: SPAN_KIND_CLIENT,\n\t\tattributes: {...spanAttributes, tagName: 'GraphQL', componentId: 'batching'}\n\t});\n\treturn gqlBatchSpan;\n}\n\n/**\n * Updates headers with span information.\n * @param {Object} params The parameters for updating headers.\n */\nfunction updateHeadersWithSpan(params) {\n\tconst {query, batch, headers = {}, operations, index, gqlBatchSpan, queryContext} = params;\n\tconst activeSpan = queryContext?.getActiveSpan();\n\tif (!activeSpan) return;\n\n\tsetSpanAttributes(activeSpan, query, batch);\n\theaders[SPAN_DOCUMENT_TRACE_PARENT] = activeSpan.documentTraceParent;\n\n\tconst activeTraceParent = createTraceParentHeader(activeSpan.id, activeSpan.traceId);\n\tif (batch) {\n\t\tupdateBatchHeaders(headers, operations, index, gqlBatchSpan, activeSpan, activeTraceParent);\n\t} else {\n\t\theaders[SPAN_TRACE_PARENT] = activeTraceParent;\n\t}\n}\n\nfunction setSpanAttributes(activeSpan, query, batch) {\n\tif (query && typeof query === 'string') {\n\t\tactiveSpan.setAttribute(SPNA_ATTR_GQL_QUERY, query.substring(0, 50));\n\t}\n\tactiveSpan.setAttribute(SPAN_ATTR_GQL_BATCH, batch);\n}\n\nfunction updateBatchHeaders(\n\theaders,\n\toperations,\n\tindex,\n\tgqlBatchSpan,\n\tactiveSpan,\n\tactiveTraceParent\n) {\n\toperations[index][SPAN_TRACE_PARENT] = activeTraceParent;\n\toperations[index][SPAN_DOCUMENT_TRACE_PARENT] = activeSpan.documentTraceParent;\n\tif (gqlBatchSpan) {\n\t\theaders[SPAN_TRACE_PARENT] = createTraceParentHeader(gqlBatchSpan.id, gqlBatchSpan.traceId);\n\t}\n}\n\nfunction crossLinkBatchSpan(gqlBatchSpan, activeSpan) {\n\tif (gqlBatchSpan && activeSpan) {\n\t\t//use span.addLink API when available.\n\t\tactiveSpan.links.push({\n\t\t\tcontext: {\n\t\t\t\tspanId: gqlBatchSpan.id,\n\t\t\t\ttraceId: gqlBatchSpan.traceId\n\t\t\t},\n\t\t\tattributes: {\n\t\t\t\t'link.type': 'gql.batch'\n\t\t\t}\n\t\t});\n\t\tgqlBatchSpan.links.push({\n\t\t\tcontext: {\n\t\t\t\tspanId: activeSpan.id,\n\t\t\t\ttraceId: activeSpan.traceId\n\t\t\t},\n\t\t\tattributes: {\n\t\t\t\t'link.type': 'gql.batch.item'\n\t\t\t}\n\t\t});\n\t}\n}\n\n/*\n * Tracks the batch event for the GraphQL operations.\n * @param {Object} operation The operation object.\n * @param {Span} gqlBatchSpan The GraphQL batch span.\n * @param {Array} queue The queue of operations.\n */\n\nfunction addEventToBatchSpan(operation, gqlBatchSpan, queue) {\n\tif (!operation || !gqlBatchSpan || !queue) return;\n\n\tconst ts = Date.now();\n\tconst eventDetails = {\n\t\toperationName: operation.operationName,\n\t\tqueueSize: queue.length\n\t};\n\n\tgqlBatchSpan.addEvent('items.queue.add', eventDetails, ts);\n\tconst activeSpan = operation.queryContext?.getActiveSpan();\n\tif (activeSpan) {\n\t\tactiveSpan.addEvent('gql.batch.enqueue', eventDetails, ts);\n\t}\n}\n\n/**\n * Completes batch tracking for GraphQL operations.\n * @param {Span} gqlBatchSpan The GraphQL batch span.\n * @param {boolean} isBatched Indicates if the operations are batched.\n * @param {Array} operations The list of operations.\n * @returns {Span|null} The updated GraphQL batch span or null.\n */\nfunction completeBatchTracking(gqlBatchSpan, isBatched, operations) {\n\tif (gqlBatchSpan && isBatched) {\n\t\tconst batchEnd = Date.now();\n\t\tconst queueSize = operations.length;\n\t\tconst batchStart = (gqlBatchSpan.events || []).find(event => event.name === 'items.queue.add');\n\t\tconst batchProcessingTime = batchStart ? batchEnd - batchStart.time : 0;\n\n\t\tgqlBatchSpan.addEvent('items.queue.send', {queueSize}, batchEnd);\n\t\tgqlBatchSpan.setAttribute('items.queue.size', queueSize);\n\n\t\tif (batchProcessingTime > 0) {\n\t\t\tgqlBatchSpan.setAttribute('gql.batch.queuing.delay', batchProcessingTime);\n\t\t\toperations.forEach(({queryContext}) => {\n\t\t\t\tconst operationSpan = queryContext?.getActiveSpan();\n\t\t\t\tconst gqlBatchQueueEvent = operationSpan?.events.find(\n\t\t\t\t\tevent => event.name === 'gql.batch.enqueue'\n\t\t\t\t);\n\t\t\t\tif (gqlBatchQueueEvent) {\n\t\t\t\t\toperationSpan.setAttribute('gql.batch.queuing.delay', batchEnd - gqlBatchQueueEvent.time);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tgqlBatchSpan.end();\n\t}\n\treturn null;\n}\n\nexport {\n\tappendSpanAttribute,\n\tstartBatchTracing,\n\tupdateHeadersWithSpan,\n\tcompleteBatchTracking,\n\taddEventToBatchSpan,\n\tcrossLinkBatchSpan\n};\n","export {default as createSubscriptionId} from './createSubscriptionId';\nexport {default as createRegistryId} from './createRegistryId';\nexport {default as getAMBClient} from './getAMBClient';\nexport {default as handleGraphQLSubscription} from './handleGraphQLSubscription';\n","import {guid} from '@servicenow/ui-internal';\n\nexport default function createSubscriptionId() {\n\treturn guid();\n}\n","export default function createRegistryId(containerId, subscriptionId) {\n\treturn `${containerId}-${subscriptionId}`;\n}\n","import amb from 'amb-client-js';\n\nlet ambClient;\nlet clientUrl;\nexport default function getAMBClient(url = null) {\n\tif (!ambClient) {\n\t\tclientUrl = url;\n\t\tambClient = amb.getClient(clientUrl);\n\t}\n\tif (clientUrl !== url) throw new Error('Subsequent amb client request has different url');\n\treturn ambClient;\n}\n","import getChannelsFromSubscriptionQuery from './getChannelsFromSubscriptionQuery';\nimport handleAMBSubscription from './handleAMBSubscription';\n\n/**\n * Sets up handlers for each gql amb subscription\n *\n * @private\n * @param action\n * @param options\n * @param resultData\n * @param actionMetaData\n * @param dispatch\n * @param registryId\n * @param ambClient\n * @param ambChannelRegistry\n */\nexport default function handleGraphQLSubscription(\n\taction,\n\toptions,\n\tresultData,\n\tactionMetaData,\n\tdispatch,\n\tregistryId,\n\tambClient,\n\tambChannelRegistry\n) {\n\tconst {payload} = action;\n\tconst {subscribe: shouldSubscribe = false} = payload;\n\tconst channels = getChannelsFromSubscriptionQuery(resultData);\n\tconst {length: channelsLength} = channels;\n\tfor (let i = 0; i < channelsLength; i++) {\n\t\thandleAMBSubscription({\n\t\t\tshouldSubscribe,\n\t\t\tregistryId,\n\t\t\t...channels[i],\n\t\t\tambClient,\n\t\t\tambChannelRegistry,\n\t\t\toptions,\n\t\t\tactionMetaData,\n\t\t\tdispatch\n\t\t});\n\t}\n}\n","import {get, values} from '@servicenow/ui-internal';\n\n/**\n * Gets a list of channel ids and serialized graphql subscriptions from a given subscription query result.\n *\n * @private\n * @method getChannelsFromSubscriptionQuery\n * @param {Object} data Subscription query results.\n * @returns {Array} Object containing channel id and serialized graphql subscription for AMB.\n */\nexport default function getChannelsFromSubscriptionQuery(data) {\n\tconst items = values(get(data, 'GlideRecord_Subscription'));\n\tconst channels = [];\n\tconst {length: itemsLength} = items;\n\n\tfor (let i = 0; i < itemsLength; i++) {\n\t\tconst item = items[i];\n\t\tconst channelId = get(item, '_subscription.subscription_channel');\n\t\tconst serializedSubscription = get(item, '_subscription.serialized_subscription');\n\n\t\tif (channelId && serializedSubscription) channels.push({channelId, serializedSubscription});\n\t}\n\n\treturn channels;\n}\n","import {get, defer} from '@servicenow/ui-internal';\n\nconst ENTER = 'enter';\nconst CHANGE = 'change';\nconst EXIT = 'exit';\nconst ABANDONED = 'abandoned';\n\nexport const GRAPHQL_SUBSCRIPTION_STARTED = 'GRAPHQL_SUBSCRIPTION_STARTED';\nexport const GRAPHQL_SUBSCRIPTION_SUCCEEDED = 'GRAPHQL_SUBSCRIPTION_SUCCEEDED';\nexport const GRAPHQL_SUBSCRIPTION_FAILED = 'GRAPHQL_SUBSCRIPTION_FAILED';\nexport const GRAPHQL_UNSUBSCRIBE_SUCCEEDED = 'GRAPHQL_UNSUBSCRIBE_SUCCEEDED';\nexport const GRAPHQL_SUBSCRIPTION_ITEM_ENTERED = 'GRAPHQL_SUBSCRIPTION_ITEM_ENTERED';\nexport const GRAPHQL_SUBSCRIPTION_ITEM_CHANGED = 'GRAPHQL_SUBSCRIPTION_ITEM_CHANGED';\nexport const GRAPHQL_SUBSCRIPTION_ITEM_EXITED = 'GRAPHQL_SUBSCRIPTION_ITEM_EXITED';\nexport const GRAPHQL_SUBSCRIPTION_CONDITION_ABANDONED = 'GRAPHQL_SUBSCRIPTION_CONDITION_ABANDONED';\n\nfunction createSubscriptionCallback(dispatch, successActionType, errorActionType, actionMetaData) {\n\t// use setTimeout because of an AMB client subscription timing issue\n\treturn response =>\n\t\tdefer(() => {\n\t\t\tif (response.successful) {\n\t\t\t\tdispatch(successActionType, {response}, actionMetaData);\n\t\t\t} else {\n\t\t\t\tconst {error} = response;\n\t\t\t\tdispatch(errorActionType, error, actionMetaData, true);\n\t\t\t}\n\t\t});\n}\n\n/**\n * Manges AMB subscription\n *\n * State should follow:\n * channelId has changed, always unsubscribe first\n * isSubscribed: true, shouldSubscribe: true    = Do nothing\n * isSubscribed: true, shouldSubscribe: false   = unsubscribe\n * isSubscribed: false, shouldSubscribe: true   = subscribe\n * isSubscribed: false, shouldSubscribe: false  = Do nothing\n *\n * @private\n * @param config\n */\nexport default function handleAMBSubscription(config) {\n\tconst {\n\t\tshouldSubscribe,\n\t\tambClient,\n\t\tambChannelRegistry,\n\t\toptions,\n\t\tactionMetaData,\n\t\tregistryId,\n\t\tchannelId,\n\t\tserializedSubscription: serializedGraphQLSubscription,\n\t\tdispatch\n\t} = config;\n\n\tconst {\n\t\tsubscriptionStartedActionType = GRAPHQL_SUBSCRIPTION_STARTED,\n\t\tsubscriptionSuccessActionType = GRAPHQL_SUBSCRIPTION_SUCCEEDED,\n\t\tsubscriptionFailedActionType = GRAPHQL_SUBSCRIPTION_FAILED,\n\t\tunsubscribeSuccessActionType = GRAPHQL_UNSUBSCRIBE_SUCCEEDED,\n\t\titemEnteredActionType = GRAPHQL_SUBSCRIPTION_ITEM_ENTERED,\n\t\titemChangedActionType = GRAPHQL_SUBSCRIPTION_ITEM_CHANGED,\n\t\titemExitedActionType = GRAPHQL_SUBSCRIPTION_ITEM_EXITED,\n\t\tconditionAbandonedActionType = GRAPHQL_SUBSCRIPTION_CONDITION_ABANDONED\n\t} = options;\n\n\tconst subscriptionCallback = createSubscriptionCallback(\n\t\tdispatch,\n\t\tsubscriptionSuccessActionType,\n\t\tsubscriptionFailedActionType,\n\t\tactionMetaData\n\t);\n\n\tif (!ambChannelRegistry.has(registryId)) {\n\t\tambChannelRegistry.set(\n\t\t\tregistryId,\n\t\t\tambClient.getChannel(channelId, {\n\t\t\t\tsubscriptionCallback,\n\t\t\t\tserializedGraphQLSubscription\n\t\t\t})\n\t\t);\n\t}\n\n\tlet channelListener = ambChannelRegistry.get(registryId);\n\tconst channelIdChanged = channelId !== channelListener.getName();\n\n\tif (channelIdChanged) {\n\t\tchannelListener.unsubscribe();\n\t\tambChannelRegistry.set(\n\t\t\tregistryId,\n\t\t\tambClient.getChannel(channelId, {\n\t\t\t\tsubscriptionCallback,\n\t\t\t\tserializedGraphQLSubscription\n\t\t\t})\n\t\t);\n\t\tchannelListener = ambChannelRegistry.get(registryId);\n\t}\n\n\tconst isSubscribed = channelListener.getCallback() !== undefined;\n\tif (!isSubscribed && shouldSubscribe) {\n\t\tdispatch(subscriptionStartedActionType, {}, actionMetaData);\n\t\tchannelListener.subscribe(message => {\n\t\t\tconst fields = get(message, 'data.data.GlideRecord_Subscription', {});\n\t\t\tfor (const key in fields) {\n\t\t\t\tif (key === '__typename') return;\n\n\t\t\t\tconst state = get(fields[key], '_subscription.subscription_state');\n\t\t\t\tswitch (state) {\n\t\t\t\t\tcase CHANGE:\n\t\t\t\t\t\tdispatch(itemChangedActionType, message.data.data, actionMetaData);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase ENTER:\n\t\t\t\t\t\tdispatch(itemEnteredActionType, message.data.data, actionMetaData);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase EXIT:\n\t\t\t\t\t\tdispatch(itemExitedActionType, message.data.data, actionMetaData);\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase ABANDONED:\n\t\t\t\t\t\tdispatch(conditionAbandonedActionType, message.data.data, actionMetaData);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else if (isSubscribed && !shouldSubscribe) {\n\t\tchannelListener.unsubscribe();\n\t\tambChannelRegistry.delete(registryId);\n\t\tdispatch(unsubscribeSuccessActionType, {}, actionMetaData);\n\t}\n}\n","import {set} from '@servicenow/ui-utils';\n\nexport default class QueryContext {\n\tconstructor(contextArguments) {\n\t\tconst {\n\t\t\tinitialPayloadActionType,\n\t\t\tadditionalDataActionType,\n\t\t\tsuccessActionType,\n\t\t\tdispatch,\n\t\t\tactionMetaData = {},\n\t\t\tspan\n\t\t} = contextArguments;\n\t\tthis.initialPayloadActionType = initialPayloadActionType;\n\t\tthis.additionalDataActionType = additionalDataActionType;\n\t\tthis.successActionType = successActionType;\n\t\tthis.dispatchFunction = dispatch;\n\t\tthis.actionMetadata = actionMetaData;\n\t\tthis.activeSpan = span;\n\t\tthis.resetContext();\n\t}\n\n\tdataReceived(dataReceived, responseHeaders = null) {\n\t\tif (dataReceived === null || dataReceived === undefined || dataReceived.data === undefined) {\n\t\t\tif (this.initialPayloadEmpty) this.setFirstDataReceived({data: {}});\n\t\t\treturn;\n\t\t}\n\n\t\t//Set initial payload data\n\t\tif (this.initialPayloadEmpty) {\n\t\t\tthis.setFirstDataReceived(dataReceived);\n\t\t\tthis.dispatchInitialPayloadAction(responseHeaders);\n\t\t} else {\n\t\t\tthis.updateDataReceived(dataReceived);\n\t\t\tthis.dispatchAdditionalDataAction(dataReceived, responseHeaders);\n\t\t}\n\t}\n\n\tsetFirstDataReceived(data) {\n\t\tthis.initialPayloadEmpty = false;\n\t\tthis.finalPayload = data;\n\t}\n\n\tupdateDataReceived(updatePayload) {\n\t\t//Merge new data\n\t\tif (Array.isArray(updatePayload.path))\n\t\t\tset(this.finalPayload.data, updatePayload.path, updatePayload.data);\n\n\t\t//Merge any new errors\n\t\tconst receivedErrors = updatePayload.errors;\n\t\tif (Array.isArray(receivedErrors) && receivedErrors.length) {\n\t\t\tif (!Array.isArray(this.finalPayload.errors)) this.finalPayload.errors = [];\n\n\t\t\tthis.finalPayload.errors = this.finalPayload.errors.concat(receivedErrors);\n\t\t}\n\t}\n\n\tsuccessPayloadReceived(payload, responseHeaders = null) {\n\t\t//If we've already received data then we can ignore this payload and just dispatch the\n\t\t//success action, otherwise we set the payload, and if they have designated a dataReceivedActionType\n\t\t//we dispatch that also\n\t\tif (this.initialPayloadEmpty) {\n\t\t\tthis.setFirstDataReceived(payload);\n\t\t\tthis.dispatchInitialPayloadAction(responseHeaders, false);\n\t\t}\n\n\t\tthis.dispatchSuccessAction(responseHeaders);\n\t}\n\n\tdispatchInitialPayloadAction(responseHeaders, shouldClone = true) {\n\t\t//Don't dispatch if we have a PersistedQueryException! Seems kind of arbitrary here, not sure where\n\t\t//else to put this check\n\t\tconst {errors = []} = this.finalPayload;\n\t\tif (errors.some(({errorType}) => errorType === 'PersistedQueryNotFound')) return;\n\n\t\tif (this.dispatchFunction && this.initialPayloadActionType) {\n\t\t\tthis.dispatchFunction(\n\t\t\t\tthis.initialPayloadActionType,\n\t\t\t\t//Since this is just JSON from the graphql response, we can do a stringify/parse to clone it\n\t\t\t\tshouldClone ? JSON.parse(JSON.stringify(this.finalPayload)) : this.finalPayload,\n\t\t\t\t{\n\t\t\t\t\t...this.actionMetadata,\n\t\t\t\t\tresponseHeaders\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tdispatchAdditionalDataAction(dataReceived, responseHeaders) {\n\t\tif (this.dispatchFunction && this.additionalDataActionType) {\n\t\t\tthis.dispatchFunction(this.additionalDataActionType, dataReceived, {\n\t\t\t\t...this.actionMetadata,\n\t\t\t\tresponseHeaders\n\t\t\t});\n\t\t}\n\t}\n\n\tdispatchSuccessAction(responseHeaders) {\n\t\tif (this.dispatchFunction && this.successActionType) {\n\t\t\tthis.dispatchFunction(this.successActionType, this.finalPayload, {\n\t\t\t\t...this.actionMetadata,\n\t\t\t\t...(this.activeSpan && {span: this.activeSpan}),\n\t\t\t\tresponseHeaders\n\t\t\t});\n\t\t}\n\t}\n\n\tget response() {\n\t\treturn this.finalPayload;\n\t}\n\n\tisStreamingRequest() {\n\t\treturn Boolean(this.initialPayloadActionType || this.additionalDataActionType);\n\t}\n\n\twasStreamingResponse(headers) {\n\t\treturn Boolean(\n\t\t\theaders?.['content-type']?.includes('multipart/mixed') && this.isStreamingRequest()\n\t\t);\n\t}\n\n\tclearStreaming() {\n\t\tthis.initialPayloadActionType = undefined;\n\t\tthis.additionalDataActionType = undefined;\n\t}\n\n\tresetContext() {\n\t\tthis.finalPayload = {data: {}};\n\t\tthis.initialPayloadEmpty = true;\n\t}\n\n\tgetActiveSpan() {\n\t\treturn this.activeSpan;\n\t}\n\n\t//We dont want this to serialize to anything in case it is included in requests\n\ttoJSON() {\n\t\treturn null;\n\t}\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_effect_helpers = exports;\n\nexport * from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_effect_http = exports;\n\nexport * from './index.js';\n","export {default as createHttpEffect} from './httpEffect';\n","import * as uiAnalyticsConsumer from '@servicenow/ui-analytics-consumer';\nimport {mark, types as metrics, getInteractionId} from '@servicenow/ui-metrics';\nimport {createHttpErrorAction} from '@servicenow/ui-effect-helpers';\nimport sendRequest from './sendRequest';\nimport replacePathParameters from './replacePathParams';\nimport {\n\tget,\n\tpick,\n\tisEqual,\n\taddPendingNetworkActionForHost,\n\tremovePendingNetworkActionForHost,\n\tdefer,\n\tgetSpanOptions\n} from '@servicenow/ui-internal';\n\nimport {configConstants, getConfigItem} from '@servicenow/ui-config';\n\nimport log from './log';\nimport {\n\tSPAN_ATTR_HTTP_BATCH,\n\tSPAN_ATTR_HTTP_CACHEABLE,\n\tSPAN_ATTR_HTTP_METHOD,\n\tSPAN_ATTR_HTTP_URL,\n\tSPAN_FOR_HTTP,\n\tSPAN_KIND_CLIENT,\n\tSPAN_TRACE_PARENT\n} from './constants';\n\nexport const HTTP_REQUEST_STARTED = 'HTTP_REQUEST_STARTED';\nexport const HTTP_REQUEST_PROGRESS_UPDATED = 'HTTP_REQUEST_PROGRESS_UPDATED';\nexport const HTTP_REQUEST_SUCCEEDED = 'HTTP_REQUEST_SUCCEEDED';\nexport const HTTP_REQUEST_FAILED = 'HTTP_REQUEST_FAILED';\nexport const HTTP_CACHE_UPDATED = 'HTTP_CACHE_UPDATED';\nexport const HTTP_EFFECT_SESSION_NOTIFICATIONS_RECEIVED =\n\t'HTTP_EFFECT_SESSION_NOTIFICATIONS_RECEIVED';\n\nexport const HEADER_X_WANT_AUTH_SESSION_NOTIFICATION_MESSAGES = 'X-WantAuthSessionNotifications';\n\nconst {HTTP_CACHING_REFRESH_DELAY} = configConstants;\nconst {trace, createTraceParentHeader, isValidTraceId} = uiAnalyticsConsumer;\n\nconst cacheDelay = getConfigItem(HTTP_CACHING_REFRESH_DELAY) || 10000;\n\nexport const createMultipartConfig = (\n\t{partReceivedActionType, parsePartsAsJson, emitCompletedResponse},\n\tdispatch,\n\tmetaData\n) => {\n\tlet multipartConfig;\n\tif (partReceivedActionType) {\n\t\tmultipartConfig = {\n\t\t\tmultipartConsumer: partRecvd =>\n\t\t\t\tdispatch(partReceivedActionType, partRecvd?.body, {\n\t\t\t\t\t...metaData,\n\t\t\t\t\tresponseHeaders: partRecvd?.headers\n\t\t\t\t})\n\t\t};\n\n\t\tmultipartConfig.parsePartsAsJson =\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tparsePartsAsJson != undefined ? Boolean(parsePartsAsJson) : true;\n\t\tmultipartConfig.emitCompletedResponse =\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\temitCompletedResponse != undefined ? Boolean(emitCompletedResponse) : true;\n\t}\n\n\treturn multipartConfig;\n};\n\nexport function* httpEffect(url, options = {}, coeffects) {\n\tconst {\n\t\tmethod = 'GET',\n\t\theaders = {},\n\t\theaderList = [],\n\t\tpathParams = [],\n\t\tqueryParams = [],\n\t\tdataParam = 'data',\n\t\tbatch = true,\n\t\tcacheable = false,\n\t\tencodeURIComponent = true,\n\t\tcancelPromiseSymbol,\n\t\tstartActionType = HTTP_REQUEST_STARTED,\n\t\tprogressActionType = HTTP_REQUEST_PROGRESS_UPDATED,\n\t\tsuccessActionType = HTTP_REQUEST_SUCCEEDED,\n\t\terrorActionType = HTTP_REQUEST_FAILED,\n\t\tcacheUpdateActionType = HTTP_CACHE_UPDATED,\n\t\tstreaming = {}\n\t} = options;\n\n\tconst {action, dispatch, host} = coeffects;\n\tconst {payload} = action;\n\tconst updatedUrl = replacePathParameters(url, pick(payload, pathParams), {\n\t\tencodeURIComponent\n\t});\n\tconst params = pick(payload, queryParams);\n\tconst data = get(payload, dataParam, undefined);\n\tconst parentSpan = action.meta.span;\n\tconst httpSpan =\n\t\tparentSpan &&\n\t\ttrace(SPAN_FOR_HTTP, {\n\t\t\t...getSpanOptions(host),\n\t\t\tkind: SPAN_KIND_CLIENT,\n\t\t\ttraceId: parentSpan.traceId,\n\t\t\t...(isValidTraceId(parentSpan.traceId) && {parentSpan})\n\t\t});\n\tconst metaData = {\n\t\t...action.meta,\n\t\t...(httpSpan && isValidTraceId(httpSpan.traceId) && {span: httpSpan}),\n\t\trequest: {\n\t\t\turl,\n\t\t\tupdatedUrl,\n\t\t\tparams,\n\t\t\tdata,\n\t\t\t...options\n\t\t}\n\t};\n\tconst multipartConfig = createMultipartConfig(streaming, dispatch, metaData);\n\n\tfunction onUploadProgress(progressEvent) {\n\t\tdispatch(progressActionType, {progressEvent}, metaData);\n\t}\n\n\taddPendingNetworkActionForHost(action, host);\n\ttry {\n\t\tdispatch(startActionType, {}, metaData);\n\t\tconst interactionId = getInteractionId(action.meta);\n\n\t\tif (updatedUrl.indexOf('/null') !== -1 || updatedUrl.indexOf('/undefined') !== -1) {\n\t\t\tconst {tagName, nowId} = host;\n\t\t\tlog(\n\t\t\t\t`An HTTP request with the url of ${updatedUrl} was made. Please verify that ${updatedUrl} is a valid URL.`,\n\t\t\t\t{\n\t\t\t\t\ttagName,\n\t\t\t\t\tcomponentId: nowId,\n\t\t\t\t\thost,\n\t\t\t\t\torigin: 'httpEffect'\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\t/* Required by WebAPI team to send `session.notifications` as part of the responses */\n\t\tif (headers[HEADER_X_WANT_AUTH_SESSION_NOTIFICATION_MESSAGES] == null) {\n\t\t\theaders[HEADER_X_WANT_AUTH_SESSION_NOTIFICATION_MESSAGES] = true;\n\t\t}\n\t\theaders['NOW-UI-INTERACTION'] = interactionId;\n\t\tif (window.nowUiFramework && window.nowUiFramework.uxrInteractionId) {\n\t\t\theaders['NOW-UX-INTERACTION'] =\n\t\t\t\twindow.nowUiFramework.getUxrInteractionIdByHost?.(host) ||\n\t\t\t\twindow.nowUiFramework.uxrInteractionId;\n\t\t}\n\t\tif (httpSpan && isValidTraceId(httpSpan.traceId)) {\n\t\t\thttpSpan.setAttribute(SPAN_ATTR_HTTP_URL, updatedUrl);\n\t\t\thttpSpan.setAttribute(SPAN_ATTR_HTTP_METHOD, method);\n\t\t\thttpSpan.setAttribute(SPAN_ATTR_HTTP_BATCH, batch);\n\t\t\thttpSpan.setAttribute(SPAN_ATTR_HTTP_CACHEABLE, cacheable);\n\t\t}\n\n\t\tmark(host, interactionId, metrics.HTTP, {\n\t\t\tpath: updatedUrl,\n\t\t\ttype: action.type,\n\t\t\tbatch\n\t\t});\n\n\t\tconst traceparent = httpSpan && createTraceParentHeader(httpSpan.id, httpSpan.traceId);\n\t\tif (httpSpan && isValidTraceId(httpSpan.traceId))\n\t\t\thttpSpan.setAttribute(SPAN_TRACE_PARENT, traceparent);\n\t\tconst request = sendRequest(updatedUrl, method, {\n\t\t\theaders: {\n\t\t\t\t...pick(payload, headerList),\n\t\t\t\t...headers\n\t\t\t},\n\t\t\tparams,\n\t\t\t...(data && {data}),\n\t\t\tonUploadProgress,\n\t\t\tbatch,\n\t\t\tcacheable,\n\t\t\tcancelPromiseSymbol,\n\t\t\tmultipartConfig,\n\t\t\tspan: httpSpan && isValidTraceId(httpSpan.traceId) ? httpSpan : null\n\t\t});\n\n\t\tlet result = yield request;\n\t\tif (httpSpan && isValidTraceId(httpSpan.traceId)) metaData.span = httpSpan;\n\t\tconst {isCachedResult = false, requestPromise = async () => {}} = result;\n\t\tif (!isCachedResult) {\n\t\t\tresult = yield requestPromise();\n\t\t}\n\n\t\tconst {\n\t\t\theaders: responseHeaders,\n\t\t\tdata: successData,\n\t\t\trefetchPromise = null,\n\t\t\tstatus,\n\t\t\tstatusText\n\t\t} = result;\n\n\t\tif (isCachedResult && refetchPromise) {\n\t\t\tdispatch(successActionType, successData, {...metaData, responseHeaders, status, statusText});\n\t\t\tdefer(() => {\n\t\t\t\trefetchPromise().then(refetchResult => {\n\t\t\t\t\t// compare cachedResult and refetchResult\n\t\t\t\t\tif (!isEqual(successData, refetchResult.data)) {\n\t\t\t\t\t\tdispatch(cacheUpdateActionType, refetchResult.data, {\n\t\t\t\t\t\t\t...metaData,\n\t\t\t\t\t\t\tresponseHeaders: refetchResult.headers,\n\t\t\t\t\t\t\tstatus: refetchResult.status,\n\t\t\t\t\t\t\tstatusText: refetchResult.statusText\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}, cacheDelay);\n\t\t} else {\n\t\t\tdispatch(successActionType, successData, {...metaData, responseHeaders, status, statusText});\n\t\t\tsuccessData?.session &&\n\t\t\t\tdispatch(HTTP_EFFECT_SESSION_NOTIFICATIONS_RECEIVED, successData.session, {\n\t\t\t\t\t...metaData,\n\t\t\t\t\tresponseHeaders,\n\t\t\t\t\tstatus,\n\t\t\t\t\tstatusText\n\t\t\t\t});\n\t\t}\n\t} catch (error) {\n\t\t// @FIXME: IndexedDB/cache error type DomException from effect-helpers/src/cache/store.js\n\t\t// Ends up in this catch, but this is only designed to catch http error, need to handle in sendRequest()\n\t\tmetaData.responseHeaders = get(error, 'options.responseHeaders', null);\n\t\tmetaData.status = error.status;\n\t\tmetaData.statusText = error.statusText;\n\t\tif (error.name) metaData.name = error.name;\n\t\tdispatch(errorActionType, error, metaData, true);\n\n\t\t// Standard action dispatched on HTTP errors from the server\n\t\tconst {status, statusText, message, data} = error;\n\t\tconst {\n\t\t\ttype,\n\t\t\tpayload,\n\t\t\tmeta,\n\t\t\terror: httpError\n\t\t} = createHttpErrorAction(status, statusText, message, data, metaData);\n\t\tdispatch(\n\t\t\ttype,\n\t\t\tpayload,\n\t\t\thttpSpan && isValidTraceId(httpSpan.traceId) ? {...meta, span: httpSpan} : meta,\n\t\t\thttpError\n\t\t);\n\t} finally {\n\t\thttpSpan && httpSpan.end();\n\t\tremovePendingNetworkActionForHost(action, host);\n\t}\n}\n\n/**\n * Effect that makes an HTTP request and dispatches actions at relevant parts of the life cycle:\n *  - Before the request is sent\n *  - After the request has returned (success or error)\n *  - Upload of progress updates\n *\n * The Success and Action Types that are returned also contain a `meta` property with helpful information\n * useful for debugging purposes including the response headers.\n *\n * @function createHttpEffect\n * @example\n * import {createHttpEffect} from '@servicenow/ui-effect-http';\n *\n * const USER_FETCH_SUCCESS = 'USER_FETCH_SUCCESS'\n *\n * const fetchUserEffect = createHttpEffect('api/users/:id', {\n *      method: 'POST'\n *      headers: {},\n *      pathParams: ['id']\n *      dataParam: 'data',\n *      successActionType: USER_FETCH_SUCCESS\n * });\n *\n * // Register with component action handlers:\n * {\n *     actionHandlers: {\n *         'USER_FETCHED': fetchUserEffect,\n *         [USER_FETCH_SUCCESS]: ({action, updateState}) => {...}\n *     }\n * }\n *\n * @param {String} url - URL to endpoint\n * @param {Object} options\n * @param {String} options.method - Request method: GET, POST, PUT, PATCH, DELETE (default: GET)\n * @param {Object} options.headers - Request headers\n * @param {Object<String>} options.headerList - dynamic HTTP request headers\n * @param {Boolean} options.batch - Enable or disable batching for requests made by this effect (default: true)\n * @param {Boolean} options.encodeURIComponent - Encode URL (default: true)\n * @param {String} options.dataParam - Property in dispatched action to map to the data property of the HTTP request\n * @param {Array<String>} options.pathParams - Array of properties in dispatched action to map values to dynamic path variables (\"api/users/:id\")\n * @param {Array<String>} options.queryParams - Array of properties in dispatched action to map values to URL query string variables (\"api/users?id=abc123)\n * @param {String} options.startActionType - Action to be dispatched when the HTTP request has been issued\n * @param {Object} options.streaming -  JSON object to describe how to handle data when a streaming (multipart/mixed) response is expected\n * @param options.&lt;streaming&gt;.partReceivedActionType {String} - The action to be dispatched when a streaming data part has been received\n * @param options.&lt;streaming&gt;.parsePartsAsJson {Boolean} - Parse each received data part as JSON (default: true)\n * @param options.&lt;streaming&gt;.emitCompletedResponse {Boolean} - Also emit the full response payload via the successActionType (default: true)\n * @param {String} options.progressActionType - Action to be dispatched when onprogress is triggered during the HTTP request\n * @param {String} options.successActionType - Action to be dispatched when the HTTP request has successfully completed. The response data will be available as payload which will be of type object for application/json content-type and String for others\n * @param {String} options.errorActionType - Action to be dispatched when the HTTP request has failed\n *\n * @return {Object} Http Effect Descriptor\n */\nexport default function createHttpEffect(url, options) {\n\treturn {\n\t\teffect: httpEffect,\n\t\targs: [url, options]\n\t};\n}\n","import {omit, pick, whenIdle} from '@servicenow/ui-internal';\nimport {configConstants, getConfigItem} from '@servicenow/ui-config';\nimport {getUserSysId, makePersistentCache, makeLRUCachePolicy} from '@servicenow/ui-effect-helpers';\nimport createSnHttp from './snHttp';\nimport filterHeaders from './filterHeaders';\nimport log from './log';\n\nconst IGNORED_HEADERS = ['NOW-UI-INTERACTION', 'NOW-UX-INTERACTION'];\nconst {HTTP_CACHING_ENABLED, HTTP_CACHE_CAPACITY, HTTP_CACHE_MAX_PERSIST} = configConstants;\nconst isCacheEnabled = getConfigItem(HTTP_CACHING_ENABLED);\nconst cacheCapacity = getConfigItem(HTTP_CACHE_CAPACITY);\nconst cacheMaxPersist = getConfigItem(HTTP_CACHE_MAX_PERSIST) || 2880;\n\nlet persistantCache;\n\nconst getCache = async function () {\n\tif (persistantCache) {\n\t\treturn persistantCache;\n\t}\n\ttry {\n\t\tpersistantCache = await makePersistentCache({\n\t\t\tdbName: 'Seismic',\n\t\t\tstoreName: 'gqlQueries',\n\t\t\tschemaVersion: 1,\n\t\t\toptions: {cachePolicy: makeLRUCachePolicy(cacheCapacity)}\n\t\t});\n\t} catch (e) {\n\t\treturn null;\n\t}\n\treturn persistantCache;\n};\n\nconst getCacheKey = ({url, headers, params}) => {\n\tconst stringifiedHeaders = JSON.stringify(omit(headers, IGNORED_HEADERS));\n\tconst stringifiedParams = JSON.stringify(params);\n\n\t// @FIXME: This is more fragile than a faberge egg.  Find or create a public API to get a user sys_id\n\tconst userToken = getUserSysId(globalThis);\n\n\treturn `${url}:${stringifiedHeaders}:${stringifiedParams}:${userToken}`;\n};\n\nexport default async function sendRequest(url, method, options) {\n\tconst snHttp = window?.nowUiFramework?.snHttp || (await createSnHttp());\n\tconst {\n\t\theaders = {},\n\t\tparams,\n\t\tdata,\n\t\tonUploadProgress = () => {},\n\t\tbatch = true,\n\t\tcacheable = false,\n\t\tcancelPromiseSymbol,\n\t\tmultipartConfig,\n\t\tspan: activeSpan\n\t} = options;\n\n\tconst abortController = new AbortController();\n\tconst updatedHeaders = filterHeaders(headers);\n\tconst cacheKey = getCacheKey({url, headers: updatedHeaders, params});\n\t// Disable caching for multipart requests\n\t// eslint-disable-next-line eqeqeq\n\tconst cacheRequested = cacheable && multipartConfig == null;\n\tconst shouldCache = cacheRequested && method === 'GET';\n\tconst isImpersonating = window.NOW?.user?.isImpersonating;\n\tconst promise = () => {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tsnHttp\n\t\t\t\t.request(url, method, {\n\t\t\t\t\theaders: updatedHeaders,\n\t\t\t\t\tparams,\n\t\t\t\t\tdata,\n\t\t\t\t\tonUploadProgress,\n\t\t\t\t\tbatch,\n\t\t\t\t\tsignal: abortController.signal,\n\t\t\t\t\tmultipartConfig,\n\t\t\t\t\tspan: activeSpan\n\t\t\t\t})\n\t\t\t\t.then(async results => {\n\t\t\t\t\tif (isCacheEnabled && shouldCache && !isImpersonating) {\n\t\t\t\t\t\tconst cache = await getCache();\n\t\t\t\t\t\tif (cache) {\n\t\t\t\t\t\t\tconst dataToCache = pick(results, ['data', 'headers', 'status', 'statusText']);\n\t\t\t\t\t\t\t// add now as the cached date if its not on the header\n\t\t\t\t\t\t\tif (!dataToCache?.headers?.date) {\n\t\t\t\t\t\t\t\tif (dataToCache?.headers) {\n\t\t\t\t\t\t\t\t\tdataToCache.headers.date = Date.now();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tawait cache.set(cacheKey, dataToCache);\n\n\t\t\t\t\t\t\twhenIdle(() => cache.persist());\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tactiveSpan && activeSpan.setStatus(results.status);\n\t\t\t\t\tresolve(results);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconst {response: {data, status, statusText, headers} = {}, message} = error;\n\t\t\t\t\tif (activeSpan) {\n\t\t\t\t\t\tactiveSpan.setStatus(status);\n\t\t\t\t\t\tactiveSpan.recordException(error);\n\t\t\t\t\t}\n\n\t\t\t\t\treject({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tstatus,\n\t\t\t\t\t\tstatusText,\n\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t...(updatedHeaders && {headers: updatedHeaders}),\n\t\t\t\t\t\t\t...(headers && {responseHeaders: headers}),\n\t\t\t\t\t\t\t...(params && {params}),\n\t\t\t\t\t\t\t...(data && {data})\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...(message && {message})\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t});\n\t};\n\n\tif (cancelPromiseSymbol) {\n\t\tpromise[cancelPromiseSymbol] = () => {\n\t\t\tabortController.abort();\n\t\t};\n\t}\n\tconst cache = await getCache();\n\tconst isCached = cache ? await cache.has(cacheKey) : false;\n\tif (shouldCache && isCached) {\n\t\tconst cachedResult = await cache.get(cacheKey);\n\n\t\tconst {headers} = cachedResult;\n\t\tconst cachedDate = new Date(headers?.date);\n\t\tif (headers?.date && cachedDate) {\n\t\t\tconst minutesSinceCached = (Date.now() - cachedDate) / 1000 / 60;\n\t\t\tif (minutesSinceCached < cacheMaxPersist) {\n\t\t\t\treturn {\n\t\t\t\t\tisCachedResult: true,\n\t\t\t\t\trefetchPromise: promise,\n\t\t\t\t\t...cachedResult\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else if (cacheRequested && !shouldCache) {\n\t\tlog(`HTTP caching not available for ${method} method requests`);\n\t}\n\n\treturn {\n\t\tisCachedResult: false,\n\t\trequestPromise: promise\n\t};\n}\n","import getGlobalObject from './getGlobalObject';\nimport isBatchingEnabled from './isBatchingEnabled';\nimport {createSnHttp} from '@servicenow/ui-utils';\n\nconst root = getGlobalObject();\nconst {navigator} = root;\n\nconst createSnHttpForRest = createSnHttp({\n\txsrfToken: root.g_ck,\n\txTransactionSource: root.transaction_source,\n\tmaxConcurrent: navigator && navigator.userAgent.indexOf('Trident/7.0') !== -1 ? 1 : 4,\n\tbatching: isBatchingEnabled(root)\n});\n\nexport default createSnHttpForRest;\n","export default function getGlobalObject() {\n\tif (typeof self !== 'undefined') return self;\n\n\tif (typeof window !== 'undefined') return window;\n\n\tif (typeof global !== 'undefined') return global;\n\n\tthrow new Error('Unable to locate global object');\n}\n","import {getConfigItem, configConstants} from '@servicenow/ui-config';\n\nconst {DISABLE_REST_BATCHING} = configConstants;\nexport default function isBatchingEnabled() {\n\tif (typeof getConfigItem(DISABLE_REST_BATCHING) === 'boolean')\n\t\treturn !getConfigItem(DISABLE_REST_BATCHING);\n\n\treturn true;\n}\n","import {memoize} from '@servicenow/ui-internal';\n\nfunction containsNonAsciiChars(str = '') {\n\treturn typeof str !== 'string' ? false : [...str].some(char => char.charCodeAt(0) > 127);\n}\n\nconst memoizedContainsNonAsciiChars = memoize(containsNonAsciiChars, {\n\tprofileName: 'containsNonAsciiChars'\n});\n\n/**\n * Removes headers with non ascii values\n * @private\n * @param headers\n */\nexport default function filterHeaders(headers) {\n\tconst nonAsciiHeader = {};\n\tfor (const key in headers) {\n\t\tif (!memoizedContainsNonAsciiChars(headers[key])) nonAsciiHeader[key] = headers[key];\n\t}\n\n\treturn nonAsciiHeader;\n}\n","import {createLogger} from '@servicenow/ui-internal';\n\nexport default createLogger({\n\tmodule: '@servicenow/ui-effect-http'\n});\n","import pathToRegexp from 'path-to-regexp';\n\nexport default function replacePathParameters(\n\turl = '',\n\tpathParams = {},\n\t{encodeURIComponent} = {}\n) {\n\tconst toPath = pathToRegexp.compile(url, {sensitive: true, whitelist: './'});\n\tconst toPathOptions = encodeURIComponent === false ? {encode: str => str} : {};\n\treturn toPath(pathParams, toPathOptions);\n}\n","export const SPAN_FOR_HTTP = 'HTTP';\nexport const SPAN_KIND_CLIENT = 3;\nexport const SPAN_ATTR_HTTP_URL = 'url';\nexport const SPAN_ATTR_HTTP_METHOD = 'method';\nexport const SPAN_ATTR_HTTP_HEADERS = 'headers';\nexport const SPAN_ATTR_HTTP_PARAMS = 'params';\nexport const SPAN_ATTR_HTTP_DATA = 'data';\nexport const SPAN_ATTR_HTTP_BATCH = 'batch';\nexport const SPAN_ATTR_HTTP_CACHEABLE = 'cacheable';\n\nexport const SPAN_TRACE_PARENT = 'traceparent';\nexport const SPAN_ATTR_KIND = 'kind';\nexport const SPAN_ATTR_LEVEL = 'level';\nexport const SPAN_LEVEL_FINE = 100;\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_effect_update_state = exports;\n\nexport * from './index.js';\n","export {default as createUpdateStateEffect} from './updateStateEffect';\n","import {createLogger, isEqual, getHostInfo} from '@servicenow/ui-internal';\n\nconst log = createLogger();\n\nexport function updateStateEffect(reducerFn = s => s, coeffects) {\n\tconst {state, action, updateProperties, updateState, host} = coeffects;\n\tconst updatedState = reducerFn(state, action);\n\n\tconst {tagName, componentId} = getHostInfo(host);\n\tlog('createUpdateStateEffect has been deprecated. Please use updateState helper instead.', {\n\t\ttagName,\n\t\tcomponentId,\n\t\thost,\n\t\torigin: 'updateStateEffect'\n\t});\n\n\t// LEGACY: support legacy components that are spreading properties across state\n\tif (!isEqual(updatedState.properties, state.properties)) {\n\t\tupdateProperties(updatedState.properties);\n\t\tlog(\n\t\t\t'Spreading properties across state in a createUpdateStateEffect is no longer supported. Please use the updateProperties helper.',\n\t\t\t{host, origin: 'updateStateEffect'}\n\t\t);\n\t}\n\n\tupdateState(updatedState, {\n\t\tSCHEDULE_IMMEDIATELY_DO_NOT_USE_OR_YOU_WILL_BE_IMMEDIATELY_FIRED: true,\n\t\tspan: action.meta.span\n\t});\n}\n\n/**\n * **This package is deprecated. Please read about the new helper `updateState` in the state and helpers pages under Main Concepts**\n *\n * Effect that updates the UI Framework data store. Data is stored under the context of the dispatching action that triggered the effect.\n *\n * **Note**: If possible, use the updateState helper function that supports declarative state updates instead.\n *\n * @function createUpdateStateEffect\n * @example\n * import {createUpdateStateEffect} from '@servicenow/ui-effect-update-state';\n *\n * const addActionPayloadToStateEffect = createUpdateStateEffect(\n *   (state, action) => ({...state, ...action.payload})\n * );\n *\n * // Register with component action handlers:\n * {\n *   actionHandlers: {\n *     'SOMETHING_HAPPENED': addActionPayloadToStateEffect\n *   }\n * }\n *\n * @param {Function} reducerFn - Function that reduces current state to new state: (currentState, action) => newState\n * @return {Object} Update State Effect Descriptor\n */\nexport default function createUpdateStateEffect(reducerFn) {\n\treturn {\n\t\teffect: updateStateEffect,\n\t\targs: [reducerFn]\n\t};\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_internal = exports;\n\nexport * from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_metrics = exports;\n\nexport * from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_renderer_default = exports;\n\nexport * from './index.js';\nexport {default} from './index.js';\n","import snabbdom from '@servicenow/ui-renderer-snabbdom';\n\nexport default snabbdom;\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_renderer_snabbdom = exports;\n\nexport * from './index.js';\nexport {default} from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_types = exports;\n\nexport * from './index.js';\n","export * from './primitives';\nexport * from './sets';\n","/***\n * A primitive is JSON Schema with a few extra ServiceNow specific fields, it\n * has the following structure:\n *\n * interface Schema extends JSONSchema {\n *   nowName: string,\n *   nowLabel: string,\n *   nowDescription: string\n * }\n */\n\nexport const table = {\n\tnowName: 'table',\n\tnowLabel: 'Table Name',\n\tnowDescription: 'The name of the table',\n\ttype: 'string'\n};\n\nexport const sysId = {\n\tnowName: 'sys-id',\n\tnowLabel: 'Sys ID',\n\tnowDescription: 'The unique record identifier',\n\ttype: 'string',\n\tpattern: '^[a-f0-9]{32}$'\n};\n\nexport const query = {\n\tnowName: 'query',\n\tnowLabel: 'Query',\n\tnowDescription: 'The query to filter the result set',\n\ttype: 'string'\n};\n","/***\n * A set has the following structure:\n *\n * interface Set {\n *   nowName: string,\n *   nowLabel: string,\n *   nowDescription: string,\n *   [propertyName: string]: Schema\n * }\n *\n * Set primitives.js for how Schema is defined\n *\n * TODO: Do we need a way to mark which properties in a set are required (must be defined in the properties config)\n * and which are optional? In addition, do we need to if properties must be set as required (non-null)\n * in the schema or not?\n */\nimport * as primitives from './primitives';\n\nexport const record = {\n\tnowName: 'record',\n\tnowLabel: 'Record',\n\tnowDescription: null,\n\tsysId: primitives.sysId,\n\ttable: primitives.table,\n\tview: {\n\t\tnowLabel: 'View',\n\t\ttype: 'string'\n\t}\n};\n\nexport const list = {\n\tnowName: 'list',\n\tnowLabel: 'List',\n\tnowDescription: null,\n\ttable: primitives.table,\n\tquery: primitives.query,\n\tpage: {\n\t\tnowLabel: 'Page number',\n\t\tnowDescription: null,\n\t\ttype: 'integer'\n\t},\n\trecordsPerPage: {\n\t\tnowLabel: 'Records per Page',\n\t\tnowDescription: null,\n\t\ttype: 'integer'\n\t}\n};\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_utils = exports;\n\nexport * from './index.js';\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from 'sn-seismic-post-message/src/index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__sn_seismic_post_message = exports;\n\nexport * from 'sn-seismic-post-message/src/index.js';\n","window.addEventListener('message', (e) => {\n\tconst lookup = origins[e.origin];\n\tif (!lookup) {\n\t\treturn;\n\t}\n\n\tconst { event, message } = lookup.deconstructMessage(e.data);\n\n\tif (event && lookup && lookup.events.has(event)) {\n\t\tconst { components, transform } = lookup;\n\t\tfor (let component of components) {\n\t\t\tconst { dispatch } = component.props;\n\t\t\tdispatch(event, Object.assign({ meta: createMetaData(e.origin) }, transform(component.props, event, formatMessage(message))));\n\t\t}\n\t}\n\n}, false);\n\nconst formatMessage = (message) => {\n\tif (typeof message === 'object' && !Array.isArray(message)) {\n\t\treturn message;\n\t}\n\n\treturn { message };\n};\n\nconst origins = {\n\t'*': {\n\t\tevents: new Set(),\n\t\tcomponents: new Set()\n\t}\n};\nconst add = (set, events) => {\n\tevents.forEach((event) => {\n\t\tset.add(event);\n\t});\n\treturn set;\n};\n\nconst createMetaData = (origin) => {\n\treturn {\n\t\torigin,\n\t\ttimestamp: (new Date()).getTime()\n\t};\n};\n\nconst create = (events = [], component, config = {}) => {\n\tconst configuration = Object.assign({ origin: '*', target: null }, config);\n\tconst { dispatch } = component.props;\n\tconst { origin } = configuration;\n\tconst lookup = origins[origin] || (origins[origin] = {});\n\tlookup.events = !lookup.events ? new Set(events) : add(lookup.events, events);\n\tlookup.components = !lookup.components ? new Set([component]) : lookup.components.add(component);\n\tlookup.constructMessage = config.constructMessage || ((data) => data);\n\tlookup.deconstructMessage = config.deconstructMessage || ((data) => data);\n\tlookup.transform = config.transform || ((props, event, message) => message);\n\n\treturn {\n\t\tpost: (event, message) => {\n\t\t\tconst { target, origin } = configuration;\n\t\t\tif (!target && process.env.NODE_ENV !== 'production') { // eslint-disable-line no-undef\n\t\t\t\tconsole.warn('[sn-seismic-post-message] target is not defined.'); // eslint-disable-line no-console\n\t\t\t}\n\n\t\t\tdispatch(event, Object.assign({ meta: createMetaData(window.location.origin) }, formatMessage(message)));\n\t\t\ttarget.postMessage(lookup.constructMessage(event, message), origin);\n\t\t},\n\t\tunbind() {\n\t\t\tconst lookup = origins[origin];\n\t\t\treturn lookup && lookup.components.delete(component);\n\t\t},\n\t\ttarget: (target = window) => {\n\t\t\tconfiguration.target = target;\n\t\t}\n\t};\n};\n\nexport { create };\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from 'sn-translate/src/index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__sn_translate = exports;\n\nexport * from 'sn-translate/src/index.js';\n","\"use strict\";\n\nimport format from 'string-template';\n\nconst SN_TRANSLATE = 'sn-translate';\nconst TRANSLATIONS = '__TRANSLATIONS__';\nconst TRANSLATIONS_PREFIX = '__TECTONIC_TRANSLATIONS_PREFIX__';\nconst TRANSLATIONS_STORE = '__TECTONIC_TRANSLATIONS__';\nconst STATIC_TRANSLATIONS = window && window[TRANSLATIONS] || (window[TRANSLATIONS] = {});\nconst DEFAULT_TRANSLATIONS = Object.assign({}, STATIC_TRANSLATIONS);\n\nif (!window[TRANSLATIONS_STORE])\n\twindow[TRANSLATIONS_STORE] = DEFAULT_TRANSLATIONS;\n\nfunction attachToWindow ({ compat = false } = {}) {\n\tconst translationProperties = Reflect.getOwnPropertyDescriptor(window, TRANSLATIONS);\n\tif (translationProperties.configurable) {\n\t\tObject.defineProperty(window, TRANSLATIONS, {\n\t\t\tconfigurable: compat,\n\t\t\tget() {\n\t\t\t\treturn Object.assign({}, window[TRANSLATIONS_STORE]);\n\t\t\t},\n\t\t\tset(value) {\n\t\t\t\tif (!window[TRANSLATIONS_STORE])\n\t\t\t\t\twindow[TRANSLATIONS_STORE] = Object.assign({}, STATIC_TRANSLATIONS);\n\n\t\t\t\tappendTranslations(value);\n\t\t\t}\n\t\t})\n\t} else {\n\t\tconsole.warn(`[${SN_TRANSLATE}] If you're seeing this message, it probably means that you've loaded two copies of ${SN_TRANSLATE} on the page. At this time, only a single copy of ${SN_TRANSLATE} can be loaded at a time.`);\n\t}\n}\n\nfunction getPrefix() {\n\tif (!window)\n\t\treturn '';\n\n\tif (window[TRANSLATIONS_PREFIX])\n\t\treturn window[TRANSLATIONS_PREFIX];\n\n\tconst enabled = window.__TRANSLATIONS_PREFIX_ENABLED__;\n\tconst prefixName = window.__TRANSLATIONS_PREFIX__ || 'SNT';\n\twindow.__TRANSLATIONS_PREFIX_ENABLED__ = void 0;\n\twindow.__TRANSLATIONS_PREFIX__ = void 0;\n\twindow[TRANSLATIONS_PREFIX] = enabled ? `${prefixName}:` : '';\n\n\treturn window[TRANSLATIONS_PREFIX];\n}\n\nexport function appendTranslations(translations) {\n\tfor (const k in translations)\n\t\twindow[TRANSLATIONS_STORE][k] = translations[k];\n}\n\n\n/**\n * the first parameter of t can be a string or an object of the format:\n * {code: 'code', message: 'Hello!', comment: 'used by translators, ignored by t'}\n * t can transform ordered parameters or named parameters: 'User Status: {0} or 'User Status: {firstName}'\n * @param {*} val \n * @param  {...any} rest \n */\nexport function t(val, ...rest) {\n\tif (!window[TRANSLATIONS_STORE])\n\t\twindow[TRANSLATIONS_STORE] = DEFAULT_TRANSLATIONS;\n \n\tconst translations = window[TRANSLATIONS_STORE];\n\tconst prefix = getPrefix();    \n\n\tlet key = val;\n\tlet codeKey;\n\n\t//check for possible new format of translations\n\tif(val && typeof val === 'object' && val.message) {\n\t\tkey = val.message;\n\t\tif(val.code)\n\t\t\tcodeKey = `${val.code}:${val.message}`;\n\t}\n\n\tconst translation = translations[codeKey] || translations[key] || key; \t//requirements order of precedence\n\treturn format(`${prefix}${translation}`, ...rest);\n}\n\nexport function hasTranslation(str) {\n\treturn window[TRANSLATIONS_STORE].hasOwnProperty(str)\n}\n\nif (process && process.env && parseInt(process.env.SN_TRANSLATE_COMPAT)) \n\tattachToWindow({ compat: true });\nelse\n\tattachToWindow();\n","/**\n * This is a workaround to expose sn-custom-create-element in a similar fashion as\n * the other legacy global variables exposed (sn-seismic-addons.js, sn-seismic-post-message.js, etc)\n * in order to allow the server-side UMD bundle creation logic to serve ui-mega within a larger\n * bundle.\n * Please rip this out when there is a solution in place to remove the other referenced shims.\n */\nimport customCreateElement from 'sn-custom-create-element';\n\nif (typeof window !== 'undefined')\n\twindow.__TECTONIC__sn_custom_create_element = customCreateElement;\n\nexport default {\n\tdefault: customCreateElement,\n\t__esModule: true\n};\n"],"version":3}},{"offset":{"line":146,"column":0},"map":{"mappings":"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","names":[],"sources":["../../../../../../../packages/renderers/react/node_modules/object-assign/index.js","../../../../../../../packages/renderers/react/node_modules/react/cjs/react.production.min.js","../../../../../../../packages/renderers/react/node_modules/react/index.js","../../../../../../../packages/renderers/react/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../../../../packages/renderers/react/node_modules/scheduler/index.js","../../../../../../../packages/renderers/react/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../../../../packages/renderers/react/node_modules/react-dom/index.js","../../../../../../../packages/renderers/react/src/global-shim.js","../../../../../../../packages/renderers/react/src/index.js","../../../../../../../packages/renderers/react/src/onConnect.js","../../../../../../../packages/renderers/react/src/onStateChange.js","../../../../../../../packages/renderers/react/src/ErrorBoundary.js","../../../../../../../packages/renderers/react/src/log.js","../../../../../../../packages/renderers/react/src/onDisconnect.js","../../../../../../../packages/renderers/react/src/createSlot.js"],"sourcesContent":["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\")};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return{$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return{$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return{result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e)}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++)}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a))}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b)}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};exports.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b)},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nexports.Component=F;exports.Fragment=r;exports.Profiler=u;exports.PureComponent=H;exports.StrictMode=t;exports.Suspense=y;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h])}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f}return{$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:x,render:a}};exports.isValidElement=O;\nexports.lazy=function(a){return{$$typeof:A,_ctor:a,_status:-1,_result:null}};exports.memo=function(a,b){return{$$typeof:z,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return Z().useCallback(a,b)};exports.useContext=function(a,b){return Z().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return Z().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return Z().useMemo(a,b)};exports.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};exports.useRef=function(a){return Z().useRef(a)};exports.useState=function(a){return Z().useState(a)};exports.version=\"16.14.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n","/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing framerates higher than 125 fps is not unsupported\"):F=0<a?Math.floor(1E3/a):5};var H=new MessageChannel,I=H.port2;H.port1.onmessage=\nfunction(){if(null!==D){var a=exports.unstable_now();G=a+F;try{D(!0,a)?I.postMessage(null):(C=!1,D=null)}catch(b){throw I.postMessage(null),b;}}else C=!1};f=function(a){D=a;C||(C=!0,I.postMessage(null))};g=function(a,b){E=y(function(){a(exports.unstable_now())},b)};h=function(){z(E);E=-1}}function J(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<K(e,b))a[d]=b,a[c]=e,c=d;else break a}}function L(a){a=a[0];return void 0===a?null:a}\nfunction M(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0<e?d+e:d;c=\"number\"===typeof c.timeout?c.timeout:Y(a)}else c=Y(a),e=d;c=e+c;a={id:P++,callback:b,priorityLevel:a,startTime:e,expirationTime:c,sortIndex:-1};e>d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime<Q.expirationTime||k()};exports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=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","/** @license React v16.14.0\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/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),n=require(\"object-assign\"),r=require(\"scheduler\");function u(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(u(227));\nfunction ba(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var da=!1,ea=null,fa=!1,ha=null,ia={onError:function(a){da=!0;ea=a}};function ja(a,b,c,d,e,f,g,h,k){da=!1;ea=null;ba.apply(ia,arguments)}function ka(a,b,c,d,e,f,g,h,k){ja.apply(this,arguments);if(da){if(da){var l=ea;da=!1;ea=null}else throw Error(u(198));fa||(fa=!0,ha=l)}}var la=null,ma=null,na=null;\nfunction oa(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=na(c);ka(d,b,void 0,a);a.currentTarget=null}var pa=null,qa={};\nfunction ra(){if(pa)for(var a in qa){var b=qa[a],c=pa.indexOf(a);if(!(-1<c))throw Error(u(96,a));if(!sa[c]){if(!b.extractEvents)throw Error(u(97,a));sa[c]=b;c=b.eventTypes;for(var d in c){var e=void 0;var f=c[d],g=b,h=d;if(ta.hasOwnProperty(h))throw Error(u(99,h));ta[h]=f;var k=f.phasedRegistrationNames;if(k){for(e in k)k.hasOwnProperty(e)&&ua(k[e],g,h);e=!0}else f.registrationName?(ua(f.registrationName,g,h),e=!0):e=!1;if(!e)throw Error(u(98,d,a));}}}}\nfunction ua(a,b,c){if(va[a])throw Error(u(100,a));va[a]=b;wa[a]=b.eventTypes[c].dependencies}var sa=[],ta={},va={},wa={};function xa(a){var b=!1,c;for(c in a)if(a.hasOwnProperty(c)){var d=a[c];if(!qa.hasOwnProperty(c)||qa[c]!==d){if(qa[c])throw Error(u(102,c));qa[c]=d;b=!0}}b&&ra()}var ya=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),za=null,Aa=null,Ba=null;\nfunction Ca(a){if(a=ma(a)){if(\"function\"!==typeof za)throw Error(u(280));var b=a.stateNode;b&&(b=la(b),za(a.stateNode,a.type,b))}}function Da(a){Aa?Ba?Ba.push(a):Ba=[a]:Aa=a}function Ea(){if(Aa){var a=Aa,b=Ba;Ba=Aa=null;Ca(a);if(b)for(a=0;a<b.length;a++)Ca(b[a])}}function Fa(a,b){return a(b)}function Ga(a,b,c,d,e){return a(b,c,d,e)}function Ha(){}var Ia=Fa,Ja=!1,Ka=!1;function La(){if(null!==Aa||null!==Ba)Ha(),Ea()}\nfunction Ma(a,b,c){if(Ka)return a(b,c);Ka=!0;try{return Ia(a,b,c)}finally{Ka=!1,La()}}var Na=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,Oa=Object.prototype.hasOwnProperty,Pa={},Qa={};\nfunction Ra(a){if(Oa.call(Qa,a))return!0;if(Oa.call(Pa,a))return!1;if(Na.test(a))return Qa[a]=!0;Pa[a]=!0;return!1}function Sa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction Ta(a,b,c,d){if(null===b||\"undefined\"===typeof b||Sa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f){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}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(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(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(Ta(b,c,e,d)&&(c=null),d||null===e?Ra(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar Ya=/^(.*)[\\\\\\/]/,E=\"function\"===typeof Symbol&&Symbol.for,Za=E?Symbol.for(\"react.element\"):60103,$a=E?Symbol.for(\"react.portal\"):60106,ab=E?Symbol.for(\"react.fragment\"):60107,bb=E?Symbol.for(\"react.strict_mode\"):60108,cb=E?Symbol.for(\"react.profiler\"):60114,db=E?Symbol.for(\"react.provider\"):60109,eb=E?Symbol.for(\"react.context\"):60110,fb=E?Symbol.for(\"react.concurrent_mode\"):60111,gb=E?Symbol.for(\"react.forward_ref\"):60112,hb=E?Symbol.for(\"react.suspense\"):60113,ib=E?Symbol.for(\"react.suspense_list\"):\n60120,jb=E?Symbol.for(\"react.memo\"):60115,kb=E?Symbol.for(\"react.lazy\"):60116,lb=E?Symbol.for(\"react.block\"):60121,mb=\"function\"===typeof Symbol&&Symbol.iterator;function nb(a){if(null===a||\"object\"!==typeof a)return null;a=mb&&a[mb]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function ob(a){if(-1===a._status){a._status=0;var b=a._ctor;b=b();a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}}\nfunction pb(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 ab:return\"Fragment\";case $a:return\"Portal\";case cb:return\"Profiler\";case bb:return\"StrictMode\";case hb:return\"Suspense\";case ib:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case eb:return\"Context.Consumer\";case db:return\"Context.Provider\";case gb:var b=a.render;b=b.displayName||b.name||\"\";return a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\n\"ForwardRef\");case jb:return pb(a.type);case lb:return pb(a.render);case kb:if(a=1===a._status?a._result:null)return pb(a)}return null}function qb(a){var b=\"\";do{a:switch(a.tag){case 3:case 4:case 6:case 7:case 10:case 9:var c=\"\";break a;default:var d=a._debugOwner,e=a._debugSource,f=pb(a.type);c=null;d&&(c=pb(d.type));d=f;f=\"\";e?f=\" (at \"+e.fileName.replace(Ya,\"\")+\":\"+e.lineNumber+\")\":c&&(f=\" (created by \"+c+\")\");c=\"\\n    in \"+(d||\"Unknown\")+f}b+=c;a=a.return}while(a);return b}\nfunction rb(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function sb(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction tb(a){var b=sb(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 xb(a){a._valueTracker||(a._valueTracker=tb(a))}function yb(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=sb(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function zb(a,b){var c=b.checked;return n({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}\nfunction Ab(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=rb(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 Bb(a,b){b=b.checked;null!=b&&Xa(a,\"checked\",b,!1)}\nfunction Cb(a,b){Bb(a,b);var c=rb(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\")?Db(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&Db(a,b.type,rb(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction Eb(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 Db(a,b,c){if(\"number\"!==b||a.ownerDocument.activeElement!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function Fb(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function Gb(a,b){a=n({children:void 0},b);if(b=Fb(b.children))a.children=b;return a}\nfunction Hb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+rb(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction Ib(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(u(91));return n({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function Jb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(u(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"<\/svg>\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;d<b.length&&!a.isPropagationStopped();d++)oa(a,b[d],c[d]);else b&&oa(a,b,c);a._dispatchListeners=null;a._dispatchInstances=null;a.isPersistent()||a.constructor.release(a)}}function mc(a){null!==a&&(kc=ic(kc,a));a=kc;kc=null;if(a){jc(a,lc);if(kc)throw Error(u(95));if(fa)throw a=ha,fa=!1,ha=null,a;}}\nfunction nc(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}function oc(a){if(!ya)return!1;a=\"on\"+a;var b=a in document;b||(b=document.createElement(\"div\"),b.setAttribute(a,\"return;\"),b=\"function\"===typeof b[a]);return b}var pc=[];function qc(a){a.topLevelType=null;a.nativeEvent=null;a.targetInst=null;a.ancestors.length=0;10>pc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c<a.ancestors.length;c++){b=a.ancestors[c];var e=nc(a.nativeEvent);d=a.topLevelType;var f=a.nativeEvent,g=a.eventSystemFlags;0===c&&(g|=64);for(var h=null,k=0;k<sa.length;k++){var l=sa[k];l&&(l=l.extractEvents(d,b,f,e,g))&&(h=\nic(h,l))}mc(h)}}function uc(a,b,c){if(!c.has(a)){switch(a){case \"scroll\":vc(b,\"scroll\",!0);break;case \"focus\":case \"blur\":vc(b,\"focus\",!0);vc(b,\"blur\",!0);c.set(\"blur\",null);c.set(\"focus\",null);break;case \"cancel\":case \"close\":oc(a)&&vc(b,a,!0);break;case \"invalid\":case \"submit\":case \"reset\":break;default:-1===ac.indexOf(a)&&F(a,b)}c.set(a,null)}}\nvar wc,xc,yc,zc=!1,Ac=[],Bc=null,Cc=null,Dc=null,Ec=new Map,Fc=new Map,Gc=[],Hc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),Ic=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction Jc(a,b){var c=cc(b);Hc.forEach(function(a){uc(a,b,c)});Ic.forEach(function(a){uc(a,b,c)})}function Kc(a,b,c,d,e){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:e,container:d}}\nfunction Lc(a,b){switch(a){case \"focus\":case \"blur\":Bc=null;break;case \"dragenter\":case \"dragleave\":Cc=null;break;case \"mouseover\":case \"mouseout\":Dc=null;break;case \"pointerover\":case \"pointerout\":Ec.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Fc.delete(b.pointerId)}}function Mc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=Kc(b,c,d,e,f),null!==b&&(b=Nc(b),null!==b&&xc(b)),a;a.eventSystemFlags|=d;return a}\nfunction Oc(a,b,c,d,e){switch(b){case \"focus\":return Bc=Mc(Bc,a,b,c,d,e),!0;case \"dragenter\":return Cc=Mc(Cc,a,b,c,d,e),!0;case \"mouseover\":return Dc=Mc(Dc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Ec.set(f,Mc(Ec.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Fc.set(f,Mc(Fc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Pc(a){var b=tc(a.target);if(null!==b){var c=dc(b);if(null!==c)if(b=c.tag,13===b){if(b=ec(c),null!==b){a.blockedOn=b;r.unstable_runWithPriority(a.priority,function(){yc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Qc(a){if(null!==a.blockedOn)return!1;var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);if(null!==b){var c=Nc(b);null!==c&&xc(c);a.blockedOn=b;return!1}return!0}\nfunction Sc(a,b,c){Qc(a)&&c.delete(b)}function Tc(){for(zc=!1;0<Ac.length;){var a=Ac[0];if(null!==a.blockedOn){a=Nc(a.blockedOn);null!==a&&wc(a);break}var b=Rc(a.topLevelType,a.eventSystemFlags,a.container,a.nativeEvent);null!==b?a.blockedOn=b:Ac.shift()}null!==Bc&&Qc(Bc)&&(Bc=null);null!==Cc&&Qc(Cc)&&(Cc=null);null!==Dc&&Qc(Dc)&&(Dc=null);Ec.forEach(Sc);Fc.forEach(Sc)}function Uc(a,b){a.blockedOn===b&&(a.blockedOn=null,zc||(zc=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Tc)))}\nfunction Vc(a){function b(b){return Uc(b,a)}if(0<Ac.length){Uc(Ac[0],a);for(var c=1;c<Ac.length;c++){var d=Ac[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Bc&&Uc(Bc,a);null!==Cc&&Uc(Cc,a);null!==Dc&&Uc(Dc,a);Ec.forEach(b);Fc.forEach(b);for(c=0;c<Gc.length;c++)d=Gc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Gc.length&&(c=Gc[0],null===c.blockedOn);)Pc(c),null===c.blockedOn&&Gc.shift()}\nvar Wc={},Yc=new Map,Zc=new Map,$c=[\"abort\",\"abort\",Xb,\"animationEnd\",Yb,\"animationIteration\",Zb,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\n\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",$b,\"transitionEnd\",\"waiting\",\"waiting\"];function ad(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1],f=\"on\"+(e[0].toUpperCase()+e.slice(1));f={phasedRegistrationNames:{bubbled:f,captured:f+\"Capture\"},dependencies:[d],eventPriority:b};Zc.set(d,b);Yc.set(d,f);Wc[e]=f}}\nad(\"blur blur cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focus focus input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),0);\nad(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);ad($c,2);for(var bd=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),cd=0;cd<bd.length;cd++)Zc.set(bd[cd],0);\nvar dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function F(a,b){vc(b,a,!1)}function vc(a,b,c){var d=Zc.get(b);switch(void 0===d?2:d){case 0:d=gd.bind(null,b,1,a);break;case 1:d=hd.bind(null,b,1,a);break;default:d=id.bind(null,b,1,a)}c?a.addEventListener(b,d,!0):a.addEventListener(b,d,!1)}function gd(a,b,c,d){Ja||Ha();var e=id,f=Ja;Ja=!0;try{Ga(e,a,b,c,d)}finally{(Ja=f)||La()}}function hd(a,b,c,d){ed(dd,id.bind(null,a,b,c,d))}\nfunction id(a,b,c,d){if(fd)if(0<Ac.length&&-1<Hc.indexOf(a))a=Kc(null,a,b,c,d),Ac.push(a);else{var e=Rc(a,b,c,d);if(null===e)Lc(a,d);else if(-1<Hc.indexOf(a))a=Kc(e,a,b,c,d),Ac.push(a);else if(!Oc(e,a,b,c,d)){Lc(a,d);a=rc(a,d,null,b);try{Ma(sc,a)}finally{qc(a)}}}}\nfunction Rc(a,b,c,d){c=nc(d);c=tc(c);if(null!==c){var e=dc(c);if(null===e)c=null;else{var f=e.tag;if(13===f){c=ec(e);if(null!==c)return c;c=null}else if(3===f){if(e.stateNode.hydrate)return 3===e.tag?e.stateNode.containerInfo:null;c=null}else e!==c&&(c=null)}}a=rc(a,d,c,b);try{Ma(sc,a)}finally{qc(a)}return null}\nvar jd={animationIterationCount:!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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},kd=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(jd).forEach(function(a){kd.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);jd[b]=jd[a]})});function ld(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||jd.hasOwnProperty(a)&&jd[a]?(\"\"+b).trim():b+\"px\"}\nfunction md(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=ld(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var nd=n({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 od(a,b){if(b){if(nd[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(u(137,a,\"\"));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(u(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(u(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(u(62,\"\"));}}\nfunction pd(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 qd=Mb.html;function rd(a,b){a=9===a.nodeType||11===a.nodeType?a:a.ownerDocument;var c=cc(a);b=wa[b];for(var d=0;d<b.length;d++)uc(b[d],a,c)}function sd(){}\nfunction td(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}}function ud(a){for(;a&&a.firstChild;)a=a.firstChild;return a}function vd(a,b){var c=ud(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();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=td(a.document)}return b}\nfunction yd(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)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0<b--;)Td(c[b],\"captured\",a);for(b=0;b<c.length;b++)Td(c[b],\"bubbled\",a)}}\nfunction Vd(a,b,c){a&&c&&c.dispatchConfig.registrationName&&(b=Sd(a,c.dispatchConfig.registrationName))&&(c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a))}function Wd(a){a&&a.dispatchConfig.registrationName&&Vd(a._targetInst,null,a)}function Xd(a){jc(a,Ud)}var Yd=null,Zd=null,$d=null;\nfunction ae(){if($d)return $d;var a,b=Zd,c=b.length,d,e=\"value\"in Yd?Yd.value:Yd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return $d=e.slice(a,1<d?1-d:void 0)}function be(){return!0}function ce(){return!1}\nfunction G(a,b,c,d){this.dispatchConfig=a;this._targetInst=b;this.nativeEvent=c;a=this.constructor.Interface;for(var e in a)a.hasOwnProperty(e)&&((b=a[e])?this[e]=b(c):\"target\"===e?this.target=d:this[e]=c[e]);this.isDefaultPrevented=(null!=c.defaultPrevented?c.defaultPrevented:!1===c.returnValue)?be:ce;this.isPropagationStopped=ce;return this}\nn(G.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&(a.returnValue=!1),this.isDefaultPrevented=be)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=be)},persist:function(){this.isPersistent=be},isPersistent:ce,destructor:function(){var a=this.constructor.Interface,\nb;for(b in a)this[b]=null;this.nativeEvent=this._targetInst=this.dispatchConfig=null;this.isPropagationStopped=this.isDefaultPrevented=ce;this._dispatchInstances=this._dispatchListeners=null}});G.Interface={type:null,target:null,currentTarget:function(){return null},eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};\nG.extend=function(a){function b(){}function c(){return d.apply(this,arguments)}var d=this;b.prototype=d.prototype;var e=new b;n(e,c.prototype);c.prototype=e;c.prototype.constructor=c;c.Interface=n({},d.Interface,a);c.extend=d.extend;de(c);return c};de(G);function ee(a,b,c,d){if(this.eventPool.length){var e=this.eventPool.pop();this.call(e,a,b,c,d);return e}return new this(a,b,c,d)}\nfunction fe(a){if(!(a instanceof this))throw Error(u(279));a.destructor();10>this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8<ke&&11>=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return me&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar ve={eventTypes:oe,extractEvents:function(a,b,c,d){var e;if(je)b:{switch(a){case \"compositionstart\":var f=oe.compositionStart;break b;case \"compositionend\":f=oe.compositionEnd;break b;case \"compositionupdate\":f=oe.compositionUpdate;break b}f=void 0}else se?qe(a,c)&&(f=oe.compositionEnd):\"keydown\"===a&&229===c.keyCode&&(f=oe.compositionStart);f?(me&&\"ko\"!==c.locale&&(se||f!==oe.compositionStart?f===oe.compositionEnd&&se&&(e=ae()):(Yd=d,Zd=\"value\"in Yd?Yd.value:Yd.textContent,se=!0)),f=ge.getPooled(f,\nb,c,d),e?f.data=e:(e=re(c),null!==e&&(f.data=e)),Xd(f),e=f):e=null;(a=le?te(a,c):ue(a,c))?(b=he.getPooled(oe.beforeInput,b,c,d),b.data=a,Xd(b)):b=null;return null===e?b:null===b?e:[e,b]}},we={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function xe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!we[a.type]:\"textarea\"===b?!0:!1}\nvar ye={change:{phasedRegistrationNames:{bubbled:\"onChange\",captured:\"onChangeCapture\"},dependencies:\"blur change click focus input keydown keyup selectionchange\".split(\" \")}};function ze(a,b,c){a=G.getPooled(ye.change,a,b,c);a.type=\"change\";Da(c);Xd(a);return a}var Ae=null,Be=null;function Ce(a){mc(a)}function De(a){var b=Pd(a);if(yb(b))return a}function Ee(a,b){if(\"change\"===a)return b}var Fe=!1;ya&&(Fe=oc(\"input\")&&(!document.documentMode||9<document.documentMode));\nfunction Ge(){Ae&&(Ae.detachEvent(\"onpropertychange\",He),Be=Ae=null)}function He(a){if(\"value\"===a.propertyName&&De(Be))if(a=ze(Be,a,nc(a)),Ja)mc(a);else{Ja=!0;try{Fa(Ce,a)}finally{Ja=!1,La()}}}function Ie(a,b,c){\"focus\"===a?(Ge(),Ae=b,Be=c,Ae.attachEvent(\"onpropertychange\",He)):\"blur\"===a&&Ge()}function Je(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return De(Be)}function Ke(a,b){if(\"click\"===a)return De(b)}function Le(a,b){if(\"input\"===a||\"change\"===a)return De(b)}\nvar Me={eventTypes:ye,_isInputEventSupported:Fe,extractEvents:function(a,b,c,d){var e=b?Pd(b):window,f=e.nodeName&&e.nodeName.toLowerCase();if(\"select\"===f||\"input\"===f&&\"file\"===e.type)var g=Ee;else if(xe(e))if(Fe)g=Le;else{g=Je;var h=Ie}else(f=e.nodeName)&&\"input\"===f.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)&&(g=Ke);if(g&&(g=g(a,b)))return ze(g,c,d);h&&h(a,e,b);\"blur\"===a&&(a=e._wrapperState)&&a.controlled&&\"number\"===e.type&&Db(e,\"number\",e.value)}},Ne=G.extend({view:null,detail:null}),\nOe={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pe(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Oe[a])?!!b[a]:!1}function Qe(){return Pe}\nvar Re=0,Se=0,Te=!1,Ue=!1,Ve=Ne.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:Qe,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=Re;Re=a.screenX;return Te?\"mousemove\"===a.type?a.screenX-b:0:(Te=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;\nvar b=Se;Se=a.screenY;return Ue?\"mousemove\"===a.type?a.screenY-b:0:(Ue=!0,0)}}),We=Ve.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),Xe={mouseEnter:{registrationName:\"onMouseEnter\",dependencies:[\"mouseout\",\"mouseover\"]},mouseLeave:{registrationName:\"onMouseLeave\",dependencies:[\"mouseout\",\"mouseover\"]},pointerEnter:{registrationName:\"onPointerEnter\",dependencies:[\"pointerout\",\"pointerover\"]},pointerLeave:{registrationName:\"onPointerLeave\",\ndependencies:[\"pointerout\",\"pointerover\"]}},Ye={eventTypes:Xe,extractEvents:function(a,b,c,d,e){var f=\"mouseover\"===a||\"pointerover\"===a,g=\"mouseout\"===a||\"pointerout\"===a;if(f&&0===(e&32)&&(c.relatedTarget||c.fromElement)||!g&&!f)return null;f=d.window===d?d:(f=d.ownerDocument)?f.defaultView||f.parentWindow:window;if(g){if(g=b,b=(b=c.relatedTarget||c.toElement)?tc(b):null,null!==b){var h=dc(b);if(b!==h||5!==b.tag&&6!==b.tag)b=null}}else g=null;if(g===b)return null;if(\"mouseout\"===a||\"mouseover\"===\na){var k=Ve;var l=Xe.mouseLeave;var m=Xe.mouseEnter;var p=\"mouse\"}else if(\"pointerout\"===a||\"pointerover\"===a)k=We,l=Xe.pointerLeave,m=Xe.pointerEnter,p=\"pointer\";a=null==g?f:Pd(g);f=null==b?f:Pd(b);l=k.getPooled(l,g,c,d);l.type=p+\"leave\";l.target=a;l.relatedTarget=f;c=k.getPooled(m,b,c,d);c.type=p+\"enter\";c.target=f;c.relatedTarget=a;d=g;p=b;if(d&&p)a:{k=d;m=p;g=0;for(a=k;a;a=Rd(a))g++;a=0;for(b=m;b;b=Rd(b))a++;for(;0<g-a;)k=Rd(k),g--;for(;0<a-g;)m=Rd(m),a--;for(;g--;){if(k===m||k===m.alternate)break a;\nk=Rd(k);m=Rd(m)}k=null}else k=null;m=k;for(k=[];d&&d!==m;){g=d.alternate;if(null!==g&&g===m)break;k.push(d);d=Rd(d)}for(d=[];p&&p!==m;){g=p.alternate;if(null!==g&&g===m)break;d.push(p);p=Rd(p)}for(p=0;p<k.length;p++)Vd(k[p],\"bubbled\",l);for(p=d.length;0<p--;)Vd(d[p],\"captured\",c);return 0===(e&64)?[l]:[l,c]}};function Ze(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var $e=\"function\"===typeof Object.is?Object.is:Ze,af=Object.prototype.hasOwnProperty;\nfunction bf(a,b){if($e(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!af.call(b,c[d])||!$e(a[c[d]],b[c[d]]))return!1;return!0}\nvar cf=ya&&\"documentMode\"in document&&11>=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;g<f.length;g++)if(!e.has(f[g])){e=!1;break a}e=!0}f=!e}if(f)return null;e=b?Pd(b):window;switch(a){case \"focus\":if(xe(e)||\"true\"===e.contentEditable)ef=e,ff=b,gf=null;break;case \"blur\":gf=ff=ef=null;break;case \"mousedown\":hf=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":return hf=!1,jf(c,d);case \"selectionchange\":if(cf)break;\ncase \"keydown\":case \"keyup\":return jf(c,d)}return null}},lf=G.extend({animationName:null,elapsedTime:null,pseudoElement:null}),mf=G.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),nf=Ne.extend({relatedTarget:null});function of(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar pf={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},qf={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},rf=Ne.extend({key:function(a){if(a.key){var b=pf[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=of(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?qf[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:Qe,charCode:function(a){return\"keypress\"===\na.type?of(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===a.type?of(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),sf=Ve.extend({dataTransfer:null}),tf=Ne.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:Qe}),uf=G.extend({propertyName:null,elapsedTime:null,pseudoElement:null}),vf=Ve.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in\na?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),wf={eventTypes:Wc,extractEvents:function(a,b,c,d){var e=Yc.get(a);if(!e)return null;switch(a){case \"keypress\":if(0===of(c))return null;case \"keydown\":case \"keyup\":a=rf;break;case \"blur\":case \"focus\":a=nf;break;case \"click\":if(2===c.button)return null;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":a=\nVe;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":a=sf;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":a=tf;break;case Xb:case Yb:case Zb:a=lf;break;case $b:a=uf;break;case \"scroll\":a=Ne;break;case \"wheel\":a=vf;break;case \"copy\":case \"cut\":case \"paste\":a=mf;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":a=\nWe;break;default:a=G}b=a.getPooled(e,b,c,d);Xd(b);return b}};if(pa)throw Error(u(101));pa=Array.prototype.slice.call(\"ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin\".split(\" \"));ra();var xf=Nc;la=Qd;ma=xf;na=Pd;xa({SimpleEventPlugin:wf,EnterLeaveEventPlugin:Ye,ChangeEventPlugin:Me,SelectEventPlugin:kf,BeforeInputEventPlugin:ve});var yf=[],zf=-1;function H(a){0>zf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;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}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});Wf=null}catch(c){throw null!==Wf&&(Wf=Wf.slice(a+1)),Jf(Of,gg),c;}finally{Yf=!1}}}function hg(a,b,c){c/=10;return 1073741821-(((1073741821-a+b/10)/c|0)+1)*c}function ig(a,b){if(a&&a.defaultProps){b=n({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c])}return b}var jg={current:null},kg=null,lg=null,mg=null;function ng(){mg=lg=kg=null}\nfunction og(a){var b=jg.current;H(jg);a.type._context._currentValue=b}function pg(a,b){for(;null!==a;){var c=a.alternate;if(a.childExpirationTime<b)a.childExpirationTime=b,null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);else if(null!==c&&c.childExpirationTime<b)c.childExpirationTime=b;else break;a=a.return}}function qg(a,b){kg=a;mg=lg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(a.expirationTime>=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(g<d){var ca={expirationTime:z.expirationTime,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null};null===x?(p=x=\nca,m=k):x=x.next=ca;g>l&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=e;e=c;if(\"function\"!==typeof d)throw Error(u(191,d));d.call(e)}}}var Dg=Wa.ReactCurrentBatchConfig,Eg=(new aa.Component).refs;function Fg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:n({},b,c);a.memoizedState=c;0===a.expirationTime&&(a.updateQueue.baseState=c)}\nvar Jg={isMounted:function(a){return(a=a._reactInternalFiber)?dc(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternalFiber;var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e=wg(d,e);e.tag=1;e.payload=b;void 0!==c&&null!==c&&(e.callback=c);xg(a,e);Ig(a,d)},enqueueForceUpdate:function(a,b){a=a._reactInternalFiber;var c=Gg(),d=Dg.suspense;\nc=Hg(c,a,d);d=wg(c,d);d.tag=2;void 0!==b&&null!==b&&(d.callback=b);xg(a,d);Ig(a,c)}};function Kg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!bf(c,d)||!bf(e,f):!0}\nfunction Lg(a,b,c){var d=!1,e=Af;var f=b.contextType;\"object\"===typeof f&&null!==f?f=sg(f):(e=L(b)?Bf:J.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Cf(a,e):Af);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Jg;a.stateNode=b;b._reactInternalFiber=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Mg(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Jg.enqueueReplaceState(b,b.state,null)}\nfunction Ng(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Eg;ug(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=sg(f):(f=L(b)?Bf:J.current,e.context=Cf(a,f));zg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Fg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Jg.enqueueReplaceState(e,e.state,null),zg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.effectTag|=4)}var Og=Array.isArray;\nfunction Pg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(u(309));var d=c.stateNode}if(!d)throw Error(u(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Eg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(u(284));if(!c._owner)throw Error(u(290,a));}return a}\nfunction Qg(a,b){if(\"textarea\"!==a.type)throw Error(u(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b,\"\"));}\nfunction Rg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.effectTag=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Sg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.effectTag=\n2,c):d;b.effectTag=2;return c}function g(b){a&&null===b.alternate&&(b.effectTag=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Tg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Pg(a,b,c),d.return=a,d;d=Ug(c.type,c.key,c.props,null,a.mode,d);d.ref=Pg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==\nc.implementation)return b=Vg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Wg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function p(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Tg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case Za:return c=Ug(b.type,b.key,b.props,null,a.mode,c),c.ref=Pg(a,null,b),c.return=a,c;case $a:return b=Vg(b,a.mode,c),b.return=a,b}if(Og(b)||\nnb(b))return b=Wg(b,a.mode,c,null),b.return=a,b;Qg(a,b)}return null}function x(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case Za:return c.key===e?c.type===ab?m(a,b,c.props.children,d,e):k(a,b,c,d):null;case $a:return c.key===e?l(a,b,c,d):null}if(Og(c)||nb(c))return null!==e?null:m(a,b,c,d,null);Qg(a,c)}return null}function z(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=\na.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case Za:return a=a.get(null===d.key?c:d.key)||null,d.type===ab?m(b,a,d.props.children,e,d.key):k(b,a,d,e);case $a:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Og(d)||nb(d))return a=a.get(c)||null,m(b,a,d,e,null);Qg(b,d)}return null}function ca(e,g,h,k){for(var l=null,t=null,m=g,y=g=0,A=null;null!==m&&y<h.length;y++){m.index>y?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;y<h.length;y++)m=p(e,h[y],k),null!==m&&(g=f(m,g,y),null===t?l=m:t.sibling=m,t=m);return l}for(m=d(e,m);y<h.length;y++)A=z(m,e,y,h[y],k),null!==A&&(a&&null!==A.alternate&&m.delete(null===A.key?y:A.key),g=f(A,g,y),null===t?l=A:t.sibling=A,t=A);a&&m.forEach(function(a){return b(e,a)});return l}function D(e,g,h,l){var k=nb(h);if(\"function\"!==typeof k)throw Error(u(150));h=k.call(h);\nif(null==h)throw Error(u(151));for(var m=k=null,t=g,y=g=0,A=null,q=h.next();null!==t&&!q.done;y++,q=h.next()){t.index>y?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(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===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))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}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!$e(a[c],b[c]))return!1;return!0}\nfunction oh(a,b,c,d,e,f){lh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.expirationTime=0;jh.current=null===a||null===a.memoizedState?ph:qh;a=c(d,e);if(b.expirationTime===lh){f=0;do{b.expirationTime=0;if(!(25>f))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(l<lh){var m={expirationTime:k.expirationTime,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null};null===h?(g=h=m,f=d):h=h.next=m;l>N.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97<d?97:d,function(){var d=kh.suspense;kh.suspense=void 0===b?null:b;try{a(!1),c()}finally{kh.suspense=d}})}\nfunction zh(a,b,c){var d=Gg(),e=Dg.suspense;d=Hg(d,a,e);e={expirationTime:d,suspenseConfig:e,action:c,eagerReducer:null,eagerState:null,next:null};var f=b.pending;null===f?e.next=e:(e.next=f.next,f.next=e);b.pending=e;f=a.alternate;if(a===N||null!==f&&f===N)mh=!0,e.expirationTime=lh,N.expirationTime=lh;else{if(0===a.expirationTime&&(null===f||0===f.expirationTime)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.eagerReducer=f;e.eagerState=h;if($e(h,g))return}catch(k){}finally{}Ig(a,\nd)}}\nvar sh={readContext:sg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},ph={readContext:sg,useCallback:Kh,useContext:sg,useEffect:Eh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Ch(4,2,Hh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Ch(4,2,a,b)},useMemo:function(a,b){var c=th();b=void 0===b?null:b;a=a();c.memoizedState=[a,\nb];return a},useReducer:function(a,b,c){var d=th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=zh.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=th();a={current:a};return b.memoizedState=a},useState:yh,useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=yh(a),d=c[0],e=c[1];Eh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=\nc}},[a,b]);return d},useTransition:function(a){var b=yh(!1),c=b[0];b=b[1];return[Kh(Nh.bind(null,b,a),[b,a]),c]}},qh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:wh,useRef:Bh,useState:function(){return wh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=wh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=\nwh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,b,a),[b,a]),c]}},rh={readContext:sg,useCallback:Lh,useContext:sg,useEffect:Fh,useImperativeHandle:Ih,useLayoutEffect:Gh,useMemo:Mh,useReducer:xh,useRef:Bh,useState:function(){return xh(vh)},useDebugValue:Jh,useResponder:ih,useDeferredValue:function(a,b){var c=xh(vh),d=c[0],e=c[1];Fh(function(){var c=kh.suspense;kh.suspense=void 0===b?null:b;try{e(a)}finally{kh.suspense=c}},[a,b]);return d},useTransition:function(a){var b=xh(vh),c=b[0];b=b[1];return[Lh(Nh.bind(null,\nb,a),[b,a]),c]}},Oh=null,Ph=null,Qh=!1;function Rh(a,b){var c=Sh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction Th(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction Uh(a){if(Qh){var b=Ph;if(b){var c=b;if(!Th(a,b)){b=Jd(c.nextSibling);if(!b||!Th(a,b)){a.effectTag=a.effectTag&-1025|2;Qh=!1;Oh=a;return}Rh(Oh,c)}Oh=a;Ph=Jd(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,Qh=!1,Oh=a}}function Vh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;Oh=a}\nfunction Wh(a){if(a!==Oh)return!1;if(!Qh)return Vh(a),Qh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!Gd(b,a.memoizedProps))for(b=Ph;b;)Rh(a,b),b=Jd(b.nextSibling);Vh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===Ad){if(0===b){Ph=Jd(a.nextSibling);break a}b--}else c!==zd&&c!==Cd&&c!==Bd||b++}a=a.nextSibling}Ph=null}}else Ph=Oh?Jd(a.stateNode.nextSibling):null;return!0}\nfunction Xh(){Ph=Oh=null;Qh=!1}var Yh=Wa.ReactCurrentOwner,rg=!1;function R(a,b,c,d){b.child=null===a?Yg(b,null,c,d):Xg(b,a.child,c,d)}function Zh(a,b,c,d,e){c=c.render;var f=b.ref;qg(b,e);d=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction ai(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!bi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ci(a,b,g,d,e,f);a=Ug(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(e<f&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:bf,c(e,d)&&a.ref===b.ref))return $h(a,b,f);b.effectTag|=1;a=Sg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ci(a,b,c,d,e,f){return null!==a&&bf(a.memoizedProps,d)&&a.ref===b.ref&&(rg=!1,e<f)?(b.expirationTime=a.expirationTime,$h(a,b,f)):di(a,b,c,d,f)}function ei(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.effectTag|=128}function di(a,b,c,d,e){var f=L(c)?Bf:J.current;f=Cf(b,f);qg(b,e);c=oh(a,b,c,d,f,e);if(null!==a&&!rg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),$h(a,b,e);b.effectTag|=1;R(a,b,c,e);return b.child}\nfunction fi(a,b,c,d,e){if(L(c)){var f=!0;Gf(b)}else f=!1;qg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),Lg(b,c,d),Ng(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l));var m=c.getDerivedStateFromProps,p=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;p||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l);tg=!1;var x=b.memoizedState;g.state=x;zg(b,d,g,e);k=b.memoizedState;h!==d||x!==k||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),k=b.memoizedState),(h=tg||Kg(b,c,h,d,x,k,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.effectTag|=4)):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.effectTag|=4),d=!1)}else g=b.stateNode,vg(a,b),h=b.memoizedProps,g.props=b.type===b.elementType?h:ig(b.type,h),k=g.context,l=c.contextType,\"object\"===typeof l&&null!==l?l=sg(l):(l=L(c)?Bf:J.current,l=Cf(b,l)),m=c.getDerivedStateFromProps,(p=\"function\"===typeof m||\"function\"===\ntypeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Mg(b,g,d,l),tg=!1,k=b.memoizedState,g.state=k,zg(b,d,g,e),x=b.memoizedState,h!==d||k!==x||K.current||tg?(\"function\"===typeof m&&(Fg(b,c,m,d),x=b.memoizedState),(m=tg||Kg(b,c,h,d,k,x,l))?(p||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,l),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,l)),\"function\"===typeof g.componentDidUpdate&&(b.effectTag|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.effectTag|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=l,d=m):\n(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&k===a.memoizedState||(b.effectTag|=256),d=!1);return gi(a,b,c,d,f,e)}\nfunction gi(a,b,c,d,e,f){ei(a,b);var g=0!==(b.effectTag&64);if(!d&&!g)return e&&Hf(b,c,!1),$h(a,b,f);d=b.stateNode;Yh.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.effectTag|=1;null!==a&&g?(b.child=Xg(b,a.child,null,f),b.child=Xg(b,null,h,f)):R(a,b,h,f);b.memoizedState=d.state;e&&Hf(b,c,!0);return b.child}function hi(a){var b=a.stateNode;b.pendingContext?Ef(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Ef(a,b.context,!1);dh(a,b.containerInfo)}\nvar ii={dehydrated:null,retryTime:0};\nfunction ji(a,b,c){var d=b.mode,e=b.pendingProps,f=M.current,g=!1,h;(h=0!==(b.effectTag&64))||(h=0!==(f&2)&&(null===a||null!==a.memoizedState));h?(g=!0,b.effectTag&=-65):null!==a&&null===a.memoizedState||void 0===e.fallback||!0===e.unstable_avoidThisFallback||(f|=1);I(M,f&1);if(null===a){void 0!==e.fallback&&Uh(b);if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=\nb;e.sibling=c;b.memoizedState=ii;b.child=e;return c}d=e.children;b.memoizedState=null;return b.child=Yg(b,null,d,c)}if(null!==a.memoizedState){a=a.child;d=a.sibling;if(g){e=e.fallback;c=Sg(a,a.pendingProps);c.return=b;if(0===(b.mode&2)&&(g=null!==b.memoizedState?b.child.child:b.child,g!==a.child))for(c.child=g;null!==g;)g.return=c,g=g.sibling;d=Sg(d,e);d.return=b;c.sibling=d;c.childExpirationTime=0;b.memoizedState=ii;b.child=c;return d}c=Xg(b,a.child,e.children,c);b.memoizedState=null;return b.child=\nc}a=a.child;if(g){g=e.fallback;e=Wg(null,d,0,null);e.return=b;e.child=a;null!==a&&(a.return=e);if(0===(b.mode&2))for(a=null!==b.memoizedState?b.child.child:b.child,e.child=a;null!==a;)a.return=e,a=a.sibling;c=Wg(g,d,c,null);c.return=b;e.sibling=c;c.effectTag|=2;e.childExpirationTime=0;b.memoizedState=ii;b.child=e;return c}b.memoizedState=null;return b.child=Xg(b,a,e.children,c)}\nfunction ki(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);pg(a.return,b)}function li(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailExpiration:0,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailExpiration=0,g.tailMode=e,g.lastEffect=f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;R(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.effectTag|=64;else{if(null!==a&&0!==(a.effectTag&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&ki(a,c);else if(19===a.tag)ki(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(M,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===hh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);li(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===hh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}li(b,!0,c,null,f,b.lastEffect);break;case \"together\":li(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction $h(a,b,c){null!==a&&(b.dependencies=a.dependencies);var d=b.expirationTime;0!==d&&Bg(d);if(b.childExpirationTime<c)return null;if(null!==a&&b.child!==a.child)throw Error(u(153));if(null!==b.child){a=b.child;c=Sg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Sg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}var ni,oi,pi,qi;\nni=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};oi=function(){};\npi=function(a,b,c,d,e){var f=a.memoizedProps;if(f!==d){var g=b.stateNode;ch($g.current);a=null;switch(c){case \"input\":f=zb(g,f);d=zb(g,d);a=[];break;case \"option\":f=Gb(g,f);d=Gb(g,d);a=[];break;case \"select\":f=n({},f,{value:void 0});d=n({},d,{value:void 0});a=[];break;case \"textarea\":f=Ib(g,f);d=Ib(g,d);a=[];break;default:\"function\"!==typeof f.onClick&&\"function\"===typeof d.onClick&&(g.onclick=sd)}od(c,d);var h,k;c=null;for(h in f)if(!d.hasOwnProperty(h)&&f.hasOwnProperty(h)&&null!=f[h])if(\"style\"===\nh)for(k in g=f[h],g)g.hasOwnProperty(k)&&(c||(c={}),c[k]=\"\");else\"dangerouslySetInnerHTML\"!==h&&\"children\"!==h&&\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&\"autoFocus\"!==h&&(va.hasOwnProperty(h)?a||(a=[]):(a=a||[]).push(h,null));for(h in d){var l=d[h];g=null!=f?f[h]:void 0;if(d.hasOwnProperty(h)&&l!==g&&(null!=l||null!=g))if(\"style\"===h)if(g){for(k in g)!g.hasOwnProperty(k)||l&&l.hasOwnProperty(k)||(c||(c={}),c[k]=\"\");for(k in l)l.hasOwnProperty(k)&&g[k]!==l[k]&&(c||(c={}),\nc[k]=l[k])}else c||(a||(a=[]),a.push(h,c)),c=l;else\"dangerouslySetInnerHTML\"===h?(l=l?l.__html:void 0,g=g?g.__html:void 0,null!=l&&g!==l&&(a=a||[]).push(h,l)):\"children\"===h?g===l||\"string\"!==typeof l&&\"number\"!==typeof l||(a=a||[]).push(h,\"\"+l):\"suppressContentEditableWarning\"!==h&&\"suppressHydrationWarning\"!==h&&(va.hasOwnProperty(h)?(null!=l&&rd(e,h),a||g===l||(a=[])):(a=a||[]).push(h,l))}c&&(a=a||[]).push(\"style\",c);e=a;if(b.updateQueue=e)b.effectTag|=4}};\nqi=function(a,b,c,d){c!==d&&(b.effectTag|=4)};function ri(a,b){switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction si(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return L(b.type)&&Df(),null;case 3:return eh(),H(K),H(J),c=b.stateNode,c.pendingContext&&(c.context=c.pendingContext,c.pendingContext=null),null!==a&&null!==a.child||!Wh(b)||(b.effectTag|=4),oi(b),null;case 5:gh(b);c=ch(bh.current);var e=b.type;if(null!==a&&null!=b.stateNode)pi(a,b,e,d,c),a.ref!==b.ref&&(b.effectTag|=128);else{if(!d){if(null===b.stateNode)throw Error(u(166));\nreturn null}a=ch($g.current);if(Wh(b)){d=b.stateNode;e=b.type;var f=b.memoizedProps;d[Md]=b;d[Nd]=f;switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<ac.length;a++)F(ac[a],d);break;case \"source\":F(\"error\",d);break;case \"img\":case \"image\":case \"link\":F(\"error\",d);F(\"load\",d);break;case \"form\":F(\"reset\",d);F(\"submit\",d);break;case \"details\":F(\"toggle\",d);break;case \"input\":Ab(d,f);F(\"invalid\",d);rd(c,\"onChange\");break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};F(\"invalid\",d);rd(c,\"onChange\");break;case \"textarea\":Jb(d,f),F(\"invalid\",d),rd(c,\"onChange\")}od(e,f);a=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(a=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(a=[\"children\",\"\"+h]):va.hasOwnProperty(g)&&null!=h&&rd(c,g)}switch(e){case \"input\":xb(d);Eb(d,f,!0);break;case \"textarea\":xb(d);Lb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&\n(d.onclick=sd)}c=a;b.updateQueue=c;null!==c&&(b.effectTag|=4)}else{g=9===c.nodeType?c:c.ownerDocument;a===qd&&(a=Nb(e));a===qd?\"script\"===e?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;h<ac.length;h++)F(ac[h],a);h=d;break;case \"source\":F(\"error\",a);h=d;break;case \"img\":case \"image\":case \"link\":F(\"error\",a);F(\"load\",a);h=d;break;case \"form\":F(\"reset\",a);F(\"submit\",a);h=d;break;case \"details\":F(\"toggle\",a);h=d;break;case \"input\":Ab(a,d);h=zb(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;case \"option\":h=Gb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};h=n({},d,{value:void 0});F(\"invalid\",a);rd(c,\"onChange\");break;case \"textarea\":Jb(a,\nd);h=Ib(a,d);F(\"invalid\",a);rd(c,\"onChange\");break;default:h=d}od(e,h);var k=h;for(f in k)if(k.hasOwnProperty(f)){var l=k[f];\"style\"===f?md(a,l):\"dangerouslySetInnerHTML\"===f?(l=l?l.__html:void 0,null!=l&&Qb(a,l)):\"children\"===f?\"string\"===typeof l?(\"textarea\"!==e||\"\"!==l)&&Rb(a,l):\"number\"===typeof l&&Rb(a,\"\"+l):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(va.hasOwnProperty(f)?null!=l&&rd(c,f):null!=l&&Xa(a,f,l,g))}switch(e){case \"input\":xb(a);Eb(a,d,!1);\nbreak;case \"textarea\":xb(a);Lb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+rb(d.value));break;case \"select\":a.multiple=!!d.multiple;c=d.value;null!=c?Hb(a,!!d.multiple,c,!1):null!=d.defaultValue&&Hb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof h.onClick&&(a.onclick=sd)}Fd(e,d)&&(b.effectTag|=4)}null!==b.ref&&(b.effectTag|=128)}return null;case 6:if(a&&null!=b.stateNode)qi(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(u(166));\nc=ch(bh.current);ch($g.current);Wh(b)?(c=b.stateNode,d=b.memoizedProps,c[Md]=b,c.nodeValue!==d&&(b.effectTag|=4)):(c=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),c[Md]=b,b.stateNode=c)}return null;case 13:H(M);d=b.memoizedState;if(0!==(b.effectTag&64))return b.expirationTime=c,b;c=null!==d;d=!1;null===a?void 0!==b.memoizedProps.fallback&&Wh(b):(e=a.memoizedState,d=null!==e,c||null===e||(e=a.child.sibling,null!==e&&(f=b.firstEffect,null!==f?(b.firstEffect=e,e.nextEffect=f):(b.firstEffect=b.lastEffect=\ne,e.nextEffect=null),e.effectTag=8)));if(c&&!d&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(M.current&1))S===ti&&(S=ui);else{if(S===ti||S===ui)S=vi;0!==wi&&null!==T&&(xi(T,U),yi(T,wi))}if(c||d)b.effectTag|=4;return null;case 4:return eh(),oi(b),null;case 10:return og(b),null;case 17:return L(b.type)&&Df(),null;case 19:H(M);d=b.memoizedState;if(null===d)return null;e=0!==(b.effectTag&64);f=d.rendering;if(null===f)if(e)ri(d,!1);else{if(S!==ti||null!==a&&0!==(a.effectTag&\n64))for(f=b.child;null!==f;){a=hh(f);if(null!==a){b.effectTag|=64;ri(d,!1);e=a.updateQueue;null!==e&&(b.updateQueue=e,b.effectTag|=4);null===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;for(d=b.child;null!==d;)e=d,f=c,e.effectTag&=2,e.nextEffect=null,e.firstEffect=null,e.lastEffect=null,a=e.alternate,null===a?(e.childExpirationTime=0,e.expirationTime=f,e.child=null,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null):(e.childExpirationTime=a.childExpirationTime,\ne.expirationTime=a.expirationTime,e.child=a.child,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,f=a.dependencies,e.dependencies=null===f?null:{expirationTime:f.expirationTime,firstContext:f.firstContext,responders:f.responders}),d=d.sibling;I(M,M.current&1|2);return b.child}f=f.sibling}}else{if(!e)if(a=hh(f),null!==a){if(b.effectTag|=64,e=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.effectTag|=4),ri(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!f.alternate)return b=\nb.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*$f()-d.renderingStartTime>d.tailExpiration&&1<c&&(b.effectTag|=64,e=!0,ri(d,!1),b.expirationTime=b.childExpirationTime=c-1);d.isBackwards?(f.sibling=b.child,b.child=f):(c=d.last,null!==c?c.sibling=f:b.child=f,d.last=f)}return null!==d.tail?(0===d.tailExpiration&&(d.tailExpiration=$f()+500),c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=$f(),c.sibling=null,b=M.current,I(M,e?b&1|2:b&1),c):null}throw Error(u(156,\nb.tag));}function zi(a){switch(a.tag){case 1:L(a.type)&&Df();var b=a.effectTag;return b&4096?(a.effectTag=b&-4097|64,a):null;case 3:eh();H(K);H(J);b=a.effectTag;if(0!==(b&64))throw Error(u(285));a.effectTag=b&-4097|64;return a;case 5:return gh(a),null;case 13:return H(M),b=a.effectTag,b&4096?(a.effectTag=b&-4097|64,a):null;case 19:return H(M),null;case 4:return eh(),null;case 10:return og(a),null;default:return null}}function Ai(a,b){return{value:a,source:b,stack:qb(b)}}\nvar Bi=\"function\"===typeof WeakSet?WeakSet:Set;function Ci(a,b){var c=b.source,d=b.stack;null===d&&null!==c&&(d=qb(c));null!==c&&pb(c.type);b=b.value;null!==a&&1===a.tag&&pb(a.type);try{console.error(b)}catch(e){setTimeout(function(){throw e;})}}function Di(a,b){try{b.props=a.memoizedProps,b.state=a.memoizedState,b.componentWillUnmount()}catch(c){Ei(a,c)}}function Fi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Ei(a,c)}else b.current=null}\nfunction Gi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.effectTag&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:ig(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:case 5:case 6:case 4:case 17:return}throw Error(u(163));}\nfunction Hi(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.destroy;c.destroy=void 0;void 0!==d&&d()}c=c.next}while(c!==b)}}function Ii(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)}}\nfunction Ji(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:Ii(3,c);return;case 1:a=c.stateNode;if(c.effectTag&4)if(null===b)a.componentDidMount();else{var d=c.elementType===c.type?b.memoizedProps:ig(c.type,b.memoizedProps);a.componentDidUpdate(d,b.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}b=c.updateQueue;null!==b&&Cg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Cg(c,b,a)}return;\ncase 5:a=c.stateNode;null===b&&c.effectTag&4&&Fd(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Vc(c))));return;case 19:case 17:case 20:case 21:return}throw Error(u(163));}\nfunction Ki(a,b,c){\"function\"===typeof Li&&Li(b);switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var d=a.next;cg(97<c?97:c,function(){var a=d;do{var c=a.destroy;if(void 0!==c){var g=b;try{c()}catch(h){Ei(g,h)}}a=a.next}while(a!==d)})}break;case 1:Fi(b);c=b.stateNode;\"function\"===typeof c.componentWillUnmount&&Di(b,c);break;case 5:Fi(b);break;case 4:Mi(a,b,c)}}\nfunction Ni(a){var b=a.alternate;a.return=null;a.child=null;a.memoizedState=null;a.updateQueue=null;a.dependencies=null;a.alternate=null;a.firstEffect=null;a.lastEffect=null;a.pendingProps=null;a.memoizedProps=null;a.stateNode=null;null!==b&&Ni(b)}function Oi(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Pi(a){a:{for(var b=a.return;null!==b;){if(Oi(b)){var c=b;break a}b=b.return}throw Error(u(160));}b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(u(161));}c.effectTag&16&&(Rb(b,\"\"),c.effectTag&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||Oi(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.effectTag&2)continue b;\nif(null===c.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.effectTag&2)){c=c.stateNode;break a}}d?Qi(a,c,b):Ri(a,c,b)}\nfunction Qi(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=sd));else if(4!==d&&(a=a.child,null!==a))for(Qi(a,b,c),a=a.sibling;null!==a;)Qi(a,b,c),a=a.sibling}\nfunction Ri(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Ri(a,b,c),a=a.sibling;null!==a;)Ri(a,b,c),a=a.sibling}\nfunction Mi(a,b,c){for(var d=b,e=!1,f,g;;){if(!e){e=d.return;a:for(;;){if(null===e)throw Error(u(160));f=e.stateNode;switch(e.tag){case 5:g=!1;break a;case 3:f=f.containerInfo;g=!0;break a;case 4:f=f.containerInfo;g=!0;break a}e=e.return}e=!0}if(5===d.tag||6===d.tag){a:for(var h=a,k=d,l=c,m=k;;)if(Ki(h,m,l),null!==m.child&&4!==m.tag)m.child.return=m,m=m.child;else{if(m===k)break a;for(;null===m.sibling;){if(null===m.return||m.return===k)break a;m=m.return}m.sibling.return=m.return;m=m.sibling}g?(h=\nf,k=d.stateNode,8===h.nodeType?h.parentNode.removeChild(k):h.removeChild(k)):f.removeChild(d.stateNode)}else if(4===d.tag){if(null!==d.child){f=d.stateNode.containerInfo;g=!0;d.child.return=d;d=d.child;continue}}else if(Ki(a,d,c),null!==d.child){d.child.return=d;d=d.child;continue}if(d===b)break;for(;null===d.sibling;){if(null===d.return||d.return===b)return;d=d.return;4===d.tag&&(e=!1)}d.sibling.return=d.return;d=d.sibling}}\nfunction Si(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:Hi(3,b);return;case 1:return;case 5:var c=b.stateNode;if(null!=c){var d=b.memoizedProps,e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[Nd]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&Bb(c,d);pd(a,e);b=pd(a,d);for(e=0;e<f.length;e+=2){var g=f[e],h=f[e+1];\"style\"===g?md(c,h):\"dangerouslySetInnerHTML\"===g?Qb(c,h):\"children\"===g?Rb(c,h):Xa(c,g,h,b)}switch(a){case \"input\":Cb(c,d);break;\ncase \"textarea\":Kb(c,d);break;case \"select\":b=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,a=d.value,null!=a?Hb(c,!!d.multiple,a,!1):b!==!!d.multiple&&(null!=d.defaultValue?Hb(c,!!d.multiple,d.defaultValue,!0):Hb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(u(162));b.stateNode.nodeValue=b.memoizedProps;return;case 3:b=b.stateNode;b.hydrate&&(b.hydrate=!1,Vc(b.containerInfo));return;case 12:return;case 13:c=b;null===b.memoizedState?\nd=!1:(d=!0,c=b.child,Ti=$f());if(null!==c)a:for(a=c;;){if(5===a.tag)f=a.stateNode,d?(f=f.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(f=a.stateNode,e=a.memoizedProps.style,e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null,f.style.display=ld(\"display\",e));else if(6===a.tag)a.stateNode.nodeValue=d?\"\":a.memoizedProps;else if(13===a.tag&&null!==a.memoizedState&&null===a.memoizedState.dehydrated){f=a.child.sibling;f.return=a;a=\nf;continue}else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===c)break;for(;null===a.sibling;){if(null===a.return||a.return===c)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}Ui(b);return;case 19:Ui(b);return;case 17:return}throw Error(u(163));}function Ui(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Bi);b.forEach(function(b){var d=Vi.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nvar Wi=\"function\"===typeof WeakMap?WeakMap:Map;function Xi(a,b,c){c=wg(c,null);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Yi||(Yi=!0,Zi=d);Ci(a,b)};return c}\nfunction $i(a,b,c){c=wg(c,null);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ci(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===aj?aj=new Set([this]):aj.add(this),Ci(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nvar bj=Math.ceil,cj=Wa.ReactCurrentDispatcher,dj=Wa.ReactCurrentOwner,V=0,ej=8,fj=16,gj=32,ti=0,hj=1,ij=2,ui=3,vi=4,jj=5,W=V,T=null,X=null,U=0,S=ti,kj=null,lj=1073741823,mj=1073741823,nj=null,wi=0,oj=!1,Ti=0,pj=500,Y=null,Yi=!1,Zi=null,aj=null,qj=!1,rj=null,sj=90,tj=null,uj=0,vj=null,wj=0;function Gg(){return(W&(fj|gj))!==V?1073741821-($f()/10|0):0!==wj?wj:wj=1073741821-($f()/10|0)}\nfunction Hg(a,b,c){b=b.mode;if(0===(b&2))return 1073741823;var d=ag();if(0===(b&4))return 99===d?1073741823:1073741822;if((W&fj)!==V)return U;if(null!==c)a=hg(a,c.timeoutMs|0||5E3,250);else switch(d){case 99:a=1073741823;break;case 98:a=hg(a,150,100);break;case 97:case 96:a=hg(a,5E3,250);break;case 95:a=2;break;default:throw Error(u(326));}null!==T&&a===U&&--a;return a}\nfunction Ig(a,b){if(50<uj)throw uj=0,vj=null,Error(u(185));a=xj(a,b);if(null!==a){var c=ag();1073741823===b?(W&ej)!==V&&(W&(fj|gj))===V?yj(a):(Z(a),W===V&&gg()):Z(a);(W&4)===V||98!==c&&99!==c||(null===tj?tj=new Map([[a,b]]):(c=tj.get(a),(void 0===c||c>b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTime<b&&(a.expirationTime=b);var c=a.alternate;null!==c&&c.expirationTime<b&&(c.expirationTime=b);var d=a.return,e=null;if(null===d&&3===a.tag)e=a.stateNode;else for(;null!==d;){c=d.alternate;d.childExpirationTime<b&&(d.childExpirationTime=b);null!==c&&c.childExpirationTime<b&&(c.childExpirationTime=b);if(null===d.return&&3===d.tag){e=d.stateNode;break}d=d.return}null!==e&&(T===e&&(Bg(b),S===vi&&xi(e,U)),yi(e,b));return e}\nfunction zj(a){var b=a.lastExpiredTime;if(0!==b)return b;b=a.firstPendingTime;if(!Aj(a,b))return b;var c=a.lastPingedTime;a=a.nextKnownPendingLevel;a=c>a?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2<c?2:c);break;case ui:xi(a,c);d=a.lastSuspendedTime;\nc===d&&(a.nextKnownPendingLevel=Ij(e));if(1073741823===lj&&(e=Ti+pj-$f(),10<e)){if(oj){var f=a.lastPingedTime;if(0===f||f>=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c<d&&(d=c));if(10<d){a.timeoutHandle=Hd(Jj.bind(null,a),d);break}Jj(a);break;case jj:if(1073741823!==lj&&null!==nj){f=lj;var g=nj;d=g.busyMinDurationMs|0;0>=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10<d){xi(a,c);a.timeoutHandle=\nHd(Jj.bind(null,a),d);break}}Jj(a);break;default:throw Error(u(329));}Z(a);if(a.callbackNode===b)return Bj.bind(null,a)}}return null}\nfunction yj(a){var b=a.lastExpiredTime;b=0!==b?b:1073741823;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&b===U||Ej(a,b);if(null!==X){var c=W;W|=fj;var d=Fj();do try{Kj();break}catch(e){Hj(a,e)}while(1);ng();W=c;cj.current=d;if(S===hj)throw c=kj,Ej(a,b),xi(a,b),Z(a),c;if(null!==X)throw Error(u(261));a.finishedWork=a.current.alternate;a.finishedExpirationTime=b;T=null;Jj(a);Z(a)}return null}function Lj(){if(null!==tj){var a=tj;tj=null;a.forEach(function(a,c){Cj(c,a);Z(c)});gg()}}\nfunction Mj(a,b){var c=W;W|=1;try{return a(b)}finally{W=c,W===V&&gg()}}function Nj(a,b){var c=W;W&=-2;W|=ej;try{return a(b)}finally{W=c,W===V&&gg()}}\nfunction Ej(a,b){a.finishedWork=null;a.finishedExpirationTime=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Id(c));if(null!==X)for(c=X.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Df();break;case 3:eh();H(K);H(J);break;case 5:gh(d);break;case 4:eh();break;case 13:H(M);break;case 19:H(M);break;case 10:og(d)}c=c.return}T=a;X=Sg(a.current,null);U=b;S=ti;kj=null;mj=lj=1073741823;nj=null;wi=0;oj=!1}\nfunction Hj(a,b){do{try{ng();jh.current=sh;if(mh)for(var c=N.memoizedState;null!==c;){var d=c.queue;null!==d&&(d.pending=null);c=c.next}lh=0;P=O=N=null;mh=!1;if(null===X||null===X.return)return S=hj,kj=b,X=null;a:{var e=a,f=X.return,g=X,h=b;b=U;g.effectTag|=2048;g.firstEffect=g.lastEffect=null;if(null!==h&&\"object\"===typeof h&&\"function\"===typeof h.then){var k=h;if(0===(g.mode&2)){var l=g.alternate;l?(g.updateQueue=l.updateQueue,g.memoizedState=l.memoizedState,g.expirationTime=l.expirationTime):(g.updateQueue=\nnull,g.memoizedState=null)}var m=0!==(M.current&1),p=f;do{var x;if(x=13===p.tag){var z=p.memoizedState;if(null!==z)x=null!==z.dehydrated?!0:!1;else{var ca=p.memoizedProps;x=void 0===ca.fallback?!1:!0!==ca.unstable_avoidThisFallback?!0:m?!1:!0}}if(x){var D=p.updateQueue;if(null===D){var t=new Set;t.add(k);p.updateQueue=t}else D.add(k);if(0===(p.mode&2)){p.effectTag|=64;g.effectTag&=-2981;if(1===g.tag)if(null===g.alternate)g.tag=17;else{var y=wg(1073741823,null);y.tag=2;xg(g,y)}g.expirationTime=1073741823;\nbreak a}h=void 0;g=b;var A=e.pingCache;null===A?(A=e.pingCache=new Wi,h=new Set,A.set(k,h)):(h=A.get(k),void 0===h&&(h=new Set,A.set(k,h)));if(!h.has(g)){h.add(g);var q=Oj.bind(null,e,k,g);k.then(q,q)}p.effectTag|=4096;p.expirationTime=b;break a}p=p.return}while(null!==p);h=Error((pb(g.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){a<lj&&2<a&&(lj=a);null!==b&&a<mj&&2<a&&(mj=a,nj=b)}function Bg(a){a>wi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1<X.effectTag&&(null!==\na.lastEffect?a.lastEffect.nextEffect=X:a.firstEffect=X,a.lastEffect=X))}else{b=zi(X);if(null!==b)return b.effectTag&=2047,b;null!==a&&(a.firstEffect=a.lastEffect=null,a.effectTag|=2048)}b=X.sibling;if(null!==b)return b;X=a}while(null!==X);S===ti&&(S=jj);return null}function Ij(a){var b=a.expirationTime;a=a.childExpirationTime;return b>a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1<c.effectTag?null!==c.lastEffect?(c.lastEffect.nextEffect=c,e=c.firstEffect):e=c:e=c.firstEffect;if(null!==e){var f=W;W|=gj;dj.current=null;Dd=fd;var g=xd();if(yd(g)){if(\"selectionStart\"in g)var h={start:g.selectionStart,end:g.selectionEnd};else a:{h=(h=g.ownerDocument)&&h.defaultView||window;var k=h.getSelection&&h.getSelection();if(k&&0!==k.rangeCount){h=k.anchorNode;var l=k.anchorOffset,\nm=k.focusNode;k=k.focusOffset;try{h.nodeType,m.nodeType}catch(wb){h=null;break a}var p=0,x=-1,z=-1,ca=0,D=0,t=g,y=null;b:for(;;){for(var A;;){t!==h||0!==l&&3!==t.nodeType||(x=p+l);t!==m||0!==k&&3!==t.nodeType||(z=p+k);3===t.nodeType&&(p+=t.nodeValue.length);if(null===(A=t.firstChild))break;y=t;t=A}for(;;){if(t===g)break b;y===h&&++ca===l&&(x=p);y===m&&++D===k&&(z=p);if(null!==(A=t.nextSibling))break;t=y;y=t.parentNode}t=A}h=-1===x||-1===z?null:{start:x,end:z}}else h=null}h=h||{start:0,end:0}}else h=\nnull;Ed={activeElementDetached:null,focusedElem:g,selectionRange:h};fd=!1;Y=e;do try{Tj()}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=e;do try{for(g=a,h=b;null!==Y;){var q=Y.effectTag;q&16&&Rb(Y.stateNode,\"\");if(q&128){var B=Y.alternate;if(null!==B){var w=B.ref;null!==w&&(\"function\"===typeof w?w(null):w.current=null)}}switch(q&1038){case 2:Pi(Y);Y.effectTag&=-3;break;case 6:Pi(Y);Y.effectTag&=-3;Si(Y.alternate,Y);break;case 1024:Y.effectTag&=-1025;break;case 1028:Y.effectTag&=\n-1025;Si(Y.alternate,Y);break;case 4:Si(Y.alternate,Y);break;case 8:l=Y,Mi(g,l,h),Ni(l)}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);w=Ed;B=xd();q=w.focusedElem;h=w.selectionRange;if(B!==q&&q&&q.ownerDocument&&wd(q.ownerDocument.documentElement,q)){null!==h&&yd(q)&&(B=h.start,w=h.end,void 0===w&&(w=B),\"selectionStart\"in q?(q.selectionStart=B,q.selectionEnd=Math.min(w,q.value.length)):(w=(B=q.ownerDocument||document)&&B.defaultView||window,w.getSelection&&\n(w=w.getSelection(),l=q.textContent.length,g=Math.min(h.start,l),h=void 0===h.end?g:Math.min(h.end,l),!w.extend&&g>h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q<B.length;q++)w=B[q],w.element.scrollLeft=w.left,w.element.scrollTop=w.top}fd=!!Dd;Ed=Dd=null;a.current=c;Y=e;do try{for(q=a;null!==Y;){var ub=Y.effectTag;ub&36&&Ji(q,Y.alternate,Y);if(ub&128){B=void 0;var vb=Y.ref;if(null!==vb){var Xc=Y.stateNode;switch(Y.tag){case 5:B=Xc;break;default:B=Xc}\"function\"===typeof vb?vb(B):vb.current=B}}Y=Y.nextEffect}}catch(wb){if(null===Y)throw Error(u(330));Ei(Y,wb);Y=Y.nextEffect}while(null!==Y);Y=\nnull;Vf();W=f}else a.current=c;if(qj)qj=!1,rj=a,sj=b;else for(Y=e;null!==Y;)b=Y.nextEffect,Y.nextEffect=null,Y=b;b=a.firstPendingTime;0===b&&(aj=null);1073741823===b?a===vj?uj++:(uj=0,vj=a):uj=0;\"function\"===typeof Uj&&Uj(c.stateNode,d);Z(a);if(Yi)throw Yi=!1,a=Zi,Zi=null,a;if((W&ej)!==V)return null;gg();return null}function Tj(){for(;null!==Y;){var a=Y.effectTag;0!==(a&256)&&Gi(Y.alternate,Y);0===(a&512)||qj||(qj=!0,dg(97,function(){Dj();return null}));Y=Y.nextEffect}}\nfunction Dj(){if(90!==sj){var a=97<sj?97:sj;sj=90;return cg(a,Vj)}}function Vj(){if(null===rj)return!1;var a=rj;rj=null;if((W&(fj|gj))!==V)throw Error(u(331));var b=W;W|=gj;for(a=a.current.firstEffect;null!==a;){try{var c=a;if(0!==(c.effectTag&512))switch(c.tag){case 0:case 11:case 15:case 22:Hi(5,c),Ii(5,c)}}catch(d){if(null===a)throw Error(u(330));Ei(a,d)}c=a.nextEffect;a.nextEffect=null;a=c}W=b;gg();return!0}\nfunction Wj(a,b,c){b=Ai(c,b);b=Xi(a,b,1073741823);xg(a,b);a=xj(a,1073741823);null!==a&&Z(a)}function Ei(a,b){if(3===a.tag)Wj(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){Wj(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===aj||!aj.has(d))){a=Ai(b,a);a=$i(c,a,1073741823);xg(c,a);c=xj(c,1073741823);null!==c&&Z(c);break}}c=c.return}}\nfunction Oj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);T===a&&U===c?S===vi||S===ui&&1073741823===lj&&$f()-Ti<pj?Ej(a,U):oj=!0:Aj(a,c)&&(b=a.lastPingedTime,0!==b&&b<c||(a.lastPingedTime=c,Z(a)))}function Vi(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=Gg(),b=Hg(b,a,null));a=xj(a,b);null!==a&&Z(a)}var Rj;\nRj=function(a,b,c){var d=b.expirationTime;if(null!==a){var e=b.pendingProps;if(a.memoizedProps!==e||K.current)rg=!0;else{if(d<c){rg=!1;switch(b.tag){case 3:hi(b);Xh();break;case 5:fh(b);if(b.mode&4&&1!==c&&e.hidden)return b.expirationTime=b.childExpirationTime=1,null;break;case 1:L(b.type)&&Gf(b);break;case 4:dh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;e=b.type._context;I(jg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){d=b.child.childExpirationTime;\nif(0!==d&&d>=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime<c&&(h.expirationTime=c);l=h.alternate;null!==l&&l.expirationTime<c&&(l.expirationTime=c);pg(h.return,c);k.expirationTime<c&&(k.expirationTime=c);break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=\ng}R(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,qg(b,c),e=sg(e,f.unstable_observedBits),d=d(e),b.effectTag|=1,R(a,b,d,c),b.child;case 14:return e=b.type,f=ig(e,b.pendingProps),f=ig(e.type,f),ai(a,b,e,f,d,c);case 15:return ci(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2),b.tag=1,L(d)?(a=!0,Gf(b)):a=!1,qg(b,c),Lg(b,d,e),Ng(b,d,e,c),gi(null,\nb,d,!0,a,c);case 19:return mi(a,b,c)}throw Error(u(156,b.tag));};var Uj=null,Li=null;function Yj(a){if(\"undefined\"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var b=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(b.isDisabled||!b.supportsFiber)return!0;try{var c=b.inject(a);Uj=function(a){try{b.onCommitFiberRoot(c,a,void 0,64===(a.current.effectTag&64))}catch(e){}};Li=function(a){try{b.onCommitFiberUnmount(c,a)}catch(e){}}}catch(d){}return!0}\nfunction Zj(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.effectTag=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childExpirationTime=this.expirationTime=0;this.alternate=null}function Sh(a,b,c,d){return new Zj(a,b,c,d)}\nfunction bi(a){a=a.prototype;return!(!a||!a.isReactComponent)}function Xj(a){if(\"function\"===typeof a)return bi(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===gb)return 11;if(a===jb)return 14}return 2}\nfunction Sg(a,b){var c=a.alternate;null===c?(c=Sh(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.effectTag=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childExpirationTime=a.childExpirationTime;c.expirationTime=a.expirationTime;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{expirationTime:b.expirationTime,\nfirstContext:b.firstContext,responders:b.responders};c.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Ug(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bi(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ab:return Wg(c.children,e,f,b);case fb:g=8;e|=7;break;case bb:g=8;e|=1;break;case cb:return a=Sh(12,c,b,e|8),a.elementType=cb,a.type=cb,a.expirationTime=f,a;case hb:return a=Sh(13,c,b,e),a.type=hb,a.elementType=hb,a.expirationTime=f,a;case ib:return a=Sh(19,c,b,e),a.elementType=ib,a.expirationTime=f,a;default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case db:g=\n10;break a;case eb:g=9;break a;case gb:g=11;break a;case jb:g=14;break a;case kb:g=16;d=null;break a;case lb:g=22;break a}throw Error(u(130,null==a?a:typeof a,\"\"));}b=Sh(g,c,b,e);b.elementType=a;b.type=d;b.expirationTime=f;return b}function Wg(a,b,c,d){a=Sh(7,a,d,b);a.expirationTime=c;return a}function Tg(a,b,c){a=Sh(6,a,null,b);a.expirationTime=c;return a}\nfunction Vg(a,b,c){b=Sh(4,null!==a.children?a.children:[],a.key,b);b.expirationTime=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction ak(a,b,c){this.tag=b;this.current=null;this.containerInfo=a;this.pingCache=this.pendingChildren=null;this.finishedExpirationTime=0;this.finishedWork=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=90;this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}\nfunction Aj(a,b){var c=a.firstSuspendedTime;a=a.lastSuspendedTime;return 0!==c&&c>=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;c<b&&(a.firstSuspendedTime=b);if(d>b||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime<b&&(a.retryTime=b)}function ek(a,b){dk(a,b);(a=a.alternate)&&dk(a,b)}\nfunction fk(a,b,c){c=null!=c&&!0===c.hydrate;var d=new ak(a,b,c),e=Sh(3,null,null,2===b?7:1===b?3:0);d.current=e;e.stateNode=d;ug(e);a[Od]=d.current;c&&0!==b&&Jc(a,9===a.nodeType?a:a.ownerDocument);this._internalRoot=d}fk.prototype.render=function(a){bk(a,this._internalRoot,null,null)};fk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;bk(null,a,null,function(){b[Od]=null})};\nfunction gk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function hk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new fk(a,0,b?{hydrate:!0}:void 0)}\nfunction ik(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=ck(g);h.call(a)}}bk(b,g,a,e)}else{f=c._reactRootContainer=hk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=ck(g);k.call(a)}}Nj(function(){bk(b,g,a,e)})}return ck(g)}function jk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:$a,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nwc=function(a){if(13===a.tag){var b=hg(Gg(),150,100);Ig(a,b);ek(a,b)}};xc=function(a){13===a.tag&&(Ig(a,3),ek(a,3))};yc=function(a){if(13===a.tag){var b=Gg();b=Hg(b,a,null);Ig(a,b);ek(a,b)}};\nza=function(a,b,c){switch(b){case \"input\":Cb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Qd(d);if(!e)throw Error(u(90));yb(d);Cb(d,e)}}}break;case \"textarea\":Kb(a,c);break;case \"select\":b=c.value,null!=b&&Hb(a,!!c.multiple,b,!1)}};Fa=Mj;\nGa=function(a,b,c,d,e){var f=W;W|=4;try{return cg(98,a.bind(null,b,c,d,e))}finally{W=f,W===V&&gg()}};Ha=function(){(W&(1|fj|gj))===V&&(Lj(),Dj())};Ia=function(a,b){var c=W;W|=2;try{return a(b)}finally{W=c,W===V&&gg()}};function kk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!gk(b))throw Error(u(200));return jk(a,b,null,c)}var lk={Events:[Nc,Pd,Qd,xa,ta,Xd,function(a){jc(a,Wd)},Da,Ea,id,mc,Dj,{current:!1}]};\n(function(a){var b=a.findFiberByHostInstance;return Yj(n({},a,{overrideHookState:null,overrideProps:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Wa.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=hc(a);return null===a?null:a.stateNode},findFiberByHostInstance:function(a){return b?b(a):null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null}))})({findFiberByHostInstance:tc,bundleType:0,version:\"16.14.0\",\nrendererPackageName:\"react-dom\"});exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=lk;exports.createPortal=kk;exports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternalFiber;if(void 0===b){if(\"function\"===typeof a.render)throw Error(u(188));throw Error(u(268,Object.keys(a)));}a=hc(b);a=null===a?null:a.stateNode;return a};\nexports.flushSync=function(a,b){if((W&(fj|gj))!==V)throw Error(u(187));var c=W;W|=1;try{return cg(99,a.bind(null,b))}finally{W=c,gg()}};exports.hydrate=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!0,c)};exports.render=function(a,b,c){if(!gk(b))throw Error(u(200));return ik(null,a,b,!1,c)};\nexports.unmountComponentAtNode=function(a){if(!gk(a))throw Error(u(40));return a._reactRootContainer?(Nj(function(){ik(null,null,a,!1,function(){a._reactRootContainer=null;a[Od]=null})}),!0):!1};exports.unstable_batchedUpdates=Mj;exports.unstable_createPortal=function(a,b){return kk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!gk(c))throw Error(u(200));if(null==a||void 0===a._reactInternalFiber)throw Error(u(38));return ik(a,b,c,!1,d)};exports.version=\"16.14.0\";\n","'use strict';\n\nfunction checkDCE() {\n  /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n  if (\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n    typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n  ) {\n    return;\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    // This branch is unreachable because this function is only called\n    // in production, but the condition is true only in development.\n    // Therefore if the branch is still here, dead code elimination wasn't\n    // properly applied.\n    // Don't change the message. React DevTools relies on it. Also make sure\n    // this message doesn't occur elsewhere in this function, or it will cause\n    // a false positive.\n    throw new Error('^_^');\n  }\n  try {\n    // Verify that the code above has been dead code eliminated (DCE'd).\n    __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n  } catch (err) {\n    // DevTools shouldn't crash React, no matter what.\n    // We should still report in case we break this code.\n    console.error(err);\n  }\n}\n\nif (process.env.NODE_ENV === 'production') {\n  // DCE check should happen before ReactDOM bundle executes so that\n  // DevTools can report bad minification during injection.\n  checkDCE();\n  module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n  module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * This is a temporary workaround to expose legacy global variables\n * to keep the Seismic Test Plugin (component drivers) working correctly.\n * Please rip this out (and fix the esbuild.config.js to use the correct\n * entry point) once we get a real fix for that\n */\n\nimport * as exports from './index.js';\n\nif (typeof window !== 'undefined') window.__TECTONIC__$servicenow_ui_renderer_react = exports;\n\nexport * from './index.js';\nexport {default} from './index.js';\n","import * as uiInternal from '@servicenow/ui-internal';\nimport onConnect from './onConnect';\nimport onStateChange from './onStateChange';\nimport onDisconnect from './onDisconnect';\nimport createSlot from './createSlot';\n\nconst {createAriaRef} = uiInternal;\nexport default {\n\tcreateSlot,\n\tonConnect,\n\tonDisconnect,\n\tonStateChange,\n\tdeprioritizeStyles: true\n};\n\n/**\n * Added explicit export because some components\n * are importing react from this package\n */\nexport * as react from 'react';\nexport {createSlot, createAriaRef};\n","import * as uiInternal from '@servicenow/ui-internal';\n\nconst {callAsync, noop} = uiInternal;\n/**\n * Connects the React renderer\n * @method onConnect\n * @private\n * @param {HTMLElement} element Element be connected\n * @param {Function} dispatch function contextualized to the element\n * @param {Function} next function to call after connecting\n */\nexport default function onConnect(element, dispatch, next = noop) {\n\tcallAsync(next);\n}\n","import ReactDom from 'react-dom';\nimport React from 'react'; // eslint-disable-line no-unused-vars\nimport ErrorBoundary from './ErrorBoundary'; // eslint-disable-line no-unused-vars\nimport * as uiInternal from '@servicenow/ui-internal';\n\nconst {noop} = uiInternal;\nconst helperNoop = Object.assign(noop, {\n\tdispatch: noop,\n\tupdateState: noop,\n\tupdateProperties: noop\n});\n\n/**\n * Renders a view using React\n * @method onStateChange\n * @private\n * @param {HTMLElement} element Element to append rendered React component to\n * @param {Function} Component React Component\n * @param {Object} [props = {}] Optional properties object\n * @param {Function} helpers.dispatch Function for dispatching actions\n * @param {Function} helpers.updateState Function for updating component state\n * @param {Function} helpers.updateProperties Function for updating component properties\n * @returns {Promise}\n */\nexport default async function onStateChange(element, Component, props = {}, helpers = helperNoop) {\n\treturn await ReactDom.render(\n\t\t<ErrorBoundary helpers={helpers} element={element}>\n\t\t\t<Component {...props} dispatch={helpers} helpers={helpers} />\n\t\t<\/ErrorBoundary>,\n\t\telement\n\t);\n}\n","import React from 'react';\nimport * as uiInternal from '@servicenow/ui-internal';\nimport log from './log';\n\nconst {errorTypes, locations, toLower, allLogTypes: logTypes} = uiInternal;\nclass ErrorBoundary extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {hasError: false};\n\t}\n\n\tcomponentDidCatch(error) {\n\t\tconst {element, helpers} = this.props;\n\n\t\thelpers.dispatch(\n\t\t\terrorTypes.COMPONENT_ERROR_THROWN,\n\t\t\t{host: element.host, location: locations.VIEW, details: {boundaryError: true}, error},\n\t\t\t{internal: true},\n\t\t\ttrue\n\t\t);\n\n\t\tthis.setState({hasError: true});\n\n\t\tconst tagName = toLower(element.host.tagName);\n\t\tconst componentId = element.host.getAttribute('component-id');\n\n\t\tlog(\n\t\t\t`An Error occured in <${tagName} component-id=\"${componentId}\"/>. COMPONENT_ERROR_THROWN action type is dispatched with error details.`,\n\t\t\t{error, level: logTypes.ERROR, host: element.host, origin: 'componentDidCatch'}\n\t\t);\n\t}\n\n\trender() {\n\t\tif (this.state.hasError) return null;\n\n\t\treturn this.props.children;\n\t}\n}\n\nexport default ErrorBoundary;\n","import * as uiInternal from '@servicenow/ui-internal';\n\nconst {createLogger} = uiInternal;\nexport default createLogger({\n\tmodule: '@servicenow/ui-renderer-react'\n});\n","import {unmountComponentAtNode} from 'react-dom';\nimport * as uiInternal from '@servicenow/ui-internal';\n\nconst {callAsync, noop} = uiInternal;\n/**\n * Unmount a React component from the provided element\n * @method onDisconnect\n * @private\n * @param {HTMLElement} element Element being disconnected\n * @param {Function} [dispatch] function contextualized to the element\n * @param {Function} [next] function to call after disconnect\n */\nexport default function onDisconnect(element, dispatch, next = noop) {\n\tcallAsync(() => {\n\t\tnext();\n\t\tunmountComponentAtNode(element);\n\t});\n}\n","import React from 'react';\nimport * as uiInternal from '@servicenow/ui-internal';\n\nconst {get} = uiInternal;\nconst insertChildern = (children, name) => {\n\tif (!children) return null;\n\n\tif (children && !name) return children;\n\n\treturn React.Children.map(children, child =>\n\t\tname === get(child, ['props', 'slot']) ? child : null\n\t);\n};\n\n/**\n * Creates a slot using React\n * @method createSlot\n * @param children Default children when content is not slotted\n * @param name Name of the slot\n * @returns {*}\n */\nexport default function createSlot(children, name) {\n\treturn <slot name={name}>{insertChildern(children, name)}<\/slot>;\n}\n"],"version":3}}]}