/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ({ /***/ "../FloodgateCore/dist/index.js": /*!**************************************!*\ !*** ../FloodgateCore/dist/index.js ***! \**************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n/**\n * Main entry point.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utils = exports.Api = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nObject.defineProperty(exports, \"Api\", { enumerable: true, get: function () { return floodgate_shared_typings_1.Api; } });\nvar Utils = __webpack_require__(/*! ./src/Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nexports.Utils = Utils;\nvar FloodgateEngine_1 = __webpack_require__(/*! ./src/FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nObject.defineProperty(exports, \"FloodgateEngine\", { enumerable: true, get: function () { return FloodgateEngine_1.FloodgateEngine; } });\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vaW5kZXgudHM/Yjg1ZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILDZLQUF1RDtBQUk5QyxvRkFKQSw4QkFBRyxPQUlBO0FBSFoseUZBQXFDO0FBR3ZCLHNCQUFLO0FBRG5CLHlIQUF3RDtBQUEvQyxpSUFBZSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3QvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogTWFpbiBlbnRyeSBwb2ludC5cclxuICovXHJcblxyXG5pbXBvcnQgeyBBcGkgfSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4vc3JjL1V0aWxzXCI7XHJcblxyXG5leHBvcnQgeyBGbG9vZGdhdGVFbmdpbmUgfSBmcm9tIFwiLi9zcmMvRmxvb2RnYXRlRW5naW5lXCI7XHJcbmV4cG9ydCB7IEFwaSwgVXRpbHMgfTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/index.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/ActivityTracker.js": /*!****************************************************!*\ !*** ../FloodgateCore/dist/src/ActivityTracker.js ***! \****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Class to track ticks against a list of expected counts in a thread-safe way\n * Main API of interest is incrementActivity, which returns an enumerated value indicating\n * whether or not the increment resulted in no thresholds crossed, a single activity threshold crossed,\n * or the final activity threshold crossed.\n */\nvar ActivityTracker = /** @class */ (function () {\n function ActivityTracker(trackingSet) {\n if (!trackingSet) {\n throw new Error(\"trackingSet must not be null\");\n }\n if (trackingSet.getList().length > 32) {\n throw new Error(\"trackingSet list size must be less than 32\");\n }\n this.isOrdered = trackingSet.getIsOrdered();\n this.trackedActivities = trackingSet.getList();\n /**\n * For ordered sets, the current index.\n */\n this.currentIndex = 0;\n this.activationMask = 0;\n this.currentActivationFlags = 0;\n this.isActivationByInitPending = false;\n this.currentCounts = new Array(this.trackedActivities.length);\n this.currentStartTimes = new Array(this.trackedActivities.length);\n this.currentSessionCounts = new Array(this.trackedActivities.length);\n for (var i = 0; i < this.trackedActivities.length; i++) {\n this.currentCounts[i] = 0;\n this.currentSessionCounts[i] = 0;\n }\n for (var i = 0; i < this.trackedActivities.length; i++) {\n this.activationMask |= 0x1 << i;\n if (this.trackedActivities[i].getCount() < 1) {\n this.trackedActivities[i].setCount(1);\n }\n }\n }\n /**\n * Get the count for the activity at the specified index. Returns 0 for out-of-range indices\n *\n * @param index index\n */\n ActivityTracker.prototype.getCount = function (index) {\n if (!this.isValidIndex(index)) {\n return 0;\n }\n return this.currentCounts[index];\n };\n /**\n * Get the count for the activity at the specified index, as tracked only for this session.\n * Returns 0 for out-of-range indices\n *\n * @param index index\n */\n ActivityTracker.prototype.getSessionCount = function (index) {\n if (!this.isValidIndex(index)) {\n return 0;\n }\n return this.currentSessionCounts[index];\n };\n /**\n * Get the StartTime for the activity at the specified index. Returns null for out-of-range indices\n *\n * @param index index\n */\n ActivityTracker.prototype.getStartTime = function (index) {\n if (!this.isValidIndex(index)) {\n return null;\n }\n return this.currentStartTimes[index];\n };\n /**\n * A get-and-set method. Returns the current SessionCount, resetting it to zero and adding it into\n * the established baseline.\n *\n * @param index index\n */\n ActivityTracker.prototype.moveSessionCountIntoBaseCount = function (index) {\n if (!this.isValidIndex(index)) {\n return 0;\n }\n var sessionCount = this.currentSessionCounts[index];\n this.currentSessionCounts[index] = 0;\n return sessionCount;\n };\n /**\n * Forcibly set the counts for the activities in the trackingSet.\n * Unlike other APIs, this expects vector indices to match the order\n * of the ActivityTrackingSet.List initially used to construct this tracker.\n * (When data is copied from a different IndexedTracker, it will properly use the IndexedTracker.Index to query internals)\n * Note:\n * 1) Assumes a count of 0 for any missing index in undersized arrays.\n * 2) Respects and enforces ordered list initialization (i.e. all init values are ignored once a unfinished activity is\n * encountered in an ordered tracking list).\n * 3) If the tracker is fully Activated as a result of this call, the next call to IncrementActivity will raise the\n * IncrementEdgeResult.AllActivitiesActivated, for any valid index accepted by IsPermittedIndexForActivationByInit().\n */\n ActivityTracker.prototype.initCounts = function (baselineCounts, otherTrackers, wasAlreadyActivatedThisSession) {\n // NOTE: baselineIncrements and sessionIncrements are sorted the same as the initial trackedActivity set, which\n // for this class is the same as trackedActivities\n if (wasAlreadyActivatedThisSession === void 0) { wasAlreadyActivatedThisSession = false; }\n for (var i = 0; i < this.trackedActivities.length; i++) {\n // Only accept values up to the current index, when ordered\n if (this.isOrdered && i > this.currentIndex) {\n break;\n }\n // Start off by pulling values from this session\n if (i < otherTrackers.length && otherTrackers[i]) {\n this.currentSessionCounts[i] = this.currentCounts[i] = otherTrackers[i].tracker.getSessionCount(otherTrackers[i].index);\n this.currentStartTimes[i] = otherTrackers[i].tracker.getStartTime(otherTrackers[i].index);\n }\n // If we've got a baseline from previous sessions, add it in as well\n if (this.trackedActivities[i].getIsAggregate() && i < baselineCounts.length) {\n this.currentCounts[i] += baselineCounts[i];\n }\n if (this.hasCountCrossedThreshold(i)) {\n this.finishActivityAtIndex(i);\n }\n }\n if (this.isActivated() && !wasAlreadyActivatedThisSession) {\n // Mark this object so that the next time any permitted activation event is logged, the survey will activate\n this.isActivationByInitPending = true;\n }\n };\n ActivityTracker.prototype.generateActivityIndexList = function () {\n var indexList = new Array();\n for (var i = 0; i < this.trackedActivities.length; i++) {\n var current = new ActivityTracker.ActivityIndex();\n current.activity = this.trackedActivities[i].getActivity();\n current.index = i;\n indexList.push(current);\n }\n return indexList;\n };\n /**\n * Increments the count at the specified index by the given increment. Returns a value indicating whether\n * or not this call triggered a transition edge (activating the activity at 'index', or finishing the activation\n * of the final pending activity)\n */\n ActivityTracker.prototype.incrementActivity = function (index, increment) {\n if (!this.isValidIndex(index)) {\n return 0 /* Pending */;\n }\n if (increment < 0) {\n throw new Error(\"increment must be non-negative\");\n }\n // Ordered sets must be triggered in order. We can only track at the current index, or before\n if (this.isOrdered && index > this.currentIndex) {\n return 0 /* Pending */;\n }\n // Add to our counts after storing off our current state\n var startedLessThanThreshold = !this.hasCountCrossedThreshold(index);\n this.currentCounts[index] += increment;\n this.currentSessionCounts[index] += increment;\n if (this.isActivationByInitPending) {\n if (this.isPermittedIndexForActivationByInit(index)) {\n // This tracker was completed due to the initialization from previous increment data\n // now that we've store this activities increments, raise the AllActivitiesActivated signal\n return this.commitActivation();\n }\n else {\n // Still waiting for a valid re-activation activity\n return 0 /* Pending */;\n }\n }\n if (!(startedLessThanThreshold && this.hasCountCrossedThreshold(index))) {\n // Still waiting for this activity to finish\n return 0 /* Pending */;\n }\n // Mark this activity as complete in our flag collection\n this.finishActivityAtIndex(index);\n if (this.isActivated()) {\n return this.commitActivation();\n }\n return 1 /* SingleActivityActivated */;\n };\n /**\n * Explicitly sets a start timestamp (now if startTime is null) for the specified activity index. Overwrites any previous StartTime.\n */\n ActivityTracker.prototype.startTime = function (index, startTime) {\n if (!this.isValidIndex(index)) {\n return;\n }\n this.currentStartTimes[index] = (!startTime) ? new Date() : startTime;\n };\n /**\n * Computes the \"count\" delta (delta in whatever units are appropriate for a subsequent call to IncrementActivity)\n * elapsed between now and a previously logged StartTime for this activity index.\n * Always clears the previous StartTime.\n * Returns 0 if no previous StartTime was logged, or if StartTime > StopTime\n */\n ActivityTracker.prototype.stopTime = function (index, stopTime) {\n if (!this.isValidIndex(index)) {\n return 0;\n }\n var startTime = this.currentStartTimes[index];\n this.currentStartTimes[index] = null;\n if (!startTime) {\n return 0;\n }\n stopTime = (!stopTime) ? new Date() : stopTime;\n if (startTime > stopTime) {\n return 0;\n }\n var deltaMS = stopTime.getTime() - startTime.getTime();\n // Currently all timer activities return seconds as the increment unit\n var diff = deltaMS / 1000;\n // Adding 1ms to the count so it can have the decimal place\n // So that we can distinguish the Time activity\n if (diff % 1 === 0) {\n diff += 0.001;\n }\n return diff;\n };\n /**\n * Returns true if the index is valid for accessing the stored activity counts, false otherwise\n */\n ActivityTracker.prototype.isValidIndex = function (index) {\n return index < this.trackedActivities.length;\n };\n /**\n * Gets whether or not the full set of activities for this tracker have exceeded their trigger thresholds\n */\n ActivityTracker.prototype.isActivated = function () {\n return (this.currentActivationFlags & this.activationMask) === this.activationMask;\n };\n /**\n * Marks the activity at the index as finished. Includes setting the proper\n * activation flags and potentially advancing the current index for ordered tracking sets\n */\n ActivityTracker.prototype.finishActivityAtIndex = function (index) {\n if (!this.isValidIndex(index)) {\n throw new Error(\"Index is not valid\");\n }\n this.currentActivationFlags |= 0x1 << index;\n if (index + 1 < this.trackedActivities.length) {\n this.currentIndex = index + 1;\n }\n };\n /**\n * @param index index\n * @return true if the counts for the activity at the specified index have met or exceeded the threshold count.\n */\n ActivityTracker.prototype.hasCountCrossedThreshold = function (index) {\n if (!this.isValidIndex(index)) {\n throw new Error(\"Index is not valid\");\n }\n return this.currentCounts[index] >= this.trackedActivities[index].getCount();\n };\n /**\n * Returns true if the index refers to an activity that can re-activate a tracked object (aka return AllActivitiesActivated)\n * that was initialized as \"complete\" via initCounts.\n * Note: For unordered sets, any activity is valid. For ordered sequences, only the final activity is valid\n */\n ActivityTracker.prototype.isPermittedIndexForActivationByInit = function (index) {\n return !this.isOrdered || ((index + 1) === this.currentCounts.length);\n };\n ActivityTracker.prototype.commitActivation = function () {\n this.isActivationByInitPending = false;\n return 2 /* AllActivitiesActivated */;\n };\n return ActivityTracker;\n}());\n(function (ActivityTracker) {\n /**\n * Structure returned by an ActivityTracker to call back into\n * IncrementActivity with valid index values\n */\n var ActivityIndex = /** @class */ (function () {\n function ActivityIndex() {\n }\n return ActivityIndex;\n }());\n ActivityTracker.ActivityIndex = ActivityIndex;\n})(ActivityTracker || (ActivityTracker = {}));\nexports.default = ActivityTracker;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FjdGl2aXR5VHJhY2tlci50cz8yMGIxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0E7Ozs7O0dBS0c7QUFDSDtJQVdDLHlCQUFtQixXQUFpQztRQUNuRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNoRDtRQUNELElBQUksV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUvQzs7V0FFRztRQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLEtBQUssQ0FBQztRQUV2QyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksS0FBSyxDQUFTLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxLQUFLLENBQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLEtBQUssQ0FBUyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFN0UsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7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QUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVPLDBDQUFnQixHQUF4QjtRQUNDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDdkMsc0NBQThEO0lBQy9ELENBQUM7SUFDRixzQkFBQztBQUFELENBQUM7QUFFRCxXQUFPLGVBQWU7SUFDckI7OztPQUdHO0lBQ0g7UUFBQTtRQUdBLENBQUM7UUFBRCxvQkFBQztJQUFELENBQUM7SUFIWSw2QkFBYSxnQkFHekI7QUFtQkYsQ0FBQyxFQTNCTSxlQUFlLEtBQWYsZUFBZSxRQTJCckI7QUFFRCxrQkFBZSxlQUFlLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9BY3Rpdml0eVRyYWNrZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQWN0aXZpdHlUcmFja2luZ0RhdGEsIElBY3Rpdml0eVRyYWNraW5nU2V0IH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IEluZGV4ZWRUcmFja2VyIH0gZnJvbSBcIi4vSW5kZXhlZFRyYWNrZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzcyB0byB0cmFjayB0aWNrcyBhZ2FpbnN0IGEgbGlzdCBvZiBleHBlY3RlZCBjb3VudHMgaW4gYSB0aHJlYWQtc2FmZSB3YXlcclxuICogTWFpbiBBUEkgb2YgaW50ZXJlc3QgaXMgaW5jcmVtZW50QWN0aXZpdHksIHdoaWNoIHJldHVybnMgYW4gZW51bWVyYXRlZCB2YWx1ZSBpbmRpY2F0aW5nXHJcbiAqIHdoZXRoZXIgb3Igbm90IHRoZSBpbmNyZW1lbnQgcmVzdWx0ZWQgaW4gbm8gdGhyZXNob2xkcyBjcm9zc2VkLCBhIHNpbmdsZSBhY3Rpdml0eSB0aHJlc2hvbGQgY3Jvc3NlZCxcclxuICogb3IgdGhlIGZpbmFsIGFjdGl2aXR5IHRocmVzaG9sZCBjcm9zc2VkLlxyXG4gKi9cclxuY2xhc3MgQWN0aXZpdHlUcmFja2VyIHtcclxuXHRwcml2YXRlIGlzT3JkZXJlZDogYm9vbGVhbjtcclxuXHRwcml2YXRlIHRyYWNrZWRBY3Rpdml0aWVzOiBJQWN0aXZpdHlUcmFja2luZ0RhdGFbXTtcclxuXHRwcml2YXRlIGN1cnJlbnRJbmRleDogbnVtYmVyO1xyXG5cdHByaXZhdGUgYWN0aXZhdGlvbk1hc2s6IG51bWJlcjtcclxuXHRwcml2YXRlIGN1cnJlbnRBY3RpdmF0aW9uRmxhZ3M6IG51bWJlcjtcclxuXHRwcml2YXRlIGlzQWN0aXZhdGlvbkJ5SW5pdFBlbmRpbmc6IGJvb2xlYW47XHJcblx0cHJpdmF0ZSBjdXJyZW50Q291bnRzOiBudW1iZXJbXTtcclxuXHRwcml2YXRlIGN1cnJlbnRTZXNzaW9uQ291bnRzOiBudW1iZXJbXTtcclxuXHRwcml2YXRlIGN1cnJlbnRTdGFydFRpbWVzOiBEYXRlW107XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcih0cmFja2luZ1NldDogSUFjdGl2aXR5VHJhY2tpbmdTZXQpIHtcclxuXHRcdGlmICghdHJhY2tpbmdTZXQpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidHJhY2tpbmdTZXQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICh0cmFja2luZ1NldC5nZXRMaXN0KCkubGVuZ3RoID4gMzIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidHJhY2tpbmdTZXQgbGlzdCBzaXplIG11c3QgYmUgbGVzcyB0aGFuIDMyXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuaXNPcmRlcmVkID0gdHJhY2tpbmdTZXQuZ2V0SXNPcmRlcmVkKCk7XHJcblx0XHR0aGlzLnRyYWNrZWRBY3Rpdml0aWVzID0gdHJhY2tpbmdTZXQuZ2V0TGlzdCgpO1xyXG5cclxuXHRcdC8qKlxyXG5cdFx0ICogRm9yIG9yZGVyZWQgc2V0cywgdGhlIGN1cnJlbnQgaW5kZXguXHJcblx0XHQgKi9cclxuXHRcdHRoaXMuY3VycmVudEluZGV4ID0gMDtcclxuXHRcdHRoaXMuYWN0aXZhdGlvbk1hc2sgPSAwO1xyXG5cdFx0dGhpcy5jdXJyZW50QWN0aXZhdGlvbkZsYWdzID0gMDtcclxuXHRcdHRoaXMuaXNBY3RpdmF0aW9uQnlJbml0UGVuZGluZyA9IGZhbHNlO1xyXG5cclxuXHRcdHRoaXMuY3VycmVudENvdW50cyA9IG5ldyBBcnJheTxudW1iZXI+KHRoaXMudHJhY2tlZEFjdGl2aXRpZXMubGVuZ3RoKTtcclxuXHRcdHRoaXMuY3VycmVudFN0YXJ0VGltZXMgPSBuZXcgQXJyYXk8RGF0ZT4odGhpcy50cmFja2VkQWN0aXZpdGllcy5sZW5ndGgpO1xyXG5cdFx0dGhpcy5jdXJyZW50U2Vzc2lvbkNvdW50cyA9IG5ldyBBcnJheTxudW1iZXI+KHRoaXMudHJhY2tlZEFjdGl2aXRpZXMubGVuZ3RoKTtcclxuXHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMudHJhY2tlZEFjdGl2aXRpZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dGhpcy5jdXJyZW50Q291bnRzW2ldID0gMDtcclxuXHRcdFx0dGhpcy5jdXJyZW50U2Vzc2lvbkNvdW50c1tpXSA9IDA7XHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyYWNrZWRBY3Rpdml0aWVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdHRoaXMuYWN0aXZhdGlvbk1hc2sgfD0gMHgxIDw8IGk7XHJcblxyXG5cdFx0XHRpZiAodGhpcy50cmFja2VkQWN0aXZpdGllc1tpXS5nZXRDb3VudCgpIDwgMSkge1xyXG5cdFx0XHRcdHRoaXMudHJhY2tlZEFjdGl2aXRpZXNbaV0uc2V0Q291bnQoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCB0aGUgY291bnQgZm9yIHRoZSBhY3Rpdml0eSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LiBSZXR1cm5zIDAgZm9yIG91dC1vZi1yYW5nZSBpbmRpY2VzXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gaW5kZXggaW5kZXhcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0Q291bnQoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XHJcblx0XHRpZiAoIXRoaXMuaXNWYWxpZEluZGV4KGluZGV4KSkge1xyXG5cdFx0XHRyZXR1cm4gMDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50Q291bnRzW2luZGV4XTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCB0aGUgY291bnQgZm9yIHRoZSBhY3Rpdml0eSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LCBhcyB0cmFja2VkIG9ubHkgZm9yIHRoaXMgc2Vzc2lvbi5cclxuXHQgKiBSZXR1cm5zIDAgZm9yIG91dC1vZi1yYW5nZSBpbmRpY2VzXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gaW5kZXggaW5kZXhcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U2Vzc2lvbkNvdW50KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xyXG5cdFx0aWYgKCF0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuY3VycmVudFNlc3Npb25Db3VudHNbaW5kZXhdO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IHRoZSBTdGFydFRpbWUgZm9yIHRoZSBhY3Rpdml0eSBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LiBSZXR1cm5zIG51bGwgZm9yIG91dC1vZi1yYW5nZSBpbmRpY2VzXHJcblx0ICpcclxuXHQgKiBAcGFyYW0gaW5kZXggaW5kZXhcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0U3RhcnRUaW1lKGluZGV4OiBudW1iZXIpOiBEYXRlIHtcclxuXHRcdGlmICghdGhpcy5pc1ZhbGlkSW5kZXgoaW5kZXgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLmN1cnJlbnRTdGFydFRpbWVzW2luZGV4XTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgZ2V0LWFuZC1zZXQgbWV0aG9kLiBSZXR1cm5zIHRoZSBjdXJyZW50IFNlc3Npb25Db3VudCwgcmVzZXR0aW5nIGl0IHRvIHplcm8gYW5kIGFkZGluZyBpdCBpbnRvXHJcblx0ICogdGhlIGVzdGFibGlzaGVkIGJhc2VsaW5lLlxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGluZGV4IGluZGV4XHJcblx0ICovXHJcblx0cHVibGljIG1vdmVTZXNzaW9uQ291bnRJbnRvQmFzZUNvdW50KGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xyXG5cdFx0aWYgKCF0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc2Vzc2lvbkNvdW50OiBudW1iZXIgPSB0aGlzLmN1cnJlbnRTZXNzaW9uQ291bnRzW2luZGV4XTtcclxuXHRcdHRoaXMuY3VycmVudFNlc3Npb25Db3VudHNbaW5kZXhdID0gMDtcclxuXHJcblx0XHRyZXR1cm4gc2Vzc2lvbkNvdW50O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRm9yY2libHkgc2V0IHRoZSBjb3VudHMgZm9yIHRoZSBhY3Rpdml0aWVzIGluIHRoZSB0cmFja2luZ1NldC5cclxuXHQgKiBVbmxpa2Ugb3RoZXIgQVBJcywgdGhpcyBleHBlY3RzIHZlY3RvciBpbmRpY2VzIHRvIG1hdGNoIHRoZSBvcmRlclxyXG5cdCAqIG9mIHRoZSBBY3Rpdml0eVRyYWNraW5nU2V0Lkxpc3QgaW5pdGlhbGx5IHVzZWQgdG8gY29uc3RydWN0IHRoaXMgdHJhY2tlci5cclxuXHQgKiAoV2hlbiBkYXRhIGlzIGNvcGllZCBmcm9tIGEgZGlmZmVyZW50IEluZGV4ZWRUcmFja2VyLCBpdCB3aWxsIHByb3Blcmx5IHVzZSB0aGUgSW5kZXhlZFRyYWNrZXIuSW5kZXggdG8gcXVlcnkgaW50ZXJuYWxzKVxyXG5cdCAqIE5vdGU6XHJcblx0ICogMSkgQXNzdW1lcyBhIGNvdW50IG9mIDAgZm9yIGFueSBtaXNzaW5nIGluZGV4IGluIHVuZGVyc2l6ZWQgYXJyYXlzLlxyXG5cdCAqIDIpIFJlc3BlY3RzIGFuZCBlbmZvcmNlcyBvcmRlcmVkIGxpc3QgaW5pdGlhbGl6YXRpb24gKGkuZS4gYWxsIGluaXQgdmFsdWVzIGFyZSBpZ25vcmVkIG9uY2UgYSB1bmZpbmlzaGVkIGFjdGl2aXR5IGlzXHJcblx0ICogZW5jb3VudGVyZWQgaW4gYW4gb3JkZXJlZCB0cmFja2luZyBsaXN0KS5cclxuXHQgKiAzKSBJZiB0aGUgdHJhY2tlciBpcyBmdWxseSBBY3RpdmF0ZWQgYXMgYSByZXN1bHQgb2YgdGhpcyBjYWxsLCB0aGUgbmV4dCBjYWxsIHRvIEluY3JlbWVudEFjdGl2aXR5IHdpbGwgcmFpc2UgdGhlXHJcblx0ICogSW5jcmVtZW50RWRnZVJlc3VsdC5BbGxBY3Rpdml0aWVzQWN0aXZhdGVkLCBmb3IgYW55IHZhbGlkIGluZGV4IGFjY2VwdGVkIGJ5IElzUGVybWl0dGVkSW5kZXhGb3JBY3RpdmF0aW9uQnlJbml0KCkuXHJcblx0ICovXHJcblx0cHVibGljIGluaXRDb3VudHMoYmFzZWxpbmVDb3VudHM6IG51bWJlcltdLCBvdGhlclRyYWNrZXJzOiBJbmRleGVkVHJhY2tlcltdLCB3YXNBbHJlYWR5QWN0aXZhdGVkVGhpc1Nlc3Npb24gPSBmYWxzZSk6IHZvaWQge1xyXG5cdFx0Ly8gTk9URTogYmFzZWxpbmVJbmNyZW1lbnRzIGFuZCBzZXNzaW9uSW5jcmVtZW50cyBhcmUgc29ydGVkIHRoZSBzYW1lIGFzIHRoZSBpbml0aWFsIHRyYWNrZWRBY3Rpdml0eSBzZXQsIHdoaWNoXHJcblx0XHQvLyBmb3IgdGhpcyBjbGFzcyBpcyB0aGUgc2FtZSBhcyB0cmFja2VkQWN0aXZpdGllc1xyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50cmFja2VkQWN0aXZpdGllcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHQvLyBPbmx5IGFjY2VwdCB2YWx1ZXMgdXAgdG8gdGhlIGN1cnJlbnQgaW5kZXgsIHdoZW4gb3JkZXJlZFxyXG5cdFx0XHRpZiAodGhpcy5pc09yZGVyZWQgJiYgaSA+IHRoaXMuY3VycmVudEluZGV4KSB7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFN0YXJ0IG9mZiBieSBwdWxsaW5nIHZhbHVlcyBmcm9tIHRoaXMgc2Vzc2lvblxyXG5cdFx0XHRpZiAoaSA8IG90aGVyVHJhY2tlcnMubGVuZ3RoICYmIG90aGVyVHJhY2tlcnNbaV0pIHtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRTZXNzaW9uQ291bnRzW2ldID0gdGhpcy5jdXJyZW50Q291bnRzW2ldID0gb3RoZXJUcmFja2Vyc1tpXS50cmFja2VyLmdldFNlc3Npb25Db3VudChvdGhlclRyYWNrZXJzW2ldLmluZGV4KTtcclxuXHRcdFx0XHR0aGlzLmN1cnJlbnRTdGFydFRpbWVzW2ldID0gb3RoZXJUcmFja2Vyc1tpXS50cmFja2VyLmdldFN0YXJ0VGltZShvdGhlclRyYWNrZXJzW2ldLmluZGV4KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gSWYgd2UndmUgZ290IGEgYmFzZWxpbmUgZnJvbSBwcmV2aW91cyBzZXNzaW9ucywgYWRkIGl0IGluIGFzIHdlbGxcclxuXHRcdFx0aWYgKHRoaXMudHJhY2tlZEFjdGl2aXRpZXNbaV0uZ2V0SXNBZ2dyZWdhdGUoKSAmJiBpIDwgYmFzZWxpbmVDb3VudHMubGVuZ3RoKSB7XHJcblx0XHRcdFx0dGhpcy5jdXJyZW50Q291bnRzW2ldICs9IGJhc2VsaW5lQ291bnRzW2ldO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodGhpcy5oYXNDb3VudENyb3NzZWRUaHJlc2hvbGQoaSkpIHtcclxuXHRcdFx0XHR0aGlzLmZpbmlzaEFjdGl2aXR5QXRJbmRleChpKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmlzQWN0aXZhdGVkKCkgJiYgIXdhc0FscmVhZHlBY3RpdmF0ZWRUaGlzU2Vzc2lvbikge1xyXG5cdFx0XHQvLyBNYXJrIHRoaXMgb2JqZWN0IHNvIHRoYXQgdGhlIG5leHQgdGltZSBhbnkgcGVybWl0dGVkIGFjdGl2YXRpb24gZXZlbnQgaXMgbG9nZ2VkLCB0aGUgc3VydmV5IHdpbGwgYWN0aXZhdGVcclxuXHRcdFx0dGhpcy5pc0FjdGl2YXRpb25CeUluaXRQZW5kaW5nID0gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZW5lcmF0ZUFjdGl2aXR5SW5kZXhMaXN0KCk6IEFjdGl2aXR5VHJhY2tlci5BY3Rpdml0eUluZGV4W10ge1xyXG5cdFx0Y29uc3QgaW5kZXhMaXN0ID0gbmV3IEFycmF5PEFjdGl2aXR5VHJhY2tlci5BY3Rpdml0eUluZGV4PigpO1xyXG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnRyYWNrZWRBY3Rpdml0aWVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnQgPSBuZXcgQWN0aXZpdHlUcmFja2VyLkFjdGl2aXR5SW5kZXgoKTtcclxuXHRcdFx0Y3VycmVudC5hY3Rpdml0eSA9IHRoaXMudHJhY2tlZEFjdGl2aXRpZXNbaV0uZ2V0QWN0aXZpdHkoKTtcclxuXHRcdFx0Y3VycmVudC5pbmRleCA9IGk7XHJcblx0XHRcdGluZGV4TGlzdC5wdXNoKGN1cnJlbnQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBpbmRleExpc3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJbmNyZW1lbnRzIHRoZSBjb3VudCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4IGJ5IHRoZSBnaXZlbiBpbmNyZW1lbnQuICBSZXR1cm5zIGEgdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyXHJcblx0ICogb3Igbm90IHRoaXMgY2FsbCB0cmlnZ2VyZWQgYSB0cmFuc2l0aW9uIGVkZ2UgKGFjdGl2YXRpbmcgdGhlIGFjdGl2aXR5IGF0ICdpbmRleCcsIG9yIGZpbmlzaGluZyB0aGUgYWN0aXZhdGlvblxyXG5cdCAqIG9mIHRoZSBmaW5hbCBwZW5kaW5nIGFjdGl2aXR5KVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBpbmNyZW1lbnRBY3Rpdml0eShpbmRleDogbnVtYmVyLCBpbmNyZW1lbnQ6IG51bWJlcik6IEFjdGl2aXR5VHJhY2tlci5JbmNyZW1lbnRSZXN1bHQge1xyXG5cdFx0aWYgKCF0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcclxuXHRcdFx0cmV0dXJuIEFjdGl2aXR5VHJhY2tlci5JbmNyZW1lbnRSZXN1bHQuUGVuZGluZztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5jcmVtZW50IDwgMCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJpbmNyZW1lbnQgbXVzdCBiZSBub24tbmVnYXRpdmVcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3JkZXJlZCBzZXRzIG11c3QgYmUgdHJpZ2dlcmVkIGluIG9yZGVyLiAgV2UgY2FuIG9ubHkgdHJhY2sgYXQgdGhlIGN1cnJlbnQgaW5kZXgsIG9yIGJlZm9yZVxyXG5cdFx0aWYgKHRoaXMuaXNPcmRlcmVkICYmIGluZGV4ID4gdGhpcy5jdXJyZW50SW5kZXgpIHtcclxuXHRcdFx0cmV0dXJuIEFjdGl2aXR5VHJhY2tlci5JbmNyZW1lbnRSZXN1bHQuUGVuZGluZztcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBZGQgdG8gb3VyIGNvdW50cyBhZnRlciBzdG9yaW5nIG9mZiBvdXIgY3VycmVudCBzdGF0ZVxyXG5cdFx0Y29uc3Qgc3RhcnRlZExlc3NUaGFuVGhyZXNob2xkID0gIXRoaXMuaGFzQ291bnRDcm9zc2VkVGhyZXNob2xkKGluZGV4KTtcclxuXHRcdHRoaXMuY3VycmVudENvdW50c1tpbmRleF0gKz0gaW5jcmVtZW50O1xyXG5cdFx0dGhpcy5jdXJyZW50U2Vzc2lvbkNvdW50c1tpbmRleF0gKz0gaW5jcmVtZW50O1xyXG5cclxuXHRcdGlmICh0aGlzLmlzQWN0aXZhdGlvbkJ5SW5pdFBlbmRpbmcpIHtcclxuXHRcdFx0aWYgKHRoaXMuaXNQZXJtaXR0ZWRJbmRleEZvckFjdGl2YXRpb25CeUluaXQoaW5kZXgpKSB7XHJcblx0XHRcdFx0Ly8gVGhpcyB0cmFja2VyIHdhcyBjb21wbGV0ZWQgZHVlIHRvIHRoZSBpbml0aWFsaXphdGlvbiBmcm9tIHByZXZpb3VzIGluY3JlbWVudCBkYXRhXHJcblx0XHRcdFx0Ly8gbm93IHRoYXQgd2UndmUgc3RvcmUgdGhpcyBhY3Rpdml0aWVzIGluY3JlbWVudHMsIHJhaXNlIHRoZSBBbGxBY3Rpdml0aWVzQWN0aXZhdGVkIHNpZ25hbFxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbW1pdEFjdGl2YXRpb24oKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvLyBTdGlsbCB3YWl0aW5nIGZvciBhIHZhbGlkIHJlLWFjdGl2YXRpb24gYWN0aXZpdHlcclxuXHRcdFx0XHRyZXR1cm4gQWN0aXZpdHlUcmFja2VyLkluY3JlbWVudFJlc3VsdC5QZW5kaW5nO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCEoc3RhcnRlZExlc3NUaGFuVGhyZXNob2xkICYmIHRoaXMuaGFzQ291bnRDcm9zc2VkVGhyZXNob2xkKGluZGV4KSkpIHtcclxuXHRcdFx0Ly8gU3RpbGwgd2FpdGluZyBmb3IgdGhpcyBhY3Rpdml0eSB0byBmaW5pc2hcclxuXHRcdFx0cmV0dXJuIEFjdGl2aXR5VHJhY2tlci5JbmNyZW1lbnRSZXN1bHQuUGVuZGluZztcclxuXHRcdH1cclxuXHJcblx0XHQvLyBNYXJrIHRoaXMgYWN0aXZpdHkgYXMgY29tcGxldGUgaW4gb3VyIGZsYWcgY29sbGVjdGlvblxyXG5cdFx0dGhpcy5maW5pc2hBY3Rpdml0eUF0SW5kZXgoaW5kZXgpO1xyXG5cclxuXHRcdGlmICh0aGlzLmlzQWN0aXZhdGVkKCkpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuY29tbWl0QWN0aXZhdGlvbigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBBY3Rpdml0eVRyYWNrZXIuSW5jcmVtZW50UmVzdWx0LlNpbmdsZUFjdGl2aXR5QWN0aXZhdGVkO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRXhwbGljaXRseSBzZXRzIGEgc3RhcnQgdGltZXN0YW1wIChub3cgaWYgc3RhcnRUaW1lIGlzIG51bGwpIGZvciB0aGUgc3BlY2lmaWVkIGFjdGl2aXR5IGluZGV4LiBPdmVyd3JpdGVzIGFueSBwcmV2aW91cyBTdGFydFRpbWUuXHJcblx0ICovXHJcblx0cHVibGljIHN0YXJ0VGltZShpbmRleDogbnVtYmVyLCBzdGFydFRpbWU/OiBEYXRlKTogdm9pZCB7XHJcblx0XHRpZiAoIXRoaXMuaXNWYWxpZEluZGV4KGluZGV4KSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jdXJyZW50U3RhcnRUaW1lc1tpbmRleF0gPSAoIXN0YXJ0VGltZSkgPyBuZXcgRGF0ZSgpIDogc3RhcnRUaW1lO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29tcHV0ZXMgdGhlIFwiY291bnRcIiBkZWx0YSAoZGVsdGEgaW4gd2hhdGV2ZXIgdW5pdHMgYXJlIGFwcHJvcHJpYXRlIGZvciBhIHN1YnNlcXVlbnQgY2FsbCB0byBJbmNyZW1lbnRBY3Rpdml0eSlcclxuXHQgKiBlbGFwc2VkIGJldHdlZW4gbm93IGFuZCBhIHByZXZpb3VzbHkgbG9nZ2VkIFN0YXJ0VGltZSBmb3IgdGhpcyBhY3Rpdml0eSBpbmRleC5cclxuXHQgKiBBbHdheXMgY2xlYXJzIHRoZSBwcmV2aW91cyBTdGFydFRpbWUuXHJcblx0ICogUmV0dXJucyAwIGlmIG5vIHByZXZpb3VzIFN0YXJ0VGltZSB3YXMgbG9nZ2VkLCBvciBpZiBTdGFydFRpbWUgPiBTdG9wVGltZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdG9wVGltZShpbmRleDogbnVtYmVyLCBzdG9wVGltZT86IERhdGUpOiBudW1iZXIge1xyXG5cdFx0aWYgKCF0aGlzLmlzVmFsaWRJbmRleChpbmRleCkpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3RhcnRUaW1lID0gdGhpcy5jdXJyZW50U3RhcnRUaW1lc1tpbmRleF07XHJcblx0XHR0aGlzLmN1cnJlbnRTdGFydFRpbWVzW2luZGV4XSA9IG51bGw7XHJcblxyXG5cdFx0aWYgKCFzdGFydFRpbWUpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0c3RvcFRpbWUgPSAoIXN0b3BUaW1lKSA/IG5ldyBEYXRlKCkgOiBzdG9wVGltZTtcclxuXHRcdGlmIChzdGFydFRpbWUgPiBzdG9wVGltZSkge1xyXG5cdFx0XHRyZXR1cm4gMDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBkZWx0YU1TID0gc3RvcFRpbWUuZ2V0VGltZSgpIC0gc3RhcnRUaW1lLmdldFRpbWUoKTtcclxuXHRcdC8vIEN1cnJlbnRseSBhbGwgdGltZXIgYWN0aXZpdGllcyByZXR1cm4gc2Vjb25kcyBhcyB0aGUgaW5jcmVtZW50IHVuaXRcclxuXHRcdGxldCBkaWZmID0gZGVsdGFNUyAvIDEwMDA7XHJcblxyXG5cdFx0Ly8gQWRkaW5nIDFtcyB0byB0aGUgY291bnQgc28gaXQgY2FuIGhhdmUgdGhlIGRlY2ltYWwgcGxhY2VcclxuXHRcdC8vIFNvIHRoYXQgd2UgY2FuIGRpc3Rpbmd1aXNoIHRoZSBUaW1lIGFjdGl2aXR5XHJcblx0XHRpZiAoZGlmZiAlIDEgPT09IDApIHtcclxuXHRcdFx0ZGlmZiArPSAwLjAwMTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZGlmZjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5kZXggaXMgdmFsaWQgZm9yIGFjY2Vzc2luZyB0aGUgc3RvcmVkIGFjdGl2aXR5IGNvdW50cywgZmFsc2Ugb3RoZXJ3aXNlXHJcblx0ICovXHJcblx0cHVibGljIGlzVmFsaWRJbmRleChpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gaW5kZXggPCB0aGlzLnRyYWNrZWRBY3Rpdml0aWVzLmxlbmd0aDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgd2hldGhlciBvciBub3QgdGhlIGZ1bGwgc2V0IG9mIGFjdGl2aXRpZXMgZm9yIHRoaXMgdHJhY2tlciBoYXZlIGV4Y2VlZGVkIHRoZWlyIHRyaWdnZXIgdGhyZXNob2xkc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBpc0FjdGl2YXRlZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiAodGhpcy5jdXJyZW50QWN0aXZhdGlvbkZsYWdzICYgdGhpcy5hY3RpdmF0aW9uTWFzaykgPT09IHRoaXMuYWN0aXZhdGlvbk1hc2s7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHRcdCogTWFya3MgdGhlIGFjdGl2aXR5IGF0IHRoZSBpbmRleCBhcyBmaW5pc2hlZC4gSW5jbHVkZXMgc2V0dGluZyB0aGUgcHJvcGVyXHJcblx0XHQqIGFjdGl2YXRpb24gZmxhZ3MgYW5kIHBvdGVudGlhbGx5IGFkdmFuY2luZyB0aGUgY3VycmVudCBpbmRleCBmb3Igb3JkZXJlZCB0cmFja2luZyBzZXRzXHJcblx0XHQqL1xyXG5cdHByaXZhdGUgZmluaXNoQWN0aXZpdHlBdEluZGV4KGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5pc1ZhbGlkSW5kZXgoaW5kZXgpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkluZGV4IGlzIG5vdCB2YWxpZFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmN1cnJlbnRBY3RpdmF0aW9uRmxhZ3MgfD0gMHgxIDw8IGluZGV4O1xyXG5cclxuXHRcdGlmIChpbmRleCArIDEgPCB0aGlzLnRyYWNrZWRBY3Rpdml0aWVzLmxlbmd0aCkge1xyXG5cdFx0XHR0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICsgMTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwYXJhbSBpbmRleCBpbmRleFxyXG5cdCAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgY291bnRzIGZvciB0aGUgYWN0aXZpdHkgYXQgdGhlIHNwZWNpZmllZCBpbmRleCBoYXZlIG1ldCBvciBleGNlZWRlZCB0aGUgdGhyZXNob2xkIGNvdW50LlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgaGFzQ291bnRDcm9zc2VkVGhyZXNob2xkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcclxuXHRcdGlmICghdGhpcy5pc1ZhbGlkSW5kZXgoaW5kZXgpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkluZGV4IGlzIG5vdCB2YWxpZFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5jdXJyZW50Q291bnRzW2luZGV4XSA+PSB0aGlzLnRyYWNrZWRBY3Rpdml0aWVzW2luZGV4XS5nZXRDb3VudCgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmV0dXJucyB0cnVlIGlmIHRoZSBpbmRleCByZWZlcnMgdG8gYW4gYWN0aXZpdHkgdGhhdCBjYW4gcmUtYWN0aXZhdGUgYSB0cmFja2VkIG9iamVjdCAoYWthIHJldHVybiBBbGxBY3Rpdml0aWVzQWN0aXZhdGVkKVxyXG5cdCAqIHRoYXQgd2FzIGluaXRpYWxpemVkIGFzIFwiY29tcGxldGVcIiB2aWEgaW5pdENvdW50cy5cclxuXHQgKiBOb3RlOiBGb3IgdW5vcmRlcmVkIHNldHMsIGFueSBhY3Rpdml0eSBpcyB2YWxpZC4gRm9yIG9yZGVyZWQgc2VxdWVuY2VzLCBvbmx5IHRoZSBmaW5hbCBhY3Rpdml0eSBpcyB2YWxpZFxyXG5cdCAqL1xyXG5cdHByaXZhdGUgaXNQZXJtaXR0ZWRJbmRleEZvckFjdGl2YXRpb25CeUluaXQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuICF0aGlzLmlzT3JkZXJlZCB8fCAoKGluZGV4ICsgMSkgPT09IHRoaXMuY3VycmVudENvdW50cy5sZW5ndGgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb21taXRBY3RpdmF0aW9uKCk6IEFjdGl2aXR5VHJhY2tlci5JbmNyZW1lbnRSZXN1bHQge1xyXG5cdFx0dGhpcy5pc0FjdGl2YXRpb25CeUluaXRQZW5kaW5nID0gZmFsc2U7XHJcblx0XHRyZXR1cm4gQWN0aXZpdHlUcmFja2VyLkluY3JlbWVudFJlc3VsdC5BbGxBY3Rpdml0aWVzQWN0aXZhdGVkO1xyXG5cdH1cclxufVxyXG5cclxubW9kdWxlIEFjdGl2aXR5VHJhY2tlciB7XHJcblx0LyoqXHJcblx0ICogU3RydWN0dXJlIHJldHVybmVkIGJ5IGFuIEFjdGl2aXR5VHJhY2tlciB0byBjYWxsIGJhY2sgaW50b1xyXG5cdCAqIEluY3JlbWVudEFjdGl2aXR5IHdpdGggdmFsaWQgaW5kZXggdmFsdWVzXHJcblx0ICovXHJcblx0ZXhwb3J0IGNsYXNzIEFjdGl2aXR5SW5kZXgge1xyXG5cdFx0cHVibGljIGFjdGl2aXR5OiBzdHJpbmc7XHJcblx0XHRwdWJsaWMgaW5kZXg6IG51bWJlcjtcclxuXHR9XHJcblxyXG5cdGV4cG9ydCBjb25zdCBlbnVtIEluY3JlbWVudFJlc3VsdCB7XHJcblx0XHQvKipcclxuXHRcdCAqIE5vIHRocmVzaG9sZHMgY3Jvc3NlZCBhcyBhIHJlc3VsdCBvZiB0aGlzIGluY3JlbWVudCBvcGVyYXRpb25cclxuXHRcdCAqL1xyXG5cdFx0UGVuZGluZyxcclxuXHJcblx0XHQvKipcclxuXHRcdCAqIFRoZSB0aHJlc2hvbGQgZm9yIHRoZSB0YXJnZXRlZCBhY3Rpdml0eSBpbmRleCB3YXMgY3Jvc3NlZCBhcyBhIHJlc3VsdCBvZiB0aGlzIGluY3JlbWVudCBvcGVyYXRpb25cclxuXHRcdCAqL1xyXG5cdFx0U2luZ2xlQWN0aXZpdHlBY3RpdmF0ZWQsXHJcblxyXG5cdFx0LyoqXHJcblx0XHQgKiBUaGUgdGhyZXNob2xkIGZvciB0aGUgdGFyZ2V0ZWQgYWN0aXZpdHkgaW5kZXggd2FzIGNyb3NzZWQgYXMgYSByZXN1bHQgb2YgdGhpcyBpbmNyZW1lbnQgb3BlcmF0aW9uXHJcblx0XHQgKiBhbmQgdGhpcyB3YXMgdGhlIGZpbmFsIGFjdGl2aXR5IGJlaW5nIHRyYWNrZWRcclxuXHRcdCAqL1xyXG5cdFx0QWxsQWN0aXZpdGllc0FjdGl2YXRlZCxcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEFjdGl2aXR5VHJhY2tlcjtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/ActivityTracker.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/ActivityTrackingContract.js": /*!*************************************************************!*\ !*** ../FloodgateCore/dist/src/ActivityTrackingContract.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActivityTrackingContract = void 0;\nvar ActivityTrackingContract = /** @class */ (function () {\n function ActivityTrackingContract(surveyId, trackingSet) {\n this.surveyId = surveyId;\n this.trackingSet = trackingSet;\n }\n return ActivityTrackingContract;\n}());\nexports.ActivityTrackingContract = ActivityTrackingContract;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FjdGl2aXR5VHJhY2tpbmdDb250cmFjdC50cz80NDk1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBO0lBSUMsa0NBQW1CLFFBQWdCLEVBQUUsV0FBaUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDaEMsQ0FBQztJQUNGLCtCQUFDO0FBQUQsQ0FBQztBQVJZLDREQUF3QiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0FjdGl2aXR5VHJhY2tpbmdDb250cmFjdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBY3Rpdml0eVRyYWNraW5nQ29udHJhY3QsIElBY3Rpdml0eVRyYWNraW5nU2V0IH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0IGltcGxlbWVudHMgSUFjdGl2aXR5VHJhY2tpbmdDb250cmFjdCB7XHJcblx0cHVibGljIHN1cnZleUlkOiBzdHJpbmc7XHJcblx0cHVibGljIHRyYWNraW5nU2V0OiBJQWN0aXZpdHlUcmFja2luZ1NldDtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHN1cnZleUlkOiBzdHJpbmcsIHRyYWNraW5nU2V0OiBJQWN0aXZpdHlUcmFja2luZ1NldCkge1xyXG5cdFx0dGhpcy5zdXJ2ZXlJZCA9IHN1cnZleUlkO1xyXG5cdFx0dGhpcy50cmFja2luZ1NldCA9IHRyYWNraW5nU2V0O1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/ActivityTrackingContract.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/ActivityTrackingData.js": /*!*********************************************************!*\ !*** ../FloodgateCore/dist/src/ActivityTrackingData.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActivityTrackingData = void 0;\n/**\n * Basic structure used to configure an ActivityTracker\n */\nvar ActivityTrackingData = /** @class */ (function () {\n function ActivityTrackingData(activity, count, isAggregate) {\n this.activity = activity;\n this.count = count;\n this.isAggregate = isAggregate;\n }\n ActivityTrackingData.prototype.getActivity = function () {\n return this.activity;\n };\n ActivityTrackingData.prototype.getCount = function () {\n return this.count;\n };\n ActivityTrackingData.prototype.setCount = function (count) {\n this.count = count;\n };\n ActivityTrackingData.prototype.getIsAggregate = function () {\n return this.isAggregate;\n };\n return ActivityTrackingData;\n}());\nexports.ActivityTrackingData = ActivityTrackingData;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FjdGl2aXR5VHJhY2tpbmdEYXRhLnRzP2Q5M2YiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7O0dBRUc7QUFDSDtJQUtDLDhCQUFtQixRQUFnQixFQUFFLEtBQWEsRUFBRSxXQUFvQjtRQUN2RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNoQyxDQUFDO0lBRU0sMENBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQztJQUVNLHVDQUFRLEdBQWY7UUFDQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVNLHVDQUFRLEdBQWYsVUFBZ0IsS0FBYTtRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU0sNkNBQWMsR0FBckI7UUFDQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDekIsQ0FBQztJQUNGLDJCQUFDO0FBQUQsQ0FBQztBQTFCWSxvREFBb0IiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9BY3Rpdml0eVRyYWNraW5nRGF0YS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElBY3Rpdml0eVRyYWNraW5nRGF0YSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxuLyoqXHJcbiAqIEJhc2ljIHN0cnVjdHVyZSB1c2VkIHRvIGNvbmZpZ3VyZSBhbiBBY3Rpdml0eVRyYWNrZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVRyYWNraW5nRGF0YSBpbXBsZW1lbnRzIElBY3Rpdml0eVRyYWNraW5nRGF0YSB7XHJcblx0cHJpdmF0ZSBhY3Rpdml0eTogc3RyaW5nO1xyXG5cdHByaXZhdGUgY291bnQ6IG51bWJlcjtcclxuXHRwcml2YXRlIGlzQWdncmVnYXRlOiBib29sZWFuO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoYWN0aXZpdHk6IHN0cmluZywgY291bnQ6IG51bWJlciwgaXNBZ2dyZWdhdGU6IGJvb2xlYW4pIHtcclxuXHRcdHRoaXMuYWN0aXZpdHkgPSBhY3Rpdml0eTtcclxuXHRcdHRoaXMuY291bnQgPSBjb3VudDtcclxuXHRcdHRoaXMuaXNBZ2dyZWdhdGUgPSBpc0FnZ3JlZ2F0ZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRBY3Rpdml0eSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuYWN0aXZpdHk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0Q291bnQoKTogbnVtYmVyIHtcclxuXHRcdHJldHVybiB0aGlzLmNvdW50O1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNldENvdW50KGNvdW50OiBudW1iZXIpOiB2b2lkIHtcclxuXHRcdHRoaXMuY291bnQgPSBjb3VudDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRJc0FnZ3JlZ2F0ZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmlzQWdncmVnYXRlO1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/ActivityTrackingData.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/ActivityTrackingSet.js": /*!********************************************************!*\ !*** ../FloodgateCore/dist/src/ActivityTrackingSet.js ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ActivityTrackingSet = void 0;\nvar Utils_1 = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\n/**\n * Class to hold a collection of Activity Tracking Data\n */\nvar ActivityTrackingSet = /** @class */ (function () {\n function ActivityTrackingSet(isOrdered, list) {\n this.isOrdered = isOrdered;\n this.list = list;\n }\n ActivityTrackingSet.prototype.getIsOrdered = function () {\n return this.isOrdered;\n };\n ActivityTrackingSet.prototype.getList = function () {\n return this.list;\n };\n // returns a stringified json with the list and isOrdered info.\n ActivityTrackingSet.prototype.getActivityTrackingInfo = function (activityListener, surveyId) {\n var activitiesInfoObject;\n if (this.list.length === 0) {\n activitiesInfoObject = {\n Activities: [],\n IsListOrdered: this.isOrdered,\n };\n return JSON.stringify(activitiesInfoObject);\n }\n for (var _i = 0, _a = this.list; _i < _a.length; _i++) {\n var trackingData = _a[_i];\n var actualCount = activityListener.getCount(trackingData.getActivity(), surveyId);\n var tempActivities = {\n Activity: trackingData.getActivity(),\n ActualCount: actualCount,\n Count: trackingData.getCount(),\n IsAggregate: trackingData.getIsAggregate(),\n IsDiscrete: actualCount % 1 === 0,\n };\n if (Utils_1.isNOU(activitiesInfoObject)) {\n activitiesInfoObject = {\n Activities: [tempActivities],\n IsListOrdered: this.isOrdered,\n };\n }\n else {\n activitiesInfoObject.Activities.push(tempActivities);\n }\n }\n return JSON.stringify(activitiesInfoObject);\n };\n return ActivityTrackingSet;\n}());\nexports.ActivityTrackingSet = ActivityTrackingSet;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0FjdGl2aXR5VHJhY2tpbmdTZXQudHM/Y2YzOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSx1RkFBZ0M7QUFFaEM7O0dBRUc7QUFDSDtJQUlDLDZCQUFtQixTQUFrQixFQUFFLElBQTRCO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFFTSwwQ0FBWSxHQUFuQjtRQUNDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN2QixDQUFDO0lBRU0scUNBQU8sR0FBZDtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRUQsK0RBQStEO0lBQ3hELHFEQUF1QixHQUE5QixVQUErQixnQkFBd0MsRUFBRSxRQUFnQjtRQUV4RixJQUFJLG9CQUdILENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUMzQixvQkFBb0IsR0FBRztnQkFDdEIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTO2FBQzdCLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztTQUM1QztRQUVELEtBQTJCLFVBQVMsRUFBVCxTQUFJLENBQUMsSUFBSSxFQUFULGNBQVMsRUFBVCxJQUFTLEVBQUU7WUFBakMsSUFBTSxZQUFZO1lBRXRCLElBQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDcEYsSUFBTSxjQUFjLEdBQUc7Z0JBQ3RCLFFBQVEsRUFBRSxZQUFZLENBQUMsV0FBVyxFQUFFO2dCQUNwQyxXQUFXLEVBQUUsV0FBVztnQkFDeEIsS0FBSyxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUU7Z0JBQzlCLFdBQVcsRUFBRSxZQUFZLENBQUMsY0FBYyxFQUFFO2dCQUMxQyxVQUFVLEVBQUUsV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDO2FBQ2pDLENBQUM7WUFFRixJQUFJLGFBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2dCQUNoQyxvQkFBb0IsR0FBRztvQkFDdEIsVUFBVSxFQUFFLENBQUMsY0FBYyxDQUFDO29CQUM1QixhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVM7aUJBQzdCLENBQUM7YUFDRjtpQkFBTTtnQkFDTixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3JEO1NBQ0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBQ0YsMEJBQUM7QUFBRCxDQUFDO0FBekRZLGtEQUFtQiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0FjdGl2aXR5VHJhY2tpbmdTZXQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQWN0aXZpdHlUcmFja2luZ1NldCB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBBY3Rpdml0eVRyYWNraW5nRGF0YSB9IGZyb20gXCIuL0FjdGl2aXR5VHJhY2tpbmdEYXRhXCI7XHJcbmltcG9ydCBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyIGZyb20gXCIuL1N1cnZleUFjdGl2aXR5TGlzdGVuZXJcIjtcclxuaW1wb3J0IHsgaXNOT1UgfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIHRvIGhvbGQgYSBjb2xsZWN0aW9uIG9mIEFjdGl2aXR5IFRyYWNraW5nIERhdGFcclxuICovXHJcbmV4cG9ydCBjbGFzcyBBY3Rpdml0eVRyYWNraW5nU2V0IGltcGxlbWVudHMgSUFjdGl2aXR5VHJhY2tpbmdTZXQge1xyXG5cdHByaXZhdGUgaXNPcmRlcmVkOiBib29sZWFuO1xyXG5cdHByaXZhdGUgbGlzdDogQWN0aXZpdHlUcmFja2luZ0RhdGFbXTtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGlzT3JkZXJlZDogYm9vbGVhbiwgbGlzdDogQWN0aXZpdHlUcmFja2luZ0RhdGFbXSkge1xyXG5cdFx0dGhpcy5pc09yZGVyZWQgPSBpc09yZGVyZWQ7XHJcblx0XHR0aGlzLmxpc3QgPSBsaXN0O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldElzT3JkZXJlZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmlzT3JkZXJlZDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRMaXN0KCk6IEFjdGl2aXR5VHJhY2tpbmdEYXRhW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMubGlzdDtcclxuXHR9XHJcblxyXG5cdC8vIHJldHVybnMgYSBzdHJpbmdpZmllZCBqc29uIHdpdGggdGhlIGxpc3QgYW5kIGlzT3JkZXJlZCBpbmZvLlxyXG5cdHB1YmxpYyBnZXRBY3Rpdml0eVRyYWNraW5nSW5mbyhhY3Rpdml0eUxpc3RlbmVyOiBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLCBzdXJ2ZXlJZDogc3RyaW5nKTogc3RyaW5nIHtcclxuXHJcblx0XHRsZXQgYWN0aXZpdGllc0luZm9PYmplY3Q6IHtcclxuXHRcdFx0QWN0aXZpdGllczogQXJyYXk8eyBBY3Rpdml0eTogc3RyaW5nLCBDb3VudDogbnVtYmVyLCBJc0FnZ3JlZ2F0ZTogYm9vbGVhbiB9PixcclxuXHRcdFx0SXNMaXN0T3JkZXJlZDogYm9vbGVhbixcclxuXHRcdH07XHJcblxyXG5cdFx0aWYgKHRoaXMubGlzdC5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0YWN0aXZpdGllc0luZm9PYmplY3QgPSB7XHJcblx0XHRcdFx0QWN0aXZpdGllczogW10sXHJcblx0XHRcdFx0SXNMaXN0T3JkZXJlZDogdGhpcy5pc09yZGVyZWQsXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYWN0aXZpdGllc0luZm9PYmplY3QpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoY29uc3QgdHJhY2tpbmdEYXRhIG9mIHRoaXMubGlzdCkge1xyXG5cclxuXHRcdFx0Y29uc3QgYWN0dWFsQ291bnQgPSBhY3Rpdml0eUxpc3RlbmVyLmdldENvdW50KHRyYWNraW5nRGF0YS5nZXRBY3Rpdml0eSgpLCBzdXJ2ZXlJZCk7XHJcblx0XHRcdGNvbnN0IHRlbXBBY3Rpdml0aWVzID0ge1xyXG5cdFx0XHRcdEFjdGl2aXR5OiB0cmFja2luZ0RhdGEuZ2V0QWN0aXZpdHkoKSxcclxuXHRcdFx0XHRBY3R1YWxDb3VudDogYWN0dWFsQ291bnQsXHJcblx0XHRcdFx0Q291bnQ6IHRyYWNraW5nRGF0YS5nZXRDb3VudCgpLFxyXG5cdFx0XHRcdElzQWdncmVnYXRlOiB0cmFja2luZ0RhdGEuZ2V0SXNBZ2dyZWdhdGUoKSxcclxuXHRcdFx0XHRJc0Rpc2NyZXRlOiBhY3R1YWxDb3VudCAlIDEgPT09IDAsXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRpZiAoaXNOT1UoYWN0aXZpdGllc0luZm9PYmplY3QpKSB7XHJcblx0XHRcdFx0YWN0aXZpdGllc0luZm9PYmplY3QgPSB7XHJcblx0XHRcdFx0XHRBY3Rpdml0aWVzOiBbdGVtcEFjdGl2aXRpZXNdLFxyXG5cdFx0XHRcdFx0SXNMaXN0T3JkZXJlZDogdGhpcy5pc09yZGVyZWQsXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRhY3Rpdml0aWVzSW5mb09iamVjdC5BY3Rpdml0aWVzLnB1c2godGVtcEFjdGl2aXRpZXMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIEpTT04uc3RyaW5naWZ5KGFjdGl2aXRpZXNJbmZvT2JqZWN0KTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/ActivityTrackingSet.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js": /*!************************************************************************!*\ !*** ../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setDynamicUxSchemaVariables = exports.DynamicCampaignDefinitionProvider = exports.FileSystemCampaignDefinitionProvider = exports.FilterValidCampaignDefinitions = exports.CampaignDefinition = exports.CampaignSurveyTemplateIntercept = exports.CampaignSurveyTemplateGenericMessagingSurface = exports.CampaignSurveyTemplateNps11PointStatic = exports.CampaignSurveyTemplateNps5PointStatic = exports.CampaignSurveyTemplateNps = exports.CampaignSurveyTemplateNlqs = exports.CampaignSurveyTemplateFps = exports.CampaignSurveyTemplate = exports.CampaignSurveyMetadata = exports.CampaignSurveyContentComment = exports.CampaignSurveyContentRating = exports.CampaignSurveyContentIntercept = exports.CampaignSurveyContentPrompt = exports.CampaignSurveyContentCVSurvey = exports.CampaignSurveyContentMultipleChoice = exports.CampaignSurveyContent = exports.CampaignSurveyEventCountedActivitySequence = exports.CampaignSurveyEventCountedActivity = exports.CampaignSurveyEvent = exports.CampaignNominationSchemeRatioPercentage = exports.CampaignNominationScheme = exports.CampaignDistributionRamp = exports.CampaignDistribution = exports.CampaignAdditionalDataRequested = exports.CampaignDurationSingleBuildChange = exports.CampaignDurationTimeInterval = exports.CampaignDuration = exports.CampaignScopeUserFactAll = exports.CampaignScopeUserFactAny = exports.CampaignScopeEnvironmentCrossProduct = exports.CampaignScopeAny = exports.CampaignScope = exports.CampaignLanguageRangeLanguageSubtag = exports.CampaignLanguageRange = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar UserFactHelper_1 = __webpack_require__(/*! ../UserFact/UserFactHelper */ \"../FloodgateCore/dist/src/UserFact/UserFactHelper.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar getDistantFuture = Utils.getDistantFuture, isBoolean = Utils.isBoolean, isNOU = Utils.isNOU, isNumber = Utils.isNumber, isString = Utils.isString, isUtcDatetimeString = Utils.isUtcDatetimeString, stringToDate = Utils.stringToDate;\nvar dynamicUxSchemaVariables = {};\n// region Language Range\n/**\n * Base class representing a language range in a campaign setting\n */\nvar CampaignLanguageRange = /** @class */ (function () {\n function CampaignLanguageRange() {\n }\n CampaignLanguageRange.deserialize = function (input) {\n var result;\n if (input && input.Type === 0) {\n result = CampaignLanguageRangeLanguageSubtag.deserialize(input);\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n CampaignLanguageRange.prototype.validate = function () {\n return true;\n };\n return CampaignLanguageRange;\n}());\nexports.CampaignLanguageRange = CampaignLanguageRange;\n/**\n * Represents a range matching on the \"language subtag\" against fully specified language tags, according to RFC 5646\n */\nvar CampaignLanguageRangeLanguageSubtag = /** @class */ (function (_super) {\n __extends(CampaignLanguageRangeLanguageSubtag, _super);\n // public for UT only\n function CampaignLanguageRangeLanguageSubtag() {\n return _super.call(this) || this;\n }\n CampaignLanguageRangeLanguageSubtag.deserialize = function (input) {\n var result = new CampaignLanguageRangeLanguageSubtag();\n if (input) {\n result.languageSubTag = input.Value;\n }\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignLanguageRangeLanguageSubtag.prototype.isInRange = function (language) {\n if (isNOU(language)) {\n return false;\n }\n var extractedLanguageSubTag = Utils.extractLanguageSubtag(language);\n if (isNOU(extractedLanguageSubTag)) {\n return false;\n }\n // compare strings ignoring case\n return extractedLanguageSubTag.toLocaleUpperCase() === this.languageSubTag.toLocaleUpperCase();\n };\n // @Override\n CampaignLanguageRangeLanguageSubtag.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (isNOU(this.languageSubTag) || !isString(this.languageSubTag)) {\n return false;\n }\n // Reject any spec that isn't exactly a language subtag\n if (!Utils.isValidLanguageSubTag(this.languageSubTag)) {\n return false;\n }\n return true;\n };\n return CampaignLanguageRangeLanguageSubtag;\n}(CampaignLanguageRange));\nexports.CampaignLanguageRangeLanguageSubtag = CampaignLanguageRangeLanguageSubtag;\n// endregion\n// region Scope\nvar CampaignScope = /** @class */ (function () {\n function CampaignScope() {\n }\n CampaignScope.deserialize = function (input) {\n var result;\n if (isNOU(input)) {\n return null;\n }\n switch (input.Type) {\n case 0 /* CampaignScopeAny */:\n result = CampaignScopeAny.deserialize(input);\n break;\n case 1 /* CampaignScopeEnvironmentCrossProduct */:\n result = CampaignScopeEnvironmentCrossProduct.deserialize(input);\n break;\n case 2 /* CampaignScopeUserFactAny */:\n result = CampaignScopeUserFactAny.deserialize(input);\n break;\n case 3 /* CampaignScopeUserFactAll */:\n result = CampaignScopeUserFactAll.deserialize(input);\n break;\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n CampaignScope.prototype.validate = function () {\n return true;\n };\n return CampaignScope;\n}());\nexports.CampaignScope = CampaignScope;\nvar CampaignScopeAny = /** @class */ (function (_super) {\n __extends(CampaignScopeAny, _super);\n // public for UT only\n function CampaignScopeAny() {\n return _super.call(this) || this;\n }\n CampaignScopeAny.deserialize = function (input) {\n return new CampaignScopeAny();\n };\n // @Override\n CampaignScopeAny.prototype.isInScope = function () {\n return true;\n };\n // @Override\n CampaignScopeAny.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n return true;\n };\n return CampaignScopeAny;\n}(CampaignScope));\nexports.CampaignScopeAny = CampaignScopeAny;\nvar CampaignScopeEnvironmentCrossProduct = /** @class */ (function (_super) {\n __extends(CampaignScopeEnvironmentCrossProduct, _super);\n // public for UT only\n function CampaignScopeEnvironmentCrossProduct() {\n return _super.call(this) || this;\n }\n CampaignScopeEnvironmentCrossProduct.deserialize = function (input) {\n var result = new CampaignScopeEnvironmentCrossProduct();\n var languageRanges = [];\n if (isNOU(input)) {\n return null;\n }\n for (var key in input.Languages) {\n if (Object.prototype.hasOwnProperty.call(input.Languages, key)) {\n var readRange = input.Languages[key];\n if (readRange) {\n languageRanges.push(CampaignLanguageRange.deserialize(readRange));\n }\n }\n }\n if (languageRanges.length === 0) {\n languageRanges = null;\n }\n result.languageRanges = languageRanges;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignScopeEnvironmentCrossProduct.prototype.setEnvironmentProvider = function (environmentProvider) {\n this.environmentProvider = environmentProvider;\n };\n // @Override\n CampaignScopeEnvironmentCrossProduct.prototype.isInScope = function () {\n if (isNOU(this.languageRanges)) {\n return true;\n }\n if (isNOU(this.environmentProvider) || !this.environmentProvider.getLanguage()) {\n return false;\n }\n var language = this.environmentProvider.getLanguage();\n // If the environment matches a single pattern, then this is a yes\n for (var key in this.languageRanges) {\n if (Object.prototype.hasOwnProperty.call(this.languageRanges, key)) {\n var range = this.languageRanges[key];\n if (range.isInRange(language)) {\n return true;\n }\n }\n }\n return false;\n };\n // @Override\n CampaignScopeEnvironmentCrossProduct.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n // Null languageRanges is allowed, means will match with everything.\n if (this.languageRanges) {\n for (var key in this.languageRanges) {\n if (Object.prototype.hasOwnProperty.call(this.languageRanges, key) && !this.languageRanges[key]) {\n return false;\n }\n }\n }\n return true;\n };\n return CampaignScopeEnvironmentCrossProduct;\n}(CampaignScope));\nexports.CampaignScopeEnvironmentCrossProduct = CampaignScopeEnvironmentCrossProduct;\nvar CampaignScopeUserFactAny = /** @class */ (function (_super) {\n __extends(CampaignScopeUserFactAny, _super);\n // public for UT only\n function CampaignScopeUserFactAny() {\n return _super.call(this) || this;\n }\n CampaignScopeUserFactAny.deserialize = function (input) {\n var result = new CampaignScopeUserFactAny();\n result.userFacts = UserFactHelper_1.deserializeUserFacts(input);\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignScopeUserFactAny.prototype.setUserFactsProvider = function (userFactsProvider) {\n this.userFactsProvider = userFactsProvider;\n };\n // @Override\n CampaignScopeUserFactAny.prototype.isInScope = function () {\n var _this = this;\n if (isNOU(this.userFacts)) {\n return true;\n }\n if (!this.userFactsProvider) {\n return false;\n }\n // If one of the user fact matches, then this is a yes\n return this.userFacts.some(function (userFact) {\n var rawUserFact = _this.userFactsProvider.getUserFact(userFact.getName());\n return userFact.isAMatch(rawUserFact);\n });\n };\n // @Override\n CampaignScopeUserFactAny.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n return UserFactHelper_1.validateUserFacts(this.userFacts);\n };\n return CampaignScopeUserFactAny;\n}(CampaignScope));\nexports.CampaignScopeUserFactAny = CampaignScopeUserFactAny;\nvar CampaignScopeUserFactAll = /** @class */ (function (_super) {\n __extends(CampaignScopeUserFactAll, _super);\n // public for UT only\n function CampaignScopeUserFactAll() {\n return _super.call(this) || this;\n }\n CampaignScopeUserFactAll.deserialize = function (input) {\n var result = new CampaignScopeUserFactAll();\n result.userFacts = UserFactHelper_1.deserializeUserFacts(input);\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignScopeUserFactAll.prototype.setUserFactsProvider = function (userFactsProvider) {\n this.userFactsProvider = userFactsProvider;\n };\n // @Override\n CampaignScopeUserFactAll.prototype.isInScope = function () {\n var _this = this;\n if (isNOU(this.userFacts)) {\n return true;\n }\n if (!this.userFactsProvider) {\n return false;\n }\n // Get all of the mismatched user facts\n var mismatchedFacts = this.userFacts.filter(function (userFact) {\n var rawUserFact = _this.userFactsProvider.getUserFact(userFact.getName());\n return !userFact.isAMatch(rawUserFact);\n });\n if (mismatchedFacts.length > 0) {\n var mismatchedNames = mismatchedFacts.map(function (userFact) { return userFact.getName(); });\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Summary, {\n Count: mismatchedFacts.length,\n Message: mismatchedNames.toString(),\n });\n return false;\n }\n // If all of the user facts match, then this is a yes\n return true;\n };\n // @Override\n CampaignScopeUserFactAll.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n return UserFactHelper_1.validateUserFacts(this.userFacts);\n };\n return CampaignScopeUserFactAll;\n}(CampaignScope));\nexports.CampaignScopeUserFactAll = CampaignScopeUserFactAll;\n// endregion\n// region Durations\n/**\n * Base class representing a duration in a campaign setting\n */\nvar CampaignDuration = /** @class */ (function () {\n function CampaignDuration() {\n }\n CampaignDuration.deserialize = function (input) {\n var result;\n if (isNOU(input)) {\n return null;\n }\n switch (input.Type) {\n case 0:\n result = CampaignDurationTimeInterval.deserialize(input);\n break;\n case 1:\n result = CampaignDurationSingleBuildChange.deserialize(input);\n break;\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n CampaignDuration.prototype.validate = function () {\n return true;\n };\n return CampaignDuration;\n}());\nexports.CampaignDuration = CampaignDuration;\n/**\n * A Duration expressed in seconds. UTC datetime comparisons are used to determine expiration.\n */\nvar CampaignDurationTimeInterval = /** @class */ (function (_super) {\n __extends(CampaignDurationTimeInterval, _super);\n // public for UT only\n function CampaignDurationTimeInterval() {\n return _super.call(this) || this;\n }\n CampaignDurationTimeInterval.deserialize = function (input) {\n var result = new CampaignDurationTimeInterval();\n if (input) {\n result.intervalSeconds = input.IntervalSeconds;\n }\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignDurationTimeInterval.prototype.asTimeIntervalSeconds = function () {\n return this.intervalSeconds;\n };\n // @Override\n CampaignDurationTimeInterval.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (!isNumber(this.intervalSeconds)) {\n return false;\n }\n return true;\n };\n return CampaignDurationTimeInterval;\n}(CampaignDuration));\nexports.CampaignDurationTimeInterval = CampaignDurationTimeInterval;\n/**\n * A Duration representing exactly 1 change in build number\n */\nvar CampaignDurationSingleBuildChange = /** @class */ (function (_super) {\n __extends(CampaignDurationSingleBuildChange, _super);\n // public for UT only\n function CampaignDurationSingleBuildChange() {\n return _super.call(this) || this;\n }\n CampaignDurationSingleBuildChange.deserialize = function (input) {\n return new CampaignDurationSingleBuildChange();\n };\n // @Override\n CampaignDurationSingleBuildChange.prototype.asTimeIntervalSeconds = function () {\n return null;\n };\n return CampaignDurationSingleBuildChange;\n}(CampaignDuration));\nexports.CampaignDurationSingleBuildChange = CampaignDurationSingleBuildChange;\n/**\n * Class representing AdditionalDataRequested in CampaignDefinition\n */\nvar CampaignAdditionalDataRequested = /** @class */ (function () {\n function CampaignAdditionalDataRequested() {\n }\n CampaignAdditionalDataRequested.deserialize = function (additionalDataRequested) {\n var result = new CampaignAdditionalDataRequested();\n if (!isNOU(additionalDataRequested)) {\n // Convert from AdditionalDataRequested string to enum\n result.additionalData = [];\n for (var _i = 0, additionalDataRequested_1 = additionalDataRequested; _i < additionalDataRequested_1.length; _i++) {\n var additionalData = additionalDataRequested_1[_i];\n if (additionalData === \"EmailAddress\") {\n result.additionalData.push(0 /* EmailAddress */);\n }\n }\n }\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignAdditionalDataRequested.prototype.validate = function () {\n if (isNOU(this.additionalData)) {\n return false;\n }\n return true;\n };\n return CampaignAdditionalDataRequested;\n}());\nexports.CampaignAdditionalDataRequested = CampaignAdditionalDataRequested;\n// endregion\n// region Distribution Schemes\nvar CampaignDistribution = /** @class */ (function () {\n function CampaignDistribution() {\n }\n CampaignDistribution.deserialize = function (input) {\n var result;\n if (input && input.Type === 0) {\n result = CampaignDistributionRamp.deserialize(input);\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n CampaignDistribution.prototype.validate = function () {\n return true;\n };\n return CampaignDistribution;\n}());\nexports.CampaignDistribution = CampaignDistribution;\nvar CampaignDistributionRamp = /** @class */ (function (_super) {\n __extends(CampaignDistributionRamp, _super);\n function CampaignDistributionRamp() {\n return _super.call(this) || this;\n }\n CampaignDistributionRamp.deserialize = function (input) {\n var result = new CampaignDistributionRamp();\n if (input) {\n result.maxDelaySeconds = input.MaxDelaySeconds;\n result.chunks = input.Chunks;\n }\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignDistributionRamp.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (!isNumber(this.maxDelaySeconds) || this.maxDelaySeconds < 0) {\n return false;\n }\n if (!isNumber(this.chunks) || this.chunks < 0) {\n return false;\n }\n return true;\n };\n return CampaignDistributionRamp;\n}(CampaignDistribution));\nexports.CampaignDistributionRamp = CampaignDistributionRamp;\n// endregion\n// region Nomination Scheme\nvar CampaignNominationScheme = /** @class */ (function () {\n function CampaignNominationScheme() {\n }\n CampaignNominationScheme.deserialize = function (input) {\n var result;\n if (input && input.Type === 0) {\n result = CampaignNominationSchemeRatioPercentage.deserialize(input);\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n /**\n * @return The amount of time the survey should be active, in seconds. Abstracts the difference between nominationPeriod and the fallback\n */\n CampaignNominationScheme.prototype.getActiveSurveyTimeIntervalSeconds = function () {\n var nominationTimIntervalSeconds = this.nominationPeriod.asTimeIntervalSeconds();\n if (isNumber(nominationTimIntervalSeconds)) {\n return nominationTimIntervalSeconds;\n }\n return this.fallbackSurveyDurationSeconds;\n };\n /**\n * @return The survey start time, possibly adjusted by an underlying DistributionModel.\n */\n CampaignNominationScheme.prototype.calculateSurveyStartTimeFromDate = function (soonestStartTime) {\n // No adjustment in base class. Derived classes can override and implement delays like a \"ramp\"\n return soonestStartTime ? soonestStartTime : new Date();\n };\n /**\n * @return The survey expiration time, based on the nomination periods and the survey's adjusted start time\n */\n CampaignNominationScheme.prototype.calculateSurveyExpirationTimeFromSurveyStartTime = function (surveyStartTime) {\n surveyStartTime = surveyStartTime ? surveyStartTime : new Date();\n return Utils.addSecondsWithoutOverflow(surveyStartTime, this.getActiveSurveyTimeIntervalSeconds());\n };\n /**\n * @return The appropriate campaign cool down based on whether or not the user activated the survey\n */\n CampaignNominationScheme.prototype.getCampaignCooldown = function (didUserActivateSurvey) {\n if (didUserActivateSurvey) {\n return this.cooldownPeriod;\n }\n else {\n return this.nominationPeriod;\n }\n };\n CampaignNominationScheme.prototype.validate = function () {\n if (isNOU(this.nominationPeriod)) {\n return false;\n }\n if (isNOU(this.cooldownPeriod)) {\n this.cooldownPeriod = this.nominationPeriod;\n }\n if (!isNumber(this.nominationPeriod.asTimeIntervalSeconds())) {\n if (!isNumber(this.fallbackSurveyDurationSeconds) || this.fallbackSurveyDurationSeconds <= 0) {\n return false;\n }\n }\n return true;\n };\n return CampaignNominationScheme;\n}());\nexports.CampaignNominationScheme = CampaignNominationScheme;\n/**\n * Class representing a set of campaign nomination rules to evaluate for in-scope campaigns:\n * percentage\n * re-election durations\n * distribution model (for \"nominated\" candidates)\n */\nvar CampaignNominationSchemeRatioPercentage = /** @class */ (function (_super) {\n __extends(CampaignNominationSchemeRatioPercentage, _super);\n function CampaignNominationSchemeRatioPercentage() {\n return _super.call(this) || this;\n }\n CampaignNominationSchemeRatioPercentage.deserialize = function (input) {\n var result = new CampaignNominationSchemeRatioPercentage();\n if (isNOU(input)) {\n return null;\n }\n if (input.DistributionModel) {\n result.distributionModel = CampaignDistribution.deserialize(input.DistributionModel);\n }\n if (input.CooldownPeriod) {\n result.cooldownPeriod = CampaignDuration.deserialize(input.CooldownPeriod);\n }\n if (input.NominationPeriod) {\n result.nominationPeriod = CampaignDuration.deserialize(input.NominationPeriod);\n }\n result.fallbackSurveyDurationSeconds = input.FallbackSurveyDurationSeconds;\n result.percentageDenominator = input.PercentageDenominator;\n result.percentageNumerator = input.PercentageNumerator;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignNominationSchemeRatioPercentage.prototype.evaluateNominationRules = function () {\n var rand = Math.random();\n // Creates a random number between [0 to (percentageDenominator - 1)]\n // In range [0 to (percentageDenominator - 1)] exactly 'percentageNumerator' values are < percentageNumerator\n return Math.floor(rand * this.percentageDenominator) < this.percentageNumerator;\n };\n // @Override\n CampaignNominationSchemeRatioPercentage.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (!isNumber(this.percentageDenominator) || !isNumber(this.percentageNumerator)) {\n return false;\n }\n if (this.percentageDenominator <= 0 || this.percentageNumerator < 0) {\n return false;\n }\n if (this.percentageNumerator > this.percentageDenominator) {\n return false;\n }\n // distribution model may be null\n return true;\n };\n return CampaignNominationSchemeRatioPercentage;\n}(CampaignNominationScheme));\nexports.CampaignNominationSchemeRatioPercentage = CampaignNominationSchemeRatioPercentage;\n// endregion\n// region Survey Event Definitions\nvar CampaignSurveyEvent = /** @class */ (function () {\n function CampaignSurveyEvent() {\n }\n CampaignSurveyEvent.deserialize = function (input) {\n var result;\n if (isNOU(input)) {\n return null;\n }\n switch (input.Type) {\n case 0:\n result = CampaignSurveyEventCountedActivity.deserialize(input);\n break;\n case 1:\n result = CampaignSurveyEventCountedActivitySequence.deserialize(input);\n break;\n }\n if (result === undefined) {\n return null;\n }\n return result;\n };\n CampaignSurveyEvent.prototype.validate = function () {\n return true;\n };\n return CampaignSurveyEvent;\n}());\nexports.CampaignSurveyEvent = CampaignSurveyEvent;\nvar CampaignSurveyEventCountedActivity = /** @class */ (function (_super) {\n __extends(CampaignSurveyEventCountedActivity, _super);\n // public for UT only\n function CampaignSurveyEventCountedActivity() {\n return _super.call(this) || this;\n }\n CampaignSurveyEventCountedActivity.deserialize = function (input) {\n var result = new CampaignSurveyEventCountedActivity();\n if (isNOU(input)) {\n return null;\n }\n result.activity = input.Activity;\n result.count = input.Count;\n result.isAggregate = input.IsAggregate;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignSurveyEventCountedActivity.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (isNOU(this.activity) || !isString(this.activity)) {\n return false;\n }\n if (!isNumber(this.count) || this.count <= 0) {\n return false;\n }\n if (!isBoolean(this.isAggregate)) {\n return false;\n }\n return true;\n };\n return CampaignSurveyEventCountedActivity;\n}(CampaignSurveyEvent));\nexports.CampaignSurveyEventCountedActivity = CampaignSurveyEventCountedActivity;\nvar CampaignSurveyEventCountedActivitySequence = /** @class */ (function (_super) {\n __extends(CampaignSurveyEventCountedActivitySequence, _super);\n // public for UT only\n function CampaignSurveyEventCountedActivitySequence() {\n return _super.call(this) || this;\n }\n CampaignSurveyEventCountedActivitySequence.deserialize = function (input) {\n var result = new CampaignSurveyEventCountedActivitySequence();\n var sequence = [];\n if (isNOU(input)) {\n return null;\n }\n for (var key in input.Sequence) {\n if (Object.prototype.hasOwnProperty.call(input.Sequence, key)) {\n var readActivity = input.Sequence[key];\n if (readActivity) {\n sequence.push(CampaignSurveyEventCountedActivity.deserialize(readActivity));\n }\n }\n }\n if (sequence.length === 0) {\n sequence = null;\n }\n result.sequence = sequence;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n // @Override\n CampaignSurveyEventCountedActivitySequence.prototype.validate = function () {\n if (!_super.prototype.validate.call(this)) {\n return false;\n }\n if (isNOU(this.sequence)) {\n return false;\n }\n for (var key in this.sequence) {\n if (Object.prototype.hasOwnProperty.call(this.sequence, key) && !this.sequence[key]) {\n return false;\n }\n }\n return true;\n };\n return CampaignSurveyEventCountedActivitySequence;\n}(CampaignSurveyEvent));\nexports.CampaignSurveyEventCountedActivitySequence = CampaignSurveyEventCountedActivitySequence;\n// endregion\n// region Survey Content Definitions\nvar CampaignSurveyContent = /** @class */ (function () {\n function CampaignSurveyContent() {\n }\n CampaignSurveyContent.deserialize = function (input, optionalComponents) {\n var result = new CampaignSurveyContent();\n if (isNOU(input)) {\n return null;\n }\n result.prompt = CampaignSurveyContentPrompt.deserialize(input.Prompt);\n result.rating = CampaignSurveyContentRating.deserialize(input.Rating);\n result.comment = CampaignSurveyContentComment.deserialize(input.Question);\n result.multipleChoice = CampaignSurveyContentMultipleChoice.deserialize(input.MultipleChoice);\n result.intercept = CampaignSurveyContentIntercept.deserialize(input.Intercept);\n result.cvSurvey = CampaignSurveyContentCVSurvey.deserialize(input.CVSurveyParams);\n if (!result.validate(optionalComponents)) {\n return null;\n }\n return result;\n };\n CampaignSurveyContent.prototype.validate = function (optionalComponents) {\n if (!isNOU(this.intercept)) {\n // An intercept survey only requires intercept.\n return true;\n }\n if (isNOU(this.prompt)) {\n return false;\n }\n if (optionalComponents) {\n return !isNOU(this.rating) ||\n !isNOU(this.multipleChoice) ||\n !isNOU(this.comment);\n }\n return !isNOU(this.rating) && !isNOU(this.comment);\n };\n return CampaignSurveyContent;\n}());\nexports.CampaignSurveyContent = CampaignSurveyContent;\nvar CampaignSurveyContentMultipleChoice = /** @class */ (function () {\n function CampaignSurveyContentMultipleChoice() {\n }\n CampaignSurveyContentMultipleChoice.deserialize = function (input) {\n var result = new CampaignSurveyContentMultipleChoice();\n if (isNOU(input)) {\n return null;\n }\n result.question = input.Question;\n result.availableOptions = input.AvailableOptions;\n result.minNumberOfSelectedOptions = input.MinNumberOfSelectedOptions;\n result.maxNumberOfSelectedOptions = input.MaxNumberOfSelectedOptions;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentMultipleChoice.prototype.validate = function () {\n if (isNOU(this.question) || !isString(this.question) ||\n isNOU(this.availableOptions) || !Array.isArray(this.availableOptions) || this.availableOptions.length < 2 ||\n isNOU(this.minNumberOfSelectedOptions) || !isNumber(this.minNumberOfSelectedOptions) ||\n isNOU(this.maxNumberOfSelectedOptions) || !isNumber(this.maxNumberOfSelectedOptions)) {\n return false;\n }\n // expect all availableOptions values to be string\n for (var key in this.availableOptions) {\n if (Object.prototype.hasOwnProperty.call(this.availableOptions, key)) {\n if (!isString(this.availableOptions[key])) {\n return false;\n }\n }\n }\n return true;\n };\n return CampaignSurveyContentMultipleChoice;\n}());\nexports.CampaignSurveyContentMultipleChoice = CampaignSurveyContentMultipleChoice;\nvar CampaignSurveyContentCVSurvey = /** @class */ (function () {\n function CampaignSurveyContentCVSurvey() {\n }\n CampaignSurveyContentCVSurvey.deserialize = function (input) {\n var result = new CampaignSurveyContentCVSurvey();\n if (isNOU(input)) {\n return null;\n }\n result.customerVoiceFormId = input.CustomerVoiceFormId;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentCVSurvey.prototype.validate = function () {\n return (!isNOU(this.customerVoiceFormId) && isString(this.customerVoiceFormId));\n };\n return CampaignSurveyContentCVSurvey;\n}());\nexports.CampaignSurveyContentCVSurvey = CampaignSurveyContentCVSurvey;\nvar CampaignSurveyContentPrompt = /** @class */ (function () {\n function CampaignSurveyContentPrompt() {\n }\n CampaignSurveyContentPrompt.deserialize = function (input) {\n var result = new CampaignSurveyContentPrompt();\n if (isNOU(input)) {\n return null;\n }\n result.title = input.Title;\n result.question = input.Question;\n result.yesLabel = input.YesLabel;\n result.noLabel = input.NoLabel;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentPrompt.prototype.validate = function () {\n if (isNOU(this.title) || !isString(this.title) ||\n isNOU(this.question) || !isString(this.question) ||\n isNOU(this.yesLabel) || !isString(this.yesLabel) ||\n isNOU(this.noLabel) || !isString(this.noLabel)) {\n return false;\n }\n return true;\n };\n return CampaignSurveyContentPrompt;\n}());\nexports.CampaignSurveyContentPrompt = CampaignSurveyContentPrompt;\nvar CampaignSurveyContentIntercept = /** @class */ (function () {\n function CampaignSurveyContentIntercept() {\n }\n CampaignSurveyContentIntercept.deserialize = function (input) {\n var result = new CampaignSurveyContentIntercept();\n if (isNOU(input)) {\n return null;\n }\n result.title = input.Title;\n result.question = input.Question;\n result.url = input.Url;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentIntercept.prototype.validate = function () {\n if (isNOU(this.title) || !isString(this.title) ||\n isNOU(this.question) || !isString(this.question) ||\n isNOU(this.url) || !isString(this.url)) {\n return false;\n }\n return true;\n };\n return CampaignSurveyContentIntercept;\n}());\nexports.CampaignSurveyContentIntercept = CampaignSurveyContentIntercept;\nvar CampaignSurveyContentRating = /** @class */ (function () {\n function CampaignSurveyContentRating() {\n }\n CampaignSurveyContentRating.deserialize = function (input) {\n var result = new CampaignSurveyContentRating();\n if (isNOU(input)) {\n return null;\n }\n result.isZeroBased = input.IsZeroBased;\n result.question = input.Question;\n result.ratingValuesAscending = input.RatingValuesAscending;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentRating.prototype.validate = function () {\n // expect ratingValuesAscending to contain between 2 to 11 values\n if (isNOU(this.question) || !isString(this.question) ||\n isNOU(this.ratingValuesAscending) || !Array.isArray(this.ratingValuesAscending) ||\n this.ratingValuesAscending.length < 2 || this.ratingValuesAscending.length > 11) {\n return false;\n }\n if (isNOU(this.isZeroBased)) {\n // default to false if not provided\n this.isZeroBased = false;\n }\n else if (!isBoolean(this.isZeroBased)) {\n // fail validation if non boolean value is provided\n return false;\n }\n // expect all ratingValuesAscending values to be string\n for (var key in this.ratingValuesAscending) {\n if (Object.prototype.hasOwnProperty.call(this.ratingValuesAscending, key)) {\n if (!isString(this.ratingValuesAscending[key])) {\n return false;\n }\n }\n }\n return true;\n };\n return CampaignSurveyContentRating;\n}());\nexports.CampaignSurveyContentRating = CampaignSurveyContentRating;\nvar CampaignSurveyContentComment = /** @class */ (function () {\n function CampaignSurveyContentComment() {\n }\n CampaignSurveyContentComment.deserialize = function (input) {\n var result = new CampaignSurveyContentComment();\n if (isNOU(input)) {\n return null;\n }\n // @SerializedName(\"Question\")\n result.question = input.Question;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyContentComment.prototype.validate = function () {\n if (isNOU(this.question) || !isString(this.question)) {\n return false;\n }\n return true;\n };\n return CampaignSurveyContentComment;\n}());\nexports.CampaignSurveyContentComment = CampaignSurveyContentComment;\n// endregion\n// region Survey Metadata Definitions\nvar CampaignSurveyMetadata = /** @class */ (function () {\n function CampaignSurveyMetadata() {\n }\n CampaignSurveyMetadata.deserialize = function (input) {\n if (isNOU(input)) {\n return null;\n }\n var result = new CampaignSurveyMetadata();\n result.contentMetadata = input.ContentMetadata;\n if (!result.validate()) {\n return null;\n }\n return result;\n };\n CampaignSurveyMetadata.prototype.validate = function () {\n if (isNOU(this.contentMetadata) || !Utils.isObject(this.contentMetadata)) {\n return false;\n }\n return true;\n };\n return CampaignSurveyMetadata;\n}());\nexports.CampaignSurveyMetadata = CampaignSurveyMetadata;\n// endregion\n// region Survey Template definitions\nvar CampaignSurveyTemplate = /** @class */ (function () {\n function CampaignSurveyTemplate() {\n }\n CampaignSurveyTemplate.deserialize = function (input) {\n var _a, _b, _c, _d, _e, _f, _g;\n var result;\n var validationError = '';\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n switch (input.Type) {\n case 0 /* Nps5PointStatic */:\n _a = CampaignSurveyTemplateNps5PointStatic.deserialize(input), result = _a[0], validationError = _a[1];\n break;\n case 1 /* Nps11PointStatic */:\n _b = CampaignSurveyTemplateNps11PointStatic.deserialize(input), result = _b[0], validationError = _b[1];\n break;\n case 2 /* Fps */:\n _c = CampaignSurveyTemplateFps.deserialize(input), result = _c[0], validationError = _c[1];\n break;\n case 3 /* Nlqs */:\n _d = CampaignSurveyTemplateNlqs.deserialize(input), result = _d[0], validationError = _d[1];\n break;\n case 4 /* Nps */:\n _e = CampaignSurveyTemplateNps.deserialize(input), result = _e[0], validationError = _e[1];\n break;\n case 22 /* GenericMessagingSurface */:\n _f = CampaignSurveyTemplateGenericMessagingSurface.deserialize(input), result = _f[0], validationError = _f[1];\n break;\n case 5 /* Intercept */:\n _g = CampaignSurveyTemplateIntercept.deserialize(input), result = _g[0], validationError = _g[1];\n break;\n }\n if (isNOU(result)) {\n return [null, validationError];\n }\n return [result, validationError];\n };\n CampaignSurveyTemplate.prototype.validate = function () {\n var _this = this;\n var _a, _b, _c;\n if (isNOU(this.activationEvent)) {\n return 'The survey template is missing the activation event.';\n }\n // Validate UX Schema\n if (this.uxSchema) {\n // Schema pages validation\n var pagesValidityError = this.validatePages(this.uxSchema.pages);\n if (pagesValidityError) {\n return pagesValidityError;\n }\n // Schema variables validation\n if (this.uxSchema.variables) {\n for (var _i = 0, _d = Object.keys(this.uxSchema.variables); _i < _d.length; _i++) {\n var key = _d[_i];\n if (this.uxSchema.variables[key] === null || this.uxSchema.variables[key] === undefined) {\n return \"Schema variable of key \" + key + \" does not have a corresponding value.\";\n }\n if (Object.prototype.hasOwnProperty.call(dynamicUxSchemaVariables, key)) {\n this.uxSchema.variables[key] = dynamicUxSchemaVariables[key];\n }\n else {\n return \"Host app does not provide Schema variable of key \" + key + \".\";\n }\n }\n }\n // Additional capabilities validation\n if (this.uxSchema.additionalCapabilities) {\n if (((_a = this.uxSchema.additionalCapabilities[floodgate_shared_typings_1.IUxSchemaAdditionalCapabilitiesTypes.Email]) === null || _a === void 0 ? void 0 : _a.targetPage) == null) {\n return 'Schema additional capability of Email is defined but has no target page.';\n }\n else {\n var targetPage = (_b = this.uxSchema.additionalCapabilities[floodgate_shared_typings_1.IUxSchemaAdditionalCapabilitiesTypes.Email]) === null || _b === void 0 ? void 0 : _b.targetPage;\n if (targetPage < 0 || targetPage >= this.uxSchema.pages.length) {\n return \"Schema additional capability of Email has its target page equal to \" + targetPage + \" which is out of range.\";\n }\n }\n }\n // Branching rules validation\n if (this.uxSchema.branchingRules && Array.isArray(this.uxSchema.branchingRules) && this.uxSchema.branchingRules.length > 0) {\n for (var _e = 0, _f = this.uxSchema.branchingRules; _e < _f.length; _e++) {\n var rule = _f[_e];\n if (rule.conditions && Array.isArray(rule.conditions) && rule.conditions.length > 0) {\n var _loop_1 = function (condition) {\n if (condition.conditionType == null ||\n condition.conditionValue == null ||\n condition.sourceId == null ||\n condition.sourceType == null) {\n return { value: 'A condition in the branching rules is missing a type/value/sourceId/sourceType.' };\n }\n else {\n if (condition.sourceType === floodgate_shared_typings_1.ConditionSourceType.Variable) {\n if (!this_1.uxSchema.variables ||\n !Object.keys(this_1.uxSchema.variables).includes(condition.sourceId)) {\n return { value: \"The variable \" + condition.sourceId + \" is used in the branching rules but not defined among the schema variables.\" };\n }\n }\n else {\n if (condition.sourcePageIndex == null) {\n return { value: 'A condition in the branching rules of type question is missing a sourcePageIndex.' };\n }\n else {\n var questionIndex = (_c = this_1.uxSchema.pages[condition.sourcePageIndex]) === null || _c === void 0 ? void 0 : _c.questions.findIndex(function (question) { return question.id === condition.sourceId; });\n if (questionIndex == null || questionIndex < 0) {\n return { value: \"The target question with id \" + condition.sourceId + \" does not exist.\" };\n }\n else if (condition.subSourceIndex) {\n if (this_1.uxSchema.pages[condition.sourcePageIndex].questions[questionIndex].type != floodgate_shared_typings_1.QuestionType.Likert) {\n return { value: \"A subsource page index of \" + condition.subSourceIndex + \" is provided\\nbut the question with id \" + condition.sourceId + \" is not of type Likert.\" };\n }\n else {\n var likertQuestion = this_1.uxSchema.pages[condition.sourcePageIndex].questions[questionIndex];\n if (likertQuestion.horizontalStatements.length <= condition.subSourceIndex) {\n return { value: \"The likert question with id \" + condition.sourceId + \" doesn't have\\na horizontal option with index \" + condition.subSourceIndex + \".\" };\n }\n }\n }\n }\n }\n }\n };\n var this_1 = this;\n for (var _g = 0, _h = rule.conditions; _g < _h.length; _g++) {\n var condition = _h[_g];\n var state_1 = _loop_1(condition);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n if (rule.targets && Array.isArray(rule.targets) && rule.targets.length > 0) {\n var _loop_2 = function (target) {\n if (target.type === floodgate_shared_typings_1.BranchingTargetType.Page) {\n var pageTarget = target;\n if (pageTarget.hiddenPageIndices.filter(function (index) { return index < 0; }).length > 0 ||\n pageTarget.hiddenPageIndices.filter(function (index) { return index >= _this.uxSchema.pages.length; }).length > 0) {\n return { value: 'Some of the hidden pages indexes are out of range.' };\n }\n }\n else {\n var overrideTarget_1 = target;\n if (overrideTarget_1.targetPageIndex < 0 || overrideTarget_1.targetPageIndex >= this_2.uxSchema.pages.length) {\n return { value: 'An override target has its page index out of range.' };\n }\n else {\n var overrideTargetQuestion = this_2.uxSchema.pages[overrideTarget_1.targetPageIndex].questions.find(function (question) {\n return question.id === overrideTarget_1.targetOverrideId;\n });\n if (!overrideTargetQuestion) {\n return { value: \"An override target's question on page \" + overrideTarget_1.targetPageIndex + \" does not exist\" };\n }\n }\n }\n };\n var this_2 = this;\n for (var _j = 0, _k = rule.targets; _j < _k.length; _j++) {\n var target = _k[_j];\n var state_2 = _loop_2(target);\n if (typeof state_2 === \"object\")\n return state_2.value;\n }\n }\n }\n }\n }\n return '';\n };\n CampaignSurveyTemplate.prototype.validatePages = function (schemaPages) {\n if (!schemaPages || !Array.isArray(schemaPages) || schemaPages.length === 0) {\n return 'Schema has no pages.';\n }\n else {\n for (var _i = 0, schemaPages_1 = schemaPages; _i < schemaPages_1.length; _i++) {\n var page = schemaPages_1[_i];\n if (!page.id) {\n return 'Page is missing an id.';\n }\n else if (page.displayName == null) {\n return 'Page is missing a displayName.';\n }\n else if (!page.questions || !Array.isArray(page.questions) || page.questions.length === 0) {\n return \"Page \" + page.id + \" does not have any questions.\";\n }\n else {\n for (var _a = 0, _b = page.questions; _a < _b.length; _a++) {\n var question = _b[_a];\n var questionError = this.validateQuestion(question);\n if (questionError) {\n return \"On page \" + page.id + \" \" + questionError;\n }\n }\n }\n }\n }\n return '';\n };\n CampaignSurveyTemplate.prototype.validateQuestion = function (question) {\n var questionError = '';\n if (!question.id || !question.questionLabel || !question.type) {\n questionError += 'the question is missing one of the following properties: id, label or question type.';\n }\n else {\n if (question.type === floodgate_shared_typings_1.QuestionType.SingleSelect &&\n (!question.availableOptions || !Array.isArray(question.availableOptions) ||\n question.availableOptions.length < 2 || question.availableOptions.length > 11)) {\n questionError += \"the question \" + question.id + \" of type SingleSelect must have at least 2 and at most 11 available options.\";\n }\n if (question.type == floodgate_shared_typings_1.QuestionType.MultipleChoice &&\n (!question.availableOptions || !Array.isArray(question.availableOptions) ||\n question.availableOptions.length < 2 || question.availableOptions.length > 11)) {\n questionError += \"the question \" + question.id + \" of type MultipleChoice must have at least 2 and at most 11 available options.\";\n }\n if (question.type === floodgate_shared_typings_1.QuestionType.Rating && (!question.leftLegendValue || !question.rightLegendValue ||\n !question.ratingValues || !Array.isArray(question.ratingValues) ||\n question.ratingValues.length < 2 || question.ratingValues.length > 11)) {\n questionError +=\n \"the question \" + question.id + \" of type rating must have a right and left legend and have at least 2 and at most 11 rating values.\";\n }\n if (question.type === floodgate_shared_typings_1.QuestionType.Likert &&\n (!question.horizontalStatements || !Array.isArray(question.horizontalStatements) ||\n !question.verticalOptions || !Array.isArray(question.verticalOptions) ||\n question.horizontalStatements.length < 1 || question.horizontalStatements.length > 10 ||\n question.verticalOptions.length < 2 || question.verticalOptions.length > 7)) {\n questionError += \"the question \" + question.id + \" of type Likert must have\\nat least 2 and at most 7 vertical options and at least 1 and at most 10 horizontal options.\";\n }\n }\n return questionError;\n };\n return CampaignSurveyTemplate;\n}());\nexports.CampaignSurveyTemplate = CampaignSurveyTemplate;\nvar CampaignSurveyTemplateFps = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateFps, _super);\n // public for UT only\n function CampaignSurveyTemplateFps() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateFps.deserialize = function (input) {\n var result = new CampaignSurveyTemplateFps();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n result.content = CampaignSurveyContent.deserialize(input.Content, true /* optionalComponents */);\n result.uxSchema = input.UxSchema;\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateFps.prototype.validate = function () {\n var validationError = _super.prototype.validate.call(this);\n if (validationError) {\n return validationError;\n }\n else if ((isNOU(this.content) && isNOU(this.uxSchema))) {\n return 'The survey schema does not have any content or ux schema';\n }\n return '';\n };\n return CampaignSurveyTemplateFps;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateFps = CampaignSurveyTemplateFps;\nvar CampaignSurveyTemplateNlqs = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateNlqs, _super);\n // public for UT only\n function CampaignSurveyTemplateNlqs() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateNlqs.deserialize = function (input) {\n var result = new CampaignSurveyTemplateNlqs();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n result.content = CampaignSurveyContent.deserialize(input.Content);\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateNlqs.prototype.validate = function () {\n var validationError = _super.prototype.validate.call(this);\n if (validationError) {\n return validationError;\n }\n else if (isNOU(this.content)) {\n return 'The survey schema does not have any content';\n }\n return '';\n };\n return CampaignSurveyTemplateNlqs;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateNlqs = CampaignSurveyTemplateNlqs;\nvar CampaignSurveyTemplateNps = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateNps, _super);\n // public for UT only\n function CampaignSurveyTemplateNps() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateNps.deserialize = function (input) {\n var result = new CampaignSurveyTemplateNps();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n result.content = CampaignSurveyContent.deserialize(input.Content);\n result.uxSchema = input.UxSchema;\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateNps.prototype.validate = function () {\n var validationError = _super.prototype.validate.call(this);\n if (validationError) {\n return validationError;\n }\n else if (isNOU(this.content) && isNOU(this.uxSchema)) {\n return 'The survey schema does not have any content or ux schema';\n }\n return '';\n };\n return CampaignSurveyTemplateNps;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateNps = CampaignSurveyTemplateNps;\nvar CampaignSurveyTemplateNps5PointStatic = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateNps5PointStatic, _super);\n // public for UT only\n function CampaignSurveyTemplateNps5PointStatic() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateNps5PointStatic.deserialize = function (input) {\n var result = new CampaignSurveyTemplateNps5PointStatic();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateNps5PointStatic.prototype.validate = function () {\n return _super.prototype.validate.call(this);\n };\n return CampaignSurveyTemplateNps5PointStatic;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateNps5PointStatic = CampaignSurveyTemplateNps5PointStatic;\nvar CampaignSurveyTemplateNps11PointStatic = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateNps11PointStatic, _super);\n function CampaignSurveyTemplateNps11PointStatic() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateNps11PointStatic.deserialize = function (input) {\n var result = new CampaignSurveyTemplateNps11PointStatic();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateNps11PointStatic.prototype.validate = function () {\n return _super.prototype.validate.call(this);\n };\n return CampaignSurveyTemplateNps11PointStatic;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateNps11PointStatic = CampaignSurveyTemplateNps11PointStatic;\nvar CampaignSurveyTemplateGenericMessagingSurface = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateGenericMessagingSurface, _super);\n function CampaignSurveyTemplateGenericMessagingSurface() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateGenericMessagingSurface.deserialize = function (input) {\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n var result = new CampaignSurveyTemplateGenericMessagingSurface();\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n result.metadata = CampaignSurveyMetadata.deserialize(input.Metadata);\n result.maxLaunches = input.MaxLaunches;\n result.maxLaunchesPerSession = input.MaxLaunchesPerSession;\n result.preferredLaunchType = input.PreferredLaunchType;\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateGenericMessagingSurface.prototype.validate = function () {\n var validationError = _super.prototype.validate.call(this);\n if (validationError) {\n return validationError;\n }\n else if (isNOU(this.metadata)) {\n return 'The metadata is undefined';\n }\n else if ((!isNOU(this.maxLaunches) && (!isNumber(this.maxLaunches) || this.maxLaunches <= 0)) ||\n (!isNOU(this.maxLaunchesPerSession) && (!isNumber(this.maxLaunchesPerSession) || this.maxLaunchesPerSession <= 0))) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_LocalError(\"Invalid Multi Launch settings\", this.maxLaunches, this.maxLaunchesPerSession);\n return 'Invalid Multi Launch settings';\n }\n // check for valid values\n if (isNumber(this.maxLaunches) &&\n isNumber(this.maxLaunchesPerSession) &&\n this.maxLaunchesPerSession > this.maxLaunches) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_LocalError(\"Invalid Multi launch settings\", this.maxLaunches, this.maxLaunchesPerSession);\n return 'Invalid Multi Launch settings';\n }\n if (!isNOU(this.preferredLaunchType) && !isString(this.preferredLaunchType)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_LocalError(\"Invalid launcher type\", this.preferredLaunchType);\n return 'Invalid launcher type';\n }\n return '';\n };\n return CampaignSurveyTemplateGenericMessagingSurface;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateGenericMessagingSurface = CampaignSurveyTemplateGenericMessagingSurface;\nvar CampaignSurveyTemplateIntercept = /** @class */ (function (_super) {\n __extends(CampaignSurveyTemplateIntercept, _super);\n // public for UT only\n function CampaignSurveyTemplateIntercept() {\n return _super.call(this) || this;\n }\n CampaignSurveyTemplateIntercept.deserialize = function (input) {\n var result = new CampaignSurveyTemplateIntercept();\n if (isNOU(input)) {\n return [null, 'deserialize parameter is null'];\n }\n result.activationEvent = CampaignSurveyEvent.deserialize(input.ActivationEvent);\n result.content = CampaignSurveyContent.deserialize(input.Content);\n var validationError = result.validate();\n if (validationError) {\n result = null;\n }\n return [result, validationError];\n };\n CampaignSurveyTemplateIntercept.prototype.validate = function () {\n var validationError = _super.prototype.validate.call(this);\n if (validationError) {\n return validationError;\n }\n else if (isNOU(this.content)) {\n return 'The survey schema does not have any content';\n }\n return '';\n };\n return CampaignSurveyTemplateIntercept;\n}(CampaignSurveyTemplate));\nexports.CampaignSurveyTemplateIntercept = CampaignSurveyTemplateIntercept;\n// endregion\n// region Campaign Definition\nvar CampaignDefinition = /** @class */ (function () {\n function CampaignDefinition() {\n }\n /**\n * Method to deserialize a JSON object to class object\n * @param input: JSON object\n * Returns result of validation check\n */\n CampaignDefinition.deserialize = function (input) {\n var _a;\n var result = new CampaignDefinition();\n var validationError;\n if (isNOU(input)) {\n return null;\n }\n result.campaignId = input.CampaignId;\n result.governedChannelType = input.GovernedChannelType;\n result.startTime = input.StartTimeUtc;\n result.endTime = input.EndTimeUtc;\n result.launcherType = input.LauncherType;\n result.primaryPriority = input.PrimaryPriority;\n result.tags = input.Tags;\n var additionalDataRequested = CampaignAdditionalDataRequested.deserialize(input.AdditionalDataRequested);\n result.additionalDataRequested = additionalDataRequested ? additionalDataRequested.additionalData : [];\n if (input.SurveyTemplate) {\n _a = CampaignSurveyTemplate.deserialize(input.SurveyTemplate), result.surveyTemplate = _a[0], validationError = _a[1];\n if (validationError) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.CampaignDefinitionProvider.CampaignSurveyTemplate.SchemaValidationError, {\n CampaignId: input.CampaignId,\n ErrorMessage: validationError\n });\n }\n }\n if (input.NominationScheme) {\n result.nominationScheme = CampaignNominationScheme.deserialize(input.NominationScheme);\n }\n if (input.Scope) {\n result.scope = CampaignScope.deserialize(input.Scope);\n }\n if (!isNOU(input.TreatmentType)) {\n result.treatmentType = input.TreatmentType;\n }\n else {\n result.treatmentType = 255 /* none */;\n }\n if (!isNOU(input.BusinessLevel)) {\n result.businessLevel = input.BusinessLevel;\n }\n if (!result.validate()) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_LocalError(\"Invalid definition\", input);\n return null;\n }\n return result;\n };\n CampaignDefinition.prototype.validate = function () {\n var _a, _b;\n if (isNOU(this.scope)) {\n this.scope = new CampaignScopeAny();\n }\n if (isNOU(this.campaignId) || !isString(this.campaignId)) {\n return false;\n }\n if (!isNumber(this.governedChannelType) || !Utils.isEnumValue(this.governedChannelType, floodgate_shared_typings_1.GovernedChannelType)) {\n return false;\n }\n if (isNOU(this.nominationScheme)) {\n return false;\n }\n if (isNOU(this.surveyTemplate)) {\n return false;\n }\n if (!isNOU(this.launcherType) && !isString(this.launcherType)) {\n return false;\n }\n if (this.launcherType === \"customervoice\" && isNOU((_b = (_a = this.surveyTemplate.content) === null || _a === void 0 ? void 0 : _a.cvSurvey) === null || _b === void 0 ? void 0 : _b.customerVoiceFormId)) {\n return false;\n }\n if (!isNOU(this.primaryPriority) && !isNumber(this.primaryPriority)) {\n return false;\n }\n if (this.tags && !Array.isArray(this.tags)) {\n return false;\n }\n // Campaigns with no start date are effectively disabled, in fact, this is the supported way to stage a definition but have it be turned off\n if (isNOU(this.startTime)) {\n this.startTime = getDistantFuture();\n }\n else if (isUtcDatetimeString(this.startTime)) {\n this.startTime = stringToDate(this.startTime);\n }\n else {\n return false;\n }\n // Campaigns with no end date are effectively on indefinitely\n if (isNOU(this.endTime) ||\n (typeof (this.endTime) === \"string\" && this.endTime === \"\")) {\n this.endTime = getDistantFuture();\n }\n else if (isUtcDatetimeString(this.endTime)) {\n this.endTime = stringToDate(this.endTime);\n }\n else {\n return false;\n }\n return true;\n };\n return CampaignDefinition;\n}());\nexports.CampaignDefinition = CampaignDefinition;\n/**\n * Given an array of campaign definitions, returns the valid ones and errors if any are invalid.\n * @param input: JSON object\n * Returns the valid definitions and the error as string if any.\n */\nfunction FilterValidCampaignDefinitions(campaignDefinitions) {\n var result = [];\n if (isNOU(campaignDefinitions)) {\n return { result: result, error: \"Empty\", invalidIndexes: [] };\n }\n if (!Array.isArray(campaignDefinitions)) {\n return { result: result, error: \"Not an array\", invalidIndexes: [] };\n }\n var badIndexes = [];\n for (var i = 0; i < campaignDefinitions.length; i++) {\n var definition = campaignDefinitions[i];\n if (definition) {\n var newDefinition = CampaignDefinition.deserialize(definition);\n newDefinition\n ? result.push(newDefinition)\n : badIndexes.push(i);\n }\n else {\n badIndexes.push(i);\n }\n }\n var error = badIndexes.length > 0 ? \"Invalid campaign definitions at indexes: \" + badIndexes.toString() : undefined;\n return { result: result, error: error, invalidIndexes: badIndexes };\n}\nexports.FilterValidCampaignDefinitions = FilterValidCampaignDefinitions;\n// endregion\nvar FileSystemCampaignDefinitionProvider = /** @class */ (function () {\n function FileSystemCampaignDefinitionProvider(storage) {\n if (isNOU(storage)) {\n throw new Error(\"storage must not be null\");\n }\n this.storage = storage;\n }\n FileSystemCampaignDefinitionProvider.prototype.load = function () {\n var definitionString = this.storage.read(floodgate_shared_typings_1.FloodgateStorageProviderFileType.CampaignDefinitions);\n if (isNOU(definitionString)) {\n return [];\n }\n var readDefinitions;\n try {\n readDefinitions = JSON.parse(definitionString);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_CampaignLoad_Failed(e.toString());\n return [];\n }\n // This ignores errors in validation for now.\n return FilterValidCampaignDefinitions(readDefinitions).result;\n };\n FileSystemCampaignDefinitionProvider.prototype.loadAsync = function () {\n var definitions = this.load();\n return new Promise(function onFulfilled(resolve, reject) {\n resolve(definitions);\n });\n };\n FileSystemCampaignDefinitionProvider.prototype.hasDataChanged = function () {\n // Not implemented - return false\n return false;\n };\n return FileSystemCampaignDefinitionProvider;\n}());\nexports.FileSystemCampaignDefinitionProvider = FileSystemCampaignDefinitionProvider;\nvar DynamicCampaignDefinitionProvider = /** @class */ (function () {\n function DynamicCampaignDefinitionProvider(storageProvider) {\n this.prefixRegex = new RegExp(/^(Floodgate_Campaign_)/im);\n if (isNOU(storageProvider)) {\n throw new Error(\"storage must not be null\");\n }\n this.ecsCampaignDefintionProvider = storageProvider;\n }\n DynamicCampaignDefinitionProvider.prototype.hasDataChanged = function () {\n var ecsResponse = this.ecsCampaignDefintionProvider.getConfig();\n var newEtag = ecsResponse === null || ecsResponse === void 0 ? void 0 : ecsResponse.eTag;\n // If the etag changes, switch the flag so the campaign loading will refresh next time\n // the eTag will be updated later when the DefinitionProvider is loading\n return newEtag !== this.eTag;\n };\n DynamicCampaignDefinitionProvider.prototype.load = function () {\n var _this = this;\n var ecsCampaignDefinitions = [];\n var ecsResponse = this.ecsCampaignDefintionProvider.getConfig();\n this.eTag = ecsResponse === null || ecsResponse === void 0 ? void 0 : ecsResponse.eTag;\n if (Utils.isNOU(ecsResponse)) {\n // Potentially first boot, no config yet.\n return ecsCampaignDefinitions;\n }\n else if (Object.keys(ecsResponse === null || ecsResponse === void 0 ? void 0 : ecsResponse.config).length === 0) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.DynamicCampaignDefinitionProvider.Load.EmptyEcsConfig, {\n Count: 0,\n Message: \"Empty config returned from ECS\",\n }, 0.1);\n return ecsCampaignDefinitions;\n }\n Object.entries(ecsResponse.config).forEach(function (_a) {\n var key = _a[0], val = _a[1];\n if (_this.prefixRegex.test(key)) {\n if (!Utils.isObject(val)) {\n return false;\n }\n ecsCampaignDefinitions.push(val);\n }\n });\n var filteredEcsCampaignDefinitions = FilterValidCampaignDefinitions(ecsCampaignDefinitions);\n if (filteredEcsCampaignDefinitions.invalidIndexes.length > 0) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.DynamicCampaignDefinitionProvider.Load.InvalidEcsConfig, {\n Count: filteredEcsCampaignDefinitions.invalidIndexes.length,\n Message: filteredEcsCampaignDefinitions.invalidIndexes.toString(),\n });\n }\n return filteredEcsCampaignDefinitions.result;\n };\n DynamicCampaignDefinitionProvider.prototype.loadAsync = function () {\n return Promise.resolve(this.load());\n };\n return DynamicCampaignDefinitionProvider;\n}());\nexports.DynamicCampaignDefinitionProvider = DynamicCampaignDefinitionProvider;\nfunction setDynamicUxSchemaVariables(dynamicVariables) {\n dynamicUxSchemaVariables = dynamicVariables !== null && dynamicVariables !== void 0 ? dynamicVariables : {};\n}\nexports.setDynamicUxSchemaVariables = setDynamicUxSchemaVariables;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0NhbXBhaWduL0NhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyLnRzPzc3MmYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZLQTRCMEM7QUFFMUMsb0dBQThDO0FBQzlDLHNIQUFxRDtBQUVyRCxxSUFBcUY7QUFDckYsc0ZBQWtDO0FBRTFCLG9CQUFnQixHQUE4RSxLQUFLLGlCQUFuRixFQUFFLFNBQVMsR0FBbUUsS0FBSyxVQUF4RSxFQUFFLEtBQUssR0FBNEQsS0FBSyxNQUFqRSxFQUFFLFFBQVEsR0FBa0QsS0FBSyxTQUF2RCxFQUFFLFFBQVEsR0FBd0MsS0FBSyxTQUE3QyxFQUFFLG1CQUFtQixHQUFtQixLQUFLLG9CQUF4QixFQUFFLFlBQVksR0FBSyxLQUFLLGFBQVYsQ0FBVztBQUM1RyxJQUFJLHdCQUF3QixHQUF1QixFQUFFLENBQUM7QUFFdEQsd0JBQXdCO0FBRXhCOztHQUVHO0FBQ0g7SUFlQztJQUEwQixDQUFDO0lBZGIsaUNBQVcsR0FBekIsVUFBMEIsS0FBVTtRQUNuQyxJQUFJLE1BQTZCLENBQUM7UUFFbEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUU7WUFDOUIsTUFBTSxHQUFHLG1DQUFtQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBU1Msd0NBQVEsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFDRiw0QkFBQztBQUFELENBQUM7QUF6QnFCLHNEQUFxQjtBQTJCM0M7O0dBRUc7QUFDSDtJQUF5RCx1REFBcUI7SUFrQjdFLHFCQUFxQjtJQUNyQjtlQUF1QixpQkFBTztJQUFFLENBQUM7SUFsQm5CLCtDQUFXLEdBQXpCLFVBQTBCLEtBQVU7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QyxjQUFjLENBQUMsTUFBTTtnQkFDM0QsT0FBTyxFQUFFLDhCQUE4QixDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUU7YUFDakUsQ0FBQyxDQUFDO1NBQ0g7UUFDRCxPQUFPLDhCQUE4QixDQUFDLE1BQU0sQ0FBQztJQUM5QyxDQUFDO0lBRU0scURBQVMsR0FBaEI7UUFDQyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNGLHdDQUFDO0FBQUQsQ0FBQztBQTdEWSw4RUFBaUM7QUErRDlDLFNBQWdCLDJCQUEyQixDQUFDLGdCQUFvQztJQUMvRSx3QkFBd0IsR0FBRyxnQkFBZ0IsYUFBaEIsZ0JBQWdCLGNBQWhCLGdCQUFnQixHQUFJLEVBQUUsQ0FBQztBQUNuRCxDQUFDO0FBRkQsa0VBRUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9DYW1wYWlnbi9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q2FtcGFpZ25TY29wZVR5cGUsXHJcblx0Rmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGUsXHJcblx0R292ZXJuZWRDaGFubmVsVHlwZSxcclxuXHRJQ2FtcGFpZ25EZWZpbml0aW9uLFxyXG5cdElDYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlcixcclxuXHRJQ2FtcGFpZ25EdXJhdGlvbixcclxuXHRJQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lLFxyXG5cdElDYW1wYWlnblNjb3BlLFxyXG5cdElGbG9vZGdhdGVFbnZpcm9ubWVudFByb3ZpZGVyLFxyXG5cdElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsXHJcblx0SVV4U2NoZW1hVmFyaWFibGVzLFxyXG5cdFN1cnZleUluZm9BZGRpdGlvbmFsRGF0YVR5cGUsXHJcblx0U3VydmV5SW5mb0J1c2luZXNzTGV2ZWwgYXMgQnVzaW5lc3NMZXZlbCxcclxuXHRTdXJ2ZXlJbmZvTGF1bmNoVHlwZSxcclxuXHRJRWNzQWRhcHRlcixcclxuXHRFY3NSZXNwb25zZUJhc2UsXHJcblx0VHJlYXRtZW50VHlwZSxcclxuXHRJVXhTY2hlbWEsXHJcblx0SVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzLFxyXG5cdElVeFNjaGVtYVBhZ2UsXHJcblx0UXVlc3Rpb24sXHJcblx0UXVlc3Rpb25UeXBlLFxyXG5cdENvbmRpdGlvblNvdXJjZVR5cGUsXHJcblx0TGlrZXJ0UXVlc3Rpb24sXHJcblx0QnJhbmNoaW5nVGFyZ2V0VHlwZSxcclxuXHRCcmFuY2hpbmdUYXJnZXRQYWdlLFxyXG5cdEJyYW5jaGluZ1RhcmdldE92ZXJyaWRlXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IElVc2VyRmFjdFByb3ZpZGVyIH0gZnJvbSBcIi4uL0FwaS9JVXNlckZhY3RQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4uL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5pbXBvcnQgeyBVc2VyRmFjdCB9IGZyb20gXCIuLi9Vc2VyRmFjdC9Vc2VyRmFjdFwiO1xyXG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVVzZXJGYWN0cywgdmFsaWRhdGVVc2VyRmFjdHMgfSBmcm9tIFwiLi4vVXNlckZhY3QvVXNlckZhY3RIZWxwZXJcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcblxyXG5jb25zdCB7IGdldERpc3RhbnRGdXR1cmUsIGlzQm9vbGVhbiwgaXNOT1UsIGlzTnVtYmVyLCBpc1N0cmluZywgaXNVdGNEYXRldGltZVN0cmluZywgc3RyaW5nVG9EYXRlIH0gPSBVdGlscztcclxubGV0IGR5bmFtaWNVeFNjaGVtYVZhcmlhYmxlczogSVV4U2NoZW1hVmFyaWFibGVzID0ge307XHJcblxyXG4vLyByZWdpb24gTGFuZ3VhZ2UgUmFuZ2VcclxuXHJcbi8qKlxyXG4gKiBCYXNlIGNsYXNzIHJlcHJlc2VudGluZyBhIGxhbmd1YWdlIHJhbmdlIGluIGEgY2FtcGFpZ24gc2V0dGluZ1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhbXBhaWduTGFuZ3VhZ2VSYW5nZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25MYW5ndWFnZVJhbmdlIHtcclxuXHRcdGxldCByZXN1bHQ6IENhbXBhaWduTGFuZ3VhZ2VSYW5nZTtcclxuXHJcblx0XHRpZiAoaW5wdXQgJiYgaW5wdXQuVHlwZSA9PT0gMCkge1xyXG5cdFx0XHRyZXN1bHQgPSBDYW1wYWlnbkxhbmd1YWdlUmFuZ2VMYW5ndWFnZVN1YnRhZy5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0LyoqXHJcblx0ICogUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgdGFnIChmb3JtYXQgZnJvbSBSRkMgNTY0NikgaXMgaW4gdGhpcyBsYW5ndWFnZSByYW5nZSBzcGVjaWZpY2F0aW9uXHJcblx0ICovXHJcblx0cHVibGljIGFic3RyYWN0IGlzSW5SYW5nZShsYW5ndWFnZTogc3RyaW5nKTogYm9vbGVhbjtcclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIHJhbmdlIG1hdGNoaW5nIG9uIHRoZSBcImxhbmd1YWdlIHN1YnRhZ1wiIGFnYWluc3QgZnVsbHkgc3BlY2lmaWVkIGxhbmd1YWdlIHRhZ3MsIGFjY29yZGluZyB0byBSRkMgNTY0NlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduTGFuZ3VhZ2VSYW5nZUxhbmd1YWdlU3VidGFnIGV4dGVuZHMgQ2FtcGFpZ25MYW5ndWFnZVJhbmdlIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnbkxhbmd1YWdlUmFuZ2VMYW5ndWFnZVN1YnRhZyB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25MYW5ndWFnZVJhbmdlTGFuZ3VhZ2VTdWJ0YWcoKTtcclxuXHJcblx0XHRpZiAoaW5wdXQpIHtcclxuXHRcdFx0cmVzdWx0Lmxhbmd1YWdlU3ViVGFnID0gaW5wdXQuVmFsdWU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiVmFsdWVcIilcclxuXHRwdWJsaWMgbGFuZ3VhZ2VTdWJUYWc6IHN0cmluZztcclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc0luUmFuZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKGxhbmd1YWdlKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZXh0cmFjdGVkTGFuZ3VhZ2VTdWJUYWc6IHN0cmluZyA9IFV0aWxzLmV4dHJhY3RMYW5ndWFnZVN1YnRhZyhsYW5ndWFnZSk7XHJcblx0XHRpZiAoaXNOT1UoZXh0cmFjdGVkTGFuZ3VhZ2VTdWJUYWcpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBjb21wYXJlIHN0cmluZ3MgaWdub3JpbmcgY2FzZVxyXG5cdFx0cmV0dXJuIGV4dHJhY3RlZExhbmd1YWdlU3ViVGFnLnRvTG9jYWxlVXBwZXJDYXNlKCkgPT09IHRoaXMubGFuZ3VhZ2VTdWJUYWcudG9Mb2NhbGVVcHBlckNhc2UoKTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghc3VwZXIudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKHRoaXMubGFuZ3VhZ2VTdWJUYWcpIHx8ICFpc1N0cmluZyh0aGlzLmxhbmd1YWdlU3ViVGFnKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0XHQvLyBSZWplY3QgYW55IHNwZWMgdGhhdCBpc24ndCBleGFjdGx5IGEgbGFuZ3VhZ2Ugc3VidGFnXHJcblx0XHRpZiAoIVV0aWxzLmlzVmFsaWRMYW5ndWFnZVN1YlRhZyh0aGlzLmxhbmd1YWdlU3ViVGFnKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG4vLyBlbmRyZWdpb25cclxuXHJcbi8vIHJlZ2lvbiBTY29wZVxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhbXBhaWduU2NvcGUgaW1wbGVtZW50cyBJQ2FtcGFpZ25TY29wZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogSUNhbXBhaWduU2NvcGUge1xyXG5cdFx0bGV0IHJlc3VsdDogSUNhbXBhaWduU2NvcGU7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRzd2l0Y2ggKGlucHV0LlR5cGUpIHtcclxuXHRcdFx0Y2FzZSBDYW1wYWlnblNjb3BlVHlwZS5DYW1wYWlnblNjb3BlQW55OlxyXG5cdFx0XHRcdHJlc3VsdCA9IENhbXBhaWduU2NvcGVBbnkuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIENhbXBhaWduU2NvcGVUeXBlLkNhbXBhaWduU2NvcGVFbnZpcm9ubWVudENyb3NzUHJvZHVjdDpcclxuXHRcdFx0XHRyZXN1bHQgPSBDYW1wYWlnblNjb3BlRW52aXJvbm1lbnRDcm9zc1Byb2R1Y3QuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIENhbXBhaWduU2NvcGVUeXBlLkNhbXBhaWduU2NvcGVVc2VyRmFjdEFueTpcclxuXHRcdFx0XHRyZXN1bHQgPSBDYW1wYWlnblNjb3BlVXNlckZhY3RBbnkuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIENhbXBhaWduU2NvcGVUeXBlLkNhbXBhaWduU2NvcGVVc2VyRmFjdEFsbDpcclxuXHRcdFx0XHRyZXN1bHQgPSBDYW1wYWlnblNjb3BlVXNlckZhY3RBbGwuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdHB1YmxpYyBhYnN0cmFjdCBpc0luU2NvcGUoKTogYm9vbGVhbjtcclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TY29wZUFueSBleHRlbmRzIENhbXBhaWduU2NvcGUge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduU2NvcGVBbnkge1xyXG5cdFx0cmV0dXJuIG5ldyBDYW1wYWlnblNjb3BlQW55KCk7XHJcblx0fVxyXG5cclxuXHQvLyBwdWJsaWMgZm9yIFVUIG9ubHlcclxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGlzSW5TY29wZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKCFzdXBlci52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblNjb3BlRW52aXJvbm1lbnRDcm9zc1Byb2R1Y3QgZXh0ZW5kcyBDYW1wYWlnblNjb3BlIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblNjb3BlRW52aXJvbm1lbnRDcm9zc1Byb2R1Y3Qge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU2NvcGVFbnZpcm9ubWVudENyb3NzUHJvZHVjdCgpO1xyXG5cdFx0bGV0IGxhbmd1YWdlUmFuZ2VzOiBDYW1wYWlnbkxhbmd1YWdlUmFuZ2VbXSA9IFtdO1xyXG5cclxuXHRcdGlmIChpc05PVShpbnB1dCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gaW5wdXQuTGFuZ3VhZ2VzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaW5wdXQuTGFuZ3VhZ2VzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgcmVhZFJhbmdlOiBDYW1wYWlnbkxhbmd1YWdlUmFuZ2UgPSBpbnB1dC5MYW5ndWFnZXNba2V5XTtcclxuXHJcblx0XHRcdFx0aWYgKHJlYWRSYW5nZSkge1xyXG5cdFx0XHRcdFx0bGFuZ3VhZ2VSYW5nZXMucHVzaChDYW1wYWlnbkxhbmd1YWdlUmFuZ2UuZGVzZXJpYWxpemUocmVhZFJhbmdlKSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGxhbmd1YWdlUmFuZ2VzLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRsYW5ndWFnZVJhbmdlcyA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0Lmxhbmd1YWdlUmFuZ2VzID0gbGFuZ3VhZ2VSYW5nZXM7XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiTGFuZ3VhZ2VzXCIpXHJcblx0cHVibGljIGxhbmd1YWdlUmFuZ2VzOiBDYW1wYWlnbkxhbmd1YWdlUmFuZ2VbXTtcclxuXHJcblx0cHJpdmF0ZSBlbnZpcm9ubWVudFByb3ZpZGVyOiBJRmxvb2RnYXRlRW52aXJvbm1lbnRQcm92aWRlcjtcclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdHB1YmxpYyBzZXRFbnZpcm9ubWVudFByb3ZpZGVyKGVudmlyb25tZW50UHJvdmlkZXI6IElGbG9vZGdhdGVFbnZpcm9ubWVudFByb3ZpZGVyKSB7XHJcblx0XHR0aGlzLmVudmlyb25tZW50UHJvdmlkZXIgPSBlbnZpcm9ubWVudFByb3ZpZGVyO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGlzSW5TY29wZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLmxhbmd1YWdlUmFuZ2VzKSkge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5lbnZpcm9ubWVudFByb3ZpZGVyKSB8fCAhdGhpcy5lbnZpcm9ubWVudFByb3ZpZGVyLmdldExhbmd1YWdlKCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGxhbmd1YWdlID0gdGhpcy5lbnZpcm9ubWVudFByb3ZpZGVyLmdldExhbmd1YWdlKCk7XHJcblx0XHQvLyBJZiB0aGUgZW52aXJvbm1lbnQgbWF0Y2hlcyBhIHNpbmdsZSBwYXR0ZXJuLCB0aGVuIHRoaXMgaXMgYSB5ZXNcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMubGFuZ3VhZ2VSYW5nZXMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmxhbmd1YWdlUmFuZ2VzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgcmFuZ2UgPSB0aGlzLmxhbmd1YWdlUmFuZ2VzW2tleV07XHJcblxyXG5cdFx0XHRcdGlmIChyYW5nZS5pc0luUmFuZ2UobGFuZ3VhZ2UpKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXN1cGVyLnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE51bGwgbGFuZ3VhZ2VSYW5nZXMgaXMgYWxsb3dlZCwgbWVhbnMgd2lsbCBtYXRjaCB3aXRoIGV2ZXJ5dGhpbmcuXHJcblx0XHRpZiAodGhpcy5sYW5ndWFnZVJhbmdlcykge1xyXG5cdFx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmxhbmd1YWdlUmFuZ2VzKSB7XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmxhbmd1YWdlUmFuZ2VzLCBrZXkpICYmICF0aGlzLmxhbmd1YWdlUmFuZ2VzW2tleV0pIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblNjb3BlVXNlckZhY3RBbnkgZXh0ZW5kcyBDYW1wYWlnblNjb3BlIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblNjb3BlVXNlckZhY3RBbnkge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU2NvcGVVc2VyRmFjdEFueSgpO1xyXG5cdFx0cmVzdWx0LnVzZXJGYWN0cyA9IGRlc2VyaWFsaXplVXNlckZhY3RzKGlucHV0KTtcclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJVc2VyRmFjdHNcIilcclxuXHRwdWJsaWMgdXNlckZhY3RzOiBVc2VyRmFjdFtdO1xyXG5cclxuXHRwcml2YXRlIHVzZXJGYWN0c1Byb3ZpZGVyPzogSVVzZXJGYWN0UHJvdmlkZXI7XHJcblxyXG5cdC8vIHB1YmxpYyBmb3IgVVQgb25seVxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHRwdWJsaWMgc2V0VXNlckZhY3RzUHJvdmlkZXIodXNlckZhY3RzUHJvdmlkZXI/OiBJVXNlckZhY3RQcm92aWRlcikge1xyXG5cdFx0dGhpcy51c2VyRmFjdHNQcm92aWRlciA9IHVzZXJGYWN0c1Byb3ZpZGVyO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGlzSW5TY29wZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLnVzZXJGYWN0cykpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0aGlzLnVzZXJGYWN0c1Byb3ZpZGVyKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBJZiBvbmUgb2YgdGhlIHVzZXIgZmFjdCBtYXRjaGVzLCB0aGVuIHRoaXMgaXMgYSB5ZXNcclxuXHRcdHJldHVybiB0aGlzLnVzZXJGYWN0cy5zb21lKCh1c2VyRmFjdCkgPT4ge1xyXG5cdFx0XHRjb25zdCByYXdVc2VyRmFjdCA9IHRoaXMudXNlckZhY3RzUHJvdmlkZXIuZ2V0VXNlckZhY3QodXNlckZhY3QuZ2V0TmFtZSgpKTtcclxuXHRcdFx0cmV0dXJuIHVzZXJGYWN0LmlzQU1hdGNoKHJhd1VzZXJGYWN0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKCFzdXBlci52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdmFsaWRhdGVVc2VyRmFjdHModGhpcy51c2VyRmFjdHMpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU2NvcGVVc2VyRmFjdEFsbCBleHRlbmRzIENhbXBhaWduU2NvcGUge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduU2NvcGVVc2VyRmFjdEFsbCB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25TY29wZVVzZXJGYWN0QWxsKCk7XHJcblx0XHRyZXN1bHQudXNlckZhY3RzID0gZGVzZXJpYWxpemVVc2VyRmFjdHMoaW5wdXQpO1xyXG5cclxuXHRcdGlmICghcmVzdWx0LnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlVzZXJGYWN0c1wiKVxyXG5cdHB1YmxpYyB1c2VyRmFjdHM6IFVzZXJGYWN0W107XHJcblxyXG5cdHByaXZhdGUgdXNlckZhY3RzUHJvdmlkZXI/OiBJVXNlckZhY3RQcm92aWRlcjtcclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdHB1YmxpYyBzZXRVc2VyRmFjdHNQcm92aWRlcih1c2VyRmFjdHNQcm92aWRlcj86IElVc2VyRmFjdFByb3ZpZGVyKSB7XHJcblx0XHR0aGlzLnVzZXJGYWN0c1Byb3ZpZGVyID0gdXNlckZhY3RzUHJvdmlkZXI7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgaXNJblNjb3BlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMudXNlckZhY3RzKSkge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMudXNlckZhY3RzUHJvdmlkZXIpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEdldCBhbGwgb2YgdGhlIG1pc21hdGNoZWQgdXNlciBmYWN0c1xyXG5cdFx0Y29uc3QgbWlzbWF0Y2hlZEZhY3RzID0gdGhpcy51c2VyRmFjdHMuZmlsdGVyKCh1c2VyRmFjdCkgPT4ge1xyXG5cdFx0XHRjb25zdCByYXdVc2VyRmFjdCA9IHRoaXMudXNlckZhY3RzUHJvdmlkZXIuZ2V0VXNlckZhY3QodXNlckZhY3QuZ2V0TmFtZSgpKTtcclxuXHRcdFx0cmV0dXJuICF1c2VyRmFjdC5pc0FNYXRjaChyYXdVc2VyRmFjdCk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAobWlzbWF0Y2hlZEZhY3RzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0Y29uc3QgbWlzbWF0Y2hlZE5hbWVzID0gbWlzbWF0Y2hlZEZhY3RzLm1hcCgodXNlckZhY3QpID0+IHVzZXJGYWN0LmdldE5hbWUoKSk7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNJc0FNYXRjaC5TdW1tYXJ5LCB7XHJcblx0XHRcdFx0Q291bnQ6IG1pc21hdGNoZWRGYWN0cy5sZW5ndGgsXHJcblx0XHRcdFx0TWVzc2FnZTogbWlzbWF0Y2hlZE5hbWVzLnRvU3RyaW5nKCksXHJcblx0XHRcdH0pO1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSWYgYWxsIG9mIHRoZSB1c2VyIGZhY3RzIG1hdGNoLCB0aGVuIHRoaXMgaXMgYSB5ZXNcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKCFzdXBlci52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdmFsaWRhdGVVc2VyRmFjdHModGhpcy51c2VyRmFjdHMpO1xyXG5cdH1cclxufVxyXG5cclxuLy8gZW5kcmVnaW9uXHJcblxyXG4vLyByZWdpb24gRHVyYXRpb25zXHJcblxyXG4vKipcclxuICogQmFzZSBjbGFzcyByZXByZXNlbnRpbmcgYSBkdXJhdGlvbiBpbiBhIGNhbXBhaWduIHNldHRpbmdcclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYW1wYWlnbkR1cmF0aW9uIGltcGxlbWVudHMgSUNhbXBhaWduRHVyYXRpb24ge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduRHVyYXRpb24ge1xyXG5cdFx0bGV0IHJlc3VsdDogQ2FtcGFpZ25EdXJhdGlvbjtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHN3aXRjaCAoaW5wdXQuVHlwZSkge1xyXG5cdFx0XHRjYXNlIDA6XHJcblx0XHRcdFx0cmVzdWx0ID0gQ2FtcGFpZ25EdXJhdGlvblRpbWVJbnRlcnZhbC5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgMTpcclxuXHRcdFx0XHRyZXN1bHQgPSBDYW1wYWlnbkR1cmF0aW9uU2luZ2xlQnVpbGRDaGFuZ2UuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdHB1YmxpYyBhYnN0cmFjdCBhc1RpbWVJbnRlcnZhbFNlY29uZHMoKTogbnVtYmVyO1xyXG5cclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIER1cmF0aW9uIGV4cHJlc3NlZCBpbiBzZWNvbmRzLiBVVEMgZGF0ZXRpbWUgY29tcGFyaXNvbnMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIGV4cGlyYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25EdXJhdGlvblRpbWVJbnRlcnZhbCBleHRlbmRzIENhbXBhaWduRHVyYXRpb24ge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduRHVyYXRpb25UaW1lSW50ZXJ2YWwge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduRHVyYXRpb25UaW1lSW50ZXJ2YWwoKTtcclxuXHJcblx0XHRpZiAoaW5wdXQpIHtcclxuXHRcdFx0cmVzdWx0LmludGVydmFsU2Vjb25kcyA9IGlucHV0LkludGVydmFsU2Vjb25kcztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJJbnRlcnZhbFNlY29uZHNcIilcclxuXHRwdWJsaWMgaW50ZXJ2YWxTZWNvbmRzOiBudW1iZXI7XHJcblxyXG5cdC8vIHB1YmxpYyBmb3IgVVQgb25seVxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgYXNUaW1lSW50ZXJ2YWxTZWNvbmRzKCk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gdGhpcy5pbnRlcnZhbFNlY29uZHM7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXN1cGVyLnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghaXNOdW1iZXIodGhpcy5pbnRlcnZhbFNlY29uZHMpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIER1cmF0aW9uIHJlcHJlc2VudGluZyBleGFjdGx5IDEgY2hhbmdlIGluIGJ1aWxkIG51bWJlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduRHVyYXRpb25TaW5nbGVCdWlsZENoYW5nZSBleHRlbmRzIENhbXBhaWduRHVyYXRpb24ge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduRHVyYXRpb25TaW5nbGVCdWlsZENoYW5nZSB7XHJcblx0XHRyZXR1cm4gbmV3IENhbXBhaWduRHVyYXRpb25TaW5nbGVCdWlsZENoYW5nZSgpO1xyXG5cdH1cclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBhc1RpbWVJbnRlcnZhbFNlY29uZHMoKTogbnVtYmVyIHtcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENsYXNzIHJlcHJlc2VudGluZyBBZGRpdGlvbmFsRGF0YVJlcXVlc3RlZCBpbiBDYW1wYWlnbkRlZmluaXRpb25cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnbkFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkOiBzdHJpbmdbXSk6IENhbXBhaWduQWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduQWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQoKTtcclxuXHJcblx0XHRpZiAoIWlzTk9VKGFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkKSkge1xyXG5cdFx0XHQvLyBDb252ZXJ0IGZyb20gQWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQgc3RyaW5nIHRvIGVudW1cclxuXHRcdFx0cmVzdWx0LmFkZGl0aW9uYWxEYXRhID0gW107XHJcblx0XHRcdGZvciAoY29uc3QgYWRkaXRpb25hbERhdGEgb2YgYWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQpIHtcclxuXHRcdFx0XHRpZiAoYWRkaXRpb25hbERhdGEgPT09IFwiRW1haWxBZGRyZXNzXCIpIHtcclxuXHRcdFx0XHRcdHJlc3VsdC5hZGRpdGlvbmFsRGF0YS5wdXNoKFN1cnZleUluZm9BZGRpdGlvbmFsRGF0YVR5cGUuRW1haWxBZGRyZXNzKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYWRkaXRpb25hbERhdGE6IFN1cnZleUluZm9BZGRpdGlvbmFsRGF0YVR5cGVbXTtcclxuXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLmFkZGl0aW9uYWxEYXRhKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcbi8vIGVuZHJlZ2lvblxyXG5cclxuLy8gcmVnaW9uIERpc3RyaWJ1dGlvbiBTY2hlbWVzXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FtcGFpZ25EaXN0cmlidXRpb24ge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduRGlzdHJpYnV0aW9uIHtcclxuXHRcdGxldCByZXN1bHQ6IENhbXBhaWduRGlzdHJpYnV0aW9uO1xyXG5cclxuXHRcdGlmIChpbnB1dCAmJiBpbnB1dC5UeXBlID09PSAwKSB7XHJcblx0XHRcdHJlc3VsdCA9IENhbXBhaWduRGlzdHJpYnV0aW9uUmFtcC5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25EaXN0cmlidXRpb25SYW1wIGV4dGVuZHMgQ2FtcGFpZ25EaXN0cmlidXRpb24ge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduRGlzdHJpYnV0aW9uUmFtcCB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25EaXN0cmlidXRpb25SYW1wKCk7XHJcblxyXG5cdFx0aWYgKGlucHV0KSB7XHJcblx0XHRcdHJlc3VsdC5tYXhEZWxheVNlY29uZHMgPSBpbnB1dC5NYXhEZWxheVNlY29uZHM7XHJcblx0XHRcdHJlc3VsdC5jaHVua3MgPSBpbnB1dC5DaHVua3M7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gVGhlIHRpbWUgd2luZG93IG92ZXIgd2hpY2ggdGhlIHJhbXAgd2lsbCBkaXN0cmlidXRlIHN0YXJ0IGRhdGVzLlxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk1heERlbGF5U2Vjb25kc1wiKVxyXG5cdHB1YmxpYyBtYXhEZWxheVNlY29uZHM6IG51bWJlcjtcclxuXHJcblx0Ly8gVGhlIG51bWJlciBvZiBkaXNjcmV0ZSBidWNrZXRzIHRvIGRpdmlkZSB0aGUgdGltZSB3aW5kb3cgKG1heERlbGF5U2Vjb25kcykgaW50b1xyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkNodW5rc1wiKVxyXG5cdHB1YmxpYyBjaHVua3M6IG51bWJlcjtcclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXN1cGVyLnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghaXNOdW1iZXIodGhpcy5tYXhEZWxheVNlY29uZHMpIHx8IHRoaXMubWF4RGVsYXlTZWNvbmRzIDwgMCkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc051bWJlcih0aGlzLmNodW5rcykgfHwgdGhpcy5jaHVua3MgPCAwKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIGVuZHJlZ2lvblxyXG5cclxuLy8gcmVnaW9uIE5vbWluYXRpb24gU2NoZW1lXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lIGltcGxlbWVudHMgSUNhbXBhaWduTm9taW5hdGlvblNjaGVtZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lIHtcclxuXHRcdGxldCByZXN1bHQ6IENhbXBhaWduTm9taW5hdGlvblNjaGVtZTtcclxuXHJcblx0XHRpZiAoaW5wdXQgJiYgaW5wdXQuVHlwZSA9PT0gMCkge1xyXG5cdFx0XHRyZXN1bHQgPSBDYW1wYWlnbk5vbWluYXRpb25TY2hlbWVSYXRpb1BlcmNlbnRhZ2UuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChyZXN1bHQgPT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gVGhlIGFtb3VudCBvZiB0aW1lIChpbiBzZWNvbmRzKSBmb3Igd2hpY2ggdGhlIHN1cnZleSBpcyBhY3RpdmUsIGlmIHRoZSBub21pbmF0aW9uUGVyaW9kIGNhbid0IGJlIGludGVycHJldGVkIGFzIGEgdGltZSBpbnRlcnZhbFxyXG5cdC8vIG5vdGU6IFRoaXMgaXMgb25seSB1c2VkIHdoZW4gbm9taW5hdGlvblBlcmlvZCBpcyBub3Qgb2YgYSB0eXBlIHRoYXQgY2FuIGJlIGludGVycHJldGVkIGFzIGEgdGltZSBpbnRlcnZhbCwgb3RoZXJ3aXNlXHJcblx0Ly8gdGhhdCB2YWx1ZSBpcyB1c2VkIGluc3RlYWRcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJGYWxsYmFja1N1cnZleUR1cmF0aW9uU2Vjb25kc1wiKVxyXG5cdHB1YmxpYyBmYWxsYmFja1N1cnZleUR1cmF0aW9uU2Vjb25kczogbnVtYmVyO1xyXG5cclxuXHQvLyBXaGVuIHRoZSB1c2VyIG5ldmVyIHNlZXMgdGhlIHN1cnZleSBkdXJpbmcgdGhlaXIgY2FuZGlkYWN5IChvciBhbnRpLWNhbmRpZGFjeSksIHRoaXMgaXMgdGhlIGR1cmF0aW9uIHRoYXQgbXVzdCBsYXBzZVxyXG5cdC8vIGJlZm9yZSByZS0gbm9taW5hdGluZ1xyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk5vbWluYXRpb25QZXJpb2RcIilcclxuXHRwdWJsaWMgbm9taW5hdGlvblBlcmlvZDogQ2FtcGFpZ25EdXJhdGlvbjtcclxuXHJcblx0Ly8gV2hlbiB0aGUgdXNlciBkb2VzIHNlZXMgdGhlIHN1cnZleSBkdXJpbmcgdGhlaXIgY2FuZGlkYWN5LCB0aGlzIGlzIHRoZSBkdXJhdGlvbiB0aGF0IG11c3QgbGFwc2UgYmVmb3JlIHJlLWV2YWx1YXRpbmdcclxuXHQvLyBjYW5kaWRhY3kuIEdlbmVyYWxseSByZWNvbW1lbmRlZCB0aGF0IHRoaXMgYmUgZ3JlYXRlciB0aGFuIG5vbWluYXRpb25QZXJpb2RcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJDb29sZG93blBlcmlvZFwiKVxyXG5cdHB1YmxpYyBjb29sZG93blBlcmlvZDogQ2FtcGFpZ25EdXJhdGlvbjtcclxuXHJcblx0cHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEByZXR1cm4gVGhlIGFtb3VudCBvZiB0aW1lIHRoZSBzdXJ2ZXkgc2hvdWxkIGJlIGFjdGl2ZSwgaW4gc2Vjb25kcy4gQWJzdHJhY3RzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbm9taW5hdGlvblBlcmlvZCBhbmQgdGhlIGZhbGxiYWNrXHJcblx0ICovXHJcblx0cHVibGljIGdldEFjdGl2ZVN1cnZleVRpbWVJbnRlcnZhbFNlY29uZHMoKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IG5vbWluYXRpb25UaW1JbnRlcnZhbFNlY29uZHM6IG51bWJlciA9IHRoaXMubm9taW5hdGlvblBlcmlvZC5hc1RpbWVJbnRlcnZhbFNlY29uZHMoKTtcclxuXHJcblx0XHRpZiAoaXNOdW1iZXIobm9taW5hdGlvblRpbUludGVydmFsU2Vjb25kcykpIHtcclxuXHRcdFx0cmV0dXJuIG5vbWluYXRpb25UaW1JbnRlcnZhbFNlY29uZHM7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuZmFsbGJhY2tTdXJ2ZXlEdXJhdGlvblNlY29uZHM7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcmV0dXJuIFRoZSBzdXJ2ZXkgc3RhcnQgdGltZSwgcG9zc2libHkgYWRqdXN0ZWQgYnkgYW4gdW5kZXJseWluZyBEaXN0cmlidXRpb25Nb2RlbC5cclxuXHQgKi9cclxuXHRwdWJsaWMgY2FsY3VsYXRlU3VydmV5U3RhcnRUaW1lRnJvbURhdGUoc29vbmVzdFN0YXJ0VGltZTogRGF0ZSk6IERhdGUge1xyXG5cdFx0Ly8gTm8gYWRqdXN0bWVudCBpbiBiYXNlIGNsYXNzLiAgRGVyaXZlZCBjbGFzc2VzIGNhbiBvdmVycmlkZSBhbmQgaW1wbGVtZW50IGRlbGF5cyBsaWtlIGEgXCJyYW1wXCJcclxuXHRcdHJldHVybiBzb29uZXN0U3RhcnRUaW1lID8gc29vbmVzdFN0YXJ0VGltZSA6IG5ldyBEYXRlKCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcmV0dXJuIFRoZSBzdXJ2ZXkgZXhwaXJhdGlvbiB0aW1lLCBiYXNlZCBvbiB0aGUgbm9taW5hdGlvbiBwZXJpb2RzIGFuZCB0aGUgc3VydmV5J3MgYWRqdXN0ZWQgc3RhcnQgdGltZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBjYWxjdWxhdGVTdXJ2ZXlFeHBpcmF0aW9uVGltZUZyb21TdXJ2ZXlTdGFydFRpbWUoc3VydmV5U3RhcnRUaW1lOiBEYXRlKTogRGF0ZSB7XHJcblx0XHRzdXJ2ZXlTdGFydFRpbWUgPSBzdXJ2ZXlTdGFydFRpbWUgPyBzdXJ2ZXlTdGFydFRpbWUgOiBuZXcgRGF0ZSgpO1xyXG5cdFx0cmV0dXJuIFV0aWxzLmFkZFNlY29uZHNXaXRob3V0T3ZlcmZsb3coc3VydmV5U3RhcnRUaW1lLCB0aGlzLmdldEFjdGl2ZVN1cnZleVRpbWVJbnRlcnZhbFNlY29uZHMoKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBAcmV0dXJuIFRoZSBhcHByb3ByaWF0ZSBjYW1wYWlnbiBjb29sIGRvd24gYmFzZWQgb24gd2hldGhlciBvciBub3QgdGhlIHVzZXIgYWN0aXZhdGVkIHRoZSBzdXJ2ZXlcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0Q2FtcGFpZ25Db29sZG93bihkaWRVc2VyQWN0aXZhdGVTdXJ2ZXk6IGJvb2xlYW4pOiBDYW1wYWlnbkR1cmF0aW9uIHtcclxuXHRcdGlmIChkaWRVc2VyQWN0aXZhdGVTdXJ2ZXkpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuY29vbGRvd25QZXJpb2Q7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5ub21pbmF0aW9uUGVyaW9kO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRXZhbHVhdGUgdGhpcyBydWxlIHNldCBiYXNlZCBvbiBhIHJhbmRvbSBudW1iZXJcclxuXHQgKlxyXG5cdCAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgdXNlciBzaG91bGQgYmUgYSBjYW5kaWRhdGUsIGZhbHNlIGlmIHRoZXkgc2hvdWxkIGJlIGFuIGFudGktY2FuZGlkYXRlXHJcblx0ICovXHJcblx0cHVibGljIGFic3RyYWN0IGV2YWx1YXRlTm9taW5hdGlvblJ1bGVzKCk6IGJvb2xlYW47XHJcblxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLm5vbWluYXRpb25QZXJpb2QpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5jb29sZG93blBlcmlvZCkpIHtcclxuXHRcdFx0dGhpcy5jb29sZG93blBlcmlvZCA9IHRoaXMubm9taW5hdGlvblBlcmlvZDtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIWlzTnVtYmVyKHRoaXMubm9taW5hdGlvblBlcmlvZC5hc1RpbWVJbnRlcnZhbFNlY29uZHMoKSkpIHtcclxuXHRcdFx0aWYgKCFpc051bWJlcih0aGlzLmZhbGxiYWNrU3VydmV5RHVyYXRpb25TZWNvbmRzKSB8fCB0aGlzLmZhbGxiYWNrU3VydmV5RHVyYXRpb25TZWNvbmRzIDw9IDApIHtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgYSBzZXQgb2YgY2FtcGFpZ24gbm9taW5hdGlvbiBydWxlcyB0byBldmFsdWF0ZSBmb3IgaW4tc2NvcGUgY2FtcGFpZ25zOlxyXG4gKiBwZXJjZW50YWdlXHJcbiAqIHJlLWVsZWN0aW9uIGR1cmF0aW9uc1xyXG4gKiBkaXN0cmlidXRpb24gbW9kZWwgKGZvciBcIm5vbWluYXRlZFwiIGNhbmRpZGF0ZXMpXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lUmF0aW9QZXJjZW50YWdlIGV4dGVuZHMgQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnbk5vbWluYXRpb25TY2hlbWVSYXRpb1BlcmNlbnRhZ2Uge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduTm9taW5hdGlvblNjaGVtZVJhdGlvUGVyY2VudGFnZSgpO1xyXG5cclxuXHRcdGlmIChpc05PVShpbnB1dCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlucHV0LkRpc3RyaWJ1dGlvbk1vZGVsKSB7XHJcblx0XHRcdHJlc3VsdC5kaXN0cmlidXRpb25Nb2RlbCA9IENhbXBhaWduRGlzdHJpYnV0aW9uLmRlc2VyaWFsaXplKGlucHV0LkRpc3RyaWJ1dGlvbk1vZGVsKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuQ29vbGRvd25QZXJpb2QpIHtcclxuXHRcdFx0cmVzdWx0LmNvb2xkb3duUGVyaW9kID0gQ2FtcGFpZ25EdXJhdGlvbi5kZXNlcmlhbGl6ZShpbnB1dC5Db29sZG93blBlcmlvZCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlucHV0Lk5vbWluYXRpb25QZXJpb2QpIHtcclxuXHRcdFx0cmVzdWx0Lm5vbWluYXRpb25QZXJpb2QgPSBDYW1wYWlnbkR1cmF0aW9uLmRlc2VyaWFsaXplKGlucHV0Lk5vbWluYXRpb25QZXJpb2QpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC5mYWxsYmFja1N1cnZleUR1cmF0aW9uU2Vjb25kcyA9IGlucHV0LkZhbGxiYWNrU3VydmV5RHVyYXRpb25TZWNvbmRzO1xyXG5cdFx0cmVzdWx0LnBlcmNlbnRhZ2VEZW5vbWluYXRvciA9IGlucHV0LlBlcmNlbnRhZ2VEZW5vbWluYXRvcjtcclxuXHRcdHJlc3VsdC5wZXJjZW50YWdlTnVtZXJhdG9yID0gaW5wdXQuUGVyY2VudGFnZU51bWVyYXRvcjtcclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBUaGUgbnVtZXJhdG9yIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgdXNlcnMgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYXMgY2FuZGlkYXRlcy4gIE11c3RcclxuXHQvLyBzYXRpc2Z5IDAgPD0gcGVyY2VudGFnZU51bWVyYXRvciA8PSBwZXJjZW50YWdlRGVub21pbmF0b3JcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJQZXJjZW50YWdlTnVtZXJhdG9yXCIpXHJcblx0cHVibGljIHBlcmNlbnRhZ2VOdW1lcmF0b3I6IG51bWJlcjtcclxuXHJcblx0Ly8gVGhlIGRlbm9taW5hdG9yIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHBlcmNlbnRhZ2Ugb2YgdXNlcnMgdGhhdCBzaG91bGQgYmUgc2VsZWN0ZWQgYXMgY2FuZGlkYXRlcy4gIE11c3QgYmUgZ3JlYXRlciB0aGFuIDAuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUGVyY2VudGFnZURlbm9taW5hdG9yXCIpXHJcblx0cHVibGljIHBlcmNlbnRhZ2VEZW5vbWluYXRvcjogbnVtYmVyO1xyXG5cclxuXHQvLyBOWUkgLSBGb3IgY2FuZGlkYXRlcywgYWxsb3dzIHRoZSBTdXJ2ZXkgc3RhcnQvZW5kIGRhdGVzIHRvIGJlIHNoaWZ0ZWQgZm9yd2FyZCBpbiB0aW1lLCB0byBoZWxwIGFjaGlldmUgYSBzbW9vdGhlciBzaWduYWxcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJEaXN0cmlidXRpb25Nb2RlbFwiKVxyXG5cdHB1YmxpYyBkaXN0cmlidXRpb25Nb2RlbDogQ2FtcGFpZ25EaXN0cmlidXRpb247XHJcblxyXG5cdHByaXZhdGUgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGV2YWx1YXRlTm9taW5hdGlvblJ1bGVzKCk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3QgcmFuZDogbnVtYmVyID0gTWF0aC5yYW5kb20oKTtcclxuXHRcdC8vIENyZWF0ZXMgYSByYW5kb20gbnVtYmVyIGJldHdlZW4gWzAgdG8gKHBlcmNlbnRhZ2VEZW5vbWluYXRvciAtIDEpXVxyXG5cdFx0Ly8gSW4gcmFuZ2UgWzAgdG8gKHBlcmNlbnRhZ2VEZW5vbWluYXRvciAtIDEpXSBleGFjdGx5ICdwZXJjZW50YWdlTnVtZXJhdG9yJyB2YWx1ZXMgYXJlIDwgcGVyY2VudGFnZU51bWVyYXRvclxyXG5cdFx0cmV0dXJuIE1hdGguZmxvb3IocmFuZCAqIHRoaXMucGVyY2VudGFnZURlbm9taW5hdG9yKSA8IHRoaXMucGVyY2VudGFnZU51bWVyYXRvcjtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghc3VwZXIudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc051bWJlcih0aGlzLnBlcmNlbnRhZ2VEZW5vbWluYXRvcikgfHwgIWlzTnVtYmVyKHRoaXMucGVyY2VudGFnZU51bWVyYXRvcikpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLnBlcmNlbnRhZ2VEZW5vbWluYXRvciA8PSAwIHx8IHRoaXMucGVyY2VudGFnZU51bWVyYXRvciA8IDApIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLnBlcmNlbnRhZ2VOdW1lcmF0b3IgPiB0aGlzLnBlcmNlbnRhZ2VEZW5vbWluYXRvcikge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gZGlzdHJpYnV0aW9uIG1vZGVsIG1heSBiZSBudWxsXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIGVuZHJlZ2lvblxyXG5cclxuLy8gcmVnaW9uIFN1cnZleSBFdmVudCBEZWZpbml0aW9uc1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlFdmVudCB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25TdXJ2ZXlFdmVudCB7XHJcblx0XHRsZXQgcmVzdWx0OiBDYW1wYWlnblN1cnZleUV2ZW50O1xyXG5cclxuXHRcdGlmIChpc05PVShpbnB1dCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0c3dpdGNoIChpbnB1dC5UeXBlKSB7XHJcblx0XHRcdGNhc2UgMDpcclxuXHRcdFx0XHRyZXN1bHQgPSBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5LmRlc2VyaWFsaXplKGlucHV0KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSAxOlxyXG5cdFx0XHRcdHJlc3VsdCA9IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZS5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHJlc3VsdCA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlFdmVudENvdW50ZWRBY3Rpdml0eSBleHRlbmRzIENhbXBhaWduU3VydmV5RXZlbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC5hY3Rpdml0eSA9IGlucHV0LkFjdGl2aXR5O1xyXG5cdFx0cmVzdWx0LmNvdW50ID0gaW5wdXQuQ291bnQ7XHJcblx0XHRyZXN1bHQuaXNBZ2dyZWdhdGUgPSBpbnB1dC5Jc0FnZ3JlZ2F0ZTtcclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJBY3Rpdml0eVwiKVxyXG5cdHB1YmxpYyBhY3Rpdml0eTogc3RyaW5nO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJDb3VudFwiKVxyXG5cdHB1YmxpYyBjb3VudDogbnVtYmVyO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJJc0FnZ3JlZ2F0ZVwiKVxyXG5cdHB1YmxpYyBpc0FnZ3JlZ2F0ZTogYm9vbGVhbjtcclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghc3VwZXIudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKHRoaXMuYWN0aXZpdHkpIHx8ICFpc1N0cmluZyh0aGlzLmFjdGl2aXR5KSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc051bWJlcih0aGlzLmNvdW50KSB8fCB0aGlzLmNvdW50IDw9IDApIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghaXNCb29sZWFuKHRoaXMuaXNBZ2dyZWdhdGUpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2UgZXh0ZW5kcyBDYW1wYWlnblN1cnZleUV2ZW50IHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2Uge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZSgpO1xyXG5cdFx0bGV0IHNlcXVlbmNlOiBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5W10gPSBbXTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGlucHV0LlNlcXVlbmNlKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaW5wdXQuU2VxdWVuY2UsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCByZWFkQWN0aXZpdHk6IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkgPSBpbnB1dC5TZXF1ZW5jZVtrZXldO1xyXG5cclxuXHRcdFx0XHRpZiAocmVhZEFjdGl2aXR5KSB7XHJcblx0XHRcdFx0XHRzZXF1ZW5jZS5wdXNoKENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkuZGVzZXJpYWxpemUocmVhZEFjdGl2aXR5KSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHNlcXVlbmNlLmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHRzZXF1ZW5jZSA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LnNlcXVlbmNlID0gc2VxdWVuY2U7XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiU2VxdWVuY2VcIilcclxuXHRwdWJsaWMgc2VxdWVuY2U6IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHlbXTtcclxuXHJcblx0Ly8gcHVibGljIGZvciBVVCBvbmx5XHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghc3VwZXIudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKHRoaXMuc2VxdWVuY2UpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnNlcXVlbmNlKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5zZXF1ZW5jZSwga2V5KSAmJiAhdGhpcy5zZXF1ZW5jZVtrZXldKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG4vLyBlbmRyZWdpb25cclxuXHJcbi8vIHJlZ2lvbiBTdXJ2ZXkgQ29udGVudCBEZWZpbml0aW9uc1xyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5Q29udGVudCB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55LCBvcHRpb25hbENvbXBvbmVudHM/OiBib29sZWFuKTogQ2FtcGFpZ25TdXJ2ZXlDb250ZW50IHtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleUNvbnRlbnQoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC5wcm9tcHQgPSBDYW1wYWlnblN1cnZleUNvbnRlbnRQcm9tcHQuZGVzZXJpYWxpemUoaW5wdXQuUHJvbXB0KTtcclxuXHRcdHJlc3VsdC5yYXRpbmcgPSBDYW1wYWlnblN1cnZleUNvbnRlbnRSYXRpbmcuZGVzZXJpYWxpemUoaW5wdXQuUmF0aW5nKTtcclxuXHRcdHJlc3VsdC5jb21tZW50ID0gQ2FtcGFpZ25TdXJ2ZXlDb250ZW50Q29tbWVudC5kZXNlcmlhbGl6ZShpbnB1dC5RdWVzdGlvbik7XHJcblx0XHRyZXN1bHQubXVsdGlwbGVDaG9pY2UgPSBDYW1wYWlnblN1cnZleUNvbnRlbnRNdWx0aXBsZUNob2ljZS5kZXNlcmlhbGl6ZShpbnB1dC5NdWx0aXBsZUNob2ljZSk7XHJcblx0XHRyZXN1bHQuaW50ZXJjZXB0ID0gQ2FtcGFpZ25TdXJ2ZXlDb250ZW50SW50ZXJjZXB0LmRlc2VyaWFsaXplKGlucHV0LkludGVyY2VwdCk7XHJcblx0XHRyZXN1bHQuY3ZTdXJ2ZXkgPSBDYW1wYWlnblN1cnZleUNvbnRlbnRDVlN1cnZleS5kZXNlcmlhbGl6ZShpbnB1dC5DVlN1cnZleVBhcmFtcyk7XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUob3B0aW9uYWxDb21wb25lbnRzKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiQ1ZTdXJ2ZXlcIilcclxuXHRwdWJsaWMgY3ZTdXJ2ZXk6IENhbXBhaWduU3VydmV5Q29udGVudENWU3VydmV5O1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJQcm9tcHRcIilcclxuXHRwdWJsaWMgcHJvbXB0OiBDYW1wYWlnblN1cnZleUNvbnRlbnRQcm9tcHQ7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlJhdGluZ1wiKVxyXG5cdHB1YmxpYyByYXRpbmc6IENhbXBhaWduU3VydmV5Q29udGVudFJhdGluZztcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUXVlc3Rpb25cIilcclxuXHRwdWJsaWMgY29tbWVudDogQ2FtcGFpZ25TdXJ2ZXlDb250ZW50Q29tbWVudDtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiTXVsdGlwbGVDaG9pY2VcIilcclxuXHRwdWJsaWMgbXVsdGlwbGVDaG9pY2U6IENhbXBhaWduU3VydmV5Q29udGVudE11bHRpcGxlQ2hvaWNlO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJJbnRlcmNlcHRcIilcclxuXHRwdWJsaWMgaW50ZXJjZXB0OiBDYW1wYWlnblN1cnZleUNvbnRlbnRJbnRlcmNlcHQ7XHJcblxyXG5cdHB1YmxpYyB2YWxpZGF0ZShvcHRpb25hbENvbXBvbmVudHM/OiBib29sZWFuKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWlzTk9VKHRoaXMuaW50ZXJjZXB0KSkge1xyXG5cdFx0XHQvLyBBbiBpbnRlcmNlcHQgc3VydmV5IG9ubHkgcmVxdWlyZXMgaW50ZXJjZXB0LlxyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5wcm9tcHQpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAob3B0aW9uYWxDb21wb25lbnRzKSB7XHJcblx0XHRcdHJldHVybiAhaXNOT1UodGhpcy5yYXRpbmcpIHx8XHJcblx0XHRcdFx0IWlzTk9VKHRoaXMubXVsdGlwbGVDaG9pY2UpIHx8XHJcblx0XHRcdFx0IWlzTk9VKHRoaXMuY29tbWVudCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICFpc05PVSh0aGlzLnJhdGluZykgJiYgIWlzTk9VKHRoaXMuY29tbWVudCk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlDb250ZW50TXVsdGlwbGVDaG9pY2Uge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduU3VydmV5Q29udGVudE11bHRpcGxlQ2hvaWNlIHtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleUNvbnRlbnRNdWx0aXBsZUNob2ljZSgpO1xyXG5cclxuXHRcdGlmIChpc05PVShpbnB1dCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LnF1ZXN0aW9uID0gaW5wdXQuUXVlc3Rpb247XHJcblx0XHRyZXN1bHQuYXZhaWxhYmxlT3B0aW9ucyA9IGlucHV0LkF2YWlsYWJsZU9wdGlvbnM7XHJcblx0XHRyZXN1bHQubWluTnVtYmVyT2ZTZWxlY3RlZE9wdGlvbnMgPSBpbnB1dC5NaW5OdW1iZXJPZlNlbGVjdGVkT3B0aW9ucztcclxuXHRcdHJlc3VsdC5tYXhOdW1iZXJPZlNlbGVjdGVkT3B0aW9ucyA9IGlucHV0Lk1heE51bWJlck9mU2VsZWN0ZWRPcHRpb25zO1xyXG5cclxuXHRcdGlmICghcmVzdWx0LnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlF1ZXN0aW9uXCIpXHJcblx0cHVibGljIHF1ZXN0aW9uOiBzdHJpbmc7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkF2YWlsYWJsZU9wdGlvbnNcIilcclxuXHRwdWJsaWMgYXZhaWxhYmxlT3B0aW9uczogc3RyaW5nW107XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk1pbk51bWJlck9mU2VsZWN0ZWRPcHRpb25zXCIpXHJcblx0cHVibGljIG1pbk51bWJlck9mU2VsZWN0ZWRPcHRpb25zOiBudW1iZXI7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk1heE51bWJlck9mU2VsZWN0ZWRPcHRpb25zXCIpXHJcblx0cHVibGljIG1heE51bWJlck9mU2VsZWN0ZWRPcHRpb25zOiBudW1iZXI7XHJcblxyXG5cdHByaXZhdGUgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoaXNOT1UodGhpcy5xdWVzdGlvbikgfHwgIWlzU3RyaW5nKHRoaXMucXVlc3Rpb24pIHx8XHJcblx0XHRcdGlzTk9VKHRoaXMuYXZhaWxhYmxlT3B0aW9ucykgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5hdmFpbGFibGVPcHRpb25zKSB8fCB0aGlzLmF2YWlsYWJsZU9wdGlvbnMubGVuZ3RoIDwgMiB8fFxyXG5cdFx0XHRpc05PVSh0aGlzLm1pbk51bWJlck9mU2VsZWN0ZWRPcHRpb25zKSB8fCAhaXNOdW1iZXIodGhpcy5taW5OdW1iZXJPZlNlbGVjdGVkT3B0aW9ucykgfHxcclxuXHRcdFx0aXNOT1UodGhpcy5tYXhOdW1iZXJPZlNlbGVjdGVkT3B0aW9ucykgfHwgIWlzTnVtYmVyKHRoaXMubWF4TnVtYmVyT2ZTZWxlY3RlZE9wdGlvbnMpKSB7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gZXhwZWN0IGFsbCBhdmFpbGFibGVPcHRpb25zIHZhbHVlcyB0byBiZSBzdHJpbmdcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMuYXZhaWxhYmxlT3B0aW9ucykge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuYXZhaWxhYmxlT3B0aW9ucywga2V5KSkge1xyXG5cdFx0XHRcdGlmICghaXNTdHJpbmcodGhpcy5hdmFpbGFibGVPcHRpb25zW2tleV0pKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleUNvbnRlbnRDVlN1cnZleSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25TdXJ2ZXlDb250ZW50Q1ZTdXJ2ZXkge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5Q29udGVudENWU3VydmV5KCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXN1bHQuY3VzdG9tZXJWb2ljZUZvcm1JZCA9IGlucHV0LkN1c3RvbWVyVm9pY2VGb3JtSWQ7XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiRm9ybUlkXCIpXHJcblx0cHVibGljIGN1c3RvbWVyVm9pY2VGb3JtSWQ6IHN0cmluZztcclxuXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHJcblx0XHRyZXR1cm4gKCFpc05PVSh0aGlzLmN1c3RvbWVyVm9pY2VGb3JtSWQpICYmIGlzU3RyaW5nKHRoaXMuY3VzdG9tZXJWb2ljZUZvcm1JZCkpO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5Q29udGVudFByb21wdCB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25TdXJ2ZXlDb250ZW50UHJvbXB0IHtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleUNvbnRlbnRQcm9tcHQoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC50aXRsZSA9IGlucHV0LlRpdGxlO1xyXG5cdFx0cmVzdWx0LnF1ZXN0aW9uID0gaW5wdXQuUXVlc3Rpb247XHJcblx0XHRyZXN1bHQueWVzTGFiZWwgPSBpbnB1dC5ZZXNMYWJlbDtcclxuXHRcdHJlc3VsdC5ub0xhYmVsID0gaW5wdXQuTm9MYWJlbDtcclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJUaXRsZVwiKVxyXG5cdHB1YmxpYyB0aXRsZTogc3RyaW5nO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJRdWVzdGlvblwiKVxyXG5cdHB1YmxpYyBxdWVzdGlvbjogc3RyaW5nO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJZZXNMYWJlbFwiKVxyXG5cdHB1YmxpYyB5ZXNMYWJlbDogc3RyaW5nO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJOb0xhYmVsXCIpXHJcblx0cHVibGljIG5vTGFiZWw6IHN0cmluZztcclxuXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLnRpdGxlKSB8fCAhaXNTdHJpbmcodGhpcy50aXRsZSkgfHxcclxuXHRcdFx0aXNOT1UodGhpcy5xdWVzdGlvbikgfHwgIWlzU3RyaW5nKHRoaXMucXVlc3Rpb24pIHx8XHJcblx0XHRcdGlzTk9VKHRoaXMueWVzTGFiZWwpIHx8ICFpc1N0cmluZyh0aGlzLnllc0xhYmVsKSB8fFxyXG5cdFx0XHRpc05PVSh0aGlzLm5vTGFiZWwpIHx8ICFpc1N0cmluZyh0aGlzLm5vTGFiZWwpKSB7XHJcblxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlDb250ZW50SW50ZXJjZXB0IHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblN1cnZleUNvbnRlbnRJbnRlcmNlcHQge1xyXG5cdFx0Y29uc3QgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5Q29udGVudEludGVyY2VwdCgpO1xyXG5cclxuXHRcdGlmIChpc05PVShpbnB1dCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LnRpdGxlID0gaW5wdXQuVGl0bGU7XHJcblx0XHRyZXN1bHQucXVlc3Rpb24gPSBpbnB1dC5RdWVzdGlvbjtcclxuXHRcdHJlc3VsdC51cmwgPSBpbnB1dC5Vcmw7XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiVGl0bGVcIilcclxuXHRwdWJsaWMgdGl0bGU6IHN0cmluZztcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUXVlc3Rpb25cIilcclxuXHRwdWJsaWMgcXVlc3Rpb246IHN0cmluZztcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiVXJsXCIpXHJcblx0cHVibGljIHVybDogc3RyaW5nO1xyXG5cclxuXHRwcml2YXRlIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMudGl0bGUpIHx8ICFpc1N0cmluZyh0aGlzLnRpdGxlKSB8fFxyXG5cdFx0XHRpc05PVSh0aGlzLnF1ZXN0aW9uKSB8fCAhaXNTdHJpbmcodGhpcy5xdWVzdGlvbikgfHxcclxuXHRcdFx0aXNOT1UodGhpcy51cmwpIHx8ICFpc1N0cmluZyh0aGlzLnVybCkpIHtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleUNvbnRlbnRSYXRpbmcge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IENhbXBhaWduU3VydmV5Q29udGVudFJhdGluZyB7XHJcblx0XHRjb25zdCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25TdXJ2ZXlDb250ZW50UmF0aW5nKCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXN1bHQuaXNaZXJvQmFzZWQgPSBpbnB1dC5Jc1plcm9CYXNlZDtcclxuXHRcdHJlc3VsdC5xdWVzdGlvbiA9IGlucHV0LlF1ZXN0aW9uO1xyXG5cdFx0cmVzdWx0LnJhdGluZ1ZhbHVlc0FzY2VuZGluZyA9IGlucHV0LlJhdGluZ1ZhbHVlc0FzY2VuZGluZztcclxuXHJcblx0XHRpZiAoIXJlc3VsdC52YWxpZGF0ZSgpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJJc1plcm9CYXNlZFwiKVxyXG5cdHB1YmxpYyBpc1plcm9CYXNlZDogYm9vbGVhbjtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUXVlc3Rpb25cIilcclxuXHRwdWJsaWMgcXVlc3Rpb246IHN0cmluZztcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUmF0aW5nVmFsdWVzQXNjZW5kaW5nXCIpXHJcblx0cHVibGljIHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW107XHJcblxyXG5cdHByaXZhdGUgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHQvLyBleHBlY3QgcmF0aW5nVmFsdWVzQXNjZW5kaW5nIHRvIGNvbnRhaW4gYmV0d2VlbiAyIHRvIDExIHZhbHVlc1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMucXVlc3Rpb24pIHx8ICFpc1N0cmluZyh0aGlzLnF1ZXN0aW9uKSB8fFxyXG5cdFx0XHRpc05PVSh0aGlzLnJhdGluZ1ZhbHVlc0FzY2VuZGluZykgfHwgIUFycmF5LmlzQXJyYXkodGhpcy5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcpIHx8XHJcblx0XHRcdHRoaXMucmF0aW5nVmFsdWVzQXNjZW5kaW5nLmxlbmd0aCA8IDIgfHwgdGhpcy5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcubGVuZ3RoID4gMTEpIHtcclxuXHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5pc1plcm9CYXNlZCkpIHtcclxuXHRcdFx0Ly8gZGVmYXVsdCB0byBmYWxzZSBpZiBub3QgcHJvdmlkZWRcclxuXHRcdFx0dGhpcy5pc1plcm9CYXNlZCA9IGZhbHNlO1xyXG5cdFx0fSBlbHNlIGlmICghaXNCb29sZWFuKHRoaXMuaXNaZXJvQmFzZWQpKSB7XHJcblx0XHRcdC8vIGZhaWwgdmFsaWRhdGlvbiBpZiBub24gYm9vbGVhbiB2YWx1ZSBpcyBwcm92aWRlZFxyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gZXhwZWN0IGFsbCByYXRpbmdWYWx1ZXNBc2NlbmRpbmcgdmFsdWVzIHRvIGJlIHN0cmluZ1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gdGhpcy5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLnJhdGluZ1ZhbHVlc0FzY2VuZGluZywga2V5KSkge1xyXG5cdFx0XHRcdGlmICghaXNTdHJpbmcodGhpcy5yYXRpbmdWYWx1ZXNBc2NlbmRpbmdba2V5XSkpIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleUNvbnRlbnRDb21tZW50IHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblN1cnZleUNvbnRlbnRDb21tZW50IHtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleUNvbnRlbnRDb21tZW50KCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBAU2VyaWFsaXplZE5hbWUoXCJRdWVzdGlvblwiKVxyXG5cdFx0cmVzdWx0LnF1ZXN0aW9uID0gaW5wdXQuUXVlc3Rpb247XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiUXVlc3Rpb25cIilcclxuXHRwdWJsaWMgcXVlc3Rpb246IHN0cmluZztcclxuXHJcblx0cHJpdmF0ZSB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLnF1ZXN0aW9uKSB8fCAhaXNTdHJpbmcodGhpcy5xdWVzdGlvbikpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxufVxyXG5cclxuLy8gZW5kcmVnaW9uXHJcblxyXG4vLyByZWdpb24gU3VydmV5IE1ldGFkYXRhIERlZmluaXRpb25zXHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlNZXRhZGF0YSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogQ2FtcGFpZ25TdXJ2ZXlNZXRhZGF0YSB7XHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleU1ldGFkYXRhKCk7XHJcblx0XHRyZXN1bHQuY29udGVudE1ldGFkYXRhID0gaW5wdXQuQ29udGVudE1ldGFkYXRhO1xyXG5cclxuXHRcdGlmICghcmVzdWx0LnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkNvbnRlbnRNZXRhZGF0YVwiKVxyXG5cdHB1YmxpYyBjb250ZW50TWV0YWRhdGE6IG9iamVjdDtcclxuXHJcblx0cHVibGljIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMuY29udGVudE1ldGFkYXRhKSB8fCAhVXRpbHMuaXNPYmplY3QodGhpcy5jb250ZW50TWV0YWRhdGEpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIGVuZHJlZ2lvblxyXG5cclxuLy8gcmVnaW9uIFN1cnZleSBUZW1wbGF0ZSBkZWZpbml0aW9uc1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENhbXBhaWduU3VydmV5VGVtcGxhdGUge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IFtDYW1wYWlnblN1cnZleVRlbXBsYXRlLCBzdHJpbmddIHtcclxuXHRcdGxldCByZXN1bHQ6IENhbXBhaWduU3VydmV5VGVtcGxhdGU7XHJcblx0XHRsZXQgdmFsaWRhdGlvbkVycm9yID0gJyc7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gW251bGwsICdkZXNlcmlhbGl6ZSBwYXJhbWV0ZXIgaXMgbnVsbCddO1xyXG5cdFx0fVxyXG5cclxuXHRcdHN3aXRjaCAoaW5wdXQuVHlwZSkge1xyXG5cdFx0XHRjYXNlIENhbXBhaWduU3VydmV5VGVtcGxhdGUuVHlwZS5OcHM1UG9pbnRTdGF0aWM6XHJcblx0XHRcdFx0W3Jlc3VsdCwgdmFsaWRhdGlvbkVycm9yXSA9IENhbXBhaWduU3VydmV5VGVtcGxhdGVOcHM1UG9pbnRTdGF0aWMuZGVzZXJpYWxpemUoaW5wdXQpO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIENhbXBhaWduU3VydmV5VGVtcGxhdGUuVHlwZS5OcHMxMVBvaW50U3RhdGljOlxyXG5cdFx0XHRcdFtyZXN1bHQsIHZhbGlkYXRpb25FcnJvcl0gPSBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzMTFQb2ludFN0YXRpYy5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZS5UeXBlLkZwczpcclxuXHRcdFx0XHRbcmVzdWx0LCB2YWxpZGF0aW9uRXJyb3JdID0gQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZUZwcy5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZS5UeXBlLk5scXM6XHJcblx0XHRcdFx0W3Jlc3VsdCwgdmFsaWRhdGlvbkVycm9yXSA9IENhbXBhaWduU3VydmV5VGVtcGxhdGVObHFzLmRlc2VyaWFsaXplKGlucHV0KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBDYW1wYWlnblN1cnZleVRlbXBsYXRlLlR5cGUuTnBzOlxyXG5cdFx0XHRcdFtyZXN1bHQsIHZhbGlkYXRpb25FcnJvcl0gPSBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzLmRlc2VyaWFsaXplKGlucHV0KTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBDYW1wYWlnblN1cnZleVRlbXBsYXRlLlR5cGUuR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2U6XHJcblx0XHRcdFx0W3Jlc3VsdCwgdmFsaWRhdGlvbkVycm9yXSA9IENhbXBhaWduU3VydmV5VGVtcGxhdGVHZW5lcmljTWVzc2FnaW5nU3VyZmFjZS5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZS5UeXBlLkludGVyY2VwdDpcclxuXHRcdFx0XHRbcmVzdWx0LCB2YWxpZGF0aW9uRXJyb3JdID0gQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZUludGVyY2VwdC5kZXNlcmlhbGl6ZShpbnB1dCk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKHJlc3VsdCkpIHtcclxuXHRcdFx0cmV0dXJuIFtudWxsLCB2YWxpZGF0aW9uRXJyb3JdO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBbcmVzdWx0LCB2YWxpZGF0aW9uRXJyb3JdO1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiQWN0aXZhdGlvbkV2ZW50XCIpXHJcblx0cHVibGljIGFjdGl2YXRpb25FdmVudDogQ2FtcGFpZ25TdXJ2ZXlFdmVudDtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiQ29udGVudFwiKVxyXG5cdHB1YmxpYyBjb250ZW50OiBDYW1wYWlnblN1cnZleUNvbnRlbnQ7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk1ldGFkYXRhXCIpXHJcblx0cHVibGljIG1ldGFkYXRhOiBDYW1wYWlnblN1cnZleU1ldGFkYXRhO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJNYXhMYXVuY2hlc1wiKVxyXG5cdHB1YmxpYyBtYXhMYXVuY2hlczogbnVtYmVyO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJNYXhMYXVuY2hlc1BlclNlc3Npb25cIilcclxuXHRwdWJsaWMgbWF4TGF1bmNoZXNQZXJTZXNzaW9uOiBudW1iZXI7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlByZWZlcnJlZExhdW5jaFR5cGVcIilcclxuXHRwdWJsaWMgcHJlZmVycmVkTGF1bmNoVHlwZTogU3VydmV5SW5mb0xhdW5jaFR5cGU7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlV4U2NoZW1hXCIpXHJcblx0cHVibGljIHV4U2NoZW1hOiBJVXhTY2hlbWE7XHJcblxyXG5cdHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogc3RyaW5nIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLmFjdGl2YXRpb25FdmVudCkpIHtcclxuXHRcdFx0cmV0dXJuICdUaGUgc3VydmV5IHRlbXBsYXRlIGlzIG1pc3NpbmcgdGhlIGFjdGl2YXRpb24gZXZlbnQuJztcclxuXHRcdH1cclxuXHRcdC8vIFZhbGlkYXRlIFVYIFNjaGVtYVxyXG5cdFx0aWYgKHRoaXMudXhTY2hlbWEpIHtcclxuXHRcdFx0Ly8gU2NoZW1hIHBhZ2VzIHZhbGlkYXRpb25cclxuXHRcdFx0Y29uc3QgcGFnZXNWYWxpZGl0eUVycm9yID0gdGhpcy52YWxpZGF0ZVBhZ2VzKHRoaXMudXhTY2hlbWEucGFnZXMpXHJcblx0XHRcdGlmIChwYWdlc1ZhbGlkaXR5RXJyb3IpIHtcclxuXHRcdFx0XHRyZXR1cm4gcGFnZXNWYWxpZGl0eUVycm9yXHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gU2NoZW1hIHZhcmlhYmxlcyB2YWxpZGF0aW9uXHJcblx0XHRcdGlmICh0aGlzLnV4U2NoZW1hLnZhcmlhYmxlcykge1xyXG5cdFx0XHRcdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMudXhTY2hlbWEudmFyaWFibGVzKSkge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMudXhTY2hlbWEudmFyaWFibGVzW2tleV0gPT09IG51bGwgfHwgdGhpcy51eFNjaGVtYS52YXJpYWJsZXNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBgU2NoZW1hIHZhcmlhYmxlIG9mIGtleSAke2tleX0gZG9lcyBub3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgdmFsdWUuYFxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZHluYW1pY1V4U2NoZW1hVmFyaWFibGVzLCBrZXkpKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMudXhTY2hlbWEudmFyaWFibGVzW2tleV0gPSBkeW5hbWljVXhTY2hlbWFWYXJpYWJsZXNba2V5XTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gYEhvc3QgYXBwIGRvZXMgbm90IHByb3ZpZGUgU2NoZW1hIHZhcmlhYmxlIG9mIGtleSAke2tleX0uYFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBBZGRpdGlvbmFsIGNhcGFiaWxpdGllcyB2YWxpZGF0aW9uXHJcblx0XHRcdGlmICh0aGlzLnV4U2NoZW1hLmFkZGl0aW9uYWxDYXBhYmlsaXRpZXMpIHtcclxuXHRcdFx0XHRpZiAodGhpcy51eFNjaGVtYS5hZGRpdGlvbmFsQ2FwYWJpbGl0aWVzW0lVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcy5FbWFpbF0/LnRhcmdldFBhZ2UgPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuICdTY2hlbWEgYWRkaXRpb25hbCBjYXBhYmlsaXR5IG9mIEVtYWlsIGlzIGRlZmluZWQgYnV0IGhhcyBubyB0YXJnZXQgcGFnZS4nXHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdGNvbnN0IHRhcmdldFBhZ2UgPSB0aGlzLnV4U2NoZW1hLmFkZGl0aW9uYWxDYXBhYmlsaXRpZXNbSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzLkVtYWlsXT8udGFyZ2V0UGFnZSBhcyBudW1iZXJcclxuXHRcdFx0XHRcdGlmICh0YXJnZXRQYWdlIDwgMCB8fCB0YXJnZXRQYWdlID49IHRoaXMudXhTY2hlbWEucGFnZXMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBgU2NoZW1hIGFkZGl0aW9uYWwgY2FwYWJpbGl0eSBvZiBFbWFpbCBoYXMgaXRzIHRhcmdldCBwYWdlIGVxdWFsIHRvICR7dGFyZ2V0UGFnZX0gd2hpY2ggaXMgb3V0IG9mIHJhbmdlLmBcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gQnJhbmNoaW5nIHJ1bGVzIHZhbGlkYXRpb25cclxuXHRcdFx0aWYgKHRoaXMudXhTY2hlbWEuYnJhbmNoaW5nUnVsZXMgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnV4U2NoZW1hLmJyYW5jaGluZ1J1bGVzKSAmJiB0aGlzLnV4U2NoZW1hLmJyYW5jaGluZ1J1bGVzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRmb3IgKGNvbnN0IHJ1bGUgb2YgdGhpcy51eFNjaGVtYS5icmFuY2hpbmdSdWxlcykge1xyXG5cdFx0XHRcdFx0aWYgKHJ1bGUuY29uZGl0aW9ucyAmJiBBcnJheS5pc0FycmF5KHJ1bGUuY29uZGl0aW9ucykgJiYgcnVsZS5jb25kaXRpb25zLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdFx0Zm9yIChjb25zdCBjb25kaXRpb24gb2YgcnVsZS5jb25kaXRpb25zKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKGNvbmRpdGlvbi5jb25kaXRpb25UeXBlID09IG51bGwgfHxcclxuXHRcdFx0XHRcdFx0XHRcdGNvbmRpdGlvbi5jb25kaXRpb25WYWx1ZSA9PSBudWxsIHx8XHJcblx0XHRcdFx0XHRcdFx0XHRjb25kaXRpb24uc291cmNlSWQgPT0gbnVsbCB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29uZGl0aW9uLnNvdXJjZVR5cGUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuICdBIGNvbmRpdGlvbiBpbiB0aGUgYnJhbmNoaW5nIHJ1bGVzIGlzIG1pc3NpbmcgYSB0eXBlL3ZhbHVlL3NvdXJjZUlkL3NvdXJjZVR5cGUuJ1xyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoY29uZGl0aW9uLnNvdXJjZVR5cGUgPT09IENvbmRpdGlvblNvdXJjZVR5cGUuVmFyaWFibGUpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCF0aGlzLnV4U2NoZW1hLnZhcmlhYmxlcyB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCFPYmplY3Qua2V5cyh0aGlzLnV4U2NoZW1hLnZhcmlhYmxlcykuaW5jbHVkZXMoY29uZGl0aW9uLnNvdXJjZUlkKSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBgVGhlIHZhcmlhYmxlICR7Y29uZGl0aW9uLnNvdXJjZUlkfSBpcyB1c2VkIGluIHRoZSBicmFuY2hpbmcgcnVsZXMgYnV0IG5vdCBkZWZpbmVkIGFtb25nIHRoZSBzY2hlbWEgdmFyaWFibGVzLmBcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGNvbmRpdGlvbi5zb3VyY2VQYWdlSW5kZXggPT0gbnVsbCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiAnQSBjb25kaXRpb24gaW4gdGhlIGJyYW5jaGluZyBydWxlcyBvZiB0eXBlIHF1ZXN0aW9uIGlzIG1pc3NpbmcgYSBzb3VyY2VQYWdlSW5kZXguJ1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGNvbnN0IHF1ZXN0aW9uSW5kZXggPSB0aGlzLnV4U2NoZW1hLnBhZ2VzW2NvbmRpdGlvbi5zb3VyY2VQYWdlSW5kZXhdPy5xdWVzdGlvbnMuZmluZEluZGV4KFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KHF1ZXN0aW9uKSA9PiBxdWVzdGlvbi5pZCA9PT0gY29uZGl0aW9uLnNvdXJjZUlkKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggcXVlc3Rpb25JbmRleCA9PSBudWxsIHx8IHF1ZXN0aW9uSW5kZXggPCAwKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gYFRoZSB0YXJnZXQgcXVlc3Rpb24gd2l0aCBpZCAke2NvbmRpdGlvbi5zb3VyY2VJZH0gZG9lcyBub3QgZXhpc3QuYFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoY29uZGl0aW9uLnN1YlNvdXJjZUluZGV4KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAodGhpcy51eFNjaGVtYS5wYWdlc1tjb25kaXRpb24uc291cmNlUGFnZUluZGV4XS5xdWVzdGlvbnNbcXVlc3Rpb25JbmRleF0udHlwZSAhPSBRdWVzdGlvblR5cGUuTGlrZXJ0KSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBgQSBzdWJzb3VyY2UgcGFnZSBpbmRleCBvZiAke2NvbmRpdGlvbi5zdWJTb3VyY2VJbmRleH0gaXMgcHJvdmlkZWRcclxuYnV0IHRoZSBxdWVzdGlvbiB3aXRoIGlkICR7Y29uZGl0aW9uLnNvdXJjZUlkfSBpcyBub3Qgb2YgdHlwZSBMaWtlcnQuYFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0Y29uc3QgbGlrZXJ0UXVlc3Rpb24gPSB0aGlzLnV4U2NoZW1hLnBhZ2VzW2NvbmRpdGlvbi5zb3VyY2VQYWdlSW5kZXhdLnF1ZXN0aW9uc1txdWVzdGlvbkluZGV4XSBhcyBMaWtlcnRRdWVzdGlvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAobGlrZXJ0UXVlc3Rpb24uaG9yaXpvbnRhbFN0YXRlbWVudHMubGVuZ3RoIDw9IGNvbmRpdGlvbi5zdWJTb3VyY2VJbmRleCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBgVGhlIGxpa2VydCBxdWVzdGlvbiB3aXRoIGlkICR7Y29uZGl0aW9uLnNvdXJjZUlkfSBkb2Vzbid0IGhhdmVcclxuYSBob3Jpem9udGFsIG9wdGlvbiB3aXRoIGluZGV4ICR7Y29uZGl0aW9uLnN1YlNvdXJjZUluZGV4fS5gXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAocnVsZS50YXJnZXRzICYmIEFycmF5LmlzQXJyYXkocnVsZS50YXJnZXRzKSAmJiBydWxlLnRhcmdldHMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRmb3IgKGNvbnN0IHRhcmdldCBvZiBydWxlLnRhcmdldHMpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAodGFyZ2V0LnR5cGUgPT09IEJyYW5jaGluZ1RhcmdldFR5cGUuUGFnZSkge1xyXG5cdFx0XHRcdFx0XHRcdFx0Y29uc3QgcGFnZVRhcmdldCA9IHRhcmdldCBhcyBCcmFuY2hpbmdUYXJnZXRQYWdlXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAocGFnZVRhcmdldC5oaWRkZW5QYWdlSW5kaWNlcy5maWx0ZXIoaW5kZXggPT4gaW5kZXggPCAwKS5sZW5ndGggPiAwIHx8XHJcblx0XHRcdFx0XHRcdFx0XHRwYWdlVGFyZ2V0LmhpZGRlblBhZ2VJbmRpY2VzLmZpbHRlcihpbmRleCA9PiBpbmRleCA+PSB0aGlzLnV4U2NoZW1hLnBhZ2VzLmxlbmd0aCkubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gJ1NvbWUgb2YgdGhlIGhpZGRlbiBwYWdlcyBpbmRleGVzIGFyZSBvdXQgb2YgcmFuZ2UuJ1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBvdmVycmlkZVRhcmdldCA9IHRhcmdldCBhcyBCcmFuY2hpbmdUYXJnZXRPdmVycmlkZVxyXG5cdFx0XHRcdFx0XHRcdFx0aWYob3ZlcnJpZGVUYXJnZXQudGFyZ2V0UGFnZUluZGV4IDwgMCB8fCBvdmVycmlkZVRhcmdldC50YXJnZXRQYWdlSW5kZXggPj0gdGhpcy51eFNjaGVtYS5wYWdlcy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuICdBbiBvdmVycmlkZSB0YXJnZXQgaGFzIGl0cyBwYWdlIGluZGV4IG91dCBvZiByYW5nZS4nXHJcblx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRjb25zdCBvdmVycmlkZVRhcmdldFF1ZXN0aW9uID0gdGhpcy51eFNjaGVtYS5wYWdlc1tvdmVycmlkZVRhcmdldC50YXJnZXRQYWdlSW5kZXhdLnF1ZXN0aW9ucy5maW5kKHF1ZXN0aW9uID0+XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cXVlc3Rpb24uaWQgPT09IG92ZXJyaWRlVGFyZ2V0LnRhcmdldE92ZXJyaWRlSWQpXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICghb3ZlcnJpZGVUYXJnZXRRdWVzdGlvbikge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBgQW4gb3ZlcnJpZGUgdGFyZ2V0J3MgcXVlc3Rpb24gb24gcGFnZSAke292ZXJyaWRlVGFyZ2V0LnRhcmdldFBhZ2VJbmRleH0gZG9lcyBub3QgZXhpc3RgXHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdmFsaWRhdGVQYWdlcyhzY2hlbWFQYWdlczogSVV4U2NoZW1hUGFnZVtdKSA6IHN0cmluZyB7XHJcblx0XHRpZiAoIXNjaGVtYVBhZ2VzIHx8ICFBcnJheS5pc0FycmF5KHNjaGVtYVBhZ2VzKSB8fCBzY2hlbWFQYWdlcy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0cmV0dXJuICdTY2hlbWEgaGFzIG5vIHBhZ2VzLidcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZvciAoY29uc3QgcGFnZSBvZiBzY2hlbWFQYWdlcykge1xyXG5cdFx0XHRcdGlmICghcGFnZS5pZCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuICdQYWdlIGlzIG1pc3NpbmcgYW4gaWQuJ1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAocGFnZS5kaXNwbGF5TmFtZSA9PSBudWxsKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gJ1BhZ2UgaXMgbWlzc2luZyBhIGRpc3BsYXlOYW1lLidcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCFwYWdlLnF1ZXN0aW9ucyB8fCAhQXJyYXkuaXNBcnJheShwYWdlLnF1ZXN0aW9ucykgfHwgcGFnZS5xdWVzdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gYFBhZ2UgJHtwYWdlLmlkfSBkb2VzIG5vdCBoYXZlIGFueSBxdWVzdGlvbnMuYFxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRmb3IgKGNvbnN0IHF1ZXN0aW9uIG9mIHBhZ2UucXVlc3Rpb25zKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHF1ZXN0aW9uRXJyb3IgPSB0aGlzLnZhbGlkYXRlUXVlc3Rpb24ocXVlc3Rpb24pXHJcblx0XHRcdFx0XHRcdGlmIChxdWVzdGlvbkVycm9yKSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGBPbiBwYWdlICR7cGFnZS5pZH0gYCArIHF1ZXN0aW9uRXJyb3JcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuICcnXHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHZhbGlkYXRlUXVlc3Rpb24ocXVlc3Rpb246IFF1ZXN0aW9uKTogc3RyaW5nIHtcclxuXHRcdGxldCBxdWVzdGlvbkVycm9yID0gJydcclxuXHRcdGlmICghcXVlc3Rpb24uaWQgfHwgIXF1ZXN0aW9uLnF1ZXN0aW9uTGFiZWwgfHwgIXF1ZXN0aW9uLnR5cGUpIHtcclxuXHRcdFx0cXVlc3Rpb25FcnJvciArPSAndGhlIHF1ZXN0aW9uIGlzIG1pc3Npbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczogaWQsIGxhYmVsIG9yIHF1ZXN0aW9uIHR5cGUuJ1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKHF1ZXN0aW9uLnR5cGUgPT09ICBRdWVzdGlvblR5cGUuU2luZ2xlU2VsZWN0ICYmIFxyXG5cdFx0XHQoIXF1ZXN0aW9uLmF2YWlsYWJsZU9wdGlvbnMgfHwgIUFycmF5LmlzQXJyYXkocXVlc3Rpb24uYXZhaWxhYmxlT3B0aW9ucykgfHxcclxuXHRcdFx0cXVlc3Rpb24uYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggPCAyIHx8IHF1ZXN0aW9uLmF2YWlsYWJsZU9wdGlvbnMubGVuZ3RoID4gMTEpKSB7XHJcblx0XHRcdFx0cXVlc3Rpb25FcnJvciArPSBgdGhlIHF1ZXN0aW9uICR7cXVlc3Rpb24uaWR9IG9mIHR5cGUgU2luZ2xlU2VsZWN0IG11c3QgaGF2ZSBhdCBsZWFzdCAyIGFuZCBhdCBtb3N0IDExIGF2YWlsYWJsZSBvcHRpb25zLmBcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAocXVlc3Rpb24udHlwZSA9PSBRdWVzdGlvblR5cGUuTXVsdGlwbGVDaG9pY2UgJiZcclxuXHRcdFx0KCFxdWVzdGlvbi5hdmFpbGFibGVPcHRpb25zIHx8ICFBcnJheS5pc0FycmF5KHF1ZXN0aW9uLmF2YWlsYWJsZU9wdGlvbnMpIHx8XHJcblx0XHRcdHF1ZXN0aW9uLmF2YWlsYWJsZU9wdGlvbnMubGVuZ3RoIDwgMiB8fCBxdWVzdGlvbi5hdmFpbGFibGVPcHRpb25zLmxlbmd0aCA+IDExKSkge1xyXG5cdFx0XHRcdHF1ZXN0aW9uRXJyb3IgKz0gYHRoZSBxdWVzdGlvbiAke3F1ZXN0aW9uLmlkfSBvZiB0eXBlIE11bHRpcGxlQ2hvaWNlIG11c3QgaGF2ZSBhdCBsZWFzdCAyIGFuZCBhdCBtb3N0IDExIGF2YWlsYWJsZSBvcHRpb25zLmBcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAocXVlc3Rpb24udHlwZSA9PT0gUXVlc3Rpb25UeXBlLlJhdGluZyAmJiAoIXF1ZXN0aW9uLmxlZnRMZWdlbmRWYWx1ZSB8fCAhcXVlc3Rpb24ucmlnaHRMZWdlbmRWYWx1ZSB8fFxyXG5cdFx0XHRcdCFxdWVzdGlvbi5yYXRpbmdWYWx1ZXMgfHwgIUFycmF5LmlzQXJyYXkocXVlc3Rpb24ucmF0aW5nVmFsdWVzKSB8fFxyXG5cdFx0XHRcdHF1ZXN0aW9uLnJhdGluZ1ZhbHVlcy5sZW5ndGggPCAyIHx8IHF1ZXN0aW9uLnJhdGluZ1ZhbHVlcy5sZW5ndGggPiAxMSkpIHtcclxuXHRcdFx0XHRxdWVzdGlvbkVycm9yICs9IFxyXG5cdFx0XHRcdGB0aGUgcXVlc3Rpb24gJHtxdWVzdGlvbi5pZH0gb2YgdHlwZSByYXRpbmcgbXVzdCBoYXZlIGEgcmlnaHQgYW5kIGxlZnQgbGVnZW5kIGFuZCBoYXZlIGF0IGxlYXN0IDIgYW5kIGF0IG1vc3QgMTEgcmF0aW5nIHZhbHVlcy5gXHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKHF1ZXN0aW9uLnR5cGUgPT09IFF1ZXN0aW9uVHlwZS5MaWtlcnQgJiZcclxuXHRcdFx0XHQoIXF1ZXN0aW9uLmhvcml6b250YWxTdGF0ZW1lbnRzIHx8ICFBcnJheS5pc0FycmF5KHF1ZXN0aW9uLmhvcml6b250YWxTdGF0ZW1lbnRzKSB8fFxyXG5cdFx0XHRcdCFxdWVzdGlvbi52ZXJ0aWNhbE9wdGlvbnMgfHwgIUFycmF5LmlzQXJyYXkocXVlc3Rpb24udmVydGljYWxPcHRpb25zKSB8fFxyXG5cdFx0XHRcdHF1ZXN0aW9uLmhvcml6b250YWxTdGF0ZW1lbnRzLmxlbmd0aCA8IDEgfHwgcXVlc3Rpb24uaG9yaXpvbnRhbFN0YXRlbWVudHMubGVuZ3RoID4gMTAgfHxcclxuXHRcdFx0XHRxdWVzdGlvbi52ZXJ0aWNhbE9wdGlvbnMubGVuZ3RoIDwgMiB8fCBxdWVzdGlvbi52ZXJ0aWNhbE9wdGlvbnMubGVuZ3RoID4gNykpIHtcclxuXHRcdFx0XHRxdWVzdGlvbkVycm9yICs9IGB0aGUgcXVlc3Rpb24gJHtxdWVzdGlvbi5pZH0gb2YgdHlwZSBMaWtlcnQgbXVzdCBoYXZlXHJcbmF0IGxlYXN0IDIgYW5kIGF0IG1vc3QgNyB2ZXJ0aWNhbCBvcHRpb25zIGFuZCBhdCBsZWFzdCAxIGFuZCBhdCBtb3N0IDEwIGhvcml6b250YWwgb3B0aW9ucy5gXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBxdWVzdGlvbkVycm9yXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgbW9kdWxlIENhbXBhaWduU3VydmV5VGVtcGxhdGUge1xyXG5cdGV4cG9ydCBjb25zdCBlbnVtIFR5cGUge1xyXG5cdFx0TnBzNVBvaW50U3RhdGljID0gMCxcclxuXHRcdE5wczExUG9pbnRTdGF0aWMgPSAxLFxyXG5cdFx0RnBzID0gMixcclxuXHRcdE5scXMgPSAzLFxyXG5cdFx0TnBzID0gNCxcclxuXHRcdEludGVyY2VwdCA9IDUsXHJcblx0XHQvLyBBIGdlbmVyaWMgbWVzc2FnaWJnIHN1cmZhY2UgdGVtcGxhdGUgdHlwZSwgd2hpY2ggd2lsbCBtYWtlIHVzZSBvZlxyXG5cdFx0Ly8gY29udGVudCBtZXRhZGF0YSB0byByZW5kZXIgdWkuXHJcblx0XHQvLyBBcyBvZiA0dGggRmViIDIwMTkgdGhlcmUgYXJlIDIwIHRlbXBsYXRlIHR5cGVzIGRlZmluZWQgaW4gTXNvLFxyXG5cdFx0Ly8gaGVuY2UgZ2l2aW5nIDIyIGFzIHZhbHVlIGZvciB0aGlzIHR5cGUuXHJcblx0XHRHZW5lcmljTWVzc2FnaW5nU3VyZmFjZSA9IDIyLFxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5VGVtcGxhdGVGcHMgZXh0ZW5kcyBDYW1wYWlnblN1cnZleVRlbXBsYXRlIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBbQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZUZwcywgc3RyaW5nXSB7XHJcblx0XHRsZXQgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5VGVtcGxhdGVGcHMoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBbbnVsbCwgJ2Rlc2VyaWFsaXplIHBhcmFtZXRlciBpcyBudWxsJ107XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LmFjdGl2YXRpb25FdmVudCA9IENhbXBhaWduU3VydmV5RXZlbnQuZGVzZXJpYWxpemUoaW5wdXQuQWN0aXZhdGlvbkV2ZW50KTtcclxuXHRcdHJlc3VsdC5jb250ZW50ID0gQ2FtcGFpZ25TdXJ2ZXlDb250ZW50LmRlc2VyaWFsaXplKGlucHV0LkNvbnRlbnQsIHRydWUgLyogb3B0aW9uYWxDb21wb25lbnRzICovKTtcclxuXHRcdHJlc3VsdC51eFNjaGVtYSA9IGlucHV0LlV4U2NoZW1hXHJcblx0XHRjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSByZXN1bHQudmFsaWRhdGUoKVxyXG5cclxuXHRcdGlmICh2YWxpZGF0aW9uRXJyb3IpIHtcclxuXHRcdFx0cmVzdWx0ID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gW3Jlc3VsdCwgdmFsaWRhdGlvbkVycm9yXTtcclxuXHR9XHJcblxyXG5cdC8vIHB1YmxpYyBmb3IgVVQgb25seVxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHZhbGlkYXRpb25FcnJvciA9IHN1cGVyLnZhbGlkYXRlKClcclxuXHRcdGlmICh2YWxpZGF0aW9uRXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuIHZhbGlkYXRpb25FcnJvclxyXG5cdFx0fSBlbHNlIGlmICgoaXNOT1UodGhpcy5jb250ZW50KSAmJiBpc05PVSh0aGlzLnV4U2NoZW1hKSkpIHtcclxuXHRcdFx0cmV0dXJuICdUaGUgc3VydmV5IHNjaGVtYSBkb2VzIG5vdCBoYXZlIGFueSBjb250ZW50IG9yIHV4IHNjaGVtYSc7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICcnO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5VGVtcGxhdGVObHFzIGV4dGVuZHMgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogW0NhbXBhaWduU3VydmV5VGVtcGxhdGVObHFzLCBzdHJpbmddIHtcclxuXHRcdGxldCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5scXMoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBbbnVsbCwgJ2Rlc2VyaWFsaXplIHBhcmFtZXRlciBpcyBudWxsJ107XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LmFjdGl2YXRpb25FdmVudCA9IENhbXBhaWduU3VydmV5RXZlbnQuZGVzZXJpYWxpemUoaW5wdXQuQWN0aXZhdGlvbkV2ZW50KTtcclxuXHRcdHJlc3VsdC5jb250ZW50ID0gQ2FtcGFpZ25TdXJ2ZXlDb250ZW50LmRlc2VyaWFsaXplKGlucHV0LkNvbnRlbnQpO1xyXG5cdFx0Y29uc3QgdmFsaWRhdGlvbkVycm9yID0gcmVzdWx0LnZhbGlkYXRlKClcclxuXHJcblx0XHRpZiAodmFsaWRhdGlvbkVycm9yKSB7XHJcblx0XHRcdHJlc3VsdCA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtyZXN1bHQsIHZhbGlkYXRpb25FcnJvcl07XHJcblx0fVxyXG5cclxuXHQvLyBwdWJsaWMgZm9yIFVUIG9ubHlcclxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBzdXBlci52YWxpZGF0ZSgpXHJcblx0XHRpZiAodmFsaWRhdGlvbkVycm9yKSB7XHJcblx0XHRcdHJldHVybiB2YWxpZGF0aW9uRXJyb3JcclxuXHRcdH0gZWxzZSBpZiAoaXNOT1UodGhpcy5jb250ZW50KSkge1xyXG5cdFx0XHRyZXR1cm4gJ1RoZSBzdXJ2ZXkgc2NoZW1hIGRvZXMgbm90IGhhdmUgYW55IGNvbnRlbnQnO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzIGV4dGVuZHMgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogW0NhbXBhaWduU3VydmV5VGVtcGxhdGVOcHMsIHN0cmluZ10ge1xyXG5cdFx0bGV0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzKCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gW251bGwsICdkZXNlcmlhbGl6ZSBwYXJhbWV0ZXIgaXMgbnVsbCddO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC5hY3RpdmF0aW9uRXZlbnQgPSBDYW1wYWlnblN1cnZleUV2ZW50LmRlc2VyaWFsaXplKGlucHV0LkFjdGl2YXRpb25FdmVudCk7XHJcblx0XHRyZXN1bHQuY29udGVudCA9IENhbXBhaWduU3VydmV5Q29udGVudC5kZXNlcmlhbGl6ZShpbnB1dC5Db250ZW50KTtcclxuXHRcdHJlc3VsdC51eFNjaGVtYSA9IGlucHV0LlV4U2NoZW1hXHJcblx0XHRjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSByZXN1bHQudmFsaWRhdGUoKVxyXG5cclxuXHRcdGlmICh2YWxpZGF0aW9uRXJyb3IpIHtcclxuXHRcdFx0cmVzdWx0ID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gW3Jlc3VsdCwgdmFsaWRhdGlvbkVycm9yXTtcclxuXHR9XHJcblxyXG5cdC8vIHB1YmxpYyBmb3IgVVQgb25seVxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IHZhbGlkYXRpb25FcnJvciA9IHN1cGVyLnZhbGlkYXRlKClcclxuXHRcdGlmICh2YWxpZGF0aW9uRXJyb3IpIHtcclxuXHRcdFx0cmV0dXJuIHZhbGlkYXRpb25FcnJvclxyXG5cdFx0fSBlbHNlIGlmIChpc05PVSh0aGlzLmNvbnRlbnQpICYmIGlzTk9VKHRoaXMudXhTY2hlbWEpKSB7XHJcblx0XHRcdHJldHVybiAnVGhlIHN1cnZleSBzY2hlbWEgZG9lcyBub3QgaGF2ZSBhbnkgY29udGVudCBvciB1eCBzY2hlbWEnO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAnJztcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzNVBvaW50U3RhdGljIGV4dGVuZHMgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogW0NhbXBhaWduU3VydmV5VGVtcGxhdGVOcHM1UG9pbnRTdGF0aWMsIHN0cmluZ10ge1xyXG5cdFx0bGV0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzNVBvaW50U3RhdGljKCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gW251bGwsICdkZXNlcmlhbGl6ZSBwYXJhbWV0ZXIgaXMgbnVsbCddO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJlc3VsdC5hY3RpdmF0aW9uRXZlbnQgPSBDYW1wYWlnblN1cnZleUV2ZW50LmRlc2VyaWFsaXplKGlucHV0LkFjdGl2YXRpb25FdmVudCk7XHJcblx0XHRjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSByZXN1bHQudmFsaWRhdGUoKVxyXG5cdFx0aWYgKHZhbGlkYXRpb25FcnJvcikge1xyXG5cdFx0XHRyZXN1bHQgPSBudWxsXHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtyZXN1bHQsIHZhbGlkYXRpb25FcnJvcl07XHJcblx0fVxyXG5cclxuXHQvLyBwdWJsaWMgZm9yIFVUIG9ubHlcclxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gc3VwZXIudmFsaWRhdGUoKVxyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5VGVtcGxhdGVOcHMxMVBvaW50U3RhdGljIGV4dGVuZHMgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogW0NhbXBhaWduU3VydmV5VGVtcGxhdGVOcHMxMVBvaW50U3RhdGljLCBzdHJpbmddIHtcclxuXHRcdGxldCByZXN1bHQgPSBuZXcgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5wczExUG9pbnRTdGF0aWMoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBbbnVsbCwgJ2Rlc2VyaWFsaXplIHBhcmFtZXRlciBpcyBudWxsJ107XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LmFjdGl2YXRpb25FdmVudCA9IENhbXBhaWduU3VydmV5RXZlbnQuZGVzZXJpYWxpemUoaW5wdXQuQWN0aXZhdGlvbkV2ZW50KTtcclxuXHRcdGNvbnN0IHZhbGlkYXRpb25FcnJvciA9IHJlc3VsdC52YWxpZGF0ZSgpXHJcblxyXG5cdFx0aWYgKHZhbGlkYXRpb25FcnJvcikge1xyXG5cdFx0XHRyZXN1bHQgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBbcmVzdWx0LCB2YWxpZGF0aW9uRXJyb3JdO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHsgc3VwZXIoKTsgfVxyXG5cclxuXHRwcm90ZWN0ZWQgdmFsaWRhdGUoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBzdXBlci52YWxpZGF0ZSgpXHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZUdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlIGV4dGVuZHMgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB7XHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogW0NhbXBhaWduU3VydmV5VGVtcGxhdGVHZW5lcmljTWVzc2FnaW5nU3VyZmFjZSwgc3RyaW5nXSB7XHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBbbnVsbCwgJ2Rlc2VyaWFsaXplIHBhcmFtZXRlciBpcyBudWxsJ107XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHJlc3VsdCA9IG5ldyBDYW1wYWlnblN1cnZleVRlbXBsYXRlR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2UoKTtcclxuXHRcdHJlc3VsdC5hY3RpdmF0aW9uRXZlbnQgPSBDYW1wYWlnblN1cnZleUV2ZW50LmRlc2VyaWFsaXplKGlucHV0LkFjdGl2YXRpb25FdmVudCk7XHJcblx0XHRyZXN1bHQubWV0YWRhdGEgPSBDYW1wYWlnblN1cnZleU1ldGFkYXRhLmRlc2VyaWFsaXplKGlucHV0Lk1ldGFkYXRhKTtcclxuXHRcdHJlc3VsdC5tYXhMYXVuY2hlcyA9IGlucHV0Lk1heExhdW5jaGVzO1xyXG5cdFx0cmVzdWx0Lm1heExhdW5jaGVzUGVyU2Vzc2lvbiA9IGlucHV0Lk1heExhdW5jaGVzUGVyU2Vzc2lvbjtcclxuXHRcdHJlc3VsdC5wcmVmZXJyZWRMYXVuY2hUeXBlID0gaW5wdXQuUHJlZmVycmVkTGF1bmNoVHlwZTtcclxuXHRcdGNvbnN0IHZhbGlkYXRpb25FcnJvciA9IHJlc3VsdC52YWxpZGF0ZSgpXHJcblxyXG5cdFx0aWYgKHZhbGlkYXRpb25FcnJvcikge1xyXG5cdFx0XHRyZXN1bHQgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBbcmVzdWx0LCB2YWxpZGF0aW9uRXJyb3JdO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKCkgeyBzdXBlcigpOyB9XHJcblxyXG5cdHByb3RlY3RlZCB2YWxpZGF0ZSgpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgdmFsaWRhdGlvbkVycm9yID0gc3VwZXIudmFsaWRhdGUoKVxyXG5cdFx0aWYgKHZhbGlkYXRpb25FcnJvcikge1xyXG5cdFx0XHRyZXR1cm4gdmFsaWRhdGlvbkVycm9yXHJcblx0XHR9IGVsc2UgaWYgKGlzTk9VKHRoaXMubWV0YWRhdGEpKSB7XHJcblx0XHRcdHJldHVybiAnVGhlIG1ldGFkYXRhIGlzIHVuZGVmaW5lZCdcclxuXHRcdH0gZWxzZSBpZiAoKCFpc05PVSh0aGlzLm1heExhdW5jaGVzKSAmJiAoIWlzTnVtYmVyKHRoaXMubWF4TGF1bmNoZXMpIHx8IHRoaXMubWF4TGF1bmNoZXMgPD0gMCkpIHx8XHJcblx0XHRcdCghaXNOT1UodGhpcy5tYXhMYXVuY2hlc1BlclNlc3Npb24pICYmICghaXNOdW1iZXIodGhpcy5tYXhMYXVuY2hlc1BlclNlc3Npb24pIHx8IHRoaXMubWF4TGF1bmNoZXNQZXJTZXNzaW9uIDw9IDApKSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0xvY2FsRXJyb3IoXCJJbnZhbGlkIE11bHRpIExhdW5jaCBzZXR0aW5nc1wiLCB0aGlzLm1heExhdW5jaGVzLCB0aGlzLm1heExhdW5jaGVzUGVyU2Vzc2lvbik7XHJcblx0XHRcdHJldHVybiAnSW52YWxpZCBNdWx0aSBMYXVuY2ggc2V0dGluZ3MnO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGNoZWNrIGZvciB2YWxpZCB2YWx1ZXNcclxuXHRcdGlmIChpc051bWJlcih0aGlzLm1heExhdW5jaGVzKSAmJlxyXG5cdFx0XHRpc051bWJlcih0aGlzLm1heExhdW5jaGVzUGVyU2Vzc2lvbikgJiZcclxuXHRcdFx0dGhpcy5tYXhMYXVuY2hlc1BlclNlc3Npb24gPiB0aGlzLm1heExhdW5jaGVzKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfTG9jYWxFcnJvcihcIkludmFsaWQgTXVsdGkgbGF1bmNoIHNldHRpbmdzXCIsIHRoaXMubWF4TGF1bmNoZXMsIHRoaXMubWF4TGF1bmNoZXNQZXJTZXNzaW9uKTtcclxuXHRcdFx0cmV0dXJuICdJbnZhbGlkIE11bHRpIExhdW5jaCBzZXR0aW5ncyc7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc05PVSh0aGlzLnByZWZlcnJlZExhdW5jaFR5cGUpICYmICFpc1N0cmluZyh0aGlzLnByZWZlcnJlZExhdW5jaFR5cGUpKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfTG9jYWxFcnJvcihcIkludmFsaWQgbGF1bmNoZXIgdHlwZVwiLCB0aGlzLnByZWZlcnJlZExhdW5jaFR5cGUpO1xyXG5cdFx0XHRyZXR1cm4gJ0ludmFsaWQgbGF1bmNoZXIgdHlwZSc7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICcnO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5VGVtcGxhdGVJbnRlcmNlcHQgZXh0ZW5kcyBDYW1wYWlnblN1cnZleVRlbXBsYXRlIHtcclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBbQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZUludGVyY2VwdCwgc3RyaW5nXSB7XHJcblx0XHRsZXQgcmVzdWx0ID0gbmV3IENhbXBhaWduU3VydmV5VGVtcGxhdGVJbnRlcmNlcHQoKTtcclxuXHJcblx0XHRpZiAoaXNOT1UoaW5wdXQpKSB7XHJcblx0XHRcdHJldHVybiBbbnVsbCwgJ2Rlc2VyaWFsaXplIHBhcmFtZXRlciBpcyBudWxsJ107XHJcblx0XHR9XHJcblxyXG5cdFx0cmVzdWx0LmFjdGl2YXRpb25FdmVudCA9IENhbXBhaWduU3VydmV5RXZlbnQuZGVzZXJpYWxpemUoaW5wdXQuQWN0aXZhdGlvbkV2ZW50KTtcclxuXHRcdHJlc3VsdC5jb250ZW50ID0gQ2FtcGFpZ25TdXJ2ZXlDb250ZW50LmRlc2VyaWFsaXplKGlucHV0LkNvbnRlbnQpO1xyXG5cdFx0Y29uc3QgdmFsaWRhdGlvbkVycm9yID0gcmVzdWx0LnZhbGlkYXRlKClcclxuXHJcblx0XHRpZiAodmFsaWRhdGlvbkVycm9yKSB7XHJcblx0XHRcdHJlc3VsdCA9IG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtyZXN1bHQsIHZhbGlkYXRpb25FcnJvcl07XHJcblx0fVxyXG5cclxuXHQvLyBwdWJsaWMgZm9yIFVUIG9ubHlcclxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcblx0cHJvdGVjdGVkIHZhbGlkYXRlKCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBzdXBlci52YWxpZGF0ZSgpXHJcblx0XHRpZiAodmFsaWRhdGlvbkVycm9yKSB7XHJcblx0XHRcdHJldHVybiB2YWxpZGF0aW9uRXJyb3JcclxuXHRcdH0gZWxzZSBpZiAoaXNOT1UodGhpcy5jb250ZW50KSkge1xyXG5cdFx0XHRyZXR1cm4gJ1RoZSBzdXJ2ZXkgc2NoZW1hIGRvZXMgbm90IGhhdmUgYW55IGNvbnRlbnQnXHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuICcnO1xyXG5cdH1cclxufVxyXG5cclxuLy8gZW5kcmVnaW9uXHJcblxyXG4vLyByZWdpb24gQ2FtcGFpZ24gRGVmaW5pdGlvblxyXG5cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduRGVmaW5pdGlvbiBpbXBsZW1lbnRzIElDYW1wYWlnbkRlZmluaXRpb24ge1xyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBkZXNlcmlhbGl6ZSBhIEpTT04gb2JqZWN0IHRvIGNsYXNzIG9iamVjdFxyXG5cdCAqIEBwYXJhbSBpbnB1dDogSlNPTiBvYmplY3RcclxuXHQgKiBSZXR1cm5zIHJlc3VsdCBvZiB2YWxpZGF0aW9uIGNoZWNrXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogSUNhbXBhaWduRGVmaW5pdGlvbiB7XHJcblx0XHRjb25zdCByZXN1bHQ6IElDYW1wYWlnbkRlZmluaXRpb24gPSBuZXcgQ2FtcGFpZ25EZWZpbml0aW9uKCk7XHJcblx0XHRsZXQgdmFsaWRhdGlvbkVycm9yOiBzdHJpbmc7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXN1bHQuY2FtcGFpZ25JZCA9IGlucHV0LkNhbXBhaWduSWQ7XHJcblx0XHRyZXN1bHQuZ292ZXJuZWRDaGFubmVsVHlwZSA9IGlucHV0LkdvdmVybmVkQ2hhbm5lbFR5cGU7XHJcblx0XHRyZXN1bHQuc3RhcnRUaW1lID0gaW5wdXQuU3RhcnRUaW1lVXRjO1xyXG5cdFx0cmVzdWx0LmVuZFRpbWUgPSBpbnB1dC5FbmRUaW1lVXRjO1xyXG5cdFx0cmVzdWx0LmxhdW5jaGVyVHlwZSA9IGlucHV0LkxhdW5jaGVyVHlwZTtcclxuXHRcdHJlc3VsdC5wcmltYXJ5UHJpb3JpdHkgPSBpbnB1dC5QcmltYXJ5UHJpb3JpdHk7XHJcblx0XHRyZXN1bHQudGFncyA9IGlucHV0LlRhZ3M7XHJcblxyXG5cdFx0Y29uc3QgYWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQ6IENhbXBhaWduQWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQgPSBDYW1wYWlnbkFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkLmRlc2VyaWFsaXplKFxyXG5cdFx0XHRpbnB1dC5BZGRpdGlvbmFsRGF0YVJlcXVlc3RlZCk7XHJcblx0XHRyZXN1bHQuYWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQgPSBhZGRpdGlvbmFsRGF0YVJlcXVlc3RlZCA/IGFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkLmFkZGl0aW9uYWxEYXRhIDogW107XHJcblxyXG5cdFx0aWYgKGlucHV0LlN1cnZleVRlbXBsYXRlKSB7XHJcblx0XHRcdFtyZXN1bHQuc3VydmV5VGVtcGxhdGUsIHZhbGlkYXRpb25FcnJvcl0gPSBDYW1wYWlnblN1cnZleVRlbXBsYXRlLmRlc2VyaWFsaXplKGlucHV0LlN1cnZleVRlbXBsYXRlKTtcclxuXHRcdFx0aWYgKHZhbGlkYXRpb25FcnJvcikge1xyXG5cdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlci5DYW1wYWlnblN1cnZleVRlbXBsYXRlLlNjaGVtYVZhbGlkYXRpb25FcnJvcixcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0Q2FtcGFpZ25JZDogaW5wdXQuQ2FtcGFpZ25JZCxcclxuXHRcdFx0XHRcdFx0RXJyb3JNZXNzYWdlOiB2YWxpZGF0aW9uRXJyb3JcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHQpXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuTm9taW5hdGlvblNjaGVtZSkge1xyXG5cdFx0XHRyZXN1bHQubm9taW5hdGlvblNjaGVtZSA9IENhbXBhaWduTm9taW5hdGlvblNjaGVtZS5kZXNlcmlhbGl6ZShpbnB1dC5Ob21pbmF0aW9uU2NoZW1lKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuU2NvcGUpIHtcclxuXHRcdFx0cmVzdWx0LnNjb3BlID0gQ2FtcGFpZ25TY29wZS5kZXNlcmlhbGl6ZShpbnB1dC5TY29wZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc05PVShpbnB1dC5UcmVhdG1lbnRUeXBlKSkge1xyXG5cdFx0XHRyZXN1bHQudHJlYXRtZW50VHlwZSA9IGlucHV0LlRyZWF0bWVudFR5cGU7XHJcblx0XHR9ZWxzZXtcclxuXHRcdFx0cmVzdWx0LnRyZWF0bWVudFR5cGUgPSBUcmVhdG1lbnRUeXBlLm5vbmU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc05PVShpbnB1dC5CdXNpbmVzc0xldmVsKSkge1xyXG5cdFx0XHRyZXN1bHQuYnVzaW5lc3NMZXZlbCA9IGlucHV0LkJ1c2luZXNzTGV2ZWw7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFyZXN1bHQudmFsaWRhdGUoKSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0xvY2FsRXJyb3IoXCJJbnZhbGlkIGRlZmluaXRpb25cIiwgaW5wdXQpO1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiQ2FtcGFpZ25JZFwiKVxyXG5cdHB1YmxpYyBjYW1wYWlnbklkOiBzdHJpbmc7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkdvdmVybmVkQ2hhbm5lbFR5cGVcIilcclxuXHRwdWJsaWMgZ292ZXJuZWRDaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZTtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiU2NvcGVcIilcclxuXHRwdWJsaWMgc2NvcGU6IENhbXBhaWduU2NvcGU7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIk5vbWluYXRpb25TY2hlbWVcIilcclxuXHRwdWJsaWMgbm9taW5hdGlvblNjaGVtZTogQ2FtcGFpZ25Ob21pbmF0aW9uU2NoZW1lO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJTdXJ2ZXlUZW1wbGF0ZVwiKVxyXG5cdHB1YmxpYyBzdXJ2ZXlUZW1wbGF0ZTogQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZTtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiU3RhcnRUaW1lVXRjXCIpXHJcblx0cHVibGljIHN0YXJ0VGltZTogRGF0ZTtcclxuXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiRW5kVGltZVV0Y1wiKVxyXG5cdHB1YmxpYyBlbmRUaW1lOiBEYXRlO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJBZGRpdGlvbmFsRGF0YVJlcXVlc3RlZFwiKVxyXG5cdHB1YmxpYyBhZGRpdGlvbmFsRGF0YVJlcXVlc3RlZDogU3VydmV5SW5mb0FkZGl0aW9uYWxEYXRhVHlwZVtdO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJMYXVuY2hlclR5cGVcIilcclxuXHRwdWJsaWMgbGF1bmNoZXJUeXBlOiBzdHJpbmc7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlByaW9yaXR5XCIpXHJcblx0cHVibGljIHByaW1hcnlQcmlvcml0eTogbnVtYmVyO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJUYWdzXCIpXHJcblx0cHVibGljIHRhZ3M6IHN0cmluZ1tdO1xyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJCdXNpbmVzc0xldmVsXCIpXHJcblx0cHVibGljIGJ1c2luZXNzTGV2ZWw6IEJ1c2luZXNzTGV2ZWw7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIlRyZWF0bWVudFR5cGVcIilcclxuXHRwdWJsaWMgdHJlYXRtZW50VHlwZTogVHJlYXRtZW50VHlwZTtcclxuXHJcblx0cHVibGljIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMuc2NvcGUpKSB7XHJcblx0XHRcdHRoaXMuc2NvcGUgPSBuZXcgQ2FtcGFpZ25TY29wZUFueSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpc05PVSh0aGlzLmNhbXBhaWduSWQpIHx8ICFpc1N0cmluZyh0aGlzLmNhbXBhaWduSWQpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIWlzTnVtYmVyKHRoaXMuZ292ZXJuZWRDaGFubmVsVHlwZSkgfHwgIVV0aWxzLmlzRW51bVZhbHVlKHRoaXMuZ292ZXJuZWRDaGFubmVsVHlwZSwgR292ZXJuZWRDaGFubmVsVHlwZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpc05PVSh0aGlzLm5vbWluYXRpb25TY2hlbWUpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5zdXJ2ZXlUZW1wbGF0ZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghaXNOT1UodGhpcy5sYXVuY2hlclR5cGUpICYmICFpc1N0cmluZyh0aGlzLmxhdW5jaGVyVHlwZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmxhdW5jaGVyVHlwZSA9PT0gXCJjdXN0b21lcnZvaWNlXCIgJiYgaXNOT1UodGhpcy5zdXJ2ZXlUZW1wbGF0ZS5jb250ZW50Py5jdlN1cnZleT8uY3VzdG9tZXJWb2ljZUZvcm1JZCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghaXNOT1UodGhpcy5wcmltYXJ5UHJpb3JpdHkpICYmICFpc051bWJlcih0aGlzLnByaW1hcnlQcmlvcml0eSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLnRhZ3MgJiYgIUFycmF5LmlzQXJyYXkodGhpcy50YWdzKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2FtcGFpZ25zIHdpdGggbm8gc3RhcnQgZGF0ZSBhcmUgZWZmZWN0aXZlbHkgZGlzYWJsZWQsIGluIGZhY3QsIHRoaXMgaXMgdGhlIHN1cHBvcnRlZCB3YXkgdG8gc3RhZ2UgYSBkZWZpbml0aW9uIGJ1dCBoYXZlIGl0IGJlIHR1cm5lZCBvZmZcclxuXHRcdGlmIChpc05PVSh0aGlzLnN0YXJ0VGltZSkpIHtcclxuXHRcdFx0dGhpcy5zdGFydFRpbWUgPSBnZXREaXN0YW50RnV0dXJlKCk7XHJcblx0XHR9IGVsc2UgaWYgKGlzVXRjRGF0ZXRpbWVTdHJpbmcodGhpcy5zdGFydFRpbWUpKSB7XHJcblx0XHRcdHRoaXMuc3RhcnRUaW1lID0gc3RyaW5nVG9EYXRlKHRoaXMuc3RhcnRUaW1lKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDYW1wYWlnbnMgd2l0aCBubyBlbmQgZGF0ZSBhcmUgZWZmZWN0aXZlbHkgb24gaW5kZWZpbml0ZWx5XHJcblx0XHRpZiAoaXNOT1UodGhpcy5lbmRUaW1lKSB8fFxyXG5cdFx0XHQodHlwZW9mICh0aGlzLmVuZFRpbWUpID09PSBcInN0cmluZ1wiICYmIHRoaXMuZW5kVGltZSA9PT0gXCJcIikpIHtcclxuXHRcdFx0dGhpcy5lbmRUaW1lID0gZ2V0RGlzdGFudEZ1dHVyZSgpO1xyXG5cdFx0fSBlbHNlIGlmIChpc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuZW5kVGltZSkpIHtcclxuXHRcdFx0dGhpcy5lbmRUaW1lID0gc3RyaW5nVG9EYXRlKHRoaXMuZW5kVGltZSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogR2l2ZW4gYW4gYXJyYXkgb2YgY2FtcGFpZ24gZGVmaW5pdGlvbnMsIHJldHVybnMgdGhlIHZhbGlkIG9uZXMgYW5kIGVycm9ycyBpZiBhbnkgYXJlIGludmFsaWQuXHJcbiAqIEBwYXJhbSBpbnB1dDogSlNPTiBvYmplY3RcclxuICogUmV0dXJucyB0aGUgdmFsaWQgZGVmaW5pdGlvbnMgYW5kIHRoZSBlcnJvciBhcyBzdHJpbmcgaWYgYW55LlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZpbHRlclZhbGlkQ2FtcGFpZ25EZWZpbml0aW9ucyhjYW1wYWlnbkRlZmluaXRpb25zOiBhbnkpOiB7IHJlc3VsdDogSUNhbXBhaWduRGVmaW5pdGlvbltdLCBlcnJvcjogc3RyaW5nLCBpbnZhbGlkSW5kZXhlczogbnVtYmVyW10gfSB7XHJcblx0Y29uc3QgcmVzdWx0OiBJQ2FtcGFpZ25EZWZpbml0aW9uW10gPSBbXTtcclxuXHJcblx0aWYgKGlzTk9VKGNhbXBhaWduRGVmaW5pdGlvbnMpKSB7XHJcblx0XHRyZXR1cm4geyByZXN1bHQsIGVycm9yOiBcIkVtcHR5XCIsIGludmFsaWRJbmRleGVzOiBbXSB9O1xyXG5cdH1cclxuXHJcblx0aWYgKCFBcnJheS5pc0FycmF5KGNhbXBhaWduRGVmaW5pdGlvbnMpKSB7XHJcblx0XHRyZXR1cm4geyByZXN1bHQsIGVycm9yOiBcIk5vdCBhbiBhcnJheVwiLCBpbnZhbGlkSW5kZXhlczogW10gfTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGJhZEluZGV4ZXM6IG51bWJlcltdID0gW107XHJcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjYW1wYWlnbkRlZmluaXRpb25zLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRjb25zdCBkZWZpbml0aW9uOiBhbnkgPSBjYW1wYWlnbkRlZmluaXRpb25zW2ldO1xyXG5cclxuXHRcdGlmIChkZWZpbml0aW9uKSB7XHJcblx0XHRcdGNvbnN0IG5ld0RlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24gPSBDYW1wYWlnbkRlZmluaXRpb24uZGVzZXJpYWxpemUoZGVmaW5pdGlvbik7XHJcblxyXG5cdFx0XHRuZXdEZWZpbml0aW9uXHJcblx0XHRcdFx0PyByZXN1bHQucHVzaChuZXdEZWZpbml0aW9uKVxyXG5cdFx0XHRcdDogYmFkSW5kZXhlcy5wdXNoKGkpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0YmFkSW5kZXhlcy5wdXNoKGkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Y29uc3QgZXJyb3I6IHN0cmluZyA9IGJhZEluZGV4ZXMubGVuZ3RoID4gMCA/IFwiSW52YWxpZCBjYW1wYWlnbiBkZWZpbml0aW9ucyBhdCBpbmRleGVzOiBcIiArIGJhZEluZGV4ZXMudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcclxuXHRyZXR1cm4geyByZXN1bHQsIGVycm9yLCBpbnZhbGlkSW5kZXhlczogYmFkSW5kZXhlcyB9O1xyXG59XHJcblxyXG4vLyBlbmRyZWdpb25cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlU3lzdGVtQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXIgaW1wbGVtZW50cyBJQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXIge1xyXG5cdHByaXZhdGUgc3RvcmFnZTogSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlcjtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIpIHtcclxuXHRcdGlmIChpc05PVShzdG9yYWdlKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBsb2FkKCk6IElDYW1wYWlnbkRlZmluaXRpb25bXSB7XHJcblx0XHRjb25zdCBkZWZpbml0aW9uU3RyaW5nOiBzdHJpbmcgPSB0aGlzLnN0b3JhZ2UucmVhZChGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZS5DYW1wYWlnbkRlZmluaXRpb25zKTtcclxuXHRcdGlmIChpc05PVShkZWZpbml0aW9uU3RyaW5nKSkge1xyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHJlYWREZWZpbml0aW9uczogYW55O1xyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdHJlYWREZWZpbml0aW9ucyA9IEpTT04ucGFyc2UoZGVmaW5pdGlvblN0cmluZyk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfQ2FtcGFpZ25Mb2FkX0ZhaWxlZChlLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHRyZXR1cm4gW107XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVGhpcyBpZ25vcmVzIGVycm9ycyBpbiB2YWxpZGF0aW9uIGZvciBub3cuXHJcblx0XHRyZXR1cm4gRmlsdGVyVmFsaWRDYW1wYWlnbkRlZmluaXRpb25zKHJlYWREZWZpbml0aW9ucykucmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGxvYWRBc3luYygpOiBQcm9taXNlPElDYW1wYWlnbkRlZmluaXRpb25bXT4ge1xyXG5cdFx0Y29uc3QgZGVmaW5pdGlvbnMgPSB0aGlzLmxvYWQoKTtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZShcclxuXHRcdFx0ZnVuY3Rpb24gb25GdWxmaWxsZWQocmVzb2x2ZSwgcmVqZWN0KSB7XHJcblx0XHRcdFx0cmVzb2x2ZShkZWZpbml0aW9ucyk7XHJcblx0XHRcdH0sXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGhhc0RhdGFDaGFuZ2VkKCkge1xyXG5cdFx0Ly8gTm90IGltcGxlbWVudGVkIC0gcmV0dXJuIGZhbHNlXHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRHluYW1pY0NhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyPFQgZXh0ZW5kcyBFY3NSZXNwb25zZUJhc2U+IGltcGxlbWVudHMgSUNhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyIHtcclxuXHRwcml2YXRlIGVjc0NhbXBhaWduRGVmaW50aW9uUHJvdmlkZXI6IElFY3NBZGFwdGVyPFQ+O1xyXG5cdHByaXZhdGUgcHJlZml4UmVnZXggPSBuZXcgUmVnRXhwKC9eKEZsb29kZ2F0ZV9DYW1wYWlnbl8pL2ltKTtcclxuXHRwdWJsaWMgZVRhZzogc3RyaW5nO1xyXG5cclxuXHRjb25zdHJ1Y3RvcihzdG9yYWdlUHJvdmlkZXI6IElFY3NBZGFwdGVyPFQ+KSB7XHJcblx0XHRpZiAoaXNOT1Uoc3RvcmFnZVByb3ZpZGVyKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5lY3NDYW1wYWlnbkRlZmludGlvblByb3ZpZGVyID0gc3RvcmFnZVByb3ZpZGVyO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGhhc0RhdGFDaGFuZ2VkKCkge1xyXG5cdFx0Y29uc3QgZWNzUmVzcG9uc2UgPSB0aGlzLmVjc0NhbXBhaWduRGVmaW50aW9uUHJvdmlkZXIuZ2V0Q29uZmlnKCk7XHJcblx0XHRjb25zdCBuZXdFdGFnID0gZWNzUmVzcG9uc2U/LmVUYWdcclxuXHJcblx0XHQvLyBJZiB0aGUgZXRhZyBjaGFuZ2VzLCBzd2l0Y2ggdGhlIGZsYWcgc28gdGhlIGNhbXBhaWduIGxvYWRpbmcgd2lsbCByZWZyZXNoIG5leHQgdGltZVxyXG5cdFx0Ly8gdGhlIGVUYWcgd2lsbCBiZSB1cGRhdGVkIGxhdGVyIHdoZW4gdGhlIERlZmluaXRpb25Qcm92aWRlciBpcyBsb2FkaW5nXHJcblx0XHRyZXR1cm4gbmV3RXRhZyAhPT0gdGhpcy5lVGFnO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGxvYWQoKTogSUNhbXBhaWduRGVmaW5pdGlvbltdIHtcclxuXHRcdGNvbnN0IGVjc0NhbXBhaWduRGVmaW5pdGlvbnM6IElDYW1wYWlnbkRlZmluaXRpb25bXSA9IFtdO1xyXG5cdFx0Y29uc3QgZWNzUmVzcG9uc2UgPSB0aGlzLmVjc0NhbXBhaWduRGVmaW50aW9uUHJvdmlkZXIuZ2V0Q29uZmlnKCk7XHJcblx0XHR0aGlzLmVUYWcgPSBlY3NSZXNwb25zZT8uZVRhZztcclxuXHJcblx0XHRpZiAoVXRpbHMuaXNOT1UoZWNzUmVzcG9uc2UpKSB7XHJcblx0XHRcdC8vIFBvdGVudGlhbGx5IGZpcnN0IGJvb3QsIG5vIGNvbmZpZyB5ZXQuXHJcblx0XHRcdHJldHVybiBlY3NDYW1wYWlnbkRlZmluaXRpb25zO1xyXG5cdFx0fSBlbHNlIGlmIChPYmplY3Qua2V5cyhlY3NSZXNwb25zZT8uY29uZmlnKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5EeW5hbWljQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXIuTG9hZC5FbXB0eUVjc0NvbmZpZywge1xyXG5cdFx0XHRcdENvdW50OiAwLFxyXG5cdFx0XHRcdE1lc3NhZ2U6IFwiRW1wdHkgY29uZmlnIHJldHVybmVkIGZyb20gRUNTXCIsXHJcblx0XHRcdH0sIDAuMSk7XHJcblx0XHRcdHJldHVybiBlY3NDYW1wYWlnbkRlZmluaXRpb25zO1xyXG5cdFx0fVxyXG5cclxuXHRcdE9iamVjdC5lbnRyaWVzKGVjc1Jlc3BvbnNlLmNvbmZpZykuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5wcmVmaXhSZWdleC50ZXN0KGtleSkpIHtcclxuXHRcdFx0XHRpZiAoIVV0aWxzLmlzT2JqZWN0KHZhbCkpIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWNzQ2FtcGFpZ25EZWZpbml0aW9ucy5wdXNoKHZhbCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0Y29uc3QgZmlsdGVyZWRFY3NDYW1wYWlnbkRlZmluaXRpb25zID0gRmlsdGVyVmFsaWRDYW1wYWlnbkRlZmluaXRpb25zKGVjc0NhbXBhaWduRGVmaW5pdGlvbnMpO1xyXG5cdFx0aWYgKGZpbHRlcmVkRWNzQ2FtcGFpZ25EZWZpbml0aW9ucy5pbnZhbGlkSW5kZXhlcy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRHluYW1pY0NhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyLkxvYWQuSW52YWxpZEVjc0NvbmZpZywge1xyXG5cdFx0XHRcdENvdW50OiBmaWx0ZXJlZEVjc0NhbXBhaWduRGVmaW5pdGlvbnMuaW52YWxpZEluZGV4ZXMubGVuZ3RoLFxyXG5cdFx0XHRcdE1lc3NhZ2U6IGZpbHRlcmVkRWNzQ2FtcGFpZ25EZWZpbml0aW9ucy5pbnZhbGlkSW5kZXhlcy50b1N0cmluZygpLFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBmaWx0ZXJlZEVjc0NhbXBhaWduRGVmaW5pdGlvbnMucmVzdWx0O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGxvYWRBc3luYygpOiBQcm9taXNlPElDYW1wYWlnbkRlZmluaXRpb25bXT4ge1xyXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmxvYWQoKSk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0RHluYW1pY1V4U2NoZW1hVmFyaWFibGVzKGR5bmFtaWNWYXJpYWJsZXM6IElVeFNjaGVtYVZhcmlhYmxlcykge1xyXG5cdGR5bmFtaWNVeFNjaGVtYVZhcmlhYmxlcyA9IGR5bmFtaWNWYXJpYWJsZXMgPz8ge307XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Campaign/CampaignManager.js": /*!*************************************************************!*\ !*** ../FloodgateCore/dist/src/Campaign/CampaignManager.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CampaignManager = void 0;\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CampaignDefinitionProvider_1 = __webpack_require__(/*! ./CampaignDefinitionProvider */ \"../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js\");\nvar CampaignStateProvider_1 = __webpack_require__(/*! ./CampaignStateProvider */ \"../FloodgateCore/dist/src/Campaign/CampaignStateProvider.js\");\nvar CampaignSurveyFactory_1 = __webpack_require__(/*! ./CampaignSurveyFactory */ \"../FloodgateCore/dist/src/Campaign/CampaignSurveyFactory.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FeatureGateProvider_1 = __webpack_require__(/*! ../FeatureGateProvider */ \"../FloodgateCore/dist/src/FeatureGateProvider.js\");\nvar getDistantFuture = Utils.getDistantFuture, getDistantPast = Utils.getDistantPast, isArray = Utils.isArray, isNOU = Utils.isNOU;\n/**\n * The standard campaign manager implementation.\n */\nvar CampaignManager = /** @class */ (function () {\n function CampaignManager(stateProvider, definitionProviders, stringProvider, environmentProvider, currentBuildNumber, currentDate, isPriorityEnabled, userFactsProvider, surveyCandidacyChecker, logExperimentTrigger, campaignTelemetrySamplingConfig) {\n if (!stateProvider) {\n throw new Error(\"stateProvider must not be null\");\n }\n if (!isArray(definitionProviders)) {\n throw new Error(\"definitionProviders is either null or not an array type\");\n }\n if (!stringProvider) {\n throw new Error(\"stringProvider must not be null\");\n }\n if (isNOU(currentBuildNumber)) {\n throw new Error(\"currentBuildNumber must not be null\");\n }\n this.campaignStates = {};\n this.campaignDefinitions = {};\n this.userFacts = [];\n this.stateProvider = stateProvider;\n this.definitionProviders = definitionProviders;\n this.stringProvider = stringProvider;\n this.surveyCandidacyChecker = surveyCandidacyChecker;\n this.userFactsProvider = userFactsProvider;\n this.environmentProvider = environmentProvider; // Can be null\n this.currentBuildNumber = currentBuildNumber;\n currentDate = currentDate ? currentDate : new Date();\n this.isPriorityEnabled = isPriorityEnabled;\n this.logExperimentTrigger = logExperimentTrigger;\n this.campaignTelemetrySamplingConfig = campaignTelemetrySamplingConfig;\n }\n CampaignManager.isStateUpForNomination = function (state, definition, date, buildNumber) {\n if (!state || !definition) {\n return false;\n }\n date = date ? date : new Date();\n // Check manual override\n if (state.ForceCandidacy) {\n return true;\n }\n // Figure out which duration we're using based on whether or not the user triggered the survey\n var campaignCooldownDuration = definition.nominationScheme.getCampaignCooldown(state.IsCandidate && state.DidCandidateTriggerSurvey);\n if (!campaignCooldownDuration) {\n return false;\n }\n // First check for build-based rules. Eventually this could get more complex if we supported counting differently seen build numbers\n if (CampaignManager.hasBuildChangeDurationElapsed(campaignCooldownDuration, state.LastNominationBuildNumber, buildNumber)) {\n return true;\n }\n // Next check date rules\n return CampaignManager.hasTimeIntervalDurationElapsed(campaignCooldownDuration, state.getCooldownStartDate(), date);\n };\n CampaignManager.isDateInRange = function (date, startDate, endDate) {\n date = date ? date : new Date();\n startDate = startDate ? startDate : getDistantPast();\n endDate = endDate ? endDate : getDistantFuture();\n // Check Start/Expire date range\n if (startDate.getTime() <= date.getTime() && endDate.getTime() >= date.getTime()) {\n return true;\n }\n return false;\n };\n CampaignManager.hasTimeIntervalDurationElapsed = function (duration, startDate, date) {\n if (isNOU(duration) || !(duration instanceof CampaignDefinitionProvider_1.CampaignDurationTimeInterval)) {\n return false;\n }\n if (!startDate || !date) {\n return false;\n }\n var endDate = Utils.addSecondsWithoutOverflow(startDate, duration.intervalSeconds);\n return date.getTime() >= endDate.getTime();\n };\n CampaignManager.hasBuildChangeDurationElapsed = function (duration, startBuild, build) {\n if (isNOU(duration) || !(duration instanceof CampaignDefinitionProvider_1.CampaignDurationSingleBuildChange)) {\n return false;\n }\n if (isNOU(startBuild) || isNOU(build)) {\n return (startBuild === null) !== (build === null);\n }\n return !(startBuild === build);\n };\n CampaignManager.isCampaignInScope = function (definition, date, environmentProvider, userFactsProvider) {\n if (!definition) {\n return false;\n }\n date = date ? date : new Date();\n // Check Start/Expire date range\n if (!CampaignManager.isDateInRangeWithDefinition(date, definition)) {\n return false;\n }\n if (definition.scope) {\n if (definition.scope instanceof CampaignDefinitionProvider_1.CampaignScopeUserFactAny || definition.scope instanceof CampaignDefinitionProvider_1.CampaignScopeUserFactAll) {\n definition.scope.setUserFactsProvider(userFactsProvider);\n }\n if (definition.scope instanceof CampaignDefinitionProvider_1.CampaignScopeEnvironmentCrossProduct) {\n definition.scope.setEnvironmentProvider(environmentProvider);\n }\n if (!definition.scope.isInScope()) {\n return false;\n }\n }\n // If we get here, the definition is relevant\n return true;\n };\n CampaignManager.isDateInRangeWithDefinition = function (date, definition) {\n if (!definition) {\n return false;\n }\n date = date ? date : new Date();\n return CampaignManager.isDateInRange(date, \n // null start dates should be impossible, but if set, should mean the campaign is disabled\n definition.startTime ? definition.startTime : getDistantFuture(), definition.endTime);\n };\n CampaignManager.prototype.LogExperimentTrigger = function (triggerDetails) {\n if (isNOU(this.logExperimentTrigger)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.CampaignGovernance.LogExperimentTrigger.Undefined, \"LogExperimentTrigger does not exist\");\n }\n else {\n try {\n this.logExperimentTrigger.LogExperimentTrigger(triggerDetails);\n }\n catch (error) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.CampaignGovernance.LogExperimentTrigger.Failed, \"Failed to run LogExperimentTrigger \" + error);\n }\n }\n };\n // @Override\n CampaignManager.prototype.getActiveSurveys = function () {\n var surveys = {};\n var prioritizedCampaigns = this.getPrioritizedCampaigns();\n var activeCampaignIds = [];\n for (var key in this.campaignStates) {\n if (Object.prototype.hasOwnProperty.call(this.campaignStates, key)) {\n var state = this.campaignStates[key];\n if (!state.IsCandidate) {\n continue;\n }\n // This is a requirement because we keep some otherwise \"stale\" campaigns around for the save routine\n var definition = prioritizedCampaigns[state.CampaignId];\n if (!definition) {\n continue;\n }\n var survey = CampaignSurveyFactory_1.CampaignSurveyFactory.makeSurvey(state, definition, this.stringProvider);\n if (!survey) {\n continue;\n }\n if (this.surveyCandidacyChecker && !this.surveyCandidacyChecker.isSurveyTrackable(survey)) {\n continue;\n }\n surveys[survey.getSurveyInfo().getId()] = survey;\n activeCampaignIds.push(survey.getCampaignId());\n }\n }\n this.logActiveSurveys(prioritizedCampaigns, activeCampaignIds);\n return surveys;\n };\n // This function will log a json of all the CampaignStates during creating active surveys. The purpose of this log is for us to be able to detect\n // whether the campaign is selected correctly with nomination and prioritization.\n // The sampling rate of this log is dependent on what rate was received from the campaignTelemetrySamplingConfig\n // This telemetry gets logged at every floodgate.start. So we need to keep the sampling rate low.\n // Default sampling rate: 0% - it's turned off by default. We will enable it from the Host app side if needed.\n CampaignManager.prototype.logActiveSurveys = function (prioritizedCampaigns, activeCampaignIds) {\n var currentCampaignStates = [];\n for (var key in this.campaignStates) {\n var state = this.campaignStates[key];\n var payload = {\n CampaignId: key,\n IsCandidate: state.IsCandidate,\n DidCandidateTriggerSurvey: state.DidCandidateTriggerSurvey,\n SurveyId: state.LastSurveyId\n };\n currentCampaignStates.push(payload);\n }\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.GetActiveSurveys, { Message: JSON.stringify({\n CampaignStates: currentCampaignStates,\n PrioritizedCampaigns: Object.keys(prioritizedCampaigns),\n ActiveCampaigns: activeCampaignIds,\n NewNominationCampaigns: this.newNominationCampaigns\n }) }, 0);\n };\n // @Override\n CampaignManager.prototype.modifyCampaignSurveyTakenDate = function (campaignId, takenDate, isSurveyComplete) {\n var state = this.campaignStates[campaignId];\n if (!state) {\n return;\n }\n takenDate = takenDate ? takenDate : new Date();\n var cooldownSeconds = this.campaignDefinitions[campaignId].nominationScheme.cooldownPeriod.asTimeIntervalSeconds();\n state.markCurrentSurveyTakenOnDate(takenDate, cooldownSeconds, isSurveyComplete);\n this.saveCurrentState();\n };\n CampaignManager.prototype.getCampaignStates = function () {\n return this.campaignStates;\n };\n // @Override\n CampaignManager.prototype.getCampaignDefinitions = function () {\n return this.campaignDefinitions;\n };\n CampaignManager.prototype.getUserFacts = function () {\n return this.userFacts;\n };\n // region ISurveyClient methods\n // @Override\n CampaignManager.prototype.onSurveyActivated = function (surveyInfo, isSurveyComplete) {\n if (!surveyInfo) {\n return;\n }\n this.modifyCampaignSurveyTakenDate(surveyInfo.getBackEndId(), new Date(), isSurveyComplete);\n };\n // @Override\n CampaignManager.prototype.refreshSurveyDefinitions = function (channelTypes, date) {\n this.refreshSurveyDefinitionsPrivate(channelTypes, (date ? date : new Date()));\n };\n // @Override\n CampaignManager.prototype.refreshSurveyDefinitionsAsync = function (channelTypes, date) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n _this.refreshSurveyDefinitionsPrivateAsync(channelTypes, (date ? date : new Date())).then(function onFulfilled() {\n resolve();\n }).catch(function OnRejected(errReason) {\n reject(errReason);\n });\n });\n };\n // @Override\n CampaignManager.prototype.getAppSurveys = function () {\n return this.getActiveSurveys();\n };\n // @Override\n CampaignManager.prototype.saveCurrentState = function () {\n // Sort by campaignId, ascending for uniformity\n var states = Utils.makeArrayFromObjectValuesSortedByKeyString(this.campaignStates);\n this.stateProvider.save(states);\n };\n // endregion\n CampaignManager.prototype.refreshSurveyDefinitionsPrivate = function (channelTypes, date) {\n if (this.needRefreshSurveyDefinitions()) {\n this.lastCampaignRefreshTime = new Date();\n this.campaignDefinitions = {};\n this.userFacts = [];\n this.loadFilterCampaigns(date, channelTypes);\n }\n else {\n this.FilterCampaignsOnRestart(date, channelTypes);\n }\n this.campaignStates = {};\n this.LoadFilterCampaignStates(date);\n this.evaluateCampaigns(date);\n };\n CampaignManager.prototype.refreshSurveyDefinitionsPrivateAsync = function (channelTypes, date) {\n var _this = this;\n var _a;\n this.campaignStates = {};\n this.campaignDefinitions = {};\n this.userFacts = [];\n this.lastCampaignRefreshTime = (_a = this.lastCampaignRefreshTime) !== null && _a !== void 0 ? _a : new Date();\n return new Promise(function (resolve, reject) {\n _this.loadAndFilterCampaignDataAsync(date, channelTypes).then(function () {\n _this.evaluateCampaigns(date);\n resolve();\n }).catch(function OnRejected(errReason) {\n reject(errReason);\n });\n });\n };\n /**\n * Load and filter the campaigns definitions and states\n */\n CampaignManager.prototype.loadAndFilterCampaignDataAsync = function (currentDate, channelTypes) {\n var _this = this;\n currentDate = currentDate ? currentDate : new Date();\n var loadedDefinitions = [];\n var promises = [];\n var userFactsPromise = this.userFactsProvider && this.userFactsProvider.loadAsync();\n for (var _i = 0, _a = Object.keys(this.definitionProviders); _i < _a.length; _i++) {\n var i = _a[_i];\n var provider = this.definitionProviders[i];\n var promise = provider && provider.loadAsync();\n if (!isNOU(promise)) {\n // Promise.all fails even if one promise fails.\n // We want to ignore the promise that failed and continue with the ones\n // those are succesful, hence overriding the catch to always resolve.\n // responsibility of logging failures should be with the provider.\n promise = promise.catch(function () {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_CampaignLoad_Failed(\"Failed to load from campaign definition provider\");\n Promise.resolve();\n });\n promises.push(promise);\n }\n }\n return new Promise(function (resolve, reject) {\n Promise.all(promises).then(function (values) {\n var _a;\n for (var _i = 0, _b = Object.keys(values); _i < _b.length; _i++) {\n var i = _b[_i];\n var campaignDefinitions = values[i];\n if (isArray(campaignDefinitions)) {\n // If there are campaign defintions with duplicate campaign Id's\n // Floodgate will load the last one it found. FilterCampaignData does this filteration\n loadedDefinitions = loadedDefinitions.concat(campaignDefinitions);\n }\n }\n _this.logInitialLoadCampaigns(loadedDefinitions, \"loadAsync\", (_a = _this.campaignTelemetrySamplingConfig) === null || _a === void 0 ? void 0 : _a.campaignInitialLoadSamplingRate);\n var setUserFacts = function (userFacts) {\n _this.userFacts = userFacts || [];\n _this.FilterCampaignData(currentDate, channelTypes, loadedDefinitions);\n resolve();\n };\n // Before filtering and evaluating the campaign definitions,\n // wait until the user facts are loaded as they will be used in evaluating campaign scopes\n if (!isNOU(userFactsPromise)) {\n userFactsPromise.then(function (userFacts) {\n setUserFacts(userFacts);\n }).catch(function () {\n // this should never happen as user facts promise will always be resolved by the user facts provider\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger()\n .log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsLoad.Failed, \"Failed to load from user facts provider\");\n setUserFacts();\n });\n }\n else {\n setUserFacts();\n }\n }).catch(function OnRejected(error) {\n // this should never happen as Promise.all will always be resolved\n // because of hack at the top of the function.\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_CampaignLoad_Failed(\"Failed to load from campaign definition provider\");\n });\n });\n };\n // This function will log a json of all the definitions received on initial load. The purpose of this log is for us to be able to detect\n // what campaigns users initially recieved and trace which campaigns from the original pool were successfully nominated / launched\n // The sampling rate of this log is dependent on what rate was received from the campaignTelemetrySamplingConfig\n // This telemetry gets logged once per floodgate session\n // Default sampling rate: 10%\n CampaignManager.prototype.logInitialLoadCampaigns = function (loadedDefinitions, loadMethod, initialLoadSamplingRate) {\n var _a, _b, _c;\n if (initialLoadSamplingRate === void 0) { initialLoadSamplingRate = 0.1; }\n if (initialLoadSamplingRate > 0) {\n var loggedDefinitions = [];\n for (var key in loadedDefinitions) {\n var definition = loadedDefinitions[key];\n var payload = {\n id: definition.campaignId,\n businessLevel: definition.businessLevel,\n treatmentType: definition.treatmentType,\n scope: definition.scope,\n telemetryEventName: (_c = (_b = (_a = definition === null || definition === void 0 ? void 0 : definition.surveyTemplate) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.contentMetadata) === null || _c === void 0 ? void 0 : _c[\"telemetryEventName\"],\n userHost: this.environmentProvider,\n governedChannelType: definition.governedChannelType,\n loadMethod: loadMethod,\n };\n loggedDefinitions.push(payload);\n }\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.InitialLoadedDefinitions, { Message: JSON.stringify(loggedDefinitions) }, initialLoadSamplingRate);\n }\n };\n CampaignManager.prototype.loadFilterCampaigns = function (currentDate, channelTypes) {\n var _a, _b;\n currentDate = currentDate ? currentDate : new Date();\n var loadedDefinitions = [];\n for (var _i = 0, _c = Object.keys(this.definitionProviders); _i < _c.length; _i++) {\n var index = _c[_i];\n try {\n var definitions = this.definitionProviders[index] && this.definitionProviders[index].load();\n if (isArray(definitions)) {\n // If there are campaign defintions with duplicate campaign Id's\n // Floodgate will load the last one it found. FilterCampaignData does this filteration\n loadedDefinitions = loadedDefinitions.concat(definitions);\n }\n }\n catch (error) {\n // Log error, but continue with other providers\n // It should be the responsibility of provider to log detailed errors\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_CampaignLoad_Failed(\"Failed to load from campaign definition provider. \" + error.toString());\n }\n }\n this.logInitialLoadCampaigns(loadedDefinitions, \"load\", (_a = this.campaignTelemetrySamplingConfig) === null || _a === void 0 ? void 0 : _a.campaignInitialLoadSamplingRate);\n // Load the user facts before all the campaign definitions are evaluated\n try {\n this.userFacts = (this.userFactsProvider && this.userFactsProvider.load()) || [];\n }\n catch (error) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsLoad.Failed, \"Failed to load from user facts provider. \" + error);\n }\n // array that will be passed to LPP scorecard callback\n var triggerDetails = new Array();\n // array that lists campaign ids which passed governed channel type / business level checks\n var channelCleared = new Array();\n // array that lists campaign ids that are in scope \n var inScope = new Array();\n // array that lists campaign ids that are not control campaigns (added to activityListener)\n var nominated = new Array();\n // Load filtered campaign definitions\n for (var key in loadedDefinitions) {\n if (Object.prototype.hasOwnProperty.call(loadedDefinitions, key)) {\n var definition = loadedDefinitions[key];\n // this needs to be done here before adding to campaignDefinitions in case there are multiple definitions with different language scopes\n if (!CampaignManager.isCampaignInScope(definition, currentDate, this.environmentProvider, this.userFactsProvider)) {\n continue;\n }\n inScope.push(definition.campaignId);\n // filtering for campaign trigger logging\n if (definition.treatmentType !== 255 /* none */) {\n // campaign trigger info for scorecards\n var triggerDetail = this.RetrieveTriggerEventDetail(definition);\n if (!isNOU(triggerDetail)) {\n triggerDetails.push(triggerDetail);\n }\n }\n if (channelTypes &&\n (channelTypes.indexOf(definition.governedChannelType) < 0) &&\n (definition.businessLevel !== floodgate_shared_typings_1.SurveyInfoBusinessLevel.Critical)) {\n continue;\n }\n channelCleared.push(definition.campaignId);\n // to remove control campaigns from activityListener list \n if (definition.treatmentType === 0 /* Control */) {\n continue;\n }\n // log the definitions which are nominated\n nominated.push(definition.campaignId);\n // Overwrite the campaign definition if it already exists with the latest one.\n this.campaignDefinitions[definition.campaignId] = definition;\n }\n }\n // if sampling is on for governance check telemetry, log telemetry\n this.GovernanceCheckTelemetry(channelCleared, inScope, nominated, (_b = this.campaignTelemetrySamplingConfig) === null || _b === void 0 ? void 0 : _b.passedCampaignGovernanceSamplingRate);\n // call new scorecard trigger callback only if feature gate is on and there are campaign definitions available\n if (triggerDetails.length > 0) {\n this.LogExperimentTrigger(triggerDetails);\n }\n };\n CampaignManager.prototype.RetrieveTriggerEventDetail = function (definition) {\n var _a, _b, _c;\n try {\n var eventInfo = {\n id: definition.campaignId,\n telemetryEventName: (_c = (_b = (_a = definition === null || definition === void 0 ? void 0 : definition.surveyTemplate) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.contentMetadata) === null || _c === void 0 ? void 0 : _c[\"telemetryEventName\"],\n treatmentType: isNOU(definition.treatmentType) ? 255 /* none */ : definition.treatmentType\n };\n var triggerDetail = {\n triggerEvent: eventInfo.telemetryEventName,\n eventInfo: eventInfo\n };\n // return info needed for scorecards for this campaign to the list to the array\n return triggerDetail;\n }\n catch (error) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.CampaignGovernance.RetrieveTriggerEventDetail.Failed, \"Failed to add trigger event detail \" + error);\n return null;\n }\n };\n // creating a json object to log campaigns which passed various governance checks, logs once per floodgate session\n // Default sampling rate: 10%\n CampaignManager.prototype.GovernanceCheckTelemetry = function (channelCleared, inScope, nominated, samplingRate) {\n if (samplingRate === void 0) { samplingRate = 0.1; }\n if (samplingRate > 0) {\n var payload = {\n channelCleared: channelCleared.length > 0 ? channelCleared : undefined,\n inScope: inScope.length > 0 ? inScope : undefined,\n nominated: nominated.length > 0 ? nominated : undefined,\n };\n if (Object.values(payload).some(function (v) { return v != undefined; })) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.CampaignGovernance.NominationCheckCampaigns, { Message: JSON.stringify(payload) }, samplingRate);\n }\n }\n };\n /**\n * Load and filter the campaigns definitions and states\n */\n CampaignManager.prototype.FilterCampaignData = function (currentDate, channelTypes, loadedDefinitions) {\n var _a;\n var loadedDefinitionsMap = {};\n var triggerDetails = new Array();\n // array that lists campaign ids which passed governed channel type / business level checks\n var channelCleared = new Array();\n // array that lists campaign ids that are in scope \n var inScope = new Array();\n // array that lists campaign ids that are not control campaigns (added to activityListener)\n var nominated = new Array();\n // Load filtered campaign definitions\n for (var key in loadedDefinitions) {\n if (Object.prototype.hasOwnProperty.call(loadedDefinitions, key)) {\n var definition = loadedDefinitions[key];\n loadedDefinitionsMap[definition.campaignId] = definition;\n // this needs to be done here before adding to campaignDefinitions in case there are multiple definitions with different language scopes\n if (!CampaignManager.isCampaignInScope(definition, currentDate, this.environmentProvider, this.userFactsProvider)) {\n continue;\n }\n inScope.push(definition.campaignId);\n // filtering for campaign trigger logging\n if (definition.treatmentType !== 255 /* none */) {\n // campaign trigger info for scorecards\n var triggerDetail = this.RetrieveTriggerEventDetail(definition);\n if (!isNOU(triggerDetail)) {\n triggerDetails.push(triggerDetail);\n }\n }\n if (channelTypes &&\n (channelTypes.indexOf(definition.governedChannelType) < 0) &&\n (definition.businessLevel !== floodgate_shared_typings_1.SurveyInfoBusinessLevel.Critical)) {\n continue;\n }\n channelCleared.push(definition.campaignId);\n // to remove control campaigns from activityListener list \n if (definition.treatmentType === 0 /* Control */) {\n continue;\n }\n // log the definitions which are nominated\n nominated.push(definition.campaignId);\n // Overwrite the campaign definition if it already exists with the latest one.\n this.campaignDefinitions[definition.campaignId] = definition;\n }\n }\n // if sampling is on for governance check telemetry, log telemetry\n this.GovernanceCheckTelemetry(channelCleared, inScope, nominated, (_a = this.campaignTelemetrySamplingConfig) === null || _a === void 0 ? void 0 : _a.passedCampaignGovernanceSamplingRate);\n // call new scorecard trigger callback only if feature gate is on and there are campaign definitions available\n if (triggerDetails.length > 0) {\n this.LogExperimentTrigger(triggerDetails);\n }\n // Load campaign state, filtering out the expired definitions\n var loadedStates = this.stateProvider.load();\n var staleLoadedStates = [];\n for (var key in loadedStates) {\n if (Object.prototype.hasOwnProperty.call(loadedStates, key)) {\n var state = loadedStates[key];\n if (!Object.prototype.hasOwnProperty.call(this.campaignDefinitions, state.CampaignId)) {\n staleLoadedStates.push(state);\n }\n this.campaignStates[state.CampaignId] = state;\n }\n }\n /*\n * Stale State data cleanup\n * State needs to be cleaned up when:\n * 1) The campaign has expired\n * 2) The campaign is no longer present in the definitions (think ECS or other outages or very old expirations)\n * In this case the state should still be cleaned up on it's reelection date\n * 3) When the user is out of scope (for an otherwise active campaign) and is up for nomination\n\r\n * This optimizes the user experience in case the campaign pops up or gets renewed when we would have preferred the user remain in cool down\n\r\n * 2&3 are basically the same, and 1 is a special case optimization on top of 2&3 for earlier clean up\n\r\n * To do 2 & 3, we just look at states with no matching definition (after filtering), and reject them if they are past their nomination period\n * To do 1, we just need to keep a list/hash of the definitions that we filtered out this load cycle, specifically for expiration dates, and bypass\n * the cool down \"wait\" for these specifically\n\r\n * For now, allowing some \"grace\" for \"missing\"/\"blippy\" campaign definitions (in case they pop in and out of ECS) by deferring missing\n * deletion by a delay-time specified by the original campaign.\n */\n for (var key in staleLoadedStates) {\n if (Object.prototype.hasOwnProperty.call(staleLoadedStates, key)) {\n var state = staleLoadedStates[key];\n if (!state) {\n continue;\n }\n var definition = loadedDefinitionsMap[state.CampaignId];\n var shouldRemove = false;\n if (!definition) {\n if (state.LastNominationTimeUtc\n .getTime() <= Utils.subtractSecondsWithoutOverflow(currentDate, state.DeleteAfterSecondsWhenStale).getTime()) {\n shouldRemove = true;\n }\n }\n else if (CampaignManager.isStateUpForNomination(state, definition, currentDate, this.currentBuildNumber)) {\n shouldRemove = true;\n }\n // The next time we write to storage, these will be removed\n if (shouldRemove) {\n delete this.campaignStates[state.CampaignId];\n }\n }\n }\n };\n // Filter lower priority campaigns that are on same channel and have a matching tag\n CampaignManager.prototype.getPrioritizedCampaigns = function () {\n var _this = this;\n var prioritizedCampaigns = {};\n // build map\n var matchingTagCampaigns = {};\n Object.keys(this.campaignDefinitions || []).forEach(function (key) {\n var definition = _this.campaignDefinitions[key];\n if (Object.prototype.hasOwnProperty.call(_this.campaignStates, key)) {\n var state = _this.campaignStates[key];\n // only add the campaign if it's nominated\n if (state.IsCandidate) {\n prioritizedCampaigns[key] = definition;\n // if tags are not defined, use empty tag to fallback to channel level aggregation\n var definitionTags = definition.tags && definition.tags.length > 0 ? definition.tags : [\"\"];\n definitionTags.forEach(function (tagId) {\n var mapKey = tagId + \"_\" + definition.governedChannelType;\n matchingTagCampaigns[mapKey] = matchingTagCampaigns[mapKey] || [];\n matchingTagCampaigns[mapKey].push(definition);\n });\n }\n }\n });\n // remove lower priority campaigns\n Object.keys(matchingTagCampaigns).forEach(function (key) {\n var _a;\n // Check if the priority filter is enabled for standard channel\n if (!_this.isPriorityEnabled && key.endsWith(\"_\" + floodgate_shared_typings_1.GovernedChannelType.Standard)) {\n return;\n }\n var definitions = matchingTagCampaigns[key];\n if (definitions.length <= 1) {\n return;\n }\n // Get definition that has max priority value (0/null/undefined has highest prioirty)\n var _b = Utils.findHighestPriorityDefinition(definitions), maxPriorityDefinition = _b[0], hasLowerPriorityDefinitions = _b[1];\n var maxPriority = (_a = maxPriorityDefinition.primaryPriority) !== null && _a !== void 0 ? _a : 0;\n if (!hasLowerPriorityDefinitions) {\n // nothing to filter because all priorities are the same\n return;\n }\n // delete lower priority campaigns while preserving all the matching higher priority items\n definitions.forEach(function (current) {\n var currentPriority = current.primaryPriority;\n // for mso compatability ignore campaigns without priority set so that they are always considered\n if (!isNOU(current.primaryPriority) && currentPriority > maxPriority) {\n delete prioritizedCampaigns[current.campaignId];\n }\n });\n });\n return prioritizedCampaigns;\n };\n /**\n * Given the loaded campaign definitions and states from previous sessions, run anything up for nomination\n */\n CampaignManager.prototype.evaluateCampaigns = function (currentDate) {\n // Loop through campaigns definitions, and update their state if necessary\n currentDate = currentDate ? currentDate : new Date();\n this.newNominationCampaigns = [];\n for (var key in this.campaignDefinitions) {\n if (Object.prototype.hasOwnProperty.call(this.campaignDefinitions, key)) {\n var definition = this.campaignDefinitions[key];\n var state = this.campaignStates[definition.campaignId];\n if (!state || CampaignManager.isStateUpForNomination(state, definition, currentDate, this.currentBuildNumber)) {\n var lastSurveyId = state ? state.LastSurveyId : \"\";\n var lastSurveyStartTime = state ? state.LastSurveyStartTimeUtc : getDistantPast();\n var lastSurveyExpirationTime = state ? state.LastSurveyExpirationTimeUtc : getDistantPast();\n var lastSurveyActivatedTime = state ? state.LastSurveyActivatedTimeUtc : getDistantPast();\n var lastCooldownEndTimeUtc = state ? state.LastCooldownEndTimeUtc : getDistantPast();\n this.newNominationCampaigns.push(definition.campaignId);\n // Run the nomination\n var isCandidate = (state && state.ForceCandidacy) || definition.nominationScheme.evaluateNominationRules();\n if (isCandidate) {\n // Make new survey properties for the next call to get the active surveys\n lastSurveyId = Utils.guid();\n lastSurveyStartTime = definition.nominationScheme.calculateSurveyStartTimeFromDate(currentDate);\n lastSurveyExpirationTime = definition.nominationScheme.calculateSurveyExpirationTimeFromSurveyStartTime(lastSurveyStartTime);\n }\n var newState = new CampaignStateProvider_1.CampaignState(definition.campaignId, currentDate, this.currentBuildNumber, definition.nominationScheme.getActiveSurveyTimeIntervalSeconds(), false, isCandidate, false, lastSurveyActivatedTime, lastSurveyId, lastSurveyStartTime, lastSurveyExpirationTime, lastCooldownEndTimeUtc);\n // Save the new state to our local cache\n this.campaignStates[newState.CampaignId] = newState;\n }\n }\n }\n };\n CampaignManager.prototype.needRefreshSurveyDefinitions = function () {\n var _a;\n // Check for data has changed\n var updateNeeded = false;\n var reloadFeatureEnabled = (_a = FeatureGateProvider_1.getFeatureGateProvider()) === null || _a === void 0 ? void 0 : _a.getBoolFeatureStatus(\"ReloadOnCampaignDefinitionChanged\", false);\n if (reloadFeatureEnabled) {\n for (var _i = 0, _b = Object.keys(this.definitionProviders); _i < _b.length; _i++) {\n var i = _b[_i];\n var provider = this.definitionProviders[i];\n updateNeeded = provider.hasDataChanged();\n // Breakout singe we just need one true to refresh campaigns\n if (updateNeeded) {\n break;\n }\n }\n }\n return !this.lastCampaignRefreshTime || updateNeeded;\n };\n CampaignManager.prototype.FilterCampaignsOnRestart = function (currentDate, channelTypes) {\n for (var key in this.campaignDefinitions) {\n if (Object.prototype.hasOwnProperty.call(this.campaignDefinitions, key)) {\n var definition = this.campaignDefinitions[key];\n if (channelTypes &&\n (channelTypes.indexOf(definition.governedChannelType) < 0) &&\n (definition.businessLevel !== floodgate_shared_typings_1.SurveyInfoBusinessLevel.Critical)) {\n delete this.campaignDefinitions[definition.campaignId];\n continue;\n }\n if (!CampaignManager.isCampaignInScope(definition, currentDate, this.environmentProvider, this.userFactsProvider)) {\n delete this.campaignDefinitions[definition.campaignId];\n continue;\n }\n // new campaign governance only applies if feature gate is on, removes control campaigns from activityListener list \n if (definition.treatmentType === 0 /* Control */) {\n delete this.campaignDefinitions[definition.campaignId];\n continue;\n }\n }\n }\n };\n /**\n * Load and filter the campaigns definitions and states\n */\n CampaignManager.prototype.LoadFilterCampaignStates = function (currentDate) {\n // Load campaign state, filtering out the expired definitions\n var loadedStates = this.stateProvider.load();\n var staleLoadedStates = [];\n for (var key in loadedStates) {\n if (Object.prototype.hasOwnProperty.call(loadedStates, key)) {\n var state = loadedStates[key];\n if (!Object.prototype.hasOwnProperty.call(this.campaignDefinitions, state.CampaignId)) {\n staleLoadedStates.push(state);\n }\n this.campaignStates[state.CampaignId] = state;\n }\n }\n /*\n * Stale State data cleanup\n * State needs to be cleaned up when:\n * 1) The campaign has expired\n * 2) The campaign is no longer present in the definitions (think ECS or other outages or very old expirations)\n * In this case the state should still be cleaned up on it's reelection date\n * 3) When the user is out of scope (for an otherwise active campaign) and is up for nomination\n\r\n * This optimizes the user experience in case the campaign pops up or gets renewed when we would have preferred the user remain in cool down\n\r\n * 2&3 are basically the same, and 1 is a special case optimization on top of 2&3 for earlier clean up\n\r\n * To do 2 & 3, we just look at states with no matching definition (after filtering), and reject them if they are past their nomination period\n * To do 1, we just need to keep a list/hash of the definitions that we filtered out this load cycle, specifically for expiration dates, and bypass\n * the cool down \"wait\" for these specifically\n\r\n * For now, allowing some \"grace\" for \"missing\"/\"blippy\" campaign definitions (in case they pop in and out of ECS) by deferring missing\n * deletion by a delay-time specified by the original campaign.\n */\n for (var key in staleLoadedStates) {\n if (Object.prototype.hasOwnProperty.call(staleLoadedStates, key)) {\n var state = staleLoadedStates[key];\n if (!state) {\n continue;\n }\n var definition = this.campaignDefinitions[state.CampaignId];\n var shouldRemove = false;\n if (!definition) {\n if (state.LastNominationTimeUtc\n .getTime() <= Utils.subtractSecondsWithoutOverflow(currentDate, state.DeleteAfterSecondsWhenStale).getTime()) {\n shouldRemove = true;\n }\n }\n else if (CampaignManager.isStateUpForNomination(state, definition, currentDate, this.currentBuildNumber)) {\n shouldRemove = true;\n }\n // The next time we write to storage, these will be removed\n if (shouldRemove) {\n delete this.campaignStates[state.CampaignId];\n }\n }\n }\n };\n return CampaignManager;\n}());\nexports.CampaignManager = CampaignManager;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0NhbXBhaWduL0NhbXBhaWduTWFuYWdlci50cz85MDQ3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNGQUFrQztBQUVsQyw2S0FxQjBDO0FBQzFDLCtKQU1zQztBQUV0QyxnSkFBd0Q7QUFDeEQsZ0pBQWdFO0FBQ2hFLHNIQUFxRDtBQUdyRCxvR0FBOEM7QUFDOUMsa0lBQWdFO0FBRXhELG9CQUFnQixHQUFxQyxLQUFLLGlCQUExQyxFQUFFLGNBQWMsR0FBcUIsS0FBSyxlQUExQixFQUFFLE9BQU8sR0FBWSxLQUFLLFFBQWpCLEVBQUUsS0FBSyxHQUFLLEtBQUssTUFBVixDQUFXO0FBRW5FOztHQUVHO0FBQ0g7SUE4SEMseUJBQW1CLGFBQXFDLEVBQ3ZELG1CQUFrRCxFQUNsRCxjQUF3QyxFQUN4QyxtQkFBa0QsRUFDbEQsa0JBQTBCLEVBQzFCLFdBQWlCLEVBQ2pCLGlCQUEwQixFQUMxQixpQkFBcUMsRUFDckMsc0JBQWdELEVBQ2hELG9CQUEyQyxFQUMzQywrQkFBa0U7UUFFbEUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7U0FDbEQ7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5REFBeUQsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxzQkFBc0IsQ0FBQztRQUNyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLENBQUMsY0FBYztRQUM5RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFFN0MsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUUzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7UUFFakQsSUFBSSxDQUFDLCtCQUErQixHQUFHLCtCQUErQixDQUFDO0lBQ3hFLENBQUM7SUExS2Esc0NBQXNCLEdBQXBDLFVBQXFDLEtBQXFCLEVBQUUsVUFBK0IsRUFBRSxJQUFVLEVBQUUsV0FBbUI7UUFDM0gsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWhDLHdCQUF3QjtRQUN4QixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELDhGQUE4RjtRQUM5RixJQUFNLHdCQUF3QixHQUMzQixVQUFVLENBQUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUV6RyxJQUFJLENBQUMsd0JBQXdCLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDYjtRQUNELG9JQUFvSTtRQUNwSSxJQUFJLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMseUJBQXlCLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDMUgsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELHdCQUF3QjtRQUN4QixPQUFPLGVBQWUsQ0FBQyw4QkFBOEIsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRWEsNkJBQWEsR0FBM0IsVUFBNEIsSUFBVSxFQUFFLFNBQWUsRUFBRSxPQUFhO1FBQ3JFLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVqRCxnQ0FBZ0M7UUFDaEMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDakYsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVhLDhDQUE4QixHQUE1QyxVQUE2QyxRQUEyQixFQUFFLFNBQWUsRUFBRSxJQUFVO1FBQ3BHLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLFlBQVkseURBQTRCLENBQUMsRUFBRTtZQUMzRSxPQUFPLEtBQUssQ0FBQztTQUNiO1FBQ0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QixPQUFPLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBTSxPQUFPLEdBQVMsS0FBSyxDQUFDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0YsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFYSw2Q0FBNkIsR0FBM0MsVUFBNEMsUUFBMkIsRUFBRSxVQUFrQixFQUFFLEtBQWE7UUFDekcsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSw4REFBaUMsQ0FBQyxFQUFFO1lBQ2hGLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFDRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdEMsT0FBTyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztTQUNsRDtRQUVELE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRWMsaUNBQWlCLEdBQWhDLFVBQ0MsVUFBK0IsRUFDL0IsSUFBVSxFQUNWLG1CQUFrRCxFQUNsRCxpQkFBb0M7UUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNoQixPQUFPLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRWhDLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsRUFBRTtZQUNuRSxPQUFPLEtBQUssQ0FBQztTQUNiO1FBRUQsSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQ3JCLElBQUksVUFBVSxDQUFDLEtBQUssWUFBWSxxREFBd0IsSUFBSSxVQUFVLENBQUMsS0FBSyxZQUFZLHFEQUF3QixFQUFFO2dCQUNqSCxVQUFVLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDekQ7WUFDRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLFlBQVksaUVBQW9DLEVBQUU7Z0JBQ3JFLFVBQVUsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQzthQUM3RDtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxFQUFFO2dCQUNsQyxPQUFPLEtBQUssQ0FBQzthQUNiO1NBQ0Q7UUFFRCw2Q0FBNkM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRWMsMkNBQTJCLEdBQTFDLFVBQTJDLElBQVUsRUFBRSxVQUErQjtRQUNyRixJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2hCLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFFaEMsT0FBTyxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUk7UUFDeEMsMEZBQTBGO1FBQzFGLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQ2hFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBaUVNLDhDQUFvQixHQUEzQixVQUE0QixjQUFzQztRQUNqRSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRTtZQUNyQyxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUM5RyxxQ0FBcUMsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTixJQUFHO2dCQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMvRDtZQUFBLE9BQU8sS0FBSyxFQUFFO2dCQUNkLGlDQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLHFDQUFxQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2FBQy9HO1NBQ0Q7SUFDRixDQUFDO0lBRUQsWUFBWTtJQUNMLDBDQUFnQixHQUF2QjtRQUNDLElBQU0sT0FBTyxHQUF5QixFQUFFLENBQUM7UUFDekMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUM1RCxJQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUU3QixLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDbkUsSUFBTSxLQUFLLEdBQW1CLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO29CQUN2QixTQUFTO2lCQUNUO2dCQUVELHFHQUFxRztnQkFDckcsSUFBTSxVQUFVLEdBQXdCLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDL0UsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDaEIsU0FBUztpQkFDVDtnQkFFRCxJQUFNLE1BQU0sR0FBWSw2Q0FBcUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2pHLElBQUksQ0FBQyxNQUFNLEVBQUU7b0JBQ1osU0FBUztpQkFDVDtnQkFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDMUYsU0FBUztpQkFDVDtnQkFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDO2dCQUNqRCxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7YUFDL0M7U0FDRDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sT0FBTyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxpSkFBaUo7SUFDakosaUZBQWlGO0lBQ2pGLGdIQUFnSDtJQUNoSCxpR0FBaUc7SUFDakcsOEdBQThHO0lBQ3RHLDBDQUFnQixHQUF4QixVQUF5QixvQkFBc0QsRUFBRSxpQkFBMkI7UUFDM0csSUFBTSxxQkFBcUIsR0FBOEIsRUFBRSxDQUFDO1FBQzVELEtBQUssSUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN0QyxJQUFNLEtBQUssR0FBbUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RCxJQUFNLE9BQU8sR0FBNEI7Z0JBQ3hDLFVBQVUsRUFBRSxHQUFHO2dCQUNmLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztnQkFDOUIseUJBQXlCLEVBQUUsS0FBSyxDQUFDLHlCQUF5QjtnQkFDMUQsUUFBUSxFQUFFLEtBQUssQ0FBQyxZQUFZO2FBQzVCO1lBQ0QscUJBQXFCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsaUNBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsRUFDN0YsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDekIsY0FBYyxFQUFFLHFCQUFxQjtnQkFDckMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztnQkFDdkQsZUFBZSxFQUFFLGlCQUFpQjtnQkFDbEMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjthQUNuRCxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxZQUFZO0lBQ0wsdURBQTZCLEdBQXBDLFVBQXFDLFVBQWtCLEVBQUUsU0FBZSxFQUFFLGdCQUF5QjtRQUNsRyxJQUFNLEtBQUssR0FBbUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1gsT0FBTztTQUNQO1FBRUQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRS9DLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNySCxLQUFLLENBQUMsNEJBQTRCLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWpGLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSwyQ0FBaUIsR0FBeEI7UUFDQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQVk7SUFDTCxnREFBc0IsR0FBN0I7UUFDQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNqQyxDQUFDO0lBRU0sc0NBQVksR0FBbkI7UUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVELCtCQUErQjtJQUUvQixZQUFZO0lBQ0wsMkNBQWlCLEdBQXhCLFVBQXlCLFVBQXVCLEVBQUUsZ0JBQXlCO1FBQzFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDaEIsT0FBTztTQUNQO1FBRUQsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVELFlBQVk7SUFDTCxrREFBd0IsR0FBL0IsVUFBZ0MsWUFBb0MsRUFBRSxJQUFXO1FBQ2hGLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELFlBQVk7SUFDTCx1REFBNkIsR0FBcEMsVUFBcUMsWUFBb0MsRUFBRSxJQUFXO1FBQXRGLGlCQVlDO1FBWEEsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1lBQ2xDLEtBQUksQ0FBQyxvQ0FBb0MsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2RixTQUFTLFdBQVc7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDO1lBQ1gsQ0FBQyxDQUNELENBQUMsS0FBSyxDQUNOLFNBQVMsVUFBVSxDQUFDLFNBQVM7Z0JBQzVCLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQ0QsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVk7SUFDTCx1Q0FBYSxHQUFwQjtRQUNDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFlBQVk7SUFDTCwwQ0FBZ0IsR0FBdkI7UUFDQywrQ0FBK0M7UUFDL0MsSUFBTSxNQUFNLEdBQXFCLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFdkcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVk7SUFFSix5REFBK0IsR0FBdkMsVUFBd0MsWUFBbUMsRUFBRSxJQUFVO1FBQ3RGLElBQUksSUFBSSxDQUFDLDRCQUE0QixFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUVwQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQzdDO2FBQU07WUFDTixJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sOERBQW9DLEdBQTVDLFVBQTZDLFlBQW1DLEVBQUUsSUFBVTtRQUE1RixpQkFrQkM7O1FBakJBLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixTQUFHLElBQUksQ0FBQyx1QkFBdUIsbUNBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUUxRSxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07WUFDbEMsS0FBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQzNEO2dCQUNDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLENBQUM7WUFDWCxDQUFDLENBQ0QsQ0FBQyxLQUFLLENBQ04sU0FBUyxVQUFVLENBQUMsU0FBUztnQkFDNUIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ25CLENBQUMsQ0FDRCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyx3REFBOEIsR0FBdEMsVUFBdUMsV0FBaUIsRUFBRSxZQUFtQztRQUE3RixpQkFrRUM7UUFqRUEsV0FBVyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksaUJBQWlCLEdBQTBCLEVBQUUsQ0FBQztRQUNsRCxJQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFFcEIsSUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBMEIsQ0FBQztRQUU5RyxLQUFnQixVQUFxQyxFQUFyQyxXQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFyQyxjQUFxQyxFQUFyQyxJQUFxQyxFQUFFO1lBQWxELElBQU0sQ0FBQztZQUNYLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLE9BQU8sR0FBUSxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BCLCtDQUErQztnQkFDL0MsdUVBQXVFO2dCQUN2RSxxRUFBcUU7Z0JBQ3JFLGtFQUFrRTtnQkFDbEUsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ3ZCLGlDQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO29CQUNqSCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxDQUFDO2dCQUVILFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkI7U0FDRDtRQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtZQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFDLE1BQU07O2dCQUNoQyxLQUFnQixVQUFtQixFQUFuQixXQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFuQixjQUFtQixFQUFuQixJQUFtQixFQUFFO29CQUFoQyxJQUFNLENBQUM7b0JBQ1gsSUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLElBQUksT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQUU7d0JBQ2pDLGdFQUFnRTt3QkFDaEUsc0ZBQXNGO3dCQUN0RixpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsQ0FBQztxQkFDbEU7aUJBQ0Q7Z0JBRUQsS0FBSSxDQUFDLHVCQUF1QixDQUFDLGlCQUFpQixFQUFFLFdBQVcsUUFBRSxLQUFJLENBQUMsK0JBQStCLDBDQUFFLCtCQUErQixDQUFDLENBQUM7Z0JBRXBJLElBQU0sWUFBWSxHQUFHLFVBQUMsU0FBdUI7b0JBQzVDLEtBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztvQkFDakMsS0FBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDO2dCQUVGLDREQUE0RDtnQkFDNUQsMEZBQTBGO2dCQUMxRixJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7b0JBQzdCLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFDLFNBQXNCO3dCQUM1QyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3pCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQzt3QkFDUixvR0FBb0c7d0JBQ3BHLGlDQUFlLENBQUMsa0JBQWtCLEVBQUU7NkJBQ25DLFNBQVMsQ0FBQywwQkFBYyxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLHlDQUF5QyxDQUFDLENBQUM7d0JBQ3JHLFlBQVksRUFBRSxDQUFDO29CQUNoQixDQUFDLENBQUMsQ0FBQztpQkFDSDtxQkFBTTtvQkFDTixZQUFZLEVBQUUsQ0FBQztpQkFDZjtZQUNGLENBQUMsQ0FDRCxDQUFDLEtBQUssQ0FDTixTQUFTLFVBQVUsQ0FBQyxLQUFLO2dCQUN4QixrRUFBa0U7Z0JBQ2xFLDhDQUE4QztnQkFDOUMsaUNBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLHVCQUF1QixDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFDbEgsQ0FBQyxDQUNELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCx3SUFBd0k7SUFDeEksa0lBQWtJO0lBQ2xJLGdIQUFnSDtJQUNoSCx3REFBd0Q7SUFDeEQsNkJBQTZCO0lBQ3JCLGlEQUF1QixHQUEvQixVQUFnQyxpQkFBd0MsRUFBRSxVQUFrQixFQUFFLHVCQUE2Qjs7UUFBN0IsdUVBQTZCO1FBQzFILElBQUksdUJBQXVCLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLElBQU0saUJBQWlCLEdBQThCLEVBQUUsQ0FBQztZQUN4RCxLQUFLLElBQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFO2dCQUNwQyxJQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUMsSUFBTSxPQUFPLEdBQTRCO29CQUN4QyxFQUFFLEVBQUUsVUFBVSxDQUFDLFVBQVU7b0JBQ3pCLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtvQkFDdkMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO29CQUN2QyxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7b0JBQ3ZCLGtCQUFrQixvQkFBRSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsY0FBYywwQ0FBRSxRQUFRLDBDQUFFLGVBQWUsMENBQUcsb0JBQW9CLENBQUM7b0JBQ2pHLFFBQVEsRUFBRSxJQUFJLENBQUMsbUJBQW1CO29CQUNsQyxtQkFBbUIsRUFBRSxVQUFVLENBQUMsbUJBQW1CO29CQUNuRCxVQUFVLEVBQUUsVUFBVTtpQkFDdEI7Z0JBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQ2hDO1lBQ0QsaUNBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsRUFDckcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQzlDLHVCQUF1QixDQUFDO1NBQ3pCO0lBQ0YsQ0FBQztJQUVPLDZDQUFtQixHQUEzQixVQUE0QixXQUFpQixFQUFFLFlBQW1DOztRQUNqRixXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDckQsSUFBSSxpQkFBaUIsR0FBMEIsRUFBRSxDQUFDO1FBRWxELEtBQW9CLFVBQXFDLEVBQXJDLFdBQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQXJDLGNBQXFDLEVBQXJDLElBQXFDLEVBQUU7WUFBdEQsSUFBTSxLQUFLO1lBQ2YsSUFBSTtnQkFDSCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUM5RixJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtvQkFDekIsZ0VBQWdFO29CQUNoRSxzRkFBc0Y7b0JBQ3RGLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDMUQ7YUFDRDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNmLCtDQUErQztnQkFDL0MscUVBQXFFO2dCQUNyRSxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsdUJBQXVCLENBQUMsb0RBQW9ELEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7YUFDdEk7U0FDRDtRQUVELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLFFBQUUsSUFBSSxDQUFDLCtCQUErQiwwQ0FBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBRS9ILHdFQUF3RTtRQUN4RSxJQUFJO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakY7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNmLGlDQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsMkNBQTJDLEdBQUcsS0FBSyxDQUFDLENBQUM7U0FDckc7UUFFRCxzREFBc0Q7UUFDdEQsSUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLEVBQXdCLENBQUM7UUFFekQsMkZBQTJGO1FBQzNGLElBQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVO1FBRTFDLG1EQUFtRDtRQUNuRCxJQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRXBDLDJGQUEyRjtRQUMzRixJQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRXRDLHFDQUFxQztRQUNyQyxLQUFLLElBQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNqRSxJQUFNLFVBQVUsR0FBd0IsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRS9ELHdJQUF3STtnQkFDeEksSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDbEgsU0FBUztpQkFDVDtnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFcEMseUNBQXlDO2dCQUN6QyxJQUFJLFVBQVUsQ0FBQyxhQUFhLG1CQUF1QixFQUFFO29CQUNwRCx1Q0FBdUM7b0JBQ3ZDLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEUsSUFBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBQzt3QkFDeEIsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDbkM7aUJBQ0Q7Z0JBRUQsSUFBSSxZQUFZO29CQUNmLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFELENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxrREFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2RCxTQUFTO2lCQUNUO2dCQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUUzQywwREFBMEQ7Z0JBQzFELElBQUksVUFBVSxDQUFDLGFBQWEsb0JBQTBCLEVBQUU7b0JBQ3ZELFNBQVM7aUJBQ1Q7Z0JBRUQsMENBQTBDO2dCQUMxQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEMsOEVBQThFO2dCQUM5RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUM3RDtTQUNEO1FBRUQsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsUUFBRSxJQUFJLENBQUMsK0JBQStCLDBDQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFFOUksOEdBQThHO1FBQzlHLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzNDO0lBQ0YsQ0FBQztJQUVPLG9EQUEwQixHQUFsQyxVQUFtQyxVQUErQjs7UUFDakUsSUFBSTtZQUNILElBQU0sU0FBUyxHQUFlO2dCQUM3QixFQUFFLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQ3pCLGtCQUFrQixvQkFBRSxVQUFVLGFBQVYsVUFBVSx1QkFBVixVQUFVLENBQUUsY0FBYywwQ0FBRSxRQUFRLDBDQUFFLGVBQWUsMENBQUcsb0JBQW9CLENBQUM7Z0JBQ2pHLGFBQWEsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsZ0JBQW9CLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYTthQUM5RjtZQUVELElBQU0sYUFBYSxHQUF5QjtnQkFDM0MsWUFBWSxFQUFFLFNBQVMsQ0FBQyxrQkFBa0I7Z0JBQzFDLFNBQVMsRUFBRSxTQUFTO2FBQ3BCO1lBRUQsK0VBQStFO1lBQy9FLE9BQU8sYUFBYSxDQUFDO1NBQ3JCO1FBQUEsT0FBTyxLQUFLLEVBQUU7WUFDZCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxxQ0FBcUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNySCxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQUVELGtIQUFrSDtJQUNsSCw2QkFBNkI7SUFDckIsa0RBQXdCLEdBQWhDLFVBQWlDLGNBQXdCLEVBQUUsT0FBaUIsRUFBRSxTQUFtQixFQUFFLFlBQWtCO1FBQWxCLGlEQUFrQjtRQUVwSCxJQUFJLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBTSxPQUFPLEdBQTRCO2dCQUN4QyxjQUFjLEVBQUUsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDdEUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2pELFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3ZEO1lBQ0QsSUFBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFDLElBQUksUUFBQyxJQUFJLFNBQVMsRUFBZCxDQUFjLENBQUMsRUFBRztnQkFDckQsaUNBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGtCQUFrQixDQUFDLHdCQUF3QixFQUN4RyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDckQ7U0FDRDtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNLLDRDQUFrQixHQUExQixVQUEyQixXQUFpQixFQUFFLFlBQW1DLEVBQUUsaUJBQXdDOztRQUMxSCxJQUFNLG9CQUFvQixHQUFxQyxFQUFFLENBQUM7UUFDbEUsSUFBTSxjQUFjLEdBQUcsSUFBSSxLQUFLLEVBQXdCLENBQUM7UUFFekQsMkZBQTJGO1FBQzNGLElBQU0sY0FBYyxHQUFHLElBQUksS0FBSyxFQUFVO1FBRTFDLG1EQUFtRDtRQUNuRCxJQUFNLE9BQU8sR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRXBDLDJGQUEyRjtRQUMzRixJQUFNLFNBQVMsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQ3RDLHFDQUFxQztRQUNyQyxLQUFLLElBQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNqRSxJQUFNLFVBQVUsR0FBd0IsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRS9ELG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUM7Z0JBRXpELHdJQUF3STtnQkFDeEksSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtvQkFDbEgsU0FBUztpQkFDVDtnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFcEMseUNBQXlDO2dCQUN6QyxJQUFJLFVBQVUsQ0FBQyxhQUFhLG1CQUF1QixFQUFFO29CQUNwRCx1Q0FBdUM7b0JBQ3ZDLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDbEUsSUFBRyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBQzt3QkFDeEIsY0FBYyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDbkM7aUJBQ0Q7Z0JBRUQsSUFBSSxZQUFZO29CQUNmLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzFELENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxrREFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN2RCxTQUFTO2lCQUNUO2dCQUNELGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUUzQywwREFBMEQ7Z0JBQzFELElBQUksVUFBVSxDQUFDLGFBQWEsb0JBQTBCLEVBQUU7b0JBQ3ZELFNBQVM7aUJBQ1Q7Z0JBRUQsMENBQTBDO2dCQUMxQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDdEMsOEVBQThFO2dCQUM5RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUM3RDtTQUNEO1FBRUQsa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsUUFBRSxJQUFJLENBQUMsK0JBQStCLDBDQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFFOUksOEdBQThHO1FBQzlHLElBQUksY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsNkRBQTZEO1FBQzdELElBQU0sWUFBWSxHQUFxQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pFLElBQU0saUJBQWlCLEdBQXFCLEVBQUUsQ0FBQztRQUUvQyxLQUFLLElBQU0sR0FBRyxJQUFJLFlBQVksRUFBRTtZQUMvQixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzVELElBQU0sS0FBSyxHQUFtQixZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWhELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtvQkFDdEYsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUM5QjtnQkFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDOUM7U0FDRDtRQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Y0FrQkc7UUFDSCxLQUFLLElBQU0sR0FBRyxJQUFJLGlCQUFpQixFQUFFO1lBQ3BDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNqRSxJQUFNLEtBQUssR0FBbUIsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1gsU0FBUztpQkFDVDtnQkFFRCxJQUFNLFVBQVUsR0FBd0Isb0JBQW9CLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7Z0JBRXpCLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ2hCLElBQUksS0FBSyxDQUFDLHFCQUFxQjt5QkFDN0IsT0FBTyxFQUFFLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDOUcsWUFBWSxHQUFHLElBQUksQ0FBQztxQkFDcEI7aUJBQ0Q7cUJBQU0sSUFBSSxlQUFlLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQzNHLFlBQVksR0FBRyxJQUFJLENBQUM7aUJBQ3BCO2dCQUVELDJEQUEyRDtnQkFDM0QsSUFBSSxZQUFZLEVBQUU7b0JBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Q7U0FDRDtJQUNGLENBQUM7SUFFRCxtRkFBbUY7SUFDM0UsaURBQXVCLEdBQS9CO1FBQUEsaUJBeURDO1FBeERBLElBQU0sb0JBQW9CLEdBQXFDLEVBQUUsQ0FBQztRQUVsRSx3Q0FBd0M7UUFDeEMsSUFBTSxvQkFBb0IsR0FBdUMsRUFBRSxDQUFDO1FBQ3BFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7WUFDdkQsSUFBTSxVQUFVLEdBQXdCLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0RSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNuRSxJQUFNLEtBQUssR0FBbUIsS0FBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdkQsMENBQTBDO2dCQUMxQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUU7b0JBQ3RCLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQztvQkFFdkMsa0ZBQWtGO29CQUNsRixJQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDOUYsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEtBQUs7d0JBQzVCLElBQU0sTUFBTSxHQUFNLEtBQUssU0FBSSxVQUFVLENBQUMsbUJBQXFCLENBQUM7d0JBQzVELG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDbEUsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMvQyxDQUFDLENBQUMsQ0FBQztpQkFDSDthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFDLEdBQUc7O1lBQzdDLCtEQUErRDtZQUMvRCxJQUFJLENBQUMsS0FBSSxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBSSw4Q0FBbUIsQ0FBQyxRQUFVLENBQUMsRUFBRTtnQkFDaEYsT0FBTzthQUNQO1lBRUQsSUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUMsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtnQkFDNUIsT0FBTzthQUNQO1lBRUQscUZBQXFGO1lBQy9FLFNBQXVELEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxXQUFXLENBQUMsRUFBdEcscUJBQXFCLFVBQUUsMkJBQTJCLFFBQW9ELENBQUM7WUFFOUcsSUFBTSxXQUFXLFNBQUcscUJBQXFCLENBQUMsZUFBZSxtQ0FBSSxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLDJCQUEyQixFQUFFO2dCQUNqQyx3REFBd0Q7Z0JBQ3hELE9BQU87YUFDUDtZQUVELDBGQUEwRjtZQUMxRixXQUFXLENBQUMsT0FBTyxDQUFDLFVBQUMsT0FBTztnQkFDM0IsSUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztnQkFFaEQsaUdBQWlHO2dCQUNqRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLEdBQUcsV0FBVyxFQUFFO29CQUNyRSxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDaEQ7WUFDRixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxvQkFBb0IsQ0FBQztJQUM3QixDQUFDO0lBRUQ7O09BRUc7SUFDSywyQ0FBaUIsR0FBekIsVUFBMEIsV0FBaUI7UUFDMUMsMEVBQTBFO1FBQzFFLFdBQVcsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsRUFBRSxDQUFDO1FBRWpDLEtBQUssSUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzNDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDeEUsSUFBTSxVQUFVLEdBQXdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEUsSUFBTSxLQUFLLEdBQW1CLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUV6RSxJQUFJLENBQUMsS0FBSyxJQUFJLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtvQkFDOUcsSUFBSSxZQUFZLEdBQVcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzNELElBQUksbUJBQW1CLEdBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUN4RixJQUFJLHdCQUF3QixHQUFTLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDbEcsSUFBTSx1QkFBdUIsR0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2xHLElBQU0sc0JBQXNCLEdBQVMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUM3RixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFFeEQscUJBQXFCO29CQUNyQixJQUFNLFdBQVcsR0FBWSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixFQUFFLENBQUM7b0JBQ3RILElBQUksV0FBVyxFQUFFO3dCQUNoQix5RUFBeUU7d0JBQ3pFLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQzVCLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxnQ0FBZ0MsQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDaEcsd0JBQXdCLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGdEQUFnRCxDQUFDLG1CQUFtQixDQUFDLENBQUM7cUJBQzdIO29CQUVELElBQU0sUUFBUSxHQUFtQixJQUFJLHFDQUFhLENBQ2pELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLFdBQVcsRUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxrQ0FBa0MsRUFBRSxFQUNoRSxLQUFLLEVBQ0wsV0FBVyxFQUNYLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsWUFBWSxFQUNaLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsc0JBQXNCLENBQ3RCLENBQUM7b0JBRUYsd0NBQXdDO29CQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUM7aUJBQ3BEO2FBQ0Q7U0FDRDtJQUNGLENBQUM7SUFFTyxzREFBNEIsR0FBcEM7O1FBQ0MsNkJBQTZCO1FBQzdCLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFNLG9CQUFvQixTQUFHLDRDQUFzQixFQUFFLDBDQUFFLG9CQUFvQixDQUFDLG1DQUFtQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hILElBQUksb0JBQW9CLEVBQUU7WUFDekIsS0FBZ0IsVUFBcUMsRUFBckMsV0FBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsRUFBckMsY0FBcUMsRUFBckMsSUFBcUMsRUFBRTtnQkFBbEQsSUFBTSxDQUFDO2dCQUNYLElBQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsWUFBWSxHQUFHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFekMsNERBQTREO2dCQUM1RCxJQUFJLFlBQVksRUFBRTtvQkFDakIsTUFBTTtpQkFDTjthQUNEO1NBQ0Q7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLHVCQUF1QixJQUFJLFlBQVksQ0FBQztJQUN0RCxDQUFDO0lBRU8sa0RBQXdCLEdBQWhDLFVBQWlDLFdBQWlCLEVBQUUsWUFBbUM7UUFDdEYsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDM0MsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUN4RSxJQUFNLFVBQVUsR0FBd0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUV0RSxJQUFJLFlBQVk7b0JBQ2YsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsQ0FBQyxVQUFVLENBQUMsYUFBYSxLQUFLLGtEQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3ZELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkQsU0FBUztpQkFDVDtnQkFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO29CQUNsSCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZELFNBQVM7aUJBQ1Q7Z0JBRUQsb0hBQW9IO2dCQUNwSCxJQUFJLFVBQVUsQ0FBQyxhQUFhLG9CQUEwQixFQUFFO29CQUN2RCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZELFNBQVM7aUJBQ1Q7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0ssa0RBQXdCLEdBQWhDLFVBQWlDLFdBQWlCO1FBQ2pELDZEQUE2RDtRQUM3RCxJQUFNLFlBQVksR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRSxJQUFNLGlCQUFpQixHQUFxQixFQUFFLENBQUM7UUFFL0MsS0FBSyxJQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUU7WUFDL0IsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUM1RCxJQUFNLEtBQUssR0FBbUIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQ3RGLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDOUI7Z0JBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDO2FBQzlDO1NBQ0Q7UUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBa0JHO1FBQ0gsS0FBSyxJQUFNLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDakUsSUFBTSxLQUFLLEdBQW1CLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNYLFNBQVM7aUJBQ1Q7Z0JBRUQsSUFBTSxVQUFVLEdBQXdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25GLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFFekIsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDaEIsSUFBSSxLQUFLLENBQUMscUJBQXFCO3lCQUM3QixPQUFPLEVBQUUsSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO3dCQUM5RyxZQUFZLEdBQUcsSUFBSSxDQUFDO3FCQUNwQjtpQkFDRDtxQkFBTSxJQUFJLGVBQWUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRTtvQkFDM0csWUFBWSxHQUFHLElBQUksQ0FBQztpQkFDcEI7Z0JBRUQsMkRBQTJEO2dCQUMzRCxJQUFJLFlBQVksRUFBRTtvQkFDakIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDN0M7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUNGLHNCQUFDO0FBQUQsQ0FBQztBQXo2QlksMENBQWUiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9DYW1wYWlnbi9DYW1wYWlnbk1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi4vVXRpbHNcIjtcclxuXHJcbmltcG9ydCB7XHJcblx0U3VydmV5SW5mb0J1c2luZXNzTGV2ZWwgYXMgQnVzaW5lc3NMZXZlbCxcclxuXHRHb3Zlcm5lZENoYW5uZWxUeXBlLFxyXG5cdElDYW1wYWlnbkRlZmluaXRpb24sXHJcblx0SUNhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyLFxyXG5cdElDYW1wYWlnbkR1cmF0aW9uLFxyXG5cdElDYW1wYWlnbk1hbmFnZXIsXHJcblx0SUNhbXBhaWduU3RhdGUsXHJcblx0SUNhbXBhaWduU3RhdGVQcm92aWRlcixcclxuXHRJRGljdGlvbmFyeSxcclxuXHRJRmxvb2RnYXRlRW52aXJvbm1lbnRQcm92aWRlcixcclxuXHRJRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIsXHJcblx0SUxvZ0V4cGVyaW1lbnRUcmlnZ2VyLFxyXG5cdElTdXJ2ZXksXHJcblx0SVN1cnZleUNhbmRpZGFjeUNoZWNrZXIsXHJcblx0SVN1cnZleUNsaWVudCxcclxuXHRJU3VydmV5SW5mbyxcclxuXHRUcmVhdG1lbnRUeXBlLFxyXG5cdElUcmlnZ2VyRXZlbnREZXRhaWxzLFxyXG5cdElFdmVudEluZm8sXHJcblx0SUNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWdcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0IHtcclxuXHRDYW1wYWlnbkR1cmF0aW9uU2luZ2xlQnVpbGRDaGFuZ2UsXHJcblx0Q2FtcGFpZ25EdXJhdGlvblRpbWVJbnRlcnZhbCxcclxuXHRDYW1wYWlnblNjb3BlRW52aXJvbm1lbnRDcm9zc1Byb2R1Y3QsXHJcblx0Q2FtcGFpZ25TY29wZVVzZXJGYWN0QWxsLFxyXG5cdENhbXBhaWduU2NvcGVVc2VyRmFjdEFueSxcclxufSBmcm9tIFwiLi9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlclwiO1xyXG5cclxuaW1wb3J0IHsgQ2FtcGFpZ25TdGF0ZSB9IGZyb20gXCIuL0NhbXBhaWduU3RhdGVQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBDYW1wYWlnblN1cnZleUZhY3RvcnkgfSBmcm9tIFwiLi9DYW1wYWlnblN1cnZleUZhY3RvcnlcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4uL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5pbXBvcnQgeyBJVXNlckZhY3QgfSBmcm9tIFwiQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvQ29tbW9uL01vZGVsc1wiO1xyXG5pbXBvcnQgeyBJVXNlckZhY3RQcm92aWRlciB9IGZyb20gXCIuLi9BcGkvSVVzZXJGYWN0UHJvdmlkZXJcIjtcclxuaW1wb3J0IHsgVGVsZW1ldHJ5RXZlbnQgfSBmcm9tIFwiLi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGdldEZlYXR1cmVHYXRlUHJvdmlkZXIgfSBmcm9tIFwiLi4vRmVhdHVyZUdhdGVQcm92aWRlclwiO1xyXG5cclxuY29uc3QgeyBnZXREaXN0YW50RnV0dXJlLCBnZXREaXN0YW50UGFzdCwgaXNBcnJheSwgaXNOT1UgfSA9IFV0aWxzO1xyXG5cclxuLyoqXHJcbiAqIFRoZSBzdGFuZGFyZCBjYW1wYWlnbiBtYW5hZ2VyIGltcGxlbWVudGF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduTWFuYWdlciBpbXBsZW1lbnRzIElDYW1wYWlnbk1hbmFnZXIsIElTdXJ2ZXlDbGllbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgaXNTdGF0ZVVwRm9yTm9taW5hdGlvbihzdGF0ZTogSUNhbXBhaWduU3RhdGUsIGRlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24sIGRhdGU6IERhdGUsIGJ1aWxkTnVtYmVyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRcdGlmICghc3RhdGUgfHwgIWRlZmluaXRpb24pIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRhdGUgPSBkYXRlID8gZGF0ZSA6IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0Ly8gQ2hlY2sgbWFudWFsIG92ZXJyaWRlXHJcblx0XHRpZiAoc3RhdGUuRm9yY2VDYW5kaWRhY3kpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRmlndXJlIG91dCB3aGljaCBkdXJhdGlvbiB3ZSdyZSB1c2luZyBiYXNlZCBvbiB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciB0cmlnZ2VyZWQgdGhlIHN1cnZleVxyXG5cdFx0Y29uc3QgY2FtcGFpZ25Db29sZG93bkR1cmF0aW9uOiBJQ2FtcGFpZ25EdXJhdGlvblxyXG5cdFx0XHQ9IGRlZmluaXRpb24ubm9taW5hdGlvblNjaGVtZS5nZXRDYW1wYWlnbkNvb2xkb3duKHN0YXRlLklzQ2FuZGlkYXRlICYmIHN0YXRlLkRpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXkpO1xyXG5cclxuXHRcdGlmICghY2FtcGFpZ25Db29sZG93bkR1cmF0aW9uKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHRcdC8vIEZpcnN0IGNoZWNrIGZvciBidWlsZC1iYXNlZCBydWxlcy4gRXZlbnR1YWxseSB0aGlzIGNvdWxkIGdldCBtb3JlIGNvbXBsZXggaWYgd2Ugc3VwcG9ydGVkIGNvdW50aW5nIGRpZmZlcmVudGx5IHNlZW4gYnVpbGQgbnVtYmVyc1xyXG5cdFx0aWYgKENhbXBhaWduTWFuYWdlci5oYXNCdWlsZENoYW5nZUR1cmF0aW9uRWxhcHNlZChjYW1wYWlnbkNvb2xkb3duRHVyYXRpb24sIHN0YXRlLkxhc3ROb21pbmF0aW9uQnVpbGROdW1iZXIsIGJ1aWxkTnVtYmVyKSkge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBOZXh0IGNoZWNrIGRhdGUgcnVsZXNcclxuXHRcdHJldHVybiBDYW1wYWlnbk1hbmFnZXIuaGFzVGltZUludGVydmFsRHVyYXRpb25FbGFwc2VkKGNhbXBhaWduQ29vbGRvd25EdXJhdGlvbiwgc3RhdGUuZ2V0Q29vbGRvd25TdGFydERhdGUoKSwgZGF0ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGlzRGF0ZUluUmFuZ2UoZGF0ZTogRGF0ZSwgc3RhcnREYXRlOiBEYXRlLCBlbmREYXRlOiBEYXRlKTogYm9vbGVhbiB7XHJcblx0XHRkYXRlID0gZGF0ZSA/IGRhdGUgOiBuZXcgRGF0ZSgpO1xyXG5cdFx0c3RhcnREYXRlID0gc3RhcnREYXRlID8gc3RhcnREYXRlIDogZ2V0RGlzdGFudFBhc3QoKTtcclxuXHRcdGVuZERhdGUgPSBlbmREYXRlID8gZW5kRGF0ZSA6IGdldERpc3RhbnRGdXR1cmUoKTtcclxuXHJcblx0XHQvLyBDaGVjayBTdGFydC9FeHBpcmUgZGF0ZSByYW5nZVxyXG5cdFx0aWYgKHN0YXJ0RGF0ZS5nZXRUaW1lKCkgPD0gZGF0ZS5nZXRUaW1lKCkgJiYgZW5kRGF0ZS5nZXRUaW1lKCkgPj0gZGF0ZS5nZXRUaW1lKCkpIHtcclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBoYXNUaW1lSW50ZXJ2YWxEdXJhdGlvbkVsYXBzZWQoZHVyYXRpb246IElDYW1wYWlnbkR1cmF0aW9uLCBzdGFydERhdGU6IERhdGUsIGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuXHRcdGlmIChpc05PVShkdXJhdGlvbikgfHwgIShkdXJhdGlvbiBpbnN0YW5jZW9mIENhbXBhaWduRHVyYXRpb25UaW1lSW50ZXJ2YWwpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGlmICghc3RhcnREYXRlIHx8ICFkYXRlKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBlbmREYXRlOiBEYXRlID0gVXRpbHMuYWRkU2Vjb25kc1dpdGhvdXRPdmVyZmxvdyhzdGFydERhdGUsIGR1cmF0aW9uLmludGVydmFsU2Vjb25kcyk7XHJcblx0XHRyZXR1cm4gZGF0ZS5nZXRUaW1lKCkgPj0gZW5kRGF0ZS5nZXRUaW1lKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGhhc0J1aWxkQ2hhbmdlRHVyYXRpb25FbGFwc2VkKGR1cmF0aW9uOiBJQ2FtcGFpZ25EdXJhdGlvbiwgc3RhcnRCdWlsZDogc3RyaW5nLCBidWlsZDogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoaXNOT1UoZHVyYXRpb24pIHx8ICEoZHVyYXRpb24gaW5zdGFuY2VvZiBDYW1wYWlnbkR1cmF0aW9uU2luZ2xlQnVpbGRDaGFuZ2UpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHRcdGlmIChpc05PVShzdGFydEJ1aWxkKSB8fCBpc05PVShidWlsZCkpIHtcclxuXHRcdFx0cmV0dXJuIChzdGFydEJ1aWxkID09PSBudWxsKSAhPT0gKGJ1aWxkID09PSBudWxsKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gIShzdGFydEJ1aWxkID09PSBidWlsZCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBpc0NhbXBhaWduSW5TY29wZShcclxuXHRcdGRlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24sXHJcblx0XHRkYXRlOiBEYXRlLFxyXG5cdFx0ZW52aXJvbm1lbnRQcm92aWRlcjogSUZsb29kZ2F0ZUVudmlyb25tZW50UHJvdmlkZXIsXHJcblx0XHR1c2VyRmFjdHNQcm92aWRlcjogSVVzZXJGYWN0UHJvdmlkZXIpOiBib29sZWFuIHtcclxuXHRcdGlmICghZGVmaW5pdGlvbikge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGF0ZSA9IGRhdGUgPyBkYXRlIDogbmV3IERhdGUoKTtcclxuXHJcblx0XHQvLyBDaGVjayBTdGFydC9FeHBpcmUgZGF0ZSByYW5nZVxyXG5cdFx0aWYgKCFDYW1wYWlnbk1hbmFnZXIuaXNEYXRlSW5SYW5nZVdpdGhEZWZpbml0aW9uKGRhdGUsIGRlZmluaXRpb24pKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZGVmaW5pdGlvbi5zY29wZSkge1xyXG5cdFx0XHRpZiAoZGVmaW5pdGlvbi5zY29wZSBpbnN0YW5jZW9mIENhbXBhaWduU2NvcGVVc2VyRmFjdEFueSB8fCBkZWZpbml0aW9uLnNjb3BlIGluc3RhbmNlb2YgQ2FtcGFpZ25TY29wZVVzZXJGYWN0QWxsKSB7XHJcblx0XHRcdFx0ZGVmaW5pdGlvbi5zY29wZS5zZXRVc2VyRmFjdHNQcm92aWRlcih1c2VyRmFjdHNQcm92aWRlcik7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGRlZmluaXRpb24uc2NvcGUgaW5zdGFuY2VvZiBDYW1wYWlnblNjb3BlRW52aXJvbm1lbnRDcm9zc1Byb2R1Y3QpIHtcclxuXHRcdFx0XHRkZWZpbml0aW9uLnNjb3BlLnNldEVudmlyb25tZW50UHJvdmlkZXIoZW52aXJvbm1lbnRQcm92aWRlcik7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKCFkZWZpbml0aW9uLnNjb3BlLmlzSW5TY29wZSgpKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSWYgd2UgZ2V0IGhlcmUsIHRoZSBkZWZpbml0aW9uIGlzIHJlbGV2YW50XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3RhdGljIGlzRGF0ZUluUmFuZ2VXaXRoRGVmaW5pdGlvbihkYXRlOiBEYXRlLCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIWRlZmluaXRpb24pIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRhdGUgPSBkYXRlID8gZGF0ZSA6IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0cmV0dXJuIENhbXBhaWduTWFuYWdlci5pc0RhdGVJblJhbmdlKGRhdGUsXHJcblx0XHRcdC8vIG51bGwgc3RhcnQgZGF0ZXMgc2hvdWxkIGJlIGltcG9zc2libGUsIGJ1dCBpZiBzZXQsIHNob3VsZCBtZWFuIHRoZSBjYW1wYWlnbiBpcyBkaXNhYmxlZFxyXG5cdFx0XHRkZWZpbml0aW9uLnN0YXJ0VGltZSA/IGRlZmluaXRpb24uc3RhcnRUaW1lIDogZ2V0RGlzdGFudEZ1dHVyZSgpLFxyXG5cdFx0XHRkZWZpbml0aW9uLmVuZFRpbWUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjYW1wYWlnblN0YXRlczogSURpY3Rpb25hcnk8SUNhbXBhaWduU3RhdGU+O1xyXG5cdHByaXZhdGUgY2FtcGFpZ25EZWZpbml0aW9uczogSURpY3Rpb25hcnk8SUNhbXBhaWduRGVmaW5pdGlvbj47XHJcblx0cHJpdmF0ZSB1c2VyRmFjdHM6IElVc2VyRmFjdFtdO1xyXG5cdHByaXZhdGUgY3VycmVudEJ1aWxkTnVtYmVyOiBzdHJpbmc7XHJcblx0cHJpdmF0ZSBzdGF0ZVByb3ZpZGVyOiBJQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyO1xyXG5cdHByaXZhdGUgZGVmaW5pdGlvblByb3ZpZGVyczogSUNhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyW107XHJcblx0cHJpdmF0ZSBzdHJpbmdQcm92aWRlcjogSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyO1xyXG5cdHByaXZhdGUgZW52aXJvbm1lbnRQcm92aWRlcjogSUZsb29kZ2F0ZUVudmlyb25tZW50UHJvdmlkZXI7XHJcblx0cHJpdmF0ZSBzdXJ2ZXlDYW5kaWRhY3lDaGVja2VyOiBJU3VydmV5Q2FuZGlkYWN5Q2hlY2tlcjtcclxuXHRwcml2YXRlIHVzZXJGYWN0c1Byb3ZpZGVyOiBJVXNlckZhY3RQcm92aWRlcjtcclxuXHRwcml2YXRlIGxhc3RDYW1wYWlnblJlZnJlc2hUaW1lOiBEYXRlO1xyXG5cdHByaXZhdGUgaXNQcmlvcml0eUVuYWJsZWQ6IGJvb2xlYW47XHJcblx0cHJpdmF0ZSBsb2dFeHBlcmltZW50VHJpZ2dlcjogSUxvZ0V4cGVyaW1lbnRUcmlnZ2VyO1xyXG5cdHByaXZhdGUgY2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZzogSUNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWc7XHJcblx0cHJpdmF0ZSBuZXdOb21pbmF0aW9uQ2FtcGFpZ25zOiBzdHJpbmdbXTtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHN0YXRlUHJvdmlkZXI6IElDYW1wYWlnblN0YXRlUHJvdmlkZXIsXHJcblx0XHRkZWZpbml0aW9uUHJvdmlkZXJzOiBJQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJbXSxcclxuXHRcdHN0cmluZ1Byb3ZpZGVyOiBJRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIsXHJcblx0XHRlbnZpcm9ubWVudFByb3ZpZGVyOiBJRmxvb2RnYXRlRW52aXJvbm1lbnRQcm92aWRlcixcclxuXHRcdGN1cnJlbnRCdWlsZE51bWJlcjogc3RyaW5nLFxyXG5cdFx0Y3VycmVudERhdGU6IERhdGUsXHJcblx0XHRpc1ByaW9yaXR5RW5hYmxlZDogYm9vbGVhbixcclxuXHRcdHVzZXJGYWN0c1Byb3ZpZGVyPzogSVVzZXJGYWN0UHJvdmlkZXIsXHJcblx0XHRzdXJ2ZXlDYW5kaWRhY3lDaGVja2VyPzogSVN1cnZleUNhbmRpZGFjeUNoZWNrZXIsXHJcblx0XHRsb2dFeHBlcmltZW50VHJpZ2dlcj86SUxvZ0V4cGVyaW1lbnRUcmlnZ2VyLFxyXG5cdFx0Y2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZz86IElDYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnKSB7XHJcblxyXG5cdFx0aWYgKCFzdGF0ZVByb3ZpZGVyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcInN0YXRlUHJvdmlkZXIgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIWlzQXJyYXkoZGVmaW5pdGlvblByb3ZpZGVycykpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGVmaW5pdGlvblByb3ZpZGVycyBpcyBlaXRoZXIgbnVsbCBvciBub3QgYW4gYXJyYXkgdHlwZVwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXN0cmluZ1Byb3ZpZGVyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcInN0cmluZ1Byb3ZpZGVyIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKGN1cnJlbnRCdWlsZE51bWJlcikpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiY3VycmVudEJ1aWxkTnVtYmVyIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jYW1wYWlnblN0YXRlcyA9IHt9O1xyXG5cdFx0dGhpcy5jYW1wYWlnbkRlZmluaXRpb25zID0ge307XHJcblx0XHR0aGlzLnVzZXJGYWN0cyA9IFtdO1xyXG5cdFx0dGhpcy5zdGF0ZVByb3ZpZGVyID0gc3RhdGVQcm92aWRlcjtcclxuXHRcdHRoaXMuZGVmaW5pdGlvblByb3ZpZGVycyA9IGRlZmluaXRpb25Qcm92aWRlcnM7XHJcblx0XHR0aGlzLnN0cmluZ1Byb3ZpZGVyID0gc3RyaW5nUHJvdmlkZXI7XHJcblx0XHR0aGlzLnN1cnZleUNhbmRpZGFjeUNoZWNrZXIgPSBzdXJ2ZXlDYW5kaWRhY3lDaGVja2VyO1xyXG5cdFx0dGhpcy51c2VyRmFjdHNQcm92aWRlciA9IHVzZXJGYWN0c1Byb3ZpZGVyO1xyXG5cdFx0dGhpcy5lbnZpcm9ubWVudFByb3ZpZGVyID0gZW52aXJvbm1lbnRQcm92aWRlcjsgLy8gQ2FuIGJlIG51bGxcclxuXHRcdHRoaXMuY3VycmVudEJ1aWxkTnVtYmVyID0gY3VycmVudEJ1aWxkTnVtYmVyO1xyXG5cclxuXHRcdGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgPyBjdXJyZW50RGF0ZSA6IG5ldyBEYXRlKCk7XHJcblx0XHR0aGlzLmlzUHJpb3JpdHlFbmFibGVkID0gaXNQcmlvcml0eUVuYWJsZWQ7XHJcblxyXG5cdFx0dGhpcy5sb2dFeHBlcmltZW50VHJpZ2dlciA9IGxvZ0V4cGVyaW1lbnRUcmlnZ2VyO1xyXG5cclxuXHRcdHRoaXMuY2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZyA9IGNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWc7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgTG9nRXhwZXJpbWVudFRyaWdnZXIodHJpZ2dlckRldGFpbHM6IElUcmlnZ2VyRXZlbnREZXRhaWxzW10pOiB2b2lkIHtcclxuXHRcdGlmIChpc05PVSh0aGlzLmxvZ0V4cGVyaW1lbnRUcmlnZ2VyKSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0Vycm9yKFRlbGVtZXRyeUV2ZW50LkNhbXBhaWduR292ZXJuYW5jZS5Mb2dFeHBlcmltZW50VHJpZ2dlci5VbmRlZmluZWQsXHJcblx0XHRcdFx0XCJMb2dFeHBlcmltZW50VHJpZ2dlciBkb2VzIG5vdCBleGlzdFwiKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRyeXtcclxuXHRcdFx0XHR0aGlzLmxvZ0V4cGVyaW1lbnRUcmlnZ2VyLkxvZ0V4cGVyaW1lbnRUcmlnZ2VyKHRyaWdnZXJEZXRhaWxzKTtcclxuXHRcdFx0fWNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5DYW1wYWlnbkdvdmVybmFuY2UuTG9nRXhwZXJpbWVudFRyaWdnZXIuRmFpbGVkLCBcIkZhaWxlZCB0byBydW4gTG9nRXhwZXJpbWVudFRyaWdnZXIgXCIgKyBlcnJvcik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRBY3RpdmVTdXJ2ZXlzKCk6IElEaWN0aW9uYXJ5PElTdXJ2ZXk+IHtcclxuXHRcdGNvbnN0IHN1cnZleXM6IElEaWN0aW9uYXJ5PElTdXJ2ZXk+ID0ge307XHJcblx0XHRjb25zdCBwcmlvcml0aXplZENhbXBhaWducyA9IHRoaXMuZ2V0UHJpb3JpdGl6ZWRDYW1wYWlnbnMoKTtcclxuXHRcdGNvbnN0IGFjdGl2ZUNhbXBhaWduSWRzID0gW107XHJcblxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gdGhpcy5jYW1wYWlnblN0YXRlcykge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY2FtcGFpZ25TdGF0ZXMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBzdGF0ZTogSUNhbXBhaWduU3RhdGUgPSB0aGlzLmNhbXBhaWduU3RhdGVzW2tleV07XHJcblx0XHRcdFx0aWYgKCFzdGF0ZS5Jc0NhbmRpZGF0ZSkge1xyXG5cdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBUaGlzIGlzIGEgcmVxdWlyZW1lbnQgYmVjYXVzZSB3ZSBrZWVwIHNvbWUgb3RoZXJ3aXNlIFwic3RhbGVcIiBjYW1wYWlnbnMgYXJvdW5kIGZvciB0aGUgc2F2ZSByb3V0aW5lXHJcblx0XHRcdFx0Y29uc3QgZGVmaW5pdGlvbjogSUNhbXBhaWduRGVmaW5pdGlvbiA9IHByaW9yaXRpemVkQ2FtcGFpZ25zW3N0YXRlLkNhbXBhaWduSWRdO1xyXG5cdFx0XHRcdGlmICghZGVmaW5pdGlvbikge1xyXG5cdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjb25zdCBzdXJ2ZXk6IElTdXJ2ZXkgPSBDYW1wYWlnblN1cnZleUZhY3RvcnkubWFrZVN1cnZleShzdGF0ZSwgZGVmaW5pdGlvbiwgdGhpcy5zdHJpbmdQcm92aWRlcik7XHJcblx0XHRcdFx0aWYgKCFzdXJ2ZXkpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKHRoaXMuc3VydmV5Q2FuZGlkYWN5Q2hlY2tlciAmJiAhdGhpcy5zdXJ2ZXlDYW5kaWRhY3lDaGVja2VyLmlzU3VydmV5VHJhY2thYmxlKHN1cnZleSkpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0c3VydmV5c1tzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCldID0gc3VydmV5O1xyXG5cdFx0XHRcdGFjdGl2ZUNhbXBhaWduSWRzLnB1c2goc3VydmV5LmdldENhbXBhaWduSWQoKSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmxvZ0FjdGl2ZVN1cnZleXMocHJpb3JpdGl6ZWRDYW1wYWlnbnMsIGFjdGl2ZUNhbXBhaWduSWRzKTtcclxuXHRcdHJldHVybiBzdXJ2ZXlzO1xyXG5cdH1cclxuXHJcblx0Ly8gVGhpcyBmdW5jdGlvbiB3aWxsIGxvZyBhIGpzb24gb2YgYWxsIHRoZSBDYW1wYWlnblN0YXRlcyBkdXJpbmcgY3JlYXRpbmcgYWN0aXZlIHN1cnZleXMuIFRoZSBwdXJwb3NlIG9mIHRoaXMgbG9nIGlzIGZvciB1cyB0byBiZSBhYmxlIHRvIGRldGVjdFxyXG5cdC8vIHdoZXRoZXIgdGhlIGNhbXBhaWduIGlzIHNlbGVjdGVkIGNvcnJlY3RseSB3aXRoIG5vbWluYXRpb24gYW5kIHByaW9yaXRpemF0aW9uLlxyXG5cdC8vIFRoZSBzYW1wbGluZyByYXRlIG9mIHRoaXMgbG9nIGlzIGRlcGVuZGVudCBvbiB3aGF0IHJhdGUgd2FzIHJlY2VpdmVkIGZyb20gdGhlIGNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWdcclxuXHQvLyBUaGlzIHRlbGVtZXRyeSBnZXRzIGxvZ2dlZCBhdCBldmVyeSBmbG9vZGdhdGUuc3RhcnQuIFNvIHdlIG5lZWQgdG8ga2VlcCB0aGUgc2FtcGxpbmcgcmF0ZSBsb3cuXHJcblx0Ly8gRGVmYXVsdCBzYW1wbGluZyByYXRlOiAwJSAtIGl0J3MgdHVybmVkIG9mZiBieSBkZWZhdWx0LiBXZSB3aWxsIGVuYWJsZSBpdCBmcm9tIHRoZSBIb3N0IGFwcCBzaWRlIGlmIG5lZWRlZC5cclxuXHRwcml2YXRlIGxvZ0FjdGl2ZVN1cnZleXMocHJpb3JpdGl6ZWRDYW1wYWlnbnM6IElEaWN0aW9uYXJ5PElDYW1wYWlnbkRlZmluaXRpb24+LCBhY3RpdmVDYW1wYWlnbklkczogc3RyaW5nW10pe1xyXG5cdFx0Y29uc3QgY3VycmVudENhbXBhaWduU3RhdGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPltdID0gW107XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNhbXBhaWduU3RhdGVzKSB7XHJcblx0XHRcdGNvbnN0IHN0YXRlOiBJQ2FtcGFpZ25TdGF0ZSA9IHRoaXMuY2FtcGFpZ25TdGF0ZXNba2V5XTtcclxuXHRcdFx0Y29uc3QgcGF5bG9hZDogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XHJcblx0XHRcdFx0Q2FtcGFpZ25JZDoga2V5LFxyXG5cdFx0XHRcdElzQ2FuZGlkYXRlOiBzdGF0ZS5Jc0NhbmRpZGF0ZSxcclxuXHRcdFx0XHREaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5OiBzdGF0ZS5EaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5LFxyXG5cdFx0XHRcdFN1cnZleUlkOiBzdGF0ZS5MYXN0U3VydmV5SWRcclxuXHRcdFx0fVxyXG5cdFx0XHRjdXJyZW50Q2FtcGFpZ25TdGF0ZXMucHVzaChwYXlsb2FkKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuR2V0QWN0aXZlU3VydmV5cywgXHJcblx0XHRcdHsgTWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xyXG5cdFx0XHRcdENhbXBhaWduU3RhdGVzOiBjdXJyZW50Q2FtcGFpZ25TdGF0ZXMsXHJcblx0XHRcdFx0UHJpb3JpdGl6ZWRDYW1wYWlnbnM6IE9iamVjdC5rZXlzKHByaW9yaXRpemVkQ2FtcGFpZ25zKSxcclxuXHRcdFx0XHRBY3RpdmVDYW1wYWlnbnM6IGFjdGl2ZUNhbXBhaWduSWRzLFxyXG5cdFx0XHRcdE5ld05vbWluYXRpb25DYW1wYWlnbnM6IHRoaXMubmV3Tm9taW5hdGlvbkNhbXBhaWduc1xyXG5cdFx0XHR9KX0sIDApO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIG1vZGlmeUNhbXBhaWduU3VydmV5VGFrZW5EYXRlKGNhbXBhaWduSWQ6IHN0cmluZywgdGFrZW5EYXRlOiBEYXRlLCBpc1N1cnZleUNvbXBsZXRlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRjb25zdCBzdGF0ZTogSUNhbXBhaWduU3RhdGUgPSB0aGlzLmNhbXBhaWduU3RhdGVzW2NhbXBhaWduSWRdO1xyXG5cdFx0aWYgKCFzdGF0ZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGFrZW5EYXRlID0gdGFrZW5EYXRlID8gdGFrZW5EYXRlIDogbmV3IERhdGUoKTtcclxuXHJcblx0XHRjb25zdCBjb29sZG93blNlY29uZHMgPSB0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnNbY2FtcGFpZ25JZF0ubm9taW5hdGlvblNjaGVtZS5jb29sZG93blBlcmlvZC5hc1RpbWVJbnRlcnZhbFNlY29uZHMoKTtcclxuXHRcdHN0YXRlLm1hcmtDdXJyZW50U3VydmV5VGFrZW5PbkRhdGUodGFrZW5EYXRlLCBjb29sZG93blNlY29uZHMsIGlzU3VydmV5Q29tcGxldGUpO1xyXG5cclxuXHRcdHRoaXMuc2F2ZUN1cnJlbnRTdGF0ZSgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldENhbXBhaWduU3RhdGVzKCk6IElEaWN0aW9uYXJ5PElDYW1wYWlnblN0YXRlPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5jYW1wYWlnblN0YXRlcztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRDYW1wYWlnbkRlZmluaXRpb25zKCk6IElEaWN0aW9uYXJ5PElDYW1wYWlnbkRlZmluaXRpb24+IHtcclxuXHRcdHJldHVybiB0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0VXNlckZhY3RzKCk6IElVc2VyRmFjdFtdIHtcclxuXHRcdHJldHVybiB0aGlzLnVzZXJGYWN0cztcclxuXHR9XHJcblxyXG5cdC8vIHJlZ2lvbiBJU3VydmV5Q2xpZW50IG1ldGhvZHNcclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIG9uU3VydmV5QWN0aXZhdGVkKHN1cnZleUluZm86IElTdXJ2ZXlJbmZvLCBpc1N1cnZleUNvbXBsZXRlOiBib29sZWFuKTogdm9pZCB7XHJcblx0XHRpZiAoIXN1cnZleUluZm8pIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMubW9kaWZ5Q2FtcGFpZ25TdXJ2ZXlUYWtlbkRhdGUoc3VydmV5SW5mby5nZXRCYWNrRW5kSWQoKSwgbmV3IERhdGUoKSwgaXNTdXJ2ZXlDb21wbGV0ZSk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgcmVmcmVzaFN1cnZleURlZmluaXRpb25zKGNoYW5uZWxUeXBlcz86IEdvdmVybmVkQ2hhbm5lbFR5cGVbXSwgZGF0ZT86IERhdGUpOiB2b2lkIHtcclxuXHRcdHRoaXMucmVmcmVzaFN1cnZleURlZmluaXRpb25zUHJpdmF0ZShjaGFubmVsVHlwZXMsIChkYXRlID8gZGF0ZSA6IG5ldyBEYXRlKCkpKTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyByZWZyZXNoU3VydmV5RGVmaW5pdGlvbnNBc3luYyhjaGFubmVsVHlwZXM/OiBHb3Zlcm5lZENoYW5uZWxUeXBlW10sIGRhdGU/OiBEYXRlKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHR0aGlzLnJlZnJlc2hTdXJ2ZXlEZWZpbml0aW9uc1ByaXZhdGVBc3luYyhjaGFubmVsVHlwZXMsIChkYXRlID8gZGF0ZSA6IG5ldyBEYXRlKCkpKS50aGVuKFxyXG5cdFx0XHRcdGZ1bmN0aW9uIG9uRnVsZmlsbGVkKCkge1xyXG5cdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCkuY2F0Y2goXHJcblx0XHRcdFx0ZnVuY3Rpb24gT25SZWplY3RlZChlcnJSZWFzb24pIHtcclxuXHRcdFx0XHRcdHJlamVjdChlcnJSZWFzb24pO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRBcHBTdXJ2ZXlzKCk6IHsgW2lkOiBzdHJpbmddOiBJU3VydmV5IH0ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ2V0QWN0aXZlU3VydmV5cygpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHNhdmVDdXJyZW50U3RhdGUoKTogdm9pZCB7XHJcblx0XHQvLyBTb3J0IGJ5IGNhbXBhaWduSWQsIGFzY2VuZGluZyBmb3IgdW5pZm9ybWl0eVxyXG5cdFx0Y29uc3Qgc3RhdGVzOiBJQ2FtcGFpZ25TdGF0ZVtdID0gVXRpbHMubWFrZUFycmF5RnJvbU9iamVjdFZhbHVlc1NvcnRlZEJ5S2V5U3RyaW5nKHRoaXMuY2FtcGFpZ25TdGF0ZXMpO1xyXG5cclxuXHRcdHRoaXMuc3RhdGVQcm92aWRlci5zYXZlKHN0YXRlcyk7XHJcblx0fVxyXG5cclxuXHQvLyBlbmRyZWdpb25cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoU3VydmV5RGVmaW5pdGlvbnNQcml2YXRlKGNoYW5uZWxUeXBlczogR292ZXJuZWRDaGFubmVsVHlwZVtdLCBkYXRlOiBEYXRlKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5uZWVkUmVmcmVzaFN1cnZleURlZmluaXRpb25zKCkpIHtcclxuXHRcdFx0dGhpcy5sYXN0Q2FtcGFpZ25SZWZyZXNoVGltZSA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdHRoaXMuY2FtcGFpZ25EZWZpbml0aW9ucyA9IHt9O1xyXG5cdFx0XHR0aGlzLnVzZXJGYWN0cyA9IFtdO1xyXG5cclxuXHRcdFx0dGhpcy5sb2FkRmlsdGVyQ2FtcGFpZ25zKGRhdGUsIGNoYW5uZWxUeXBlcyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLkZpbHRlckNhbXBhaWduc09uUmVzdGFydChkYXRlLCBjaGFubmVsVHlwZXMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuY2FtcGFpZ25TdGF0ZXMgPSB7fTtcclxuXHRcdHRoaXMuTG9hZEZpbHRlckNhbXBhaWduU3RhdGVzKGRhdGUpO1xyXG5cdFx0dGhpcy5ldmFsdWF0ZUNhbXBhaWducyhkYXRlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcmVmcmVzaFN1cnZleURlZmluaXRpb25zUHJpdmF0ZUFzeW5jKGNoYW5uZWxUeXBlczogR292ZXJuZWRDaGFubmVsVHlwZVtdLCBkYXRlOiBEYXRlKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHR0aGlzLmNhbXBhaWduU3RhdGVzID0ge307XHJcblx0XHR0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMgPSB7fTtcclxuXHRcdHRoaXMudXNlckZhY3RzID0gW107XHJcblx0XHR0aGlzLmxhc3RDYW1wYWlnblJlZnJlc2hUaW1lID0gdGhpcy5sYXN0Q2FtcGFpZ25SZWZyZXNoVGltZSA/PyBuZXcgRGF0ZSgpO1xyXG5cclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdHRoaXMubG9hZEFuZEZpbHRlckNhbXBhaWduRGF0YUFzeW5jKGRhdGUsIGNoYW5uZWxUeXBlcykudGhlbihcclxuXHRcdFx0XHQoKSA9PiB7XHJcblx0XHRcdFx0XHR0aGlzLmV2YWx1YXRlQ2FtcGFpZ25zKGRhdGUpO1xyXG5cdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCkuY2F0Y2goXHJcblx0XHRcdFx0ZnVuY3Rpb24gT25SZWplY3RlZChlcnJSZWFzb24pIHtcclxuXHRcdFx0XHRcdHJlamVjdChlcnJSZWFzb24pO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvYWQgYW5kIGZpbHRlciB0aGUgY2FtcGFpZ25zIGRlZmluaXRpb25zIGFuZCBzdGF0ZXNcclxuXHQgKi9cclxuXHRwcml2YXRlIGxvYWRBbmRGaWx0ZXJDYW1wYWlnbkRhdGFBc3luYyhjdXJyZW50RGF0ZTogRGF0ZSwgY2hhbm5lbFR5cGVzOiBHb3Zlcm5lZENoYW5uZWxUeXBlW10pOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgPyBjdXJyZW50RGF0ZSA6IG5ldyBEYXRlKCk7XHJcblx0XHRsZXQgbG9hZGVkRGVmaW5pdGlvbnM6IElDYW1wYWlnbkRlZmluaXRpb25bXSA9IFtdO1xyXG5cdFx0Y29uc3QgcHJvbWlzZXMgPSBbXTtcclxuXHJcblx0XHRjb25zdCB1c2VyRmFjdHNQcm9taXNlID0gdGhpcy51c2VyRmFjdHNQcm92aWRlciAmJiB0aGlzLnVzZXJGYWN0c1Byb3ZpZGVyLmxvYWRBc3luYygpIGFzIFByb21pc2U8SVVzZXJGYWN0W10+O1xyXG5cclxuXHRcdGZvciAoY29uc3QgaSBvZiBPYmplY3Qua2V5cyh0aGlzLmRlZmluaXRpb25Qcm92aWRlcnMpKSB7XHJcblx0XHRcdGNvbnN0IHByb3ZpZGVyID0gdGhpcy5kZWZpbml0aW9uUHJvdmlkZXJzW2ldO1xyXG5cdFx0XHRsZXQgcHJvbWlzZTogYW55ID0gcHJvdmlkZXIgJiYgcHJvdmlkZXIubG9hZEFzeW5jKCk7XHJcblx0XHRcdGlmICghaXNOT1UocHJvbWlzZSkpIHtcclxuXHRcdFx0XHQvLyBQcm9taXNlLmFsbCBmYWlscyBldmVuIGlmIG9uZSBwcm9taXNlIGZhaWxzLlxyXG5cdFx0XHRcdC8vIFdlIHdhbnQgdG8gaWdub3JlIHRoZSBwcm9taXNlIHRoYXQgZmFpbGVkIGFuZCBjb250aW51ZSB3aXRoIHRoZSBvbmVzXHJcblx0XHRcdFx0Ly8gdGhvc2UgYXJlIHN1Y2Nlc2Z1bCwgaGVuY2Ugb3ZlcnJpZGluZyB0aGUgY2F0Y2ggdG8gYWx3YXlzIHJlc29sdmUuXHJcblx0XHRcdFx0Ly8gcmVzcG9uc2liaWxpdHkgb2YgbG9nZ2luZyBmYWlsdXJlcyBzaG91bGQgYmUgd2l0aCB0aGUgcHJvdmlkZXIuXHJcblx0XHRcdFx0cHJvbWlzZSA9IHByb21pc2UuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19DYW1wYWlnbkxvYWRfRmFpbGVkKFwiRmFpbGVkIHRvIGxvYWQgZnJvbSBjYW1wYWlnbiBkZWZpbml0aW9uIHByb3ZpZGVyXCIpO1xyXG5cdFx0XHRcdFx0UHJvbWlzZS5yZXNvbHZlKCk7XHJcblx0XHRcdFx0fSk7XHJcblxyXG5cdFx0XHRcdHByb21pc2VzLnB1c2gocHJvbWlzZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigodmFsdWVzKSA9PiB7XHJcblx0XHRcdFx0XHRmb3IgKGNvbnN0IGkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBjYW1wYWlnbkRlZmluaXRpb25zID0gdmFsdWVzW2ldO1xyXG5cdFx0XHRcdFx0XHRpZiAoaXNBcnJheShjYW1wYWlnbkRlZmluaXRpb25zKSkge1xyXG5cdFx0XHRcdFx0XHRcdC8vIElmIHRoZXJlIGFyZSBjYW1wYWlnbiBkZWZpbnRpb25zIHdpdGggZHVwbGljYXRlIGNhbXBhaWduIElkJ3NcclxuXHRcdFx0XHRcdFx0XHQvLyBGbG9vZGdhdGUgd2lsbCBsb2FkIHRoZSBsYXN0IG9uZSBpdCBmb3VuZC4gRmlsdGVyQ2FtcGFpZ25EYXRhIGRvZXMgdGhpcyBmaWx0ZXJhdGlvblxyXG5cdFx0XHRcdFx0XHRcdGxvYWRlZERlZmluaXRpb25zID0gbG9hZGVkRGVmaW5pdGlvbnMuY29uY2F0KGNhbXBhaWduRGVmaW5pdGlvbnMpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5sb2dJbml0aWFsTG9hZENhbXBhaWducyhsb2FkZWREZWZpbml0aW9ucywgXCJsb2FkQXN5bmNcIiwgdGhpcy5jYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnPy5jYW1wYWlnbkluaXRpYWxMb2FkU2FtcGxpbmdSYXRlKTtcclxuXHJcblx0XHRcdFx0XHRjb25zdCBzZXRVc2VyRmFjdHMgPSAodXNlckZhY3RzPzogSVVzZXJGYWN0W10pID0+IHtcclxuXHRcdFx0XHRcdFx0dGhpcy51c2VyRmFjdHMgPSB1c2VyRmFjdHMgfHwgW107XHJcblx0XHRcdFx0XHRcdHRoaXMuRmlsdGVyQ2FtcGFpZ25EYXRhKGN1cnJlbnREYXRlLCBjaGFubmVsVHlwZXMsIGxvYWRlZERlZmluaXRpb25zKTtcclxuXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHRcdFx0fTtcclxuXHJcblx0XHRcdFx0XHQvLyBCZWZvcmUgZmlsdGVyaW5nIGFuZCBldmFsdWF0aW5nIHRoZSBjYW1wYWlnbiBkZWZpbml0aW9ucyxcclxuXHRcdFx0XHRcdC8vIHdhaXQgdW50aWwgdGhlIHVzZXIgZmFjdHMgYXJlIGxvYWRlZCBhcyB0aGV5IHdpbGwgYmUgdXNlZCBpbiBldmFsdWF0aW5nIGNhbXBhaWduIHNjb3Blc1xyXG5cdFx0XHRcdFx0aWYgKCFpc05PVSh1c2VyRmFjdHNQcm9taXNlKSkge1xyXG5cdFx0XHRcdFx0XHR1c2VyRmFjdHNQcm9taXNlLnRoZW4oKHVzZXJGYWN0czogSVVzZXJGYWN0W10pID0+IHtcclxuXHRcdFx0XHRcdFx0XHRzZXRVc2VyRmFjdHModXNlckZhY3RzKTtcclxuXHRcdFx0XHRcdFx0fSkuY2F0Y2goKCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdC8vIHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBhcyB1c2VyIGZhY3RzIHByb21pc2Ugd2lsbCBhbHdheXMgYmUgcmVzb2x2ZWQgYnkgdGhlIHVzZXIgZmFjdHMgcHJvdmlkZXJcclxuXHRcdFx0XHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKClcclxuXHRcdFx0XHRcdFx0XHQubG9nX0Vycm9yKFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZS5Vc2VyRmFjdHNMb2FkLkZhaWxlZCwgXCJGYWlsZWQgdG8gbG9hZCBmcm9tIHVzZXIgZmFjdHMgcHJvdmlkZXJcIik7XHJcblx0XHRcdFx0XHRcdFx0c2V0VXNlckZhY3RzKCk7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0c2V0VXNlckZhY3RzKCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSxcclxuXHRcdFx0KS5jYXRjaChcclxuXHRcdFx0XHRmdW5jdGlvbiBPblJlamVjdGVkKGVycm9yKSB7XHJcblx0XHRcdFx0XHQvLyB0aGlzIHNob3VsZCBuZXZlciBoYXBwZW4gYXMgUHJvbWlzZS5hbGwgd2lsbCBhbHdheXMgYmUgcmVzb2x2ZWRcclxuXHRcdFx0XHRcdC8vIGJlY2F1c2Ugb2YgaGFjayBhdCB0aGUgdG9wIG9mIHRoZSBmdW5jdGlvbi5cclxuXHRcdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfQ2FtcGFpZ25Mb2FkX0ZhaWxlZChcIkZhaWxlZCB0byBsb2FkIGZyb20gY2FtcGFpZ24gZGVmaW5pdGlvbiBwcm92aWRlclwiKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHQpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgbG9nIGEganNvbiBvZiBhbGwgdGhlIGRlZmluaXRpb25zIHJlY2VpdmVkIG9uIGluaXRpYWwgbG9hZC4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBsb2cgaXMgZm9yIHVzIHRvIGJlIGFibGUgdG8gZGV0ZWN0XHJcblx0Ly8gd2hhdCBjYW1wYWlnbnMgdXNlcnMgaW5pdGlhbGx5IHJlY2lldmVkIGFuZCB0cmFjZSB3aGljaCBjYW1wYWlnbnMgZnJvbSB0aGUgb3JpZ2luYWwgcG9vbCB3ZXJlIHN1Y2Nlc3NmdWxseSBub21pbmF0ZWQgLyBsYXVuY2hlZFxyXG5cdC8vIFRoZSBzYW1wbGluZyByYXRlIG9mIHRoaXMgbG9nIGlzIGRlcGVuZGVudCBvbiB3aGF0IHJhdGUgd2FzIHJlY2VpdmVkIGZyb20gdGhlIGNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWdcclxuXHQvLyBUaGlzIHRlbGVtZXRyeSBnZXRzIGxvZ2dlZCBvbmNlIHBlciBmbG9vZGdhdGUgc2Vzc2lvblxyXG5cdC8vIERlZmF1bHQgc2FtcGxpbmcgcmF0ZTogMTAlXHJcblx0cHJpdmF0ZSBsb2dJbml0aWFsTG9hZENhbXBhaWducyhsb2FkZWREZWZpbml0aW9uczogSUNhbXBhaWduRGVmaW5pdGlvbltdLCBsb2FkTWV0aG9kOiBzdHJpbmcsIGluaXRpYWxMb2FkU2FtcGxpbmdSYXRlID0gMC4xKXtcclxuXHRcdGlmIChpbml0aWFsTG9hZFNhbXBsaW5nUmF0ZSA+IDApIHtcclxuXHRcdFx0Y29uc3QgbG9nZ2VkRGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+W10gPSBbXTtcclxuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gbG9hZGVkRGVmaW5pdGlvbnMpIHtcclxuXHRcdFx0XHRjb25zdCBkZWZpbml0aW9uID0gbG9hZGVkRGVmaW5pdGlvbnNba2V5XTtcclxuXHRcdFx0XHRjb25zdCBwYXlsb2FkOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHtcclxuXHRcdFx0XHRcdGlkOiBkZWZpbml0aW9uLmNhbXBhaWduSWQsXHJcblx0XHRcdFx0XHRidXNpbmVzc0xldmVsOiBkZWZpbml0aW9uLmJ1c2luZXNzTGV2ZWwsXHJcblx0XHRcdFx0XHR0cmVhdG1lbnRUeXBlOiBkZWZpbml0aW9uLnRyZWF0bWVudFR5cGUsXHJcblx0XHRcdFx0XHRzY29wZTogZGVmaW5pdGlvbi5zY29wZSxcclxuXHRcdFx0XHRcdHRlbGVtZXRyeUV2ZW50TmFtZTogZGVmaW5pdGlvbj8uc3VydmV5VGVtcGxhdGU/Lm1ldGFkYXRhPy5jb250ZW50TWV0YWRhdGE/LltcInRlbGVtZXRyeUV2ZW50TmFtZVwiXSxcclxuXHRcdFx0XHRcdHVzZXJIb3N0OiB0aGlzLmVudmlyb25tZW50UHJvdmlkZXIsXHJcblx0XHRcdFx0XHRnb3Zlcm5lZENoYW5uZWxUeXBlOiBkZWZpbml0aW9uLmdvdmVybmVkQ2hhbm5lbFR5cGUsXHJcblx0XHRcdFx0XHRsb2FkTWV0aG9kOiBsb2FkTWV0aG9kLFxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsb2dnZWREZWZpbml0aW9ucy5wdXNoKHBheWxvYWQpO1xyXG5cdFx0XHR9XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLkluaXRpYWxMb2FkZWREZWZpbml0aW9ucywgXHJcblx0XHRcdFx0eyBNZXNzYWdlOiBKU09OLnN0cmluZ2lmeShsb2dnZWREZWZpbml0aW9ucykgfSxcclxuXHRcdFx0XHRpbml0aWFsTG9hZFNhbXBsaW5nUmF0ZSlcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZEZpbHRlckNhbXBhaWducyhjdXJyZW50RGF0ZTogRGF0ZSwgY2hhbm5lbFR5cGVzOiBHb3Zlcm5lZENoYW5uZWxUeXBlW10pOiB2b2lkIHtcclxuXHRcdGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgPyBjdXJyZW50RGF0ZSA6IG5ldyBEYXRlKCk7XHJcblx0XHRsZXQgbG9hZGVkRGVmaW5pdGlvbnM6IElDYW1wYWlnbkRlZmluaXRpb25bXSA9IFtdO1xyXG5cclxuXHRcdGZvciAoY29uc3QgaW5kZXggb2YgT2JqZWN0LmtleXModGhpcy5kZWZpbml0aW9uUHJvdmlkZXJzKSkge1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGNvbnN0IGRlZmluaXRpb25zID0gdGhpcy5kZWZpbml0aW9uUHJvdmlkZXJzW2luZGV4XSAmJiB0aGlzLmRlZmluaXRpb25Qcm92aWRlcnNbaW5kZXhdLmxvYWQoKTtcclxuXHRcdFx0XHRpZiAoaXNBcnJheShkZWZpbml0aW9ucykpIHtcclxuXHRcdFx0XHRcdC8vIElmIHRoZXJlIGFyZSBjYW1wYWlnbiBkZWZpbnRpb25zIHdpdGggZHVwbGljYXRlIGNhbXBhaWduIElkJ3NcclxuXHRcdFx0XHRcdC8vIEZsb29kZ2F0ZSB3aWxsIGxvYWQgdGhlIGxhc3Qgb25lIGl0IGZvdW5kLiBGaWx0ZXJDYW1wYWlnbkRhdGEgZG9lcyB0aGlzIGZpbHRlcmF0aW9uXHJcblx0XHRcdFx0XHRsb2FkZWREZWZpbml0aW9ucyA9IGxvYWRlZERlZmluaXRpb25zLmNvbmNhdChkZWZpbml0aW9ucyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRcdC8vIExvZyBlcnJvciwgYnV0IGNvbnRpbnVlIHdpdGggb3RoZXIgcHJvdmlkZXJzXHJcblx0XHRcdFx0Ly8gSXQgc2hvdWxkIGJlIHRoZSByZXNwb25zaWJpbGl0eSBvZiBwcm92aWRlciB0byBsb2cgZGV0YWlsZWQgZXJyb3JzXHJcblx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19DYW1wYWlnbkxvYWRfRmFpbGVkKFwiRmFpbGVkIHRvIGxvYWQgZnJvbSBjYW1wYWlnbiBkZWZpbml0aW9uIHByb3ZpZGVyLiBcIiArIGVycm9yLnRvU3RyaW5nKCkpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5sb2dJbml0aWFsTG9hZENhbXBhaWducyhsb2FkZWREZWZpbml0aW9ucywgXCJsb2FkXCIsIHRoaXMuY2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZz8uY2FtcGFpZ25Jbml0aWFsTG9hZFNhbXBsaW5nUmF0ZSk7XHJcblxyXG5cdFx0Ly8gTG9hZCB0aGUgdXNlciBmYWN0cyBiZWZvcmUgYWxsIHRoZSBjYW1wYWlnbiBkZWZpbml0aW9ucyBhcmUgZXZhbHVhdGVkXHJcblx0XHR0cnkge1xyXG5cdFx0XHR0aGlzLnVzZXJGYWN0cyA9ICh0aGlzLnVzZXJGYWN0c1Byb3ZpZGVyICYmIHRoaXMudXNlckZhY3RzUHJvdmlkZXIubG9hZCgpKSB8fCBbXTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c0xvYWQuRmFpbGVkLCBcIkZhaWxlZCB0byBsb2FkIGZyb20gdXNlciBmYWN0cyBwcm92aWRlci4gXCIgKyBlcnJvcik7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gYXJyYXkgdGhhdCB3aWxsIGJlIHBhc3NlZCB0byBMUFAgc2NvcmVjYXJkIGNhbGxiYWNrXHJcblx0XHRjb25zdCB0cmlnZ2VyRGV0YWlscyA9IG5ldyBBcnJheTxJVHJpZ2dlckV2ZW50RGV0YWlscz4oKTtcclxuXHJcblx0XHQvLyBhcnJheSB0aGF0IGxpc3RzIGNhbXBhaWduIGlkcyB3aGljaCBwYXNzZWQgZ292ZXJuZWQgY2hhbm5lbCB0eXBlIC8gYnVzaW5lc3MgbGV2ZWwgY2hlY2tzXHJcblx0XHRjb25zdCBjaGFubmVsQ2xlYXJlZCA9IG5ldyBBcnJheTxzdHJpbmc+KClcclxuXHJcblx0XHQvLyBhcnJheSB0aGF0IGxpc3RzIGNhbXBhaWduIGlkcyB0aGF0IGFyZSBpbiBzY29wZSBcclxuXHRcdGNvbnN0IGluU2NvcGUgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuXHRcdC8vIGFycmF5IHRoYXQgbGlzdHMgY2FtcGFpZ24gaWRzIHRoYXQgYXJlIG5vdCBjb250cm9sIGNhbXBhaWducyAoYWRkZWQgdG8gYWN0aXZpdHlMaXN0ZW5lcilcclxuXHRcdGNvbnN0IG5vbWluYXRlZCA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG5cdFx0Ly8gTG9hZCBmaWx0ZXJlZCBjYW1wYWlnbiBkZWZpbml0aW9uc1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gbG9hZGVkRGVmaW5pdGlvbnMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChsb2FkZWREZWZpbml0aW9ucywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IGRlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24gPSBsb2FkZWREZWZpbml0aW9uc1trZXldO1xyXG5cclxuXHRcdFx0XHQvLyB0aGlzIG5lZWRzIHRvIGJlIGRvbmUgaGVyZSBiZWZvcmUgYWRkaW5nIHRvIGNhbXBhaWduRGVmaW5pdGlvbnMgaW4gY2FzZSB0aGVyZSBhcmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgd2l0aCBkaWZmZXJlbnQgbGFuZ3VhZ2Ugc2NvcGVzXHJcblx0XHRcdFx0aWYgKCFDYW1wYWlnbk1hbmFnZXIuaXNDYW1wYWlnbkluU2NvcGUoZGVmaW5pdGlvbiwgY3VycmVudERhdGUsIHRoaXMuZW52aXJvbm1lbnRQcm92aWRlciwgdGhpcy51c2VyRmFjdHNQcm92aWRlcikpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpblNjb3BlLnB1c2goZGVmaW5pdGlvbi5jYW1wYWlnbklkKTtcclxuXHJcblx0XHRcdFx0Ly8gZmlsdGVyaW5nIGZvciBjYW1wYWlnbiB0cmlnZ2VyIGxvZ2dpbmdcclxuXHRcdFx0XHRpZiAoZGVmaW5pdGlvbi50cmVhdG1lbnRUeXBlICE9PSBUcmVhdG1lbnRUeXBlLm5vbmUpIHtcclxuXHRcdFx0XHRcdC8vIGNhbXBhaWduIHRyaWdnZXIgaW5mbyBmb3Igc2NvcmVjYXJkc1xyXG5cdFx0XHRcdFx0Y29uc3QgdHJpZ2dlckRldGFpbCA9IHRoaXMuUmV0cmlldmVUcmlnZ2VyRXZlbnREZXRhaWwoZGVmaW5pdGlvbik7XHJcblx0XHRcdFx0XHRpZighaXNOT1UodHJpZ2dlckRldGFpbCkpe1xyXG5cdFx0XHRcdFx0XHR0cmlnZ2VyRGV0YWlscy5wdXNoKHRyaWdnZXJEZXRhaWwpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKGNoYW5uZWxUeXBlcyAmJlxyXG5cdFx0XHRcdFx0KGNoYW5uZWxUeXBlcy5pbmRleE9mKGRlZmluaXRpb24uZ292ZXJuZWRDaGFubmVsVHlwZSkgPCAwKSAmJlxyXG5cdFx0XHRcdFx0KGRlZmluaXRpb24uYnVzaW5lc3NMZXZlbCAhPT0gQnVzaW5lc3NMZXZlbC5Dcml0aWNhbCkpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjaGFubmVsQ2xlYXJlZC5wdXNoKGRlZmluaXRpb24uY2FtcGFpZ25JZCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gdG8gcmVtb3ZlIGNvbnRyb2wgY2FtcGFpZ25zIGZyb20gYWN0aXZpdHlMaXN0ZW5lciBsaXN0IFxyXG5cdFx0XHRcdGlmIChkZWZpbml0aW9uLnRyZWF0bWVudFR5cGUgPT09IFRyZWF0bWVudFR5cGUuQ29udHJvbCkge1xyXG5cdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC8vIGxvZyB0aGUgZGVmaW5pdGlvbnMgd2hpY2ggYXJlIG5vbWluYXRlZFxyXG5cdFx0XHRcdG5vbWluYXRlZC5wdXNoKGRlZmluaXRpb24uY2FtcGFpZ25JZCk7XHJcblx0XHRcdFx0Ly8gT3ZlcndyaXRlIHRoZSBjYW1wYWlnbiBkZWZpbml0aW9uIGlmIGl0IGFscmVhZHkgZXhpc3RzIHdpdGggdGhlIGxhdGVzdCBvbmUuXHJcblx0XHRcdFx0dGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2RlZmluaXRpb24uY2FtcGFpZ25JZF0gPSBkZWZpbml0aW9uO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gaWYgc2FtcGxpbmcgaXMgb24gZm9yIGdvdmVybmFuY2UgY2hlY2sgdGVsZW1ldHJ5LCBsb2cgdGVsZW1ldHJ5XHJcblx0XHR0aGlzLkdvdmVybmFuY2VDaGVja1RlbGVtZXRyeShjaGFubmVsQ2xlYXJlZCwgaW5TY29wZSwgbm9taW5hdGVkLCB0aGlzLmNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWc/LnBhc3NlZENhbXBhaWduR292ZXJuYW5jZVNhbXBsaW5nUmF0ZSk7XHJcblxyXG5cdFx0Ly8gY2FsbCBuZXcgc2NvcmVjYXJkIHRyaWdnZXIgY2FsbGJhY2sgb25seSBpZiBmZWF0dXJlIGdhdGUgaXMgb24gYW5kIHRoZXJlIGFyZSBjYW1wYWlnbiBkZWZpbml0aW9ucyBhdmFpbGFibGVcclxuXHRcdGlmICh0cmlnZ2VyRGV0YWlscy5sZW5ndGggPiAwKSB7XHJcblx0XHRcdFx0dGhpcy5Mb2dFeHBlcmltZW50VHJpZ2dlcih0cmlnZ2VyRGV0YWlscyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIFJldHJpZXZlVHJpZ2dlckV2ZW50RGV0YWlsKGRlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24pOiBJVHJpZ2dlckV2ZW50RGV0YWlsc3tcclxuXHRcdHRyeSB7IFxyXG5cdFx0XHRjb25zdCBldmVudEluZm86IElFdmVudEluZm8gPSB7XHJcblx0XHRcdFx0aWQ6IGRlZmluaXRpb24uY2FtcGFpZ25JZCxcclxuXHRcdFx0XHR0ZWxlbWV0cnlFdmVudE5hbWU6IGRlZmluaXRpb24/LnN1cnZleVRlbXBsYXRlPy5tZXRhZGF0YT8uY29udGVudE1ldGFkYXRhPy5bXCJ0ZWxlbWV0cnlFdmVudE5hbWVcIl0sXHJcblx0XHRcdFx0dHJlYXRtZW50VHlwZTogaXNOT1UoZGVmaW5pdGlvbi50cmVhdG1lbnRUeXBlKSA/IFRyZWF0bWVudFR5cGUubm9uZSA6IGRlZmluaXRpb24udHJlYXRtZW50VHlwZVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCB0cmlnZ2VyRGV0YWlsOiBJVHJpZ2dlckV2ZW50RGV0YWlscyA9IHtcclxuXHRcdFx0XHR0cmlnZ2VyRXZlbnQ6IGV2ZW50SW5mby50ZWxlbWV0cnlFdmVudE5hbWUsXHJcblx0XHRcdFx0ZXZlbnRJbmZvOiBldmVudEluZm9cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ly8gcmV0dXJuIGluZm8gbmVlZGVkIGZvciBzY29yZWNhcmRzIGZvciB0aGlzIGNhbXBhaWduIHRvIHRoZSBsaXN0IHRvIHRoZSBhcnJheVxyXG5cdFx0XHRyZXR1cm4gdHJpZ2dlckRldGFpbDsgXHJcblx0XHR9Y2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuQ2FtcGFpZ25Hb3Zlcm5hbmNlLlJldHJpZXZlVHJpZ2dlckV2ZW50RGV0YWlsLkZhaWxlZCwgXCJGYWlsZWQgdG8gYWRkIHRyaWdnZXIgZXZlbnQgZGV0YWlsIFwiICsgZXJyb3IpO1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIGNyZWF0aW5nIGEganNvbiBvYmplY3QgdG8gbG9nIGNhbXBhaWducyB3aGljaCBwYXNzZWQgdmFyaW91cyBnb3Zlcm5hbmNlIGNoZWNrcywgbG9ncyBvbmNlIHBlciBmbG9vZGdhdGUgc2Vzc2lvblxyXG5cdC8vIERlZmF1bHQgc2FtcGxpbmcgcmF0ZTogMTAlXHJcblx0cHJpdmF0ZSBHb3Zlcm5hbmNlQ2hlY2tUZWxlbWV0cnkoY2hhbm5lbENsZWFyZWQ6IHN0cmluZ1tdLCBpblNjb3BlOiBzdHJpbmdbXSwgbm9taW5hdGVkOiBzdHJpbmdbXSwgc2FtcGxpbmdSYXRlID0gMC4xKVxyXG5cdFx0OiB2b2lkIHtcclxuXHRcdGlmIChzYW1wbGluZ1JhdGUgPiAwKSB7XHJcblx0XHRcdGNvbnN0IHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xyXG5cdFx0XHRcdGNoYW5uZWxDbGVhcmVkOiBjaGFubmVsQ2xlYXJlZC5sZW5ndGggPiAwID8gY2hhbm5lbENsZWFyZWQgOiB1bmRlZmluZWQsXHJcblx0XHRcdFx0aW5TY29wZTogaW5TY29wZS5sZW5ndGggPiAwID8gaW5TY29wZSA6IHVuZGVmaW5lZCxcclxuXHRcdFx0XHRub21pbmF0ZWQ6IG5vbWluYXRlZC5sZW5ndGggPiAwID8gbm9taW5hdGVkIDogdW5kZWZpbmVkLFxyXG5cdFx0XHR9XHJcblx0XHRcdGlmKE9iamVjdC52YWx1ZXMocGF5bG9hZCkuc29tZSh2ID0+IHYgIT0gdW5kZWZpbmVkKSkgIHtcclxuXHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkNhbXBhaWduR292ZXJuYW5jZS5Ob21pbmF0aW9uQ2hlY2tDYW1wYWlnbnMsXHJcblx0XHRcdFx0XHR7IE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHBheWxvYWQpIH0sIHNhbXBsaW5nUmF0ZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvYWQgYW5kIGZpbHRlciB0aGUgY2FtcGFpZ25zIGRlZmluaXRpb25zIGFuZCBzdGF0ZXNcclxuXHQgKi9cclxuXHRwcml2YXRlIEZpbHRlckNhbXBhaWduRGF0YShjdXJyZW50RGF0ZTogRGF0ZSwgY2hhbm5lbFR5cGVzOiBHb3Zlcm5lZENoYW5uZWxUeXBlW10sIGxvYWRlZERlZmluaXRpb25zOiBJQ2FtcGFpZ25EZWZpbml0aW9uW10pOiB2b2lkIHtcclxuXHRcdGNvbnN0IGxvYWRlZERlZmluaXRpb25zTWFwOiBJRGljdGlvbmFyeTxJQ2FtcGFpZ25EZWZpbml0aW9uPiA9IHt9O1xyXG5cdFx0Y29uc3QgdHJpZ2dlckRldGFpbHMgPSBuZXcgQXJyYXk8SVRyaWdnZXJFdmVudERldGFpbHM+KCk7XHJcblx0XHRcclxuXHRcdC8vIGFycmF5IHRoYXQgbGlzdHMgY2FtcGFpZ24gaWRzIHdoaWNoIHBhc3NlZCBnb3Zlcm5lZCBjaGFubmVsIHR5cGUgLyBidXNpbmVzcyBsZXZlbCBjaGVja3NcclxuXHRcdGNvbnN0IGNoYW5uZWxDbGVhcmVkID0gbmV3IEFycmF5PHN0cmluZz4oKVxyXG5cclxuXHRcdC8vIGFycmF5IHRoYXQgbGlzdHMgY2FtcGFpZ24gaWRzIHRoYXQgYXJlIGluIHNjb3BlIFxyXG5cdFx0Y29uc3QgaW5TY29wZSA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG5cdFx0Ly8gYXJyYXkgdGhhdCBsaXN0cyBjYW1wYWlnbiBpZHMgdGhhdCBhcmUgbm90IGNvbnRyb2wgY2FtcGFpZ25zIChhZGRlZCB0byBhY3Rpdml0eUxpc3RlbmVyKVxyXG5cdFx0Y29uc3Qgbm9taW5hdGVkID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHRcdC8vIExvYWQgZmlsdGVyZWQgY2FtcGFpZ24gZGVmaW5pdGlvbnNcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGxvYWRlZERlZmluaXRpb25zKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobG9hZGVkRGVmaW5pdGlvbnMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uID0gbG9hZGVkRGVmaW5pdGlvbnNba2V5XTtcclxuXHJcblx0XHRcdFx0bG9hZGVkRGVmaW5pdGlvbnNNYXBbZGVmaW5pdGlvbi5jYW1wYWlnbklkXSA9IGRlZmluaXRpb247XHJcblx0XHJcblx0XHRcdFx0Ly8gdGhpcyBuZWVkcyB0byBiZSBkb25lIGhlcmUgYmVmb3JlIGFkZGluZyB0byBjYW1wYWlnbkRlZmluaXRpb25zIGluIGNhc2UgdGhlcmUgYXJlIG11bHRpcGxlIGRlZmluaXRpb25zIHdpdGggZGlmZmVyZW50IGxhbmd1YWdlIHNjb3Blc1xyXG5cdFx0XHRcdGlmICghQ2FtcGFpZ25NYW5hZ2VyLmlzQ2FtcGFpZ25JblNjb3BlKGRlZmluaXRpb24sIGN1cnJlbnREYXRlLCB0aGlzLmVudmlyb25tZW50UHJvdmlkZXIsIHRoaXMudXNlckZhY3RzUHJvdmlkZXIpKSB7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aW5TY29wZS5wdXNoKGRlZmluaXRpb24uY2FtcGFpZ25JZCk7XHJcblxyXG5cdFx0XHRcdC8vIGZpbHRlcmluZyBmb3IgY2FtcGFpZ24gdHJpZ2dlciBsb2dnaW5nXHJcblx0XHRcdFx0aWYgKGRlZmluaXRpb24udHJlYXRtZW50VHlwZSAhPT0gVHJlYXRtZW50VHlwZS5ub25lKSB7XHJcblx0XHRcdFx0XHQvLyBjYW1wYWlnbiB0cmlnZ2VyIGluZm8gZm9yIHNjb3JlY2FyZHNcclxuXHRcdFx0XHRcdGNvbnN0IHRyaWdnZXJEZXRhaWwgPSB0aGlzLlJldHJpZXZlVHJpZ2dlckV2ZW50RGV0YWlsKGRlZmluaXRpb24pO1xyXG5cdFx0XHRcdFx0aWYoIWlzTk9VKHRyaWdnZXJEZXRhaWwpKXtcclxuXHRcdFx0XHRcdFx0dHJpZ2dlckRldGFpbHMucHVzaCh0cmlnZ2VyRGV0YWlsKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKGNoYW5uZWxUeXBlcyAmJlxyXG5cdFx0XHRcdFx0KGNoYW5uZWxUeXBlcy5pbmRleE9mKGRlZmluaXRpb24uZ292ZXJuZWRDaGFubmVsVHlwZSkgPCAwKSAmJlxyXG5cdFx0XHRcdFx0KGRlZmluaXRpb24uYnVzaW5lc3NMZXZlbCAhPT0gQnVzaW5lc3NMZXZlbC5Dcml0aWNhbCkpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjaGFubmVsQ2xlYXJlZC5wdXNoKGRlZmluaXRpb24uY2FtcGFpZ25JZCk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ly8gdG8gcmVtb3ZlIGNvbnRyb2wgY2FtcGFpZ25zIGZyb20gYWN0aXZpdHlMaXN0ZW5lciBsaXN0IFxyXG5cdFx0XHRcdGlmIChkZWZpbml0aW9uLnRyZWF0bWVudFR5cGUgPT09IFRyZWF0bWVudFR5cGUuQ29udHJvbCkge1xyXG5cdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBsb2cgdGhlIGRlZmluaXRpb25zIHdoaWNoIGFyZSBub21pbmF0ZWRcclxuXHRcdFx0XHRub21pbmF0ZWQucHVzaChkZWZpbml0aW9uLmNhbXBhaWduSWQpO1xyXG5cdFx0XHRcdC8vIE92ZXJ3cml0ZSB0aGUgY2FtcGFpZ24gZGVmaW5pdGlvbiBpZiBpdCBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoZSBsYXRlc3Qgb25lLlxyXG5cdFx0XHRcdHRoaXMuY2FtcGFpZ25EZWZpbml0aW9uc1tkZWZpbml0aW9uLmNhbXBhaWduSWRdID0gZGVmaW5pdGlvbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGlmIHNhbXBsaW5nIGlzIG9uIGZvciBnb3Zlcm5hbmNlIGNoZWNrIHRlbGVtZXRyeSwgbG9nIHRlbGVtZXRyeVxyXG5cdFx0dGhpcy5Hb3Zlcm5hbmNlQ2hlY2tUZWxlbWV0cnkoY2hhbm5lbENsZWFyZWQsIGluU2NvcGUsIG5vbWluYXRlZCwgdGhpcy5jYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnPy5wYXNzZWRDYW1wYWlnbkdvdmVybmFuY2VTYW1wbGluZ1JhdGUpO1xyXG5cclxuXHRcdC8vIGNhbGwgbmV3IHNjb3JlY2FyZCB0cmlnZ2VyIGNhbGxiYWNrIG9ubHkgaWYgZmVhdHVyZSBnYXRlIGlzIG9uIGFuZCB0aGVyZSBhcmUgY2FtcGFpZ24gZGVmaW5pdGlvbnMgYXZhaWxhYmxlXHJcblx0XHRpZiAodHJpZ2dlckRldGFpbHMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRcdHRoaXMuTG9nRXhwZXJpbWVudFRyaWdnZXIodHJpZ2dlckRldGFpbHMpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIExvYWQgY2FtcGFpZ24gc3RhdGUsIGZpbHRlcmluZyBvdXQgdGhlIGV4cGlyZWQgZGVmaW5pdGlvbnNcclxuXHRcdGNvbnN0IGxvYWRlZFN0YXRlczogSUNhbXBhaWduU3RhdGVbXSA9IHRoaXMuc3RhdGVQcm92aWRlci5sb2FkKCk7XHJcblx0XHRjb25zdCBzdGFsZUxvYWRlZFN0YXRlczogSUNhbXBhaWduU3RhdGVbXSA9IFtdO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIGxvYWRlZFN0YXRlcykge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGxvYWRlZFN0YXRlcywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IHN0YXRlOiBJQ2FtcGFpZ25TdGF0ZSA9IGxvYWRlZFN0YXRlc1trZXldO1xyXG5cclxuXHRcdFx0XHRpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMsIHN0YXRlLkNhbXBhaWduSWQpKSB7XHJcblx0XHRcdFx0XHRzdGFsZUxvYWRlZFN0YXRlcy5wdXNoKHN0YXRlKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHRoaXMuY2FtcGFpZ25TdGF0ZXNbc3RhdGUuQ2FtcGFpZ25JZF0gPSBzdGF0ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8qXHJcblx0XHRcdCogU3RhbGUgU3RhdGUgZGF0YSBjbGVhbnVwXHJcblx0XHRcdCogU3RhdGUgbmVlZHMgdG8gYmUgY2xlYW5lZCB1cCB3aGVuOlxyXG5cdFx0XHQqIDEpIFRoZSBjYW1wYWlnbiBoYXMgZXhwaXJlZFxyXG5cdFx0XHQqIDIpIFRoZSBjYW1wYWlnbiBpcyBubyBsb25nZXIgcHJlc2VudCBpbiB0aGUgZGVmaW5pdGlvbnMgKHRoaW5rIEVDUyBvciBvdGhlciBvdXRhZ2VzIG9yIHZlcnkgb2xkIGV4cGlyYXRpb25zKVxyXG5cdFx0XHQqICAgIEluIHRoaXMgY2FzZSB0aGUgc3RhdGUgc2hvdWxkIHN0aWxsIGJlIGNsZWFuZWQgdXAgb24gaXQncyByZWVsZWN0aW9uIGRhdGVcclxuXHRcdFx0KiAzKSBXaGVuIHRoZSB1c2VyIGlzIG91dCBvZiBzY29wZSAoZm9yIGFuIG90aGVyd2lzZSBhY3RpdmUgY2FtcGFpZ24pIGFuZCBpcyB1cCBmb3Igbm9taW5hdGlvblxyXG5cclxuXHRcdFx0KiBUaGlzIG9wdGltaXplcyB0aGUgdXNlciBleHBlcmllbmNlIGluIGNhc2UgdGhlIGNhbXBhaWduIHBvcHMgdXAgb3IgZ2V0cyByZW5ld2VkIHdoZW4gd2Ugd291bGQgaGF2ZSBwcmVmZXJyZWQgdGhlIHVzZXIgcmVtYWluIGluIGNvb2wgZG93blxyXG5cclxuXHRcdFx0KiAyJjMgYXJlIGJhc2ljYWxseSB0aGUgc2FtZSwgYW5kIDEgaXMgYSBzcGVjaWFsIGNhc2Ugb3B0aW1pemF0aW9uIG9uIHRvcCBvZiAyJjMgZm9yIGVhcmxpZXIgY2xlYW4gdXBcclxuXHJcblx0XHRcdCogVG8gZG8gMiAmIDMsIHdlIGp1c3QgbG9vayBhdCBzdGF0ZXMgd2l0aCBubyBtYXRjaGluZyBkZWZpbml0aW9uIChhZnRlciBmaWx0ZXJpbmcpLCBhbmQgcmVqZWN0IHRoZW0gaWYgdGhleSBhcmUgcGFzdCB0aGVpciBub21pbmF0aW9uIHBlcmlvZFxyXG5cdFx0XHQqIFRvIGRvIDEsIHdlIGp1c3QgbmVlZCB0byBrZWVwIGEgbGlzdC9oYXNoIG9mIHRoZSBkZWZpbml0aW9ucyB0aGF0IHdlIGZpbHRlcmVkIG91dCB0aGlzIGxvYWQgY3ljbGUsIHNwZWNpZmljYWxseSBmb3IgZXhwaXJhdGlvbiBkYXRlcywgYW5kIGJ5cGFzc1xyXG5cdFx0XHQqIHRoZSBjb29sIGRvd24gXCJ3YWl0XCIgZm9yIHRoZXNlIHNwZWNpZmljYWxseVxyXG5cclxuXHRcdFx0KiBGb3Igbm93LCBhbGxvd2luZyBzb21lIFwiZ3JhY2VcIiBmb3IgXCJtaXNzaW5nXCIvXCJibGlwcHlcIiBjYW1wYWlnbiBkZWZpbml0aW9ucyAoaW4gY2FzZSB0aGV5IHBvcCBpbiBhbmQgb3V0IG9mIEVDUykgYnkgZGVmZXJyaW5nIG1pc3NpbmdcclxuXHRcdFx0KiBkZWxldGlvbiBieSBhIGRlbGF5LXRpbWUgc3BlY2lmaWVkIGJ5IHRoZSBvcmlnaW5hbCBjYW1wYWlnbi5cclxuXHRcdFx0Ki9cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHN0YWxlTG9hZGVkU3RhdGVzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhbGVMb2FkZWRTdGF0ZXMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBzdGF0ZTogSUNhbXBhaWduU3RhdGUgPSBzdGFsZUxvYWRlZFN0YXRlc1trZXldO1xyXG5cdFx0XHRcdGlmICghc3RhdGUpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGVmaW5pdGlvbjogSUNhbXBhaWduRGVmaW5pdGlvbiA9IGxvYWRlZERlZmluaXRpb25zTWFwW3N0YXRlLkNhbXBhaWduSWRdO1xyXG5cdFx0XHRcdGxldCBzaG91bGRSZW1vdmUgPSBmYWxzZTtcclxuXHJcblx0XHRcdFx0aWYgKCFkZWZpbml0aW9uKSB7XHJcblx0XHRcdFx0XHRpZiAoc3RhdGUuTGFzdE5vbWluYXRpb25UaW1lVXRjXHJcblx0XHRcdFx0XHRcdC5nZXRUaW1lKCkgPD0gVXRpbHMuc3VidHJhY3RTZWNvbmRzV2l0aG91dE92ZXJmbG93KGN1cnJlbnREYXRlLCBzdGF0ZS5EZWxldGVBZnRlclNlY29uZHNXaGVuU3RhbGUpLmdldFRpbWUoKSkge1xyXG5cdFx0XHRcdFx0XHRzaG91bGRSZW1vdmUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0gZWxzZSBpZiAoQ2FtcGFpZ25NYW5hZ2VyLmlzU3RhdGVVcEZvck5vbWluYXRpb24oc3RhdGUsIGRlZmluaXRpb24sIGN1cnJlbnREYXRlLCB0aGlzLmN1cnJlbnRCdWlsZE51bWJlcikpIHtcclxuXHRcdFx0XHRcdHNob3VsZFJlbW92ZSA9IHRydWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBUaGUgbmV4dCB0aW1lIHdlIHdyaXRlIHRvIHN0b3JhZ2UsIHRoZXNlIHdpbGwgYmUgcmVtb3ZlZFxyXG5cdFx0XHRcdGlmIChzaG91bGRSZW1vdmUpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLmNhbXBhaWduU3RhdGVzW3N0YXRlLkNhbXBhaWduSWRdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gRmlsdGVyIGxvd2VyIHByaW9yaXR5IGNhbXBhaWducyB0aGF0IGFyZSBvbiBzYW1lIGNoYW5uZWwgYW5kIGhhdmUgYSBtYXRjaGluZyB0YWdcclxuXHRwcml2YXRlIGdldFByaW9yaXRpemVkQ2FtcGFpZ25zKCkge1xyXG5cdFx0Y29uc3QgcHJpb3JpdGl6ZWRDYW1wYWlnbnM6IElEaWN0aW9uYXJ5PElDYW1wYWlnbkRlZmluaXRpb24+ID0ge307XHJcblxyXG5cdFx0Ly8gYnVpbGQgPHRhZ0lkX2NoYW5uZWwsIGNhbXBhaWduW10+IG1hcFxyXG5cdFx0Y29uc3QgbWF0Y2hpbmdUYWdDYW1wYWlnbnM6IElEaWN0aW9uYXJ5PElDYW1wYWlnbkRlZmluaXRpb25bXT4gPSB7fTtcclxuXHRcdE9iamVjdC5rZXlzKHRoaXMuY2FtcGFpZ25EZWZpbml0aW9ucyB8fCBbXSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcblx0XHRcdGNvbnN0IGRlZmluaXRpb246IElDYW1wYWlnbkRlZmluaXRpb24gPSB0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnNba2V5XTtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNhbXBhaWduU3RhdGVzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3Qgc3RhdGU6IElDYW1wYWlnblN0YXRlID0gdGhpcy5jYW1wYWlnblN0YXRlc1trZXldO1xyXG5cdFx0XHRcdC8vIG9ubHkgYWRkIHRoZSBjYW1wYWlnbiBpZiBpdCdzIG5vbWluYXRlZFxyXG5cdFx0XHRcdGlmIChzdGF0ZS5Jc0NhbmRpZGF0ZSkge1xyXG5cdFx0XHRcdFx0cHJpb3JpdGl6ZWRDYW1wYWlnbnNba2V5XSA9IGRlZmluaXRpb247XHJcblxyXG5cdFx0XHRcdFx0Ly8gaWYgdGFncyBhcmUgbm90IGRlZmluZWQsIHVzZSBlbXB0eSB0YWcgdG8gZmFsbGJhY2sgdG8gY2hhbm5lbCBsZXZlbCBhZ2dyZWdhdGlvblxyXG5cdFx0XHRcdFx0Y29uc3QgZGVmaW5pdGlvblRhZ3MgPSBkZWZpbml0aW9uLnRhZ3MgJiYgZGVmaW5pdGlvbi50YWdzLmxlbmd0aCA+IDAgPyBkZWZpbml0aW9uLnRhZ3MgOiBbXCJcIl07XHJcblx0XHRcdFx0XHRkZWZpbml0aW9uVGFncy5mb3JFYWNoKCh0YWdJZCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBtYXBLZXkgPSBgJHt0YWdJZH1fJHtkZWZpbml0aW9uLmdvdmVybmVkQ2hhbm5lbFR5cGV9YDtcclxuXHRcdFx0XHRcdFx0bWF0Y2hpbmdUYWdDYW1wYWlnbnNbbWFwS2V5XSA9IG1hdGNoaW5nVGFnQ2FtcGFpZ25zW21hcEtleV0gfHwgW107XHJcblx0XHRcdFx0XHRcdG1hdGNoaW5nVGFnQ2FtcGFpZ25zW21hcEtleV0ucHVzaChkZWZpbml0aW9uKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gcmVtb3ZlIGxvd2VyIHByaW9yaXR5IGNhbXBhaWduc1xyXG5cdFx0T2JqZWN0LmtleXMobWF0Y2hpbmdUYWdDYW1wYWlnbnMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHQvLyBDaGVjayBpZiB0aGUgcHJpb3JpdHkgZmlsdGVyIGlzIGVuYWJsZWQgZm9yIHN0YW5kYXJkIGNoYW5uZWxcclxuXHRcdFx0aWYgKCF0aGlzLmlzUHJpb3JpdHlFbmFibGVkICYmIGtleS5lbmRzV2l0aChgXyR7R292ZXJuZWRDaGFubmVsVHlwZS5TdGFuZGFyZH1gKSkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZGVmaW5pdGlvbnMgPSBtYXRjaGluZ1RhZ0NhbXBhaWduc1trZXldO1xyXG5cdFx0XHRpZiAoZGVmaW5pdGlvbnMubGVuZ3RoIDw9IDEpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEdldCBkZWZpbml0aW9uIHRoYXQgaGFzIG1heCBwcmlvcml0eSB2YWx1ZSAoMC9udWxsL3VuZGVmaW5lZCBoYXMgaGlnaGVzdCBwcmlvaXJ0eSlcclxuXHRcdFx0Y29uc3QgW21heFByaW9yaXR5RGVmaW5pdGlvbiwgaGFzTG93ZXJQcmlvcml0eURlZmluaXRpb25zXSA9IFV0aWxzLmZpbmRIaWdoZXN0UHJpb3JpdHlEZWZpbml0aW9uKGRlZmluaXRpb25zKTtcclxuXHJcblx0XHRcdGNvbnN0IG1heFByaW9yaXR5ID0gbWF4UHJpb3JpdHlEZWZpbml0aW9uLnByaW1hcnlQcmlvcml0eSA/PyAwO1xyXG5cdFx0XHRpZiAoIWhhc0xvd2VyUHJpb3JpdHlEZWZpbml0aW9ucykge1xyXG5cdFx0XHRcdC8vIG5vdGhpbmcgdG8gZmlsdGVyIGJlY2F1c2UgYWxsIHByaW9yaXRpZXMgYXJlIHRoZSBzYW1lXHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBkZWxldGUgbG93ZXIgcHJpb3JpdHkgY2FtcGFpZ25zIHdoaWxlIHByZXNlcnZpbmcgYWxsIHRoZSBtYXRjaGluZyBoaWdoZXIgcHJpb3JpdHkgaXRlbXNcclxuXHRcdFx0ZGVmaW5pdGlvbnMuZm9yRWFjaCgoY3VycmVudCkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGN1cnJlbnRQcmlvcml0eSA9IGN1cnJlbnQucHJpbWFyeVByaW9yaXR5O1xyXG5cclxuXHRcdFx0XHQvLyBmb3IgbXNvIGNvbXBhdGFiaWxpdHkgaWdub3JlIGNhbXBhaWducyB3aXRob3V0IHByaW9yaXR5IHNldCBzbyB0aGF0IHRoZXkgYXJlIGFsd2F5cyBjb25zaWRlcmVkXHJcblx0XHRcdFx0aWYgKCFpc05PVShjdXJyZW50LnByaW1hcnlQcmlvcml0eSkgJiYgY3VycmVudFByaW9yaXR5ID4gbWF4UHJpb3JpdHkpIHtcclxuXHRcdFx0XHRcdGRlbGV0ZSBwcmlvcml0aXplZENhbXBhaWduc1tjdXJyZW50LmNhbXBhaWduSWRdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gcHJpb3JpdGl6ZWRDYW1wYWlnbnM7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHaXZlbiB0aGUgbG9hZGVkIGNhbXBhaWduIGRlZmluaXRpb25zIGFuZCBzdGF0ZXMgZnJvbSBwcmV2aW91cyBzZXNzaW9ucywgcnVuIGFueXRoaW5nIHVwIGZvciBub21pbmF0aW9uXHJcblx0ICovXHJcblx0cHJpdmF0ZSBldmFsdWF0ZUNhbXBhaWducyhjdXJyZW50RGF0ZTogRGF0ZSk6IHZvaWQge1xyXG5cdFx0Ly8gTG9vcCB0aHJvdWdoIGNhbXBhaWducyBkZWZpbml0aW9ucywgYW5kIHVwZGF0ZSB0aGVpciBzdGF0ZSBpZiBuZWNlc3NhcnlcclxuXHRcdGN1cnJlbnREYXRlID0gY3VycmVudERhdGUgPyBjdXJyZW50RGF0ZSA6IG5ldyBEYXRlKCk7XHJcblx0XHR0aGlzLm5ld05vbWluYXRpb25DYW1wYWlnbnMgPSBbXTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uID0gdGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2tleV07XHJcblx0XHRcdFx0Y29uc3Qgc3RhdGU6IElDYW1wYWlnblN0YXRlID0gdGhpcy5jYW1wYWlnblN0YXRlc1tkZWZpbml0aW9uLmNhbXBhaWduSWRdO1xyXG5cclxuXHRcdFx0XHRpZiAoIXN0YXRlIHx8IENhbXBhaWduTWFuYWdlci5pc1N0YXRlVXBGb3JOb21pbmF0aW9uKHN0YXRlLCBkZWZpbml0aW9uLCBjdXJyZW50RGF0ZSwgdGhpcy5jdXJyZW50QnVpbGROdW1iZXIpKSB7XHJcblx0XHRcdFx0XHRsZXQgbGFzdFN1cnZleUlkOiBzdHJpbmcgPSBzdGF0ZSA/IHN0YXRlLkxhc3RTdXJ2ZXlJZCA6IFwiXCI7XHJcblx0XHRcdFx0XHRsZXQgbGFzdFN1cnZleVN0YXJ0VGltZTogRGF0ZSA9IHN0YXRlID8gc3RhdGUuTGFzdFN1cnZleVN0YXJ0VGltZVV0YyA6IGdldERpc3RhbnRQYXN0KCk7XHJcblx0XHRcdFx0XHRsZXQgbGFzdFN1cnZleUV4cGlyYXRpb25UaW1lOiBEYXRlID0gc3RhdGUgPyBzdGF0ZS5MYXN0U3VydmV5RXhwaXJhdGlvblRpbWVVdGMgOiBnZXREaXN0YW50UGFzdCgpO1xyXG5cdFx0XHRcdFx0Y29uc3QgbGFzdFN1cnZleUFjdGl2YXRlZFRpbWU6IERhdGUgPSBzdGF0ZSA/IHN0YXRlLkxhc3RTdXJ2ZXlBY3RpdmF0ZWRUaW1lVXRjIDogZ2V0RGlzdGFudFBhc3QoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGxhc3RDb29sZG93bkVuZFRpbWVVdGM6IERhdGUgPSBzdGF0ZSA/IHN0YXRlLkxhc3RDb29sZG93bkVuZFRpbWVVdGMgOiBnZXREaXN0YW50UGFzdCgpO1xyXG5cdFx0XHRcdFx0dGhpcy5uZXdOb21pbmF0aW9uQ2FtcGFpZ25zLnB1c2goZGVmaW5pdGlvbi5jYW1wYWlnbklkKTtcclxuXHJcblx0XHRcdFx0XHQvLyBSdW4gdGhlIG5vbWluYXRpb25cclxuXHRcdFx0XHRcdGNvbnN0IGlzQ2FuZGlkYXRlOiBib29sZWFuID0gKHN0YXRlICYmIHN0YXRlLkZvcmNlQ2FuZGlkYWN5KSB8fCBkZWZpbml0aW9uLm5vbWluYXRpb25TY2hlbWUuZXZhbHVhdGVOb21pbmF0aW9uUnVsZXMoKTtcclxuXHRcdFx0XHRcdGlmIChpc0NhbmRpZGF0ZSkge1xyXG5cdFx0XHRcdFx0XHQvLyBNYWtlIG5ldyBzdXJ2ZXkgcHJvcGVydGllcyBmb3IgdGhlIG5leHQgY2FsbCB0byBnZXQgdGhlIGFjdGl2ZSBzdXJ2ZXlzXHJcblx0XHRcdFx0XHRcdGxhc3RTdXJ2ZXlJZCA9IFV0aWxzLmd1aWQoKTtcclxuXHRcdFx0XHRcdFx0bGFzdFN1cnZleVN0YXJ0VGltZSA9IGRlZmluaXRpb24ubm9taW5hdGlvblNjaGVtZS5jYWxjdWxhdGVTdXJ2ZXlTdGFydFRpbWVGcm9tRGF0ZShjdXJyZW50RGF0ZSk7XHJcblx0XHRcdFx0XHRcdGxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZSA9IGRlZmluaXRpb24ubm9taW5hdGlvblNjaGVtZS5jYWxjdWxhdGVTdXJ2ZXlFeHBpcmF0aW9uVGltZUZyb21TdXJ2ZXlTdGFydFRpbWUobGFzdFN1cnZleVN0YXJ0VGltZSk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Y29uc3QgbmV3U3RhdGU6IElDYW1wYWlnblN0YXRlID0gbmV3IENhbXBhaWduU3RhdGUoXHJcblx0XHRcdFx0XHRcdGRlZmluaXRpb24uY2FtcGFpZ25JZCxcclxuXHRcdFx0XHRcdFx0Y3VycmVudERhdGUsXHJcblx0XHRcdFx0XHRcdHRoaXMuY3VycmVudEJ1aWxkTnVtYmVyLFxyXG5cdFx0XHRcdFx0XHRkZWZpbml0aW9uLm5vbWluYXRpb25TY2hlbWUuZ2V0QWN0aXZlU3VydmV5VGltZUludGVydmFsU2Vjb25kcygpLFxyXG5cdFx0XHRcdFx0XHRmYWxzZSxcclxuXHRcdFx0XHRcdFx0aXNDYW5kaWRhdGUsXHJcblx0XHRcdFx0XHRcdGZhbHNlLFxyXG5cdFx0XHRcdFx0XHRsYXN0U3VydmV5QWN0aXZhdGVkVGltZSxcclxuXHRcdFx0XHRcdFx0bGFzdFN1cnZleUlkLFxyXG5cdFx0XHRcdFx0XHRsYXN0U3VydmV5U3RhcnRUaW1lLFxyXG5cdFx0XHRcdFx0XHRsYXN0U3VydmV5RXhwaXJhdGlvblRpbWUsXHJcblx0XHRcdFx0XHRcdGxhc3RDb29sZG93bkVuZFRpbWVVdGMsXHJcblx0XHRcdFx0XHQpO1xyXG5cclxuXHRcdFx0XHRcdC8vIFNhdmUgdGhlIG5ldyBzdGF0ZSB0byBvdXIgbG9jYWwgY2FjaGVcclxuXHRcdFx0XHRcdHRoaXMuY2FtcGFpZ25TdGF0ZXNbbmV3U3RhdGUuQ2FtcGFpZ25JZF0gPSBuZXdTdGF0ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbmVlZFJlZnJlc2hTdXJ2ZXlEZWZpbml0aW9ucygpOiBib29sZWFuIHtcclxuXHRcdC8vIENoZWNrIGZvciBkYXRhIGhhcyBjaGFuZ2VkXHJcblx0XHRsZXQgdXBkYXRlTmVlZGVkID0gZmFsc2U7XHJcblx0XHRcclxuXHRcdGNvbnN0IHJlbG9hZEZlYXR1cmVFbmFibGVkID0gZ2V0RmVhdHVyZUdhdGVQcm92aWRlcigpPy5nZXRCb29sRmVhdHVyZVN0YXR1cyhcIlJlbG9hZE9uQ2FtcGFpZ25EZWZpbml0aW9uQ2hhbmdlZFwiLCBmYWxzZSk7XHJcblx0XHRpZiAocmVsb2FkRmVhdHVyZUVuYWJsZWQpIHtcclxuXHRcdFx0Zm9yIChjb25zdCBpIG9mIE9iamVjdC5rZXlzKHRoaXMuZGVmaW5pdGlvblByb3ZpZGVycykpIHtcclxuXHRcdFx0XHRjb25zdCBwcm92aWRlciA9IHRoaXMuZGVmaW5pdGlvblByb3ZpZGVyc1tpXTtcclxuXHRcdFx0XHR1cGRhdGVOZWVkZWQgPSBwcm92aWRlci5oYXNEYXRhQ2hhbmdlZCgpO1xyXG5cclxuXHRcdFx0XHQvLyBCcmVha291dCBzaW5nZSB3ZSBqdXN0IG5lZWQgb25lIHRydWUgdG8gcmVmcmVzaCBjYW1wYWlnbnNcclxuXHRcdFx0XHRpZiAodXBkYXRlTmVlZGVkKSB7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gIXRoaXMubGFzdENhbXBhaWduUmVmcmVzaFRpbWUgfHwgdXBkYXRlTmVlZGVkO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBGaWx0ZXJDYW1wYWlnbnNPblJlc3RhcnQoY3VycmVudERhdGU6IERhdGUsIGNoYW5uZWxUeXBlczogR292ZXJuZWRDaGFubmVsVHlwZVtdKTogdm9pZCB7XHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNhbXBhaWduRGVmaW5pdGlvbnMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uID0gdGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2tleV07XHJcblxyXG5cdFx0XHRcdGlmIChjaGFubmVsVHlwZXMgJiZcclxuXHRcdFx0XHRcdChjaGFubmVsVHlwZXMuaW5kZXhPZihkZWZpbml0aW9uLmdvdmVybmVkQ2hhbm5lbFR5cGUpIDwgMCkgJiZcclxuXHRcdFx0XHRcdChkZWZpbml0aW9uLmJ1c2luZXNzTGV2ZWwgIT09IEJ1c2luZXNzTGV2ZWwuQ3JpdGljYWwpKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2RlZmluaXRpb24uY2FtcGFpZ25JZF07XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICghQ2FtcGFpZ25NYW5hZ2VyLmlzQ2FtcGFpZ25JblNjb3BlKGRlZmluaXRpb24sIGN1cnJlbnREYXRlLCB0aGlzLmVudmlyb25tZW50UHJvdmlkZXIsIHRoaXMudXNlckZhY3RzUHJvdmlkZXIpKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2RlZmluaXRpb24uY2FtcGFpZ25JZF07XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIG5ldyBjYW1wYWlnbiBnb3Zlcm5hbmNlIG9ubHkgYXBwbGllcyBpZiBmZWF0dXJlIGdhdGUgaXMgb24sIHJlbW92ZXMgY29udHJvbCBjYW1wYWlnbnMgZnJvbSBhY3Rpdml0eUxpc3RlbmVyIGxpc3QgXHJcblx0XHRcdFx0aWYgKGRlZmluaXRpb24udHJlYXRtZW50VHlwZSA9PT0gVHJlYXRtZW50VHlwZS5Db250cm9sKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5jYW1wYWlnbkRlZmluaXRpb25zW2RlZmluaXRpb24uY2FtcGFpZ25JZF07XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIExvYWQgYW5kIGZpbHRlciB0aGUgY2FtcGFpZ25zIGRlZmluaXRpb25zIGFuZCBzdGF0ZXNcclxuXHQgKi9cclxuXHRwcml2YXRlIExvYWRGaWx0ZXJDYW1wYWlnblN0YXRlcyhjdXJyZW50RGF0ZTogRGF0ZSk6IHZvaWQge1xyXG5cdFx0Ly8gTG9hZCBjYW1wYWlnbiBzdGF0ZSwgZmlsdGVyaW5nIG91dCB0aGUgZXhwaXJlZCBkZWZpbml0aW9uc1xyXG5cdFx0Y29uc3QgbG9hZGVkU3RhdGVzOiBJQ2FtcGFpZ25TdGF0ZVtdID0gdGhpcy5zdGF0ZVByb3ZpZGVyLmxvYWQoKTtcclxuXHRcdGNvbnN0IHN0YWxlTG9hZGVkU3RhdGVzOiBJQ2FtcGFpZ25TdGF0ZVtdID0gW107XHJcblxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gbG9hZGVkU3RhdGVzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobG9hZGVkU3RhdGVzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3Qgc3RhdGU6IElDYW1wYWlnblN0YXRlID0gbG9hZGVkU3RhdGVzW2tleV07XHJcblxyXG5cdFx0XHRcdGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY2FtcGFpZ25EZWZpbml0aW9ucywgc3RhdGUuQ2FtcGFpZ25JZCkpIHtcclxuXHRcdFx0XHRcdHN0YWxlTG9hZGVkU3RhdGVzLnB1c2goc3RhdGUpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0dGhpcy5jYW1wYWlnblN0YXRlc1tzdGF0ZS5DYW1wYWlnbklkXSA9IHN0YXRlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0LypcclxuXHRcdCAqIFN0YWxlIFN0YXRlIGRhdGEgY2xlYW51cFxyXG5cdFx0ICogU3RhdGUgbmVlZHMgdG8gYmUgY2xlYW5lZCB1cCB3aGVuOlxyXG5cdFx0ICogMSkgVGhlIGNhbXBhaWduIGhhcyBleHBpcmVkXHJcblx0XHQgKiAyKSBUaGUgY2FtcGFpZ24gaXMgbm8gbG9uZ2VyIHByZXNlbnQgaW4gdGhlIGRlZmluaXRpb25zICh0aGluayBFQ1Mgb3Igb3RoZXIgb3V0YWdlcyBvciB2ZXJ5IG9sZCBleHBpcmF0aW9ucylcclxuXHRcdCAqICAgIEluIHRoaXMgY2FzZSB0aGUgc3RhdGUgc2hvdWxkIHN0aWxsIGJlIGNsZWFuZWQgdXAgb24gaXQncyByZWVsZWN0aW9uIGRhdGVcclxuXHRcdCAqIDMpIFdoZW4gdGhlIHVzZXIgaXMgb3V0IG9mIHNjb3BlIChmb3IgYW4gb3RoZXJ3aXNlIGFjdGl2ZSBjYW1wYWlnbikgYW5kIGlzIHVwIGZvciBub21pbmF0aW9uXHJcblxyXG5cdFx0ICogVGhpcyBvcHRpbWl6ZXMgdGhlIHVzZXIgZXhwZXJpZW5jZSBpbiBjYXNlIHRoZSBjYW1wYWlnbiBwb3BzIHVwIG9yIGdldHMgcmVuZXdlZCB3aGVuIHdlIHdvdWxkIGhhdmUgcHJlZmVycmVkIHRoZSB1c2VyIHJlbWFpbiBpbiBjb29sIGRvd25cclxuXHJcblx0XHQgKiAyJjMgYXJlIGJhc2ljYWxseSB0aGUgc2FtZSwgYW5kIDEgaXMgYSBzcGVjaWFsIGNhc2Ugb3B0aW1pemF0aW9uIG9uIHRvcCBvZiAyJjMgZm9yIGVhcmxpZXIgY2xlYW4gdXBcclxuXHJcblx0XHQgKiBUbyBkbyAyICYgMywgd2UganVzdCBsb29rIGF0IHN0YXRlcyB3aXRoIG5vIG1hdGNoaW5nIGRlZmluaXRpb24gKGFmdGVyIGZpbHRlcmluZyksIGFuZCByZWplY3QgdGhlbSBpZiB0aGV5IGFyZSBwYXN0IHRoZWlyIG5vbWluYXRpb24gcGVyaW9kXHJcblx0XHQgKiBUbyBkbyAxLCB3ZSBqdXN0IG5lZWQgdG8ga2VlcCBhIGxpc3QvaGFzaCBvZiB0aGUgZGVmaW5pdGlvbnMgdGhhdCB3ZSBmaWx0ZXJlZCBvdXQgdGhpcyBsb2FkIGN5Y2xlLCBzcGVjaWZpY2FsbHkgZm9yIGV4cGlyYXRpb24gZGF0ZXMsIGFuZCBieXBhc3NcclxuXHRcdCAqIHRoZSBjb29sIGRvd24gXCJ3YWl0XCIgZm9yIHRoZXNlIHNwZWNpZmljYWxseVxyXG5cclxuXHRcdCAqIEZvciBub3csIGFsbG93aW5nIHNvbWUgXCJncmFjZVwiIGZvciBcIm1pc3NpbmdcIi9cImJsaXBweVwiIGNhbXBhaWduIGRlZmluaXRpb25zIChpbiBjYXNlIHRoZXkgcG9wIGluIGFuZCBvdXQgb2YgRUNTKSBieSBkZWZlcnJpbmcgbWlzc2luZ1xyXG5cdFx0ICogZGVsZXRpb24gYnkgYSBkZWxheS10aW1lIHNwZWNpZmllZCBieSB0aGUgb3JpZ2luYWwgY2FtcGFpZ24uXHJcblx0XHQgKi9cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHN0YWxlTG9hZGVkU3RhdGVzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhbGVMb2FkZWRTdGF0ZXMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBzdGF0ZTogSUNhbXBhaWduU3RhdGUgPSBzdGFsZUxvYWRlZFN0YXRlc1trZXldO1xyXG5cdFx0XHRcdGlmICghc3RhdGUpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGVmaW5pdGlvbjogSUNhbXBhaWduRGVmaW5pdGlvbiA9IHRoaXMuY2FtcGFpZ25EZWZpbml0aW9uc1tzdGF0ZS5DYW1wYWlnbklkXTtcclxuXHRcdFx0XHRsZXQgc2hvdWxkUmVtb3ZlID0gZmFsc2U7XHJcblxyXG5cdFx0XHRcdGlmICghZGVmaW5pdGlvbikge1xyXG5cdFx0XHRcdFx0aWYgKHN0YXRlLkxhc3ROb21pbmF0aW9uVGltZVV0Y1xyXG5cdFx0XHRcdFx0XHQuZ2V0VGltZSgpIDw9IFV0aWxzLnN1YnRyYWN0U2Vjb25kc1dpdGhvdXRPdmVyZmxvdyhjdXJyZW50RGF0ZSwgc3RhdGUuRGVsZXRlQWZ0ZXJTZWNvbmRzV2hlblN0YWxlKS5nZXRUaW1lKCkpIHtcclxuXHRcdFx0XHRcdFx0c2hvdWxkUmVtb3ZlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKENhbXBhaWduTWFuYWdlci5pc1N0YXRlVXBGb3JOb21pbmF0aW9uKHN0YXRlLCBkZWZpbml0aW9uLCBjdXJyZW50RGF0ZSwgdGhpcy5jdXJyZW50QnVpbGROdW1iZXIpKSB7XHJcblx0XHRcdFx0XHRzaG91bGRSZW1vdmUgPSB0cnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gVGhlIG5leHQgdGltZSB3ZSB3cml0ZSB0byBzdG9yYWdlLCB0aGVzZSB3aWxsIGJlIHJlbW92ZWRcclxuXHRcdFx0XHRpZiAoc2hvdWxkUmVtb3ZlKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgdGhpcy5jYW1wYWlnblN0YXRlc1tzdGF0ZS5DYW1wYWlnbklkXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Campaign/CampaignManager.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Campaign/CampaignStateProvider.js": /*!*******************************************************************!*\ !*** ../FloodgateCore/dist/src/Campaign/CampaignStateProvider.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileBasedCampaignStateProvider = exports.HostBasedCampaignStateProvider = exports.CampaignStateProviderFactory = exports.CampaignState = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar StateProviderHelpers = __webpack_require__(/*! ../StateProviderHelpers */ \"../FloodgateCore/dist/src/StateProviderHelpers.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar getDistantPast = Utils.getDistantPast, isBoolean = Utils.isBoolean, isDate = Utils.isDate, isNOU = Utils.isNOU, isString = Utils.isString, isUtcDatetimeString = Utils.isUtcDatetimeString, stringToDate = Utils.stringToDate;\nvar CampaignState = /** @class */ (function () {\n function CampaignState(campaignId, lastNominationTime, lastNominationBuildNumber, deleteAfterSecondsWhenStale, ForceCandidacy, isCandidate, didCandidateTriggerSurvey, lastSurveyActivatedTime, lastSurveyId, lastSurveyStartTime, lastSurveyExpirationTime, lastCooldownEndTimeUtc) {\n this.CampaignId = campaignId;\n this.LastNominationTimeUtc = lastNominationTime;\n this.LastNominationBuildNumber = lastNominationBuildNumber;\n this.DeleteAfterSecondsWhenStale = deleteAfterSecondsWhenStale;\n this.ForceCandidacy = ForceCandidacy;\n this.IsCandidate = isCandidate;\n this.DidCandidateTriggerSurvey = didCandidateTriggerSurvey;\n this.LastSurveyActivatedTimeUtc = lastSurveyActivatedTime;\n this.LastSurveyId = lastSurveyId;\n this.LastSurveyStartTimeUtc = lastSurveyStartTime;\n this.LastSurveyExpirationTimeUtc = lastSurveyExpirationTime;\n this.LastCooldownEndTimeUtc = lastCooldownEndTimeUtc;\n if (!this.validate()) {\n throw new Error(\"Constructor arguments are not valid\");\n }\n }\n /**\n * Method to deserialize a JSON object to class object\n * @param input: JSON object\n * Returns class object\n */\n CampaignState.deserialize = function (input) {\n var result;\n if (!input) {\n return null;\n }\n try {\n result = new CampaignState(input.CampaignId, input.LastNominationTimeUtc, input.LastNominationBuildNumber, input.DeleteAfterSecondsWhenStale, false, // ForceCandidacy\n input.IsCandidate, input.DidCandidateTriggerSurvey, input.LastSurveyActivatedTimeUtc, input.LastSurveyId, input.LastSurveyStartTimeUtc, input.LastSurveyExpirationTimeUtc, input.LastCooldownEndTimeUtc);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.CampaignState.Deserialize.Failed, { ErrorMessage: e.toString() });\n return null;\n }\n return result;\n };\n CampaignState.prototype.validate = function () {\n if (!this.CampaignId || !isString(this.CampaignId)) {\n return false;\n }\n if (isNOU(this.LastNominationBuildNumber)\n || !isString(this.LastNominationBuildNumber)) {\n return false;\n }\n if (!Utils.isNumber(this.DeleteAfterSecondsWhenStale) || this.DeleteAfterSecondsWhenStale < 0) {\n return false;\n }\n if (!isBoolean(this.IsCandidate) || !isBoolean(this.DidCandidateTriggerSurvey)) {\n return false;\n }\n if (this.IsCandidate) {\n // Disallow the following null's if isCandidate == true\n if (isNOU(this.LastSurveyStartTimeUtc) || isNOU(this.LastSurveyExpirationTimeUtc)) {\n return false;\n }\n // LastSurveyId could be \"\"\n if (!isString(this.LastSurveyId)) {\n return false;\n }\n }\n if (this.DidCandidateTriggerSurvey) {\n // Disallow the following null's if didCandidateTriggerSurvey == true\n if (isNOU(this.LastSurveyActivatedTimeUtc)) {\n return false;\n }\n }\n if (isNOU(this.LastSurveyId)) {\n this.LastSurveyId = \"\";\n }\n else if (!isString(this.LastSurveyId)) {\n return false;\n }\n // LastNominationTime does not allow null\n if (isUtcDatetimeString(this.LastNominationTimeUtc)) {\n this.LastNominationTimeUtc = stringToDate(this.LastNominationTimeUtc);\n // invalidate if it's not a Date object\n }\n else if (!isDate(this.LastNominationTimeUtc)) {\n return false;\n }\n // Set value to distance past if value not provided\n if (isNOU(this.LastSurveyActivatedTimeUtc)) {\n this.LastSurveyActivatedTimeUtc = getDistantPast();\n // check if it's UTC date time string, possibly coming from deserialize method\n }\n else if (isUtcDatetimeString(this.LastSurveyActivatedTimeUtc)) {\n this.LastSurveyActivatedTimeUtc = stringToDate(this.LastSurveyActivatedTimeUtc);\n // invalidate if it's not a Date object\n }\n else if (!isDate(this.LastSurveyActivatedTimeUtc)) {\n return false;\n }\n // Set value to distance past if value not provided\n if (isNOU(this.LastSurveyStartTimeUtc)) {\n this.LastSurveyStartTimeUtc = getDistantPast();\n // check if it's string, possibly coming from deserialize method\n }\n else if (isUtcDatetimeString(this.LastSurveyStartTimeUtc)) {\n this.LastSurveyStartTimeUtc = stringToDate(this.LastSurveyStartTimeUtc);\n // invalidate if it's not a Date object\n }\n else if (!isDate(this.LastSurveyStartTimeUtc)) {\n return false;\n }\n // Set value to distance past if value not provided\n if (isNOU(this.LastSurveyExpirationTimeUtc)) {\n this.LastSurveyExpirationTimeUtc = getDistantPast();\n // check if it's string, possibly coming from deserialize method\n }\n else if (isUtcDatetimeString(this.LastSurveyExpirationTimeUtc)) {\n this.LastSurveyExpirationTimeUtc = stringToDate(this.LastSurveyExpirationTimeUtc);\n }\n else if (!isDate(this.LastSurveyExpirationTimeUtc)) {\n return false;\n }\n // Set value to distance past if value not provided\n if (isNOU(this.LastCooldownEndTimeUtc)) {\n this.LastCooldownEndTimeUtc = getDistantPast();\n // check if it's string, possibly coming from deserialize method\n }\n else if (isUtcDatetimeString(this.LastCooldownEndTimeUtc)) {\n this.LastCooldownEndTimeUtc = stringToDate(this.LastCooldownEndTimeUtc);\n }\n else if (!isDate(this.LastCooldownEndTimeUtc)) {\n return false;\n }\n return true;\n };\n /**\n * Record that the current survey was taken on this date\n *\n * @param date date\n * @param cooldownSeconds number\n */\n CampaignState.prototype.markCurrentSurveyTakenOnDate = function (date, cooldownSeconds, isSurveyComplete) {\n this.DidCandidateTriggerSurvey = isSurveyComplete;\n this.LastSurveyActivatedTimeUtc = date != null ? date : new Date();\n this.LastCooldownEndTimeUtc = Utils.addSecondsWithoutOverflow(this.LastSurveyActivatedTimeUtc, cooldownSeconds);\n };\n CampaignState.prototype.getCooldownStartDate = function () {\n if (!this.IsCandidate) {\n return this.LastNominationTimeUtc;\n }\n if (this.DidCandidateTriggerSurvey) {\n return this.LastSurveyActivatedTimeUtc;\n }\n // In practice this wil be equal to lastNominationTime, but\n // distribution models like a ramp effectively cause us to\n // shift our \"effective nomination date\" forward with the survey start date\n return this.LastSurveyStartTimeUtc;\n };\n return CampaignState;\n}());\nexports.CampaignState = CampaignState;\nvar CampaignStateProviderFactory = /** @class */ (function () {\n function CampaignStateProviderFactory() {\n }\n CampaignStateProviderFactory.make = function (fileBasedStorage, hostBasedStorage) {\n if (hostBasedStorage) {\n return new HostBasedCampaignStateProvider(fileBasedStorage, hostBasedStorage);\n }\n return new FileBasedCampaignStateProvider(fileBasedStorage);\n };\n return CampaignStateProviderFactory;\n}());\nexports.CampaignStateProviderFactory = CampaignStateProviderFactory;\n/**\n * Class representing what is stored in the file.\n */\nvar FileData = /** @class */ (function () {\n function FileData() {\n }\n return FileData;\n}());\nvar HostBasedCampaignStateProvider = /** @class */ (function () {\n function HostBasedCampaignStateProvider(fileBasedStorage, hostBasedStorage) {\n if (!hostBasedStorage) {\n throw new Error(\"host-based storage must not be null\");\n }\n this.hostBasedStorage = hostBasedStorage;\n // file-based provider is optional\n if (fileBasedStorage) {\n this.fileBasedStateProvider = new FileBasedCampaignStateProvider(fileBasedStorage);\n }\n }\n // @Override\n HostBasedCampaignStateProvider.prototype.load = function () {\n var statesFromHost = this.getStatesFromHost();\n var statesFromFile;\n if (this.fileBasedStateProvider) {\n statesFromFile = this.fileBasedStateProvider.load();\n }\n var StateCollections = StateProviderHelpers.MergeAndUpdateCampaignStates(statesFromFile, statesFromHost);\n return StateCollections.find(0 /* Merged */);\n };\n // @Override\n HostBasedCampaignStateProvider.prototype.save = function (campaignStates) {\n var _this = this;\n if (!campaignStates) {\n return;\n }\n var statesFromHost = this.getStatesFromHost();\n var StateCollections = StateProviderHelpers.MergeAndUpdateCampaignStates(campaignStates, statesFromHost);\n var toBeUpdatedStates = StateCollections.find(1 /* ToBeUpdated */);\n var mergedStates = StateCollections.find(0 /* Merged */);\n // write delta_data to host\n if (toBeUpdatedStates) {\n toBeUpdatedStates.forEach(function (state) {\n var stateValue = StateProviderHelpers.makeSettingItemValue(JSON.stringify(state));\n _this.hostBasedStorage.upsertSettingItem(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.CampaignStates], state.CampaignId, stateValue);\n });\n }\n // Write merged data to File\n if (this.fileBasedStateProvider) {\n this.fileBasedStateProvider.save(mergedStates);\n }\n };\n HostBasedCampaignStateProvider.prototype.getStatesFromHost = function () {\n var states = [];\n var settings = this.hostBasedStorage.readSettingList(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.CampaignStates]);\n for (var key in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, key)) {\n continue;\n }\n var value = settings[key];\n var dataString = StateProviderHelpers.extractSettingItemValueSubString(value);\n var itemObject = {};\n try {\n itemObject = JSON.parse(dataString);\n var newState = CampaignState.deserialize(itemObject);\n if (newState) {\n states.push(newState);\n }\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.HostBasedCampaignStateProvider.GetStatesFromHost.Failed, { ErrorMessage: \"Json parsing/deserializing failed. \" + e.toString() + \". Input:\" + dataString });\n }\n }\n return states;\n };\n return HostBasedCampaignStateProvider;\n}());\nexports.HostBasedCampaignStateProvider = HostBasedCampaignStateProvider;\nvar FileBasedCampaignStateProvider = /** @class */ (function () {\n function FileBasedCampaignStateProvider(storage) {\n if (!storage) {\n throw new Error(\"storage must not be null\");\n }\n this.storage = storage;\n }\n // @Override\n FileBasedCampaignStateProvider.prototype.load = function () {\n var readString = this.storage.read(floodgate_shared_typings_1.FloodgateStorageProviderFileType.CampaignStates);\n if (!readString) {\n return [];\n }\n var fileData;\n try {\n fileData = JSON.parse(readString);\n var result_1 = [];\n if (fileData && fileData.CampaignStates) {\n fileData.CampaignStates.forEach(function (state) {\n var newState = CampaignState.deserialize(state);\n if (newState) {\n result_1.push(newState);\n }\n });\n }\n return result_1;\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FileBasedCampaignStateProvider.Load.Failed, { ErrorMessage: \"Json parsing/deserializing failed. \" + e.toString() + \". Input:\" + readString });\n return [];\n }\n };\n // @Override\n FileBasedCampaignStateProvider.prototype.save = function (campaignStates) {\n if (!campaignStates) {\n return;\n }\n var fileData = new FileData();\n fileData.CampaignStates = campaignStates;\n var writeString = JSON.stringify(fileData);\n this.storage.write(floodgate_shared_typings_1.FloodgateStorageProviderFileType.CampaignStates, writeString);\n };\n return FileBasedCampaignStateProvider;\n}());\nexports.FileBasedCampaignStateProvider = FileBasedCampaignStateProvider;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0NhbXBhaWduL0NhbXBhaWduU3RhdGVQcm92aWRlci50cz9iZTAxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZLQU8wQztBQUMxQyxvR0FBOEM7QUFDOUMsc0hBQXFEO0FBQ3JELG1JQUFnRTtBQUNoRSxzRkFBa0M7QUFHMUIsa0JBQWMsR0FBNEUsS0FBSyxlQUFqRixFQUFFLFNBQVMsR0FBaUUsS0FBSyxVQUF0RSxFQUFFLE1BQU0sR0FBeUQsS0FBSyxPQUE5RCxFQUFFLEtBQUssR0FBa0QsS0FBSyxNQUF2RCxFQUFFLFFBQVEsR0FBd0MsS0FBSyxTQUE3QyxFQUFFLG1CQUFtQixHQUFtQixLQUFLLG9CQUF4QixFQUFFLFlBQVksR0FBSyxLQUFLLGFBQVYsQ0FBVztBQUV4RztJQTRGQyx1QkFBWSxVQUFrQixFQUFFLGtCQUF3QixFQUFFLHlCQUFpQyxFQUFFLDJCQUFtQyxFQUMvSCxjQUF1QixFQUFFLFdBQW9CLEVBQUUseUJBQWtDLEVBQUUsdUJBQTZCLEVBQ2hILFlBQW9CLEVBQUUsbUJBQXlCLEVBQUUsd0JBQThCLEVBQUUsc0JBQTRCO1FBQzdHLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQztRQUNoRCxJQUFJLENBQUMseUJBQXlCLEdBQUcseUJBQXlCLENBQUM7UUFDM0QsSUFBSSxDQUFDLDJCQUEyQixHQUFHLDJCQUEyQixDQUFDO1FBQy9ELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyx5QkFBeUIsR0FBRyx5QkFBeUIsQ0FBQztRQUMzRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsdUJBQXVCLENBQUM7UUFDMUQsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7UUFDakMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLG1CQUFt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LDBCQUFjLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDekQsRUFBRSxZQUFZLEVBQUUscUNBQXFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3BHLE9BQU8sRUFBRSxDQUFDO1NBQ1Y7SUFDRixDQUFDO0lBRUQsWUFBWTtJQUNMLDZDQUFJLEdBQVgsVUFBWSxjQUErQjtRQUMxQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BCLE9BQU87U0FDUDtRQUVELElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7UUFDaEMsUUFBUSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDekMsSUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQywyREFBUSxDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0YscUNBQUM7QUFBRCxDQUFDO0FBckRZLHdFQUE4QiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0NhbXBhaWduL0NhbXBhaWduU3RhdGVQcm92aWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Rmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGUgYXMgRmlsZVR5cGUsXHJcblx0SUNhbXBhaWduU3RhdGUsXHJcblx0SUNhbXBhaWduU3RhdGVQcm92aWRlcixcclxuXHRJRmxvb2RnYXRlU2V0dGluZyxcclxuXHRJRmxvb2RnYXRlU2V0dGluZ1N0b3JhZ2VDYWxsYmFjayxcclxuXHRJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4uL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5pbXBvcnQgKiBhcyBTdGF0ZVByb3ZpZGVySGVscGVycyBmcm9tIFwiLi4vU3RhdGVQcm92aWRlckhlbHBlcnNcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCBTdGF0ZUxpc3RUeXBlID0gU3RhdGVQcm92aWRlckhlbHBlcnMuU3RhdGVMaXN0VHlwZTtcclxuXHJcbmNvbnN0IHsgZ2V0RGlzdGFudFBhc3QsIGlzQm9vbGVhbiwgaXNEYXRlLCBpc05PVSwgaXNTdHJpbmcsIGlzVXRjRGF0ZXRpbWVTdHJpbmcsIHN0cmluZ1RvRGF0ZSB9ID0gVXRpbHM7XHJcblxyXG5leHBvcnQgY2xhc3MgQ2FtcGFpZ25TdGF0ZSBpbXBsZW1lbnRzIElDYW1wYWlnblN0YXRlIHtcclxuXHQvKipcclxuXHQgKiBNZXRob2QgdG8gZGVzZXJpYWxpemUgYSBKU09OIG9iamVjdCB0byBjbGFzcyBvYmplY3RcclxuXHQgKiBAcGFyYW0gaW5wdXQ6IEpTT04gb2JqZWN0XHJcblx0ICogUmV0dXJucyBjbGFzcyBvYmplY3RcclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBDYW1wYWlnblN0YXRlIHtcclxuXHRcdGxldCByZXN1bHQ6IENhbXBhaWduU3RhdGU7XHJcblxyXG5cdFx0aWYgKCFpbnB1dCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXN1bHQgPSBuZXcgQ2FtcGFpZ25TdGF0ZShcclxuXHRcdFx0XHRpbnB1dC5DYW1wYWlnbklkLFxyXG5cdFx0XHRcdGlucHV0Lkxhc3ROb21pbmF0aW9uVGltZVV0YyxcclxuXHRcdFx0XHRpbnB1dC5MYXN0Tm9taW5hdGlvbkJ1aWxkTnVtYmVyLFxyXG5cdFx0XHRcdGlucHV0LkRlbGV0ZUFmdGVyU2Vjb25kc1doZW5TdGFsZSxcclxuXHRcdFx0XHRmYWxzZSwgLy8gRm9yY2VDYW5kaWRhY3lcclxuXHRcdFx0XHRpbnB1dC5Jc0NhbmRpZGF0ZSxcclxuXHRcdFx0XHRpbnB1dC5EaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5LFxyXG5cdFx0XHRcdGlucHV0Lkxhc3RTdXJ2ZXlBY3RpdmF0ZWRUaW1lVXRjLFxyXG5cdFx0XHRcdGlucHV0Lkxhc3RTdXJ2ZXlJZCxcclxuXHRcdFx0XHRpbnB1dC5MYXN0U3VydmV5U3RhcnRUaW1lVXRjLFxyXG5cdFx0XHRcdGlucHV0Lkxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZVV0YyxcclxuXHRcdFx0XHRpbnB1dC5MYXN0Q29vbGRvd25FbmRUaW1lVXRjLFxyXG5cdFx0XHQpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkNhbXBhaWduU3RhdGUuRGVzZXJpYWxpemUuRmFpbGVkLCB7IEVycm9yTWVzc2FnZTogZS50b1N0cmluZygpIH0pO1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gVGhlIENhbXBhaWduIHRvIHdoaWNoIHRoaXMgc3RhdGUgY29ycmVzcG9uZHNcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJDYW1wYWlnbklkXCIpXHJcblx0cHVibGljIENhbXBhaWduSWQ6IHN0cmluZztcclxuXHJcblx0Ly8gVGhlIGxhc3QgdGltZSB0aGUgY2FuZGlkYWN5IHdhcyBldmFsdWF0ZWRcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJMYXN0Tm9taW5hdGlvblRpbWVVdGNcIilcclxuXHRwdWJsaWMgTGFzdE5vbWluYXRpb25UaW1lVXRjOiBEYXRlO1xyXG5cclxuXHQvLyBUaGUgYnVpbGQgbnVtYmVyIGZyb20gdGhlIGxhc3QgdGltZSB0aGUgY2FuZGlkYWN5IHdhcyBldmFsdWF0ZWRcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJMYXN0Tm9taW5hdGlvbkJ1aWxkTnVtYmVyXCIpXHJcblx0cHVibGljIExhc3ROb21pbmF0aW9uQnVpbGROdW1iZXI6IHN0cmluZztcclxuXHJcblx0Ly8gQW1vdW50IG9mIHRpbWUgdG8gZGVsYXkgY2xlYW51cCBvZiB0aGlzIHN0YXRlIGZyb20gc3RvcmFnZSwgd2hlbiBpdCdzIGNhbXBhaWduIGRlZmluaXRpb24gaXMgbm8gbG9uZ2VyIHByZXNlbnRcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJEZWxldGVBZnRlclNlY29uZHNXaGVuU3RhbGVcIilcclxuXHRwdWJsaWMgRGVsZXRlQWZ0ZXJTZWNvbmRzV2hlblN0YWxlOiBudW1iZXI7XHJcblxyXG5cdC8vIE1hbnVhbCBzZXR0aW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9yY2UgdGhpcyBjbGllbnQgdG8gYmUgYSBjYW5kaWRhdGUgZm9yIHRoaXMgY2FtcGFpZ24uIE5vdCBwZXJzaXN0ZWQgdG8gdGhlIGZpbGUuXHJcblx0cHVibGljIEZvcmNlQ2FuZGlkYWN5OiBib29sZWFuO1xyXG5cclxuXHQvLyBXaGV0aGVyIG9yIG5vdCB0aGUgdXNlciBpcyBjdXJyZW50bHkgYSBjYW5kaWRhdGUgb3IgYW50aS1jYW5kaWRhdGVcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJJc0NhbmRpZGF0ZVwiKVxyXG5cdHB1YmxpYyBJc0NhbmRpZGF0ZTogYm9vbGVhbjtcclxuXHJcblx0Ly8gV2hldGhlciBvciBub3QgdGhlIHVzZXIgdHJpZ2dlcmVkIGEgc3VydmV5IHdoZW4gdGhleSBhcmUgYSBDYW5kaWRhdGUuXHJcblx0Ly8gSWYgaXNDYW5kaWRhdGUgaXMgZmFsc2UsIHRoZW4gdGhpcyB2YWx1ZSBpcyBtZWFuaW5nbGVzcy5cclxuXHQvLyBJZiBpc0NhbmRpZGF0ZSBpcyB0cnVlLCB0aGVuIHRoaXMgaXMgdXNlZCB0byBwaWNrIGEgZGlmZmVyZW50IGNhbXBhaWduIGNvb2xkb3duIHRpbWVcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJEaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5XCIpXHJcblx0cHVibGljIERpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXk6IGJvb2xlYW47XHJcblxyXG5cdC8vIFRoZSBkYXRlIHRoZSBsYXN0IHN1cnZleSB3YXMgYWN0aXZhdGVkXHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGNcIilcclxuXHRwdWJsaWMgTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGM6IERhdGU7XHJcblxyXG5cdC8vIHJlZ2lvbiBQcm9wZXJ0aWVzIG9mIHRoZSBtb3N0IHJlY2VudGx5IGdlbmVyYXRlZCBzdXJ2ZXkuXHUwMDEwXHJcblxyXG5cdC8vIFdoZW4gaXNDYW5kaWRhdGUgPT0gdHJ1ZSBmb3IgdGhlIGN1cnJlbnQgZWxlY3Rpb24gdGltZSwgdGhpcyBpcyB1c2VkIHRvIHJlZ2VuZXJhdGUgdGhlIHNhbWUgU3VydmV5IGRlZmluaXRpb25cclxuXHQvLyBlYWNoIHRpbWUgd2UgYXJlIGludm9rZWRcclxuXHQvLyBDb25zaWRlcjogUHV0dGluZyB0aGlzIGluIGl0cyBvd24gc3ViY2xhc3NcclxuXHJcblx0Ly8gVGhlIHN1cnZleUlkIGZvciB0aGUgbW9zdCByZWNlbnRseSBnZW5lcmF0ZWQgc3VydmV5IGluIHRoaXMgY2FtcGFpZ24gKGNhbiBkaWZmZXIgZnJvbSBjYW1wYWlnbklkLCBhbmQgaXNcclxuXHQvLyB1c2VkIHRvIGd1YXJhbnRlZSBhIGdpdmVuIHN1cnZleSBpcyBzaG93biBvbmNlKVxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkxhc3RTdXJ2ZXlJZFwiKVxyXG5cdHB1YmxpYyBMYXN0U3VydmV5SWQ6IHN0cmluZztcclxuXHJcblx0Ly8gVGhlIHN0YXJ0IHRpbWUgb2YgdGhlIG1vc3QgcmVjZW50bHkgZ2VuZXJhdGVkIHN1cnZleVxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGNcIilcclxuXHRwdWJsaWMgTGFzdFN1cnZleVN0YXJ0VGltZVV0YzogRGF0ZTtcclxuXHJcblx0Ly8gVGhlIGV4cGlyYXRpb24gdGltZSBvZiB0aGUgbW9zdCByZWNlbnRseSBnZW5lcmF0ZWQgc3VydmV5XHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiTGFzdFN1cnZleUV4cGlyYXRpb25UaW1lVXRjXCIpXHJcblx0cHVibGljIExhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZVV0YzogRGF0ZTtcclxuXHJcblx0Ly8gVGhlIGNvb2xkb3duIGVuZCB0aW1lIG9mIHRoZSBtb3N0IHJlY2VudGx5IGdlbmVyYXRlZCBzdXJ2ZXlcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJMYXN0Q29vbGRvd25FbmRUaW1lVXRjXCIpXHJcblx0cHVibGljIExhc3RDb29sZG93bkVuZFRpbWVVdGM6IERhdGU7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGNhbXBhaWduSWQ6IHN0cmluZywgbGFzdE5vbWluYXRpb25UaW1lOiBEYXRlLCBsYXN0Tm9taW5hdGlvbkJ1aWxkTnVtYmVyOiBzdHJpbmcsIGRlbGV0ZUFmdGVyU2Vjb25kc1doZW5TdGFsZTogbnVtYmVyLFxyXG5cdFx0Rm9yY2VDYW5kaWRhY3k6IGJvb2xlYW4sIGlzQ2FuZGlkYXRlOiBib29sZWFuLCBkaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5OiBib29sZWFuLCBsYXN0U3VydmV5QWN0aXZhdGVkVGltZTogRGF0ZSxcclxuXHRcdGxhc3RTdXJ2ZXlJZDogc3RyaW5nLCBsYXN0U3VydmV5U3RhcnRUaW1lOiBEYXRlLCBsYXN0U3VydmV5RXhwaXJhdGlvblRpbWU6IERhdGUsIGxhc3RDb29sZG93bkVuZFRpbWVVdGM6IERhdGUpIHtcclxuXHRcdHRoaXMuQ2FtcGFpZ25JZCA9IGNhbXBhaWduSWQ7XHJcblx0XHR0aGlzLkxhc3ROb21pbmF0aW9uVGltZVV0YyA9IGxhc3ROb21pbmF0aW9uVGltZTtcclxuXHRcdHRoaXMuTGFzdE5vbWluYXRpb25CdWlsZE51bWJlciA9IGxhc3ROb21pbmF0aW9uQnVpbGROdW1iZXI7XHJcblx0XHR0aGlzLkRlbGV0ZUFmdGVyU2Vjb25kc1doZW5TdGFsZSA9IGRlbGV0ZUFmdGVyU2Vjb25kc1doZW5TdGFsZTtcclxuXHRcdHRoaXMuRm9yY2VDYW5kaWRhY3kgPSBGb3JjZUNhbmRpZGFjeTtcclxuXHRcdHRoaXMuSXNDYW5kaWRhdGUgPSBpc0NhbmRpZGF0ZTtcclxuXHRcdHRoaXMuRGlkQ2FuZGlkYXRlVHJpZ2dlclN1cnZleSA9IGRpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXk7XHJcblx0XHR0aGlzLkxhc3RTdXJ2ZXlBY3RpdmF0ZWRUaW1lVXRjID0gbGFzdFN1cnZleUFjdGl2YXRlZFRpbWU7XHJcblx0XHR0aGlzLkxhc3RTdXJ2ZXlJZCA9IGxhc3RTdXJ2ZXlJZDtcclxuXHRcdHRoaXMuTGFzdFN1cnZleVN0YXJ0VGltZVV0YyA9IGxhc3RTdXJ2ZXlTdGFydFRpbWU7XHJcblx0XHR0aGlzLkxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZVV0YyA9IGxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZTtcclxuXHRcdHRoaXMuTGFzdENvb2xkb3duRW5kVGltZVV0YyA9IGxhc3RDb29sZG93bkVuZFRpbWVVdGM7XHJcblxyXG5cdFx0aWYgKCF0aGlzLnZhbGlkYXRlKCkpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ29uc3RydWN0b3IgYXJndW1lbnRzIGFyZSBub3QgdmFsaWRcIik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXRoaXMuQ2FtcGFpZ25JZCB8fCAhaXNTdHJpbmcodGhpcy5DYW1wYWlnbklkKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKHRoaXMuTGFzdE5vbWluYXRpb25CdWlsZE51bWJlcilcclxuXHRcdFx0fHwgIWlzU3RyaW5nKHRoaXMuTGFzdE5vbWluYXRpb25CdWlsZE51bWJlcikpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghVXRpbHMuaXNOdW1iZXIodGhpcy5EZWxldGVBZnRlclNlY29uZHNXaGVuU3RhbGUpIHx8IHRoaXMuRGVsZXRlQWZ0ZXJTZWNvbmRzV2hlblN0YWxlIDwgMCkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFpc0Jvb2xlYW4odGhpcy5Jc0NhbmRpZGF0ZSkgfHwgIWlzQm9vbGVhbih0aGlzLkRpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXkpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5Jc0NhbmRpZGF0ZSkge1xyXG5cdFx0XHQvLyBEaXNhbGxvdyB0aGUgZm9sbG93aW5nIG51bGwncyBpZiBpc0NhbmRpZGF0ZSA9PSB0cnVlXHJcblx0XHRcdGlmIChpc05PVSh0aGlzLkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGMpIHx8IGlzTk9VKHRoaXMuTGFzdFN1cnZleUV4cGlyYXRpb25UaW1lVXRjKSkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTGFzdFN1cnZleUlkIGNvdWxkIGJlIFwiXCJcclxuXHRcdFx0aWYgKCFpc1N0cmluZyh0aGlzLkxhc3RTdXJ2ZXlJZCkpIHtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5EaWRDYW5kaWRhdGVUcmlnZ2VyU3VydmV5KSB7XHJcblx0XHRcdC8vIERpc2FsbG93IHRoZSBmb2xsb3dpbmcgbnVsbCdzIGlmIGRpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXkgPT0gdHJ1ZVxyXG5cdFx0XHRpZiAoaXNOT1UodGhpcy5MYXN0U3VydmV5QWN0aXZhdGVkVGltZVV0YykpIHtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5MYXN0U3VydmV5SWQpKSB7XHJcblx0XHRcdHRoaXMuTGFzdFN1cnZleUlkID0gXCJcIjtcclxuXHRcdH0gZWxzZSBpZiAoIWlzU3RyaW5nKHRoaXMuTGFzdFN1cnZleUlkKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTGFzdE5vbWluYXRpb25UaW1lIGRvZXMgbm90IGFsbG93IG51bGxcclxuXHRcdGlmIChpc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuTGFzdE5vbWluYXRpb25UaW1lVXRjKSkge1xyXG5cdFx0XHR0aGlzLkxhc3ROb21pbmF0aW9uVGltZVV0YyA9IHN0cmluZ1RvRGF0ZSh0aGlzLkxhc3ROb21pbmF0aW9uVGltZVV0Yyk7XHJcblx0XHRcdC8vIGludmFsaWRhdGUgaWYgaXQncyBub3QgYSBEYXRlIG9iamVjdFxyXG5cdFx0fSBlbHNlIGlmICghaXNEYXRlKHRoaXMuTGFzdE5vbWluYXRpb25UaW1lVXRjKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gU2V0IHZhbHVlIHRvIGRpc3RhbmNlIHBhc3QgaWYgdmFsdWUgbm90IHByb3ZpZGVkXHJcblx0XHRpZiAoaXNOT1UodGhpcy5MYXN0U3VydmV5QWN0aXZhdGVkVGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5MYXN0U3VydmV5QWN0aXZhdGVkVGltZVV0YyA9IGdldERpc3RhbnRQYXN0KCk7XHJcblx0XHRcdC8vIGNoZWNrIGlmIGl0J3MgVVRDIGRhdGUgdGltZSBzdHJpbmcsIHBvc3NpYmx5IGNvbWluZyBmcm9tIGRlc2VyaWFsaXplIG1ldGhvZFxyXG5cdFx0fSBlbHNlIGlmIChpc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGMgPSBzdHJpbmdUb0RhdGUodGhpcy5MYXN0U3VydmV5QWN0aXZhdGVkVGltZVV0Yyk7XHJcblx0XHRcdC8vIGludmFsaWRhdGUgaWYgaXQncyBub3QgYSBEYXRlIG9iamVjdFxyXG5cdFx0fSBlbHNlIGlmICghaXNEYXRlKHRoaXMuTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGMpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBTZXQgdmFsdWUgdG8gZGlzdGFuY2UgcGFzdCBpZiB2YWx1ZSBub3QgcHJvdmlkZWRcclxuXHRcdGlmIChpc05PVSh0aGlzLkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuTGFzdFN1cnZleVN0YXJ0VGltZVV0YyA9IGdldERpc3RhbnRQYXN0KCk7XHJcblx0XHRcdC8vIGNoZWNrIGlmIGl0J3Mgc3RyaW5nLCBwb3NzaWJseSBjb21pbmcgZnJvbSBkZXNlcmlhbGl6ZSBtZXRob2RcclxuXHRcdH0gZWxzZSBpZiAoaXNVdGNEYXRldGltZVN0cmluZyh0aGlzLkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuTGFzdFN1cnZleVN0YXJ0VGltZVV0YyA9IHN0cmluZ1RvRGF0ZSh0aGlzLkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGMpO1xyXG5cdFx0XHQvLyBpbnZhbGlkYXRlIGlmIGl0J3Mgbm90IGEgRGF0ZSBvYmplY3RcclxuXHRcdH0gZWxzZSBpZiAoIWlzRGF0ZSh0aGlzLkxhc3RTdXJ2ZXlTdGFydFRpbWVVdGMpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBTZXQgdmFsdWUgdG8gZGlzdGFuY2UgcGFzdCBpZiB2YWx1ZSBub3QgcHJvdmlkZWRcclxuXHRcdGlmIChpc05PVSh0aGlzLkxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5MYXN0U3VydmV5RXhwaXJhdGlvblRpbWVVdGMgPSBnZXREaXN0YW50UGFzdCgpO1xyXG5cdFx0XHQvLyBjaGVjayBpZiBpdCdzIHN0cmluZywgcG9zc2libHkgY29taW5nIGZyb20gZGVzZXJpYWxpemUgbWV0aG9kXHJcblx0XHR9IGVsc2UgaWYgKGlzVXRjRGF0ZXRpbWVTdHJpbmcodGhpcy5MYXN0U3VydmV5RXhwaXJhdGlvblRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuTGFzdFN1cnZleUV4cGlyYXRpb25UaW1lVXRjID0gc3RyaW5nVG9EYXRlKHRoaXMuTGFzdFN1cnZleUV4cGlyYXRpb25UaW1lVXRjKTtcclxuXHRcdH0gZWxzZSBpZiAoIWlzRGF0ZSh0aGlzLkxhc3RTdXJ2ZXlFeHBpcmF0aW9uVGltZVV0YykpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFNldCB2YWx1ZSB0byBkaXN0YW5jZSBwYXN0IGlmIHZhbHVlIG5vdCBwcm92aWRlZFxyXG5cdFx0aWYgKGlzTk9VKHRoaXMuTGFzdENvb2xkb3duRW5kVGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5MYXN0Q29vbGRvd25FbmRUaW1lVXRjID0gZ2V0RGlzdGFudFBhc3QoKTtcclxuXHRcdFx0Ly8gY2hlY2sgaWYgaXQncyBzdHJpbmcsIHBvc3NpYmx5IGNvbWluZyBmcm9tIGRlc2VyaWFsaXplIG1ldGhvZFxyXG5cdFx0fSBlbHNlIGlmIChpc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuTGFzdENvb2xkb3duRW5kVGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5MYXN0Q29vbGRvd25FbmRUaW1lVXRjID0gc3RyaW5nVG9EYXRlKHRoaXMuTGFzdENvb2xkb3duRW5kVGltZVV0Yyk7XHJcblx0XHR9IGVsc2UgaWYgKCFpc0RhdGUodGhpcy5MYXN0Q29vbGRvd25FbmRUaW1lVXRjKSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBSZWNvcmQgdGhhdCB0aGUgY3VycmVudCBzdXJ2ZXkgd2FzIHRha2VuIG9uIHRoaXMgZGF0ZVxyXG5cdCAqXHJcblx0ICogQHBhcmFtIGRhdGUgZGF0ZVxyXG5cdCAqIEBwYXJhbSBjb29sZG93blNlY29uZHMgbnVtYmVyXHJcblx0ICovXHJcblx0cHVibGljIG1hcmtDdXJyZW50U3VydmV5VGFrZW5PbkRhdGUoZGF0ZTogRGF0ZSwgY29vbGRvd25TZWNvbmRzOiBudW1iZXIsIGlzU3VydmV5Q29tcGxldGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHRcdHRoaXMuRGlkQ2FuZGlkYXRlVHJpZ2dlclN1cnZleSA9IGlzU3VydmV5Q29tcGxldGU7XHJcblx0XHR0aGlzLkxhc3RTdXJ2ZXlBY3RpdmF0ZWRUaW1lVXRjID0gZGF0ZSAhPSBudWxsID8gZGF0ZSA6IG5ldyBEYXRlKCk7XHJcblx0XHR0aGlzLkxhc3RDb29sZG93bkVuZFRpbWVVdGMgPSBVdGlscy5hZGRTZWNvbmRzV2l0aG91dE92ZXJmbG93KHRoaXMuTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGMsIGNvb2xkb3duU2Vjb25kcyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0Q29vbGRvd25TdGFydERhdGUoKTogRGF0ZSB7XHJcblx0XHRpZiAoIXRoaXMuSXNDYW5kaWRhdGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuTGFzdE5vbWluYXRpb25UaW1lVXRjO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLkRpZENhbmRpZGF0ZVRyaWdnZXJTdXJ2ZXkpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuTGFzdFN1cnZleUFjdGl2YXRlZFRpbWVVdGM7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSW4gcHJhY3RpY2UgdGhpcyB3aWwgYmUgZXF1YWwgdG8gbGFzdE5vbWluYXRpb25UaW1lLCBidXRcclxuXHRcdC8vIGRpc3RyaWJ1dGlvbiBtb2RlbHMgbGlrZSBhIHJhbXAgZWZmZWN0aXZlbHkgY2F1c2UgdXMgdG9cclxuXHRcdC8vIHNoaWZ0IG91ciBcImVmZmVjdGl2ZSBub21pbmF0aW9uIGRhdGVcIiBmb3J3YXJkIHdpdGggdGhlIHN1cnZleSBzdGFydCBkYXRlXHJcblx0XHRyZXR1cm4gdGhpcy5MYXN0U3VydmV5U3RhcnRUaW1lVXRjO1xyXG5cdH1cclxuXHJcblx0Ly8gZW5kcmVnaW9uXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDYW1wYWlnblN0YXRlUHJvdmlkZXJGYWN0b3J5IHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZmlsZUJhc2VkU3RvcmFnZTogSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlcixcclxuXHRcdGhvc3RCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrKTogSUNhbXBhaWduU3RhdGVQcm92aWRlciB7XHJcblx0XHRpZiAoaG9zdEJhc2VkU3RvcmFnZSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IEhvc3RCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlcihmaWxlQmFzZWRTdG9yYWdlLCBob3N0QmFzZWRTdG9yYWdlKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbmV3IEZpbGVCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlcihmaWxlQmFzZWRTdG9yYWdlKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgd2hhdCBpcyBzdG9yZWQgaW4gdGhlIGZpbGUuXHJcbiAqL1xyXG5jbGFzcyBGaWxlRGF0YSB7XHJcblx0Ly8gQFNlcmlhbGl6ZWROYW1lKFwiQ2FtcGFpZ25TdGF0ZXNcIilcclxuXHRwdWJsaWMgQ2FtcGFpZ25TdGF0ZXM6IENhbXBhaWduU3RhdGVbXTtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBIb3N0QmFzZWRDYW1wYWlnblN0YXRlUHJvdmlkZXIgaW1wbGVtZW50cyBJQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyIHtcclxuXHRwcml2YXRlIGZpbGVCYXNlZFN0YXRlUHJvdmlkZXI6IElDYW1wYWlnblN0YXRlUHJvdmlkZXI7XHJcblx0cHJpdmF0ZSBob3N0QmFzZWRTdG9yYWdlOiBJRmxvb2RnYXRlU2V0dGluZ1N0b3JhZ2VDYWxsYmFjaztcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGZpbGVCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrKSB7XHJcblx0XHRpZiAoIWhvc3RCYXNlZFN0b3JhZ2UpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiaG9zdC1iYXNlZCBzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5ob3N0QmFzZWRTdG9yYWdlID0gaG9zdEJhc2VkU3RvcmFnZTtcclxuXHJcblx0XHQvLyBmaWxlLWJhc2VkIHByb3ZpZGVyIGlzIG9wdGlvbmFsXHJcblx0XHRpZiAoZmlsZUJhc2VkU3RvcmFnZSkge1xyXG5cdFx0XHR0aGlzLmZpbGVCYXNlZFN0YXRlUHJvdmlkZXIgPSBuZXcgRmlsZUJhc2VkQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyKGZpbGVCYXNlZFN0b3JhZ2UpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGxvYWQoKTogQ2FtcGFpZ25TdGF0ZVtdIHtcclxuXHRcdGNvbnN0IHN0YXRlc0Zyb21Ib3N0OiBDYW1wYWlnblN0YXRlW10gPSB0aGlzLmdldFN0YXRlc0Zyb21Ib3N0KCk7XHJcblxyXG5cdFx0bGV0IHN0YXRlc0Zyb21GaWxlOiBDYW1wYWlnblN0YXRlW107XHJcblx0XHRpZiAodGhpcy5maWxlQmFzZWRTdGF0ZVByb3ZpZGVyKSB7XHJcblx0XHRcdHN0YXRlc0Zyb21GaWxlID0gdGhpcy5maWxlQmFzZWRTdGF0ZVByb3ZpZGVyLmxvYWQoKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBTdGF0ZUNvbGxlY3Rpb25zID0gU3RhdGVQcm92aWRlckhlbHBlcnMuTWVyZ2VBbmRVcGRhdGVDYW1wYWlnblN0YXRlcyhzdGF0ZXNGcm9tRmlsZSwgc3RhdGVzRnJvbUhvc3QpO1xyXG5cdFx0cmV0dXJuIFN0YXRlQ29sbGVjdGlvbnMuZmluZChTdGF0ZUxpc3RUeXBlLk1lcmdlZCk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgc2F2ZShjYW1wYWlnblN0YXRlczogQ2FtcGFpZ25TdGF0ZVtdKTogdm9pZCB7XHJcblx0XHRpZiAoIWNhbXBhaWduU3RhdGVzKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzdGF0ZXNGcm9tSG9zdDogQ2FtcGFpZ25TdGF0ZVtdID0gdGhpcy5nZXRTdGF0ZXNGcm9tSG9zdCgpO1xyXG5cdFx0Y29uc3QgU3RhdGVDb2xsZWN0aW9ucyA9IFN0YXRlUHJvdmlkZXJIZWxwZXJzLk1lcmdlQW5kVXBkYXRlQ2FtcGFpZ25TdGF0ZXMoY2FtcGFpZ25TdGF0ZXMsIHN0YXRlc0Zyb21Ib3N0KTtcclxuXHRcdGNvbnN0IHRvQmVVcGRhdGVkU3RhdGVzOiBDYW1wYWlnblN0YXRlW10gPSBTdGF0ZUNvbGxlY3Rpb25zLmZpbmQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCk7XHJcblx0XHRjb25zdCBtZXJnZWRTdGF0ZXM6IENhbXBhaWduU3RhdGVbXSA9IFN0YXRlQ29sbGVjdGlvbnMuZmluZChTdGF0ZUxpc3RUeXBlLk1lcmdlZCk7XHJcblxyXG5cdFx0Ly8gd3JpdGUgZGVsdGFfZGF0YSB0byBob3N0XHJcblx0XHRpZiAodG9CZVVwZGF0ZWRTdGF0ZXMpIHtcclxuXHRcdFx0dG9CZVVwZGF0ZWRTdGF0ZXMuZm9yRWFjaCgoc3RhdGUpID0+IHtcclxuXHRcdFx0XHRjb25zdCBzdGF0ZVZhbHVlOiBzdHJpbmcgPSBTdGF0ZVByb3ZpZGVySGVscGVycy5tYWtlU2V0dGluZ0l0ZW1WYWx1ZShKU09OLnN0cmluZ2lmeShzdGF0ZSkpO1xyXG5cdFx0XHRcdHRoaXMuaG9zdEJhc2VkU3RvcmFnZS51cHNlcnRTZXR0aW5nSXRlbShGaWxlVHlwZVtGaWxlVHlwZS5DYW1wYWlnblN0YXRlc10sIHN0YXRlLkNhbXBhaWduSWQsIHN0YXRlVmFsdWUpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBXcml0ZSBtZXJnZWQgZGF0YSB0byBGaWxlXHJcblx0XHRpZiAodGhpcy5maWxlQmFzZWRTdGF0ZVByb3ZpZGVyKSB7XHJcblx0XHRcdHRoaXMuZmlsZUJhc2VkU3RhdGVQcm92aWRlci5zYXZlKG1lcmdlZFN0YXRlcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldFN0YXRlc0Zyb21Ib3N0KCk6IENhbXBhaWduU3RhdGVbXSB7XHJcblx0XHRjb25zdCBzdGF0ZXM6IENhbXBhaWduU3RhdGVbXSA9IFtdO1xyXG5cdFx0Y29uc3Qgc2V0dGluZ3M6IElGbG9vZGdhdGVTZXR0aW5nID0gdGhpcy5ob3N0QmFzZWRTdG9yYWdlLnJlYWRTZXR0aW5nTGlzdChGaWxlVHlwZVtGaWxlVHlwZS5DYW1wYWlnblN0YXRlc10pO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHNldHRpbmdzKSB7XHJcblx0XHRcdGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNldHRpbmdzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IHZhbHVlID0gc2V0dGluZ3Nba2V5XTtcclxuXHRcdFx0Y29uc3QgZGF0YVN0cmluZzogc3RyaW5nID0gU3RhdGVQcm92aWRlckhlbHBlcnMuZXh0cmFjdFNldHRpbmdJdGVtVmFsdWVTdWJTdHJpbmcodmFsdWUpO1xyXG5cclxuXHRcdFx0bGV0IGl0ZW1PYmplY3Q6IGFueSA9IHt9O1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGl0ZW1PYmplY3QgPSBKU09OLnBhcnNlKGRhdGFTdHJpbmcpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBuZXdTdGF0ZTogQ2FtcGFpZ25TdGF0ZSA9IENhbXBhaWduU3RhdGUuZGVzZXJpYWxpemUoaXRlbU9iamVjdCk7XHJcblx0XHRcdFx0aWYgKG5ld1N0YXRlKSB7XHJcblx0XHRcdFx0XHRzdGF0ZXMucHVzaChuZXdTdGF0ZSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRcdFRlbGVtZXRyeUV2ZW50Lkhvc3RCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlci5HZXRTdGF0ZXNGcm9tSG9zdC5GYWlsZWQsXHJcblx0XHRcdFx0XHR7IEVycm9yTWVzc2FnZTogXCJKc29uIHBhcnNpbmcvZGVzZXJpYWxpemluZyBmYWlsZWQuIFwiICsgZS50b1N0cmluZygpICsgXCIuICBJbnB1dDpcIiArIGRhdGFTdHJpbmcgfSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gc3RhdGVzO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlciBpbXBsZW1lbnRzIElDYW1wYWlnblN0YXRlUHJvdmlkZXIge1xyXG5cdHByaXZhdGUgc3RvcmFnZTogSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlcjtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIpIHtcclxuXHRcdGlmICghc3RvcmFnZSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBsb2FkKCk6IENhbXBhaWduU3RhdGVbXSB7XHJcblx0XHRjb25zdCByZWFkU3RyaW5nOiBzdHJpbmcgPSB0aGlzLnN0b3JhZ2UucmVhZChGaWxlVHlwZS5DYW1wYWlnblN0YXRlcyk7XHJcblx0XHRpZiAoIXJlYWRTdHJpbmcpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBmaWxlRGF0YTogRmlsZURhdGE7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRmaWxlRGF0YSA9IEpTT04ucGFyc2UocmVhZFN0cmluZyk7XHJcblxyXG5cdFx0XHRjb25zdCByZXN1bHQ6IENhbXBhaWduU3RhdGVbXSA9IFtdO1xyXG5cdFx0XHRpZiAoZmlsZURhdGEgJiYgZmlsZURhdGEuQ2FtcGFpZ25TdGF0ZXMpIHtcclxuXHRcdFx0XHRmaWxlRGF0YS5DYW1wYWlnblN0YXRlcy5mb3JFYWNoKChzdGF0ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgbmV3U3RhdGU6IENhbXBhaWduU3RhdGUgPSBDYW1wYWlnblN0YXRlLmRlc2VyaWFsaXplKHN0YXRlKTtcclxuXHJcblx0XHRcdFx0XHRpZiAobmV3U3RhdGUpIHtcclxuXHRcdFx0XHRcdFx0cmVzdWx0LnB1c2gobmV3U3RhdGUpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZpbGVCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlci5Mb2FkLkZhaWxlZCxcclxuXHRcdFx0XHR7IEVycm9yTWVzc2FnZTogXCJKc29uIHBhcnNpbmcvZGVzZXJpYWxpemluZyBmYWlsZWQuIFwiICsgZS50b1N0cmluZygpICsgXCIuICBJbnB1dDpcIiArIHJlYWRTdHJpbmcgfSk7XHJcblx0XHRcdHJldHVybiBbXTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBzYXZlKGNhbXBhaWduU3RhdGVzOiBDYW1wYWlnblN0YXRlW10pOiB2b2lkIHtcclxuXHRcdGlmICghY2FtcGFpZ25TdGF0ZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGZpbGVEYXRhID0gbmV3IEZpbGVEYXRhKCk7XHJcblx0XHRmaWxlRGF0YS5DYW1wYWlnblN0YXRlcyA9IGNhbXBhaWduU3RhdGVzO1xyXG5cdFx0Y29uc3Qgd3JpdGVTdHJpbmc6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGZpbGVEYXRhKTtcclxuXHRcdHRoaXMuc3RvcmFnZS53cml0ZShGaWxlVHlwZS5DYW1wYWlnblN0YXRlcywgd3JpdGVTdHJpbmcpO1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Campaign/CampaignStateProvider.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Campaign/CampaignSurveyFactory.js": /*!*******************************************************************!*\ !*** ../FloodgateCore/dist/src/Campaign/CampaignSurveyFactory.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CampaignSurveyFactory = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar SurveyEvents_1 = __webpack_require__(/*! ../SurveyEvents */ \"../FloodgateCore/dist/src/SurveyEvents.js\");\nvar SurveyMetadata_1 = __webpack_require__(/*! ../SurveyMetadata */ \"../FloodgateCore/dist/src/SurveyMetadata.js\");\nvar FpsSurvey_1 = __webpack_require__(/*! ../Surveys/FpsSurvey */ \"../FloodgateCore/dist/src/Surveys/FpsSurvey.js\");\nvar GenericMessagingSurfaceSurvey_1 = __webpack_require__(/*! ../Surveys/GenericMessagingSurfaceSurvey */ \"../FloodgateCore/dist/src/Surveys/GenericMessagingSurfaceSurvey.js\");\nvar InterceptSurvey_1 = __webpack_require__(/*! ../Surveys/InterceptSurvey */ \"../FloodgateCore/dist/src/Surveys/InterceptSurvey.js\");\nvar NlqsSurvey_1 = __webpack_require__(/*! ../Surveys/NlqsSurvey */ \"../FloodgateCore/dist/src/Surveys/NlqsSurvey.js\");\nvar NpsSurvey_1 = __webpack_require__(/*! ../Surveys/NpsSurvey */ \"../FloodgateCore/dist/src/Surveys/NpsSurvey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ../Surveys/SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar CampaignDefinitionProvider_1 = __webpack_require__(/*! ./CampaignDefinitionProvider */ \"../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js\");\nvar dateToShortUtcString = Utils.dateToShortUtcString, isNOU = Utils.isNOU;\n/**\n * Contains methods to take a campaign definition + state and generate an ISurvey\n */\nvar CampaignSurveyFactory = /** @class */ (function () {\n function CampaignSurveyFactory() {\n }\n CampaignSurveyFactory.makeSurvey = function (state, definition, stringProvider) {\n if (!state || !definition || !definition.surveyTemplate || !stringProvider) {\n return null;\n }\n var surveyDataSource = CampaignSurveyFactory.makeSurveyDataSourceData(state, definition);\n var surveyModel = definition.surveyTemplate;\n if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateNps5PointStatic) {\n return NpsSurvey_1.default.make5Point(surveyDataSource, stringProvider);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateNps11PointStatic) {\n return NpsSurvey_1.default.make11Point(surveyDataSource, stringProvider);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateFps) {\n return FpsSurvey_1.default.makeFps(surveyDataSource, stringProvider, surveyModel);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateNlqs) {\n return NlqsSurvey_1.default.makeNlqs(surveyDataSource, stringProvider, surveyModel);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateNps) {\n return NpsSurvey_1.default.makeCustom(surveyDataSource, stringProvider, surveyModel);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateGenericMessagingSurface) {\n return GenericMessagingSurfaceSurvey_1.default.makeCustom(surveyDataSource);\n }\n else if (surveyModel instanceof CampaignDefinitionProvider_1.CampaignSurveyTemplateIntercept) {\n return InterceptSurvey_1.default.makeIntercept(surveyDataSource, stringProvider, surveyModel);\n }\n else {\n return null;\n }\n };\n CampaignSurveyFactory.makeSurveyDataSourceData = function (state, definition) {\n if (!state || !definition || !definition.surveyTemplate) {\n return null;\n }\n var surveyModel = definition.surveyTemplate;\n var surveyData = new SurveyDataSource_1.default.SurveyDataSourceData();\n surveyData.activationEvent = CampaignSurveyFactory.makeEvent(state, surveyModel.activationEvent);\n surveyData.metadata = CampaignSurveyFactory.makeMetadata(surveyModel.metadata);\n surveyData.id = state.LastSurveyId;\n surveyData.backEndIdentifier = state.CampaignId;\n surveyData.expirationTimeUtc = dateToShortUtcString(state.LastSurveyExpirationTimeUtc);\n surveyData.governedChannelType = definition.governedChannelType;\n surveyData.startTimeUtc = dateToShortUtcString(state.LastSurveyStartTimeUtc);\n surveyData.additionalDataRequested = definition.additionalDataRequested || [];\n surveyData.launcherType = definition.launcherType || floodgate_shared_typings_1.LAUNCHER_TYPE_DEFAULT;\n surveyData.preferredLaunchType = definition.surveyTemplate.preferredLaunchType || \"Default\" /* Default */;\n surveyData.businessLevel = definition.businessLevel;\n surveyData.tags = definition.tags;\n surveyData.treatmentType = definition.treatmentType;\n if (!isNOU(surveyModel.maxLaunches)) {\n surveyData.maxLaunches = surveyModel.maxLaunches;\n }\n if (!isNOU(surveyModel.maxLaunchesPerSession)) {\n surveyData.maxLaunchesPerSession = surveyModel.maxLaunchesPerSession;\n }\n return surveyData;\n };\n CampaignSurveyFactory.makeCountedActivityEventData = function (eventModel) {\n if (!eventModel) {\n return null;\n }\n var eventData = new SurveyEvents_1.CountedActivityEventData();\n eventData.activity = eventModel.activity;\n eventData.count = eventModel.count;\n eventData.isAggregate = eventModel.isAggregate;\n return eventData;\n };\n CampaignSurveyFactory.makeCountedActivityEvent = function (state, eventModel) {\n if (!state || !eventModel) {\n return null;\n }\n var eventData = CampaignSurveyFactory.makeCountedActivityEventData(eventModel);\n if (!eventData) {\n return null;\n }\n return new SurveyEvents_1.CountedActivityEvent(eventData);\n };\n CampaignSurveyFactory.makeCountedActivitySequenceEvent = function (state, eventModel) {\n if (!state || !eventModel) {\n return null;\n }\n var sequenceEventData = new SurveyEvents_1.CountedActivitySequenceEventData();\n sequenceEventData.sequence = [];\n for (var _i = 0, _a = eventModel.sequence; _i < _a.length; _i++) {\n var event_1 = _a[_i];\n var eventData = CampaignSurveyFactory.makeCountedActivityEventData(event_1);\n if (!eventData) {\n return null;\n }\n sequenceEventData.sequence.push(eventData);\n }\n return new SurveyEvents_1.CountedActivitySequenceEvent(sequenceEventData);\n };\n CampaignSurveyFactory.makeEvent = function (state, eventModel) {\n if (eventModel instanceof CampaignDefinitionProvider_1.CampaignSurveyEventCountedActivity) {\n return CampaignSurveyFactory.makeCountedActivityEvent(state, eventModel);\n }\n else if (eventModel instanceof CampaignDefinitionProvider_1.CampaignSurveyEventCountedActivitySequence) {\n return CampaignSurveyFactory.makeCountedActivitySequenceEvent(state, eventModel);\n }\n else {\n return null;\n }\n };\n CampaignSurveyFactory.makeMetadata = function (metadataModel) {\n if (isNOU(metadataModel) || isNOU(metadataModel.contentMetadata)) {\n return null;\n }\n var metadata = new SurveyMetadata_1.Metadata();\n metadata.contentMetadata = metadataModel.contentMetadata;\n return new SurveyMetadata_1.SurveyMetadata(metadata);\n };\n return CampaignSurveyFactory;\n}());\nexports.CampaignSurveyFactory = CampaignSurveyFactory;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0NhbXBhaWduL0NhbXBhaWduU3VydmV5RmFjdG9yeS50cz8xZGQwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZLQVcwQztBQUMxQyw2R0FLeUI7QUFDekIsbUhBQTZEO0FBQzdELG9IQUE2QztBQUM3QyxnTEFBcUY7QUFDckYsc0lBQXlEO0FBQ3pELHVIQUErQztBQUMvQyxvSEFBNkM7QUFDN0MseUlBQTJEO0FBQzNELHNGQUFrQztBQUNsQywrSkFZc0M7QUFFOUIsd0JBQW9CLEdBQVksS0FBSyxxQkFBakIsRUFBRSxLQUFLLEdBQUssS0FBSyxNQUFWLENBQVc7QUFFOUM7O0dBRUc7QUFDSDtJQUFBO0lBK0hBLENBQUM7SUE5SGMsZ0NBQVUsR0FBeEIsVUFBeUIsS0FBcUIsRUFBRSxVQUErQixFQUFFLGNBQXdDO1FBQ3hILElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQzNFLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFNLGdCQUFnQixHQUFHLHFCQUFxQixDQUFDLHdCQUF3QixDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztRQUMzRixJQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQUksV0FBVyxZQUFZLGtFQUFxQyxFQUFFO1lBQ2pFLE9BQU8sbUJBQVMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7U0FDOUQ7YUFBTSxJQUFJLFdBQVcsWUFBWSxtRUFBc0MsRUFBRTtZQUN6RSxPQUFPLG1CQUFTLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1NBQy9EO2FBQU0sSUFBSSxXQUFXLFlBQVksc0RBQXlCLEVBQUU7WUFDNUQsT0FBTyxtQkFBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDeEU7YUFBTSxJQUFJLFdBQVcsWUFBWSx1REFBMEIsRUFBRTtZQUM3RCxPQUFPLG9CQUFVLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUMsQ0FBQztTQUMxRTthQUFNLElBQUksV0FBVyxZQUFZLHNEQUF5QixFQUFFO1lBQzVELE9BQU8sbUJBQVMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQzNFO2FBQU0sSUFBSSxXQUFXLFlBQVksMEVBQTZDLEVBQUU7WUFDaEYsT0FBTyx1Q0FBNkIsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUNsRTthQUFNLElBQUksV0FBVyxZQUFZLDREQUErQixFQUFFO1lBQ2xFLE9BQU8seUJBQWUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3BGO2FBQU07WUFDTixPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQUVjLDhDQUF3QixHQUF2QyxVQUF3QyxLQUFxQixFQUFFLFVBQStCO1FBQzdGLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1lBQ3hELE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDO1FBQzlDLElBQU0sVUFBVSxHQUFHLElBQUksMEJBQWdCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMvRCxVQUFVLENBQUMsZUFBZSxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLGVBQXNDLENBQUMsQ0FBQztRQUN4SCxVQUFVLENBQUMsUUFBUSxHQUFHLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0UsVUFBVSxDQUFDLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1FBQ25DLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ2hELFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUN2RixVQUFVLENBQUMsbUJBQW1CLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixDQUFDO1FBQ2hFLFVBQVUsQ0FBQyxZQUFZLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDN0UsVUFBVSxDQUFDLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyx1QkFBdUIsSUFBSSxFQUFFLENBQUM7UUFDOUUsVUFBVSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxJQUFJLGdEQUE0QixDQUFDO1FBQ2xGLFVBQVUsQ0FBQyxtQkFBbUIsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLG1CQUFtQiwyQkFBZ0MsQ0FBQztRQUMvRyxVQUFVLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDcEQsVUFBVSxDQUFDLElBQUksR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ2xDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUVwRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNwQyxVQUFVLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUM7U0FDakQ7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQzlDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUM7U0FDckU7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRWMsa0RBQTRCLEdBQTNDLFVBQTRDLFVBQThDO1FBQ3pGLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDaEIsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELElBQU0sU0FBUyxHQUFHLElBQUksdUNBQXdCLEVBQUUsQ0FBQztRQUNqRCxTQUFTLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDekMsU0FBUyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ25DLFNBQVMsQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUUvQyxPQUFPLFNBQVMsQ0FBQztJQUNsQixDQUFDO0lBRWMsOENBQXdCLEdBQXZDLFVBQXdDLEtBQXFCLEVBQUUsVUFBOEM7UUFDNUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsSUFBTSxTQUFTLEdBQTZCLHFCQUFxQixDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsT0FBTyxJQUFJLG1DQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFYyxzREFBZ0MsR0FBL0MsVUFBZ0QsS0FBcUIsRUFDcEUsVUFBc0Q7UUFFdEQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLCtDQUFnQyxFQUFFLENBQUM7UUFDakUsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUVoQyxLQUFvQixVQUFtQixFQUFuQixlQUFVLENBQUMsUUFBUSxFQUFuQixjQUFtQixFQUFuQixJQUFtQixFQUFFO1lBQXBDLElBQU0sT0FBSztZQUNmLElBQU0sU0FBUyxHQUE2QixxQkFBcUIsQ0FBQyw0QkFBNEIsQ0FBQyxPQUFLLENBQUMsQ0FBQztZQUN0RyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNmLE9BQU8sSUFBSSxDQUFDO2FBQ1o7WUFFRCxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLDJDQUE0QixDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVjLCtCQUFTLEdBQXhCLFVBQXlCLEtBQXFCLEVBQUUsVUFBK0I7UUFDOUUsSUFBSSxVQUFVLFlBQVksK0RBQWtDLEVBQUU7WUFDN0QsT0FBTyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsVUFBZ0QsQ0FBQyxDQUFDO1NBQy9HO2FBQU0sSUFBSSxVQUFVLFlBQVksdUVBQTBDLEVBQUU7WUFDNUUsT0FBTyxxQkFBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLEVBQUUsVUFBd0QsQ0FBQyxDQUFDO1NBQy9IO2FBQU07WUFDTixPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQUVjLGtDQUFZLEdBQTNCLFVBQTRCLGFBQXFDO1FBQ2hFLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELElBQU0sUUFBUSxHQUFHLElBQUkseUJBQVEsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxlQUFlLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQztRQUV6RCxPQUFPLElBQUksK0JBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0YsNEJBQUM7QUFBRCxDQUFDO0FBL0hZLHNEQUFxQiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0NhbXBhaWduL0NhbXBhaWduU3VydmV5RmFjdG9yeS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0SUNhbXBhaWduRGVmaW5pdGlvbixcclxuXHRJQ2FtcGFpZ25TdGF0ZSxcclxuXHRJQ291bnRlZEFjdGl2aXR5RXZlbnQsXHJcblx0SUNvdW50ZWRBY3Rpdml0eVNlcXVlbmNlRXZlbnQsXHJcblx0SUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdElTdXJ2ZXksXHJcblx0SVN1cnZleUV2ZW50LFxyXG5cdElTdXJ2ZXlNZXRhZGF0YSxcclxuXHRMQVVOQ0hFUl9UWVBFX0RFRkFVTFQgYXMgU1VSVkVZX0xBVU5DSEVSX1RZUEVfREVGQVVMVCxcclxuXHRTdXJ2ZXlJbmZvTGF1bmNoVHlwZSxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0IHtcclxuXHRDb3VudGVkQWN0aXZpdHlFdmVudCxcclxuXHRDb3VudGVkQWN0aXZpdHlFdmVudERhdGEsXHJcblx0Q291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudCxcclxuXHRDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50RGF0YSxcclxufSBmcm9tIFwiLi4vU3VydmV5RXZlbnRzXCI7XHJcbmltcG9ydCB7IE1ldGFkYXRhLCBTdXJ2ZXlNZXRhZGF0YSB9IGZyb20gXCIuLi9TdXJ2ZXlNZXRhZGF0YVwiO1xyXG5pbXBvcnQgRnBzU3VydmV5IGZyb20gXCIuLi9TdXJ2ZXlzL0Zwc1N1cnZleVwiO1xyXG5pbXBvcnQgR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkgZnJvbSBcIi4uL1N1cnZleXMvR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXlcIjtcclxuaW1wb3J0IEludGVyY2VwdFN1cnZleSBmcm9tIFwiLi4vU3VydmV5cy9JbnRlcmNlcHRTdXJ2ZXlcIjtcclxuaW1wb3J0IE5scXNTdXJ2ZXkgZnJvbSBcIi4uL1N1cnZleXMvTmxxc1N1cnZleVwiO1xyXG5pbXBvcnQgTnBzU3VydmV5IGZyb20gXCIuLi9TdXJ2ZXlzL05wc1N1cnZleVwiO1xyXG5pbXBvcnQgU3VydmV5RGF0YVNvdXJjZSBmcm9tIFwiLi4vU3VydmV5cy9TdXJ2ZXlEYXRhU291cmNlXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuLi9VdGlsc1wiO1xyXG5pbXBvcnQge1xyXG5cdENhbXBhaWduU3VydmV5RXZlbnQsXHJcblx0Q2FtcGFpZ25TdXJ2ZXlFdmVudENvdW50ZWRBY3Rpdml0eSxcclxuXHRDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2UsXHJcblx0Q2FtcGFpZ25TdXJ2ZXlNZXRhZGF0YSxcclxuXHRDYW1wYWlnblN1cnZleVRlbXBsYXRlRnBzLFxyXG5cdENhbXBhaWduU3VydmV5VGVtcGxhdGVHZW5lcmljTWVzc2FnaW5nU3VyZmFjZSxcclxuXHRDYW1wYWlnblN1cnZleVRlbXBsYXRlSW50ZXJjZXB0LFxyXG5cdENhbXBhaWduU3VydmV5VGVtcGxhdGVObHFzLFxyXG5cdENhbXBhaWduU3VydmV5VGVtcGxhdGVOcHMsXHJcblx0Q2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5wczExUG9pbnRTdGF0aWMsXHJcblx0Q2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5wczVQb2ludFN0YXRpYyxcclxufSBmcm9tIFwiLi9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlclwiO1xyXG5cclxuY29uc3QgeyBkYXRlVG9TaG9ydFV0Y1N0cmluZywgaXNOT1UgfSA9IFV0aWxzO1xyXG5cclxuLyoqXHJcbiAqIENvbnRhaW5zIG1ldGhvZHMgdG8gdGFrZSBhIGNhbXBhaWduIGRlZmluaXRpb24gKyBzdGF0ZSBhbmQgZ2VuZXJhdGUgYW4gSVN1cnZleVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENhbXBhaWduU3VydmV5RmFjdG9yeSB7XHJcblx0cHVibGljIHN0YXRpYyBtYWtlU3VydmV5KHN0YXRlOiBJQ2FtcGFpZ25TdGF0ZSwgZGVmaW5pdGlvbjogSUNhbXBhaWduRGVmaW5pdGlvbiwgc3RyaW5nUHJvdmlkZXI6IElGbG9vZGdhdGVTdHJpbmdQcm92aWRlcik6IElTdXJ2ZXkge1xyXG5cdFx0aWYgKCFzdGF0ZSB8fCAhZGVmaW5pdGlvbiB8fCAhZGVmaW5pdGlvbi5zdXJ2ZXlUZW1wbGF0ZSB8fCAhc3RyaW5nUHJvdmlkZXIpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3VydmV5RGF0YVNvdXJjZSA9IENhbXBhaWduU3VydmV5RmFjdG9yeS5tYWtlU3VydmV5RGF0YVNvdXJjZURhdGEoc3RhdGUsIGRlZmluaXRpb24pO1xyXG5cdFx0Y29uc3Qgc3VydmV5TW9kZWwgPSBkZWZpbml0aW9uLnN1cnZleVRlbXBsYXRlO1xyXG5cdFx0aWYgKHN1cnZleU1vZGVsIGluc3RhbmNlb2YgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5wczVQb2ludFN0YXRpYykge1xyXG5cdFx0XHRyZXR1cm4gTnBzU3VydmV5Lm1ha2U1UG9pbnQoc3VydmV5RGF0YVNvdXJjZSwgc3RyaW5nUHJvdmlkZXIpO1xyXG5cdFx0fSBlbHNlIGlmIChzdXJ2ZXlNb2RlbCBpbnN0YW5jZW9mIENhbXBhaWduU3VydmV5VGVtcGxhdGVOcHMxMVBvaW50U3RhdGljKSB7XHJcblx0XHRcdHJldHVybiBOcHNTdXJ2ZXkubWFrZTExUG9pbnQoc3VydmV5RGF0YVNvdXJjZSwgc3RyaW5nUHJvdmlkZXIpO1xyXG5cdFx0fSBlbHNlIGlmIChzdXJ2ZXlNb2RlbCBpbnN0YW5jZW9mIENhbXBhaWduU3VydmV5VGVtcGxhdGVGcHMpIHtcclxuXHRcdFx0cmV0dXJuIEZwc1N1cnZleS5tYWtlRnBzKHN1cnZleURhdGFTb3VyY2UsIHN0cmluZ1Byb3ZpZGVyLCBzdXJ2ZXlNb2RlbCk7XHJcblx0XHR9IGVsc2UgaWYgKHN1cnZleU1vZGVsIGluc3RhbmNlb2YgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZU5scXMpIHtcclxuXHRcdFx0cmV0dXJuIE5scXNTdXJ2ZXkubWFrZU5scXMoc3VydmV5RGF0YVNvdXJjZSwgc3RyaW5nUHJvdmlkZXIsIHN1cnZleU1vZGVsKTtcclxuXHRcdH0gZWxzZSBpZiAoc3VydmV5TW9kZWwgaW5zdGFuY2VvZiBDYW1wYWlnblN1cnZleVRlbXBsYXRlTnBzKSB7XHJcblx0XHRcdHJldHVybiBOcHNTdXJ2ZXkubWFrZUN1c3RvbShzdXJ2ZXlEYXRhU291cmNlLCBzdHJpbmdQcm92aWRlciwgc3VydmV5TW9kZWwpO1xyXG5cdFx0fSBlbHNlIGlmIChzdXJ2ZXlNb2RlbCBpbnN0YW5jZW9mIENhbXBhaWduU3VydmV5VGVtcGxhdGVHZW5lcmljTWVzc2FnaW5nU3VyZmFjZSkge1xyXG5cdFx0XHRyZXR1cm4gR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkubWFrZUN1c3RvbShzdXJ2ZXlEYXRhU291cmNlKTtcclxuXHRcdH0gZWxzZSBpZiAoc3VydmV5TW9kZWwgaW5zdGFuY2VvZiBDYW1wYWlnblN1cnZleVRlbXBsYXRlSW50ZXJjZXB0KSB7XHJcblx0XHRcdHJldHVybiBJbnRlcmNlcHRTdXJ2ZXkubWFrZUludGVyY2VwdChzdXJ2ZXlEYXRhU291cmNlLCBzdHJpbmdQcm92aWRlciwgc3VydmV5TW9kZWwpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBtYWtlU3VydmV5RGF0YVNvdXJjZURhdGEoc3RhdGU6IElDYW1wYWlnblN0YXRlLCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uKTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YSB7XHJcblx0XHRpZiAoIXN0YXRlIHx8ICFkZWZpbml0aW9uIHx8ICFkZWZpbml0aW9uLnN1cnZleVRlbXBsYXRlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHN1cnZleU1vZGVsID0gZGVmaW5pdGlvbi5zdXJ2ZXlUZW1wbGF0ZTtcclxuXHRcdGNvbnN0IHN1cnZleURhdGEgPSBuZXcgU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YSgpO1xyXG5cdFx0c3VydmV5RGF0YS5hY3RpdmF0aW9uRXZlbnQgPSBDYW1wYWlnblN1cnZleUZhY3RvcnkubWFrZUV2ZW50KHN0YXRlLCBzdXJ2ZXlNb2RlbC5hY3RpdmF0aW9uRXZlbnQgYXMgQ2FtcGFpZ25TdXJ2ZXlFdmVudCk7XHJcblx0XHRzdXJ2ZXlEYXRhLm1ldGFkYXRhID0gQ2FtcGFpZ25TdXJ2ZXlGYWN0b3J5Lm1ha2VNZXRhZGF0YShzdXJ2ZXlNb2RlbC5tZXRhZGF0YSk7XHJcblx0XHRzdXJ2ZXlEYXRhLmlkID0gc3RhdGUuTGFzdFN1cnZleUlkO1xyXG5cdFx0c3VydmV5RGF0YS5iYWNrRW5kSWRlbnRpZmllciA9IHN0YXRlLkNhbXBhaWduSWQ7XHJcblx0XHRzdXJ2ZXlEYXRhLmV4cGlyYXRpb25UaW1lVXRjID0gZGF0ZVRvU2hvcnRVdGNTdHJpbmcoc3RhdGUuTGFzdFN1cnZleUV4cGlyYXRpb25UaW1lVXRjKTtcclxuXHRcdHN1cnZleURhdGEuZ292ZXJuZWRDaGFubmVsVHlwZSA9IGRlZmluaXRpb24uZ292ZXJuZWRDaGFubmVsVHlwZTtcclxuXHRcdHN1cnZleURhdGEuc3RhcnRUaW1lVXRjID0gZGF0ZVRvU2hvcnRVdGNTdHJpbmcoc3RhdGUuTGFzdFN1cnZleVN0YXJ0VGltZVV0Yyk7XHJcblx0XHRzdXJ2ZXlEYXRhLmFkZGl0aW9uYWxEYXRhUmVxdWVzdGVkID0gZGVmaW5pdGlvbi5hZGRpdGlvbmFsRGF0YVJlcXVlc3RlZCB8fCBbXTtcclxuXHRcdHN1cnZleURhdGEubGF1bmNoZXJUeXBlID0gZGVmaW5pdGlvbi5sYXVuY2hlclR5cGUgfHwgU1VSVkVZX0xBVU5DSEVSX1RZUEVfREVGQVVMVDtcclxuXHRcdHN1cnZleURhdGEucHJlZmVycmVkTGF1bmNoVHlwZSA9IGRlZmluaXRpb24uc3VydmV5VGVtcGxhdGUucHJlZmVycmVkTGF1bmNoVHlwZSB8fCBTdXJ2ZXlJbmZvTGF1bmNoVHlwZS5EZWZhdWx0O1xyXG5cdFx0c3VydmV5RGF0YS5idXNpbmVzc0xldmVsID0gZGVmaW5pdGlvbi5idXNpbmVzc0xldmVsO1xyXG5cdFx0c3VydmV5RGF0YS50YWdzID0gZGVmaW5pdGlvbi50YWdzO1xyXG5cdFx0c3VydmV5RGF0YS50cmVhdG1lbnRUeXBlID0gZGVmaW5pdGlvbi50cmVhdG1lbnRUeXBlO1xyXG5cclxuXHRcdGlmICghaXNOT1Uoc3VydmV5TW9kZWwubWF4TGF1bmNoZXMpKSB7XHJcblx0XHRcdHN1cnZleURhdGEubWF4TGF1bmNoZXMgPSBzdXJ2ZXlNb2RlbC5tYXhMYXVuY2hlcztcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIWlzTk9VKHN1cnZleU1vZGVsLm1heExhdW5jaGVzUGVyU2Vzc2lvbikpIHtcclxuXHRcdFx0c3VydmV5RGF0YS5tYXhMYXVuY2hlc1BlclNlc3Npb24gPSBzdXJ2ZXlNb2RlbC5tYXhMYXVuY2hlc1BlclNlc3Npb247XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHN1cnZleURhdGE7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBtYWtlQ291bnRlZEFjdGl2aXR5RXZlbnREYXRhKGV2ZW50TW9kZWw6IENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkpOiBDb3VudGVkQWN0aXZpdHlFdmVudERhdGEge1xyXG5cdFx0aWYgKCFldmVudE1vZGVsKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGV2ZW50RGF0YSA9IG5ldyBDb3VudGVkQWN0aXZpdHlFdmVudERhdGEoKTtcclxuXHRcdGV2ZW50RGF0YS5hY3Rpdml0eSA9IGV2ZW50TW9kZWwuYWN0aXZpdHk7XHJcblx0XHRldmVudERhdGEuY291bnQgPSBldmVudE1vZGVsLmNvdW50O1xyXG5cdFx0ZXZlbnREYXRhLmlzQWdncmVnYXRlID0gZXZlbnRNb2RlbC5pc0FnZ3JlZ2F0ZTtcclxuXHJcblx0XHRyZXR1cm4gZXZlbnREYXRhO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdGF0aWMgbWFrZUNvdW50ZWRBY3Rpdml0eUV2ZW50KHN0YXRlOiBJQ2FtcGFpZ25TdGF0ZSwgZXZlbnRNb2RlbDogQ2FtcGFpZ25TdXJ2ZXlFdmVudENvdW50ZWRBY3Rpdml0eSk6IElDb3VudGVkQWN0aXZpdHlFdmVudCB7XHJcblx0XHRpZiAoIXN0YXRlIHx8ICFldmVudE1vZGVsKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGV2ZW50RGF0YTogQ291bnRlZEFjdGl2aXR5RXZlbnREYXRhID0gQ2FtcGFpZ25TdXJ2ZXlGYWN0b3J5Lm1ha2VDb3VudGVkQWN0aXZpdHlFdmVudERhdGEoZXZlbnRNb2RlbCk7XHJcblx0XHRpZiAoIWV2ZW50RGF0YSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbmV3IENvdW50ZWRBY3Rpdml0eUV2ZW50KGV2ZW50RGF0YSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBtYWtlQ291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudChzdGF0ZTogSUNhbXBhaWduU3RhdGUsXHJcblx0XHRldmVudE1vZGVsOiBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2UpOiBJQ291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudCB7XHJcblxyXG5cdFx0aWYgKCFzdGF0ZSB8fCAhZXZlbnRNb2RlbCkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzZXF1ZW5jZUV2ZW50RGF0YSA9IG5ldyBDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50RGF0YSgpO1xyXG5cdFx0c2VxdWVuY2VFdmVudERhdGEuc2VxdWVuY2UgPSBbXTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50TW9kZWwuc2VxdWVuY2UpIHtcclxuXHRcdFx0Y29uc3QgZXZlbnREYXRhOiBDb3VudGVkQWN0aXZpdHlFdmVudERhdGEgPSBDYW1wYWlnblN1cnZleUZhY3RvcnkubWFrZUNvdW50ZWRBY3Rpdml0eUV2ZW50RGF0YShldmVudCk7XHJcblx0XHRcdGlmICghZXZlbnREYXRhKSB7XHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHNlcXVlbmNlRXZlbnREYXRhLnNlcXVlbmNlLnB1c2goZXZlbnREYXRhKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gbmV3IENvdW50ZWRBY3Rpdml0eVNlcXVlbmNlRXZlbnQoc2VxdWVuY2VFdmVudERhdGEpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdGF0aWMgbWFrZUV2ZW50KHN0YXRlOiBJQ2FtcGFpZ25TdGF0ZSwgZXZlbnRNb2RlbDogQ2FtcGFpZ25TdXJ2ZXlFdmVudCk6IElTdXJ2ZXlFdmVudCB7XHJcblx0XHRpZiAoZXZlbnRNb2RlbCBpbnN0YW5jZW9mIENhbXBhaWduU3VydmV5RXZlbnRDb3VudGVkQWN0aXZpdHkpIHtcclxuXHRcdFx0cmV0dXJuIENhbXBhaWduU3VydmV5RmFjdG9yeS5tYWtlQ291bnRlZEFjdGl2aXR5RXZlbnQoc3RhdGUsIGV2ZW50TW9kZWwgYXMgQ2FtcGFpZ25TdXJ2ZXlFdmVudENvdW50ZWRBY3Rpdml0eSk7XHJcblx0XHR9IGVsc2UgaWYgKGV2ZW50TW9kZWwgaW5zdGFuY2VvZiBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2UpIHtcclxuXHRcdFx0cmV0dXJuIENhbXBhaWduU3VydmV5RmFjdG9yeS5tYWtlQ291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudChzdGF0ZSwgZXZlbnRNb2RlbCBhcyBDYW1wYWlnblN1cnZleUV2ZW50Q291bnRlZEFjdGl2aXR5U2VxdWVuY2UpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBtYWtlTWV0YWRhdGEobWV0YWRhdGFNb2RlbDogQ2FtcGFpZ25TdXJ2ZXlNZXRhZGF0YSk6IElTdXJ2ZXlNZXRhZGF0YSB7XHJcblx0XHRpZiAoaXNOT1UobWV0YWRhdGFNb2RlbCkgfHwgaXNOT1UobWV0YWRhdGFNb2RlbC5jb250ZW50TWV0YWRhdGEpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IG1ldGFkYXRhID0gbmV3IE1ldGFkYXRhKCk7XHJcblx0XHRtZXRhZGF0YS5jb250ZW50TWV0YWRhdGEgPSBtZXRhZGF0YU1vZGVsLmNvbnRlbnRNZXRhZGF0YTtcclxuXHJcblx0XHRyZXR1cm4gbmV3IFN1cnZleU1ldGFkYXRhKG1ldGFkYXRhKTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Campaign/CampaignSurveyFactory.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Constants.js": /*!**********************************************!*\ !*** ../FloodgateCore/dist/src/Constants.js ***! \**********************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n/**\n * Constants.ts\n *\n * A module for all the constants.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TelemetryEvent = void 0;\n/**\n * Telemetry events\n */\nvar TelemetryEvent = /** @class */ (function () {\n function TelemetryEvent() {\n }\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24;\n TelemetryEvent.CampaignState = (_a = /** @class */ (function () {\n function class_1() {\n }\n return class_1;\n }()),\n _a.Deserialize = (_b = /** @class */ (function () {\n function class_2() {\n }\n return class_2;\n }()),\n _b.Failed = \"FloodgateCore_CampaignState_Deserialize_Failed\",\n _b),\n _a);\n TelemetryEvent.FileBasedCampaignStateProvider = (_c = /** @class */ (function () {\n function class_3() {\n }\n return class_3;\n }()),\n _c.Load = (_d = /** @class */ (function () {\n function class_4() {\n }\n return class_4;\n }()),\n _d.Failed = \"FloodgateCore_FileBasedCampaignStateProvider_Load_Failed\",\n _d),\n _c);\n TelemetryEvent.HostBasedCampaignStateProvider = (_e = /** @class */ (function () {\n function class_5() {\n }\n return class_5;\n }()),\n _e.GetStatesFromHost = (_f = /** @class */ (function () {\n function class_6() {\n }\n return class_6;\n }()),\n _f.Failed = \"FloodgateCore_HostBasedCampaignStateProvider_GetStatesFromHost_Failed\",\n _f),\n _e);\n TelemetryEvent.Floodgate = (_g = /** @class */ (function () {\n function class_7() {\n }\n return class_7;\n }()),\n _g.Initialize = (_h = /** @class */ (function () {\n function class_8() {\n }\n return class_8;\n }()),\n _h.Failed = \"FloodgateCore_Floodgate_Initialize_Failed\",\n _h),\n _g.Start = (_j = /** @class */ (function () {\n function class_9() {\n }\n return class_9;\n }()),\n _j.Failed = \"FloodgateCore_Floodgate_Start_Failed\",\n _j.Warning = \"FloodgateCore_Floodgate_Start_Warning\",\n _j.SurveysDisabled = \"FloodgateCore_Floodgate_Start_SurveysDisabled\",\n _j.DynamicCampaignEnabled = \"FloodgateCore_Floodgate_Start_DynamicCampaignEnabled\",\n _j.DynamicCampaignClientUndefined = \"FloodgateCore_Floodgate_Start_DynamicCampaignClientUndefined\",\n _j),\n _g.UserFactsLoad = (_k = /** @class */ (function () {\n function class_10() {\n }\n return class_10;\n }()),\n _k.Failed = \"FloodgateCore_Floodgate_UserFactsLoad_Failed\",\n _k),\n _g.UserFactsSpecDeserialization = (_l = /** @class */ (function () {\n function class_11() {\n }\n return class_11;\n }()),\n _l.Failed = \"FloodgateCore_Floodgate_UserFactsSpecDeserialization_Failed\",\n _l),\n _g.UserFactsSpecIsAMatch = (_m = /** @class */ (function () {\n function class_12() {\n }\n return class_12;\n }()),\n _m.Failed = \"FloodgateCore_Floodgate_UserFactsSpecIsAMatch_Failed\",\n _m.Mismatch = \"FloodgateCore_Floodgate_UserFactsSpecIsAMatch_Mismatch\",\n _m.Summary = \"FloodgateCore_Floodgate_UserFactsSpecIsAMatch_Summary\",\n _m),\n _g.RenderSurvey = (_o = /** @class */ (function () {\n function class_13() {\n }\n return class_13;\n }()),\n _o.Unsupported = \"FloodgateCore_Floodgate_RenderSurvey_Unsupported\",\n _o),\n _g);\n TelemetryEvent.FloodgateEngine = (_p = /** @class */ (function () {\n function class_14() {\n }\n return class_14;\n }()),\n _p.Make = (_q = /** @class */ (function () {\n function class_15() {\n }\n return class_15;\n }()),\n _q.Failed = \"FloodgateCore_FloodgateEngine_Make_Failed\",\n _q),\n _p.Common = (_r = /** @class */ (function () {\n function class_16() {\n }\n return class_16;\n }()),\n _r.Error = \"FloodgateCore_FloodgateEngine_Common_Error\",\n _r.ActiveSurveys = \"FloodgateCore_FloodgateEngine_Common_ActiveSurveys\",\n _r),\n _p.Start = (_s = /** @class */ (function () {\n function class_17() {\n }\n return class_17;\n }()),\n _s.Failed = \"FloodgateCore_FloodgateEngine_Start_Failed\",\n _s),\n _p.StartAsync = (_t = /** @class */ (function () {\n function class_18() {\n }\n return class_18;\n }()),\n _t.Failed = \"FloodgateCore_FloodgateEngine_StartAsync_Failed\",\n _t.Stopped = \"FloodgateCore_FloodgateEngine_StartAsync_Stopped\",\n _t),\n _p.InitialLoadedDefinitions = \"FloodgateCore_FloodgateEngine_InitialLoadedDefinitions\",\n _p.CampaignInitialTriggerMet = \"FloodgateCore_FloodgateEngine_CampaignInitialTriggerMet\",\n _p.GetActiveSurveys = \"FloodgateCore_FloodgateEngine_GetActiveSurveys\",\n _p.OnSurveyActivated = (_u = /** @class */ (function () {\n function class_19() {\n }\n return class_19;\n }()),\n _u.ActivationStatsSuppressedSurvey = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_ActivationStatsSuppressedSurvey\",\n _u.ClosedChannelType = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_ClosedChannelType\",\n _u.SurveyNotDefined = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_SurveyNotDefined\",\n _u.SessionSuppressedSurvey = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_SessionSuppressedSurvey\",\n _u.ActivationExpiredSurvey = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_ActivationExpiredSurvey\",\n _u.ActivationIrrelevantSurvey = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_ActivationIrrelevantSurvey\",\n _u.Error = \"FloodgateCore_FloodgateEngine_OnSurveyActivated_Error\",\n _u),\n _p.CheckGovernanceServiceAndActivateSurvey = (_v = /** @class */ (function () {\n function class_20() {\n }\n return class_20;\n }()),\n _v.GovernanceServiceForceToDisplay = \"FloodgateCore_FloodgateEngine_GovernanceService_GovernanceServiceForceToDisplay\",\n _v.GovernanceServiceClientCompleted = \"FloodgateCore_FloodgateEngine_GovernanceService_GovernanceServiceClientCompleted\",\n _v.GovernanceServiceSurveyInCooldown = \"FloodgateCore_FloodgateEngine_GovernanceService_GovernanceServiceSurveyInCooldown\",\n _v),\n _p.QueryTriggerMetApisAsync = (_w = /** @class */ (function () {\n function class_21() {\n }\n return class_21;\n }()),\n _w.Exception = \"FloodgateCore_FloodgateEngine_QueryTriggerMetApisAsync_Exception\",\n _w.QueryTriggerMetApisAsync = \"FloodgateCore_FloodgateEngine_QueryTriggerMetApisAsync\",\n _w.SurveyCdnFailureConcurrently = \"FloodgateCore_FloodgateEngine_QueryTriggerMetApisAsync_SurveyCdnFailureConcurrently\",\n _w.SurveyCdnFailureSequentially = \"FloodgateCore_FloodgateEngine_QueryTriggerMetApisAsync_SurveyCdnFailureSequentially\",\n _w),\n _p);\n TelemetryEvent.GovernedChannelState = (_x = /** @class */ (function () {\n function class_22() {\n }\n return class_22;\n }()),\n _x.Deserialize = (_y = /** @class */ (function () {\n function class_23() {\n }\n return class_23;\n }()),\n _y.Failed = \"FloodgateCore_GovernedChannelState_Deserialize_Failed\",\n _y),\n _x);\n TelemetryEvent.FileBasedGovernedChannelStateProvider = (_z = /** @class */ (function () {\n function class_24() {\n }\n return class_24;\n }()),\n _z.Load = (_0 = /** @class */ (function () {\n function class_25() {\n }\n return class_25;\n }()),\n _0.Failed = \"FloodgateCore_FileBasedGovernedChannelStateProvider_Load_Failed\",\n _0),\n _z);\n TelemetryEvent.HostBasedGovernedChannelStateProvider = (_1 = /** @class */ (function () {\n function class_26() {\n }\n return class_26;\n }()),\n _1.GetStatesFromHost = (_2 = /** @class */ (function () {\n function class_27() {\n }\n return class_27;\n }()),\n _2.Failed = \"FloodgateCore_HostBasedGovernedChannelStateProvider_GetStatesFromHost_Failed\",\n _2),\n _1);\n TelemetryEvent.SurveyStatCollectionActivation = (_3 = /** @class */ (function () {\n function class_28() {\n }\n return class_28;\n }()),\n _3.FromJson = (_4 = /** @class */ (function () {\n function class_29() {\n }\n return class_29;\n }()),\n _4.Failed = \"FloodgateCore_SurveyStatCollectionActivation_FromJson_Failed\",\n _4),\n _3.ToJson = (_5 = /** @class */ (function () {\n function class_30() {\n }\n return class_30;\n }()),\n _5.Failed = \"FloodgateCore_SurveyStatCollectionActivation_ToJson_Failed\",\n _5),\n _3);\n TelemetryEvent.HostBasedSurveyActivationStatsProvider = (_6 = /** @class */ (function () {\n function class_31() {\n }\n return class_31;\n }()),\n _6.GetSurveyStatsFromHost = (_7 = /** @class */ (function () {\n function class_32() {\n }\n return class_32;\n }()),\n _7.Failed = \"FloodgateCore_HostBasedSurveyActivationStatsProvider_GetSurveyStatsFromHost_Failed\",\n _7),\n _6);\n TelemetryEvent.SurveyStatCollectionEventActivity = (_8 = /** @class */ (function () {\n function class_33() {\n }\n return class_33;\n }()),\n _8.FromJson = (_9 = /** @class */ (function () {\n function class_34() {\n }\n return class_34;\n }()),\n _9.Failed = \"FloodgateCore_SurveyStatCollectionEventActivity_FromJson_Failed\",\n _9),\n _8.ToJson = (_10 = /** @class */ (function () {\n function class_35() {\n }\n return class_35;\n }()),\n _10.Failed = \"FloodgateCore_SurveyStatCollectionEventActivity_ToJson_Failed\",\n _10),\n _8);\n TelemetryEvent.SurveyActivity = (_11 = /** @class */ (function () {\n function class_36() {\n }\n return class_36;\n }()),\n _11.LogActivity = (_12 = /** @class */ (function () {\n function class_37() {\n }\n return class_37;\n }()),\n _12.EventsReprocessed = \"FloodgateCore_SurveyActivity_LogActivity_EventsReprocessed\",\n _12.SurveysReprocessed = \"FloodgateCore_SurveyActivity_LogActivity_SurveysReprocessed\",\n _12),\n _11.SetActivityTrackingContracts = (_13 = /** @class */ (function () {\n function class_38() {\n }\n return class_38;\n }()),\n _13.DuplicateSurveyID = \"FloodgateCore_SurveyActivity_SetActivityTrackingContracts_DuplicateSurveyID\",\n _13),\n _11);\n TelemetryEvent.DynamicCampaignDefinitionProvider = (_14 = /** @class */ (function () {\n function class_39() {\n }\n return class_39;\n }()),\n _14.Load = (_15 = /** @class */ (function () {\n function class_40() {\n }\n return class_40;\n }()),\n _15.EmptyEcsConfig = \"FloodgateCore_DynamicCampaignDefinitionProvider_Load_EmptyEcsConfig\",\n _15.InvalidEcsConfig = \"FloodgateCore_DynamicCampaignDefinitionProvider_Load_InvalidEcsConfig\",\n _15),\n _14);\n TelemetryEvent.CampaignDefinitionProvider = (_16 = /** @class */ (function () {\n function class_41() {\n }\n return class_41;\n }()),\n _16.CampaignSurveyTemplate = (_17 = /** @class */ (function () {\n function class_42() {\n }\n return class_42;\n }()),\n _17.SchemaValidationError = \"FloodgateCore_CampaignDefinitionProvider_CampaignSurveyTemplate_validate\",\n _17),\n _16);\n TelemetryEvent.CampaignGovernance = (_18 = /** @class */ (function () {\n function class_43() {\n }\n return class_43;\n }()),\n _18.LogExperimentTrigger = (_19 = /** @class */ (function () {\n function class_44() {\n }\n return class_44;\n }()),\n _19.Undefined = \"FloodgateCore_CampaignGovernance_LogExperimentTrigger_Undefined\",\n _19.Failed = \"FloodgateCore_CampaignGovernance_LogExperimentTrigger_Failed\",\n _19),\n _18.RetrieveTriggerEventDetail = (_20 = /** @class */ (function () {\n function class_45() {\n }\n return class_45;\n }()),\n _20.Failed = \"FloodgateCore_CampaignGovernance_RetrieveTriggerEventDetail_Failed\",\n _20),\n _18.NominationCheckCampaigns = \"FloodgateCore_CampaignGovernance_NominationCheckCampaigns\",\n _18);\n TelemetryEvent.HttpTransport = (_21 = /** @class */ (function () {\n function class_46() {\n }\n return class_46;\n }()),\n _21.GET = (_22 = /** @class */ (function () {\n function class_47() {\n }\n return class_47;\n }()),\n _22.Success = \"HttpTransport_Get_Success\",\n _22.Error = \"HttpTransport_Get_Error\",\n _22),\n _21);\n TelemetryEvent.FloodgateSurveyCdnClient = (_23 = /** @class */ (function () {\n function class_48() {\n }\n return class_48;\n }()),\n _23.loadCdnStringResource = (_24 = /** @class */ (function () {\n function class_49() {\n }\n return class_49;\n }()),\n _24.Request_Failed = \"Floodgate_Survey_CDN_Request_Failed\",\n _24.Request_Success = \"Floodgate_Survey_CDN_Request_Success\",\n _24.Exception = \"Floodgate_Survey_CDN_Exception\",\n _24.Completed = \"Floodgate_Survey_CDN_Completed\",\n _24),\n _23);\n return TelemetryEvent;\n}());\nexports.TelemetryEvent = TelemetryEvent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0NvbnN0YW50cy50cz8wNjEwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7OztHQUlHOzs7QUFFSDs7R0FFRztBQUNIO0lBQUE7SUFnTUEsQ0FBQzs7SUEvTGMsNEJBQWE7WUFBRztZQUk5QixDQUFDO1lBQUQsY0FBQztRQUFELENBQUM7UUFIYyxjQUFXO2dCQUFHO2dCQUU1QixDQUFDO2dCQUFELGNBQUM7WUFBRCxDQUFDO1lBRGMsU0FBTSxHQUFHLGdEQUFpRDtlQUN2RTtZQUNEO0lBRVksNkNBQThCO1lBQUc7WUFJL0MsQ0FBQztZQUFELGNBQUM7UUFBRCxDQUFDO1FBSGMsT0FBSTtnQkFBRztnQkFFckIsQ0FBQztnQkFBRCxjQUFDO1lBQUQsQ0FBQztZQURjLFNBQU0sR0FBRywwREFBMkQ7ZUFDakY7WUFDRDtJQUVZLDZDQUE4QjtZQUFHO1lBSS9DLENBQUM7WUFBRCxjQUFDO1FBQUQsQ0FBQztRQUhjLG9CQUFpQjtnQkFBRztnQkFFbEMsQ0FBQztnQkFBRCxjQUFDO1lBQUQsQ0FBQztZQURjLFNBQU0sR0FBRyx1RUFBd0U7ZUFDOUY7WUFDRDtJQUVZLHdCQUFTO1lBQUc7WUE4QjFCLENBQUM7WUFBRCxjQUFDO1FBQUQsQ0FBQztRQTdCYyxhQUFVO2dCQUFHO2dCQUUzQixDQUFDO2dCQUFELGNBQUM7WUFBRCxDQUFDO1lBRGMsU0FBTSxHQUFHLDJDQUE0QztlQUNsRTtRQUVZLFFBQUs7Z0JBQUc7Z0JBTXRCLENBQUM7Z0JBQUQsY0FBQztZQUFELENBQUM7WUFMYyxTQUFNLEdBQUcsc0NBQXVDO1lBQ2hELFVBQU8sR0FBRyx1Q0FBd0M7WUFDbEQsa0JBQWUsR0FBRywrQ0FBZ0Q7WUFDbEUseUJBQXNCLEdBQUcsc0RBQXVEO1lBQ2hGLGlDQUE4QixHQUFHLDhEQUErRDtlQUM3RztRQUVZLGdCQUFhO2dCQUFHO2dCQUU5QixDQUFDO2dCQUFELGVBQUM7WUFBRCxDQUFDO1lBRGMsU0FBTSxHQUFHLDhDQUErQztlQUNy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QkFBRCxlQUFDO1lBQUQsQ0FBQztZQURjLHlCQUFxQixHQUFHLDBFQUEyRTtnQkFDaEg7YUFDRDtJQUVZLGlDQUFrQjtZQUFHO1lBU25DLENBQUM7WUFBRCxlQUFDO1FBQUQsQ0FBQztRQVJjLHdCQUFvQjtnQkFBRztnQkFHckMsQ0FBQztnQkFBRCxlQUFDO1lBQUQsQ0FBQztZQUZjLGFBQVMsR0FBRyxpRUFBa0U7WUFDOUUsVUFBTSxHQUFHLDhEQUErRDtnQkFDdEY7UUFDYSw4QkFBMEI7Z0JBQUc7Z0JBRTNDLENBQUM7Z0JBQUQsZUFBQztZQUFELENBQUM7WUFEYyxVQUFNLEdBQUcsb0VBQXFFO2dCQUMzRjtRQUNZLDRCQUF3QixHQUFHLDJEQUE0RDthQUNwRztJQUVZLDRCQUFhO1lBQUc7WUFLOUIsQ0FBQztZQUFELGVBQUM7UUFBRCxDQUFDO1FBSmMsT0FBRztnQkFBRztnQkFHcEIsQ0FBQztnQkFBRCxlQUFDO1lBQUQsQ0FBQztZQUZjLFdBQU8sR0FBRywyQkFBNEI7WUFDdEMsU0FBSyxHQUFHLHlCQUEwQjtnQkFDaEQ7YUFDRDtJQUVhLHVDQUF3QjtZQUFHO1lBT3pDLENBQUM7WUFBRCxlQUFDO1FBQUQsQ0FBQztRQU5jLHlCQUFxQjtnQkFBRztnQkFLdEMsQ0FBQztnQkFBRCxlQUFDO1lBQUQsQ0FBQztZQUpjLGtCQUFjLEdBQUcscUNBQXNDO1lBQ3ZELG1CQUFlLEdBQUcsc0NBQXVDO1lBQ3pELGFBQVMsR0FBRyxnQ0FBaUM7WUFDN0MsYUFBUyxHQUFHLGdDQUFpQztnQkFDM0Q7YUFDRDtJQUNGLHFCQUFDO0NBQUE7QUFoTVksd0NBQWMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9Db25zdGFudHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29uc3RhbnRzLnRzXHJcbiAqXHJcbiAqIEEgbW9kdWxlIGZvciBhbGwgdGhlIGNvbnN0YW50cy5cclxuICovXHJcblxyXG4vKipcclxuICogVGVsZW1ldHJ5IGV2ZW50c1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeUV2ZW50IHtcclxuXHRwdWJsaWMgc3RhdGljIENhbXBhaWduU3RhdGUgPSBjbGFzcyB7XHJcblx0XHRwdWJsaWMgc3RhdGljIERlc2VyaWFsaXplID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9DYW1wYWlnblN0YXRlX0Rlc2VyaWFsaXplX0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIEZpbGVCYXNlZENhbXBhaWduU3RhdGVQcm92aWRlciA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgTG9hZCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfRmlsZUJhc2VkQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyX0xvYWRfRmFpbGVkXCI7XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgSG9zdEJhc2VkQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBHZXRTdGF0ZXNGcm9tSG9zdCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfSG9zdEJhc2VkQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyX0dldFN0YXRlc0Zyb21Ib3N0X0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIEZsb29kZ2F0ZSA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgSW5pdGlhbGl6ZSA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlX0luaXRpYWxpemVfRmFpbGVkXCI7XHJcblx0XHR9O1xyXG5cclxuXHRcdHB1YmxpYyBzdGF0aWMgU3RhcnQgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9TdGFydF9GYWlsZWRcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBXYXJuaW5nID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9TdGFydF9XYXJuaW5nXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgU3VydmV5c0Rpc2FibGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9TdGFydF9TdXJ2ZXlzRGlzYWJsZWRcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBEeW5hbWljQ2FtcGFpZ25FbmFibGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9TdGFydF9EeW5hbWljQ2FtcGFpZ25FbmFibGVkXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRHluYW1pY0NhbXBhaWduQ2xpZW50VW5kZWZpbmVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9TdGFydF9EeW5hbWljQ2FtcGFpZ25DbGllbnRVbmRlZmluZWRcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBVc2VyRmFjdHNMb2FkID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVfVXNlckZhY3RzTG9hZF9GYWlsZWRcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBVc2VyRmFjdHNTcGVjRGVzZXJpYWxpemF0aW9uID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVfVXNlckZhY3RzU3BlY0Rlc2VyaWFsaXphdGlvbl9GYWlsZWRcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBVc2VyRmFjdHNTcGVjSXNBTWF0Y2ggPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9Vc2VyRmFjdHNTcGVjSXNBTWF0Y2hfRmFpbGVkXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgTWlzbWF0Y2ggPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlX1VzZXJGYWN0c1NwZWNJc0FNYXRjaF9NaXNtYXRjaFwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFN1bW1hcnkgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlX1VzZXJGYWN0c1NwZWNJc0FNYXRjaF9TdW1tYXJ5XCI7XHJcblx0XHR9O1xyXG5cclxuXHRcdHB1YmxpYyBzdGF0aWMgUmVuZGVyU3VydmV5ID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFVuc3VwcG9ydGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZV9SZW5kZXJTdXJ2ZXlfVW5zdXBwb3J0ZWRcIjtcclxuXHRcdH07XHJcblx0fTtcclxuXHJcblx0cHVibGljIHN0YXRpYyBGbG9vZGdhdGVFbmdpbmUgPSBjbGFzcyB7XHJcblx0XHRwdWJsaWMgc3RhdGljIE1ha2UgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZUVuZ2luZV9NYWtlX0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHJcblx0XHRwdWJsaWMgc3RhdGljIENvbW1vbiA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFcnJvciA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfQ29tbW9uX0Vycm9yXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgQWN0aXZlU3VydmV5cyA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfQ29tbW9uX0FjdGl2ZVN1cnZleXNcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBTdGFydCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX1N0YXJ0X0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHJcblx0XHRwdWJsaWMgc3RhdGljIFN0YXJ0QXN5bmMgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZUVuZ2luZV9TdGFydEFzeW5jX0ZhaWxlZFwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFN0b3BwZWQgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX1N0YXJ0QXN5bmNfU3RvcHBlZFwiO1xyXG5cdFx0fTtcclxuXHJcblx0XHRwdWJsaWMgc3RhdGljIEluaXRpYWxMb2FkZWREZWZpbml0aW9ucyA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfSW5pdGlhbExvYWRlZERlZmluaXRpb25zXCI7XHJcblx0XHRwdWJsaWMgc3RhdGljIENhbXBhaWduSW5pdGlhbFRyaWdnZXJNZXQgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX0NhbXBhaWduSW5pdGlhbFRyaWdnZXJNZXRcIjtcclxuXHRcdHB1YmxpYyBzdGF0aWMgR2V0QWN0aXZlU3VydmV5cyA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfR2V0QWN0aXZlU3VydmV5c1wiO1xyXG5cclxuXHRcdHB1YmxpYyBzdGF0aWMgT25TdXJ2ZXlBY3RpdmF0ZWQgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgQWN0aXZhdGlvblN0YXRzU3VwcHJlc3NlZFN1cnZleSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfT25TdXJ2ZXlBY3RpdmF0ZWRfQWN0aXZhdGlvblN0YXRzU3VwcHJlc3NlZFN1cnZleVwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIENsb3NlZENoYW5uZWxUeXBlID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZUVuZ2luZV9PblN1cnZleUFjdGl2YXRlZF9DbG9zZWRDaGFubmVsVHlwZVwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFN1cnZleU5vdERlZmluZWQgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX09uU3VydmV5QWN0aXZhdGVkX1N1cnZleU5vdERlZmluZWRcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBTZXNzaW9uU3VwcHJlc3NlZFN1cnZleSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfT25TdXJ2ZXlBY3RpdmF0ZWRfU2Vzc2lvblN1cHByZXNzZWRTdXJ2ZXlcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBBY3RpdmF0aW9uRXhwaXJlZFN1cnZleSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfT25TdXJ2ZXlBY3RpdmF0ZWRfQWN0aXZhdGlvbkV4cGlyZWRTdXJ2ZXlcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBBY3RpdmF0aW9uSXJyZWxldmFudFN1cnZleSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfT25TdXJ2ZXlBY3RpdmF0ZWRfQWN0aXZhdGlvbklycmVsZXZhbnRTdXJ2ZXlcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFcnJvciA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfT25TdXJ2ZXlBY3RpdmF0ZWRfRXJyb3JcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBDaGVja0dvdmVybmFuY2VTZXJ2aWNlQW5kQWN0aXZhdGVTdXJ2ZXkgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgR292ZXJuYW5jZVNlcnZpY2VGb3JjZVRvRGlzcGxheSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfR292ZXJuYW5jZVNlcnZpY2VfR292ZXJuYW5jZVNlcnZpY2VGb3JjZVRvRGlzcGxheVwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50Q29tcGxldGVkID0gXCJGbG9vZGdhdGVDb3JlX0Zsb29kZ2F0ZUVuZ2luZV9Hb3Zlcm5hbmNlU2VydmljZV9Hb3Zlcm5hbmNlU2VydmljZUNsaWVudENvbXBsZXRlZFwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEdvdmVybmFuY2VTZXJ2aWNlU3VydmV5SW5Db29sZG93biA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfR292ZXJuYW5jZVNlcnZpY2VfR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlJbkNvb2xkb3duXCI7XHJcblx0XHR9O1xyXG5cdFx0XHJcblx0XHRwdWJsaWMgc3RhdGljIFF1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luYyA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFeGNlcHRpb24gPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX1F1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luY19FeGNlcHRpb25cIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBRdWVyeVRyaWdnZXJNZXRBcGlzQXN5bmMgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX1F1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luY1wiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFN1cnZleUNkbkZhaWx1cmVDb25jdXJyZW50bHkgPSBcIkZsb29kZ2F0ZUNvcmVfRmxvb2RnYXRlRW5naW5lX1F1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luY19TdXJ2ZXlDZG5GYWlsdXJlQ29uY3VycmVudGx5XCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgU3VydmV5Q2RuRmFpbHVyZVNlcXVlbnRpYWxseSA9IFwiRmxvb2RnYXRlQ29yZV9GbG9vZGdhdGVFbmdpbmVfUXVlcnlUcmlnZ2VyTWV0QXBpc0FzeW5jX1N1cnZleUNkbkZhaWx1cmVTZXF1ZW50aWFsbHlcIjtcclxuXHRcdH07XHJcblx0fTtcclxuXHJcblx0cHVibGljIHN0YXRpYyBHb3Zlcm5lZENoYW5uZWxTdGF0ZSA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgRGVzZXJpYWxpemUgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0dvdmVybmVkQ2hhbm5lbFN0YXRlX0Rlc2VyaWFsaXplX0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIEZpbGVCYXNlZEdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIgPSBjbGFzcyB7XHJcblx0XHRwdWJsaWMgc3RhdGljIExvYWQgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0ZpbGVCYXNlZEdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXJfTG9hZF9GYWlsZWRcIjtcclxuXHRcdH07XHJcblx0fTtcclxuXHJcblx0cHVibGljIHN0YXRpYyBIb3N0QmFzZWRHb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBHZXRTdGF0ZXNGcm9tSG9zdCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfSG9zdEJhc2VkR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlcl9HZXRTdGF0ZXNGcm9tSG9zdF9GYWlsZWRcIjtcclxuXHRcdH07XHJcblx0fTtcclxuXHJcblx0cHVibGljIHN0YXRpYyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24gPSBjbGFzcyB7XHJcblx0XHRwdWJsaWMgc3RhdGljIEZyb21Kc29uID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9TdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb25fRnJvbUpzb25fRmFpbGVkXCI7XHJcblx0XHR9O1xyXG5cclxuXHRcdHB1YmxpYyBzdGF0aWMgVG9Kc29uID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9TdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb25fVG9Kc29uX0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIEhvc3RCYXNlZFN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBHZXRTdXJ2ZXlTdGF0c0Zyb21Ib3N0ID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEZhaWxlZCA9IFwiRmxvb2RnYXRlQ29yZV9Ib3N0QmFzZWRTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlcl9HZXRTdXJ2ZXlTdGF0c0Zyb21Ib3N0X0ZhaWxlZFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eSA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgRnJvbUpzb24gPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX1N1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eV9Gcm9tSnNvbl9GYWlsZWRcIjtcclxuXHRcdH07XHJcblxyXG5cdFx0cHVibGljIHN0YXRpYyBUb0pzb24gPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX1N1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eV9Ub0pzb25fRmFpbGVkXCI7XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgU3VydmV5QWN0aXZpdHkgPSBjbGFzcyB7XHJcblx0XHRwdWJsaWMgc3RhdGljIExvZ0FjdGl2aXR5ID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEV2ZW50c1JlcHJvY2Vzc2VkID0gXCJGbG9vZGdhdGVDb3JlX1N1cnZleUFjdGl2aXR5X0xvZ0FjdGl2aXR5X0V2ZW50c1JlcHJvY2Vzc2VkXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgU3VydmV5c1JlcHJvY2Vzc2VkID0gXCJGbG9vZGdhdGVDb3JlX1N1cnZleUFjdGl2aXR5X0xvZ0FjdGl2aXR5X1N1cnZleXNSZXByb2Nlc3NlZFwiO1xyXG5cdFx0fTtcclxuXHJcblx0XHRwdWJsaWMgc3RhdGljIFNldEFjdGl2aXR5VHJhY2tpbmdDb250cmFjdHMgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRHVwbGljYXRlU3VydmV5SUQgPSBcIkZsb29kZ2F0ZUNvcmVfU3VydmV5QWN0aXZpdHlfU2V0QWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0c19EdXBsaWNhdGVTdXJ2ZXlJRFwiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIER5bmFtaWNDYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlciA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgTG9hZCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFbXB0eUVjc0NvbmZpZyA9IFwiRmxvb2RnYXRlQ29yZV9EeW5hbWljQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJfTG9hZF9FbXB0eUVjc0NvbmZpZ1wiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIEludmFsaWRFY3NDb25maWcgPSBcIkZsb29kZ2F0ZUNvcmVfRHluYW1pY0NhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyX0xvYWRfSW52YWxpZEVjc0NvbmZpZ1wiO1xyXG5cdFx0fTtcclxuXHR9O1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIENhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBDYW1wYWlnblN1cnZleVRlbXBsYXRlID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFNjaGVtYVZhbGlkYXRpb25FcnJvciA9IFwiRmxvb2RnYXRlQ29yZV9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlcl9DYW1wYWlnblN1cnZleVRlbXBsYXRlX3ZhbGlkYXRlXCI7XHJcblx0XHR9O1xyXG5cdH07XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgQ2FtcGFpZ25Hb3Zlcm5hbmNlID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBMb2dFeHBlcmltZW50VHJpZ2dlciA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBVbmRlZmluZWQgPSBcIkZsb29kZ2F0ZUNvcmVfQ2FtcGFpZ25Hb3Zlcm5hbmNlX0xvZ0V4cGVyaW1lbnRUcmlnZ2VyX1VuZGVmaW5lZFwiO1x0XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgRmFpbGVkID0gXCJGbG9vZGdhdGVDb3JlX0NhbXBhaWduR292ZXJuYW5jZV9Mb2dFeHBlcmltZW50VHJpZ2dlcl9GYWlsZWRcIjtcdFxyXG5cdFx0fVxyXG5cdFx0cHVibGljIHN0YXRpYyBSZXRyaWV2ZVRyaWdnZXJFdmVudERldGFpbCA9IGNsYXNzIHtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBGYWlsZWQgPSBcIkZsb29kZ2F0ZUNvcmVfQ2FtcGFpZ25Hb3Zlcm5hbmNlX1JldHJpZXZlVHJpZ2dlckV2ZW50RGV0YWlsX0ZhaWxlZFwiO1x0XHJcblx0XHR9O1xyXG5cdFx0cHVibGljIHN0YXRpYyBOb21pbmF0aW9uQ2hlY2tDYW1wYWlnbnMgPSBcIkZsb29kZ2F0ZUNvcmVfQ2FtcGFpZ25Hb3Zlcm5hbmNlX05vbWluYXRpb25DaGVja0NhbXBhaWduc1wiO1xyXG5cdH07XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgSHR0cFRyYW5zcG9ydCA9IGNsYXNzIHtcclxuXHRcdHB1YmxpYyBzdGF0aWMgR0VUID0gY2xhc3Mge1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIFN1Y2Nlc3MgPSBcIkh0dHBUcmFuc3BvcnRfR2V0X1N1Y2Nlc3NcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFcnJvciA9IFwiSHR0cFRyYW5zcG9ydF9HZXRfRXJyb3JcIjtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgRmxvb2RnYXRlU3VydmV5Q2RuQ2xpZW50ID0gY2xhc3Mge1xyXG5cdFx0cHVibGljIHN0YXRpYyBsb2FkQ2RuU3RyaW5nUmVzb3VyY2UgPSBjbGFzcyB7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgUmVxdWVzdF9GYWlsZWQgPSBcIkZsb29kZ2F0ZV9TdXJ2ZXlfQ0ROX1JlcXVlc3RfRmFpbGVkXCI7XHJcblx0XHRcdHB1YmxpYyBzdGF0aWMgUmVxdWVzdF9TdWNjZXNzID0gXCJGbG9vZGdhdGVfU3VydmV5X0NETl9SZXF1ZXN0X1N1Y2Nlc3NcIjtcclxuXHRcdFx0cHVibGljIHN0YXRpYyBFeGNlcHRpb24gPSBcIkZsb29kZ2F0ZV9TdXJ2ZXlfQ0ROX0V4Y2VwdGlvblwiO1xyXG5cdFx0XHRwdWJsaWMgc3RhdGljIENvbXBsZXRlZCA9IFwiRmxvb2RnYXRlX1N1cnZleV9DRE5fQ29tcGxldGVkXCI7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Constants.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/FeatureGateProvider.js": /*!********************************************************!*\ !*** ../FloodgateCore/dist/src/FeatureGateProvider.js ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeatureGateProvider = exports.setFeatureGateProvider = void 0;\nvar featureGateProvider;\nfunction setFeatureGateProvider(provider) {\n featureGateProvider = provider;\n}\nexports.setFeatureGateProvider = setFeatureGateProvider;\nfunction getFeatureGateProvider() {\n return featureGateProvider;\n}\nexports.getFeatureGateProvider = getFeatureGateProvider;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0ZlYXR1cmVHYXRlUHJvdmlkZXIudHM/NzVjYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSxJQUFJLG1CQUFvRCxDQUFDO0FBRXpELFNBQWdCLHNCQUFzQixDQUFDLFFBQXlDO0lBQy9FLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztBQUNoQyxDQUFDO0FBRkQsd0RBRUM7QUFFRCxTQUFnQixzQkFBc0I7SUFDckMsT0FBTyxtQkFBbUIsQ0FBQztBQUM1QixDQUFDO0FBRkQsd0RBRUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9GZWF0dXJlR2F0ZVByb3ZpZGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZsb29kZ2F0ZUZlYXR1cmVTdGF0dXNDYWxsYmFjayB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxubGV0IGZlYXR1cmVHYXRlUHJvdmlkZXI6IElGbG9vZGdhdGVGZWF0dXJlU3RhdHVzQ2FsbGJhY2s7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0RmVhdHVyZUdhdGVQcm92aWRlcihwcm92aWRlcjogSUZsb29kZ2F0ZUZlYXR1cmVTdGF0dXNDYWxsYmFjaykge1xyXG5cdGZlYXR1cmVHYXRlUHJvdmlkZXIgPSBwcm92aWRlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZlYXR1cmVHYXRlUHJvdmlkZXIoKSB7XHJcblx0cmV0dXJuIGZlYXR1cmVHYXRlUHJvdmlkZXI7XHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/FeatureGateProvider.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/FloodgateEngine.js": /*!****************************************************!*\ !*** ../FloodgateCore/dist/src/FloodgateEngine.js ***! \****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FloodgateEngine = void 0;\nvar CampaignDefinitionProvider_1 = __webpack_require__(/*! ./Campaign/CampaignDefinitionProvider */ \"../FloodgateCore/dist/src/Campaign/CampaignDefinitionProvider.js\");\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar GovernedChannelStateProvider_1 = __webpack_require__(/*! ./GovernedChannelStateProvider */ \"../FloodgateCore/dist/src/GovernedChannelStateProvider.js\");\nvar SurveyStatCollectionActivation_1 = __webpack_require__(/*! ./SurveyStatCollectionActivation */ \"../FloodgateCore/dist/src/SurveyStatCollectionActivation.js\");\nvar SurveyStatCollectionEventActivity_1 = __webpack_require__(/*! ./SurveyStatCollectionEventActivity */ \"../FloodgateCore/dist/src/SurveyStatCollectionEventActivity.js\");\nvar GovernanceUtils_1 = __webpack_require__(/*! ./GovernanceUtils */ \"../FloodgateCore/dist/src/GovernanceUtils.js\");\nvar ActivityTrackingContract_1 = __webpack_require__(/*! ./ActivityTrackingContract */ \"../FloodgateCore/dist/src/ActivityTrackingContract.js\");\nvar CampaignManager_1 = __webpack_require__(/*! ./Campaign/CampaignManager */ \"../FloodgateCore/dist/src/Campaign/CampaignManager.js\");\nvar CampaignStateProvider_1 = __webpack_require__(/*! ./Campaign/CampaignStateProvider */ \"../FloodgateCore/dist/src/Campaign/CampaignStateProvider.js\");\nvar FloodgateSettings_1 = __webpack_require__(/*! ./FloodgateSettings */ \"../FloodgateCore/dist/src/FloodgateSettings.js\");\nvar SurveyActivityListener_1 = __webpack_require__(/*! ./SurveyActivityListener */ \"../FloodgateCore/dist/src/SurveyActivityListener.js\");\nvar Constants_1 = __webpack_require__(/*! ./Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar Utils_1 = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar FloodgateSurveyCdnClient_1 = __webpack_require__(/*! ./FloodgateSurveyCdn/FloodgateSurveyCdnClient */ \"../FloodgateCore/dist/src/FloodgateSurveyCdn/FloodgateSurveyCdnClient.js\");\nvar FeatureGateProvider_1 = __webpack_require__(/*! ./FeatureGateProvider */ \"../FloodgateCore/dist/src/FeatureGateProvider.js\");\nvar Api_1 = __webpack_require__(/*! ./OrchestrationEngine/Api */ \"../FloodgateCore/dist/src/OrchestrationEngine/Api.js\");\nvar OrchestrationEngine_1 = __webpack_require__(/*! ./OrchestrationEngine/OrchestrationEngine */ \"../FloodgateCore/dist/src/OrchestrationEngine/OrchestrationEngine.js\");\n// Telemetry logger with no-op logger\nvar DefaultFloodgateTelemetryLogger = /** @class */ (function () {\n function DefaultFloodgateTelemetryLogger() {\n }\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_TriggerMet = function (campaignId, surveyId, surveyType, surveyActivityInfo, additionalSurveyInfo, treatmentType) { };\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_UserSelected = function (campaignId, surveyId, surveyType, additionalSurveyInfo, treatmentType) { };\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_CampaignLoad_Failed = function (errorMessage) { };\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_Error = function (eventId, errorMessage) { };\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_Event = function (eventId, properties) { };\n // @Override\n DefaultFloodgateTelemetryLogger.prototype.log_LocalError = function (message) {\n var data = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n };\n return DefaultFloodgateTelemetryLogger;\n}());\nvar defaultSurveyActivityListener = {\n run: function (survey) {\n },\n shouldAcceptActivity: function (activityName) {\n return true;\n },\n};\nvar globalSessionSurveyActivationCounts = {};\n/**\n * Floodgate Engine class. The main wiring hub and the brains responsible for\n * linking together the survey definitions, governance, activity tracking, and\n * survey launchers. Only one-instance-at-a-time of these should be created\n * per app session.\n */\nvar FloodgateEngine = /** @class */ (function () {\n function FloodgateEngine(surveyClient, activityListener, launcherFactory, onSurveyActivatedCallback, storage, orchestrationEngine, surveyActivationStatsProvider, transporterFactory, campaignTelemetrySamplingConfig, floodgateEngineConfig, personalizerClient) {\n this.initializationStatus = 0 /* None */;\n this.candidateSurveys = {};\n this.launchedSurveys = {};\n this.launchedLaunchers = [];\n this.surveyEventSent = [];\n this.staleTriggeredSurveysQueue = [];\n if (!surveyClient) {\n throw new Error(\"surveyClient must not be null\");\n }\n if (!activityListener) {\n throw new Error(\"activityListener must not be null\");\n }\n if (!launcherFactory) {\n throw new Error(\"launcherFactory must not be null\");\n }\n if (!onSurveyActivatedCallback) {\n throw new Error(\"onSurveyActivatedCallback must not be null\");\n }\n if (!storage) {\n throw new Error(\"storage must not be null\");\n }\n if (!orchestrationEngine) {\n throw new Error(\"governor must not be null\");\n }\n if (!transporterFactory) {\n throw new Error(\"transporterFactory must not be null\");\n }\n this.surveyClient = surveyClient;\n this.activityListener = activityListener;\n this.launcherFactory = launcherFactory;\n this.onSurveyActivatedCallback = onSurveyActivatedCallback;\n this.storage = storage;\n this.orchestrationEngine = orchestrationEngine;\n this.surveyActivationStatsProvider = surveyActivationStatsProvider;\n this.campaignTelemetrySamplingConfig = campaignTelemetrySamplingConfig;\n this.floodgateEngineConfig = floodgateEngineConfig;\n this.personalizerClient = personalizerClient;\n FloodgateEngine.transporterFactory = transporterFactory;\n this.loggedFirstStart = false;\n // Initialize our list to a valid, empty collection\n this.setPendingSurveys(null);\n // If the listener was pre-configured with survey for some reason, clear it now\n this.activityListener.clearSurveys();\n // Link ourselves with the listener\n /* eslint-disable-next-line @typescript-eslint/no-this-alias*/\n var thisObj = this; // Save current object in a variable to allow access from callback.\n this.activityListener.setCallback({\n run: function (surveyId, contextInfo) {\n thisObj.onSurveyActivated(surveyId, contextInfo);\n },\n shouldAcceptActivity: function (activityName) {\n return thisObj.shouldAcceptActivity(activityName);\n },\n });\n }\n FloodgateEngine.setTelemetryLogger = function (telemetryLogger) {\n if (!telemetryLogger) {\n throw new Error(\"telemetryLogger must not be null\");\n }\n FloodgateEngine.telemetryLogger = telemetryLogger;\n };\n FloodgateEngine.getTelemetryLogger = function () {\n return FloodgateEngine.telemetryLogger;\n };\n FloodgateEngine.getTransportFactory = function () {\n return FloodgateEngine.transporterFactory;\n };\n FloodgateEngine.make = function (buildVersion, launcherFactory, onSurveyActivatedCallback, fileBasedStorageProvider, hostBasedStorageProvider, stringProvider, environmentProvider, transporterFactory, campaignDefinitionProviders, userFactsProvider, governanceServiceClient, isPriorityEnabled, floodgateEngineConfig, appGovernanceProvider, logExperimentTrigger, campaignTelemetrySamplingConfig, personalizerClient, surveyClient) {\n try {\n var governedChannelStateProvider = GovernedChannelStateProvider_1.GovernedChannelStateProviderFactory.make(fileBasedStorageProvider, hostBasedStorageProvider);\n var surveyActivationStatsProvider = SurveyStatCollectionActivation_1.SurveyActivationStatsProviderFactory.make(fileBasedStorageProvider, hostBasedStorageProvider);\n var campaignStateProvider = CampaignStateProvider_1.CampaignStateProviderFactory.make(fileBasedStorageProvider, hostBasedStorageProvider);\n // Push to front of array so that it is the first provider to be checked.\n // FilterCampaignData method overwrites the latest campaign definition with the same id.\n // So, the static campaign definition provider should have the least priority during override.\n campaignDefinitionProviders.unshift(new CampaignDefinitionProvider_1.FileSystemCampaignDefinitionProvider(fileBasedStorageProvider));\n var orchestrationEngine_1 = new OrchestrationEngine_1.OrchestrationEngine(governanceServiceClient, governedChannelStateProvider, appGovernanceProvider);\n var getSurveyCandidacyChecker = function (surveyForm) {\n return orchestrationEngine_1.isSurveyTrackable(surveyForm);\n };\n var surveyCandidacyChecker = { isSurveyTrackable: getSurveyCandidacyChecker };\n var client = surveyClient || new CampaignManager_1.CampaignManager(campaignStateProvider, campaignDefinitionProviders, stringProvider, environmentProvider, buildVersion, new Date(), isPriorityEnabled, userFactsProvider, surveyCandidacyChecker, logExperimentTrigger, campaignTelemetrySamplingConfig);\n return new FloodgateEngine(client, new SurveyActivityListener_1.default(defaultSurveyActivityListener, this.getTelemetryLogger), launcherFactory, onSurveyActivatedCallback, fileBasedStorageProvider, orchestrationEngine_1, surveyActivationStatsProvider, transporterFactory, campaignTelemetrySamplingConfig, floodgateEngineConfig, personalizerClient);\n }\n catch (e) {\n this.telemetryLogger.log_Event(Constants_1.TelemetryEvent.FloodgateEngine.Make.Failed, { ErrorMessage: e && e.toString(), ErrorDetails: e && e.stack });\n }\n };\n FloodgateEngine.prototype.getSurveyClient = function () {\n return this.surveyClient;\n };\n /**\n * Save all internal stats and floodgateSettings (merging with existing file contents), without stopping the engine.\n */\n FloodgateEngine.prototype.mergeAndSave = function () {\n this.saveSettings();\n this.saveSurveyActivationHistory();\n this.saveSurveyEventActivityHistory();\n // Inform surveyClient to save its state\n this.surveyClient.saveCurrentState();\n // Save governed channel states\n this.orchestrationEngine.mergeAndSave();\n };\n /**\n * Start the engine. Checks feature enable state, causes survey definitions to be read, and tracked activities to be set on the listener.\n */\n FloodgateEngine.prototype.start = function () {\n if (this.initializationStatus === 2 /* Initializing */ ||\n this.initializationStatus === 3 /* Started */) {\n return;\n }\n try {\n this.setInitializationStatus(2 /* Initializing */);\n this.loadSettingsAndPriorEventCounts();\n var channelTypes = this.orchestrationEngine.getAvailableChannels();\n this.surveyClient.refreshSurveyDefinitions(channelTypes);\n this.setPendingSurveysAndStartFloodgate();\n this.setInitializationStatus(3 /* Started */);\n }\n catch (e) {\n this.setInitializationStatus(1 /* Error */);\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.Start.Failed, { ErrorMessage: e && e.toString(), ErrorDetails: e && e.stack });\n }\n };\n /**\n * Start the engine. Checks feature enable state, causes survey definitions to be read, and tracked activities to be set on the listener.\n */\n FloodgateEngine.prototype.startAsync = function () {\n var _this = this;\n if (this.initializationStatus === 2 /* Initializing */ ||\n this.initializationStatus === 3 /* Started */) {\n return Promise.resolve();\n }\n try {\n this.setInitializationStatus(2 /* Initializing */);\n this.loadSettingsAndPriorEventCounts();\n var channelTypes_1 = this.orchestrationEngine.getAvailableChannels();\n return new Promise(function (resolve, reject) {\n _this.surveyClient.refreshSurveyDefinitionsAsync(channelTypes_1).then(function () {\n // Handle any stop() calls that happened while initializing\n if (_this.initializationStatus === 4 /* Stopped */) {\n _this.setInitializationStatus(3 /* Started */);\n _this.stop();\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.StartAsync.Stopped, { ErrorMessage: \"Stopped because of a pending stop() call\" });\n }\n else {\n _this.setPendingSurveysAndStartFloodgate();\n }\n resolve();\n }).catch(function (error) {\n _this.setInitializationStatus(1 /* Error */);\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.StartAsync.Failed, { ErrorMessage: \"Survey refresh error \" + (error && error.message) });\n reject(error);\n });\n });\n }\n catch (e) {\n this.setInitializationStatus(1 /* Error */);\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.StartAsync.Failed, { ErrorMessage: e && e.toString(), ErrorDetails: e && e.stack });\n return Promise.resolve();\n }\n };\n /**\n * Stop the engine. Causes tracked activities to be cleared and any in-progress counters not otherwise saved to be thrown out.\n */\n FloodgateEngine.prototype.stop = function () {\n if (this.initializationStatus === 3 /* Started */) {\n this.mergeAndSave();\n // Clear our Survey list, and push that through to the listener\n this.setPendingSurveys(null);\n this.updateActivityListenerWithCurrentSurveyDefinitions();\n }\n this.setInitializationStatus(4 /* Stopped */);\n };\n /**\n * Gets the IActivityListener logging interface for callers that want to log directly rather than through telemetry\n */\n FloodgateEngine.prototype.getActivityListener = function () {\n return this.activityListener;\n };\n FloodgateEngine.prototype.setInitializationStatus = function (status) {\n this.initializationStatus = status;\n };\n FloodgateEngine.prototype.saveSettings = function () {\n this.storage.fileLock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.FloodgateSettings);\n try {\n this.writeString(floodgate_shared_typings_1.FloodgateStorageProviderFileType.FloodgateSettings, FloodgateSettings_1.FloodgateSettings.toJson(this.floodgateSettings));\n }\n finally {\n this.storage.fileUnlock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.FloodgateSettings);\n }\n };\n FloodgateEngine.prototype.loadSettingsAndPriorEventCounts = function () {\n try {\n // Load up the prior survey history and prior event counts\n this.previousSurveyActivationStats = this.surveyActivationStatsProvider.load();\n this.previousSurveyEventActivityStats =\n SurveyStatCollectionEventActivity_1.SurveyStatCollectionEventActivity.fromJson(this.readString(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyEventActivityStats));\n // get the list of survey Id - all the survey should have event sent already\n var stats = this.previousSurveyEventActivityStats.getStats();\n for (var key in stats) {\n if (Object.prototype.hasOwnProperty.call(stats, key)) {\n this.surveyEventSent.push(key);\n }\n }\n // Load up the general floodgateSettings\n this.floodgateSettings = FloodgateSettings_1.FloodgateSettings.fromJson(this.readString(floodgate_shared_typings_1.FloodgateStorageProviderFileType.FloodgateSettings));\n }\n catch (e) {\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.Common.Error, { ErrorMessage: \"Error loading prior settings/events \" + (e && e.toString()) });\n }\n };\n FloodgateEngine.prototype.setPendingSurveysAndStartFloodgate = function () {\n // Update our survey list, and push that through to the listener\n this.setPendingSurveys(this.surveyClient.getAppSurveys());\n this.updateActivityListenerWithCurrentSurveyDefinitions();\n // Mark us as started\n this.setInitializationStatus(3 /* Started */);\n // Log our first start (aka floodgate boot) event\n if (!this.loggedFirstStart) {\n this.loggedFirstStart = true;\n this.getActivityListener().logActivity(SurveyActivityListener_1.default.FloodgateStartActivityName);\n }\n };\n FloodgateEngine.prototype.updateSurveyActivationStats = function (survey) {\n var surveyInfo = survey.getSurveyInfo();\n var surveyId = surveyInfo.getId();\n var stats = this.previousSurveyActivationStats.getStats()[surveyId] || new SurveyStatCollectionActivation_1.SurveyActivationStats();\n stats.Type = survey.getType();\n stats.ExpirationTimeUtc = surveyInfo.getExpirationTimeUtc();\n stats.ActivationTimeUtc = new Date();\n stats.SurveyLaunchCount++;\n this.previousSurveyActivationStats.addStats(surveyId, stats);\n // Save the SurveyLaunchCountPerSession into global memory but not local storage\n // so it won't be overwritten in local storage by another app instance\n if (!Object.prototype.hasOwnProperty.call(globalSessionSurveyActivationCounts, surveyId)) {\n globalSessionSurveyActivationCounts[surveyId] = 0;\n }\n globalSessionSurveyActivationCounts[surveyId]++;\n };\n FloodgateEngine.prototype.saveSurveyActivationHistory = function () {\n this.storage.fileLock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats);\n try {\n var statCollection = this.surveyActivationStatsProvider.load();\n var previousStats = this.previousSurveyActivationStats.getStats();\n // Build the update collection\n var updateCollection = new SurveyStatCollectionActivation_1.SurveyStatCollectionActivation();\n for (var key in this.launchedSurveys) {\n if (Object.prototype.hasOwnProperty.call(this.launchedSurveys, key)) {\n var survey = this.launchedSurveys[key];\n var surveyId = survey.getSurveyInfo().getId();\n // Make this part of the update list\n var stats = previousStats[surveyId];\n updateCollection.addStats(surveyId, stats);\n }\n }\n // Actually merge our updates into the full collection\n statCollection.accumulate(updateCollection);\n this.surveyActivationStatsProvider.save(statCollection);\n // Make sure to keep our internal collection consistent with what we just wrote\n this.previousSurveyActivationStats = statCollection;\n }\n finally {\n this.storage.fileUnlock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats);\n }\n };\n FloodgateEngine.prototype.saveSurveyEventActivityHistory = function () {\n this.storage.fileLock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyEventActivityStats);\n try {\n var statCollection = SurveyStatCollectionEventActivity_1.SurveyStatCollectionEventActivity.fromJson(this.readString(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyEventActivityStats));\n var now = new Date();\n // Fill out our list of updates\n var updateCollection = new SurveyStatCollectionEventActivity_1.SurveyStatCollectionEventActivity();\n var _loop_1 = function (key) {\n if (Object.prototype.hasOwnProperty.call(this_1.candidateSurveys, key)) {\n var stats = new SurveyStatCollectionEventActivity_1.SurveyEventActivityStats();\n var survey = this_1.candidateSurveys[key];\n if (!survey.getSurveyInfo().isActiveForDate(now)) {\n return \"continue\";\n }\n stats.ExpirationTimeUtc = survey.getSurveyInfo().getExpirationTimeUtc();\n // Get the activities which are aggregated, if there aren't any continue\n var allActivities = survey.getSurveyInfo().getActivationEvent().getTrackingSet();\n var aggregateActivities_1 = [];\n var nonAggregateActivities_2 = [];\n allActivities.getList().forEach(function (data) {\n if (data) {\n if (data.getIsAggregate()) {\n aggregateActivities_1.push(data.getActivity());\n }\n else {\n nonAggregateActivities_2.push(data.getActivity());\n }\n }\n });\n stats.Counts = new Array(aggregateActivities_1.length);\n // Save off the counts we've added for this session\n for (var i = 0; i < aggregateActivities_1.length; i++) {\n stats.Counts[i] = this_1.activityListener.moveSessionCountIntoBaseCount(aggregateActivities_1[i], survey.getSurveyInfo().getId());\n }\n for (var _i = 0, nonAggregateActivities_1 = nonAggregateActivities_2; _i < nonAggregateActivities_1.length; _i++) {\n var activity = nonAggregateActivities_1[_i];\n this_1.activityListener.saveSessionTrackingActivity(activity);\n }\n // Make this part of the update list\n updateCollection.addStats(survey.getSurveyInfo().getId(), stats);\n }\n };\n var this_1 = this;\n for (var key in this.candidateSurveys) {\n _loop_1(key);\n }\n // Actually merge our updates into the full collection\n statCollection.accumulate(updateCollection);\n this.writeString(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyEventActivityStats, SurveyStatCollectionEventActivity_1.SurveyStatCollectionEventActivity.toJson(statCollection));\n // Make sure to keep our internal collection consistent with what we just wrote\n this.previousSurveyEventActivityStats = statCollection;\n }\n finally {\n this.storage.fileUnlock(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyEventActivityStats);\n }\n };\n FloodgateEngine.prototype.setPendingSurveys = function (pendingSurveys) {\n this.candidateSurveys = {};\n if (pendingSurveys) {\n var rejectCampaigns = [];\n var acceptCampaigns = [];\n for (var key in pendingSurveys) {\n if (Object.prototype.hasOwnProperty.call(pendingSurveys, key)) {\n var survey = pendingSurveys[key];\n var payload = {\n CampaignId: survey.getCampaignId(),\n SurveyId: key\n };\n if (this.launcherFactory.AcceptsSurvey(survey)) {\n this.candidateSurveys[key] = survey;\n acceptCampaigns.push(payload);\n }\n else {\n rejectCampaigns.push(payload);\n }\n }\n }\n // Default sampling rate: 0% - it's turned off by default. We will enable it from the Host app side if needed.\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.Common.ActiveSurveys, { Message: JSON.stringify({\n RejectCampaigns: rejectCampaigns,\n CandidateCampaigns: acceptCampaigns,\n PreviousCandidateSurveyIds: this.surveyEventSent\n })\n }, 0);\n }\n };\n FloodgateEngine.prototype.getCurrentSurveyDefinitions = function () {\n var _this = this;\n // Get a vector of Surveys from our id-based map\n var surveyList = new Array();\n var allCampaignDefinitionIDs = this.getAllCampaignDefinitionIDs();\n var allCandidateCampaignDefinitionIDs = this.getAllCandidateCampaignDefinitionIDs();\n // Get all the campaign definitions. We need info from these for telemetry.\n var allCampaignDefinitions = this.surveyClient.getCampaignDefinitions();\n var isSurveyAllowed = function (surveyInfo) {\n // always allow business critical and approved campaigns\n if (GovernanceUtils_1.isBusinessCriticalSurvey(surveyInfo)) {\n return true;\n }\n var surveyActivationStats = _this.previousSurveyActivationStats.getBySurveyId(surveyInfo.getId());\n if (GovernanceUtils_1.isMultiLaunchSurvey(surveyInfo) &&\n !GovernanceUtils_1.hasSurveyReachedMaxLaunches(surveyInfo, surveyActivationStats) &&\n !GovernanceUtils_1.hasSurveyReachedMaxLaunchesPerSession(surveyInfo, globalSessionSurveyActivationCounts)) {\n return true;\n }\n // Skip over any candidate surveys that have been previously completed or not active anymore\n if (surveyActivationStats || !surveyInfo.isActiveForDate(new Date())) {\n return false;\n }\n return true;\n };\n for (var key in this.candidateSurveys) {\n if (Object.prototype.hasOwnProperty.call(this.candidateSurveys, key)) {\n var survey = this.candidateSurveys[key];\n var surveyInfo = survey.getSurveyInfo();\n var campaignDefinition = allCampaignDefinitions[surveyInfo === null || surveyInfo === void 0 ? void 0 : surveyInfo.getBackEndId()];\n if (!campaignDefinition || !isSurveyAllowed(surveyInfo)) {\n continue;\n }\n // send the UserSelected event if it is not sent before\n if (this.surveyEventSent.indexOf(key) < 0) {\n this.surveyEventSent.push(key);\n var additionalSurveyInfo = this.getAdditionalSurveyInfoForTelemetry(survey, null /* contextInfo */, allCampaignDefinitionIDs, allCandidateCampaignDefinitionIDs);\n FloodgateEngine.telemetryLogger.log_UserSelected(surveyInfo.getBackEndId(), surveyInfo.getId(), survey.getType(), JSON.stringify(additionalSurveyInfo), surveyInfo.getTreatmentType());\n }\n surveyList.push(survey);\n }\n }\n return surveyList;\n };\n FloodgateEngine.prototype.getAdditionalSurveyInfoForTelemetry = function (survey, contextInfo, allCampaignDefinitionIDs, allCandidateCampaignDefinitionIDs) {\n // Get all the campaign definitions. We need info from these for telemetry.\n var allCampaignDefinitions = this.surveyClient.getCampaignDefinitions();\n // Get the corresponding campaign definition to the survey in question.\n var correspondingCampaignDefinition = allCampaignDefinitions[survey.getCampaignId()];\n // Survey properties to get from its corresponding CampaignDefinition:\n var nominationPeriodNumber;\n var cooldownPeriodNumber;\n var percentageNumerator = correspondingCampaignDefinition.nominationScheme.percentageNumerator;\n var percentageDenominator = correspondingCampaignDefinition.nominationScheme.percentageDenominator;\n nominationPeriodNumber = correspondingCampaignDefinition.nominationScheme.nominationPeriod.asTimeIntervalSeconds();\n nominationPeriodNumber = Utils_1.isNOU(nominationPeriodNumber) ? -1 : nominationPeriodNumber; // Setting to -1 if null or undefined\n cooldownPeriodNumber = correspondingCampaignDefinition.nominationScheme.cooldownPeriod.asTimeIntervalSeconds();\n cooldownPeriodNumber = Utils_1.isNOU(cooldownPeriodNumber) ? -1 : cooldownPeriodNumber; // Setting to -1 if null or undefined\n var surveyInfo = survey.getSurveyInfo();\n return {\n allCampaignDefinitionIDs: allCampaignDefinitionIDs,\n allCandidateCampaignDefinitionIDs: allCandidateCampaignDefinitionIDs,\n channelType: surveyInfo.getGovernedChannelType(),\n contextCount: contextInfo ? contextInfo.length : undefined,\n cooldownPeriodNumber: cooldownPeriodNumber,\n nominationPeriodNumber: nominationPeriodNumber,\n percentageDenominator: percentageDenominator,\n percentageNumerator: percentageNumerator,\n surveyLauncherType: survey.getLauncherType(),\n businessLevel: surveyInfo.getBusinessLevel(),\n maxLaunches: surveyInfo.getMaxLaunches(),\n maxLaunchesPerSession: surveyInfo.getMaxLaunchesPerSession(),\n isContentValid: survey.isContentValid(),\n isUxSchemaPresent: !Utils_1.isNOU(survey.getUxSchema())\n };\n };\n FloodgateEngine.prototype.getAllCandidateCampaignDefinitionIDs = function () {\n var allCandidateCampaignDefinitionIDs = [];\n // Get all the candidate surveys' campaign definition IDs\n for (var key in this.candidateSurveys) {\n if (Object.prototype.hasOwnProperty.call(this.candidateSurveys, key)) {\n var candidateSurvey = this.candidateSurveys[key];\n allCandidateCampaignDefinitionIDs.push(candidateSurvey.getSurveyInfo().getBackEndId());\n }\n }\n return allCandidateCampaignDefinitionIDs;\n };\n FloodgateEngine.prototype.getAllCampaignDefinitionIDs = function () {\n var allCampaignDefinitions = this.surveyClient.getCampaignDefinitions();\n var allCampaignDefinitionIDs = [];\n for (var definitionsKey in allCampaignDefinitions) {\n if (Object.prototype.hasOwnProperty.call(allCampaignDefinitions, definitionsKey)) {\n var definition = allCampaignDefinitions[definitionsKey];\n allCampaignDefinitionIDs.push(definition.campaignId);\n }\n }\n return allCampaignDefinitionIDs;\n };\n FloodgateEngine.prototype.updateActivityListenerWithCurrentSurveyDefinitions = function () {\n var surveyList = this.getCurrentSurveyDefinitions();\n var trackingContractList = [];\n for (var _i = 0, surveyList_1 = surveyList; _i < surveyList_1.length; _i++) {\n var survey = surveyList_1[_i];\n var surveyInfo = survey.getSurveyInfo();\n var trackingContract = new ActivityTrackingContract_1.ActivityTrackingContract(surveyInfo.getId(), surveyInfo.getActivationEvent().getTrackingSet());\n trackingContractList.push(trackingContract);\n }\n this.activityListener.SetActivityTrackingContracts(trackingContractList, this.previousSurveyEventActivityStats);\n };\n FloodgateEngine.prototype.setCriticalPendingSurveysAndUpdateActivityListener = function () {\n var activeSurveys = {};\n // Get all the candidate surveys' campaign definition IDs\n for (var key in this.candidateSurveys) {\n if (Object.prototype.hasOwnProperty.call(this.candidateSurveys, key)) {\n var candidateSurvey = this.candidateSurveys[key];\n if (GovernanceUtils_1.isCriticalSurvey(candidateSurvey.getSurveyInfo())) {\n activeSurveys[key] = candidateSurvey;\n }\n }\n }\n if (Object.keys(activeSurveys).length > 0) {\n this.setPendingSurveys(activeSurveys);\n this.updateActivityListenerWithCurrentSurveyDefinitions();\n }\n };\n FloodgateEngine.prototype.shouldAcceptActivity = function (activityName) {\n return this.initializationStatus === 3 /* Started */ ||\n activityName === SurveyActivityListener_1.default.FloodgateStartActivityName;\n };\n FloodgateEngine.prototype.onSurveyActivated = function (surveyId, contextInfo) {\n var _a, _b;\n // Find the survey object that corresponds to the surveyId passed\n var surveys = this.getCurrentSurveyDefinitions();\n var survey;\n for (var _i = 0, surveys_1 = surveys; _i < surveys_1.length; _i++) {\n var tempSurvey = surveys_1[_i];\n if (tempSurvey.getSurveyInfo().getId() === surveyId) {\n survey = tempSurvey;\n break;\n }\n }\n if (Utils_1.isNOU(survey)) {\n FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.SurveyNotDefined, \"Survey is not defined in the current survey definitions.\");\n return;\n }\n try {\n // this log will trigger when the user has first met the trigger action required to initially trigger the campaign.\n // this log occurs prior to the post governance checks which determines if the trigger is actually met and we can launch \n // the surface\n // Default sampling rate: 10%\n var initialTriggerSamplingRate = (_b = (_a = this.campaignTelemetrySamplingConfig) === null || _a === void 0 ? void 0 : _a.initialTriggerMetSamplingRate) !== null && _b !== void 0 ? _b : 0.1;\n if (initialTriggerSamplingRate > 0) {\n FloodgateEngine.telemetryLogger.log_Event(Constants_1.TelemetryEvent.FloodgateEngine.CampaignInitialTriggerMet, { CampaignId: survey.getCampaignId(), Message: \"Sampling Rate: \" + initialTriggerSamplingRate }, initialTriggerSamplingRate);\n }\n var governedChannelType = survey.getSurveyInfo().getGovernedChannelType();\n // If the governance service is in use, launch survey asynchronously\n if (this.orchestrationEngine.isChannelGovernanceEnabled(governedChannelType) ||\n (this.floodgateEngineConfig.uiStringsCdnEnabled && FloodgateSurveyCdnClient_1.isTranslationRequired(survey, this.floodgateEngineConfig.locale))) {\n // record the stale surveys, so we can clear its tracker if Engine is stopped\n this.staleTriggeredSurveysQueue.push(survey);\n // If there is no survey in stale before, launch the survey right away\n if (this.staleTriggeredSurveysQueue.length === 1) {\n // Launch the survey asynchronously\n this.checkTriggerMetApisAndActivateSurvey(survey, governedChannelType, contextInfo);\n }\n }\n else {\n this.activateSurvey(survey, governedChannelType, contextInfo);\n }\n }\n catch (e) {\n FloodgateEngine.telemetryLogger.log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.Error, { ErrorMessage: \"Error activating survey \" + (e && e.toString()), ErrorDetails: e && e.stack });\n }\n };\n FloodgateEngine.prototype.activateSurvey = function (survey, governedChannelType, contextInfo) {\n var launchSurvey = false;\n // Figure out if the activated survey is still relevant\n if (!this.candidateSurveys[survey.getSurveyInfo().getId()]) {\n // Survey is no longer relevant but was activated. Suppress it.\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.ActivationIrrelevantSurvey, {\n CampaignId: survey.getSurveyInfo().getBackEndId(),\n SurveyId: survey.getSurveyInfo().getId(),\n });\n }\n else if (!survey.getSurveyInfo().isActiveForDate(new Date())) {\n // Survey is no longer active (e.g. it was when we registered it but it has now expired)\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.ActivationExpiredSurvey, {\n CampaignId: survey.getSurveyInfo().getBackEndId(),\n SurveyId: survey.getSurveyInfo().getId(),\n });\n }\n else {\n if (GovernanceUtils_1.isCriticalSurvey(survey.getSurveyInfo())) {\n launchSurvey = true;\n }\n else if (!this.orchestrationEngine.isChannelOpen(governedChannelType)) {\n // Channel has closed and maxLaunches is not set, suppress the survey\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.ClosedChannelType, { ClosedChannelType: floodgate_shared_typings_1.GovernedChannelType[governedChannelType] });\n }\n else {\n // Get latest survey states from provider\n var refreshedSurveyActivationStats = this.surveyActivationStatsProvider.load();\n if (refreshedSurveyActivationStats.getBySurveyId(survey.getSurveyInfo().getId())) {\n // Survey stats exists already, don't launch\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.ActivationStatsSuppressedSurvey, {\n CampaignId: survey.getSurveyInfo().getBackEndId(),\n SurveyId: survey.getSurveyInfo().getId(),\n });\n }\n else if (Object.keys(this.launchedSurveys).length === 0) {\n // for now we only support launching one survey per session unless it is multi-launch campaign\n // Track this survey activation for the launch history tracker\n launchSurvey = true;\n }\n else {\n var triggeredSurvey = Object.values(this.launchedSurveys)[0];\n if (!Utils_1.isNOU(triggeredSurvey)) {\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.OnSurveyActivated.SessionSuppressedSurvey, {\n CampaignId: triggeredSurvey.getSurveyInfo().getBackEndId(),\n SurveyId: triggeredSurvey.getSurveyInfo().getId(),\n });\n }\n }\n }\n if (launchSurvey) {\n this.launchedSurveys[survey.getSurveyInfo().getId()] = survey;\n }\n }\n // At this point, regardless of whether or not the survey is still relevant, we should flush out the stats\n this.updateSurveyActivationStats(survey);\n this.mergeAndSave();\n // shut off further survey launches\n this.activityListener.clearSurveys();\n // Clear the survey from stale list\n this.staleTriggeredSurveysQueue = [];\n // Actually launch the survey if possible\n if (launchSurvey) {\n // Get the stringified json with activity names, counts and isAggregate info for TriggetMet telemetry.\n var activityTrackingString = survey.getSurveyInfo().getActivationEvent().getTrackingSet()\n .getActivityTrackingInfo(this.activityListener, survey.getSurveyInfo().getId());\n var additionalSurveyInfo = this.getAdditionalSurveyInfoForTelemetry(survey, contextInfo, this.getAllCampaignDefinitionIDs(), this.getAllCandidateCampaignDefinitionIDs());\n // Only adding the governance service client state at TriggerMet event\n additionalSurveyInfo.governanceServiceClientState = this.orchestrationEngine.getStateForTelemetry();\n FloodgateEngine.telemetryLogger.log_TriggerMet(survey.getSurveyInfo().getBackEndId(), survey.getSurveyInfo().getId(), survey.getType(), activityTrackingString, JSON.stringify(additionalSurveyInfo), survey.getSurveyInfo().getTreatmentType());\n // Set govern channel\n this.orchestrationEngine.startChannelCooldown(governedChannelType);\n var surveyInfo = survey.getSurveyInfo();\n var isSurveyComplete = true;\n if (GovernanceUtils_1.isBusinessCriticalSurvey(surveyInfo)) {\n // critical campaigns are not tracked\n isSurveyComplete = false;\n }\n else if (GovernanceUtils_1.isMultiLaunchSurvey(surveyInfo)) {\n var surveyActivationStats = this.previousSurveyActivationStats.getBySurveyId(surveyInfo.getId());\n isSurveyComplete = GovernanceUtils_1.hasSurveyReachedMaxLaunches(surveyInfo, surveyActivationStats);\n }\n // Set campaign states\n this.surveyClient.onSurveyActivated(surveyInfo, isSurveyComplete);\n // Show the survey\n this.launchLauncher(survey, contextInfo);\n // check if there are any critical campaigns and start tracking again\n this.setCriticalPendingSurveysAndUpdateActivityListener();\n }\n };\n FloodgateEngine.prototype.checkTriggerMetApisAndActivateSurvey = function (survey, governedChannelType, contextInfo) {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function () {\n var campaignDefinition, surveyLevelCooldown, serviceResult, governanceDecision, e_1, launchSurvey, governanceResponseTelemetry;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n campaignDefinition = this.surveyClient.getCampaignDefinitions()[survey.getCampaignId()];\n surveyLevelCooldown = campaignDefinition.nominationScheme.cooldownPeriod.asTimeIntervalSeconds();\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.queryTriggerMetApisAsync(survey, surveyLevelCooldown, governedChannelType)];\n case 2:\n governanceDecision = _c.sent();\n serviceResult = governanceDecision.serviceResult;\n return [3 /*break*/, 4];\n case 3:\n e_1 = _c.sent();\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.QueryTriggerMetApisAsync.Exception, { ErrorMessage: e_1 && e_1.toString(), ErrorDetails: e_1 && e_1.stack });\n // failure in case of exception\n serviceResult = {\n permission: false\n };\n return [3 /*break*/, 4];\n case 4:\n launchSurvey = false;\n governanceResponseTelemetry = JSON.stringify(this.createGorvernanceResponseTelemetry(serviceResult, survey.getCampaignId()));\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.CheckGovernanceServiceAndActivateSurvey.GovernanceServiceClientCompleted, {\n Message: governanceResponseTelemetry,\n });\n // Check if engine is still running\n if (this.initializationStatus !== 3 /* Started */) {\n return [2 /*return*/];\n }\n if (!serviceResult.error) {\n // Check result is permitted\n if (serviceResult.permission) { // the Governance Service is permitting, continue to trigger\n launchSurvey = true;\n }\n else {\n if (((_a = serviceResult.lastTriggerSurvey) === null || _a === void 0 ? void 0 : _a.timeUntilNextCampaignAllowed) > 0) {\n // Set governed channel to new cooldown\n this.orchestrationEngine.startChannelCooldown(governedChannelType, serviceResult.lastTriggerSurvey.lastTriggerCampaignTime);\n // Clear the survey relating to channel\n this.clearSurveyWithChannel(governedChannelType);\n }\n if (serviceResult.isSurveyGoverned &&\n ((_b = serviceResult.lastTriggerSurvey) === null || _b === void 0 ? void 0 : _b.timeUntilSameCampaignAllowed) > 0) {\n // Log the event\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.CheckGovernanceServiceAndActivateSurvey.GovernanceServiceSurveyInCooldown, {\n Message: governanceResponseTelemetry,\n });\n this.putSurveyOnCooldown(survey, serviceResult);\n }\n }\n }\n else {\n // If force to display with error, continue to trigger the survey\n if (this.orchestrationEngine.shouldForcePermission()) {\n launchSurvey = true;\n // Log the force to display event\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.CheckGovernanceServiceAndActivateSurvey.GovernanceServiceForceToDisplay, {\n ErrorMessage: serviceResult.errorMessage,\n });\n }\n }\n if (launchSurvey) {\n // Launch the survey\n this.activateSurvey(survey, governedChannelType, contextInfo);\n return [2 /*return*/];\n }\n // If there is only one survey, which is the current one in process, clear queue and return\n if (this.staleTriggeredSurveysQueue.length <= 1) {\n this.staleTriggeredSurveysQueue = [];\n return [2 /*return*/];\n }\n // Remove the first activated survey from the list which is the current one in process\n this.staleTriggeredSurveysQueue.shift();\n // Playback the next activated survey in waiting\n this.checkTriggerMetApisAndActivateSurvey(this.staleTriggeredSurveysQueue[0], governedChannelType, contextInfo);\n return [2 /*return*/];\n }\n });\n });\n };\n FloodgateEngine.prototype.readString = function (fileType) {\n return this.storage.read(fileType);\n };\n FloodgateEngine.prototype.writeString = function (fileType, str) {\n this.storage.write(fileType, str);\n };\n FloodgateEngine.prototype.launchLauncher = function (survey, contextInfo) {\n var launcher = this.launcherFactory.makeSurveyLauncher(survey);\n if (launcher) {\n this.launchedLaunchers.push(launcher);\n this.onSurveyActivatedCallback.onSurveyActivated(launcher, survey, { contextInfo: contextInfo });\n }\n };\n FloodgateEngine.prototype.clearSurveyWithChannel = function (governedChannelType) {\n var activeSurveys = {};\n // Get all the candidate surveys' campaign definition IDs\n for (var key in this.candidateSurveys) {\n if (Object.prototype.hasOwnProperty.call(this.candidateSurveys, key)) {\n var candidateSurvey = this.candidateSurveys[key];\n if (candidateSurvey.getSurveyInfo().getGovernedChannelType() !== governedChannelType) {\n activeSurveys[key] = candidateSurvey;\n }\n }\n }\n this.candidateSurveys = activeSurveys;\n this.activityListener.UpdateActivityTrackingContracts(this.candidateSurveys);\n };\n FloodgateEngine.prototype.createGorvernanceResponseTelemetry = function (serviceResult, campaignId) {\n return {\n CampaignId: campaignId,\n FloodgateEngineStatus: this.initializationStatus.toString(),\n GovernanceServiceResult: serviceResult,\n StaleTriggeredSurveysQueueCount: this.staleTriggeredSurveysQueue.length - 1,\n };\n };\n FloodgateEngine.prototype.putSurveyOnCooldown = function (survey, serviceResult) {\n // Set the Survey on cooldown from the value returned from the service\n this.surveyClient.modifyCampaignSurveyTakenDate(survey.getCampaignId(), serviceResult.lastTriggerSurvey.lastTriggerSameCampaignTime, true);\n };\n FloodgateEngine.prototype.queryTriggerMetApisAsync = function (survey, surveyLevelCooldown, channel) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var isLoadingSurveyCdnRequired, governanceParams, businessLevel, cdnSimpleRequestEnabled, floodgateSurveyCdnClient, loadCdnPromise, checkPermission, _b, cdnLoadResult, mopResult, cdnLoadResult;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n isLoadingSurveyCdnRequired = FloodgateSurveyCdnClient_1.isTranslationRequired(survey, this.floodgateEngineConfig.locale);\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.QueryTriggerMetApisAsync.QueryTriggerMetApisAsync, {\n Message: JSON.stringify({\n channel: channel,\n IsLoadingSurveyCdnRequired: isLoadingSurveyCdnRequired,\n GovServiceEnabled: this.orchestrationEngine.isChannelGovernanceEnabled(channel),\n FloodgateSurveyCdnClientEnabled: this.floodgateEngineConfig.uiStringsCdnEnabled\n }),\n });\n governanceParams = {\n campaignId: survey.getCampaignId(),\n surveyId: survey.getSurveyInfo().getId(),\n surveyType: survey.getType(),\n channelType: channel,\n launcherType: survey.getLauncherType(),\n maxLaunches: survey.getSurveyInfo().getMaxLaunches(),\n campaignCooldown: surveyLevelCooldown,\n userCooldown: -1,\n personalizerEnabled: false\n };\n businessLevel = survey.getSurveyInfo().getBusinessLevel();\n if (!(isLoadingSurveyCdnRequired && this.floodgateEngineConfig.uiStringsCdnEnabled)) return [3 /*break*/, 6];\n cdnSimpleRequestEnabled = (_a = FeatureGateProvider_1.getFeatureGateProvider()) === null || _a === void 0 ? void 0 : _a.getBoolFeatureStatus(\"CdnSimpleRequestEnabled\", false);\n floodgateSurveyCdnClient = new FloodgateSurveyCdnClient_1.default(this.floodgateEngineConfig.uiStringsLoadingTimeout, this.floodgateEngineConfig.uiStringCdnRetryLimit, cdnSimpleRequestEnabled);\n if (!this.floodgateEngineConfig.shouldFetchSurveyCdnConcurrently) return [3 /*break*/, 2];\n loadCdnPromise = floodgateSurveyCdnClient.loadCdnStringResource(survey, this.floodgateEngineConfig.locale);\n checkPermission = this.getGovernanceDecision(businessLevel, governanceParams);\n return [4 /*yield*/, Promise.all([loadCdnPromise, checkPermission])];\n case 1:\n _b = _c.sent(), cdnLoadResult = _b[0], mopResult = _b[1];\n // if SurveyCDN is failed, return false no need to check for MOP result\n if (!cdnLoadResult) {\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.QueryTriggerMetApisAsync.SurveyCdnFailureConcurrently, {\n Message: JSON.stringify({\n cdnLoadResult: cdnLoadResult,\n mopResult: mopResult\n }),\n });\n return [2 /*return*/, {\n governanceDecision: Api_1.GovernanceDecision.Rejected\n }];\n }\n return [2 /*return*/, mopResult];\n case 2: return [4 /*yield*/, floodgateSurveyCdnClient.loadCdnStringResource(survey, this.floodgateEngineConfig.locale)];\n case 3:\n cdnLoadResult = _c.sent();\n // if SurveyCDN is failed, return right away, no need to call MOP anymore\n if (!cdnLoadResult) {\n FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateEngine.QueryTriggerMetApisAsync.SurveyCdnFailureSequentially, {\n Message: JSON.stringify({\n cdnLoadResult: cdnLoadResult\n }),\n });\n return [2 /*return*/, {\n governanceDecision: Api_1.GovernanceDecision.Rejected\n }];\n }\n return [4 /*yield*/, this.getGovernanceDecision(businessLevel, governanceParams)];\n case 4: return [2 /*return*/, _c.sent()];\n case 5: return [3 /*break*/, 7];\n case 6: \n // Current behavior\n return [2 /*return*/, this.getGovernanceDecision(businessLevel, governanceParams)];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n FloodgateEngine.prototype.getGovernanceDecision = function (businessLevel, governanceParams) {\n return __awaiter(this, void 0, void 0, function () {\n var isEnabled, governanceDecision;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.personalizerClient) {\n isEnabled = this.personalizerClient.isEnabled(governanceParams.surveyType, governanceParams.launcherType, governanceParams.channelType);\n governanceParams.personalizerEnabled = isEnabled;\n }\n return [4 /*yield*/, this.orchestrationEngine.getDecision(businessLevel, governanceParams)];\n case 1:\n governanceDecision = _a.sent();\n if (governanceDecision && this.personalizerClient) {\n this.personalizerClient.onGovernanceServiceResult(governanceParams, governanceDecision.serviceResult);\n }\n return [2 /*return*/, governanceDecision];\n }\n });\n });\n };\n // Initialize telemetry logger with no-op logger\n FloodgateEngine.telemetryLogger = new DefaultFloodgateTelemetryLogger();\n return FloodgateEngine;\n}());\nexports.FloodgateEngine = FloodgateEngine;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0Zsb29kZ2F0ZUVuZ2luZS50cz80YWM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdLQUcrQztBQUMvQyw2S0FrQzBDO0FBQzFDLDRKQUFvSDtBQUNwSCxrS0FLMEM7QUFDMUMsMktBQWtIO0FBQ2xILHFIQU0yQjtBQUUzQixnSkFBc0U7QUFDdEUsdUlBQTZEO0FBQzdELHlKQUFnRjtBQUNoRiwySEFBd0Q7QUFFeEQsMElBQThEO0FBQzlELG1HQUE2QztBQUM3Qyx1RkFBZ0M7QUFFaEMsc0xBQWdIO0FBQ2hILGlJQUErRDtBQUUvRCx5SEFBaUk7QUFDakkseUtBQWdGO0FBRWhGLHFDQUFxQztBQUNyQztJQUFBO0lBb0JBLENBQUM7SUFuQkEsWUFBWTtJQUNMLHdEQUFjLEdBQXJCLFVBQXNCLFVBQWtCLEVBQUUsUUFBZ0IsRUFBRSxVQUFzQixFQUFFLGtCQUEwQixFQUM3RyxvQkFBNEIsRUFBRSxhQUE0QixJQUFVLENBQUM7SUFFdEUsWUFBWTtJQUNMLDBEQUFnQixHQUF2QixVQUF3QixVQUFrQixFQUFFLFFBQWdCLEVBQUUsVUFBc0IsRUFDbkYsb0JBQTRCLEVBQUUsYUFBNEIsSUFBVSxDQUFDO0lBRXRFLFlBQVk7SUFDTCxpRUFBdUIsR0FBOUIsVUFBK0IsWUFBb0IsSUFBVSxDQUFDO0lBRTlELFlBQVk7SUFDTCxtREFBUyxHQUFoQixVQUFpQixPQUFlLEVBQUUsWUFBb0IsSUFBVSxDQUFDO0lBRWpFLFlBQVk7SUFDTCxtREFBUyxHQUFoQixVQUFpQixPQUFlLEVBQUUsVUFBZ0MsSUFBVSxDQUFDO0lBRTdFLFlBQVk7SUFDTCx3REFBYyxHQUFyQixVQUFzQixPQUFlO1FBQUUsY0FBYzthQUFkLFVBQWMsRUFBZCxxQkFBYyxFQUFkLElBQWM7WUFBZCw2QkFBYzs7SUFBVSxDQUFDO0lBQ2pFLHNDQUFDO0FBQUQsQ0FBQztBQVVELElBQU0sNkJBQTZCLEdBQXFEO0lBQ3ZGLEdBQUcsWUFBQyxNQUFNO0lBQ1YsQ0FBQztJQUNELG9CQUFvQixZQUFDLFlBQVk7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0NBQ0QsQ0FBQztBQUVGLElBQU0sbUNBQW1DLEdBQXdCLEVBQUUsQ0FBQztBQUVwRTs7Ozs7R0FLRztBQUNIO0lBOEhDLHlCQUFtQixZQUE2QixFQUFFLGdCQUF3QyxFQUFFLGVBQXVDLEVBQ2xJLHlCQUFxRCxFQUFFLE9BQWtDLEVBQUUsbUJBQXlDLEVBQ3BJLDZCQUE2RCxFQUFFLGtCQUF1QyxFQUN0RywrQkFBaUUsRUFDakUscUJBQTZDLEVBQUUsa0JBQXVDO1FBeEIvRSx5QkFBb0IsZ0JBQW1EO1FBT3ZFLHFCQUFnQixHQUF5QixFQUFFLENBQUM7UUFDNUMsb0JBQWUsR0FBeUIsRUFBRSxDQUFDO1FBQzNDLHNCQUFpQixHQUFzQixFQUFFLENBQUM7UUFDMUMsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFJL0IsK0JBQTBCLEdBQWMsRUFBRSxDQUFDO1FBWWxELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1NBQ2pEO1FBQ0QsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1NBQ3BEO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUM5RDtRQUNELElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsSUFBSSxDQUFDLGtCQUFrQixFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztTQUN2RDtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMseUJBQXlCLEdBQUcseUJBQXlCLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQyw2QkFBNkIsR0FBRyw2QkFBNkIsQ0FBQztRQUNuRSxJQUFJLENBQUMsK0JBQStCLEdBQUcsK0JBQStCLENBQUM7UUFDdkUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxlQUFlLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFFeEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU5QixtREFBbUQ7UUFDbkQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdCLCtFQUErRTtRQUMvRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFckMsbUNBQW1DO1FBQ25DLDhEQUE4RDtRQUM5RCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxtRUFBbUU7UUFDekYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztZQUNqQyxHQUFHLEVBQUgsVUFBSSxRQUFnQixFQUFFLFdBQTJCO2dCQUNoRCxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxvQkFBb0IsRUFBcEIsVUFBcUIsWUFBb0I7Z0JBQ3hDLE9BQU8sT0FBTyxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25ELENBQUM7U0FDRCxDQUFDLENBQUM7SUFDSixDQUFDO0lBeExhLGtDQUFrQixHQUFoQyxVQUFpQyxlQUEwQztRQUMxRSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNwRDtRQUVELGVBQWUsQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ25ELENBQUM7SUFFYSxrQ0FBa0IsR0FBaEM7UUFDQyxPQUFPLGVBQWUsQ0FBQyxlQUFlLENBQUM7SUFDeEMsQ0FBQztJQUVhLG1DQUFtQixHQUFqQztRQUNDLE9BQU8sZUFBZSxDQUFDLGtCQUFrQixDQUFDO0lBQzNDLENBQUM7SUFFYSxvQkFBSSxHQUFsQixVQUNDLFlBQW9CLEVBQ3BCLGVBQXVDLEVBQ3ZDLHlCQUFxRCxFQUNyRCx3QkFBbUQsRUFDbkQsd0JBQTBELEVBQzFELGNBQXdDLEVBQ3hDLG1CQUFrRCxFQUNsRCxrQkFBdUMsRUFDdkMsMkJBQTBELEVBQzFELGlCQUFvQyxFQUNwQyx1QkFBaUQsRUFDakQsaUJBQTBCLEVBQzFCLHFCQUE2QyxFQUM3QyxxQkFBOEMsRUFDOUMsb0JBQTRDLEVBQzVDLCtCQUFrRSxFQUNsRSxrQkFBd0MsRUFDeEMsWUFBOEI7UUFFOUIsSUFBSTtZQUNILElBQU0sNEJBQTRCLEdBQy9CLGtFQUFtQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBRWhHLElBQU0sNkJBQTZCLEdBQ2hDLHFFQUFvQyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBRWpHLElBQU0scUJBQXFCLEdBQ3hCLG9EQUE0QixDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO1lBRXpGLHlFQUF5RTtZQUN6RSx3RkFBd0Y7WUFDeEYsOEZBQThGO1lBQzlGLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxJQUFJLGlFQUFvQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztZQUV4RyxJQUFNLHFCQUFtQixHQUFHLElBQUkseUNBQW1CLENBQUMsdUJBQXVCLEVBQUUsNEJBQTRCLEVBQUUscUJBQXFCLENBQUUsQ0FBQztZQUVuSSxJQUFNLHlCQUF5QixHQUFHLFVBQUMsVUFBdUI7Z0JBQ3pELE9BQU8scUJBQW1CLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDMUQsQ0FBQyxDQUFDO1lBRUYsSUFBTSxzQkFBc0IsR0FBNEIsRUFBRSxpQkFBaUIsRUFBRSx5QkFBeUIsRUFBRSxDQUFDO1lBRXpHLElBQU0sTUFBTSxHQUFHLFlBQVksSUFBSSxJQUFJLGlDQUFlLENBQ2pELHFCQUFxQixFQUNyQiwyQkFBMkIsRUFDM0IsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osSUFBSSxJQUFJLEVBQUUsRUFDVixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsK0JBQStCLENBQy9CLENBQUM7WUFFRixPQUFPLElBQUksZUFBZSxDQUN6QixNQUFNLEVBQ04sSUFBSSxnQ0FBc0IsQ0FDekIsNkJBQTZCLEVBQzdCLElBQUksQ0FBQyxrQkFBa0IsQ0FDdkIsRUFDRCxlQUFlLEVBQ2YseUJBQXlCLEVBQ3pCLHdCQUF3QixFQUN4QixxQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLGtCQUFrQixFQUNsQiwrQkFBK0IsRUFDL0IscUJBQXFCLEVBQ3JCLGtCQUFrQixDQUNsQixDQUFDO1NBQ0Y7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQ3hFLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUNsRTtJQUNGLENBQUM7SUE2Rk0seUNBQWUsR0FBdEI7UUFDQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksc0NBQVksR0FBbkI7UUFDQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDbkMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7UUFFdEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVyQywrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNJLCtCQUFLLEdBQVo7UUFDQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IseUJBQXNDO1lBQ2xFLElBQUksQ0FBQyxvQkFBb0Isb0JBQWlDLEVBQUU7WUFDNUQsT0FBTztTQUNQO1FBRUQsSUFBSTtZQUNILElBQUksQ0FBQyx1QkFBdUIsc0JBQW1DLENBQUM7WUFDaEUsSUFBSSxDQUFDLCtCQUErQixFQUFFLENBQUM7WUFFdkMsSUFBTSxZQUFZLEdBQTBCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBRTVGLElBQUksQ0FBQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLHVCQUF1QixpQkFBOEIsQ0FBQztTQUMzRDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLHVCQUF1QixlQUE0QixDQUFDO1lBQ3pELGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUN6RixFQUFFLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDbEU7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSSxvQ0FBVSxHQUFqQjtRQUFBLGlCQTJDQztRQTFDQSxJQUFJLElBQUksQ0FBQyxvQkFBb0IseUJBQXNDO1lBQ2xFLElBQUksQ0FBQyxvQkFBb0Isb0JBQWlDLEVBQUU7WUFDNUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDekI7UUFFRCxJQUFJO1lBQ0gsSUFBSSxDQUFDLHVCQUF1QixzQkFBbUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsK0JBQStCLEVBQUUsQ0FBQztZQUV2QyxJQUFNLGNBQVksR0FBMEIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFNUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO2dCQUNsQyxLQUFJLENBQUMsWUFBWSxDQUFDLDZCQUE2QixDQUFDLGNBQVksQ0FBQyxDQUFDLElBQUksQ0FDakU7b0JBQ0MsMkRBQTJEO29CQUMzRCxJQUFJLEtBQUksQ0FBQyxvQkFBb0Isb0JBQWlDLEVBQUU7d0JBQy9ELEtBQUksQ0FBQyx1QkFBdUIsaUJBQThCLENBQUM7d0JBQzNELEtBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3QkFDWixlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsMEJBQWMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFDL0YsRUFBRSxZQUFZLEVBQUUsMENBQTBDLEVBQUUsQ0FBQyxDQUFDO3FCQUMvRDt5QkFBTTt3QkFDTixLQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztxQkFDMUM7b0JBRUQsT0FBTyxFQUFFLENBQUM7Z0JBQ1gsQ0FBQyxDQUNELENBQUMsS0FBSyxDQUNOLFVBQUMsS0FBWTtvQkFDWixLQUFJLENBQUMsdUJBQXVCLGVBQTRCLENBQUM7b0JBQ3pELGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUM5RixFQUFFLFlBQVksRUFBRSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUV2RSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxDQUNELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxJQUFJLENBQUMsdUJBQXVCLGVBQTRCLENBQUM7WUFDekQsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQzlGLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNsRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN6QjtJQUNGLENBQUM7SUFFRDs7T0FFRztJQUNJLDhCQUFJLEdBQVg7UUFDQyxJQUFJLElBQUksQ0FBQyxvQkFBb0Isb0JBQWlDLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRXBCLCtEQUErRDtZQUMvRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLENBQUM7U0FDMUQ7UUFFRCxJQUFJLENBQUMsdUJBQXVCLGlCQUE4QixDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRztJQUNJLDZDQUFtQixHQUExQjtRQUNDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzlCLENBQUM7SUFFTyxpREFBdUIsR0FBL0IsVUFBZ0MsTUFBNEI7UUFDM0QsSUFBSSxDQUFDLG9CQUFvQixHQUFHLE1BQU0sQ0FBQztJQUNwQyxDQUFDO0lBRU8sc0NBQVksR0FBcEI7UUFDQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQywyREFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbEQsSUFBSTtZQUNILElBQUksQ0FBQyxXQUFXLENBQUMsMkRBQVEsQ0FBQyxpQkFBaUIsRUFBRSxxQ0FBaUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztTQUMvRjtnQkFBUztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDJEQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwRDtJQUNGLENBQUM7SUFFTyx5REFBK0IsR0FBdkM7UUFDQyxJQUFJO1lBQ0gsMERBQTBEO1lBQzFELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFL0UsSUFBSSxDQUFDLGdDQUFnQztnQkFDcEMscUVBQWlDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsMkRBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7WUFFaEcsNEVBQTRFO1lBQzVFLElBQU0sS0FBSyxHQUEwQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEcsS0FBSyxJQUFNLEdBQUcsSUFBSSxLQUFLLEVBQUU7Z0JBQ3hCLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQy9CO2FBQ0Q7WUFFRCx3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHFDQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDJEQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1NBQ2pHO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsMEJBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDekYsRUFBRSxZQUFZLEVBQUUsc0NBQXNDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2pGO0lBQ0YsQ0FBQztJQUVPLDREQUFrQyxHQUExQztRQUNDLGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxrREFBa0QsRUFBRSxDQUFDO1FBRTFELHFCQUFxQjtRQUNyQixJQUFJLENBQUMsdUJBQXVCLGlCQUE4QixDQUFDO1FBRTNELGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsV0FBVyxDQUFDLGdDQUFzQixDQUFDLDBCQUEwQixDQUFDLENBQUM7U0FDMUY7SUFDRixDQUFDO0lBRU8scURBQTJCLEdBQW5DLFVBQW9DLE1BQWU7UUFDbEQsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFDLElBQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQyxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxzREFBcUIsRUFBRSxDQUFDO1FBQ3JHLEtBQUssQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1RCxLQUFLLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNyQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUxQixJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsbUNBQW1DLEVBQUUsUUFBUSxDQUFDLEVBQUU7WUFDekYsbUNBQW1DLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsbUNBQW1DLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8scURBQTJCLEdBQW5DO1FBQ0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsMkRBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRELElBQUk7WUFDSCxJQUFNLGNBQWMsR0FBbUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxDQUFDO1lBRWpHLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUVwRSw4QkFBOEI7WUFDOUIsSUFBTSxnQkFBZ0IsR0FBRyxJQUFJLCtEQUE4QixFQUFFLENBQUM7WUFDOUQsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN2QyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxFQUFFO29CQUNwRSxJQUFNLE1BQU0sR0FBWSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsRCxJQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBRWhELG9DQUFvQztvQkFDcEMsSUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN0QyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUMzQzthQUNEO1lBRUQsc0RBQXNEO1lBQ3RELGNBQWMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhELCtFQUErRTtZQUMvRSxJQUFJLENBQUMsNkJBQTZCLEdBQUcsY0FBYyxDQUFDO1NBQ3BEO2dCQUFTO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsMkRBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0YsQ0FBQztJQUVPLHdEQUE4QixHQUF0QztRQUNDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLDJEQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUV6RCxJQUFJO1lBQ0gsSUFBTSxjQUFjLEdBQ25CLHFFQUFpQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLDJEQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1lBRWhHLElBQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdkIsK0JBQStCO1lBQy9CLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxxRUFBaUMsRUFBRSxDQUFDO29DQUN0RCxHQUFHO2dCQUNiLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQUssZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQ3JFLElBQU0sS0FBSyxHQUE2QixJQUFJLDREQUF3QixFQUFFLENBQUM7b0JBQ3ZFLElBQU0sTUFBTSxHQUFZLE9BQUssZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBRW5ELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFOztxQkFFakQ7b0JBRUQsS0FBSyxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUV4RSx3RUFBd0U7b0JBQ3hFLElBQU0sYUFBYSxHQUF5QixNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDekcsSUFBTSxxQkFBbUIsR0FBYSxFQUFFLENBQUM7b0JBQ3pDLElBQU0sd0JBQXNCLEdBQWEsRUFBRSxDQUFDO29CQUU1QyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUMsSUFBSTt3QkFDcEMsSUFBSSxJQUFJLEVBQUU7NEJBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7Z0NBQzFCLHFCQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQzs2QkFDN0M7aUNBQU07Z0NBQ04sd0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDOzZCQUNoRDt5QkFDRDtvQkFDRixDQUFDLENBQUMsQ0FBQztvQkFFSCxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLHFCQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUVyRCxtREFBbUQ7b0JBQ25ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxxQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7d0JBQ3BELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBSyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQyxxQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztxQkFDOUg7b0JBRUQsS0FBdUIsVUFBc0IsRUFBdEIsbURBQXNCLEVBQXRCLG9DQUFzQixFQUF0QixJQUFzQixFQUFFO3dCQUExQyxJQUFNLFFBQVE7d0JBQ2xCLE9BQUssZ0JBQWdCLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7cUJBQzVEO29CQUVELG9DQUFvQztvQkFDcEMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztpQkFDakU7OztZQXZDRixLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0I7d0JBQTVCLEdBQUc7YUF3Q2I7WUFFRCxzREFBc0Q7WUFDdEQsY0FBYyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBRTVDLElBQUksQ0FBQyxXQUFXLENBQUMsMkRBQVEsQ0FBQyx3QkFBd0IsRUFBRSxxRUFBaUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUM5RywrRUFBK0U7WUFDL0UsSUFBSSxDQUFDLGdDQUFnQyxHQUFHLGNBQWMsQ0FBQztTQUN2RDtnQkFBUztZQUNULElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLDJEQUFRLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUMzRDtJQUNGLENBQUM7SUFFTywyQ0FBaUIsR0FBekIsVUFBMEIsY0FBb0M7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUMzQixJQUFJLGNBQWMsRUFBRTtZQUNuQixJQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQzNCLEtBQUssSUFBTSxHQUFHLElBQUksY0FBYyxFQUFFO2dCQUNqQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQzlELElBQU0sTUFBTSxHQUFZLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDNUMsSUFBTSxPQUFPLEdBQTRCO3dCQUN4QyxVQUFVLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRTt3QkFDbEMsUUFBUSxFQUFFLEdBQUc7cUJBQ2I7b0JBQ0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRTt3QkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQzt3QkFDcEMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDOUI7eUJBQ0k7d0JBQ0osZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDOUI7aUJBQ0Q7YUFDRDtZQUVELDhHQUE4RztZQUM5RyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQUMsMEJBQWMsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFDakcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FDeEI7b0JBQ0MsZUFBZSxFQUFFLGVBQWU7b0JBQ2hDLGtCQUFrQixFQUFFLGVBQWU7b0JBQ25DLDBCQUEwQixFQUFFLElBQUksQ0FBQyxlQUFlO2lCQUNoRCxDQUFDO2FBQ0YsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO0lBQ0YsQ0FBQztJQUVPLHFEQUEyQixHQUFuQztRQUFBLGlCQTZEQztRQTVEQSxnREFBZ0Q7UUFDaEQsSUFBTSxVQUFVLEdBQWMsSUFBSSxLQUFLLEVBQVcsQ0FBQztRQUVuRCxJQUFNLHdCQUF3QixHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3BFLElBQU0saUNBQWlDLEdBQUcsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUM7UUFFdEYsMkVBQTJFO1FBQzNFLElBQU0sc0JBQXNCLEdBQUksSUFBSSxDQUFDLFlBQWdDLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUUvRixJQUFNLGVBQWUsR0FBRyxVQUFDLFVBQXVCO1lBQy9DLHdEQUF3RDtZQUN4RCxJQUFJLDBDQUF3QixDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN6QyxPQUFPLElBQUksQ0FBQzthQUNaO1lBRUQsSUFBTSxxQkFBcUIsR0FBRyxLQUFJLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ25HLElBQUkscUNBQW1CLENBQUMsVUFBVSxDQUFDO2dCQUNsQyxDQUFDLDZDQUEyQixDQUFDLFVBQVUsRUFBRSxxQkFBcUIsQ0FBQztnQkFDL0QsQ0FBQyx1REFBcUMsQ0FBQyxVQUFVLEVBQUUsbUNBQW1DLENBQUMsRUFBRTtnQkFDekYsT0FBTyxJQUFJLENBQUM7YUFDWjtZQUVELDRGQUE0RjtZQUM1RixJQUFJLHFCQUFxQixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQ3JFLE9BQU8sS0FBSyxDQUFDO2FBQ2I7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNiLENBQUMsQ0FBQztRQUVGLEtBQUssSUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3hDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsRUFBRTtnQkFDckUsSUFBTSxNQUFNLEdBQVksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuRCxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzFDLElBQU0sa0JBQWtCLEdBQXdCLHNCQUFzQixDQUFDLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxZQUFZLEdBQUcsQ0FBQztnQkFDbkcsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUN4RCxTQUFTO2lCQUNUO2dCQUVELHVEQUF1RDtnQkFDdkQsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUUvQixJQUFNLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQ0FBbUMsQ0FBQyxNQUFNLEVBQzNFLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsd0JBQXdCLEVBQ3hCLGlDQUFpQyxDQUFDLENBQUM7b0JBRXBDLGVBQWUsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxFQUN6RSxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQ2xCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUNwQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO2lCQUNoQztnQkFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3hCO1NBQ0Q7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNuQixDQUFDO0lBRU8sNkRBQW1DLEdBQTNDLFVBQTRDLE1BQWUsRUFDMUQsV0FBMkIsRUFBRSx3QkFBa0MsRUFBRSxpQ0FBMkM7UUFpQjVHLDJFQUEyRTtRQUMzRSxJQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUUxRSx1RUFBdUU7UUFDdkUsSUFBTSwrQkFBK0IsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUV2RixzRUFBc0U7UUFDdEUsSUFBSSxzQkFBOEIsQ0FBQztRQUNuQyxJQUFJLG9CQUE0QixDQUFDO1FBRWpDLElBQU0sbUJBQW1CLEdBQUksK0JBQStCLENBQUMsZ0JBQTRELENBQUMsbUJBQW1CLENBQUM7UUFDOUksSUFBTSxxQkFBcUIsR0FBSSwrQkFBK0IsQ0FBQyxnQkFBNEQsQ0FBQyxxQkFBcUIsQ0FBQztRQUVsSixzQkFBc0IsR0FBRywrQkFBK0IsQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ25ILHNCQUFzQixHQUFHLGFBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxxQ0FBcUM7UUFFM0gsb0JBQW9CLEdBQUcsK0JBQStCLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDL0csb0JBQW9CLEdBQUcsYUFBSyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFFLHFDQUFxQztRQUV0SCxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUMsT0FBTztZQUNOLHdCQUF3QjtZQUN4QixpQ0FBaUM7WUFDakMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxzQkFBc0IsRUFBRTtZQUNoRCxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzFELG9CQUFvQjtZQUNwQixzQkFBc0I7WUFDdEIscUJBQXFCO1lBQ3JCLG1CQUFtQjtZQUNuQixrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzVDLGFBQWEsRUFBRSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDNUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFjLEVBQUU7WUFDeEMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLHdCQUF3QixFQUFFO1lBQzVELGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3ZDLGlCQUFpQixFQUFFLENBQUMsYUFBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLDhEQUFvQyxHQUE1QztRQUVDLElBQU0saUNBQWlDLEdBQWEsRUFBRSxDQUFDO1FBRXZELHlEQUF5RDtRQUN6RCxLQUFLLElBQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4QyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ3JFLElBQU0sZUFBZSxHQUFZLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUQsaUNBQWlDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2FBQ3ZGO1NBQ0Q7UUFDRCxPQUFPLGlDQUFpQyxDQUFDO0lBQzFDLENBQUM7SUFFTyxxREFBMkIsR0FBbkM7UUFFQyxJQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMxRSxJQUFNLHdCQUF3QixHQUFhLEVBQUUsQ0FBQztRQUU5QyxLQUFLLElBQU0sY0FBYyxJQUFJLHNCQUFzQixFQUFFO1lBQ3BELElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLGNBQWMsQ0FBQyxFQUFFO2dCQUNqRixJQUFNLFVBQVUsR0FBd0Isc0JBQXNCLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQy9FLHdCQUF3QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDckQ7U0FDRDtRQUNELE9BQU8sd0JBQXdCLENBQUM7SUFDakMsQ0FBQztJQUVPLDRFQUFrRCxHQUExRDtRQUNDLElBQU0sVUFBVSxHQUFjLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ2pFLElBQU0sb0JBQW9CLEdBQStCLEVBQUUsQ0FBQztRQUU1RCxLQUFxQixVQUFVLEVBQVYseUJBQVUsRUFBVix3QkFBVSxFQUFWLElBQVUsRUFBRTtZQUE1QixJQUFNLE1BQU07WUFDaEIsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFDLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxtREFBd0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztZQUM1SCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM1QztRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyw0QkFBNEIsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRU8sNEVBQWtELEdBQTFEO1FBQ0MsSUFBTSxhQUFhLEdBQXlCLEVBQUUsQ0FBQztRQUUvQyx5REFBeUQ7UUFDekQsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNyRSxJQUFNLGVBQWUsR0FBWSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVELElBQUksa0NBQWdCLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLEVBQUU7b0JBQ3RELGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUM7aUJBQ3JDO2FBQ0Q7U0FDRDtRQUVELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsa0RBQWtELEVBQUUsQ0FBQztTQUMxRDtJQUNGLENBQUM7SUFFTyw4Q0FBb0IsR0FBNUIsVUFBNkIsWUFBb0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsb0JBQW9CLG9CQUFpQztZQUNoRSxZQUFZLEtBQUssZ0NBQXNCLENBQUMsMEJBQTBCLENBQUM7SUFDckUsQ0FBQztJQUVPLDJDQUFpQixHQUF6QixVQUEwQixRQUFnQixFQUFFLFdBQTJCOztRQUN0RSxpRUFBaUU7UUFDakUsSUFBTSxPQUFPLEdBQWMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7UUFDOUQsSUFBSSxNQUFlLENBQUM7UUFFcEIsS0FBeUIsVUFBTyxFQUFQLG1CQUFPLEVBQVAscUJBQU8sRUFBUCxJQUFPLEVBQUU7WUFBN0IsSUFBTSxVQUFVO1lBQ3BCLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLFFBQVEsRUFBRTtnQkFDcEQsTUFBTSxHQUFHLFVBQVUsQ0FBQztnQkFDcEIsTUFBTTthQUNOO1NBQ0Q7UUFFRCxJQUFJLGFBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsQixlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUNqRSwwREFBMEQsQ0FDMUQsQ0FBQztZQUNGLE9BQU87U0FDUDtRQUVELElBQUk7WUFDSCxtSEFBbUg7WUFDbkgseUhBQXlIO1lBQ3pILGNBQWM7WUFDZCw2QkFBNkI7WUFDN0IsSUFBTSwwQkFBMEIsZUFBRyxJQUFJLENBQUMsK0JBQStCLDBDQUFFLDZCQUE2QixtQ0FDbEcsR0FBRyxDQUFDO1lBQ1IsSUFBSSwwQkFBMEIsR0FBRyxDQUFDLEVBQUU7Z0JBQ25DLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsZUFBZSxDQUFDLHlCQUF5QixFQUNqRyxFQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixHQUFHLDBCQUEwQixFQUFDLEVBQUUsMEJBQTBCLENBQUMsQ0FBQzthQUM1SDtZQUVELElBQU0sbUJBQW1CLEdBQXdCLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBRWpHLG9FQUFvRTtZQUNwRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDM0UsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLElBQUksZ0RBQXFCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFO2dCQUN0SCw2RUFBNkU7Z0JBQzdFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRTdDLHNFQUFzRTtnQkFDdEUsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDakQsbUNBQW1DO29CQUNuQyxJQUFJLENBQUMsb0NBQW9DLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO2lCQUNwRjthQUNEO2lCQUFNO2dCQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO2FBQzlEO1NBQ0Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLGVBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFDL0YsRUFBRSxZQUFZLEVBQUUsOEJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQy9GO0lBQ0YsQ0FBQztJQUVPLHdDQUFjLEdBQXRCLFVBQXVCLE1BQWUsRUFBRSxtQkFBd0MsRUFBRSxXQUEyQjtRQUM1RyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDM0QsK0RBQStEO1lBQy9ELGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FDN0MsMEJBQWMsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsMEJBQTBCLEVBQzNFO2dCQUNDLFVBQVUsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsWUFBWSxFQUFFO2dCQUNqRCxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRTthQUN4QyxDQUFDLENBQUM7U0FDSjthQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRTtZQUMvRCx3RkFBd0Y7WUFDeEYsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFDeEU7Z0JBQ0MsVUFBVSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFO2FBQ3hDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTixJQUFJLGtDQUFnQixDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxFQUFFO2dCQUM3QyxZQUFZLEdBQUcsSUFBSSxDQUFDO2FBQ3BCO2lCQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7Z0JBQ3hFLHFFQUFxRTtnQkFDckUsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFDbEUsRUFBRSxpQkFBaUIsRUFBRSw4Q0FBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNsRTtpQkFBTTtnQkFDTix5Q0FBeUM7Z0JBQ3pDLElBQU0sOEJBQThCLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqRixJQUFJLDhCQUE4QixDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRTtvQkFDakYsNENBQTRDO29CQUM1QyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixFQUNoRjt3QkFDQyxVQUFVLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQVksRUFBRTt3QkFDakQsUUFBUSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUU7cUJBQ3hDLENBQUMsQ0FBQztpQkFDSjtxQkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzFELDhGQUE4RjtvQkFDOUYsOERBQThEO29CQUM5RCxZQUFZLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjtxQkFBTTtvQkFDTixJQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDL0QsSUFBSSxDQUFDLGFBQUssQ0FBQyxlQUFlLENBQUMsRUFBRTt3QkFDNUIsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFDeEU7NEJBQ0MsVUFBVSxFQUFFLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxZQUFZLEVBQUU7NEJBQzFELFFBQVEsRUFBRSxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFO3lCQUNqRCxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Q7YUFDRDtZQUVELElBQUksWUFBWSxFQUFFO2dCQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQzthQUM5RDtTQUNEO1FBRUQsMEdBQTBHO1FBQzFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVyQyxtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEVBQUUsQ0FBQztRQUVyQyx5Q0FBeUM7UUFDekMsSUFBSSxZQUFZLEVBQUU7WUFDakIsc0dBQXNHO1lBQ3RHLElBQU0sc0JBQXNCLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsY0FBYyxFQUFFO2lCQUN6Rix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFFakYsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUNBQW1DLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFDNUgsSUFBSSxDQUFDLG9DQUFvQyxFQUFFLENBQUMsQ0FBQztZQUU5QyxzRUFBc0U7WUFDdEUsb0JBQW9CLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFFcEcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFDbkgsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1lBRTVILHFCQUFxQjtZQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUVuRSxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUMsSUFBSSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDNUIsSUFBSSwwQ0FBd0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDekMscUNBQXFDO2dCQUNyQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7YUFDekI7aUJBQU0sSUFBSSxxQ0FBbUIsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDM0MsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRyxnQkFBZ0IsR0FBRyw2Q0FBMkIsQ0FBQyxVQUFVLEVBQUUscUJBQXFCLENBQUMsQ0FBQzthQUNsRjtZQUVELHNCQUFzQjtZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBRWxFLGtCQUFrQjtZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUV6QyxxRUFBcUU7WUFDckUsSUFBSSxDQUFDLGtEQUFrRCxFQUFFLENBQUM7U0FDMUQ7SUFDRixDQUFDO0lBRWEsOERBQW9DLEdBQWxELFVBQW1ELE1BQWUsRUFDakUsbUJBQXdDLEVBQ3hDLFdBQTJCOzs7Ozs7O3dCQUVyQixrQkFBa0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7d0JBQ3hGLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDOzs7O3dCQUszRSxxQkFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixDQUFDOzt3QkFBMUcsa0JBQWtCLEdBQUcsU0FBcUY7d0JBQ2hILGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7Ozs7d0JBRWpELGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGVBQWUsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLEVBQy9HLEVBQUUsWUFBWSxFQUFFLEdBQUMsSUFBSSxHQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsWUFBWSxFQUFFLEdBQUMsSUFBSSxHQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQzt3QkFDbEUsK0JBQStCO3dCQUMvQixhQUFhLEdBQUc7NEJBQ2YsVUFBVSxFQUFFLEtBQUs7eUJBQ2pCLENBQUM7Ozt3QkFFQyxZQUFZLEdBQUcsS0FBSyxDQUFDO3dCQUduQiwyQkFBMkIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDbkksZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGVBQWUsQ0FBQyx1Q0FBdUMsQ0FBQyxnQ0FBZ0MsRUFDdkc7NEJBQ0MsT0FBTyxFQUFFLDJCQUEyQjt5QkFDcEMsQ0FBQyxDQUFDO3dCQUVKLG1DQUFtQzt3QkFDbkMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLG9CQUFpQyxFQUFFOzRCQUMvRCxzQkFBTzt5QkFDUDt3QkFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRTs0QkFDekIsNEJBQTRCOzRCQUM1QixJQUFJLGFBQWEsQ0FBQyxVQUFVLEVBQUUsRUFBRSw0REFBNEQ7Z0NBQzNGLFlBQVksR0FBRyxJQUFJLENBQUM7NkJBQ3BCO2lDQUFNO2dDQUNOLElBQUksb0JBQWEsQ0FBQyxpQkFBaUIsMENBQUUsNEJBQTRCLElBQUcsQ0FBQyxFQUFFO29DQUN0RSx1Q0FBdUM7b0NBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztvQ0FFNUgsdUNBQXVDO29DQUN2QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztpQ0FDakQ7Z0NBRUQsSUFDQyxhQUFhLENBQUMsZ0JBQWdCO29DQUM5QixvQkFBYSxDQUFDLGlCQUFpQiwwQ0FBRSw0QkFBNEIsSUFBRyxDQUFDLEVBQ2hFO29DQUNELGdCQUFnQjtvQ0FDaEIsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGVBQWUsQ0FBQyx1Q0FBdUMsQ0FBQyxpQ0FBaUMsRUFDeEc7d0NBQ0MsT0FBTyxFQUFFLDJCQUEyQjtxQ0FDcEMsQ0FBQyxDQUFDO29DQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUM7aUNBQ2hEOzZCQUNEO3lCQUNEOzZCQUFNOzRCQUNOLGlFQUFpRTs0QkFDakUsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLEVBQUUsRUFBRTtnQ0FDckQsWUFBWSxHQUFHLElBQUksQ0FBQztnQ0FFcEIsaUNBQWlDO2dDQUNqQyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsZUFBZSxDQUFDLHVDQUF1QyxDQUFDLCtCQUErQixFQUN0RztvQ0FDQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFlBQVk7aUNBQ3hDLENBQUMsQ0FBQzs2QkFDSjt5QkFDRDt3QkFFRCxJQUFJLFlBQVksRUFBRTs0QkFDakIsb0JBQW9COzRCQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUMsQ0FBQzs0QkFDOUQsc0JBQU87eUJBQ1A7d0JBRUQsMkZBQTJGO3dCQUMzRixJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFOzRCQUNoRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsRUFBRSxDQUFDOzRCQUNyQyxzQkFBTzt5QkFDUDt3QkFFRCxzRkFBc0Y7d0JBQ3RGLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLEVBQUUsQ0FBQzt3QkFFeEMsZ0RBQWdEO3dCQUNoRCxJQUFJLENBQUMsb0NBQW9DLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDOzs7OztLQUNoSDtJQUVPLG9DQUFVLEdBQWxCLFVBQW1CLFFBQWtCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLHFDQUFXLEdBQW5CLFVBQW9CLFFBQWtCLEVBQUUsR0FBVztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLHdDQUFjLEdBQXRCLFVBQXVCLE1BQWUsRUFBRSxXQUEyQjtRQUNsRSxJQUFNLFFBQVEsR0FBb0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRixJQUFJLFFBQVEsRUFBRTtZQUNiLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxXQUFXLGVBQUUsQ0FBQyxDQUFDO1NBQ3BGO0lBQ0YsQ0FBQztJQUVPLGdEQUFzQixHQUE5QixVQUErQixtQkFBd0M7UUFDdEUsSUFBTSxhQUFhLEdBQXlCLEVBQUUsQ0FBQztRQUUvQyx5REFBeUQ7UUFDekQsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUNyRSxJQUFNLGVBQWUsR0FBWSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVELElBQUksZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEtBQUssbUJBQW1CLEVBQUU7b0JBQ3JGLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxlQUFlLENBQUM7aUJBQ3JDO2FBQ0Q7U0FDRDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUM7UUFDdEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyw0REFBa0MsR0FBMUMsVUFBMkMsYUFBdUMsRUFBRSxVQUFrQjtRQUNyRyxPQUFPO1lBQ04sVUFBVSxFQUFFLFVBQVU7WUFDdEIscUJBQXFCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtZQUMzRCx1QkFBdUIsRUFBRSxhQUFhO1lBQ3RDLCtCQUErQixFQUFFLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztTQUMzRSxDQUFDO0lBQ0gsQ0FBQztJQUVPLDZDQUFtQixHQUEzQixVQUE0QixNQUFlLEVBQUUsYUFBdUM7UUFDbkYsc0VBQXNFO1FBQ3RFLElBQUksQ0FBQyxZQUFZLENBQUMsNkJBQTZCLENBQzlDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsRUFDdEIsYUFBYSxDQUFDLGlCQUFpQixDQUFDLDJCQUEyQixFQUMzRCxJQUFJLENBQUMsQ0FBQztJQUNSLENBQUM7SUFFYSxrREFBd0IsR0FBdEMsVUFDQyxNQUFlLEVBQ2YsbUJBQTJCLEVBQzNCLE9BQTRCOzs7Ozs7O3dCQUN0QiwwQkFBMEIsR0FBRyxnREFBcUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDO3dCQUNwRyxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixFQUNoRjs0QkFDQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQ0FDdkIsT0FBTztnQ0FDUCwwQkFBMEIsRUFBRSwwQkFBMEI7Z0NBQ3RELGlCQUFpQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUM7Z0NBQy9FLCtCQUErQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUI7NkJBQy9FLENBQUM7eUJBQ0YsQ0FBQyxDQUFDO3dCQUVFLGdCQUFnQixHQUEwQjs0QkFDL0MsVUFBVSxFQUFFLE1BQU0sQ0FBQyxhQUFhLEVBQUU7NEJBQ2xDLFFBQVEsRUFBRSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFOzRCQUN4QyxVQUFVLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRTs0QkFDNUIsV0FBVyxFQUFFLE9BQU87NEJBQ3BCLFlBQVksRUFBRSxNQUFNLENBQUMsZUFBZSxFQUFFOzRCQUN0QyxXQUFXLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLGNBQWMsRUFBRTs0QkFDcEQsZ0JBQWdCLEVBQUUsbUJBQW1COzRCQUNyQyxZQUFZLEVBQUUsQ0FBQyxDQUFDOzRCQUNoQixtQkFBbUIsRUFBRSxLQUFLO3lCQUMxQixDQUFDO3dCQUVJLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsZ0JBQWdCLEVBQXNDLENBQUM7NkJBRWhHLDJCQUEwQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsR0FBNUUsd0JBQTRFO3dCQUN6RSx1QkFBdUIsU0FBRyw0Q0FBc0IsRUFBRSwwQ0FBRSxvQkFBb0IsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDM0csd0JBQXdCLEdBQUcsSUFBSSxrQ0FBd0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLEVBQy9HLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDOzZCQUN4RSxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0NBQWdDLEVBQTNELHdCQUEyRDt3QkFDeEQsY0FBYyxHQUFHLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQzNHLGVBQWUsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUM7d0JBQ2pELHFCQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7O3dCQUFqRixLQUE2QixTQUFvRCxFQUFoRixhQUFhLFVBQUUsU0FBUzt3QkFDL0IsdUVBQXVFO3dCQUN2RSxJQUFJLENBQUMsYUFBYSxFQUFFOzRCQUNuQixlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLDRCQUE0QixFQUNwRjtnQ0FDQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQ0FDdkIsYUFBYTtvQ0FDYixTQUFTO2lDQUNULENBQUM7NkJBQ0YsQ0FBQyxDQUFDOzRCQUNKLHNCQUFPO29DQUNOLGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLFFBQVE7aUNBQy9DLEVBQUM7eUJBQ0Y7d0JBQ0Qsc0JBQU8sU0FBUyxFQUFDOzRCQUVLLHFCQUFNLHdCQUF3QixDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDOzt3QkFBL0csYUFBYSxHQUFHLFNBQStGO3dCQUNySCx5RUFBeUU7d0JBQ3pFLElBQUksQ0FBQyxhQUFhLEVBQUU7NEJBQ25CLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FDN0MsMEJBQWMsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsNEJBQTRCLEVBQ3BGO2dDQUNDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO29DQUN2QixhQUFhO2lDQUNiLENBQUM7NkJBQ0YsQ0FBQyxDQUFDOzRCQUNKLHNCQUFPO29DQUNOLGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLFFBQVE7aUNBQy9DLEVBQUM7eUJBQ0Y7d0JBQ00scUJBQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFBeEUsc0JBQU8sU0FBaUUsRUFBQzs7O29CQUcxRSxtQkFBbUI7b0JBQ25CLHNCQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsRUFBQzs7Ozs7S0FFcEU7SUFFYSwrQ0FBcUIsR0FBbkMsVUFBb0MsYUFBb0MsRUFBRSxnQkFBdUM7Ozs7Ozt3QkFDaEgsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7NEJBQ3RCLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7NEJBQzlJLGdCQUFnQixDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQzt5QkFDakQ7d0JBRTBCLHFCQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDOzt3QkFBaEcsa0JBQWtCLEdBQUcsU0FBMkU7d0JBQ3RHLElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFOzRCQUNsRCxJQUFJLENBQUMsa0JBQWtCLENBQUMseUJBQXlCLENBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7eUJBQ3RHO3dCQUVELHNCQUFPLGtCQUFrQixFQUFDOzs7O0tBQzFCO0lBejlCRCxnREFBZ0Q7SUFDakMsK0JBQWUsR0FBOEIsSUFBSSwrQkFBK0IsRUFBRSxDQUFDO0lBeTlCbkcsc0JBQUM7Q0FBQTtBQTFqQ1ksMENBQWUiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9GbG9vZGdhdGVFbmdpbmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdENhbXBhaWduTm9taW5hdGlvblNjaGVtZVJhdGlvUGVyY2VudGFnZSxcclxuXHRGaWxlU3lzdGVtQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXIsXHJcbn0gZnJvbSBcIi4vQ2FtcGFpZ24vQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJcIjtcclxuaW1wb3J0IHtcclxuXHRGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSBhcyBGaWxlVHlwZSxcclxuXHRHb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlLFxyXG5cdEdvdmVybmVkQ2hhbm5lbFR5cGUsXHJcblx0SUFjdGl2aXR5TGlzdGVuZXIsXHJcblx0SUFjdGl2aXR5VHJhY2tpbmdTZXQsXHJcblx0SUFwcEdvdmVybmFuY2VQcm92aWRlcixcclxuXHRJQ2FtcGFpZ25EZWZpbml0aW9uLFxyXG5cdElDYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlcixcclxuXHRJQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyLFxyXG5cdElDYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnLFxyXG5cdElDb250ZXh0RGF0YSxcclxuXHRJRGljdGlvbmFyeSxcclxuXHRJRmxvb2RnYXRlRW52aXJvbm1lbnRQcm92aWRlcixcclxuXHRJRmxvb2RnYXRlU2V0dGluZ1N0b3JhZ2VDYWxsYmFjayxcclxuXHRJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyLFxyXG5cdElGbG9vZGdhdGVTdHJpbmdQcm92aWRlcixcclxuXHRJRmxvb2RnYXRlVGVsZW1ldHJ5TG9nZ2VyLFxyXG5cdElHb3Zlcm5hbmNlUGFyYW1ldGVycyxcclxuXHRJR292ZXJuYW5jZVNlcnZpY2VDbGllbnQsXHJcblx0SUdvdmVybmFuY2VTZXJ2aWNlUmVzdWx0LFxyXG5cdElMb2dFeHBlcmltZW50VHJpZ2dlcixcclxuXHRJT25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjayxcclxuXHRJUGVyc29uYWxpemVyQ2xpZW50LFxyXG5cdElTdXJ2ZXksXHJcblx0SVN1cnZleUNhbmRpZGFjeUNoZWNrZXIsXHJcblx0SVN1cnZleUZvcm0sXHJcblx0SVN1cnZleUluZm8sXHJcblx0SVN1cnZleUxhdW5jaGVyLFxyXG5cdElTdXJ2ZXlMYXVuY2hlckZhY3RvcnksXHJcblx0SVRlbGVtZXRyeVByb3BlcnRpZXMsXHJcblx0SVRyYW5zcG9ydGVyRmFjdG9yeSxcclxuXHRTdXJ2ZXlUeXBlLFxyXG5cdFRyZWF0bWVudFR5cGUsXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IEdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXJGYWN0b3J5LCBJR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlciB9IGZyb20gXCIuL0dvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXJcIjtcclxuaW1wb3J0IHtcclxuXHRJU3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXIsXHJcblx0U3VydmV5QWN0aXZhdGlvblN0YXRzLFxyXG5cdFN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyRmFjdG9yeSxcclxuXHRTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24sXHJcbn0gZnJvbSBcIi4vU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uXCI7XHJcbmltcG9ydCB7IFN1cnZleUV2ZW50QWN0aXZpdHlTdGF0cywgU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5IH0gZnJvbSBcIi4vU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5XCI7XHJcbmltcG9ydCB7XHJcblx0aGFzU3VydmV5UmVhY2hlZE1heExhdW5jaGVzLFxyXG5cdGhhc1N1cnZleVJlYWNoZWRNYXhMYXVuY2hlc1BlclNlc3Npb24sXHJcblx0aXNCdXNpbmVzc0NyaXRpY2FsU3VydmV5LFxyXG5cdGlzQ3JpdGljYWxTdXJ2ZXksXHJcblx0aXNNdWx0aUxhdW5jaFN1cnZleVxyXG59IGZyb20gXCIuL0dvdmVybmFuY2VVdGlsc1wiO1xyXG5cclxuaW1wb3J0IHsgQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0IH0gZnJvbSBcIi4vQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0XCI7XHJcbmltcG9ydCB7IENhbXBhaWduTWFuYWdlciB9IGZyb20gXCIuL0NhbXBhaWduL0NhbXBhaWduTWFuYWdlclwiO1xyXG5pbXBvcnQgeyBDYW1wYWlnblN0YXRlUHJvdmlkZXJGYWN0b3J5IH0gZnJvbSBcIi4vQ2FtcGFpZ24vQ2FtcGFpZ25TdGF0ZVByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IEZsb29kZ2F0ZVNldHRpbmdzIH0gZnJvbSBcIi4vRmxvb2RnYXRlU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgSVVzZXJGYWN0UHJvdmlkZXIgfSBmcm9tIFwiLi9BcGkvSVVzZXJGYWN0UHJvdmlkZXJcIjtcclxuaW1wb3J0IFN1cnZleUFjdGl2aXR5TGlzdGVuZXIgZnJvbSBcIi4vU3VydmV5QWN0aXZpdHlMaXN0ZW5lclwiO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBpc05PVSB9IGZyb20gXCIuL1V0aWxzXCI7XHJcbmltcG9ydCB7IElGbG9vZGdhdGVFbmdpbmVDb25maWcgfSBmcm9tIFwiLi9BcGkvSUZsb29kZ2F0ZUVuZ2luZUNvbmZpZ1wiO1xyXG5pbXBvcnQgRmxvb2RnYXRlU3VydmV5Q2RuQ2xpZW50LCB7IGlzVHJhbnNsYXRpb25SZXF1aXJlZCB9IGZyb20gXCIuL0Zsb29kZ2F0ZVN1cnZleUNkbi9GbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnRcIjtcclxuaW1wb3J0IHsgZ2V0RmVhdHVyZUdhdGVQcm92aWRlciB9IGZyb20gXCIuL0ZlYXR1cmVHYXRlUHJvdmlkZXJcIjtcclxuXHJcbmltcG9ydCB7IENhbXBhaWduQnVzaW5lc3NMZXZlbCwgR292ZXJuYW5jZURlY2lzaW9uLCBJR292ZXJuYW5jZURlY2lzaW9uLCBJT3JjaGVzdHJhdGlvbkVuZ2luZSB9IGZyb20gXCIuL09yY2hlc3RyYXRpb25FbmdpbmUvQXBpXCI7XHJcbmltcG9ydCB7IE9yY2hlc3RyYXRpb25FbmdpbmUgfSBmcm9tIFwiLi9PcmNoZXN0cmF0aW9uRW5naW5lL09yY2hlc3RyYXRpb25FbmdpbmVcIjtcclxuXHJcbi8vIFRlbGVtZXRyeSBsb2dnZXIgd2l0aCBuby1vcCBsb2dnZXJcclxuY2xhc3MgRGVmYXVsdEZsb29kZ2F0ZVRlbGVtZXRyeUxvZ2dlciBpbXBsZW1lbnRzIElGbG9vZGdhdGVUZWxlbWV0cnlMb2dnZXIge1xyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBsb2dfVHJpZ2dlck1ldChjYW1wYWlnbklkOiBzdHJpbmcsIHN1cnZleUlkOiBzdHJpbmcsIHN1cnZleVR5cGU6IFN1cnZleVR5cGUsIHN1cnZleUFjdGl2aXR5SW5mbzogc3RyaW5nLFxyXG5cdFx0YWRkaXRpb25hbFN1cnZleUluZm86IHN0cmluZywgdHJlYXRtZW50VHlwZTogVHJlYXRtZW50VHlwZSk6IHZvaWQgeyB9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBsb2dfVXNlclNlbGVjdGVkKGNhbXBhaWduSWQ6IHN0cmluZywgc3VydmV5SWQ6IHN0cmluZywgc3VydmV5VHlwZTogU3VydmV5VHlwZSxcclxuXHRcdGFkZGl0aW9uYWxTdXJ2ZXlJbmZvOiBzdHJpbmcsIHRyZWF0bWVudFR5cGU6IFRyZWF0bWVudFR5cGUpOiB2b2lkIHsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9nX0NhbXBhaWduTG9hZF9GYWlsZWQoZXJyb3JNZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9nX0Vycm9yKGV2ZW50SWQ6IHN0cmluZywgZXJyb3JNZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9nX0V2ZW50KGV2ZW50SWQ6IHN0cmluZywgcHJvcGVydGllczogSVRlbGVtZXRyeVByb3BlcnRpZXMpOiB2b2lkIHsgfVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9nX0xvY2FsRXJyb3IobWVzc2FnZTogc3RyaW5nLCAuLi5kYXRhOiBhbnlbXSk6IHZvaWQgeyB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBlbnVtIEluaXRpYWxpemF0aW9uU3RhdHVzIHtcclxuXHROb25lID0gMCxcclxuXHRFcnJvcixcclxuXHRJbml0aWFsaXppbmcsXHJcblx0U3RhcnRlZCxcclxuXHRTdG9wcGVkLFxyXG59XHJcblxyXG5jb25zdCBkZWZhdWx0U3VydmV5QWN0aXZpdHlMaXN0ZW5lcjogU3VydmV5QWN0aXZpdHlMaXN0ZW5lci5JQWN0aXZpdHlMaXN0ZW5lckNhbGxiYWNrID0ge1xyXG5cdHJ1bihzdXJ2ZXkpIHtcclxuXHR9LFxyXG5cdHNob3VsZEFjY2VwdEFjdGl2aXR5KGFjdGl2aXR5TmFtZSkge1xyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSxcclxufTtcclxuXHJcbmNvbnN0IGdsb2JhbFNlc3Npb25TdXJ2ZXlBY3RpdmF0aW9uQ291bnRzOiBJRGljdGlvbmFyeTxudW1iZXI+ID0ge307XHJcblxyXG4vKipcclxuICogRmxvb2RnYXRlIEVuZ2luZSBjbGFzcy4gIFRoZSBtYWluIHdpcmluZyBodWIgYW5kIHRoZSBicmFpbnMgcmVzcG9uc2libGUgZm9yXHJcbiAqIGxpbmtpbmcgdG9nZXRoZXIgdGhlIHN1cnZleSBkZWZpbml0aW9ucywgZ292ZXJuYW5jZSwgYWN0aXZpdHkgdHJhY2tpbmcsIGFuZFxyXG4gKiBzdXJ2ZXkgbGF1bmNoZXJzLiAgT25seSBvbmUtaW5zdGFuY2UtYXQtYS10aW1lIG9mIHRoZXNlIHNob3VsZCBiZSBjcmVhdGVkXHJcbiAqIHBlciBhcHAgc2Vzc2lvbi5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBGbG9vZGdhdGVFbmdpbmUge1xyXG5cdHB1YmxpYyBzdGF0aWMgc2V0VGVsZW1ldHJ5TG9nZ2VyKHRlbGVtZXRyeUxvZ2dlcjogSUZsb29kZ2F0ZVRlbGVtZXRyeUxvZ2dlcik6IHZvaWQge1xyXG5cdFx0aWYgKCF0ZWxlbWV0cnlMb2dnZXIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidGVsZW1ldHJ5TG9nZ2VyIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Rmxvb2RnYXRlRW5naW5lLnRlbGVtZXRyeUxvZ2dlciA9IHRlbGVtZXRyeUxvZ2dlcjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgZ2V0VGVsZW1ldHJ5TG9nZ2VyKCk6IElGbG9vZGdhdGVUZWxlbWV0cnlMb2dnZXIge1xyXG5cdFx0cmV0dXJuIEZsb29kZ2F0ZUVuZ2luZS50ZWxlbWV0cnlMb2dnZXI7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIGdldFRyYW5zcG9ydEZhY3RvcnkoKTogSVRyYW5zcG9ydGVyRmFjdG9yeSB7XHJcblx0XHRyZXR1cm4gRmxvb2RnYXRlRW5naW5lLnRyYW5zcG9ydGVyRmFjdG9yeTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShcclxuXHRcdGJ1aWxkVmVyc2lvbjogc3RyaW5nLFxyXG5cdFx0bGF1bmNoZXJGYWN0b3J5OiBJU3VydmV5TGF1bmNoZXJGYWN0b3J5LFxyXG5cdFx0b25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjazogSU9uU3VydmV5QWN0aXZhdGVkQ2FsbGJhY2ssXHJcblx0XHRmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXI6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsXHJcblx0XHRob3N0QmFzZWRTdG9yYWdlUHJvdmlkZXI6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrLFxyXG5cdFx0c3RyaW5nUHJvdmlkZXI6IElGbG9vZGdhdGVTdHJpbmdQcm92aWRlcixcclxuXHRcdGVudmlyb25tZW50UHJvdmlkZXI6IElGbG9vZGdhdGVFbnZpcm9ubWVudFByb3ZpZGVyLFxyXG5cdFx0dHJhbnNwb3J0ZXJGYWN0b3J5OiBJVHJhbnNwb3J0ZXJGYWN0b3J5LFxyXG5cdFx0Y2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJzOiBJQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJbXSxcclxuXHRcdHVzZXJGYWN0c1Byb3ZpZGVyOiBJVXNlckZhY3RQcm92aWRlcixcclxuXHRcdGdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50OiBJR292ZXJuYW5jZVNlcnZpY2VDbGllbnQsXHJcblx0XHRpc1ByaW9yaXR5RW5hYmxlZDogYm9vbGVhbixcclxuXHRcdGZsb29kZ2F0ZUVuZ2luZUNvbmZpZzogSUZsb29kZ2F0ZUVuZ2luZUNvbmZpZyxcclxuXHRcdGFwcEdvdmVybmFuY2VQcm92aWRlcj86IElBcHBHb3Zlcm5hbmNlUHJvdmlkZXIsXHJcblx0XHRsb2dFeHBlcmltZW50VHJpZ2dlcj86IElMb2dFeHBlcmltZW50VHJpZ2dlciwgXHJcblx0XHRjYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnPzogSUNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWcsXHJcblx0XHRwZXJzb25hbGl6ZXJDbGllbnQ/OiBJUGVyc29uYWxpemVyQ2xpZW50LFxyXG5cdFx0c3VydmV5Q2xpZW50PzogQ2FtcGFpZ25NYW5hZ2VyKTogRmxvb2RnYXRlRW5naW5lIHtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCBnb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyOiBJR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlclxyXG5cdFx0XHRcdD0gR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlckZhY3RvcnkubWFrZShmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2VQcm92aWRlcik7XHJcblxyXG5cdFx0XHRjb25zdCBzdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlcjogSVN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyXHJcblx0XHRcdFx0PSBTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlckZhY3RvcnkubWFrZShmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2VQcm92aWRlcik7XHJcblxyXG5cdFx0XHRjb25zdCBjYW1wYWlnblN0YXRlUHJvdmlkZXI6IElDYW1wYWlnblN0YXRlUHJvdmlkZXJcclxuXHRcdFx0XHQ9IENhbXBhaWduU3RhdGVQcm92aWRlckZhY3RvcnkubWFrZShmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2VQcm92aWRlcik7XHJcblxyXG5cdFx0XHQvLyBQdXNoIHRvIGZyb250IG9mIGFycmF5IHNvIHRoYXQgaXQgaXMgdGhlIGZpcnN0IHByb3ZpZGVyIHRvIGJlIGNoZWNrZWQuXHJcblx0XHRcdC8vIEZpbHRlckNhbXBhaWduRGF0YSBtZXRob2Qgb3ZlcndyaXRlcyB0aGUgbGF0ZXN0IGNhbXBhaWduIGRlZmluaXRpb24gd2l0aCB0aGUgc2FtZSBpZC5cclxuXHRcdFx0Ly8gU28sIHRoZSBzdGF0aWMgY2FtcGFpZ24gZGVmaW5pdGlvbiBwcm92aWRlciBzaG91bGQgaGF2ZSB0aGUgbGVhc3QgcHJpb3JpdHkgZHVyaW5nIG92ZXJyaWRlLlxyXG5cdFx0XHRjYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlcnMudW5zaGlmdChuZXcgRmlsZVN5c3RlbUNhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVyKGZpbGVCYXNlZFN0b3JhZ2VQcm92aWRlcikpO1xyXG5cclxuXHRcdFx0Y29uc3Qgb3JjaGVzdHJhdGlvbkVuZ2luZSA9IG5ldyBPcmNoZXN0cmF0aW9uRW5naW5lKGdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LCBnb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyLCBhcHBHb3Zlcm5hbmNlUHJvdmlkZXIgKTtcclxuXHJcblx0XHRcdGNvbnN0IGdldFN1cnZleUNhbmRpZGFjeUNoZWNrZXIgPSAoc3VydmV5Rm9ybTogSVN1cnZleUZvcm0pID0+IHtcclxuXHRcdFx0XHRyZXR1cm4gb3JjaGVzdHJhdGlvbkVuZ2luZS5pc1N1cnZleVRyYWNrYWJsZShzdXJ2ZXlGb3JtKTtcclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdGNvbnN0IHN1cnZleUNhbmRpZGFjeUNoZWNrZXI6IElTdXJ2ZXlDYW5kaWRhY3lDaGVja2VyID0geyBpc1N1cnZleVRyYWNrYWJsZTogZ2V0U3VydmV5Q2FuZGlkYWN5Q2hlY2tlciB9O1xyXG5cclxuXHRcdFx0Y29uc3QgY2xpZW50ID0gc3VydmV5Q2xpZW50IHx8IG5ldyBDYW1wYWlnbk1hbmFnZXIoXHJcblx0XHRcdFx0Y2FtcGFpZ25TdGF0ZVByb3ZpZGVyLFxyXG5cdFx0XHRcdGNhbXBhaWduRGVmaW5pdGlvblByb3ZpZGVycyxcclxuXHRcdFx0XHRzdHJpbmdQcm92aWRlcixcclxuXHRcdFx0XHRlbnZpcm9ubWVudFByb3ZpZGVyLFxyXG5cdFx0XHRcdGJ1aWxkVmVyc2lvbixcclxuXHRcdFx0XHRuZXcgRGF0ZSgpLFxyXG5cdFx0XHRcdGlzUHJpb3JpdHlFbmFibGVkLFxyXG5cdFx0XHRcdHVzZXJGYWN0c1Byb3ZpZGVyLFxyXG5cdFx0XHRcdHN1cnZleUNhbmRpZGFjeUNoZWNrZXIsXHJcblx0XHRcdFx0bG9nRXhwZXJpbWVudFRyaWdnZXIsXHJcblx0XHRcdFx0Y2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZ1xyXG5cdFx0XHQpO1xyXG5cclxuXHRcdFx0cmV0dXJuIG5ldyBGbG9vZGdhdGVFbmdpbmUoXHJcblx0XHRcdFx0Y2xpZW50LFxyXG5cdFx0XHRcdG5ldyBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyKFxyXG5cdFx0XHRcdFx0ZGVmYXVsdFN1cnZleUFjdGl2aXR5TGlzdGVuZXIsXHJcblx0XHRcdFx0XHR0aGlzLmdldFRlbGVtZXRyeUxvZ2dlcixcclxuXHRcdFx0XHQpLFxyXG5cdFx0XHRcdGxhdW5jaGVyRmFjdG9yeSxcclxuXHRcdFx0XHRvblN1cnZleUFjdGl2YXRlZENhbGxiYWNrLFxyXG5cdFx0XHRcdGZpbGVCYXNlZFN0b3JhZ2VQcm92aWRlcixcclxuXHRcdFx0XHRvcmNoZXN0cmF0aW9uRW5naW5lLFxyXG5cdFx0XHRcdHN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyLFxyXG5cdFx0XHRcdHRyYW5zcG9ydGVyRmFjdG9yeSxcclxuXHRcdFx0XHRjYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnLFxyXG5cdFx0XHRcdGZsb29kZ2F0ZUVuZ2luZUNvbmZpZyxcclxuXHRcdFx0XHRwZXJzb25hbGl6ZXJDbGllbnRcclxuXHRcdFx0KTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0dGhpcy50ZWxlbWV0cnlMb2dnZXIubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5NYWtlLkZhaWxlZCxcclxuXHRcdFx0XHR7IEVycm9yTWVzc2FnZTogZSAmJiBlLnRvU3RyaW5nKCksIEVycm9yRGV0YWlsczogZSAmJiBlLnN0YWNrIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gSW5pdGlhbGl6ZSB0ZWxlbWV0cnkgbG9nZ2VyIHdpdGggbm8tb3AgbG9nZ2VyXHJcblx0cHJpdmF0ZSBzdGF0aWMgdGVsZW1ldHJ5TG9nZ2VyOiBJRmxvb2RnYXRlVGVsZW1ldHJ5TG9nZ2VyID0gbmV3IERlZmF1bHRGbG9vZGdhdGVUZWxlbWV0cnlMb2dnZXIoKTtcclxuXHRwcml2YXRlIHN0YXRpYyB0cmFuc3BvcnRlckZhY3Rvcnk6IElUcmFuc3BvcnRlckZhY3Rvcnk7XHJcblxyXG5cdHByaXZhdGUgc3VydmV5Q2xpZW50OiBDYW1wYWlnbk1hbmFnZXI7XHJcblx0cHJpdmF0ZSBhY3Rpdml0eUxpc3RlbmVyOiBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyO1xyXG5cdHByaXZhdGUgb25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjazogSU9uU3VydmV5QWN0aXZhdGVkQ2FsbGJhY2s7XHJcblx0cHJpdmF0ZSBsYXVuY2hlckZhY3Rvcnk6IElTdXJ2ZXlMYXVuY2hlckZhY3Rvcnk7XHJcblx0cHJpdmF0ZSBzdG9yYWdlOiBJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyO1xyXG5cdHByaXZhdGUgb3JjaGVzdHJhdGlvbkVuZ2luZTogSU9yY2hlc3RyYXRpb25FbmdpbmU7XHJcblx0cHJpdmF0ZSBpbml0aWFsaXphdGlvblN0YXR1czogSW5pdGlhbGl6YXRpb25TdGF0dXMgPSBJbml0aWFsaXphdGlvblN0YXR1cy5Ob25lO1xyXG5cdHByaXZhdGUgbG9nZ2VkRmlyc3RTdGFydDogYm9vbGVhbjtcclxuXHJcblx0cHJpdmF0ZSBmbG9vZGdhdGVTZXR0aW5nczogRmxvb2RnYXRlU2V0dGluZ3M7XHJcblx0cHJpdmF0ZSBwcmV2aW91c1N1cnZleUFjdGl2YXRpb25TdGF0czogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uO1xyXG5cdHByaXZhdGUgcHJldmlvdXNTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHM6IFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eTtcclxuXHJcblx0cHJpdmF0ZSBjYW5kaWRhdGVTdXJ2ZXlzOiBJRGljdGlvbmFyeTxJU3VydmV5PiA9IHt9O1xyXG5cdHByaXZhdGUgbGF1bmNoZWRTdXJ2ZXlzOiBJRGljdGlvbmFyeTxJU3VydmV5PiA9IHt9O1xyXG5cdHByaXZhdGUgbGF1bmNoZWRMYXVuY2hlcnM6IElTdXJ2ZXlMYXVuY2hlcltdID0gW107XHJcblx0cHJpdmF0ZSBzdXJ2ZXlFdmVudFNlbnQ6IHN0cmluZ1tdID0gW107XHJcblxyXG5cdHByaXZhdGUgc3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXI6IElTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlcjtcclxuXHJcblx0cHJpdmF0ZSBzdGFsZVRyaWdnZXJlZFN1cnZleXNRdWV1ZTogSVN1cnZleVtdID0gW107XHJcblx0cHJpdmF0ZSBjYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnOiBJQ2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZztcclxuXHRwcml2YXRlIGZsb29kZ2F0ZUVuZ2luZUNvbmZpZzogSUZsb29kZ2F0ZUVuZ2luZUNvbmZpZztcclxuXHJcblx0cHJpdmF0ZSBwZXJzb25hbGl6ZXJDbGllbnQ6IElQZXJzb25hbGl6ZXJDbGllbnQ7XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihzdXJ2ZXlDbGllbnQ6IENhbXBhaWduTWFuYWdlciwgYWN0aXZpdHlMaXN0ZW5lcjogU3VydmV5QWN0aXZpdHlMaXN0ZW5lciwgbGF1bmNoZXJGYWN0b3J5OiBJU3VydmV5TGF1bmNoZXJGYWN0b3J5LFxyXG5cdFx0b25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjazogSU9uU3VydmV5QWN0aXZhdGVkQ2FsbGJhY2ssIHN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsIG9yY2hlc3RyYXRpb25FbmdpbmU6IElPcmNoZXN0cmF0aW9uRW5naW5lLFxyXG5cdFx0c3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXI6IElTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlciwgdHJhbnNwb3J0ZXJGYWN0b3J5OiBJVHJhbnNwb3J0ZXJGYWN0b3J5LFxyXG5cdFx0Y2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZzogSUNhbXBhaWduVGVsZW1ldHJ5U2FtcGxpbmdDb25maWcsXHJcblx0XHRmbG9vZGdhdGVFbmdpbmVDb25maWc6IElGbG9vZGdhdGVFbmdpbmVDb25maWcsIHBlcnNvbmFsaXplckNsaWVudDogSVBlcnNvbmFsaXplckNsaWVudCkge1xyXG5cclxuXHRcdGlmICghc3VydmV5Q2xpZW50KSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcInN1cnZleUNsaWVudCBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFhY3Rpdml0eUxpc3RlbmVyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImFjdGl2aXR5TGlzdGVuZXIgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghbGF1bmNoZXJGYWN0b3J5KSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImxhdW5jaGVyRmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFvblN1cnZleUFjdGl2YXRlZENhbGxiYWNrKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIm9uU3VydmV5QWN0aXZhdGVkQ2FsbGJhY2sgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghc3RvcmFnZSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIW9yY2hlc3RyYXRpb25FbmdpbmUpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZ292ZXJub3IgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghdHJhbnNwb3J0ZXJGYWN0b3J5KSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcInRyYW5zcG9ydGVyRmFjdG9yeSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3VydmV5Q2xpZW50ID0gc3VydmV5Q2xpZW50O1xyXG5cdFx0dGhpcy5hY3Rpdml0eUxpc3RlbmVyID0gYWN0aXZpdHlMaXN0ZW5lcjtcclxuXHRcdHRoaXMubGF1bmNoZXJGYWN0b3J5ID0gbGF1bmNoZXJGYWN0b3J5O1xyXG5cdFx0dGhpcy5vblN1cnZleUFjdGl2YXRlZENhbGxiYWNrID0gb25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjaztcclxuXHRcdHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XHJcblx0XHR0aGlzLm9yY2hlc3RyYXRpb25FbmdpbmUgPSBvcmNoZXN0cmF0aW9uRW5naW5lO1xyXG5cdFx0dGhpcy5zdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlciA9IHN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyO1xyXG5cdFx0dGhpcy5jYW1wYWlnblRlbGVtZXRyeVNhbXBsaW5nQ29uZmlnID0gY2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZztcclxuXHRcdHRoaXMuZmxvb2RnYXRlRW5naW5lQ29uZmlnID0gZmxvb2RnYXRlRW5naW5lQ29uZmlnO1xyXG5cdFx0dGhpcy5wZXJzb25hbGl6ZXJDbGllbnQgPSBwZXJzb25hbGl6ZXJDbGllbnQ7XHJcblx0XHRGbG9vZGdhdGVFbmdpbmUudHJhbnNwb3J0ZXJGYWN0b3J5ID0gdHJhbnNwb3J0ZXJGYWN0b3J5O1xyXG5cclxuXHRcdHRoaXMubG9nZ2VkRmlyc3RTdGFydCA9IGZhbHNlO1xyXG5cclxuXHRcdC8vIEluaXRpYWxpemUgb3VyIGxpc3QgdG8gYSB2YWxpZCwgZW1wdHkgY29sbGVjdGlvblxyXG5cdFx0dGhpcy5zZXRQZW5kaW5nU3VydmV5cyhudWxsKTtcclxuXHJcblx0XHQvLyBJZiB0aGUgbGlzdGVuZXIgd2FzIHByZS1jb25maWd1cmVkIHdpdGggc3VydmV5IGZvciBzb21lIHJlYXNvbiwgY2xlYXIgaXQgbm93XHJcblx0XHR0aGlzLmFjdGl2aXR5TGlzdGVuZXIuY2xlYXJTdXJ2ZXlzKCk7XHJcblxyXG5cdFx0Ly8gTGluayBvdXJzZWx2ZXMgd2l0aCB0aGUgbGlzdGVuZXJcclxuXHRcdC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdGhpcy1hbGlhcyovXHJcblx0XHRjb25zdCB0aGlzT2JqID0gdGhpczsgLy8gU2F2ZSBjdXJyZW50IG9iamVjdCBpbiBhIHZhcmlhYmxlIHRvIGFsbG93IGFjY2VzcyBmcm9tIGNhbGxiYWNrLlxyXG5cdFx0dGhpcy5hY3Rpdml0eUxpc3RlbmVyLnNldENhbGxiYWNrKHtcclxuXHRcdFx0cnVuKHN1cnZleUlkOiBzdHJpbmcsIGNvbnRleHRJbmZvOiBJQ29udGV4dERhdGFbXSkge1xyXG5cdFx0XHRcdHRoaXNPYmoub25TdXJ2ZXlBY3RpdmF0ZWQoc3VydmV5SWQsIGNvbnRleHRJbmZvKTtcclxuXHRcdFx0fSxcclxuXHRcdFx0c2hvdWxkQWNjZXB0QWN0aXZpdHkoYWN0aXZpdHlOYW1lOiBzdHJpbmcpIHtcclxuXHRcdFx0XHRyZXR1cm4gdGhpc09iai5zaG91bGRBY2NlcHRBY3Rpdml0eShhY3Rpdml0eU5hbWUpO1xyXG5cdFx0XHR9LFxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0U3VydmV5Q2xpZW50KCk6IENhbXBhaWduTWFuYWdlciB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdXJ2ZXlDbGllbnQ7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTYXZlIGFsbCBpbnRlcm5hbCBzdGF0cyBhbmQgZmxvb2RnYXRlU2V0dGluZ3MgKG1lcmdpbmcgd2l0aCBleGlzdGluZyBmaWxlIGNvbnRlbnRzKSwgd2l0aG91dCBzdG9wcGluZyB0aGUgZW5naW5lLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBtZXJnZUFuZFNhdmUoKTogdm9pZCB7XHJcblx0XHR0aGlzLnNhdmVTZXR0aW5ncygpO1xyXG5cdFx0dGhpcy5zYXZlU3VydmV5QWN0aXZhdGlvbkhpc3RvcnkoKTtcclxuXHRcdHRoaXMuc2F2ZVN1cnZleUV2ZW50QWN0aXZpdHlIaXN0b3J5KCk7XHJcblxyXG5cdFx0Ly8gSW5mb3JtIHN1cnZleUNsaWVudCB0byBzYXZlIGl0cyBzdGF0ZVxyXG5cdFx0dGhpcy5zdXJ2ZXlDbGllbnQuc2F2ZUN1cnJlbnRTdGF0ZSgpO1xyXG5cclxuXHRcdC8vIFNhdmUgZ292ZXJuZWQgY2hhbm5lbCBzdGF0ZXNcclxuXHRcdHRoaXMub3JjaGVzdHJhdGlvbkVuZ2luZS5tZXJnZUFuZFNhdmUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0YXJ0IHRoZSBlbmdpbmUuICBDaGVja3MgZmVhdHVyZSBlbmFibGUgc3RhdGUsIGNhdXNlcyBzdXJ2ZXkgZGVmaW5pdGlvbnMgdG8gYmUgcmVhZCwgYW5kIHRyYWNrZWQgYWN0aXZpdGllcyB0byBiZSBzZXQgb24gdGhlIGxpc3RlbmVyLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGFydCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmluaXRpYWxpemF0aW9uU3RhdHVzID09PSBJbml0aWFsaXphdGlvblN0YXR1cy5Jbml0aWFsaXppbmcgfHxcclxuXHRcdFx0dGhpcy5pbml0aWFsaXphdGlvblN0YXR1cyA9PT0gSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RhcnRlZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dGhpcy5zZXRJbml0aWFsaXphdGlvblN0YXR1cyhJbml0aWFsaXphdGlvblN0YXR1cy5Jbml0aWFsaXppbmcpO1xyXG5cdFx0XHR0aGlzLmxvYWRTZXR0aW5nc0FuZFByaW9yRXZlbnRDb3VudHMoKTtcclxuXHJcblx0XHRcdGNvbnN0IGNoYW5uZWxUeXBlczogR292ZXJuZWRDaGFubmVsVHlwZVtdID0gdGhpcy5vcmNoZXN0cmF0aW9uRW5naW5lLmdldEF2YWlsYWJsZUNoYW5uZWxzKCk7XHJcblxyXG5cdFx0XHR0aGlzLnN1cnZleUNsaWVudC5yZWZyZXNoU3VydmV5RGVmaW5pdGlvbnMoY2hhbm5lbFR5cGVzKTtcclxuXHJcblx0XHRcdHRoaXMuc2V0UGVuZGluZ1N1cnZleXNBbmRTdGFydEZsb29kZ2F0ZSgpO1xyXG5cdFx0XHR0aGlzLnNldEluaXRpYWxpemF0aW9uU3RhdHVzKEluaXRpYWxpemF0aW9uU3RhdHVzLlN0YXJ0ZWQpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHR0aGlzLnNldEluaXRpYWxpemF0aW9uU3RhdHVzKEluaXRpYWxpemF0aW9uU3RhdHVzLkVycm9yKTtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuU3RhcnQuRmFpbGVkLFxyXG5cdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBlICYmIGUudG9TdHJpbmcoKSwgRXJyb3JEZXRhaWxzOiBlICYmIGUuc3RhY2sgfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTdGFydCB0aGUgZW5naW5lLiAgQ2hlY2tzIGZlYXR1cmUgZW5hYmxlIHN0YXRlLCBjYXVzZXMgc3VydmV5IGRlZmluaXRpb25zIHRvIGJlIHJlYWQsIGFuZCB0cmFja2VkIGFjdGl2aXRpZXMgdG8gYmUgc2V0IG9uIHRoZSBsaXN0ZW5lci5cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhcnRBc3luYygpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGlmICh0aGlzLmluaXRpYWxpemF0aW9uU3RhdHVzID09PSBJbml0aWFsaXphdGlvblN0YXR1cy5Jbml0aWFsaXppbmcgfHxcclxuXHRcdFx0dGhpcy5pbml0aWFsaXphdGlvblN0YXR1cyA9PT0gSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RhcnRlZCkge1xyXG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0dGhpcy5zZXRJbml0aWFsaXphdGlvblN0YXR1cyhJbml0aWFsaXphdGlvblN0YXR1cy5Jbml0aWFsaXppbmcpO1xyXG5cdFx0XHR0aGlzLmxvYWRTZXR0aW5nc0FuZFByaW9yRXZlbnRDb3VudHMoKTtcclxuXHJcblx0XHRcdGNvbnN0IGNoYW5uZWxUeXBlczogR292ZXJuZWRDaGFubmVsVHlwZVtdID0gdGhpcy5vcmNoZXN0cmF0aW9uRW5naW5lLmdldEF2YWlsYWJsZUNoYW5uZWxzKCk7XHJcblxyXG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0XHRcdHRoaXMuc3VydmV5Q2xpZW50LnJlZnJlc2hTdXJ2ZXlEZWZpbml0aW9uc0FzeW5jKGNoYW5uZWxUeXBlcykudGhlbihcclxuXHRcdFx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGFueSBzdG9wKCkgY2FsbHMgdGhhdCBoYXBwZW5lZCB3aGlsZSBpbml0aWFsaXppbmdcclxuXHRcdFx0XHRcdFx0aWYgKHRoaXMuaW5pdGlhbGl6YXRpb25TdGF0dXMgPT09IEluaXRpYWxpemF0aW9uU3RhdHVzLlN0b3BwZWQpIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldEluaXRpYWxpemF0aW9uU3RhdHVzKEluaXRpYWxpemF0aW9uU3RhdHVzLlN0YXJ0ZWQpO1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuc3RvcCgpO1xyXG5cdFx0XHRcdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLlN0YXJ0QXN5bmMuU3RvcHBlZCxcclxuXHRcdFx0XHRcdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBcIlN0b3BwZWQgYmVjYXVzZSBvZiBhIHBlbmRpbmcgc3RvcCgpIGNhbGxcIiB9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLnNldFBlbmRpbmdTdXJ2ZXlzQW5kU3RhcnRGbG9vZGdhdGUoKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHQpLmNhdGNoKFxyXG5cdFx0XHRcdFx0KGVycm9yOiBFcnJvcikgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNldEluaXRpYWxpemF0aW9uU3RhdHVzKEluaXRpYWxpemF0aW9uU3RhdHVzLkVycm9yKTtcclxuXHRcdFx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuU3RhcnRBc3luYy5GYWlsZWQsXHJcblx0XHRcdFx0XHRcdFx0eyBFcnJvck1lc3NhZ2U6IFwiU3VydmV5IHJlZnJlc2ggZXJyb3IgXCIgKyAoZXJyb3IgJiYgZXJyb3IubWVzc2FnZSkgfSk7XHJcblxyXG5cdFx0XHRcdFx0XHRyZWplY3QoZXJyb3IpO1xyXG5cdFx0XHRcdFx0fSxcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0dGhpcy5zZXRJbml0aWFsaXphdGlvblN0YXR1cyhJbml0aWFsaXphdGlvblN0YXR1cy5FcnJvcik7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLlN0YXJ0QXN5bmMuRmFpbGVkLFxyXG5cdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBlICYmIGUudG9TdHJpbmcoKSwgRXJyb3JEZXRhaWxzOiBlICYmIGUuc3RhY2sgfSk7XHJcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFN0b3AgdGhlIGVuZ2luZS4gIENhdXNlcyB0cmFja2VkIGFjdGl2aXRpZXMgdG8gYmUgY2xlYXJlZCBhbmQgYW55IGluLXByb2dyZXNzIGNvdW50ZXJzIG5vdCBvdGhlcndpc2Ugc2F2ZWQgdG8gYmUgdGhyb3duIG91dC5cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RvcCgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmluaXRpYWxpemF0aW9uU3RhdHVzID09PSBJbml0aWFsaXphdGlvblN0YXR1cy5TdGFydGVkKSB7XHJcblx0XHRcdHRoaXMubWVyZ2VBbmRTYXZlKCk7XHJcblxyXG5cdFx0XHQvLyBDbGVhciBvdXIgU3VydmV5IGxpc3QsIGFuZCBwdXNoIHRoYXQgdGhyb3VnaCB0byB0aGUgbGlzdGVuZXJcclxuXHRcdFx0dGhpcy5zZXRQZW5kaW5nU3VydmV5cyhudWxsKTtcclxuXHRcdFx0dGhpcy51cGRhdGVBY3Rpdml0eUxpc3RlbmVyV2l0aEN1cnJlbnRTdXJ2ZXlEZWZpbml0aW9ucygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc2V0SW5pdGlhbGl6YXRpb25TdGF0dXMoSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RvcHBlZCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBJQWN0aXZpdHlMaXN0ZW5lciBsb2dnaW5nIGludGVyZmFjZSBmb3IgY2FsbGVycyB0aGF0IHdhbnQgdG8gbG9nIGRpcmVjdGx5IHJhdGhlciB0aGFuIHRocm91Z2ggdGVsZW1ldHJ5XHJcblx0ICovXHJcblx0cHVibGljIGdldEFjdGl2aXR5TGlzdGVuZXIoKTogSUFjdGl2aXR5TGlzdGVuZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMuYWN0aXZpdHlMaXN0ZW5lcjtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0SW5pdGlhbGl6YXRpb25TdGF0dXMoc3RhdHVzOiBJbml0aWFsaXphdGlvblN0YXR1cyk6IHZvaWQge1xyXG5cdFx0dGhpcy5pbml0aWFsaXphdGlvblN0YXR1cyA9IHN0YXR1cztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2F2ZVNldHRpbmdzKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdG9yYWdlLmZpbGVMb2NrKEZpbGVUeXBlLkZsb29kZ2F0ZVNldHRpbmdzKTtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHR0aGlzLndyaXRlU3RyaW5nKEZpbGVUeXBlLkZsb29kZ2F0ZVNldHRpbmdzLCBGbG9vZGdhdGVTZXR0aW5ncy50b0pzb24odGhpcy5mbG9vZGdhdGVTZXR0aW5ncykpO1xyXG5cdFx0fSBmaW5hbGx5IHtcclxuXHRcdFx0dGhpcy5zdG9yYWdlLmZpbGVVbmxvY2soRmlsZVR5cGUuRmxvb2RnYXRlU2V0dGluZ3MpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBsb2FkU2V0dGluZ3NBbmRQcmlvckV2ZW50Q291bnRzKCk6IHZvaWQge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Ly8gTG9hZCB1cCB0aGUgcHJpb3Igc3VydmV5IGhpc3RvcnkgYW5kIHByaW9yIGV2ZW50IGNvdW50c1xyXG5cdFx0XHR0aGlzLnByZXZpb3VzU3VydmV5QWN0aXZhdGlvblN0YXRzID0gdGhpcy5zdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlci5sb2FkKCk7XHJcblxyXG5cdFx0XHR0aGlzLnByZXZpb3VzU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzID1cclxuXHRcdFx0XHRTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkuZnJvbUpzb24odGhpcy5yZWFkU3RyaW5nKEZpbGVUeXBlLlN1cnZleUV2ZW50QWN0aXZpdHlTdGF0cykpO1xyXG5cclxuXHRcdFx0Ly8gZ2V0IHRoZSBsaXN0IG9mIHN1cnZleSBJZCAtIGFsbCB0aGUgc3VydmV5IHNob3VsZCBoYXZlIGV2ZW50IHNlbnQgYWxyZWFkeVxyXG5cdFx0XHRjb25zdCBzdGF0czogSURpY3Rpb25hcnk8U3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzPiA9IHRoaXMucHJldmlvdXNTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMuZ2V0U3RhdHMoKTtcclxuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gc3RhdHMpIHtcclxuXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHN0YXRzLCBrZXkpKSB7XHJcblx0XHRcdFx0XHR0aGlzLnN1cnZleUV2ZW50U2VudC5wdXNoKGtleSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBMb2FkIHVwIHRoZSBnZW5lcmFsIGZsb29kZ2F0ZVNldHRpbmdzXHJcblx0XHRcdHRoaXMuZmxvb2RnYXRlU2V0dGluZ3MgPSBGbG9vZGdhdGVTZXR0aW5ncy5mcm9tSnNvbih0aGlzLnJlYWRTdHJpbmcoRmlsZVR5cGUuRmxvb2RnYXRlU2V0dGluZ3MpKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuQ29tbW9uLkVycm9yLFxyXG5cdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBcIkVycm9yIGxvYWRpbmcgcHJpb3Igc2V0dGluZ3MvZXZlbnRzIFwiICsgKGUgJiYgZS50b1N0cmluZygpKSB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0UGVuZGluZ1N1cnZleXNBbmRTdGFydEZsb29kZ2F0ZSgpOiB2b2lkIHtcclxuXHRcdC8vIFVwZGF0ZSBvdXIgc3VydmV5IGxpc3QsIGFuZCBwdXNoIHRoYXQgdGhyb3VnaCB0byB0aGUgbGlzdGVuZXJcclxuXHRcdHRoaXMuc2V0UGVuZGluZ1N1cnZleXModGhpcy5zdXJ2ZXlDbGllbnQuZ2V0QXBwU3VydmV5cygpKTtcclxuXHRcdHRoaXMudXBkYXRlQWN0aXZpdHlMaXN0ZW5lcldpdGhDdXJyZW50U3VydmV5RGVmaW5pdGlvbnMoKTtcclxuXHJcblx0XHQvLyBNYXJrIHVzIGFzIHN0YXJ0ZWRcclxuXHRcdHRoaXMuc2V0SW5pdGlhbGl6YXRpb25TdGF0dXMoSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RhcnRlZCk7XHJcblxyXG5cdFx0Ly8gTG9nIG91ciBmaXJzdCBzdGFydCAoYWthIGZsb29kZ2F0ZSBib290KSBldmVudFxyXG5cdFx0aWYgKCF0aGlzLmxvZ2dlZEZpcnN0U3RhcnQpIHtcclxuXHRcdFx0dGhpcy5sb2dnZWRGaXJzdFN0YXJ0ID0gdHJ1ZTtcclxuXHRcdFx0dGhpcy5nZXRBY3Rpdml0eUxpc3RlbmVyKCkubG9nQWN0aXZpdHkoU3VydmV5QWN0aXZpdHlMaXN0ZW5lci5GbG9vZGdhdGVTdGFydEFjdGl2aXR5TmFtZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZVN1cnZleUFjdGl2YXRpb25TdGF0cyhzdXJ2ZXk6IElTdXJ2ZXkpIHtcclxuXHRcdGNvbnN0IHN1cnZleUluZm8gPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpO1xyXG5cdFx0Y29uc3Qgc3VydmV5SWQgPSBzdXJ2ZXlJbmZvLmdldElkKCk7XHJcblx0XHRjb25zdCBzdGF0cyA9IHRoaXMucHJldmlvdXNTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMuZ2V0U3RhdHMoKVtzdXJ2ZXlJZF0gfHwgbmV3IFN1cnZleUFjdGl2YXRpb25TdGF0cygpO1xyXG5cdFx0c3RhdHMuVHlwZSA9IHN1cnZleS5nZXRUeXBlKCk7XHJcblx0XHRzdGF0cy5FeHBpcmF0aW9uVGltZVV0YyA9IHN1cnZleUluZm8uZ2V0RXhwaXJhdGlvblRpbWVVdGMoKTtcclxuXHRcdHN0YXRzLkFjdGl2YXRpb25UaW1lVXRjID0gbmV3IERhdGUoKTtcclxuXHRcdHN0YXRzLlN1cnZleUxhdW5jaENvdW50Kys7XHJcblxyXG5cdFx0dGhpcy5wcmV2aW91c1N1cnZleUFjdGl2YXRpb25TdGF0cy5hZGRTdGF0cyhzdXJ2ZXlJZCwgc3RhdHMpO1xyXG5cclxuXHRcdC8vIFNhdmUgdGhlIFN1cnZleUxhdW5jaENvdW50UGVyU2Vzc2lvbiBpbnRvIGdsb2JhbCBtZW1vcnkgYnV0IG5vdCBsb2NhbCBzdG9yYWdlXHJcblx0XHQvLyBzbyBpdCB3b24ndCBiZSBvdmVyd3JpdHRlbiBpbiBsb2NhbCBzdG9yYWdlIGJ5IGFub3RoZXIgYXBwIGluc3RhbmNlXHJcblx0XHRpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnbG9iYWxTZXNzaW9uU3VydmV5QWN0aXZhdGlvbkNvdW50cywgc3VydmV5SWQpKSB7XHJcblx0XHRcdGdsb2JhbFNlc3Npb25TdXJ2ZXlBY3RpdmF0aW9uQ291bnRzW3N1cnZleUlkXSA9IDA7XHJcblx0XHR9XHJcblx0XHRnbG9iYWxTZXNzaW9uU3VydmV5QWN0aXZhdGlvbkNvdW50c1tzdXJ2ZXlJZF0rKztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2F2ZVN1cnZleUFjdGl2YXRpb25IaXN0b3J5KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdG9yYWdlLmZpbGVMb2NrKEZpbGVUeXBlLlN1cnZleUFjdGl2YXRpb25TdGF0cyk7XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3Qgc3RhdENvbGxlY3Rpb246IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbiA9IHRoaXMuc3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXIubG9hZCgpO1xyXG5cclxuXHRcdFx0Y29uc3QgcHJldmlvdXNTdGF0cyA9IHRoaXMucHJldmlvdXNTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMuZ2V0U3RhdHMoKTtcclxuXHJcblx0XHRcdC8vIEJ1aWxkIHRoZSB1cGRhdGUgY29sbGVjdGlvblxyXG5cdFx0XHRjb25zdCB1cGRhdGVDb2xsZWN0aW9uID0gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbigpO1xyXG5cdFx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLmxhdW5jaGVkU3VydmV5cykge1xyXG5cdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5sYXVuY2hlZFN1cnZleXMsIGtleSkpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHN1cnZleTogSVN1cnZleSA9IHRoaXMubGF1bmNoZWRTdXJ2ZXlzW2tleV07XHJcblx0XHRcdFx0XHRjb25zdCBzdXJ2ZXlJZCA9IHN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0SWQoKTtcclxuXHJcblx0XHRcdFx0XHQvLyBNYWtlIHRoaXMgcGFydCBvZiB0aGUgdXBkYXRlIGxpc3RcclxuXHRcdFx0XHRcdGNvbnN0IHN0YXRzID0gcHJldmlvdXNTdGF0c1tzdXJ2ZXlJZF07XHJcblx0XHRcdFx0XHR1cGRhdGVDb2xsZWN0aW9uLmFkZFN0YXRzKHN1cnZleUlkLCBzdGF0cyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBBY3R1YWxseSBtZXJnZSBvdXIgdXBkYXRlcyBpbnRvIHRoZSBmdWxsIGNvbGxlY3Rpb25cclxuXHRcdFx0c3RhdENvbGxlY3Rpb24uYWNjdW11bGF0ZSh1cGRhdGVDb2xsZWN0aW9uKTtcclxuXHRcdFx0dGhpcy5zdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlci5zYXZlKHN0YXRDb2xsZWN0aW9uKTtcclxuXHJcblx0XHRcdC8vIE1ha2Ugc3VyZSB0byBrZWVwIG91ciBpbnRlcm5hbCBjb2xsZWN0aW9uIGNvbnNpc3RlbnQgd2l0aCB3aGF0IHdlIGp1c3Qgd3JvdGVcclxuXHRcdFx0dGhpcy5wcmV2aW91c1N1cnZleUFjdGl2YXRpb25TdGF0cyA9IHN0YXRDb2xsZWN0aW9uO1xyXG5cdFx0fSBmaW5hbGx5IHtcclxuXHRcdFx0dGhpcy5zdG9yYWdlLmZpbGVVbmxvY2soRmlsZVR5cGUuU3VydmV5QWN0aXZhdGlvblN0YXRzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2F2ZVN1cnZleUV2ZW50QWN0aXZpdHlIaXN0b3J5KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdG9yYWdlLmZpbGVMb2NrKEZpbGVUeXBlLlN1cnZleUV2ZW50QWN0aXZpdHlTdGF0cyk7XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3Qgc3RhdENvbGxlY3Rpb246IFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eSA9XHJcblx0XHRcdFx0U3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5LmZyb21Kc29uKHRoaXMucmVhZFN0cmluZyhGaWxlVHlwZS5TdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMpKTtcclxuXHJcblx0XHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcblx0XHRcdC8vIEZpbGwgb3V0IG91ciBsaXN0IG9mIHVwZGF0ZXNcclxuXHRcdFx0Y29uc3QgdXBkYXRlQ29sbGVjdGlvbiA9IG5ldyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkoKTtcclxuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gdGhpcy5jYW5kaWRhdGVTdXJ2ZXlzKSB7XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNhbmRpZGF0ZVN1cnZleXMsIGtleSkpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHN0YXRzOiBTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMgPSBuZXcgU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzKCk7XHJcblx0XHRcdFx0XHRjb25zdCBzdXJ2ZXk6IElTdXJ2ZXkgPSB0aGlzLmNhbmRpZGF0ZVN1cnZleXNba2V5XTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIXN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuaXNBY3RpdmVGb3JEYXRlKG5vdykpIHtcclxuXHRcdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0c3RhdHMuRXhwaXJhdGlvblRpbWVVdGMgPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldEV4cGlyYXRpb25UaW1lVXRjKCk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gR2V0IHRoZSBhY3Rpdml0aWVzIHdoaWNoIGFyZSBhZ2dyZWdhdGVkLCBpZiB0aGVyZSBhcmVuJ3QgYW55IGNvbnRpbnVlXHJcblx0XHRcdFx0XHRjb25zdCBhbGxBY3Rpdml0aWVzOiBJQWN0aXZpdHlUcmFja2luZ1NldCA9IHN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0QWN0aXZhdGlvbkV2ZW50KCkuZ2V0VHJhY2tpbmdTZXQoKTtcclxuXHRcdFx0XHRcdGNvbnN0IGFnZ3JlZ2F0ZUFjdGl2aXRpZXM6IHN0cmluZ1tdID0gW107XHJcblx0XHRcdFx0XHRjb25zdCBub25BZ2dyZWdhdGVBY3Rpdml0aWVzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRcdFx0XHRcdGFsbEFjdGl2aXRpZXMuZ2V0TGlzdCgpLmZvckVhY2goKGRhdGEpID0+IHtcclxuXHRcdFx0XHRcdFx0aWYgKGRhdGEpIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoZGF0YS5nZXRJc0FnZ3JlZ2F0ZSgpKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRhZ2dyZWdhdGVBY3Rpdml0aWVzLnB1c2goZGF0YS5nZXRBY3Rpdml0eSgpKTtcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0bm9uQWdncmVnYXRlQWN0aXZpdGllcy5wdXNoKGRhdGEuZ2V0QWN0aXZpdHkoKSk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0XHRzdGF0cy5Db3VudHMgPSBuZXcgQXJyYXkoYWdncmVnYXRlQWN0aXZpdGllcy5sZW5ndGgpO1xyXG5cclxuXHRcdFx0XHRcdC8vIFNhdmUgb2ZmIHRoZSBjb3VudHMgd2UndmUgYWRkZWQgZm9yIHRoaXMgc2Vzc2lvblxyXG5cdFx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhZ2dyZWdhdGVBY3Rpdml0aWVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0XHRcdHN0YXRzLkNvdW50c1tpXSA9IHRoaXMuYWN0aXZpdHlMaXN0ZW5lci5tb3ZlU2Vzc2lvbkNvdW50SW50b0Jhc2VDb3VudChhZ2dyZWdhdGVBY3Rpdml0aWVzW2ldLCBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCkpO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGZvciAoY29uc3QgYWN0aXZpdHkgb2Ygbm9uQWdncmVnYXRlQWN0aXZpdGllcykge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmFjdGl2aXR5TGlzdGVuZXIuc2F2ZVNlc3Npb25UcmFja2luZ0FjdGl2aXR5KGFjdGl2aXR5KTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBNYWtlIHRoaXMgcGFydCBvZiB0aGUgdXBkYXRlIGxpc3RcclxuXHRcdFx0XHRcdHVwZGF0ZUNvbGxlY3Rpb24uYWRkU3RhdHMoc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpLCBzdGF0cyk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBBY3R1YWxseSBtZXJnZSBvdXIgdXBkYXRlcyBpbnRvIHRoZSBmdWxsIGNvbGxlY3Rpb25cclxuXHRcdFx0c3RhdENvbGxlY3Rpb24uYWNjdW11bGF0ZSh1cGRhdGVDb2xsZWN0aW9uKTtcclxuXHJcblx0XHRcdHRoaXMud3JpdGVTdHJpbmcoRmlsZVR5cGUuU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzLCBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkudG9Kc29uKHN0YXRDb2xsZWN0aW9uKSk7XHJcblx0XHRcdC8vIE1ha2Ugc3VyZSB0byBrZWVwIG91ciBpbnRlcm5hbCBjb2xsZWN0aW9uIGNvbnNpc3RlbnQgd2l0aCB3aGF0IHdlIGp1c3Qgd3JvdGVcclxuXHRcdFx0dGhpcy5wcmV2aW91c1N1cnZleUV2ZW50QWN0aXZpdHlTdGF0cyA9IHN0YXRDb2xsZWN0aW9uO1xyXG5cdFx0fSBmaW5hbGx5IHtcclxuXHRcdFx0dGhpcy5zdG9yYWdlLmZpbGVVbmxvY2soRmlsZVR5cGUuU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0UGVuZGluZ1N1cnZleXMocGVuZGluZ1N1cnZleXM6IElEaWN0aW9uYXJ5PElTdXJ2ZXk+KTogdm9pZCB7XHJcblx0XHR0aGlzLmNhbmRpZGF0ZVN1cnZleXMgPSB7fTtcclxuXHRcdGlmIChwZW5kaW5nU3VydmV5cykge1xyXG5cdFx0XHRjb25zdCByZWplY3RDYW1wYWlnbnMgPSBbXTtcclxuXHRcdFx0Y29uc3QgYWNjZXB0Q2FtcGFpZ25zID0gW107XHJcblx0XHRcdGZvciAoY29uc3Qga2V5IGluIHBlbmRpbmdTdXJ2ZXlzKSB7XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwZW5kaW5nU3VydmV5cywga2V5KSkge1xyXG5cdFx0XHRcdFx0Y29uc3Qgc3VydmV5OiBJU3VydmV5ID0gcGVuZGluZ1N1cnZleXNba2V5XTtcclxuXHRcdFx0XHRcdGNvbnN0IHBheWxvYWQ6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xyXG5cdFx0XHRcdFx0XHRDYW1wYWlnbklkOiBzdXJ2ZXkuZ2V0Q2FtcGFpZ25JZCgpLFxyXG5cdFx0XHRcdFx0XHRTdXJ2ZXlJZDoga2V5XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRpZiAodGhpcy5sYXVuY2hlckZhY3RvcnkuQWNjZXB0c1N1cnZleShzdXJ2ZXkpKSB7XHJcblx0XHRcdFx0XHRcdHRoaXMuY2FuZGlkYXRlU3VydmV5c1trZXldID0gc3VydmV5O1xyXG5cdFx0XHRcdFx0XHRhY2NlcHRDYW1wYWlnbnMucHVzaChwYXlsb2FkKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZWplY3RDYW1wYWlnbnMucHVzaChwYXlsb2FkKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIERlZmF1bHQgc2FtcGxpbmcgcmF0ZTogMCUgLSBpdCdzIHR1cm5lZCBvZmYgYnkgZGVmYXVsdC4gV2Ugd2lsbCBlbmFibGUgaXQgZnJvbSB0aGUgSG9zdCBhcHAgc2lkZSBpZiBuZWVkZWQuXHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLkNvbW1vbi5BY3RpdmVTdXJ2ZXlzLFxyXG5cdFx0XHRcdHsgTWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoXHJcblx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFJlamVjdENhbXBhaWduczogcmVqZWN0Q2FtcGFpZ25zLFxyXG5cdFx0XHRcdFx0XHRDYW5kaWRhdGVDYW1wYWlnbnM6IGFjY2VwdENhbXBhaWducyxcclxuXHRcdFx0XHRcdFx0UHJldmlvdXNDYW5kaWRhdGVTdXJ2ZXlJZHM6IHRoaXMuc3VydmV5RXZlbnRTZW50XHJcblx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdH0sIDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXRDdXJyZW50U3VydmV5RGVmaW5pdGlvbnMoKTogSVN1cnZleVtdIHtcclxuXHRcdC8vIEdldCBhIHZlY3RvciBvZiBTdXJ2ZXlzIGZyb20gb3VyIGlkLWJhc2VkIG1hcFxyXG5cdFx0Y29uc3Qgc3VydmV5TGlzdDogSVN1cnZleVtdID0gbmV3IEFycmF5PElTdXJ2ZXk+KCk7XHJcblxyXG5cdFx0Y29uc3QgYWxsQ2FtcGFpZ25EZWZpbml0aW9uSURzID0gdGhpcy5nZXRBbGxDYW1wYWlnbkRlZmluaXRpb25JRHMoKTtcclxuXHRcdGNvbnN0IGFsbENhbmRpZGF0ZUNhbXBhaWduRGVmaW5pdGlvbklEcyA9IHRoaXMuZ2V0QWxsQ2FuZGlkYXRlQ2FtcGFpZ25EZWZpbml0aW9uSURzKCk7XHJcblxyXG5cdFx0Ly8gR2V0IGFsbCB0aGUgY2FtcGFpZ24gZGVmaW5pdGlvbnMuIFdlIG5lZWQgaW5mbyBmcm9tIHRoZXNlIGZvciB0ZWxlbWV0cnkuXHJcblx0XHRjb25zdCBhbGxDYW1wYWlnbkRlZmluaXRpb25zID0gKHRoaXMuc3VydmV5Q2xpZW50IGFzIENhbXBhaWduTWFuYWdlcikuZ2V0Q2FtcGFpZ25EZWZpbml0aW9ucygpO1xyXG5cclxuXHRcdGNvbnN0IGlzU3VydmV5QWxsb3dlZCA9IChzdXJ2ZXlJbmZvOiBJU3VydmV5SW5mbykgPT4ge1xyXG5cdFx0XHQvLyBhbHdheXMgYWxsb3cgYnVzaW5lc3MgY3JpdGljYWwgYW5kIGFwcHJvdmVkIGNhbXBhaWduc1xyXG5cdFx0XHRpZiAoaXNCdXNpbmVzc0NyaXRpY2FsU3VydmV5KHN1cnZleUluZm8pKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IHN1cnZleUFjdGl2YXRpb25TdGF0cyA9IHRoaXMucHJldmlvdXNTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMuZ2V0QnlTdXJ2ZXlJZChzdXJ2ZXlJbmZvLmdldElkKCkpO1xyXG5cdFx0XHRpZiAoaXNNdWx0aUxhdW5jaFN1cnZleShzdXJ2ZXlJbmZvKSAmJlxyXG5cdFx0XHRcdCFoYXNTdXJ2ZXlSZWFjaGVkTWF4TGF1bmNoZXMoc3VydmV5SW5mbywgc3VydmV5QWN0aXZhdGlvblN0YXRzKSAmJlxyXG5cdFx0XHRcdCFoYXNTdXJ2ZXlSZWFjaGVkTWF4TGF1bmNoZXNQZXJTZXNzaW9uKHN1cnZleUluZm8sIGdsb2JhbFNlc3Npb25TdXJ2ZXlBY3RpdmF0aW9uQ291bnRzKSkge1xyXG5cdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBTa2lwIG92ZXIgYW55IGNhbmRpZGF0ZSBzdXJ2ZXlzIHRoYXQgaGF2ZSBiZWVuIHByZXZpb3VzbHkgY29tcGxldGVkIG9yIG5vdCBhY3RpdmUgYW55bW9yZVxyXG5cdFx0XHRpZiAoc3VydmV5QWN0aXZhdGlvblN0YXRzIHx8ICFzdXJ2ZXlJbmZvLmlzQWN0aXZlRm9yRGF0ZShuZXcgRGF0ZSgpKSkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9O1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2FuZGlkYXRlU3VydmV5cykge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY2FuZGlkYXRlU3VydmV5cywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IHN1cnZleTogSVN1cnZleSA9IHRoaXMuY2FuZGlkYXRlU3VydmV5c1trZXldO1xyXG5cdFx0XHRcdGNvbnN0IHN1cnZleUluZm8gPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpO1xyXG5cdFx0XHRcdGNvbnN0IGNhbXBhaWduRGVmaW5pdGlvbjogSUNhbXBhaWduRGVmaW5pdGlvbiA9IGFsbENhbXBhaWduRGVmaW5pdGlvbnNbc3VydmV5SW5mbz8uZ2V0QmFja0VuZElkKCldO1xyXG5cdFx0XHRcdGlmICghY2FtcGFpZ25EZWZpbml0aW9uIHx8ICFpc1N1cnZleUFsbG93ZWQoc3VydmV5SW5mbykpIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gc2VuZCB0aGUgVXNlclNlbGVjdGVkIGV2ZW50IGlmIGl0IGlzIG5vdCBzZW50IGJlZm9yZVxyXG5cdFx0XHRcdGlmICh0aGlzLnN1cnZleUV2ZW50U2VudC5pbmRleE9mKGtleSkgPCAwKSB7XHJcblx0XHRcdFx0XHR0aGlzLnN1cnZleUV2ZW50U2VudC5wdXNoKGtleSk7XHJcblxyXG5cdFx0XHRcdFx0Y29uc3QgYWRkaXRpb25hbFN1cnZleUluZm8gPSB0aGlzLmdldEFkZGl0aW9uYWxTdXJ2ZXlJbmZvRm9yVGVsZW1ldHJ5KHN1cnZleSxcclxuXHRcdFx0XHRcdFx0bnVsbCAvKiBjb250ZXh0SW5mbyAqLyxcclxuXHRcdFx0XHRcdFx0YWxsQ2FtcGFpZ25EZWZpbml0aW9uSURzLFxyXG5cdFx0XHRcdFx0XHRhbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHMpO1xyXG5cclxuXHRcdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS50ZWxlbWV0cnlMb2dnZXIubG9nX1VzZXJTZWxlY3RlZChzdXJ2ZXlJbmZvLmdldEJhY2tFbmRJZCgpLFxyXG5cdFx0XHRcdFx0XHRzdXJ2ZXlJbmZvLmdldElkKCksXHJcblx0XHRcdFx0XHRcdHN1cnZleS5nZXRUeXBlKCksXHJcblx0XHRcdFx0XHRcdEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWxTdXJ2ZXlJbmZvKSxcclxuXHRcdFx0XHRcdFx0c3VydmV5SW5mby5nZXRUcmVhdG1lbnRUeXBlKCkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0c3VydmV5TGlzdC5wdXNoKHN1cnZleSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gc3VydmV5TGlzdDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0QWRkaXRpb25hbFN1cnZleUluZm9Gb3JUZWxlbWV0cnkoc3VydmV5OiBJU3VydmV5LFxyXG5cdFx0Y29udGV4dEluZm86IElDb250ZXh0RGF0YVtdLCBhbGxDYW1wYWlnbkRlZmluaXRpb25JRHM6IHN0cmluZ1tdLCBhbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHM6IHN0cmluZ1tdKToge1xyXG5cdFx0XHRhbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHM6IHN0cmluZ1tdLFxyXG5cdFx0XHRhbGxDYW1wYWlnbkRlZmluaXRpb25JRHM6IHN0cmluZ1tdLFxyXG5cdFx0XHRjb250ZXh0Q291bnQ/OiBudW1iZXIsXHJcblx0XHRcdHN1cnZleUxhdW5jaGVyVHlwZTogc3RyaW5nLFxyXG5cdFx0XHRjaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSxcclxuXHRcdFx0cGVyY2VudGFnZU51bWVyYXRvcjogbnVtYmVyLFxyXG5cdFx0XHRwZXJjZW50YWdlRGVub21pbmF0b3I6IG51bWJlcixcclxuXHRcdFx0bm9taW5hdGlvblBlcmlvZE51bWJlcjogbnVtYmVyLFxyXG5cdFx0XHRjb29sZG93blBlcmlvZE51bWJlcjogbnVtYmVyLFxyXG5cdFx0XHRidXNpbmVzc0xldmVsOiBudW1iZXIsXHJcblx0XHRcdG1heExhdW5jaGVzOiBudW1iZXIsXHJcblx0XHRcdG1heExhdW5jaGVzUGVyU2Vzc2lvbjogbnVtYmVyLFxyXG5cdFx0XHRnb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlPzogR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSxcclxuXHRcdFx0aXNDb250ZW50VmFsaWQ6IGJvb2xlYW4sXHJcblx0XHRcdGlzVXhTY2hlbWFQcmVzZW50OiBib29sZWFuLFxyXG5cdFx0fSB7XHJcblx0XHQvLyBHZXQgYWxsIHRoZSBjYW1wYWlnbiBkZWZpbml0aW9ucy4gV2UgbmVlZCBpbmZvIGZyb20gdGhlc2UgZm9yIHRlbGVtZXRyeS5cclxuXHRcdGNvbnN0IGFsbENhbXBhaWduRGVmaW5pdGlvbnMgPSB0aGlzLnN1cnZleUNsaWVudC5nZXRDYW1wYWlnbkRlZmluaXRpb25zKCk7XHJcblxyXG5cdFx0Ly8gR2V0IHRoZSBjb3JyZXNwb25kaW5nIGNhbXBhaWduIGRlZmluaXRpb24gdG8gdGhlIHN1cnZleSBpbiBxdWVzdGlvbi5cclxuXHRcdGNvbnN0IGNvcnJlc3BvbmRpbmdDYW1wYWlnbkRlZmluaXRpb24gPSBhbGxDYW1wYWlnbkRlZmluaXRpb25zW3N1cnZleS5nZXRDYW1wYWlnbklkKCldO1xyXG5cclxuXHRcdC8vIFN1cnZleSBwcm9wZXJ0aWVzIHRvIGdldCBmcm9tIGl0cyBjb3JyZXNwb25kaW5nIENhbXBhaWduRGVmaW5pdGlvbjpcclxuXHRcdGxldCBub21pbmF0aW9uUGVyaW9kTnVtYmVyOiBudW1iZXI7XHJcblx0XHRsZXQgY29vbGRvd25QZXJpb2ROdW1iZXI6IG51bWJlcjtcclxuXHJcblx0XHRjb25zdCBwZXJjZW50YWdlTnVtZXJhdG9yID0gKGNvcnJlc3BvbmRpbmdDYW1wYWlnbkRlZmluaXRpb24ubm9taW5hdGlvblNjaGVtZSBhcyBDYW1wYWlnbk5vbWluYXRpb25TY2hlbWVSYXRpb1BlcmNlbnRhZ2UpLnBlcmNlbnRhZ2VOdW1lcmF0b3I7XHJcblx0XHRjb25zdCBwZXJjZW50YWdlRGVub21pbmF0b3IgPSAoY29ycmVzcG9uZGluZ0NhbXBhaWduRGVmaW5pdGlvbi5ub21pbmF0aW9uU2NoZW1lIGFzIENhbXBhaWduTm9taW5hdGlvblNjaGVtZVJhdGlvUGVyY2VudGFnZSkucGVyY2VudGFnZURlbm9taW5hdG9yO1xyXG5cclxuXHRcdG5vbWluYXRpb25QZXJpb2ROdW1iZXIgPSBjb3JyZXNwb25kaW5nQ2FtcGFpZ25EZWZpbml0aW9uLm5vbWluYXRpb25TY2hlbWUubm9taW5hdGlvblBlcmlvZC5hc1RpbWVJbnRlcnZhbFNlY29uZHMoKTtcclxuXHRcdG5vbWluYXRpb25QZXJpb2ROdW1iZXIgPSBpc05PVShub21pbmF0aW9uUGVyaW9kTnVtYmVyKSA/IC0xIDogbm9taW5hdGlvblBlcmlvZE51bWJlcjsgLy8gU2V0dGluZyB0byAtMSBpZiBudWxsIG9yIHVuZGVmaW5lZFxyXG5cclxuXHRcdGNvb2xkb3duUGVyaW9kTnVtYmVyID0gY29ycmVzcG9uZGluZ0NhbXBhaWduRGVmaW5pdGlvbi5ub21pbmF0aW9uU2NoZW1lLmNvb2xkb3duUGVyaW9kLmFzVGltZUludGVydmFsU2Vjb25kcygpO1xyXG5cdFx0Y29vbGRvd25QZXJpb2ROdW1iZXIgPSBpc05PVShjb29sZG93blBlcmlvZE51bWJlcikgPyAtMSA6IGNvb2xkb3duUGVyaW9kTnVtYmVyOyAgLy8gU2V0dGluZyB0byAtMSBpZiBudWxsIG9yIHVuZGVmaW5lZFxyXG5cclxuXHRcdGNvbnN0IHN1cnZleUluZm8gPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpO1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0YWxsQ2FtcGFpZ25EZWZpbml0aW9uSURzLFxyXG5cdFx0XHRhbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHMsXHJcblx0XHRcdGNoYW5uZWxUeXBlOiBzdXJ2ZXlJbmZvLmdldEdvdmVybmVkQ2hhbm5lbFR5cGUoKSxcclxuXHRcdFx0Y29udGV4dENvdW50OiBjb250ZXh0SW5mbyA/IGNvbnRleHRJbmZvLmxlbmd0aCA6IHVuZGVmaW5lZCxcclxuXHRcdFx0Y29vbGRvd25QZXJpb2ROdW1iZXIsXHJcblx0XHRcdG5vbWluYXRpb25QZXJpb2ROdW1iZXIsXHJcblx0XHRcdHBlcmNlbnRhZ2VEZW5vbWluYXRvcixcclxuXHRcdFx0cGVyY2VudGFnZU51bWVyYXRvcixcclxuXHRcdFx0c3VydmV5TGF1bmNoZXJUeXBlOiBzdXJ2ZXkuZ2V0TGF1bmNoZXJUeXBlKCksXHJcblx0XHRcdGJ1c2luZXNzTGV2ZWw6IHN1cnZleUluZm8uZ2V0QnVzaW5lc3NMZXZlbCgpLFxyXG5cdFx0XHRtYXhMYXVuY2hlczogc3VydmV5SW5mby5nZXRNYXhMYXVuY2hlcygpLFxyXG5cdFx0XHRtYXhMYXVuY2hlc1BlclNlc3Npb246IHN1cnZleUluZm8uZ2V0TWF4TGF1bmNoZXNQZXJTZXNzaW9uKCksXHJcblx0XHRcdGlzQ29udGVudFZhbGlkOiBzdXJ2ZXkuaXNDb250ZW50VmFsaWQoKSxcclxuXHRcdFx0aXNVeFNjaGVtYVByZXNlbnQ6ICFpc05PVShzdXJ2ZXkuZ2V0VXhTY2hlbWEoKSlcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldEFsbENhbmRpZGF0ZUNhbXBhaWduRGVmaW5pdGlvbklEcygpOiBzdHJpbmdbXSB7XHJcblxyXG5cdFx0Y29uc3QgYWxsQ2FuZGlkYXRlQ2FtcGFpZ25EZWZpbml0aW9uSURzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRcdC8vIEdldCBhbGwgdGhlIGNhbmRpZGF0ZSBzdXJ2ZXlzJyBjYW1wYWlnbiBkZWZpbml0aW9uIElEc1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gdGhpcy5jYW5kaWRhdGVTdXJ2ZXlzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jYW5kaWRhdGVTdXJ2ZXlzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgY2FuZGlkYXRlU3VydmV5OiBJU3VydmV5ID0gdGhpcy5jYW5kaWRhdGVTdXJ2ZXlzW2tleV07XHJcblx0XHRcdFx0YWxsQ2FuZGlkYXRlQ2FtcGFpZ25EZWZpbml0aW9uSURzLnB1c2goY2FuZGlkYXRlU3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRCYWNrRW5kSWQoKSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBhbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHM7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldEFsbENhbXBhaWduRGVmaW5pdGlvbklEcygpOiBzdHJpbmdbXSB7XHJcblxyXG5cdFx0Y29uc3QgYWxsQ2FtcGFpZ25EZWZpbml0aW9ucyA9IHRoaXMuc3VydmV5Q2xpZW50LmdldENhbXBhaWduRGVmaW5pdGlvbnMoKTtcclxuXHRcdGNvbnN0IGFsbENhbXBhaWduRGVmaW5pdGlvbklEczogc3RyaW5nW10gPSBbXTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGRlZmluaXRpb25zS2V5IGluIGFsbENhbXBhaWduRGVmaW5pdGlvbnMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChhbGxDYW1wYWlnbkRlZmluaXRpb25zLCBkZWZpbml0aW9uc0tleSkpIHtcclxuXHRcdFx0XHRjb25zdCBkZWZpbml0aW9uOiBJQ2FtcGFpZ25EZWZpbml0aW9uID0gYWxsQ2FtcGFpZ25EZWZpbml0aW9uc1tkZWZpbml0aW9uc0tleV07XHJcblx0XHRcdFx0YWxsQ2FtcGFpZ25EZWZpbml0aW9uSURzLnB1c2goZGVmaW5pdGlvbi5jYW1wYWlnbklkKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGFsbENhbXBhaWduRGVmaW5pdGlvbklEcztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdXBkYXRlQWN0aXZpdHlMaXN0ZW5lcldpdGhDdXJyZW50U3VydmV5RGVmaW5pdGlvbnMoKTogdm9pZCB7XHJcblx0XHRjb25zdCBzdXJ2ZXlMaXN0OiBJU3VydmV5W10gPSB0aGlzLmdldEN1cnJlbnRTdXJ2ZXlEZWZpbml0aW9ucygpO1xyXG5cdFx0Y29uc3QgdHJhY2tpbmdDb250cmFjdExpc3Q6IEFjdGl2aXR5VHJhY2tpbmdDb250cmFjdFtdID0gW107XHJcblxyXG5cdFx0Zm9yIChjb25zdCBzdXJ2ZXkgb2Ygc3VydmV5TGlzdCkge1xyXG5cdFx0XHRjb25zdCBzdXJ2ZXlJbmZvID0gc3VydmV5LmdldFN1cnZleUluZm8oKTtcclxuXHRcdFx0Y29uc3QgdHJhY2tpbmdDb250cmFjdCA9IG5ldyBBY3Rpdml0eVRyYWNraW5nQ29udHJhY3Qoc3VydmV5SW5mby5nZXRJZCgpLCBzdXJ2ZXlJbmZvLmdldEFjdGl2YXRpb25FdmVudCgpLmdldFRyYWNraW5nU2V0KCkpO1xyXG5cdFx0XHR0cmFja2luZ0NvbnRyYWN0TGlzdC5wdXNoKHRyYWNraW5nQ29udHJhY3QpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuYWN0aXZpdHlMaXN0ZW5lci5TZXRBY3Rpdml0eVRyYWNraW5nQ29udHJhY3RzKHRyYWNraW5nQ29udHJhY3RMaXN0LCB0aGlzLnByZXZpb3VzU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc2V0Q3JpdGljYWxQZW5kaW5nU3VydmV5c0FuZFVwZGF0ZUFjdGl2aXR5TGlzdGVuZXIoKSB7XHJcblx0XHRjb25zdCBhY3RpdmVTdXJ2ZXlzOiBJRGljdGlvbmFyeTxJU3VydmV5PiA9IHt9O1xyXG5cclxuXHRcdC8vIEdldCBhbGwgdGhlIGNhbmRpZGF0ZSBzdXJ2ZXlzJyBjYW1wYWlnbiBkZWZpbml0aW9uIElEc1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gdGhpcy5jYW5kaWRhdGVTdXJ2ZXlzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5jYW5kaWRhdGVTdXJ2ZXlzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgY2FuZGlkYXRlU3VydmV5OiBJU3VydmV5ID0gdGhpcy5jYW5kaWRhdGVTdXJ2ZXlzW2tleV07XHJcblx0XHRcdFx0aWYgKGlzQ3JpdGljYWxTdXJ2ZXkoY2FuZGlkYXRlU3VydmV5LmdldFN1cnZleUluZm8oKSkpIHtcclxuXHRcdFx0XHRcdGFjdGl2ZVN1cnZleXNba2V5XSA9IGNhbmRpZGF0ZVN1cnZleTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoT2JqZWN0LmtleXMoYWN0aXZlU3VydmV5cykubGVuZ3RoID4gMCkge1xyXG5cdFx0XHR0aGlzLnNldFBlbmRpbmdTdXJ2ZXlzKGFjdGl2ZVN1cnZleXMpO1xyXG5cdFx0XHR0aGlzLnVwZGF0ZUFjdGl2aXR5TGlzdGVuZXJXaXRoQ3VycmVudFN1cnZleURlZmluaXRpb25zKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNob3VsZEFjY2VwdEFjdGl2aXR5KGFjdGl2aXR5TmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pbml0aWFsaXphdGlvblN0YXR1cyA9PT0gSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RhcnRlZCB8fFxyXG5cdFx0XHRhY3Rpdml0eU5hbWUgPT09IFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuRmxvb2RnYXRlU3RhcnRBY3Rpdml0eU5hbWU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIG9uU3VydmV5QWN0aXZhdGVkKHN1cnZleUlkOiBzdHJpbmcsIGNvbnRleHRJbmZvOiBJQ29udGV4dERhdGFbXSk6IHZvaWQge1xyXG5cdFx0Ly8gRmluZCB0aGUgc3VydmV5IG9iamVjdCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBzdXJ2ZXlJZCBwYXNzZWRcclxuXHRcdGNvbnN0IHN1cnZleXM6IElTdXJ2ZXlbXSA9IHRoaXMuZ2V0Q3VycmVudFN1cnZleURlZmluaXRpb25zKCk7XHJcblx0XHRsZXQgc3VydmV5OiBJU3VydmV5O1xyXG5cclxuXHRcdGZvciAoY29uc3QgdGVtcFN1cnZleSBvZiBzdXJ2ZXlzKSB7XHJcblx0XHRcdGlmICh0ZW1wU3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpID09PSBzdXJ2ZXlJZCkge1xyXG5cdFx0XHRcdHN1cnZleSA9IHRlbXBTdXJ2ZXk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaXNOT1Uoc3VydmV5KSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0Vycm9yKFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5TdXJ2ZXlOb3REZWZpbmVkLFxyXG5cdFx0XHRcdFwiU3VydmV5IGlzIG5vdCBkZWZpbmVkIGluIHRoZSBjdXJyZW50IHN1cnZleSBkZWZpbml0aW9ucy5cIixcclxuXHRcdFx0KTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdC8vIHRoaXMgbG9nIHdpbGwgdHJpZ2dlciB3aGVuIHRoZSB1c2VyIGhhcyBmaXJzdCBtZXQgdGhlIHRyaWdnZXIgYWN0aW9uIHJlcXVpcmVkIHRvIGluaXRpYWxseSB0cmlnZ2VyIHRoZSBjYW1wYWlnbi5cclxuXHRcdFx0Ly8gdGhpcyBsb2cgb2NjdXJzIHByaW9yIHRvIHRoZSBwb3N0IGdvdmVybmFuY2UgY2hlY2tzIHdoaWNoIGRldGVybWluZXMgaWYgdGhlIHRyaWdnZXIgaXMgYWN0dWFsbHkgbWV0IGFuZCB3ZSBjYW4gbGF1bmNoIFxyXG5cdFx0XHQvLyB0aGUgc3VyZmFjZVxyXG5cdFx0XHQvLyBEZWZhdWx0IHNhbXBsaW5nIHJhdGU6IDEwJVxyXG5cdFx0XHRjb25zdCBpbml0aWFsVHJpZ2dlclNhbXBsaW5nUmF0ZSA9IHRoaXMuY2FtcGFpZ25UZWxlbWV0cnlTYW1wbGluZ0NvbmZpZz8uaW5pdGlhbFRyaWdnZXJNZXRTYW1wbGluZ1JhdGUgXHJcblx0XHRcdFx0Pz8gMC4xO1xyXG5cdFx0XHRpZiAoaW5pdGlhbFRyaWdnZXJTYW1wbGluZ1JhdGUgPiAwKSB7XHJcblx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLnRlbGVtZXRyeUxvZ2dlci5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLkNhbXBhaWduSW5pdGlhbFRyaWdnZXJNZXQsIFxyXG5cdFx0XHRcdFx0e0NhbXBhaWduSWQ6IHN1cnZleS5nZXRDYW1wYWlnbklkKCksIE1lc3NhZ2U6IFwiU2FtcGxpbmcgUmF0ZTogXCIgKyBpbml0aWFsVHJpZ2dlclNhbXBsaW5nUmF0ZX0sIGluaXRpYWxUcmlnZ2VyU2FtcGxpbmdSYXRlKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZ292ZXJuZWRDaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSA9IHN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0R292ZXJuZWRDaGFubmVsVHlwZSgpO1xyXG5cclxuXHRcdFx0Ly8gSWYgdGhlIGdvdmVybmFuY2Ugc2VydmljZSBpcyBpbiB1c2UsIGxhdW5jaCBzdXJ2ZXkgYXN5bmNocm9ub3VzbHlcclxuXHRcdFx0aWYgKHRoaXMub3JjaGVzdHJhdGlvbkVuZ2luZS5pc0NoYW5uZWxHb3Zlcm5hbmNlRW5hYmxlZChnb3Zlcm5lZENoYW5uZWxUeXBlKSB8fFxyXG5cdFx0XHRcdCh0aGlzLmZsb29kZ2F0ZUVuZ2luZUNvbmZpZy51aVN0cmluZ3NDZG5FbmFibGVkICYmIGlzVHJhbnNsYXRpb25SZXF1aXJlZChzdXJ2ZXksIHRoaXMuZmxvb2RnYXRlRW5naW5lQ29uZmlnLmxvY2FsZSkpKSB7XHJcblx0XHRcdFx0Ly8gcmVjb3JkIHRoZSBzdGFsZSBzdXJ2ZXlzLCBzbyB3ZSBjYW4gY2xlYXIgaXRzIHRyYWNrZXIgaWYgRW5naW5lIGlzIHN0b3BwZWRcclxuXHRcdFx0XHR0aGlzLnN0YWxlVHJpZ2dlcmVkU3VydmV5c1F1ZXVlLnB1c2goc3VydmV5KTtcclxuXHJcblx0XHRcdFx0Ly8gSWYgdGhlcmUgaXMgbm8gc3VydmV5IGluIHN0YWxlIGJlZm9yZSwgbGF1bmNoIHRoZSBzdXJ2ZXkgcmlnaHQgYXdheVxyXG5cdFx0XHRcdGlmICh0aGlzLnN0YWxlVHJpZ2dlcmVkU3VydmV5c1F1ZXVlLmxlbmd0aCA9PT0gMSkge1xyXG5cdFx0XHRcdFx0Ly8gTGF1bmNoIHRoZSBzdXJ2ZXkgYXN5bmNocm9ub3VzbHlcclxuXHRcdFx0XHRcdHRoaXMuY2hlY2tUcmlnZ2VyTWV0QXBpc0FuZEFjdGl2YXRlU3VydmV5KHN1cnZleSwgZ292ZXJuZWRDaGFubmVsVHlwZSwgY29udGV4dEluZm8pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLmFjdGl2YXRlU3VydmV5KHN1cnZleSwgZ292ZXJuZWRDaGFubmVsVHlwZSwgY29udGV4dEluZm8pO1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS50ZWxlbWV0cnlMb2dnZXIubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5FcnJvcixcclxuXHRcdFx0XHR7IEVycm9yTWVzc2FnZTogYEVycm9yIGFjdGl2YXRpbmcgc3VydmV5ICR7ZSAmJiBlLnRvU3RyaW5nKCl9YCwgRXJyb3JEZXRhaWxzOiBlICYmIGUuc3RhY2sgfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFjdGl2YXRlU3VydmV5KHN1cnZleTogSVN1cnZleSwgZ292ZXJuZWRDaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSwgY29udGV4dEluZm86IElDb250ZXh0RGF0YVtdKSB7XHJcblx0XHRsZXQgbGF1bmNoU3VydmV5ID0gZmFsc2U7XHJcblx0XHQvLyBGaWd1cmUgb3V0IGlmIHRoZSBhY3RpdmF0ZWQgc3VydmV5IGlzIHN0aWxsIHJlbGV2YW50XHJcblx0XHRpZiAoIXRoaXMuY2FuZGlkYXRlU3VydmV5c1tzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCldKSB7XHJcblx0XHRcdC8vIFN1cnZleSBpcyBubyBsb25nZXIgcmVsZXZhbnQgYnV0IHdhcyBhY3RpdmF0ZWQuIFN1cHByZXNzIGl0LlxyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5BY3RpdmF0aW9uSXJyZWxldmFudFN1cnZleSxcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRDYW1wYWlnbklkOiBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldEJhY2tFbmRJZCgpLFxyXG5cdFx0XHRcdFx0U3VydmV5SWQ6IHN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0SWQoKSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdH0gZWxzZSBpZiAoIXN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuaXNBY3RpdmVGb3JEYXRlKG5ldyBEYXRlKCkpKSB7XHJcblx0XHRcdC8vIFN1cnZleSBpcyBubyBsb25nZXIgYWN0aXZlIChlLmcuIGl0IHdhcyB3aGVuIHdlIHJlZ2lzdGVyZWQgaXQgYnV0IGl0IGhhcyBub3cgZXhwaXJlZClcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuT25TdXJ2ZXlBY3RpdmF0ZWQuQWN0aXZhdGlvbkV4cGlyZWRTdXJ2ZXksXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0Q2FtcGFpZ25JZDogc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRCYWNrRW5kSWQoKSxcclxuXHRcdFx0XHRcdFN1cnZleUlkOiBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCksXHJcblx0XHRcdFx0fSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAoaXNDcml0aWNhbFN1cnZleShzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpKSkge1xyXG5cdFx0XHRcdGxhdW5jaFN1cnZleSA9IHRydWU7XHJcblx0XHRcdH0gZWxzZSBpZiAoIXRoaXMub3JjaGVzdHJhdGlvbkVuZ2luZS5pc0NoYW5uZWxPcGVuKGdvdmVybmVkQ2hhbm5lbFR5cGUpKSB7XHJcblx0XHRcdFx0Ly8gQ2hhbm5lbCBoYXMgY2xvc2VkIGFuZCBtYXhMYXVuY2hlcyBpcyBub3Qgc2V0LCBzdXBwcmVzcyB0aGUgc3VydmV5XHJcblx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5DbG9zZWRDaGFubmVsVHlwZSxcclxuXHRcdFx0XHRcdHsgQ2xvc2VkQ2hhbm5lbFR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGVbZ292ZXJuZWRDaGFubmVsVHlwZV0gfSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Ly8gR2V0IGxhdGVzdCBzdXJ2ZXkgc3RhdGVzIGZyb20gcHJvdmlkZXJcclxuXHRcdFx0XHRjb25zdCByZWZyZXNoZWRTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMgPSB0aGlzLnN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyLmxvYWQoKTtcclxuXHRcdFx0XHRpZiAocmVmcmVzaGVkU3VydmV5QWN0aXZhdGlvblN0YXRzLmdldEJ5U3VydmV5SWQoc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpKSkge1xyXG5cdFx0XHRcdFx0Ly8gU3VydmV5IHN0YXRzIGV4aXN0cyBhbHJlYWR5LCBkb24ndCBsYXVuY2hcclxuXHRcdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5BY3RpdmF0aW9uU3RhdHNTdXBwcmVzc2VkU3VydmV5LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0Q2FtcGFpZ25JZDogc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRCYWNrRW5kSWQoKSxcclxuXHRcdFx0XHRcdFx0XHRTdXJ2ZXlJZDogc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKE9iamVjdC5rZXlzKHRoaXMubGF1bmNoZWRTdXJ2ZXlzKS5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRcdC8vIGZvciBub3cgd2Ugb25seSBzdXBwb3J0IGxhdW5jaGluZyBvbmUgc3VydmV5IHBlciBzZXNzaW9uIHVubGVzcyBpdCBpcyBtdWx0aS1sYXVuY2ggY2FtcGFpZ25cclxuXHRcdFx0XHRcdC8vIFRyYWNrIHRoaXMgc3VydmV5IGFjdGl2YXRpb24gZm9yIHRoZSBsYXVuY2ggaGlzdG9yeSB0cmFja2VyXHJcblx0XHRcdFx0XHRsYXVuY2hTdXJ2ZXkgPSB0cnVlO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRjb25zdCB0cmlnZ2VyZWRTdXJ2ZXkgPSBPYmplY3QudmFsdWVzKHRoaXMubGF1bmNoZWRTdXJ2ZXlzKVswXTtcclxuXHRcdFx0XHRcdGlmICghaXNOT1UodHJpZ2dlcmVkU3VydmV5KSkge1xyXG5cdFx0XHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5PblN1cnZleUFjdGl2YXRlZC5TZXNzaW9uU3VwcHJlc3NlZFN1cnZleSxcclxuXHRcdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0XHRDYW1wYWlnbklkOiB0cmlnZ2VyZWRTdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldEJhY2tFbmRJZCgpLFxyXG5cdFx0XHRcdFx0XHRcdFx0U3VydmV5SWQ6IHRyaWdnZXJlZFN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0SWQoKSxcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChsYXVuY2hTdXJ2ZXkpIHtcclxuXHRcdFx0XHR0aGlzLmxhdW5jaGVkU3VydmV5c1tzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCldID0gc3VydmV5O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQXQgdGhpcyBwb2ludCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgc3VydmV5IGlzIHN0aWxsIHJlbGV2YW50LCB3ZSBzaG91bGQgZmx1c2ggb3V0IHRoZSBzdGF0c1xyXG5cdFx0dGhpcy51cGRhdGVTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMoc3VydmV5KTtcclxuXHRcdHRoaXMubWVyZ2VBbmRTYXZlKCk7XHJcblx0XHQvLyBzaHV0IG9mZiBmdXJ0aGVyIHN1cnZleSBsYXVuY2hlc1xyXG5cdFx0dGhpcy5hY3Rpdml0eUxpc3RlbmVyLmNsZWFyU3VydmV5cygpO1xyXG5cclxuXHRcdC8vIENsZWFyIHRoZSBzdXJ2ZXkgZnJvbSBzdGFsZSBsaXN0XHJcblx0XHR0aGlzLnN0YWxlVHJpZ2dlcmVkU3VydmV5c1F1ZXVlID0gW107XHJcblxyXG5cdFx0Ly8gQWN0dWFsbHkgbGF1bmNoIHRoZSBzdXJ2ZXkgaWYgcG9zc2libGVcclxuXHRcdGlmIChsYXVuY2hTdXJ2ZXkpIHtcclxuXHRcdFx0Ly8gR2V0IHRoZSBzdHJpbmdpZmllZCBqc29uIHdpdGggYWN0aXZpdHkgbmFtZXMsIGNvdW50cyBhbmQgaXNBZ2dyZWdhdGUgaW5mbyBmb3IgVHJpZ2dldE1ldCB0ZWxlbWV0cnkuXHJcblx0XHRcdGNvbnN0IGFjdGl2aXR5VHJhY2tpbmdTdHJpbmcgPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldEFjdGl2YXRpb25FdmVudCgpLmdldFRyYWNraW5nU2V0KClcclxuXHRcdFx0XHQuZ2V0QWN0aXZpdHlUcmFja2luZ0luZm8odGhpcy5hY3Rpdml0eUxpc3RlbmVyLCBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCkpO1xyXG5cclxuXHRcdFx0Y29uc3QgYWRkaXRpb25hbFN1cnZleUluZm8gPSB0aGlzLmdldEFkZGl0aW9uYWxTdXJ2ZXlJbmZvRm9yVGVsZW1ldHJ5KHN1cnZleSwgY29udGV4dEluZm8sIHRoaXMuZ2V0QWxsQ2FtcGFpZ25EZWZpbml0aW9uSURzKCksXHJcblx0XHRcdFx0dGhpcy5nZXRBbGxDYW5kaWRhdGVDYW1wYWlnbkRlZmluaXRpb25JRHMoKSk7XHJcblxyXG5cdFx0XHQvLyBPbmx5IGFkZGluZyB0aGUgZ292ZXJuYW5jZSBzZXJ2aWNlIGNsaWVudCBzdGF0ZSBhdCBUcmlnZ2VyTWV0IGV2ZW50XHJcblx0XHRcdGFkZGl0aW9uYWxTdXJ2ZXlJbmZvLmdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGUgPSB0aGlzLm9yY2hlc3RyYXRpb25FbmdpbmUuZ2V0U3RhdGVGb3JUZWxlbWV0cnkoKTtcclxuXHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS50ZWxlbWV0cnlMb2dnZXIubG9nX1RyaWdnZXJNZXQoc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRCYWNrRW5kSWQoKSwgc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpLFxyXG5cdFx0XHRcdHN1cnZleS5nZXRUeXBlKCksIGFjdGl2aXR5VHJhY2tpbmdTdHJpbmcsIEpTT04uc3RyaW5naWZ5KGFkZGl0aW9uYWxTdXJ2ZXlJbmZvKSwgc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRUcmVhdG1lbnRUeXBlKCkpO1xyXG5cclxuXHRcdFx0Ly8gU2V0IGdvdmVybiBjaGFubmVsXHJcblx0XHRcdHRoaXMub3JjaGVzdHJhdGlvbkVuZ2luZS5zdGFydENoYW5uZWxDb29sZG93bihnb3Zlcm5lZENoYW5uZWxUeXBlKTtcclxuXHJcblx0XHRcdGNvbnN0IHN1cnZleUluZm8gPSBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpO1xyXG5cdFx0XHRsZXQgaXNTdXJ2ZXlDb21wbGV0ZSA9IHRydWU7XHJcblx0XHRcdGlmIChpc0J1c2luZXNzQ3JpdGljYWxTdXJ2ZXkoc3VydmV5SW5mbykpIHtcclxuXHRcdFx0XHQvLyBjcml0aWNhbCBjYW1wYWlnbnMgYXJlIG5vdCB0cmFja2VkXHJcblx0XHRcdFx0aXNTdXJ2ZXlDb21wbGV0ZSA9IGZhbHNlO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGlzTXVsdGlMYXVuY2hTdXJ2ZXkoc3VydmV5SW5mbykpIHtcclxuXHRcdFx0XHRjb25zdCBzdXJ2ZXlBY3RpdmF0aW9uU3RhdHMgPSB0aGlzLnByZXZpb3VzU3VydmV5QWN0aXZhdGlvblN0YXRzLmdldEJ5U3VydmV5SWQoc3VydmV5SW5mby5nZXRJZCgpKTtcclxuXHRcdFx0XHRpc1N1cnZleUNvbXBsZXRlID0gaGFzU3VydmV5UmVhY2hlZE1heExhdW5jaGVzKHN1cnZleUluZm8sIHN1cnZleUFjdGl2YXRpb25TdGF0cyk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFNldCBjYW1wYWlnbiBzdGF0ZXNcclxuXHRcdFx0dGhpcy5zdXJ2ZXlDbGllbnQub25TdXJ2ZXlBY3RpdmF0ZWQoc3VydmV5SW5mbywgaXNTdXJ2ZXlDb21wbGV0ZSk7XHJcblxyXG5cdFx0XHQvLyBTaG93IHRoZSBzdXJ2ZXlcclxuXHRcdFx0dGhpcy5sYXVuY2hMYXVuY2hlcihzdXJ2ZXksIGNvbnRleHRJbmZvKTtcclxuXHJcblx0XHRcdC8vIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgY3JpdGljYWwgY2FtcGFpZ25zIGFuZCBzdGFydCB0cmFja2luZyBhZ2FpblxyXG5cdFx0XHR0aGlzLnNldENyaXRpY2FsUGVuZGluZ1N1cnZleXNBbmRVcGRhdGVBY3Rpdml0eUxpc3RlbmVyKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGNoZWNrVHJpZ2dlck1ldEFwaXNBbmRBY3RpdmF0ZVN1cnZleShzdXJ2ZXk6IElTdXJ2ZXksXHJcblx0XHRnb3Zlcm5lZENoYW5uZWxUeXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlLFxyXG5cdFx0Y29udGV4dEluZm86IElDb250ZXh0RGF0YVtdKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHQvLyBHZXQgdGhlIGNvb2xkb3duIHNldHRpbmdcclxuXHRcdGNvbnN0IGNhbXBhaWduRGVmaW5pdGlvbiA9IHRoaXMuc3VydmV5Q2xpZW50LmdldENhbXBhaWduRGVmaW5pdGlvbnMoKVtzdXJ2ZXkuZ2V0Q2FtcGFpZ25JZCgpXTtcclxuXHRcdGNvbnN0IHN1cnZleUxldmVsQ29vbGRvd24gPSBjYW1wYWlnbkRlZmluaXRpb24ubm9taW5hdGlvblNjaGVtZS5jb29sZG93blBlcmlvZC5hc1RpbWVJbnRlcnZhbFNlY29uZHMoKTtcclxuXHJcblx0XHQvLyBDYWxsIHRoZSBUcmlnZ2VyTWV0IEFwaXNcclxuXHRcdGxldCBzZXJ2aWNlUmVzdWx0OiBJR292ZXJuYW5jZVNlcnZpY2VSZXN1bHQ7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCBnb3Zlcm5hbmNlRGVjaXNpb24gPSBhd2FpdCB0aGlzLnF1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luYyhzdXJ2ZXksIHN1cnZleUxldmVsQ29vbGRvd24sIGdvdmVybmVkQ2hhbm5lbFR5cGUpO1xyXG5cdFx0XHRzZXJ2aWNlUmVzdWx0ID0gZ292ZXJuYW5jZURlY2lzaW9uLnNlcnZpY2VSZXN1bHQ7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoVGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLlF1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luYy5FeGNlcHRpb24sXHJcblx0XHRcdFx0eyBFcnJvck1lc3NhZ2U6IGUgJiYgZS50b1N0cmluZygpLCBFcnJvckRldGFpbHM6IGUgJiYgZS5zdGFjayB9KTtcclxuXHRcdFx0Ly8gZmFpbHVyZSBpbiBjYXNlIG9mIGV4Y2VwdGlvblxyXG5cdFx0XHRzZXJ2aWNlUmVzdWx0ID0ge1xyXG5cdFx0XHRcdHBlcm1pc3Npb246IGZhbHNlXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblx0XHRsZXQgbGF1bmNoU3VydmV5ID0gZmFsc2U7XHJcblxyXG5cdFx0Ly8gTG9nIHRoZSBzdGFsZVxyXG5cdFx0Y29uc3QgZ292ZXJuYW5jZVJlc3BvbnNlVGVsZW1ldHJ5ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5jcmVhdGVHb3J2ZXJuYW5jZVJlc3BvbnNlVGVsZW1ldHJ5KHNlcnZpY2VSZXN1bHQsIHN1cnZleS5nZXRDYW1wYWlnbklkKCkpKTtcclxuXHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5DaGVja0dvdmVybmFuY2VTZXJ2aWNlQW5kQWN0aXZhdGVTdXJ2ZXkuR292ZXJuYW5jZVNlcnZpY2VDbGllbnRDb21wbGV0ZWQsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRNZXNzYWdlOiBnb3Zlcm5hbmNlUmVzcG9uc2VUZWxlbWV0cnksXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdC8vIENoZWNrIGlmIGVuZ2luZSBpcyBzdGlsbCBydW5uaW5nXHJcblx0XHRpZiAodGhpcy5pbml0aWFsaXphdGlvblN0YXR1cyAhPT0gSW5pdGlhbGl6YXRpb25TdGF0dXMuU3RhcnRlZCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFzZXJ2aWNlUmVzdWx0LmVycm9yKSB7XHJcblx0XHRcdC8vIENoZWNrIHJlc3VsdCBpcyBwZXJtaXR0ZWRcclxuXHRcdFx0aWYgKHNlcnZpY2VSZXN1bHQucGVybWlzc2lvbikgeyAvLyB0aGUgR292ZXJuYW5jZSBTZXJ2aWNlIGlzIHBlcm1pdHRpbmcsIGNvbnRpbnVlIHRvIHRyaWdnZXJcclxuXHRcdFx0XHRsYXVuY2hTdXJ2ZXkgPSB0cnVlO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlmIChzZXJ2aWNlUmVzdWx0Lmxhc3RUcmlnZ2VyU3VydmV5Py50aW1lVW50aWxOZXh0Q2FtcGFpZ25BbGxvd2VkID4gMCkge1xyXG5cdFx0XHRcdFx0Ly8gU2V0IGdvdmVybmVkIGNoYW5uZWwgdG8gbmV3IGNvb2xkb3duXHJcblx0XHRcdFx0XHR0aGlzLm9yY2hlc3RyYXRpb25FbmdpbmUuc3RhcnRDaGFubmVsQ29vbGRvd24oZ292ZXJuZWRDaGFubmVsVHlwZSwgc2VydmljZVJlc3VsdC5sYXN0VHJpZ2dlclN1cnZleS5sYXN0VHJpZ2dlckNhbXBhaWduVGltZSk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gQ2xlYXIgdGhlIHN1cnZleSByZWxhdGluZyB0byBjaGFubmVsXHJcblx0XHRcdFx0XHR0aGlzLmNsZWFyU3VydmV5V2l0aENoYW5uZWwoZ292ZXJuZWRDaGFubmVsVHlwZSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoXHJcblx0XHRcdFx0XHRzZXJ2aWNlUmVzdWx0LmlzU3VydmV5R292ZXJuZWQgJiZcclxuXHRcdFx0XHRcdHNlcnZpY2VSZXN1bHQubGFzdFRyaWdnZXJTdXJ2ZXk/LnRpbWVVbnRpbFNhbWVDYW1wYWlnbkFsbG93ZWQgPiAwXHJcblx0XHRcdFx0KSB7XHJcblx0XHRcdFx0XHQvLyBMb2cgdGhlIGV2ZW50XHJcblx0XHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuQ2hlY2tHb3Zlcm5hbmNlU2VydmljZUFuZEFjdGl2YXRlU3VydmV5LkdvdmVybmFuY2VTZXJ2aWNlU3VydmV5SW5Db29sZG93bixcclxuXHRcdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRcdE1lc3NhZ2U6IGdvdmVybmFuY2VSZXNwb25zZVRlbGVtZXRyeSxcclxuXHRcdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHR0aGlzLnB1dFN1cnZleU9uQ29vbGRvd24oc3VydmV5LCBzZXJ2aWNlUmVzdWx0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIElmIGZvcmNlIHRvIGRpc3BsYXkgd2l0aCBlcnJvciwgY29udGludWUgdG8gdHJpZ2dlciB0aGUgc3VydmV5XHJcblx0XHRcdGlmICh0aGlzLm9yY2hlc3RyYXRpb25FbmdpbmUuc2hvdWxkRm9yY2VQZXJtaXNzaW9uKCkpIHtcclxuXHRcdFx0XHRsYXVuY2hTdXJ2ZXkgPSB0cnVlO1xyXG5cclxuXHRcdFx0XHQvLyBMb2cgdGhlIGZvcmNlIHRvIGRpc3BsYXkgZXZlbnRcclxuXHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLkNoZWNrR292ZXJuYW5jZVNlcnZpY2VBbmRBY3RpdmF0ZVN1cnZleS5Hb3Zlcm5hbmNlU2VydmljZUZvcmNlVG9EaXNwbGF5LFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRFcnJvck1lc3NhZ2U6IHNlcnZpY2VSZXN1bHQuZXJyb3JNZXNzYWdlLFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAobGF1bmNoU3VydmV5KSB7XHJcblx0XHRcdC8vIExhdW5jaCB0aGUgc3VydmV5XHJcblx0XHRcdHRoaXMuYWN0aXZhdGVTdXJ2ZXkoc3VydmV5LCBnb3Zlcm5lZENoYW5uZWxUeXBlLCBjb250ZXh0SW5mbyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBJZiB0aGVyZSBpcyBvbmx5IG9uZSBzdXJ2ZXksIHdoaWNoIGlzIHRoZSBjdXJyZW50IG9uZSBpbiBwcm9jZXNzLCBjbGVhciBxdWV1ZSBhbmQgcmV0dXJuXHJcblx0XHRpZiAodGhpcy5zdGFsZVRyaWdnZXJlZFN1cnZleXNRdWV1ZS5sZW5ndGggPD0gMSkge1xyXG5cdFx0XHR0aGlzLnN0YWxlVHJpZ2dlcmVkU3VydmV5c1F1ZXVlID0gW107XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBSZW1vdmUgdGhlIGZpcnN0IGFjdGl2YXRlZCBzdXJ2ZXkgZnJvbSB0aGUgbGlzdCB3aGljaCBpcyB0aGUgY3VycmVudCBvbmUgaW4gcHJvY2Vzc1xyXG5cdFx0dGhpcy5zdGFsZVRyaWdnZXJlZFN1cnZleXNRdWV1ZS5zaGlmdCgpO1xyXG5cclxuXHRcdC8vIFBsYXliYWNrIHRoZSBuZXh0IGFjdGl2YXRlZCBzdXJ2ZXkgaW4gd2FpdGluZ1xyXG5cdFx0dGhpcy5jaGVja1RyaWdnZXJNZXRBcGlzQW5kQWN0aXZhdGVTdXJ2ZXkodGhpcy5zdGFsZVRyaWdnZXJlZFN1cnZleXNRdWV1ZVswXSwgZ292ZXJuZWRDaGFubmVsVHlwZSwgY29udGV4dEluZm8pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWFkU3RyaW5nKGZpbGVUeXBlOiBGaWxlVHlwZSk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdG9yYWdlLnJlYWQoZmlsZVR5cGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSB3cml0ZVN0cmluZyhmaWxlVHlwZTogRmlsZVR5cGUsIHN0cjogc3RyaW5nKTogdm9pZCB7XHJcblx0XHR0aGlzLnN0b3JhZ2Uud3JpdGUoZmlsZVR5cGUsIHN0cik7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGxhdW5jaExhdW5jaGVyKHN1cnZleTogSVN1cnZleSwgY29udGV4dEluZm86IElDb250ZXh0RGF0YVtdKTogdm9pZCB7XHJcblx0XHRjb25zdCBsYXVuY2hlcjogSVN1cnZleUxhdW5jaGVyID0gdGhpcy5sYXVuY2hlckZhY3RvcnkubWFrZVN1cnZleUxhdW5jaGVyKHN1cnZleSk7XHJcblx0XHRpZiAobGF1bmNoZXIpIHtcclxuXHRcdFx0dGhpcy5sYXVuY2hlZExhdW5jaGVycy5wdXNoKGxhdW5jaGVyKTtcclxuXHRcdFx0dGhpcy5vblN1cnZleUFjdGl2YXRlZENhbGxiYWNrLm9uU3VydmV5QWN0aXZhdGVkKGxhdW5jaGVyLCBzdXJ2ZXksIHsgY29udGV4dEluZm8gfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNsZWFyU3VydmV5V2l0aENoYW5uZWwoZ292ZXJuZWRDaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSkge1xyXG5cdFx0Y29uc3QgYWN0aXZlU3VydmV5czogSURpY3Rpb25hcnk8SVN1cnZleT4gPSB7fTtcclxuXHJcblx0XHQvLyBHZXQgYWxsIHRoZSBjYW5kaWRhdGUgc3VydmV5cycgY2FtcGFpZ24gZGVmaW5pdGlvbiBJRHNcclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2FuZGlkYXRlU3VydmV5cykge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuY2FuZGlkYXRlU3VydmV5cywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IGNhbmRpZGF0ZVN1cnZleTogSVN1cnZleSA9IHRoaXMuY2FuZGlkYXRlU3VydmV5c1trZXldO1xyXG5cdFx0XHRcdGlmIChjYW5kaWRhdGVTdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldEdvdmVybmVkQ2hhbm5lbFR5cGUoKSAhPT0gZ292ZXJuZWRDaGFubmVsVHlwZSkge1xyXG5cdFx0XHRcdFx0YWN0aXZlU3VydmV5c1trZXldID0gY2FuZGlkYXRlU3VydmV5O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuY2FuZGlkYXRlU3VydmV5cyA9IGFjdGl2ZVN1cnZleXM7XHJcblx0XHR0aGlzLmFjdGl2aXR5TGlzdGVuZXIuVXBkYXRlQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0cyh0aGlzLmNhbmRpZGF0ZVN1cnZleXMpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBjcmVhdGVHb3J2ZXJuYW5jZVJlc3BvbnNlVGVsZW1ldHJ5KHNlcnZpY2VSZXN1bHQ6IElHb3Zlcm5hbmNlU2VydmljZVJlc3VsdCwgY2FtcGFpZ25JZDogc3RyaW5nKSB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRDYW1wYWlnbklkOiBjYW1wYWlnbklkLFxyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmVTdGF0dXM6IHRoaXMuaW5pdGlhbGl6YXRpb25TdGF0dXMudG9TdHJpbmcoKSxcclxuXHRcdFx0R292ZXJuYW5jZVNlcnZpY2VSZXN1bHQ6IHNlcnZpY2VSZXN1bHQsXHJcblx0XHRcdFN0YWxlVHJpZ2dlcmVkU3VydmV5c1F1ZXVlQ291bnQ6IHRoaXMuc3RhbGVUcmlnZ2VyZWRTdXJ2ZXlzUXVldWUubGVuZ3RoIC0gMSxcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHB1dFN1cnZleU9uQ29vbGRvd24oc3VydmV5OiBJU3VydmV5LCBzZXJ2aWNlUmVzdWx0OiBJR292ZXJuYW5jZVNlcnZpY2VSZXN1bHQpOiB2b2lkIHtcclxuXHRcdC8vIFNldCB0aGUgU3VydmV5IG9uIGNvb2xkb3duIGZyb20gdGhlIHZhbHVlIHJldHVybmVkIGZyb20gdGhlIHNlcnZpY2VcclxuXHRcdHRoaXMuc3VydmV5Q2xpZW50Lm1vZGlmeUNhbXBhaWduU3VydmV5VGFrZW5EYXRlKFxyXG5cdFx0XHRzdXJ2ZXkuZ2V0Q2FtcGFpZ25JZCgpLFxyXG5cdFx0XHRzZXJ2aWNlUmVzdWx0Lmxhc3RUcmlnZ2VyU3VydmV5Lmxhc3RUcmlnZ2VyU2FtZUNhbXBhaWduVGltZSxcclxuXHRcdFx0dHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHF1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luYyhcclxuXHRcdHN1cnZleTogSVN1cnZleSxcclxuXHRcdHN1cnZleUxldmVsQ29vbGRvd246IG51bWJlcixcclxuXHRcdGNoYW5uZWw6IEdvdmVybmVkQ2hhbm5lbFR5cGUpOiBQcm9taXNlPElHb3Zlcm5hbmNlRGVjaXNpb24+IHtcclxuXHRcdGNvbnN0IGlzTG9hZGluZ1N1cnZleUNkblJlcXVpcmVkID0gaXNUcmFuc2xhdGlvblJlcXVpcmVkKHN1cnZleSwgdGhpcy5mbG9vZGdhdGVFbmdpbmVDb25maWcubG9jYWxlKTtcclxuXHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZUVuZ2luZS5RdWVyeVRyaWdnZXJNZXRBcGlzQXN5bmMuUXVlcnlUcmlnZ2VyTWV0QXBpc0FzeW5jLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0TWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xyXG5cdFx0XHRcdFx0Y2hhbm5lbCxcclxuXHRcdFx0XHRcdElzTG9hZGluZ1N1cnZleUNkblJlcXVpcmVkOiBpc0xvYWRpbmdTdXJ2ZXlDZG5SZXF1aXJlZCxcclxuXHRcdFx0XHRcdEdvdlNlcnZpY2VFbmFibGVkOiB0aGlzLm9yY2hlc3RyYXRpb25FbmdpbmUuaXNDaGFubmVsR292ZXJuYW5jZUVuYWJsZWQoY2hhbm5lbCksXHJcblx0XHRcdFx0XHRGbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnRFbmFibGVkOiB0aGlzLmZsb29kZ2F0ZUVuZ2luZUNvbmZpZy51aVN0cmluZ3NDZG5FbmFibGVkXHJcblx0XHRcdFx0fSksXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdGNvbnN0IGdvdmVybmFuY2VQYXJhbXM6IElHb3Zlcm5hbmNlUGFyYW1ldGVycyA9IHtcclxuXHRcdFx0Y2FtcGFpZ25JZDogc3VydmV5LmdldENhbXBhaWduSWQoKSxcclxuXHRcdFx0c3VydmV5SWQ6IHN1cnZleS5nZXRTdXJ2ZXlJbmZvKCkuZ2V0SWQoKSxcclxuXHRcdFx0c3VydmV5VHlwZTogc3VydmV5LmdldFR5cGUoKSxcclxuXHRcdFx0Y2hhbm5lbFR5cGU6IGNoYW5uZWwsXHJcblx0XHRcdGxhdW5jaGVyVHlwZTogc3VydmV5LmdldExhdW5jaGVyVHlwZSgpLFxyXG5cdFx0XHRtYXhMYXVuY2hlczogc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRNYXhMYXVuY2hlcygpLFxyXG5cdFx0XHRjYW1wYWlnbkNvb2xkb3duOiBzdXJ2ZXlMZXZlbENvb2xkb3duLFxyXG5cdFx0XHR1c2VyQ29vbGRvd246IC0xLFxyXG5cdFx0XHRwZXJzb25hbGl6ZXJFbmFibGVkOiBmYWxzZVxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBidXNpbmVzc0xldmVsID0gc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRCdXNpbmVzc0xldmVsKCkgYXMgdW5rbm93biBhcyBDYW1wYWlnbkJ1c2luZXNzTGV2ZWw7XHJcblxyXG5cdFx0aWYgKGlzTG9hZGluZ1N1cnZleUNkblJlcXVpcmVkICYmIHRoaXMuZmxvb2RnYXRlRW5naW5lQ29uZmlnLnVpU3RyaW5nc0NkbkVuYWJsZWQpIHtcclxuXHRcdFx0Y29uc3QgY2RuU2ltcGxlUmVxdWVzdEVuYWJsZWQgPSBnZXRGZWF0dXJlR2F0ZVByb3ZpZGVyKCk/LmdldEJvb2xGZWF0dXJlU3RhdHVzKFwiQ2RuU2ltcGxlUmVxdWVzdEVuYWJsZWRcIiwgZmFsc2UpO1xyXG5cdFx0XHRjb25zdCBmbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQgPSBuZXcgRmxvb2RnYXRlU3VydmV5Q2RuQ2xpZW50KHRoaXMuZmxvb2RnYXRlRW5naW5lQ29uZmlnLnVpU3RyaW5nc0xvYWRpbmdUaW1lb3V0LFxyXG5cdFx0XHRcdHRoaXMuZmxvb2RnYXRlRW5naW5lQ29uZmlnLnVpU3RyaW5nQ2RuUmV0cnlMaW1pdCwgY2RuU2ltcGxlUmVxdWVzdEVuYWJsZWQpO1xyXG5cdFx0XHRpZiAodGhpcy5mbG9vZGdhdGVFbmdpbmVDb25maWcuc2hvdWxkRmV0Y2hTdXJ2ZXlDZG5Db25jdXJyZW50bHkpIHtcclxuXHRcdFx0XHRjb25zdCBsb2FkQ2RuUHJvbWlzZSA9IGZsb29kZ2F0ZVN1cnZleUNkbkNsaWVudC5sb2FkQ2RuU3RyaW5nUmVzb3VyY2Uoc3VydmV5LCB0aGlzLmZsb29kZ2F0ZUVuZ2luZUNvbmZpZy5sb2NhbGUpO1xyXG5cdFx0XHRcdGNvbnN0IGNoZWNrUGVybWlzc2lvbiA9IHRoaXMuZ2V0R292ZXJuYW5jZURlY2lzaW9uKGJ1c2luZXNzTGV2ZWwsIGdvdmVybmFuY2VQYXJhbXMpO1xyXG5cdFx0XHRcdGNvbnN0IFtjZG5Mb2FkUmVzdWx0LCBtb3BSZXN1bHRdID0gYXdhaXQgUHJvbWlzZS5hbGwoW2xvYWRDZG5Qcm9taXNlLCBjaGVja1Blcm1pc3Npb25dKTtcclxuXHRcdFx0XHQvLyBpZiBTdXJ2ZXlDRE4gaXMgZmFpbGVkLCByZXR1cm4gZmFsc2Ugbm8gbmVlZCB0byBjaGVjayBmb3IgTU9QIHJlc3VsdFxyXG5cdFx0XHRcdGlmICghY2RuTG9hZFJlc3VsdCkge1xyXG5cdFx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlRW5naW5lLlF1ZXJ5VHJpZ2dlck1ldEFwaXNBc3luYy5TdXJ2ZXlDZG5GYWlsdXJlQ29uY3VycmVudGx5LFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0TWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xyXG5cdFx0XHRcdFx0XHRcdFx0Y2RuTG9hZFJlc3VsdCxcclxuXHRcdFx0XHRcdFx0XHRcdG1vcFJlc3VsdFxyXG5cdFx0XHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0XHRcdGdvdmVybmFuY2VEZWNpc2lvbjogR292ZXJuYW5jZURlY2lzaW9uLlJlamVjdGVkXHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gbW9wUmVzdWx0O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGNvbnN0IGNkbkxvYWRSZXN1bHQgPSBhd2FpdCBmbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQubG9hZENkblN0cmluZ1Jlc291cmNlKHN1cnZleSwgdGhpcy5mbG9vZGdhdGVFbmdpbmVDb25maWcubG9jYWxlKTtcclxuXHRcdFx0XHQvLyBpZiBTdXJ2ZXlDRE4gaXMgZmFpbGVkLCByZXR1cm4gcmlnaHQgYXdheSwgbm8gbmVlZCB0byBjYWxsIE1PUCBhbnltb3JlXHJcblx0XHRcdFx0aWYgKCFjZG5Mb2FkUmVzdWx0KSB7XHJcblx0XHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVFbmdpbmUuUXVlcnlUcmlnZ2VyTWV0QXBpc0FzeW5jLlN1cnZleUNkbkZhaWx1cmVTZXF1ZW50aWFsbHksXHJcblx0XHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0XHRNZXNzYWdlOiBKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0XHRcdFx0XHRjZG5Mb2FkUmVzdWx0XHJcblx0XHRcdFx0XHRcdFx0fSksXHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRcdFx0Z292ZXJuYW5jZURlY2lzaW9uOiBHb3Zlcm5hbmNlRGVjaXNpb24uUmVqZWN0ZWRcclxuXHRcdFx0XHRcdH07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBhd2FpdCB0aGlzLmdldEdvdmVybmFuY2VEZWNpc2lvbihidXNpbmVzc0xldmVsLCBnb3Zlcm5hbmNlUGFyYW1zKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gQ3VycmVudCBiZWhhdmlvclxyXG5cdFx0XHRyZXR1cm4gdGhpcy5nZXRHb3Zlcm5hbmNlRGVjaXNpb24oYnVzaW5lc3NMZXZlbCwgZ292ZXJuYW5jZVBhcmFtcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIGdldEdvdmVybmFuY2VEZWNpc2lvbihidXNpbmVzc0xldmVsOiBDYW1wYWlnbkJ1c2luZXNzTGV2ZWwsIGdvdmVybmFuY2VQYXJhbXM6IElHb3Zlcm5hbmNlUGFyYW1ldGVycyk6IFByb21pc2U8SUdvdmVybmFuY2VEZWNpc2lvbj4ge1xyXG5cdFx0aWYgKHRoaXMucGVyc29uYWxpemVyQ2xpZW50KSB7XHJcblx0XHRcdGNvbnN0IGlzRW5hYmxlZCA9IHRoaXMucGVyc29uYWxpemVyQ2xpZW50LmlzRW5hYmxlZChnb3Zlcm5hbmNlUGFyYW1zLnN1cnZleVR5cGUsIGdvdmVybmFuY2VQYXJhbXMubGF1bmNoZXJUeXBlLCBnb3Zlcm5hbmNlUGFyYW1zLmNoYW5uZWxUeXBlKTtcclxuXHRcdFx0Z292ZXJuYW5jZVBhcmFtcy5wZXJzb25hbGl6ZXJFbmFibGVkID0gaXNFbmFibGVkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGdvdmVybmFuY2VEZWNpc2lvbiA9IGF3YWl0IHRoaXMub3JjaGVzdHJhdGlvbkVuZ2luZS5nZXREZWNpc2lvbihidXNpbmVzc0xldmVsLCBnb3Zlcm5hbmNlUGFyYW1zKTtcclxuXHRcdGlmIChnb3Zlcm5hbmNlRGVjaXNpb24gJiYgdGhpcy5wZXJzb25hbGl6ZXJDbGllbnQpIHtcclxuXHRcdFx0dGhpcy5wZXJzb25hbGl6ZXJDbGllbnQub25Hb3Zlcm5hbmNlU2VydmljZVJlc3VsdChnb3Zlcm5hbmNlUGFyYW1zLCBnb3Zlcm5hbmNlRGVjaXNpb24uc2VydmljZVJlc3VsdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGdvdmVybmFuY2VEZWNpc2lvbjtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/FloodgateEngine.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/FloodgateSettings.js": /*!******************************************************!*\ !*** ../FloodgateCore/dist/src/FloodgateSettings.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FloodgateSettings = void 0;\n/**\n * General floodgate settings\n */\nvar FloodgateSettings = /** @class */ (function () {\n function FloodgateSettings() {\n }\n /**\n * Convert to Json\n */\n FloodgateSettings.toJson = function (object) {\n return JSON.stringify(object);\n };\n /**\n * Load from Json\n */\n FloodgateSettings.fromJson = function (json) {\n return JSON.parse(json);\n };\n return FloodgateSettings;\n}());\nexports.FloodgateSettings = FloodgateSettings;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0Zsb29kZ2F0ZVNldHRpbmdzLnRzPzRmMjUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSDtJQUFBO0lBY0EsQ0FBQztJQWJBOztPQUVHO0lBQ1csd0JBQU0sR0FBcEIsVUFBcUIsTUFBeUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNXLDBCQUFRLEdBQXRCLFVBQXVCLElBQVk7UUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRix3QkFBQztBQUFELENBQUM7QUFkWSw4Q0FBaUIiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9GbG9vZGdhdGVTZXR0aW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBHZW5lcmFsIGZsb29kZ2F0ZSBzZXR0aW5nc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEZsb29kZ2F0ZVNldHRpbmdzIHtcclxuXHQvKipcclxuXHQgKiBDb252ZXJ0IHRvIEpzb25cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljIHRvSnNvbihvYmplY3Q6IEZsb29kZ2F0ZVNldHRpbmdzKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9hZCBmcm9tIEpzb25cclxuXHQgKi9cclxuXHRwdWJsaWMgc3RhdGljIGZyb21Kc29uKGpzb246IHN0cmluZyk6IEZsb29kZ2F0ZVNldHRpbmdzIHtcclxuXHRcdHJldHVybiBKU09OLnBhcnNlKGpzb24pO1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/FloodgateSettings.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/FloodgateSurveyCdn/FloodgateSurveyCdnClient.js": /*!********************************************************************************!*\ !*** ../FloodgateCore/dist/src/FloodgateSurveyCdn/FloodgateSurveyCdnClient.js ***! \********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n/**\n * Implementation of IFloodgateStringProvider for Web SDK\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(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))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isTranslationRequired = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Utils_1 = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar HttpTransport_1 = __webpack_require__(/*! ../Transport/HttpTransport */ \"../FloodgateCore/dist/src/Transport/HttpTransport.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nfunction isTranslationRequired(survey, locale) {\n var _a;\n var currentLocale = (locale === null || locale === void 0 ? void 0 : locale.toLowerCase()) || 'en-us';\n return ((_a = survey.getUxSchema()) === null || _a === void 0 ? void 0 : _a.uiStringsUrl) &&\n (currentLocale != 'en-us' && currentLocale != 'en');\n}\nexports.isTranslationRequired = isTranslationRequired;\n/**\n * This class is the client to query the CDN from the given survey UxSchema if required\n * The survey UxSchema will be translated into the given locale\n */\nvar FloodgateSurveyCdnClient = /** @class */ (function () {\n function FloodgateSurveyCdnClient(uiStringsLoadingTimeout, retryLimit, simpleRequestEnabled) {\n if (simpleRequestEnabled === void 0) { simpleRequestEnabled = false; }\n this.timeout = uiStringsLoadingTimeout;\n this.retryLimit = retryLimit;\n this.simpleRequestEnabled = simpleRequestEnabled;\n }\n /**\n * The function to translate the given survey UxSchema into the given locale\n * If the CDN is failed or UxSchema is failed in translation, the UxSchema will be reset to null\n * In case of failure, it can possible returns success if the legacy Content is valid.\n * @returns true if success. Otherwise, false.\n */\n FloodgateSurveyCdnClient.prototype.loadCdnStringResource = function (survey, locale) {\n return __awaiter(this, void 0, void 0, function () {\n var requestUrl, httpTransport, success, response, serviceCallTime, timeBefore, responseText, jsonResponse, e_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n requestUrl = survey.getUxSchema().uiStringsUrl + locale + \"/strings.json\";\n httpTransport = new HttpTransport_1.HttpTransport();\n success = false;\n // Survey CDN is not enabled, assume it's good\n if (!isTranslationRequired(survey, locale)) {\n return [2 /*return*/, true];\n }\n _a.label = 1;\n case 1:\n _a.trys.push([1, 7, , 8]);\n timeBefore = performance.now();\n return [4 /*yield*/, httpTransport.getRequestWithRetry(requestUrl, this.retryLimit, this.timeout, this.simpleRequestEnabled)];\n case 2:\n response = _a.sent();\n serviceCallTime = performance.now() - timeBefore;\n if (!response.ok) return [3 /*break*/, 5];\n return [4 /*yield*/, response.text()];\n case 3:\n responseText = _a.sent();\n // Log the successful post criteria with time\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateSurveyCdnClient.loadCdnStringResource.Request_Success, {\n TimeMilliseconds: serviceCallTime,\n CampaignId: survey.getCampaignId(),\n SurveyId: survey.getSurveyInfo().getId(),\n Message: JSON.stringify({\n RequestUrl: requestUrl,\n HttpStatusCode: response.status,\n HttpStatusText: response.statusText,\n SimpleRequestEnabled: this.simpleRequestEnabled,\n }),\n });\n jsonResponse = JSON.parse(responseText);\n // Translating the UxSchema\n // This function should throw error if there is any issue\n return [4 /*yield*/, this.translateSurveyUxSchema(survey, jsonResponse)];\n case 4:\n // Translating the UxSchema\n // This function should throw error if there is any issue\n _a.sent();\n success = true;\n return [3 /*break*/, 6];\n case 5:\n // Log the error with response\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateSurveyCdnClient.loadCdnStringResource.Request_Failed, {\n TimeMilliseconds: serviceCallTime,\n CampaignId: survey.getCampaignId(),\n SurveyId: survey.getSurveyInfo().getId(),\n Message: JSON.stringify({\n RequestUrl: requestUrl,\n HttpStatusCode: response.status,\n HttpStatusText: response.statusText,\n SimpleRequestEnabled: this.simpleRequestEnabled,\n }),\n });\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n e_1 = _a.sent();\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateSurveyCdnClient.loadCdnStringResource.Exception, {\n ErrorMessage: e_1 && e_1.toString(),\n CampaignId: survey.getCampaignId(),\n SurveyId: survey.getSurveyInfo().getId(),\n Message: JSON.stringify({\n RequestUrl: requestUrl,\n HttpStatusCode: response === null || response === void 0 ? void 0 : response.status,\n HttpStatusText: response === null || response === void 0 ? void 0 : response.statusText,\n SimpleRequestEnabled: this.simpleRequestEnabled,\n }),\n });\n return [3 /*break*/, 8];\n case 8:\n // In case of failure, we allow fallback if there is valid Content\n if (!success) {\n // Set the UxSchema to null so we fallback to Content\n survey.setUxSchema(null);\n if (survey.isContentValid()) {\n success = true;\n }\n }\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FloodgateSurveyCdnClient.loadCdnStringResource.Completed, {\n CampaignId: survey.getCampaignId(),\n SurveyId: survey.getSurveyInfo().getId(),\n Message: JSON.stringify({\n Success: success,\n IsContentValid: survey.isContentValid(),\n IsUxSchemaPresent: !Utils_1.isNOU(survey.getUxSchema())\n }),\n });\n return [2 /*return*/, success];\n }\n });\n });\n };\n /**\n * This function translates the given uxSchema in the parameter\n * This is destructive function since it will create a new translated UxSchema and set the new one to given survey.\n * However, the original UxSchema won't be changed and stay the same with orginal strings.\n * Important note: the original UxSchema is shallow copied from Campaign Definition, so any change to it will affect the original\n * Campaign Definition as well. Therefore, we should not changing the UxSchema if not needed.\n * If there is issue in translation, it will throw Error\n * @param survey survey with UxSchema to be translated\n * @param uiStringMap dictionary contains locale strings\n */\n FloodgateSurveyCdnClient.prototype.translateSurveyUxSchema = function (survey, uiStringMap) {\n return __awaiter(this, void 0, void 0, function () {\n var uxSchema, promiseList, errorList, translatedResult, _loop_1, this_1, index, translatedRules, indexRule, rule, translatedRule, _loop_2, this_2, index;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n uxSchema = survey.getUxSchema();\n promiseList = [];\n errorList = [];\n translatedResult = __assign({}, uxSchema);\n translatedResult.pages = __spreadArrays(uxSchema.pages);\n _loop_1 = function (index) {\n promiseList.push(this_1.translatePage(uiStringMap, uxSchema.pages[index], \"page.\" + index, errorList)\n .then(function (result) {\n translatedResult.pages[index] = result;\n }));\n };\n this_1 = this;\n // translate the pages\n for (index = 0; index < uxSchema.pages.length; index++) {\n _loop_1(index);\n }\n // translate the branching rule if possible\n if (uxSchema.branchingRules && uxSchema.branchingRules.length > 0) {\n translatedRules = translatedResult.branchingRules = [];\n for (indexRule = 0; indexRule < uxSchema.branchingRules.length; indexRule++) {\n rule = uxSchema.branchingRules[indexRule];\n translatedRule = {\n conditions: rule.conditions,\n targets: __spreadArrays(rule.targets)\n };\n translatedRules.push(translatedRule);\n // Translate the targets if possible\n if (rule.targets && rule.targets.length > 0) {\n _loop_2 = function (index) {\n var target = rule.targets[index];\n // translate the TargetOverride if possible\n if (target.type === floodgate_shared_typings_1.BranchingTargetType.Override) {\n // Using spread copy to create a new `target` reference\n // then we can deep copy the inner fields as neccesary without changing the original object\n // Any other fields that we don't modify, they can be reused by spread copy\n var translatedTarget_1 = __assign({}, target);\n translatedRule.targets[index] = translatedTarget_1;\n var overrideTargetQuestion = uxSchema.pages[target.targetPageIndex].questions.find(function (question) {\n return question.id === target.targetOverrideId;\n });\n promiseList.push(this_2.translateQuestion(uiStringMap, target.overrideProperties, overrideTargetQuestion.type, \"branchingRules.\" + indexRule + \".targets.\" + index, errorList)\n .then(function (result) {\n translatedTarget_1.overrideProperties = result;\n }));\n }\n };\n this_2 = this;\n for (index = 0; index < rule.targets.length; index++) {\n _loop_2(index);\n }\n }\n }\n }\n return [4 /*yield*/, Promise.all(promiseList)];\n case 1:\n _a.sent();\n if (errorList.length > 0) {\n throw new Error(JSON.stringify(errorList));\n }\n // Finally, set the new translated schema\n survey.setUxSchema(translatedResult);\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Translate the given page, and putting error into errorList if there is any\n */\n FloodgateSurveyCdnClient.prototype.translatePage = function (uiStringMap, schemaPage, pageKey, errorList) {\n var promiseList = [];\n var translatedResult = __assign({}, schemaPage);\n // Using spread copy to create a new `questions` reference\n // then we can deep copy the inner fields as neccesary without changing the original object\n // Any other fields that we don't modify, they can be reused by spread copy\n translatedResult.questions = __spreadArrays(schemaPage.questions);\n // title is optional\n if (schemaPage.title) {\n promiseList.push(this.translateString(uiStringMap, schemaPage.title, pageKey + \".title\", errorList)\n .then(function (result) {\n translatedResult['title'] = result;\n }));\n }\n var _loop_3 = function (index) {\n promiseList.push(this_3.translateQuestion(uiStringMap, schemaPage.questions[index], schemaPage.questions[index].type, pageKey + \".questions.\" + index, errorList)\n .then(function (result) {\n translatedResult.questions[index] = result;\n }));\n };\n var this_3 = this;\n for (var index = 0; index < schemaPage.questions.length; index++) {\n _loop_3(index);\n }\n return Promise.all(promiseList).then(function () { return translatedResult; });\n };\n /**\n * Translate the given string, and putting error into errorList if there is any\n */\n FloodgateSurveyCdnClient.prototype.translateQuestion = function (uiStringMap, translateObject, questionType, questionKey, errorList) {\n var promiseList = [];\n // Using spread copy to create a new object reference\n // then we can deep copy the inner object fields as neccesary without changing the original object\n // Any other fields that we don't modify, they can be reused by spread copy\n var translatedResult = __assign({}, translateObject);\n if (Object.prototype.hasOwnProperty.call(translateObject, \"questionLabel\")) {\n promiseList.push(this.translateString(uiStringMap, translateObject.questionLabel, questionKey + \".questionLabel\", errorList)\n .then(function (result) {\n translatedResult['questionLabel'] = result;\n }));\n }\n switch (questionType) {\n case floodgate_shared_typings_1.QuestionType.MultipleChoice:\n case floodgate_shared_typings_1.QuestionType.SingleSelect: {\n if (Object.prototype.hasOwnProperty.call(translateObject, \"availableOptions\")) {\n promiseList.push(this.translateStringArray(uiStringMap, translateObject[\"availableOptions\"], questionKey + \".availableOptions\", errorList)\n .then(function (result) {\n translatedResult['availableOptions'] = result;\n }));\n }\n break;\n }\n case floodgate_shared_typings_1.QuestionType.Rating: {\n if (Object.prototype.hasOwnProperty.call(translateObject, \"ratingValues\")) {\n promiseList.push(this.translateStringArray(uiStringMap, translateObject[\"ratingValues\"], questionKey + \".ratingValues\", errorList)\n .then(function (result) {\n translatedResult['ratingValues'] = result;\n }));\n }\n if (Object.prototype.hasOwnProperty.call(translateObject, \"leftLegendValue\")) {\n promiseList.push(this.translateString(uiStringMap, translateObject[\"leftLegendValue\"], questionKey + \".leftLegendValue\", errorList)\n .then(function (result) {\n translatedResult[\"leftLegendValue\"] = result;\n }));\n }\n if (Object.prototype.hasOwnProperty.call(translateObject, \"rightLegendValue\")) {\n promiseList.push(this.translateString(uiStringMap, translateObject[\"rightLegendValue\"], questionKey + \".rightLegendValue\", errorList)\n .then(function (result) {\n translatedResult[\"rightLegendValue\"] = result;\n }));\n }\n break;\n }\n case floodgate_shared_typings_1.QuestionType.Likert: {\n if (Object.prototype.hasOwnProperty.call(translateObject, \"verticalOptions\")) {\n promiseList.push(this.translateStringArray(uiStringMap, translateObject[\"verticalOptions\"], questionKey + \".verticalOptions\", errorList)\n .then(function (result) {\n translatedResult['verticalOptions'] = result;\n }));\n }\n if (Object.prototype.hasOwnProperty.call(translateObject, \"horizontalStatements\")) {\n promiseList.push(this.translateStringArray(uiStringMap, translateObject[\"horizontalStatements\"], questionKey + \".horizontalStatements\", errorList)\n .then(function (result) {\n translatedResult['horizontalStatements'] = result;\n }));\n }\n break;\n }\n case floodgate_shared_typings_1.QuestionType.Comment:\n case floodgate_shared_typings_1.QuestionType.Label:\n // Nothing special for Comment, Label question\n break;\n default:\n // unknown type\n errorList.push(questionKey + \".questionType is unknown.\");\n break;\n }\n return Promise.all(promiseList).then(function () { return translatedResult; });\n };\n /**\n * Translate the given string array, and putting error into errorList if there is any\n */\n FloodgateSurveyCdnClient.prototype.translateStringArray = function (uiStringMap, stringArray, keyArray, errorList) {\n var promiseList = [];\n for (var index = 0; index < stringArray.length; index++) {\n promiseList.push(this.translateString(uiStringMap, stringArray[index], keyArray + \".\" + index, errorList));\n }\n return Promise.all(promiseList).then(function (result) { return result; });\n };\n /**\n * Translate the given string, and putting error into errorList if there is any\n * @returns empty string if failure. Otherwise, return locale string on success.\n */\n FloodgateSurveyCdnClient.prototype.translateString = function (uiStringMap, translatedString, keyString, errorList) {\n // reject is not used here to prevent the Promise.all to fail fast \n return new Promise(function (resolve, _reject) {\n if (Object.prototype.hasOwnProperty.call(uiStringMap, translatedString)) {\n resolve(uiStringMap[translatedString]);\n }\n else {\n errorList.push(\"'\" + keyString + \": \" + translatedString + \"' does not exist in the strings map.\");\n resolve('');\n }\n });\n };\n return FloodgateSurveyCdnClient;\n}());\nexports.default = FloodgateSurveyCdnClient;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0Zsb29kZ2F0ZVN1cnZleUNkbi9GbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQudHM/ZmI1MiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVILDZLQVUwQztBQUMxQyx3RkFBaUM7QUFDakMsb0lBQTJEO0FBQzNELHNIQUFxRDtBQUNyRCxvR0FBOEM7QUFNOUMsU0FBZ0IscUJBQXFCLENBQUMsTUFBbUIsRUFBRSxNQUFjOztJQUN4RSxJQUFNLGFBQWEsR0FBRyxPQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsV0FBVyxPQUFNLE9BQU8sQ0FBQztJQUN2RCxPQUFPLGFBQU0sQ0FBQyxXQUFXLEVBQUUsMENBQUUsWUFBWTtRQUN4QyxDQUFDLGFBQWEsSUFBSSxPQUFPLElBQUksYUFBYSxJQUFJLElBQUksQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFKRCxzREFJQztBQUVEOzs7R0FHRztBQUNIO0lBS0Msa0NBQVksdUJBQStCLEVBQUUsVUFBa0IsRUFBRSxvQkFBNEI7UUFBNUIsbUVBQTRCO1FBQzVGLElBQUksQ0FBQyxPQUFPLEdBQUcsdUJBQXVCLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLG9CQUFvQixDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNVLHdEQUFxQixHQUFsQyxVQUFtQyxNQUFtQixFQUFFLE1BQWM7Ozs7Ozt3QkFDL0QsVUFBVSxHQUFXLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxZQUFZLEdBQUcsTUFBTSxHQUFHLGVBQWUsQ0FBQzt3QkFDbEYsYUFBYSxHQUFHLElBQUksNkJBQWEsRUFBRSxDQUFDO3dCQUN0QyxPQUFPLEdBQUcsS0FBSyxDQUFDO3dCQUlwQiw4Q0FBOEM7d0JBQzlDLElBQUks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LGdCQUFnQix5Q0FBc0MsQ0FBQyxDQUFDO2dCQUN6RixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDWjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNGLCtCQUFDO0FBQUQsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0Zsb29kZ2F0ZVN1cnZleUNkbi9GbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyIGZvciBXZWIgU0RLXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtcclxuXHRBcGksXHJcblx0QnJhbmNoaW5nUnVsZSxcclxuXHRCcmFuY2hpbmdUYXJnZXRPdmVycmlkZSxcclxuXHRCcmFuY2hpbmdUYXJnZXRUeXBlLFxyXG5cdElVeFNjaGVtYSxcclxuXHRJVXhTY2hlbWFQYWdlLFxyXG5cdE92ZXJyaWRlUHJvcGVydGllc1R5cGUsXHJcblx0UXVlc3Rpb24sXHJcblx0UXVlc3Rpb25UeXBlXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IGlzTk9VIH0gZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCB7IEh0dHBUcmFuc3BvcnQgfSBmcm9tIFwiLi4vVHJhbnNwb3J0L0h0dHBUcmFuc3BvcnRcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4uL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuLi9Db25zdGFudHNcIjtcclxuXHJcbmludGVyZmFjZSBVaVN0cmluZ3NNYXAge1xyXG5cdFtrZXk6c3RyaW5nXTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1RyYW5zbGF0aW9uUmVxdWlyZWQoc3VydmV5OiBBcGkuSVN1cnZleSwgbG9jYWxlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRjb25zdCBjdXJyZW50TG9jYWxlID0gbG9jYWxlPy50b0xvd2VyQ2FzZSgpIHx8ICdlbi11cyc7XHJcblx0cmV0dXJuIHN1cnZleS5nZXRVeFNjaGVtYSgpPy51aVN0cmluZ3NVcmwgJiYgXHJcblx0XHQoY3VycmVudExvY2FsZSAhPSAnZW4tdXMnICYmIGN1cnJlbnRMb2NhbGUgIT0gJ2VuJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIGlzIHRoZSBjbGllbnQgdG8gcXVlcnkgdGhlIENETiBmcm9tIHRoZSBnaXZlbiBzdXJ2ZXkgVXhTY2hlbWEgaWYgcmVxdWlyZWRcclxuICogVGhlIHN1cnZleSBVeFNjaGVtYSB3aWxsIGJlIHRyYW5zbGF0ZWQgaW50byB0aGUgZ2l2ZW4gbG9jYWxlXHJcbiAqL1xyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBGbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQge1xyXG5cdHB1YmxpYyB0aW1lb3V0OiBudW1iZXI7XHJcblx0cHVibGljIHJldHJ5TGltaXQ6IG51bWJlcjtcclxuXHRwdWJsaWMgc2ltcGxlUmVxdWVzdEVuYWJsZWQ6IGJvb2xlYW47XHJcblx0XHJcblx0Y29uc3RydWN0b3IodWlTdHJpbmdzTG9hZGluZ1RpbWVvdXQ6IG51bWJlciwgcmV0cnlMaW1pdDogbnVtYmVyLCBzaW1wbGVSZXF1ZXN0RW5hYmxlZCA9IGZhbHNlKSB7XHJcblx0XHR0aGlzLnRpbWVvdXQgPSB1aVN0cmluZ3NMb2FkaW5nVGltZW91dDtcclxuXHRcdHRoaXMucmV0cnlMaW1pdCA9IHJldHJ5TGltaXQ7XHJcblx0XHR0aGlzLnNpbXBsZVJlcXVlc3RFbmFibGVkID0gc2ltcGxlUmVxdWVzdEVuYWJsZWQ7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgZnVuY3Rpb24gdG8gdHJhbnNsYXRlIHRoZSBnaXZlbiBzdXJ2ZXkgVXhTY2hlbWEgaW50byB0aGUgZ2l2ZW4gbG9jYWxlXHJcblx0ICogSWYgdGhlIENETiBpcyBmYWlsZWQgb3IgVXhTY2hlbWEgaXMgZmFpbGVkIGluIHRyYW5zbGF0aW9uLCB0aGUgVXhTY2hlbWEgd2lsbCBiZSByZXNldCB0byBudWxsXHJcblx0ICogSW4gY2FzZSBvZiBmYWlsdXJlLCBpdCBjYW4gcG9zc2libGUgcmV0dXJucyBzdWNjZXNzIGlmIHRoZSBsZWdhY3kgQ29udGVudCBpcyB2YWxpZC5cclxuXHQgKiBAcmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3MuIE90aGVyd2lzZSwgZmFsc2UuXHJcblx0ICovXHJcblx0cHVibGljIGFzeW5jIGxvYWRDZG5TdHJpbmdSZXNvdXJjZShzdXJ2ZXk6IEFwaS5JU3VydmV5LCBsb2NhbGU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG5cdFx0Y29uc3QgcmVxdWVzdFVybDogc3RyaW5nID0gc3VydmV5LmdldFV4U2NoZW1hKCkudWlTdHJpbmdzVXJsICsgbG9jYWxlICsgXCIvc3RyaW5ncy5qc29uXCI7XHJcblx0XHRjb25zdCBodHRwVHJhbnNwb3J0ID0gbmV3IEh0dHBUcmFuc3BvcnQoKTtcclxuXHRcdGxldCBzdWNjZXNzID0gZmFsc2U7XHJcblx0XHRsZXQgcmVzcG9uc2U6IFJlc3BvbnNlO1xyXG5cdFx0bGV0IHNlcnZpY2VDYWxsVGltZTogbnVtYmVyO1xyXG5cclxuXHRcdC8vIFN1cnZleSBDRE4gaXMgbm90IGVuYWJsZWQsIGFzc3VtZSBpdCdzIGdvb2RcclxuXHRcdGlmICghaXNUcmFuc2xhdGlvblJlcXVpcmVkKHN1cnZleSwgbG9jYWxlKSkge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCB0aW1lQmVmb3JlID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcblx0XHRcdHJlc3BvbnNlID0gYXdhaXQgaHR0cFRyYW5zcG9ydC5nZXRSZXF1ZXN0V2l0aFJldHJ5KHJlcXVlc3RVcmwsIHRoaXMucmV0cnlMaW1pdCwgdGhpcy50aW1lb3V0LCB0aGlzLnNpbXBsZVJlcXVlc3RFbmFibGVkKTtcclxuXHRcdFx0c2VydmljZUNhbGxUaW1lID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aW1lQmVmb3JlO1xyXG5cclxuXHRcdFx0aWYgKHJlc3BvbnNlLm9rKSB7XHJcblx0XHRcdFx0Ly8gR2V0IHRoZSByZXNwb25zZSB0ZXh0XHJcblx0XHRcdFx0Y29uc3QgcmVzcG9uc2VUZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpO1xyXG5cclxuXHRcdFx0XHQvLyBMb2cgdGhlIHN1Y2Nlc3NmdWwgcG9zdCBjcml0ZXJpYSB3aXRoIHRpbWVcclxuXHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZVN1cnZleUNkbkNsaWVudC5sb2FkQ2RuU3RyaW5nUmVzb3VyY2UuUmVxdWVzdF9TdWNjZXNzLFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRUaW1lTWlsbGlzZWNvbmRzOiBzZXJ2aWNlQ2FsbFRpbWUsXHJcblx0XHRcdFx0XHRcdENhbXBhaWduSWQ6IHN1cnZleS5nZXRDYW1wYWlnbklkKCksXHJcblx0XHRcdFx0XHRcdFN1cnZleUlkOiBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCksXHJcblx0XHRcdFx0XHRcdE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHsgXHJcblx0XHRcdFx0XHRcdFx0UmVxdWVzdFVybDogcmVxdWVzdFVybCxcclxuXHRcdFx0XHRcdFx0XHRIdHRwU3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxyXG5cdFx0XHRcdFx0XHRcdEh0dHBTdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG5cdFx0XHRcdFx0XHRcdFNpbXBsZVJlcXVlc3RFbmFibGVkOiB0aGlzLnNpbXBsZVJlcXVlc3RFbmFibGVkLFxyXG5cdFx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdH0pO1xyXG5cclxuXHRcdFx0XHQvLyBQYXJzZSB0aGUgcmVzcG9uc2VcclxuXHRcdFx0XHRjb25zdCBqc29uUmVzcG9uc2U6IFVpU3RyaW5nc01hcCA9IEpTT04ucGFyc2UocmVzcG9uc2VUZXh0KTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQvLyBUcmFuc2xhdGluZyB0aGUgVXhTY2hlbWFcclxuXHRcdFx0XHQvLyBUaGlzIGZ1bmN0aW9uIHNob3VsZCB0aHJvdyBlcnJvciBpZiB0aGVyZSBpcyBhbnkgaXNzdWVcclxuXHRcdFx0XHRhd2FpdCB0aGlzLnRyYW5zbGF0ZVN1cnZleVV4U2NoZW1hKHN1cnZleSwganNvblJlc3BvbnNlKTtcclxuXHJcblx0XHRcdFx0c3VjY2VzcyA9IHRydWU7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Ly8gTG9nIHRoZSBlcnJvciB3aXRoIHJlc3BvbnNlXHJcblx0XHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQubG9hZENkblN0cmluZ1Jlc291cmNlLlJlcXVlc3RfRmFpbGVkLFxyXG5cdFx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0XHRUaW1lTWlsbGlzZWNvbmRzOiBzZXJ2aWNlQ2FsbFRpbWUsXHJcblx0XHRcdFx0XHRcdENhbXBhaWduSWQ6IHN1cnZleS5nZXRDYW1wYWlnbklkKCksXHJcblx0XHRcdFx0XHRcdFN1cnZleUlkOiBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCksXHJcblx0XHRcdFx0XHRcdE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHsgXHJcblx0XHRcdFx0XHRcdFx0UmVxdWVzdFVybDogcmVxdWVzdFVybCxcclxuXHRcdFx0XHRcdFx0XHRIdHRwU3RhdHVzQ29kZTogcmVzcG9uc2Uuc3RhdHVzLFxyXG5cdFx0XHRcdFx0XHRcdEh0dHBTdGF0dXNUZXh0OiByZXNwb25zZS5zdGF0dXNUZXh0LFxyXG5cdFx0XHRcdFx0XHRcdFNpbXBsZVJlcXVlc3RFbmFibGVkOiB0aGlzLnNpbXBsZVJlcXVlc3RFbmFibGVkLFxyXG5cdFx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdC8vIERvbmVcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGVTdXJ2ZXlDZG5DbGllbnQubG9hZENkblN0cmluZ1Jlc291cmNlLkV4Y2VwdGlvbixcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRFcnJvck1lc3NhZ2U6IGUgJiYgZS50b1N0cmluZygpLFxyXG5cdFx0XHRcdFx0Q2FtcGFpZ25JZDogc3VydmV5LmdldENhbXBhaWduSWQoKSxcclxuXHRcdFx0XHRcdFN1cnZleUlkOiBzdXJ2ZXkuZ2V0U3VydmV5SW5mbygpLmdldElkKCksXHJcblx0XHRcdFx0XHRNZXNzYWdlOiBKU09OLnN0cmluZ2lmeSh7IFxyXG5cdFx0XHRcdFx0XHRSZXF1ZXN0VXJsOiByZXF1ZXN0VXJsLFxyXG5cdFx0XHRcdFx0XHRIdHRwU3RhdHVzQ29kZTogcmVzcG9uc2U/LnN0YXR1cyxcclxuXHRcdFx0XHRcdFx0SHR0cFN0YXR1c1RleHQ6IHJlc3BvbnNlPy5zdGF0dXNUZXh0LFxyXG5cdFx0XHRcdFx0XHRTaW1wbGVSZXF1ZXN0RW5hYmxlZDogdGhpcy5zaW1wbGVSZXF1ZXN0RW5hYmxlZCxcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEluIGNhc2Ugb2YgZmFpbHVyZSwgd2UgYWxsb3cgZmFsbGJhY2sgaWYgdGhlcmUgaXMgdmFsaWQgQ29udGVudFxyXG5cdFx0aWYgKCFzdWNjZXNzKSB7XHJcblx0XHRcdC8vIFNldCB0aGUgVXhTY2hlbWEgdG8gbnVsbCBzbyB3ZSBmYWxsYmFjayB0byBDb250ZW50XHJcblx0XHRcdHN1cnZleS5zZXRVeFNjaGVtYShudWxsKTtcclxuXHRcdFx0aWYgKHN1cnZleS5pc0NvbnRlbnRWYWxpZCgpKSB7XHJcblx0XHRcdFx0c3VjY2VzcyA9IHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZVN1cnZleUNkbkNsaWVudC5sb2FkQ2RuU3RyaW5nUmVzb3VyY2UuQ29tcGxldGVkLFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0Q2FtcGFpZ25JZDogc3VydmV5LmdldENhbXBhaWduSWQoKSxcclxuXHRcdFx0XHRTdXJ2ZXlJZDogc3VydmV5LmdldFN1cnZleUluZm8oKS5nZXRJZCgpLFxyXG5cdFx0XHRcdE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdFN1Y2Nlc3M6IHN1Y2Nlc3MsXHJcblx0XHRcdFx0XHRJc0NvbnRlbnRWYWxpZDogc3VydmV5LmlzQ29udGVudFZhbGlkKCksXHJcblx0XHRcdFx0XHRJc1V4U2NoZW1hUHJlc2VudDogIWlzTk9VKHN1cnZleS5nZXRVeFNjaGVtYSgpKVxyXG5cdFx0XHRcdH0pLFxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gc3VjY2VzcztcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoaXMgZnVuY3Rpb24gdHJhbnNsYXRlcyB0aGUgZ2l2ZW4gdXhTY2hlbWEgaW4gdGhlIHBhcmFtZXRlclxyXG5cdCAqIFRoaXMgaXMgZGVzdHJ1Y3RpdmUgZnVuY3Rpb24gc2luY2UgaXQgd2lsbCBjcmVhdGUgYSBuZXcgdHJhbnNsYXRlZCBVeFNjaGVtYSBhbmQgc2V0IHRoZSBuZXcgb25lIHRvIGdpdmVuIHN1cnZleS5cclxuXHQgKiBIb3dldmVyLCB0aGUgb3JpZ2luYWwgVXhTY2hlbWEgd29uJ3QgYmUgY2hhbmdlZCBhbmQgc3RheSB0aGUgc2FtZSB3aXRoIG9yZ2luYWwgc3RyaW5ncy5cclxuXHQgKiBJbXBvcnRhbnQgbm90ZTogdGhlIG9yaWdpbmFsIFV4U2NoZW1hIGlzIHNoYWxsb3cgY29waWVkIGZyb20gQ2FtcGFpZ24gRGVmaW5pdGlvbiwgc28gYW55IGNoYW5nZSB0byBpdCB3aWxsIGFmZmVjdCB0aGUgb3JpZ2luYWxcclxuXHQgKiBDYW1wYWlnbiBEZWZpbml0aW9uIGFzIHdlbGwuIFRoZXJlZm9yZSwgd2Ugc2hvdWxkIG5vdCBjaGFuZ2luZyB0aGUgVXhTY2hlbWEgaWYgbm90IG5lZWRlZC5cclxuXHQgKiBJZiB0aGVyZSBpcyBpc3N1ZSBpbiB0cmFuc2xhdGlvbiwgaXQgd2lsbCB0aHJvdyBFcnJvclxyXG5cdCAqIEBwYXJhbSBzdXJ2ZXkgc3VydmV5IHdpdGggVXhTY2hlbWEgdG8gYmUgdHJhbnNsYXRlZFxyXG5cdCAqIEBwYXJhbSB1aVN0cmluZ01hcCBkaWN0aW9uYXJ5IGNvbnRhaW5zIGxvY2FsZSBzdHJpbmdzXHJcblx0Ki9cclxuXHRwdWJsaWMgYXN5bmMgdHJhbnNsYXRlU3VydmV5VXhTY2hlbWEoc3VydmV5OiBBcGkuSVN1cnZleSwgdWlTdHJpbmdNYXA6IFVpU3RyaW5nc01hcCk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0Y29uc3QgdXhTY2hlbWEgPSBzdXJ2ZXkuZ2V0VXhTY2hlbWEoKTtcclxuXHRcdGNvbnN0IHByb21pc2VMaXN0ID0gW107XHJcblx0XHRjb25zdCBlcnJvckxpc3QgPSBbXTtcclxuXHJcblx0XHQvLyBVc2luZyBzcHJlYWQgY29weSB0byBjcmVhdGUgYSBuZXcgYHV4U2NoZW1hYCBhbmQgYHBhZ2VzYCByZWZlcmVuY2VcclxuXHRcdC8vIHRoZW4gd2UgY2FuIGRlZXAgY29weSB0aGUgaW5uZXIgZmllbGRzIGFzIG5lY2Nlc2FyeSB3aXRob3V0IGNoYW5naW5nIHRoZSBvcmlnaW5hbCBvYmplY3RcclxuXHRcdC8vIEFueSBvdGhlciBmaWVsZHMgdGhhdCB3ZSBkb24ndCBtb2RpZnksIHRoZXkgY2FuIGJlIHJldXNlZCBieSBzcHJlYWQgY29weVxyXG5cdFx0Y29uc3QgdHJhbnNsYXRlZFJlc3VsdDogSVV4U2NoZW1hID0gey4uLnV4U2NoZW1hfTtcclxuXHRcdHRyYW5zbGF0ZWRSZXN1bHQucGFnZXMgPSBbLi4udXhTY2hlbWEucGFnZXNdO1xyXG5cclxuXHRcdC8vIHRyYW5zbGF0ZSB0aGUgcGFnZXNcclxuXHRcdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB1eFNjaGVtYS5wYWdlcy5sZW5ndGg7IGluZGV4KyspIHtcclxuXHRcdFx0cHJvbWlzZUxpc3QucHVzaChcclxuXHRcdFx0XHR0aGlzLnRyYW5zbGF0ZVBhZ2UodWlTdHJpbmdNYXAsIHV4U2NoZW1hLnBhZ2VzW2luZGV4XSwgYHBhZ2UuJHtpbmRleH1gLCBlcnJvckxpc3QpXHJcblx0XHRcdFx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0dHJhbnNsYXRlZFJlc3VsdC5wYWdlc1tpbmRleF0gPSByZXN1bHQ7XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyB0cmFuc2xhdGUgdGhlIGJyYW5jaGluZyBydWxlIGlmIHBvc3NpYmxlXHJcblx0XHRpZiAodXhTY2hlbWEuYnJhbmNoaW5nUnVsZXMgJiYgdXhTY2hlbWEuYnJhbmNoaW5nUnVsZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0XHRjb25zdCB0cmFuc2xhdGVkUnVsZXMgPSB0cmFuc2xhdGVkUmVzdWx0LmJyYW5jaGluZ1J1bGVzID0gW107XHJcblx0XHRcdGZvciAobGV0IGluZGV4UnVsZSA9IDA7IGluZGV4UnVsZSA8IHV4U2NoZW1hLmJyYW5jaGluZ1J1bGVzLmxlbmd0aDsgaW5kZXhSdWxlKyspIHtcclxuXHRcdFx0XHRjb25zdCBydWxlID0gdXhTY2hlbWEuYnJhbmNoaW5nUnVsZXNbaW5kZXhSdWxlXTtcclxuXHJcblx0XHRcdFx0Ly8gQ3JlYXRlIGRlZXAgY29weSB0aGUgcnVsZSBvYmplY3Qgc28gdGhhdCB3ZSBjYW4gdHJhbnNsYXRlIHRoZSB0YXJnZXRzIHdpdGhvdXQgY2hhbmdpbmcgdGhlIG9yaWdpbmFsIHJ1bGVcclxuXHRcdFx0XHRjb25zdCB0cmFuc2xhdGVkUnVsZTogQnJhbmNoaW5nUnVsZSA9IHtcclxuXHRcdFx0XHRcdGNvbmRpdGlvbnM6IHJ1bGUuY29uZGl0aW9ucyxcclxuXHRcdFx0XHRcdHRhcmdldHM6IFsuLi5ydWxlLnRhcmdldHNdXHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHR0cmFuc2xhdGVkUnVsZXMucHVzaCh0cmFuc2xhdGVkUnVsZSk7XHJcblxyXG5cdFx0XHRcdC8vIFRyYW5zbGF0ZSB0aGUgdGFyZ2V0cyBpZiBwb3NzaWJsZVxyXG5cdFx0XHRcdGlmIChydWxlLnRhcmdldHMgJiYgcnVsZS50YXJnZXRzLmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRcdGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBydWxlLnRhcmdldHMubGVuZ3RoOyBpbmRleCsrKSB7XHJcblx0XHRcdFx0XHRcdGNvbnN0IHRhcmdldCA9IHJ1bGUudGFyZ2V0c1tpbmRleF07XHJcblxyXG5cdFx0XHRcdFx0XHQvLyB0cmFuc2xhdGUgdGhlIFRhcmdldE92ZXJyaWRlIGlmIHBvc3NpYmxlXHJcblx0XHRcdFx0XHRcdGlmICh0YXJnZXQudHlwZSA9PT0gQnJhbmNoaW5nVGFyZ2V0VHlwZS5PdmVycmlkZSkge1xyXG5cdFx0XHRcdFx0XHRcdC8vIFVzaW5nIHNwcmVhZCBjb3B5IHRvIGNyZWF0ZSBhIG5ldyBgdGFyZ2V0YCByZWZlcmVuY2VcclxuXHRcdFx0XHRcdFx0XHQvLyB0aGVuIHdlIGNhbiBkZWVwIGNvcHkgdGhlIGlubmVyIGZpZWxkcyBhcyBuZWNjZXNhcnkgd2l0aG91dCBjaGFuZ2luZyB0aGUgb3JpZ2luYWwgb2JqZWN0XHJcblx0XHRcdFx0XHRcdFx0Ly8gQW55IG90aGVyIGZpZWxkcyB0aGF0IHdlIGRvbid0IG1vZGlmeSwgdGhleSBjYW4gYmUgcmV1c2VkIGJ5IHNwcmVhZCBjb3B5XHJcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHJhbnNsYXRlZFRhcmdldDogQnJhbmNoaW5nVGFyZ2V0T3ZlcnJpZGUgPSB7Li4udGFyZ2V0fTtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2xhdGVkUnVsZS50YXJnZXRzW2luZGV4XSA9IHRyYW5zbGF0ZWRUYXJnZXQ7XHJcblx0XHRcdFx0XHRcdFx0Y29uc3Qgb3ZlcnJpZGVUYXJnZXRRdWVzdGlvbiA9IHV4U2NoZW1hLnBhZ2VzW3RhcmdldC50YXJnZXRQYWdlSW5kZXhdLnF1ZXN0aW9ucy5maW5kKHF1ZXN0aW9uID0+XHJcblx0XHRcdFx0XHRcdFx0XHRxdWVzdGlvbi5pZCA9PT0gdGFyZ2V0LnRhcmdldE92ZXJyaWRlSWQpO1xyXG5cdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdHByb21pc2VMaXN0LnB1c2goXHJcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0ZVF1ZXN0aW9uKFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR1aVN0cmluZ01hcCxcclxuXHRcdFx0XHRcdFx0XHRcdFx0dGFyZ2V0Lm92ZXJyaWRlUHJvcGVydGllcyxcclxuXHRcdFx0XHRcdFx0XHRcdFx0b3ZlcnJpZGVUYXJnZXRRdWVzdGlvbi50eXBlLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRgYnJhbmNoaW5nUnVsZXMuJHtpbmRleFJ1bGV9LnRhcmdldHMuJHtpbmRleH1gLFxyXG5cdFx0XHRcdFx0XHRcdFx0XHRlcnJvckxpc3QpXHJcblx0XHRcdFx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHRyYW5zbGF0ZWRUYXJnZXQub3ZlcnJpZGVQcm9wZXJ0aWVzID0gcmVzdWx0IGFzIE92ZXJyaWRlUHJvcGVydGllc1R5cGU7XHJcblx0XHRcdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlTGlzdCk7XHJcblxyXG5cdFx0aWYgKGVycm9yTGlzdC5sZW5ndGggPiAwKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeShlcnJvckxpc3QpKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaW5hbGx5LCBzZXQgdGhlIG5ldyB0cmFuc2xhdGVkIHNjaGVtYVxyXG5cdFx0c3VydmV5LnNldFV4U2NoZW1hKHRyYW5zbGF0ZWRSZXN1bHQpO1xyXG5cclxuXHRcdHJldHVybjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyYW5zbGF0ZSB0aGUgZ2l2ZW4gcGFnZSwgYW5kIHB1dHRpbmcgZXJyb3IgaW50byBlcnJvckxpc3QgaWYgdGhlcmUgaXMgYW55XHJcblx0Ki9cclxuXHRwcml2YXRlIHRyYW5zbGF0ZVBhZ2UodWlTdHJpbmdNYXA6IFVpU3RyaW5nc01hcCwgc2NoZW1hUGFnZTogSVV4U2NoZW1hUGFnZSwgcGFnZUtleTogc3RyaW5nLCBlcnJvckxpc3Q6IHN0cmluZ1tdKTogUHJvbWlzZTxJVXhTY2hlbWFQYWdlPiB7XHJcblx0XHRjb25zdCBwcm9taXNlTGlzdCA9IFtdO1xyXG5cdFx0Y29uc3QgdHJhbnNsYXRlZFJlc3VsdDogSVV4U2NoZW1hUGFnZSA9IHsuLi5zY2hlbWFQYWdlfTtcclxuXHJcblx0XHQvLyBVc2luZyBzcHJlYWQgY29weSB0byBjcmVhdGUgYSBuZXcgYHF1ZXN0aW9uc2AgcmVmZXJlbmNlXHJcblx0XHQvLyB0aGVuIHdlIGNhbiBkZWVwIGNvcHkgdGhlIGlubmVyIGZpZWxkcyBhcyBuZWNjZXNhcnkgd2l0aG91dCBjaGFuZ2luZyB0aGUgb3JpZ2luYWwgb2JqZWN0XHJcblx0XHQvLyBBbnkgb3RoZXIgZmllbGRzIHRoYXQgd2UgZG9uJ3QgbW9kaWZ5LCB0aGV5IGNhbiBiZSByZXVzZWQgYnkgc3ByZWFkIGNvcHlcclxuXHRcdHRyYW5zbGF0ZWRSZXN1bHQucXVlc3Rpb25zID0gWy4uLnNjaGVtYVBhZ2UucXVlc3Rpb25zXTtcclxuXHRcdC8vIHRpdGxlIGlzIG9wdGlvbmFsXHJcblx0XHRpZiAoc2NoZW1hUGFnZS50aXRsZSkge1xyXG5cdFx0XHRwcm9taXNlTGlzdC5wdXNoKFxyXG5cdFx0XHRcdHRoaXMudHJhbnNsYXRlU3RyaW5nKHVpU3RyaW5nTWFwLCBzY2hlbWFQYWdlLnRpdGxlLCBgJHtwYWdlS2V5fS50aXRsZWAsIGVycm9yTGlzdClcclxuXHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0cmFuc2xhdGVkUmVzdWx0Wyd0aXRsZSddID0gcmVzdWx0O1xyXG5cdFx0XHRcdH0pXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Zm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHNjaGVtYVBhZ2UucXVlc3Rpb25zLmxlbmd0aDsgaW5kZXgrKykge1xyXG5cdFx0XHRwcm9taXNlTGlzdC5wdXNoKFxyXG5cdFx0XHRcdHRoaXMudHJhbnNsYXRlUXVlc3Rpb24odWlTdHJpbmdNYXAsIHNjaGVtYVBhZ2UucXVlc3Rpb25zW2luZGV4XSwgc2NoZW1hUGFnZS5xdWVzdGlvbnNbaW5kZXhdLnR5cGUsIGAke3BhZ2VLZXl9LnF1ZXN0aW9ucy4ke2luZGV4fWAsIGVycm9yTGlzdClcclxuXHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHR0cmFuc2xhdGVkUmVzdWx0LnF1ZXN0aW9uc1tpbmRleF0gPSByZXN1bHQgYXMgUXVlc3Rpb247XHJcblx0XHRcdFx0fSlcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlTGlzdCkudGhlbigoKSA9PiB0cmFuc2xhdGVkUmVzdWx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyYW5zbGF0ZSB0aGUgZ2l2ZW4gc3RyaW5nLCBhbmQgcHV0dGluZyBlcnJvciBpbnRvIGVycm9yTGlzdCBpZiB0aGVyZSBpcyBhbnlcclxuXHQqL1xyXG5cdHByaXZhdGUgdHJhbnNsYXRlUXVlc3Rpb24oXHJcblx0XHR1aVN0cmluZ01hcDogVWlTdHJpbmdzTWFwLFxyXG5cdFx0dHJhbnNsYXRlT2JqZWN0OiBRdWVzdGlvbiB8IE92ZXJyaWRlUHJvcGVydGllc1R5cGUsXHJcblx0XHRxdWVzdGlvblR5cGU6IFF1ZXN0aW9uVHlwZSxcclxuXHRcdHF1ZXN0aW9uS2V5OiBzdHJpbmcsXHJcblx0XHRlcnJvckxpc3Q6IHN0cmluZ1tdXHJcblx0XHQpOiBQcm9taXNlPFF1ZXN0aW9uIHwgT3ZlcnJpZGVQcm9wZXJ0aWVzVHlwZT4ge1xyXG5cdFx0Y29uc3QgcHJvbWlzZUxpc3QgPSBbXTtcclxuXHJcblx0XHQvLyBVc2luZyBzcHJlYWQgY29weSB0byBjcmVhdGUgYSBuZXcgb2JqZWN0IHJlZmVyZW5jZVxyXG5cdFx0Ly8gdGhlbiB3ZSBjYW4gZGVlcCBjb3B5IHRoZSBpbm5lciBvYmplY3QgZmllbGRzIGFzIG5lY2Nlc2FyeSB3aXRob3V0IGNoYW5naW5nIHRoZSBvcmlnaW5hbCBvYmplY3RcclxuXHRcdC8vIEFueSBvdGhlciBmaWVsZHMgdGhhdCB3ZSBkb24ndCBtb2RpZnksIHRoZXkgY2FuIGJlIHJldXNlZCBieSBzcHJlYWQgY29weVxyXG5cdFx0Y29uc3QgdHJhbnNsYXRlZFJlc3VsdCA9IHsuLi50cmFuc2xhdGVPYmplY3R9O1xyXG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0cmFuc2xhdGVPYmplY3QsIFwicXVlc3Rpb25MYWJlbFwiKSkge1xyXG5cdFx0XHRwcm9taXNlTGlzdC5wdXNoKFxyXG5cdFx0XHRcdHRoaXMudHJhbnNsYXRlU3RyaW5nKHVpU3RyaW5nTWFwLCB0cmFuc2xhdGVPYmplY3QucXVlc3Rpb25MYWJlbCBhcyBzdHJpbmcsIGAke3F1ZXN0aW9uS2V5fS5xdWVzdGlvbkxhYmVsYCwgZXJyb3JMaXN0KVxyXG5cdFx0XHRcdC50aGVuKChyZXN1bHQpID0+IHtcclxuXHRcdFx0XHRcdHRyYW5zbGF0ZWRSZXN1bHRbJ3F1ZXN0aW9uTGFiZWwnXSA9IHJlc3VsdDtcclxuXHRcdFx0XHR9KVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHN3aXRjaCAocXVlc3Rpb25UeXBlKSB7XHJcblx0XHRcdGNhc2UgUXVlc3Rpb25UeXBlLk11bHRpcGxlQ2hvaWNlOiBcclxuXHRcdFx0Y2FzZSBRdWVzdGlvblR5cGUuU2luZ2xlU2VsZWN0OiB7XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0cmFuc2xhdGVPYmplY3QsIFwiYXZhaWxhYmxlT3B0aW9uc1wiKSkge1xyXG5cdFx0XHRcdFx0cHJvbWlzZUxpc3QucHVzaChcclxuXHRcdFx0XHRcdFx0dGhpcy50cmFuc2xhdGVTdHJpbmdBcnJheSh1aVN0cmluZ01hcCwgdHJhbnNsYXRlT2JqZWN0W1wiYXZhaWxhYmxlT3B0aW9uc1wiXSBhcyBzdHJpbmdbXSxgJHtxdWVzdGlvbktleX0uYXZhaWxhYmxlT3B0aW9uc2AsIGVycm9yTGlzdClcclxuXHRcdFx0XHRcdFx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRyYW5zbGF0ZWRSZXN1bHRbJ2F2YWlsYWJsZU9wdGlvbnMnXSA9IHJlc3VsdDtcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdFx0Y2FzZSBRdWVzdGlvblR5cGUuUmF0aW5nOiB7XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0cmFuc2xhdGVPYmplY3QsIFwicmF0aW5nVmFsdWVzXCIpKSB7XHJcblx0XHRcdFx0XHRwcm9taXNlTGlzdC5wdXNoKFxyXG5cdFx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0ZVN0cmluZ0FycmF5KHVpU3RyaW5nTWFwLCB0cmFuc2xhdGVPYmplY3RbXCJyYXRpbmdWYWx1ZXNcIl0gYXMgc3RyaW5nW10sIGAke3F1ZXN0aW9uS2V5fS5yYXRpbmdWYWx1ZXNgLCBlcnJvckxpc3QpXHJcblx0XHRcdFx0XHRcdC50aGVuKChyZXN1bHQpID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0cmFuc2xhdGVkUmVzdWx0WydyYXRpbmdWYWx1ZXMnXSA9IHJlc3VsdDtcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRyYW5zbGF0ZU9iamVjdCwgXCJsZWZ0TGVnZW5kVmFsdWVcIikpIHtcclxuXHRcdFx0XHRcdHByb21pc2VMaXN0LnB1c2goXHJcblx0XHRcdFx0XHRcdHRoaXMudHJhbnNsYXRlU3RyaW5nKHVpU3RyaW5nTWFwLCB0cmFuc2xhdGVPYmplY3RbXCJsZWZ0TGVnZW5kVmFsdWVcIl0gYXMgc3RyaW5nLCBgJHtxdWVzdGlvbktleX0ubGVmdExlZ2VuZFZhbHVlYCwgZXJyb3JMaXN0KVxyXG5cdFx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dHJhbnNsYXRlZFJlc3VsdFtcImxlZnRMZWdlbmRWYWx1ZVwiXSA9IHJlc3VsdDtcclxuXHRcdFx0XHRcdFx0fSlcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0cmFuc2xhdGVPYmplY3QsIFwicmlnaHRMZWdlbmRWYWx1ZVwiKSkge1xyXG5cdFx0XHRcdFx0cHJvbWlzZUxpc3QucHVzaChcclxuXHRcdFx0XHRcdFx0dGhpcy50cmFuc2xhdGVTdHJpbmcodWlTdHJpbmdNYXAsIHRyYW5zbGF0ZU9iamVjdFtcInJpZ2h0TGVnZW5kVmFsdWVcIl0gYXMgc3RyaW5nLCBgJHtxdWVzdGlvbktleX0ucmlnaHRMZWdlbmRWYWx1ZWAsIGVycm9yTGlzdClcclxuXHRcdFx0XHRcdFx0LnRoZW4oKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRyYW5zbGF0ZWRSZXN1bHRbXCJyaWdodExlZ2VuZFZhbHVlXCJdID0gcmVzdWx0O1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNhc2UgUXVlc3Rpb25UeXBlLkxpa2VydDoge1xyXG5cdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodHJhbnNsYXRlT2JqZWN0LCBcInZlcnRpY2FsT3B0aW9uc1wiKSkge1xyXG5cdFx0XHRcdFx0cHJvbWlzZUxpc3QucHVzaChcclxuXHRcdFx0XHRcdFx0dGhpcy50cmFuc2xhdGVTdHJpbmdBcnJheSh1aVN0cmluZ01hcCwgdHJhbnNsYXRlT2JqZWN0W1widmVydGljYWxPcHRpb25zXCJdIGFzIHN0cmluZ1tdLCBgJHtxdWVzdGlvbktleX0udmVydGljYWxPcHRpb25zYCwgZXJyb3JMaXN0KVxyXG5cdFx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dHJhbnNsYXRlZFJlc3VsdFsndmVydGljYWxPcHRpb25zJ10gPSByZXN1bHQ7XHJcblx0XHRcdFx0XHRcdH0pXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodHJhbnNsYXRlT2JqZWN0LCBcImhvcml6b250YWxTdGF0ZW1lbnRzXCIpKSB7XHJcblx0XHRcdFx0XHRwcm9taXNlTGlzdC5wdXNoKFxyXG5cdFx0XHRcdFx0XHR0aGlzLnRyYW5zbGF0ZVN0cmluZ0FycmF5KFxyXG5cdFx0XHRcdFx0XHRcdHVpU3RyaW5nTWFwLFxyXG5cdFx0XHRcdFx0XHRcdHRyYW5zbGF0ZU9iamVjdFtcImhvcml6b250YWxTdGF0ZW1lbnRzXCJdIGFzIHN0cmluZ1tdLFxyXG5cdFx0XHRcdFx0XHRcdGAke3F1ZXN0aW9uS2V5fS5ob3Jpem9udGFsU3RhdGVtZW50c2AsXHJcblx0XHRcdFx0XHRcdFx0ZXJyb3JMaXN0KVxyXG5cdFx0XHRcdFx0XHQudGhlbigocmVzdWx0KSA9PiB7XHJcblx0XHRcdFx0XHRcdFx0dHJhbnNsYXRlZFJlc3VsdFsnaG9yaXpvbnRhbFN0YXRlbWVudHMnXSA9IHJlc3VsdDtcclxuXHRcdFx0XHRcdFx0fSkpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdFx0Y2FzZSBRdWVzdGlvblR5cGUuQ29tbWVudDpcclxuXHRcdFx0Y2FzZSBRdWVzdGlvblR5cGUuTGFiZWw6XHJcblx0XHRcdFx0Ly8gTm90aGluZyBzcGVjaWFsIGZvciBDb21tZW50LCBMYWJlbCBxdWVzdGlvblxyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdC8vIHVua25vd24gdHlwZVxyXG5cdFx0XHRcdGVycm9yTGlzdC5wdXNoKGAke3F1ZXN0aW9uS2V5fS5xdWVzdGlvblR5cGUgaXMgdW5rbm93bi5gKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlTGlzdCkudGhlbigoKSA9PiB0cmFuc2xhdGVkUmVzdWx0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRyYW5zbGF0ZSB0aGUgZ2l2ZW4gc3RyaW5nIGFycmF5LCBhbmQgcHV0dGluZyBlcnJvciBpbnRvIGVycm9yTGlzdCBpZiB0aGVyZSBpcyBhbnlcclxuXHQqL1xyXG5cdHByaXZhdGUgdHJhbnNsYXRlU3RyaW5nQXJyYXkodWlTdHJpbmdNYXA6IFVpU3RyaW5nc01hcCwgc3RyaW5nQXJyYXk6IHN0cmluZ1tdLCBrZXlBcnJheTogc3RyaW5nLCBlcnJvckxpc3Q6IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG5cdFx0Y29uc3QgcHJvbWlzZUxpc3Q6IFByb21pc2U8c3RyaW5nPltdID0gW107XHJcblx0XHRmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgc3RyaW5nQXJyYXkubGVuZ3RoOyBpbmRleCsrKSB7XHJcblx0XHRcdHByb21pc2VMaXN0LnB1c2goXHJcblx0XHRcdFx0dGhpcy50cmFuc2xhdGVTdHJpbmcodWlTdHJpbmdNYXAsIHN0cmluZ0FycmF5W2luZGV4XSwgYCR7a2V5QXJyYXl9LiR7aW5kZXh9YCwgZXJyb3JMaXN0KVxyXG5cdFx0XHQpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VMaXN0KS50aGVuKChyZXN1bHQpPT5yZXN1bHQpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVHJhbnNsYXRlIHRoZSBnaXZlbiBzdHJpbmcsIGFuZCBwdXR0aW5nIGVycm9yIGludG8gZXJyb3JMaXN0IGlmIHRoZXJlIGlzIGFueVxyXG5cdCAqIEByZXR1cm5zIGVtcHR5IHN0cmluZyBpZiBmYWlsdXJlLiBPdGhlcndpc2UsIHJldHVybiBsb2NhbGUgc3RyaW5nIG9uIHN1Y2Nlc3MuXHJcblx0Ki9cclxuXHRwcml2YXRlIHRyYW5zbGF0ZVN0cmluZyh1aVN0cmluZ01hcDogVWlTdHJpbmdzTWFwLCB0cmFuc2xhdGVkU3RyaW5nOiBzdHJpbmcsIGtleVN0cmluZzogc3RyaW5nLCBlcnJvckxpc3Q6IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuXHRcdC8vIHJlamVjdCBpcyBub3QgdXNlZCBoZXJlIHRvIHByZXZlbnQgdGhlIFByb21pc2UuYWxsIHRvIGZhaWwgZmFzdCBcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHVpU3RyaW5nTWFwLCB0cmFuc2xhdGVkU3RyaW5nKSkge1xyXG5cdFx0XHRcdHJlc29sdmUodWlTdHJpbmdNYXBbdHJhbnNsYXRlZFN0cmluZ10pO1xyXG5cdFx0XHR9XHJcblx0XHRcdGVsc2Uge1xyXG5cdFx0XHRcdGVycm9yTGlzdC5wdXNoKGAnJHtrZXlTdHJpbmd9OiAke3RyYW5zbGF0ZWRTdHJpbmd9JyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgc3RyaW5ncyBtYXAuYCk7XHJcblx0XHRcdFx0cmVzb2x2ZSgnJyk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/FloodgateSurveyCdn/FloodgateSurveyCdnClient.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/GovernanceUtils.js": /*!****************************************************!*\ !*** ../FloodgateCore/dist/src/GovernanceUtils.js ***! \****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hasSurveyReachedMaxLaunches = exports.hasSurveyReachedMaxLaunchesPerSession = exports.isCriticalSurvey = exports.isBusinessCriticalSurvey = exports.isMultiLaunchSurvey = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Utils_1 = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nfunction isMultiLaunchSurvey(surveyInfo) {\n var maxLaunches = surveyInfo === null || surveyInfo === void 0 ? void 0 : surveyInfo.getMaxLaunches();\n return Utils_1.isNumber(maxLaunches) && maxLaunches > 1;\n}\nexports.isMultiLaunchSurvey = isMultiLaunchSurvey;\nfunction isBusinessCriticalSurvey(surveyInfo) {\n var businessLevel = surveyInfo === null || surveyInfo === void 0 ? void 0 : surveyInfo.getBusinessLevel();\n return !Utils_1.isNOU(businessLevel) && businessLevel === floodgate_shared_typings_1.SurveyInfoBusinessLevel.Critical;\n}\nexports.isBusinessCriticalSurvey = isBusinessCriticalSurvey;\nfunction isCriticalSurvey(surveyInfo) {\n return isMultiLaunchSurvey(surveyInfo) || isBusinessCriticalSurvey(surveyInfo);\n}\nexports.isCriticalSurvey = isCriticalSurvey;\nfunction hasSurveyReachedMaxLaunchesPerSession(surveyInfo, surveyActivationStats) {\n var _a;\n if (isMultiLaunchSurvey(surveyInfo) && Utils_1.isNumber(surveyInfo.getMaxLaunchesPerSession())) {\n var surveyLaunchCountInSession = (_a = surveyActivationStats[surveyInfo.getId()]) !== null && _a !== void 0 ? _a : 0;\n var maxLaunchesPerSession = surveyInfo.getMaxLaunchesPerSession();\n return surveyLaunchCountInSession >= maxLaunchesPerSession;\n }\n return true;\n}\nexports.hasSurveyReachedMaxLaunchesPerSession = hasSurveyReachedMaxLaunchesPerSession;\nfunction hasSurveyReachedMaxLaunches(surveyInfo, surveyActivationStats) {\n if (isMultiLaunchSurvey(surveyInfo)) {\n var surveyLaunchCount = (surveyActivationStats === null || surveyActivationStats === void 0 ? void 0 : surveyActivationStats.SurveyLaunchCount) || 0;\n return surveyLaunchCount >= surveyInfo.getMaxLaunches();\n }\n return true;\n}\nexports.hasSurveyReachedMaxLaunches = hasSurveyReachedMaxLaunches;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0dvdmVybmFuY2VVdGlscy50cz9kYjNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZLQUFxRztBQUVyRyx1RkFBMEM7QUFFMUMsU0FBZ0IsbUJBQW1CLENBQUMsVUFBdUI7SUFDMUQsSUFBTSxXQUFXLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLGNBQWMsRUFBRSxDQUFDO0lBQ2pELE9BQU8sZ0JBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFIRCxrREFHQztBQUVELFNBQWdCLHdCQUF3QixDQUFDLFVBQXVCO0lBQy9ELElBQU0sYUFBYSxHQUFHLFVBQVUsYUFBVixVQUFVLHVCQUFWLFVBQVUsQ0FBRSxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JELE9BQU8sQ0FBQyxhQUFLLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxLQUFLLGtEQUF1QixDQUFDLFFBQVEsQ0FBQztBQUNwRixDQUFDO0FBSEQsNERBR0M7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxVQUF1QjtJQUN2RCxPQUFPLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLHFDQUFxQyxDQUFDLFVBQXVCLEVBQUUscUJBQTBDOztJQUN4SCxJQUFJLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxJQUFJLGdCQUFRLENBQUMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLENBQUMsRUFBRTtRQUN2RixJQUFNLDBCQUEwQixTQUFHLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxtQ0FBSSxDQUFDLENBQUM7UUFDbEYsSUFBTSxxQkFBcUIsR0FBRyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNwRSxPQUFPLDBCQUEwQixJQUFJLHFCQUFxQixDQUFDO0tBQzNEO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDO0FBUkQsc0ZBUUM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FBQyxVQUF1QixFQUFFLHFCQUE0QztJQUNoSCxJQUFJLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3BDLElBQU0saUJBQWlCLEdBQUcsc0JBQXFCLGFBQXJCLHFCQUFxQix1QkFBckIscUJBQXFCLENBQUUsaUJBQWlCLEtBQUksQ0FBQyxDQUFDO1FBQ3hFLE9BQU8saUJBQWlCLElBQUksVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDO0tBQ3hEO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDO0FBUEQsa0VBT0MiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9Hb3Zlcm5hbmNlVXRpbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRGljdGlvbmFyeSwgSVN1cnZleUluZm8sIFN1cnZleUluZm9CdXNpbmVzc0xldmVsIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IFN1cnZleUFjdGl2YXRpb25TdGF0cyB9IGZyb20gXCIuL1N1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvblwiO1xyXG5pbXBvcnQgeyBpc05PVSwgaXNOdW1iZXIgfSBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTXVsdGlMYXVuY2hTdXJ2ZXkoc3VydmV5SW5mbzogSVN1cnZleUluZm8pOiBib29sZWFuIHtcclxuXHRjb25zdCBtYXhMYXVuY2hlcyA9IHN1cnZleUluZm8/LmdldE1heExhdW5jaGVzKCk7XHJcblx0cmV0dXJuIGlzTnVtYmVyKG1heExhdW5jaGVzKSAmJiBtYXhMYXVuY2hlcyA+IDE7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0J1c2luZXNzQ3JpdGljYWxTdXJ2ZXkoc3VydmV5SW5mbzogSVN1cnZleUluZm8pOiBib29sZWFuIHtcclxuXHRjb25zdCBidXNpbmVzc0xldmVsID0gc3VydmV5SW5mbz8uZ2V0QnVzaW5lc3NMZXZlbCgpO1xyXG5cdHJldHVybiAhaXNOT1UoYnVzaW5lc3NMZXZlbCkgJiYgYnVzaW5lc3NMZXZlbCA9PT0gU3VydmV5SW5mb0J1c2luZXNzTGV2ZWwuQ3JpdGljYWw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0NyaXRpY2FsU3VydmV5KHN1cnZleUluZm86IElTdXJ2ZXlJbmZvKTogYm9vbGVhbiB7XHJcblx0cmV0dXJuIGlzTXVsdGlMYXVuY2hTdXJ2ZXkoc3VydmV5SW5mbykgfHwgaXNCdXNpbmVzc0NyaXRpY2FsU3VydmV5KHN1cnZleUluZm8pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaGFzU3VydmV5UmVhY2hlZE1heExhdW5jaGVzUGVyU2Vzc2lvbihzdXJ2ZXlJbmZvOiBJU3VydmV5SW5mbywgc3VydmV5QWN0aXZhdGlvblN0YXRzOiBJRGljdGlvbmFyeTxudW1iZXI+KTogYm9vbGVhbiB7XHJcblx0aWYgKGlzTXVsdGlMYXVuY2hTdXJ2ZXkoc3VydmV5SW5mbykgJiYgaXNOdW1iZXIoc3VydmV5SW5mby5nZXRNYXhMYXVuY2hlc1BlclNlc3Npb24oKSkpIHtcclxuXHRcdGNvbnN0IHN1cnZleUxhdW5jaENvdW50SW5TZXNzaW9uID0gc3VydmV5QWN0aXZhdGlvblN0YXRzW3N1cnZleUluZm8uZ2V0SWQoKV0gPz8gMDtcclxuXHRcdGNvbnN0IG1heExhdW5jaGVzUGVyU2Vzc2lvbiA9IHN1cnZleUluZm8uZ2V0TWF4TGF1bmNoZXNQZXJTZXNzaW9uKCk7XHJcblx0XHRyZXR1cm4gc3VydmV5TGF1bmNoQ291bnRJblNlc3Npb24gPj0gbWF4TGF1bmNoZXNQZXJTZXNzaW9uO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBoYXNTdXJ2ZXlSZWFjaGVkTWF4TGF1bmNoZXMoc3VydmV5SW5mbzogSVN1cnZleUluZm8sIHN1cnZleUFjdGl2YXRpb25TdGF0czogU3VydmV5QWN0aXZhdGlvblN0YXRzKTogYm9vbGVhbiB7XHJcblx0aWYgKGlzTXVsdGlMYXVuY2hTdXJ2ZXkoc3VydmV5SW5mbykpIHtcclxuXHRcdGNvbnN0IHN1cnZleUxhdW5jaENvdW50ID0gc3VydmV5QWN0aXZhdGlvblN0YXRzPy5TdXJ2ZXlMYXVuY2hDb3VudCB8fCAwO1xyXG5cdFx0cmV0dXJuIHN1cnZleUxhdW5jaENvdW50ID49IHN1cnZleUluZm8uZ2V0TWF4TGF1bmNoZXMoKTtcclxuXHR9XHJcblxyXG5cdHJldHVybiB0cnVlO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/GovernanceUtils.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/GovernedChannel.js": /*!****************************************************!*\ !*** ../FloodgateCore/dist/src/GovernedChannel.js ***! \****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GovernedChannel = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar GovernedChannel = /** @class */ (function () {\n function GovernedChannel(type, name, cooldownSeconds, cooldownStartTime) {\n if (!Utils.isEnumValue(type, floodgate_shared_typings_1.GovernedChannelType)) {\n throw new Error(\"type is not a valid GovernedChannelType\");\n }\n if (!name) {\n throw new Error(\"name must not be null or empty\");\n }\n if (cooldownSeconds < 0) {\n throw new Error(\"cooldownSeconds must not be negative\");\n }\n this.type = type;\n this.name = name;\n this.cooldownSeconds = cooldownSeconds;\n this.setCooldownStartTime(cooldownStartTime);\n }\n GovernedChannel.prototype.setCooldownStartTime = function (cooldownStartTime) {\n // Set the start time\n this.cooldownStartTime = cooldownStartTime;\n if (Utils.isNOU(this.cooldownStartTime)) {\n // Null cooldownStartTime means cool down has never been initiated, so set the cooldownEndTime to distant past\n this.cooldownEndTime = Utils.getDistantPast();\n return;\n }\n // Calculate the end time, but don't overflow past max.\n this.cooldownEndTime = Utils.addSecondsWithoutOverflow(this.cooldownStartTime, this.cooldownSeconds);\n };\n // @Override\n GovernedChannel.prototype.isOpen = function () {\n return this.isOpenAtDate(new Date());\n };\n // @Override\n GovernedChannel.prototype.isOpenAtDate = function (date) {\n if (!date) {\n return false;\n }\n return (date > this.cooldownEndTime);\n };\n // @Override\n GovernedChannel.prototype.getType = function () {\n return this.type;\n };\n // @Override\n GovernedChannel.prototype.getName = function () {\n return this.name;\n };\n // @Override\n GovernedChannel.prototype.getCooldownSeconds = function () {\n return this.cooldownSeconds;\n };\n // @Override\n GovernedChannel.prototype.getCooldownStartTime = function () {\n return this.cooldownStartTime;\n };\n // @Override\n GovernedChannel.prototype.getCooldownEndTime = function () {\n return this.cooldownEndTime;\n };\n return GovernedChannel;\n}());\nexports.GovernedChannel = GovernedChannel;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0dvdmVybmVkQ2hhbm5lbC50cz8zMDU5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZLQUE2RjtBQUM3RixxRkFBaUM7QUFFakM7SUFPQyx5QkFBbUIsSUFBeUIsRUFBRSxJQUFZLEVBQUUsZUFBdUIsRUFBRSxpQkFBdUI7UUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLDhDQUFtQixDQUFDLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztTQUNsRDtRQUVELElBQUksZUFBZSxHQUFHLENBQUMsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUN2QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRU0sOENBQW9CLEdBQTNCLFVBQTRCLGlCQUF1QjtRQUNsRCxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBRTNDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUN4Qyw4R0FBOEc7WUFDOUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDOUMsT0FBTztTQUNQO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELFlBQVk7SUFDTCxnQ0FBTSxHQUFiO1FBQ0MsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtJQUNMLHNDQUFZLEdBQW5CLFVBQW9CLElBQVU7UUFDN0IsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFFRCxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtJQUNMLGlDQUFPLEdBQWQ7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQUVELFlBQVk7SUFDTCxpQ0FBTyxHQUFkO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZO0lBQ0wsNENBQWtCLEdBQXpCO1FBQ0MsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO0lBQ0wsOENBQW9CLEdBQTNCO1FBQ0MsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDL0IsQ0FBQztJQUVELFlBQVk7SUFDTCw0Q0FBa0IsR0FBekI7UUFDQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDN0IsQ0FBQztJQUNGLHNCQUFDO0FBQUQsQ0FBQztBQTlFWSwwQ0FBZSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0dvdmVybmVkQ2hhbm5lbC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdvdmVybmVkQ2hhbm5lbFR5cGUsIElHb3Zlcm5lZENoYW5uZWxEYXRhIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuL1V0aWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgR292ZXJuZWRDaGFubmVsIGltcGxlbWVudHMgSUdvdmVybmVkQ2hhbm5lbERhdGEge1xyXG5cdHByaXZhdGUgdHlwZTogR292ZXJuZWRDaGFubmVsVHlwZTtcclxuXHRwcml2YXRlIG5hbWU6IHN0cmluZztcclxuXHRwcml2YXRlIGNvb2xkb3duU2Vjb25kczogbnVtYmVyO1xyXG5cdHByaXZhdGUgY29vbGRvd25TdGFydFRpbWU6IERhdGU7XHJcblx0cHJpdmF0ZSBjb29sZG93bkVuZFRpbWU6IERhdGU7XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlLCBuYW1lOiBzdHJpbmcsIGNvb2xkb3duU2Vjb25kczogbnVtYmVyLCBjb29sZG93blN0YXJ0VGltZTogRGF0ZSkge1xyXG5cdFx0aWYgKCFVdGlscy5pc0VudW1WYWx1ZSh0eXBlLCBHb3Zlcm5lZENoYW5uZWxUeXBlKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJ0eXBlIGlzIG5vdCBhIHZhbGlkIEdvdmVybmVkQ2hhbm5lbFR5cGVcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFuYW1lKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIm5hbWUgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoY29vbGRvd25TZWNvbmRzIDwgMCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjb29sZG93blNlY29uZHMgbXVzdCBub3QgYmUgbmVnYXRpdmVcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy50eXBlID0gdHlwZTtcclxuXHRcdHRoaXMubmFtZSA9IG5hbWU7XHJcblx0XHR0aGlzLmNvb2xkb3duU2Vjb25kcyA9IGNvb2xkb3duU2Vjb25kcztcclxuXHRcdHRoaXMuc2V0Q29vbGRvd25TdGFydFRpbWUoY29vbGRvd25TdGFydFRpbWUpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNldENvb2xkb3duU3RhcnRUaW1lKGNvb2xkb3duU3RhcnRUaW1lOiBEYXRlKTogdm9pZCB7XHJcblx0XHQvLyBTZXQgdGhlIHN0YXJ0IHRpbWVcclxuXHRcdHRoaXMuY29vbGRvd25TdGFydFRpbWUgPSBjb29sZG93blN0YXJ0VGltZTtcclxuXHJcblx0XHRpZiAoVXRpbHMuaXNOT1UodGhpcy5jb29sZG93blN0YXJ0VGltZSkpIHtcclxuXHRcdFx0Ly8gTnVsbCBjb29sZG93blN0YXJ0VGltZSBtZWFucyBjb29sIGRvd24gaGFzIG5ldmVyIGJlZW4gaW5pdGlhdGVkLCBzbyBzZXQgdGhlIGNvb2xkb3duRW5kVGltZSB0byBkaXN0YW50IHBhc3RcclxuXHRcdFx0dGhpcy5jb29sZG93bkVuZFRpbWUgPSBVdGlscy5nZXREaXN0YW50UGFzdCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2FsY3VsYXRlIHRoZSBlbmQgdGltZSwgYnV0IGRvbid0IG92ZXJmbG93IHBhc3QgbWF4LlxyXG5cdFx0dGhpcy5jb29sZG93bkVuZFRpbWUgPSBVdGlscy5hZGRTZWNvbmRzV2l0aG91dE92ZXJmbG93KHRoaXMuY29vbGRvd25TdGFydFRpbWUsIHRoaXMuY29vbGRvd25TZWNvbmRzKTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc09wZW4oKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc09wZW5BdERhdGUobmV3IERhdGUoKSk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgaXNPcGVuQXREYXRlKGRhdGU6IERhdGUpOiBib29sZWFuIHtcclxuXHRcdGlmICghZGF0ZSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIChkYXRlID4gdGhpcy5jb29sZG93bkVuZFRpbWUpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFR5cGUoKTogR292ZXJuZWRDaGFubmVsVHlwZSB7XHJcblx0XHRyZXR1cm4gdGhpcy50eXBlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldE5hbWUoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLm5hbWU7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29vbGRvd25TZWNvbmRzKCk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb29sZG93blNlY29uZHM7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29vbGRvd25TdGFydFRpbWUoKTogRGF0ZSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb29sZG93blN0YXJ0VGltZTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRDb29sZG93bkVuZFRpbWUoKTogRGF0ZSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb29sZG93bkVuZFRpbWU7XHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/GovernedChannel.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/GovernedChannelStateProvider.js": /*!*****************************************************************!*\ !*** ../FloodgateCore/dist/src/GovernedChannelStateProvider.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FileBasedGovernedChannelStateProvider = exports.HostBasedGovernedChannelStateProvider = exports.GovernedChannelStateProviderFactory = exports.GovernedChannelState = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Constants_1 = __webpack_require__(/*! ./Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ./FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar StateProviderHelpers = __webpack_require__(/*! ./StateProviderHelpers */ \"../FloodgateCore/dist/src/StateProviderHelpers.js\");\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar GovernedChannelState = /** @class */ (function () {\n function GovernedChannelState(type, cooldownStartTime) {\n this.ChannelType = type;\n this.CooldownStartTimeUtc = cooldownStartTime;\n if (!this.validate()) {\n throw new Error(\"Constructor arguments are not valid\");\n }\n }\n /**\n * Method to deserialize a JSON object to class object\n * @param input: JSON object\n * Returns class object\n */\n GovernedChannelState.deserialize = function (input) {\n var result;\n if (!input) {\n return null;\n }\n // Validation is handled by GovernedChannelState's constructor\n try {\n result = new GovernedChannelState(input.ChannelType, input.CooldownStartTimeUtc);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.GovernedChannelState.Deserialize.Failed, { ErrorMessage: e.toString() });\n return null;\n }\n return result;\n };\n GovernedChannelState.prototype.validate = function () {\n if (!Utils.isEnumValue(this.ChannelType, floodgate_shared_typings_1.GovernedChannelType)) {\n return false;\n }\n // make it a date object if it's a valid UTC date time value\n if (Utils.isUtcDatetimeString(this.CooldownStartTimeUtc)) {\n this.CooldownStartTimeUtc = Utils.stringToDate(this.CooldownStartTimeUtc);\n // Allow null and bad cooldownStartTime\n }\n else if (Utils.isNOU(this.CooldownStartTimeUtc) || !Utils.isDate(this.CooldownStartTimeUtc)) {\n this.CooldownStartTimeUtc = Utils.getDistantPast();\n }\n return true;\n };\n GovernedChannelState.prototype.getType = function () {\n return this.ChannelType;\n };\n GovernedChannelState.prototype.getCooldownStartTime = function () {\n return this.CooldownStartTimeUtc;\n };\n return GovernedChannelState;\n}());\nexports.GovernedChannelState = GovernedChannelState;\nvar GovernedChannelStateProviderFactory = /** @class */ (function () {\n function GovernedChannelStateProviderFactory() {\n }\n GovernedChannelStateProviderFactory.make = function (fileBasedStorage, hostBasedStorage) {\n if (hostBasedStorage) {\n return new HostBasedGovernedChannelStateProvider(fileBasedStorage, hostBasedStorage);\n }\n return new FileBasedGovernedChannelStateProvider(fileBasedStorage);\n };\n return GovernedChannelStateProviderFactory;\n}());\nexports.GovernedChannelStateProviderFactory = GovernedChannelStateProviderFactory;\n/**\n * Class representing what is stored in the file.\n */\nvar FileData = /** @class */ (function () {\n function FileData() {\n }\n return FileData;\n}());\nvar HostBasedGovernedChannelStateProvider = /** @class */ (function () {\n function HostBasedGovernedChannelStateProvider(fileBasedStorage, hostBasedStorage) {\n if (!hostBasedStorage) {\n throw new Error(\"host-based storage must not be null\");\n }\n this.hostBasedStorage = hostBasedStorage;\n // file-based provider is optional\n if (fileBasedStorage) {\n this.fileBasedStateProvider = new FileBasedGovernedChannelStateProvider(fileBasedStorage);\n }\n }\n // @Override\n HostBasedGovernedChannelStateProvider.prototype.load = function () {\n var statesFromHost = this.getStatesFromHost();\n var statesFromFile;\n if (this.fileBasedStateProvider) {\n statesFromFile = this.fileBasedStateProvider.load();\n }\n var StateCollections = StateProviderHelpers.MergeAndUpdateGovernedChannelStates(statesFromFile, statesFromHost);\n return StateCollections.find(0 /* Merged */);\n };\n // @Override\n HostBasedGovernedChannelStateProvider.prototype.save = function (states) {\n var _this = this;\n if (!states) {\n return;\n }\n var statesFromHost = this.getStatesFromHost();\n var StateCollections = StateProviderHelpers.MergeAndUpdateGovernedChannelStates(states, statesFromHost);\n var toBeUpdatedStates = StateCollections.find(1 /* ToBeUpdated */);\n var mergedStates = StateCollections.find(0 /* Merged */);\n // write delta_data to Host\n if (toBeUpdatedStates) {\n toBeUpdatedStates.forEach(function (state) {\n var stateValue = StateProviderHelpers.makeSettingItemValue(JSON.stringify(state));\n _this.hostBasedStorage.upsertSettingItem(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.GovernedChannelStates], String(state.getType()), stateValue);\n });\n }\n // Write merged data to File\n if (this.fileBasedStateProvider) {\n this.fileBasedStateProvider.save(mergedStates);\n }\n };\n HostBasedGovernedChannelStateProvider.prototype.getStatesFromHost = function () {\n var states = [];\n var settings = this.hostBasedStorage.readSettingList(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.GovernedChannelStates]);\n for (var key in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, key)) {\n continue;\n }\n var value = settings[key];\n var dataString = StateProviderHelpers.extractSettingItemValueSubString(value);\n var itemObject = {};\n try {\n itemObject = JSON.parse(dataString);\n var newState = GovernedChannelState.deserialize(itemObject);\n if (newState) {\n states.push(newState);\n }\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.HostBasedGovernedChannelStateProvider.GetStatesFromHost.Failed, { ErrorMessage: \"Json parsing/deserializing failed. \" + e.toString() + \". Input:\" + dataString });\n }\n }\n return states;\n };\n return HostBasedGovernedChannelStateProvider;\n}());\nexports.HostBasedGovernedChannelStateProvider = HostBasedGovernedChannelStateProvider;\nvar FileBasedGovernedChannelStateProvider = /** @class */ (function () {\n function FileBasedGovernedChannelStateProvider(storage) {\n if (!storage) {\n throw new Error(\"storage must not be null\");\n }\n this.storage = storage;\n }\n // @Override\n FileBasedGovernedChannelStateProvider.prototype.load = function () {\n // Load channel state from file using _storageProvider (get back string)\n var readString = this.storage.read(floodgate_shared_typings_1.FloodgateStorageProviderFileType.GovernedChannelStates);\n if (!readString) {\n return [];\n }\n var fileData;\n try {\n fileData = JSON.parse(readString);\n var result_1 = [];\n if (fileData && fileData.ChannelStates) {\n fileData.ChannelStates.forEach(function (state) {\n var newState = GovernedChannelState.deserialize(state);\n if (newState) {\n result_1.push(newState);\n }\n });\n }\n return result_1;\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.FileBasedGovernedChannelStateProvider.Load.Failed, { ErrorMessage: \"Json parsing/deserializing failed. \" + e.toString() + \". Input:\" + readString });\n return [];\n }\n };\n // @Override\n FileBasedGovernedChannelStateProvider.prototype.save = function (states) {\n if (!states) {\n return;\n }\n var fileData = new FileData();\n fileData.ChannelStates = states;\n var writeString = JSON.stringify(fileData);\n this.storage.write(floodgate_shared_typings_1.FloodgateStorageProviderFileType.GovernedChannelStates, writeString);\n };\n return FileBasedGovernedChannelStateProvider;\n}());\nexports.FileBasedGovernedChannelStateProvider = FileBasedGovernedChannelStateProvider;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0dvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIudHM/ZjBmOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2S0FNMEM7QUFDMUMsbUdBQTZDO0FBQzdDLHFIQUFvRDtBQUNwRCxrSUFBK0Q7QUFDL0QscUZBQWlDO0FBR2pDO0lBa0NDLDhCQUFtQixJQUF5QixFQUFFLGlCQUF1QjtRQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7UUFFOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7U0FDdkQ7SUFDRixDQUFDO0lBeENEOzs7O09BSUc7SUFDVyxnQ0FBVyxHQUF6QixVQUEwQixLQUFVO1FBQ25DLElBQUksTUFBNEIsQ0FBQztRQUVqQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELDhEQUE4RDtRQUM5RCxJQUFJO1lBQ0gsTUFBTSxHQUFHLElBQUksb0JBQW9CLENBQ2hDLEtBQUssQ0FBQyxXQUFXLEVBQ2pCLEtBQUssQ0FBQyxvQkFBb0IsQ0FDMUIsQ0FBQztTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBaUJNLHVDQUFRLEdBQWY7UUFDQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLDhDQUFtQixD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LFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFL0UsSUFBSSxRQUFRLEVBQUU7d0JBQ2IsUUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDdEI7Z0JBQ0YsQ0FBQyxDQUFDLENBQUM7YUFDSDtZQUVELE9BQU8sUUFBTSxDQUFDO1NBQ2Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLGlDQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMscUNBQXFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFDaEUsRUFBRSxZQUFZLEVBQUUscUNBQXFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLFdBQVcsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3BHLE9BQU8sRUFBRSxDQUFDO1NBQ1Y7SUFDRixDQUFDO0lBRUQsWUFBWTtJQUNMLG9EQUFJLEdBQVgsVUFBWSxNQUE4QjtRQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1osT0FBTztTQUNQO1FBRUQsSUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUNoQyxJQUFNLFdBQVcsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXJELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLDJEQUFRLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNGLDRDQUFDO0FBQUQsQ0FBQztBQXhEWSxzRkFBcUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9Hb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSBhcyBGaWxlVHlwZSxcclxuXHRHb3Zlcm5lZENoYW5uZWxUeXBlLFxyXG5cdElGbG9vZGdhdGVTZXR0aW5nLFxyXG5cdElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrLFxyXG5cdElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUV2ZW50IH0gZnJvbSBcIi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEZsb29kZ2F0ZUVuZ2luZSB9IGZyb20gXCIuL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5pbXBvcnQgKiBhcyBTdGF0ZVByb3ZpZGVySGVscGVycyBmcm9tIFwiLi9TdGF0ZVByb3ZpZGVySGVscGVyc1wiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi9VdGlsc1wiO1xyXG5pbXBvcnQgU3RhdGVMaXN0VHlwZSA9IFN0YXRlUHJvdmlkZXJIZWxwZXJzLlN0YXRlTGlzdFR5cGU7XHJcblxyXG5leHBvcnQgY2xhc3MgR292ZXJuZWRDaGFubmVsU3RhdGUge1xyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBkZXNlcmlhbGl6ZSBhIEpTT04gb2JqZWN0IHRvIGNsYXNzIG9iamVjdFxyXG5cdCAqIEBwYXJhbSBpbnB1dDogSlNPTiBvYmplY3RcclxuXHQgKiBSZXR1cm5zIGNsYXNzIG9iamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IEdvdmVybmVkQ2hhbm5lbFN0YXRlIHtcclxuXHRcdGxldCByZXN1bHQ6IEdvdmVybmVkQ2hhbm5lbFN0YXRlO1xyXG5cclxuXHRcdGlmICghaW5wdXQpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVmFsaWRhdGlvbiBpcyBoYW5kbGVkIGJ5IEdvdmVybmVkQ2hhbm5lbFN0YXRlJ3MgY29uc3RydWN0b3JcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJlc3VsdCA9IG5ldyBHb3Zlcm5lZENoYW5uZWxTdGF0ZShcclxuXHRcdFx0XHRpbnB1dC5DaGFubmVsVHlwZSxcclxuXHRcdFx0XHRpbnB1dC5Db29sZG93blN0YXJ0VGltZVV0YyxcclxuXHRcdFx0KTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5Hb3Zlcm5lZENoYW5uZWxTdGF0ZS5EZXNlcmlhbGl6ZS5GYWlsZWQsIHsgRXJyb3JNZXNzYWdlOiBlLnRvU3RyaW5nKCkgfSk7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJDaGFubmVsVHlwZVwiKVxyXG5cdHByaXZhdGUgQ2hhbm5lbFR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGU7XHJcblxyXG5cdC8vIEBTZXJpYWxpemVkTmFtZShcIkNvb2xkb3duU3RhcnRUaW1lVXRjXCIpXHJcblx0cHJpdmF0ZSBDb29sZG93blN0YXJ0VGltZVV0YzogRGF0ZTtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKHR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGUsIGNvb2xkb3duU3RhcnRUaW1lOiBEYXRlKSB7XHJcblx0XHR0aGlzLkNoYW5uZWxUeXBlID0gdHlwZTtcclxuXHRcdHRoaXMuQ29vbGRvd25TdGFydFRpbWVVdGMgPSBjb29sZG93blN0YXJ0VGltZTtcclxuXHJcblx0XHRpZiAoIXRoaXMudmFsaWRhdGUoKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJDb25zdHJ1Y3RvciBhcmd1bWVudHMgYXJlIG5vdCB2YWxpZFwiKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghVXRpbHMuaXNFbnVtVmFsdWUodGhpcy5DaGFubmVsVHlwZSwgR292ZXJuZWRDaGFubmVsVHlwZSkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIG1ha2UgaXQgYSBkYXRlIG9iamVjdCBpZiBpdCdzIGEgdmFsaWQgVVRDIGRhdGUgdGltZSB2YWx1ZVxyXG5cdFx0aWYgKFV0aWxzLmlzVXRjRGF0ZXRpbWVTdHJpbmcodGhpcy5Db29sZG93blN0YXJ0VGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5Db29sZG93blN0YXJ0VGltZVV0YyA9IFV0aWxzLnN0cmluZ1RvRGF0ZSh0aGlzLkNvb2xkb3duU3RhcnRUaW1lVXRjKTtcclxuXHRcdFx0Ly8gQWxsb3cgbnVsbCBhbmQgYmFkIGNvb2xkb3duU3RhcnRUaW1lXHJcblx0XHR9IGVsc2UgaWYgKFV0aWxzLmlzTk9VKHRoaXMuQ29vbGRvd25TdGFydFRpbWVVdGMpIHx8ICFVdGlscy5pc0RhdGUodGhpcy5Db29sZG93blN0YXJ0VGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5Db29sZG93blN0YXJ0VGltZVV0YyA9IFV0aWxzLmdldERpc3RhbnRQYXN0KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0VHlwZSgpOiBHb3Zlcm5lZENoYW5uZWxUeXBlIHtcclxuXHRcdHJldHVybiB0aGlzLkNoYW5uZWxUeXBlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldENvb2xkb3duU3RhcnRUaW1lKCk6IERhdGUge1xyXG5cdFx0cmV0dXJuIHRoaXMuQ29vbGRvd25TdGFydFRpbWVVdGM7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyIHtcclxuXHRsb2FkKCk6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW107XHJcblxyXG5cdHNhdmUoY2hhbm5lbHM6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10pOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlckZhY3Rvcnkge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShmaWxlQmFzZWRTdG9yYWdlOiBJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyLFxyXG5cdFx0aG9zdEJhc2VkU3RvcmFnZTogSUZsb29kZ2F0ZVNldHRpbmdTdG9yYWdlQ2FsbGJhY2spOiBJR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlciB7XHJcblx0XHRpZiAoaG9zdEJhc2VkU3RvcmFnZSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IEhvc3RCYXNlZEdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIoZmlsZUJhc2VkU3RvcmFnZSwgaG9zdEJhc2VkU3RvcmFnZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG5ldyBGaWxlQmFzZWRHb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyKGZpbGVCYXNlZFN0b3JhZ2UpO1xyXG5cdH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENsYXNzIHJlcHJlc2VudGluZyB3aGF0IGlzIHN0b3JlZCBpbiB0aGUgZmlsZS5cclxuICovXHJcbmNsYXNzIEZpbGVEYXRhIHtcclxuXHQvLyBAU2VyaWFsaXplZE5hbWUoXCJDaGFubmVsU3RhdGVzXCIpXHJcblx0cHVibGljIENoYW5uZWxTdGF0ZXM6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW107XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBIb3N0QmFzZWRHb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyIGltcGxlbWVudHMgSUdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIge1xyXG5cdHByaXZhdGUgZmlsZUJhc2VkU3RhdGVQcm92aWRlcjogSUdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXI7XHJcblx0cHJpdmF0ZSBob3N0QmFzZWRTdG9yYWdlOiBJRmxvb2RnYXRlU2V0dGluZ1N0b3JhZ2VDYWxsYmFjaztcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGZpbGVCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrKSB7XHJcblx0XHRpZiAoIWhvc3RCYXNlZFN0b3JhZ2UpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiaG9zdC1iYXNlZCBzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5ob3N0QmFzZWRTdG9yYWdlID0gaG9zdEJhc2VkU3RvcmFnZTtcclxuXHJcblx0XHQvLyBmaWxlLWJhc2VkIHByb3ZpZGVyIGlzIG9wdGlvbmFsXHJcblx0XHRpZiAoZmlsZUJhc2VkU3RvcmFnZSkge1xyXG5cdFx0XHR0aGlzLmZpbGVCYXNlZFN0YXRlUHJvdmlkZXIgPSBuZXcgRmlsZUJhc2VkR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlcihmaWxlQmFzZWRTdG9yYWdlKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBsb2FkKCk6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10ge1xyXG5cdFx0Y29uc3Qgc3RhdGVzRnJvbUhvc3Q6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10gPSB0aGlzLmdldFN0YXRlc0Zyb21Ib3N0KCk7XHJcblxyXG5cdFx0bGV0IHN0YXRlc0Zyb21GaWxlOiBHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdO1xyXG5cdFx0aWYgKHRoaXMuZmlsZUJhc2VkU3RhdGVQcm92aWRlcikge1xyXG5cdFx0XHRzdGF0ZXNGcm9tRmlsZSA9IHRoaXMuZmlsZUJhc2VkU3RhdGVQcm92aWRlci5sb2FkKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgU3RhdGVDb2xsZWN0aW9ucyA9IFN0YXRlUHJvdmlkZXJIZWxwZXJzLk1lcmdlQW5kVXBkYXRlR292ZXJuZWRDaGFubmVsU3RhdGVzKHN0YXRlc0Zyb21GaWxlLCBzdGF0ZXNGcm9tSG9zdCk7XHJcblx0XHRyZXR1cm4gU3RhdGVDb2xsZWN0aW9ucy5maW5kKFN0YXRlTGlzdFR5cGUuTWVyZ2VkKTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBzYXZlKHN0YXRlczogR292ZXJuZWRDaGFubmVsU3RhdGVbXSk6IHZvaWQge1xyXG5cdFx0aWYgKCFzdGF0ZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHN0YXRlc0Zyb21Ib3N0OiBHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdID0gdGhpcy5nZXRTdGF0ZXNGcm9tSG9zdCgpO1xyXG5cdFx0Y29uc3QgU3RhdGVDb2xsZWN0aW9ucyA9IFN0YXRlUHJvdmlkZXJIZWxwZXJzLk1lcmdlQW5kVXBkYXRlR292ZXJuZWRDaGFubmVsU3RhdGVzKHN0YXRlcywgc3RhdGVzRnJvbUhvc3QpO1xyXG5cdFx0Y29uc3QgdG9CZVVwZGF0ZWRTdGF0ZXM6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10gPSBTdGF0ZUNvbGxlY3Rpb25zLmZpbmQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCk7XHJcblx0XHRjb25zdCBtZXJnZWRTdGF0ZXM6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10gPSBTdGF0ZUNvbGxlY3Rpb25zLmZpbmQoU3RhdGVMaXN0VHlwZS5NZXJnZWQpO1xyXG5cclxuXHRcdC8vIHdyaXRlIGRlbHRhX2RhdGEgdG8gSG9zdFxyXG5cdFx0aWYgKHRvQmVVcGRhdGVkU3RhdGVzKSB7XHJcblx0XHRcdHRvQmVVcGRhdGVkU3RhdGVzLmZvckVhY2goKHN0YXRlKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc3RhdGVWYWx1ZTogc3RyaW5nID0gU3RhdGVQcm92aWRlckhlbHBlcnMubWFrZVNldHRpbmdJdGVtVmFsdWUoSlNPTi5zdHJpbmdpZnkoc3RhdGUpKTtcclxuXHRcdFx0XHR0aGlzLmhvc3RCYXNlZFN0b3JhZ2UudXBzZXJ0U2V0dGluZ0l0ZW0oRmlsZVR5cGVbRmlsZVR5cGUuR292ZXJuZWRDaGFubmVsU3RhdGVzXSwgU3RyaW5nKHN0YXRlLmdldFR5cGUoKSksIHN0YXRlVmFsdWUpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBXcml0ZSBtZXJnZWQgZGF0YSB0byBGaWxlXHJcblx0XHRpZiAodGhpcy5maWxlQmFzZWRTdGF0ZVByb3ZpZGVyKSB7XHJcblx0XHRcdHRoaXMuZmlsZUJhc2VkU3RhdGVQcm92aWRlci5zYXZlKG1lcmdlZFN0YXRlcyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldFN0YXRlc0Zyb21Ib3N0KCk6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10ge1xyXG5cdFx0Y29uc3Qgc3RhdGVzOiBHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdID0gW107XHJcblx0XHRjb25zdCBzZXR0aW5nczogSUZsb29kZ2F0ZVNldHRpbmcgPSB0aGlzLmhvc3RCYXNlZFN0b3JhZ2UucmVhZFNldHRpbmdMaXN0KEZpbGVUeXBlW0ZpbGVUeXBlLkdvdmVybmVkQ2hhbm5lbFN0YXRlc10pO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHNldHRpbmdzKSB7XHJcblx0XHRcdGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNldHRpbmdzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IHZhbHVlID0gc2V0dGluZ3Nba2V5XTtcclxuXHRcdFx0Y29uc3QgZGF0YVN0cmluZzogc3RyaW5nID0gU3RhdGVQcm92aWRlckhlbHBlcnMuZXh0cmFjdFNldHRpbmdJdGVtVmFsdWVTdWJTdHJpbmcodmFsdWUpO1xyXG5cclxuXHRcdFx0bGV0IGl0ZW1PYmplY3Q6IGFueSA9IHt9O1xyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdGl0ZW1PYmplY3QgPSBKU09OLnBhcnNlKGRhdGFTdHJpbmcpO1xyXG5cclxuXHRcdFx0XHRjb25zdCBuZXdTdGF0ZTogR292ZXJuZWRDaGFubmVsU3RhdGUgPSBHb3Zlcm5lZENoYW5uZWxTdGF0ZS5kZXNlcmlhbGl6ZShpdGVtT2JqZWN0KTtcclxuXHRcdFx0XHRpZiAobmV3U3RhdGUpIHtcclxuXHRcdFx0XHRcdHN0YXRlcy5wdXNoKG5ld1N0YXRlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuSG9zdEJhc2VkR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlci5HZXRTdGF0ZXNGcm9tSG9zdC5GYWlsZWQsXHJcblx0XHRcdFx0XHR7IEVycm9yTWVzc2FnZTogXCJKc29uIHBhcnNpbmcvZGVzZXJpYWxpemluZyBmYWlsZWQuIFwiICsgZS50b1N0cmluZygpICsgXCIuICBJbnB1dDpcIiArIGRhdGFTdHJpbmcgfSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gc3RhdGVzO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEZpbGVCYXNlZEdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIgaW1wbGVtZW50cyBJR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlciB7XHJcblx0cHJpdmF0ZSBzdG9yYWdlOiBJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3Ioc3RvcmFnZTogSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlcikge1xyXG5cdFx0aWYgKCFzdG9yYWdlKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcInN0b3JhZ2UgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGxvYWQoKTogR292ZXJuZWRDaGFubmVsU3RhdGVbXSB7XHJcblx0XHQvLyBMb2FkIGNoYW5uZWwgc3RhdGUgZnJvbSBmaWxlIHVzaW5nIF9zdG9yYWdlUHJvdmlkZXIgKGdldCBiYWNrIHN0cmluZylcclxuXHRcdGNvbnN0IHJlYWRTdHJpbmc6IHN0cmluZyA9IHRoaXMuc3RvcmFnZS5yZWFkKEZpbGVUeXBlLkdvdmVybmVkQ2hhbm5lbFN0YXRlcyk7XHJcblx0XHRpZiAoIXJlYWRTdHJpbmcpIHtcclxuXHRcdFx0cmV0dXJuIFtdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBmaWxlRGF0YTogRmlsZURhdGE7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRmaWxlRGF0YSA9IEpTT04ucGFyc2UocmVhZFN0cmluZyk7XHJcblxyXG5cdFx0XHRjb25zdCByZXN1bHQ6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10gPSBbXTtcclxuXHJcblx0XHRcdGlmIChmaWxlRGF0YSAmJiBmaWxlRGF0YS5DaGFubmVsU3RhdGVzKSB7XHJcblx0XHRcdFx0ZmlsZURhdGEuQ2hhbm5lbFN0YXRlcy5mb3JFYWNoKChzdGF0ZSkgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgbmV3U3RhdGU6IEdvdmVybmVkQ2hhbm5lbFN0YXRlID0gR292ZXJuZWRDaGFubmVsU3RhdGUuZGVzZXJpYWxpemUoc3RhdGUpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChuZXdTdGF0ZSkge1xyXG5cdFx0XHRcdFx0XHRyZXN1bHQucHVzaChuZXdTdGF0ZSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiByZXN1bHQ7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmlsZUJhc2VkR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlci5Mb2FkLkZhaWxlZCxcclxuXHRcdFx0XHR7IEVycm9yTWVzc2FnZTogXCJKc29uIHBhcnNpbmcvZGVzZXJpYWxpemluZyBmYWlsZWQuIFwiICsgZS50b1N0cmluZygpICsgXCIuICBJbnB1dDpcIiArIHJlYWRTdHJpbmcgfSk7XHJcblx0XHRcdHJldHVybiBbXTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBzYXZlKHN0YXRlczogR292ZXJuZWRDaGFubmVsU3RhdGVbXSk6IHZvaWQge1xyXG5cdFx0aWYgKCFzdGF0ZXMpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGZpbGVEYXRhID0gbmV3IEZpbGVEYXRhKCk7XHJcblx0XHRmaWxlRGF0YS5DaGFubmVsU3RhdGVzID0gc3RhdGVzO1xyXG5cdFx0Y29uc3Qgd3JpdGVTdHJpbmc6IHN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGZpbGVEYXRhKTtcclxuXHJcblx0XHR0aGlzLnN0b3JhZ2Uud3JpdGUoRmlsZVR5cGUuR292ZXJuZWRDaGFubmVsU3RhdGVzLCB3cml0ZVN0cmluZyk7XHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/GovernedChannelStateProvider.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Governor.js": /*!*********************************************!*\ !*** ../FloodgateCore/dist/src/Governor.js ***! \*********************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Governor = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar GovernedChannel_1 = __webpack_require__(/*! ./GovernedChannel */ \"../FloodgateCore/dist/src/GovernedChannel.js\");\nvar GovernedChannelStateProvider_1 = __webpack_require__(/*! ./GovernedChannelStateProvider */ \"../FloodgateCore/dist/src/GovernedChannelStateProvider.js\");\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar isNOU = Utils.isNOU;\nvar DefaultChannelData = /** @class */ (function () {\n function DefaultChannelData(name, cooldownSeconds) {\n this.name = name;\n this.cooldownSeconds = cooldownSeconds;\n }\n return DefaultChannelData;\n}());\nvar Governor = /** @class */ (function () {\n function Governor(channelStateProvider) {\n this.channels = [];\n if (!channelStateProvider) {\n throw new Error(\"channelStateProvider must not be null\");\n }\n this.channelStateProvider = channelStateProvider;\n this.loadChannels();\n }\n Governor.GetChannelCoolDown = function (channelType) {\n var channelData = Governor.defaultChannelData[channelType];\n return channelData ? channelData.cooldownSeconds : 0;\n };\n Governor.SetDefaultChannelCoolDown = function (channelType, cooldownSeconds) {\n var channelData = Governor.defaultChannelData[channelType];\n if (channelData) {\n channelData.cooldownSeconds = cooldownSeconds;\n }\n };\n // @Override\n Governor.prototype.refreshChannelData = function () {\n this.loadChannels();\n };\n // @Override\n Governor.prototype.getAvailableChannelData = function () {\n var channelData = [];\n for (var key in this.channels) {\n if (Object.prototype.hasOwnProperty.call(this.channels, key)) {\n var channel = this.channels[key];\n if (channel.isOpen()) {\n channelData.push(channel);\n }\n }\n }\n return channelData;\n };\n // @Override\n Governor.prototype.isChannelOpen = function (type) {\n if (isNOU(type)) {\n throw new Error(\"type must not be null\");\n }\n return this.channels[type].isOpen();\n };\n // @Override\n Governor.prototype.startChannelCooldown = function (type, date) {\n if (isNOU(type)) {\n throw new Error(\"type must not be null\");\n }\n date = date ? date : new Date();\n // Start the cool down\n this.channels[type].setCooldownStartTime(date);\n // Save the new channel state for future sessions\n this.saveChannelStates();\n };\n Governor.prototype.saveChannelStates = function () {\n // Build up the list of channel states\n var channelStates = [];\n for (var key in this.channels) {\n if (Object.prototype.hasOwnProperty.call(this.channels, key)) {\n var channel = this.channels[key];\n var channelState = new GovernedChannelStateProvider_1.GovernedChannelState(channel.getType(), channel.getCooldownStartTime());\n channelStates.push(channelState);\n }\n }\n this.channelStateProvider.save(channelStates);\n };\n Governor.prototype.loadChannels = function () {\n // Load up state from previous sessions\n this.loadChannelStatesFromProvider();\n // For any missing channels, init them from scratch\n // There's no straightforward way to iterate enums, we need to iterate through the enum array\n // filtering out just the numeric enum values (excluding enum names).\n for (var item in floodgate_shared_typings_1.GovernedChannelType) {\n if (Object.prototype.hasOwnProperty.call(floodgate_shared_typings_1.GovernedChannelType, item)) {\n var key = Number(item);\n // skip if key is not numeric enum value, or if already exists\n if (isNaN(key) || this.channels[key]) {\n continue;\n }\n var defaultData = Governor.defaultChannelData[key];\n var newChannel = new GovernedChannel_1.GovernedChannel(key, defaultData.name, defaultData.cooldownSeconds, null);\n this.channels[key] = newChannel;\n }\n }\n };\n Governor.prototype.loadChannelStatesFromProvider = function () {\n this.channels = [];\n var channelStates = this.channelStateProvider.load();\n for (var key in channelStates) {\n if (Object.prototype.hasOwnProperty.call(channelStates, key)) {\n var channelState = channelStates[key];\n var type = channelState.getType();\n var defaultData = Governor.defaultChannelData[type];\n var newChannel = new GovernedChannel_1.GovernedChannel(type, defaultData.name, defaultData.cooldownSeconds, channelState.getCooldownStartTime());\n this.channels[newChannel.getType()] = newChannel;\n }\n }\n };\n Governor.minute = 60;\n Governor.hour = 60 * Governor.minute;\n Governor.day = 24 * Governor.hour;\n // Array of default values for each channel type. Indexed by the GovernedChannelType enum name.\n Governor.defaultChannelData = [\n new DefaultChannelData(floodgate_shared_typings_1.GovernedChannelType[floodgate_shared_typings_1.GovernedChannelType.Standard], 14 * Governor.day),\n new DefaultChannelData(floodgate_shared_typings_1.GovernedChannelType[floodgate_shared_typings_1.GovernedChannelType.Urgent], 0),\n new DefaultChannelData(floodgate_shared_typings_1.GovernedChannelType[floodgate_shared_typings_1.GovernedChannelType.Banner], 15 * Governor.day),\n new DefaultChannelData(floodgate_shared_typings_1.GovernedChannelType[floodgate_shared_typings_1.GovernedChannelType.TeachingMessage], 1 * Governor.hour),\n new DefaultChannelData(floodgate_shared_typings_1.GovernedChannelType[floodgate_shared_typings_1.GovernedChannelType.BusinessBar], 3 * Governor.hour),\n ];\n return Governor;\n}());\nexports.Governor = Governor;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0dvdmVybm9yLnRzPzI5YzEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNktBQTZGO0FBQzdGLHFIQUFvRDtBQUNwRCw0SkFBcUc7QUFDckcscUZBQWlDO0FBRXpCLFNBQUssR0FBSyxLQUFLLE1BQVYsQ0FBVztBQWN4QjtJQUlDLDRCQUFtQixJQUFZLEVBQUUsZUFBdUI7UUFDdkQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDeEMsQ0FBQztJQUNGLHlCQUFDO0FBQUQsQ0FBQztBQUVEO0lBNkJDLGtCQUFtQixvQkFBbUQ7UUFGOUQsYUFBUSxHQUFzQixFQUFFLENBQUM7UUFHeEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztTQUN6RDtRQUVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztRQUNqRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQW5DYSwyQkFBa0IsR0FBaEMsVUFBaUMsV0FBZ0M7UUFDaEUsSUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzdELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVhLGtDQUF5QixHQUF2QyxVQUF3QyxXQUFnQyxFQUFFLGVBQXVCO1FBQ2hHLElBQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxJQUFJLFdBQVcsRUFBRTtZQUNoQixXQUFXLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztTQUM5QztJQUNGLENBQUM7SUEyQkQsWUFBWTtJQUNMLHFDQUFrQixHQUF6QjtRQUNDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWTtJQUNMLDBDQUF1QixHQUE5QjtRQUNDLElBQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzdELElBQU0sT0FBTyxHQUFvQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVwRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDckIsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDMUI7YUFDRDtTQUNEO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDcEIsQ0FBQztJQUVELFlBQVk7SUFDTCxnQ0FBYSxHQUFwQixVQUFxQixJQUF5QjtRQUM3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDekM7UUFFRCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVELFlBQVk7SUFDTCx1Q0FBb0IsR0FBM0IsVUFBNEIsSUFBeUIsRUFBRSxJQUFXO1FBQ2pFLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUVoQyxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxpREFBaUQ7UUFDakQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLG9DQUFpQixHQUF4QjtRQUNDLHNDQUFzQztRQUN0QyxJQUFNLGFBQWEsR0FBMkIsRUFBRSxDQUFDO1FBRWpELEtBQUssSUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUM3RCxJQUFNLE9BQU8sR0FBb0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEQsSUFBTSxZQUFZLEdBQ2pCLElBQUksbURBQW9CLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDLENBQUM7Z0JBRTdFLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakM7U0FDRDtRQUVELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVPLCtCQUFZLEdBQXBCO1FBQ0MsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1FBRXJDLG1EQUFtRDtRQUNuRCw2RkFBNkY7UUFDN0Ysd0VBQXdFO1FBQ3hFLEtBQUssSUFBTSxJQUFJLElBQUksOENBQW1CLEVBQUU7WUFDdkMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsOENBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BFLElBQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFekIsOERBQThEO2dCQUM5RCxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNyQyxTQUFTO2lCQUNUO2dCQUVELElBQU0sV0FBVyxHQUF1QixRQUFRLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3pFLElBQU0sVUFBVSxHQUNmLElBQUksaUNBQWUsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMvRSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUNoQztTQUNEO0lBQ0YsQ0FBQztJQUVPLGdEQUE2QixHQUFyQztRQUNDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRW5CLElBQU0sYUFBYSxHQUEyQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0UsS0FBSyxJQUFNLEdBQUcsSUFBSSxhQUFhLEVBQUU7WUFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUM3RCxJQUFNLFlBQVksR0FBeUIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUU5RCxJQUFNLElBQUksR0FBd0IsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUN6RCxJQUFNLFdBQVcsR0FBdUIsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMxRSxJQUFNLFVBQVUsR0FDZixJQUFJLGlDQUFlLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO2dCQUUvRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQzthQUNqRDtTQUNEO0lBQ0YsQ0FBQztJQWpJYyxlQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ1osYUFBSSxHQUFXLEVBQUUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3BDLFlBQUcsR0FBVyxFQUFFLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztJQUVoRCwrRkFBK0Y7SUFDaEYsMkJBQWtCLEdBQXlCO1FBQ3pELElBQUksa0JBQWtCLENBQUMsOENBQW1CLENBQUMsOENBQW1CLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFDNUYsSUFBSSxrQkFBa0IsQ0FBQyw4Q0FBbUIsQ0FBQyw4Q0FBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUUsSUFBSSxrQkFBa0IsQ0FBQyw4Q0FBbUIsQ0FBQyw4Q0FBbUIsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUMxRixJQUFJLGtCQUFrQixDQUFDLDhDQUFtQixDQUFDLDhDQUFtQixDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ25HLElBQUksa0JBQWtCLENBQUMsOENBQW1CLENBQUMsOENBQW1CLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7S0FDL0YsQ0FBQztJQXVISCxlQUFDO0NBQUE7QUEvSVksNEJBQVEiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9Hb3Zlcm5vci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdvdmVybmVkQ2hhbm5lbFR5cGUsIElHb3Zlcm5lZENoYW5uZWxEYXRhIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IEdvdmVybmVkQ2hhbm5lbCB9IGZyb20gXCIuL0dvdmVybmVkQ2hhbm5lbFwiO1xyXG5pbXBvcnQgeyBHb3Zlcm5lZENoYW5uZWxTdGF0ZSwgSUdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIgfSBmcm9tIFwiLi9Hb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuL1V0aWxzXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VIH0gPSBVdGlscztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUdvdmVybm9yIHtcclxuXHRnZXRBdmFpbGFibGVDaGFubmVsRGF0YSgpOiBJR292ZXJuZWRDaGFubmVsRGF0YVtdO1xyXG5cclxuXHRpc0NoYW5uZWxPcGVuKHR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGUpOiBib29sZWFuO1xyXG5cclxuXHRzdGFydENoYW5uZWxDb29sZG93bih0eXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlLCBkYXRlPzogRGF0ZSk6IHZvaWQ7XHJcblxyXG5cdHJlZnJlc2hDaGFubmVsRGF0YSgpOiB2b2lkO1xyXG5cclxuXHRzYXZlQ2hhbm5lbFN0YXRlcygpOiB2b2lkO1xyXG59XHJcblxyXG5jbGFzcyBEZWZhdWx0Q2hhbm5lbERhdGEge1xyXG5cdHB1YmxpYyBjb29sZG93blNlY29uZHM6IG51bWJlcjtcclxuXHRwdWJsaWMgbmFtZTogc3RyaW5nO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBjb29sZG93blNlY29uZHM6IG51bWJlcikge1xyXG5cdFx0dGhpcy5uYW1lID0gbmFtZTtcclxuXHRcdHRoaXMuY29vbGRvd25TZWNvbmRzID0gY29vbGRvd25TZWNvbmRzO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEdvdmVybm9yIGltcGxlbWVudHMgSUdvdmVybm9yIHtcclxuXHRwdWJsaWMgc3RhdGljIEdldENoYW5uZWxDb29sRG93bihjaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSkge1xyXG5cdFx0Y29uc3QgY2hhbm5lbERhdGEgPSBHb3Zlcm5vci5kZWZhdWx0Q2hhbm5lbERhdGFbY2hhbm5lbFR5cGVdO1xyXG5cdFx0cmV0dXJuIGNoYW5uZWxEYXRhID8gY2hhbm5lbERhdGEuY29vbGRvd25TZWNvbmRzIDogMDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgU2V0RGVmYXVsdENoYW5uZWxDb29sRG93bihjaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSwgY29vbGRvd25TZWNvbmRzOiBudW1iZXIpIHtcclxuXHRcdGNvbnN0IGNoYW5uZWxEYXRhID0gR292ZXJub3IuZGVmYXVsdENoYW5uZWxEYXRhW2NoYW5uZWxUeXBlXTtcclxuXHRcdGlmIChjaGFubmVsRGF0YSkge1xyXG5cdFx0XHRjaGFubmVsRGF0YS5jb29sZG93blNlY29uZHMgPSBjb29sZG93blNlY29uZHM7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHN0YXRpYyBtaW51dGUgPSA2MDtcclxuXHRwcml2YXRlIHN0YXRpYyBob3VyOiBudW1iZXIgPSA2MCAqIEdvdmVybm9yLm1pbnV0ZTtcclxuXHRwcml2YXRlIHN0YXRpYyBkYXk6IG51bWJlciA9IDI0ICogR292ZXJub3IuaG91cjtcclxuXHJcblx0Ly8gQXJyYXkgb2YgZGVmYXVsdCB2YWx1ZXMgZm9yIGVhY2ggY2hhbm5lbCB0eXBlLiBJbmRleGVkIGJ5IHRoZSBHb3Zlcm5lZENoYW5uZWxUeXBlIGVudW0gbmFtZS5cclxuXHRwcml2YXRlIHN0YXRpYyBkZWZhdWx0Q2hhbm5lbERhdGE6IERlZmF1bHRDaGFubmVsRGF0YVtdID0gW1xyXG5cdFx0bmV3IERlZmF1bHRDaGFubmVsRGF0YShHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGUuU3RhbmRhcmRdLCAxNCAqIEdvdmVybm9yLmRheSksXHJcblx0XHRuZXcgRGVmYXVsdENoYW5uZWxEYXRhKEdvdmVybmVkQ2hhbm5lbFR5cGVbR292ZXJuZWRDaGFubmVsVHlwZS5VcmdlbnRdLCAwKSxcclxuXHRcdG5ldyBEZWZhdWx0Q2hhbm5lbERhdGEoR292ZXJuZWRDaGFubmVsVHlwZVtHb3Zlcm5lZENoYW5uZWxUeXBlLkJhbm5lcl0sIDE1ICogR292ZXJub3IuZGF5KSxcclxuXHRcdG5ldyBEZWZhdWx0Q2hhbm5lbERhdGEoR292ZXJuZWRDaGFubmVsVHlwZVtHb3Zlcm5lZENoYW5uZWxUeXBlLlRlYWNoaW5nTWVzc2FnZV0sIDEgKiBHb3Zlcm5vci5ob3VyKSxcclxuXHRcdG5ldyBEZWZhdWx0Q2hhbm5lbERhdGEoR292ZXJuZWRDaGFubmVsVHlwZVtHb3Zlcm5lZENoYW5uZWxUeXBlLkJ1c2luZXNzQmFyXSwgMyAqIEdvdmVybm9yLmhvdXIpLFxyXG5cdF07XHJcblxyXG5cdHByaXZhdGUgY2hhbm5lbFN0YXRlUHJvdmlkZXI6IElHb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyO1xyXG5cdHByaXZhdGUgY2hhbm5lbHM6IEdvdmVybmVkQ2hhbm5lbFtdID0gW107XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihjaGFubmVsU3RhdGVQcm92aWRlcjogSUdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIpIHtcclxuXHRcdGlmICghY2hhbm5lbFN0YXRlUHJvdmlkZXIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiY2hhbm5lbFN0YXRlUHJvdmlkZXIgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmNoYW5uZWxTdGF0ZVByb3ZpZGVyID0gY2hhbm5lbFN0YXRlUHJvdmlkZXI7XHJcblx0XHR0aGlzLmxvYWRDaGFubmVscygpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHJlZnJlc2hDaGFubmVsRGF0YSgpOiB2b2lkIHtcclxuXHRcdHRoaXMubG9hZENoYW5uZWxzKCk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0QXZhaWxhYmxlQ2hhbm5lbERhdGEoKTogSUdvdmVybmVkQ2hhbm5lbERhdGFbXSB7XHJcblx0XHRjb25zdCBjaGFubmVsRGF0YTogSUdvdmVybmVkQ2hhbm5lbERhdGFbXSA9IFtdO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2hhbm5lbHMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNoYW5uZWxzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgY2hhbm5lbDogR292ZXJuZWRDaGFubmVsID0gdGhpcy5jaGFubmVsc1trZXldO1xyXG5cclxuXHRcdFx0XHRpZiAoY2hhbm5lbC5pc09wZW4oKSkge1xyXG5cdFx0XHRcdFx0Y2hhbm5lbERhdGEucHVzaChjaGFubmVsKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gY2hhbm5lbERhdGE7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgaXNDaGFubmVsT3Blbih0eXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlKTogYm9vbGVhbiB7XHJcblx0XHRpZiAoaXNOT1UodHlwZSkpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidHlwZSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLmNoYW5uZWxzW3R5cGVdLmlzT3BlbigpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHN0YXJ0Q2hhbm5lbENvb2xkb3duKHR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGUsIGRhdGU/OiBEYXRlKTogdm9pZCB7XHJcblx0XHRpZiAoaXNOT1UodHlwZSkpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidHlwZSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRhdGUgPSBkYXRlID8gZGF0ZSA6IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0Ly8gU3RhcnQgdGhlIGNvb2wgZG93blxyXG5cdFx0dGhpcy5jaGFubmVsc1t0eXBlXS5zZXRDb29sZG93blN0YXJ0VGltZShkYXRlKTtcclxuXHJcblx0XHQvLyBTYXZlIHRoZSBuZXcgY2hhbm5lbCBzdGF0ZSBmb3IgZnV0dXJlIHNlc3Npb25zXHJcblx0XHR0aGlzLnNhdmVDaGFubmVsU3RhdGVzKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc2F2ZUNoYW5uZWxTdGF0ZXMoKTogdm9pZCB7XHJcblx0XHQvLyBCdWlsZCB1cCB0aGUgbGlzdCBvZiBjaGFubmVsIHN0YXRlc1xyXG5cdFx0Y29uc3QgY2hhbm5lbFN0YXRlczogR292ZXJuZWRDaGFubmVsU3RhdGVbXSA9IFtdO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHRoaXMuY2hhbm5lbHMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLmNoYW5uZWxzLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgY2hhbm5lbDogR292ZXJuZWRDaGFubmVsID0gdGhpcy5jaGFubmVsc1trZXldO1xyXG5cdFx0XHRcdGNvbnN0IGNoYW5uZWxTdGF0ZTogR292ZXJuZWRDaGFubmVsU3RhdGUgPVxyXG5cdFx0XHRcdFx0bmV3IEdvdmVybmVkQ2hhbm5lbFN0YXRlKGNoYW5uZWwuZ2V0VHlwZSgpLCBjaGFubmVsLmdldENvb2xkb3duU3RhcnRUaW1lKCkpO1xyXG5cclxuXHRcdFx0XHRjaGFubmVsU3RhdGVzLnB1c2goY2hhbm5lbFN0YXRlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuY2hhbm5lbFN0YXRlUHJvdmlkZXIuc2F2ZShjaGFubmVsU3RhdGVzKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9hZENoYW5uZWxzKCk6IHZvaWQge1xyXG5cdFx0Ly8gTG9hZCB1cCBzdGF0ZSBmcm9tIHByZXZpb3VzIHNlc3Npb25zXHJcblx0XHR0aGlzLmxvYWRDaGFubmVsU3RhdGVzRnJvbVByb3ZpZGVyKCk7XHJcblxyXG5cdFx0Ly8gRm9yIGFueSBtaXNzaW5nIGNoYW5uZWxzLCBpbml0IHRoZW0gZnJvbSBzY3JhdGNoXHJcblx0XHQvLyBUaGVyZSdzIG5vIHN0cmFpZ2h0Zm9yd2FyZCB3YXkgdG8gaXRlcmF0ZSBlbnVtcywgd2UgbmVlZCB0byBpdGVyYXRlIHRocm91Z2ggdGhlIGVudW0gYXJyYXlcclxuXHRcdC8vICAgIGZpbHRlcmluZyBvdXQganVzdCB0aGUgbnVtZXJpYyBlbnVtIHZhbHVlcyAoZXhjbHVkaW5nIGVudW0gbmFtZXMpLlxyXG5cdFx0Zm9yIChjb25zdCBpdGVtIGluIEdvdmVybmVkQ2hhbm5lbFR5cGUpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChHb3Zlcm5lZENoYW5uZWxUeXBlLCBpdGVtKSkge1xyXG5cdFx0XHRcdGNvbnN0IGtleSA9IE51bWJlcihpdGVtKTtcclxuXHJcblx0XHRcdFx0Ly8gc2tpcCBpZiBrZXkgaXMgbm90IG51bWVyaWMgZW51bSB2YWx1ZSwgb3IgaWYgYWxyZWFkeSBleGlzdHNcclxuXHRcdFx0XHRpZiAoaXNOYU4oa2V5KSB8fCB0aGlzLmNoYW5uZWxzW2tleV0pIHtcclxuXHRcdFx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y29uc3QgZGVmYXVsdERhdGE6IERlZmF1bHRDaGFubmVsRGF0YSA9IEdvdmVybm9yLmRlZmF1bHRDaGFubmVsRGF0YVtrZXldO1xyXG5cdFx0XHRcdGNvbnN0IG5ld0NoYW5uZWw6IEdvdmVybmVkQ2hhbm5lbCA9XHJcblx0XHRcdFx0XHRuZXcgR292ZXJuZWRDaGFubmVsKGtleSwgZGVmYXVsdERhdGEubmFtZSwgZGVmYXVsdERhdGEuY29vbGRvd25TZWNvbmRzLCBudWxsKTtcclxuXHRcdFx0XHR0aGlzLmNoYW5uZWxzW2tleV0gPSBuZXdDaGFubmVsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGxvYWRDaGFubmVsU3RhdGVzRnJvbVByb3ZpZGVyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5jaGFubmVscyA9IFtdO1xyXG5cclxuXHRcdGNvbnN0IGNoYW5uZWxTdGF0ZXM6IEdvdmVybmVkQ2hhbm5lbFN0YXRlW10gPSB0aGlzLmNoYW5uZWxTdGF0ZVByb3ZpZGVyLmxvYWQoKTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiBjaGFubmVsU3RhdGVzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbm5lbFN0YXRlcywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IGNoYW5uZWxTdGF0ZTogR292ZXJuZWRDaGFubmVsU3RhdGUgPSBjaGFubmVsU3RhdGVzW2tleV07XHJcblxyXG5cdFx0XHRcdGNvbnN0IHR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGUgPSBjaGFubmVsU3RhdGUuZ2V0VHlwZSgpO1xyXG5cdFx0XHRcdGNvbnN0IGRlZmF1bHREYXRhOiBEZWZhdWx0Q2hhbm5lbERhdGEgPSBHb3Zlcm5vci5kZWZhdWx0Q2hhbm5lbERhdGFbdHlwZV07XHJcblx0XHRcdFx0Y29uc3QgbmV3Q2hhbm5lbDogR292ZXJuZWRDaGFubmVsID1cclxuXHRcdFx0XHRcdG5ldyBHb3Zlcm5lZENoYW5uZWwodHlwZSwgZGVmYXVsdERhdGEubmFtZSwgZGVmYXVsdERhdGEuY29vbGRvd25TZWNvbmRzLCBjaGFubmVsU3RhdGUuZ2V0Q29vbGRvd25TdGFydFRpbWUoKSk7XHJcblxyXG5cdFx0XHRcdHRoaXMuY2hhbm5lbHNbbmV3Q2hhbm5lbC5nZXRUeXBlKCldID0gbmV3Q2hhbm5lbDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Governor.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/IndexedTracker.js": /*!***************************************************!*\ !*** ../FloodgateCore/dist/src/IndexedTracker.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IndexedTracker = void 0;\nvar IndexedTracker = /** @class */ (function () {\n function IndexedTracker() {\n }\n return IndexedTracker;\n}());\nexports.IndexedTracker = IndexedTracker;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL0luZGV4ZWRUcmFja2VyLnRzPzE5ZmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7SUFBQTtJQUlBLENBQUM7SUFBRCxxQkFBQztBQUFELENBQUM7QUFKWSx3Q0FBYyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL0luZGV4ZWRUcmFja2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEFjdGl2aXR5VHJhY2tlciBmcm9tIFwiLi9BY3Rpdml0eVRyYWNrZXJcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBJbmRleGVkVHJhY2tlciB7XHJcblx0cHVibGljIGluZGV4OiBudW1iZXI7XHJcblx0cHVibGljIHN1cnZleUlkOiBzdHJpbmc7XHJcblx0cHVibGljIHRyYWNrZXI6IEFjdGl2aXR5VHJhY2tlcjtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/IndexedTracker.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/OrchestrationEngine/Api.js": /*!************************************************************!*\ !*** ../FloodgateCore/dist/src/OrchestrationEngine/Api.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CampaignBusinessLevel = exports.GovernanceDecision = void 0;\nvar GovernanceDecision;\n(function (GovernanceDecision) {\n GovernanceDecision[GovernanceDecision[\"Approved\"] = 0] = \"Approved\";\n GovernanceDecision[GovernanceDecision[\"Rejected\"] = 1] = \"Rejected\";\n GovernanceDecision[GovernanceDecision[\"Error\"] = 2] = \"Error\";\n})(GovernanceDecision = exports.GovernanceDecision || (exports.GovernanceDecision = {}));\nvar CampaignBusinessLevel;\n(function (CampaignBusinessLevel) {\n CampaignBusinessLevel[CampaignBusinessLevel[\"None\"] = 0] = \"None\";\n CampaignBusinessLevel[CampaignBusinessLevel[\"Critical\"] = 1] = \"Critical\";\n})(CampaignBusinessLevel = exports.CampaignBusinessLevel || (exports.CampaignBusinessLevel = {}));\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09yY2hlc3RyYXRpb25FbmdpbmUvQXBpLnRzPzQ0NGQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsSUFBWSxrQkFJWDtBQUpELFdBQVksa0JBQWtCO0lBQzdCLG1FQUFRO0lBQ1IsbUVBQVE7SUFDUiw2REFBSztBQUNOLENBQUMsRUFKVyxrQkFBa0IsR0FBbEIsMEJBQWtCLEtBQWxCLDBCQUFrQixRQUk3QjtBQU9ELElBQVkscUJBR1g7QUFIRCxXQUFZLHFCQUFxQjtJQUNoQyxpRUFBUTtJQUNSLHlFQUFZO0FBQ2IsQ0FBQyxFQUhXLHFCQUFxQixHQUFyQiw2QkFBcUIsS0FBckIsNkJBQXFCLFFBR2hDIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvZGlzdC9zcmMvT3JjaGVzdHJhdGlvbkVuZ2luZS9BcGkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEdvdmVybmVkQ2hhbm5lbFR5cGUsXHJcblx0SUdvdmVybmFuY2VQYXJhbWV0ZXJzLFxyXG5cdElHb3Zlcm5hbmNlU2VydmljZVJlc3VsdCxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0IHsgSUFwcEdvdmVybmFuY2VDYW1wYWlnbkZvcm0gfSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUFwcEdvdmVybmFuY2VQcm92aWRlclwiO1xyXG5cclxuZXhwb3J0IGVudW0gR292ZXJuYW5jZURlY2lzaW9uIHtcclxuXHRBcHByb3ZlZCxcclxuXHRSZWplY3RlZCxcclxuXHRFcnJvclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElHb3Zlcm5hbmNlRGVjaXNpb24ge1xyXG5cdGdvdmVybmFuY2VEZWNpc2lvbjogR292ZXJuYW5jZURlY2lzaW9uO1xyXG5cdHNlcnZpY2VSZXN1bHQ/OiBJR292ZXJuYW5jZVNlcnZpY2VSZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIENhbXBhaWduQnVzaW5lc3NMZXZlbCB7XHJcblx0Tm9uZSA9IDAsXHJcblx0Q3JpdGljYWwgPSAxXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSU9yY2hlc3RyYXRpb25FbmdpbmUge1xyXG5cdGdldERlY2lzaW9uKGJ1c2luZXNzTGV2ZWw6IENhbXBhaWduQnVzaW5lc3NMZXZlbCwgZ292ZXJuYW5jZVBhcmFtczogSUdvdmVybmFuY2VQYXJhbWV0ZXJzKTogUHJvbWlzZTxJR292ZXJuYW5jZURlY2lzaW9uPjtcclxuXHRpc1N1cnZleVRyYWNrYWJsZShjYW1wYWlnbkZvcm06IElBcHBHb3Zlcm5hbmNlQ2FtcGFpZ25Gb3JtKTogYm9vbGVhbjtcclxuXHRnZXRBdmFpbGFibGVDaGFubmVscygpOiBHb3Zlcm5lZENoYW5uZWxUeXBlW107XHJcblx0bWVyZ2VBbmRTYXZlKCk6IHZvaWQ7XHJcblxyXG5cdHN0YXJ0Q2hhbm5lbENvb2xkb3duKGNoYW5uZWxUeXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlLCBkYXRlVGltZT86IERhdGUpOiB2b2lkXHJcblxyXG5cdGlzQ2hhbm5lbE9wZW4odHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSwgcmVmcmVzaERhdGE/OiBib29sZWFuKTogYm9vbGVhbjtcclxuXHRpc0NoYW5uZWxHb3Zlcm5hbmNlRW5hYmxlZChnb3Zlcm5lZENoYW5uZWxUeXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlKTogYm9vbGVhbjtcclxuXHJcblx0c2hvdWxkRm9yY2VQZXJtaXNzaW9uKCk6IGJvb2xlYW47XHJcblx0Z2V0U3RhdGVGb3JUZWxlbWV0cnkoKTogYW55O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/OrchestrationEngine/Api.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/OrchestrationEngine/OrchestrationEngine.js": /*!****************************************************************************!*\ !*** ../FloodgateCore/dist/src/OrchestrationEngine/OrchestrationEngine.js ***! \****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OrchestrationEngine = void 0;\nvar Governor_1 = __webpack_require__(/*! ../Governor */ \"../FloodgateCore/dist/src/Governor.js\");\nvar Api_1 = __webpack_require__(/*! ./Api */ \"../FloodgateCore/dist/src/OrchestrationEngine/Api.js\");\nvar OrchestrationEngine = /** @class */ (function () {\n function OrchestrationEngine(governanceServiceClient, governedChannelStateProvider, appGovernanceProvider) {\n if (!governanceServiceClient) {\n throw new Error(\"Invalid governanceServiceClient\");\n }\n if (!governedChannelStateProvider) {\n throw new Error(\"Invalid governanceServiceClient\");\n }\n this.governanceServiceClient = governanceServiceClient;\n this.channelGovernanceProvider = new Governor_1.Governor(governedChannelStateProvider);\n this.appGovernanceProvider = appGovernanceProvider;\n }\n OrchestrationEngine.prototype.getDecision = function (businessLevel, governanceParams) {\n return __awaiter(this, void 0, void 0, function () {\n var defaultDecision, serviceResult, governanceDecision;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!governanceParams) {\n throw new Error(\"Invalid governanceParams\");\n }\n defaultDecision = {\n governanceDecision: Api_1.GovernanceDecision.Approved,\n serviceResult: {\n permission: true\n }\n };\n // Always allow business critical campaigns\n if (businessLevel === Api_1.CampaignBusinessLevel.Critical) {\n return [2 /*return*/, defaultDecision];\n }\n // Allow calls only on the channels that are governed\n if (!this.governanceServiceClient.isEnabled(governanceParams.channelType)) {\n return [2 /*return*/, defaultDecision];\n }\n // Update governance cooldown if the value is not set\n if (governanceParams.userCooldown < 0) {\n governanceParams.userCooldown = Governor_1.Governor.GetChannelCoolDown(governanceParams.channelType);\n }\n return [4 /*yield*/, this.governanceServiceClient.checkGovernancePermitAsync(governanceParams)];\n case 1:\n serviceResult = _a.sent();\n governanceDecision = Api_1.GovernanceDecision.Error;\n if (serviceResult && !serviceResult.error) {\n governanceDecision = serviceResult.permission ? Api_1.GovernanceDecision.Approved : Api_1.GovernanceDecision.Rejected;\n }\n return [2 /*return*/, {\n governanceDecision: governanceDecision,\n serviceResult: serviceResult\n }];\n }\n });\n });\n };\n OrchestrationEngine.prototype.isSurveyTrackable = function (campaignForm) {\n return !this.appGovernanceProvider || this.appGovernanceProvider.getDecision(campaignForm);\n };\n OrchestrationEngine.prototype.getAvailableChannels = function () {\n var channels = this.channelGovernanceProvider.getAvailableChannelData();\n var channelTypes = [];\n channels.forEach(function (channel) {\n if (channel) {\n channelTypes.push(channel.getType());\n }\n });\n return channelTypes;\n };\n OrchestrationEngine.prototype.mergeAndSave = function () {\n this.channelGovernanceProvider.saveChannelStates();\n };\n OrchestrationEngine.prototype.isChannelOpen = function (governedChannelType, refreshData) {\n if (refreshData === void 0) { refreshData = true; }\n // Refresh channels\n if (refreshData) {\n this.channelGovernanceProvider.refreshChannelData();\n }\n return this.channelGovernanceProvider.isChannelOpen(governedChannelType);\n };\n OrchestrationEngine.prototype.isChannelGovernanceEnabled = function (governedChannelType) {\n return this.governanceServiceClient.isEnabled(governedChannelType);\n };\n OrchestrationEngine.prototype.startChannelCooldown = function (channelType, dateTime) {\n this.channelGovernanceProvider.startChannelCooldown(channelType, dateTime);\n };\n OrchestrationEngine.prototype.shouldForcePermission = function () {\n return this.governanceServiceClient.shouldForceDisplay();\n };\n OrchestrationEngine.prototype.getStateForTelemetry = function () {\n return this.governanceServiceClient.getClientState();\n };\n return OrchestrationEngine;\n}());\nexports.OrchestrationEngine = OrchestrationEngine;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL09yY2hlc3RyYXRpb25FbmdpbmUvT3JjaGVzdHJhdGlvbkVuZ2luZS50cz84ZjllIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9BLGlHQUF1QztBQUV2QyxxR0FBNkc7QUFHN0c7SUFLQyw2QkFBbUIsdUJBQWlELEVBQ25FLDRCQUEyRCxFQUMzRCxxQkFBNkM7UUFFN0MsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyw0QkFBNEIsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDbkQ7UUFFRCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7UUFDdkQsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksbUJBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxxQkFBcUIsQ0FBQztJQUNwRCxDQUFDO0lBRVkseUNBQVcsR0FBeEIsVUFBeUIsYUFBb0MsRUFBRSxnQkFBdUM7Ozs7Ozt3QkFDckcsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzRCQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7eUJBQzVDO3dCQUVLLGVBQWUsR0FBd0I7NEJBQzVDLGtCQUFrQixFQUFFLHdCQUFrQixDQUFDLFFBQVE7NEJBQy9DLGFBQWEsRUFBRTtnQ0FDZCxVQUFVLEVBQUUsSUFBSTs2QkFDaEI7eUJBQ0QsQ0FBQzt3QkFFRiwyQ0FBMkM7d0JBQzNDLElBQUksYUFBYSxLQUFLLDJCQUFxQixDQUFDLFFBQVEsRUFBRTs0QkFDckQsc0JBQU8sZUFBZSxFQUFDO3lCQUN2Qjt3QkFFRCxxREFBcUQ7d0JBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxFQUFFOzRCQUMxRSxzQkFBTyxlQUFlLEVBQUM7eUJBQ3ZCO3dCQUVELHFEQUFxRDt3QkFDckQsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxFQUFFOzRCQUN0QyxnQkFBZ0IsQ0FBQyxZQUFZLEdBQUcsbUJBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQzt5QkFDMUY7d0JBR3FCLHFCQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQywwQkFBMEIsQ0FBQyxnQkFBZ0IsQ0FBQzs7d0JBQS9GLGFBQWEsR0FBRyxTQUErRTt3QkFDakcsa0JBQWtCLEdBQXVCLHdCQUFrQixDQUFDLEtBQUssQ0FBQzt3QkFDdEUsSUFBSSxhQUFhLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFOzRCQUMxQyxrQkFBa0IsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyx3QkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUFrQixDQUFDLFFBQVEsQ0FBQzt5QkFDMUc7d0JBRUQsc0JBQU87Z0NBQ04sa0JBQWtCO2dDQUNsQixhQUFhOzZCQUNiLEVBQUM7Ozs7S0FDRjtJQUVNLCtDQUFpQixHQUF4QixVQUF5QixZQUF3QztRQUNoRSxPQUFPLENBQUMsSUFBSSxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVNLGtEQUFvQixHQUEzQjtRQUNDLElBQU0sUUFBUSxHQUEyQixJQUFJLENBQUMseUJBQXlCLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNsRyxJQUFNLFlBQVksR0FBMEIsRUFBRSxDQUFDO1FBRS9DLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBQyxPQUFPO1lBQ3hCLElBQUksT0FBTyxFQUFFO2dCQUNaLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDckM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sWUFBWSxDQUFDO0lBQ3JCLENBQUM7SUFFTSwwQ0FBWSxHQUFuQjtRQUNDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTSwyQ0FBYSxHQUFwQixVQUFxQixtQkFBd0MsRUFBRSxXQUFrQjtRQUFsQixnREFBa0I7UUFDaEYsbUJBQW1CO1FBQ25CLElBQUksV0FBVyxFQUFFO1lBQ2hCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVNLHdEQUEwQixHQUFqQyxVQUFrQyxtQkFBd0M7UUFDekUsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVNLGtEQUFvQixHQUEzQixVQUE0QixXQUFnQyxFQUFFLFFBQWM7UUFDM0UsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU0sbURBQXFCLEdBQTVCO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUMxRCxDQUFDO0lBRU0sa0RBQW9CLEdBQTNCO1FBQ0MsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUNGLDBCQUFDO0FBQUQsQ0FBQztBQTNHWSxrREFBbUIiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9PcmNoZXN0cmF0aW9uRW5naW5lL09yY2hlc3RyYXRpb25FbmdpbmUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEdvdmVybmVkQ2hhbm5lbFR5cGUsXHJcblx0SUFwcEdvdmVybmFuY2VQcm92aWRlcixcclxuXHRJR292ZXJuYW5jZVBhcmFtZXRlcnMsXHJcblx0SUdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LFxyXG5cdElHb3Zlcm5lZENoYW5uZWxEYXRhLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBHb3Zlcm5vciB9IGZyb20gXCIuLi9Hb3Zlcm5vclwiO1xyXG5pbXBvcnQgeyBJR292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlciB9IGZyb20gXCIuLi9Hb3Zlcm5lZENoYW5uZWxTdGF0ZVByb3ZpZGVyXCI7XHJcbmltcG9ydCB7IENhbXBhaWduQnVzaW5lc3NMZXZlbCwgR292ZXJuYW5jZURlY2lzaW9uLCBJR292ZXJuYW5jZURlY2lzaW9uLCBJT3JjaGVzdHJhdGlvbkVuZ2luZSB9IGZyb20gXCIuL0FwaVwiO1xyXG5pbXBvcnQgeyBJQXBwR292ZXJuYW5jZUNhbXBhaWduRm9ybSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JQXBwR292ZXJuYW5jZVByb3ZpZGVyXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgT3JjaGVzdHJhdGlvbkVuZ2luZSBpbXBsZW1lbnRzIElPcmNoZXN0cmF0aW9uRW5naW5lIHtcclxuXHRwcml2YXRlIGdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50OiBJR292ZXJuYW5jZVNlcnZpY2VDbGllbnQ7XHJcblx0cHJpdmF0ZSBjaGFubmVsR292ZXJuYW5jZVByb3ZpZGVyOiBHb3Zlcm5vcjtcclxuXHRwcml2YXRlIGFwcEdvdmVybmFuY2VQcm92aWRlcjogSUFwcEdvdmVybmFuY2VQcm92aWRlcjtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50OiBJR292ZXJuYW5jZVNlcnZpY2VDbGllbnQsIFxyXG5cdFx0Z292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlcjogSUdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIsXHJcblx0XHRhcHBHb3Zlcm5hbmNlUHJvdmlkZXI6IElBcHBHb3Zlcm5hbmNlUHJvdmlkZXIpIHtcclxuXHJcblx0XHRpZiAoIWdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50KSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZ292ZXJuYW5jZVNlcnZpY2VDbGllbnRcIik7XHJcblx0XHR9XHJcblx0XHJcblx0XHRpZiAoIWdvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBnb3Zlcm5hbmNlU2VydmljZUNsaWVudFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50ID0gZ292ZXJuYW5jZVNlcnZpY2VDbGllbnQ7XHJcblx0XHR0aGlzLmNoYW5uZWxHb3Zlcm5hbmNlUHJvdmlkZXIgPSBuZXcgR292ZXJub3IoZ292ZXJuZWRDaGFubmVsU3RhdGVQcm92aWRlcik7XHJcblx0XHR0aGlzLmFwcEdvdmVybmFuY2VQcm92aWRlciA9IGFwcEdvdmVybmFuY2VQcm92aWRlcjtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBnZXREZWNpc2lvbihidXNpbmVzc0xldmVsOiBDYW1wYWlnbkJ1c2luZXNzTGV2ZWwsIGdvdmVybmFuY2VQYXJhbXM6IElHb3Zlcm5hbmNlUGFyYW1ldGVycyk6IFByb21pc2U8SUdvdmVybmFuY2VEZWNpc2lvbj4ge1xyXG5cdFx0aWYgKCFnb3Zlcm5hbmNlUGFyYW1zKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkludmFsaWQgZ292ZXJuYW5jZVBhcmFtc1wiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBkZWZhdWx0RGVjaXNpb246IElHb3Zlcm5hbmNlRGVjaXNpb24gPSB7XHJcblx0XHRcdGdvdmVybmFuY2VEZWNpc2lvbjogR292ZXJuYW5jZURlY2lzaW9uLkFwcHJvdmVkLFxyXG5cdFx0XHRzZXJ2aWNlUmVzdWx0OiB7XHJcblx0XHRcdFx0cGVybWlzc2lvbjogdHJ1ZVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdC8vIEFsd2F5cyBhbGxvdyBidXNpbmVzcyBjcml0aWNhbCBjYW1wYWlnbnNcclxuXHRcdGlmIChidXNpbmVzc0xldmVsID09PSBDYW1wYWlnbkJ1c2luZXNzTGV2ZWwuQ3JpdGljYWwpIHtcclxuXHRcdFx0cmV0dXJuIGRlZmF1bHREZWNpc2lvbjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBbGxvdyBjYWxscyBvbmx5IG9uIHRoZSBjaGFubmVscyB0aGF0IGFyZSBnb3Zlcm5lZFxyXG5cdFx0aWYgKCF0aGlzLmdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LmlzRW5hYmxlZChnb3Zlcm5hbmNlUGFyYW1zLmNoYW5uZWxUeXBlKSkge1xyXG5cdFx0XHRyZXR1cm4gZGVmYXVsdERlY2lzaW9uO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFVwZGF0ZSBnb3Zlcm5hbmNlIGNvb2xkb3duIGlmIHRoZSB2YWx1ZSBpcyBub3Qgc2V0XHJcblx0XHRpZiAoZ292ZXJuYW5jZVBhcmFtcy51c2VyQ29vbGRvd24gPCAwKSB7XHJcblx0XHRcdGdvdmVybmFuY2VQYXJhbXMudXNlckNvb2xkb3duID0gR292ZXJub3IuR2V0Q2hhbm5lbENvb2xEb3duKGdvdmVybmFuY2VQYXJhbXMuY2hhbm5lbFR5cGUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGNoZWNrIHdpdGggZ292ZXJuYW5jZSBzZXJ2aWNlXHJcblx0XHRjb25zdCBzZXJ2aWNlUmVzdWx0ID0gYXdhaXQgdGhpcy5nb3Zlcm5hbmNlU2VydmljZUNsaWVudC5jaGVja0dvdmVybmFuY2VQZXJtaXRBc3luYyhnb3Zlcm5hbmNlUGFyYW1zKTtcclxuXHRcdGxldCBnb3Zlcm5hbmNlRGVjaXNpb246IEdvdmVybmFuY2VEZWNpc2lvbiA9IEdvdmVybmFuY2VEZWNpc2lvbi5FcnJvcjtcclxuXHRcdGlmIChzZXJ2aWNlUmVzdWx0ICYmICFzZXJ2aWNlUmVzdWx0LmVycm9yKSB7XHJcblx0XHRcdGdvdmVybmFuY2VEZWNpc2lvbiA9IHNlcnZpY2VSZXN1bHQucGVybWlzc2lvbiA/IEdvdmVybmFuY2VEZWNpc2lvbi5BcHByb3ZlZCA6IEdvdmVybmFuY2VEZWNpc2lvbi5SZWplY3RlZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRnb3Zlcm5hbmNlRGVjaXNpb24sXHJcblx0XHRcdHNlcnZpY2VSZXN1bHRcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgaXNTdXJ2ZXlUcmFja2FibGUoY2FtcGFpZ25Gb3JtOiBJQXBwR292ZXJuYW5jZUNhbXBhaWduRm9ybSk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuICF0aGlzLmFwcEdvdmVybmFuY2VQcm92aWRlciB8fCB0aGlzLmFwcEdvdmVybmFuY2VQcm92aWRlci5nZXREZWNpc2lvbihjYW1wYWlnbkZvcm0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldEF2YWlsYWJsZUNoYW5uZWxzKCk6IEdvdmVybmVkQ2hhbm5lbFR5cGVbXSB7XHJcblx0XHRjb25zdCBjaGFubmVsczogSUdvdmVybmVkQ2hhbm5lbERhdGFbXSA9IHRoaXMuY2hhbm5lbEdvdmVybmFuY2VQcm92aWRlci5nZXRBdmFpbGFibGVDaGFubmVsRGF0YSgpO1xyXG5cdFx0Y29uc3QgY2hhbm5lbFR5cGVzOiBHb3Zlcm5lZENoYW5uZWxUeXBlW10gPSBbXTtcclxuXHJcblx0XHRjaGFubmVscy5mb3JFYWNoKChjaGFubmVsKSA9PiB7XHJcblx0XHRcdGlmIChjaGFubmVsKSB7XHJcblx0XHRcdFx0Y2hhbm5lbFR5cGVzLnB1c2goY2hhbm5lbC5nZXRUeXBlKCkpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gY2hhbm5lbFR5cGVzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIG1lcmdlQW5kU2F2ZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2hhbm5lbEdvdmVybmFuY2VQcm92aWRlci5zYXZlQ2hhbm5lbFN0YXRlcygpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGlzQ2hhbm5lbE9wZW4oZ292ZXJuZWRDaGFubmVsVHlwZTogR292ZXJuZWRDaGFubmVsVHlwZSwgcmVmcmVzaERhdGEgPSB0cnVlKTogYm9vbGVhbiB7XHJcblx0XHQvLyBSZWZyZXNoIGNoYW5uZWxzXHJcblx0XHRpZiAocmVmcmVzaERhdGEpIHtcclxuXHRcdFx0dGhpcy5jaGFubmVsR292ZXJuYW5jZVByb3ZpZGVyLnJlZnJlc2hDaGFubmVsRGF0YSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLmNoYW5uZWxHb3Zlcm5hbmNlUHJvdmlkZXIuaXNDaGFubmVsT3Blbihnb3Zlcm5lZENoYW5uZWxUeXBlKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBpc0NoYW5uZWxHb3Zlcm5hbmNlRW5hYmxlZChnb3Zlcm5lZENoYW5uZWxUeXBlOiBHb3Zlcm5lZENoYW5uZWxUeXBlKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5nb3Zlcm5hbmNlU2VydmljZUNsaWVudC5pc0VuYWJsZWQoZ292ZXJuZWRDaGFubmVsVHlwZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhcnRDaGFubmVsQ29vbGRvd24oY2hhbm5lbFR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGUsIGRhdGVUaW1lOiBEYXRlKTogdm9pZCB7XHJcblx0XHR0aGlzLmNoYW5uZWxHb3Zlcm5hbmNlUHJvdmlkZXIuc3RhcnRDaGFubmVsQ29vbGRvd24oY2hhbm5lbFR5cGUsIGRhdGVUaW1lKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzaG91bGRGb3JjZVBlcm1pc3Npb24oKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5nb3Zlcm5hbmNlU2VydmljZUNsaWVudC5zaG91bGRGb3JjZURpc3BsYXkoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRTdGF0ZUZvclRlbGVtZXRyeSgpOiBhbnkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZ292ZXJuYW5jZVNlcnZpY2VDbGllbnQuZ2V0Q2xpZW50U3RhdGUoKTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/OrchestrationEngine/OrchestrationEngine.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/StateProviderHelpers.js": /*!*********************************************************!*\ !*** ../FloodgateCore/dist/src/StateProviderHelpers.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MergeAndUpdateSurveyActivationStats = exports.MergeAndUpdateCampaignStates = exports.MergeAndUpdateGovernedChannelStates = exports.makeSettingItemValue = exports.extractSettingItemValueSubString = exports.ItemCollection = void 0;\nvar SurveyStatCollectionActivation_1 = __webpack_require__(/*! ../src/SurveyStatCollectionActivation */ \"../FloodgateCore/dist/src/SurveyStatCollectionActivation.js\");\nvar ItemCollection = /** @class */ (function () {\n function ItemCollection() {\n this.items = {};\n this.itemCount = 0;\n }\n ItemCollection.prototype.add = function (key, value) {\n if (!this.items[key]) {\n this.itemCount++;\n }\n this.items[key] = value;\n };\n ItemCollection.prototype.find = function (key) {\n return this.items[key];\n };\n ItemCollection.prototype.remove = function (key) {\n var item = this.items[key];\n if (item) {\n delete this.items[key];\n this.itemCount--;\n }\n return item;\n };\n ItemCollection.prototype.count = function () {\n return this.itemCount;\n };\n return ItemCollection;\n}());\nexports.ItemCollection = ItemCollection;\nfunction extractSettingItemValueSubString(itemValue) {\n if (!itemValue) {\n return itemValue;\n }\n var beginPos = itemValue.indexOf(SETTING_DATA_OPEN_TAG) + SETTING_DATA_OPEN_TAG.length;\n var endPos = itemValue.indexOf(SETTING_DATA_CLOSE_TAG);\n if (beginPos < 0 || endPos < 0) {\n return itemValue;\n }\n return itemValue.substring(beginPos, endPos);\n}\nexports.extractSettingItemValueSubString = extractSettingItemValueSubString;\nfunction makeSettingItemValue(value) {\n if (!value) {\n return SETTING_DATA_OPEN_TAG + SETTING_DATA_CLOSE_TAG;\n }\n return SETTING_DATA_OPEN_TAG + value + SETTING_DATA_CLOSE_TAG;\n}\nexports.makeSettingItemValue = makeSettingItemValue;\nfunction MergeAndUpdateGovernedChannelStates(previousStates, currentStates) {\n var stateCollections = new ItemCollection();\n // Todo: move the following into a generic method to be shared\n if (!previousStates && !currentStates) {\n return stateCollections;\n }\n if (!previousStates) {\n stateCollections.add(0 /* Merged */, currentStates);\n return stateCollections;\n }\n if (!currentStates) {\n stateCollections.add(0 /* Merged */, previousStates);\n stateCollections.add(1 /* ToBeUpdated */, previousStates);\n return stateCollections;\n }\n var mergedStates = [];\n var toBeUpdatedStates = [];\n if (previousStates) {\n previousStates.forEach(function (previousState) {\n // find matching in current states\n var pos = -1;\n var currentState;\n for (var i = 0; i < currentStates.length; i++) {\n currentState = currentStates[i];\n if (currentState.getType() === previousState.getType()) {\n pos = i;\n break;\n }\n }\n // if previous state is not in current states\n if (pos === -1) {\n // add previous state to merged\n mergedStates.push(previousState);\n // add previous state to toUpdated\n toBeUpdatedStates.push(previousState);\n return;\n }\n // if ActivationTimeUtc of previous is greater than current\n if (previousState.getCooldownStartTime() > currentState.getCooldownStartTime()) {\n // add previous state to merged\n mergedStates.push(previousState);\n // add previous state to toUpdated\n toBeUpdatedStates.push(previousState);\n }\n else {\n // add current state to merged\n mergedStates.push(currentState);\n }\n // remove state from current states\n currentStates.splice(pos, 1);\n });\n }\n // for the remaining current states\n if (currentStates) {\n currentStates.forEach(function (currentState) {\n // add current state to merged\n mergedStates.push(currentState);\n });\n }\n stateCollections.add(0 /* Merged */, mergedStates);\n if (toBeUpdatedStates.length > 0) {\n stateCollections.add(1 /* ToBeUpdated */, toBeUpdatedStates);\n }\n return stateCollections;\n}\nexports.MergeAndUpdateGovernedChannelStates = MergeAndUpdateGovernedChannelStates;\nfunction MergeAndUpdateCampaignStates(previousStates, currentStates) {\n var stateCollections = new ItemCollection();\n if (!previousStates && !currentStates) {\n return stateCollections;\n }\n if (!previousStates) {\n stateCollections.add(0 /* Merged */, currentStates);\n return stateCollections;\n }\n if (!currentStates) {\n stateCollections.add(0 /* Merged */, previousStates);\n stateCollections.add(1 /* ToBeUpdated */, previousStates);\n return stateCollections;\n }\n var mergedStates = [];\n var toBeUpdatedStates = [];\n if (previousStates) {\n previousStates.forEach(function (previousState) {\n var current = new Date();\n // find matching in current states\n var pos = -1;\n var currentState;\n for (var i = 0; i < currentStates.length; i++) {\n currentState = currentStates[i];\n if (currentState.CampaignId === previousState.CampaignId) {\n pos = i;\n break;\n }\n }\n // if previous state is not in current states\n if (pos === -1) {\n // add previous state to merged\n mergedStates.push(previousState);\n // add previous state to toUpdated\n toBeUpdatedStates.push(previousState);\n return;\n }\n // if current state is in cooldown, add to merged list\n if (currentState.LastCooldownEndTimeUtc > current) {\n // add previous state to merged list\n mergedStates.push(currentState);\n // emove state from current states\n currentStates.splice(pos, 1);\n return;\n }\n // if previous state is in cooldown, add to merged and toUpdated lists\n if (previousState.LastCooldownEndTimeUtc > current) {\n // add previous state to merged list\n mergedStates.push(previousState);\n // add previous state to to-be-updated list\n toBeUpdatedStates.push(previousState);\n // emove state from current states\n currentStates.splice(pos, 1);\n return;\n }\n // add previous state to toUpdated and merged for the following two conditions:\n // 1. previous cooldown time wins, or\n // 2. cooldown times are the same and previous nomination wins\n if (previousState.getCooldownStartDate() > currentState.getCooldownStartDate()\n || (previousState.getCooldownStartDate() === currentState.getCooldownStartDate()\n && previousState.LastNominationTimeUtc > currentState.LastNominationTimeUtc)) {\n mergedStates.push(previousState);\n toBeUpdatedStates.push(previousState);\n }\n else {\n // add current state to merged\n mergedStates.push(currentState);\n }\n // remove state from current states\n currentStates.splice(pos, 1);\n });\n }\n // for the remaining current states\n if (currentStates) {\n currentStates.forEach(function (current) {\n // add current state to merged\n mergedStates.push(current);\n });\n }\n stateCollections.add(0 /* Merged */, mergedStates);\n if (toBeUpdatedStates.length > 0) {\n stateCollections.add(1 /* ToBeUpdated */, toBeUpdatedStates);\n }\n return stateCollections;\n}\nexports.MergeAndUpdateCampaignStates = MergeAndUpdateCampaignStates;\nfunction MergeAndUpdateSurveyActivationStats(previousStats, currentStats) {\n var statsCollections = new ItemCollection();\n // Handle previousStats and/or currentStats equal to null\n if (!previousStats && !currentStats) {\n return statsCollections;\n }\n if (!previousStats) {\n statsCollections.add(0 /* Merged */, currentStats);\n return statsCollections;\n }\n if (!currentStats) {\n statsCollections.add(0 /* Merged */, previousStats);\n statsCollections.add(1 /* ToBeUpdated */, previousStats);\n return statsCollections;\n }\n // Enumerate preivous stats\n var mergedStats = new SurveyStatCollectionActivation_1.SurveyStatCollectionActivation();\n var toBeUpdatedStats = new SurveyStatCollectionActivation_1.SurveyStatCollectionActivation();\n var previousStatsDictionary = previousStats.getStats();\n var currentStatsDictionary = currentStats.getStats();\n for (var surveyId in previousStatsDictionary) {\n if (Object.prototype.hasOwnProperty.call(previousStatsDictionary, surveyId)) {\n // if an updated stat is not found\n var currentActivationStats = currentStatsDictionary[surveyId];\n if (!currentActivationStats) {\n // add to merged collection\n mergedStats.addStats(surveyId, previousStatsDictionary[surveyId]);\n // add to-be-updated collection\n toBeUpdatedStats.addStats(surveyId, previousStatsDictionary[surveyId]);\n continue;\n }\n // if previous stat has higher activation time\n var previousActivationStats = previousStatsDictionary[surveyId];\n if (previousActivationStats.ActivationTimeUtc > currentActivationStats.ActivationTimeUtc) {\n // add to merged collection\n mergedStats.addStats(surveyId, previousStatsDictionary[surveyId]);\n // add to-be-updated collection\n toBeUpdatedStats.addStats(surveyId, previousStatsDictionary[surveyId]);\n }\n else {\n // add to current stat merged collection\n mergedStats.addStats(surveyId, currentStatsDictionary[surveyId]);\n }\n // delete from stats\n delete currentStatsDictionary[surveyId];\n }\n }\n // merge any remaining stats\n for (var surveyId in currentStatsDictionary) {\n if (Object.prototype.hasOwnProperty.call(currentStatsDictionary, surveyId)) {\n mergedStats.addStats(surveyId, currentStatsDictionary[surveyId]);\n }\n }\n // always return merged list\n statsCollections.add(0 /* Merged */, mergedStats);\n // since dictionaries don't have an empty check, enumerate the first entry to check for non-empty\n var toBeUpdatedStatsDictionary = toBeUpdatedStats.getStats();\n for (var toBeUpdated in toBeUpdatedStatsDictionary) {\n if (Object.prototype.hasOwnProperty.call(toBeUpdatedStatsDictionary, toBeUpdated)) {\n // not empty, return to-be-updated\n statsCollections.add(1 /* ToBeUpdated */, toBeUpdatedStats);\n break;\n }\n }\n return statsCollections;\n}\nexports.MergeAndUpdateSurveyActivationStats = MergeAndUpdateSurveyActivationStats;\nvar SETTING_DATA_OPEN_TAG = \"\";\nvar SETTING_DATA_CLOSE_TAG = \"\";\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N0YXRlUHJvdmlkZXJIZWxwZXJzLnRzPzQwYmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUtBQThHO0FBbUI5RztJQUFBO1FBQ1MsVUFBSyxHQUF5QixFQUFFLENBQUM7UUFDakMsY0FBUyxHQUFHLENBQUMsQ0FBQztJQTJCdkIsQ0FBQztJQXpCTyw0QkFBRyxHQUFWLFVBQVcsR0FBVyxFQUFFLEtBQVE7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVNLDZCQUFJLEdBQVgsVUFBWSxHQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sK0JBQU0sR0FBYixVQUFjLEdBQVc7UUFDeEIsSUFBTSxJQUFJLEdBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxJQUFJLElBQUksRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDakI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFFTSw4QkFBSyxHQUFaO1FBQ0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFDRixxQkFBQztBQUFELENBQUM7QUE3Qlksd0NBQWM7QUErQjNCLFNBQWdCLGdDQUFnQyxDQUFDLFNBQWlCO0lBQ2pFLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZixPQUFPLFNBQVMsQ0FBQztLQUNqQjtJQUVELElBQU0sUUFBUSxHQUFXLFNBQVMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7SUFDakcsSUFBTSxNQUFNLEdBQVcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBRWpFLElBQUksUUFBUSxHQUFHLENBQUMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQy9CLE9BQU8sU0FBUyxDQUFDO0tBQ2pCO0lBRUQsT0FBTyxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBYkQsNEVBYUM7QUFFRCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFhO0lBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDWCxPQUFPLHFCQUFxQixHQUFHLHNCQUFzQixDQUFDO0tBQ3REO0lBRUQsT0FBTyxxQkFBcUIsR0FBRyxLQUFLLEdBQUcsc0JBQXNCLENBQUM7QUFDL0QsQ0FBQztBQU5ELG9EQU1DO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUMsY0FBc0MsRUFDekYsYUFBcUM7SUFDckMsSUFBTSxnQkFBZ0IsR0FBNkMsSUFBSSxjQUFjLEVBQTBCLENBQUM7SUFFaEgsOERBQThEO0lBQzlELElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDdEMsT0FBTyxnQkFBZ0IsQ0FBQztLQUN4QjtJQUVELElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDcEIsZ0JBQWdCLENBQUMsR0FBRyxpQkFBdUIsYUFBYSxDQUFDLENBQUM7UUFDMUQsT0FBTyxnQkFBZ0IsQ0FBQztLQUN4QjtJQUVELElBQUksQ0FBQyxhQUFhLEVBQUU7UUFDbkIsZ0JBQWdCLENBQUMsR0FBRyxpQkFBdUIsY0FBYyxDQUFDLENBQUM7UUFDM0QsZ0JBQWdCLENBQUMsR0FBRyxzQkFBNEIsY0FBYyxDQUFDLENBQUM7UUFDaEUsT0FBTyxnQkFBZ0IsQ0FBQztLQUN4QjtJQUVELElBQU0sWUFBWSxHQUEyQixFQUFFLENBQUM7SUFDaEQsSUFBTSxpQkFBaUIsR0FBMkIsRUFBRSxDQUFDO0lBRXJELElBQUksY0FBYyxFQUFFO1FBQ25CLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBQyxhQUFhO1lBQ3BDLGtDQUFrQztZQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNiLElBQUksWUFBa0MsQ0FBQztZQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDOUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFO29CQUN2RCxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUNSLE1BQU07aUJBQ047YUFDRDtZQUVELDZDQUE2QztZQUM3QyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDZiwrQkFBK0I7Z0JBQy9CLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRWpDLGtDQUFrQztnQkFDbEMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUV0QyxPQUFPO2FBQ1A7WUFFRCwyREFBMkQ7WUFDM0QsSUFBSSxhQUFhLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxZQUFZLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtnQkFDL0UsK0JBQStCO2dCQUMvQixZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVqQyxrQ0FBa0M7Z0JBQ2xDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUN0QztpQkFBTTtnQkFDTiw4QkFBOEI7Z0JBQzlCLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDaEM7WUFFRCxtQ0FBbUM7WUFDbkMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7S0FDSDtJQUVELG1DQUFtQztJQUNuQyxJQUFJLGFBQWEsRUFBRTtRQUNsQixhQUFhLENBQUMsT0FBTyxDQUFDLFVBQUMsWUFBWTtZQUNsQyw4QkFBOEI7WUFDOUIsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztLQUNIO0lBRUQsZ0JBQWdCLENBQUMsR0FBRyxpQkFBdUIsWUFBWSxDQUFDLENBQUM7SUFFekQsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2pDLGdCQUFnQixDQUFDLEdBQUcsc0JBQTRCLGlCQUFpQixDQUFDLENBQUM7S0FDbkU7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQ3pCLENBQUM7QUEvRUQsa0ZBK0VDO0FBRUQsU0FBZ0IsNEJBQTRCLENBQUMsY0FBK0IsRUFDM0UsYUFBOEI7SUFDOUIsSUFBTSxnQkFBZ0IsR0FBc0MsSUFBSSxjQUFjLEVBQW1CLENBQUM7SUFFbEcsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGFBQWEsRUFBRTtRQUN0QyxPQUFPLGdCQUFnQixDQUFDO0tBQ3hCO0lBRUQsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNwQixnQkFBZ0IsQ0FBQyxHQUFHLGlCQUF1QixhQUFhLENBQUMsQ0FBQztRQUMxRCxPQUFPLGdCQUFnQixDQUFDO0tBQ3hCO0lBRUQsSUFBSSxDQUFDLGFBQWEsRUFBRTtRQUNuQixnQkFBZ0IsQ0FBQyxHQUFHLGlCQUF1QixjQUFjLENBQUMsQ0FBQztRQUMzRCxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUE0QixjQUFjLENBQUMsQ0FBQztRQUNoRSxPQUFPLGdCQUFnQixDQUFDO0tBQ3hCO0lBRUQsSUFBTSxZQUFZLEdBQW9CLEVBQUUsQ0FBQztJQUN6QyxJQUFNLGlCQUFpQixHQUFvQixFQUFFLENBQUM7SUFFOUMsSUFBSSxjQUFjLEVBQUU7UUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxVQUFDLGFBQWE7WUFDcEMsSUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUUzQixrQ0FBa0M7WUFDbEMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDYixJQUFJLFlBQTJCLENBQUM7WUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlDLFlBQVksR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQUksWUFBWSxDQUFDLFVBQVUsS0FBSyxhQUFhLENBQUMsVUFBVSxFQUFFO29CQUN6RCxHQUFHLEdBQUcsQ0FBQyxDQUFDO29CQUNSLE1BQU07aUJBQ047YUFDRDtZQUVELDZDQUE2QztZQUM3QyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDZiwrQkFBK0I7Z0JBQy9CLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRWpDLGtDQUFrQztnQkFDbEMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUV0QyxPQUFPO2FBQ1A7WUFFRCxzREFBc0Q7WUFDdEQsSUFBSSxZQUFZLENBQUMsc0JBQXNCLEdBQUcsT0FBTyxFQUFFO2dCQUNsRCxvQ0FBb0M7Z0JBQ3BDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBRWhDLGtDQUFrQztnQkFDbEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBRTdCLE9BQU87YUFDUDtZQUVELHNFQUFzRTtZQUN0RSxJQUFJLGFBQWEsQ0FBQyxzQkFBc0IsR0FBRyxPQUFPLEVBQUU7Z0JBQ25ELG9DQUFvQztnQkFDcEMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFFakMsMkNBQTJDO2dCQUMzQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBRXRDLGtDQUFrQztnQkFDbEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLE9BQU87YUFDUDtZQUVELCtFQUErRTtZQUMvRSxzQ0FBc0M7WUFDdEMsK0RBQStEO1lBQy9ELElBQUksYUFBYSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixFQUFFO21CQUMxRSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLFlBQVksQ0FBQyxvQkFBb0IsRUFBRTt1QkFDNUUsYUFBYSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxFQUM1RTtnQkFDRCxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVqQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDdEM7aUJBQU07Z0JBQ04sOEJBQThCO2dCQUM5QixZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2hDO1lBRUQsbUNBQW1DO1lBQ25DLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO0tBQ0g7SUFFRCxtQ0FBbUM7SUFDbkMsSUFBSSxhQUFhLEVBQUU7UUFDbEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxVQUFDLE9BQU87WUFDN0IsOEJBQThCO1lBQzlCLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7S0FDSDtJQUVELGdCQUFnQixDQUFDLEdBQUcsaUJBQXVCLFlBQVksQ0FBQyxDQUFDO0lBRXpELElBQUksaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNqQyxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUE0QixpQkFBaUIsQ0FBQyxDQUFDO0tBQ25FO0lBRUQsT0FBTyxnQkFBZ0IsQ0FBQztBQUN6QixDQUFDO0FBM0dELG9FQTJHQztBQUVELFNBQWdCLG1DQUFtQyxDQUFDLGFBQTZDLEVBQ2hHLFlBQTRDO0lBRTVDLElBQU0sZ0JBQWdCLEdBQXFELElBQUksY0FBYyxFQUFrQyxDQUFDO0lBRWhJLHlEQUF5RDtJQUN6RCxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ3BDLE9BQU8sZ0JBQWdCLENBQUM7S0FDeEI7SUFFRCxJQUFJLENBQUMsYUFBYSxFQUFFO1FBQ25CLGdCQUFnQixDQUFDLEdBQUcsaUJBQXVCLFlBQVksQ0FBQyxDQUFDO1FBQ3pELE9BQU8sZ0JBQWdCLENBQUM7S0FDeEI7SUFFRCxJQUFJLENBQUMsWUFBWSxFQUFFO1FBQ2xCLGdCQUFnQixDQUFDLEdBQUcsaUJBQXVCLGFBQWEsQ0FBQyxDQUFDO1FBQzFELGdCQUFnQixDQUFDLEdBQUcsc0JBQTRCLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sZ0JBQWdCLENBQUM7S0FDeEI7SUFFRCwyQkFBMkI7SUFDM0IsSUFBTSxXQUFXLEdBQW1DLElBQUksK0RBQThCLEVBQUUsQ0FBQztJQUN6RixJQUFNLGdCQUFnQixHQUFtQyxJQUFJLCtEQUE4QixFQUFFLENBQUM7SUFFOUYsSUFBTSx1QkFBdUIsR0FBdUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdGLElBQU0sc0JBQXNCLEdBQXVDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUUzRixLQUFLLElBQU0sUUFBUSxJQUFJLHVCQUF1QixFQUFFO1FBQy9DLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQzVFLGtDQUFrQztZQUNsQyxJQUFNLHNCQUFzQixHQUEwQixzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2RixJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzVCLDJCQUEyQjtnQkFDM0IsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDbEUsK0JBQStCO2dCQUMvQixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZFLFNBQVM7YUFDVDtZQUNELDhDQUE4QztZQUM5QyxJQUFNLHVCQUF1QixHQUEwQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6RixJQUFJLHVCQUF1QixDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFO2dCQUN6RiwyQkFBMkI7Z0JBQzNCLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLCtCQUErQjtnQkFDL0IsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2FBQ3ZFO2lCQUFNO2dCQUNOLHdDQUF3QztnQkFDeEMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQzthQUNqRTtZQUVELG9CQUFvQjtZQUNwQixPQUFPLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3hDO0tBQ0Q7SUFFRCw0QkFBNEI7SUFDNUIsS0FBSyxJQUFNLFFBQVEsSUFBSSxzQkFBc0IsRUFBRTtRQUM5QyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUMzRSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1NBQ2pFO0tBQ0Q7SUFFRCw0QkFBNEI7SUFDNUIsZ0JBQWdCLENBQUMsR0FBRyxpQkFBdUIsV0FBVyxDQUFDLENBQUM7SUFFeEQsa0dBQWtHO0lBQ2xHLElBQU0sMEJBQTBCLEdBQXVDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25HLEtBQUssSUFBTSxXQUFXLElBQUksMEJBQTBCLEVBQUU7UUFDckQsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDbEYsa0NBQWtDO1lBQ2xDLGdCQUFnQixDQUFDLEdBQUcsc0JBQTRCLGdCQUFnQixDQUFDLENBQUM7WUFDbEUsTUFBTTtTQUNOO0tBQ0Q7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQ3pCLENBQUM7QUE3RUQsa0ZBNkVDO0FBRUQsSUFBTSxxQkFBcUIsR0FBRyxRQUFRLENBQUM7QUFDdkMsSUFBTSxzQkFBc0IsR0FBRyxTQUFTLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdGF0ZVByb3ZpZGVySGVscGVycy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEaWN0aW9uYXJ5IH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IFN1cnZleUFjdGl2YXRpb25TdGF0cywgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uIH0gZnJvbSBcIi4uL3NyYy9TdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb25cIjtcclxuaW1wb3J0IHsgQ2FtcGFpZ25TdGF0ZSB9IGZyb20gXCIuL0NhbXBhaWduL0NhbXBhaWduU3RhdGVQcm92aWRlclwiO1xyXG5pbXBvcnQgeyBHb3Zlcm5lZENoYW5uZWxTdGF0ZSB9IGZyb20gXCIuL0dvdmVybmVkQ2hhbm5lbFN0YXRlUHJvdmlkZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBWYWx1ZXMgZm9yIHRoZSBzdGF0ZSBsaXN0IHR5cGVzXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZW51bSBTdGF0ZUxpc3RUeXBlIHtcclxuXHRNZXJnZWQsXHJcblx0VG9CZVVwZGF0ZWQsXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUtleWVkQ29sbGVjdGlvbjxUPiB7XHJcblx0YWRkKGtleTogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQ7XHJcblx0ZmluZChrZXk6IG51bWJlcik6IFQ7XHJcblx0cmVtb3ZlKGtleTogbnVtYmVyKTogVDtcclxuXHRjb3VudCgpOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBJdGVtQ29sbGVjdGlvbjxUPiBpbXBsZW1lbnRzIElLZXllZENvbGxlY3Rpb248VD4ge1xyXG5cdHByaXZhdGUgaXRlbXM6IHsgW2tleTogbnVtYmVyXTogVCB9ID0ge307XHJcblx0cHJpdmF0ZSBpdGVtQ291bnQgPSAwO1xyXG5cclxuXHRwdWJsaWMgYWRkKGtleTogbnVtYmVyLCB2YWx1ZTogVCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLml0ZW1zW2tleV0pIHtcclxuXHRcdFx0dGhpcy5pdGVtQ291bnQrKztcclxuXHRcdH1cclxuXHRcdHRoaXMuaXRlbXNba2V5XSA9IHZhbHVlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGZpbmQoa2V5OiBudW1iZXIpOiBUIHtcclxuXHRcdHJldHVybiB0aGlzLml0ZW1zW2tleV07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVtb3ZlKGtleTogbnVtYmVyKTogVCB7XHJcblx0XHRjb25zdCBpdGVtOiBUID0gdGhpcy5pdGVtc1trZXldO1xyXG5cclxuXHRcdGlmIChpdGVtKSB7XHJcblx0XHRcdGRlbGV0ZSB0aGlzLml0ZW1zW2tleV07XHJcblx0XHRcdHRoaXMuaXRlbUNvdW50LS07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGl0ZW07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY291bnQoKTogbnVtYmVyIHtcclxuXHRcdHJldHVybiB0aGlzLml0ZW1Db3VudDtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U2V0dGluZ0l0ZW1WYWx1ZVN1YlN0cmluZyhpdGVtVmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcblx0aWYgKCFpdGVtVmFsdWUpIHtcclxuXHRcdHJldHVybiBpdGVtVmFsdWU7XHJcblx0fVxyXG5cclxuXHRjb25zdCBiZWdpblBvczogbnVtYmVyID0gaXRlbVZhbHVlLmluZGV4T2YoU0VUVElOR19EQVRBX09QRU5fVEFHKSArIFNFVFRJTkdfREFUQV9PUEVOX1RBRy5sZW5ndGg7XHJcblx0Y29uc3QgZW5kUG9zOiBudW1iZXIgPSBpdGVtVmFsdWUuaW5kZXhPZihTRVRUSU5HX0RBVEFfQ0xPU0VfVEFHKTtcclxuXHJcblx0aWYgKGJlZ2luUG9zIDwgMCB8fCBlbmRQb3MgPCAwKSB7XHJcblx0XHRyZXR1cm4gaXRlbVZhbHVlO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGl0ZW1WYWx1ZS5zdWJzdHJpbmcoYmVnaW5Qb3MsIGVuZFBvcyk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlU2V0dGluZ0l0ZW1WYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRpZiAoIXZhbHVlKSB7XHJcblx0XHRyZXR1cm4gU0VUVElOR19EQVRBX09QRU5fVEFHICsgU0VUVElOR19EQVRBX0NMT1NFX1RBRztcclxuXHR9XHJcblxyXG5cdHJldHVybiBTRVRUSU5HX0RBVEFfT1BFTl9UQUcgKyB2YWx1ZSArIFNFVFRJTkdfREFUQV9DTE9TRV9UQUc7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNZXJnZUFuZFVwZGF0ZUdvdmVybmVkQ2hhbm5lbFN0YXRlcyhwcmV2aW91c1N0YXRlczogR292ZXJuZWRDaGFubmVsU3RhdGVbXSxcclxuXHRjdXJyZW50U3RhdGVzOiBHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdKTogSUtleWVkQ29sbGVjdGlvbjxHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdPiB7XHJcblx0Y29uc3Qgc3RhdGVDb2xsZWN0aW9uczogSUtleWVkQ29sbGVjdGlvbjxHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdPiA9IG5ldyBJdGVtQ29sbGVjdGlvbjxHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdPigpO1xyXG5cclxuXHQvLyBUb2RvOiBtb3ZlIHRoZSBmb2xsb3dpbmcgaW50byBhIGdlbmVyaWMgbWV0aG9kIHRvIGJlIHNoYXJlZFxyXG5cdGlmICghcHJldmlvdXNTdGF0ZXMgJiYgIWN1cnJlbnRTdGF0ZXMpIHtcclxuXHRcdHJldHVybiBzdGF0ZUNvbGxlY3Rpb25zO1xyXG5cdH1cclxuXHJcblx0aWYgKCFwcmV2aW91c1N0YXRlcykge1xyXG5cdFx0c3RhdGVDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5NZXJnZWQsIGN1cnJlbnRTdGF0ZXMpO1xyXG5cdFx0cmV0dXJuIHN0YXRlQ29sbGVjdGlvbnM7XHJcblx0fVxyXG5cclxuXHRpZiAoIWN1cnJlbnRTdGF0ZXMpIHtcclxuXHRcdHN0YXRlQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuTWVyZ2VkLCBwcmV2aW91c1N0YXRlcyk7XHJcblx0XHRzdGF0ZUNvbGxlY3Rpb25zLmFkZChTdGF0ZUxpc3RUeXBlLlRvQmVVcGRhdGVkLCBwcmV2aW91c1N0YXRlcyk7XHJcblx0XHRyZXR1cm4gc3RhdGVDb2xsZWN0aW9ucztcclxuXHR9XHJcblxyXG5cdGNvbnN0IG1lcmdlZFN0YXRlczogR292ZXJuZWRDaGFubmVsU3RhdGVbXSA9IFtdO1xyXG5cdGNvbnN0IHRvQmVVcGRhdGVkU3RhdGVzOiBHb3Zlcm5lZENoYW5uZWxTdGF0ZVtdID0gW107XHJcblxyXG5cdGlmIChwcmV2aW91c1N0YXRlcykge1xyXG5cdFx0cHJldmlvdXNTdGF0ZXMuZm9yRWFjaCgocHJldmlvdXNTdGF0ZSkgPT4ge1xyXG5cdFx0XHQvLyBmaW5kIG1hdGNoaW5nIGluIGN1cnJlbnQgc3RhdGVzXHJcblx0XHRcdGxldCBwb3MgPSAtMTtcclxuXHRcdFx0bGV0IGN1cnJlbnRTdGF0ZTogR292ZXJuZWRDaGFubmVsU3RhdGU7XHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY3VycmVudFN0YXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGN1cnJlbnRTdGF0ZSA9IGN1cnJlbnRTdGF0ZXNbaV07XHJcblx0XHRcdFx0aWYgKGN1cnJlbnRTdGF0ZS5nZXRUeXBlKCkgPT09IHByZXZpb3VzU3RhdGUuZ2V0VHlwZSgpKSB7XHJcblx0XHRcdFx0XHRwb3MgPSBpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBpZiBwcmV2aW91cyBzdGF0ZSBpcyBub3QgaW4gY3VycmVudCBzdGF0ZXNcclxuXHRcdFx0aWYgKHBvcyA9PT0gLTEpIHtcclxuXHRcdFx0XHQvLyBhZGQgcHJldmlvdXMgc3RhdGUgdG8gbWVyZ2VkXHJcblx0XHRcdFx0bWVyZ2VkU3RhdGVzLnB1c2gocHJldmlvdXNTdGF0ZSk7XHJcblxyXG5cdFx0XHRcdC8vIGFkZCBwcmV2aW91cyBzdGF0ZSB0byB0b1VwZGF0ZWRcclxuXHRcdFx0XHR0b0JlVXBkYXRlZFN0YXRlcy5wdXNoKHByZXZpb3VzU3RhdGUpO1xyXG5cclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGlmIEFjdGl2YXRpb25UaW1lVXRjIG9mIHByZXZpb3VzIGlzIGdyZWF0ZXIgdGhhbiBjdXJyZW50XHJcblx0XHRcdGlmIChwcmV2aW91c1N0YXRlLmdldENvb2xkb3duU3RhcnRUaW1lKCkgPiBjdXJyZW50U3RhdGUuZ2V0Q29vbGRvd25TdGFydFRpbWUoKSkge1xyXG5cdFx0XHRcdC8vIGFkZCBwcmV2aW91cyBzdGF0ZSB0byBtZXJnZWRcclxuXHRcdFx0XHRtZXJnZWRTdGF0ZXMucHVzaChwcmV2aW91c1N0YXRlKTtcclxuXHJcblx0XHRcdFx0Ly8gYWRkIHByZXZpb3VzIHN0YXRlIHRvIHRvVXBkYXRlZFxyXG5cdFx0XHRcdHRvQmVVcGRhdGVkU3RhdGVzLnB1c2gocHJldmlvdXNTdGF0ZSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Ly8gYWRkIGN1cnJlbnQgc3RhdGUgdG8gbWVyZ2VkXHJcblx0XHRcdFx0bWVyZ2VkU3RhdGVzLnB1c2goY3VycmVudFN0YXRlKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gcmVtb3ZlIHN0YXRlIGZyb20gY3VycmVudCBzdGF0ZXNcclxuXHRcdFx0Y3VycmVudFN0YXRlcy5zcGxpY2UocG9zLCAxKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gZm9yIHRoZSByZW1haW5pbmcgY3VycmVudCBzdGF0ZXNcclxuXHRpZiAoY3VycmVudFN0YXRlcykge1xyXG5cdFx0Y3VycmVudFN0YXRlcy5mb3JFYWNoKChjdXJyZW50U3RhdGUpID0+IHtcclxuXHRcdFx0Ly8gYWRkIGN1cnJlbnQgc3RhdGUgdG8gbWVyZ2VkXHJcblx0XHRcdG1lcmdlZFN0YXRlcy5wdXNoKGN1cnJlbnRTdGF0ZSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHN0YXRlQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuTWVyZ2VkLCBtZXJnZWRTdGF0ZXMpO1xyXG5cclxuXHRpZiAodG9CZVVwZGF0ZWRTdGF0ZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0c3RhdGVDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCwgdG9CZVVwZGF0ZWRTdGF0ZXMpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHN0YXRlQ29sbGVjdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNZXJnZUFuZFVwZGF0ZUNhbXBhaWduU3RhdGVzKHByZXZpb3VzU3RhdGVzOiBDYW1wYWlnblN0YXRlW10sXHJcblx0Y3VycmVudFN0YXRlczogQ2FtcGFpZ25TdGF0ZVtdKTogSUtleWVkQ29sbGVjdGlvbjxDYW1wYWlnblN0YXRlW10+IHtcclxuXHRjb25zdCBzdGF0ZUNvbGxlY3Rpb25zOiBJS2V5ZWRDb2xsZWN0aW9uPENhbXBhaWduU3RhdGVbXT4gPSBuZXcgSXRlbUNvbGxlY3Rpb248Q2FtcGFpZ25TdGF0ZVtdPigpO1xyXG5cclxuXHRpZiAoIXByZXZpb3VzU3RhdGVzICYmICFjdXJyZW50U3RhdGVzKSB7XHJcblx0XHRyZXR1cm4gc3RhdGVDb2xsZWN0aW9ucztcclxuXHR9XHJcblxyXG5cdGlmICghcHJldmlvdXNTdGF0ZXMpIHtcclxuXHRcdHN0YXRlQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuTWVyZ2VkLCBjdXJyZW50U3RhdGVzKTtcclxuXHRcdHJldHVybiBzdGF0ZUNvbGxlY3Rpb25zO1xyXG5cdH1cclxuXHJcblx0aWYgKCFjdXJyZW50U3RhdGVzKSB7XHJcblx0XHRzdGF0ZUNvbGxlY3Rpb25zLmFkZChTdGF0ZUxpc3RUeXBlLk1lcmdlZCwgcHJldmlvdXNTdGF0ZXMpO1xyXG5cdFx0c3RhdGVDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCwgcHJldmlvdXNTdGF0ZXMpO1xyXG5cdFx0cmV0dXJuIHN0YXRlQ29sbGVjdGlvbnM7XHJcblx0fVxyXG5cclxuXHRjb25zdCBtZXJnZWRTdGF0ZXM6IENhbXBhaWduU3RhdGVbXSA9IFtdO1xyXG5cdGNvbnN0IHRvQmVVcGRhdGVkU3RhdGVzOiBDYW1wYWlnblN0YXRlW10gPSBbXTtcclxuXHJcblx0aWYgKHByZXZpb3VzU3RhdGVzKSB7XHJcblx0XHRwcmV2aW91c1N0YXRlcy5mb3JFYWNoKChwcmV2aW91c1N0YXRlKSA9PiB7XHJcblx0XHRcdGNvbnN0IGN1cnJlbnQgPSBuZXcgRGF0ZSgpO1xyXG5cclxuXHRcdFx0Ly8gZmluZCBtYXRjaGluZyBpbiBjdXJyZW50IHN0YXRlc1xyXG5cdFx0XHRsZXQgcG9zID0gLTE7XHJcblx0XHRcdGxldCBjdXJyZW50U3RhdGU6IENhbXBhaWduU3RhdGU7XHJcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgY3VycmVudFN0YXRlcy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdGN1cnJlbnRTdGF0ZSA9IGN1cnJlbnRTdGF0ZXNbaV07XHJcblx0XHRcdFx0aWYgKGN1cnJlbnRTdGF0ZS5DYW1wYWlnbklkID09PSBwcmV2aW91c1N0YXRlLkNhbXBhaWduSWQpIHtcclxuXHRcdFx0XHRcdHBvcyA9IGk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGlmIHByZXZpb3VzIHN0YXRlIGlzIG5vdCBpbiBjdXJyZW50IHN0YXRlc1xyXG5cdFx0XHRpZiAocG9zID09PSAtMSkge1xyXG5cdFx0XHRcdC8vIGFkZCBwcmV2aW91cyBzdGF0ZSB0byBtZXJnZWRcclxuXHRcdFx0XHRtZXJnZWRTdGF0ZXMucHVzaChwcmV2aW91c1N0YXRlKTtcclxuXHJcblx0XHRcdFx0Ly8gYWRkIHByZXZpb3VzIHN0YXRlIHRvIHRvVXBkYXRlZFxyXG5cdFx0XHRcdHRvQmVVcGRhdGVkU3RhdGVzLnB1c2gocHJldmlvdXNTdGF0ZSk7XHJcblxyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gaWYgY3VycmVudCBzdGF0ZSBpcyBpbiBjb29sZG93biwgYWRkIHRvIG1lcmdlZCBsaXN0XHJcblx0XHRcdGlmIChjdXJyZW50U3RhdGUuTGFzdENvb2xkb3duRW5kVGltZVV0YyA+IGN1cnJlbnQpIHtcclxuXHRcdFx0XHQvLyBhZGQgcHJldmlvdXMgc3RhdGUgdG8gbWVyZ2VkIGxpc3RcclxuXHRcdFx0XHRtZXJnZWRTdGF0ZXMucHVzaChjdXJyZW50U3RhdGUpO1xyXG5cclxuXHRcdFx0XHQvLyBlbW92ZSBzdGF0ZSBmcm9tIGN1cnJlbnQgc3RhdGVzXHJcblx0XHRcdFx0Y3VycmVudFN0YXRlcy5zcGxpY2UocG9zLCAxKTtcclxuXHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBpZiBwcmV2aW91cyBzdGF0ZSBpcyBpbiBjb29sZG93biwgYWRkIHRvIG1lcmdlZCBhbmQgdG9VcGRhdGVkIGxpc3RzXHJcblx0XHRcdGlmIChwcmV2aW91c1N0YXRlLkxhc3RDb29sZG93bkVuZFRpbWVVdGMgPiBjdXJyZW50KSB7XHJcblx0XHRcdFx0Ly8gYWRkIHByZXZpb3VzIHN0YXRlIHRvIG1lcmdlZCBsaXN0XHJcblx0XHRcdFx0bWVyZ2VkU3RhdGVzLnB1c2gocHJldmlvdXNTdGF0ZSk7XHJcblxyXG5cdFx0XHRcdC8vIGFkZCBwcmV2aW91cyBzdGF0ZSB0byB0by1iZS11cGRhdGVkIGxpc3RcclxuXHRcdFx0XHR0b0JlVXBkYXRlZFN0YXRlcy5wdXNoKHByZXZpb3VzU3RhdGUpO1xyXG5cclxuXHRcdFx0XHQvLyBlbW92ZSBzdGF0ZSBmcm9tIGN1cnJlbnQgc3RhdGVzXHJcblx0XHRcdFx0Y3VycmVudFN0YXRlcy5zcGxpY2UocG9zLCAxKTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGFkZCBwcmV2aW91cyBzdGF0ZSB0byB0b1VwZGF0ZWQgYW5kIG1lcmdlZCBmb3IgdGhlIGZvbGxvd2luZyB0d28gY29uZGl0aW9uczpcclxuXHRcdFx0Ly8gIDEuIHByZXZpb3VzIGNvb2xkb3duIHRpbWUgd2lucywgb3JcclxuXHRcdFx0Ly8gIDIuIGNvb2xkb3duIHRpbWVzIGFyZSB0aGUgc2FtZSBhbmQgcHJldmlvdXMgbm9taW5hdGlvbiB3aW5zXHJcblx0XHRcdGlmIChwcmV2aW91c1N0YXRlLmdldENvb2xkb3duU3RhcnREYXRlKCkgPiBjdXJyZW50U3RhdGUuZ2V0Q29vbGRvd25TdGFydERhdGUoKVxyXG5cdFx0XHRcdHx8IChwcmV2aW91c1N0YXRlLmdldENvb2xkb3duU3RhcnREYXRlKCkgPT09IGN1cnJlbnRTdGF0ZS5nZXRDb29sZG93blN0YXJ0RGF0ZSgpXHJcblx0XHRcdFx0XHQmJiBwcmV2aW91c1N0YXRlLkxhc3ROb21pbmF0aW9uVGltZVV0YyA+IGN1cnJlbnRTdGF0ZS5MYXN0Tm9taW5hdGlvblRpbWVVdGMpXHJcblx0XHRcdCkge1xyXG5cdFx0XHRcdG1lcmdlZFN0YXRlcy5wdXNoKHByZXZpb3VzU3RhdGUpO1xyXG5cclxuXHRcdFx0XHR0b0JlVXBkYXRlZFN0YXRlcy5wdXNoKHByZXZpb3VzU3RhdGUpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIGFkZCBjdXJyZW50IHN0YXRlIHRvIG1lcmdlZFxyXG5cdFx0XHRcdG1lcmdlZFN0YXRlcy5wdXNoKGN1cnJlbnRTdGF0ZSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIHJlbW92ZSBzdGF0ZSBmcm9tIGN1cnJlbnQgc3RhdGVzXHJcblx0XHRcdGN1cnJlbnRTdGF0ZXMuc3BsaWNlKHBvcywgMSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdC8vIGZvciB0aGUgcmVtYWluaW5nIGN1cnJlbnQgc3RhdGVzXHJcblx0aWYgKGN1cnJlbnRTdGF0ZXMpIHtcclxuXHRcdGN1cnJlbnRTdGF0ZXMuZm9yRWFjaCgoY3VycmVudCkgPT4ge1xyXG5cdFx0XHQvLyBhZGQgY3VycmVudCBzdGF0ZSB0byBtZXJnZWRcclxuXHRcdFx0bWVyZ2VkU3RhdGVzLnB1c2goY3VycmVudCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHN0YXRlQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuTWVyZ2VkLCBtZXJnZWRTdGF0ZXMpO1xyXG5cclxuXHRpZiAodG9CZVVwZGF0ZWRTdGF0ZXMubGVuZ3RoID4gMCkge1xyXG5cdFx0c3RhdGVDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCwgdG9CZVVwZGF0ZWRTdGF0ZXMpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHN0YXRlQ29sbGVjdGlvbnM7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBNZXJnZUFuZFVwZGF0ZVN1cnZleUFjdGl2YXRpb25TdGF0cyhwcmV2aW91c1N0YXRzOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24sXHJcblx0Y3VycmVudFN0YXRzOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24pOiBJS2V5ZWRDb2xsZWN0aW9uPFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbj4ge1xyXG5cclxuXHRjb25zdCBzdGF0c0NvbGxlY3Rpb25zOiBJS2V5ZWRDb2xsZWN0aW9uPFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbj4gPSBuZXcgSXRlbUNvbGxlY3Rpb248U3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uPigpO1xyXG5cclxuXHQvLyBIYW5kbGUgcHJldmlvdXNTdGF0cyBhbmQvb3IgY3VycmVudFN0YXRzIGVxdWFsIHRvIG51bGxcclxuXHRpZiAoIXByZXZpb3VzU3RhdHMgJiYgIWN1cnJlbnRTdGF0cykge1xyXG5cdFx0cmV0dXJuIHN0YXRzQ29sbGVjdGlvbnM7XHJcblx0fVxyXG5cclxuXHRpZiAoIXByZXZpb3VzU3RhdHMpIHtcclxuXHRcdHN0YXRzQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuTWVyZ2VkLCBjdXJyZW50U3RhdHMpO1xyXG5cdFx0cmV0dXJuIHN0YXRzQ29sbGVjdGlvbnM7XHJcblx0fVxyXG5cclxuXHRpZiAoIWN1cnJlbnRTdGF0cykge1xyXG5cdFx0c3RhdHNDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5NZXJnZWQsIHByZXZpb3VzU3RhdHMpO1xyXG5cdFx0c3RhdHNDb2xsZWN0aW9ucy5hZGQoU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCwgcHJldmlvdXNTdGF0cyk7XHJcblx0XHRyZXR1cm4gc3RhdHNDb2xsZWN0aW9ucztcclxuXHR9XHJcblxyXG5cdC8vIEVudW1lcmF0ZSBwcmVpdm91cyBzdGF0c1xyXG5cdGNvbnN0IG1lcmdlZFN0YXRzOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24gPSBuZXcgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uKCk7XHJcblx0Y29uc3QgdG9CZVVwZGF0ZWRTdGF0czogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uID0gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbigpO1xyXG5cclxuXHRjb25zdCBwcmV2aW91c1N0YXRzRGljdGlvbmFyeTogSURpY3Rpb25hcnk8U3VydmV5QWN0aXZhdGlvblN0YXRzPiA9IHByZXZpb3VzU3RhdHMuZ2V0U3RhdHMoKTtcclxuXHRjb25zdCBjdXJyZW50U3RhdHNEaWN0aW9uYXJ5OiBJRGljdGlvbmFyeTxTdXJ2ZXlBY3RpdmF0aW9uU3RhdHM+ID0gY3VycmVudFN0YXRzLmdldFN0YXRzKCk7XHJcblxyXG5cdGZvciAoY29uc3Qgc3VydmV5SWQgaW4gcHJldmlvdXNTdGF0c0RpY3Rpb25hcnkpIHtcclxuXHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJldmlvdXNTdGF0c0RpY3Rpb25hcnksIHN1cnZleUlkKSkge1xyXG5cdFx0XHQvLyBpZiBhbiB1cGRhdGVkIHN0YXQgaXMgbm90IGZvdW5kXHJcblx0XHRcdGNvbnN0IGN1cnJlbnRBY3RpdmF0aW9uU3RhdHM6IFN1cnZleUFjdGl2YXRpb25TdGF0cyA9IGN1cnJlbnRTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdO1xyXG5cdFx0XHRpZiAoIWN1cnJlbnRBY3RpdmF0aW9uU3RhdHMpIHtcclxuXHRcdFx0XHQvLyBhZGQgdG8gbWVyZ2VkIGNvbGxlY3Rpb25cclxuXHRcdFx0XHRtZXJnZWRTdGF0cy5hZGRTdGF0cyhzdXJ2ZXlJZCwgcHJldmlvdXNTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdFx0XHQvLyBhZGQgdG8tYmUtdXBkYXRlZCBjb2xsZWN0aW9uXHJcblx0XHRcdFx0dG9CZVVwZGF0ZWRTdGF0cy5hZGRTdGF0cyhzdXJ2ZXlJZCwgcHJldmlvdXNTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBpZiBwcmV2aW91cyBzdGF0IGhhcyBoaWdoZXIgYWN0aXZhdGlvbiB0aW1lXHJcblx0XHRcdGNvbnN0IHByZXZpb3VzQWN0aXZhdGlvblN0YXRzOiBTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMgPSBwcmV2aW91c1N0YXRzRGljdGlvbmFyeVtzdXJ2ZXlJZF07XHJcblx0XHRcdGlmIChwcmV2aW91c0FjdGl2YXRpb25TdGF0cy5BY3RpdmF0aW9uVGltZVV0YyA+IGN1cnJlbnRBY3RpdmF0aW9uU3RhdHMuQWN0aXZhdGlvblRpbWVVdGMpIHtcclxuXHRcdFx0XHQvLyBhZGQgdG8gbWVyZ2VkIGNvbGxlY3Rpb25cclxuXHRcdFx0XHRtZXJnZWRTdGF0cy5hZGRTdGF0cyhzdXJ2ZXlJZCwgcHJldmlvdXNTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdFx0XHQvLyBhZGQgdG8tYmUtdXBkYXRlZCBjb2xsZWN0aW9uXHJcblx0XHRcdFx0dG9CZVVwZGF0ZWRTdGF0cy5hZGRTdGF0cyhzdXJ2ZXlJZCwgcHJldmlvdXNTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvLyBhZGQgdG8gY3VycmVudCBzdGF0IG1lcmdlZCBjb2xsZWN0aW9uXHJcblx0XHRcdFx0bWVyZ2VkU3RhdHMuYWRkU3RhdHMoc3VydmV5SWQsIGN1cnJlbnRTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gZGVsZXRlIGZyb20gc3RhdHNcclxuXHRcdFx0ZGVsZXRlIGN1cnJlbnRTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gbWVyZ2UgYW55IHJlbWFpbmluZyBzdGF0c1xyXG5cdGZvciAoY29uc3Qgc3VydmV5SWQgaW4gY3VycmVudFN0YXRzRGljdGlvbmFyeSkge1xyXG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXJyZW50U3RhdHNEaWN0aW9uYXJ5LCBzdXJ2ZXlJZCkpIHtcclxuXHRcdFx0bWVyZ2VkU3RhdHMuYWRkU3RhdHMoc3VydmV5SWQsIGN1cnJlbnRTdGF0c0RpY3Rpb25hcnlbc3VydmV5SWRdKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIGFsd2F5cyByZXR1cm4gbWVyZ2VkIGxpc3RcclxuXHRzdGF0c0NvbGxlY3Rpb25zLmFkZChTdGF0ZUxpc3RUeXBlLk1lcmdlZCwgbWVyZ2VkU3RhdHMpO1xyXG5cclxuXHQvLyBzaW5jZSBkaWN0aW9uYXJpZXMgZG9uJ3QgaGF2ZSBhbiBlbXB0eSBjaGVjaywgZW51bWVyYXRlIHRoZSAgZmlyc3QgZW50cnkgdG8gY2hlY2sgZm9yIG5vbi1lbXB0eVxyXG5cdGNvbnN0IHRvQmVVcGRhdGVkU3RhdHNEaWN0aW9uYXJ5OiBJRGljdGlvbmFyeTxTdXJ2ZXlBY3RpdmF0aW9uU3RhdHM+ID0gdG9CZVVwZGF0ZWRTdGF0cy5nZXRTdGF0cygpO1xyXG5cdGZvciAoY29uc3QgdG9CZVVwZGF0ZWQgaW4gdG9CZVVwZGF0ZWRTdGF0c0RpY3Rpb25hcnkpIHtcclxuXHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG9CZVVwZGF0ZWRTdGF0c0RpY3Rpb25hcnksIHRvQmVVcGRhdGVkKSkge1xyXG5cdFx0XHQvLyBub3QgZW1wdHksIHJldHVybiB0by1iZS11cGRhdGVkXHJcblx0XHRcdHN0YXRzQ29sbGVjdGlvbnMuYWRkKFN0YXRlTGlzdFR5cGUuVG9CZVVwZGF0ZWQsIHRvQmVVcGRhdGVkU3RhdHMpO1xyXG5cdFx0XHRicmVhaztcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiBzdGF0c0NvbGxlY3Rpb25zO1xyXG59XHJcblxyXG5jb25zdCBTRVRUSU5HX0RBVEFfT1BFTl9UQUcgPSBcIjxkYXRhPlwiO1xyXG5jb25zdCBTRVRUSU5HX0RBVEFfQ0xPU0VfVEFHID0gXCI8L2RhdGE+XCI7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/StateProviderHelpers.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyActivityListener.js": /*!***********************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyActivityListener.js ***! \***********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ActivityTracker_1 = __webpack_require__(/*! ./ActivityTracker */ \"../FloodgateCore/dist/src/ActivityTracker.js\");\nvar Constants_1 = __webpack_require__(/*! ./Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar IndexedTracker_1 = __webpack_require__(/*! ./IndexedTracker */ \"../FloodgateCore/dist/src/IndexedTracker.js\");\nvar SurveyStatCollectionEventActivity_1 = __webpack_require__(/*! ./SurveyStatCollectionEventActivity */ \"../FloodgateCore/dist/src/SurveyStatCollectionEventActivity.js\");\nvar Utils_1 = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar queuedActivities = [];\nvar pendingActivityCount = 0;\nvar previousTrackedActivityMap = {};\n/**\n * This class tracks log calls against named activity strings (matched on strict case-sensitive equality)\n * and calls the provided callback when all activity thresholds for a given survey have been crossed\n */\nvar SurveyActivityListener = /** @class */ (function () {\n function SurveyActivityListener(callback, loggerCallback) {\n // Save incoming activity context data in a dictionary with SurveyID as key, activity data array as value\n this.activityContext = {};\n if (!callback) {\n throw new Error(\"callback must not be null\");\n }\n this.trackedActivityMap = {};\n this.callback = callback;\n this.loggerCallback = loggerCallback;\n }\n SurveyActivityListener.resetSessionActivity = function () {\n previousTrackedActivityMap = {};\n };\n SurveyActivityListener.prototype.logActivity = function (activityName, increment, context) {\n if (increment === void 0) { increment = 1; }\n this.logActivity_private(activityName, 0 /* Increment */, increment, null, context);\n };\n SurveyActivityListener.prototype.logActivityStartTime = function (activityName, startTime) {\n this.logActivity_private(activityName, 1 /* StartTime */, 0, startTime, null);\n };\n SurveyActivityListener.prototype.logActivityStopTime = function (activityName, stopTime) {\n this.logActivity_private(activityName, 2 /* StopTime */, 0, stopTime, null);\n };\n SurveyActivityListener.prototype.SetActivityTrackingContracts = function (activityTrackingContracts, baseline) {\n if (baseline === void 0) { baseline = new SurveyStatCollectionEventActivity_1.SurveyStatCollectionEventActivity(); }\n var duplicateCounter = 0;\n if (!activityTrackingContracts || activityTrackingContracts.length === 0 || !baseline) {\n return;\n }\n // Populate a new map based on the passed in surveys, but propagating and tracking activity counts\n // we may have seen against those events\n // NOTE: We will lose activity counts for survey events that are no longer relevant.\n var newMap = {};\n var trackedSurveyIds = [];\n for (var _i = 0, activityTrackingContracts_1 = activityTrackingContracts; _i < activityTrackingContracts_1.length; _i++) {\n var activityTrackingContract = activityTrackingContracts_1[_i];\n var trackingSet = activityTrackingContract.trackingSet;\n // Added to the new set to make sure they are not duplicated. Based on MSO.\n if (trackedSurveyIds.indexOf(activityTrackingContract.surveyId) === -1) {\n trackedSurveyIds.push(activityTrackingContract.surveyId);\n }\n else {\n // Duplicate surveyId being added, count it for the log.\n duplicateCounter++;\n continue;\n }\n // At this point, the survey's activities are safe to add.\n // Set up the structures we need to transfer baseline counts (from previous sessions) or current counts (from previous trackers)\n // Both vectors must be sorted in the same order as the trackingSet.List items\n var baselineStats = baseline.getBySurveyId(activityTrackingContract.surveyId);\n var baselineCounts = [trackingSet.getList().length];\n var currentIndexedTrackers = new Array(trackingSet.getList().length);\n var currentBaselineIndex = 0;\n var currentIndex = 0;\n for (var _a = 0, _b = trackingSet.getList(); _a < _b.length; _a++) {\n var trackingData = _b[_a];\n // Baseline stats count is 0 for events with \"IsAggregate = false\"\n baselineCounts[currentIndex] = 0;\n if (trackingData.getIsAggregate() && baselineStats && currentBaselineIndex < baselineStats.Counts.length) {\n baselineCounts[currentIndex] = baselineStats.Counts[currentBaselineIndex++];\n }\n // Session stats may be available in the previous trackedActivityMap\n // Transfer the old \"current session\" count to the new tracker\n // Is set to null if not available\n if (previousTrackedActivityMap[trackingData.getActivity()]) {\n for (var _c = 0, _d = previousTrackedActivityMap[trackingData.getActivity()]; _c < _d.length; _c++) {\n var tracker = _d[_c];\n if (tracker.surveyId === activityTrackingContract.surveyId) {\n currentIndexedTrackers[currentIndex] = tracker;\n break;\n }\n }\n }\n currentIndex++;\n }\n // Make a new tracker and init the counts appropriately.\n var newTracker = new ActivityTracker_1.default(trackingSet);\n // If in a future change we start keeping trackers registered past activation, this will change\n newTracker.initCounts(baselineCounts, currentIndexedTrackers, false /*wasActivatedThisSession*/);\n // Setup the indexed trackers\n for (var _e = 0, _f = newTracker.generateActivityIndexList(); _e < _f.length; _e++) {\n var activityIndex = _f[_e];\n var indexedTracker = new IndexedTracker_1.IndexedTracker();\n indexedTracker.index = activityIndex.index;\n indexedTracker.surveyId = activityTrackingContract.surveyId;\n indexedTracker.tracker = newTracker;\n if (!newMap[activityIndex.activity]) {\n newMap[activityIndex.activity] = [];\n }\n // Register the new tracker in our new map\n newMap[activityIndex.activity].push(indexedTracker);\n }\n }\n if (duplicateCounter > 0) {\n var telemetryLogger = this.loggerCallback && this.loggerCallback();\n if (telemetryLogger) {\n telemetryLogger.log_Error(Constants_1.TelemetryEvent.SurveyActivity.SetActivityTrackingContracts.DuplicateSurveyID, \"Duplicate surveyId passed in activityTrackingContracts. Duplicate count: \" + duplicateCounter);\n }\n }\n // Set the new map in place of the old\n this.copyObject(this.trackedActivityMap, newMap);\n };\n SurveyActivityListener.prototype.clearSurveys = function () {\n var _this = this;\n Object.getOwnPropertyNames(this.trackedActivityMap).forEach(function (key) {\n delete _this.trackedActivityMap[key];\n });\n };\n SurveyActivityListener.prototype.saveSessionTrackingActivity = function (activity) {\n // Set the new activity in place of the old\n previousTrackedActivityMap[activity] = this.trackedActivityMap[activity];\n };\n // Get the indexedTracker that corresponds to the SurveyID and return that count. otherwise return 0.\n SurveyActivityListener.prototype.getCount = function (activity, surveyId) {\n var indexedTracker = this.getIndexedTracker(activity, surveyId);\n if (!indexedTracker) {\n return 0;\n }\n return indexedTracker.tracker.getCount(indexedTracker.index);\n };\n SurveyActivityListener.prototype.getSessionCount = function (activity, surveyId) {\n var indexedTracker = this.getIndexedTracker(activity, surveyId);\n if (!indexedTracker) {\n return 0;\n }\n return indexedTracker.tracker.getSessionCount(indexedTracker.index);\n };\n /**\n * An atomic get-and-set method. Returns the current SessionCount, resetting it to zero and adding it into the established baseline\n */\n SurveyActivityListener.prototype.moveSessionCountIntoBaseCount = function (activity, surveyId) {\n var indexedTracker = this.getIndexedTracker(activity, surveyId);\n if (!indexedTracker) {\n return 0;\n }\n return indexedTracker.tracker.moveSessionCountIntoBaseCount(indexedTracker.index);\n };\n SurveyActivityListener.prototype.getSurveyIds = function (activity) {\n if (Utils_1.isNOU(activity)) {\n return undefined;\n }\n var indexedTrackers = this.trackedActivityMap[activity];\n if (!indexedTrackers) {\n return undefined;\n }\n var surveyIds = indexedTrackers.map(function (indexedTracker) { return indexedTracker.surveyId; });\n return surveyIds;\n };\n SurveyActivityListener.prototype.setCallback = function (callback) {\n this.callback = callback;\n };\n SurveyActivityListener.prototype.UpdateActivityTrackingContracts = function (surveyList) {\n if (Utils_1.isNOU(surveyList) || Object.keys(surveyList).length === 0) {\n this.clearSurveys();\n return;\n }\n for (var key in this.trackedActivityMap) {\n if (Object.prototype.hasOwnProperty.call(this.trackedActivityMap, key)) {\n var tracker = this.trackedActivityMap[key];\n // loop through tracker and remove the ones not associate with given surveys\n for (var i = tracker.length - 1; i >= 0; --i) {\n if (Object.prototype.hasOwnProperty.call(surveyList, tracker[i].surveyId)) {\n continue;\n }\n tracker.splice(i, 1);\n }\n }\n }\n };\n SurveyActivityListener.prototype.getIndexedTracker = function (activity, surveyId) {\n var indexedTrackers = this.trackedActivityMap[activity];\n if (!indexedTrackers) {\n return undefined;\n }\n var indexedTracker;\n for (var _i = 0, indexedTrackers_1 = indexedTrackers; _i < indexedTrackers_1.length; _i++) {\n var tracker = indexedTrackers_1[_i];\n if (tracker.surveyId === surveyId) {\n indexedTracker = tracker;\n break;\n }\n }\n return indexedTracker;\n };\n SurveyActivityListener.prototype.resetQueuedActivities = function () {\n queuedActivities = [];\n };\n SurveyActivityListener.prototype.logActivity_private = function (activityName, logType, increment, timestamp, context) {\n var _this = this;\n if (this.callback && !this.callback.shouldAcceptActivity(activityName)) {\n pendingActivityCount++;\n if (queuedActivities.length < SurveyActivityListener.MaxPendingActivitiesQueueSize) {\n queuedActivities.push({ activityName: activityName, logType: logType, increment: increment, timestamp: timestamp });\n }\n }\n // Count any activities that are posted before 'FloodgateFirstStart' activity happens\n if (activityName === SurveyActivityListener.FloodgateStartActivityName) {\n if (pendingActivityCount > 0) {\n // Get the activity names of the queued activities for telemetry, send only first 25.\n var activityNames = queuedActivities.slice(0, 25).map(function (queuedActivity) { return queuedActivity.activityName; });\n var telemetryLogger = this.loggerCallback && this.loggerCallback();\n if (telemetryLogger) {\n // Sampling this telemetry event to 5%\n telemetryLogger.log_Event(Constants_1.TelemetryEvent.SurveyActivity.LogActivity.EventsReprocessed, {\n ActivityNames: JSON.stringify(activityNames),\n Count: queuedActivities.length,\n Dropped: pendingActivityCount - queuedActivities.length,\n }, 0.05);\n }\n // replay all the queued activities one by one as the floodgate engine has started now\n queuedActivities.map(function (queuedActivity) { return _this.logActivity_core(queuedActivity.activityName, queuedActivity.logType, queuedActivity.increment, queuedActivity.timestamp, context); });\n }\n pendingActivityCount = 0;\n this.resetQueuedActivities();\n }\n this.logActivity_core(activityName, logType, increment, timestamp, context);\n };\n SurveyActivityListener.prototype.logActivity_core = function (activityName, logType, increment, timestamp, context) {\n var indexedTrackers = this.trackedActivityMap[activityName];\n if (!indexedTrackers || indexedTrackers.length === 0) {\n return;\n }\n var indices = [];\n // If we have more than one tracker shuffle trackers to randomize which is evaluated first\n if (indexedTrackers.length > 1) {\n indices = new Array(indexedTrackers.length);\n for (var i = 0; i < indices.length; i++) {\n indices[i] = i;\n }\n indices = Utils_1.fyShuffle(indices); // shuffle and reassign\n }\n else {\n indices.push(0); // just have a zero. Shuffling is not needed.\n }\n // Loop through trackers in shuffled order\n for (var _i = 0, indices_1 = indices; _i < indices_1.length; _i++) {\n var index = indices_1[_i];\n var tracker = indexedTrackers[index];\n switch (logType) {\n case 1 /* StartTime */: {\n tracker.tracker.startTime(tracker.index, timestamp);\n continue; // Look at the next tracker. Increment not needed.\n }\n case 2 /* StopTime */: {\n increment = tracker.tracker.stopTime(tracker.index, timestamp);\n // fall through to increment the activity as well.\n }\n case 0 /* Increment */: {\n break;\n }\n default: {\n continue;\n }\n }\n if (context) {\n var trackerSurveyId = tracker.surveyId;\n this.activityContext[trackerSurveyId] = this.activityContext[trackerSurveyId] || [];\n this.activityContext[trackerSurveyId].push({ activityName: activityName, context: context });\n }\n var result = tracker.tracker.incrementActivity(tracker.index, increment);\n if (result === 2 /* AllActivitiesActivated */) {\n // Check the activated surveys list to ensure whether any previous survey is still in process\n // If not, the length should be 1 and call to execute this survey right away\n // This should only happen if calling to Governance Service, due to the call is asynchronous\n this.executeCallback(tracker.surveyId);\n break;\n /* Breaking here to let one and only one callback to be made from a logActivity call.\n This ensures only one survey can fully 'trigger' for a logActivity call. Others that would also\n have triggered must wait until the next call to trigger (without there being a cooldown, of course).\n */\n }\n }\n };\n SurveyActivityListener.prototype.executeCallback = function (surveyId) {\n this.callback.run(surveyId, this.activityContext[surveyId]);\n };\n SurveyActivityListener.prototype.copyObject = function (target, source) {\n Object.keys(source).forEach(function (key) {\n target[key] = source[key];\n });\n };\n SurveyActivityListener.FloodgateStartActivityName = \"FloodgateFirstStart\";\n // The size of the dropped activities is set to 100 due to the following two reasons.\n // 1) To prevent the array growing too big and causing memory issues.\n // 2) Based on the telemetry analysis of number of dropped activities, the count is very small and much lesser than 100.\n SurveyActivityListener.MaxPendingActivitiesQueueSize = 100;\n return SurveyActivityListener;\n}());\nexports.default = SurveyActivityListener;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUFjdGl2aXR5TGlzdGVuZXIudHM/MWNiZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLHFIQUFnRDtBQUVoRCxtR0FBNkM7QUFDN0Msa0hBQWtEO0FBQ2xELDJLQUFrSDtBQUNsSCx1RkFBMkM7QUFFM0MsSUFBSSxnQkFBZ0IsR0FBbUQsRUFBRSxDQUFDO0FBQzFFLElBQUksb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLElBQUksMEJBQTBCLEdBQXVDLEVBQUUsQ0FBQztBQUV4RTs7O0dBR0c7QUFDSDtJQWtCQyxnQ0FBWSxRQUEwRCxFQUFFLGNBQWdEO1FBUHhILHlHQUF5RztRQUNqRyxvQkFBZSxHQUFtQyxFQUFFLENBQUM7UUFPNUQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdEMsQ0FBQztJQW5CYSwyQ0FBb0IsR0FBbEM7UUFDQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7SUFDakMsQ0FBQztJQW1CTSw0Q0FBVyxHQUFsQixVQUFtQixZQUFvQixFQUFFLFNBQWEsRUFBRSxPQUEwQjtRQUF6Qyx5Q0FBYTtRQUNyRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxxQkFBa0QsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsSCxDQUFDO0lBRU0scURBQW9CLEdBQTNCLFVBQTRCLFlBQW9CLEVBQUUsU0FBZ0I7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVkscUJBQWtELENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVNLG9EQUFtQixHQUExQixVQUEyQixZQUFvQixFQUFFLFFBQWU7UUFDL0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksb0JBQWlELENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVNLDZEQUE0QixHQUFuQyxVQUFvQyx5QkFBcUQsRUFDeEYsUUFBa0Q7UUFBbEQsMENBQWUscUVBQWlDLEVBQUU7UUFFbEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLHlCQUF5QixJQUFJLHlCQUF5QixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEYsT0FBTztTQUNQO1FBRUQsa0dBQWtHO1FBQ2xHLHdDQUF3QztRQUN4QyxvRkFBb0Y7UUFDcEYsSUFBTSxNQUFNLEdBQXVDLEVBQUUsQ0FBQztRQUN0RCxJQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUV0QyxLQUF1QyxVQUF5QixFQUF6Qix1REFBeUIsRUFBekIsdUNBQXlCLEVBQXpCLElBQXlCLEVBQUU7WUFBN0QsSUFBTSx3QkFBd0I7WUFDbEMsSUFBTSxXQUFXLEdBQXlCLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztZQUUvRSwyRUFBMkU7WUFDM0UsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3ZFLGdCQUFnQixDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN6RDtpQkFBTTtnQkFDTix3REFBd0Q7Z0JBQ3hELGdCQUFnQixFQUFFLENBQUM7Z0JBQ25CLFNBQVM7YUFDVDtZQUVELDBEQUEwRDtZQUMxRCxnSUFBZ0k7WUFDaEksOEVBQThFO1lBQzlFLElBQU0sYUFBYSxHQUE2QixRQUFRLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFHLElBQU0sY0FBYyxHQUFhLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLElBQU0sc0JBQXNCLEdBQXFCLElBQUksS0FBSyxDQUFpQixXQUFXLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFekcsSUFBSSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7WUFDN0IsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBRXJCLEtBQTJCLFVBQXFCLEVBQXJCLGdCQUFXLENBQUMsT0FBTyxFQUFFLEVBQXJCLGNBQXFCLEVBQXJCLElBQXFCLEVBQUU7Z0JBQTdDLElBQU0sWUFBWTtnQkFDdEIsa0VBQWtFO2dCQUNsRSxjQUFjLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQyxJQUFJLFlBQVksQ0FBQyxjQUFjLEVBQUUsSUFBSSxhQUFhLElBQUksb0JBQW9CLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3pHLGNBQWMsQ0FBQyxZQUFZLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztpQkFDNUU7Z0JBRUQsb0VBQW9FO2dCQUNwRSw4REFBOEQ7Z0JBQzlELGtDQUFrQztnQkFDbEMsSUFBSSwwQkFBMEIsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtvQkFDM0QsS0FBc0IsVUFBc0QsRUFBdEQsK0JBQTBCLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQXRELGNBQXNELEVBQXRELElBQXNELEVBQUU7d0JBQXpFLElBQU0sT0FBTzt3QkFDakIsSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLHdCQUF3QixDQUFDLFFBQVEsRUFBRTs0QkFDM0Qsc0JBQXNCLENBQUMsWUFBWSxDQUFDLEdBQUcsT0FBTyxDQUFDOzRCQUMvQyxNQUFNO3lCQUNOO3FCQUNEO2lCQUNEO2dCQUVELFlBQVksRUFBRSxDQUFDO2FBQ2Y7WUFFRCx3REFBd0Q7WUFDeEQsSUFBTSxVQUFVLEdBQUcsSUFBSSx5QkFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3BELCtGQUErRjtZQUMvRixVQUFVLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUVqRyw2QkFBNkI7WUFDN0IsS0FBNEIsVUFBc0MsRUFBdEMsZUFBVSxDQUFDLHlCQUF5QixFQUFFLEVBQXRDLGNBQXNDLEVBQXRDLElBQXNDLEVBQUU7Z0JBQS9ELElBQU0sYUFBYTtnQkFDdkIsSUFBTSxjQUFjLEdBQUcsSUFBSSwrQkFBYyxFQUFFLENBQUM7Z0JBQzVDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztnQkFDM0MsY0FBYyxDQUFDLFFBQVEsR0FBRyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7Z0JBQzVELGNBQWMsQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDO2dCQUVwQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDcEMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ3BDO2dCQUVELDBDQUEwQztnQkFDMUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDcEQ7U0FDRDtRQUVELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3JFLElBQUksZUFBZSxFQUFFO2dCQUNwQixlQUFlLENBQUMsU0FBUyxDQUFDLDBCQUFjLENBQUMsY0FBYyxDQUFDLDRCQUE0QixDQUFDLGlCQUFpQixFQUNyRywyRUFBMkUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQ2pHO1NBQ0Q7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLDZDQUFZLEdBQW5CO1FBQUEsaUJBSUM7UUFIQSxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsR0FBRztZQUMvRCxPQUFPLEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSw0REFBMkIsR0FBbEMsVUFBbUMsUUFBZ0I7UUFDbEQsMkNBQTJDO1FBQzNDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQscUdBQXFHO0lBQzlGLHlDQUFRLEdBQWYsVUFBZ0IsUUFBZ0IsRUFBRSxRQUFnQjtRQUNqRCxJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDcEIsT0FBTyxDQUFDLENBQUM7U0FDVDtRQUVELE9BQU8sY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTSxnREFBZSxHQUF0QixVQUF1QixRQUFnQixFQUFFLFFBQWdCO1FBQ3hELElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNwQixPQUFPLENBQUMsQ0FBQztTQUNUO1FBRUQsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksOERBQTZCLEdBQXBDLFVBQXFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDdEUsSUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Q7UUFFRCxPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSw2Q0FBWSxHQUFuQixVQUFvQixRQUFnQjtRQUNuQyxJQUFJLGFBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNwQixPQUFPLFNBQVMsQ0FBQztTQUNqQjtRQUVELElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ2pCO1FBRUQsSUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFDLGNBQWMsSUFBSyxxQkFBYyxDQUFDLFFBQVEsRUFBdkIsQ0FBdUIsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFFTSw0Q0FBVyxHQUFsQixVQUFtQixRQUEwRDtRQUM1RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRU0sZ0VBQStCLEdBQXRDLFVBQXVDLFVBQWdDO1FBQ3RFLElBQUksYUFBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsT0FBTztTQUNQO1FBRUQsS0FBSyxJQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDMUMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUN2RSxJQUFNLE9BQU8sR0FBcUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUUvRCw0RUFBNEU7Z0JBQzVFLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtvQkFDN0MsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTt3QkFDMUUsU0FBUztxQkFDVDtvQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDckI7YUFDRDtTQUNEO0lBQ0YsQ0FBQztJQUVPLGtEQUFpQixHQUF6QixVQUEwQixRQUFnQixFQUFFLFFBQWdCO1FBQzNELElBQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3JCLE9BQU8sU0FBUyxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxjQUEwQyxDQUFDO1FBQy9DLEtBQXNCLFVBQWUsRUFBZixtQ0FBZSxFQUFmLDZCQUFlLEVBQWYsSUFBZSxFQUFFO1lBQWxDLElBQU0sT0FBTztZQUNqQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFO2dCQUNsQyxjQUFjLEdBQUcsT0FBTyxDQUFDO2dCQUN6QixNQUFNO2FBQ047U0FDRDtRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxzREFBcUIsR0FBN0I7UUFDQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9EQUFtQixHQUEzQixVQUE0QixZQUFvQixFQUMvQyxPQUE2QyxFQUM3QyxTQUFpQixFQUNqQixTQUFlLEVBQ2YsT0FBeUI7UUFKMUIsaUJBd0NDO1FBbkNBLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkUsb0JBQW9CLEVBQUUsQ0FBQztZQUN2QixJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyw2QkFBNkIsRUFBRTtnQkFDbkYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxnQkFBRSxPQUFPLFdBQUUsU0FBUyxhQUFFLFNBQVMsYUFBRSxDQUFDLENBQUM7YUFDdkU7U0FDRDtRQUVELHFGQUFxRjtRQUNyRixJQUFJLFlBQVksS0FBSyxzQkFBc0IsQ0FBQywwQkFBMEIsRUFBRTtZQUN2RSxJQUFJLG9CQUFvQixHQUFHLENBQUMsRUFBRTtnQkFDN0IscUZBQXFGO2dCQUNyRixJQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLGNBQWMsSUFBSyxxQkFBYyxDQUFDLFlBQVksRUFBM0IsQ0FBMkIsQ0FBQyxDQUFDO2dCQUV6RyxJQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDckUsSUFBSSxlQUFlLEVBQUU7b0JBQ3BCLHNDQUFzQztvQkFDdEMsZUFBZSxDQUFDLFNBQVMsQ0FBQywwQkFBYyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQ3BGO3dCQUNDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQzt3QkFDNUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLE1BQU07d0JBQzlCLE9BQU8sRUFBRSxvQkFBb0IsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNO3FCQUN2RCxFQUNELElBQUksQ0FBQyxDQUFDO2lCQUNQO2dCQUVELHNGQUFzRjtnQkFDdEYsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQUMsY0FBYyxJQUFLLFlBQUksQ0FBQyxnQkFBZ0IsQ0FDN0QsY0FBYyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFEekUsQ0FDeUUsQ0FBQyxDQUFDO2FBQ3BIO1lBRUQsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRU8saURBQWdCLEdBQXhCLFVBQXlCLFlBQW9CLEVBQzVDLE9BQTZDLEVBQzdDLFNBQWlCLEVBQ2pCLFNBQWUsRUFDZixPQUF5QjtRQUN6QixJQUFNLGVBQWUsR0FBcUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxlQUFlLElBQUksZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDckQsT0FBTztTQUNQO1FBRUQsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO1FBRTNCLDBGQUEwRjtRQUMxRixJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sR0FBRyxJQUFJLEtBQUssQ0FBUyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDcEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDZjtZQUNELE9BQU8sR0FBRyxpQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCO1NBQ3JEO2FBQU07WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsNkNBQTZDO1NBQzlEO1FBRUQsMENBQTBDO1FBQzFDLEtBQW9CLFVBQU8sRUFBUCxtQkFBTyxFQUFQLHFCQUFPLEVBQVAsSUFBTyxFQUFFO1lBQXhCLElBQU0sS0FBSztZQUNmLElBQU0sT0FBTyxHQUFtQixlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkQsUUFBUSxPQUFPLEVBQUU7Z0JBQ2hCLHNCQUFtRCxDQUFDLENBQUM7b0JBQ3BELE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3BELFNBQVMsQ0FBQyxrREFBa0Q7aUJBQzVEO2dCQUNELHFCQUFrRCxDQUFDLENBQUM7b0JBQ25ELFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUMvRCxrREFBa0Q7aUJBQ2xEO2dCQUNELHNCQUFtRCxDQUFDLENBQUM7b0JBQ3BELE1BQU07aUJBQ047Z0JBQ0QsT0FBTyxDQUFDLENBQUM7b0JBQ1IsU0FBUztpQkFDVDthQUNEO1lBRUQsSUFBSSxPQUFPLEVBQUU7Z0JBQ1osSUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxZQUFZLGdCQUFFLE9BQU8sV0FBRSxDQUFDLENBQUM7YUFDdEU7WUFFRCxJQUFNLE1BQU0sR0FBb0MsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzVHLElBQUksTUFBTSxtQ0FBMkQsRUFBRTtnQkFDdEUsNkZBQTZGO2dCQUM3Riw0RUFBNEU7Z0JBQzVFLDRGQUE0RjtnQkFDNUYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07Z0JBQ047OztrQkFHRTthQUNGO1NBQ0Q7SUFDRixDQUFDO0lBRU8sZ0RBQWUsR0FBdkIsVUFBd0IsUUFBZ0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRU8sMkNBQVUsR0FBbEIsVUFBbUIsTUFBYyxFQUFFLE1BQWM7UUFDaEQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQyxHQUFHO1lBQy9CLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBNVZhLGlEQUEwQixHQUFHLHFCQUFxQixDQUFDO0lBQ2pFLHFGQUFxRjtJQUNyRixxRUFBcUU7SUFDckUsd0hBQXdIO0lBQzFHLG9EQUE2QixHQUFHLEdBQUcsQ0FBQztJQXlWbkQsNkJBQUM7Q0FBQTtBQXNCRCxrQkFBZSxzQkFBc0IsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleUFjdGl2aXR5TGlzdGVuZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdElBY3Rpdml0eUNvbnRleHQsXHJcblx0SUFjdGl2aXR5TGlzdGVuZXIsXHJcblx0SUFjdGl2aXR5VHJhY2tpbmdTZXQsXHJcblx0SUNvbnRleHREYXRhLFxyXG5cdElEaWN0aW9uYXJ5LFxyXG5cdElGbG9vZGdhdGVUZWxlbWV0cnlMb2dnZXIsXHJcblx0SVN1cnZleSxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0IEFjdGl2aXR5VHJhY2tlciBmcm9tIFwiLi9BY3Rpdml0eVRyYWNrZXJcIjtcclxuaW1wb3J0IHsgQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0IH0gZnJvbSBcIi4vQWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0XCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUV2ZW50IH0gZnJvbSBcIi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEluZGV4ZWRUcmFja2VyIH0gZnJvbSBcIi4vSW5kZXhlZFRyYWNrZXJcIjtcclxuaW1wb3J0IHsgU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzLCBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkgfSBmcm9tIFwiLi9TdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHlcIjtcclxuaW1wb3J0IHsgZnlTaHVmZmxlLCBpc05PVSB9IGZyb20gXCIuL1V0aWxzXCI7XHJcblxyXG5sZXQgcXVldWVkQWN0aXZpdGllczogU3VydmV5QWN0aXZpdHlMaXN0ZW5lci5JUXVldWVkQWN0aXZpdHlQYXJhbXNbXSA9IFtdO1xyXG5sZXQgcGVuZGluZ0FjdGl2aXR5Q291bnQgPSAwO1xyXG5sZXQgcHJldmlvdXNUcmFja2VkQWN0aXZpdHlNYXA6IHsgW2lkOiBzdHJpbmddOiBJbmRleGVkVHJhY2tlcltdIH0gPSB7fTtcclxuXHJcbi8qKlxyXG4gKiBUaGlzIGNsYXNzIHRyYWNrcyBsb2cgY2FsbHMgYWdhaW5zdCBuYW1lZCBhY3Rpdml0eSBzdHJpbmdzIChtYXRjaGVkIG9uIHN0cmljdCBjYXNlLXNlbnNpdGl2ZSBlcXVhbGl0eSlcclxuICogYW5kIGNhbGxzIHRoZSBwcm92aWRlZCBjYWxsYmFjayB3aGVuIGFsbCBhY3Rpdml0eSB0aHJlc2hvbGRzIGZvciBhIGdpdmVuIHN1cnZleSBoYXZlIGJlZW4gY3Jvc3NlZFxyXG4gKi9cclxuY2xhc3MgU3VydmV5QWN0aXZpdHlMaXN0ZW5lciBpbXBsZW1lbnRzIElBY3Rpdml0eUxpc3RlbmVyIHtcclxuXHRwdWJsaWMgc3RhdGljIEZsb29kZ2F0ZVN0YXJ0QWN0aXZpdHlOYW1lID0gXCJGbG9vZGdhdGVGaXJzdFN0YXJ0XCI7XHJcblx0Ly8gVGhlIHNpemUgb2YgdGhlIGRyb3BwZWQgYWN0aXZpdGllcyBpcyBzZXQgdG8gMTAwIGR1ZSB0byB0aGUgZm9sbG93aW5nIHR3byByZWFzb25zLlxyXG5cdC8vIDEpIFRvIHByZXZlbnQgdGhlIGFycmF5IGdyb3dpbmcgdG9vIGJpZyBhbmQgY2F1c2luZyBtZW1vcnkgaXNzdWVzLlxyXG5cdC8vIDIpIEJhc2VkIG9uIHRoZSB0ZWxlbWV0cnkgYW5hbHlzaXMgb2YgbnVtYmVyIG9mIGRyb3BwZWQgYWN0aXZpdGllcywgdGhlIGNvdW50IGlzIHZlcnkgc21hbGwgYW5kIG11Y2ggbGVzc2VyIHRoYW4gMTAwLlxyXG5cdHB1YmxpYyBzdGF0aWMgTWF4UGVuZGluZ0FjdGl2aXRpZXNRdWV1ZVNpemUgPSAxMDA7XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgcmVzZXRTZXNzaW9uQWN0aXZpdHkoKTogdm9pZCB7XHJcblx0XHRwcmV2aW91c1RyYWNrZWRBY3Rpdml0eU1hcCA9IHt9O1xyXG5cdH1cclxuXHJcblx0Ly8gU2F2ZSBpbmNvbWluZyBhY3Rpdml0eSBjb250ZXh0IGRhdGEgaW4gYSBkaWN0aW9uYXJ5IHdpdGggU3VydmV5SUQgYXMga2V5LCBhY3Rpdml0eSBkYXRhIGFycmF5IGFzIHZhbHVlXHJcblx0cHJpdmF0ZSBhY3Rpdml0eUNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIElDb250ZXh0RGF0YVtdPiA9IHt9O1xyXG5cclxuXHRwcml2YXRlIHRyYWNrZWRBY3Rpdml0eU1hcDogeyBbaWQ6IHN0cmluZ106IEluZGV4ZWRUcmFja2VyW10gfTtcclxuXHRwcml2YXRlIGNhbGxiYWNrOiBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLklBY3Rpdml0eUxpc3RlbmVyQ2FsbGJhY2s7XHJcblx0cHJpdmF0ZSBsb2dnZXJDYWxsYmFjazogKCkgPT4gSUZsb29kZ2F0ZVRlbGVtZXRyeUxvZ2dlcjtcclxuXHJcblx0Y29uc3RydWN0b3IoY2FsbGJhY2s6IFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuSUFjdGl2aXR5TGlzdGVuZXJDYWxsYmFjaywgbG9nZ2VyQ2FsbGJhY2s/OiAoKSA9PiBJRmxvb2RnYXRlVGVsZW1ldHJ5TG9nZ2VyKSB7XHJcblx0XHRpZiAoIWNhbGxiYWNrKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImNhbGxiYWNrIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy50cmFja2VkQWN0aXZpdHlNYXAgPSB7fTtcclxuXHRcdHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcclxuXHRcdHRoaXMubG9nZ2VyQ2FsbGJhY2sgPSBsb2dnZXJDYWxsYmFjaztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBsb2dBY3Rpdml0eShhY3Rpdml0eU5hbWU6IHN0cmluZywgaW5jcmVtZW50ID0gMSwgY29udGV4dD86IElBY3Rpdml0eUNvbnRleHQpOiB2b2lkIHtcclxuXHRcdHRoaXMubG9nQWN0aXZpdHlfcHJpdmF0ZShhY3Rpdml0eU5hbWUsIFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZS5JbmNyZW1lbnQsIGluY3JlbWVudCwgbnVsbCwgY29udGV4dCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgbG9nQWN0aXZpdHlTdGFydFRpbWUoYWN0aXZpdHlOYW1lOiBzdHJpbmcsIHN0YXJ0VGltZT86IERhdGUpOiB2b2lkIHtcclxuXHRcdHRoaXMubG9nQWN0aXZpdHlfcHJpdmF0ZShhY3Rpdml0eU5hbWUsIFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZS5TdGFydFRpbWUsIDAsIHN0YXJ0VGltZSwgbnVsbCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgbG9nQWN0aXZpdHlTdG9wVGltZShhY3Rpdml0eU5hbWU6IHN0cmluZywgc3RvcFRpbWU/OiBEYXRlKTogdm9pZCB7XHJcblx0XHR0aGlzLmxvZ0FjdGl2aXR5X3ByaXZhdGUoYWN0aXZpdHlOYW1lLCBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLkxvZ0FjdGlvblR5cGUuU3RvcFRpbWUsIDAsIHN0b3BUaW1lLCBudWxsKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBTZXRBY3Rpdml0eVRyYWNraW5nQ29udHJhY3RzKGFjdGl2aXR5VHJhY2tpbmdDb250cmFjdHM6IEFjdGl2aXR5VHJhY2tpbmdDb250cmFjdFtdLFxyXG5cdFx0YmFzZWxpbmUgPSBuZXcgU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5KCkpOiB2b2lkIHtcclxuXHJcblx0XHRsZXQgZHVwbGljYXRlQ291bnRlciA9IDA7XHJcblxyXG5cdFx0aWYgKCFhY3Rpdml0eVRyYWNraW5nQ29udHJhY3RzIHx8IGFjdGl2aXR5VHJhY2tpbmdDb250cmFjdHMubGVuZ3RoID09PSAwIHx8ICFiYXNlbGluZSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUG9wdWxhdGUgYSBuZXcgbWFwIGJhc2VkIG9uIHRoZSBwYXNzZWQgaW4gc3VydmV5cywgYnV0IHByb3BhZ2F0aW5nIGFuZCB0cmFja2luZyBhY3Rpdml0eSBjb3VudHNcclxuXHRcdC8vIHdlIG1heSBoYXZlIHNlZW4gYWdhaW5zdCB0aG9zZSBldmVudHNcclxuXHRcdC8vIE5PVEU6IFdlIHdpbGwgbG9zZSBhY3Rpdml0eSBjb3VudHMgZm9yIHN1cnZleSBldmVudHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHJlbGV2YW50LlxyXG5cdFx0Y29uc3QgbmV3TWFwOiB7IFtpZDogc3RyaW5nXTogSW5kZXhlZFRyYWNrZXJbXSB9ID0ge307XHJcblx0XHRjb25zdCB0cmFja2VkU3VydmV5SWRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuXHRcdGZvciAoY29uc3QgYWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0IG9mIGFjdGl2aXR5VHJhY2tpbmdDb250cmFjdHMpIHtcclxuXHRcdFx0Y29uc3QgdHJhY2tpbmdTZXQ6IElBY3Rpdml0eVRyYWNraW5nU2V0ID0gYWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0LnRyYWNraW5nU2V0O1xyXG5cclxuXHRcdFx0Ly8gQWRkZWQgdG8gdGhlIG5ldyBzZXQgdG8gbWFrZSBzdXJlIHRoZXkgYXJlIG5vdCBkdXBsaWNhdGVkLiBCYXNlZCBvbiBNU08uXHJcblx0XHRcdGlmICh0cmFja2VkU3VydmV5SWRzLmluZGV4T2YoYWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0LnN1cnZleUlkKSA9PT0gLTEpIHtcclxuXHRcdFx0XHR0cmFja2VkU3VydmV5SWRzLnB1c2goYWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0LnN1cnZleUlkKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvLyBEdXBsaWNhdGUgc3VydmV5SWQgYmVpbmcgYWRkZWQsIGNvdW50IGl0IGZvciB0aGUgbG9nLlxyXG5cdFx0XHRcdGR1cGxpY2F0ZUNvdW50ZXIrKztcclxuXHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQXQgdGhpcyBwb2ludCwgdGhlIHN1cnZleSdzIGFjdGl2aXRpZXMgYXJlIHNhZmUgdG8gYWRkLlxyXG5cdFx0XHQvLyBTZXQgdXAgdGhlIHN0cnVjdHVyZXMgd2UgbmVlZCB0byB0cmFuc2ZlciBiYXNlbGluZSBjb3VudHMgKGZyb20gcHJldmlvdXMgc2Vzc2lvbnMpIG9yIGN1cnJlbnQgY291bnRzIChmcm9tIHByZXZpb3VzIHRyYWNrZXJzKVxyXG5cdFx0XHQvLyBCb3RoIHZlY3RvcnMgbXVzdCBiZSBzb3J0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgYXMgdGhlIHRyYWNraW5nU2V0Lkxpc3QgaXRlbXNcclxuXHRcdFx0Y29uc3QgYmFzZWxpbmVTdGF0czogU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzID0gYmFzZWxpbmUuZ2V0QnlTdXJ2ZXlJZChhY3Rpdml0eVRyYWNraW5nQ29udHJhY3Quc3VydmV5SWQpO1xyXG5cdFx0XHRjb25zdCBiYXNlbGluZUNvdW50czogbnVtYmVyW10gPSBbdHJhY2tpbmdTZXQuZ2V0TGlzdCgpLmxlbmd0aF07XHJcblx0XHRcdGNvbnN0IGN1cnJlbnRJbmRleGVkVHJhY2tlcnM6IEluZGV4ZWRUcmFja2VyW10gPSBuZXcgQXJyYXk8SW5kZXhlZFRyYWNrZXI+KHRyYWNraW5nU2V0LmdldExpc3QoKS5sZW5ndGgpO1xyXG5cclxuXHRcdFx0bGV0IGN1cnJlbnRCYXNlbGluZUluZGV4ID0gMDtcclxuXHRcdFx0bGV0IGN1cnJlbnRJbmRleCA9IDA7XHJcblxyXG5cdFx0XHRmb3IgKGNvbnN0IHRyYWNraW5nRGF0YSBvZiB0cmFja2luZ1NldC5nZXRMaXN0KCkpIHtcclxuXHRcdFx0XHQvLyBCYXNlbGluZSBzdGF0cyBjb3VudCBpcyAwIGZvciBldmVudHMgd2l0aCBcIklzQWdncmVnYXRlID0gZmFsc2VcIlxyXG5cdFx0XHRcdGJhc2VsaW5lQ291bnRzW2N1cnJlbnRJbmRleF0gPSAwO1xyXG5cdFx0XHRcdGlmICh0cmFja2luZ0RhdGEuZ2V0SXNBZ2dyZWdhdGUoKSAmJiBiYXNlbGluZVN0YXRzICYmIGN1cnJlbnRCYXNlbGluZUluZGV4IDwgYmFzZWxpbmVTdGF0cy5Db3VudHMubGVuZ3RoKSB7XHJcblx0XHRcdFx0XHRiYXNlbGluZUNvdW50c1tjdXJyZW50SW5kZXhdID0gYmFzZWxpbmVTdGF0cy5Db3VudHNbY3VycmVudEJhc2VsaW5lSW5kZXgrK107XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBTZXNzaW9uIHN0YXRzIG1heSBiZSBhdmFpbGFibGUgaW4gdGhlIHByZXZpb3VzIHRyYWNrZWRBY3Rpdml0eU1hcFxyXG5cdFx0XHRcdC8vIFRyYW5zZmVyIHRoZSBvbGQgXCJjdXJyZW50IHNlc3Npb25cIiBjb3VudCB0byB0aGUgbmV3IHRyYWNrZXJcclxuXHRcdFx0XHQvLyBJcyBzZXQgdG8gbnVsbCBpZiBub3QgYXZhaWxhYmxlXHJcblx0XHRcdFx0aWYgKHByZXZpb3VzVHJhY2tlZEFjdGl2aXR5TWFwW3RyYWNraW5nRGF0YS5nZXRBY3Rpdml0eSgpXSkge1xyXG5cdFx0XHRcdFx0Zm9yIChjb25zdCB0cmFja2VyIG9mIHByZXZpb3VzVHJhY2tlZEFjdGl2aXR5TWFwW3RyYWNraW5nRGF0YS5nZXRBY3Rpdml0eSgpXSkge1xyXG5cdFx0XHRcdFx0XHRpZiAodHJhY2tlci5zdXJ2ZXlJZCA9PT0gYWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0LnN1cnZleUlkKSB7XHJcblx0XHRcdFx0XHRcdFx0Y3VycmVudEluZGV4ZWRUcmFja2Vyc1tjdXJyZW50SW5kZXhdID0gdHJhY2tlcjtcclxuXHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Y3VycmVudEluZGV4Kys7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIE1ha2UgYSBuZXcgdHJhY2tlciBhbmQgaW5pdCB0aGUgY291bnRzIGFwcHJvcHJpYXRlbHkuXHJcblx0XHRcdGNvbnN0IG5ld1RyYWNrZXIgPSBuZXcgQWN0aXZpdHlUcmFja2VyKHRyYWNraW5nU2V0KTtcclxuXHRcdFx0Ly8gSWYgaW4gYSBmdXR1cmUgY2hhbmdlIHdlIHN0YXJ0IGtlZXBpbmcgdHJhY2tlcnMgcmVnaXN0ZXJlZCBwYXN0IGFjdGl2YXRpb24sIHRoaXMgd2lsbCBjaGFuZ2VcclxuXHRcdFx0bmV3VHJhY2tlci5pbml0Q291bnRzKGJhc2VsaW5lQ291bnRzLCBjdXJyZW50SW5kZXhlZFRyYWNrZXJzLCBmYWxzZSAvKndhc0FjdGl2YXRlZFRoaXNTZXNzaW9uKi8pO1xyXG5cclxuXHRcdFx0Ly8gU2V0dXAgdGhlIGluZGV4ZWQgdHJhY2tlcnNcclxuXHRcdFx0Zm9yIChjb25zdCBhY3Rpdml0eUluZGV4IG9mIG5ld1RyYWNrZXIuZ2VuZXJhdGVBY3Rpdml0eUluZGV4TGlzdCgpKSB7XHJcblx0XHRcdFx0Y29uc3QgaW5kZXhlZFRyYWNrZXIgPSBuZXcgSW5kZXhlZFRyYWNrZXIoKTtcclxuXHRcdFx0XHRpbmRleGVkVHJhY2tlci5pbmRleCA9IGFjdGl2aXR5SW5kZXguaW5kZXg7XHJcblx0XHRcdFx0aW5kZXhlZFRyYWNrZXIuc3VydmV5SWQgPSBhY3Rpdml0eVRyYWNraW5nQ29udHJhY3Quc3VydmV5SWQ7XHJcblx0XHRcdFx0aW5kZXhlZFRyYWNrZXIudHJhY2tlciA9IG5ld1RyYWNrZXI7XHJcblxyXG5cdFx0XHRcdGlmICghbmV3TWFwW2FjdGl2aXR5SW5kZXguYWN0aXZpdHldKSB7XHJcblx0XHRcdFx0XHRuZXdNYXBbYWN0aXZpdHlJbmRleC5hY3Rpdml0eV0gPSBbXTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIFJlZ2lzdGVyIHRoZSBuZXcgdHJhY2tlciBpbiBvdXIgbmV3IG1hcFxyXG5cdFx0XHRcdG5ld01hcFthY3Rpdml0eUluZGV4LmFjdGl2aXR5XS5wdXNoKGluZGV4ZWRUcmFja2VyKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChkdXBsaWNhdGVDb3VudGVyID4gMCkge1xyXG5cdFx0XHRjb25zdCB0ZWxlbWV0cnlMb2dnZXIgPSB0aGlzLmxvZ2dlckNhbGxiYWNrICYmIHRoaXMubG9nZ2VyQ2FsbGJhY2soKTtcclxuXHRcdFx0aWYgKHRlbGVtZXRyeUxvZ2dlcikge1xyXG5cdFx0XHRcdHRlbGVtZXRyeUxvZ2dlci5sb2dfRXJyb3IoVGVsZW1ldHJ5RXZlbnQuU3VydmV5QWN0aXZpdHkuU2V0QWN0aXZpdHlUcmFja2luZ0NvbnRyYWN0cy5EdXBsaWNhdGVTdXJ2ZXlJRCxcclxuXHRcdFx0XHRcdFwiRHVwbGljYXRlIHN1cnZleUlkIHBhc3NlZCBpbiBhY3Rpdml0eVRyYWNraW5nQ29udHJhY3RzLiBEdXBsaWNhdGUgY291bnQ6IFwiICsgZHVwbGljYXRlQ291bnRlcik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBTZXQgdGhlIG5ldyBtYXAgaW4gcGxhY2Ugb2YgdGhlIG9sZFxyXG5cdFx0dGhpcy5jb3B5T2JqZWN0KHRoaXMudHJhY2tlZEFjdGl2aXR5TWFwLCBuZXdNYXApO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNsZWFyU3VydmV5cygpOiB2b2lkIHtcclxuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXMudHJhY2tlZEFjdGl2aXR5TWFwKS5mb3JFYWNoKChrZXkpID0+IHtcclxuXHRcdFx0ZGVsZXRlIHRoaXMudHJhY2tlZEFjdGl2aXR5TWFwW2tleV07XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzYXZlU2Vzc2lvblRyYWNraW5nQWN0aXZpdHkoYWN0aXZpdHk6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0Ly8gU2V0IHRoZSBuZXcgYWN0aXZpdHkgaW4gcGxhY2Ugb2YgdGhlIG9sZFxyXG5cdFx0cHJldmlvdXNUcmFja2VkQWN0aXZpdHlNYXBbYWN0aXZpdHldID0gdGhpcy50cmFja2VkQWN0aXZpdHlNYXBbYWN0aXZpdHldO1xyXG5cdH1cclxuXHJcblx0Ly8gR2V0IHRoZSBpbmRleGVkVHJhY2tlciB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBTdXJ2ZXlJRCBhbmQgcmV0dXJuIHRoYXQgY291bnQuIG90aGVyd2lzZSByZXR1cm4gMC5cclxuXHRwdWJsaWMgZ2V0Q291bnQoYWN0aXZpdHk6IHN0cmluZywgc3VydmV5SWQ6IHN0cmluZyk6IG51bWJlciB7XHJcblx0XHRjb25zdCBpbmRleGVkVHJhY2tlciA9IHRoaXMuZ2V0SW5kZXhlZFRyYWNrZXIoYWN0aXZpdHksIHN1cnZleUlkKTtcclxuXHRcdGlmICghaW5kZXhlZFRyYWNrZXIpIHtcclxuXHRcdFx0cmV0dXJuIDA7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGluZGV4ZWRUcmFja2VyLnRyYWNrZXIuZ2V0Q291bnQoaW5kZXhlZFRyYWNrZXIuaW5kZXgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFNlc3Npb25Db3VudChhY3Rpdml0eTogc3RyaW5nLCBzdXJ2ZXlJZDogc3RyaW5nKTogbnVtYmVyIHtcclxuXHRcdGNvbnN0IGluZGV4ZWRUcmFja2VyID0gdGhpcy5nZXRJbmRleGVkVHJhY2tlcihhY3Rpdml0eSwgc3VydmV5SWQpO1xyXG5cdFx0aWYgKCFpbmRleGVkVHJhY2tlcikge1xyXG5cdFx0XHRyZXR1cm4gMDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gaW5kZXhlZFRyYWNrZXIudHJhY2tlci5nZXRTZXNzaW9uQ291bnQoaW5kZXhlZFRyYWNrZXIuaW5kZXgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQW4gYXRvbWljIGdldC1hbmQtc2V0IG1ldGhvZC4gIFJldHVybnMgdGhlIGN1cnJlbnQgU2Vzc2lvbkNvdW50LCByZXNldHRpbmcgaXQgdG8gemVybyBhbmQgYWRkaW5nIGl0IGludG8gdGhlIGVzdGFibGlzaGVkIGJhc2VsaW5lXHJcblx0ICovXHJcblx0cHVibGljIG1vdmVTZXNzaW9uQ291bnRJbnRvQmFzZUNvdW50KGFjdGl2aXR5OiBzdHJpbmcsIHN1cnZleUlkOiBzdHJpbmcpOiBudW1iZXIge1xyXG5cdFx0Y29uc3QgaW5kZXhlZFRyYWNrZXIgPSB0aGlzLmdldEluZGV4ZWRUcmFja2VyKGFjdGl2aXR5LCBzdXJ2ZXlJZCk7XHJcblx0XHRpZiAoIWluZGV4ZWRUcmFja2VyKSB7XHJcblx0XHRcdHJldHVybiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBpbmRleGVkVHJhY2tlci50cmFja2VyLm1vdmVTZXNzaW9uQ291bnRJbnRvQmFzZUNvdW50KGluZGV4ZWRUcmFja2VyLmluZGV4KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRTdXJ2ZXlJZHMoYWN0aXZpdHk6IHN0cmluZyk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcclxuXHRcdGlmIChpc05PVShhY3Rpdml0eSkpIHtcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBpbmRleGVkVHJhY2tlcnMgPSB0aGlzLnRyYWNrZWRBY3Rpdml0eU1hcFthY3Rpdml0eV07XHJcblx0XHRpZiAoIWluZGV4ZWRUcmFja2Vycykge1xyXG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHN1cnZleUlkcyA9IGluZGV4ZWRUcmFja2Vycy5tYXAoKGluZGV4ZWRUcmFja2VyKSA9PiBpbmRleGVkVHJhY2tlci5zdXJ2ZXlJZCk7XHJcblx0XHRyZXR1cm4gc3VydmV5SWRzO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHNldENhbGxiYWNrKGNhbGxiYWNrOiBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLklBY3Rpdml0eUxpc3RlbmVyQ2FsbGJhY2spOiB2b2lkIHtcclxuXHRcdHRoaXMuY2FsbGJhY2sgPSBjYWxsYmFjaztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBVcGRhdGVBY3Rpdml0eVRyYWNraW5nQ29udHJhY3RzKHN1cnZleUxpc3Q6IElEaWN0aW9uYXJ5PElTdXJ2ZXk+KTogdm9pZCB7XHJcblx0XHRpZiAoaXNOT1Uoc3VydmV5TGlzdCkgfHwgT2JqZWN0LmtleXMoc3VydmV5TGlzdCkubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHRoaXMuY2xlYXJTdXJ2ZXlzKCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRmb3IgKGNvbnN0IGtleSBpbiB0aGlzLnRyYWNrZWRBY3Rpdml0eU1hcCkge1xyXG5cdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMudHJhY2tlZEFjdGl2aXR5TWFwLCBrZXkpKSB7XHJcblx0XHRcdFx0Y29uc3QgdHJhY2tlcjogSW5kZXhlZFRyYWNrZXJbXSA9IHRoaXMudHJhY2tlZEFjdGl2aXR5TWFwW2tleV07XHJcblxyXG5cdFx0XHRcdC8vIGxvb3AgdGhyb3VnaCB0cmFja2VyIGFuZCByZW1vdmUgdGhlIG9uZXMgbm90IGFzc29jaWF0ZSB3aXRoIGdpdmVuIHN1cnZleXNcclxuXHRcdFx0XHRmb3IgKGxldCBpID0gdHJhY2tlci5sZW5ndGggLSAxOyBpID49IDA7IC0taSkge1xyXG5cdFx0XHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdXJ2ZXlMaXN0LCB0cmFja2VyW2ldLnN1cnZleUlkKSkge1xyXG5cdFx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHRyYWNrZXIuc3BsaWNlKGksIDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXRJbmRleGVkVHJhY2tlcihhY3Rpdml0eTogc3RyaW5nLCBzdXJ2ZXlJZDogc3RyaW5nKTogSW5kZXhlZFRyYWNrZXIgfCB1bmRlZmluZWQge1xyXG5cdFx0Y29uc3QgaW5kZXhlZFRyYWNrZXJzID0gdGhpcy50cmFja2VkQWN0aXZpdHlNYXBbYWN0aXZpdHldO1xyXG5cclxuXHRcdGlmICghaW5kZXhlZFRyYWNrZXJzKSB7XHJcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IGluZGV4ZWRUcmFja2VyOiBJbmRleGVkVHJhY2tlciB8IHVuZGVmaW5lZDtcclxuXHRcdGZvciAoY29uc3QgdHJhY2tlciBvZiBpbmRleGVkVHJhY2tlcnMpIHtcclxuXHRcdFx0aWYgKHRyYWNrZXIuc3VydmV5SWQgPT09IHN1cnZleUlkKSB7XHJcblx0XHRcdFx0aW5kZXhlZFRyYWNrZXIgPSB0cmFja2VyO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGluZGV4ZWRUcmFja2VyO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZXNldFF1ZXVlZEFjdGl2aXRpZXMoKTogdm9pZCB7XHJcblx0XHRxdWV1ZWRBY3Rpdml0aWVzID0gW107XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGxvZ0FjdGl2aXR5X3ByaXZhdGUoYWN0aXZpdHlOYW1lOiBzdHJpbmcsXHJcblx0XHRsb2dUeXBlOiBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLkxvZ0FjdGlvblR5cGUsXHJcblx0XHRpbmNyZW1lbnQ6IG51bWJlcixcclxuXHRcdHRpbWVzdGFtcDogRGF0ZSxcclxuXHRcdGNvbnRleHQ6IElBY3Rpdml0eUNvbnRleHQpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmNhbGxiYWNrICYmICF0aGlzLmNhbGxiYWNrLnNob3VsZEFjY2VwdEFjdGl2aXR5KGFjdGl2aXR5TmFtZSkpIHtcclxuXHRcdFx0cGVuZGluZ0FjdGl2aXR5Q291bnQrKztcclxuXHRcdFx0aWYgKHF1ZXVlZEFjdGl2aXRpZXMubGVuZ3RoIDwgU3VydmV5QWN0aXZpdHlMaXN0ZW5lci5NYXhQZW5kaW5nQWN0aXZpdGllc1F1ZXVlU2l6ZSkge1xyXG5cdFx0XHRcdHF1ZXVlZEFjdGl2aXRpZXMucHVzaCh7IGFjdGl2aXR5TmFtZSwgbG9nVHlwZSwgaW5jcmVtZW50LCB0aW1lc3RhbXAgfSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBDb3VudCBhbnkgYWN0aXZpdGllcyB0aGF0IGFyZSBwb3N0ZWQgYmVmb3JlICdGbG9vZGdhdGVGaXJzdFN0YXJ0JyBhY3Rpdml0eSBoYXBwZW5zXHJcblx0XHRpZiAoYWN0aXZpdHlOYW1lID09PSBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyLkZsb29kZ2F0ZVN0YXJ0QWN0aXZpdHlOYW1lKSB7XHJcblx0XHRcdGlmIChwZW5kaW5nQWN0aXZpdHlDb3VudCA+IDApIHtcclxuXHRcdFx0XHQvLyBHZXQgdGhlIGFjdGl2aXR5IG5hbWVzIG9mIHRoZSBxdWV1ZWQgYWN0aXZpdGllcyBmb3IgdGVsZW1ldHJ5LCBzZW5kIG9ubHkgZmlyc3QgMjUuXHJcblx0XHRcdFx0Y29uc3QgYWN0aXZpdHlOYW1lcyA9IHF1ZXVlZEFjdGl2aXRpZXMuc2xpY2UoMCwgMjUpLm1hcCgocXVldWVkQWN0aXZpdHkpID0+IHF1ZXVlZEFjdGl2aXR5LmFjdGl2aXR5TmFtZSk7XHJcblxyXG5cdFx0XHRcdGNvbnN0IHRlbGVtZXRyeUxvZ2dlciA9IHRoaXMubG9nZ2VyQ2FsbGJhY2sgJiYgdGhpcy5sb2dnZXJDYWxsYmFjaygpO1xyXG5cdFx0XHRcdGlmICh0ZWxlbWV0cnlMb2dnZXIpIHtcclxuXHRcdFx0XHRcdC8vIFNhbXBsaW5nIHRoaXMgdGVsZW1ldHJ5IGV2ZW50IHRvIDUlXHJcblx0XHRcdFx0XHR0ZWxlbWV0cnlMb2dnZXIubG9nX0V2ZW50KFRlbGVtZXRyeUV2ZW50LlN1cnZleUFjdGl2aXR5LkxvZ0FjdGl2aXR5LkV2ZW50c1JlcHJvY2Vzc2VkLFxyXG5cdFx0XHRcdFx0XHR7XHJcblx0XHRcdFx0XHRcdFx0QWN0aXZpdHlOYW1lczogSlNPTi5zdHJpbmdpZnkoYWN0aXZpdHlOYW1lcyksXHJcblx0XHRcdFx0XHRcdFx0Q291bnQ6IHF1ZXVlZEFjdGl2aXRpZXMubGVuZ3RoLFxyXG5cdFx0XHRcdFx0XHRcdERyb3BwZWQ6IHBlbmRpbmdBY3Rpdml0eUNvdW50IC0gcXVldWVkQWN0aXZpdGllcy5sZW5ndGgsXHJcblx0XHRcdFx0XHRcdH0sXHJcblx0XHRcdFx0XHRcdDAuMDUpO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gcmVwbGF5IGFsbCB0aGUgcXVldWVkIGFjdGl2aXRpZXMgb25lIGJ5IG9uZSBhcyB0aGUgZmxvb2RnYXRlIGVuZ2luZSBoYXMgc3RhcnRlZCBub3dcclxuXHRcdFx0XHRxdWV1ZWRBY3Rpdml0aWVzLm1hcCgocXVldWVkQWN0aXZpdHkpID0+IHRoaXMubG9nQWN0aXZpdHlfY29yZShcclxuXHRcdFx0XHRcdHF1ZXVlZEFjdGl2aXR5LmFjdGl2aXR5TmFtZSwgcXVldWVkQWN0aXZpdHkubG9nVHlwZSwgcXVldWVkQWN0aXZpdHkuaW5jcmVtZW50LCBxdWV1ZWRBY3Rpdml0eS50aW1lc3RhbXAsIGNvbnRleHQpKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cGVuZGluZ0FjdGl2aXR5Q291bnQgPSAwO1xyXG5cdFx0XHR0aGlzLnJlc2V0UXVldWVkQWN0aXZpdGllcygpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMubG9nQWN0aXZpdHlfY29yZShhY3Rpdml0eU5hbWUsIGxvZ1R5cGUsIGluY3JlbWVudCwgdGltZXN0YW1wLCBjb250ZXh0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgbG9nQWN0aXZpdHlfY29yZShhY3Rpdml0eU5hbWU6IHN0cmluZyxcclxuXHRcdGxvZ1R5cGU6IFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZSxcclxuXHRcdGluY3JlbWVudDogbnVtYmVyLFxyXG5cdFx0dGltZXN0YW1wOiBEYXRlLFxyXG5cdFx0Y29udGV4dDogSUFjdGl2aXR5Q29udGV4dCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgaW5kZXhlZFRyYWNrZXJzOiBJbmRleGVkVHJhY2tlcltdID0gdGhpcy50cmFja2VkQWN0aXZpdHlNYXBbYWN0aXZpdHlOYW1lXTtcclxuXHRcdGlmICghaW5kZXhlZFRyYWNrZXJzIHx8IGluZGV4ZWRUcmFja2Vycy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGxldCBpbmRpY2VzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuXHRcdC8vIElmIHdlIGhhdmUgbW9yZSB0aGFuIG9uZSB0cmFja2VyIHNodWZmbGUgdHJhY2tlcnMgdG8gcmFuZG9taXplIHdoaWNoIGlzIGV2YWx1YXRlZCBmaXJzdFxyXG5cdFx0aWYgKGluZGV4ZWRUcmFja2Vycy5sZW5ndGggPiAxKSB7XHJcblx0XHRcdGluZGljZXMgPSBuZXcgQXJyYXk8bnVtYmVyPihpbmRleGVkVHJhY2tlcnMubGVuZ3RoKTtcclxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBpbmRpY2VzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdFx0aW5kaWNlc1tpXSA9IGk7XHJcblx0XHRcdH1cclxuXHRcdFx0aW5kaWNlcyA9IGZ5U2h1ZmZsZShpbmRpY2VzKTsgLy8gc2h1ZmZsZSBhbmQgcmVhc3NpZ25cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGluZGljZXMucHVzaCgwKTsgLy8ganVzdCBoYXZlIGEgemVyby4gU2h1ZmZsaW5nIGlzIG5vdCBuZWVkZWQuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTG9vcCB0aHJvdWdoIHRyYWNrZXJzIGluIHNodWZmbGVkIG9yZGVyXHJcblx0XHRmb3IgKGNvbnN0IGluZGV4IG9mIGluZGljZXMpIHtcclxuXHRcdFx0Y29uc3QgdHJhY2tlcjogSW5kZXhlZFRyYWNrZXIgPSBpbmRleGVkVHJhY2tlcnNbaW5kZXhdO1xyXG5cdFx0XHRzd2l0Y2ggKGxvZ1R5cGUpIHtcclxuXHRcdFx0XHRjYXNlIFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZS5TdGFydFRpbWU6IHtcclxuXHRcdFx0XHRcdHRyYWNrZXIudHJhY2tlci5zdGFydFRpbWUodHJhY2tlci5pbmRleCwgdGltZXN0YW1wKTtcclxuXHRcdFx0XHRcdGNvbnRpbnVlOyAvLyBMb29rIGF0IHRoZSBuZXh0IHRyYWNrZXIuIEluY3JlbWVudCBub3QgbmVlZGVkLlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjYXNlIFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZS5TdG9wVGltZToge1xyXG5cdFx0XHRcdFx0aW5jcmVtZW50ID0gdHJhY2tlci50cmFja2VyLnN0b3BUaW1lKHRyYWNrZXIuaW5kZXgsIHRpbWVzdGFtcCk7XHJcblx0XHRcdFx0XHQvLyBmYWxsIHRocm91Z2ggdG8gaW5jcmVtZW50IHRoZSBhY3Rpdml0eSBhcyB3ZWxsLlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRjYXNlIFN1cnZleUFjdGl2aXR5TGlzdGVuZXIuTG9nQWN0aW9uVHlwZS5JbmNyZW1lbnQ6IHtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRkZWZhdWx0OiB7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChjb250ZXh0KSB7XHJcblx0XHRcdFx0Y29uc3QgdHJhY2tlclN1cnZleUlkID0gdHJhY2tlci5zdXJ2ZXlJZDtcclxuXHRcdFx0XHR0aGlzLmFjdGl2aXR5Q29udGV4dFt0cmFja2VyU3VydmV5SWRdID0gdGhpcy5hY3Rpdml0eUNvbnRleHRbdHJhY2tlclN1cnZleUlkXSB8fCBbXTtcclxuXHRcdFx0XHR0aGlzLmFjdGl2aXR5Q29udGV4dFt0cmFja2VyU3VydmV5SWRdLnB1c2goeyBhY3Rpdml0eU5hbWUsIGNvbnRleHQgfSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGNvbnN0IHJlc3VsdDogQWN0aXZpdHlUcmFja2VyLkluY3JlbWVudFJlc3VsdCA9IHRyYWNrZXIudHJhY2tlci5pbmNyZW1lbnRBY3Rpdml0eSh0cmFja2VyLmluZGV4LCBpbmNyZW1lbnQpO1xyXG5cdFx0XHRpZiAocmVzdWx0ID09PSBBY3Rpdml0eVRyYWNrZXIuSW5jcmVtZW50UmVzdWx0LkFsbEFjdGl2aXRpZXNBY3RpdmF0ZWQpIHtcclxuXHRcdFx0XHQvLyBDaGVjayB0aGUgYWN0aXZhdGVkIHN1cnZleXMgbGlzdCB0byBlbnN1cmUgd2hldGhlciBhbnkgcHJldmlvdXMgc3VydmV5IGlzIHN0aWxsIGluIHByb2Nlc3NcclxuXHRcdFx0XHQvLyBJZiBub3QsIHRoZSBsZW5ndGggc2hvdWxkIGJlIDEgYW5kIGNhbGwgdG8gZXhlY3V0ZSB0aGlzIHN1cnZleSByaWdodCBhd2F5XHJcblx0XHRcdFx0Ly8gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgY2FsbGluZyB0byBHb3Zlcm5hbmNlIFNlcnZpY2UsIGR1ZSB0byB0aGUgY2FsbCBpcyBhc3luY2hyb25vdXNcclxuXHRcdFx0XHR0aGlzLmV4ZWN1dGVDYWxsYmFjayh0cmFja2VyLnN1cnZleUlkKTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHQvKiBCcmVha2luZyBoZXJlIHRvIGxldCBvbmUgYW5kIG9ubHkgb25lIGNhbGxiYWNrIHRvIGJlIG1hZGUgZnJvbSBhIGxvZ0FjdGl2aXR5IGNhbGwuXHJcblx0XHRcdFx0VGhpcyBlbnN1cmVzIG9ubHkgb25lIHN1cnZleSBjYW4gZnVsbHkgJ3RyaWdnZXInIGZvciBhIGxvZ0FjdGl2aXR5IGNhbGwuIE90aGVycyB0aGF0IHdvdWxkIGFsc29cclxuXHRcdFx0XHRoYXZlIHRyaWdnZXJlZCBtdXN0IHdhaXQgdW50aWwgdGhlIG5leHQgY2FsbCB0byB0cmlnZ2VyICh3aXRob3V0IHRoZXJlIGJlaW5nIGEgY29vbGRvd24sIG9mIGNvdXJzZSkuXHJcblx0XHRcdFx0Ki9cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBleGVjdXRlQ2FsbGJhY2soc3VydmV5SWQ6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dGhpcy5jYWxsYmFjay5ydW4oc3VydmV5SWQsIHRoaXMuYWN0aXZpdHlDb250ZXh0W3N1cnZleUlkXSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNvcHlPYmplY3QodGFyZ2V0OiBvYmplY3QsIHNvdXJjZTogb2JqZWN0KSB7XHJcblx0XHRPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHR0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59XHJcblxyXG5tb2R1bGUgU3VydmV5QWN0aXZpdHlMaXN0ZW5lciB7XHJcblx0ZXhwb3J0IGludGVyZmFjZSBJQWN0aXZpdHlMaXN0ZW5lckNhbGxiYWNrIHtcclxuXHRcdHJ1bihzdXJ2ZXlJZDogc3RyaW5nLCBjb250ZXh0RGF0YTogSUNvbnRleHREYXRhW10pOiB2b2lkO1xyXG5cdFx0c2hvdWxkQWNjZXB0QWN0aXZpdHkoYWN0aXZpdHlOYW1lOiBzdHJpbmcpOiBib29sZWFuO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0IGNvbnN0IGVudW0gTG9nQWN0aW9uVHlwZSB7XHJcblx0XHRJbmNyZW1lbnQsXHJcblx0XHRTdGFydFRpbWUsXHJcblx0XHRTdG9wVGltZSxcclxuXHR9XHJcblxyXG5cdGV4cG9ydCBpbnRlcmZhY2UgSVF1ZXVlZEFjdGl2aXR5UGFyYW1zIHtcclxuXHRcdGFjdGl2aXR5TmFtZTogc3RyaW5nO1xyXG5cdFx0bG9nVHlwZTogU3VydmV5QWN0aXZpdHlMaXN0ZW5lci5Mb2dBY3Rpb25UeXBlO1xyXG5cdFx0aW5jcmVtZW50OiBudW1iZXI7XHJcblx0XHR0aW1lc3RhbXA6IERhdGU7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBTdXJ2ZXlBY3Rpdml0eUxpc3RlbmVyO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyActivityListener.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/CVSurveyComponent.js": /*!***********************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/CVSurveyComponent.js ***! \***********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CVSurveyComponent = /** @class */ (function () {\n function CVSurveyComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.customerVoiceFormId) {\n throw new Error(\"data.formID must not be null or empty\");\n }\n this.data = data;\n }\n CVSurveyComponent.make = function (data) {\n try {\n return new CVSurveyComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n CVSurveyComponent.prototype.getType = function () {\n return \"CVSurvey\" /* CVSurvey */;\n };\n CVSurveyComponent.prototype.getFormId = function () {\n return this.data.customerVoiceFormId;\n };\n // @Override\n CVSurveyComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_CVSURVEY_TAGNAME);\n return [element];\n };\n // @Override\n CVSurveyComponent.prototype.getJsonElements = function () {\n var result = {};\n result[floodgate_shared_typings_1.JSON_CVSURVEY_KEYNAME] = this.getFormId();\n return result;\n };\n // @Override\n CVSurveyComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_CVSURVEYFORMID_KEYNAME] = this.getFormId(),\n _a;\n };\n return CVSurveyComponent;\n}());\n(function (CVSurveyComponent) {\n var CVSurveyComponentData = /** @class */ (function () {\n function CVSurveyComponentData() {\n }\n return CVSurveyComponentData;\n }());\n CVSurveyComponent.CVSurveyComponentData = CVSurveyComponentData;\n})(CVSurveyComponent || (CVSurveyComponent = {}));\nexports.default = CVSurveyComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvQ1ZTdXJ2ZXlDb21wb25lbnQudHM/MmU3ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZLQU0wQztBQUUxQztJQVdDLDJCQUFtQixJQUE2QztRQUMvRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7U0FDekQ7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBbkJhLHNCQUFJLEdBQWxCLFVBQW1CLElBQTZDO1FBQy9ELElBQUk7WUFDSCxPQUFPLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBZU0sbUNBQU8sR0FBZDtRQUNDLGlDQUFvQztJQUNyQyxDQUFDO0lBRU0scUNBQVMsR0FBaEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDdEMsQ0FBQztJQUVELFlBQVk7SUFDTCwwQ0FBYyxHQUFyQixVQUFzQixHQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDN0M7UUFDRCxJQUFNLE9BQU8sR0FBWSxHQUFHLENBQUMsYUFBYSxDQUFDLCtDQUFvQixDQUFDLENBQUM7UUFDakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZO0lBQ0wsMkNBQWUsR0FBdEI7UUFDQyxJQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFFMUIsTUFBTSxDQUFDLGdEQUFxQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVk7SUFDTCw0Q0FBZ0IsR0FBdkI7O1FBQ0M7WUFDQyxHQUFDLHNEQUEyQixJQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7ZUFDOUM7SUFDSCxDQUFDO0lBQ0Ysd0JBQUM7QUFBRCxDQUFDO0FBRUQsV0FBTyxpQkFBaUI7SUFDdkI7UUFBQTtRQUVBLENBQUM7UUFBRCw0QkFBQztJQUFELENBQUM7SUFGWSx1Q0FBcUIsd0JBRWpDO0FBQ0YsQ0FBQyxFQUpNLGlCQUFpQixLQUFqQixpQkFBaUIsUUFJdkI7QUFFRCxrQkFBZSxpQkFBaUIsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleUNvbXBvbmVudHMvQ1ZTdXJ2ZXlDb21wb25lbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdERPTV9DVlNVUlZFWV9UQUdOQU1FLFxyXG5cdElDVlN1cnZleUNvbXBvbmVudCxcclxuXHRKU09OX0NWU1VSVkVZX0tFWU5BTUUsXHJcblx0SlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FLFxyXG5cdFN1cnZleUNvbXBvbmVudFR5cGUsXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcblxyXG5jbGFzcyBDVlN1cnZleUNvbXBvbmVudCBpbXBsZW1lbnRzIElDVlN1cnZleUNvbXBvbmVudCB7XHJcblx0cHVibGljIHN0YXRpYyBtYWtlKGRhdGE6IENWU3VydmV5Q29tcG9uZW50LkNWU3VydmV5Q29tcG9uZW50RGF0YSk6IElDVlN1cnZleUNvbXBvbmVudCB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IENWU3VydmV5Q29tcG9uZW50KGRhdGEpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZGF0YTogQ1ZTdXJ2ZXlDb21wb25lbnQuQ1ZTdXJ2ZXlDb21wb25lbnREYXRhO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogQ1ZTdXJ2ZXlDb21wb25lbnQuQ1ZTdXJ2ZXlDb21wb25lbnREYXRhKSB7XHJcblx0XHRpZiAoIWRhdGEpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFkYXRhLmN1c3RvbWVyVm9pY2VGb3JtSWQpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YS5mb3JtSUQgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFR5cGUoKTogU3VydmV5Q29tcG9uZW50VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5Q29tcG9uZW50VHlwZS5DVlN1cnZleTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRGb3JtSWQoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEuY3VzdG9tZXJWb2ljZUZvcm1JZDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXREb21FbGVtZW50cyhkb2M6IERvY3VtZW50KTogRWxlbWVudFtdIHtcclxuXHRcdGlmICghZG9jKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkRvY3VtZW50IG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0XHRjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX0NWU1VSVkVZX1RBR05BTUUpO1xyXG5cdFx0cmV0dXJuIFtlbGVtZW50XTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRKc29uRWxlbWVudHMoKTogb2JqZWN0IHtcclxuXHRcdGNvbnN0IHJlc3VsdDogb2JqZWN0ID0ge307XHJcblxyXG5cdFx0cmVzdWx0W0pTT05fQ1ZTVVJWRVlfS0VZTkFNRV0gPSB0aGlzLmdldEZvcm1JZCgpO1xyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRDb21wb25lbnRKc29uKCk6IG9iamVjdCB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRbSlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FXTogdGhpcy5nZXRGb3JtSWQoKSxcclxuXHRcdH07XHJcblx0fVxyXG59XHJcblxyXG5tb2R1bGUgQ1ZTdXJ2ZXlDb21wb25lbnQge1xyXG5cdGV4cG9ydCBjbGFzcyBDVlN1cnZleUNvbXBvbmVudERhdGEge1xyXG5cdFx0cHVibGljIGN1c3RvbWVyVm9pY2VGb3JtSWQ6IHN0cmluZztcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IENWU3VydmV5Q29tcG9uZW50O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/CVSurveyComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js": /*!**********************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CommentComponent = /** @class */ (function () {\n function CommentComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.question) {\n throw new Error(\"data.question must not be null or empty\");\n }\n this.data = data;\n this.userComment = \"\";\n }\n CommentComponent.make = function (data) {\n try {\n return new CommentComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n // @Override\n CommentComponent.prototype.getType = function () {\n return \"Comment\" /* Comment */;\n };\n // @Override\n CommentComponent.prototype.getQuestion = function () {\n return this.data.question;\n };\n // @Override\n CommentComponent.prototype.setSubmittedText = function (userComment) {\n this.userComment = userComment;\n };\n // @Override\n CommentComponent.prototype.getSubmittedText = function () {\n return this.userComment;\n };\n // @Override\n CommentComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_COMMENT_TAGNAME);\n element.appendChild(doc.createTextNode(this.getSubmittedText()));\n return [element];\n };\n // @Override\n CommentComponent.prototype.getJsonElements = function () {\n var result = {};\n result[floodgate_shared_typings_1.JSON_COMMENT_KEYNAME] = this.getSubmittedText();\n return result;\n };\n // @Override\n CommentComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_QUESTION_KEYNAME] = this.getQuestion(),\n _a;\n };\n return CommentComponent;\n}());\n(function (CommentComponent) {\n var CommentComponentData = /** @class */ (function () {\n function CommentComponentData() {\n }\n return CommentComponentData;\n }());\n CommentComponent.CommentComponentData = CommentComponentData;\n})(CommentComponent || (CommentComponent = {}));\nexports.default = CommentComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvQ29tbWVudENvbXBvbmVudC50cz8zODJiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNktBTTBDO0FBRTFDO0lBWUMsMEJBQW1CLElBQTJDO1FBQzdELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBckJhLHFCQUFJLEdBQWxCLFVBQW1CLElBQTJDO1FBQzdELElBQUk7WUFDSCxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBaUJELFlBQVk7SUFDTCxrQ0FBTyxHQUFkO1FBQ0MsK0JBQW1DO0lBQ3BDLENBQUM7SUFFRCxZQUFZO0lBQ0wsc0NBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZO0lBQ0wsMkNBQWdCLEdBQXZCLFVBQXdCLFdBQW1CO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO0lBQ0wsMkNBQWdCLEdBQXZCO1FBQ0MsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZO0lBQ0wseUNBQWMsR0FBckIsVUFBc0IsR0FBYTtRQUNsQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzdDO1FBRUQsSUFBTSxPQUFPLEdBQVksR0FBRyxDQUFDLGFBQWEsQ0FBQyw4Q0FBbUIsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFakUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxZQUFZO0lBQ0wsMENBQWUsR0FBdEI7UUFDQyxJQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLCtDQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDdkQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRUQsWUFBWTtJQUNMLDJDQUFnQixHQUF2Qjs7UUFDQztZQUNDLEdBQUMsZ0RBQXFCLElBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtlQUMxQztJQUNILENBQUM7SUFDRix1QkFBQztBQUFELENBQUM7QUFFRCxXQUFPLGdCQUFnQjtJQUN0QjtRQUFBO1FBRUEsQ0FBQztRQUFELDJCQUFDO0lBQUQsQ0FBQztJQUZZLHFDQUFvQix1QkFFaEM7QUFDRixDQUFDLEVBSk0sZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUl0QjtBQUVELGtCQUFlLGdCQUFnQixDQUFDIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvZGlzdC9zcmMvU3VydmV5Q29tcG9uZW50cy9Db21tZW50Q29tcG9uZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRET01fQ09NTUVOVF9UQUdOQU1FLFxyXG5cdElDb21tZW50Q29tcG9uZW50LFxyXG5cdEpTT05fQ09NTUVOVF9LRVlOQU1FLFxyXG5cdEpTT05fUVVFU1RJT05fS0VZTkFNRSxcclxuXHRTdXJ2ZXlDb21wb25lbnRUeXBlLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxuY2xhc3MgQ29tbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIElDb21tZW50Q29tcG9uZW50IHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZGF0YTogQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YSk6IElDb21tZW50Q29tcG9uZW50IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgQ29tbWVudENvbXBvbmVudChkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IENvbW1lbnRDb21wb25lbnQuQ29tbWVudENvbXBvbmVudERhdGE7XHJcblx0cHJpdmF0ZSB1c2VyQ29tbWVudDogc3RyaW5nO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YSkge1xyXG5cdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS5xdWVzdGlvbikge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhLnF1ZXN0aW9uIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHlcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5kYXRhID0gZGF0YTtcclxuXHRcdHRoaXMudXNlckNvbW1lbnQgPSBcIlwiO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFR5cGUoKTogU3VydmV5Q29tcG9uZW50VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5Q29tcG9uZW50VHlwZS5Db21tZW50O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFF1ZXN0aW9uKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnF1ZXN0aW9uO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHNldFN1Ym1pdHRlZFRleHQodXNlckNvbW1lbnQ6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dGhpcy51c2VyQ29tbWVudCA9IHVzZXJDb21tZW50O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFN1Ym1pdHRlZFRleHQoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLnVzZXJDb21tZW50O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldERvbUVsZW1lbnRzKGRvYzogRG9jdW1lbnQpOiBFbGVtZW50W10ge1xyXG5cdFx0aWYgKCFkb2MpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRG9jdW1lbnQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX0NPTU1FTlRfVEFHTkFNRSk7XHJcblx0XHRlbGVtZW50LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSh0aGlzLmdldFN1Ym1pdHRlZFRleHQoKSkpO1xyXG5cclxuXHRcdHJldHVybiBbZWxlbWVudF07XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRjb25zdCByZXN1bHQ6IG9iamVjdCA9IHt9O1xyXG5cdFx0cmVzdWx0W0pTT05fQ09NTUVOVF9LRVlOQU1FXSA9IHRoaXMuZ2V0U3VibWl0dGVkVGV4dCgpO1xyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRDb21wb25lbnRKc29uKCk6IG9iamVjdCB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRbSlNPTl9RVUVTVElPTl9LRVlOQU1FXTogdGhpcy5nZXRRdWVzdGlvbigpLFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuXHJcbm1vZHVsZSBDb21tZW50Q29tcG9uZW50IHtcclxuXHRleHBvcnQgY2xhc3MgQ29tbWVudENvbXBvbmVudERhdGEge1xyXG5cdFx0cHVibGljIHF1ZXN0aW9uOiBzdHJpbmc7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBDb21tZW50Q29tcG9uZW50O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/InterceptComponent.js": /*!************************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/InterceptComponent.js ***! \************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar InterceptComponent = /** @class */ (function () {\n function InterceptComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.question) {\n throw new Error(\"data.question must not be null or empty\");\n }\n if (!data.title) {\n throw new Error(\"data.title must not be null or empty\");\n }\n if (!data.url) {\n throw new Error(\"data.url must not be null or empty\");\n }\n this.data = data;\n }\n InterceptComponent.make = function (data) {\n try {\n return new InterceptComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n // @Override\n InterceptComponent.prototype.getType = function () {\n return \"Intercept\" /* Intercept */;\n };\n // @Override\n InterceptComponent.prototype.getTitle = function () {\n return this.data.title;\n };\n // @Override\n InterceptComponent.prototype.getQuestion = function () {\n return this.data.question;\n };\n // @Override\n InterceptComponent.prototype.getUrl = function () {\n return this.data.url;\n };\n // @Override\n InterceptComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n return [doc.createElement(floodgate_shared_typings_1.DOM_INTERCEPT_TAGNAME)];\n };\n // @Override\n InterceptComponent.prototype.getJsonElements = function () {\n var _a;\n return _a = {}, _a[floodgate_shared_typings_1.JSON_INTERCEPT_KEYNAME] = \"\", _a;\n };\n // @Override\n InterceptComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_TITLE_KEYNAME] = this.getTitle(),\n _a[floodgate_shared_typings_1.JSON_QUESTION_KEYNAME] = this.getQuestion(),\n _a[floodgate_shared_typings_1.JSON_INTERCEPTURL_KEYNAME] = this.getUrl(),\n _a;\n };\n return InterceptComponent;\n}());\n(function (InterceptComponent) {\n var InterceptComponentData = /** @class */ (function () {\n function InterceptComponentData() {\n }\n return InterceptComponentData;\n }());\n InterceptComponent.InterceptComponentData = InterceptComponentData;\n})(InterceptComponent || (InterceptComponent = {}));\nexports.default = InterceptComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvSW50ZXJjZXB0Q29tcG9uZW50LnRzPzMyNDgiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2S0FRMEM7QUFFMUM7SUFXQyw0QkFBbUIsSUFBK0M7UUFDakUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbEIsQ0FBQztJQXpCYSx1QkFBSSxHQUFsQixVQUFtQixJQUErQztRQUNqRSxJQUFJO1lBQ0gsT0FBTyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQXFCRCxZQUFZO0lBQ0wsb0NBQU8sR0FBZDtRQUNDLG1DQUFxQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtJQUNMLHFDQUFRLEdBQWY7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxZQUFZO0lBQ0wsd0NBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZO0lBQ0wsbUNBQU0sR0FBYjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDdEIsQ0FBQztJQUVELFlBQVk7SUFDTCwyQ0FBYyxHQUFyQixVQUFzQixHQUFhO1FBQ2xDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxnREFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQVk7SUFDTCw0Q0FBZSxHQUF0Qjs7UUFDQyxnQkFBUyxHQUFDLGlEQUFzQixJQUFHLEVBQUUsS0FBRztJQUN6QyxDQUFDO0lBRUQsWUFBWTtJQUNMLDZDQUFnQixHQUF2Qjs7UUFDQztZQUNDLEdBQUMsNkNBQWtCLElBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQyxHQUFDLGdEQUFxQixJQUFHLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDM0MsR0FBQyxvREFBeUIsSUFBRyxJQUFJLENBQUMsTUFBTSxFQUFFO2VBQ3pDO0lBQ0gsQ0FBQztJQUNGLHlCQUFDO0FBQUQsQ0FBQztBQUVELFdBQU8sa0JBQWtCO0lBQ3hCO1FBQUE7UUFJQSxDQUFDO1FBQUQsNkJBQUM7SUFBRCxDQUFDO0lBSlkseUNBQXNCLHlCQUlsQztBQUNGLENBQUMsRUFOTSxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBTXhCO0FBRUQsa0JBQWUsa0JBQWtCLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlDb21wb25lbnRzL0ludGVyY2VwdENvbXBvbmVudC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0RE9NX0lOVEVSQ0VQVF9UQUdOQU1FLFxyXG5cdElJbnRlcmNlcHRDb21wb25lbnQsXHJcblx0SlNPTl9JTlRFUkNFUFRfS0VZTkFNRSxcclxuXHRKU09OX0lOVEVSQ0VQVFVSTF9LRVlOQU1FLFxyXG5cdEpTT05fUVVFU1RJT05fS0VZTkFNRSxcclxuXHRKU09OX1RJVExFX0tFWU5BTUUsXHJcblx0U3VydmV5Q29tcG9uZW50VHlwZSxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuXHJcbmNsYXNzIEludGVyY2VwdENvbXBvbmVudCBpbXBsZW1lbnRzIElJbnRlcmNlcHRDb21wb25lbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBJbnRlcmNlcHRDb21wb25lbnQuSW50ZXJjZXB0Q29tcG9uZW50RGF0YSk6IElJbnRlcmNlcHRDb21wb25lbnQge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBJbnRlcmNlcHRDb21wb25lbnQoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkYXRhOiBJbnRlcmNlcHRDb21wb25lbnQuSW50ZXJjZXB0Q29tcG9uZW50RGF0YTtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IEludGVyY2VwdENvbXBvbmVudC5JbnRlcmNlcHRDb21wb25lbnREYXRhKSB7XHJcblx0XHRpZiAoIWRhdGEpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFkYXRhLnF1ZXN0aW9uKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEucXVlc3Rpb24gbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS50aXRsZSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhLnRpdGxlIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHlcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIWRhdGEudXJsKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEudXJsIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHlcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5kYXRhID0gZGF0YTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUeXBlKCk6IFN1cnZleUNvbXBvbmVudFR5cGUge1xyXG5cdFx0cmV0dXJuIFN1cnZleUNvbXBvbmVudFR5cGUuSW50ZXJjZXB0O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFRpdGxlKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnRpdGxlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFF1ZXN0aW9uKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnF1ZXN0aW9uO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFVybCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS51cmw7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0RG9tRWxlbWVudHMoZG9jOiBEb2N1bWVudCk6IEVsZW1lbnRbXSB7XHJcblx0XHRpZiAoIWRvYykge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJEb2N1bWVudCBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFtkb2MuY3JlYXRlRWxlbWVudChET01fSU5URVJDRVBUX1RBR05BTUUpXTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRKc29uRWxlbWVudHMoKTogb2JqZWN0IHtcclxuXHRcdHJldHVybiB7IFtKU09OX0lOVEVSQ0VQVF9LRVlOQU1FXTogXCJcIiB9O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbXBvbmVudEpzb24oKTogb2JqZWN0IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdFtKU09OX1RJVExFX0tFWU5BTUVdOiB0aGlzLmdldFRpdGxlKCksXHJcblx0XHRcdFtKU09OX1FVRVNUSU9OX0tFWU5BTUVdOiB0aGlzLmdldFF1ZXN0aW9uKCksXHJcblx0XHRcdFtKU09OX0lOVEVSQ0VQVFVSTF9LRVlOQU1FXTogdGhpcy5nZXRVcmwoKSxcclxuXHRcdH07XHJcblx0fVxyXG59XHJcblxyXG5tb2R1bGUgSW50ZXJjZXB0Q29tcG9uZW50IHtcclxuXHRleHBvcnQgY2xhc3MgSW50ZXJjZXB0Q29tcG9uZW50RGF0YSB7XHJcblx0XHRwdWJsaWMgcXVlc3Rpb246IHN0cmluZztcclxuXHRcdHB1YmxpYyB0aXRsZTogc3RyaW5nO1xyXG5cdFx0cHVibGljIHVybDogc3RyaW5nO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgSW50ZXJjZXB0Q29tcG9uZW50O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/InterceptComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/MultipleChoiceComponent.js": /*!*****************************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/MultipleChoiceComponent.js ***! \*****************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar MultipleChoiceComponent = /** @class */ (function () {\n function MultipleChoiceComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.question) {\n throw new Error(\"data.question must not be null or empty\");\n }\n if (!data.availableOptions || data.availableOptions.length < 2) {\n throw new Error(\"data.availableOptions must not be null or have less than two choices\");\n }\n data.availableOptions.forEach(function (option) {\n if (!option) {\n throw new Error(\"Option values must not contain null or empty\");\n }\n });\n this.data = data;\n this.optionStates = new Array(data.availableOptions.length);\n // Initialize with all false values\n for (var i = 0; i < this.optionStates.length; i++) {\n this.optionStates[i] = false;\n }\n }\n MultipleChoiceComponent.make = function (data) {\n try {\n return new MultipleChoiceComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n MultipleChoiceComponent.prototype.getType = function () {\n return \"MultipleChoice\" /* MultipleChoice */;\n };\n MultipleChoiceComponent.prototype.getQuestion = function () {\n return this.data.question;\n };\n MultipleChoiceComponent.prototype.getAvailableOptions = function () {\n return this.data.availableOptions;\n };\n MultipleChoiceComponent.prototype.getOptionSelectedStates = function () {\n return this.optionStates;\n };\n MultipleChoiceComponent.prototype.getMinNumberofSelectedOptions = function () {\n return this.data.minNumberOfSelectedOptions;\n };\n MultipleChoiceComponent.prototype.getMaxNumberofSelectedOptions = function () {\n return this.data.maxNumberOfSelectedOptions;\n };\n MultipleChoiceComponent.prototype.setOptionSelectedStates = function (selectedStates) {\n for (var i = 0; i < selectedStates.length; i++) {\n this.optionStates[i] = selectedStates[i];\n }\n };\n MultipleChoiceComponent.prototype.ValidateMinNumberofSelectedOptions = function () {\n var result = 0;\n this.optionStates.forEach(function (element) {\n if (element) {\n result++;\n }\n });\n return (result >= this.getMinNumberofSelectedOptions());\n };\n MultipleChoiceComponent.prototype.ValidateMaxNumberofSelectedOptions = function () {\n var result = 0;\n this.optionStates.forEach(function (element) {\n if (element) {\n result++;\n }\n });\n return (result <= this.getMaxNumberofSelectedOptions());\n };\n MultipleChoiceComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_MULTIPLECHOICE_TAGNAME);\n element.appendChild(doc.createTextNode(this.getOptionSelectedStates().toString()));\n return [element];\n };\n // @Override\n MultipleChoiceComponent.prototype.getJsonElements = function () {\n var result = {};\n result[floodgate_shared_typings_1.JSON_MULTIPLECHOICE_KEYNAME] = this.getOptionSelectedStates().toString();\n return result;\n };\n // @Override\n MultipleChoiceComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_QUESTION_KEYNAME] = this.getQuestion(),\n _a[floodgate_shared_typings_1.JSON_RATINGOPTIONS_KEYNAME] = this.getAvailableOptions(),\n _a;\n };\n return MultipleChoiceComponent;\n}());\n(function (MultipleChoiceComponent) {\n var MultipleChoiceComponentData = /** @class */ (function () {\n function MultipleChoiceComponentData() {\n }\n return MultipleChoiceComponentData;\n }());\n MultipleChoiceComponent.MultipleChoiceComponentData = MultipleChoiceComponentData;\n})(MultipleChoiceComponent || (MultipleChoiceComponent = {}));\nexports.default = MultipleChoiceComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvTXVsdGlwbGVDaG9pY2VDb21wb25lbnQudHM/MDBkNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZLQU8wQztBQUUxQztJQVlDLGlDQUFtQixJQUF5RDtRQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO1NBQzNEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7U0FDeEY7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBTTtZQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQzthQUNoRTtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEtBQUssQ0FBVSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsbUNBQW1DO1FBQ25DLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNGLENBQUM7SUFsQ2EsNEJBQUksR0FBbEIsVUFBbUIsSUFBeUQ7UUFDM0Us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a0NBQUM7SUFBRCxDQUFDO0lBTFksbURBQTJCLDhCQUt2QztBQUNGLENBQUMsRUFQTSx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBTzdCO0FBRUQsa0JBQWUsdUJBQXVCLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlDb21wb25lbnRzL011bHRpcGxlQ2hvaWNlQ29tcG9uZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRET01fTVVMVElQTEVDSE9JQ0VfVEFHTkFNRSxcclxuXHRJTXVsdGlwbGVDaG9pY2VDb21wb25lbnQsXHJcblx0SlNPTl9NVUxUSVBMRUNIT0lDRV9LRVlOQU1FLFxyXG5cdEpTT05fUVVFU1RJT05fS0VZTkFNRSxcclxuXHRKU09OX1JBVElOR09QVElPTlNfS0VZTkFNRSxcclxuXHRTdXJ2ZXlDb21wb25lbnRUeXBlLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxuY2xhc3MgTXVsdGlwbGVDaG9pY2VDb21wb25lbnQgaW1wbGVtZW50cyBJTXVsdGlwbGVDaG9pY2VDb21wb25lbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBNdWx0aXBsZUNob2ljZUNvbXBvbmVudC5NdWx0aXBsZUNob2ljZUNvbXBvbmVudERhdGEpOiBJTXVsdGlwbGVDaG9pY2VDb21wb25lbnQge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBNdWx0aXBsZUNob2ljZUNvbXBvbmVudChkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50RGF0YTtcclxuXHRwcml2YXRlIG9wdGlvblN0YXRlczogYm9vbGVhbltdO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogTXVsdGlwbGVDaG9pY2VDb21wb25lbnQuTXVsdGlwbGVDaG9pY2VDb21wb25lbnREYXRhKSB7XHJcblx0XHRpZiAoIWRhdGEpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFkYXRhLnF1ZXN0aW9uKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEucXVlc3Rpb24gbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS5hdmFpbGFibGVPcHRpb25zIHx8IGRhdGEuYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGggPCAyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEuYXZhaWxhYmxlT3B0aW9ucyBtdXN0IG5vdCBiZSBudWxsIG9yIGhhdmUgbGVzcyB0aGFuIHR3byBjaG9pY2VzXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGRhdGEuYXZhaWxhYmxlT3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuXHRcdFx0aWYgKCFvcHRpb24pIHtcclxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJPcHRpb24gdmFsdWVzIG11c3Qgbm90IGNvbnRhaW4gbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5kYXRhID0gZGF0YTtcclxuXHRcdHRoaXMub3B0aW9uU3RhdGVzID0gbmV3IEFycmF5PGJvb2xlYW4+KGRhdGEuYXZhaWxhYmxlT3B0aW9ucy5sZW5ndGgpO1xyXG5cdFx0Ly8gSW5pdGlhbGl6ZSB3aXRoIGFsbCBmYWxzZSB2YWx1ZXNcclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vcHRpb25TdGF0ZXMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0dGhpcy5vcHRpb25TdGF0ZXNbaV0gPSBmYWxzZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUeXBlKCk6IFN1cnZleUNvbXBvbmVudFR5cGUge1xyXG5cdFx0cmV0dXJuIFN1cnZleUNvbXBvbmVudFR5cGUuTXVsdGlwbGVDaG9pY2U7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0UXVlc3Rpb24oKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEucXVlc3Rpb247XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0QXZhaWxhYmxlT3B0aW9ucygpOiBzdHJpbmdbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmF2YWlsYWJsZU9wdGlvbnM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0T3B0aW9uU2VsZWN0ZWRTdGF0ZXMoKTogYm9vbGVhbltdIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvblN0YXRlcztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRNaW5OdW1iZXJvZlNlbGVjdGVkT3B0aW9ucygpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5taW5OdW1iZXJPZlNlbGVjdGVkT3B0aW9ucztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRNYXhOdW1iZXJvZlNlbGVjdGVkT3B0aW9ucygpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5tYXhOdW1iZXJPZlNlbGVjdGVkT3B0aW9ucztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzZXRPcHRpb25TZWxlY3RlZFN0YXRlcyhzZWxlY3RlZFN0YXRlczogYm9vbGVhbltdKTogdm9pZCB7XHJcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHNlbGVjdGVkU3RhdGVzLmxlbmd0aDsgaSsrKSB7XHJcblx0XHRcdHRoaXMub3B0aW9uU3RhdGVzW2ldID0gc2VsZWN0ZWRTdGF0ZXNbaV07XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgVmFsaWRhdGVNaW5OdW1iZXJvZlNlbGVjdGVkT3B0aW9ucygpOiBib29sZWFuIHtcclxuXHRcdGxldCByZXN1bHQgPSAwO1xyXG5cdFx0dGhpcy5vcHRpb25TdGF0ZXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG5cdFx0XHRpZiAoZWxlbWVudCkge1xyXG5cdFx0XHRcdHJlc3VsdCsrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gKHJlc3VsdCA+PSB0aGlzLmdldE1pbk51bWJlcm9mU2VsZWN0ZWRPcHRpb25zKCkpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIFZhbGlkYXRlTWF4TnVtYmVyb2ZTZWxlY3RlZE9wdGlvbnMoKTogYm9vbGVhbiB7XHJcblx0XHRsZXQgcmVzdWx0ID0gMDtcclxuXHRcdHRoaXMub3B0aW9uU3RhdGVzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuXHRcdFx0aWYgKGVsZW1lbnQpIHtcclxuXHRcdFx0XHRyZXN1bHQrKztcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmV0dXJuIChyZXN1bHQgPD0gdGhpcy5nZXRNYXhOdW1iZXJvZlNlbGVjdGVkT3B0aW9ucygpKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXREb21FbGVtZW50cyhkb2M6IERvY3VtZW50KTogRWxlbWVudFtdIHtcclxuXHRcdGlmICghZG9jKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkRvY3VtZW50IG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZWxlbWVudDogRWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KERPTV9NVUxUSVBMRUNIT0lDRV9UQUdOQU1FKTtcclxuXHJcblx0XHRlbGVtZW50LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSh0aGlzLmdldE9wdGlvblNlbGVjdGVkU3RhdGVzKCkudG9TdHJpbmcoKSkpO1xyXG5cclxuXHRcdHJldHVybiBbZWxlbWVudF07XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRjb25zdCByZXN1bHQ6IG9iamVjdCA9IHt9O1xyXG5cdFx0cmVzdWx0W0pTT05fTVVMVElQTEVDSE9JQ0VfS0VZTkFNRV0gPSB0aGlzLmdldE9wdGlvblNlbGVjdGVkU3RhdGVzKCkudG9TdHJpbmcoKTtcclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbXBvbmVudEpzb24oKTogb2JqZWN0IHtcclxuXHRcdHJldHVybiB7XHJcblx0XHRcdFtKU09OX1FVRVNUSU9OX0tFWU5BTUVdOiB0aGlzLmdldFF1ZXN0aW9uKCksXHJcblx0XHRcdFtKU09OX1JBVElOR09QVElPTlNfS0VZTkFNRV06IHRoaXMuZ2V0QXZhaWxhYmxlT3B0aW9ucygpLFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuXHJcbm1vZHVsZSBNdWx0aXBsZUNob2ljZUNvbXBvbmVudCB7XHJcblx0ZXhwb3J0IGNsYXNzIE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50RGF0YSB7XHJcblx0XHRwdWJsaWMgcXVlc3Rpb246IHN0cmluZztcclxuXHRcdHB1YmxpYyBhdmFpbGFibGVPcHRpb25zOiBzdHJpbmdbXTtcclxuXHRcdHB1YmxpYyBtaW5OdW1iZXJPZlNlbGVjdGVkT3B0aW9uczogbnVtYmVyO1xyXG5cdFx0cHVibGljIG1heE51bWJlck9mU2VsZWN0ZWRPcHRpb25zOiBudW1iZXI7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBNdWx0aXBsZUNob2ljZUNvbXBvbmVudDtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/MultipleChoiceComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js": /*!*********************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar PromptComponent = /** @class */ (function () {\n function PromptComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.question) {\n throw new Error(\"data.question must not be null or empty\");\n }\n if (!data.title) {\n throw new Error(\"data.title must not be null or empty\");\n }\n if (!data.yesButtonLabel) {\n throw new Error(\"data.yesButtonLabel must not be null or empty\");\n }\n if (!data.noButtonLabel) {\n throw new Error(\"data.noButtonLabel must not be null or empty\");\n }\n this.data = data;\n this.selectedButton = 0 /* Unselected */;\n }\n PromptComponent.make = function (data) {\n try {\n return new PromptComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n // @Override\n PromptComponent.prototype.getType = function () {\n return \"Prompt\" /* Prompt */;\n };\n // @Override\n PromptComponent.prototype.getTitle = function () {\n return this.data.title;\n };\n // @Override\n PromptComponent.prototype.getQuestion = function () {\n return this.data.question;\n };\n // @Override\n PromptComponent.prototype.getYesButtonText = function () {\n return this.data.yesButtonLabel;\n };\n // @Override\n PromptComponent.prototype.getNoButtonText = function () {\n return this.data.noButtonLabel;\n };\n // @Override\n PromptComponent.prototype.setButtonSelected = function (selected) {\n if (selected) {\n this.selectedButton = selected;\n }\n };\n // @Override\n PromptComponent.prototype.getButtonSelected = function () {\n return this.selectedButton;\n };\n // @Override\n PromptComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_PROMPT_TAGNAME);\n element.appendChild(doc.createTextNode(this.promptButtonToString(this.getButtonSelected())));\n return [element];\n };\n // @Override\n PromptComponent.prototype.getJsonElements = function () {\n var result = {};\n result[floodgate_shared_typings_1.JSON_PROMPT_KEYNAME] = this.promptButtonToString(this.getButtonSelected());\n return result;\n };\n // @Override\n PromptComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_TITLE_KEYNAME] = this.getTitle(),\n _a[floodgate_shared_typings_1.JSON_QUESTION_KEYNAME] = this.getQuestion(),\n _a[floodgate_shared_typings_1.JSON_PROMPTYESTEXT_KEYNAME] = this.getYesButtonText(),\n _a[floodgate_shared_typings_1.JSON_PROMPTNOTEXT_KEYNAME] = this.getNoButtonText(),\n _a;\n };\n PromptComponent.prototype.promptButtonToString = function (value) {\n switch (value) {\n case 0 /* Unselected */:\n return \"Unselected\";\n case 1 /* Yes */:\n return \"Yes\";\n case 2 /* No */:\n return \"No\";\n default:\n return \"Unknown\";\n }\n };\n return PromptComponent;\n}());\n(function (PromptComponent) {\n var PromptComponentData = /** @class */ (function () {\n function PromptComponentData() {\n }\n return PromptComponentData;\n }());\n PromptComponent.PromptComponentData = PromptComponentData;\n})(PromptComponent || (PromptComponent = {}));\nexports.default = PromptComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvUHJvbXB0Q29tcG9uZW50LnRzPzRjZTMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2S0FVMEM7QUFFMUM7SUFZQyx5QkFBbUIsSUFBeUM7UUFDM0QsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUN4RDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3pCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztTQUNqRTtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLHFCQUEwQixDQUFDO0lBQy9DLENBQUM7SUE5QmEsb0JBQUksR0FBbEIsVUFBbUIsSUFBeUM7UUFDM0QsSUFBSTtZQUNILE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBMEJELFlBQVk7SUFDTCxpQ0FBTyxHQUFkO1FBQ0MsNkJBQWtDO0lBQ25DLENBQUM7SUFFRCxZQUFZO0lBQ0wsa0NBQVEsR0FBZjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7SUFDTCxxQ0FBVyxHQUFsQjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVk7SUFDTCwwQ0FBZ0IsR0FBdkI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUFZO0lBQ0wseUNBQWUsR0FBdEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFZO0lBQ0wsMkNBQWlCLEdBQXhCLFVBQXlCLFFBQXNCO1FBQzlDLElBQUksUUFBUSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUM7U0FDL0I7SUFDRixDQUFDO0lBRUQsWUFBWTtJQUNMLDJDQUFpQixHQUF4QjtRQUNDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWTtJQUNMLHdDQUFjLEdBQXJCLFVBQXNCLEdBQWE7UUFDbEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM3QztRQUVELElBQU0sT0FBTyxHQUFZLEdBQUcsQ0FBQyxhQUFhLENBQUMsNkNBQWtCLENBQUMsQ0FBQztRQUMvRCxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBRUQsWUFBWTtJQUNMLHlDQUFlLEdBQXRCO1FBQ0MsSUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sQ0FBQyw4Q0FBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVk7SUFDTCwwQ0FBZ0IsR0FBdkI7O1FBQ0M7WUFDQyxHQUFDLDZDQUFrQixJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDckMsR0FBQyxnREFBcUIsSUFBRyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQzNDLEdBQUMscURBQTBCLElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3JELEdBQUMsb0RBQXlCLElBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRTtlQUNsRDtJQUNILENBQUM7SUFFTyw4Q0FBb0IsR0FBNUIsVUFBNkIsS0FBbUI7UUFDL0MsUUFBUSxLQUFLLEVBQUU7WUFDZDtnQkFDQyxPQUFPLFlBQVksQ0FBQztZQUNyQjtnQkFDQyxPQUFPLEtBQUssQ0FBQztZQUNkO2dCQUNDLE9BQU8sSUFBSSxDQUFDO1lBQ2I7Z0JBQ0MsT0FBTyxTQUFTLENBQUM7U0FDbEI7SUFDRixDQUFDO0lBQ0Ysc0JBQUM7QUFBRCxDQUFDO0FBRUQsV0FBTyxlQUFlO0lBQ3JCO1FBQUE7UUFLQSxDQUFDO1FBQUQsMEJBQUM7SUFBRCxDQUFDO0lBTFksbUNBQW1CLHNCQUsvQjtBQUNGLENBQUMsRUFQTSxlQUFlLEtBQWYsZUFBZSxRQU9yQjtBQUVELGtCQUFlLGVBQWUsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleUNvbXBvbmVudHMvUHJvbXB0Q29tcG9uZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRET01fUFJPTVBUX1RBR05BTUUsXHJcblx0SVByb21wdENvbXBvbmVudCxcclxuXHRKU09OX1BST01QVE5PVEVYVF9LRVlOQU1FLFxyXG5cdEpTT05fUFJPTVBUWUVTVEVYVF9LRVlOQU1FLFxyXG5cdEpTT05fUFJPTVBUX0tFWU5BTUUsXHJcblx0SlNPTl9RVUVTVElPTl9LRVlOQU1FLFxyXG5cdEpTT05fVElUTEVfS0VZTkFNRSxcclxuXHRQcm9tcHRCdXR0b24sXHJcblx0U3VydmV5Q29tcG9uZW50VHlwZSxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuXHJcbmNsYXNzIFByb21wdENvbXBvbmVudCBpbXBsZW1lbnRzIElQcm9tcHRDb21wb25lbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YSk6IElQcm9tcHRDb21wb25lbnQge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm9tcHRDb21wb25lbnQoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YTtcclxuXHRwcml2YXRlIHNlbGVjdGVkQnV0dG9uOiBQcm9tcHRCdXR0b247XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YSkge1xyXG5cdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS5xdWVzdGlvbikge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhLnF1ZXN0aW9uIG11c3Qgbm90IGJlIG51bGwgb3IgZW1wdHlcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIWRhdGEudGl0bGUpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YS50aXRsZSBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5XCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFkYXRhLnllc0J1dHRvbkxhYmVsKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEueWVzQnV0dG9uTGFiZWwgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS5ub0J1dHRvbkxhYmVsKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEubm9CdXR0b25MYWJlbCBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5XCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuZGF0YSA9IGRhdGE7XHJcblx0XHR0aGlzLnNlbGVjdGVkQnV0dG9uID0gUHJvbXB0QnV0dG9uLlVuc2VsZWN0ZWQ7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VHlwZSgpOiBTdXJ2ZXlDb21wb25lbnRUeXBlIHtcclxuXHRcdHJldHVybiBTdXJ2ZXlDb21wb25lbnRUeXBlLlByb21wdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS50aXRsZTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRRdWVzdGlvbigpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5xdWVzdGlvbjtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRZZXNCdXR0b25UZXh0KCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnllc0J1dHRvbkxhYmVsO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldE5vQnV0dG9uVGV4dCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5ub0J1dHRvbkxhYmVsO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHNldEJ1dHRvblNlbGVjdGVkKHNlbGVjdGVkOiBQcm9tcHRCdXR0b24pOiB2b2lkIHtcclxuXHRcdGlmIChzZWxlY3RlZCkge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGVkQnV0dG9uID0gc2VsZWN0ZWQ7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0QnV0dG9uU2VsZWN0ZWQoKTogUHJvbXB0QnV0dG9uIHtcclxuXHRcdHJldHVybiB0aGlzLnNlbGVjdGVkQnV0dG9uO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldERvbUVsZW1lbnRzKGRvYzogRG9jdW1lbnQpOiBFbGVtZW50W10ge1xyXG5cdFx0aWYgKCFkb2MpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRG9jdW1lbnQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX1BST01QVF9UQUdOQU1FKTtcclxuXHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKHRoaXMucHJvbXB0QnV0dG9uVG9TdHJpbmcodGhpcy5nZXRCdXR0b25TZWxlY3RlZCgpKSkpO1xyXG5cclxuXHRcdHJldHVybiBbZWxlbWVudF07XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRjb25zdCByZXN1bHQ6IG9iamVjdCA9IHt9O1xyXG5cdFx0cmVzdWx0W0pTT05fUFJPTVBUX0tFWU5BTUVdID0gdGhpcy5wcm9tcHRCdXR0b25Ub1N0cmluZyh0aGlzLmdldEJ1dHRvblNlbGVjdGVkKCkpO1xyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRDb21wb25lbnRKc29uKCk6IG9iamVjdCB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRbSlNPTl9USVRMRV9LRVlOQU1FXTogdGhpcy5nZXRUaXRsZSgpLFxyXG5cdFx0XHRbSlNPTl9RVUVTVElPTl9LRVlOQU1FXTogdGhpcy5nZXRRdWVzdGlvbigpLFxyXG5cdFx0XHRbSlNPTl9QUk9NUFRZRVNURVhUX0tFWU5BTUVdOiB0aGlzLmdldFllc0J1dHRvblRleHQoKSxcclxuXHRcdFx0W0pTT05fUFJPTVBUTk9URVhUX0tFWU5BTUVdOiB0aGlzLmdldE5vQnV0dG9uVGV4dCgpLFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgcHJvbXB0QnV0dG9uVG9TdHJpbmcodmFsdWU6IFByb21wdEJ1dHRvbik6IHN0cmluZyB7XHJcblx0XHRzd2l0Y2ggKHZhbHVlKSB7XHJcblx0XHRcdGNhc2UgUHJvbXB0QnV0dG9uLlVuc2VsZWN0ZWQ6XHJcblx0XHRcdFx0cmV0dXJuIFwiVW5zZWxlY3RlZFwiO1xyXG5cdFx0XHRjYXNlIFByb21wdEJ1dHRvbi5ZZXM6XHJcblx0XHRcdFx0cmV0dXJuIFwiWWVzXCI7XHJcblx0XHRcdGNhc2UgUHJvbXB0QnV0dG9uLk5vOlxyXG5cdFx0XHRcdHJldHVybiBcIk5vXCI7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIFwiVW5rbm93blwiO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxubW9kdWxlIFByb21wdENvbXBvbmVudCB7XHJcblx0ZXhwb3J0IGNsYXNzIFByb21wdENvbXBvbmVudERhdGEge1xyXG5cdFx0cHVibGljIHF1ZXN0aW9uOiBzdHJpbmc7XHJcblx0XHRwdWJsaWMgdGl0bGU6IHN0cmluZztcclxuXHRcdHB1YmxpYyB5ZXNCdXR0b25MYWJlbDogc3RyaW5nO1xyXG5cdFx0cHVibGljIG5vQnV0dG9uTGFiZWw6IHN0cmluZztcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFByb21wdENvbXBvbmVudDtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js": /*!*********************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar RatingComponent = /** @class */ (function () {\n function RatingComponent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.question) {\n throw new Error(\"data.question must not be null or empty\");\n }\n if (!data.ratingValuesAscending || data.ratingValuesAscending.length < 2) {\n throw new Error(\"data.ratingValuesAscending must not be null or have less than two choices\");\n }\n data.ratingValuesAscending.forEach(function (rating) {\n if (!rating) {\n throw new Error(\"rating values must not contain null or empty\");\n }\n });\n this.data = data;\n this.selectedIndex = -1;\n }\n RatingComponent.make = function (data) {\n try {\n return new RatingComponent(data);\n }\n catch (e) {\n return null;\n }\n };\n RatingComponent.prototype.getType = function () {\n return \"Rating\" /* Rating */;\n };\n RatingComponent.prototype.getQuestion = function () {\n return this.data.question;\n };\n RatingComponent.prototype.getRatingValuesAscending = function () {\n return this.data.ratingValuesAscending;\n };\n RatingComponent.prototype.getSelectedRating = function () {\n if (!this.isRatingIndexValid(this.selectedIndex)) {\n return \"\";\n }\n return this.data.ratingValuesAscending[this.selectedIndex];\n };\n RatingComponent.prototype.setSelectedRatingIndex = function (selected) {\n if (this.isRatingIndexValid(selected)) {\n this.selectedIndex = selected;\n }\n else {\n this.selectedIndex = -1;\n }\n };\n RatingComponent.prototype.getSelectedRatingIndex = function () {\n return this.selectedIndex;\n };\n RatingComponent.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_RATING_TAGNAME);\n if (!this.isRatingIndexValid(this.getSelectedRatingIndex())) {\n element.appendChild(doc.createTextNode(\"Not rated\"));\n }\n else {\n // Enforce six digits after the decimal\n element.appendChild(doc.createTextNode(this.getNormalizedRatingScore().toFixed(6)));\n }\n return [element];\n };\n // @Override\n RatingComponent.prototype.getJsonElements = function () {\n var result = {};\n if (!this.isRatingIndexValid(this.getSelectedRatingIndex())) {\n result[floodgate_shared_typings_1.JSON_RATING_KEYNAME] = \"Not rated\";\n }\n else {\n result[floodgate_shared_typings_1.JSON_RATING_KEYNAME] = this.getNormalizedRatingScore();\n }\n return result;\n };\n // @Override\n RatingComponent.prototype.getComponentJson = function () {\n var _a;\n return _a = {},\n _a[floodgate_shared_typings_1.JSON_QUESTION_KEYNAME] = this.getQuestion(),\n _a[floodgate_shared_typings_1.JSON_RATINGOPTIONS_KEYNAME] = this.getRatingValuesAscending(),\n _a;\n };\n RatingComponent.prototype.getNormalizedRatingScore = function () {\n if (!this.isRatingIndexValid(this.getSelectedRatingIndex())) {\n return -1;\n }\n if (this.data.isZeroBased) {\n return (this.selectedIndex) / (this.data.ratingValuesAscending.length - 1);\n }\n else {\n return (this.selectedIndex + 1.0) / this.data.ratingValuesAscending.length;\n }\n };\n RatingComponent.prototype.isRatingIndexValid = function (index) {\n return (index >= 0 && index < this.data.ratingValuesAscending.length);\n };\n return RatingComponent;\n}());\n(function (RatingComponent) {\n var RatingComponentData = /** @class */ (function () {\n function RatingComponentData() {\n }\n return RatingComponentData;\n }());\n RatingComponent.RatingComponentData = RatingComponentData;\n})(RatingComponent || (RatingComponent = {}));\nexports.default = RatingComponent;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUNvbXBvbmVudHMvUmF0aW5nQ29tcG9uZW50LnRzP2UwNjQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2S0FPMEM7QUFFMUM7SUFZQyx5QkFBbUIsSUFBeUM7UUFDM0QsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztTQUMzRDtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO1NBQzdGO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxVQUFDLE1BQU07WUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7YUFDaEU7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQTlCYSxvQkFBSSxHQUFsQixVQUFtQixJQUF5QztRQUMzRCxJQUFJO1lBQ0gsT0FBTyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDWjtJQUNGLENBQUM7SUEwQk0saUNBQU8sR0FBZDtRQUNDLDZCQUFrQztJQUNuQyxDQUFDO0lBRU0scUNBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lB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QUN2QyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUYsc0JBQUM7QUFBRCxDQUFDO0FBRUQsV0FBTyxlQUFlO0lBQ3JCO1FBQUE7UUFJQSxDQUFDO1FBQUQsMEJBQUM7SUFBRCxDQUFDO0lBSlksbUNBQW1CLHNCQUkvQjtBQUNGLENBQUMsRUFOTSxlQUFlLEtBQWYsZUFBZSxRQU1yQjtBQUVELGtCQUFlLGVBQWUsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleUNvbXBvbmVudHMvUmF0aW5nQ29tcG9uZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRET01fUkFUSU5HX1RBR05BTUUsXHJcblx0SVJhdGluZ0NvbXBvbmVudCxcclxuXHRKU09OX1FVRVNUSU9OX0tFWU5BTUUsXHJcblx0SlNPTl9SQVRJTkdPUFRJT05TX0tFWU5BTUUsXHJcblx0SlNPTl9SQVRJTkdfS0VZTkFNRSxcclxuXHRTdXJ2ZXlDb21wb25lbnRUeXBlLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxuY2xhc3MgUmF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgSVJhdGluZ0NvbXBvbmVudCB7XHJcblx0cHVibGljIHN0YXRpYyBtYWtlKGRhdGE6IFJhdGluZ0NvbXBvbmVudC5SYXRpbmdDb21wb25lbnREYXRhKTogSVJhdGluZ0NvbXBvbmVudCB7XHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFJhdGluZ0NvbXBvbmVudChkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IFJhdGluZ0NvbXBvbmVudC5SYXRpbmdDb21wb25lbnREYXRhO1xyXG5cdHByaXZhdGUgc2VsZWN0ZWRJbmRleDogbnVtYmVyO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogUmF0aW5nQ29tcG9uZW50LlJhdGluZ0NvbXBvbmVudERhdGEpIHtcclxuXHRcdGlmICghZGF0YSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIWRhdGEucXVlc3Rpb24pIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YS5xdWVzdGlvbiBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5XCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCFkYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZyB8fCBkYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZy5sZW5ndGggPCAyKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nIG11c3Qgbm90IGJlIG51bGwgb3IgaGF2ZSBsZXNzIHRoYW4gdHdvIGNob2ljZXNcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0ZGF0YS5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcuZm9yRWFjaCgocmF0aW5nKSA9PiB7XHJcblx0XHRcdGlmICghcmF0aW5nKSB7XHJcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwicmF0aW5nIHZhbHVlcyBtdXN0IG5vdCBjb250YWluIG51bGwgb3IgZW1wdHlcIik7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZGF0YSA9IGRhdGE7XHJcblx0XHR0aGlzLnNlbGVjdGVkSW5kZXggPSAtMTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUeXBlKCk6IFN1cnZleUNvbXBvbmVudFR5cGUge1xyXG5cdFx0cmV0dXJuIFN1cnZleUNvbXBvbmVudFR5cGUuUmF0aW5nO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFF1ZXN0aW9uKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnF1ZXN0aW9uO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFJhdGluZ1ZhbHVlc0FzY2VuZGluZygpOiBzdHJpbmdbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRTZWxlY3RlZFJhdGluZygpOiBzdHJpbmcge1xyXG5cdFx0aWYgKCF0aGlzLmlzUmF0aW5nSW5kZXhWYWxpZCh0aGlzLnNlbGVjdGVkSW5kZXgpKSB7XHJcblx0XHRcdHJldHVybiBcIlwiO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLmRhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nW3RoaXMuc2VsZWN0ZWRJbmRleF07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc2V0U2VsZWN0ZWRSYXRpbmdJbmRleChzZWxlY3RlZDogbnVtYmVyKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5pc1JhdGluZ0luZGV4VmFsaWQoc2VsZWN0ZWQpKSB7XHJcblx0XHRcdHRoaXMuc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RlZEluZGV4ID0gLTE7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0U2VsZWN0ZWRSYXRpbmdJbmRleCgpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMuc2VsZWN0ZWRJbmRleDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXREb21FbGVtZW50cyhkb2M6IERvY3VtZW50KTogRWxlbWVudFtdIHtcclxuXHRcdGlmICghZG9jKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkRvY3VtZW50IG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZWxlbWVudDogRWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KERPTV9SQVRJTkdfVEFHTkFNRSk7XHJcblxyXG5cdFx0aWYgKCF0aGlzLmlzUmF0aW5nSW5kZXhWYWxpZCh0aGlzLmdldFNlbGVjdGVkUmF0aW5nSW5kZXgoKSkpIHtcclxuXHRcdFx0ZWxlbWVudC5hcHBlbmRDaGlsZChkb2MuY3JlYXRlVGV4dE5vZGUoXCJOb3QgcmF0ZWRcIikpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gRW5mb3JjZSBzaXggZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsXHJcblx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKHRoaXMuZ2V0Tm9ybWFsaXplZFJhdGluZ1Njb3JlKCkudG9GaXhlZCg2KSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBbZWxlbWVudF07XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRjb25zdCByZXN1bHQ6IG9iamVjdCA9IHt9O1xyXG5cclxuXHRcdGlmICghdGhpcy5pc1JhdGluZ0luZGV4VmFsaWQodGhpcy5nZXRTZWxlY3RlZFJhdGluZ0luZGV4KCkpKSB7XHJcblx0XHRcdHJlc3VsdFtKU09OX1JBVElOR19LRVlOQU1FXSA9IFwiTm90IHJhdGVkXCI7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXN1bHRbSlNPTl9SQVRJTkdfS0VZTkFNRV0gPSB0aGlzLmdldE5vcm1hbGl6ZWRSYXRpbmdTY29yZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29tcG9uZW50SnNvbigpOiBvYmplY3Qge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0W0pTT05fUVVFU1RJT05fS0VZTkFNRV06IHRoaXMuZ2V0UXVlc3Rpb24oKSxcclxuXHRcdFx0W0pTT05fUkFUSU5HT1BUSU9OU19LRVlOQU1FXTogdGhpcy5nZXRSYXRpbmdWYWx1ZXNBc2NlbmRpbmcoKSxcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0Tm9ybWFsaXplZFJhdGluZ1Njb3JlKCk6IG51bWJlciB7XHJcblx0XHRpZiAoIXRoaXMuaXNSYXRpbmdJbmRleFZhbGlkKHRoaXMuZ2V0U2VsZWN0ZWRSYXRpbmdJbmRleCgpKSkge1xyXG5cdFx0XHRyZXR1cm4gLTE7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuZGF0YS5pc1plcm9CYXNlZCkge1xyXG5cdFx0XHRyZXR1cm4gKHRoaXMuc2VsZWN0ZWRJbmRleCkgLyAodGhpcy5kYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZy5sZW5ndGggLSAxKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiAodGhpcy5zZWxlY3RlZEluZGV4ICsgMS4wKSAvIHRoaXMuZGF0YS5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcubGVuZ3RoO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc1JhdGluZ0luZGV4VmFsaWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5kYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZy5sZW5ndGgpO1xyXG5cdH1cclxuXHJcbn1cclxuXHJcbm1vZHVsZSBSYXRpbmdDb21wb25lbnQge1xyXG5cdGV4cG9ydCBjbGFzcyBSYXRpbmdDb21wb25lbnREYXRhIHtcclxuXHRcdHB1YmxpYyBxdWVzdGlvbjogc3RyaW5nO1xyXG5cdFx0cHVibGljIHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW107XHJcblx0XHRwdWJsaWMgaXNaZXJvQmFzZWQ6IGJvb2xlYW47XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBSYXRpbmdDb21wb25lbnQ7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyEvents.js": /*!*************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyEvents.js ***! \*************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CountedActivitySequenceEventData = exports.CountedActivitySequenceEvent = exports.CountedActivityEventData = exports.CountedActivityEvent = void 0;\nvar ActivityTrackingData_1 = __webpack_require__(/*! ./ActivityTrackingData */ \"../FloodgateCore/dist/src/ActivityTrackingData.js\");\nvar ActivityTrackingSet_1 = __webpack_require__(/*! ./ActivityTrackingSet */ \"../FloodgateCore/dist/src/ActivityTrackingSet.js\");\nvar CountedActivityEvent = /** @class */ (function () {\n function CountedActivityEvent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (data.count <= 0) {\n throw new Error(\"count must be greater than 0\");\n }\n if (!data.activity || data.activity.length === 0) {\n throw new Error(\"activity must not be null or an empty string\");\n }\n this.data = data;\n }\n CountedActivityEvent.make = function (data) {\n try {\n return new CountedActivityEvent(data);\n }\n catch (e) {\n return null;\n }\n };\n CountedActivityEvent.prototype.getActivity = function () {\n return this.data.activity;\n };\n CountedActivityEvent.prototype.getCount = function () {\n return this.data.count;\n };\n CountedActivityEvent.prototype.isAggregate = function () {\n return this.data.isAggregate;\n };\n CountedActivityEvent.prototype.getType = function () {\n return \"CountedActivity\" /* CountedActivity */;\n };\n CountedActivityEvent.prototype.getTrackingSet = function () {\n var trackingDataList = new Array();\n trackingDataList.push(new ActivityTrackingData_1.ActivityTrackingData(this.data.activity, this.data.count, this.data.isAggregate));\n return new ActivityTrackingSet_1.ActivityTrackingSet(false, trackingDataList);\n };\n return CountedActivityEvent;\n}());\nexports.CountedActivityEvent = CountedActivityEvent;\n/**\n * Data class for serialization and deserialization. Do not add logic in here.\n */\nvar CountedActivityEventData = /** @class */ (function () {\n function CountedActivityEventData() {\n }\n return CountedActivityEventData;\n}());\nexports.CountedActivityEventData = CountedActivityEventData;\nvar CountedActivitySequenceEvent = /** @class */ (function () {\n function CountedActivitySequenceEvent(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.sequence) {\n throw new Error(\"data.sequence must not be null\");\n }\n if (data.sequence.length === 0) {\n throw new Error(\"data.sequence size must be greater than 0\");\n }\n this.data = [];\n for (var _i = 0, _a = data.sequence; _i < _a.length; _i++) {\n var countedActivityEventData = _a[_i];\n this.data.push(new CountedActivityEvent(countedActivityEventData));\n }\n }\n CountedActivitySequenceEvent.make = function (data) {\n try {\n return new CountedActivitySequenceEvent(data);\n }\n catch (e) {\n return null;\n }\n };\n CountedActivitySequenceEvent.prototype.getSequence = function () {\n return this.data;\n };\n CountedActivitySequenceEvent.prototype.getType = function () {\n return \"CountedActivitySequence\" /* CountedActivitySequence */;\n };\n CountedActivitySequenceEvent.prototype.getTrackingSet = function () {\n var trackingDataList = new Array();\n for (var _i = 0, _a = this.data; _i < _a.length; _i++) {\n var countedActivityEvent = _a[_i];\n trackingDataList.push(new ActivityTrackingData_1.ActivityTrackingData(countedActivityEvent.getActivity(), countedActivityEvent.getCount(), countedActivityEvent.isAggregate()));\n }\n return new ActivityTrackingSet_1.ActivityTrackingSet(true, trackingDataList);\n };\n return CountedActivitySequenceEvent;\n}());\nexports.CountedActivitySequenceEvent = CountedActivitySequenceEvent;\n/**\n * Data class for serialization and deserialization. Do not add logic in here.\n */\nvar CountedActivitySequenceEventData = /** @class */ (function () {\n function CountedActivitySequenceEventData() {\n }\n /**\n * No args constructor needed for serialization.\n */\n CountedActivitySequenceEventData.prototype.CountedActivitySequenceEventData = function () {\n };\n return CountedActivitySequenceEventData;\n}());\nexports.CountedActivitySequenceEventData = CountedActivitySequenceEventData;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleUV2ZW50cy50cz9mYWVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG9JQUE4RDtBQUM5RCxpSUFBNEQ7QUFFNUQ7SUFXQyw4QkFBbUIsSUFBOEI7UUFDaEQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2hEO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztTQUNoRTtRQUVELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLENBQUM7SUF0QmEseUJBQUksR0FBbEIsVUFBbUIsSUFBOEI7UUFDaEQsSUFBSTtZQUNILE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDWjtJQUNGLENBQUM7SUFrQk0sMENBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSx1Q0FBUSxHQUFmO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sMENBQVcsR0FBbEI7UUFDQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFFTSxzQ0FBTyxHQUFkO1FBQ0MsK0NBQXVDO0lBQ3hDLENBQUM7SUFFTSw2Q0FBYyxHQUFyQjtRQUNDLElBQU0sZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLEVBQXdCLENBQUM7UUFDM0QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVHLE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQ0YsMkJBQUM7QUFBRCxDQUFDO0FBOUNZLG9EQUFvQjtBQWdEakM7O0dBRUc7QUFDSDtJQUFBO0lBSUEsQ0FBQztJQUFELCtCQUFDO0FBQUQsQ0FBQztBQUpZLDREQUF3QjtBQU1yQztJQVdDLHNDQUFtQixJQUFzQztRQUN4RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQzdEO1FBRUQsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZixLQUF1QyxVQUFhLEVBQWIsU0FBSSxDQUFDLFFBQVEsRUFBYixjQUFhLEVBQWIsSUFBYSxFQUFFO1lBQWpELElBQU0sd0JBQXdCO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO1NBQ25FO0lBQ0YsQ0FBQztJQXpCYSxpQ0FBSSxHQUFsQixVQUFtQixJQUFzQztRQUN4RCxJQUFJO1lBQ0gsT0FBTyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQXFCTSxrREFBVyxHQUFsQjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNsQixDQUFDO0lBRU0sOENBQU8sR0FBZDtRQUNDLCtEQUErQztJQUNoRCxDQUFDO0lBRU0scURBQWMsR0FBckI7UUFDQyxJQUFNLGdCQUFnQixHQUFHLElBQUksS0FBSyxFQUF3QixDQUFDO1FBRTNELEtBQW1DLFVBQVMsRUFBVCxTQUFJLENBQUMsSUFBSSxFQUFULGNBQVMsRUFBVCxJQUFTLEVBQUU7WUFBekMsSUFBTSxvQkFBb0I7WUFDOUIsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksMkNBQW9CLENBQUMsb0JBQW9CLENBQUMsV0FBVyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEVBQ2pILG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN0QztRQUVELE9BQU8sSUFBSSx5Q0FBbUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBQ0YsbUNBQUM7QUFBRCxDQUFDO0FBOUNZLG9FQUE0QjtBQWdEekM7O0dBRUc7QUFDSDtJQUFBO0lBUUEsQ0FBQztJQUxBOztPQUVHO0lBQ0ksMkVBQWdDLEdBQXZDO0lBQ0EsQ0FBQztJQUNGLHVDQUFDO0FBQUQsQ0FBQztBQVJZLDRFQUFnQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleUV2ZW50cy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElDb3VudGVkQWN0aXZpdHlFdmVudCwgSUNvdW50ZWRBY3Rpdml0eVNlcXVlbmNlRXZlbnQsIFN1cnZleUV2ZW50VHlwZSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBBY3Rpdml0eVRyYWNraW5nRGF0YSB9IGZyb20gXCIuL0FjdGl2aXR5VHJhY2tpbmdEYXRhXCI7XHJcbmltcG9ydCB7IEFjdGl2aXR5VHJhY2tpbmdTZXQgfSBmcm9tIFwiLi9BY3Rpdml0eVRyYWNraW5nU2V0XCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ291bnRlZEFjdGl2aXR5RXZlbnQgaW1wbGVtZW50cyBJQ291bnRlZEFjdGl2aXR5RXZlbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBDb3VudGVkQWN0aXZpdHlFdmVudERhdGEpOiBJQ291bnRlZEFjdGl2aXR5RXZlbnQge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBDb3VudGVkQWN0aXZpdHlFdmVudChkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IENvdW50ZWRBY3Rpdml0eUV2ZW50RGF0YTtcclxuXHJcblx0cHVibGljIGNvbnN0cnVjdG9yKGRhdGE6IENvdW50ZWRBY3Rpdml0eUV2ZW50RGF0YSkge1xyXG5cdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmIChkYXRhLmNvdW50IDw9IDApIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiY291bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghZGF0YS5hY3Rpdml0eSB8fCBkYXRhLmFjdGl2aXR5Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJhY3Rpdml0eSBtdXN0IG5vdCBiZSBudWxsIG9yIGFuIGVtcHR5IHN0cmluZ1wiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldEFjdGl2aXR5KCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmFjdGl2aXR5O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldENvdW50KCk6IG51bWJlciB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmNvdW50O1xyXG5cdH1cclxuXHJcblx0cHVibGljIGlzQWdncmVnYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5pc0FnZ3JlZ2F0ZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUeXBlKCk6IFN1cnZleUV2ZW50VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5RXZlbnRUeXBlLkNvdW50ZWRBY3Rpdml0eTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUcmFja2luZ1NldCgpOiBBY3Rpdml0eVRyYWNraW5nU2V0IHtcclxuXHRcdGNvbnN0IHRyYWNraW5nRGF0YUxpc3QgPSBuZXcgQXJyYXk8QWN0aXZpdHlUcmFja2luZ0RhdGE+KCk7XHJcblx0XHR0cmFja2luZ0RhdGFMaXN0LnB1c2gobmV3IEFjdGl2aXR5VHJhY2tpbmdEYXRhKHRoaXMuZGF0YS5hY3Rpdml0eSwgdGhpcy5kYXRhLmNvdW50LCB0aGlzLmRhdGEuaXNBZ2dyZWdhdGUpKTtcclxuXHRcdHJldHVybiBuZXcgQWN0aXZpdHlUcmFja2luZ1NldChmYWxzZSwgdHJhY2tpbmdEYXRhTGlzdCk7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogRGF0YSBjbGFzcyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiBEbyBub3QgYWRkIGxvZ2ljIGluIGhlcmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ291bnRlZEFjdGl2aXR5RXZlbnREYXRhIHtcclxuXHRwdWJsaWMgYWN0aXZpdHk6IHN0cmluZztcclxuXHRwdWJsaWMgY291bnQ6IG51bWJlcjtcclxuXHRwdWJsaWMgaXNBZ2dyZWdhdGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50IGltcGxlbWVudHMgSUNvdW50ZWRBY3Rpdml0eVNlcXVlbmNlRXZlbnQge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50RGF0YSk6IElDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgQ291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudChkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IElDb3VudGVkQWN0aXZpdHlFdmVudFtdO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogQ291bnRlZEFjdGl2aXR5U2VxdWVuY2VFdmVudERhdGEpIHtcclxuXHRcdGlmICghZGF0YSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIWRhdGEuc2VxdWVuY2UpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YS5zZXF1ZW5jZSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGRhdGEuc2VxdWVuY2UubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEuc2VxdWVuY2Ugc2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuZGF0YSA9IFtdO1xyXG5cdFx0Zm9yIChjb25zdCBjb3VudGVkQWN0aXZpdHlFdmVudERhdGEgb2YgZGF0YS5zZXF1ZW5jZSkge1xyXG5cdFx0XHR0aGlzLmRhdGEucHVzaChuZXcgQ291bnRlZEFjdGl2aXR5RXZlbnQoY291bnRlZEFjdGl2aXR5RXZlbnREYXRhKSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0U2VxdWVuY2UoKTogSUNvdW50ZWRBY3Rpdml0eUV2ZW50W10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUeXBlKCk6IFN1cnZleUV2ZW50VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5RXZlbnRUeXBlLkNvdW50ZWRBY3Rpdml0eVNlcXVlbmNlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFRyYWNraW5nU2V0KCk6IEFjdGl2aXR5VHJhY2tpbmdTZXQge1xyXG5cdFx0Y29uc3QgdHJhY2tpbmdEYXRhTGlzdCA9IG5ldyBBcnJheTxBY3Rpdml0eVRyYWNraW5nRGF0YT4oKTtcclxuXHJcblx0XHRmb3IgKGNvbnN0IGNvdW50ZWRBY3Rpdml0eUV2ZW50IG9mIHRoaXMuZGF0YSkge1xyXG5cdFx0XHR0cmFja2luZ0RhdGFMaXN0LnB1c2gobmV3IEFjdGl2aXR5VHJhY2tpbmdEYXRhKGNvdW50ZWRBY3Rpdml0eUV2ZW50LmdldEFjdGl2aXR5KCksIGNvdW50ZWRBY3Rpdml0eUV2ZW50LmdldENvdW50KCksXHJcblx0XHRcdFx0Y291bnRlZEFjdGl2aXR5RXZlbnQuaXNBZ2dyZWdhdGUoKSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBuZXcgQWN0aXZpdHlUcmFja2luZ1NldCh0cnVlLCB0cmFja2luZ0RhdGFMaXN0KTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRhIGNsYXNzIGZvciBzZXJpYWxpemF0aW9uIGFuZCBkZXNlcmlhbGl6YXRpb24uIERvIG5vdCBhZGQgbG9naWMgaW4gaGVyZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb3VudGVkQWN0aXZpdHlTZXF1ZW5jZUV2ZW50RGF0YSB7XHJcblx0cHVibGljIHNlcXVlbmNlOiBDb3VudGVkQWN0aXZpdHlFdmVudERhdGFbXTtcclxuXHJcblx0LyoqXHJcblx0ICogTm8gYXJncyBjb25zdHJ1Y3RvciBuZWVkZWQgZm9yIHNlcmlhbGl6YXRpb24uXHJcblx0ICovXHJcblx0cHVibGljIENvdW50ZWRBY3Rpdml0eVNlcXVlbmNlRXZlbnREYXRhKCkge1xyXG5cdH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyEvents.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyMetadata.js": /*!***************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyMetadata.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Metadata = exports.SurveyMetadata = void 0;\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar SurveyMetadata = /** @class */ (function () {\n function SurveyMetadata(data) {\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (!data.contentMetadata) {\n throw new Error(\"content metadata must not be null\");\n }\n if (!Utils.isObject(data.contentMetadata)) {\n throw new Error(\"content metadata must be of object type\");\n }\n this.data = data;\n }\n SurveyMetadata.make = function (data) {\n try {\n return new SurveyMetadata(data);\n }\n catch (e) {\n return null;\n }\n };\n SurveyMetadata.prototype.getContentMetadata = function () {\n return this.data.contentMetadata;\n };\n return SurveyMetadata;\n}());\nexports.SurveyMetadata = SurveyMetadata;\n/**\n * Data class for serialization and deserialization. Do not add logic in here.\n */\nvar Metadata = /** @class */ (function () {\n function Metadata() {\n }\n return Metadata;\n}());\nexports.Metadata = Metadata;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleU1ldGFkYXRhLnRzP2U0NzkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUZBQWlDO0FBRWpDO0lBV0Msd0JBQW1CLElBQWM7UUFDaEMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztTQUNyRDtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNsQixDQUFDO0lBdEJhLG1CQUFJLEdBQWxCLFVBQW1CLElBQWM7UUFDaEMsSUFBSTtZQUNILE9BQU8sSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBa0JNLDJDQUFrQixHQUF6QjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDbEMsQ0FBQztJQUNGLHFCQUFDO0FBQUQsQ0FBQztBQTVCWSx3Q0FBYztBQThCM0I7O0dBRUc7QUFDSDtJQUFBO0lBRUEsQ0FBQztJQUFELGVBQUM7QUFBRCxDQUFDO0FBRlksNEJBQVEiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlNZXRhZGF0YS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTdXJ2ZXlNZXRhZGF0YSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIFN1cnZleU1ldGFkYXRhIGltcGxlbWVudHMgSVN1cnZleU1ldGFkYXRhIHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZGF0YTogTWV0YWRhdGEpOiBJU3VydmV5TWV0YWRhdGEge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBTdXJ2ZXlNZXRhZGF0YShkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGRhdGE6IE1ldGFkYXRhO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogTWV0YWRhdGEpIHtcclxuXHRcdGlmICghZGF0YSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0XHRpZiAoIWRhdGEuY29udGVudE1ldGFkYXRhKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImNvbnRlbnQgbWV0YWRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmICghVXRpbHMuaXNPYmplY3QoZGF0YS5jb250ZW50TWV0YWRhdGEpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImNvbnRlbnQgbWV0YWRhdGEgbXVzdCBiZSBvZiBvYmplY3QgdHlwZVwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldENvbnRlbnRNZXRhZGF0YSgpOiBvYmplY3Qge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5jb250ZW50TWV0YWRhdGE7XHJcblx0fVxyXG59XHJcblxyXG4vKipcclxuICogRGF0YSBjbGFzcyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLiBEbyBub3QgYWRkIGxvZ2ljIGluIGhlcmUuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTWV0YWRhdGEge1xyXG5cdHB1YmxpYyBjb250ZW50TWV0YWRhdGE6IG9iamVjdDtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyMetadata.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyStatCollection.js": /*!*********************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyStatCollection.js ***! \*********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SurveyStatCollection = void 0;\n/**\n * Generic class for managing a collection of survey stats. Includes read-from/write-to json structures or a file,\n * as well as merge routines for combining collections\n */\nvar SurveyStatCollection = /** @class */ (function () {\n function SurveyStatCollection() {\n // The following property name matches the JSON root key name for proper serialization/ deserialization\n this.Surveys = {};\n this.Surveys = {};\n }\n /**\n * Add stats. Overwrites if already exists.\n */\n SurveyStatCollection.prototype.addStats = function (surveyId, stats) {\n this.Surveys[surveyId] = stats;\n };\n /**\n * Get a SurveyActivationStats object by surveyId. Returns null if surveyId is not found\n */\n SurveyStatCollection.prototype.getBySurveyId = function (surveyId) {\n return (this.Surveys[surveyId]);\n };\n /**\n * Get all stats available\n */\n SurveyStatCollection.prototype.getStats = function () {\n return this.Surveys;\n };\n return SurveyStatCollection;\n}());\nexports.SurveyStatCollection = SurveyStatCollection;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleVN0YXRDb2xsZWN0aW9uLnRzPzJkMmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7OztHQUdHO0FBQ0g7SUFJQztRQUhBLHVHQUF1RztRQUMvRixZQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUd6QyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSx1Q0FBUSxHQUFmLFVBQWdCLFFBQWdCLEVBQUUsS0FBYTtRQUM5QyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSw0Q0FBYSxHQUFwQixVQUFxQixRQUFnQjtRQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLHVDQUFRLEdBQWY7UUFDQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckIsQ0FBQztJQUNGLDJCQUFDO0FBQUQsQ0FBQztBQTVCcUIsb0RBQW9CIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvZGlzdC9zcmMvU3VydmV5U3RhdENvbGxlY3Rpb24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRGljdGlvbmFyeSwgSVN1cnZleVN0YXRDb2xsZWN0aW9uIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcblxyXG4vKipcclxuICogR2VuZXJpYyBjbGFzcyBmb3IgbWFuYWdpbmcgYSBjb2xsZWN0aW9uIG9mIHN1cnZleSBzdGF0cy4gSW5jbHVkZXMgcmVhZC1mcm9tL3dyaXRlLXRvIGpzb24gc3RydWN0dXJlcyBvciBhIGZpbGUsXHJcbiAqIGFzIHdlbGwgYXMgbWVyZ2Ugcm91dGluZXMgZm9yIGNvbWJpbmluZyBjb2xsZWN0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN1cnZleVN0YXRDb2xsZWN0aW9uPFRTdGF0cz4gaW1wbGVtZW50cyBJU3VydmV5U3RhdENvbGxlY3Rpb248VFN0YXRzPiB7XHJcblx0Ly8gVGhlIGZvbGxvd2luZyBwcm9wZXJ0eSBuYW1lIG1hdGNoZXMgdGhlIEpTT04gcm9vdCBrZXkgbmFtZSBmb3IgcHJvcGVyIHNlcmlhbGl6YXRpb24vIGRlc2VyaWFsaXphdGlvblxyXG5cdHByaXZhdGUgU3VydmV5czogSURpY3Rpb25hcnk8VFN0YXRzPiA9IHt9O1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoKSB7XHJcblx0XHR0aGlzLlN1cnZleXMgPSB7fTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBzdGF0cy4gT3ZlcndyaXRlcyBpZiBhbHJlYWR5IGV4aXN0cy5cclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkU3RhdHMoc3VydmV5SWQ6IHN0cmluZywgc3RhdHM6IFRTdGF0cyk6IHZvaWQge1xyXG5cdFx0dGhpcy5TdXJ2ZXlzW3N1cnZleUlkXSA9IHN0YXRzO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0IGEgU3VydmV5QWN0aXZhdGlvblN0YXRzIG9iamVjdCBieSBzdXJ2ZXlJZC4gUmV0dXJucyBudWxsIGlmIHN1cnZleUlkIGlzIG5vdCBmb3VuZFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRCeVN1cnZleUlkKHN1cnZleUlkOiBzdHJpbmcpOiBUU3RhdHMge1xyXG5cdFx0cmV0dXJuICh0aGlzLlN1cnZleXNbc3VydmV5SWRdKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBhbGwgc3RhdHMgYXZhaWxhYmxlXHJcblx0ICovXHJcblx0cHVibGljIGdldFN0YXRzKCk6IElEaWN0aW9uYXJ5PFRTdGF0cz4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuU3VydmV5cztcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyStatCollection.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyStatCollectionActivation.js": /*!*******************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyStatCollectionActivation.js ***! \*******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SurveyActivationStats = exports.FileBasedSurveyActivationStatsProvider = exports.HostBasedSurveyActivationStatsProvider = exports.SurveyActivationStatsProviderFactory = exports.SurveyStatCollectionActivation = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Constants_1 = __webpack_require__(/*! ./Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ./FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar StateProviderHelpers = __webpack_require__(/*! ./StateProviderHelpers */ \"../FloodgateCore/dist/src/StateProviderHelpers.js\");\nvar SurveyStatCollection_1 = __webpack_require__(/*! ./SurveyStatCollection */ \"../FloodgateCore/dist/src/SurveyStatCollection.js\");\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\n/**\n * StatCollection for activated surveys. Should be used to track the SurveyIds\n * that have been recently shown to a user\n */\n// TODO (gachoi) Check if this applies - VSOBug: 1443010 One bad Stat object fails the entire serialization\nvar SurveyStatCollectionActivation = /** @class */ (function (_super) {\n __extends(SurveyStatCollectionActivation, _super);\n function SurveyStatCollectionActivation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Load from Json\n */\n SurveyStatCollectionActivation.fromJson = function (json) {\n var statCollection = new SurveyStatCollectionActivation();\n if (!json) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.SurveyStatCollectionActivation.FromJson.Failed, { ErrorMessage: \"Input json is null or empty.\" });\n return statCollection;\n }\n var readStats;\n try {\n readStats = JSON.parse(json);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.SurveyStatCollectionActivation.FromJson.Failed, { ErrorMessage: \"Json parsing failed. \" + e.toString() });\n return statCollection;\n }\n if (!statCollection.deserialize(readStats)) {\n return new SurveyStatCollectionActivation();\n }\n return statCollection;\n };\n /**\n * Convert to Json\n */\n SurveyStatCollectionActivation.toJson = function (object) {\n if (!object) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.SurveyStatCollectionActivation.ToJson.Failed, { ErrorMessage: \"Input json is null or empty.\" });\n object = new SurveyStatCollectionActivation();\n }\n return JSON.stringify(object);\n };\n /**\n * Add another SurveyStatCollectionActivation object\n */\n SurveyStatCollectionActivation.prototype.accumulate = function (other) {\n if (!other) {\n return;\n }\n var stats = other.getStats();\n // SurveyActivationStats accumulation simply overwrites any keys from 'other' into our collection\n for (var key in stats) {\n if (Object.prototype.hasOwnProperty.call(stats, key)) {\n this.addStats(key, stats[key]);\n }\n }\n };\n /**\n * Method to deserialize SurveyStatCollectionActivation\n * @param input: collection of SurveyStatCollectionActivation\n * Returns result of validation check\n */\n SurveyStatCollectionActivation.prototype.deserialize = function (input) {\n var rawStats = input.Surveys;\n var now = new Date();\n for (var key in rawStats) {\n if (Object.prototype.hasOwnProperty.call(rawStats, key)) {\n var newStat = new SurveyActivationStats();\n if (newStat.deserialize(rawStats[key]) && newStat.ExpirationTimeUtc > now) {\n this.addStats(key, newStat);\n }\n }\n }\n return this.validate();\n };\n /**\n * Validate the Surveys\n * Returns false if validation fails\n */\n SurveyStatCollectionActivation.prototype.validate = function () {\n return Utils.isObject(this.getStats());\n };\n return SurveyStatCollectionActivation;\n}(SurveyStatCollection_1.SurveyStatCollection));\nexports.SurveyStatCollectionActivation = SurveyStatCollectionActivation;\nvar SurveyActivationStatsProviderFactory = /** @class */ (function () {\n function SurveyActivationStatsProviderFactory() {\n }\n SurveyActivationStatsProviderFactory.make = function (fileBasedStorage, hostBasedStorage) {\n if (hostBasedStorage) {\n return new HostBasedSurveyActivationStatsProvider(fileBasedStorage, hostBasedStorage);\n }\n return new FileBasedSurveyActivationStatsProvider(fileBasedStorage);\n };\n return SurveyActivationStatsProviderFactory;\n}());\nexports.SurveyActivationStatsProviderFactory = SurveyActivationStatsProviderFactory;\nvar HostBasedSurveyActivationStatsProvider = /** @class */ (function () {\n function HostBasedSurveyActivationStatsProvider(fileBasedStorageProvider, hostBasedStorage) {\n if (!hostBasedStorage) {\n throw new Error(\"host-based storage must not be null\");\n }\n this.hostBasedStorage = hostBasedStorage;\n // file based provider is optional\n if (fileBasedStorageProvider) {\n this.fileBasedStorageProvider = new FileBasedSurveyActivationStatsProvider(fileBasedStorageProvider);\n }\n }\n // @Override\n HostBasedSurveyActivationStatsProvider.prototype.load = function () {\n var surveyStatsFromHost = this.getSurveyStatsFromHost();\n var surveyStatsFromFile = new SurveyStatCollectionActivation();\n if (this.fileBasedStorageProvider) {\n surveyStatsFromFile = this.fileBasedStorageProvider.load();\n }\n var surveyStatsCollections = StateProviderHelpers.MergeAndUpdateSurveyActivationStats(surveyStatsFromFile, surveyStatsFromHost);\n return surveyStatsCollections.find(0 /* Merged */);\n };\n // @Override\n HostBasedSurveyActivationStatsProvider.prototype.save = function (stats) {\n if (!stats) {\n return;\n }\n var statsFromHost = this.getSurveyStatsFromHost();\n var statCollection = StateProviderHelpers.MergeAndUpdateSurveyActivationStats(stats, statsFromHost);\n var toBeUpdatedStats = statCollection.find(1 /* ToBeUpdated */);\n var mergedStates = statCollection.find(0 /* Merged */);\n // call host based storage provider to save the delta\n if (toBeUpdatedStats) {\n var toBeUpdatedStatsDictionary = toBeUpdatedStats.getStats();\n for (var surveyId in toBeUpdatedStatsDictionary) {\n if (Object.prototype.hasOwnProperty.call(toBeUpdatedStatsDictionary, surveyId)) {\n var item = StateProviderHelpers.makeSettingItemValue(JSON.stringify(toBeUpdatedStatsDictionary[surveyId]));\n this.hostBasedStorage.upsertSettingItem(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats], surveyId, item);\n }\n }\n }\n // Write merged data to File\n if (this.fileBasedStorageProvider) {\n this.fileBasedStorageProvider.save(mergedStates);\n }\n };\n HostBasedSurveyActivationStatsProvider.prototype.getSurveyStatsFromHost = function () {\n var statsCollection = new SurveyStatCollectionActivation();\n var itemData = this.hostBasedStorage.readSettingList(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats]);\n var now = new Date();\n for (var surveyId in itemData) {\n if (!Object.prototype.hasOwnProperty.call(itemData, surveyId)) {\n continue;\n }\n var dataString = StateProviderHelpers.extractSettingItemValueSubString(itemData[surveyId]);\n var newStats = new SurveyActivationStats();\n try {\n var readStats = JSON.parse(dataString);\n newStats.deserialize(readStats);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.HostBasedSurveyActivationStatsProvider.GetSurveyStatsFromHost.Failed, { ErrorMessage: \"Json parsing/deserializing failed. \" + e.toString() + \". Input:\" + dataString });\n }\n if (newStats.ExpirationTimeUtc <= now) {\n // Delete survey stat from host storage if it's expired.\n this.hostBasedStorage.deleteSettingItem(floodgate_shared_typings_1.FloodgateStorageProviderFileType[floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats], surveyId);\n }\n else {\n statsCollection.addStats(surveyId, newStats);\n }\n }\n return statsCollection;\n };\n return HostBasedSurveyActivationStatsProvider;\n}());\nexports.HostBasedSurveyActivationStatsProvider = HostBasedSurveyActivationStatsProvider;\nvar FileBasedSurveyActivationStatsProvider = /** @class */ (function () {\n function FileBasedSurveyActivationStatsProvider(storage) {\n if (!storage) {\n throw new Error(\"storage must not be null\");\n }\n this.storage = storage;\n }\n // @Override\n FileBasedSurveyActivationStatsProvider.prototype.load = function () {\n var readString = this.storage.read(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats);\n if (!readString) {\n return new SurveyStatCollectionActivation();\n }\n return SurveyStatCollectionActivation.fromJson(readString);\n };\n // @Override\n FileBasedSurveyActivationStatsProvider.prototype.save = function (surveyStatCollectionActivation) {\n if (!surveyStatCollectionActivation) {\n return;\n }\n var writeString = SurveyStatCollectionActivation.toJson(surveyStatCollectionActivation);\n this.storage.write(floodgate_shared_typings_1.FloodgateStorageProviderFileType.SurveyActivationStats, writeString);\n };\n return FileBasedSurveyActivationStatsProvider;\n}());\nexports.FileBasedSurveyActivationStatsProvider = FileBasedSurveyActivationStatsProvider;\nvar SurveyActivationStats = /** @class */ (function () {\n function SurveyActivationStats() {\n this.SurveyLaunchCount = 0;\n this.SurveyLaunchCountPerSession = 0;\n }\n /**\n * Method to deserialize a JSON object to class object\n * @param input: JSON object\n * Returns result of validation check\n */\n SurveyActivationStats.prototype.deserialize = function (input) {\n var _a, _b;\n this.ActivationTimeUtc = input.ActivationTimeUtc;\n this.ExpirationTimeUtc = input.ExpirationTimeUtc;\n this.Type = input.Type;\n this.SurveyLaunchCount = (_a = input.SurveyLaunchCount) !== null && _a !== void 0 ? _a : 0;\n this.SurveyLaunchCountPerSession = (_b = input.SurveyLaunchCountPerSession) !== null && _b !== void 0 ? _b : 0;\n return this.validate();\n };\n /**\n * Method to call after deserialization to validate generated object.\n * Returns false if not valid.\n */\n SurveyActivationStats.prototype.validate = function () {\n // make it a date object if it's a valid UTC date time value\n if (Utils.isUtcDatetimeString(this.ActivationTimeUtc)) {\n this.ActivationTimeUtc = Utils.stringToDate(this.ActivationTimeUtc);\n }\n else {\n return false;\n }\n // make it a date object if it's a valid UTC date time value\n if (Utils.isUtcDatetimeString(this.ExpirationTimeUtc)) {\n this.ExpirationTimeUtc = Utils.stringToDate(this.ExpirationTimeUtc);\n }\n else {\n return false;\n }\n if (!Utils.isNumber(this.SurveyLaunchCount) ||\n !Utils.isNumber(this.SurveyLaunchCountPerSession)) {\n return false;\n }\n return Utils.isEnumValue(this.Type, floodgate_shared_typings_1.SurveyType);\n };\n return SurveyActivationStats;\n}());\nexports.SurveyActivationStats = SurveyActivationStats;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbi50cz9iM2QyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2S0FRMEM7QUFDMUMsbUdBQTZDO0FBQzdDLHFIQUFvRDtBQUNwRCxrSUFBK0Q7QUFDL0Qsb0lBQThEO0FBQzlELHFGQUFpQztBQUVqQzs7O0dBR0c7QUFDSCwyR0FBMkc7QUFDM0c7SUFBb0Qsa0RBQTJDO0lBQS9GOztJQXdGQSxDQUFDO0lBdkZBOztPQUVHO0lBQ1csdUNBQVEsR0FBdEIsVUFBdUIsSUFBWTtRQUNsQyxJQUFNLGNBQWMsR0FBRyxJQUFJLDhCQUE4QixFQUFFLENBQUM7UUFFNUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLGlDQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxTQUFTLENBQzdDLDBCQUFjLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLFlBQVksRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUM7WUFDbEgsT0FBTyxjQUFjLENBQUM7U0FDdEI7UUFFRCxJQUFJLFNBQXlDLENBQUM7UUFDOUMsSUFBSTtZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxSCxPQUFPLGNBQWMsQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sSUFBSSw4QkFBOEIsRUFBRSxDQUFDO1NBQzVDO1FBRUQsT0FB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SUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDcEU7YUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUM7WUFDMUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxFQUFFO1lBQ25ELE9BQU8sS0FBSyxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxxQ0FBVSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNGLDRCQUFDO0FBQUQsQ0FBQztBQWpEWSxzREFBcUIiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlIGFzIEZpbGVUeXBlLFxyXG5cdElEaWN0aW9uYXJ5LFxyXG5cdElGbG9vZGdhdGVTZXR0aW5nLFxyXG5cdElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrLFxyXG5cdElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsXHJcblx0SVNlcmlhbGl6YWJsZSxcclxuXHRTdXJ2ZXlUeXBlLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGbG9vZGdhdGVFbmdpbmUgfSBmcm9tIFwiLi9GbG9vZGdhdGVFbmdpbmVcIjtcclxuaW1wb3J0ICogYXMgU3RhdGVQcm92aWRlckhlbHBlcnMgZnJvbSBcIi4vU3RhdGVQcm92aWRlckhlbHBlcnNcIjtcclxuaW1wb3J0IHsgU3VydmV5U3RhdENvbGxlY3Rpb24gfSBmcm9tIFwiLi9TdXJ2ZXlTdGF0Q29sbGVjdGlvblwiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuLyoqXHJcbiAqIFN0YXRDb2xsZWN0aW9uIGZvciBhY3RpdmF0ZWQgc3VydmV5cy4gIFNob3VsZCBiZSB1c2VkIHRvIHRyYWNrIHRoZSBTdXJ2ZXlJZHNcclxuICogdGhhdCBoYXZlIGJlZW4gcmVjZW50bHkgc2hvd24gdG8gYSB1c2VyXHJcbiAqL1xyXG4vLyBUT0RPIChnYWNob2kpIENoZWNrIGlmIHRoaXMgYXBwbGllcyAtIFZTT0J1ZzogMTQ0MzAxMCBPbmUgYmFkIFN0YXQgb2JqZWN0IGZhaWxzIHRoZSBlbnRpcmUgc2VyaWFsaXphdGlvblxyXG5leHBvcnQgY2xhc3MgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uIGV4dGVuZHMgU3VydmV5U3RhdENvbGxlY3Rpb248U3VydmV5QWN0aXZhdGlvblN0YXRzPiBpbXBsZW1lbnRzIElTZXJpYWxpemFibGUge1xyXG5cdC8qKlxyXG5cdCAqIExvYWQgZnJvbSBKc29uXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyBmcm9tSnNvbihqc29uOiBzdHJpbmcpOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24ge1xyXG5cdFx0Y29uc3Qgc3RhdENvbGxlY3Rpb24gPSBuZXcgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uKCk7XHJcblxyXG5cdFx0aWYgKCFqc29uKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uLkZyb21Kc29uLkZhaWxlZCwgeyBFcnJvck1lc3NhZ2U6IFwiSW5wdXQganNvbiBpcyBudWxsIG9yIGVtcHR5LlwiIH0pO1xyXG5cdFx0XHRyZXR1cm4gc3RhdENvbGxlY3Rpb247XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHJlYWRTdGF0czogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmVhZFN0YXRzID0gSlNPTi5wYXJzZShqc29uKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5TdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24uRnJvbUpzb24uRmFpbGVkLCB7IEVycm9yTWVzc2FnZTogXCJKc29uIHBhcnNpbmcgZmFpbGVkLiBcIiArIGUudG9TdHJpbmcoKSB9KTtcclxuXHRcdFx0cmV0dXJuIHN0YXRDb2xsZWN0aW9uO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghc3RhdENvbGxlY3Rpb24uZGVzZXJpYWxpemUocmVhZFN0YXRzKSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBzdGF0Q29sbGVjdGlvbjtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENvbnZlcnQgdG8gSnNvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWMgdG9Kc29uKG9iamVjdDogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uKTogc3RyaW5nIHtcclxuXHRcdGlmICghb2JqZWN0KSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uLlRvSnNvbi5GYWlsZWQsIHsgRXJyb3JNZXNzYWdlOiBcIklucHV0IGpzb24gaXMgbnVsbCBvciBlbXB0eS5cIiB9KTtcclxuXHRcdFx0b2JqZWN0ID0gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeShvYmplY3QpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQWRkIGFub3RoZXIgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uIG9iamVjdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhY2N1bXVsYXRlKG90aGVyOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24pOiB2b2lkIHtcclxuXHRcdGlmICghb3RoZXIpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHN0YXRzOiBJRGljdGlvbmFyeTxTdXJ2ZXlBY3RpdmF0aW9uU3RhdHM+ID0gb3RoZXIuZ2V0U3RhdHMoKTtcclxuXHRcdC8vIFN1cnZleUFjdGl2YXRpb25TdGF0cyBhY2N1bXVsYXRpb24gc2ltcGx5IG92ZXJ3cml0ZXMgYW55IGtleXMgZnJvbSAnb3RoZXInIGludG8gb3VyIGNvbGxlY3Rpb25cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHN0YXRzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhdHMsIGtleSkpIHtcclxuXHRcdFx0XHR0aGlzLmFkZFN0YXRzKGtleSwgc3RhdHNba2V5XSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBkZXNlcmlhbGl6ZSBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb25cclxuXHQgKiBAcGFyYW0gaW5wdXQ6IGNvbGxlY3Rpb24gb2YgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uXHJcblx0ICogUmV0dXJucyByZXN1bHQgb2YgdmFsaWRhdGlvbiBjaGVja1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBkZXNlcmlhbGl6ZShpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcblx0XHRjb25zdCByYXdTdGF0czogSURpY3Rpb25hcnk8U3VydmV5QWN0aXZhdGlvblN0YXRzPiA9IGlucHV0LlN1cnZleXM7XHJcblx0XHRjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG5cclxuXHRcdGZvciAoY29uc3Qga2V5IGluIHJhd1N0YXRzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmF3U3RhdHMsIGtleSkpIHtcclxuXHRcdFx0XHRjb25zdCBuZXdTdGF0ID0gbmV3IFN1cnZleUFjdGl2YXRpb25TdGF0cygpO1xyXG5cclxuXHRcdFx0XHRpZiAobmV3U3RhdC5kZXNlcmlhbGl6ZShyYXdTdGF0c1trZXldKSAmJiBuZXdTdGF0LkV4cGlyYXRpb25UaW1lVXRjID4gbm93KSB7XHJcblx0XHRcdFx0XHR0aGlzLmFkZFN0YXRzKGtleSwgbmV3U3RhdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdGUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFZhbGlkYXRlIHRoZSBTdXJ2ZXlzXHJcblx0ICogUmV0dXJucyBmYWxzZSBpZiB2YWxpZGF0aW9uIGZhaWxzXHJcblx0ICovXHJcblx0cHVibGljIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIFV0aWxzLmlzT2JqZWN0KHRoaXMuZ2V0U3RhdHMoKSk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlciB7XHJcblx0bG9hZCgpOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb247XHJcblxyXG5cdHNhdmUoc3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24pOiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXJGYWN0b3J5IHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZmlsZUJhc2VkU3RvcmFnZTogSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlcixcclxuXHRcdGhvc3RCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrKTogSVN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyIHtcclxuXHRcdGlmIChob3N0QmFzZWRTdG9yYWdlKSB7XHJcblx0XHRcdHJldHVybiBuZXcgSG9zdEJhc2VkU3VydmV5QWN0aXZhdGlvblN0YXRzUHJvdmlkZXIoZmlsZUJhc2VkU3RvcmFnZSwgaG9zdEJhc2VkU3RvcmFnZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG5ldyBGaWxlQmFzZWRTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlcihmaWxlQmFzZWRTdG9yYWdlKTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBIb3N0QmFzZWRTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlciBpbXBsZW1lbnRzIElTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlciB7XHJcblx0cHJpdmF0ZSBmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXI6IEZpbGVCYXNlZFN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyO1xyXG5cdHByaXZhdGUgaG9zdEJhc2VkU3RvcmFnZTogSUZsb29kZ2F0ZVNldHRpbmdTdG9yYWdlQ2FsbGJhY2s7XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihmaWxlQmFzZWRTdG9yYWdlUHJvdmlkZXI6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXIsIGhvc3RCYXNlZFN0b3JhZ2U6IElGbG9vZGdhdGVTZXR0aW5nU3RvcmFnZUNhbGxiYWNrKSB7XHJcblx0XHRpZiAoIWhvc3RCYXNlZFN0b3JhZ2UpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiaG9zdC1iYXNlZCBzdG9yYWdlIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5ob3N0QmFzZWRTdG9yYWdlID0gaG9zdEJhc2VkU3RvcmFnZTtcclxuXHJcblx0XHQvLyBmaWxlIGJhc2VkIHByb3ZpZGVyIGlzIG9wdGlvbmFsXHJcblx0XHRpZiAoZmlsZUJhc2VkU3RvcmFnZVByb3ZpZGVyKSB7XHJcblx0XHRcdHRoaXMuZmlsZUJhc2VkU3RvcmFnZVByb3ZpZGVyID0gbmV3IEZpbGVCYXNlZFN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyKGZpbGVCYXNlZFN0b3JhZ2VQcm92aWRlcik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9hZCgpOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24ge1xyXG5cdFx0Y29uc3Qgc3VydmV5U3RhdHNGcm9tSG9zdDogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uID0gdGhpcy5nZXRTdXJ2ZXlTdGF0c0Zyb21Ib3N0KCk7XHJcblxyXG5cdFx0bGV0IHN1cnZleVN0YXRzRnJvbUZpbGU6IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbiA9IG5ldyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24oKTtcclxuXHRcdGlmICh0aGlzLmZpbGVCYXNlZFN0b3JhZ2VQcm92aWRlcikge1xyXG5cdFx0XHRzdXJ2ZXlTdGF0c0Zyb21GaWxlID0gdGhpcy5maWxlQmFzZWRTdG9yYWdlUHJvdmlkZXIubG9hZCgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHN1cnZleVN0YXRzQ29sbGVjdGlvbnMgPSBTdGF0ZVByb3ZpZGVySGVscGVycy5NZXJnZUFuZFVwZGF0ZVN1cnZleUFjdGl2YXRpb25TdGF0cyhzdXJ2ZXlTdGF0c0Zyb21GaWxlLCBzdXJ2ZXlTdGF0c0Zyb21Ib3N0KTtcclxuXHRcdHJldHVybiBzdXJ2ZXlTdGF0c0NvbGxlY3Rpb25zLmZpbmQoU3RhdGVQcm92aWRlckhlbHBlcnMuU3RhdGVMaXN0VHlwZS5NZXJnZWQpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIHNhdmUoc3RhdHM6IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbik6IHZvaWQge1xyXG5cdFx0aWYgKCFzdGF0cykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3RhdHNGcm9tSG9zdDogU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uID0gdGhpcy5nZXRTdXJ2ZXlTdGF0c0Zyb21Ib3N0KCk7XHJcblx0XHRjb25zdCBzdGF0Q29sbGVjdGlvbiA9IFN0YXRlUHJvdmlkZXJIZWxwZXJzLk1lcmdlQW5kVXBkYXRlU3VydmV5QWN0aXZhdGlvblN0YXRzKHN0YXRzLCBzdGF0c0Zyb21Ib3N0KTtcclxuXHRcdGNvbnN0IHRvQmVVcGRhdGVkU3RhdHM6IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbiA9IHN0YXRDb2xsZWN0aW9uLmZpbmQoU3RhdGVQcm92aWRlckhlbHBlcnMuU3RhdGVMaXN0VHlwZS5Ub0JlVXBkYXRlZCk7XHJcblx0XHRjb25zdCBtZXJnZWRTdGF0ZXM6IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbiA9IHN0YXRDb2xsZWN0aW9uLmZpbmQoU3RhdGVQcm92aWRlckhlbHBlcnMuU3RhdGVMaXN0VHlwZS5NZXJnZWQpO1xyXG5cclxuXHRcdC8vIGNhbGwgaG9zdCBiYXNlZCBzdG9yYWdlIHByb3ZpZGVyIHRvIHNhdmUgdGhlIGRlbHRhXHJcblx0XHRpZiAodG9CZVVwZGF0ZWRTdGF0cykge1xyXG5cdFx0XHRjb25zdCB0b0JlVXBkYXRlZFN0YXRzRGljdGlvbmFyeTogSURpY3Rpb25hcnk8U3VydmV5QWN0aXZhdGlvblN0YXRzPiA9IHRvQmVVcGRhdGVkU3RhdHMuZ2V0U3RhdHMoKTtcclxuXHRcdFx0Zm9yIChjb25zdCBzdXJ2ZXlJZCBpbiB0b0JlVXBkYXRlZFN0YXRzRGljdGlvbmFyeSkge1xyXG5cdFx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG9CZVVwZGF0ZWRTdGF0c0RpY3Rpb25hcnksIHN1cnZleUlkKSkge1xyXG5cdFx0XHRcdFx0Y29uc3QgaXRlbTogc3RyaW5nID0gU3RhdGVQcm92aWRlckhlbHBlcnMubWFrZVNldHRpbmdJdGVtVmFsdWUoXHJcblx0XHRcdFx0XHRcdEpTT04uc3RyaW5naWZ5KHRvQmVVcGRhdGVkU3RhdHNEaWN0aW9uYXJ5W3N1cnZleUlkXSkpO1xyXG5cclxuXHRcdFx0XHRcdHRoaXMuaG9zdEJhc2VkU3RvcmFnZS51cHNlcnRTZXR0aW5nSXRlbShGaWxlVHlwZVtGaWxlVHlwZS5TdXJ2ZXlBY3RpdmF0aW9uU3RhdHNdLFxyXG5cdFx0XHRcdFx0XHRzdXJ2ZXlJZCwgaXRlbSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gV3JpdGUgbWVyZ2VkIGRhdGEgdG8gRmlsZVxyXG5cdFx0aWYgKHRoaXMuZmlsZUJhc2VkU3RvcmFnZVByb3ZpZGVyKSB7XHJcblx0XHRcdHRoaXMuZmlsZUJhc2VkU3RvcmFnZVByb3ZpZGVyLnNhdmUobWVyZ2VkU3RhdGVzKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgZ2V0U3VydmV5U3RhdHNGcm9tSG9zdCgpOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24ge1xyXG5cdFx0Y29uc3Qgc3RhdHNDb2xsZWN0aW9uOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24gPSBuZXcgU3VydmV5U3RhdENvbGxlY3Rpb25BY3RpdmF0aW9uKCk7XHJcblx0XHRjb25zdCBpdGVtRGF0YTogSUZsb29kZ2F0ZVNldHRpbmcgPSB0aGlzLmhvc3RCYXNlZFN0b3JhZ2UucmVhZFNldHRpbmdMaXN0KEZpbGVUeXBlW0ZpbGVUeXBlLlN1cnZleUFjdGl2YXRpb25TdGF0c10pO1xyXG5cclxuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcblx0XHRmb3IgKGNvbnN0IHN1cnZleUlkIGluIGl0ZW1EYXRhKSB7XHJcblx0XHRcdGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0ZW1EYXRhLCBzdXJ2ZXlJZCkpIHtcclxuXHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgZGF0YVN0cmluZzogc3RyaW5nID0gU3RhdGVQcm92aWRlckhlbHBlcnMuZXh0cmFjdFNldHRpbmdJdGVtVmFsdWVTdWJTdHJpbmcoaXRlbURhdGFbc3VydmV5SWRdKTtcclxuXHRcdFx0Y29uc3QgbmV3U3RhdHM6IFN1cnZleUFjdGl2YXRpb25TdGF0cyA9IG5ldyBTdXJ2ZXlBY3RpdmF0aW9uU3RhdHMoKTtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRjb25zdCByZWFkU3RhdHM6IFN1cnZleUFjdGl2YXRpb25TdGF0cyA9IEpTT04ucGFyc2UoZGF0YVN0cmluZyk7XHJcblx0XHRcdFx0bmV3U3RhdHMuZGVzZXJpYWxpemUocmVhZFN0YXRzKTtcclxuXHRcdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5Ib3N0QmFzZWRTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNQcm92aWRlci5HZXRTdXJ2ZXlTdGF0c0Zyb21Ib3N0LkZhaWxlZCxcclxuXHRcdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBcIkpzb24gcGFyc2luZy9kZXNlcmlhbGl6aW5nIGZhaWxlZC4gXCIgKyBlLnRvU3RyaW5nKCkgKyBcIi4gIElucHV0OlwiICsgZGF0YVN0cmluZyB9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKG5ld1N0YXRzLkV4cGlyYXRpb25UaW1lVXRjIDw9IG5vdykge1xyXG5cdFx0XHRcdC8vIERlbGV0ZSBzdXJ2ZXkgc3RhdCBmcm9tIGhvc3Qgc3RvcmFnZSBpZiBpdCdzIGV4cGlyZWQuXHJcblx0XHRcdFx0dGhpcy5ob3N0QmFzZWRTdG9yYWdlLmRlbGV0ZVNldHRpbmdJdGVtKEZpbGVUeXBlW0ZpbGVUeXBlLlN1cnZleUFjdGl2YXRpb25TdGF0c10sIHN1cnZleUlkKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzdGF0c0NvbGxlY3Rpb24uYWRkU3RhdHMoc3VydmV5SWQsIG5ld1N0YXRzKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHN0YXRzQ29sbGVjdGlvbjtcclxuXHR9XHJcbn1cclxuZXhwb3J0IGNsYXNzIEZpbGVCYXNlZFN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyIGltcGxlbWVudHMgSVN1cnZleUFjdGl2YXRpb25TdGF0c1Byb3ZpZGVyIHtcclxuXHRwcml2YXRlIHN0b3JhZ2U6IElGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXI7XHJcblxyXG5cdHB1YmxpYyBjb25zdHJ1Y3RvcihzdG9yYWdlOiBJRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyKSB7XHJcblx0XHRpZiAoIXN0b3JhZ2UpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwic3RvcmFnZSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgbG9hZCgpOiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24ge1xyXG5cdFx0Y29uc3QgcmVhZFN0cmluZzogc3RyaW5nID0gdGhpcy5zdG9yYWdlLnJlYWQoRmlsZVR5cGUuU3VydmV5QWN0aXZhdGlvblN0YXRzKTtcclxuXHRcdGlmICghcmVhZFN0cmluZykge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24uZnJvbUpzb24ocmVhZFN0cmluZyk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgc2F2ZShzdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb246IFN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbik6IHZvaWQge1xyXG5cdFx0aWYgKCFzdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24pIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHdyaXRlU3RyaW5nOiBzdHJpbmcgPSBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkFjdGl2YXRpb24udG9Kc29uKHN1cnZleVN0YXRDb2xsZWN0aW9uQWN0aXZhdGlvbik7XHJcblx0XHR0aGlzLnN0b3JhZ2Uud3JpdGUoRmlsZVR5cGUuU3VydmV5QWN0aXZhdGlvblN0YXRzLCB3cml0ZVN0cmluZyk7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgU3VydmV5QWN0aXZhdGlvblN0YXRzIGltcGxlbWVudHMgSVNlcmlhbGl6YWJsZSB7XHJcblx0Ly8gVGhlIGZvbGxvd2luZyBwcm9wZXJ0eSBuYW1lcyBtYXRjaCBKU09OIHByb3BlcnR5IG5hbWVzIGZvciBwcm9wZXIgc2VyaWFsaXphdGlvbi9kZXNlcmlhbGl6YXRpb25cclxuXHRwdWJsaWMgRXhwaXJhdGlvblRpbWVVdGM6IERhdGU7XHJcblx0cHVibGljIEFjdGl2YXRpb25UaW1lVXRjOiBEYXRlO1xyXG5cdHB1YmxpYyBUeXBlOiBTdXJ2ZXlUeXBlO1xyXG5cdHB1YmxpYyBTdXJ2ZXlMYXVuY2hDb3VudCA9IDA7XHJcblx0cHVibGljIFN1cnZleUxhdW5jaENvdW50UGVyU2Vzc2lvbiA9IDA7XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBkZXNlcmlhbGl6ZSBhIEpTT04gb2JqZWN0IHRvIGNsYXNzIG9iamVjdFxyXG5cdCAqIEBwYXJhbSBpbnB1dDogSlNPTiBvYmplY3RcclxuXHQgKiBSZXR1cm5zIHJlc3VsdCBvZiB2YWxpZGF0aW9uIGNoZWNrXHJcblx0ICovXHJcblx0cHVibGljIGRlc2VyaWFsaXplKGlucHV0OiBhbnkpOiBib29sZWFuIHtcclxuXHRcdHRoaXMuQWN0aXZhdGlvblRpbWVVdGMgPSBpbnB1dC5BY3RpdmF0aW9uVGltZVV0YztcclxuXHRcdHRoaXMuRXhwaXJhdGlvblRpbWVVdGMgPSBpbnB1dC5FeHBpcmF0aW9uVGltZVV0YztcclxuXHRcdHRoaXMuVHlwZSA9IGlucHV0LlR5cGU7XHJcblx0XHR0aGlzLlN1cnZleUxhdW5jaENvdW50ID0gaW5wdXQuU3VydmV5TGF1bmNoQ291bnQgPz8gMDtcclxuXHRcdHRoaXMuU3VydmV5TGF1bmNoQ291bnRQZXJTZXNzaW9uID0gaW5wdXQuU3VydmV5TGF1bmNoQ291bnRQZXJTZXNzaW9uID8/IDA7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdGUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBjYWxsIGFmdGVyIGRlc2VyaWFsaXphdGlvbiB0byB2YWxpZGF0ZSBnZW5lcmF0ZWQgb2JqZWN0LlxyXG5cdCAqIFJldHVybnMgZmFsc2UgaWYgbm90IHZhbGlkLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdC8vIG1ha2UgaXQgYSBkYXRlIG9iamVjdCBpZiBpdCdzIGEgdmFsaWQgVVRDIGRhdGUgdGltZSB2YWx1ZVxyXG5cdFx0aWYgKFV0aWxzLmlzVXRjRGF0ZXRpbWVTdHJpbmcodGhpcy5BY3RpdmF0aW9uVGltZVV0YykpIHtcclxuXHRcdFx0dGhpcy5BY3RpdmF0aW9uVGltZVV0YyA9IFV0aWxzLnN0cmluZ1RvRGF0ZSh0aGlzLkFjdGl2YXRpb25UaW1lVXRjKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBtYWtlIGl0IGEgZGF0ZSBvYmplY3QgaWYgaXQncyBhIHZhbGlkIFVUQyBkYXRlIHRpbWUgdmFsdWVcclxuXHRcdGlmIChVdGlscy5pc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuRXhwaXJhdGlvblRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuRXhwaXJhdGlvblRpbWVVdGMgPSBVdGlscy5zdHJpbmdUb0RhdGUodGhpcy5FeHBpcmF0aW9uVGltZVV0Yyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFVdGlscy5pc051bWJlcih0aGlzLlN1cnZleUxhdW5jaENvdW50KSB8fFxyXG5cdFx0XHQhVXRpbHMuaXNOdW1iZXIodGhpcy5TdXJ2ZXlMYXVuY2hDb3VudFBlclNlc3Npb24pKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gVXRpbHMuaXNFbnVtVmFsdWUodGhpcy5UeXBlLCBTdXJ2ZXlUeXBlKTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyStatCollectionActivation.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/SurveyStatCollectionEventActivity.js": /*!**********************************************************************!*\ !*** ../FloodgateCore/dist/src/SurveyStatCollectionEventActivity.js ***! \**********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SurveyEventActivityStats = exports.SurveyStatCollectionEventActivity = void 0;\nvar Constants_1 = __webpack_require__(/*! ./Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ./FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar SurveyStatCollection_1 = __webpack_require__(/*! ./SurveyStatCollection */ \"../FloodgateCore/dist/src/SurveyStatCollection.js\");\nvar Utils = __webpack_require__(/*! ./Utils */ \"../FloodgateCore/dist/src/Utils.js\");\n/**\n * StatCollection for EventActivity counts. Should be used to store/merge\n * aggregate values between sessions tracking the same surveys/events\n * E.g. A survey that activates after 3 boots.\n */\n// TODO (gachoi) check the following - VSOBug: 1443010 One bad Stat object fails the entire serialization\nvar SurveyStatCollectionEventActivity = /** @class */ (function (_super) {\n __extends(SurveyStatCollectionEventActivity, _super);\n function SurveyStatCollectionEventActivity() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Load from Json\n */\n SurveyStatCollectionEventActivity.fromJson = function (json) {\n var statCollection = new SurveyStatCollectionEventActivity();\n if (!json) {\n return statCollection;\n }\n var readStats;\n try {\n readStats = JSON.parse(json);\n }\n catch (e) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.SurveyStatCollectionEventActivity.FromJson.Failed, { ErrorMessage: \"Json parsing failed. \" + e.toString() });\n return statCollection;\n }\n if (!statCollection.deserialize(readStats)) {\n return new SurveyStatCollectionEventActivity();\n }\n return statCollection;\n };\n /**\n * Convert to Json\n */\n SurveyStatCollectionEventActivity.toJson = function (object) {\n if (!object) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.SurveyStatCollectionEventActivity.ToJson.Failed, { ErrorMessage: \"Input json is null or empty.\" });\n object = new SurveyStatCollectionEventActivity();\n }\n return JSON.stringify(object);\n };\n /**\n * Add another SurveyStatCollectionEventActivity object\n */\n SurveyStatCollectionEventActivity.prototype.accumulate = function (other) {\n if (!other) {\n return;\n }\n var stats = other.getStats();\n // SurveyEventActivityStats accumulation simply overwrites any keys from 'other' into our collection\n for (var key in stats) {\n if (Object.prototype.hasOwnProperty.call(stats, key)) {\n var ourStats = this.getBySurveyId(key);\n // If it does not already exist\n if (!ourStats) {\n ourStats = new SurveyEventActivityStats();\n ourStats.Counts = [];\n this.addStats(key, ourStats);\n }\n ourStats.ExpirationTimeUtc = stats[key].ExpirationTimeUtc;\n // If for some reason the other counts array is larger, resize ourStats.counts\n if (ourStats.Counts.length < stats[key].Counts.length) {\n var resizedCounts = ourStats.Counts.slice();\n ourStats.Counts = resizedCounts;\n }\n for (var i = 0; i < stats[key].Counts.length; i++) {\n if (!ourStats.Counts[i]) {\n ourStats.Counts[i] = 0;\n }\n ourStats.Counts[i] += stats[key].Counts[i];\n }\n }\n }\n };\n /**\n * Method to deserialize SurveyStatCollectionEventActivity\n * @param input: collection of SurveyStatCollectionEventActivity\n * Returns result of validation check\n */\n SurveyStatCollectionEventActivity.prototype.deserialize = function (input) {\n var rawStats = input.Surveys;\n var now = new Date();\n for (var key in rawStats) {\n if (Object.prototype.hasOwnProperty.call(rawStats, key)) {\n var newStat = new SurveyEventActivityStats();\n if (newStat.deserialize(rawStats[key]) && newStat.ExpirationTimeUtc > now) {\n this.addStats(key, newStat);\n }\n }\n }\n return this.validate();\n };\n /**\n * Validate the Surveys\n * Returns false if validation fails\n */\n SurveyStatCollectionEventActivity.prototype.validate = function () {\n return Utils.isObject(this.getStats());\n };\n return SurveyStatCollectionEventActivity;\n}(SurveyStatCollection_1.SurveyStatCollection));\nexports.SurveyStatCollectionEventActivity = SurveyStatCollectionEventActivity;\nvar SurveyEventActivityStats = /** @class */ (function () {\n function SurveyEventActivityStats() {\n }\n /**\n * Method to deserialize a JSON object to class object\n * @param input: JSON object\n * Returns result of validation check\n */\n SurveyEventActivityStats.prototype.deserialize = function (input) {\n this.ExpirationTimeUtc = input.ExpirationTimeUtc;\n this.Counts = input.Counts;\n return this.validate();\n };\n /**\n * Method to call after deserialization to validate generated object.\n * Returns false if not valid.\n */\n SurveyEventActivityStats.prototype.validate = function () {\n if (!this.Counts) {\n return false;\n }\n for (var i = 0; i < this.Counts.length; i++) {\n var val = this.Counts[i];\n if (!Utils.isNumber(val)) {\n return false;\n }\n if (val < 0) {\n this.Counts[i] = 0;\n }\n }\n // make it a date object if it's a valid UTC date time value\n if (Utils.isUtcDatetimeString(this.ExpirationTimeUtc)) {\n this.ExpirationTimeUtc = Utils.stringToDate(this.ExpirationTimeUtc);\n }\n else {\n return false;\n }\n return true;\n };\n return SurveyEventActivityStats;\n}());\nexports.SurveyEventActivityStats = SurveyEventActivityStats;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eS50cz83ODA5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxtR0FBNkM7QUFDN0MscUhBQW9EO0FBQ3BELG9JQUE4RDtBQUM5RCxxRkFBaUM7QUFFakM7Ozs7R0FJRztBQUNILHlHQUF5RztBQUN6RztJQUF1RCxxREFBK0M7SUFBdEc7O0lBZ0hBLENBQUM7SUE5R0E7O09BRUc7SUFDVywwQ0FBUSxHQUF0QixVQUF1QixJQUFZO1FBQ2xDLElBQU0sY0FBYyxHQUFHLElBQUksaUNBQWlDLEVBQUUsQ0FBQztRQUUvRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1YsT0FBTyxjQUFjLENBQUM7U0FDdEI7UUFFRCxJQUFJLFNBQTRDLENBQUM7UUFDakQsSUFBSTtZQUNILFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQ2hFLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0QsT0FBTyxjQUFjLENBQUM7U0FDdEI7UUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMzQyxPQUFPLElBQUksaUNBQWlDLEVBQUUsQ0FBQztTQUMvQztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNXLHdDQUFNLEdBQXBCLFVBQXFCLE1BQXlDO1FBQzdELElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWixpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLGlD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QUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFDRiwrQkFBQztBQUFELENBQUM7QUEvQ1ksNERBQXdCIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvZGlzdC9zcmMvU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURpY3Rpb25hcnksIElTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMsIElTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkgfSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0IHsgVGVsZW1ldHJ5RXZlbnQgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4vRmxvb2RnYXRlRW5naW5lXCI7XHJcbmltcG9ydCB7IFN1cnZleVN0YXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vU3VydmV5U3RhdENvbGxlY3Rpb25cIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4vVXRpbHNcIjtcclxuXHJcbi8qKlxyXG4gKiBTdGF0Q29sbGVjdGlvbiBmb3IgRXZlbnRBY3Rpdml0eSBjb3VudHMuICBTaG91bGQgYmUgdXNlZCB0byBzdG9yZS9tZXJnZVxyXG4gKiBhZ2dyZWdhdGUgdmFsdWVzIGJldHdlZW4gc2Vzc2lvbnMgdHJhY2tpbmcgdGhlIHNhbWUgc3VydmV5cy9ldmVudHNcclxuICogRS5nLiBBIHN1cnZleSB0aGF0IGFjdGl2YXRlcyBhZnRlciAzIGJvb3RzLlxyXG4gKi9cclxuLy8gVE9ETyAoZ2FjaG9pKSBjaGVjayB0aGUgZm9sbG93aW5nIC0gVlNPQnVnOiAxNDQzMDEwIE9uZSBiYWQgU3RhdCBvYmplY3QgZmFpbHMgdGhlIGVudGlyZSBzZXJpYWxpemF0aW9uXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkgZXh0ZW5kcyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbjxJU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzPiBpbXBsZW1lbnRzIElTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkge1xyXG5cclxuXHQvKipcclxuXHQgKiBMb2FkIGZyb20gSnNvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdGF0aWMgZnJvbUpzb24oanNvbjogc3RyaW5nKTogU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5IHtcclxuXHRcdGNvbnN0IHN0YXRDb2xsZWN0aW9uID0gbmV3IFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eSgpO1xyXG5cclxuXHRcdGlmICghanNvbikge1xyXG5cdFx0XHRyZXR1cm4gc3RhdENvbGxlY3Rpb247XHJcblx0XHR9XHJcblxyXG5cdFx0bGV0IHJlYWRTdGF0czogU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5O1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmVhZFN0YXRzID0gSlNPTi5wYXJzZShqc29uKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5TdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkuRnJvbUpzb24uRmFpbGVkLFxyXG5cdFx0XHRcdHsgRXJyb3JNZXNzYWdlOiBcIkpzb24gcGFyc2luZyBmYWlsZWQuIFwiICsgZS50b1N0cmluZygpIH0pO1xyXG5cdFx0XHRyZXR1cm4gc3RhdENvbGxlY3Rpb247XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFzdGF0Q29sbGVjdGlvbi5kZXNlcmlhbGl6ZShyZWFkU3RhdHMpKSB7XHJcblx0XHRcdHJldHVybiBuZXcgU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHN0YXRDb2xsZWN0aW9uO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydCB0byBKc29uXHJcblx0ICovXHJcblx0cHVibGljIHN0YXRpYyB0b0pzb24ob2JqZWN0OiBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkpOiBzdHJpbmcge1xyXG5cdFx0aWYgKCFvYmplY3QpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FdmVudChcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5TdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkuVG9Kc29uLkZhaWxlZCxcclxuXHRcdFx0XHR7IEVycm9yTWVzc2FnZTogXCJJbnB1dCBqc29uIGlzIG51bGwgb3IgZW1wdHkuXCIgfSk7XHJcblx0XHRcdG9iamVjdCA9IG5ldyBTdXJ2ZXlTdGF0Q29sbGVjdGlvbkV2ZW50QWN0aXZpdHkoKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkob2JqZWN0KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEFkZCBhbm90aGVyIFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eSBvYmplY3RcclxuXHQgKi9cclxuXHRwdWJsaWMgYWNjdW11bGF0ZShvdGhlcjogU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5KTogdm9pZCB7XHJcblx0XHRpZiAoIW90aGVyKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzdGF0czogSURpY3Rpb25hcnk8SVN1cnZleUV2ZW50QWN0aXZpdHlTdGF0cz4gPSBvdGhlci5nZXRTdGF0cygpO1xyXG5cdFx0Ly8gU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzIGFjY3VtdWxhdGlvbiBzaW1wbHkgb3ZlcndyaXRlcyBhbnkga2V5cyBmcm9tICdvdGhlcicgaW50byBvdXIgY29sbGVjdGlvblxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gc3RhdHMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGF0cywga2V5KSkge1xyXG5cdFx0XHRcdGxldCBvdXJTdGF0czogU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzID0gdGhpcy5nZXRCeVN1cnZleUlkKGtleSk7XHJcblxyXG5cdFx0XHRcdC8vIElmIGl0IGRvZXMgbm90IGFscmVhZHkgZXhpc3RcclxuXHRcdFx0XHRpZiAoIW91clN0YXRzKSB7XHJcblx0XHRcdFx0XHRvdXJTdGF0cyA9IG5ldyBTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMoKTtcclxuXHRcdFx0XHRcdG91clN0YXRzLkNvdW50cyA9IFtdO1xyXG5cdFx0XHRcdFx0dGhpcy5hZGRTdGF0cyhrZXksIG91clN0YXRzKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdG91clN0YXRzLkV4cGlyYXRpb25UaW1lVXRjID0gc3RhdHNba2V5XS5FeHBpcmF0aW9uVGltZVV0YztcclxuXHJcblx0XHRcdFx0Ly8gSWYgZm9yIHNvbWUgcmVhc29uIHRoZSBvdGhlciBjb3VudHMgYXJyYXkgaXMgbGFyZ2VyLCByZXNpemUgb3VyU3RhdHMuY291bnRzXHJcblx0XHRcdFx0aWYgKG91clN0YXRzLkNvdW50cy5sZW5ndGggPCBzdGF0c1trZXldLkNvdW50cy5sZW5ndGgpIHtcclxuXHRcdFx0XHRcdGNvbnN0IHJlc2l6ZWRDb3VudHM6IG51bWJlcltdID0gb3VyU3RhdHMuQ291bnRzLnNsaWNlKCk7XHJcblx0XHRcdFx0XHRvdXJTdGF0cy5Db3VudHMgPSByZXNpemVkQ291bnRzO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0c1trZXldLkNvdW50cy5sZW5ndGg7IGkrKykge1xyXG5cdFx0XHRcdFx0aWYgKCFvdXJTdGF0cy5Db3VudHNbaV0pIHtcclxuXHRcdFx0XHRcdFx0b3VyU3RhdHMuQ291bnRzW2ldID0gMDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRvdXJTdGF0cy5Db3VudHNbaV0gKz0gc3RhdHNba2V5XS5Db3VudHNbaV07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBNZXRob2QgdG8gZGVzZXJpYWxpemUgU3VydmV5U3RhdENvbGxlY3Rpb25FdmVudEFjdGl2aXR5XHJcblx0ICogQHBhcmFtIGlucHV0OiBjb2xsZWN0aW9uIG9mIFN1cnZleVN0YXRDb2xsZWN0aW9uRXZlbnRBY3Rpdml0eVxyXG5cdCAqIFJldHVybnMgcmVzdWx0IG9mIHZhbGlkYXRpb24gY2hlY2tcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG5cdFx0Y29uc3QgcmF3U3RhdHM6IElEaWN0aW9uYXJ5PElTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHM+ID0gaW5wdXQuU3VydmV5cztcclxuXHRcdGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gcmF3U3RhdHMpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyYXdTdGF0cywga2V5KSkge1xyXG5cdFx0XHRcdGNvbnN0IG5ld1N0YXQgPSBuZXcgU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzKCk7XHJcblxyXG5cdFx0XHRcdGlmIChuZXdTdGF0LmRlc2VyaWFsaXplKHJhd1N0YXRzW2tleV0pICYmIG5ld1N0YXQuRXhwaXJhdGlvblRpbWVVdGMgPiBub3cpIHtcclxuXHRcdFx0XHRcdHRoaXMuYWRkU3RhdHMoa2V5LCBuZXdTdGF0KTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0ZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVmFsaWRhdGUgdGhlIFN1cnZleXNcclxuXHQgKiBSZXR1cm5zIGZhbHNlIGlmIHZhbGlkYXRpb24gZmFpbHNcclxuXHQgKi9cclxuXHRwdWJsaWMgdmFsaWRhdGUoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gVXRpbHMuaXNPYmplY3QodGhpcy5nZXRTdGF0cygpKTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHMgaW1wbGVtZW50cyBJU3VydmV5RXZlbnRBY3Rpdml0eVN0YXRzIHtcclxuXHQvLyBUaGUgZm9sbG93aW5nIHByb3BlcnR5IG5hbWVzIG1hdGNoIEpTT04gcHJvcGVydHkgbmFtZXMgZm9yIHByb3BlciBzZXJpYWxpemF0aW9uL2Rlc2VyaWFsaXphdGlvblxyXG5cdHB1YmxpYyBFeHBpcmF0aW9uVGltZVV0YzogRGF0ZTtcclxuXHRwdWJsaWMgQ291bnRzOiBudW1iZXJbXTtcclxuXHJcblx0LyoqXHJcblx0ICogTWV0aG9kIHRvIGRlc2VyaWFsaXplIGEgSlNPTiBvYmplY3QgdG8gY2xhc3Mgb2JqZWN0XHJcblx0ICogQHBhcmFtIGlucHV0OiBKU09OIG9iamVjdFxyXG5cdCAqIFJldHVybnMgcmVzdWx0IG9mIHZhbGlkYXRpb24gY2hlY2tcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVzZXJpYWxpemUoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG5cdFx0dGhpcy5FeHBpcmF0aW9uVGltZVV0YyA9IGlucHV0LkV4cGlyYXRpb25UaW1lVXRjO1xyXG5cdFx0dGhpcy5Db3VudHMgPSBpbnB1dC5Db3VudHM7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMudmFsaWRhdGUoKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIE1ldGhvZCB0byBjYWxsIGFmdGVyIGRlc2VyaWFsaXphdGlvbiB0byB2YWxpZGF0ZSBnZW5lcmF0ZWQgb2JqZWN0LlxyXG5cdCAqIFJldHVybnMgZmFsc2UgaWYgbm90IHZhbGlkLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHRcdGlmICghdGhpcy5Db3VudHMpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5Db3VudHMubGVuZ3RoOyBpKyspIHtcclxuXHRcdFx0Y29uc3QgdmFsOiBudW1iZXIgPSB0aGlzLkNvdW50c1tpXTtcclxuXHJcblx0XHRcdGlmICghVXRpbHMuaXNOdW1iZXIodmFsKSkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHZhbCA8IDApIHtcclxuXHRcdFx0XHR0aGlzLkNvdW50c1tpXSA9IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBtYWtlIGl0IGEgZGF0ZSBvYmplY3QgaWYgaXQncyBhIHZhbGlkIFVUQyBkYXRlIHRpbWUgdmFsdWVcclxuXHRcdGlmIChVdGlscy5pc1V0Y0RhdGV0aW1lU3RyaW5nKHRoaXMuRXhwaXJhdGlvblRpbWVVdGMpKSB7XHJcblx0XHRcdHRoaXMuRXhwaXJhdGlvblRpbWVVdGMgPSBVdGlscy5zdHJpbmdUb0RhdGUodGhpcy5FeHBpcmF0aW9uVGltZVV0Yyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/SurveyStatCollectionEventActivity.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/FpsSurvey.js": /*!******************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/FpsSurvey.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CommentComponent_1 = __webpack_require__(/*! ../SurveyComponents/CommentComponent */ \"../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js\");\nvar CVSurveyComponent_1 = __webpack_require__(/*! ../SurveyComponents/CVSurveyComponent */ \"../FloodgateCore/dist/src/SurveyComponents/CVSurveyComponent.js\");\nvar MultipleChoiceComponent_1 = __webpack_require__(/*! ../SurveyComponents/MultipleChoiceComponent */ \"../FloodgateCore/dist/src/SurveyComponents/MultipleChoiceComponent.js\");\nvar PromptComponent_1 = __webpack_require__(/*! ../SurveyComponents/PromptComponent */ \"../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js\");\nvar RatingComponent_1 = __webpack_require__(/*! ../SurveyComponents/RatingComponent */ \"../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey_1 = __webpack_require__(/*! ./Survey */ \"../FloodgateCore/dist/src/Surveys/Survey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ./SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar isNOU = Utils.isNOU;\nvar FpsSurvey = /** @class */ (function (_super) {\n __extends(FpsSurvey, _super);\n function FpsSurvey(data) {\n var _a, _b, _c, _d, _e;\n var _this = _super.call(this) || this;\n if (isNOU(data)) {\n throw new Error(\"data must not be null\");\n }\n _this.surveyInfo = new SurveyDataSource_1.default(data.baseData);\n _this.contentValid = (!Utils.isNOU((_a = data.promptData) === null || _a === void 0 ? void 0 : _a.question) && !Utils.isNOU((_b = data.promptData) === null || _b === void 0 ? void 0 : _b.title)) &&\n !Utils.isNOU((_c = data.ratingData) === null || _c === void 0 ? void 0 : _c.question) && !Utils.isNOU((_d = data.ratingData) === null || _d === void 0 ? void 0 : _d.ratingValuesAscending) &&\n !Utils.isNOU((_e = data.commentData) === null || _e === void 0 ? void 0 : _e.question);\n // Taking in the UxSchema if possible\n if (data.uxSchema) {\n _this.setUxSchema(data.uxSchema);\n }\n // Otherwise, fallback to static content\n if (_this.contentValid) {\n _this.prompt = new PromptComponent_1.default(data.promptData);\n _this.question = data.commentData ? (new CommentComponent_1.default(data.commentData)) : null;\n _this.rating = data.ratingData ? (new RatingComponent_1.default(data.ratingData)) : null;\n _this.multipleChoice = data.multipleChoiceData ? (new MultipleChoiceComponent_1.default(data.multipleChoiceData)) : null;\n _this.cvSurvey = data.cvSurveyData ? (new CVSurveyComponent_1.default(data.cvSurveyData)) : null;\n }\n return _this;\n }\n FpsSurvey.make = function (data) {\n try {\n return new FpsSurvey(data);\n }\n catch (e) {\n return null;\n }\n };\n FpsSurvey.makeFps = function (baseData, sp, surveyModel) {\n if (isNOU(baseData) || isNOU(sp) || isNOU(surveyModel)) {\n return null;\n }\n var ratingValuesAscending = [];\n var availableOptions = [];\n var content = surveyModel.content;\n var contentValid = true;\n // Either UxSchema or Prompt/Content must be in the survey\n // In case of Prompt/Content, Prompt is required and at least one of the other components are required\n if (isNOU(content) || isNOU(content.prompt) ||\n (isNOU(content.rating) && isNOU(content.multipleChoice) &&\n isNOU(content.comment))) {\n contentValid = false;\n if (!surveyModel.uxSchema) {\n return null;\n }\n }\n var data = new FpsSurvey.FpsSurveyData();\n data.baseData = baseData;\n data.uxSchema = surveyModel.uxSchema;\n if (contentValid) {\n data.promptData = new PromptComponent_1.default.PromptComponentData();\n data.promptData.title = sp.getCustomString(content.prompt.title);\n data.promptData.question = sp.getCustomString(content.prompt.question);\n data.promptData.yesButtonLabel = sp.getCustomString(content.prompt.yesLabel);\n data.promptData.noButtonLabel = sp.getCustomString(content.prompt.noLabel);\n if (isNOU(data.promptData.title)\n || isNOU(data.promptData.question)\n || isNOU(data.promptData.yesButtonLabel)\n || isNOU(data.promptData.noButtonLabel)) {\n return null;\n }\n if (content.rating) {\n data.ratingData = new RatingComponent_1.default.RatingComponentData();\n data.ratingData.question = sp.getCustomString(content.rating.question);\n data.ratingData.isZeroBased = content.rating.isZeroBased;\n for (var _i = 0, _a = content.rating.ratingValuesAscending; _i < _a.length; _i++) {\n var value = _a[_i];\n var customString = sp.getCustomString(value);\n if (isNOU(customString)) {\n return null;\n }\n ratingValuesAscending.push(customString);\n }\n data.ratingData.ratingValuesAscending = ratingValuesAscending;\n if (isNOU(data.ratingData.question)\n || isNOU(data.ratingData.ratingValuesAscending)) {\n return null;\n }\n }\n if (content.multipleChoice) {\n data.multipleChoiceData = new MultipleChoiceComponent_1.default.MultipleChoiceComponentData();\n data.multipleChoiceData.question = sp.getCustomString(content.multipleChoice.question);\n data.multipleChoiceData.minNumberOfSelectedOptions = content.multipleChoice.minNumberOfSelectedOptions;\n data.multipleChoiceData.maxNumberOfSelectedOptions = content.multipleChoice.maxNumberOfSelectedOptions;\n for (var _b = 0, _c = content.multipleChoice.availableOptions; _b < _c.length; _b++) {\n var value = _c[_b];\n var customString = sp.getCustomString(value);\n if (isNOU(customString)) {\n return null;\n }\n availableOptions.push(customString);\n }\n data.multipleChoiceData.availableOptions = availableOptions;\n if (isNOU(data.multipleChoiceData.question)\n || isNOU(data.multipleChoiceData.availableOptions)) {\n return null;\n }\n }\n if (content.comment) {\n data.commentData = new CommentComponent_1.default.CommentComponentData();\n data.commentData.question = sp.getCustomString(content.comment.question);\n if (isNOU(data.commentData.question)) {\n return null;\n }\n }\n // cvsurvey data is not required on all surveys.\n if (content.cvSurvey) {\n data.cvSurveyData = new CVSurveyComponent_1.default.CVSurveyComponentData();\n data.cvSurveyData.customerVoiceFormId = content.cvSurvey.customerVoiceFormId;\n if (isNOU(data.cvSurveyData.customerVoiceFormId)) {\n return null;\n }\n }\n }\n return this.make(data);\n };\n // @Override\n FpsSurvey.prototype.getType = function () {\n return floodgate_shared_typings_1.SurveyType.Fps;\n };\n // @Override\n FpsSurvey.prototype.getSurveyInfo = function () {\n return this.surveyInfo;\n };\n // @Override\n FpsSurvey.prototype.getCommentComponent = function () {\n return this.question;\n };\n // @Override\n FpsSurvey.prototype.getPromptComponent = function () {\n return this.prompt;\n };\n // @Override\n FpsSurvey.prototype.getRatingComponent = function () {\n return this.rating;\n };\n // @Override\n FpsSurvey.prototype.getMultipleChoiceComponent = function () {\n return this.multipleChoice;\n };\n FpsSurvey.prototype.getCVSurveyComponent = function () {\n return this.cvSurvey;\n };\n // @Override\n FpsSurvey.prototype.getTags = function () {\n return this.surveyInfo.getTags();\n };\n // @Override\n FpsSurvey.prototype.getComponent = function (componentType) {\n switch (componentType) {\n case \"Comment\" /* Comment */:\n return this.getCommentComponent();\n case \"Prompt\" /* Prompt */:\n return this.getPromptComponent();\n case \"Rating\" /* Rating */:\n return this.getRatingComponent();\n case \"MultipleChoice\" /* MultipleChoice */:\n return this.getMultipleChoiceComponent();\n case \"CVSurvey\" /* CVSurvey */:\n return this.getCVSurveyComponent();\n default:\n return null;\n }\n };\n // @Override\n FpsSurvey.prototype.getDomElements = function (doc) {\n if (isNOU(doc)) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_FPS_TAGNAME);\n this.getSurveyInfo().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n this.getCommentComponent().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n if (this.getRatingComponent()) {\n this.getRatingComponent().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n }\n if (this.getMultipleChoiceComponent()) {\n this.getMultipleChoiceComponent().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n }\n return [element];\n };\n // @Override\n FpsSurvey.prototype.getJsonElements = function () {\n var _a;\n var result = {};\n result = Utils.overrideValues(this.getSurveyInfo().getJsonElements(), result);\n result[floodgate_shared_typings_1.JSON_APPLICATION_KEYNAME] = {};\n result[floodgate_shared_typings_1.JSON_APPLICATION_KEYNAME][floodgate_shared_typings_1.JSON_EXTENDEDMANIFESTDATA_KEYNAME] =\n JSON.stringify((_a = {},\n _a[floodgate_shared_typings_1.JSON_SURVEYSTRINGS_KEYNAME] = this.makeSurveyStrings(),\n _a[floodgate_shared_typings_1.JSON_SURVEYSPECIFICDATA_KEYNAME] = this.makeResponseString(),\n _a));\n return result;\n };\n // @Override\n FpsSurvey.prototype.isContentValid = function () {\n return this.contentValid;\n };\n // Makes the string to send to Manifest respecting the components present in the survey\n FpsSurvey.prototype.makeResponseString = function () {\n var response = {};\n if (this.question) {\n response[floodgate_shared_typings_1.JSON_COMMENT_KEYNAME] = [this.getCommentComponent().getSubmittedText()];\n }\n if (this.multipleChoice) {\n response[floodgate_shared_typings_1.JSON_MULTIPLECHOICE_KEYNAME] =\n [this.getMultipleChoiceComponent().getOptionSelectedStates()];\n }\n if (this.rating) {\n response[floodgate_shared_typings_1.JSON_RATING_KEYNAME] = [\n {\n numberOfOptions: this.getRatingComponent().getRatingValuesAscending().length,\n selectedRating: this.getRatingComponent().getSelectedRatingIndex(),\n }\n ];\n }\n return JSON.stringify(response);\n };\n // Makes the string to send to Manifest respecting the components present in the survey\n FpsSurvey.prototype.makeSurveyStrings = function () {\n var actualStrings = {};\n if (this.prompt) {\n actualStrings[floodgate_shared_typings_1.JSON_PROMPT_KEYNAME] = this.prompt.getComponentJson();\n }\n if (this.rating) {\n actualStrings[floodgate_shared_typings_1.JSON_RATING_KEYNAME] = [this.rating.getComponentJson()];\n }\n if (this.question) {\n actualStrings[floodgate_shared_typings_1.JSON_COMMENT_KEYNAME] = [this.question.getComponentJson()];\n }\n if (this.multipleChoice) {\n actualStrings[floodgate_shared_typings_1.JSON_MULTIPLECHOICE_KEYNAME] = [this.multipleChoice.getComponentJson()];\n }\n return JSON.stringify(actualStrings);\n };\n return FpsSurvey;\n}(Survey_1.Survey));\n(function (FpsSurvey) {\n /**\n * Data required for a Fps Survey\n */\n var FpsSurveyData = /** @class */ (function () {\n function FpsSurveyData() {\n }\n return FpsSurveyData;\n }());\n FpsSurvey.FpsSurveyData = FpsSurveyData;\n})(FpsSurvey || (FpsSurvey = {}));\nexports.default = FpsSurvey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvRnBzU3VydmV5LnRzPzIwYzEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNktBaUIwQztBQUUxQywySkFBb0U7QUFDcEUsOEpBQXNFO0FBQ3RFLGdMQUFrRjtBQUNsRix3SkFBa0U7QUFDbEUsd0pBQWtFO0FBQ2xFLHNGQUFrQztBQUNsQyxrR0FBa0M7QUFDbEMsZ0lBQWtEO0FBRTFDLFNBQUssR0FBSyxLQUFLLE1BQVYsQ0FBVztBQUV4QjtJQUF3Qiw2QkFBTTtJQW1JN0IsbUJBQW9CLElBQTZCOztRQUFqRCxZQUNDLGlCQUFPLFNBdUJQO1FBdEJBLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUVELEtBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsS0FBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQUMsSUFBSSxDQUFDLFVBQVUsMENBQUUsS0FBSyxDQUFDLENBQUM7WUFDckcsQ0FBQyxLQUFLLENBQUMsS0FBSyxPQUFDLElBQUksQ0FBQyxVQUFVLDBDQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRSxxQkFBcUIsQ0FBQztZQUMvRixDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQUMsSUFBSSxDQUFDLFdBQVcsMENBQUUsUUFBUSxDQUFDLENBQUM7UUFFekMscUNBQXFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENB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Q29udGVudCI6WyJpbXBvcnQge1xyXG5cdERPTV9GUFNfVEFHTkFNRSxcclxuXHRJRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIsXHJcblx0SUZwc1N1cnZleSxcclxuXHRJU3VydmV5Q29tcG9uZW50LFxyXG5cdElTdXJ2ZXlJbmZvLFxyXG5cdElVeFNjaGVtYSxcclxuXHRKU09OX0FQUExJQ0FUSU9OX0tFWU5BTUUsXHJcblx0SlNPTl9DT01NRU5UX0tFWU5BTUUsXHJcblx0SlNPTl9FWFRFTkRFRE1BTklGRVNUREFUQV9LRVlOQU1FLFxyXG5cdEpTT05fTVVMVElQTEVDSE9JQ0VfS0VZTkFNRSxcclxuXHRKU09OX1BST01QVF9LRVlOQU1FLFxyXG5cdEpTT05fUkFUSU5HX0tFWU5BTUUsXHJcblx0SlNPTl9TVVJWRVlTUEVDSUZJQ0RBVEFfS0VZTkFNRSxcclxuXHRKU09OX1NVUlZFWVNUUklOR1NfS0VZTkFNRSxcclxuXHRTdXJ2ZXlDb21wb25lbnRUeXBlLFxyXG5cdFN1cnZleVR5cGUsXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IENhbXBhaWduU3VydmV5Q29udGVudCwgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB9IGZyb20gXCIuLi9DYW1wYWlnbi9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlclwiO1xyXG5pbXBvcnQgQ29tbWVudENvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9Db21tZW50Q29tcG9uZW50XCI7XHJcbmltcG9ydCBDVlN1cnZleUNvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9DVlN1cnZleUNvbXBvbmVudFwiO1xyXG5pbXBvcnQgTXVsdGlwbGVDaG9pY2VDb21wb25lbnQgZnJvbSBcIi4uL1N1cnZleUNvbXBvbmVudHMvTXVsdGlwbGVDaG9pY2VDb21wb25lbnRcIjtcclxuaW1wb3J0IFByb21wdENvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9Qcm9tcHRDb21wb25lbnRcIjtcclxuaW1wb3J0IFJhdGluZ0NvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9SYXRpbmdDb21wb25lbnRcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCB7IFN1cnZleSB9IGZyb20gXCIuL1N1cnZleVwiO1xyXG5pbXBvcnQgU3VydmV5RGF0YVNvdXJjZSBmcm9tIFwiLi9TdXJ2ZXlEYXRhU291cmNlXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VIH0gPSBVdGlscztcclxuXHJcbmNsYXNzIEZwc1N1cnZleSBleHRlbmRzIFN1cnZleSBpbXBsZW1lbnRzIElGcHNTdXJ2ZXkge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBGcHNTdXJ2ZXkuRnBzU3VydmV5RGF0YSk6IElGcHNTdXJ2ZXkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBGcHNTdXJ2ZXkoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBtYWtlRnBzKGJhc2VEYXRhOiBTdXJ2ZXlEYXRhU291cmNlLlN1cnZleURhdGFTb3VyY2VEYXRhLCBzcDogSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdFx0c3VydmV5TW9kZWw6IENhbXBhaWduU3VydmV5VGVtcGxhdGUpOiBJRnBzU3VydmV5IHtcclxuXHJcblx0XHRpZiAoaXNOT1UoYmFzZURhdGEpIHx8IGlzTk9VKHNwKSB8fCBpc05PVShzdXJ2ZXlNb2RlbCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmF0aW5nVmFsdWVzQXNjZW5kaW5nOiBzdHJpbmdbXSA9IFtdO1xyXG5cdFx0Y29uc3QgYXZhaWxhYmxlT3B0aW9uczogc3RyaW5nW10gPSBbXTtcclxuXHRcdGNvbnN0IGNvbnRlbnQ6IENhbXBhaWduU3VydmV5Q29udGVudCA9IHN1cnZleU1vZGVsLmNvbnRlbnQ7XHJcblx0XHRsZXQgY29udGVudFZhbGlkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBFaXRoZXIgVXhTY2hlbWEgb3IgUHJvbXB0L0NvbnRlbnQgbXVzdCBiZSBpbiB0aGUgc3VydmV5XHJcblx0XHQvLyBJbiBjYXNlIG9mIFByb21wdC9Db250ZW50LCBQcm9tcHQgaXMgcmVxdWlyZWQgYW5kIGF0IGxlYXN0IG9uZSBvZiB0aGUgb3RoZXIgY29tcG9uZW50cyBhcmUgcmVxdWlyZWRcclxuXHRcdGlmIChpc05PVShjb250ZW50KSB8fCBpc05PVShjb250ZW50LnByb21wdCkgfHxcclxuXHRcdFx0KGlzTk9VKGNvbnRlbnQucmF0aW5nKSAmJiBpc05PVShjb250ZW50Lm11bHRpcGxlQ2hvaWNlKSAmJlxyXG5cdFx0XHRcdGlzTk9VKGNvbnRlbnQuY29tbWVudCkpKSB7XHJcblx0XHRcdGNvbnRlbnRWYWxpZCA9IGZhbHNlO1xyXG5cdFx0XHRpZiAoIXN1cnZleU1vZGVsLnV4U2NoZW1hKSB7XHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBkYXRhID0gbmV3IEZwc1N1cnZleS5GcHNTdXJ2ZXlEYXRhKCk7XHJcblx0XHRkYXRhLmJhc2VEYXRhID0gYmFzZURhdGE7XHJcblx0XHRkYXRhLnV4U2NoZW1hID0gc3VydmV5TW9kZWwudXhTY2hlbWE7XHJcblxyXG5cdFx0aWYgKGNvbnRlbnRWYWxpZCkge1xyXG5cdFx0XHRkYXRhLnByb21wdERhdGEgPSBuZXcgUHJvbXB0Q29tcG9uZW50LlByb21wdENvbXBvbmVudERhdGEoKTtcclxuXHRcdFx0ZGF0YS5wcm9tcHREYXRhLnRpdGxlID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQucHJvbXB0LnRpdGxlKTtcclxuXHRcdFx0ZGF0YS5wcm9tcHREYXRhLnF1ZXN0aW9uID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQucHJvbXB0LnF1ZXN0aW9uKTtcclxuXHRcdFx0ZGF0YS5wcm9tcHREYXRhLnllc0J1dHRvbkxhYmVsID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQucHJvbXB0Lnllc0xhYmVsKTtcclxuXHRcdFx0ZGF0YS5wcm9tcHREYXRhLm5vQnV0dG9uTGFiZWwgPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQubm9MYWJlbCk7XHJcblxyXG5cdFx0XHRpZiAoaXNOT1UoZGF0YS5wcm9tcHREYXRhLnRpdGxlKVxyXG5cdFx0XHRcdHx8IGlzTk9VKGRhdGEucHJvbXB0RGF0YS5xdWVzdGlvbilcclxuXHRcdFx0XHR8fCBpc05PVShkYXRhLnByb21wdERhdGEueWVzQnV0dG9uTGFiZWwpXHJcblx0XHRcdFx0fHwgaXNOT1UoZGF0YS5wcm9tcHREYXRhLm5vQnV0dG9uTGFiZWwpKSB7XHJcblxyXG5cdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoY29udGVudC5yYXRpbmcpIHtcclxuXHRcdFx0XHRkYXRhLnJhdGluZ0RhdGEgPSBuZXcgUmF0aW5nQ29tcG9uZW50LlJhdGluZ0NvbXBvbmVudERhdGEoKTtcclxuXHRcdFx0XHRkYXRhLnJhdGluZ0RhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5yYXRpbmcucXVlc3Rpb24pO1xyXG5cdFx0XHRcdGRhdGEucmF0aW5nRGF0YS5pc1plcm9CYXNlZCA9IGNvbnRlbnQucmF0aW5nLmlzWmVyb0Jhc2VkO1xyXG5cclxuXHRcdFx0XHRmb3IgKGNvbnN0IHZhbHVlIG9mIGNvbnRlbnQucmF0aW5nLnJhdGluZ1ZhbHVlc0FzY2VuZGluZykge1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VzdG9tU3RyaW5nOiBzdHJpbmcgPSBzcC5nZXRDdXN0b21TdHJpbmcodmFsdWUpO1xyXG5cclxuXHRcdFx0XHRcdGlmIChpc05PVShjdXN0b21TdHJpbmcpKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHJhdGluZ1ZhbHVlc0FzY2VuZGluZy5wdXNoKGN1c3RvbVN0cmluZyk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nID0gcmF0aW5nVmFsdWVzQXNjZW5kaW5nO1xyXG5cclxuXHRcdFx0XHRpZiAoaXNOT1UoZGF0YS5yYXRpbmdEYXRhLnF1ZXN0aW9uKVxyXG5cdFx0XHRcdFx0fHwgaXNOT1UoZGF0YS5yYXRpbmdEYXRhLnJhdGluZ1ZhbHVlc0FzY2VuZGluZykpIHtcclxuXHJcblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChjb250ZW50Lm11bHRpcGxlQ2hvaWNlKSB7XHJcblx0XHRcdFx0ZGF0YS5tdWx0aXBsZUNob2ljZURhdGEgPSBuZXcgTXVsdGlwbGVDaG9pY2VDb21wb25lbnQuTXVsdGlwbGVDaG9pY2VDb21wb25lbnREYXRhKCk7XHJcblx0XHRcdFx0ZGF0YS5tdWx0aXBsZUNob2ljZURhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5tdWx0aXBsZUNob2ljZS5xdWVzdGlvbik7XHJcblx0XHRcdFx0ZGF0YS5tdWx0aXBsZUNob2ljZURhdGEubWluTnVtYmVyT2ZTZWxlY3RlZE9wdGlvbnMgPSBjb250ZW50Lm11bHRpcGxlQ2hvaWNlLm1pbk51bWJlck9mU2VsZWN0ZWRPcHRpb25zO1xyXG5cdFx0XHRcdGRhdGEubXVsdGlwbGVDaG9pY2VEYXRhLm1heE51bWJlck9mU2VsZWN0ZWRPcHRpb25zID0gY29udGVudC5tdWx0aXBsZUNob2ljZS5tYXhOdW1iZXJPZlNlbGVjdGVkT3B0aW9ucztcclxuXHJcblx0XHRcdFx0Zm9yIChjb25zdCB2YWx1ZSBvZiBjb250ZW50Lm11bHRpcGxlQ2hvaWNlLmF2YWlsYWJsZU9wdGlvbnMpIHtcclxuXHRcdFx0XHRcdGNvbnN0IGN1c3RvbVN0cmluZzogc3RyaW5nID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKHZhbHVlKTtcclxuXHJcblx0XHRcdFx0XHRpZiAoaXNOT1UoY3VzdG9tU3RyaW5nKSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRhdmFpbGFibGVPcHRpb25zLnB1c2goY3VzdG9tU3RyaW5nKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGRhdGEubXVsdGlwbGVDaG9pY2VEYXRhLmF2YWlsYWJsZU9wdGlvbnMgPSBhdmFpbGFibGVPcHRpb25zO1xyXG5cclxuXHRcdFx0XHRpZiAoaXNOT1UoZGF0YS5tdWx0aXBsZUNob2ljZURhdGEucXVlc3Rpb24pXHJcblx0XHRcdFx0XHR8fCBpc05PVShkYXRhLm11bHRpcGxlQ2hvaWNlRGF0YS5hdmFpbGFibGVPcHRpb25zKSkge1xyXG5cclxuXHRcdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKGNvbnRlbnQuY29tbWVudCkge1xyXG5cdFx0XHRcdGRhdGEuY29tbWVudERhdGEgPSBuZXcgQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YSgpO1xyXG5cdFx0XHRcdGRhdGEuY29tbWVudERhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5jb21tZW50LnF1ZXN0aW9uKTtcclxuXHJcblx0XHRcdFx0aWYgKGlzTk9VKGRhdGEuY29tbWVudERhdGEucXVlc3Rpb24pKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGN2c3VydmV5IGRhdGEgaXMgbm90IHJlcXVpcmVkIG9uIGFsbCBzdXJ2ZXlzLlxyXG5cdFx0XHRpZiAoY29udGVudC5jdlN1cnZleSkge1xyXG5cdFx0XHRcdGRhdGEuY3ZTdXJ2ZXlEYXRhID0gbmV3IENWU3VydmV5Q29tcG9uZW50LkNWU3VydmV5Q29tcG9uZW50RGF0YSgpO1xyXG5cdFx0XHRcdGRhdGEuY3ZTdXJ2ZXlEYXRhLmN1c3RvbWVyVm9pY2VGb3JtSWQgPSBjb250ZW50LmN2U3VydmV5LmN1c3RvbWVyVm9pY2VGb3JtSWQ7XHJcblxyXG5cdFx0XHRcdGlmIChpc05PVShkYXRhLmN2U3VydmV5RGF0YS5jdXN0b21lclZvaWNlRm9ybUlkKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3VydmV5SW5mbzogU3VydmV5RGF0YVNvdXJjZTtcclxuXHRwcml2YXRlIHF1ZXN0aW9uOiBDb21tZW50Q29tcG9uZW50O1xyXG5cdHByaXZhdGUgcHJvbXB0OiBQcm9tcHRDb21wb25lbnQ7XHJcblx0cHJpdmF0ZSByYXRpbmc6IFJhdGluZ0NvbXBvbmVudDtcclxuXHRwcml2YXRlIG11bHRpcGxlQ2hvaWNlOiBNdWx0aXBsZUNob2ljZUNvbXBvbmVudDtcclxuXHRwcml2YXRlIGN2U3VydmV5OiBDVlN1cnZleUNvbXBvbmVudDtcclxuXHRwcml2YXRlIGNvbnRlbnRWYWxpZDogYm9vbGVhbjtcclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcihkYXRhOiBGcHNTdXJ2ZXkuRnBzU3VydmV5RGF0YSkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdGlmIChpc05PVShkYXRhKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5zdXJ2ZXlJbmZvID0gbmV3IFN1cnZleURhdGFTb3VyY2UoZGF0YS5iYXNlRGF0YSk7XHJcblx0XHR0aGlzLmNvbnRlbnRWYWxpZCA9ICghVXRpbHMuaXNOT1UoZGF0YS5wcm9tcHREYXRhPy5xdWVzdGlvbikgJiYgIVV0aWxzLmlzTk9VKGRhdGEucHJvbXB0RGF0YT8udGl0bGUpKSAmJlxyXG5cdFx0IVV0aWxzLmlzTk9VKGRhdGEucmF0aW5nRGF0YT8ucXVlc3Rpb24pICYmICFVdGlscy5pc05PVShkYXRhLnJhdGluZ0RhdGE/LnJhdGluZ1ZhbHVlc0FzY2VuZGluZykgJiZcclxuXHRcdCFVdGlscy5pc05PVShkYXRhLmNvbW1lbnREYXRhPy5xdWVzdGlvbik7XHJcblxyXG5cdFx0Ly8gVGFraW5nIGluIHRoZSBVeFNjaGVtYSBpZiBwb3NzaWJsZVxyXG5cdFx0aWYgKGRhdGEudXhTY2hlbWEpIHtcclxuXHRcdFx0dGhpcy5zZXRVeFNjaGVtYShkYXRhLnV4U2NoZW1hKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdGhlcndpc2UsIGZhbGxiYWNrIHRvIHN0YXRpYyBjb250ZW50XHJcblx0XHRpZiAodGhpcy5jb250ZW50VmFsaWQpIHtcclxuXHRcdFx0dGhpcy5wcm9tcHQgPSBuZXcgUHJvbXB0Q29tcG9uZW50KGRhdGEucHJvbXB0RGF0YSk7XHJcblx0XHRcdHRoaXMucXVlc3Rpb24gPSBkYXRhLmNvbW1lbnREYXRhID8gKG5ldyBDb21tZW50Q29tcG9uZW50KGRhdGEuY29tbWVudERhdGEpKSA6IG51bGw7XHJcblx0XHRcdHRoaXMucmF0aW5nID0gZGF0YS5yYXRpbmdEYXRhID8gKG5ldyBSYXRpbmdDb21wb25lbnQoZGF0YS5yYXRpbmdEYXRhKSkgOiBudWxsO1xyXG5cdFx0XHR0aGlzLm11bHRpcGxlQ2hvaWNlID0gZGF0YS5tdWx0aXBsZUNob2ljZURhdGEgPyAobmV3IE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50KGRhdGEubXVsdGlwbGVDaG9pY2VEYXRhKSkgOiBudWxsO1xyXG5cdFx0XHR0aGlzLmN2U3VydmV5ID0gZGF0YS5jdlN1cnZleURhdGEgPyAobmV3IENWU3VydmV5Q29tcG9uZW50KGRhdGEuY3ZTdXJ2ZXlEYXRhKSkgOiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFR5cGUoKTogU3VydmV5VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5VHlwZS5GcHM7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0U3VydmV5SW5mbygpOiBJU3VydmV5SW5mbyB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdXJ2ZXlJbmZvO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbW1lbnRDb21wb25lbnQoKTogQ29tbWVudENvbXBvbmVudCB7XHJcblx0XHRyZXR1cm4gdGhpcy5xdWVzdGlvbjtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRQcm9tcHRDb21wb25lbnQoKTogUHJvbXB0Q29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLnByb21wdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRSYXRpbmdDb21wb25lbnQoKTogUmF0aW5nQ29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLnJhdGluZztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRNdWx0aXBsZUNob2ljZUNvbXBvbmVudCgpOiBNdWx0aXBsZUNob2ljZUNvbXBvbmVudCB7XHJcblx0XHRyZXR1cm4gdGhpcy5tdWx0aXBsZUNob2ljZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRDVlN1cnZleUNvbXBvbmVudCgpOiBDVlN1cnZleUNvbXBvbmVudCB7XHJcblx0XHRyZXR1cm4gdGhpcy5jdlN1cnZleTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUYWdzKCk6IHN0cmluZ1tdIHtcclxuXHRcdHJldHVybiB0aGlzLnN1cnZleUluZm8uZ2V0VGFncygpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbXBvbmVudChjb21wb25lbnRUeXBlOiBTdXJ2ZXlDb21wb25lbnRUeXBlKTogSVN1cnZleUNvbXBvbmVudCB7XHJcblx0XHRzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcclxuXHRcdFx0Y2FzZSBTdXJ2ZXlDb21wb25lbnRUeXBlLkNvbW1lbnQ6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0Q29tbWVudENvbXBvbmVudCgpO1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuUHJvbXB0OlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFByb21wdENvbXBvbmVudCgpO1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuUmF0aW5nOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpO1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuTXVsdGlwbGVDaG9pY2U6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0TXVsdGlwbGVDaG9pY2VDb21wb25lbnQoKTtcclxuXHRcdFx0Y2FzZSBTdXJ2ZXlDb21wb25lbnRUeXBlLkNWU3VydmV5OlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmdldENWU3VydmV5Q29tcG9uZW50KCk7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0RG9tRWxlbWVudHMoZG9jOiBEb2N1bWVudCk6IEVsZW1lbnRbXSB7XHJcblx0XHRpZiAoaXNOT1UoZG9jKSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJEb2N1bWVudCBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGVsZW1lbnQ6IEVsZW1lbnQgPSBkb2MuY3JlYXRlRWxlbWVudChET01fRlBTX1RBR05BTUUpO1xyXG5cclxuXHRcdHRoaXMuZ2V0U3VydmV5SW5mbygpLmdldERvbUVsZW1lbnRzKGRvYykuZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuXHRcdFx0aWYgKCFpc05PVShjaGlsZCkpIHtcclxuXHRcdFx0XHRlbGVtZW50LmFwcGVuZENoaWxkKGNoaWxkKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5nZXRDb21tZW50Q29tcG9uZW50KCkuZ2V0RG9tRWxlbWVudHMoZG9jKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG5cdFx0XHRpZiAoIWlzTk9VKGNoaWxkKSkge1xyXG5cdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAodGhpcy5nZXRSYXRpbmdDb21wb25lbnQoKSkge1xyXG5cdFx0XHR0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpLmdldERvbUVsZW1lbnRzKGRvYykuZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuXHRcdFx0XHRpZiAoIWlzTk9VKGNoaWxkKSkge1xyXG5cdFx0XHRcdFx0ZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5nZXRNdWx0aXBsZUNob2ljZUNvbXBvbmVudCgpKSB7XHJcblx0XHRcdHRoaXMuZ2V0TXVsdGlwbGVDaG9pY2VDb21wb25lbnQoKS5nZXREb21FbGVtZW50cyhkb2MpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcblx0XHRcdFx0aWYgKCFpc05PVShjaGlsZCkpIHtcclxuXHRcdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFtlbGVtZW50XTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRKc29uRWxlbWVudHMoKTogb2JqZWN0IHtcclxuXHRcdGxldCByZXN1bHQ6IG9iamVjdCA9IHt9O1xyXG5cclxuXHRcdHJlc3VsdCA9IFV0aWxzLm92ZXJyaWRlVmFsdWVzKHRoaXMuZ2V0U3VydmV5SW5mbygpLmdldEpzb25FbGVtZW50cygpLCByZXN1bHQpO1xyXG5cdFx0cmVzdWx0W0pTT05fQVBQTElDQVRJT05fS0VZTkFNRV0gPSB7fTtcclxuXHJcblx0XHRyZXN1bHRbSlNPTl9BUFBMSUNBVElPTl9LRVlOQU1FXVtKU09OX0VYVEVOREVETUFOSUZFU1REQVRBX0tFWU5BTUVdID1cclxuXHRcdFx0SlNPTi5zdHJpbmdpZnkoe1xyXG5cdFx0XHRcdFtKU09OX1NVUlZFWVNUUklOR1NfS0VZTkFNRV06IHRoaXMubWFrZVN1cnZleVN0cmluZ3MoKSxcclxuXHRcdFx0XHRbSlNPTl9TVVJWRVlTUEVDSUZJQ0RBVEFfS0VZTkFNRV06IHRoaXMubWFrZVJlc3BvbnNlU3RyaW5nKCksXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cdFxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc0NvbnRlbnRWYWxpZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbnRlbnRWYWxpZDtcclxuXHR9XHJcblxyXG5cdC8vIE1ha2VzIHRoZSBzdHJpbmcgdG8gc2VuZCB0byBNYW5pZmVzdCByZXNwZWN0aW5nIHRoZSBjb21wb25lbnRzIHByZXNlbnQgaW4gdGhlIHN1cnZleVxyXG5cdHByaXZhdGUgbWFrZVJlc3BvbnNlU3RyaW5nKCk6IHN0cmluZyB7XHJcblx0XHRjb25zdCByZXNwb25zZTogb2JqZWN0ID0ge307XHJcblxyXG5cdFx0aWYgKHRoaXMucXVlc3Rpb24pIHtcclxuXHRcdFx0cmVzcG9uc2VbSlNPTl9DT01NRU5UX0tFWU5BTUVdID0gW3RoaXMuZ2V0Q29tbWVudENvbXBvbmVudCgpLmdldFN1Ym1pdHRlZFRleHQoKV07XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubXVsdGlwbGVDaG9pY2UpIHtcclxuXHRcdFx0cmVzcG9uc2VbSlNPTl9NVUxUSVBMRUNIT0lDRV9LRVlOQU1FXSA9XHJcblx0XHRcdFx0W3RoaXMuZ2V0TXVsdGlwbGVDaG9pY2VDb21wb25lbnQoKS5nZXRPcHRpb25TZWxlY3RlZFN0YXRlcygpXTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5yYXRpbmcpIHtcclxuXHRcdFx0cmVzcG9uc2VbSlNPTl9SQVRJTkdfS0VZTkFNRV0gPSBbXHJcblx0XHRcdFx0e1xyXG5cdFx0XHRcdFx0bnVtYmVyT2ZPcHRpb25zOiB0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpLmdldFJhdGluZ1ZhbHVlc0FzY2VuZGluZygpLmxlbmd0aCxcclxuXHRcdFx0XHRcdHNlbGVjdGVkUmF0aW5nOiB0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpLmdldFNlbGVjdGVkUmF0aW5nSW5kZXgoKSxcclxuXHRcdFx0XHR9XTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UpO1xyXG5cdH1cclxuXHJcblx0Ly8gTWFrZXMgdGhlIHN0cmluZyB0byBzZW5kIHRvIE1hbmlmZXN0IHJlc3BlY3RpbmcgdGhlIGNvbXBvbmVudHMgcHJlc2VudCBpbiB0aGUgc3VydmV5XHJcblx0cHJpdmF0ZSBtYWtlU3VydmV5U3RyaW5ncygpOiBzdHJpbmcge1xyXG5cdFx0Y29uc3QgYWN0dWFsU3RyaW5nczogb2JqZWN0ID0ge307XHJcblxyXG5cdFx0aWYgKHRoaXMucHJvbXB0KSB7XHJcblx0XHRcdGFjdHVhbFN0cmluZ3NbSlNPTl9QUk9NUFRfS0VZTkFNRV0gPSB0aGlzLnByb21wdC5nZXRDb21wb25lbnRKc29uKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMucmF0aW5nKSB7XHJcblx0XHRcdGFjdHVhbFN0cmluZ3NbSlNPTl9SQVRJTkdfS0VZTkFNRV0gPSBbdGhpcy5yYXRpbmcuZ2V0Q29tcG9uZW50SnNvbigpXTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5xdWVzdGlvbikge1xyXG5cdFx0XHRhY3R1YWxTdHJpbmdzW0pTT05fQ09NTUVOVF9LRVlOQU1FXSA9IFt0aGlzLnF1ZXN0aW9uLmdldENvbXBvbmVudEpzb24oKV07XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMubXVsdGlwbGVDaG9pY2UpIHtcclxuXHRcdFx0YWN0dWFsU3RyaW5nc1tKU09OX01VTFRJUExFQ0hPSUNFX0tFWU5BTUVdID0gW3RoaXMubXVsdGlwbGVDaG9pY2UuZ2V0Q29tcG9uZW50SnNvbigpXTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gSlNPTi5zdHJpbmdpZnkoYWN0dWFsU3RyaW5ncyk7XHJcblx0fVxyXG59XHJcbm1vZHVsZSBGcHNTdXJ2ZXkge1xyXG5cdC8qKlxyXG5cdCAqIERhdGEgcmVxdWlyZWQgZm9yIGEgRnBzIFN1cnZleVxyXG5cdCAqL1xyXG5cdGV4cG9ydCBjbGFzcyBGcHNTdXJ2ZXlEYXRhIHtcclxuXHRcdHB1YmxpYyBiYXNlRGF0YTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YTtcclxuXHRcdHB1YmxpYyBjb21tZW50RGF0YTogQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBwcm9tcHREYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyByYXRpbmdEYXRhOiBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBtdWx0aXBsZUNob2ljZURhdGE6IE11bHRpcGxlQ2hvaWNlQ29tcG9uZW50Lk11bHRpcGxlQ2hvaWNlQ29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBjdlN1cnZleURhdGE6IENWU3VydmV5Q29tcG9uZW50LkNWU3VydmV5Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyB1eFNjaGVtYTogSVV4U2NoZW1hO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRnBzU3VydmV5O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/FpsSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/GenericMessagingSurfaceSurvey.js": /*!**************************************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/GenericMessagingSurfaceSurvey.js ***! \**************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey_1 = __webpack_require__(/*! ./Survey */ \"../FloodgateCore/dist/src/Surveys/Survey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ./SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar isNOU = Utils.isNOU;\nvar GenericMessagingSurfaceSurvey = /** @class */ (function (_super) {\n __extends(GenericMessagingSurfaceSurvey, _super);\n function GenericMessagingSurfaceSurvey(data) {\n var _this = _super.call(this) || this;\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n _this.surveyInfo = new SurveyDataSource_1.default(data.baseData);\n // This check cannot be done in survey info constructor\n // as metadata is specific to this survey type.\n if (isNOU(_this.surveyInfo.getMetadata())) {\n throw new Error(\"metadata must not be null\");\n }\n return _this;\n }\n GenericMessagingSurfaceSurvey.make = function (data) {\n try {\n return new GenericMessagingSurfaceSurvey(data);\n }\n catch (e) {\n return null;\n }\n };\n GenericMessagingSurfaceSurvey.makeCustom = function (baseData) {\n if (isNOU(baseData)) {\n return null;\n }\n var data = new GenericMessagingSurfaceSurvey.GenericMessagingSurfaceSurveyData();\n data.baseData = baseData;\n return this.make(data);\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getType = function () {\n return floodgate_shared_typings_1.SurveyType.GenericMessagingSurface;\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getSurveyInfo = function () {\n return this.surveyInfo;\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getTags = function () {\n return this.surveyInfo.getTags();\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getComponent = function (componentType) {\n return null;\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getDomElements = function (doc) {\n return [];\n };\n // @Override\n GenericMessagingSurfaceSurvey.prototype.getJsonElements = function () {\n return {};\n };\n return GenericMessagingSurfaceSurvey;\n}(Survey_1.Survey));\n(function (GenericMessagingSurfaceSurvey) {\n /**\n * Data required for a Generic Surface Survey\n */\n var GenericMessagingSurfaceSurveyData = /** @class */ (function () {\n function GenericMessagingSurfaceSurveyData() {\n }\n return GenericMessagingSurfaceSurveyData;\n }());\n GenericMessagingSurfaceSurvey.GenericMessagingSurfaceSurveyData = GenericMessagingSurfaceSurveyData;\n})(GenericMessagingSurfaceSurvey || (GenericMessagingSurfaceSurvey = {}));\nexports.default = GenericMessagingSurfaceSurvey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkudHM/ZWEwMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2S0FBMkg7QUFDM0gsc0ZBQWtDO0FBQ2xDLGtHQUFrQztBQUNsQyxnSUFBa0Q7QUFFMUMsU0FBSyxHQUFLLEtBQUssTUFBVixDQUFXO0FBRXhCO0lBQTRDLGlEQUFNO0lBc0JqRCx1Q0FBb0IsSUFBcUU7UUFBekYsWUFDQyxpQkFBTyxTQVlQO1FBWEEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUVELEtBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEQsdURBQXVEO1FBQ3ZELCtDQUErQztRQUMvQyxJQUFJLEtBQUssQ0FBQyxLQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUU7WUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzdDOztJQUNGLENBQUM7SUFsQ2Esa0NBQUksR0FBbEIsVUFBbUIsSUFBcUU7UUFDdkYsSUFBSTtZQUNILE9BQU8sSUFBSSw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUM7U0FDWjtJQUNGLENBQUM7SUFFYSx3Q0FBVSxHQUF4QixVQUF5QixRQUErQztRQUN2RSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSw2QkFBNkIsQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO1FBQ25GLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRXpCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBbUJELFlBQVk7SUFDTCwrQ0FBTyxHQUFkO1FBQ0MsT0FBTyxxQ0FBVSxDQUFDLHVCQUF1QixDQUFDO0lBQzNDLENBQUM7SUFFRCxZQUFZO0lBQ0wscURBQWEsR0FBcEI7UUFDQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7SUFDTCwrQ0FBTyxHQUFkO1FBQ0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO0lBQ0wsb0RBQVksR0FBbkIsVUFBb0IsYUFBa0M7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsWUFBWTtJQUNMLHNEQUFjLEdBQXJCLFVBQXNCLEdBQWE7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWTtJQUNMLHVEQUFlLEdBQXRCO1FBQ0MsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBQ0Ysb0NBQUM7QUFBRCxDQUFDLENBbEUyQyxlQUFNLEdBa0VqRDtBQUVELFdBQU8sNkJBQTZCO0lBQ25DOztPQUVHO0lBQ0g7UUFBQTtRQUVBLENBQUM7UUFBRCx3Q0FBQztJQUFELENBQUM7SUFGWSwrREFBaUMsb0NBRTdDO0FBQ0YsQ0FBQyxFQVBNLDZCQUE2QixLQUE3Qiw2QkFBNkIsUUFPbkM7QUFFRCxrQkFBZSw2QkFBNkIsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleXMvR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJU3VydmV5LCBJU3VydmV5Q29tcG9uZW50LCBJU3VydmV5SW5mbywgU3VydmV5Q29tcG9uZW50VHlwZSwgU3VydmV5VHlwZSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi4vVXRpbHNcIjtcclxuaW1wb3J0IHsgU3VydmV5IH0gZnJvbSBcIi4vU3VydmV5XCI7XHJcbmltcG9ydCBTdXJ2ZXlEYXRhU291cmNlIGZyb20gXCIuL1N1cnZleURhdGFTb3VyY2VcIjtcclxuXHJcbmNvbnN0IHsgaXNOT1UgfSA9IFV0aWxzO1xyXG5cclxuY2xhc3MgR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkgZXh0ZW5kcyBTdXJ2ZXkge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleS5HZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleURhdGEpOiBJU3VydmV5IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBtYWtlQ3VzdG9tKGJhc2VEYXRhOiBTdXJ2ZXlEYXRhU291cmNlLlN1cnZleURhdGFTb3VyY2VEYXRhKTogSVN1cnZleSB7XHJcblx0XHRpZiAoaXNOT1UoYmFzZURhdGEpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRhdGEgPSBuZXcgR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXkuR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VTdXJ2ZXlEYXRhKCk7XHJcblx0XHRkYXRhLmJhc2VEYXRhID0gYmFzZURhdGE7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3VydmV5SW5mbzogU3VydmV5RGF0YVNvdXJjZTtcclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcihkYXRhOiBHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleS5HZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleURhdGEpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHRpZiAoIWRhdGEpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YSBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuc3VydmV5SW5mbyA9IG5ldyBTdXJ2ZXlEYXRhU291cmNlKGRhdGEuYmFzZURhdGEpO1xyXG5cclxuXHRcdC8vIFRoaXMgY2hlY2sgY2Fubm90IGJlIGRvbmUgaW4gc3VydmV5IGluZm8gY29uc3RydWN0b3JcclxuXHRcdC8vIGFzIG1ldGFkYXRhIGlzIHNwZWNpZmljIHRvIHRoaXMgc3VydmV5IHR5cGUuXHJcblx0XHRpZiAoaXNOT1UodGhpcy5zdXJ2ZXlJbmZvLmdldE1ldGFkYXRhKCkpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIm1ldGFkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VHlwZSgpOiBTdXJ2ZXlUeXBlIHtcclxuXHRcdHJldHVybiBTdXJ2ZXlUeXBlLkdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFN1cnZleUluZm8oKTogSVN1cnZleUluZm8ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3VydmV5SW5mbztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUYWdzKCk6IHN0cmluZ1tdIHtcclxuXHRcdHJldHVybiB0aGlzLnN1cnZleUluZm8uZ2V0VGFncygpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbXBvbmVudChjb21wb25lbnRUeXBlOiBTdXJ2ZXlDb21wb25lbnRUeXBlKTogSVN1cnZleUNvbXBvbmVudCB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXREb21FbGVtZW50cyhkb2M6IERvY3VtZW50KTogRWxlbWVudFtdIHtcclxuXHRcdHJldHVybiBbXTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRKc29uRWxlbWVudHMoKTogb2JqZWN0IHtcclxuXHRcdHJldHVybiB7fTtcclxuXHR9XHJcbn1cclxuXHJcbm1vZHVsZSBHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleSB7XHJcblx0LyoqXHJcblx0ICogRGF0YSByZXF1aXJlZCBmb3IgYSBHZW5lcmljIFN1cmZhY2UgU3VydmV5XHJcblx0ICovXHJcblx0ZXhwb3J0IGNsYXNzIEdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlU3VydmV5RGF0YSB7XHJcblx0XHRwdWJsaWMgYmFzZURhdGE6IFN1cnZleURhdGFTb3VyY2UuU3VydmV5RGF0YVNvdXJjZURhdGE7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVN1cnZleTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/GenericMessagingSurfaceSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/InterceptSurvey.js": /*!************************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/InterceptSurvey.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar InterceptComponent_1 = __webpack_require__(/*! ../SurveyComponents/InterceptComponent */ \"../FloodgateCore/dist/src/SurveyComponents/InterceptComponent.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey_1 = __webpack_require__(/*! ./Survey */ \"../FloodgateCore/dist/src/Surveys/Survey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ./SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar isNOU = Utils.isNOU;\nvar InterceptSurvey = /** @class */ (function (_super) {\n __extends(InterceptSurvey, _super);\n function InterceptSurvey(data) {\n var _this = _super.call(this) || this;\n if (isNOU(data)) {\n throw new Error(\"data must not be null\");\n }\n _this.surveyInfo = new SurveyDataSource_1.default(data.baseData);\n _this.intercept = new InterceptComponent_1.default(data.interceptData);\n return _this;\n }\n InterceptSurvey.make = function (data) {\n try {\n return new InterceptSurvey(data);\n }\n catch (e) {\n return null;\n }\n };\n InterceptSurvey.makeIntercept = function (baseData, sp, surveyModel) {\n if (isNOU(baseData) || isNOU(sp) || isNOU(surveyModel)) {\n return null;\n }\n var content = surveyModel.content;\n // Intercept component is required.\n if (isNOU(content) || isNOU(content.intercept)) {\n return null;\n }\n var data = new InterceptSurvey.InterceptSurveyData();\n data.baseData = baseData;\n data.interceptData = new InterceptComponent_1.default.InterceptComponentData();\n data.interceptData.title = sp.getCustomString(content.intercept.title);\n data.interceptData.question = sp.getCustomString(content.intercept.question);\n data.interceptData.url = sp.getCustomString(content.intercept.url);\n if (isNOU(data.interceptData.title)\n || isNOU(data.interceptData.question)\n || isNOU(data.interceptData.url)) {\n return null;\n }\n return this.make(data);\n };\n // @Override\n InterceptSurvey.prototype.getType = function () {\n return floodgate_shared_typings_1.SurveyType.Intercept;\n };\n // @Override\n InterceptSurvey.prototype.getSurveyInfo = function () {\n return this.surveyInfo;\n };\n // @Override\n InterceptSurvey.prototype.getInterceptComponent = function () {\n return this.intercept;\n };\n // @Override\n InterceptSurvey.prototype.getTags = function () {\n return this.surveyInfo.getTags();\n };\n // @Override\n InterceptSurvey.prototype.getComponent = function (componentType) {\n return (componentType === \"Intercept\" /* Intercept */) ? this.getInterceptComponent() : null;\n };\n // @Override\n InterceptSurvey.prototype.getDomElements = function (doc) {\n return [];\n };\n // @Override\n InterceptSurvey.prototype.getJsonElements = function () {\n return {};\n };\n return InterceptSurvey;\n}(Survey_1.Survey));\n(function (InterceptSurvey) {\n /**\n * Data required for an Intercept Survey\n */\n var InterceptSurveyData = /** @class */ (function () {\n function InterceptSurveyData() {\n }\n return InterceptSurveyData;\n }());\n InterceptSurvey.InterceptSurveyData = InterceptSurveyData;\n})(InterceptSurvey || (InterceptSurvey = {}));\nexports.default = InterceptSurvey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvSW50ZXJjZXB0U3VydmV5LnRzPzZiM2MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNktBQThKO0FBRTlKLGlLQUF3RTtBQUN4RSxzRkFBa0M7QUFDbEMsa0dBQWtDO0FBQ2xDLGdJQUFrRDtBQUUxQyxTQUFLLEdBQUssS0FBSyxNQUFWLENBQVc7QUFFeEI7SUFBOEIsbUNBQU07SUE2Q25DLHlCQUFvQixJQUF5QztRQUE3RCxZQUNDLGlCQUFPLFNBT1A7UUFOQSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDekM7UUFFRCxLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksMEJBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSw0QkFBa0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7O0lBQzdELENBQUM7SUFwRGEsb0JBQUksR0FBbEIsVUFBbUIsSUFBeUM7UUFDM0QsSUFBSTtZQUNILE9BQU8sSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDakM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNYLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBRWEsNkJBQWEsR0FBM0IsVUFBNEIsUUFBK0MsRUFBRSxFQUE0QixFQUN4RyxXQUFtQztRQUVuQyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFNLE9BQU8sR0FBMEIsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUUzRCxtQ0FBbUM7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMvQyxPQUFPLElBQUksQ0FBQztTQUNaO1FBRUQsSUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFlLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUV6QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksNEJBQWtCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUVyRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztlQUMvQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUM7ZUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFFbEMsT0FBTyxJQUFJLENBQUM7U0FDWjtRQUVELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBZUQsWUFBWTtJQUNMLGlDQUFPLEdBQWQ7UUFDQyxPQUFPLHFDQUFVLENBQUMsU0FBUyxDQUFDO0lBQzdCLENBQUM7SUFFRCxZQUFZO0lBQ0wsdUNBQWEsR0FBcEI7UUFDQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7SUFDTCwrQ0FBcUIsR0FBNUI7UUFDQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQztJQUVELFlBQVk7SUFDTCxpQ0FBTyxHQUFkO1FBQ0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxZQUFZO0lBQ0wsc0NBQVksR0FBbkIsVUFBb0IsYUFBa0M7UUFDckQsT0FBTyxDQUFDLGFBQWEsZ0NBQWtDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRyxDQUFDO0lBRUQsWUFBWTtJQUNMLHdDQUFjLEdBQXJCLFVBQXNCLEdBQWE7UUFDbEMsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWTtJQUNMLHlDQUFlLEdBQXRCO1FBQ0MsT0FBTyxFQUFFLENBQUM7SUFDWCxDQUFDO0lBQ0Ysc0JBQUM7QUFBRCxDQUFDLENBekY2QixlQUFNLEdBeUZuQztBQUNELFdBQU8sZUFBZTtJQUNyQjs7T0FFRztJQUNIO1FBQUE7UUFHQSxDQUFDO1FBQUQsMEJBQUM7SUFBRCxDQUFDO0lBSFksbUNBQW1CLHNCQUcvQjtBQUNGLENBQUMsRUFSTSxlQUFlLEtBQWYsZUFBZSxRQVFyQjtBQUVELGtCQUFlLGVBQWUsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleXMvSW50ZXJjZXB0U3VydmV5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLCBJSW50ZXJjZXB0U3VydmV5LCBJU3VydmV5Q29tcG9uZW50LCBJU3VydmV5SW5mbywgU3VydmV5Q29tcG9uZW50VHlwZSwgU3VydmV5VHlwZSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBDYW1wYWlnblN1cnZleUNvbnRlbnQsIENhbXBhaWduU3VydmV5VGVtcGxhdGUgfSBmcm9tIFwiLi4vQ2FtcGFpZ24vQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJcIjtcclxuaW1wb3J0IEludGVyY2VwdENvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9JbnRlcmNlcHRDb21wb25lbnRcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCB7IFN1cnZleSB9IGZyb20gXCIuL1N1cnZleVwiO1xyXG5pbXBvcnQgU3VydmV5RGF0YVNvdXJjZSBmcm9tIFwiLi9TdXJ2ZXlEYXRhU291cmNlXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VIH0gPSBVdGlscztcclxuXHJcbmNsYXNzIEludGVyY2VwdFN1cnZleSBleHRlbmRzIFN1cnZleSBpbXBsZW1lbnRzIElJbnRlcmNlcHRTdXJ2ZXkge1xyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZShkYXRhOiBJbnRlcmNlcHRTdXJ2ZXkuSW50ZXJjZXB0U3VydmV5RGF0YSk6IElJbnRlcmNlcHRTdXJ2ZXkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIG5ldyBJbnRlcmNlcHRTdXJ2ZXkoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIHN0YXRpYyBtYWtlSW50ZXJjZXB0KGJhc2VEYXRhOiBTdXJ2ZXlEYXRhU291cmNlLlN1cnZleURhdGFTb3VyY2VEYXRhLCBzcDogSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdFx0c3VydmV5TW9kZWw6IENhbXBhaWduU3VydmV5VGVtcGxhdGUpOiBJSW50ZXJjZXB0U3VydmV5IHtcclxuXHJcblx0XHRpZiAoaXNOT1UoYmFzZURhdGEpIHx8IGlzTk9VKHNwKSB8fCBpc05PVShzdXJ2ZXlNb2RlbCkpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgY29udGVudDogQ2FtcGFpZ25TdXJ2ZXlDb250ZW50ID0gc3VydmV5TW9kZWwuY29udGVudDtcclxuXHJcblx0XHQvLyBJbnRlcmNlcHQgY29tcG9uZW50IGlzIHJlcXVpcmVkLlxyXG5cdFx0aWYgKGlzTk9VKGNvbnRlbnQpIHx8IGlzTk9VKGNvbnRlbnQuaW50ZXJjZXB0KSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBkYXRhID0gbmV3IEludGVyY2VwdFN1cnZleS5JbnRlcmNlcHRTdXJ2ZXlEYXRhKCk7XHJcblx0XHRkYXRhLmJhc2VEYXRhID0gYmFzZURhdGE7XHJcblxyXG5cdFx0ZGF0YS5pbnRlcmNlcHREYXRhID0gbmV3IEludGVyY2VwdENvbXBvbmVudC5JbnRlcmNlcHRDb21wb25lbnREYXRhKCk7XHJcblxyXG5cdFx0ZGF0YS5pbnRlcmNlcHREYXRhLnRpdGxlID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQuaW50ZXJjZXB0LnRpdGxlKTtcclxuXHRcdGRhdGEuaW50ZXJjZXB0RGF0YS5xdWVzdGlvbiA9IHNwLmdldEN1c3RvbVN0cmluZyhjb250ZW50LmludGVyY2VwdC5xdWVzdGlvbik7XHJcblx0XHRkYXRhLmludGVyY2VwdERhdGEudXJsID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQuaW50ZXJjZXB0LnVybCk7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGRhdGEuaW50ZXJjZXB0RGF0YS50aXRsZSlcclxuXHRcdFx0fHwgaXNOT1UoZGF0YS5pbnRlcmNlcHREYXRhLnF1ZXN0aW9uKVxyXG5cdFx0XHR8fCBpc05PVShkYXRhLmludGVyY2VwdERhdGEudXJsKSkge1xyXG5cclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3VydmV5SW5mbzogU3VydmV5RGF0YVNvdXJjZTtcclxuXHRwcml2YXRlIGludGVyY2VwdDogSW50ZXJjZXB0Q29tcG9uZW50O1xyXG5cclxuXHRwcml2YXRlIGNvbnN0cnVjdG9yKGRhdGE6IEludGVyY2VwdFN1cnZleS5JbnRlcmNlcHRTdXJ2ZXlEYXRhKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0aWYgKGlzTk9VKGRhdGEpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnN1cnZleUluZm8gPSBuZXcgU3VydmV5RGF0YVNvdXJjZShkYXRhLmJhc2VEYXRhKTtcclxuXHRcdHRoaXMuaW50ZXJjZXB0ID0gbmV3IEludGVyY2VwdENvbXBvbmVudChkYXRhLmludGVyY2VwdERhdGEpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFR5cGUoKTogU3VydmV5VHlwZSB7XHJcblx0XHRyZXR1cm4gU3VydmV5VHlwZS5JbnRlcmNlcHQ7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0U3VydmV5SW5mbygpOiBJU3VydmV5SW5mbyB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdXJ2ZXlJbmZvO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldEludGVyY2VwdENvbXBvbmVudCgpOiBJbnRlcmNlcHRDb21wb25lbnQge1xyXG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJjZXB0O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFRhZ3MoKTogc3RyaW5nW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3VydmV5SW5mby5nZXRUYWdzKCk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29tcG9uZW50KGNvbXBvbmVudFR5cGU6IFN1cnZleUNvbXBvbmVudFR5cGUpOiBJU3VydmV5Q29tcG9uZW50IHtcclxuXHRcdHJldHVybiAoY29tcG9uZW50VHlwZSA9PT0gU3VydmV5Q29tcG9uZW50VHlwZS5JbnRlcmNlcHQpID8gdGhpcy5nZXRJbnRlcmNlcHRDb21wb25lbnQoKSA6IG51bGw7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0RG9tRWxlbWVudHMoZG9jOiBEb2N1bWVudCk6IEVsZW1lbnRbXSB7XHJcblx0XHRyZXR1cm4gW107XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRyZXR1cm4ge307XHJcblx0fVxyXG59XHJcbm1vZHVsZSBJbnRlcmNlcHRTdXJ2ZXkge1xyXG5cdC8qKlxyXG5cdCAqIERhdGEgcmVxdWlyZWQgZm9yIGFuIEludGVyY2VwdCBTdXJ2ZXlcclxuXHQgKi9cclxuXHRleHBvcnQgY2xhc3MgSW50ZXJjZXB0U3VydmV5RGF0YSB7XHJcblx0XHRwdWJsaWMgYmFzZURhdGE6IFN1cnZleURhdGFTb3VyY2UuU3VydmV5RGF0YVNvdXJjZURhdGE7XHJcblx0XHRwdWJsaWMgaW50ZXJjZXB0RGF0YTogSW50ZXJjZXB0Q29tcG9uZW50LkludGVyY2VwdENvbXBvbmVudERhdGE7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBJbnRlcmNlcHRTdXJ2ZXk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/InterceptSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/NlqsSurvey.js": /*!*******************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/NlqsSurvey.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CommentComponent_1 = __webpack_require__(/*! ../SurveyComponents/CommentComponent */ \"../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js\");\nvar PromptComponent_1 = __webpack_require__(/*! ../SurveyComponents/PromptComponent */ \"../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js\");\nvar RatingComponent_1 = __webpack_require__(/*! ../SurveyComponents/RatingComponent */ \"../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey_1 = __webpack_require__(/*! ./Survey */ \"../FloodgateCore/dist/src/Surveys/Survey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ./SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar isNOU = Utils.isNOU, overrideValues = Utils.overrideValues;\nvar NlqsSurvey = /** @class */ (function (_super) {\n __extends(NlqsSurvey, _super);\n function NlqsSurvey(data) {\n var _this = _super.call(this) || this;\n if (isNOU(data)) {\n throw new Error(\"data must not be null\");\n }\n _this.surveyInfo = new SurveyDataSource_1.default(data.baseData);\n _this.prompt = new PromptComponent_1.default(data.promptData);\n _this.question = new CommentComponent_1.default(data.commentData);\n _this.rating = new RatingComponent_1.default(data.ratingData);\n return _this;\n }\n NlqsSurvey.make = function (data) {\n try {\n return new NlqsSurvey(data);\n }\n catch (e) {\n return null;\n }\n };\n NlqsSurvey.makeNlqs = function (baseData, sp, surveyModel) {\n if (isNOU(baseData) || isNOU(sp) || isNOU(surveyModel)) {\n return null;\n }\n var ratingValuesAscending = [];\n var content = surveyModel.content;\n if (isNOU(content) || isNOU(content.comment)\n || isNOU(content.prompt) || isNOU(content.rating)) {\n return null;\n }\n var data = new NlqsSurvey.NlqsSurveyData();\n data.baseData = baseData;\n data.promptData = new PromptComponent_1.default.PromptComponentData();\n data.ratingData = new RatingComponent_1.default.RatingComponentData();\n data.commentData = new CommentComponent_1.default.CommentComponentData();\n data.promptData.title = sp.getCustomString(content.prompt.title);\n data.promptData.question = sp.getCustomString(content.prompt.question);\n data.promptData.yesButtonLabel = sp.getCustomString(content.prompt.yesLabel);\n data.promptData.noButtonLabel = sp.getCustomString(content.prompt.noLabel);\n data.ratingData.question = sp.getCustomString(content.rating.question);\n data.ratingData.isZeroBased = content.rating.isZeroBased;\n data.commentData.question = sp.getCustomString(content.comment.question);\n for (var _i = 0, _a = content.rating.ratingValuesAscending; _i < _a.length; _i++) {\n var value = _a[_i];\n var customString = sp.getCustomString(value);\n if (isNOU(customString)) {\n return null;\n }\n ratingValuesAscending.push(customString);\n }\n data.ratingData.ratingValuesAscending = ratingValuesAscending;\n if (isNOU(data.ratingData.question)\n || isNOU(data.commentData.question)\n || isNOU(data.promptData.title)\n || isNOU(data.promptData.question)\n || isNOU(data.promptData.yesButtonLabel)\n || isNOU(data.promptData.noButtonLabel)\n || isNOU(data.ratingData.ratingValuesAscending)) {\n return null;\n }\n return this.make(data);\n };\n // @Override\n NlqsSurvey.prototype.getType = function () {\n return floodgate_shared_typings_1.SurveyType.Nlqs;\n };\n // @Override\n NlqsSurvey.prototype.getSurveyInfo = function () {\n return this.surveyInfo;\n };\n // @Override\n NlqsSurvey.prototype.getCommentComponent = function () {\n return this.question;\n };\n // @Override\n NlqsSurvey.prototype.getPromptComponent = function () {\n return this.prompt;\n };\n // @Override\n NlqsSurvey.prototype.getRatingComponent = function () {\n return this.rating;\n };\n // @Override\n NlqsSurvey.prototype.getTags = function () {\n return this.surveyInfo.getTags();\n };\n // @Override\n NlqsSurvey.prototype.getComponent = function (componentType) {\n switch (componentType) {\n case \"Comment\" /* Comment */:\n return this.getCommentComponent();\n case \"Prompt\" /* Prompt */:\n return this.getPromptComponent();\n case \"Rating\" /* Rating */:\n return this.getRatingComponent();\n default:\n return null;\n }\n };\n // @Override\n NlqsSurvey.prototype.getDomElements = function (doc) {\n if (isNOU(doc)) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_NLQS_TAGNAME);\n this.getSurveyInfo().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n this.getCommentComponent().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n this.getRatingComponent().getDomElements(doc).forEach(function (child) {\n if (!isNOU(child)) {\n element.appendChild(child);\n }\n });\n return [element];\n };\n // @Override\n NlqsSurvey.prototype.getJsonElements = function () {\n var result = {};\n result = overrideValues(this.getSurveyInfo().getJsonElements(), result);\n result = overrideValues(this.getCommentComponent().getJsonElements(), result);\n result = overrideValues(this.getRatingComponent().getJsonElements(), result);\n return result;\n };\n return NlqsSurvey;\n}(Survey_1.Survey));\n(function (NlqsSurvey) {\n /**\n * Data required for a Nlqs Survey\n */\n var NlqsSurveyData = /** @class */ (function () {\n function NlqsSurveyData() {\n }\n return NlqsSurveyData;\n }());\n NlqsSurvey.NlqsSurveyData = NlqsSurveyData;\n})(NlqsSurvey || (NlqsSurvey = {}));\nexports.default = NlqsSurvey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvTmxxc1N1cnZleS50cz9jZjU3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZLQVEwQztBQUUxQywySkFBb0U7QUFDcEUsd0pBQWtFO0FBQ2xFLHdKQUFrRTtBQUNsRSxzRkFBa0M7QUFDbEMsa0dBQWtDO0FBQ2xDLGdJQUFrRDtBQUUxQyxTQUFLLEdBQXFCLEtBQUssTUFBMUIsRUFBRSxjQUFjLEdBQUssS0FBSyxlQUFWLENBQVc7QUFFeEM7SUFBeUIsOEJBQU07SUFzRTlCLG9CQUFvQixJQUErQjtRQUFuRCxZQUNDLGlCQUFPLFNBU1A7UUFSQSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDekM7UUFFRCxLQUFJLENBQUMsVUFBVSxHQUFHLElBQUksMEJBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELEtBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxLQUFJLENBQUMsUUFBUSxHQUFHLElBQUksMEJBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZELEtBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSx5QkFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzs7SUFDcEQsQ0FBQztJQS9FYSxlQUFJLEdBQWxCLFVBQW1CLElBQStCO1FBQ2pELElBQUk7WUFDSCxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQztJQUVhLG1CQUFRLEdBQXRCLFVBQXVCLFFBQStDLEVBQUUsRUFBNEIsRUFDbkcsV0FBbUM7UUFFbkMsSUFBSSxLQUFLLENBQUMsUUFBUSxD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QUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUM7SUFDRixpQkFBQztBQUFELENBQUMsQ0FyS3dCLGVBQU0sR0FxSzlCO0FBRUQsV0FBTyxVQUFVO0lBQ2hCOztPQUVHO0lBQ0g7UUFBQTtRQUtBLENBQUM7UUFBRCxxQkFBQztJQUFELENBQUM7SUFMWSx5QkFBYyxpQkFLMUI7QUFDRixDQUFDLEVBVk0sVUFBVSxLQUFWLFVBQVUsUUFVaEI7QUFFRCxrQkFBZSxVQUFVLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlzL05scXNTdXJ2ZXkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdERPTV9OTFFTX1RBR05BTUUsXHJcblx0SUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdElObHFzU3VydmV5LFxyXG5cdElTdXJ2ZXlDb21wb25lbnQsXHJcblx0SVN1cnZleUluZm8sXHJcblx0U3VydmV5Q29tcG9uZW50VHlwZSxcclxuXHRTdXJ2ZXlUeXBlXHJcbn0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IENhbXBhaWduU3VydmV5Q29udGVudCwgQ2FtcGFpZ25TdXJ2ZXlUZW1wbGF0ZSB9IGZyb20gXCIuLi9DYW1wYWlnbi9DYW1wYWlnbkRlZmluaXRpb25Qcm92aWRlclwiO1xyXG5pbXBvcnQgQ29tbWVudENvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9Db21tZW50Q29tcG9uZW50XCI7XHJcbmltcG9ydCBQcm9tcHRDb21wb25lbnQgZnJvbSBcIi4uL1N1cnZleUNvbXBvbmVudHMvUHJvbXB0Q29tcG9uZW50XCI7XHJcbmltcG9ydCBSYXRpbmdDb21wb25lbnQgZnJvbSBcIi4uL1N1cnZleUNvbXBvbmVudHMvUmF0aW5nQ29tcG9uZW50XCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuLi9VdGlsc1wiO1xyXG5pbXBvcnQgeyBTdXJ2ZXkgfSBmcm9tIFwiLi9TdXJ2ZXlcIjtcclxuaW1wb3J0IFN1cnZleURhdGFTb3VyY2UgZnJvbSBcIi4vU3VydmV5RGF0YVNvdXJjZVwiO1xyXG5cclxuY29uc3QgeyBpc05PVSwgb3ZlcnJpZGVWYWx1ZXMgfSA9IFV0aWxzO1xyXG5cclxuY2xhc3MgTmxxc1N1cnZleSBleHRlbmRzIFN1cnZleSBpbXBsZW1lbnRzIElObHFzU3VydmV5IHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZGF0YTogTmxxc1N1cnZleS5ObHFzU3VydmV5RGF0YSk6IElObHFzU3VydmV5IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgTmxxc1N1cnZleShkYXRhKTtcclxuXHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIG1ha2VObHFzKGJhc2VEYXRhOiBTdXJ2ZXlEYXRhU291cmNlLlN1cnZleURhdGFTb3VyY2VEYXRhLCBzcDogSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdFx0c3VydmV5TW9kZWw6IENhbXBhaWduU3VydmV5VGVtcGxhdGUpOiBJTmxxc1N1cnZleSB7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGJhc2VEYXRhKSB8fCBpc05PVShzcCkgfHwgaXNOT1Uoc3VydmV5TW9kZWwpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW10gPSBbXTtcclxuXHRcdGNvbnN0IGNvbnRlbnQ6IENhbXBhaWduU3VydmV5Q29udGVudCA9IHN1cnZleU1vZGVsLmNvbnRlbnQ7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGNvbnRlbnQpIHx8IGlzTk9VKGNvbnRlbnQuY29tbWVudClcclxuXHRcdFx0fHwgaXNOT1UoY29udGVudC5wcm9tcHQpIHx8IGlzTk9VKGNvbnRlbnQucmF0aW5nKSkge1xyXG5cclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgZGF0YSA9IG5ldyBObHFzU3VydmV5Lk5scXNTdXJ2ZXlEYXRhKCk7XHJcblx0XHRkYXRhLmJhc2VEYXRhID0gYmFzZURhdGE7XHJcblx0XHRkYXRhLnByb21wdERhdGEgPSBuZXcgUHJvbXB0Q29tcG9uZW50LlByb21wdENvbXBvbmVudERhdGEoKTtcclxuXHRcdGRhdGEucmF0aW5nRGF0YSA9IG5ldyBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YSgpO1xyXG5cdFx0ZGF0YS5jb21tZW50RGF0YSA9IG5ldyBDb21tZW50Q29tcG9uZW50LkNvbW1lbnRDb21wb25lbnREYXRhKCk7XHJcblxyXG5cdFx0ZGF0YS5wcm9tcHREYXRhLnRpdGxlID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQucHJvbXB0LnRpdGxlKTtcclxuXHRcdGRhdGEucHJvbXB0RGF0YS5xdWVzdGlvbiA9IHNwLmdldEN1c3RvbVN0cmluZyhjb250ZW50LnByb21wdC5xdWVzdGlvbik7XHJcblx0XHRkYXRhLnByb21wdERhdGEueWVzQnV0dG9uTGFiZWwgPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQueWVzTGFiZWwpO1xyXG5cdFx0ZGF0YS5wcm9tcHREYXRhLm5vQnV0dG9uTGFiZWwgPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQubm9MYWJlbCk7XHJcblx0XHRkYXRhLnJhdGluZ0RhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5yYXRpbmcucXVlc3Rpb24pO1xyXG5cdFx0ZGF0YS5yYXRpbmdEYXRhLmlzWmVyb0Jhc2VkID0gY29udGVudC5yYXRpbmcuaXNaZXJvQmFzZWQ7XHJcblx0XHRkYXRhLmNvbW1lbnREYXRhLnF1ZXN0aW9uID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQuY29tbWVudC5xdWVzdGlvbik7XHJcblxyXG5cdFx0Zm9yIChjb25zdCB2YWx1ZSBvZiBjb250ZW50LnJhdGluZy5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcpIHtcclxuXHRcdFx0Y29uc3QgY3VzdG9tU3RyaW5nOiBzdHJpbmcgPSBzcC5nZXRDdXN0b21TdHJpbmcodmFsdWUpO1xyXG5cclxuXHRcdFx0aWYgKGlzTk9VKGN1c3RvbVN0cmluZykpIHtcclxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nLnB1c2goY3VzdG9tU3RyaW5nKTtcclxuXHRcdH1cclxuXHJcblx0XHRkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nID0gcmF0aW5nVmFsdWVzQXNjZW5kaW5nO1xyXG5cclxuXHRcdGlmIChpc05PVShkYXRhLnJhdGluZ0RhdGEucXVlc3Rpb24pXHJcblx0XHRcdHx8IGlzTk9VKGRhdGEuY29tbWVudERhdGEucXVlc3Rpb24pXHJcblx0XHRcdHx8IGlzTk9VKGRhdGEucHJvbXB0RGF0YS50aXRsZSlcclxuXHRcdFx0fHwgaXNOT1UoZGF0YS5wcm9tcHREYXRhLnF1ZXN0aW9uKVxyXG5cdFx0XHR8fCBpc05PVShkYXRhLnByb21wdERhdGEueWVzQnV0dG9uTGFiZWwpXHJcblx0XHRcdHx8IGlzTk9VKGRhdGEucHJvbXB0RGF0YS5ub0J1dHRvbkxhYmVsKVxyXG5cdFx0XHR8fCBpc05PVShkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nKSkge1xyXG5cclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3VydmV5SW5mbzogU3VydmV5RGF0YVNvdXJjZTtcclxuXHRwcml2YXRlIHF1ZXN0aW9uOiBDb21tZW50Q29tcG9uZW50O1xyXG5cdHByaXZhdGUgcHJvbXB0OiBQcm9tcHRDb21wb25lbnQ7XHJcblx0cHJpdmF0ZSByYXRpbmc6IFJhdGluZ0NvbXBvbmVudDtcclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcihkYXRhOiBObHFzU3VydmV5Lk5scXNTdXJ2ZXlEYXRhKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cdFx0aWYgKGlzTk9VKGRhdGEpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLnN1cnZleUluZm8gPSBuZXcgU3VydmV5RGF0YVNvdXJjZShkYXRhLmJhc2VEYXRhKTtcclxuXHRcdHRoaXMucHJvbXB0ID0gbmV3IFByb21wdENvbXBvbmVudChkYXRhLnByb21wdERhdGEpO1xyXG5cdFx0dGhpcy5xdWVzdGlvbiA9IG5ldyBDb21tZW50Q29tcG9uZW50KGRhdGEuY29tbWVudERhdGEpO1xyXG5cdFx0dGhpcy5yYXRpbmcgPSBuZXcgUmF0aW5nQ29tcG9uZW50KGRhdGEucmF0aW5nRGF0YSk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VHlwZSgpOiBTdXJ2ZXlUeXBlIHtcclxuXHRcdHJldHVybiBTdXJ2ZXlUeXBlLk5scXM7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0U3VydmV5SW5mbygpOiBJU3VydmV5SW5mbyB7XHJcblx0XHRyZXR1cm4gdGhpcy5zdXJ2ZXlJbmZvO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbW1lbnRDb21wb25lbnQoKTogQ29tbWVudENvbXBvbmVudCB7XHJcblx0XHRyZXR1cm4gdGhpcy5xdWVzdGlvbjtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRQcm9tcHRDb21wb25lbnQoKTogUHJvbXB0Q29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLnByb21wdDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRSYXRpbmdDb21wb25lbnQoKTogUmF0aW5nQ29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLnJhdGluZztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUYWdzKCk6IHN0cmluZ1tdIHtcclxuXHRcdHJldHVybiB0aGlzLnN1cnZleUluZm8uZ2V0VGFncygpO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENvbXBvbmVudChjb21wb25lbnRUeXBlOiBTdXJ2ZXlDb21wb25lbnRUeXBlKTogSVN1cnZleUNvbXBvbmVudCB7XHJcblx0XHRzd2l0Y2ggKGNvbXBvbmVudFR5cGUpIHtcclxuXHRcdFx0Y2FzZSBTdXJ2ZXlDb21wb25lbnRUeXBlLkNvbW1lbnQ6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0Q29tbWVudENvbXBvbmVudCgpO1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuUHJvbXB0OlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFByb21wdENvbXBvbmVudCgpO1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuUmF0aW5nOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldERvbUVsZW1lbnRzKGRvYzogRG9jdW1lbnQpOiBFbGVtZW50W10ge1xyXG5cdFx0aWYgKGlzTk9VKGRvYykpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRG9jdW1lbnQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX05MUVNfVEFHTkFNRSk7XHJcblxyXG5cdFx0dGhpcy5nZXRTdXJ2ZXlJbmZvKCkuZ2V0RG9tRWxlbWVudHMoZG9jKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG5cdFx0XHRpZiAoIWlzTk9VKGNoaWxkKSkge1xyXG5cdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmdldENvbW1lbnRDb21wb25lbnQoKS5nZXREb21FbGVtZW50cyhkb2MpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcblx0XHRcdGlmICghaXNOT1UoY2hpbGQpKSB7XHJcblx0XHRcdFx0ZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuZ2V0UmF0aW5nQ29tcG9uZW50KCkuZ2V0RG9tRWxlbWVudHMoZG9jKS5mb3JFYWNoKChjaGlsZCkgPT4ge1xyXG5cdFx0XHRpZiAoIWlzTk9VKGNoaWxkKSkge1xyXG5cdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gW2VsZW1lbnRdO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldEpzb25FbGVtZW50cygpOiBvYmplY3Qge1xyXG5cdFx0bGV0IHJlc3VsdDogb2JqZWN0ID0ge307XHJcblxyXG5cdFx0cmVzdWx0ID0gb3ZlcnJpZGVWYWx1ZXModGhpcy5nZXRTdXJ2ZXlJbmZvKCkuZ2V0SnNvbkVsZW1lbnRzKCksIHJlc3VsdCk7XHJcblx0XHRyZXN1bHQgPSBvdmVycmlkZVZhbHVlcyh0aGlzLmdldENvbW1lbnRDb21wb25lbnQoKS5nZXRKc29uRWxlbWVudHMoKSwgcmVzdWx0KTtcclxuXHRcdHJlc3VsdCA9IG92ZXJyaWRlVmFsdWVzKHRoaXMuZ2V0UmF0aW5nQ29tcG9uZW50KCkuZ2V0SnNvbkVsZW1lbnRzKCksIHJlc3VsdCk7XHJcblxyXG5cdFx0cmV0dXJuIHJlc3VsdDtcclxuXHR9XHJcbn1cclxuXHJcbm1vZHVsZSBObHFzU3VydmV5IHtcclxuXHQvKipcclxuXHQgKiBEYXRhIHJlcXVpcmVkIGZvciBhIE5scXMgU3VydmV5XHJcblx0ICovXHJcblx0ZXhwb3J0IGNsYXNzIE5scXNTdXJ2ZXlEYXRhIHtcclxuXHRcdHB1YmxpYyBiYXNlRGF0YTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YTtcclxuXHRcdHB1YmxpYyBjb21tZW50RGF0YTogQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBwcm9tcHREYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyByYXRpbmdEYXRhOiBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YTtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5scXNTdXJ2ZXk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/NlqsSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/NpsSurvey.js": /*!******************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/NpsSurvey.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __extends = (this && this.__extends) || (function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar CommentComponent_1 = __webpack_require__(/*! ../SurveyComponents/CommentComponent */ \"../FloodgateCore/dist/src/SurveyComponents/CommentComponent.js\");\nvar CVSurveyComponent_1 = __webpack_require__(/*! ../SurveyComponents/CVSurveyComponent */ \"../FloodgateCore/dist/src/SurveyComponents/CVSurveyComponent.js\");\nvar PromptComponent_1 = __webpack_require__(/*! ../SurveyComponents/PromptComponent */ \"../FloodgateCore/dist/src/SurveyComponents/PromptComponent.js\");\nvar RatingComponent_1 = __webpack_require__(/*! ../SurveyComponents/RatingComponent */ \"../FloodgateCore/dist/src/SurveyComponents/RatingComponent.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey_1 = __webpack_require__(/*! ./Survey */ \"../FloodgateCore/dist/src/Surveys/Survey.js\");\nvar SurveyDataSource_1 = __webpack_require__(/*! ./SurveyDataSource */ \"../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\");\nvar isNOU = Utils.isNOU, overrideValues = Utils.overrideValues;\nvar NpsSurvey = /** @class */ (function (_super) {\n __extends(NpsSurvey, _super);\n function NpsSurvey(data) {\n var _a, _b, _c, _d, _e;\n var _this = _super.call(this) || this;\n if (!data) {\n throw new Error(\"data must not be null\");\n }\n if (data.uxSchema) {\n _this.setUxSchema(data.uxSchema);\n }\n _this.contentValid = (!Utils.isNOU((_a = data.promptData) === null || _a === void 0 ? void 0 : _a.question) && !Utils.isNOU((_b = data.promptData) === null || _b === void 0 ? void 0 : _b.title)) &&\n !Utils.isNOU((_c = data.ratingData) === null || _c === void 0 ? void 0 : _c.question) && !Utils.isNOU((_d = data.ratingData) === null || _d === void 0 ? void 0 : _d.ratingValuesAscending) &&\n !Utils.isNOU((_e = data.commentData) === null || _e === void 0 ? void 0 : _e.question);\n _this.surveyInfo = new SurveyDataSource_1.default(data.baseData);\n if (_this.contentValid) {\n _this.prompt = new PromptComponent_1.default(data.promptData);\n _this.question = new CommentComponent_1.default(data.commentData);\n _this.rating = new RatingComponent_1.default(data.ratingData);\n _this.cvSurvey = data.cvSurveyData ? (new CVSurveyComponent_1.default(data.cvSurveyData)) : null;\n }\n return _this;\n }\n NpsSurvey.make = function (data) {\n try {\n return new NpsSurvey(data);\n }\n catch (e) {\n return null;\n }\n };\n NpsSurvey.makeCustom = function (baseData, sp, surveyModel) {\n if (isNOU(baseData) || isNOU(sp) || isNOU(surveyModel)) {\n return null;\n }\n var ratingValuesAscending = [];\n var content = surveyModel.content;\n var contentValid = true;\n // Either UxSchema or Prompt/Content must be in the survey\n if (isNOU(content) || isNOU(content.comment)\n || isNOU(content.prompt) || isNOU(content.rating)) {\n contentValid = false;\n if (!surveyModel.uxSchema) {\n return null;\n }\n }\n var data = new NpsSurvey.NpsSurveyData();\n data.baseData = baseData;\n data.uxSchema = surveyModel.uxSchema;\n if (contentValid) {\n data.promptData = new PromptComponent_1.default.PromptComponentData();\n data.ratingData = new RatingComponent_1.default.RatingComponentData();\n data.commentData = new CommentComponent_1.default.CommentComponentData();\n data.promptData.title = sp.getCustomString(content.prompt.title);\n data.promptData.question = sp.getCustomString(content.prompt.question);\n data.promptData.yesButtonLabel = sp.getCustomString(content.prompt.yesLabel);\n data.promptData.noButtonLabel = sp.getCustomString(content.prompt.noLabel);\n data.ratingData.question = sp.getCustomString(content.rating.question);\n data.ratingData.isZeroBased = content.rating.isZeroBased;\n data.commentData.question = sp.getCustomString(content.comment.question);\n for (var _i = 0, _a = content.rating.ratingValuesAscending; _i < _a.length; _i++) {\n var value = _a[_i];\n var customString = sp.getCustomString(value);\n if (isNOU(customString)) {\n return null;\n }\n ratingValuesAscending.push(customString);\n }\n data.ratingData.ratingValuesAscending = ratingValuesAscending;\n if (isNOU(data.ratingData.question)\n || isNOU(data.commentData.question)\n || isNOU(data.promptData.title)\n || isNOU(data.promptData.question)\n || isNOU(data.promptData.yesButtonLabel)\n || isNOU(data.promptData.noButtonLabel)\n || isNOU(data.ratingData.ratingValuesAscending)) {\n return null;\n }\n // cvsurvey data is not required on all surveys.\n if (content.cvSurvey) {\n data.cvSurveyData = new CVSurveyComponent_1.default.CVSurveyComponentData();\n data.cvSurveyData.customerVoiceFormId = content.cvSurvey.customerVoiceFormId;\n if (isNOU(data.cvSurveyData.customerVoiceFormId)) {\n return null;\n }\n }\n }\n return this.make(data);\n };\n NpsSurvey.make5Point = function (baseData, sp) {\n if (!baseData || !sp) {\n return null;\n }\n var data = new NpsSurvey.NpsSurveyData();\n data.baseData = baseData;\n data.ratingData = new RatingComponent_1.default.RatingComponentData();\n data.ratingData.isZeroBased = false;\n data.commentData = new CommentComponent_1.default.CommentComponentData();\n data.promptData = new PromptComponent_1.default.PromptComponentData();\n data.ratingData.question = sp.loadStringResource(4 /* NpsRatingQuestion */);\n data.commentData.question = sp.loadStringResource(21 /* NpsCommentQuestion */);\n data.promptData.title = sp.loadStringResource(0 /* NpsPromptTitle */);\n data.promptData.question = sp.loadStringResource(1 /* NpsPromptQuestion */);\n data.promptData.yesButtonLabel = sp.loadStringResource(2 /* NpsPromptYesLabel */);\n data.promptData.noButtonLabel = sp.loadStringResource(3 /* NpsPromptNotNowLabel */);\n var ratingValuesAscending = new Array(5);\n ratingValuesAscending[0] = sp.loadStringResource(16 /* Nps5RatingValue1 */);\n ratingValuesAscending[1] = sp.loadStringResource(17 /* Nps5RatingValue2 */);\n ratingValuesAscending[2] = sp.loadStringResource(18 /* Nps5RatingValue3 */);\n ratingValuesAscending[3] = sp.loadStringResource(19 /* Nps5RatingValue4 */);\n ratingValuesAscending[4] = sp.loadStringResource(20 /* Nps5RatingValue5 */);\n if (!data.ratingData.question\n || !data.commentData.question\n || !data.promptData.title\n || !data.promptData.question\n || !data.promptData.yesButtonLabel\n || !data.promptData.noButtonLabel\n || !ratingValuesAscending[0]\n || !ratingValuesAscending[1]\n || !ratingValuesAscending[2]\n || !ratingValuesAscending[3]\n || !ratingValuesAscending[4]) {\n return null;\n }\n data.ratingData.ratingValuesAscending = ratingValuesAscending;\n return this.make(data);\n };\n NpsSurvey.make11Point = function (baseData, sp) {\n if (!baseData || !sp) {\n return null;\n }\n var data = new NpsSurvey.NpsSurveyData();\n data.baseData = baseData;\n data.ratingData = new RatingComponent_1.default.RatingComponentData();\n data.ratingData.isZeroBased = true;\n data.commentData = new CommentComponent_1.default.CommentComponentData();\n data.promptData = new PromptComponent_1.default.PromptComponentData();\n data.ratingData.question = sp.loadStringResource(4 /* NpsRatingQuestion */);\n data.commentData.question = sp.loadStringResource(21 /* NpsCommentQuestion */);\n data.promptData.title = sp.loadStringResource(0 /* NpsPromptTitle */);\n data.promptData.question = sp.loadStringResource(1 /* NpsPromptQuestion */);\n data.promptData.yesButtonLabel = sp.loadStringResource(2 /* NpsPromptYesLabel */);\n data.promptData.noButtonLabel = sp.loadStringResource(3 /* NpsPromptNotNowLabel */);\n var ratingValuesAscending = new Array(11);\n ratingValuesAscending[0] = sp.loadStringResource(5 /* Nps11RatingValue0 */);\n ratingValuesAscending[1] = sp.loadStringResource(6 /* Nps11RatingValue1 */);\n ratingValuesAscending[2] = sp.loadStringResource(7 /* Nps11RatingValue2 */);\n ratingValuesAscending[3] = sp.loadStringResource(8 /* Nps11RatingValue3 */);\n ratingValuesAscending[4] = sp.loadStringResource(9 /* Nps11RatingValue4 */);\n ratingValuesAscending[5] = sp.loadStringResource(10 /* Nps11RatingValue5 */);\n ratingValuesAscending[6] = sp.loadStringResource(11 /* Nps11RatingValue6 */);\n ratingValuesAscending[7] = sp.loadStringResource(12 /* Nps11RatingValue7 */);\n ratingValuesAscending[8] = sp.loadStringResource(13 /* Nps11RatingValue8 */);\n ratingValuesAscending[9] = sp.loadStringResource(14 /* Nps11RatingValue9 */);\n ratingValuesAscending[10] = sp.loadStringResource(15 /* Nps11RatingValue10 */);\n if (!data.ratingData.question\n || !data.commentData.question\n || !data.promptData.title\n || !data.promptData.question\n || !data.promptData.yesButtonLabel\n || !data.promptData.noButtonLabel\n || !ratingValuesAscending[0]\n || !ratingValuesAscending[1]\n || !ratingValuesAscending[2]\n || !ratingValuesAscending[3]\n || !ratingValuesAscending[4]\n || !ratingValuesAscending[5]\n || !ratingValuesAscending[6]\n || !ratingValuesAscending[7]\n || !ratingValuesAscending[8]\n || !ratingValuesAscending[9]\n || !ratingValuesAscending[10]) {\n return null;\n }\n data.ratingData.ratingValuesAscending = ratingValuesAscending;\n return this.make(data);\n };\n // @Override\n NpsSurvey.prototype.getType = function () {\n return floodgate_shared_typings_1.SurveyType.Nps;\n };\n // @Override\n NpsSurvey.prototype.getSurveyInfo = function () {\n return this.surveyInfo;\n };\n // @Override\n NpsSurvey.prototype.getCommentComponent = function () {\n return this.question;\n };\n // @Override\n NpsSurvey.prototype.getPromptComponent = function () {\n return this.prompt;\n };\n // @Override\n NpsSurvey.prototype.getRatingComponent = function () {\n return this.rating;\n };\n // @Override\n NpsSurvey.prototype.getCVSurveyComponent = function () {\n return this.cvSurvey;\n };\n // @Override\n NpsSurvey.prototype.getTags = function () {\n return this.surveyInfo.getTags();\n };\n // @Override\n NpsSurvey.prototype.getComponent = function (componentType) {\n switch (componentType) {\n case \"Comment\" /* Comment */:\n return this.getCommentComponent();\n case \"Prompt\" /* Prompt */:\n return this.getPromptComponent();\n case \"Rating\" /* Rating */:\n return this.getRatingComponent();\n case \"CVSurvey\" /* CVSurvey */:\n return this.getCVSurveyComponent();\n default:\n return null;\n }\n };\n // @Override\n NpsSurvey.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var element = doc.createElement(floodgate_shared_typings_1.DOM_NPS_TAGNAME);\n this.getSurveyInfo().getDomElements(doc).forEach(function (child) {\n if (child) {\n element.appendChild(child);\n }\n });\n this.getCommentComponent().getDomElements(doc).forEach(function (child) {\n if (child) {\n element.appendChild(child);\n }\n });\n this.getRatingComponent().getDomElements(doc).forEach(function (child) {\n if (child) {\n element.appendChild(child);\n }\n });\n return [element];\n };\n // @Override\n NpsSurvey.prototype.getJsonElements = function () {\n var _a;\n var result = {};\n result = overrideValues(this.getSurveyInfo().getJsonElements(), result);\n result = overrideValues(this.getCommentComponent().getJsonElements(), result);\n result = overrideValues(this.getRatingComponent().getJsonElements(), result);\n result[floodgate_shared_typings_1.JSON_APPLICATION_KEYNAME] = {};\n result[floodgate_shared_typings_1.JSON_APPLICATION_KEYNAME][floodgate_shared_typings_1.JSON_EXTENDEDMANIFESTDATA_KEYNAME] =\n JSON.stringify((_a = {}, _a[floodgate_shared_typings_1.JSON_SURVEYSTRINGS_KEYNAME] = this.makeSurveyStrings(), _a));\n return result;\n };\n // @Override\n NpsSurvey.prototype.isContentValid = function () {\n return this.contentValid;\n };\n // Makes the string to send to Manifest respecting the components present in the survey\n NpsSurvey.prototype.makeSurveyStrings = function () {\n var actualStrings = {};\n if (this.prompt) {\n actualStrings[floodgate_shared_typings_1.JSON_PROMPT_KEYNAME] = this.prompt.getComponentJson();\n }\n if (this.rating) {\n actualStrings[floodgate_shared_typings_1.JSON_RATING_KEYNAME] = [this.rating.getComponentJson()];\n }\n if (this.question) {\n actualStrings[floodgate_shared_typings_1.JSON_COMMENT_KEYNAME] = [this.question.getComponentJson()];\n }\n return JSON.stringify(actualStrings);\n };\n return NpsSurvey;\n}(Survey_1.Survey));\n(function (NpsSurvey) {\n /**\n * Data required for a Nps Survey\n */\n var NpsSurveyData = /** @class */ (function () {\n function NpsSurveyData() {\n }\n return NpsSurveyData;\n }());\n NpsSurvey.NpsSurveyData = NpsSurveyData;\n})(NpsSurvey || (NpsSurvey = {}));\nexports.default = NpsSurvey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvTnBzU3VydmV5LnRzPzQ5YWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNktBZ0IwQztBQUUxQywySkFBb0U7QUFDcEUsOEpBQXNFO0FBQ3RFLHdKQUFrRTtBQUNsRSx3SkFBa0U7QUFDbEUsc0ZBQWtDO0FBQ2xDLGtHQUFrQztBQUNsQyxnSUFBa0Q7QUFFMUMsU0FBSyxHQUFxQixLQUFLLE1BQTFCLEVBQUUsY0FBYyxHQUFLLEtBQUssZUFBVixDQUFXO0FBRXhDO0lBQXdCLDZCQUFNO0lBNkw3QixtQkFBb0IsSUFBNkI7O1FBQWpELFlBQ0MsaUJBQU8sU0FvQlA7UUFuQkEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUN6QztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixLQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoQztRQUVELEtBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQUMsSUFBSSxDQUFDLFVBQVUsMENBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxPQUFDLElBQUksQ0FBQyxVQUFVLDBDQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JHLENBQUMsS0FBSyxDQUFDLEtBQUssT0FBQyxJQUFJLENBQUMsVUFBVSwwQ0FBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLE9BQUMsSUFBSSxDQUFDLFVBQVUsMENBQUUscUJBQXFCLENBQUM7WUFDL0YsQ0FBQyxLQUFLLENBQUMsS0FBSyxPQUFDLElBQUksQ0FBQyxXQUFXLDBDQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLEtBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSwwQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENB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SUFDL0UscUNBQWlCLEdBQXpCO1FBQ0MsSUFBTSxhQUFhLEdBQVcsRUFBRSxDQUFDO1FBRWpDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixhQUFhLENBQUMsOENBQW1CLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDcEU7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsYUFBYSxDQUFDLDhDQUFtQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztTQUN0RTtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQixhQUFhLENBQUMsK0NBQW9CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRixnQkFBQztBQUFELENBQUMsQ0ExVXVCLGVBQU0sR0EwVTdCO0FBRUQsV0FBTyxTQUFTO0lBQ2Y7O09BRUc7SUFDSDtRQUFBO1FBT0EsQ0FBQztRQUFELG9CQUFDO0lBQUQsQ0FBQztJQVBZLHVCQUFhLGdCQU96QjtBQUNGLENBQUMsRUFaTSxTQUFTLEtBQVQsU0FBUyxRQVlmO0FBRUQsa0JBQWUsU0FBUyxDQUFDIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvZGlzdC9zcmMvU3VydmV5cy9OcHNTdXJ2ZXkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdERPTV9OUFNfVEFHTkFNRSxcclxuXHRGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUsXHJcblx0SUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLFxyXG5cdElOcHNTdXJ2ZXksXHJcblx0SVN1cnZleUNvbXBvbmVudCxcclxuXHRJU3VydmV5SW5mbyxcclxuXHRJVXhTY2hlbWEsXHJcblx0SlNPTl9BUFBMSUNBVElPTl9LRVlOQU1FLFxyXG5cdEpTT05fQ09NTUVOVF9LRVlOQU1FLFxyXG5cdEpTT05fRVhURU5ERURNQU5JRkVTVERBVEFfS0VZTkFNRSxcclxuXHRKU09OX1BST01QVF9LRVlOQU1FLFxyXG5cdEpTT05fUkFUSU5HX0tFWU5BTUUsXHJcblx0SlNPTl9TVVJWRVlTVFJJTkdTX0tFWU5BTUUsXHJcblx0U3VydmV5Q29tcG9uZW50VHlwZSxcclxuXHRTdXJ2ZXlUeXBlLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBDYW1wYWlnblN1cnZleUNvbnRlbnQsIENhbXBhaWduU3VydmV5VGVtcGxhdGUgfSBmcm9tIFwiLi4vQ2FtcGFpZ24vQ2FtcGFpZ25EZWZpbml0aW9uUHJvdmlkZXJcIjtcclxuaW1wb3J0IENvbW1lbnRDb21wb25lbnQgZnJvbSBcIi4uL1N1cnZleUNvbXBvbmVudHMvQ29tbWVudENvbXBvbmVudFwiO1xyXG5pbXBvcnQgQ1ZTdXJ2ZXlDb21wb25lbnQgZnJvbSBcIi4uL1N1cnZleUNvbXBvbmVudHMvQ1ZTdXJ2ZXlDb21wb25lbnRcIjtcclxuaW1wb3J0IFByb21wdENvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9Qcm9tcHRDb21wb25lbnRcIjtcclxuaW1wb3J0IFJhdGluZ0NvbXBvbmVudCBmcm9tIFwiLi4vU3VydmV5Q29tcG9uZW50cy9SYXRpbmdDb21wb25lbnRcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCB7IFN1cnZleSB9IGZyb20gXCIuL1N1cnZleVwiO1xyXG5pbXBvcnQgU3VydmV5RGF0YVNvdXJjZSBmcm9tIFwiLi9TdXJ2ZXlEYXRhU291cmNlXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VLCBvdmVycmlkZVZhbHVlcyB9ID0gVXRpbHM7XHJcblxyXG5jbGFzcyBOcHNTdXJ2ZXkgZXh0ZW5kcyBTdXJ2ZXkgaW1wbGVtZW50cyBJTnBzU3VydmV5IHtcclxuXHRwdWJsaWMgc3RhdGljIG1ha2UoZGF0YTogTnBzU3VydmV5Lk5wc1N1cnZleURhdGEpOiBJTnBzU3VydmV5IHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdHJldHVybiBuZXcgTnBzU3VydmV5KGRhdGEpO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZUN1c3RvbShiYXNlRGF0YTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YSwgc3A6IElGbG9vZGdhdGVTdHJpbmdQcm92aWRlcixcclxuXHRcdHN1cnZleU1vZGVsOiBDYW1wYWlnblN1cnZleVRlbXBsYXRlKTogSU5wc1N1cnZleSB7XHJcblxyXG5cdFx0aWYgKGlzTk9VKGJhc2VEYXRhKSB8fCBpc05PVShzcCkgfHwgaXNOT1Uoc3VydmV5TW9kZWwpKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW10gPSBbXTtcclxuXHRcdGNvbnN0IGNvbnRlbnQ6IENhbXBhaWduU3VydmV5Q29udGVudCA9IHN1cnZleU1vZGVsLmNvbnRlbnQ7XHJcblx0XHRsZXQgY29udGVudFZhbGlkID0gdHJ1ZTtcclxuXHJcblx0XHQvLyBFaXRoZXIgVXhTY2hlbWEgb3IgUHJvbXB0L0NvbnRlbnQgbXVzdCBiZSBpbiB0aGUgc3VydmV5XHJcblx0XHRpZiAoaXNOT1UoY29udGVudCkgfHwgaXNOT1UoY29udGVudC5jb21tZW50KVxyXG5cdFx0XHR8fCBpc05PVShjb250ZW50LnByb21wdCkgfHwgaXNOT1UoY29udGVudC5yYXRpbmcpKSB7XHJcblx0XHRcdGNvbnRlbnRWYWxpZCA9IGZhbHNlO1xyXG5cdFx0XHRpZiAoIXN1cnZleU1vZGVsLnV4U2NoZW1hKSB7XHJcblx0XHRcdFx0cmV0dXJuIG51bGxcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRhdGEgPSBuZXcgTnBzU3VydmV5Lk5wc1N1cnZleURhdGEoKTtcclxuXHRcdGRhdGEuYmFzZURhdGEgPSBiYXNlRGF0YTtcclxuXHRcdGRhdGEudXhTY2hlbWEgPSBzdXJ2ZXlNb2RlbC51eFNjaGVtYTtcclxuXHJcblx0XHRpZiAoY29udGVudFZhbGlkKSB7XHJcblx0XHRcdGRhdGEucHJvbXB0RGF0YSA9IG5ldyBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YSgpO1xyXG5cdFx0XHRkYXRhLnJhdGluZ0RhdGEgPSBuZXcgUmF0aW5nQ29tcG9uZW50LlJhdGluZ0NvbXBvbmVudERhdGEoKTtcclxuXHRcdFx0ZGF0YS5jb21tZW50RGF0YSA9IG5ldyBDb21tZW50Q29tcG9uZW50LkNvbW1lbnRDb21wb25lbnREYXRhKCk7XHJcblxyXG5cdFx0XHRkYXRhLnByb21wdERhdGEudGl0bGUgPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQudGl0bGUpO1xyXG5cdFx0XHRkYXRhLnByb21wdERhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQucXVlc3Rpb24pO1xyXG5cdFx0XHRkYXRhLnByb21wdERhdGEueWVzQnV0dG9uTGFiZWwgPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5wcm9tcHQueWVzTGFiZWwpO1xyXG5cdFx0XHRkYXRhLnByb21wdERhdGEubm9CdXR0b25MYWJlbCA9IHNwLmdldEN1c3RvbVN0cmluZyhjb250ZW50LnByb21wdC5ub0xhYmVsKTtcclxuXHRcdFx0ZGF0YS5yYXRpbmdEYXRhLnF1ZXN0aW9uID0gc3AuZ2V0Q3VzdG9tU3RyaW5nKGNvbnRlbnQucmF0aW5nLnF1ZXN0aW9uKTtcclxuXHRcdFx0ZGF0YS5yYXRpbmdEYXRhLmlzWmVyb0Jhc2VkID0gY29udGVudC5yYXRpbmcuaXNaZXJvQmFzZWQ7XHJcblx0XHRcdGRhdGEuY29tbWVudERhdGEucXVlc3Rpb24gPSBzcC5nZXRDdXN0b21TdHJpbmcoY29udGVudC5jb21tZW50LnF1ZXN0aW9uKTtcclxuXHJcblx0XHRcdGZvciAoY29uc3QgdmFsdWUgb2YgY29udGVudC5yYXRpbmcucmF0aW5nVmFsdWVzQXNjZW5kaW5nKSB7XHJcblx0XHRcdFx0Y29uc3QgY3VzdG9tU3RyaW5nOiBzdHJpbmcgPSBzcC5nZXRDdXN0b21TdHJpbmcodmFsdWUpO1xyXG5cclxuXHRcdFx0XHRpZiAoaXNOT1UoY3VzdG9tU3RyaW5nKSkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmcucHVzaChjdXN0b21TdHJpbmcpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nID0gcmF0aW5nVmFsdWVzQXNjZW5kaW5nO1xyXG5cclxuXHRcdFx0aWYgKGlzTk9VKGRhdGEucmF0aW5nRGF0YS5xdWVzdGlvbilcclxuXHRcdFx0XHR8fCBpc05PVShkYXRhLmNvbW1lbnREYXRhLnF1ZXN0aW9uKVxyXG5cdFx0XHRcdHx8IGlzTk9VKGRhdGEucHJvbXB0RGF0YS50aXRsZSlcclxuXHRcdFx0XHR8fCBpc05PVShkYXRhLnByb21wdERhdGEucXVlc3Rpb24pXHJcblx0XHRcdFx0fHwgaXNOT1UoZGF0YS5wcm9tcHREYXRhLnllc0J1dHRvbkxhYmVsKVxyXG5cdFx0XHRcdHx8IGlzTk9VKGRhdGEucHJvbXB0RGF0YS5ub0J1dHRvbkxhYmVsKVxyXG5cdFx0XHRcdHx8IGlzTk9VKGRhdGEucmF0aW5nRGF0YS5yYXRpbmdWYWx1ZXNBc2NlbmRpbmcpKSB7XHJcblxyXG5cdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBjdnN1cnZleSBkYXRhIGlzIG5vdCByZXF1aXJlZCBvbiBhbGwgc3VydmV5cy5cclxuXHRcdFx0aWYgKGNvbnRlbnQuY3ZTdXJ2ZXkpIHtcclxuXHRcdFx0XHRkYXRhLmN2U3VydmV5RGF0YSA9IG5ldyBDVlN1cnZleUNvbXBvbmVudC5DVlN1cnZleUNvbXBvbmVudERhdGEoKTtcclxuXHRcdFx0XHRkYXRhLmN2U3VydmV5RGF0YS5jdXN0b21lclZvaWNlRm9ybUlkID0gY29udGVudC5jdlN1cnZleS5jdXN0b21lclZvaWNlRm9ybUlkO1xyXG5cclxuXHRcdFx0XHRpZiAoaXNOT1UoZGF0YS5jdlN1cnZleURhdGEuY3VzdG9tZXJWb2ljZUZvcm1JZCkpIHtcclxuXHRcdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLm1ha2UoZGF0YSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgc3RhdGljIG1ha2U1UG9pbnQoYmFzZURhdGE6IFN1cnZleURhdGFTb3VyY2UuU3VydmV5RGF0YVNvdXJjZURhdGEsIHNwOiBJRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIpOiBJTnBzU3VydmV5IHtcclxuXHRcdGlmICghYmFzZURhdGEgfHwgIXNwKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRhdGEgPSBuZXcgTnBzU3VydmV5Lk5wc1N1cnZleURhdGEoKTtcclxuXHRcdGRhdGEuYmFzZURhdGEgPSBiYXNlRGF0YTtcclxuXHRcdGRhdGEucmF0aW5nRGF0YSA9IG5ldyBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YSgpO1xyXG5cdFx0ZGF0YS5yYXRpbmdEYXRhLmlzWmVyb0Jhc2VkID0gZmFsc2U7XHJcblx0XHRkYXRhLmNvbW1lbnREYXRhID0gbmV3IENvbW1lbnRDb21wb25lbnQuQ29tbWVudENvbXBvbmVudERhdGEoKTtcclxuXHRcdGRhdGEucHJvbXB0RGF0YSA9IG5ldyBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YSgpO1xyXG5cdFx0ZGF0YS5yYXRpbmdEYXRhLnF1ZXN0aW9uID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHNSYXRpbmdRdWVzdGlvbik7XHJcblx0XHRkYXRhLmNvbW1lbnREYXRhLnF1ZXN0aW9uID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHNDb21tZW50UXVlc3Rpb24pO1xyXG5cdFx0ZGF0YS5wcm9tcHREYXRhLnRpdGxlID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHNQcm9tcHRUaXRsZSk7XHJcblx0XHRkYXRhLnByb21wdERhdGEucXVlc3Rpb24gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wc1Byb21wdFF1ZXN0aW9uKTtcclxuXHRcdGRhdGEucHJvbXB0RGF0YS55ZXNCdXR0b25MYWJlbCA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzUHJvbXB0WWVzTGFiZWwpO1xyXG5cdFx0ZGF0YS5wcm9tcHREYXRhLm5vQnV0dG9uTGFiZWwgPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wc1Byb21wdE5vdE5vd0xhYmVsKTtcclxuXHRcdGNvbnN0IHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW10gPSBuZXcgQXJyYXkoNSk7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMF0gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wczVSYXRpbmdWYWx1ZTEpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzFdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHM1UmF0aW5nVmFsdWUyKTtcclxuXHRcdHJhdGluZ1ZhbHVlc0FzY2VuZGluZ1syXSA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzNVJhdGluZ1ZhbHVlMyk7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbM10gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wczVSYXRpbmdWYWx1ZTQpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzRdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHM1UmF0aW5nVmFsdWU1KTtcclxuXHJcblx0XHRpZiAoIWRhdGEucmF0aW5nRGF0YS5xdWVzdGlvblxyXG5cdFx0XHR8fCAhZGF0YS5jb21tZW50RGF0YS5xdWVzdGlvblxyXG5cdFx0XHR8fCAhZGF0YS5wcm9tcHREYXRhLnRpdGxlXHJcblx0XHRcdHx8ICFkYXRhLnByb21wdERhdGEucXVlc3Rpb25cclxuXHRcdFx0fHwgIWRhdGEucHJvbXB0RGF0YS55ZXNCdXR0b25MYWJlbFxyXG5cdFx0XHR8fCAhZGF0YS5wcm9tcHREYXRhLm5vQnV0dG9uTGFiZWxcclxuXHRcdFx0fHwgIXJhdGluZ1ZhbHVlc0FzY2VuZGluZ1swXVxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzFdXHJcblx0XHRcdHx8ICFyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMl1cclxuXHRcdFx0fHwgIXJhdGluZ1ZhbHVlc0FzY2VuZGluZ1szXVxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzRdKSB7XHJcblxyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nID0gcmF0aW5nVmFsdWVzQXNjZW5kaW5nO1xyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0aWMgbWFrZTExUG9pbnQoYmFzZURhdGE6IFN1cnZleURhdGFTb3VyY2UuU3VydmV5RGF0YVNvdXJjZURhdGEsIHNwOiBJRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIpOiBJTnBzU3VydmV5IHtcclxuXHRcdGlmICghYmFzZURhdGEgfHwgIXNwKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGRhdGEgPSBuZXcgTnBzU3VydmV5Lk5wc1N1cnZleURhdGEoKTtcclxuXHRcdGRhdGEuYmFzZURhdGEgPSBiYXNlRGF0YTtcclxuXHRcdGRhdGEucmF0aW5nRGF0YSA9IG5ldyBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YSgpO1xyXG5cdFx0ZGF0YS5yYXRpbmdEYXRhLmlzWmVyb0Jhc2VkID0gdHJ1ZTtcclxuXHRcdGRhdGEuY29tbWVudERhdGEgPSBuZXcgQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YSgpO1xyXG5cdFx0ZGF0YS5wcm9tcHREYXRhID0gbmV3IFByb21wdENvbXBvbmVudC5Qcm9tcHRDb21wb25lbnREYXRhKCk7XHJcblx0XHRkYXRhLnJhdGluZ0RhdGEucXVlc3Rpb24gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wc1JhdGluZ1F1ZXN0aW9uKTtcclxuXHRcdGRhdGEuY29tbWVudERhdGEucXVlc3Rpb24gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wc0NvbW1lbnRRdWVzdGlvbik7XHJcblx0XHRkYXRhLnByb21wdERhdGEudGl0bGUgPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wc1Byb21wdFRpdGxlKTtcclxuXHRcdGRhdGEucHJvbXB0RGF0YS5xdWVzdGlvbiA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzUHJvbXB0UXVlc3Rpb24pO1xyXG5cdFx0ZGF0YS5wcm9tcHREYXRhLnllc0J1dHRvbkxhYmVsID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHNQcm9tcHRZZXNMYWJlbCk7XHJcblx0XHRkYXRhLnByb21wdERhdGEubm9CdXR0b25MYWJlbCA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzUHJvbXB0Tm90Tm93TGFiZWwpO1xyXG5cclxuXHRcdGNvbnN0IHJhdGluZ1ZhbHVlc0FzY2VuZGluZzogc3RyaW5nW10gPSBuZXcgQXJyYXkoMTEpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzBdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHMxMVJhdGluZ1ZhbHVlMCk7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMV0gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wczExUmF0aW5nVmFsdWUxKTtcclxuXHRcdHJhdGluZ1ZhbHVlc0FzY2VuZGluZ1syXSA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzMTFSYXRpbmdWYWx1ZTIpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzNdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHMxMVJhdGluZ1ZhbHVlMyk7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbNF0gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wczExUmF0aW5nVmFsdWU0KTtcclxuXHRcdHJhdGluZ1ZhbHVlc0FzY2VuZGluZ1s1XSA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzMTFSYXRpbmdWYWx1ZTUpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzZdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHMxMVJhdGluZ1ZhbHVlNik7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbN10gPSBzcC5sb2FkU3RyaW5nUmVzb3VyY2UoRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJTdHJpbmdUeXBlLk5wczExUmF0aW5nVmFsdWU3KTtcclxuXHRcdHJhdGluZ1ZhbHVlc0FzY2VuZGluZ1s4XSA9IHNwLmxvYWRTdHJpbmdSZXNvdXJjZShGbG9vZGdhdGVTdHJpbmdQcm92aWRlclN0cmluZ1R5cGUuTnBzMTFSYXRpbmdWYWx1ZTgpO1xyXG5cdFx0cmF0aW5nVmFsdWVzQXNjZW5kaW5nWzldID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHMxMVJhdGluZ1ZhbHVlOSk7XHJcblx0XHRyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMTBdID0gc3AubG9hZFN0cmluZ1Jlc291cmNlKEZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyU3RyaW5nVHlwZS5OcHMxMVJhdGluZ1ZhbHVlMTApO1xyXG5cclxuXHRcdGlmICghZGF0YS5yYXRpbmdEYXRhLnF1ZXN0aW9uXHJcblx0XHRcdHx8ICFkYXRhLmNvbW1lbnREYXRhLnF1ZXN0aW9uXHJcblx0XHRcdHx8ICFkYXRhLnByb21wdERhdGEudGl0bGVcclxuXHRcdFx0fHwgIWRhdGEucHJvbXB0RGF0YS5xdWVzdGlvblxyXG5cdFx0XHR8fCAhZGF0YS5wcm9tcHREYXRhLnllc0J1dHRvbkxhYmVsXHJcblx0XHRcdHx8ICFkYXRhLnByb21wdERhdGEubm9CdXR0b25MYWJlbFxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzBdXHJcblx0XHRcdHx8ICFyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMV1cclxuXHRcdFx0fHwgIXJhdGluZ1ZhbHVlc0FzY2VuZGluZ1syXVxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzNdXHJcblx0XHRcdHx8ICFyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbNF1cclxuXHRcdFx0fHwgIXJhdGluZ1ZhbHVlc0FzY2VuZGluZ1s1XVxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzZdXHJcblx0XHRcdHx8ICFyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbN11cclxuXHRcdFx0fHwgIXJhdGluZ1ZhbHVlc0FzY2VuZGluZ1s4XVxyXG5cdFx0XHR8fCAhcmF0aW5nVmFsdWVzQXNjZW5kaW5nWzldXHJcblx0XHRcdHx8ICFyYXRpbmdWYWx1ZXNBc2NlbmRpbmdbMTBdKSB7XHJcblxyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRkYXRhLnJhdGluZ0RhdGEucmF0aW5nVmFsdWVzQXNjZW5kaW5nID0gcmF0aW5nVmFsdWVzQXNjZW5kaW5nO1xyXG5cdFx0cmV0dXJuIHRoaXMubWFrZShkYXRhKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3VydmV5SW5mbzogU3VydmV5RGF0YVNvdXJjZTtcclxuXHRwcml2YXRlIHF1ZXN0aW9uOiBDb21tZW50Q29tcG9uZW50O1xyXG5cdHByaXZhdGUgcHJvbXB0OiBQcm9tcHRDb21wb25lbnQ7XHJcblx0cHJpdmF0ZSByYXRpbmc6IFJhdGluZ0NvbXBvbmVudDtcclxuXHRwcml2YXRlIGN2U3VydmV5OiBDVlN1cnZleUNvbXBvbmVudDtcclxuXHRwcml2YXRlIGNvbnRlbnRWYWxpZDogYm9vbGVhbjtcclxuXHJcblx0cHJpdmF0ZSBjb25zdHJ1Y3RvcihkYXRhOiBOcHNTdXJ2ZXkuTnBzU3VydmV5RGF0YSkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdGlmICghZGF0YSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIG11c3Qgbm90IGJlIG51bGxcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGRhdGEudXhTY2hlbWEpIHtcclxuXHRcdFx0dGhpcy5zZXRVeFNjaGVtYShkYXRhLnV4U2NoZW1hKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmNvbnRlbnRWYWxpZCA9ICghVXRpbHMuaXNOT1UoZGF0YS5wcm9tcHREYXRhPy5xdWVzdGlvbikgJiYgIVV0aWxzLmlzTk9VKGRhdGEucHJvbXB0RGF0YT8udGl0bGUpKSAmJlxyXG5cdFx0IVV0aWxzLmlzTk9VKGRhdGEucmF0aW5nRGF0YT8ucXVlc3Rpb24pICYmICFVdGlscy5pc05PVShkYXRhLnJhdGluZ0RhdGE/LnJhdGluZ1ZhbHVlc0FzY2VuZGluZykgJiZcclxuXHRcdCFVdGlscy5pc05PVShkYXRhLmNvbW1lbnREYXRhPy5xdWVzdGlvbik7XHJcblxyXG5cdFx0dGhpcy5zdXJ2ZXlJbmZvID0gbmV3IFN1cnZleURhdGFTb3VyY2UoZGF0YS5iYXNlRGF0YSk7XHJcblx0XHRpZiAodGhpcy5jb250ZW50VmFsaWQpIHtcclxuXHRcdFx0dGhpcy5wcm9tcHQgPSBuZXcgUHJvbXB0Q29tcG9uZW50KGRhdGEucHJvbXB0RGF0YSk7XHJcblx0XHRcdHRoaXMucXVlc3Rpb24gPSBuZXcgQ29tbWVudENvbXBvbmVudChkYXRhLmNvbW1lbnREYXRhKTtcclxuXHRcdFx0dGhpcy5yYXRpbmcgPSBuZXcgUmF0aW5nQ29tcG9uZW50KGRhdGEucmF0aW5nRGF0YSk7XHJcblx0XHRcdHRoaXMuY3ZTdXJ2ZXkgPSBkYXRhLmN2U3VydmV5RGF0YSA/IChuZXcgQ1ZTdXJ2ZXlDb21wb25lbnQoZGF0YS5jdlN1cnZleURhdGEpKSA6IG51bGw7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VHlwZSgpOiBTdXJ2ZXlUeXBlIHtcclxuXHRcdHJldHVybiBTdXJ2ZXlUeXBlLk5wcztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRTdXJ2ZXlJbmZvKCk6IElTdXJ2ZXlJbmZvIHtcclxuXHRcdHJldHVybiB0aGlzLnN1cnZleUluZm87XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29tbWVudENvbXBvbmVudCgpOiBDb21tZW50Q29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLnF1ZXN0aW9uO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFByb21wdENvbXBvbmVudCgpOiBQcm9tcHRDb21wb25lbnQge1xyXG5cdFx0cmV0dXJuIHRoaXMucHJvbXB0O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFJhdGluZ0NvbXBvbmVudCgpOiBSYXRpbmdDb21wb25lbnQge1xyXG5cdFx0cmV0dXJuIHRoaXMucmF0aW5nO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldENWU3VydmV5Q29tcG9uZW50KCk6IENWU3VydmV5Q29tcG9uZW50IHtcclxuXHRcdHJldHVybiB0aGlzLmN2U3VydmV5O1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFRhZ3MoKTogc3RyaW5nW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMuc3VydmV5SW5mby5nZXRUYWdzKCk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0Q29tcG9uZW50KGNvbXBvbmVudFR5cGU6IFN1cnZleUNvbXBvbmVudFR5cGUpOiBJU3VydmV5Q29tcG9uZW50IHtcclxuXHRcdHN3aXRjaCAoY29tcG9uZW50VHlwZSkge1xyXG5cdFx0XHRjYXNlIFN1cnZleUNvbXBvbmVudFR5cGUuQ29tbWVudDpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRDb21tZW50Q29tcG9uZW50KCk7XHJcblx0XHRcdGNhc2UgU3VydmV5Q29tcG9uZW50VHlwZS5Qcm9tcHQ6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UHJvbXB0Q29tcG9uZW50KCk7XHJcblx0XHRcdGNhc2UgU3VydmV5Q29tcG9uZW50VHlwZS5SYXRpbmc6XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0UmF0aW5nQ29tcG9uZW50KCk7XHJcblx0XHRcdGNhc2UgU3VydmV5Q29tcG9uZW50VHlwZS5DVlN1cnZleTpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRDVlN1cnZleUNvbXBvbmVudCgpO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldERvbUVsZW1lbnRzKGRvYzogRG9jdW1lbnQpOiBFbGVtZW50W10ge1xyXG5cdFx0aWYgKCFkb2MpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRG9jdW1lbnQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBlbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX05QU19UQUdOQU1FKTtcclxuXHJcblx0XHR0aGlzLmdldFN1cnZleUluZm8oKS5nZXREb21FbGVtZW50cyhkb2MpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcblx0XHRcdGlmIChjaGlsZCkge1xyXG5cdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmdldENvbW1lbnRDb21wb25lbnQoKS5nZXREb21FbGVtZW50cyhkb2MpLmZvckVhY2goKGNoaWxkKSA9PiB7XHJcblx0XHRcdGlmIChjaGlsZCkge1xyXG5cdFx0XHRcdGVsZW1lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLmdldFJhdGluZ0NvbXBvbmVudCgpLmdldERvbUVsZW1lbnRzKGRvYykuZm9yRWFjaCgoY2hpbGQpID0+IHtcclxuXHRcdFx0aWYgKGNoaWxkKSB7XHJcblx0XHRcdFx0ZWxlbWVudC5hcHBlbmRDaGlsZChjaGlsZCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHRcdHJldHVybiBbZWxlbWVudF07XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0SnNvbkVsZW1lbnRzKCk6IG9iamVjdCB7XHJcblx0XHRsZXQgcmVzdWx0OiBvYmplY3QgPSB7fTtcclxuXHJcblx0XHRyZXN1bHQgPSBvdmVycmlkZVZhbHVlcyh0aGlzLmdldFN1cnZleUluZm8oKS5nZXRKc29uRWxlbWVudHMoKSwgcmVzdWx0KTtcclxuXHRcdHJlc3VsdCA9IG92ZXJyaWRlVmFsdWVzKHRoaXMuZ2V0Q29tbWVudENvbXBvbmVudCgpLmdldEpzb25FbGVtZW50cygpLCByZXN1bHQpO1xyXG5cdFx0cmVzdWx0ID0gb3ZlcnJpZGVWYWx1ZXModGhpcy5nZXRSYXRpbmdDb21wb25lbnQoKS5nZXRKc29uRWxlbWVudHMoKSwgcmVzdWx0KTtcclxuXHJcblx0XHRyZXN1bHRbSlNPTl9BUFBMSUNBVElPTl9LRVlOQU1FXSA9IHt9O1xyXG5cdFx0cmVzdWx0W0pTT05fQVBQTElDQVRJT05fS0VZTkFNRV1bSlNPTl9FWFRFTkRFRE1BTklGRVNUREFUQV9LRVlOQU1FXSA9XHJcblx0XHRcdEpTT04uc3RyaW5naWZ5KHsgW0pTT05fU1VSVkVZU1RSSU5HU19LRVlOQU1FXTogdGhpcy5tYWtlU3VydmV5U3RyaW5ncygpIH0pO1xyXG5cclxuXHRcdHJldHVybiByZXN1bHQ7XHJcblx0fVxyXG5cdFxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc0NvbnRlbnRWYWxpZCgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmNvbnRlbnRWYWxpZDtcclxuXHR9XHJcblxyXG5cdC8vIE1ha2VzIHRoZSBzdHJpbmcgdG8gc2VuZCB0byBNYW5pZmVzdCByZXNwZWN0aW5nIHRoZSBjb21wb25lbnRzIHByZXNlbnQgaW4gdGhlIHN1cnZleVxyXG5cdHByaXZhdGUgbWFrZVN1cnZleVN0cmluZ3MoKTogc3RyaW5nIHtcclxuXHRcdGNvbnN0IGFjdHVhbFN0cmluZ3M6IG9iamVjdCA9IHt9O1xyXG5cclxuXHRcdGlmICh0aGlzLnByb21wdCkge1xyXG5cdFx0XHRhY3R1YWxTdHJpbmdzW0pTT05fUFJPTVBUX0tFWU5BTUVdID0gdGhpcy5wcm9tcHQuZ2V0Q29tcG9uZW50SnNvbigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLnJhdGluZykge1xyXG5cdFx0XHRhY3R1YWxTdHJpbmdzW0pTT05fUkFUSU5HX0tFWU5BTUVdID0gW3RoaXMucmF0aW5nLmdldENvbXBvbmVudEpzb24oKV07XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMucXVlc3Rpb24pIHtcclxuXHRcdFx0YWN0dWFsU3RyaW5nc1tKU09OX0NPTU1FTlRfS0VZTkFNRV0gPSBbdGhpcy5xdWVzdGlvbi5nZXRDb21wb25lbnRKc29uKCldO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBKU09OLnN0cmluZ2lmeShhY3R1YWxTdHJpbmdzKTtcclxuXHR9XHJcbn1cclxuXHJcbm1vZHVsZSBOcHNTdXJ2ZXkge1xyXG5cdC8qKlxyXG5cdCAqIERhdGEgcmVxdWlyZWQgZm9yIGEgTnBzIFN1cnZleVxyXG5cdCAqL1xyXG5cdGV4cG9ydCBjbGFzcyBOcHNTdXJ2ZXlEYXRhIHtcclxuXHRcdHB1YmxpYyBiYXNlRGF0YTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YTtcclxuXHRcdHB1YmxpYyBjb21tZW50RGF0YTogQ29tbWVudENvbXBvbmVudC5Db21tZW50Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBwcm9tcHREYXRhOiBQcm9tcHRDb21wb25lbnQuUHJvbXB0Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyByYXRpbmdEYXRhOiBSYXRpbmdDb21wb25lbnQuUmF0aW5nQ29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyBjdlN1cnZleURhdGE6IENWU3VydmV5Q29tcG9uZW50LkNWU3VydmV5Q29tcG9uZW50RGF0YTtcclxuXHRcdHB1YmxpYyB1eFNjaGVtYTogSVV4U2NoZW1hO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgTnBzU3VydmV5O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/NpsSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/Survey.js": /*!***************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/Survey.js ***! \***************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Survey = void 0;\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar Utils = __webpack_require__(/*! ./../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar Survey = /** @class */ (function () {\n function Survey() {\n }\n Survey.prototype.getCampaignId = function () {\n return this.getSurveyInfo().getBackEndId();\n };\n Survey.prototype.getLauncherType = function () {\n return this.getSurveyInfo().getLauncherType();\n };\n Survey.prototype.getClientFeedbackId = function () {\n return this.clientFeedbackId;\n };\n // @Override\n Survey.prototype.getTags = function () {\n return this.getSurveyInfo().getTags();\n };\n Survey.prototype.submit = function () {\n return __awaiter(this, void 0, void 0, function () {\n var surveyType, transporter;\n return __generator(this, function (_a) {\n surveyType = floodgate_shared_typings_1.SurveyType[this.getType()];\n transporter = FloodgateEngine_1.FloodgateEngine.getTransportFactory().makeTransporter(surveyType);\n transporter.setManifestValues(this.getJsonElements());\n this.clientFeedbackId = transporter.getClientFeedbackId();\n return [2 /*return*/, transporter.submit()];\n });\n });\n };\n Survey.prototype.getPreGeneratedClientFeedbackId = function () {\n if (this.clientFeedbackId) {\n return this.clientFeedbackId;\n }\n else {\n return this.clientFeedbackId = Utils.guid();\n }\n };\n Survey.prototype.getUxSchema = function () {\n return this.uxSchema;\n };\n Survey.prototype.setUxSchema = function (inputSchema) {\n this.uxSchema = inputSchema;\n };\n Survey.prototype.isContentValid = function () {\n return true;\n };\n return Survey;\n}());\nexports.Survey = Survey;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvU3VydmV5LnRzPzZkZDUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNktBQW9KO0FBQ3BKLHNIQUFxRDtBQUNyRCx3RkFBb0M7QUFFcEM7SUFBQTtJQTREQSxDQUFDO0lBckRPLDhCQUFhLEdBQXBCO1FBQ0MsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUVNLGdDQUFlLEdBQXRCO1FBQ0MsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLG9DQUFtQixHQUExQjtRQUNDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO0lBQ0wsd0JBQU8sR0FBZDtRQUNDLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFWSx1QkFBTSxHQUFuQjs7OztnQkFDTyxVQUFVLEdBQVcscUNBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDaEQsV0FBVyxHQUFpQixpQ0FBZSxDQUFDLG1CQUFtQixFQUFFLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNwRyxXQUFXLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDMUQsc0JBQU8sV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFDOzs7S0FDNUI7SUFFTSxnREFBK0IsR0FBdEM7UUFDQyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3QjthQUFNO1lBQ04sT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzVDO0lBQ0YsQ0FBQztJQUVNLDRCQUFXLEdBQWxCO1FBQ0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFTSw0QkFBVyxHQUFsQixVQUFtQixXQUFzQjtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztJQUM3QixDQUFDO0lBRU0sK0JBQWMsR0FBckI7UUFDQyxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7SUFVRixhQUFDO0FBQUQsQ0FBQztBQTVEcUIsd0JBQU0iLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9TdXJ2ZXlzL1N1cnZleS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTdXJ2ZXksIElTdXJ2ZXlDb21wb25lbnQsIElTdXJ2ZXlJbmZvLCBJVHJhbnNwb3J0ZXIsIElVeFNjaGVtYSwgU3VydmV5Q29tcG9uZW50VHlwZSwgU3VydmV5VHlwZSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBGbG9vZGdhdGVFbmdpbmUgfSBmcm9tIFwiLi4vRmxvb2RnYXRlRW5naW5lXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuLy4uL1V0aWxzXCI7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3VydmV5IGltcGxlbWVudHMgSVN1cnZleSB7XHJcblx0cHJpdmF0ZSBzdXJ2ZXk6IElTdXJ2ZXk7XHJcblx0cHJpdmF0ZSBjbGllbnRGZWVkYmFja0lkOiBzdHJpbmc7XHJcblx0cHJpdmF0ZSB1eFNjaGVtYTogSVV4U2NoZW1hXHJcblxyXG5cdHB1YmxpYyBhYnN0cmFjdCBnZXRDb21wb25lbnQoY29tcG9uZW50VHlwZTogU3VydmV5Q29tcG9uZW50VHlwZSk6IElTdXJ2ZXlDb21wb25lbnQ7XHJcblxyXG5cdHB1YmxpYyBnZXRDYW1wYWlnbklkKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRTdXJ2ZXlJbmZvKCkuZ2V0QmFja0VuZElkKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0TGF1bmNoZXJUeXBlKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5nZXRTdXJ2ZXlJbmZvKCkuZ2V0TGF1bmNoZXJUeXBlKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0Q2xpZW50RmVlZGJhY2tJZCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuY2xpZW50RmVlZGJhY2tJZDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRUYWdzKCk6IHN0cmluZ1tdIHtcclxuXHRcdHJldHVybiB0aGlzLmdldFN1cnZleUluZm8oKS5nZXRUYWdzKCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgc3VibWl0KCk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0Y29uc3Qgc3VydmV5VHlwZTogc3RyaW5nID0gU3VydmV5VHlwZVt0aGlzLmdldFR5cGUoKV07XHJcblx0XHRjb25zdCB0cmFuc3BvcnRlcjogSVRyYW5zcG9ydGVyID0gRmxvb2RnYXRlRW5naW5lLmdldFRyYW5zcG9ydEZhY3RvcnkoKS5tYWtlVHJhbnNwb3J0ZXIoc3VydmV5VHlwZSk7XHJcblx0XHR0cmFuc3BvcnRlci5zZXRNYW5pZmVzdFZhbHVlcyh0aGlzLmdldEpzb25FbGVtZW50cygpKTtcclxuXHRcdHRoaXMuY2xpZW50RmVlZGJhY2tJZCA9IHRyYW5zcG9ydGVyLmdldENsaWVudEZlZWRiYWNrSWQoKTtcclxuXHRcdHJldHVybiB0cmFuc3BvcnRlci5zdWJtaXQoKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRQcmVHZW5lcmF0ZWRDbGllbnRGZWVkYmFja0lkKCk6IHN0cmluZyB7XHJcblx0XHRpZiAodGhpcy5jbGllbnRGZWVkYmFja0lkKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmNsaWVudEZlZWRiYWNrSWQ7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5jbGllbnRGZWVkYmFja0lkID0gVXRpbHMuZ3VpZCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRwdWJsaWMgZ2V0VXhTY2hlbWEoKTogSVV4U2NoZW1hIHtcclxuXHRcdHJldHVybiB0aGlzLnV4U2NoZW1hO1xyXG5cdH1cclxuXHRcclxuXHRwdWJsaWMgc2V0VXhTY2hlbWEoaW5wdXRTY2hlbWE6IElVeFNjaGVtYSkge1xyXG5cdFx0dGhpcy51eFNjaGVtYSA9IGlucHV0U2NoZW1hO1xyXG5cdH1cclxuXHRcclxuXHRwdWJsaWMgaXNDb250ZW50VmFsaWQoKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdC8vIEFic3RyYWN0IGNsYXNzZXMgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYnkgYWN0dWFsIFN1cnZleXNcclxuXHRwdWJsaWMgYWJzdHJhY3QgZ2V0VHlwZSgpOiBTdXJ2ZXlUeXBlO1xyXG5cclxuXHRwdWJsaWMgYWJzdHJhY3QgZ2V0U3VydmV5SW5mbygpOiBJU3VydmV5SW5mbztcclxuXHJcblx0cHVibGljIGFic3RyYWN0IGdldEpzb25FbGVtZW50cygpOiBvYmplY3Q7XHJcblxyXG5cdHB1YmxpYyBhYnN0cmFjdCBnZXREb21FbGVtZW50cyhkb2M6IERvY3VtZW50KTogRWxlbWVudFtdO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/Survey.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Surveys/SurveyDataSource.js": /*!*************************************************************!*\ !*** ../FloodgateCore/dist/src/Surveys/SurveyDataSource.js ***! \*************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar floodgate_shared_typings_1 = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar getDistantFuture = Utils.getDistantFuture, getDistantPast = Utils.getDistantPast, isNOU = Utils.isNOU, isDate = Utils.isDate;\nvar SurveyDataSource = /** @class */ (function () {\n function SurveyDataSource(data) {\n if (isNOU(data)) {\n throw new Error(\"data must not be null\");\n }\n if (isNOU(data.id) || data.id === \"\") {\n throw new Error(\"data.id must not be null or empty\");\n }\n if (isNOU(data.governedChannelType)) {\n data.governedChannelType = floodgate_shared_typings_1.GovernedChannelType.getDefault();\n }\n if (isNOU(data.expirationTimeUtc) || data.expirationTimeUtc === \"\") {\n throw new Error(\"data.expirationTimeUtc must not be null or empty\");\n }\n if (isNOU(data.activationEvent)) {\n throw new Error(\"data.activationEvent must not be null\");\n }\n if (isNOU(data.backEndIdentifier) || data.backEndIdentifier === \"\") {\n data.backEndIdentifier = data.id;\n }\n if (isNOU(data.launcherType)) {\n data.launcherType = floodgate_shared_typings_1.LAUNCHER_TYPE_DEFAULT;\n }\n if (isNOU(data.treatmentType)) {\n data.treatmentType = 255 /* none */;\n }\n this.data = data;\n }\n // @Override\n SurveyDataSource.prototype.getId = function () {\n return this.data.id;\n };\n // @Override\n SurveyDataSource.prototype.getBackEndId = function () {\n return this.data.backEndIdentifier;\n };\n // @Override\n SurveyDataSource.prototype.getGovernedChannelType = function () {\n return this.data.governedChannelType;\n };\n // @Override\n SurveyDataSource.prototype.getRawStartTimeUtc = function () {\n return this.data.startTimeUtc;\n };\n // @Override\n SurveyDataSource.prototype.getStartTimeUtc = function () {\n if (isNOU(this.data.startTimeUtc)) {\n return getDistantPast(); // Optional start date means the survey has started\n }\n var parsed = new Date(this.data.startTimeUtc);\n if (!isDate(parsed)) {\n return getDistantFuture(); // Badly specified start dates means the survey never starts\n }\n return parsed;\n };\n // @Override\n SurveyDataSource.prototype.getExpirationTimeUtc = function () {\n // Bad or missing expiration date means survey is always expired.\n if (isNOU(this.data.expirationTimeUtc)) {\n return getDistantPast();\n }\n var parsed = new Date(this.data.expirationTimeUtc);\n if (!isDate(parsed)) {\n return getDistantPast();\n }\n return parsed;\n };\n // @Override\n SurveyDataSource.prototype.getRawExpirationTimeUtc = function () {\n return this.data.expirationTimeUtc;\n };\n // @Override\n SurveyDataSource.prototype.isActiveForDate = function (date) {\n if (isNOU(date)) {\n return false;\n }\n return (date >= this.getStartTimeUtc() && date <= this.getExpirationTimeUtc());\n };\n // @Override\n SurveyDataSource.prototype.getActivationEvent = function () {\n return this.data.activationEvent;\n };\n // @Override\n SurveyDataSource.prototype.getPreferredLaunchType = function () {\n return this.data.preferredLaunchType;\n };\n // @Override\n SurveyDataSource.prototype.isAdditionalDataRequested = function (additionalDataToCheck) {\n if (isNOU(this.data.additionalDataRequested)) {\n return false;\n }\n for (var _i = 0, _a = this.data.additionalDataRequested; _i < _a.length; _i++) {\n var additionalData = _a[_i];\n if (additionalData === additionalDataToCheck) {\n return true;\n }\n }\n return false;\n };\n // @Override\n SurveyDataSource.prototype.getLauncherType = function () {\n return this.data.launcherType;\n };\n // @Override\n SurveyDataSource.prototype.getMetadata = function () {\n return this.data.metadata;\n };\n // @Override\n SurveyDataSource.prototype.getTags = function () {\n return this.data.tags;\n };\n // @Override\n SurveyDataSource.prototype.getBusinessLevel = function () {\n return this.data.businessLevel;\n };\n // @Override\n SurveyDataSource.prototype.getTreatmentType = function () {\n return this.data.treatmentType;\n };\n // @Override\n SurveyDataSource.prototype.getMaxLaunches = function () {\n return this.data.maxLaunches;\n };\n // @Override\n SurveyDataSource.prototype.getMaxLaunchesPerSession = function () {\n return this.data.maxLaunchesPerSession;\n };\n // @Override\n SurveyDataSource.prototype.getDomElements = function (doc) {\n if (!doc) {\n throw new Error(\"Document must not be null\");\n }\n var typeElement = doc.createElement(floodgate_shared_typings_1.DOM_TYPE_TAGNAME);\n typeElement.appendChild(doc.createTextNode(floodgate_shared_typings_1.DOM_TYPE_VALUE));\n var idElement = doc.createElement(floodgate_shared_typings_1.DOM_ID_TAGNAME);\n idElement.appendChild(doc.createTextNode(this.getBackEndId()));\n return [typeElement, idElement];\n };\n // @Override\n SurveyDataSource.prototype.getJsonElements = function () {\n var surveyObject = {};\n surveyObject[floodgate_shared_typings_1.JSON_ID_KEYNAME] = this.getBackEndId();\n var result = {};\n result[floodgate_shared_typings_1.JSON_SURVEY_KEYNAME] = surveyObject;\n return result;\n };\n return SurveyDataSource;\n}());\n(function (SurveyDataSource) {\n /**\n * Basic data needed for all Surveys\n */\n var SurveyDataSourceData = /** @class */ (function () {\n function SurveyDataSourceData() {\n this.preferredLaunchType = \"Default\" /* Default */;\n }\n return SurveyDataSourceData;\n }());\n SurveyDataSource.SurveyDataSourceData = SurveyDataSourceData;\n})(SurveyDataSource || (SurveyDataSource = {}));\nexports.default = SurveyDataSource;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1N1cnZleXMvU3VydmV5RGF0YVNvdXJjZS50cz84MzQ2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNktBZTBDO0FBQzFDLHNGQUFrQztBQUUxQixvQkFBZ0IsR0FBb0MsS0FBSyxpQkFBekMsRUFBRSxjQUFjLEdBQW9CLEtBQUssZUFBekIsRUFBRSxLQUFLLEdBQWEsS0FBSyxNQUFsQixFQUFFLE1BQU0sR0FBSyxLQUFLLE9BQVYsQ0FBVztBQUVsRTtJQUdDLDBCQUFtQixJQUEyQztRQUM3RCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDekM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLDhDQUFtQixDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzVEO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLEVBQUUsRUFBRTtZQUNuRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLGlCQUFpQixLQUFLLEVBQUUsRUFBRTtZQUNuRSxJQUFJLENBQUMsaUJB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QUMsY0FBYyxDQUFDLHlDQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTVELElBQU0sU0FBUyxHQUFZLEdBQUcsQ0FBQyxhQUFhLENBQUMseUNBQWMsQ0FBQyxDQUFDO1FBQzdELFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9ELE9BQU8sQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFlBQVk7SUFDTCwwQ0FBZSxHQUF0QjtRQUNDLElBQU0sWUFBWSxHQUFXLEVBQUUsQ0FBQztRQUNoQyxZQUFZLENBQUMsMENBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUVwRCxJQUFNLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLDhDQUFtQixDQUFDLEdBQUcsWUFBWSxDQUFDO1FBRTNDLE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUNGLHVCQUFDO0FBQUQsQ0FBQztBQUVELFdBQU8sZ0JBQWdCO0lBQ3RCOztPQUVHO0lBQ0g7UUFBQTtZQU9RLHdCQUFtQiwyQkFBc0Q7UUFVakYsQ0FBQztRQUFELDJCQUFDO0lBQUQsQ0FBQztJQWpCWSxxQ0FBb0IsdUJBaUJoQztBQUNGLENBQUMsRUF0Qk0sZ0JBQWdCLEtBQWhCLGdCQUFnQixRQXNCdEI7QUFFRCxrQkFBZSxnQkFBZ0IsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1N1cnZleXMvU3VydmV5RGF0YVNvdXJjZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0RE9NX0lEX1RBR05BTUUsXHJcblx0RE9NX1RZUEVfVEFHTkFNRSxcclxuXHRET01fVFlQRV9WQUxVRSxcclxuXHRHb3Zlcm5lZENoYW5uZWxUeXBlLFxyXG5cdElTdXJ2ZXlFdmVudCxcclxuXHRJU3VydmV5SW5mbyxcclxuXHRJU3VydmV5TWV0YWRhdGEsXHJcblx0SlNPTl9JRF9LRVlOQU1FLFxyXG5cdEpTT05fU1VSVkVZX0tFWU5BTUUsXHJcblx0TEFVTkNIRVJfVFlQRV9ERUZBVUxULFxyXG5cdFN1cnZleUluZm9BZGRpdGlvbmFsRGF0YVR5cGUsXHJcblx0U3VydmV5SW5mb0J1c2luZXNzTGV2ZWwsXHJcblx0U3VydmV5SW5mb0xhdW5jaFR5cGUsXHJcblx0VHJlYXRtZW50VHlwZSxcclxufSBmcm9tIFwiQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3NcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcblxyXG5jb25zdCB7IGdldERpc3RhbnRGdXR1cmUsIGdldERpc3RhbnRQYXN0LCBpc05PVSwgaXNEYXRlIH0gPSBVdGlscztcclxuXHJcbmNsYXNzIFN1cnZleURhdGFTb3VyY2UgaW1wbGVtZW50cyBJU3VydmV5SW5mbyB7XHJcblx0cHJpdmF0ZSBkYXRhOiBTdXJ2ZXlEYXRhU291cmNlLlN1cnZleURhdGFTb3VyY2VEYXRhO1xyXG5cclxuXHRwdWJsaWMgY29uc3RydWN0b3IoZGF0YTogU3VydmV5RGF0YVNvdXJjZS5TdXJ2ZXlEYXRhU291cmNlRGF0YSkge1xyXG5cdFx0aWYgKGlzTk9VKGRhdGEpKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHRcdGlmIChpc05PVShkYXRhLmlkKSB8fCBkYXRhLmlkID09PSBcIlwiKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcihcImRhdGEuaWQgbXVzdCBub3QgYmUgbnVsbCBvciBlbXB0eVwiKTtcclxuXHRcdH1cclxuXHRcdGlmIChpc05PVShkYXRhLmdvdmVybmVkQ2hhbm5lbFR5cGUpKSB7XHJcblx0XHRcdGRhdGEuZ292ZXJuZWRDaGFubmVsVHlwZSA9IEdvdmVybmVkQ2hhbm5lbFR5cGUuZ2V0RGVmYXVsdCgpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzTk9VKGRhdGEuZXhwaXJhdGlvblRpbWVVdGMpIHx8IGRhdGEuZXhwaXJhdGlvblRpbWVVdGMgPT09IFwiXCIpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiZGF0YS5leHBpcmF0aW9uVGltZVV0YyBtdXN0IG5vdCBiZSBudWxsIG9yIGVtcHR5XCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzTk9VKGRhdGEuYWN0aXZhdGlvbkV2ZW50KSkge1xyXG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJkYXRhLmFjdGl2YXRpb25FdmVudCBtdXN0IG5vdCBiZSBudWxsXCIpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGlzTk9VKGRhdGEuYmFja0VuZElkZW50aWZpZXIpIHx8IGRhdGEuYmFja0VuZElkZW50aWZpZXIgPT09IFwiXCIpIHtcclxuXHRcdFx0ZGF0YS5iYWNrRW5kSWRlbnRpZmllciA9IGRhdGEuaWQ7XHJcblx0XHR9XHJcblx0XHRpZiAoaXNOT1UoZGF0YS5sYXVuY2hlclR5cGUpKSB7XHJcblx0XHRcdGRhdGEubGF1bmNoZXJUeXBlID0gTEFVTkNIRVJfVFlQRV9ERUZBVUxUO1xyXG5cdFx0fVxyXG5cdFx0aWYoaXNOT1UoZGF0YS50cmVhdG1lbnRUeXBlKSl7XHJcblx0XHRcdGRhdGEudHJlYXRtZW50VHlwZSA9IFRyZWF0bWVudFR5cGUubm9uZTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmRhdGEgPSBkYXRhO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldElkKCk6IHN0cmluZyB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmlkO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldEJhY2tFbmRJZCgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5iYWNrRW5kSWRlbnRpZmllcjtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRHb3Zlcm5lZENoYW5uZWxUeXBlKCk6IEdvdmVybmVkQ2hhbm5lbFR5cGUge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5nb3Zlcm5lZENoYW5uZWxUeXBlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldFJhd1N0YXJ0VGltZVV0YygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5zdGFydFRpbWVVdGM7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0U3RhcnRUaW1lVXRjKCk6IERhdGUge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMuZGF0YS5zdGFydFRpbWVVdGMpKSB7XHJcblx0XHRcdHJldHVybiBnZXREaXN0YW50UGFzdCgpOyAvLyBPcHRpb25hbCBzdGFydCBkYXRlIG1lYW5zIHRoZSBzdXJ2ZXkgaGFzIHN0YXJ0ZWRcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXJzZWQgPSBuZXcgRGF0ZSh0aGlzLmRhdGEuc3RhcnRUaW1lVXRjKTtcclxuXHRcdGlmICghaXNEYXRlKHBhcnNlZCkpIHtcclxuXHRcdFx0cmV0dXJuIGdldERpc3RhbnRGdXR1cmUoKTsgLy8gQmFkbHkgc3BlY2lmaWVkIHN0YXJ0IGRhdGVzIG1lYW5zIHRoZSBzdXJ2ZXkgbmV2ZXIgc3RhcnRzXHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHBhcnNlZDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRFeHBpcmF0aW9uVGltZVV0YygpOiBEYXRlIHtcclxuXHRcdC8vIEJhZCBvciBtaXNzaW5nIGV4cGlyYXRpb24gZGF0ZSBtZWFucyBzdXJ2ZXkgaXMgYWx3YXlzIGV4cGlyZWQuXHJcblxyXG5cdFx0aWYgKGlzTk9VKHRoaXMuZGF0YS5leHBpcmF0aW9uVGltZVV0YykpIHtcclxuXHRcdFx0cmV0dXJuIGdldERpc3RhbnRQYXN0KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcGFyc2VkID0gbmV3IERhdGUodGhpcy5kYXRhLmV4cGlyYXRpb25UaW1lVXRjKTtcclxuXHRcdGlmICghaXNEYXRlKHBhcnNlZCkpIHtcclxuXHRcdFx0cmV0dXJuIGdldERpc3RhbnRQYXN0KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHBhcnNlZDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRSYXdFeHBpcmF0aW9uVGltZVV0YygpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5leHBpcmF0aW9uVGltZVV0YztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc0FjdGl2ZUZvckRhdGUoZGF0ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKGRhdGUpKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gKGRhdGUgPj0gdGhpcy5nZXRTdGFydFRpbWVVdGMoKSAmJiBkYXRlIDw9IHRoaXMuZ2V0RXhwaXJhdGlvblRpbWVVdGMoKSk7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0QWN0aXZhdGlvbkV2ZW50KCk6IElTdXJ2ZXlFdmVudCB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmFjdGl2YXRpb25FdmVudDtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRQcmVmZXJyZWRMYXVuY2hUeXBlKCk6IFN1cnZleUluZm9MYXVuY2hUeXBlIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEucHJlZmVycmVkTGF1bmNoVHlwZTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBpc0FkZGl0aW9uYWxEYXRhUmVxdWVzdGVkKGFkZGl0aW9uYWxEYXRhVG9DaGVjazogU3VydmV5SW5mb0FkZGl0aW9uYWxEYXRhVHlwZSk6IGJvb2xlYW4ge1xyXG5cdFx0aWYgKGlzTk9VKHRoaXMuZGF0YS5hZGRpdGlvbmFsRGF0YVJlcXVlc3RlZCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0Zm9yIChjb25zdCBhZGRpdGlvbmFsRGF0YSBvZiB0aGlzLmRhdGEuYWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQpIHtcclxuXHRcdFx0aWYgKGFkZGl0aW9uYWxEYXRhID09PSBhZGRpdGlvbmFsRGF0YVRvQ2hlY2spIHtcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldExhdW5jaGVyVHlwZSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5sYXVuY2hlclR5cGU7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0TWV0YWRhdGEoKTogSVN1cnZleU1ldGFkYXRhIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEubWV0YWRhdGE7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VGFncygpOiBzdHJpbmdbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLnRhZ3M7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0QnVzaW5lc3NMZXZlbCgpOiBTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbCB7XHJcblx0XHRyZXR1cm4gdGhpcy5kYXRhLmJ1c2luZXNzTGV2ZWw7XHJcblx0fVxyXG5cclxuXHQvLyBAT3ZlcnJpZGVcclxuXHRwdWJsaWMgZ2V0VHJlYXRtZW50VHlwZSgpOiBUcmVhdG1lbnRUeXBlIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEudHJlYXRtZW50VHlwZTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRNYXhMYXVuY2hlcygpOiBudW1iZXIge1xyXG5cdFx0cmV0dXJuIHRoaXMuZGF0YS5tYXhMYXVuY2hlcztcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRNYXhMYXVuY2hlc1BlclNlc3Npb24oKTogbnVtYmVyIHtcclxuXHRcdHJldHVybiB0aGlzLmRhdGEubWF4TGF1bmNoZXNQZXJTZXNzaW9uO1xyXG5cdH1cclxuXHJcblx0Ly8gQE92ZXJyaWRlXHJcblx0cHVibGljIGdldERvbUVsZW1lbnRzKGRvYzogRG9jdW1lbnQpOiBFbGVtZW50W10ge1xyXG5cdFx0aWYgKCFkb2MpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiRG9jdW1lbnQgbXVzdCBub3QgYmUgbnVsbFwiKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB0eXBlRWxlbWVudDogRWxlbWVudCA9IGRvYy5jcmVhdGVFbGVtZW50KERPTV9UWVBFX1RBR05BTUUpO1xyXG5cdFx0dHlwZUVsZW1lbnQuYXBwZW5kQ2hpbGQoZG9jLmNyZWF0ZVRleHROb2RlKERPTV9UWVBFX1ZBTFVFKSk7XHJcblxyXG5cdFx0Y29uc3QgaWRFbGVtZW50OiBFbGVtZW50ID0gZG9jLmNyZWF0ZUVsZW1lbnQoRE9NX0lEX1RBR05BTUUpO1xyXG5cdFx0aWRFbGVtZW50LmFwcGVuZENoaWxkKGRvYy5jcmVhdGVUZXh0Tm9kZSh0aGlzLmdldEJhY2tFbmRJZCgpKSk7XHJcblxyXG5cdFx0cmV0dXJuIFt0eXBlRWxlbWVudCwgaWRFbGVtZW50XTtcclxuXHR9XHJcblxyXG5cdC8vIEBPdmVycmlkZVxyXG5cdHB1YmxpYyBnZXRKc29uRWxlbWVudHMoKTogb2JqZWN0IHtcclxuXHRcdGNvbnN0IHN1cnZleU9iamVjdDogb2JqZWN0ID0ge307XHJcblx0XHRzdXJ2ZXlPYmplY3RbSlNPTl9JRF9LRVlOQU1FXSA9IHRoaXMuZ2V0QmFja0VuZElkKCk7XHJcblxyXG5cdFx0Y29uc3QgcmVzdWx0OiBvYmplY3QgPSB7fTtcclxuXHRcdHJlc3VsdFtKU09OX1NVUlZFWV9LRVlOQU1FXSA9IHN1cnZleU9iamVjdDtcclxuXHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxufVxyXG5cclxubW9kdWxlIFN1cnZleURhdGFTb3VyY2Uge1xyXG5cdC8qKlxyXG5cdCAqIEJhc2ljIGRhdGEgbmVlZGVkIGZvciBhbGwgU3VydmV5c1xyXG5cdCAqL1xyXG5cdGV4cG9ydCBjbGFzcyBTdXJ2ZXlEYXRhU291cmNlRGF0YSB7XHJcblx0XHRwdWJsaWMgaWQ6IHN0cmluZztcclxuXHRcdHB1YmxpYyBiYWNrRW5kSWRlbnRpZmllcjogc3RyaW5nO1xyXG5cdFx0cHVibGljIGdvdmVybmVkQ2hhbm5lbFR5cGU6IEdvdmVybmVkQ2hhbm5lbFR5cGU7XHJcblx0XHRwdWJsaWMgc3RhcnRUaW1lVXRjOiBzdHJpbmc7XHJcblx0XHRwdWJsaWMgZXhwaXJhdGlvblRpbWVVdGM6IHN0cmluZztcclxuXHRcdHB1YmxpYyBhY3RpdmF0aW9uRXZlbnQ6IElTdXJ2ZXlFdmVudDtcclxuXHRcdHB1YmxpYyBwcmVmZXJyZWRMYXVuY2hUeXBlOiBTdXJ2ZXlJbmZvTGF1bmNoVHlwZSA9IFN1cnZleUluZm9MYXVuY2hUeXBlLkRlZmF1bHQ7XHJcblx0XHRwdWJsaWMgYWRkaXRpb25hbERhdGFSZXF1ZXN0ZWQ6IFN1cnZleUluZm9BZGRpdGlvbmFsRGF0YVR5cGVbXTtcclxuXHRcdHB1YmxpYyBsYXVuY2hlclR5cGU6IHN0cmluZztcclxuXHRcdHB1YmxpYyBtZXRhZGF0YTogSVN1cnZleU1ldGFkYXRhO1xyXG5cdFx0cHVibGljIHRhZ3M6IHN0cmluZ1tdO1xyXG5cdFx0XHJcblx0XHRwdWJsaWMgdHJlYXRtZW50VHlwZTogVHJlYXRtZW50VHlwZTtcclxuXHRcdHB1YmxpYyBidXNpbmVzc0xldmVsOiBTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbDtcclxuXHRcdHB1YmxpYyBtYXhMYXVuY2hlczogbnVtYmVyO1xyXG5cdFx0cHVibGljIG1heExhdW5jaGVzUGVyU2Vzc2lvbjogbnVtYmVyO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgU3VydmV5RGF0YVNvdXJjZTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Surveys/SurveyDataSource.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Transport/HttpTransport.js": /*!************************************************************!*\ !*** ../FloodgateCore/dist/src/Transport/HttpTransport.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (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 (_) 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HttpTransport = void 0;\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar Utils_1 = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar HTTP_TRANSPORT_DEFAULT_TIMEOUT = 5000; // default timeout for fetching\n/**\n * This class is the client to perform http request\n * It supports retry and timeout if needed.\n */\nvar HttpTransport = /** @class */ (function () {\n function HttpTransport() {\n }\n /**\n * Perform the GET request\n * @param requestUrl request URL\n * @param retry maximum retry if failure. For example: 0 means no retry and 1 means retry once if failed\n * @param timeout Timeout of the request\n * @param simpleRequestEnabled Simple request if this is true\n * @returns the response if success. Otherwise, reject with error\n */\n HttpTransport.prototype.getRequestWithRetry = function (requestUrl, retry, timeout, simpleRequestEnabled) {\n var _this = this;\n if (simpleRequestEnabled === void 0) { simpleRequestEnabled = false; }\n return new Promise(function (resolve, reject) {\n var timeBefore = performance.now();\n _this.sendGetRequest(requestUrl, true, timeout, simpleRequestEnabled)\n .then(function (response) {\n var serviceCallTime = performance.now() - timeBefore;\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.HttpTransport.GET.Success, {\n TimeMilliseconds: serviceCallTime,\n Count: retry,\n Message: JSON.stringify({\n RequestUrl: requestUrl,\n CorrelationId: _this.requestId,\n Timeout: timeout,\n SimpleRequestEnabled: simpleRequestEnabled,\n }),\n });\n resolve(response);\n })\n .catch(function (error) {\n var serviceCallTime = performance.now() - timeBefore;\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.HttpTransport.GET.Error, JSON.stringify({\n ErrorMessage: error.toString(),\n TimeMilliseconds: serviceCallTime,\n Timeout: timeout,\n Count: retry,\n CorrelationId: _this.requestId,\n Message: requestUrl,\n SimpleRequestEnabled: simpleRequestEnabled,\n }));\n if (retry <= 1) {\n return reject(error);\n }\n timeBefore = performance.now();\n _this.getRequestWithRetry(requestUrl, retry - 1, timeout, simpleRequestEnabled)\n .then(resolve)\n .catch(reject);\n });\n });\n };\n HttpTransport.prototype.createHeaders = function (simpleRequestEnabled) {\n var headers = typeof Headers !== \"undefined\" && new Headers();\n if (headers) {\n // Create header based on the request\n if (simpleRequestEnabled) {\n this.createSimpleHeaders(headers);\n }\n else {\n this.createNormalHeaders(headers);\n }\n }\n return headers;\n };\n HttpTransport.prototype.createNormalHeaders = function (headers) {\n this.requestId = Utils_1.guid();\n headers.append(\"X-Request-ID\", this.requestId);\n headers.append(\"Content-Type\", \"applicationhttps://www.microsoft.com/json\");\n };\n HttpTransport.prototype.createSimpleHeaders = function (headers) {\n this.requestId = Utils_1.guid();\n headers.append(\"Content-Type\", \"text/plain\");\n };\n HttpTransport.prototype.sendGetRequest = function (requestUrl, useTimeout, timeout, simpleRequestEnabled) {\n return __awaiter(this, void 0, void 0, function () {\n var requestInit;\n return __generator(this, function (_a) {\n requestInit = {\n method: \"GET\",\n headers: this.createHeaders(simpleRequestEnabled),\n };\n return [2 /*return*/, useTimeout ?\n this.timeoutFetch(requestUrl, requestInit, timeout !== null && timeout !== void 0 ? timeout : HTTP_TRANSPORT_DEFAULT_TIMEOUT) :\n fetch(requestUrl, requestInit)];\n });\n });\n };\n HttpTransport.prototype.timeoutFetch = function (input, init, timeout) {\n if (init === void 0) { init = {}; }\n var controller = new AbortController();\n init.signal = controller.signal;\n // Reject after timeout\n var timeoutId = setTimeout(function () { return controller.abort(); }, timeout);\n return fetch(input, init).then(function (response) {\n clearTimeout(timeoutId);\n return response;\n });\n };\n return HttpTransport;\n}());\nexports.HttpTransport = HttpTransport;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1RyYW5zcG9ydC9IdHRwVHJhbnNwb3J0LnRzPzkxNTkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0dBQThDO0FBQzlDLHdGQUFnQztBQUNoQyxzSEFBcUQ7QUFFckQsSUFBTSw4QkFBOEIsR0FBRyxJQUFJLENBQUMsQ0FBQywrQkFBK0I7QUFFNUU7OztHQUdHO0FBQ0g7SUFBQTtJQXVHQSxDQUFDO0lBcEdBOzs7Ozs7O09BT0c7SUFDSSwyQ0FBbUIsR0FBMUIsVUFBMkIsVUFBa0IsRUFBRSxLQUFhLEVBQUUsT0FBZSxFQUFFLG9CQUE0QjtRQUEzRyxpQkE0Q0M7UUE1QzhFLG1FQUE0QjtRQUMxRyxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07WUFDbEMsSUFBSSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25DLEtBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsb0JBQW9CLENBQUM7aUJBQ25FLElBQUksQ0FBQyxVQUFDLFFBQVE7Z0JBQ2QsSUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQztnQkFDdkQsaUNBQWUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLFNBQVMsQ0FDN0MsMEJBQWMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFDeEM7b0JBQ0MsZ0JBQWdCLEVBQUUsZUFBZTtvQkFDakMsS0FBSyxFQUFFLEtBQUs7b0JBQ1osT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7d0JBQ3ZCLFVBQVUsRUFBRSxVQUFVO3dCQUN0QixhQUFhLEVBQUUsS0FBSSxDQUFDLFNBQVM7d0JBQzdCLE9BQU8sRUFBRSxPQUFPO3dCQUNoQixvQkFBb0IsRUFBRSxvQkFBb0I7cUJBQzFDLENBQUM7aUJBQ0YsQ0FBQyxDQUFD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ZUFBZSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQ2hDLHVCQUF1QjtRQUN2QixJQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsY0FBTSxpQkFBVSxDQUFDLEtBQUssRUFBRSxFQUFsQixDQUFrQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQVE7WUFDdEMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hCLE9BQU8sUUFBUSxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNGLG9CQUFDO0FBQUQsQ0FBQztBQXZHWSxzQ0FBYSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1RyYW5zcG9ydC9IdHRwVHJhbnNwb3J0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVsZW1ldHJ5RXZlbnQgfSBmcm9tIFwiLi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGd1aWQgfSBmcm9tIFwiLi4vVXRpbHNcIjtcclxuaW1wb3J0IHsgRmxvb2RnYXRlRW5naW5lIH0gZnJvbSBcIi4uL0Zsb29kZ2F0ZUVuZ2luZVwiO1xyXG5cclxuY29uc3QgSFRUUF9UUkFOU1BPUlRfREVGQVVMVF9USU1FT1VUID0gNTAwMDsgLy8gZGVmYXVsdCB0aW1lb3V0IGZvciBmZXRjaGluZ1xyXG5cclxuLyoqXHJcbiAqIFRoaXMgY2xhc3MgaXMgdGhlIGNsaWVudCB0byBwZXJmb3JtIGh0dHAgcmVxdWVzdFxyXG4gKiBJdCBzdXBwb3J0cyByZXRyeSBhbmQgdGltZW91dCBpZiBuZWVkZWQuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgSHR0cFRyYW5zcG9ydCB7XHJcblx0cHVibGljIHJlcXVlc3RJZDogc3RyaW5nO1xyXG5cdFxyXG5cdC8qKlxyXG5cdCAqIFBlcmZvcm0gdGhlIEdFVCByZXF1ZXN0XHJcblx0ICogQHBhcmFtIHJlcXVlc3RVcmwgcmVxdWVzdCBVUkxcclxuXHQgKiBAcGFyYW0gcmV0cnkgbWF4aW11bSByZXRyeSBpZiBmYWlsdXJlLiBGb3IgZXhhbXBsZTogMCBtZWFucyBubyByZXRyeSBhbmQgMSBtZWFucyByZXRyeSBvbmNlIGlmIGZhaWxlZFxyXG5cdCAqIEBwYXJhbSB0aW1lb3V0IFRpbWVvdXQgb2YgdGhlIHJlcXVlc3RcclxuXHQgKiBAcGFyYW0gc2ltcGxlUmVxdWVzdEVuYWJsZWQgU2ltcGxlIHJlcXVlc3QgaWYgdGhpcyBpcyB0cnVlXHJcblx0ICogQHJldHVybnMgdGhlIHJlc3BvbnNlIGlmIHN1Y2Nlc3MuIE90aGVyd2lzZSwgcmVqZWN0IHdpdGggZXJyb3JcclxuXHQgKi9cclxuXHRwdWJsaWMgZ2V0UmVxdWVzdFdpdGhSZXRyeShyZXF1ZXN0VXJsOiBzdHJpbmcsIHJldHJ5OiBudW1iZXIsIHRpbWVvdXQ6IG51bWJlciwgc2ltcGxlUmVxdWVzdEVuYWJsZWQgPSBmYWxzZSk6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRcdHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcblx0XHRcdGxldCB0aW1lQmVmb3JlID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcblx0XHRcdHRoaXMuc2VuZEdldFJlcXVlc3QocmVxdWVzdFVybCwgdHJ1ZSwgdGltZW91dCwgc2ltcGxlUmVxdWVzdEVuYWJsZWQpXHJcblx0XHRcdC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IHNlcnZpY2VDYWxsVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpIC0gdGltZUJlZm9yZTtcclxuXHRcdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0V2ZW50KFxyXG5cdFx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuSHR0cFRyYW5zcG9ydC5HRVQuU3VjY2VzcyxcclxuXHRcdFx0XHRcdHtcclxuXHRcdFx0XHRcdFx0VGltZU1pbGxpc2Vjb25kczogc2VydmljZUNhbGxUaW1lLFxyXG5cdFx0XHRcdFx0XHRDb3VudDogcmV0cnksXHJcblx0XHRcdFx0XHRcdE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdFx0XHRSZXF1ZXN0VXJsOiByZXF1ZXN0VXJsLFxyXG5cdFx0XHRcdFx0XHRcdENvcnJlbGF0aW9uSWQ6IHRoaXMucmVxdWVzdElkLFxyXG5cdFx0XHRcdFx0XHRcdFRpbWVvdXQ6IHRpbWVvdXQsXHJcblx0XHRcdFx0XHRcdFx0U2ltcGxlUmVxdWVzdEVuYWJsZWQ6IHNpbXBsZVJlcXVlc3RFbmFibGVkLFxyXG5cdFx0XHRcdFx0XHR9KSxcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdHJlc29sdmUocmVzcG9uc2UpO1xyXG5cdFx0XHR9KVxyXG5cdFx0XHQuY2F0Y2goKGVycm9yKSA9PiB7XHJcblx0XHRcdFx0Y29uc3Qgc2VydmljZUNhbGxUaW1lID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aW1lQmVmb3JlO1xyXG5cdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5IdHRwVHJhbnNwb3J0LkdFVC5FcnJvcixcclxuXHRcdFx0XHRcdEpTT04uc3RyaW5naWZ5KHtcclxuXHRcdFx0XHRcdFx0RXJyb3JNZXNzYWdlOiBlcnJvci50b1N0cmluZygpLFxyXG5cdFx0XHRcdFx0XHRUaW1lTWlsbGlzZWNvbmRzOiBzZXJ2aWNlQ2FsbFRpbWUsXHJcblx0XHRcdFx0XHRcdFRpbWVvdXQ6IHRpbWVvdXQsXHJcblx0XHRcdFx0XHRcdENvdW50OiByZXRyeSxcclxuXHRcdFx0XHRcdFx0Q29ycmVsYXRpb25JZDogdGhpcy5yZXF1ZXN0SWQsXHJcblx0XHRcdFx0XHRcdE1lc3NhZ2U6IHJlcXVlc3RVcmwsXHJcblx0XHRcdFx0XHRcdFNpbXBsZVJlcXVlc3RFbmFibGVkOiBzaW1wbGVSZXF1ZXN0RW5hYmxlZCxcclxuXHRcdFx0XHRcdH0pLFxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHRcdGlmIChyZXRyeSA8PSAxKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gcmVqZWN0KGVycm9yKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0dGltZUJlZm9yZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG5cdFx0XHRcdHRoaXMuZ2V0UmVxdWVzdFdpdGhSZXRyeShyZXF1ZXN0VXJsLCByZXRyeSAtIDEsIHRpbWVvdXQsIHNpbXBsZVJlcXVlc3RFbmFibGVkKVxyXG5cdFx0XHRcdC50aGVuKHJlc29sdmUpXHJcblx0XHRcdFx0LmNhdGNoKHJlamVjdCk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZUhlYWRlcnMoc2ltcGxlUmVxdWVzdEVuYWJsZWQ6IGJvb2xlYW4pOiBIZWFkZXJzIHtcclxuXHRcdGNvbnN0IGhlYWRlcnM6IEhlYWRlcnMgPSB0eXBlb2YgSGVhZGVycyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuZXcgSGVhZGVycygpO1xyXG5cclxuXHRcdGlmIChoZWFkZXJzKSB7XHJcblx0XHRcdC8vIENyZWF0ZSBoZWFkZXIgYmFzZWQgb24gdGhlIHJlcXVlc3RcclxuXHRcdFx0aWYgKHNpbXBsZVJlcXVlc3RFbmFibGVkKSB7XHJcblx0XHRcdFx0dGhpcy5jcmVhdGVTaW1wbGVIZWFkZXJzKGhlYWRlcnMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHRoaXMuY3JlYXRlTm9ybWFsSGVhZGVycyhoZWFkZXJzKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIGhlYWRlcnM7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZU5vcm1hbEhlYWRlcnMoaGVhZGVyczogSGVhZGVycykge1xyXG5cdFx0dGhpcy5yZXF1ZXN0SWQgPSBndWlkKCk7XHJcblx0XHRoZWFkZXJzLmFwcGVuZChcIlgtUmVxdWVzdC1JRFwiLCB0aGlzLnJlcXVlc3RJZCk7XHJcblx0XHRoZWFkZXJzLmFwcGVuZChcIkNvbnRlbnQtVHlwZVwiLCBcImFwcGxpY2F0aW9uL2pzb25cIik7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZVNpbXBsZUhlYWRlcnMoaGVhZGVyczogSGVhZGVycykge1xyXG5cdFx0dGhpcy5yZXF1ZXN0SWQgPSBndWlkKCk7XHJcblx0XHRoZWFkZXJzLmFwcGVuZChcIkNvbnRlbnQtVHlwZVwiLCBcInRleHQvcGxhaW5cIik7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgYXN5bmMgc2VuZEdldFJlcXVlc3QocmVxdWVzdFVybDogc3RyaW5nLCB1c2VUaW1lb3V0PzogYm9vbGVhbiwgdGltZW91dD86IG51bWJlciwgc2ltcGxlUmVxdWVzdEVuYWJsZWQ/OiBib29sZWFuKTogUHJvbWlzZTxSZXNwb25zZT4ge1xyXG5cdFx0Y29uc3QgcmVxdWVzdEluaXQgPSB7XHJcblx0XHRcdG1ldGhvZDogXCJHRVRcIixcclxuXHRcdFx0aGVhZGVyczogdGhpcy5jcmVhdGVIZWFkZXJzKHNpbXBsZVJlcXVlc3RFbmFibGVkKSxcclxuXHRcdH07XHJcblxyXG5cdFx0cmV0dXJuIHVzZVRpbWVvdXQgP1xyXG5cdFx0XHR0aGlzLnRpbWVvdXRGZXRjaChyZXF1ZXN0VXJsLCByZXF1ZXN0SW5pdCwgdGltZW91dCA/PyBIVFRQX1RSQU5TUE9SVF9ERUZBVUxUX1RJTUVPVVQpIDpcclxuXHRcdFx0ZmV0Y2gocmVxdWVzdFVybCwgcmVxdWVzdEluaXQpO1xyXG5cdH1cclxuXHRcclxuXHRwcml2YXRlIHRpbWVvdXRGZXRjaChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ6IFJlcXVlc3RJbml0ID0ge30sIHRpbWVvdXQ6IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRcdGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XHJcblx0XHRpbml0LnNpZ25hbCA9IGNvbnRyb2xsZXIuc2lnbmFsO1xyXG5cdFx0Ly8gUmVqZWN0IGFmdGVyIHRpbWVvdXRcclxuXHRcdGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4gY29udHJvbGxlci5hYm9ydCgpLCB0aW1lb3V0KTtcclxuXHRcdHJldHVybiBmZXRjaChpbnB1dCwgaW5pdCkudGhlbihyZXNwb25zZSA9PiB7XHJcblx0XHRcdGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xyXG5cdFx0XHRyZXR1cm4gcmVzcG9uc2U7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Transport/HttpTransport.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/UserFact/UserFact.js": /*!******************************************************!*\ !*** ../FloodgateCore/dist/src/UserFact/UserFact.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UserFact = void 0;\nvar Constants_1 = __webpack_require__(/*! ../Constants */ \"../FloodgateCore/dist/src/Constants.js\");\nvar FloodgateEngine_1 = __webpack_require__(/*! ../FloodgateEngine */ \"../FloodgateCore/dist/src/FloodgateEngine.js\");\nvar Utils = __webpack_require__(/*! ../Utils */ \"../FloodgateCore/dist/src/Utils.js\");\nvar isNOU = Utils.isNOU, isNumber = Utils.isNumber, isArray = Utils.isArray;\nvar commonComparatorTypes = [\n 0 /* Equal */,\n 1 /* NotEqual */,\n 2 /* GreaterThan */,\n 3 /* GreaterThanOrEqual */,\n 4 /* LessThan */,\n 5 /* LessThanOrEqual */,\n];\nvar UserFact = /** @class */ (function () {\n function UserFact(input) {\n this.input = input;\n }\n UserFact.deserialize = function (rawUserFactSpec) {\n return this.validate(rawUserFactSpec) ? new UserFact(rawUserFactSpec) : null;\n };\n UserFact.validate = function (input) {\n if (!input) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Input is null or undefined for user fact\");\n return false;\n }\n // Values is used for type UserFactType.ListOfStrings\n if (!input.Value && input.Values) {\n input.Value = input.Values;\n }\n if (isNOU(input.Name) || isNOU(input.Type) || isNOU(input.Value)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Either of the required parameters Name: \" + input.Name + \", Type: \" + input.Type + \" or Value: \" + input.Value + \" are not provided for the user fact\");\n return false;\n }\n if (!this.validateUserFactType(input.Type)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Invalid UserFactType value \" + input.Type + \" is provided for user fact\");\n return false;\n }\n if (input.Type === 6 /* ListFile */) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Unsupported UserFactType value \" + input.Type + \" is provided for user fact\");\n return false;\n }\n if (input.LatencyType && !this.validateLatencyType(input.LatencyType)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Invalid LatencyType value \" + input.LatencyType + \" is provided for user fact of type \" + input.Type);\n return false;\n }\n if (input.LatencyType && input.LatencyType !== 0 /* None */ && isNOU(input.LatencyDurationInSeconds)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"LatencyDurationInSeconds value \" + input.LatencyDurationInSeconds + \" is not provided for user fact of type \" + input.Type);\n return false;\n }\n if (input.LatencyDurationInSeconds && !isNumber(input.LatencyDurationInSeconds)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Invalid LatencyDurationInSeconds value \" + input.LatencyDurationInSeconds + \" is provided for user fact of type \" + input.Type);\n return false;\n }\n if (input.Type === 1 /* TimeIntervalInSeconds */ && isNOU(input.IntervalType)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecDeserialization.Failed, \"Required parameter intervalType is not provided for user fact of type \" + input.Type);\n return false;\n }\n var supportedComparatorTypes = this.getComparatorTypes(input.Type);\n if (input.Comparator && !isComparatorTypeSupported(input.Comparator, supportedComparatorTypes)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Failed, \"Unsupported comparator type for user fact of type \" + input.Type);\n return false;\n }\n return true;\n };\n UserFact.getComparatorTypes = function (userFactType) {\n switch (userFactType) {\n case 0 /* Boolean */:\n return [0 /* Equal */, 1 /* NotEqual */];\n case 4 /* String */:\n return [0 /* Equal */,\n 1 /* NotEqual */,\n 6 /* In */,\n 7 /* NotIn */,\n 8 /* InverseIn */,\n 9 /* InverseNotIn */];\n case 5 /* ListOfStrings */:\n return [6 /* In */, 7 /* NotIn */, 8 /* InverseIn */, 9 /* InverseNotIn */];\n case 1 /* TimeIntervalInSeconds */:\n case 2 /* DateTimeUTC */:\n case 3 /* Number */:\n case 6 /* ListFile */:\n return commonComparatorTypes;\n default:\n assertNever(userFactType);\n }\n return commonComparatorTypes;\n };\n UserFact.validateLatencyType = function (latency) {\n return (latency === 0 /* None */ ||\n latency === 3 /* ClientIngestionDateTime */ ||\n latency === 1 /* SourceDateTime */ ||\n latency === 2 /* StorageDateTime */) ? true : assertNever(latency);\n };\n UserFact.validateUserFactType = function (factType) {\n return (factType === 0 /* Boolean */ ||\n factType === 2 /* DateTimeUTC */ ||\n factType === 3 /* Number */ ||\n factType === 4 /* String */ ||\n factType === 1 /* TimeIntervalInSeconds */ ||\n factType === 5 /* ListOfStrings */ ||\n factType === 6 /* ListFile */) ? true : assertNever(factType);\n };\n UserFact.prototype.isAMatch = function (rawUserFact) {\n if (!rawUserFact || !rawUserFact.userFactValue) {\n return false;\n }\n if (!this.isLatencyAcceptable(rawUserFact)) {\n return false;\n }\n try {\n var factType = this.getType();\n if (factType === 0 /* Boolean */) {\n return compareBooleanValues(this.getValue(), rawUserFact, this.getComparator());\n }\n else if (factType === 2 /* DateTimeUTC */) {\n return compareDateTimeUTCValues(this.getValue(), rawUserFact, this.getComparator());\n }\n else if (factType === 3 /* Number */) {\n return compareNumberValues(this.getValue(), rawUserFact, this.getComparator());\n }\n else if (factType === 4 /* String */) {\n return compareStringValues(this.getValue(), rawUserFact, this.getComparator());\n }\n else if (factType === 1 /* TimeIntervalInSeconds */) {\n return compareTimeIntervalValues(this.getValue(), rawUserFact, this.getComparator(), this.getIntervalType());\n }\n else if (factType === 5 /* ListOfStrings */) {\n return compareListValues(this.getValue(), rawUserFact, this.getComparator());\n }\n else {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Failed, \"Unsupported type of user fact was provided \" + factType);\n return false;\n }\n }\n catch (error) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Failed, error);\n return false;\n }\n };\n UserFact.prototype.getType = function () {\n return this.input.Type;\n };\n UserFact.prototype.getName = function () {\n return this.input.Name;\n };\n UserFact.prototype.getValue = function () {\n return this.input.Value;\n };\n UserFact.prototype.getComparator = function () {\n return this.input.Comparator || 0 /* Equal */;\n };\n UserFact.prototype.getLatencyType = function () {\n return this.input.LatencyType || 0 /* None */;\n };\n UserFact.prototype.getLatencyDurationInSeconds = function () {\n return this.input.LatencyDurationInSeconds;\n };\n UserFact.prototype.getIntervalType = function () {\n return this.input.IntervalType;\n };\n UserFact.prototype.isLatencyAcceptable = function (rawUserFact) {\n var factType = this.getType();\n if (!isNOU(this.getLatencyDurationInSeconds()) &&\n !evaluateFactCandidacy(this.getLatencyType(), this.getLatencyDurationInSeconds(), rawUserFact)) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Mismatch, {\n ErrorMessage: \"Latency duration not acceptable - { Name: \\\"\" + rawUserFact.userFactName + \"\\\" }\",\n TimeMilliseconds: this.getLatencyDurationInSeconds(),\n Type: \"\" + factType,\n });\n return false;\n }\n return true;\n };\n return UserFact;\n}());\nexports.UserFact = UserFact;\nfunction evaluateFactCandidacy(latencyType, latencyDurationInSeconds, userFact) {\n var userFactTime;\n switch (latencyType) {\n case 0 /* None */:\n break;\n case 1 /* SourceDateTime */:\n userFactTime = userFact.sourceDateTime;\n break;\n case 2 /* StorageDateTime */:\n userFactTime = userFact.storageDateTime;\n break;\n case 3 /* ClientIngestionDateTime */:\n userFactTime = userFact.clientIngestionDateTime;\n break;\n default:\n assertNever(latencyType);\n }\n if (!isNOU(userFactTime)) {\n var userFactTimeInMilliseconds = Date.parse(userFactTime);\n var currentTimeInMilliseconds = Date.now();\n return currentTimeInMilliseconds - userFactTimeInMilliseconds <= (latencyDurationInSeconds * 1000);\n }\n return true;\n}\nfunction compareBooleanValues(userFactSpecValue, rawUserFact, comparator) {\n var rawUserFactValueInBoolean = JSON.parse(rawUserFact.userFactValue.toLowerCase());\n return compareValues(!!userFactSpecValue, !!rawUserFactValueInBoolean, comparator);\n}\nfunction compareDateTimeUTCValues(userFactSpecValue, rawUserFact, comparator) {\n var rawUserFactValueInMilliseconds = Date.parse(rawUserFact.userFactValue);\n if (!isAValidNumber(rawUserFactValueInMilliseconds, rawUserFact.userFactValue, rawUserFact.userFactName)) {\n return false;\n }\n var userFactSpecValueInMilliseconds = Date.parse(userFactSpecValue);\n if (!isAValidNumber(userFactSpecValueInMilliseconds, userFactSpecValue, null, 2 /* DateTimeUTC */)) {\n return false;\n }\n return compareValues(userFactSpecValueInMilliseconds, rawUserFactValueInMilliseconds, comparator);\n}\nfunction compareNumberValues(userFactSpecValue, rawUserFact, comparator) {\n var rawUserFactValueInNumber = parseInt(rawUserFact.userFactValue, 10);\n if (!isAValidNumber(rawUserFactValueInNumber, rawUserFact.userFactValue, rawUserFact.userFactName)) {\n return false;\n }\n return compareValues(userFactSpecValue, rawUserFactValueInNumber, comparator);\n}\nfunction compareStringValues(userFactSpecValue, rawUserFact, comparator) {\n return compareValues(userFactSpecValue.toLowerCase(), rawUserFact.userFactValue.toLowerCase(), comparator);\n}\nfunction compareTimeIntervalValues(userFactSpecValue, rawUserFact, comparator, intervalType) {\n var rawUserFactValueInMilliseconds = Date.parse(rawUserFact.userFactValue);\n if (!isAValidNumber(rawUserFactValueInMilliseconds, rawUserFact.userFactValue, rawUserFact.userFactName)) {\n return false;\n }\n // Diff from now and users input date\n // IntervalTo - Internval to current date from fact date (fact date is expected to be before current date)\n // IntervalFrom - Interval from current date to fact date (fact date is expected to be after current date)\n var currentTimeInMilliseconds = Date.now();\n var currentDateDiff = intervalType === 0 /* IntervalTo */ ?\n (currentTimeInMilliseconds - rawUserFactValueInMilliseconds) : (rawUserFactValueInMilliseconds - currentTimeInMilliseconds);\n if (currentDateDiff < 0) {\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Event(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Mismatch, {\n ErrorMessage: \"Interval type not acceptable - { Spec: \" + userFactSpecValue + \", Name: \\\"\" + rawUserFact.userFactName + \"\\\" }\",\n TimeMilliseconds: currentDateDiff,\n Type: \"\" + intervalType,\n });\n return false;\n }\n var dayInMilliseconds = 86400000;\n var userFactSpecValueInMilliseconds = userFactSpecValue * dayInMilliseconds;\n // check if the above diff satisfies the comparison criteria\n return compareValues(userFactSpecValueInMilliseconds, currentDateDiff, comparator);\n}\nfunction compareListValues(userFactSpecValue, rawUserFact, comparator) {\n return compareValues(userFactSpecValue, rawUserFact.userFactValue, comparator);\n}\nfunction isComparatorTypeSupported(comparator, supportedComparatorTypes) {\n return supportedComparatorTypes.indexOf(comparator) !== -1;\n}\nfunction compareValues(userFactSpecValue, userFactRawValue, comparator) {\n switch (comparator) {\n case 0 /* Equal */:\n return userFactRawValue === userFactSpecValue;\n case 1 /* NotEqual */:\n return userFactRawValue !== userFactSpecValue;\n case 2 /* GreaterThan */:\n return userFactRawValue > userFactSpecValue;\n case 3 /* GreaterThanOrEqual */:\n return userFactRawValue >= userFactSpecValue;\n case 4 /* LessThan */:\n return userFactRawValue < userFactSpecValue;\n case 5 /* LessThanOrEqual */:\n return userFactRawValue <= userFactSpecValue;\n case 6 /* In */:\n return isFactValueInTargetItem(userFactSpecValue, userFactRawValue);\n case 7 /* NotIn */:\n return !isFactValueInTargetItem(userFactSpecValue, userFactRawValue);\n case 8 /* InverseIn */:\n return isFactValueInTargetItem(userFactRawValue, userFactSpecValue);\n case 9 /* InverseNotIn */:\n return !isFactValueInTargetItem(userFactRawValue, userFactSpecValue);\n default:\n assertNever(comparator);\n }\n}\nfunction assertNever(_) {\n return false;\n}\nfunction isFactValueInTargetItem(userFactTargetValues, userFactRawValue) {\n if (typeof userFactRawValue === \"string\") {\n var factValue_1 = userFactRawValue.toLowerCase();\n if (typeof userFactTargetValues === \"string\") {\n // both the inputs are strings, do a plain indexOf\n return userFactTargetValues.toLowerCase().indexOf(factValue_1) !== -1;\n }\n if (isArray(userFactTargetValues)) {\n var specValues = userFactTargetValues;\n return specValues.some(function (specValue) { return specValue && specValue.toString().toLowerCase() === factValue_1; });\n }\n }\n if (isArray(userFactTargetValues)) {\n return userFactTargetValues.indexOf(userFactRawValue) !== -1;\n }\n return false;\n}\nfunction isAValidNumber(numberValue, value, rawUserFactName, factType) {\n if (!isNumber(numberValue)) {\n var errorMessage = \"User fact \" + rawUserFactName + \" has invalid value \" + value;\n if (factType) {\n errorMessage = \"Invalid value \" + value + \" was provided for user fact of type \" + factType;\n }\n FloodgateEngine_1.FloodgateEngine.getTelemetryLogger().log_Error(Constants_1.TelemetryEvent.Floodgate.UserFactsSpecIsAMatch.Failed, errorMessage);\n return false;\n }\n return true;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1VzZXJGYWN0L1VzZXJGYWN0LnRzP2E4NWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esb0dBQThDO0FBQzlDLHNIQUFxRDtBQUNyRCxzRkFBa0M7QUFHMUIsU0FBSyxHQUF3QixLQUFLLE1BQTdCLEVBQUUsUUFBUSxHQUFjLEtBQUssU0FBbkIsRUFBRSxPQUFPLEdBQUssS0FBSyxRQUFWLENBQVc7QUFDM0MsSUFBTSxxQkFBcUIsR0FBcUI7Ozs7Ozs7Q0FPL0MsQ0FBQztBQUVGO0lBOEhDLGtCQUFZLEtBQXFCO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUEvSGEsb0JBQVcsR0FBekIsVUFBMEIsZUFBb0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzlFLENBQUM7SUFFYyxpQkFBUSxHQUF2QixVQUF3QixLQUFVO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDWCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQzVELDBDQUEwQyxDQUFDLENBQUM7WUFDN0MsT0FBTyxLQUFLLENBQUM7U0FDYjtRQUVELHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUMzQjtRQUVELElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakUs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T0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsV0FBbUIsRUFBRSxLQUFhLEVBQUUsZUFBdUIsRUFBRSxRQUF1QjtJQUMzRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1FBQzNCLElBQUksWUFBWSxHQUFHLGVBQWEsZUFBZSwyQkFBc0IsS0FBTyxDQUFDO1FBQzdFLElBQUksUUFBUSxFQUFFO1lBQ2IsWUFBWSxHQUFHLG1CQUFpQixLQUFLLDRDQUF1QyxRQUFVLENBQUM7U0FDdkY7UUFFRCxpQ0FBZSxDQUFDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUM3QywwQkFBYyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEVBQ3JELFlBQVksQ0FBQyxDQUFDO1FBRWYsT0FBTyxLQUFLLENBQUM7S0FDYjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2IsQ0FBQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL2Rpc3Qvc3JjL1VzZXJGYWN0L1VzZXJGYWN0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVVzZXJGYWN0IH0gZnJvbSBcIkBtcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0NvbW1vbi9Nb2RlbHNcIjtcclxuaW1wb3J0IHsgVGVsZW1ldHJ5RXZlbnQgfSBmcm9tIFwiLi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEZsb29kZ2F0ZUVuZ2luZSB9IGZyb20gXCIuLi9GbG9vZGdhdGVFbmdpbmVcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzXCI7XHJcbmltcG9ydCB7IENvbXBhcmF0b3JUeXBlLCBDdXJyZW50VGltZUludGVydmFsVHlwZSwgSVVzZXJGYWN0SW5wdXQsIFVzZXJGYWN0TGF0ZW5jeVR5cGUsIFVzZXJGYWN0VHlwZSB9IGZyb20gXCIuL1VzZXJGYWN0TW9kZWxcIjtcclxuXHJcbmNvbnN0IHsgaXNOT1UsIGlzTnVtYmVyLCBpc0FycmF5IH0gPSBVdGlscztcclxuY29uc3QgY29tbW9uQ29tcGFyYXRvclR5cGVzOiBDb21wYXJhdG9yVHlwZVtdID0gW1xyXG5cdENvbXBhcmF0b3JUeXBlLkVxdWFsLFxyXG5cdENvbXBhcmF0b3JUeXBlLk5vdEVxdWFsLFxyXG5cdENvbXBhcmF0b3JUeXBlLkdyZWF0ZXJUaGFuLFxyXG5cdENvbXBhcmF0b3JUeXBlLkdyZWF0ZXJUaGFuT3JFcXVhbCxcclxuXHRDb21wYXJhdG9yVHlwZS5MZXNzVGhhbixcclxuXHRDb21wYXJhdG9yVHlwZS5MZXNzVGhhbk9yRXF1YWwsXHJcbl07XHJcblxyXG5leHBvcnQgY2xhc3MgVXNlckZhY3Qge1xyXG5cdHB1YmxpYyBzdGF0aWMgZGVzZXJpYWxpemUocmF3VXNlckZhY3RTcGVjOiBhbnkpOiBVc2VyRmFjdCB7XHJcblx0XHRyZXR1cm4gdGhpcy52YWxpZGF0ZShyYXdVc2VyRmFjdFNwZWMpID8gbmV3IFVzZXJGYWN0KHJhd1VzZXJGYWN0U3BlYykgOiBudWxsO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzdGF0aWMgdmFsaWRhdGUoaW5wdXQ6IGFueSkge1xyXG5cdFx0aWYgKCFpbnB1dCkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0Vycm9yKFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZS5Vc2VyRmFjdHNTcGVjRGVzZXJpYWxpemF0aW9uLkZhaWxlZCxcclxuXHRcdFx0XHRcIklucHV0IGlzIG51bGwgb3IgdW5kZWZpbmVkIGZvciB1c2VyIGZhY3RcIik7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBWYWx1ZXMgaXMgdXNlZCBmb3IgdHlwZSBVc2VyRmFjdFR5cGUuTGlzdE9mU3RyaW5nc1xyXG5cdFx0aWYgKCFpbnB1dC5WYWx1ZSAmJiBpbnB1dC5WYWx1ZXMpIHtcclxuXHRcdFx0aW5wdXQuVmFsdWUgPSBpbnB1dC5WYWx1ZXM7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzTk9VKGlucHV0Lk5hbWUpIHx8IGlzTk9VKGlucHV0LlR5cGUpIHx8IGlzTk9VKGlucHV0LlZhbHVlKSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0Vycm9yKFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZS5Vc2VyRmFjdHNTcGVjRGVzZXJpYWxpemF0aW9uLkZhaWxlZCxcclxuXHRcdFx0XHRgRWl0aGVyIG9mIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXJzIE5hbWU6ICR7aW5wdXQuTmFtZX0sIFR5cGU6ICR7aW5wdXQuVHlwZX0gb3IgVmFsdWU6ICR7aW5wdXQuVmFsdWV9IGFyZSBub3QgcHJvdmlkZWQgZm9yIHRoZSB1c2VyIGZhY3RgKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICghdGhpcy52YWxpZGF0ZVVzZXJGYWN0VHlwZShpbnB1dC5UeXBlKSkge1xyXG5cdFx0XHRGbG9vZGdhdGVFbmdpbmUuZ2V0VGVsZW1ldHJ5TG9nZ2VyKCkubG9nX0Vycm9yKFxyXG5cdFx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZS5Vc2VyRmFjdHNTcGVjRGVzZXJpYWxpemF0aW9uLkZhaWxlZCxcclxuXHRcdFx0XHRgSW52YWxpZCBVc2VyRmFjdFR5cGUgdmFsdWUgJHtpbnB1dC5UeXBlfSBpcyBwcm92aWRlZCBmb3IgdXNlciBmYWN0YCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuVHlwZSA9PT0gVXNlckZhY3RUeXBlLkxpc3RGaWxlKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNEZXNlcmlhbGl6YXRpb24uRmFpbGVkLFxyXG5cdFx0XHRcdGBVbnN1cHBvcnRlZCBVc2VyRmFjdFR5cGUgdmFsdWUgJHtpbnB1dC5UeXBlfSBpcyBwcm92aWRlZCBmb3IgdXNlciBmYWN0YCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuTGF0ZW5jeVR5cGUgJiYgIXRoaXMudmFsaWRhdGVMYXRlbmN5VHlwZShpbnB1dC5MYXRlbmN5VHlwZSkpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FcnJvcihcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGUuVXNlckZhY3RzU3BlY0Rlc2VyaWFsaXphdGlvbi5GYWlsZWQsXHJcblx0XHRcdFx0YEludmFsaWQgTGF0ZW5jeVR5cGUgdmFsdWUgJHtpbnB1dC5MYXRlbmN5VHlwZX0gaXMgcHJvdmlkZWQgZm9yIHVzZXIgZmFjdCBvZiB0eXBlICR7aW5wdXQuVHlwZX1gKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpbnB1dC5MYXRlbmN5VHlwZSAmJiBpbnB1dC5MYXRlbmN5VHlwZSAhPT0gVXNlckZhY3RMYXRlbmN5VHlwZS5Ob25lICYmIGlzTk9VKGlucHV0LkxhdGVuY3lEdXJhdGlvbkluU2Vjb25kcykpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FcnJvcihcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGUuVXNlckZhY3RzU3BlY0Rlc2VyaWFsaXphdGlvbi5GYWlsZWQsXHJcblx0XHRcdFx0YExhdGVuY3lEdXJhdGlvbkluU2Vjb25kcyB2YWx1ZSAke2lucHV0LkxhdGVuY3lEdXJhdGlvbkluU2Vjb25kc30gaXMgbm90IHByb3ZpZGVkIGZvciB1c2VyIGZhY3Qgb2YgdHlwZSAke2lucHV0LlR5cGV9YCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoaW5wdXQuTGF0ZW5jeUR1cmF0aW9uSW5TZWNvbmRzICYmICFpc051bWJlcihpbnB1dC5MYXRlbmN5RHVyYXRpb25JblNlY29uZHMpKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNEZXNlcmlhbGl6YXRpb24uRmFpbGVkLFxyXG5cdFx0XHRcdGBJbnZhbGlkIExhdGVuY3lEdXJhdGlvbkluU2Vjb25kcyB2YWx1ZSAke2lucHV0LkxhdGVuY3lEdXJhdGlvbkluU2Vjb25kc30gaXMgcHJvdmlkZWQgZm9yIHVzZXIgZmFjdCBvZiB0eXBlICR7aW5wdXQuVHlwZX1gKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChpbnB1dC5UeXBlID09PSBVc2VyRmFjdFR5cGUuVGltZUludGVydmFsSW5TZWNvbmRzICYmIGlzTk9VKGlucHV0LkludGVydmFsVHlwZSkpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FcnJvcihcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGUuVXNlckZhY3RzU3BlY0Rlc2VyaWFsaXphdGlvbi5GYWlsZWQsXHJcblx0XHRcdFx0YFJlcXVpcmVkIHBhcmFtZXRlciBpbnRlcnZhbFR5cGUgaXMgbm90IHByb3ZpZGVkIGZvciB1c2VyIGZhY3Qgb2YgdHlwZSAke2lucHV0LlR5cGV9YCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzdXBwb3J0ZWRDb21wYXJhdG9yVHlwZXMgPSB0aGlzLmdldENvbXBhcmF0b3JUeXBlcyhpbnB1dC5UeXBlKTtcclxuXHRcdGlmIChpbnB1dC5Db21wYXJhdG9yICYmICFpc0NvbXBhcmF0b3JUeXBlU3VwcG9ydGVkKGlucHV0LkNvbXBhcmF0b3IsIHN1cHBvcnRlZENvbXBhcmF0b3JUeXBlcykpIHtcclxuXHRcdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FcnJvcihcclxuXHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGUuVXNlckZhY3RzU3BlY0lzQU1hdGNoLkZhaWxlZCxcclxuXHRcdFx0XHRgVW5zdXBwb3J0ZWQgY29tcGFyYXRvciB0eXBlIGZvciB1c2VyIGZhY3Qgb2YgdHlwZSAke2lucHV0LlR5cGV9YCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3RhdGljIGdldENvbXBhcmF0b3JUeXBlcyh1c2VyRmFjdFR5cGU6IFVzZXJGYWN0VHlwZSk6IENvbXBhcmF0b3JUeXBlW10ge1xyXG5cdFx0c3dpdGNoICh1c2VyRmFjdFR5cGUpIHtcclxuXHRcdFx0Y2FzZSBVc2VyRmFjdFR5cGUuQm9vbGVhbjpcclxuXHRcdFx0XHRyZXR1cm4gW0NvbXBhcmF0b3JUeXBlLkVxdWFsLCBDb21wYXJhdG9yVHlwZS5Ob3RFcXVhbF07XHJcblx0XHRcdGNhc2UgVXNlckZhY3RUeXBlLlN0cmluZzpcclxuXHRcdFx0XHRyZXR1cm4gW0NvbXBhcmF0b3JUeXBlLkVxdWFsLFxyXG5cdFx0XHRcdFx0XHRDb21wYXJhdG9yVHlwZS5Ob3RFcXVhbCxcclxuXHRcdFx0XHRcdFx0Q29tcGFyYXRvclR5cGUuSW4sXHJcblx0XHRcdFx0XHRcdENvbXBhcmF0b3JUeXBlLk5vdEluLFxyXG5cdFx0XHRcdFx0XHRDb21wYXJhdG9yVHlwZS5JbnZlcnNlSW4sXHJcblx0XHRcdFx0XHRcdENvbXBhcmF0b3JUeXBlLkludmVyc2VOb3RJbl07XHJcblx0XHRcdGNhc2UgVXNlckZhY3RUeXBlLkxpc3RPZlN0cmluZ3M6XHJcblx0XHRcdFx0cmV0dXJuIFtDb21wYXJhdG9yVHlwZS5JbiwgQ29tcGFyYXRvclR5cGUuTm90SW4sIENvbXBhcmF0b3JUeXBlLkludmVyc2VJbiwgQ29tcGFyYXRvclR5cGUuSW52ZXJzZU5vdEluXTtcclxuXHRcdFx0Y2FzZSBVc2VyRmFjdFR5cGUuVGltZUludGVydmFsSW5TZWNvbmRzOlxyXG5cdFx0XHRjYXNlIFVzZXJGYWN0VHlwZS5EYXRlVGltZVVUQzpcclxuXHRcdFx0Y2FzZSBVc2VyRmFjdFR5cGUuTnVtYmVyOlxyXG5cdFx0XHRjYXNlIFVzZXJGYWN0VHlwZS5MaXN0RmlsZTpcclxuXHRcdFx0XHRyZXR1cm4gY29tbW9uQ29tcGFyYXRvclR5cGVzO1xyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdGFzc2VydE5ldmVyKHVzZXJGYWN0VHlwZSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGNvbW1vbkNvbXBhcmF0b3JUeXBlcztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3RhdGljIHZhbGlkYXRlTGF0ZW5jeVR5cGUobGF0ZW5jeTogVXNlckZhY3RMYXRlbmN5VHlwZSkge1xyXG5cdFx0cmV0dXJuIChcclxuXHRcdFx0bGF0ZW5jeSA9PT0gVXNlckZhY3RMYXRlbmN5VHlwZS5Ob25lIHx8XHJcblx0XHRcdGxhdGVuY3kgPT09IFVzZXJGYWN0TGF0ZW5jeVR5cGUuQ2xpZW50SW5nZXN0aW9uRGF0ZVRpbWUgfHxcclxuXHRcdFx0bGF0ZW5jeSA9PT0gVXNlckZhY3RMYXRlbmN5VHlwZS5Tb3VyY2VEYXRlVGltZSB8fFxyXG5cdFx0XHRsYXRlbmN5ID09PSBVc2VyRmFjdExhdGVuY3lUeXBlLlN0b3JhZ2VEYXRlVGltZVxyXG5cdFx0KSA/IHRydWUgOiBhc3NlcnROZXZlcihsYXRlbmN5KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgc3RhdGljIHZhbGlkYXRlVXNlckZhY3RUeXBlKGZhY3RUeXBlOiBVc2VyRmFjdFR5cGUpIHtcclxuXHRcdHJldHVybiAoXHJcblx0XHRcdGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuQm9vbGVhbiB8fFxyXG5cdFx0XHRmYWN0VHlwZSA9PT0gVXNlckZhY3RUeXBlLkRhdGVUaW1lVVRDIHx8XHJcblx0XHRcdGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuTnVtYmVyIHx8XHJcblx0XHRcdGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuU3RyaW5nIHx8XHJcblx0XHRcdGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuVGltZUludGVydmFsSW5TZWNvbmRzIHx8XHJcblx0XHRcdGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuTGlzdE9mU3RyaW5ncyB8fFxyXG5cdFx0XHRmYWN0VHlwZSA9PT0gVXNlckZhY3RUeXBlLkxpc3RGaWxlXHJcblx0XHQpID8gdHJ1ZSA6IGFzc2VydE5ldmVyKGZhY3RUeXBlKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaW5wdXQ6IElVc2VyRmFjdElucHV0O1xyXG5cclxuXHRjb25zdHJ1Y3RvcihpbnB1dDogSVVzZXJGYWN0SW5wdXQpIHtcclxuXHRcdHRoaXMuaW5wdXQgPSBpbnB1dDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBpc0FNYXRjaChyYXdVc2VyRmFjdDogSVVzZXJGYWN0KTogYm9vbGVhbiB7XHJcblx0XHRpZiAoIXJhd1VzZXJGYWN0IHx8ICFyYXdVc2VyRmFjdC51c2VyRmFjdFZhbHVlKSB7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRoaXMuaXNMYXRlbmN5QWNjZXB0YWJsZShyYXdVc2VyRmFjdCkpIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IGZhY3RUeXBlID0gdGhpcy5nZXRUeXBlKCk7XHJcblx0XHRcdGlmIChmYWN0VHlwZSA9PT0gVXNlckZhY3RUeXBlLkJvb2xlYW4pIHtcclxuXHRcdFx0XHRyZXR1cm4gY29tcGFyZUJvb2xlYW5WYWx1ZXModGhpcy5nZXRWYWx1ZSgpLCByYXdVc2VyRmFjdCwgdGhpcy5nZXRDb21wYXJhdG9yKCkpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuRGF0ZVRpbWVVVEMpIHtcclxuXHRcdFx0XHRyZXR1cm4gY29tcGFyZURhdGVUaW1lVVRDVmFsdWVzKHRoaXMuZ2V0VmFsdWUoKSBhcyBzdHJpbmcsIHJhd1VzZXJGYWN0LCB0aGlzLmdldENvbXBhcmF0b3IoKSk7XHJcblx0XHRcdH0gZWxzZSBpZiAoZmFjdFR5cGUgPT09IFVzZXJGYWN0VHlwZS5OdW1iZXIpIHtcclxuXHRcdFx0XHRyZXR1cm4gY29tcGFyZU51bWJlclZhbHVlcyh0aGlzLmdldFZhbHVlKCkgYXMgbnVtYmVyLCByYXdVc2VyRmFjdCwgdGhpcy5nZXRDb21wYXJhdG9yKCkpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGZhY3RUeXBlID09PSBVc2VyRmFjdFR5cGUuU3RyaW5nKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVTdHJpbmdWYWx1ZXModGhpcy5nZXRWYWx1ZSgpIGFzIHN0cmluZywgcmF3VXNlckZhY3QsIHRoaXMuZ2V0Q29tcGFyYXRvcigpKTtcclxuXHRcdFx0fSBlbHNlIGlmIChmYWN0VHlwZSA9PT0gVXNlckZhY3RUeXBlLlRpbWVJbnRlcnZhbEluU2Vjb25kcykge1xyXG5cdFx0XHRcdHJldHVybiBjb21wYXJlVGltZUludGVydmFsVmFsdWVzKHRoaXMuZ2V0VmFsdWUoKSBhcyBudW1iZXIsIHJhd1VzZXJGYWN0LCB0aGlzLmdldENvbXBhcmF0b3IoKSwgdGhpcy5nZXRJbnRlcnZhbFR5cGUoKSk7XHJcblx0XHRcdH0gZWxzZSBpZiAoZmFjdFR5cGUgPT09IFVzZXJGYWN0VHlwZS5MaXN0T2ZTdHJpbmdzKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbXBhcmVMaXN0VmFsdWVzKHRoaXMuZ2V0VmFsdWUoKSBhcyB1bmtub3duIGFzIHN0cmluZ1tdLCByYXdVc2VyRmFjdCwgdGhpcy5nZXRDb21wYXJhdG9yKCkpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0XHRUZWxlbWV0cnlFdmVudC5GbG9vZGdhdGUuVXNlckZhY3RzU3BlY0lzQU1hdGNoLkZhaWxlZCxcclxuXHRcdFx0XHRcdGBVbnN1cHBvcnRlZCB0eXBlIG9mIHVzZXIgZmFjdCB3YXMgcHJvdmlkZWQgJHtmYWN0VHlwZX1gKTtcclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXJyb3IoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNJc0FNYXRjaC5GYWlsZWQsXHJcblx0XHRcdFx0ZXJyb3IpO1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0VHlwZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmlucHV0LlR5cGU7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0TmFtZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmlucHV0Lk5hbWU7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0VmFsdWUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5pbnB1dC5WYWx1ZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRDb21wYXJhdG9yKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaW5wdXQuQ29tcGFyYXRvciB8fCBDb21wYXJhdG9yVHlwZS5FcXVhbDtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRMYXRlbmN5VHlwZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLmlucHV0LkxhdGVuY3lUeXBlIHx8IFVzZXJGYWN0TGF0ZW5jeVR5cGUuTm9uZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRMYXRlbmN5RHVyYXRpb25JblNlY29uZHMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5pbnB1dC5MYXRlbmN5RHVyYXRpb25JblNlY29uZHM7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0SW50ZXJ2YWxUeXBlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaW5wdXQuSW50ZXJ2YWxUeXBlO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpc0xhdGVuY3lBY2NlcHRhYmxlKHJhd1VzZXJGYWN0OiBJVXNlckZhY3QpIHtcclxuXHRcdGNvbnN0IGZhY3RUeXBlID0gdGhpcy5nZXRUeXBlKCk7XHJcblxyXG5cdFx0aWYgKCFpc05PVSh0aGlzLmdldExhdGVuY3lEdXJhdGlvbkluU2Vjb25kcygpKSAmJlxyXG5cdFx0XHQhZXZhbHVhdGVGYWN0Q2FuZGlkYWN5KHRoaXMuZ2V0TGF0ZW5jeVR5cGUoKSwgdGhpcy5nZXRMYXRlbmN5RHVyYXRpb25JblNlY29uZHMoKSwgcmF3VXNlckZhY3QpKSB7XHJcblx0XHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNJc0FNYXRjaC5NaXNtYXRjaCwge1xyXG5cdFx0XHRcdFx0RXJyb3JNZXNzYWdlOiBgTGF0ZW5jeSBkdXJhdGlvbiBub3QgYWNjZXB0YWJsZSAtIHsgTmFtZTogXCIke3Jhd1VzZXJGYWN0LnVzZXJGYWN0TmFtZX1cIiB9YCxcclxuXHRcdFx0XHRcdFRpbWVNaWxsaXNlY29uZHM6IHRoaXMuZ2V0TGF0ZW5jeUR1cmF0aW9uSW5TZWNvbmRzKCksXHJcblx0XHRcdFx0XHRUeXBlOiBgJHtmYWN0VHlwZX1gLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdCk7XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdHJ1ZTtcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGV2YWx1YXRlRmFjdENhbmRpZGFjeShsYXRlbmN5VHlwZTogVXNlckZhY3RMYXRlbmN5VHlwZSwgbGF0ZW5jeUR1cmF0aW9uSW5TZWNvbmRzOiBudW1iZXIsIHVzZXJGYWN0OiBJVXNlckZhY3QpIHtcclxuXHRsZXQgdXNlckZhY3RUaW1lOiBzdHJpbmc7XHJcblx0c3dpdGNoIChsYXRlbmN5VHlwZSkge1xyXG5cdFx0Y2FzZSBVc2VyRmFjdExhdGVuY3lUeXBlLk5vbmU6XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSBVc2VyRmFjdExhdGVuY3lUeXBlLlNvdXJjZURhdGVUaW1lOlxyXG5cdFx0XHR1c2VyRmFjdFRpbWUgPSB1c2VyRmFjdC5zb3VyY2VEYXRlVGltZTtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRjYXNlIFVzZXJGYWN0TGF0ZW5jeVR5cGUuU3RvcmFnZURhdGVUaW1lOlxyXG5cdFx0XHR1c2VyRmFjdFRpbWUgPSB1c2VyRmFjdC5zdG9yYWdlRGF0ZVRpbWU7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0Y2FzZSBVc2VyRmFjdExhdGVuY3lUeXBlLkNsaWVudEluZ2VzdGlvbkRhdGVUaW1lOlxyXG5cdFx0XHR1c2VyRmFjdFRpbWUgPSB1c2VyRmFjdC5jbGllbnRJbmdlc3Rpb25EYXRlVGltZTtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHRkZWZhdWx0OlxyXG5cdFx0XHRhc3NlcnROZXZlcihsYXRlbmN5VHlwZSk7XHJcblx0fVxyXG5cclxuXHRpZiAoIWlzTk9VKHVzZXJGYWN0VGltZSkpIHtcclxuXHRcdGNvbnN0IHVzZXJGYWN0VGltZUluTWlsbGlzZWNvbmRzID0gRGF0ZS5wYXJzZSh1c2VyRmFjdFRpbWUpO1xyXG5cdFx0Y29uc3QgY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcyA9IERhdGUubm93KCk7XHJcblxyXG5cdFx0cmV0dXJuIGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMgLSB1c2VyRmFjdFRpbWVJbk1pbGxpc2Vjb25kcyA8PSAobGF0ZW5jeUR1cmF0aW9uSW5TZWNvbmRzICogMTAwMCk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29tcGFyZUJvb2xlYW5WYWx1ZXModXNlckZhY3RTcGVjVmFsdWU6IGFueSwgcmF3VXNlckZhY3Q6IElVc2VyRmFjdCwgY29tcGFyYXRvcjogQ29tcGFyYXRvclR5cGUpIHtcclxuXHRjb25zdCByYXdVc2VyRmFjdFZhbHVlSW5Cb29sZWFuID0gSlNPTi5wYXJzZShyYXdVc2VyRmFjdC51c2VyRmFjdFZhbHVlLnRvTG93ZXJDYXNlKCkpO1xyXG5cdHJldHVybiBjb21wYXJlVmFsdWVzKCEhdXNlckZhY3RTcGVjVmFsdWUsICEhcmF3VXNlckZhY3RWYWx1ZUluQm9vbGVhbiwgY29tcGFyYXRvcik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBhcmVEYXRlVGltZVVUQ1ZhbHVlcyh1c2VyRmFjdFNwZWNWYWx1ZTogc3RyaW5nLCByYXdVc2VyRmFjdDogSVVzZXJGYWN0LCBjb21wYXJhdG9yOiBDb21wYXJhdG9yVHlwZSkge1xyXG5cdGNvbnN0IHJhd1VzZXJGYWN0VmFsdWVJbk1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UocmF3VXNlckZhY3QudXNlckZhY3RWYWx1ZSk7XHJcblx0aWYgKCFpc0FWYWxpZE51bWJlcihyYXdVc2VyRmFjdFZhbHVlSW5NaWxsaXNlY29uZHMsIHJhd1VzZXJGYWN0LnVzZXJGYWN0VmFsdWUsIHJhd1VzZXJGYWN0LnVzZXJGYWN0TmFtZSkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0Y29uc3QgdXNlckZhY3RTcGVjVmFsdWVJbk1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UodXNlckZhY3RTcGVjVmFsdWUpO1xyXG5cdGlmICghaXNBVmFsaWROdW1iZXIodXNlckZhY3RTcGVjVmFsdWVJbk1pbGxpc2Vjb25kcywgdXNlckZhY3RTcGVjVmFsdWUsIG51bGwsIFVzZXJGYWN0VHlwZS5EYXRlVGltZVVUQykpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBjb21wYXJlVmFsdWVzKHVzZXJGYWN0U3BlY1ZhbHVlSW5NaWxsaXNlY29uZHMsIHJhd1VzZXJGYWN0VmFsdWVJbk1pbGxpc2Vjb25kcywgY29tcGFyYXRvcik7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNvbXBhcmVOdW1iZXJWYWx1ZXModXNlckZhY3RTcGVjVmFsdWU6IG51bWJlciwgcmF3VXNlckZhY3Q6IElVc2VyRmFjdCwgY29tcGFyYXRvcjogQ29tcGFyYXRvclR5cGUpIHtcclxuXHRjb25zdCByYXdVc2VyRmFjdFZhbHVlSW5OdW1iZXIgPSBwYXJzZUludChyYXdVc2VyRmFjdC51c2VyRmFjdFZhbHVlLCAxMCk7XHJcblx0aWYgKCFpc0FWYWxpZE51bWJlcihyYXdVc2VyRmFjdFZhbHVlSW5OdW1iZXIsIHJhd1VzZXJGYWN0LnVzZXJGYWN0VmFsdWUsIHJhd1VzZXJGYWN0LnVzZXJGYWN0TmFtZSkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBjb21wYXJlVmFsdWVzKHVzZXJGYWN0U3BlY1ZhbHVlLCByYXdVc2VyRmFjdFZhbHVlSW5OdW1iZXIsIGNvbXBhcmF0b3IpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb21wYXJlU3RyaW5nVmFsdWVzKHVzZXJGYWN0U3BlY1ZhbHVlOiBzdHJpbmcsIHJhd1VzZXJGYWN0OiBJVXNlckZhY3QsIGNvbXBhcmF0b3I6IENvbXBhcmF0b3JUeXBlKSB7XHJcblx0cmV0dXJuIGNvbXBhcmVWYWx1ZXModXNlckZhY3RTcGVjVmFsdWUudG9Mb3dlckNhc2UoKSwgcmF3VXNlckZhY3QudXNlckZhY3RWYWx1ZS50b0xvd2VyQ2FzZSgpLCBjb21wYXJhdG9yKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29tcGFyZVRpbWVJbnRlcnZhbFZhbHVlcyhcclxuXHR1c2VyRmFjdFNwZWNWYWx1ZTogbnVtYmVyLCByYXdVc2VyRmFjdDogSVVzZXJGYWN0LCBjb21wYXJhdG9yOiBDb21wYXJhdG9yVHlwZSwgaW50ZXJ2YWxUeXBlOiBDdXJyZW50VGltZUludGVydmFsVHlwZSkge1xyXG5cdGNvbnN0IHJhd1VzZXJGYWN0VmFsdWVJbk1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UocmF3VXNlckZhY3QudXNlckZhY3RWYWx1ZSk7XHJcblx0aWYgKCFpc0FWYWxpZE51bWJlcihyYXdVc2VyRmFjdFZhbHVlSW5NaWxsaXNlY29uZHMsIHJhd1VzZXJGYWN0LnVzZXJGYWN0VmFsdWUsIHJhd1VzZXJGYWN0LnVzZXJGYWN0TmFtZSkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdC8vIERpZmYgZnJvbSBub3cgYW5kIHVzZXJzIGlucHV0IGRhdGVcclxuXHQvLyBJbnRlcnZhbFRvIC0gSW50ZXJudmFsIHRvIGN1cnJlbnQgZGF0ZSBmcm9tIGZhY3QgZGF0ZSAoZmFjdCBkYXRlIGlzIGV4cGVjdGVkIHRvIGJlIGJlZm9yZSBjdXJyZW50IGRhdGUpXHJcblx0Ly8gSW50ZXJ2YWxGcm9tIC0gSW50ZXJ2YWwgZnJvbSBjdXJyZW50IGRhdGUgdG8gZmFjdCBkYXRlIChmYWN0IGRhdGUgaXMgZXhwZWN0ZWQgdG8gYmUgYWZ0ZXIgY3VycmVudCBkYXRlKVxyXG5cdGNvbnN0IGN1cnJlbnRUaW1lSW5NaWxsaXNlY29uZHMgPSBEYXRlLm5vdygpO1xyXG5cdGNvbnN0IGN1cnJlbnREYXRlRGlmZiA9IGludGVydmFsVHlwZSA9PT0gQ3VycmVudFRpbWVJbnRlcnZhbFR5cGUuSW50ZXJ2YWxUbyA/XHJcblx0XHQoY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcyAtIHJhd1VzZXJGYWN0VmFsdWVJbk1pbGxpc2Vjb25kcykgOiAocmF3VXNlckZhY3RWYWx1ZUluTWlsbGlzZWNvbmRzIC0gY3VycmVudFRpbWVJbk1pbGxpc2Vjb25kcyk7XHJcblx0aWYgKGN1cnJlbnREYXRlRGlmZiA8IDApIHtcclxuXHRcdEZsb29kZ2F0ZUVuZ2luZS5nZXRUZWxlbWV0cnlMb2dnZXIoKS5sb2dfRXZlbnQoXHJcblx0XHRcdFRlbGVtZXRyeUV2ZW50LkZsb29kZ2F0ZS5Vc2VyRmFjdHNTcGVjSXNBTWF0Y2guTWlzbWF0Y2gsIHtcclxuXHRcdFx0RXJyb3JNZXNzYWdlOiBgSW50ZXJ2YWwgdHlwZSBub3QgYWNjZXB0YWJsZSAtIHsgU3BlYzogJHt1c2VyRmFjdFNwZWNWYWx1ZX0sIE5hbWU6IFwiJHtyYXdVc2VyRmFjdC51c2VyRmFjdE5hbWV9XCIgfWAsXHJcblx0XHRcdFRpbWVNaWxsaXNlY29uZHM6IGN1cnJlbnREYXRlRGlmZixcclxuXHRcdFx0VHlwZTogYCR7aW50ZXJ2YWxUeXBlfWAsXHJcblx0XHR9LFxyXG5cdFx0KTtcclxuXHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRjb25zdCBkYXlJbk1pbGxpc2Vjb25kcyA9IDg2NDAwMDAwO1xyXG5cdGNvbnN0IHVzZXJGYWN0U3BlY1ZhbHVlSW5NaWxsaXNlY29uZHMgPSB1c2VyRmFjdFNwZWNWYWx1ZSAqIGRheUluTWlsbGlzZWNvbmRzO1xyXG5cclxuXHQvLyBjaGVjayBpZiB0aGUgYWJvdmUgZGlmZiBzYXRpc2ZpZXMgdGhlIGNvbXBhcmlzb24gY3JpdGVyaWFcclxuXHRyZXR1cm4gY29tcGFyZVZhbHVlcyh1c2VyRmFjdFNwZWNWYWx1ZUluTWlsbGlzZWNvbmRzLCBjdXJyZW50RGF0ZURpZmYsIGNvbXBhcmF0b3IpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjb21wYXJlTGlzdFZhbHVlczxUIGV4dGVuZHMgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcj4odXNlckZhY3RTcGVjVmFsdWU6IFRbXSwgcmF3VXNlckZhY3Q6IElVc2VyRmFjdCwgY29tcGFyYXRvcjogQ29tcGFyYXRvclR5cGUpIHtcclxuXHRyZXR1cm4gY29tcGFyZVZhbHVlcyh1c2VyRmFjdFNwZWNWYWx1ZSwgcmF3VXNlckZhY3QudXNlckZhY3RWYWx1ZSBhcyBULCBjb21wYXJhdG9yKTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNDb21wYXJhdG9yVHlwZVN1cHBvcnRlZChjb21wYXJhdG9yOiBDb21wYXJhdG9yVHlwZSwgc3VwcG9ydGVkQ29tcGFyYXRvclR5cGVzOiBDb21wYXJhdG9yVHlwZVtdKSB7XHJcblx0cmV0dXJuIHN1cHBvcnRlZENvbXBhcmF0b3JUeXBlcy5pbmRleE9mKGNvbXBhcmF0b3IpICE9PSAtMTtcclxufVxyXG5cclxuZnVuY3Rpb24gY29tcGFyZVZhbHVlczxUIGV4dGVuZHMgc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlcj4oXHJcblx0dXNlckZhY3RTcGVjVmFsdWU6IFQgfCBUW10sIHVzZXJGYWN0UmF3VmFsdWU6IFQsIGNvbXBhcmF0b3I6IENvbXBhcmF0b3JUeXBlKTogYm9vbGVhbiB7XHJcblx0c3dpdGNoIChjb21wYXJhdG9yKSB7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkVxdWFsOlxyXG5cdFx0XHRyZXR1cm4gdXNlckZhY3RSYXdWYWx1ZSA9PT0gdXNlckZhY3RTcGVjVmFsdWU7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLk5vdEVxdWFsOlxyXG5cdFx0XHRyZXR1cm4gdXNlckZhY3RSYXdWYWx1ZSAhPT0gdXNlckZhY3RTcGVjVmFsdWU7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkdyZWF0ZXJUaGFuOlxyXG5cdFx0XHRyZXR1cm4gdXNlckZhY3RSYXdWYWx1ZSA+IHVzZXJGYWN0U3BlY1ZhbHVlO1xyXG5cdFx0Y2FzZSBDb21wYXJhdG9yVHlwZS5HcmVhdGVyVGhhbk9yRXF1YWw6XHJcblx0XHRcdHJldHVybiB1c2VyRmFjdFJhd1ZhbHVlID49IHVzZXJGYWN0U3BlY1ZhbHVlO1xyXG5cdFx0Y2FzZSBDb21wYXJhdG9yVHlwZS5MZXNzVGhhbjpcclxuXHRcdFx0cmV0dXJuIHVzZXJGYWN0UmF3VmFsdWUgPCB1c2VyRmFjdFNwZWNWYWx1ZTtcclxuXHRcdGNhc2UgQ29tcGFyYXRvclR5cGUuTGVzc1RoYW5PckVxdWFsOlxyXG5cdFx0XHRyZXR1cm4gdXNlckZhY3RSYXdWYWx1ZSA8PSB1c2VyRmFjdFNwZWNWYWx1ZTtcclxuXHRcdGNhc2UgQ29tcGFyYXRvclR5cGUuSW46XHJcblx0XHRcdHJldHVybiBpc0ZhY3RWYWx1ZUluVGFyZ2V0SXRlbSh1c2VyRmFjdFNwZWNWYWx1ZSwgdXNlckZhY3RSYXdWYWx1ZSk7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLk5vdEluOlxyXG5cdFx0XHRyZXR1cm4gIWlzRmFjdFZhbHVlSW5UYXJnZXRJdGVtKHVzZXJGYWN0U3BlY1ZhbHVlLCB1c2VyRmFjdFJhd1ZhbHVlKTtcclxuXHRcdGNhc2UgQ29tcGFyYXRvclR5cGUuSW52ZXJzZUluOlxyXG5cdFx0XHRyZXR1cm4gaXNGYWN0VmFsdWVJblRhcmdldEl0ZW0odXNlckZhY3RSYXdWYWx1ZSwgdXNlckZhY3RTcGVjVmFsdWUgYXMgVCk7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkludmVyc2VOb3RJbjpcclxuXHRcdFx0cmV0dXJuICFpc0ZhY3RWYWx1ZUluVGFyZ2V0SXRlbSh1c2VyRmFjdFJhd1ZhbHVlLCB1c2VyRmFjdFNwZWNWYWx1ZSBhcyBUKTtcclxuXHRcdGRlZmF1bHQ6XHJcblx0XHRcdGFzc2VydE5ldmVyKGNvbXBhcmF0b3IpO1xyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gYXNzZXJ0TmV2ZXIoXzogbmV2ZXIpIHtcclxuXHRyZXR1cm4gZmFsc2U7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRmFjdFZhbHVlSW5UYXJnZXRJdGVtPFQ+KHVzZXJGYWN0VGFyZ2V0VmFsdWVzOiBUIHwgVFtdLCB1c2VyRmFjdFJhd1ZhbHVlOiBUKTogYm9vbGVhbiB7XHJcblx0aWYgKHR5cGVvZiB1c2VyRmFjdFJhd1ZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcblx0XHRjb25zdCBmYWN0VmFsdWUgPSB1c2VyRmFjdFJhd1ZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRpZiAodHlwZW9mIHVzZXJGYWN0VGFyZ2V0VmFsdWVzID09PSBcInN0cmluZ1wiKSB7XHJcblx0XHRcdC8vIGJvdGggdGhlIGlucHV0cyBhcmUgc3RyaW5ncywgZG8gYSBwbGFpbiBpbmRleE9mXHJcblx0XHRcdHJldHVybiAodXNlckZhY3RUYXJnZXRWYWx1ZXMgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoZmFjdFZhbHVlKSAhPT0gLTE7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGlzQXJyYXkodXNlckZhY3RUYXJnZXRWYWx1ZXMpKSB7XHJcblx0XHRcdGNvbnN0IHNwZWNWYWx1ZXMgPSB1c2VyRmFjdFRhcmdldFZhbHVlcyBhcyBUW107XHJcblx0XHRcdHJldHVybiBzcGVjVmFsdWVzLnNvbWUoKHNwZWNWYWx1ZSkgPT4gc3BlY1ZhbHVlICYmIHNwZWNWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZhY3RWYWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZiAoaXNBcnJheSh1c2VyRmFjdFRhcmdldFZhbHVlcykpIHtcclxuXHRcdHJldHVybiAodXNlckZhY3RUYXJnZXRWYWx1ZXMgYXMgVFtdKS5pbmRleE9mKHVzZXJGYWN0UmF3VmFsdWUpICE9PSAtMTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNBVmFsaWROdW1iZXIobnVtYmVyVmFsdWU6IG51bWJlciwgdmFsdWU6IHN0cmluZywgcmF3VXNlckZhY3ROYW1lOiBzdHJpbmcsIGZhY3RUeXBlPzogVXNlckZhY3RUeXBlKSB7XHJcblx0aWYgKCFpc051bWJlcihudW1iZXJWYWx1ZSkpIHtcclxuXHRcdGxldCBlcnJvck1lc3NhZ2UgPSBgVXNlciBmYWN0ICR7cmF3VXNlckZhY3ROYW1lfSBoYXMgaW52YWxpZCB2YWx1ZSAke3ZhbHVlfWA7XHJcblx0XHRpZiAoZmFjdFR5cGUpIHtcclxuXHRcdFx0ZXJyb3JNZXNzYWdlID0gYEludmFsaWQgdmFsdWUgJHt2YWx1ZX0gd2FzIHByb3ZpZGVkIGZvciB1c2VyIGZhY3Qgb2YgdHlwZSAke2ZhY3RUeXBlfWA7XHJcblx0XHR9XHJcblxyXG5cdFx0Rmxvb2RnYXRlRW5naW5lLmdldFRlbGVtZXRyeUxvZ2dlcigpLmxvZ19FcnJvcihcclxuXHRcdFx0VGVsZW1ldHJ5RXZlbnQuRmxvb2RnYXRlLlVzZXJGYWN0c1NwZWNJc0FNYXRjaC5GYWlsZWQsXHJcblx0XHRcdGVycm9yTWVzc2FnZSk7XHJcblxyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRydWU7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/UserFact/UserFact.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/UserFact/UserFactHelper.js": /*!************************************************************!*\ !*** ../FloodgateCore/dist/src/UserFact/UserFactHelper.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateUserFacts = exports.deserializeUserFacts = void 0;\nvar UserFact_1 = __webpack_require__(/*! ./UserFact */ \"../FloodgateCore/dist/src/UserFact/UserFact.js\");\nexports.deserializeUserFacts = function (input) {\n var userFacts = [];\n for (var key in input.UserFacts) {\n if (Object.prototype.hasOwnProperty.call(input.UserFacts, key)) {\n var userFactInput = input.UserFacts[key];\n if (userFactInput) {\n userFacts.push(UserFact_1.UserFact.deserialize(userFactInput));\n }\n }\n }\n if (userFacts.length === 0) {\n userFacts = null;\n }\n return userFacts;\n};\nexports.validateUserFacts = function (userFacts) {\n if (userFacts) {\n for (var key in userFacts) {\n if (Object.prototype.hasOwnProperty.call(userFacts, key) && !userFacts[key]) {\n return false;\n }\n }\n }\n return true;\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1VzZXJGYWN0L1VzZXJGYWN0SGVscGVyLnRzPzk4OGEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUdBQXNDO0FBRXpCLDRCQUFvQixHQUFHLFVBQUMsS0FBVTtJQUM5QyxJQUFJLFNBQVMsR0FBZSxFQUFFLENBQUM7SUFDL0IsS0FBSyxJQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFO1FBQ2xDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDL0QsSUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUUzQyxJQUFJLGFBQWEsRUFBRTtnQkFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ3BEO1NBQ0Q7S0FDRDtJQUVELElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDM0IsU0FBUyxHQUFHLElBQUksQ0FBQztLQUNqQjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBRWxCLENBQUMsQ0FBQztBQUVXLHlCQUFpQixHQUFHLFVBQUMsU0FBcUI7SUFDdEQsSUFBSSxTQUFTLEVBQUU7UUFDZCxLQUFLLElBQU0sR0FBRyxJQUFJLFNBQVMsRUFBRTtZQUM1QixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVFLE9BQU8sS0FBSyxDQUFDO2FBQ2I7U0FDRDtLQUNEO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDYixDQUFDLENBQUMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9Vc2VyRmFjdC9Vc2VyRmFjdEhlbHBlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFVzZXJGYWN0IH0gZnJvbSBcIi4vVXNlckZhY3RcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBkZXNlcmlhbGl6ZVVzZXJGYWN0cyA9IChpbnB1dDogYW55KTogVXNlckZhY3RbXSA9PiB7XHJcblx0bGV0IHVzZXJGYWN0czogVXNlckZhY3RbXSA9IFtdO1xyXG5cdGZvciAoY29uc3Qga2V5IGluIGlucHV0LlVzZXJGYWN0cykge1xyXG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpbnB1dC5Vc2VyRmFjdHMsIGtleSkpIHtcclxuXHRcdFx0Y29uc3QgdXNlckZhY3RJbnB1dCA9IGlucHV0LlVzZXJGYWN0c1trZXldO1xyXG5cclxuXHRcdFx0aWYgKHVzZXJGYWN0SW5wdXQpIHtcclxuXHRcdFx0XHR1c2VyRmFjdHMucHVzaChVc2VyRmFjdC5kZXNlcmlhbGl6ZSh1c2VyRmFjdElucHV0KSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGlmICh1c2VyRmFjdHMubGVuZ3RoID09PSAwKSB7XHJcblx0XHR1c2VyRmFjdHMgPSBudWxsO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHVzZXJGYWN0cztcclxuXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVVc2VyRmFjdHMgPSAodXNlckZhY3RzOiBVc2VyRmFjdFtdKTogYm9vbGVhbiA9PiB7XHJcblx0aWYgKHVzZXJGYWN0cykge1xyXG5cdFx0Zm9yIChjb25zdCBrZXkgaW4gdXNlckZhY3RzKSB7XHJcblx0XHRcdGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodXNlckZhY3RzLCBrZXkpICYmICF1c2VyRmFjdHNba2V5XSkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRydWU7XHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/UserFact/UserFactHelper.js\n"); /***/ }), /***/ "../FloodgateCore/dist/src/Utils.js": /*!******************************************!*\ !*** ../FloodgateCore/dist/src/Utils.js ***! \******************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\n/*\n * Utils.ts\n *\n * Module for utility functions\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findHighestPriorityDefinition = exports.safeParseObject = exports.isValidUserId = exports.fyShuffle = exports.dateToShortUtcString = exports.isUtcDatetimeString = exports.overrideValues = exports.stringToDate = exports.makeArrayFromObjectValuesSortedByKeyString = exports.guid = exports.extractLanguageSubtag = exports.isValidLanguageSubTag = exports.subtractSecondsWithoutOverflow = exports.addSecondsWithoutOverflow = exports.MIN_DATE_MILLISECONDS = exports.MAX_DATE_MILLISECONDS = exports.getDistantFuture = exports.getDistantPast = exports.isBoolean = exports.isString = exports.isArray = exports.isFunction = exports.isObject = exports.isNOU = exports.isNumber = exports.isEnumValue = exports.isDate = exports.timeAdd = void 0;\n/**\n * Add time to a given date\n * Example, timeAdd(new Date(), 'minute', 5) //returns 5 minutes from now\n * @param date Date to start with\n * @param interval One of: hour or h, minute or m, second or s\n * @param units units of the given interval to add\n * @return date\n */\nfunction timeAdd(date, interval, units) {\n switch (interval.toLowerCase()) {\n case \"h\":\n case \"hour\":\n return new Date(date.getTime() + (units * 3600000));\n case \"m\":\n case \"minute\":\n return new Date(date.getTime() + (units * 60000));\n case \"s\":\n case \"second\":\n return new Date(date.getTime() + (units * 1000));\n default:\n throw new Error(\"Invalid interval value of \" + interval);\n }\n}\nexports.timeAdd = timeAdd;\n/**\n * Check if an input value is a valid date, null or undefined return false.\n * @param input input value\n * @return boolean\n */\nfunction isDate(input) {\n if (Object.prototype.toString.call(input) === \"[object Date]\") {\n // it is a date\n if (!(isNaN(input.getTime()))) {\n return true;\n }\n }\n return false;\n}\nexports.isDate = isDate;\n/**\n * Check if an input value is a valid value in the input enum\n * @param value input value\n * @param input input enum\n * Returns true if value exists in the enum\n */\nfunction isEnumValue(value, input) {\n return (value in input);\n}\nexports.isEnumValue = isEnumValue;\n/**\n * Check if an input value is a number\n * @param value: input value\n */\nfunction isNumber(value) {\n return (value !== null && !isNaN(value) && isFinite(value));\n}\nexports.isNumber = isNumber;\n/**\n * Check if an input value is null or undefined\n * @param value: input value\n */\nfunction isNOU(value) {\n return (value === null || value === undefined);\n}\nexports.isNOU = isNOU;\n/**\n * Check if an input value is an object\n * @param value: input value\n */\nfunction isObject(value) {\n return (value !== null && value !== undefined && (typeof value === \"object\"));\n}\nexports.isObject = isObject;\n/**\n * Check if an input value is an array\n * @param value: input value\n */\nfunction isFunction(value) {\n return (value !== null && value !== undefined && (typeof value === \"function\"));\n}\nexports.isFunction = isFunction;\n/**\n * Check if an input value is an array\n * @param value: input value\n */\nfunction isArray(value) {\n return (value !== null && value !== undefined && (Array.isArray(value)));\n}\nexports.isArray = isArray;\n/**\n * Check if given value is a string\n * @param {any} value value\n */\nfunction isString(value) {\n return (typeof value === \"string\");\n}\nexports.isString = isString;\n/**\n * Check if value is an object\n * @param {any} value value\n */\nfunction isBoolean(value) {\n return typeof (value) === \"boolean\";\n}\nexports.isBoolean = isBoolean;\n/**\n * Returns a lower temporal boundary\n * @return date\n */\nfunction getDistantPast() {\n // Corresponds to UTC 1601-01-01T00:00:00Z\n return new Date(-11644473600000);\n}\nexports.getDistantPast = getDistantPast;\n/**\n * Get an upper temporal boundary\n * @return date\n */\nfunction getDistantFuture() {\n // Corresponds to UTC 4001-01-01T00:00:00Z\n return new Date(64092211200000);\n}\nexports.getDistantFuture = getDistantFuture;\nexports.MAX_DATE_MILLISECONDS = 8640000000000000;\nexports.MIN_DATE_MILLISECONDS = -8640000000000000;\n/**\n * Adds seconds to a date, if overflows returns Date(Number.Max_VALUE)\n *\n * @param date date to add to\n * @param seconds seconds as number\n * @return Resulting date\n */\nfunction addSecondsWithoutOverflow(date, seconds) {\n if (!date) {\n return null;\n }\n if (seconds < 0) {\n return subtractSecondsWithoutOverflow(date, -1 * seconds);\n }\n else {\n var milliseconds = date.getTime() + seconds * 1000;\n if (milliseconds < exports.MAX_DATE_MILLISECONDS) {\n return new Date(milliseconds);\n }\n else {\n return new Date(exports.MAX_DATE_MILLISECONDS);\n }\n }\n}\nexports.addSecondsWithoutOverflow = addSecondsWithoutOverflow;\n/**\n * Subtracts seconds from a date, if overflows returns Date(Number.MIN_VALUE)\n *\n * @param date date to subtract from\n * @param seconds seconds as number\n * @return Resulting date\n */\nfunction subtractSecondsWithoutOverflow(date, seconds) {\n if (!date) {\n return null;\n }\n if (seconds < 0) {\n seconds = -seconds;\n return this.addSecondsWithoutOverflow(date, seconds);\n }\n var milliseconds = date.getTime() - (seconds * 1000);\n if (milliseconds > exports.MIN_DATE_MILLISECONDS) {\n return new Date(milliseconds);\n }\n else {\n return new Date(exports.MIN_DATE_MILLISECONDS);\n }\n}\nexports.subtractSecondsWithoutOverflow = subtractSecondsWithoutOverflow;\n// region Language related\n/**\n * Effectively un-anchored on the right side because tags can have many more trailing sub-parts than we care to extract\n * Refer to https://www.ietf.org/rfc/rfc5646.txt\n */\nvar LANGUAGE_AND_SCRIPT_TAG_PATTERN = \"^\" +\n // capture 1:language subtag\n \"(\" +\n \"(?:[a-zA-Z]{2,3}(?:-[a-zA-Z]{3}){0,3})\" + // 2-3 Alpha chars, followed by up to three optional extension tags, each of format -AAA, A=Alpha char\n \"|\" +\n \"(?:[a-zA-Z]{4,8})\" + // 4-Alpha chars (reserved in standard) or 5-8 Alpha chars\n \")\" +\n \"(?:\" +\n \"-\" +\n // capture 2: optional script subtag (without leading dash), exactly 4 alpha chars\n \"([a-zA-Z]{4})\" + // 4-Alpha chars\n \")?\" +\n // capture 3: optional region subtag (without leading dash), exactly 2 alpha chars or 3 digits\n \"(?:-([a-zA-Z]{2}|[0-9]{3}))?\" +\n \"(\" +\n // capture 4: any left-overs, rejecting remainder strings that don't end here or lead with a dash.\n \"-.*\" +\n \")?\" +\n \"$\";\nfunction isValidLanguageSubTag(subTag) {\n if (!subTag) {\n return false;\n }\n var extractedSubTag = extractLanguageSubtag(subTag);\n if (!extractedSubTag) {\n return false;\n }\n return extractedSubTag === subTag;\n}\nexports.isValidLanguageSubTag = isValidLanguageSubTag;\nfunction extractLanguageSubtag(language) {\n if (!language) {\n return null;\n }\n var matches = language.match(LANGUAGE_AND_SCRIPT_TAG_PATTERN);\n if (!matches || matches.length < 1 || !isNOU(matches[4])) {\n return null;\n }\n // return the first capture group which should be the original input if there is a match\n // For example, \"en-US\" input should return \"en-US\", and \"en\" input should return \"en\".\n return matches[0];\n}\nexports.extractLanguageSubtag = extractLanguageSubtag;\n// endregion\n/**\n * Create guid string\n */\nfunction guid() {\n // Stitch in '4' in the third group\n return (randomHex4() + randomHex4() + \"-\" + randomHex4() + \"-4\" + randomHex4().substr(0, 3) + \"-\" + randomHex4() + \"-\"\n + randomHex4() + randomHex4() + randomHex4()).toLowerCase();\n}\nexports.guid = guid;\n/**\n * Create random Hex4 string\n */\nfunction randomHex4() {\n return (Math.floor(((1 + Math.random()) * 0x10000))).toString(16).substring(1);\n}\n/**\n * Create an array from input object values sorted by object key\n * @param Object input object\n * @return array\n */\nfunction makeArrayFromObjectValuesSortedByKeyString(object) {\n var keys = Object.keys(object);\n keys.sort();\n var values = [];\n for (var id in keys) {\n if (Object.prototype.hasOwnProperty.call(keys, id)) {\n var key = keys[id];\n values.push(object[key]);\n }\n }\n return values;\n}\nexports.makeArrayFromObjectValuesSortedByKeyString = makeArrayFromObjectValuesSortedByKeyString;\n/**\n * Create a date object from an input string\n * @param Object input string\n * @return date\n */\nfunction stringToDate(input) {\n if (!isString(input)) {\n return null;\n }\n var newDate = input ? new Date(input) : null;\n return isDate(newDate) ? newDate : null;\n}\nexports.stringToDate = stringToDate;\n/**\n * Takes two objects (source, target) and returns the target object with values in the source added to it.\n * It overwrites any source properties which already exist in target.\n */\nfunction overrideValues(sourceObject, targetobject) {\n if (!targetobject) {\n return targetobject;\n }\n var result = targetobject;\n if (sourceObject) {\n for (var field in sourceObject) {\n if (Object.prototype.hasOwnProperty.call(sourceObject, field)) {\n result[field] = sourceObject[field];\n }\n }\n }\n return result;\n}\nexports.overrideValues = overrideValues;\n/**\n * Test a string is in our supported ISO8601 UTC format of \"yyyy-MM-ddTHH:mm:ssZ\" and \"yyyy-MM-ddTHH:mm:ss.fffZ\"\n * @param input Input string to be evaluated.\n */\nfunction isUtcDatetimeString(input) {\n if (!isString(input)) {\n return false;\n }\n var supportedUtcRegex = /^(\\d{4}\\-\\d\\d\\-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d\\d\\d)?Z)$/; /* eslint-disable-line no-useless-escape */\n return supportedUtcRegex.test(input);\n}\nexports.isUtcDatetimeString = isUtcDatetimeString;\n/**\n * Convert a date object to a string in ISO8601 UTC format supported by Floodgate (\"yyyy-MM-ddTHH:mm:ssZ\")\n * @param input Input date object\n */\nfunction dateToShortUtcString(input) {\n if (!isDate(input)) {\n return null;\n }\n function pad(n) {\n return (n < 10) ? (\"0\" + n) : n.toString();\n }\n return input.getUTCFullYear() +\n \"-\" + pad(input.getUTCMonth() + 1) +\n \"-\" + pad(input.getUTCDate()) +\n \"T\" + pad(input.getUTCHours()) +\n \":\" + pad(input.getUTCMinutes()) +\n \":\" + pad(input.getUTCSeconds()) +\n \"Z\";\n}\nexports.dateToShortUtcString = dateToShortUtcString;\n/*\nImplementing the Fisher-Yates Shuffle\n(Shuffles in situ)\n*/\nfunction fyShuffle(arrIn) {\n if (isNOU(arrIn)) {\n return undefined;\n }\n // If the array is empty or has one element, do nothing.\n if (arrIn.length === 0 || arrIn.length === 1) {\n return arrIn;\n }\n var lastNonShuffledElement = arrIn.length - 1;\n // While there is still a non shuffled element.\n while (lastNonShuffledElement > 0) {\n // Pick one of the non shuffled elements (num range [0,lastNonShuffledElement+1))\n var pickIndex = Math.floor(Math.random() * (lastNonShuffledElement + 1));\n // And swap it with the last non shuffled element\n var temp = arrIn[lastNonShuffledElement];\n arrIn[lastNonShuffledElement] = arrIn[pickIndex];\n arrIn[pickIndex] = temp;\n lastNonShuffledElement--;\n }\n return arrIn;\n}\nexports.fyShuffle = fyShuffle;\n/**\n * Check if value is an valid user id\n * One or two character before colon, a colon, and some word after colon.\n * @param {any} value value\n */\nfunction isValidUserId(value) {\n if (!isString(value)) {\n return false;\n }\n var supportedUserIdRegex = /^([a-z]{1,2}):\\w+/;\n return supportedUserIdRegex.test(value);\n}\nexports.isValidUserId = isValidUserId;\n/**\n * Safely read an object\n */\nfunction safeParseObject(serializedValue, defaultValue) {\n try {\n var parsedObject = serializedValue && (serializedValue[0] === \"{\" || serializedValue[0] === \"[\")\n ? JSON.parse(serializedValue)\n : undefined;\n return parsedObject !== null && parsedObject !== void 0 ? parsedObject : defaultValue;\n }\n catch (e) {\n // ignore\n }\n return defaultValue;\n}\nexports.safeParseObject = safeParseObject;\n/**\n * Find the definition with highest priority\n */\nfunction findHighestPriorityDefinition(definitions) {\n var hasLowerPriorityDefinitions = false;\n // Get definition that has max priority value (0/null/undefined has highest prioirty)\n var maxPriorityDefinition = definitions.reduce(function (prev, cur) {\n var curPriority = cur.primaryPriority || 0;\n var prevPriority = prev.primaryPriority || 0;\n // check if we have lower priority (higher number)\n if (curPriority !== prevPriority) {\n hasLowerPriorityDefinitions = true;\n }\n return curPriority < prevPriority ? cur : prev;\n });\n return [maxPriorityDefinition, hasLowerPriorityDefinitions];\n}\nexports.findHighestPriorityDefinition = findHighestPriorityDefinition;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vc3JjL1V0aWxzLnRzP2NmZTIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUlIOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixPQUFPLENBQUMsSUFBVSxFQUFFLFFBQWdCLEVBQUUsS0FBYTtJQUNsRSxRQUFRLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRTtRQUMvQixLQUFLLEdBQUcsQ0FBQztRQUNULEtBQUssTUFBTTtZQUNWLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckQsS0FBSyxHQUFHLENBQUM7UUFDVCxLQUFLLFFBQVE7WUFDWixPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ25ELEtBQUssR0FBRyxDQUFDO1FBQ1QsS0FBSyxRQUFRO1lBQ1osT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRDtZQUNDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLEdBQUcsUUFBUSxDQUFDLENBQUM7S0FDMUQ7QUFDRixDQUFDO0FBZEQsMEJBY0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsTUFBTSxDQUFDLEtBQVU7SUFDaEMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssZUFBZSxFQUFFO1FBQzlELGVBQWU7UUFDZixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQztTQUNaO0tBQ0Q7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNkLENBQUM7QUFSRCx3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QyxDQUFDO0lBRUgsT0FBTyxDQUFDLHFCQUFxQixFQUFFLDJCQUEyQixDQUFDLENBQUM7QUFDN0QsQ0FBQztBQWhCRCxzRUFnQkMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9kaXN0L3NyYy9VdGlscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFV0aWxzLnRzXHJcbiAqXHJcbiAqIE1vZHVsZSBmb3IgdXRpbGl0eSBmdW5jdGlvbnNcclxuICovXHJcblxyXG5pbXBvcnQgeyBJQ2FtcGFpZ25EZWZpbml0aW9uIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcblxyXG4vKipcclxuICogQWRkIHRpbWUgdG8gYSBnaXZlbiBkYXRlXHJcbiAqIEV4YW1wbGUsIHRpbWVBZGQobmV3IERhdGUoKSwgJ21pbnV0ZScsIDUpICAvL3JldHVybnMgNSBtaW51dGVzIGZyb20gbm93XHJcbiAqIEBwYXJhbSBkYXRlICBEYXRlIHRvIHN0YXJ0IHdpdGhcclxuICogQHBhcmFtIGludGVydmFsICBPbmUgb2Y6IGhvdXIgb3IgaCwgbWludXRlIG9yIG0sIHNlY29uZCBvciBzXHJcbiAqIEBwYXJhbSB1bml0cyAgdW5pdHMgb2YgdGhlIGdpdmVuIGludGVydmFsIHRvIGFkZFxyXG4gKiBAcmV0dXJuIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0aW1lQWRkKGRhdGU6IERhdGUsIGludGVydmFsOiBzdHJpbmcsIHVuaXRzOiBudW1iZXIpOiBEYXRlIHtcclxuXHRzd2l0Y2ggKGludGVydmFsLnRvTG93ZXJDYXNlKCkpIHtcclxuXHRcdGNhc2UgXCJoXCI6XHJcblx0XHRjYXNlIFwiaG91clwiOlxyXG5cdFx0XHRyZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAodW5pdHMgKiAzNjAwMDAwKSk7XHJcblx0XHRjYXNlIFwibVwiOlxyXG5cdFx0Y2FzZSBcIm1pbnV0ZVwiOlxyXG5cdFx0XHRyZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRUaW1lKCkgKyAodW5pdHMgKiA2MDAwMCkpO1xyXG5cdFx0Y2FzZSBcInNcIjpcclxuXHRcdGNhc2UgXCJzZWNvbmRcIjpcclxuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgKHVuaXRzICogMTAwMCkpO1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBpbnRlcnZhbCB2YWx1ZSBvZiBcIiArIGludGVydmFsKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBpbnB1dCB2YWx1ZSBpcyBhIHZhbGlkIGRhdGUsIG51bGwgb3IgdW5kZWZpbmVkIHJldHVybiBmYWxzZS5cclxuICogQHBhcmFtIGlucHV0ICBpbnB1dCB2YWx1ZVxyXG4gKiBAcmV0dXJuIGJvb2xlYW5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0RhdGUoaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG5cdGlmIChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSBcIltvYmplY3QgRGF0ZV1cIikge1xyXG5cdFx0Ly8gaXQgaXMgYSBkYXRlXHJcblx0XHRpZiAoIShpc05hTihpbnB1dC5nZXRUaW1lKCkpKSkge1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgYW4gaW5wdXQgdmFsdWUgaXMgYSB2YWxpZCB2YWx1ZSBpbiB0aGUgaW5wdXQgZW51bVxyXG4gKiBAcGFyYW0gdmFsdWUgIGlucHV0IHZhbHVlXHJcbiAqIEBwYXJhbSBpbnB1dCAgaW5wdXQgZW51bVxyXG4gKiBSZXR1cm5zIHRydWUgaWYgdmFsdWUgZXhpc3RzIGluIHRoZSBlbnVtXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNFbnVtVmFsdWUodmFsdWU6IGFueSwgaW5wdXQ6IGFueSk6IGJvb2xlYW4ge1xyXG5cdHJldHVybiAodmFsdWUgaW4gaW5wdXQpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgYW4gaW5wdXQgdmFsdWUgaXMgYSBudW1iZXJcclxuICogQHBhcmFtIHZhbHVlOiBpbnB1dCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVtYmVyKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuXHRyZXR1cm4gKHZhbHVlICE9PSBudWxsICYmICFpc05hTih2YWx1ZSkgJiYgaXNGaW5pdGUodmFsdWUpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIGFuIGlucHV0IHZhbHVlIGlzIG51bGwgb3IgdW5kZWZpbmVkXHJcbiAqIEBwYXJhbSB2YWx1ZTogaW5wdXQgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc05PVSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcblx0cmV0dXJuICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIGFuIGlucHV0IHZhbHVlIGlzIGFuIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWU6IGlucHV0IHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdHJldHVybiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBpbnB1dCB2YWx1ZSBpcyBhbiBhcnJheVxyXG4gKiBAcGFyYW0gdmFsdWU6IGlucHV0IHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcblx0cmV0dXJuICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2YgdmFsdWUgPT09IFwiZnVuY3Rpb25cIikpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgYW4gaW5wdXQgdmFsdWUgaXMgYW4gYXJyYXlcclxuICogQHBhcmFtIHZhbHVlOiBpbnB1dCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdHJldHVybiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIGdpdmVuIHZhbHVlIGlzIGEgc3RyaW5nXHJcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuXHRyZXR1cm4gKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIik7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiB2YWx1ZSBpcyBhbiBvYmplY3RcclxuICogQHBhcmFtIHthbnl9IHZhbHVlIHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNCb29sZWFuKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuXHRyZXR1cm4gdHlwZW9mICh2YWx1ZSkgPT09IFwiYm9vbGVhblwiO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyBhIGxvd2VyIHRlbXBvcmFsIGJvdW5kYXJ5XHJcbiAqIEByZXR1cm4gZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbnRQYXN0KCk6IERhdGUge1xyXG5cdC8vIENvcnJlc3BvbmRzIHRvIFVUQyAxNjAxLTAxLTAxVDAwOjAwOjAwWlxyXG5cdHJldHVybiBuZXcgRGF0ZSgtMTE2NDQ0NzM2MDAwMDApO1xyXG59XHJcblxyXG4vKipcclxuICogR2V0IGFuIHVwcGVyIHRlbXBvcmFsIGJvdW5kYXJ5XHJcbiAqIEByZXR1cm4gZGF0ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERpc3RhbnRGdXR1cmUoKTogRGF0ZSB7XHJcblx0Ly8gQ29ycmVzcG9uZHMgdG8gVVRDIDQwMDEtMDEtMDFUMDA6MDA6MDBaXHJcblx0cmV0dXJuIG5ldyBEYXRlKDY0MDkyMjExMjAwMDAwKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IE1BWF9EQVRFX01JTExJU0VDT05EUyA9IDg2NDAwMDAwMDAwMDAwMDA7XHJcbmV4cG9ydCBjb25zdCBNSU5fREFURV9NSUxMSVNFQ09ORFMgPSAtODY0MDAwMDAwMDAwMDAwMDtcclxuXHJcbi8qKlxyXG4gKiBBZGRzIHNlY29uZHMgdG8gYSBkYXRlLCBpZiBvdmVyZmxvd3MgcmV0dXJucyBEYXRlKE51bWJlci5NYXhfVkFMVUUpXHJcbiAqXHJcbiAqIEBwYXJhbSBkYXRlICAgIGRhdGUgdG8gYWRkIHRvXHJcbiAqIEBwYXJhbSBzZWNvbmRzIHNlY29uZHMgYXMgbnVtYmVyXHJcbiAqIEByZXR1cm4gUmVzdWx0aW5nIGRhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRTZWNvbmRzV2l0aG91dE92ZXJmbG93KGRhdGU6IERhdGUsIHNlY29uZHM6IG51bWJlcik6IERhdGUge1xyXG5cdGlmICghZGF0ZSkge1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRpZiAoc2Vjb25kcyA8IDApIHtcclxuXHRcdHJldHVybiBzdWJ0cmFjdFNlY29uZHNXaXRob3V0T3ZlcmZsb3coZGF0ZSwgLTEgKiBzZWNvbmRzKTtcclxuXHR9IGVsc2Uge1xyXG5cdFx0Y29uc3QgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSBkYXRlLmdldFRpbWUoKSArIHNlY29uZHMgKiAxMDAwO1xyXG5cclxuXHRcdGlmIChtaWxsaXNlY29uZHMgPCBNQVhfREFURV9NSUxMSVNFQ09ORFMpIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXR1cm4gbmV3IERhdGUoTUFYX0RBVEVfTUlMTElTRUNPTkRTKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTdWJ0cmFjdHMgc2Vjb25kcyBmcm9tIGEgZGF0ZSwgaWYgb3ZlcmZsb3dzIHJldHVybnMgRGF0ZShOdW1iZXIuTUlOX1ZBTFVFKVxyXG4gKlxyXG4gKiBAcGFyYW0gZGF0ZSAgIGRhdGUgdG8gc3VidHJhY3QgZnJvbVxyXG4gKiBAcGFyYW0gc2Vjb25kcyBzZWNvbmRzIGFzIG51bWJlclxyXG4gKiBAcmV0dXJuIFJlc3VsdGluZyBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3VidHJhY3RTZWNvbmRzV2l0aG91dE92ZXJmbG93KGRhdGU6IERhdGUsIHNlY29uZHM6IG51bWJlcik6IERhdGUge1xyXG5cdGlmICghZGF0ZSkge1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRpZiAoc2Vjb25kcyA8IDApIHtcclxuXHRcdHNlY29uZHMgPSAtc2Vjb25kcztcclxuXHRcdHJldHVybiB0aGlzLmFkZFNlY29uZHNXaXRob3V0T3ZlcmZsb3coZGF0ZSwgc2Vjb25kcyk7XHJcblx0fVxyXG5cclxuXHRjb25zdCBtaWxsaXNlY29uZHM6IG51bWJlciA9IGRhdGUuZ2V0VGltZSgpIC0gKHNlY29uZHMgKiAxMDAwKTtcclxuXHJcblx0aWYgKG1pbGxpc2Vjb25kcyA+IE1JTl9EQVRFX01JTExJU0VDT05EUykge1xyXG5cdFx0cmV0dXJuIG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBuZXcgRGF0ZShNSU5fREFURV9NSUxMSVNFQ09ORFMpO1xyXG5cdH1cclxufVxyXG5cclxuLy8gcmVnaW9uIExhbmd1YWdlIHJlbGF0ZWRcclxuXHJcbi8qKlxyXG4gKiBFZmZlY3RpdmVseSB1bi1hbmNob3JlZCBvbiB0aGUgcmlnaHQgc2lkZSBiZWNhdXNlIHRhZ3MgY2FuIGhhdmUgbWFueSBtb3JlIHRyYWlsaW5nIHN1Yi1wYXJ0cyB0aGFuIHdlIGNhcmUgdG8gZXh0cmFjdFxyXG4gKiBSZWZlciB0byBodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjNTY0Ni50eHRcclxuICovXHJcbmNvbnN0IExBTkdVQUdFX0FORF9TQ1JJUFRfVEFHX1BBVFRFUk46IHN0cmluZyA9XHJcblx0XCJeXCIgK1xyXG5cdC8vIGNhcHR1cmUgMTpsYW5ndWFnZSBzdWJ0YWdcclxuXHRcIihcIiArXHJcblx0XCIoPzpbYS16QS1aXXsyLDN9KD86LVthLXpBLVpdezN9KXswLDN9KVwiICsgIC8vIDItMyBBbHBoYSBjaGFycywgZm9sbG93ZWQgYnkgdXAgdG8gdGhyZWUgb3B0aW9uYWwgZXh0ZW5zaW9uIHRhZ3MsIGVhY2ggb2YgZm9ybWF0IC1BQUEsIEE9QWxwaGEgY2hhclxyXG5cdFwifFwiICtcclxuXHRcIig/OlthLXpBLVpdezQsOH0pXCIgKyAgICAgICAgICAgICAgICAgICAgICAgLy8gNC1BbHBoYSBjaGFycyAocmVzZXJ2ZWQgaW4gc3RhbmRhcmQpIG9yIDUtOCBBbHBoYSBjaGFyc1xyXG5cdFwiKVwiICtcclxuXHRcIig/OlwiICtcclxuXHRcIi1cIiArXHJcblx0Ly8gY2FwdHVyZSAyOiBvcHRpb25hbCBzY3JpcHQgc3VidGFnICh3aXRob3V0IGxlYWRpbmcgZGFzaCksIGV4YWN0bHkgNCBhbHBoYSBjaGFyc1xyXG5cdFwiKFthLXpBLVpdezR9KVwiICsgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyA0LUFscGhhIGNoYXJzXHJcblx0XCIpP1wiICtcclxuXHQvLyBjYXB0dXJlIDM6IG9wdGlvbmFsIHJlZ2lvbiBzdWJ0YWcgKHdpdGhvdXQgbGVhZGluZyBkYXNoKSwgZXhhY3RseSAyIGFscGhhIGNoYXJzIG9yIDMgZGlnaXRzXHJcblx0XCIoPzotKFthLXpBLVpdezJ9fFswLTldezN9KSk/XCIgK1xyXG5cdFwiKFwiICtcclxuXHQvLyBjYXB0dXJlIDQ6IGFueSBsZWZ0LW92ZXJzLCByZWplY3RpbmcgcmVtYWluZGVyIHN0cmluZ3MgdGhhdCBkb24ndCBlbmQgaGVyZSBvciBsZWFkIHdpdGggYSBkYXNoLlxyXG5cdFwiLS4qXCIgK1xyXG5cdFwiKT9cIiArXHJcblx0XCIkXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZExhbmd1YWdlU3ViVGFnKHN1YlRhZzogc3RyaW5nKTogYm9vbGVhbiB7XHJcblx0aWYgKCFzdWJUYWcpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGV4dHJhY3RlZFN1YlRhZzogc3RyaW5nID0gZXh0cmFjdExhbmd1YWdlU3VidGFnKHN1YlRhZyk7XHJcblx0aWYgKCFleHRyYWN0ZWRTdWJUYWcpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBleHRyYWN0ZWRTdWJUYWcgPT09IHN1YlRhZztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RMYW5ndWFnZVN1YnRhZyhsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRpZiAoIWxhbmd1YWdlKSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdGNvbnN0IG1hdGNoZXMgPSBsYW5ndWFnZS5tYXRjaChMQU5HVUFHRV9BTkRfU0NSSVBUX1RBR19QQVRURVJOKTtcclxuXHRpZiAoIW1hdGNoZXMgfHwgbWF0Y2hlcy5sZW5ndGggPCAxIHx8ICFpc05PVShtYXRjaGVzWzRdKSkge1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHQvLyByZXR1cm4gdGhlIGZpcnN0IGNhcHR1cmUgZ3JvdXAgd2hpY2ggc2hvdWxkIGJlIHRoZSBvcmlnaW5hbCBpbnB1dCBpZiB0aGVyZSBpcyBhIG1hdGNoXHJcblx0Ly8gRm9yIGV4YW1wbGUsIFwiZW4tVVNcIiBpbnB1dCBzaG91bGQgcmV0dXJuIFwiZW4tVVNcIiwgYW5kIFwiZW5cIiBpbnB1dCBzaG91bGQgcmV0dXJuIFwiZW5cIi5cclxuXHRyZXR1cm4gbWF0Y2hlc1swXTtcclxufVxyXG5cclxuLy8gZW5kcmVnaW9uXHJcblxyXG4vKipcclxuICogQ3JlYXRlIGd1aWQgc3RyaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ3VpZCgpOiBzdHJpbmcge1xyXG5cdC8vIFN0aXRjaCBpbiAnNCcgaW4gdGhlIHRoaXJkIGdyb3VwXHJcblx0cmV0dXJuIChyYW5kb21IZXg0KCkgKyByYW5kb21IZXg0KCkgKyBcIi1cIiArIHJhbmRvbUhleDQoKSArIFwiLTRcIiArIHJhbmRvbUhleDQoKS5zdWJzdHIoMCwgMykgKyBcIi1cIiArIHJhbmRvbUhleDQoKSArIFwiLVwiXHJcblx0XHQrIHJhbmRvbUhleDQoKSArIHJhbmRvbUhleDQoKSArIHJhbmRvbUhleDQoKSkudG9Mb3dlckNhc2UoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSByYW5kb20gSGV4NCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIHJhbmRvbUhleDQoKTogc3RyaW5nIHtcclxuXHRyZXR1cm4gKE1hdGguZmxvb3IoKCgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDcmVhdGUgYW4gYXJyYXkgZnJvbSBpbnB1dCBvYmplY3QgdmFsdWVzIHNvcnRlZCBieSBvYmplY3Qga2V5XHJcbiAqIEBwYXJhbSBPYmplY3QgaW5wdXQgb2JqZWN0XHJcbiAqIEByZXR1cm4gYXJyYXlcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBtYWtlQXJyYXlGcm9tT2JqZWN0VmFsdWVzU29ydGVkQnlLZXlTdHJpbmcob2JqZWN0OiBvYmplY3QpOiBhbnlbXSB7XHJcblx0Y29uc3Qga2V5czogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhvYmplY3QpO1xyXG5cdGtleXMuc29ydCgpO1xyXG5cclxuXHRjb25zdCB2YWx1ZXM6IGFueVtdID0gW107XHJcblx0Zm9yIChjb25zdCBpZCBpbiBrZXlzKSB7XHJcblx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGtleXMsIGlkKSkge1xyXG5cdFx0XHRjb25zdCBrZXk6IHN0cmluZyA9IGtleXNbaWRdO1xyXG5cdFx0XHR2YWx1ZXMucHVzaChvYmplY3Rba2V5XSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdmFsdWVzO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGEgZGF0ZSBvYmplY3QgZnJvbSBhbiBpbnB1dCBzdHJpbmdcclxuICogQHBhcmFtIE9iamVjdCBpbnB1dCBzdHJpbmdcclxuICogQHJldHVybiBkYXRlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nVG9EYXRlKGlucHV0OiBhbnkpOiBEYXRlIHtcclxuXHRpZiAoIWlzU3RyaW5nKGlucHV0KSkge1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRjb25zdCBuZXdEYXRlOiBEYXRlID0gaW5wdXQgPyBuZXcgRGF0ZShpbnB1dCkgOiBudWxsO1xyXG5cdHJldHVybiBpc0RhdGUobmV3RGF0ZSkgPyBuZXdEYXRlIDogbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRha2VzIHR3byBvYmplY3RzIChzb3VyY2UsIHRhcmdldCkgYW5kIHJldHVybnMgdGhlIHRhcmdldCBvYmplY3Qgd2l0aCB2YWx1ZXMgaW4gdGhlIHNvdXJjZSBhZGRlZCB0byBpdC5cclxuICogSXQgb3ZlcndyaXRlcyBhbnkgc291cmNlIHByb3BlcnRpZXMgd2hpY2ggYWxyZWFkeSBleGlzdCBpbiB0YXJnZXQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gb3ZlcnJpZGVWYWx1ZXM8VD4oc291cmNlT2JqZWN0OiBULCB0YXJnZXRvYmplY3Q6IFQpOiBUIHtcclxuXHRpZiAoIXRhcmdldG9iamVjdCkge1xyXG5cdFx0cmV0dXJuIHRhcmdldG9iamVjdDtcclxuXHR9XHJcblxyXG5cdGNvbnN0IHJlc3VsdDogVCA9IHRhcmdldG9iamVjdDtcclxuXHJcblx0aWYgKHNvdXJjZU9iamVjdCkge1xyXG5cdFx0Zm9yIChjb25zdCBmaWVsZCBpbiBzb3VyY2VPYmplY3QpIHtcclxuXHRcdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2VPYmplY3QsIGZpZWxkKSkge1xyXG5cdFx0XHRcdChyZXN1bHQgYXMgYW55KVtmaWVsZF0gPSAoc291cmNlT2JqZWN0IGFzIGFueSlbZmllbGRdO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gcmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogVGVzdCBhIHN0cmluZyBpcyBpbiBvdXIgc3VwcG9ydGVkIElTTzg2MDEgVVRDIGZvcm1hdCBvZiBcInl5eXktTU0tZGRUSEg6bW06c3NaXCIgYW5kIFwieXl5eS1NTS1kZFRISDptbTpzcy5mZmZaXCJcclxuICogQHBhcmFtIGlucHV0IElucHV0IHN0cmluZyB0byBiZSBldmFsdWF0ZWQuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNVdGNEYXRldGltZVN0cmluZyhpbnB1dDogYW55KTogYm9vbGVhbiB7XHJcblx0aWYgKCFpc1N0cmluZyhpbnB1dCkpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IHN1cHBvcnRlZFV0Y1JlZ2V4ID0gL14oXFxkezR9XFwtXFxkXFxkXFwtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZFxcZFxcZCk/WikkLzsgLyogZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZSAqL1xyXG5cdHJldHVybiBzdXBwb3J0ZWRVdGNSZWdleC50ZXN0KGlucHV0KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnZlcnQgYSBkYXRlIG9iamVjdCB0byBhIHN0cmluZyBpbiBJU084NjAxIFVUQyBmb3JtYXQgc3VwcG9ydGVkIGJ5IEZsb29kZ2F0ZSAoXCJ5eXl5LU1NLWRkVEhIOm1tOnNzWlwiKVxyXG4gKiBAcGFyYW0gaW5wdXQgSW5wdXQgZGF0ZSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkYXRlVG9TaG9ydFV0Y1N0cmluZyhpbnB1dDogRGF0ZSk6IHN0cmluZyB7XHJcblx0aWYgKCFpc0RhdGUoaW5wdXQpKSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdGZ1bmN0aW9uIHBhZChuOiBudW1iZXIpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIChuIDwgMTApID8gKFwiMFwiICsgbikgOiBuLnRvU3RyaW5nKCk7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gaW5wdXQuZ2V0VVRDRnVsbFllYXIoKSArXHJcblx0XHRcIi1cIiArIHBhZChpbnB1dC5nZXRVVENNb250aCgpICsgMSkgK1xyXG5cdFx0XCItXCIgKyBwYWQoaW5wdXQuZ2V0VVRDRGF0ZSgpKSArXHJcblx0XHRcIlRcIiArIHBhZChpbnB1dC5nZXRVVENIb3VycygpKSArXHJcblx0XHRcIjpcIiArIHBhZChpbnB1dC5nZXRVVENNaW51dGVzKCkpICtcclxuXHRcdFwiOlwiICsgcGFkKGlucHV0LmdldFVUQ1NlY29uZHMoKSkgK1xyXG5cdFx0XCJaXCI7XHJcbn1cclxuXHJcbi8qXHJcbkltcGxlbWVudGluZyB0aGUgRmlzaGVyLVlhdGVzIFNodWZmbGVcclxuKFNodWZmbGVzIGluIHNpdHUpXHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBmeVNodWZmbGUoYXJySW46IG51bWJlcltdKTogbnVtYmVyW10gfCB1bmRlZmluZWQge1xyXG5cclxuXHRpZiAoaXNOT1UoYXJySW4pKSB7XHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cdH1cclxuXHJcblx0Ly8gSWYgdGhlIGFycmF5IGlzIGVtcHR5IG9yIGhhcyBvbmUgZWxlbWVudCwgZG8gbm90aGluZy5cclxuXHRpZiAoYXJySW4ubGVuZ3RoID09PSAwIHx8IGFyckluLmxlbmd0aCA9PT0gMSkge1xyXG5cdFx0cmV0dXJuIGFyckluO1xyXG5cdH1cclxuXHJcblx0bGV0IGxhc3ROb25TaHVmZmxlZEVsZW1lbnQgPSBhcnJJbi5sZW5ndGggLSAxO1xyXG5cclxuXHQvLyBXaGlsZSB0aGVyZSBpcyBzdGlsbCBhIG5vbiBzaHVmZmxlZCBlbGVtZW50LlxyXG5cdHdoaWxlIChsYXN0Tm9uU2h1ZmZsZWRFbGVtZW50ID4gMCkge1xyXG5cclxuXHRcdC8vIFBpY2sgb25lIG9mIHRoZSBub24gc2h1ZmZsZWQgZWxlbWVudHMgKG51bSByYW5nZSBbMCxsYXN0Tm9uU2h1ZmZsZWRFbGVtZW50KzEpKVxyXG5cdFx0Y29uc3QgcGlja0luZGV4ID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGxhc3ROb25TaHVmZmxlZEVsZW1lbnQgKyAxKSk7XHJcblxyXG5cdFx0Ly8gQW5kIHN3YXAgaXQgd2l0aCB0aGUgbGFzdCBub24gc2h1ZmZsZWQgZWxlbWVudFxyXG5cdFx0Y29uc3QgdGVtcCA9IGFyckluW2xhc3ROb25TaHVmZmxlZEVsZW1lbnRdO1xyXG5cdFx0YXJySW5bbGFzdE5vblNodWZmbGVkRWxlbWVudF0gPSBhcnJJbltwaWNrSW5kZXhdO1xyXG5cdFx0YXJySW5bcGlja0luZGV4XSA9IHRlbXA7XHJcblxyXG5cdFx0bGFzdE5vblNodWZmbGVkRWxlbWVudC0tO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGFyckluO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdmFsdWUgaXMgYW4gdmFsaWQgdXNlciBpZFxyXG4gKiBPbmUgb3IgdHdvIGNoYXJhY3RlciBiZWZvcmUgY29sb24sIGEgY29sb24sIGFuZCBzb21lIHdvcmQgYWZ0ZXIgY29sb24uXHJcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRVc2VySWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdGlmICghaXNTdHJpbmcodmFsdWUpKSB7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRjb25zdCBzdXBwb3J0ZWRVc2VySWRSZWdleCA9IC9eKFthLXpdezEsMn0pOlxcdysvO1xyXG5cdHJldHVybiBzdXBwb3J0ZWRVc2VySWRSZWdleC50ZXN0KHZhbHVlKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNhZmVseSByZWFkIGFuIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHNhZmVQYXJzZU9iamVjdDxUPihzZXJpYWxpemVkVmFsdWU6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xyXG5cdHRyeSB7XHJcblx0XHRjb25zdCBwYXJzZWRPYmplY3QgPSBzZXJpYWxpemVkVmFsdWUgJiYgKHNlcmlhbGl6ZWRWYWx1ZVswXSA9PT0gXCJ7XCIgfHwgc2VyaWFsaXplZFZhbHVlWzBdID09PSBcIltcIilcclxuXHRcdFx0PyBKU09OLnBhcnNlKHNlcmlhbGl6ZWRWYWx1ZSlcclxuXHRcdFx0OiB1bmRlZmluZWQ7XHJcblx0XHRyZXR1cm4gcGFyc2VkT2JqZWN0ID8/IGRlZmF1bHRWYWx1ZTtcclxuXHR9IGNhdGNoIChlKSB7XHJcblx0XHQvLyBpZ25vcmVcclxuXHR9XHJcblxyXG5cdHJldHVybiBkZWZhdWx0VmFsdWU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGaW5kIHRoZSBkZWZpbml0aW9uIHdpdGggaGlnaGVzdCBwcmlvcml0eVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbmRIaWdoZXN0UHJpb3JpdHlEZWZpbml0aW9uKGRlZmluaXRpb25zOiBJQ2FtcGFpZ25EZWZpbml0aW9uW10pOiBbSUNhbXBhaWduRGVmaW5pdGlvbiwgYm9vbGVhbl0ge1xyXG5cdGxldCBoYXNMb3dlclByaW9yaXR5RGVmaW5pdGlvbnMgPSBmYWxzZTtcclxuXHQvLyBHZXQgZGVmaW5pdGlvbiB0aGF0IGhhcyBtYXggcHJpb3JpdHkgdmFsdWUgKDAvbnVsbC91bmRlZmluZWQgaGFzIGhpZ2hlc3QgcHJpb2lydHkpXHJcblx0Y29uc3QgbWF4UHJpb3JpdHlEZWZpbml0aW9uID0gZGVmaW5pdGlvbnMucmVkdWNlKChwcmV2LCBjdXIpID0+IHtcclxuXHRcdGNvbnN0IGN1clByaW9yaXR5ID0gY3VyLnByaW1hcnlQcmlvcml0eSB8fCAwO1xyXG5cdFx0Y29uc3QgcHJldlByaW9yaXR5ID0gcHJldi5wcmltYXJ5UHJpb3JpdHkgfHwgMDtcclxuXHJcblx0XHQvLyBjaGVjayBpZiB3ZSBoYXZlIGxvd2VyIHByaW9yaXR5IChoaWdoZXIgbnVtYmVyKVxyXG5cdFx0aWYgKGN1clByaW9yaXR5ICE9PSBwcmV2UHJpb3JpdHkpIHtcclxuXHRcdFx0aGFzTG93ZXJQcmlvcml0eURlZmluaXRpb25zID0gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gY3VyUHJpb3JpdHkgPCBwcmV2UHJpb3JpdHkgPyBjdXIgOiBwcmV2O1xyXG5cdH0pO1xyXG5cclxuXHRyZXR1cm4gW21heFByaW9yaXR5RGVmaW5pdGlvbiwgaGFzTG93ZXJQcmlvcml0eURlZmluaXRpb25zXTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/dist/src/Utils.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js": /*!************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IFloodgateHostPlatform = exports.GovernedChannelType = exports.ICampaignDefinitions = exports.Api = void 0;\r\n__exportStar(__webpack_require__(/*! ./src/Core/Api */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\"), exports);\r\nexports.Api = __webpack_require__(/*! ./src/Core/Api */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\");\r\n__exportStar(__webpack_require__(/*! ./src/Core/ISurveyInfo */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/ISurveyEvent */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/Campaign/UxSchema */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js\"), exports);\r\nvar CampaignDefinitions_1 = __webpack_require__(/*! ./src/Core/Governance/CampaignDefinitions */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js\");\r\nObject.defineProperty(exports, \"ICampaignDefinitions\", { enumerable: true, get: function () { return CampaignDefinitions_1.ICampaignDefinitions; } });\r\nvar GovernedChannel_1 = __webpack_require__(/*! ./src/Core/Governance/GovernedChannel */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js\");\r\nObject.defineProperty(exports, \"GovernedChannelType\", { enumerable: true, get: function () { return GovernedChannel_1.GovernedChannelType; } });\r\n__exportStar(__webpack_require__(/*! ./src/Core/DynamicUx/IDynamicUxCommonInitOptions */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js\"), exports);\r\nvar IFloodgateHostPlatform_1 = __webpack_require__(/*! ./src/Core/DynamicUx/IFloodgateHostPlatform */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js\");\r\nObject.defineProperty(exports, \"IFloodgateHostPlatform\", { enumerable: true, get: function () { return IFloodgateHostPlatform_1.IFloodgateHostPlatform; } });\r\n__exportStar(__webpack_require__(/*! ./src/Core/DynamicUx/ISurveyCSSParams */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/Petrol/ManifestType */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9pbmRleC5qcz8zMTI2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGtDQUFrQyxvQ0FBb0MsYUFBYSxFQUFFLEVBQUU7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGNBQWM7QUFDNUQ7QUFDQSxhQUFhLG1CQUFPLENBQUMsaUhBQWdCO0FBQ3JDLGNBQWMsbUJBQU8sQ0FBQyxpSEFBZ0I7QUFDdEMsYUFBYSxtQkFBTyxDQUFDLDJIQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsNkhBQXlCO0FBQzlDLGFBQWEsbUJBQU8sQ0FBQyw2SUFBOEI7QUFDbkQsNEJBQTRCLG1CQUFPLENBQUMsaUtBQTJDO0FBQy9FLHdEQUF3RCxxQ0FBcUMsbURBQW1ELEVBQUUsRUFBRTtBQUNwSix3QkFBd0IsbUJBQU8sQ0FBQyx5SkFBdUM7QUFDdkUsdURBQXVELHFDQUFxQyw4Q0FBOEMsRUFBRSxFQUFFO0FBQzlJLGFBQWEsbUJBQU8sQ0FBQywrS0FBa0Q7QUFDdkUsK0JBQStCLG1CQUFPLENBQUMscUtBQTZDO0FBQ3BGLDBEQUEwRCxxQ0FBcUMsd0RBQXdELEVBQUUsRUFBRTtBQUMzSixhQUFhLG1CQUFPLENBQUMseUpBQXVDO0FBQzVELGFBQWEsbUJBQU8sQ0FBQywySUFBZ0MiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSkpO1xyXG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcclxufTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklGbG9vZGdhdGVIb3N0UGxhdGZvcm0gPSBleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSBleHBvcnRzLklDYW1wYWlnbkRlZmluaXRpb25zID0gZXhwb3J0cy5BcGkgPSB2b2lkIDA7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9BcGlcIiksIGV4cG9ydHMpO1xyXG5leHBvcnRzLkFwaSA9IHJlcXVpcmUoXCIuL3NyYy9Db3JlL0FwaVwiKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL3NyYy9Db3JlL0lTdXJ2ZXlJbmZvXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL3NyYy9Db3JlL0lTdXJ2ZXlFdmVudFwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYVwiKSwgZXhwb3J0cyk7XHJcbnZhciBDYW1wYWlnbkRlZmluaXRpb25zXzEgPSByZXF1aXJlKFwiLi9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnNcIik7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIklDYW1wYWlnbkRlZmluaXRpb25zXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBDYW1wYWlnbkRlZmluaXRpb25zXzEuSUNhbXBhaWduRGVmaW5pdGlvbnM7IH0gfSk7XHJcbnZhciBHb3Zlcm5lZENoYW5uZWxfMSA9IHJlcXVpcmUoXCIuL3NyYy9Db3JlL0dvdmVybmFuY2UvR292ZXJuZWRDaGFubmVsXCIpO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJHb3Zlcm5lZENoYW5uZWxUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBHb3Zlcm5lZENoYW5uZWxfMS5Hb3Zlcm5lZENoYW5uZWxUeXBlOyB9IH0pO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vc3JjL0NvcmUvRHluYW1pY1V4L0lEeW5hbWljVXhDb21tb25Jbml0T3B0aW9uc1wiKSwgZXhwb3J0cyk7XHJcbnZhciBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtXzEgPSByZXF1aXJlKFwiLi9zcmMvQ29yZS9EeW5hbWljVXgvSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybVwiKTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybV8xLklGbG9vZGdhdGVIb3N0UGxhdGZvcm07IH0gfSk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtc1wiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9QZXRyb2wvTWFuaWZlc3RUeXBlXCIpLCBleHBvcnRzKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js": /*!*******************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EcsConfigType = void 0;\r\nvar EcsConfigType;\r\n(function (EcsConfigType) {\r\n EcsConfigType[EcsConfigType[\"Default\"] = 0] = \"Default\";\r\n EcsConfigType[EcsConfigType[\"User\"] = 1] = \"User\";\r\n})(EcsConfigType = exports.EcsConfigType || (exports.EcsConfigType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvRWNzL0lNb2RlbHMuanM/ZDgxZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNFQUFzRSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9FY3MvSU1vZGVscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRWNzQ29uZmlnVHlwZSA9IHZvaWQgMDtcclxudmFyIEVjc0NvbmZpZ1R5cGU7XHJcbihmdW5jdGlvbiAoRWNzQ29uZmlnVHlwZSkge1xyXG4gICAgRWNzQ29uZmlnVHlwZVtFY3NDb25maWdUeXBlW1wiRGVmYXVsdFwiXSA9IDBdID0gXCJEZWZhdWx0XCI7XHJcbiAgICBFY3NDb25maWdUeXBlW0Vjc0NvbmZpZ1R5cGVbXCJVc2VyXCJdID0gMV0gPSBcIlVzZXJcIjtcclxufSkoRWNzQ29uZmlnVHlwZSA9IGV4cG9ydHMuRWNzQ29uZmlnVHlwZSB8fCAoZXhwb3J0cy5FY3NDb25maWdUeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js": /*!*************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js ***! \*************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ActivityName = void 0;\r\nvar ActivityName = (function () {\r\n function ActivityName() {\r\n }\r\n ActivityName.AppLaunch = \"AppLaunch\";\r\n ActivityName.AppUsageTime = \"AppUsageTime\";\r\n ActivityName.AppResume = \"AppResume\";\r\n return ActivityName;\r\n}());\r\nexports.ActivityName = ActivityName;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUFjdGl2aXR5TGlzdGVuZXIuanM/Yjg0MyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUFjdGl2aXR5TGlzdGVuZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkFjdGl2aXR5TmFtZSA9IHZvaWQgMDtcclxudmFyIEFjdGl2aXR5TmFtZSA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBBY3Rpdml0eU5hbWUoKSB7XHJcbiAgICB9XHJcbiAgICBBY3Rpdml0eU5hbWUuQXBwTGF1bmNoID0gXCJBcHBMYXVuY2hcIjtcclxuICAgIEFjdGl2aXR5TmFtZS5BcHBVc2FnZVRpbWUgPSBcIkFwcFVzYWdlVGltZVwiO1xyXG4gICAgQWN0aXZpdHlOYW1lLkFwcFJlc3VtZSA9IFwiQXBwUmVzdW1lXCI7XHJcbiAgICByZXR1cm4gQWN0aXZpdHlOYW1lO1xyXG59KCkpO1xyXG5leHBvcnRzLkFjdGl2aXR5TmFtZSA9IEFjdGl2aXR5TmFtZTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js": /*!*****************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUNWU3VydmV5LmpzPzMyNTQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JQ1ZTdXJ2ZXkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js": /*!************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js ***! \************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUR5bmFtaWNVeENsaWVudC5qcz84ZDc0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUR5bmFtaWNVeENsaWVudC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js": /*!*******************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUVjc0FkYXB0ZXIuanM/OWNhOCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lFY3NBZGFwdGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js": /*!******************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RoamingSettingIdMap = void 0;\r\nexports.RoamingSettingIdMap = {\r\n CampaignStates: 1258,\r\n GovernedChannelStates: 1257,\r\n SurveyActivationStats: 1259,\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVNldHRpbmdJZE1hcC5qcz81YTYyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lGbG9vZGdhdGVTZXR0aW5nSWRNYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlJvYW1pbmdTZXR0aW5nSWRNYXAgPSB2b2lkIDA7XHJcbmV4cG9ydHMuUm9hbWluZ1NldHRpbmdJZE1hcCA9IHtcclxuICAgIENhbXBhaWduU3RhdGVzOiAxMjU4LFxyXG4gICAgR292ZXJuZWRDaGFubmVsU3RhdGVzOiAxMjU3LFxyXG4gICAgU3VydmV5QWN0aXZhdGlvblN0YXRzOiAxMjU5LFxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js": /*!*********************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js ***! \*********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FloodgateStorageProviderFileType = void 0;\r\nvar FloodgateStorageProviderFileType;\r\n(function (FloodgateStorageProviderFileType) {\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"FloodgateSettings\"] = 0] = \"FloodgateSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"SurveyActivationStats\"] = 1] = \"SurveyActivationStats\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"SurveyEventActivityStats\"] = 2] = \"SurveyEventActivityStats\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"CampaignDefinitions\"] = 3] = \"CampaignDefinitions\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"CampaignStates\"] = 4] = \"CampaignStates\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"GovernedChannelStates\"] = 5] = \"GovernedChannelStates\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_MessageMetadata\"] = 6] = \"TmsCache_MessageMetadata\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_UserGovernance\"] = 7] = \"TmsCache_UserGovernance\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_CampaignContent\"] = 8] = \"TmsCache_CampaignContent\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"Tms_DynamicSettings\"] = 9] = \"Tms_DynamicSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"LogLevelSettings\"] = 10] = \"LogLevelSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"UserFacts\"] = 11] = \"UserFacts\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"DebugOverrides\"] = 12] = \"DebugOverrides\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"DynamicCampaignDefinitions\"] = 13] = \"DynamicCampaignDefinitions\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"FeatureGateOverrides\"] = 14] = \"FeatureGateOverrides\";\r\n})(FloodgateStorageProviderFileType = exports.FloodgateStorageProviderFileType || (exports.FloodgateStorageProviderFileType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlci5qcz80Yjc4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQywrSEFBK0giLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGUgPSB2b2lkIDA7XHJcbnZhciBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZTtcclxuKGZ1bmN0aW9uIChGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSkge1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJGbG9vZGdhdGVTZXR0aW5nc1wiXSA9IDBdID0gXCJGbG9vZGdhdGVTZXR0aW5nc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNcIl0gPSAxXSA9IFwiU3VydmV5QWN0aXZhdGlvblN0YXRzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlN1cnZleUV2ZW50QWN0aXZpdHlTdGF0c1wiXSA9IDJdID0gXCJTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiQ2FtcGFpZ25EZWZpbml0aW9uc1wiXSA9IDNdID0gXCJDYW1wYWlnbkRlZmluaXRpb25zXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkNhbXBhaWduU3RhdGVzXCJdID0gNF0gPSBcIkNhbXBhaWduU3RhdGVzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkdvdmVybmVkQ2hhbm5lbFN0YXRlc1wiXSA9IDVdID0gXCJHb3Zlcm5lZENoYW5uZWxTdGF0ZXNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiVG1zQ2FjaGVfTWVzc2FnZU1ldGFkYXRhXCJdID0gNl0gPSBcIlRtc0NhY2hlX01lc3NhZ2VNZXRhZGF0YVwiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJUbXNDYWNoZV9Vc2VyR292ZXJuYW5jZVwiXSA9IDddID0gXCJUbXNDYWNoZV9Vc2VyR292ZXJuYW5jZVwiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJUbXNDYWNoZV9DYW1wYWlnbkNvbnRlbnRcIl0gPSA4XSA9IFwiVG1zQ2FjaGVfQ2FtcGFpZ25Db250ZW50XCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlRtc19EeW5hbWljU2V0dGluZ3NcIl0gPSA5XSA9IFwiVG1zX0R5bmFtaWNTZXR0aW5nc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJMb2dMZXZlbFNldHRpbmdzXCJdID0gMTBdID0gXCJMb2dMZXZlbFNldHRpbmdzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlVzZXJGYWN0c1wiXSA9IDExXSA9IFwiVXNlckZhY3RzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkRlYnVnT3ZlcnJpZGVzXCJdID0gMTJdID0gXCJEZWJ1Z092ZXJyaWRlc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJEeW5hbWljQ2FtcGFpZ25EZWZpbml0aW9uc1wiXSA9IDEzXSA9IFwiRHluYW1pY0NhbXBhaWduRGVmaW5pdGlvbnNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiRmVhdHVyZUdhdGVPdmVycmlkZXNcIl0gPSAxNF0gPSBcIkZlYXR1cmVHYXRlT3ZlcnJpZGVzXCI7XHJcbn0pKEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlID0gZXhwb3J0cy5GbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSB8fCAoZXhwb3J0cy5GbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js": /*!********************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js ***! \********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLmpzPzMwMDUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js": /*!********************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js ***! \********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GovernanceServiceClientState = exports.GovernanceServiceSurveyType = void 0;\r\nvar GovernanceServiceSurveyType;\r\n(function (GovernanceServiceSurveyType) {\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Unknown\"] = 0] = \"Unknown\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Feedback\"] = 1] = \"Feedback\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Nps\"] = 2] = \"Nps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Psat\"] = 4] = \"Psat\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Bps\"] = 6] = \"Bps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Fps\"] = 8] = \"Fps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Nlqs\"] = 18] = \"Nlqs\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"GenericMessagingSurface\"] = 22] = \"GenericMessagingSurface\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Intercept\"] = 24] = \"Intercept\";\r\n})(GovernanceServiceSurveyType = exports.GovernanceServiceSurveyType || (exports.GovernanceServiceSurveyType = {}));\r\nvar GovernanceServiceClientState;\r\n(function (GovernanceServiceClientState) {\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"Disabled\"] = 0] = \"Disabled\";\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"InitializationFailed\"] = 1] = \"InitializationFailed\";\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"Enabled\"] = 2] = \"Enabled\";\r\n})(GovernanceServiceClientState = exports.GovernanceServiceClientState || (exports.GovernanceServiceClientState = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LmpzP2FhN2QiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdIQUFnSDtBQUNqSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxtSEFBbUgiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlID0gZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGUgPSB2b2lkIDA7XHJcbnZhciBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGU7XHJcbihmdW5jdGlvbiAoR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlKSB7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiVW5rbm93blwiXSA9IDBdID0gXCJVbmtub3duXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiRmVlZGJhY2tcIl0gPSAxXSA9IFwiRmVlZGJhY2tcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbXCJOcHNcIl0gPSAyXSA9IFwiTnBzXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiUHNhdFwiXSA9IDRdID0gXCJQc2F0XCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiQnBzXCJdID0gNl0gPSBcIkJwc1wiO1xyXG4gICAgR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW0dvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtcIkZwc1wiXSA9IDhdID0gXCJGcHNcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbXCJObHFzXCJdID0gMThdID0gXCJObHFzXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VcIl0gPSAyMl0gPSBcIkdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiSW50ZXJjZXB0XCJdID0gMjRdID0gXCJJbnRlcmNlcHRcIjtcclxufSkoR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlID0gZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGUgfHwgKGV4cG9ydHMuR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlID0ge30pKTtcclxudmFyIEdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGU7XHJcbihmdW5jdGlvbiAoR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSkge1xyXG4gICAgR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZVtHb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlW1wiRGlzYWJsZWRcIl0gPSAwXSA9IFwiRGlzYWJsZWRcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGVbR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZVtcIkluaXRpYWxpemF0aW9uRmFpbGVkXCJdID0gMV0gPSBcIkluaXRpYWxpemF0aW9uRmFpbGVkXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlW0dvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGVbXCJFbmFibGVkXCJdID0gMl0gPSBcIkVuYWJsZWRcIjtcclxufSkoR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSA9IGV4cG9ydHMuR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSB8fCAoZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js": /*!********************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js ***! \********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LmpzPzU5YjQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JTXVsdGlwbGVDaG9pY2VDb21wb25lbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js": /*!*******************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5scXNTdXJ2ZXkuanM/YmM4YSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lObHFzU3VydmV5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js": /*!******************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js ***! \******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5wc1N1cnZleS5qcz81OGU1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5wc1N1cnZleS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js": /*!***************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVByb21wdC5qcz8wMTBiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVByb21wdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js": /*!***************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LAUNCHER_TYPE_DEFAULT = exports.DOM_INTERCEPT_TAGNAME = exports.DOM_NLQS_TAGNAME = exports.DOM_FPS_TAGNAME = exports.DOM_BPS_TAGNAME = exports.DOM_PSAT_TAGNAME = exports.DOM_NPS_TAGNAME = exports.DOM_FEEDBACKSURVEY_TAGNAME = exports.SurveyType = void 0;\r\nvar SurveyType;\r\n(function (SurveyType) {\r\n SurveyType[SurveyType[\"Feedback\"] = 0] = \"Feedback\";\r\n SurveyType[SurveyType[\"Nps\"] = 1] = \"Nps\";\r\n SurveyType[SurveyType[\"Psat\"] = 2] = \"Psat\";\r\n SurveyType[SurveyType[\"Bps\"] = 3] = \"Bps\";\r\n SurveyType[SurveyType[\"Fps\"] = 4] = \"Fps\";\r\n SurveyType[SurveyType[\"Nlqs\"] = 5] = \"Nlqs\";\r\n SurveyType[SurveyType[\"Intercept\"] = 6] = \"Intercept\";\r\n SurveyType[SurveyType[\"GenericMessagingSurface\"] = 12] = \"GenericMessagingSurface\";\r\n})(SurveyType = exports.SurveyType || (exports.SurveyType = {}));\r\nexports.DOM_FEEDBACKSURVEY_TAGNAME = \"FeedbackSurvey\";\r\nexports.DOM_NPS_TAGNAME = \"Nps\";\r\nexports.DOM_PSAT_TAGNAME = \"Psat\";\r\nexports.DOM_BPS_TAGNAME = \"Bps\";\r\nexports.DOM_FPS_TAGNAME = \"Fps\";\r\nexports.DOM_NLQS_TAGNAME = \"Nlqs\";\r\nexports.DOM_INTERCEPT_TAGNAME = \"Intercept\";\r\nexports.LAUNCHER_TYPE_DEFAULT = \"survey\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleS5qcz81NzdjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNkRBQTZEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuTEFVTkNIRVJfVFlQRV9ERUZBVUxUID0gZXhwb3J0cy5ET01fSU5URVJDRVBUX1RBR05BTUUgPSBleHBvcnRzLkRPTV9OTFFTX1RBR05BTUUgPSBleHBvcnRzLkRPTV9GUFNfVEFHTkFNRSA9IGV4cG9ydHMuRE9NX0JQU19UQUdOQU1FID0gZXhwb3J0cy5ET01fUFNBVF9UQUdOQU1FID0gZXhwb3J0cy5ET01fTlBTX1RBR05BTUUgPSBleHBvcnRzLkRPTV9GRUVEQkFDS1NVUlZFWV9UQUdOQU1FID0gZXhwb3J0cy5TdXJ2ZXlUeXBlID0gdm9pZCAwO1xyXG52YXIgU3VydmV5VHlwZTtcclxuKGZ1bmN0aW9uIChTdXJ2ZXlUeXBlKSB7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJGZWVkYmFja1wiXSA9IDBdID0gXCJGZWVkYmFja1wiO1xyXG4gICAgU3VydmV5VHlwZVtTdXJ2ZXlUeXBlW1wiTnBzXCJdID0gMV0gPSBcIk5wc1wiO1xyXG4gICAgU3VydmV5VHlwZVtTdXJ2ZXlUeXBlW1wiUHNhdFwiXSA9IDJdID0gXCJQc2F0XCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJCcHNcIl0gPSAzXSA9IFwiQnBzXCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJGcHNcIl0gPSA0XSA9IFwiRnBzXCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJObHFzXCJdID0gNV0gPSBcIk5scXNcIjtcclxuICAgIFN1cnZleVR5cGVbU3VydmV5VHlwZVtcIkludGVyY2VwdFwiXSA9IDZdID0gXCJJbnRlcmNlcHRcIjtcclxuICAgIFN1cnZleVR5cGVbU3VydmV5VHlwZVtcIkdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlXCJdID0gMTJdID0gXCJHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVwiO1xyXG59KShTdXJ2ZXlUeXBlID0gZXhwb3J0cy5TdXJ2ZXlUeXBlIHx8IChleHBvcnRzLlN1cnZleVR5cGUgPSB7fSkpO1xyXG5leHBvcnRzLkRPTV9GRUVEQkFDS1NVUlZFWV9UQUdOQU1FID0gXCJGZWVkYmFja1N1cnZleVwiO1xyXG5leHBvcnRzLkRPTV9OUFNfVEFHTkFNRSA9IFwiTnBzXCI7XHJcbmV4cG9ydHMuRE9NX1BTQVRfVEFHTkFNRSA9IFwiUHNhdFwiO1xyXG5leHBvcnRzLkRPTV9CUFNfVEFHTkFNRSA9IFwiQnBzXCI7XHJcbmV4cG9ydHMuRE9NX0ZQU19UQUdOQU1FID0gXCJGcHNcIjtcclxuZXhwb3J0cy5ET01fTkxRU19UQUdOQU1FID0gXCJObHFzXCI7XHJcbmV4cG9ydHMuRE9NX0lOVEVSQ0VQVF9UQUdOQU1FID0gXCJJbnRlcmNlcHRcIjtcclxuZXhwb3J0cy5MQVVOQ0hFUl9UWVBFX0RFRkFVTFQgPSBcInN1cnZleVwiO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js": /*!************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js ***! \************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.JSON_SURVEYSPECIFICDATA_KEYNAME = exports.JSON_SURVEYSTRINGS_KEYNAME = exports.JSON_EXTENDEDMANIFESTDATA_KEYNAME = exports.JSON_APPLICATION_KEYNAME = exports.JSON_MULTIPLECHOICE_KEYNAME = exports.JSON_QUESTION_KEYNAME = exports.JSON_TITLE_KEYNAME = exports.JSON_CVSURVEYPLATFORM_KEYNAME = exports.JSON_CVSURVEYUIHOST_KEYNAME = exports.JSON_CVSURVEYPRODUCTNAME_KEYNAME = exports.JSON_RATINGOPTIONS_KEYNAME = exports.JSON_CVSURVEYTHEME_KEYNAME = exports.JSON_CVSURVEYFORMID_KEYNAME = exports.JSON_CVSURVEY_KEYNAME = exports.JSON_RATING_KEYNAME = exports.JSON_COMMENT_KEYNAME = exports.JSON_PROMPTNOTEXT_KEYNAME = exports.JSON_PROMPTYESTEXT_KEYNAME = exports.JSON_PROMPT_KEYNAME = exports.JSON_INTERCEPTURL_KEYNAME = exports.JSON_INTERCEPT_KEYNAME = exports.DOM_MULTIPLECHOICE_TAGNAME = exports.DOM_CVSURVEY_TAGNAME = exports.DOM_RATING_TAGNAME = exports.DOM_COMMENT_TAGNAME = exports.DOM_PROMPT_TAGNAME = void 0;\r\nexports.DOM_PROMPT_TAGNAME = \"Prompt\";\r\nexports.DOM_COMMENT_TAGNAME = \"Comment\";\r\nexports.DOM_RATING_TAGNAME = \"Rating\";\r\nexports.DOM_CVSURVEY_TAGNAME = \"CVSurvey\";\r\nexports.DOM_MULTIPLECHOICE_TAGNAME = \"MultipleChoice\";\r\nexports.JSON_INTERCEPT_KEYNAME = \"intercept\";\r\nexports.JSON_INTERCEPTURL_KEYNAME = \"url\";\r\nexports.JSON_PROMPT_KEYNAME = \"prompt\";\r\nexports.JSON_PROMPTYESTEXT_KEYNAME = \"yesButtonText\";\r\nexports.JSON_PROMPTNOTEXT_KEYNAME = \"noButtonText\";\r\nexports.JSON_COMMENT_KEYNAME = \"comment\";\r\nexports.JSON_RATING_KEYNAME = \"rating\";\r\nexports.JSON_CVSURVEY_KEYNAME = \"cvSurvey\";\r\nexports.JSON_CVSURVEYFORMID_KEYNAME = \"formId\";\r\nexports.JSON_CVSURVEYTHEME_KEYNAME = \"theme\";\r\nexports.JSON_RATINGOPTIONS_KEYNAME = \"options\";\r\nexports.JSON_CVSURVEYPRODUCTNAME_KEYNAME = \"productName\";\r\nexports.JSON_CVSURVEYUIHOST_KEYNAME = \"uiHost\";\r\nexports.JSON_CVSURVEYPLATFORM_KEYNAME = \"platform\";\r\nexports.JSON_TITLE_KEYNAME = \"title\";\r\nexports.JSON_QUESTION_KEYNAME = \"question\";\r\nexports.JSON_MULTIPLECHOICE_KEYNAME = \"multipleChoice\";\r\nexports.JSON_APPLICATION_KEYNAME = \"application\";\r\nexports.JSON_EXTENDEDMANIFESTDATA_KEYNAME = \"extendedManifestData\";\r\nexports.JSON_SURVEYSTRINGS_KEYNAME = \"surveyStrings\";\r\nexports.JSON_SURVEYSPECIFICDATA_KEYNAME = \"surveySpecificData\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleUNvbXBvbmVudC5qcz8wYzkzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lTdXJ2ZXlDb21wb25lbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkpTT05fU1VSVkVZU1BFQ0lGSUNEQVRBX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fU1VSVkVZU1RSSU5HU19LRVlOQU1FID0gZXhwb3J0cy5KU09OX0VYVEVOREVETUFOSUZFU1REQVRBX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQVBQTElDQVRJT05fS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9NVUxUSVBMRUNIT0lDRV9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1FVRVNUSU9OX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fVElUTEVfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWVBMQVRGT1JNX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQ1ZTVVJWRVlVSUhPU1RfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWVBST0RVQ1ROQU1FX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fUkFUSU5HT1BUSU9OU19LRVlOQU1FID0gZXhwb3J0cy5KU09OX0NWU1VSVkVZVEhFTUVfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX0NWU1VSVkVZX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fUkFUSU5HX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQ09NTUVOVF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1BST01QVE5PVEVYVF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1BST01QVFlFU1RFWFRfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9QUk9NUFRfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9JTlRFUkNFUFRVUkxfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9JTlRFUkNFUFRfS0VZTkFNRSA9IGV4cG9ydHMuRE9NX01VTFRJUExFQ0hPSUNFX1RBR05BTUUgPSBleHBvcnRzLkRPTV9DVlNVUlZFWV9UQUdOQU1FID0gZXhwb3J0cy5ET01fUkFUSU5HX1RBR05BTUUgPSBleHBvcnRzLkRPTV9DT01NRU5UX1RBR05BTUUgPSBleHBvcnRzLkRPTV9QUk9NUFRfVEFHTkFNRSA9IHZvaWQgMDtcclxuZXhwb3J0cy5ET01fUFJPTVBUX1RBR05BTUUgPSBcIlByb21wdFwiO1xyXG5leHBvcnRzLkRPTV9DT01NRU5UX1RBR05BTUUgPSBcIkNvbW1lbnRcIjtcclxuZXhwb3J0cy5ET01fUkFUSU5HX1RBR05BTUUgPSBcIlJhdGluZ1wiO1xyXG5leHBvcnRzLkRPTV9DVlNVUlZFWV9UQUdOQU1FID0gXCJDVlN1cnZleVwiO1xyXG5leHBvcnRzLkRPTV9NVUxUSVBMRUNIT0lDRV9UQUdOQU1FID0gXCJNdWx0aXBsZUNob2ljZVwiO1xyXG5leHBvcnRzLkpTT05fSU5URVJDRVBUX0tFWU5BTUUgPSBcImludGVyY2VwdFwiO1xyXG5leHBvcnRzLkpTT05fSU5URVJDRVBUVVJMX0tFWU5BTUUgPSBcInVybFwiO1xyXG5leHBvcnRzLkpTT05fUFJPTVBUX0tFWU5BTUUgPSBcInByb21wdFwiO1xyXG5leHBvcnRzLkpTT05fUFJPTVBUWUVTVEVYVF9LRVlOQU1FID0gXCJ5ZXNCdXR0b25UZXh0XCI7XHJcbmV4cG9ydHMuSlNPTl9QUk9NUFROT1RFWFRfS0VZTkFNRSA9IFwibm9CdXR0b25UZXh0XCI7XHJcbmV4cG9ydHMuSlNPTl9DT01NRU5UX0tFWU5BTUUgPSBcImNvbW1lbnRcIjtcclxuZXhwb3J0cy5KU09OX1JBVElOR19LRVlOQU1FID0gXCJyYXRpbmdcIjtcclxuZXhwb3J0cy5KU09OX0NWU1VSVkVZX0tFWU5BTUUgPSBcImN2U3VydmV5XCI7XHJcbmV4cG9ydHMuSlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FID0gXCJmb3JtSWRcIjtcclxuZXhwb3J0cy5KU09OX0NWU1VSVkVZVEhFTUVfS0VZTkFNRSA9IFwidGhlbWVcIjtcclxuZXhwb3J0cy5KU09OX1JBVElOR09QVElPTlNfS0VZTkFNRSA9IFwib3B0aW9uc1wiO1xyXG5leHBvcnRzLkpTT05fQ1ZTVVJWRVlQUk9EVUNUTkFNRV9LRVlOQU1FID0gXCJwcm9kdWN0TmFtZVwiO1xyXG5leHBvcnRzLkpTT05fQ1ZTVVJWRVlVSUhPU1RfS0VZTkFNRSA9IFwidWlIb3N0XCI7XHJcbmV4cG9ydHMuSlNPTl9DVlNVUlZFWVBMQVRGT1JNX0tFWU5BTUUgPSBcInBsYXRmb3JtXCI7XHJcbmV4cG9ydHMuSlNPTl9USVRMRV9LRVlOQU1FID0gXCJ0aXRsZVwiO1xyXG5leHBvcnRzLkpTT05fUVVFU1RJT05fS0VZTkFNRSA9IFwicXVlc3Rpb25cIjtcclxuZXhwb3J0cy5KU09OX01VTFRJUExFQ0hPSUNFX0tFWU5BTUUgPSBcIm11bHRpcGxlQ2hvaWNlXCI7XHJcbmV4cG9ydHMuSlNPTl9BUFBMSUNBVElPTl9LRVlOQU1FID0gXCJhcHBsaWNhdGlvblwiO1xyXG5leHBvcnRzLkpTT05fRVhURU5ERURNQU5JRkVTVERBVEFfS0VZTkFNRSA9IFwiZXh0ZW5kZWRNYW5pZmVzdERhdGFcIjtcclxuZXhwb3J0cy5KU09OX1NVUlZFWVNUUklOR1NfS0VZTkFNRSA9IFwic3VydmV5U3RyaW5nc1wiO1xyXG5leHBvcnRzLkpTT05fU1VSVkVZU1BFQ0lGSUNEQVRBX0tFWU5BTUUgPSBcInN1cnZleVNwZWNpZmljRGF0YVwiO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js": /*!*************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js ***! \*************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(__webpack_require__(/*! ./../ISurveyInfo */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IActivityListener */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ISurvey */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ISurveyComponent */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IEcsAdapter */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateSettingIdMap */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateStorageProvider */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateStringProvider */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IMultipleChoiceComponent */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IPrompt */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./INlqsSurvey */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./INpsSurvey */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ICVSurvey */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IDynamicUxClient */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IGovernanceServiceClient */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./Ecs/IModels */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvaW5kZXguanM/NTQwYiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxrQ0FBa0Msb0NBQW9DLGFBQWEsRUFBRSxFQUFFO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxjQUFjO0FBQzVELGFBQWEsbUJBQU8sQ0FBQyxxSEFBa0I7QUFDdkMsYUFBYSxtQkFBTyxDQUFDLGtJQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsOEdBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGdJQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsc0hBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDRJQUEwQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsa0pBQTZCO0FBQ2xELGFBQWEsbUJBQU8sQ0FBQyxnSkFBNEI7QUFDakQsYUFBYSxtQkFBTyxDQUFDLGdKQUE0QjtBQUNqRCxhQUFhLG1CQUFPLENBQUMsOEdBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHNIQUFlO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQyxvSEFBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsa0hBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLGdJQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsZ0pBQTRCO0FBQ2pELGFBQWEsbUJBQU8sQ0FBQyxzSEFBZSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSkpO1xyXG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcclxufTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vLi4vSVN1cnZleUluZm9cIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUFjdGl2aXR5TGlzdGVuZXJcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVN1cnZleVwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JU3VydmV5Q29tcG9uZW50XCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lFY3NBZGFwdGVyXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lGbG9vZGdhdGVTZXR0aW5nSWRNYXBcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlclwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU11bHRpcGxlQ2hvaWNlQ29tcG9uZW50XCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQcm9tcHRcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU5scXNTdXJ2ZXlcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU5wc1N1cnZleVwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JQ1ZTdXJ2ZXlcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUR5bmFtaWNVeENsaWVudFwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JR292ZXJuYW5jZVNlcnZpY2VDbGllbnRcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRWNzL0lNb2RlbHNcIiksIGV4cG9ydHMpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js": /*!*************************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js ***! \*************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BranchingTargetType = exports.ConditionSourceType = exports.ConditionType = void 0;\r\nvar ConditionType;\r\n(function (ConditionType) {\r\n ConditionType[\"Equals\"] = \"Equals\";\r\n ConditionType[\"NotEquals\"] = \"NotEquals\";\r\n ConditionType[\"GreaterThan\"] = \"GreaterThan\";\r\n ConditionType[\"GreaterThanOrEqual\"] = \"GreaterThanOrEqual\";\r\n ConditionType[\"LessThan\"] = \"LessThan\";\r\n ConditionType[\"LessThanOrEqual\"] = \"LessThanOrEqual\";\r\n ConditionType[\"IsAnswered\"] = \"IsAnswered\";\r\n})(ConditionType = exports.ConditionType || (exports.ConditionType = {}));\r\nvar ConditionSourceType;\r\n(function (ConditionSourceType) {\r\n ConditionSourceType[\"Question\"] = \"Question\";\r\n ConditionSourceType[\"Variable\"] = \"Variable\";\r\n})(ConditionSourceType = exports.ConditionSourceType || (exports.ConditionSourceType = {}));\r\nvar BranchingTargetType;\r\n(function (BranchingTargetType) {\r\n BranchingTargetType[\"Page\"] = \"Page\";\r\n BranchingTargetType[\"Override\"] = \"Override\";\r\n})(BranchingTargetType = exports.BranchingTargetType || (exports.BranchingTargetType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JQnJhbmNoaW5nUnVsZXMuanM/NjE4MiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzRUFBc0U7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdGQUF3RjtBQUN6RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0ZBQXdGIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQ2FtcGFpZ24vVXhTY2hlbWEvSUJyYW5jaGluZ1J1bGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5CcmFuY2hpbmdUYXJnZXRUeXBlID0gZXhwb3J0cy5Db25kaXRpb25Tb3VyY2VUeXBlID0gZXhwb3J0cy5Db25kaXRpb25UeXBlID0gdm9pZCAwO1xyXG52YXIgQ29uZGl0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChDb25kaXRpb25UeXBlKSB7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiRXF1YWxzXCJdID0gXCJFcXVhbHNcIjtcclxuICAgIENvbmRpdGlvblR5cGVbXCJOb3RFcXVhbHNcIl0gPSBcIk5vdEVxdWFsc1wiO1xyXG4gICAgQ29uZGl0aW9uVHlwZVtcIkdyZWF0ZXJUaGFuXCJdID0gXCJHcmVhdGVyVGhhblwiO1xyXG4gICAgQ29uZGl0aW9uVHlwZVtcIkdyZWF0ZXJUaGFuT3JFcXVhbFwiXSA9IFwiR3JlYXRlclRoYW5PckVxdWFsXCI7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiTGVzc1RoYW5cIl0gPSBcIkxlc3NUaGFuXCI7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiTGVzc1RoYW5PckVxdWFsXCJdID0gXCJMZXNzVGhhbk9yRXF1YWxcIjtcclxuICAgIENvbmRpdGlvblR5cGVbXCJJc0Fuc3dlcmVkXCJdID0gXCJJc0Fuc3dlcmVkXCI7XHJcbn0pKENvbmRpdGlvblR5cGUgPSBleHBvcnRzLkNvbmRpdGlvblR5cGUgfHwgKGV4cG9ydHMuQ29uZGl0aW9uVHlwZSA9IHt9KSk7XHJcbnZhciBDb25kaXRpb25Tb3VyY2VUeXBlO1xyXG4oZnVuY3Rpb24gKENvbmRpdGlvblNvdXJjZVR5cGUpIHtcclxuICAgIENvbmRpdGlvblNvdXJjZVR5cGVbXCJRdWVzdGlvblwiXSA9IFwiUXVlc3Rpb25cIjtcclxuICAgIENvbmRpdGlvblNvdXJjZVR5cGVbXCJWYXJpYWJsZVwiXSA9IFwiVmFyaWFibGVcIjtcclxufSkoQ29uZGl0aW9uU291cmNlVHlwZSA9IGV4cG9ydHMuQ29uZGl0aW9uU291cmNlVHlwZSB8fCAoZXhwb3J0cy5Db25kaXRpb25Tb3VyY2VUeXBlID0ge30pKTtcclxudmFyIEJyYW5jaGluZ1RhcmdldFR5cGU7XHJcbihmdW5jdGlvbiAoQnJhbmNoaW5nVGFyZ2V0VHlwZSkge1xyXG4gICAgQnJhbmNoaW5nVGFyZ2V0VHlwZVtcIlBhZ2VcIl0gPSBcIlBhZ2VcIjtcclxuICAgIEJyYW5jaGluZ1RhcmdldFR5cGVbXCJPdmVycmlkZVwiXSA9IFwiT3ZlcnJpZGVcIjtcclxufSkoQnJhbmNoaW5nVGFyZ2V0VHlwZSA9IGV4cG9ydHMuQnJhbmNoaW5nVGFyZ2V0VHlwZSB8fCAoZXhwb3J0cy5CcmFuY2hpbmdUYXJnZXRUeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js": /*!*******************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.QuestionType = void 0;\r\nvar QuestionType;\r\n(function (QuestionType) {\r\n QuestionType[\"Comment\"] = \"Comment\";\r\n QuestionType[\"ContactMe\"] = \"ContactMe\";\r\n QuestionType[\"MultipleChoice\"] = \"MultipleChoice\";\r\n QuestionType[\"Label\"] = \"Label\";\r\n QuestionType[\"Rating\"] = \"Rating\";\r\n QuestionType[\"SingleSelect\"] = \"SingleSelect\";\r\n QuestionType[\"Likert\"] = \"Likert\";\r\n})(QuestionType = exports.QuestionType || (exports.QuestionType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JUXVlc3Rpb24uanM/N2MxNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxtRUFBbUUiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JUXVlc3Rpb24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlF1ZXN0aW9uVHlwZSA9IHZvaWQgMDtcclxudmFyIFF1ZXN0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChRdWVzdGlvblR5cGUpIHtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkNvbW1lbnRcIl0gPSBcIkNvbW1lbnRcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkNvbnRhY3RNZVwiXSA9IFwiQ29udGFjdE1lXCI7XHJcbiAgICBRdWVzdGlvblR5cGVbXCJNdWx0aXBsZUNob2ljZVwiXSA9IFwiTXVsdGlwbGVDaG9pY2VcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkxhYmVsXCJdID0gXCJMYWJlbFwiO1xyXG4gICAgUXVlc3Rpb25UeXBlW1wiUmF0aW5nXCJdID0gXCJSYXRpbmdcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIlNpbmdsZVNlbGVjdFwiXSA9IFwiU2luZ2xlU2VsZWN0XCI7XHJcbiAgICBRdWVzdGlvblR5cGVbXCJMaWtlcnRcIl0gPSBcIkxpa2VydFwiO1xyXG59KShRdWVzdGlvblR5cGUgPSBleHBvcnRzLlF1ZXN0aW9uVHlwZSB8fCAoZXhwb3J0cy5RdWVzdGlvblR5cGUgPSB7fSkpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js": /*!*******************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js ***! \*******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurveySurfaceSize = void 0;\r\nvar SurveySurfaceSize;\r\n(function (SurveySurfaceSize) {\r\n SurveySurfaceSize[\"Compact\"] = \"Compact\";\r\n SurveySurfaceSize[\"Medium\"] = \"Medium\";\r\n})(SurveySurfaceSize = exports.SurveySurfaceSize || (exports.SurveySurfaceSize = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JVXhTY2hlbWEuanM/MzI1YyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtGQUFrRiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL0lVeFNjaGVtYS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuU3VydmV5U3VyZmFjZVNpemUgPSB2b2lkIDA7XHJcbnZhciBTdXJ2ZXlTdXJmYWNlU2l6ZTtcclxuKGZ1bmN0aW9uIChTdXJ2ZXlTdXJmYWNlU2l6ZSkge1xyXG4gICAgU3VydmV5U3VyZmFjZVNpemVbXCJDb21wYWN0XCJdID0gXCJDb21wYWN0XCI7XHJcbiAgICBTdXJ2ZXlTdXJmYWNlU2l6ZVtcIk1lZGl1bVwiXSA9IFwiTWVkaXVtXCI7XHJcbn0pKFN1cnZleVN1cmZhY2VTaXplID0gZXhwb3J0cy5TdXJ2ZXlTdXJmYWNlU2l6ZSB8fCAoZXhwb3J0cy5TdXJ2ZXlTdXJmYWNlU2l6ZSA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js": /*!*****************************************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js ***! \*****************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IUxSchemaAdditionalCapabilitiesTypes = void 0;\r\nvar IUxSchemaAdditionalCapabilitiesTypes;\r\n(function (IUxSchemaAdditionalCapabilitiesTypes) {\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Email\"] = \"email\";\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Screenshot\"] = \"screenshot\";\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Diagnostics\"] = \"diagnostics\";\r\n})(IUxSchemaAdditionalCapabilitiesTypes = exports.IUxSchemaAdditionalCapabilitiesTypes || (exports.IUxSchemaAdditionalCapabilitiesTypes = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzLmpzP2RjNDkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDJJQUEySSIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL0lVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IHZvaWQgMDtcclxudmFyIElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcztcclxuKGZ1bmN0aW9uIChJVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzVHlwZXMpIHtcclxuICAgIElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlc1tcIkVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzW1wiU2NyZWVuc2hvdFwiXSA9IFwic2NyZWVuc2hvdFwiO1xyXG4gICAgSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzW1wiRGlhZ25vc3RpY3NcIl0gPSBcImRpYWdub3N0aWNzXCI7XHJcbn0pKElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IGV4cG9ydHMuSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzIHx8IChleHBvcnRzLklVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js": /*!***************************************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js ***! \***************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar _a;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurveyRestrictions = exports.MAX_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = exports.MIN_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = exports.MAX_VERTICAL_OPTIONS_LIKERT_QUESTIONS = exports.MIN_VERTICAL_OPTIONS_LIKERT_QUESTIONS = exports.MAX_OPTIONS_NON_LIKERT_QUESTIONS = exports.MIN_OPTIONS_NON_LIKERT_QUESTIONS = void 0;\r\nvar ISurvey_1 = __webpack_require__(/*! ../../../Api/ISurvey */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\");\r\nexports.MIN_OPTIONS_NON_LIKERT_QUESTIONS = 2;\r\nexports.MAX_OPTIONS_NON_LIKERT_QUESTIONS = 10;\r\nexports.MIN_VERTICAL_OPTIONS_LIKERT_QUESTIONS = 2;\r\nexports.MAX_VERTICAL_OPTIONS_LIKERT_QUESTIONS = 7;\r\nexports.MIN_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = 1;\r\nexports.MAX_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = 10;\r\nexports.SurveyRestrictions = (_a = {},\r\n _a[ISurvey_1.SurveyType.Fps] = { MinNumberOfPages: 2, FirstTemplateId: \"0e19ac6f-d831-499c-9e83-a709e27784b6\" },\r\n _a);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9WYWxpZGF0aW9uL1N1cnZleVJlc3RyaWN0aW9ucy5qcz9hNjFlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBLGdCQUFnQixtQkFBTyxDQUFDLHlIQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckMsb0NBQW9DLCtFQUErRTtBQUNuSCIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL1ZhbGlkYXRpb24vU3VydmV5UmVzdHJpY3Rpb25zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfYTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlN1cnZleVJlc3RyaWN0aW9ucyA9IGV4cG9ydHMuTUFYX0hPUklaT05UQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gZXhwb3J0cy5NSU5fSE9SSVpPTlRBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1BWF9WRVJUSUNBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1JTl9WRVJUSUNBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1BWF9PUFRJT05TX05PTl9MSUtFUlRfUVVFU1RJT05TID0gZXhwb3J0cy5NSU5fT1BUSU9OU19OT05fTElLRVJUX1FVRVNUSU9OUyA9IHZvaWQgMDtcclxudmFyIElTdXJ2ZXlfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9BcGkvSVN1cnZleVwiKTtcclxuZXhwb3J0cy5NSU5fT1BUSU9OU19OT05fTElLRVJUX1FVRVNUSU9OUyA9IDI7XHJcbmV4cG9ydHMuTUFYX09QVElPTlNfTk9OX0xJS0VSVF9RVUVTVElPTlMgPSAxMDtcclxuZXhwb3J0cy5NSU5fVkVSVElDQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gMjtcclxuZXhwb3J0cy5NQVhfVkVSVElDQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gNztcclxuZXhwb3J0cy5NSU5fSE9SSVpPTlRBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSAxO1xyXG5leHBvcnRzLk1BWF9IT1JJWk9OVEFMX09QVElPTlNfTElLRVJUX1FVRVNUSU9OUyA9IDEwO1xyXG5leHBvcnRzLlN1cnZleVJlc3RyaWN0aW9ucyA9IChfYSA9IHt9LFxyXG4gICAgX2FbSVN1cnZleV8xLlN1cnZleVR5cGUuRnBzXSA9IHsgTWluTnVtYmVyT2ZQYWdlczogMiwgRmlyc3RUZW1wbGF0ZUlkOiBcIjBlMTlhYzZmLWQ4MzEtNDk5Yy05ZTgzLWE3MDllMjc3ODRiNlwiIH0sXHJcbiAgICBfYSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js": /*!***************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js ***! \***************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(__webpack_require__(/*! ./IUxSchema */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IQuestion */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IBranchingRules */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IUxSchemaAdditionalCapabilities */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./Validation/SurveyRestrictions */ \"../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9pbmRleC5qcz9hZjIwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGtDQUFrQyxvQ0FBb0MsYUFBYSxFQUFFLEVBQUU7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGNBQWM7QUFDNUQsYUFBYSxtQkFBTyxDQUFDLGdJQUFhO0FBQ2xDLGFBQWEsbUJBQU8sQ0FBQyxnSUFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNElBQW1CO0FBQ3hDLGFBQWEsbUJBQU8sQ0FBQyw0S0FBbUM7QUFDeEQsYUFBYSxtQkFBTyxDQUFDLHdLQUFpQyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KSk7XHJcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xyXG59O1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JVXhTY2hlbWFcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVF1ZXN0aW9uXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCcmFuY2hpbmdSdWxlc1wiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1ZhbGlkYXRpb24vU3VydmV5UmVzdHJpY3Rpb25zXCIpLCBleHBvcnRzKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js": /*!*****************************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js ***! \*****************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSUR5bmFtaWNVeENvbW1vbkluaXRPcHRpb25zLmpzP2QwZjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0R5bmFtaWNVeC9JRHluYW1pY1V4Q29tbW9uSW5pdE9wdGlvbnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js": /*!************************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js ***! \************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IFloodgateHostPlatform = void 0;\r\nvar IFloodgateHostPlatform;\r\n(function (IFloodgateHostPlatform) {\r\n IFloodgateHostPlatform[\"Web\"] = \"Web\";\r\n IFloodgateHostPlatform[\"Android\"] = \"Android\";\r\n IFloodgateHostPlatform[\"Win32\"] = \"Win32\";\r\n IFloodgateHostPlatform[\"iOS\"] = \"iOS\";\r\n})(IFloodgateHostPlatform = exports.IFloodgateHostPlatform || (exports.IFloodgateHostPlatform = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybS5qcz84YTQxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlHQUFpRyIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0R5bmFtaWNVeC9JRmxvb2RnYXRlSG9zdFBsYXRmb3JtLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5JRmxvb2RnYXRlSG9zdFBsYXRmb3JtID0gdm9pZCAwO1xyXG52YXIgSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybTtcclxuKGZ1bmN0aW9uIChJRmxvb2RnYXRlSG9zdFBsYXRmb3JtKSB7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiV2ViXCJdID0gXCJXZWJcIjtcclxuICAgIElGbG9vZGdhdGVIb3N0UGxhdGZvcm1bXCJBbmRyb2lkXCJdID0gXCJBbmRyb2lkXCI7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiV2luMzJcIl0gPSBcIldpbjMyXCI7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiaU9TXCJdID0gXCJpT1NcIjtcclxufSkoSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybSA9IGV4cG9ydHMuSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybSB8fCAoZXhwb3J0cy5JRmxvb2RnYXRlSG9zdFBsYXRmb3JtID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js": /*!******************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtcy5qcz9lMmQ0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js": /*!**********************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js ***! \**********************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ICampaignDefinitions = void 0;\r\nvar ICampaignDefinitions = (function () {\r\n function ICampaignDefinitions() {\r\n }\r\n return ICampaignDefinitions;\r\n}());\r\nexports.ICampaignDefinitions = ICampaignDefinitions;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnMuanM/NjM3ZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklDYW1wYWlnbkRlZmluaXRpb25zID0gdm9pZCAwO1xyXG52YXIgSUNhbXBhaWduRGVmaW5pdGlvbnMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gSUNhbXBhaWduRGVmaW5pdGlvbnMoKSB7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSUNhbXBhaWduRGVmaW5pdGlvbnM7XHJcbn0oKSk7XHJcbmV4cG9ydHMuSUNhbXBhaWduRGVmaW5pdGlvbnMgPSBJQ2FtcGFpZ25EZWZpbml0aW9ucztcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js": /*!******************************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js ***! \******************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GovernedChannelType = void 0;\r\nvar GovernedChannelType;\r\n(function (GovernedChannelType) {\r\n GovernedChannelType[GovernedChannelType[\"Standard\"] = 0] = \"Standard\";\r\n GovernedChannelType[GovernedChannelType[\"Urgent\"] = 1] = \"Urgent\";\r\n GovernedChannelType[GovernedChannelType[\"Banner\"] = 2] = \"Banner\";\r\n GovernedChannelType[GovernedChannelType[\"TeachingMessage\"] = 3] = \"TeachingMessage\";\r\n GovernedChannelType[GovernedChannelType[\"BusinessBar\"] = 4] = \"BusinessBar\";\r\n})(GovernedChannelType = exports.GovernedChannelType || (exports.GovernedChannelType = {}));\r\n(function (GovernedChannelType) {\r\n function getDefault() { return GovernedChannelType.Standard; }\r\n GovernedChannelType.getDefault = getDefault;\r\n})(GovernedChannelType = exports.GovernedChannelType || (exports.GovernedChannelType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0dvdmVybmVkQ2hhbm5lbC5qcz9kMzYxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0ZBQXdGO0FBQ3pGO0FBQ0EsMkJBQTJCLHFDQUFxQztBQUNoRTtBQUNBLENBQUMsd0ZBQXdGIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvR292ZXJuYW5jZS9Hb3Zlcm5lZENoYW5uZWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB2b2lkIDA7XHJcbnZhciBHb3Zlcm5lZENoYW5uZWxUeXBlO1xyXG4oZnVuY3Rpb24gKEdvdmVybmVkQ2hhbm5lbFR5cGUpIHtcclxuICAgIEdvdmVybmVkQ2hhbm5lbFR5cGVbR292ZXJuZWRDaGFubmVsVHlwZVtcIlN0YW5kYXJkXCJdID0gMF0gPSBcIlN0YW5kYXJkXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJVcmdlbnRcIl0gPSAxXSA9IFwiVXJnZW50XCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJCYW5uZXJcIl0gPSAyXSA9IFwiQmFubmVyXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJUZWFjaGluZ01lc3NhZ2VcIl0gPSAzXSA9IFwiVGVhY2hpbmdNZXNzYWdlXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJCdXNpbmVzc0JhclwiXSA9IDRdID0gXCJCdXNpbmVzc0JhclwiO1xyXG59KShHb3Zlcm5lZENoYW5uZWxUeXBlID0gZXhwb3J0cy5Hb3Zlcm5lZENoYW5uZWxUeXBlIHx8IChleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB7fSkpO1xyXG4oZnVuY3Rpb24gKEdvdmVybmVkQ2hhbm5lbFR5cGUpIHtcclxuICAgIGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBHb3Zlcm5lZENoYW5uZWxUeXBlLlN0YW5kYXJkOyB9XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlLmdldERlZmF1bHQgPSBnZXREZWZhdWx0O1xyXG59KShHb3Zlcm5lZENoYW5uZWxUeXBlID0gZXhwb3J0cy5Hb3Zlcm5lZENoYW5uZWxUeXBlIHx8IChleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB7fSkpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js": /*!****************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5RXZlbnQuanM/MzI3OCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4uL0Zsb29kZ2F0ZUNvcmUvbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvSVN1cnZleUV2ZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js": /*!***************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.JSON_ID_KEYNAME = exports.JSON_SURVEY_KEYNAME = exports.DOM_ID_TAGNAME = exports.DOM_TYPE_VALUE = exports.DOM_TYPE_TAGNAME = exports.SurveyInfoBusinessLevel = void 0;\r\nvar SurveyInfoBusinessLevel;\r\n(function (SurveyInfoBusinessLevel) {\r\n SurveyInfoBusinessLevel[SurveyInfoBusinessLevel[\"None\"] = 0] = \"None\";\r\n SurveyInfoBusinessLevel[SurveyInfoBusinessLevel[\"Critical\"] = 1] = \"Critical\";\r\n})(SurveyInfoBusinessLevel = exports.SurveyInfoBusinessLevel || (exports.SurveyInfoBusinessLevel = {}));\r\nexports.DOM_TYPE_TAGNAME = \"Type\";\r\nexports.DOM_TYPE_VALUE = \"Survey\";\r\nexports.DOM_ID_TAGNAME = \"SurveyID\";\r\nexports.JSON_SURVEY_KEYNAME = \"survey\";\r\nexports.JSON_ID_KEYNAME = \"surveyId\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5SW5mby5qcz84M2RlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0dBQW9HO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5SW5mby5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuSlNPTl9JRF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1NVUlZFWV9LRVlOQU1FID0gZXhwb3J0cy5ET01fSURfVEFHTkFNRSA9IGV4cG9ydHMuRE9NX1RZUEVfVkFMVUUgPSBleHBvcnRzLkRPTV9UWVBFX1RBR05BTUUgPSBleHBvcnRzLlN1cnZleUluZm9CdXNpbmVzc0xldmVsID0gdm9pZCAwO1xyXG52YXIgU3VydmV5SW5mb0J1c2luZXNzTGV2ZWw7XHJcbihmdW5jdGlvbiAoU3VydmV5SW5mb0J1c2luZXNzTGV2ZWwpIHtcclxuICAgIFN1cnZleUluZm9CdXNpbmVzc0xldmVsW1N1cnZleUluZm9CdXNpbmVzc0xldmVsW1wiTm9uZVwiXSA9IDBdID0gXCJOb25lXCI7XHJcbiAgICBTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbFtTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbFtcIkNyaXRpY2FsXCJdID0gMV0gPSBcIkNyaXRpY2FsXCI7XHJcbn0pKFN1cnZleUluZm9CdXNpbmVzc0xldmVsID0gZXhwb3J0cy5TdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbCB8fCAoZXhwb3J0cy5TdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbCA9IHt9KSk7XHJcbmV4cG9ydHMuRE9NX1RZUEVfVEFHTkFNRSA9IFwiVHlwZVwiO1xyXG5leHBvcnRzLkRPTV9UWVBFX1ZBTFVFID0gXCJTdXJ2ZXlcIjtcclxuZXhwb3J0cy5ET01fSURfVEFHTkFNRSA9IFwiU3VydmV5SURcIjtcclxuZXhwb3J0cy5KU09OX1NVUlZFWV9LRVlOQU1FID0gXCJzdXJ2ZXlcIjtcclxuZXhwb3J0cy5KU09OX0lEX0tFWU5BTUUgPSBcInN1cnZleUlkXCI7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\n"); /***/ }), /***/ "../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js": /*!***********************************************************************************************************!*\ !*** ../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js ***! \***********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthenticationType = void 0;\r\nvar AuthenticationType;\r\n(function (AuthenticationType) {\r\n AuthenticationType[AuthenticationType[\"MSA\"] = 0] = \"MSA\";\r\n AuthenticationType[AuthenticationType[\"AAD\"] = 1] = \"AAD\";\r\n AuthenticationType[AuthenticationType[\"Unauthenticated\"] = 2] = \"Unauthenticated\";\r\n})(AuthenticationType = exports.AuthenticationType || (exports.AuthenticationType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vRmxvb2RnYXRlQ29yZS9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9QZXRyb2wvTWFuaWZlc3RUeXBlLmpzPzc2MmIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFGQUFxRiIsImZpbGUiOiIuLi9GbG9vZGdhdGVDb3JlL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL1BldHJvbC9NYW5pZmVzdFR5cGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkF1dGhlbnRpY2F0aW9uVHlwZSA9IHZvaWQgMDtcclxudmFyIEF1dGhlbnRpY2F0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChBdXRoZW50aWNhdGlvblR5cGUpIHtcclxuICAgIEF1dGhlbnRpY2F0aW9uVHlwZVtBdXRoZW50aWNhdGlvblR5cGVbXCJNU0FcIl0gPSAwXSA9IFwiTVNBXCI7XHJcbiAgICBBdXRoZW50aWNhdGlvblR5cGVbQXV0aGVudGljYXRpb25UeXBlW1wiQUFEXCJdID0gMV0gPSBcIkFBRFwiO1xyXG4gICAgQXV0aGVudGljYXRpb25UeXBlW0F1dGhlbnRpY2F0aW9uVHlwZVtcIlVuYXV0aGVudGljYXRlZFwiXSA9IDJdID0gXCJVbmF1dGhlbnRpY2F0ZWRcIjtcclxufSkoQXV0aGVudGljYXRpb25UeXBlID0gZXhwb3J0cy5BdXRoZW50aWNhdGlvblR5cGUgfHwgKGV4cG9ydHMuQXV0aGVudGljYXRpb25UeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///../FloodgateCore/node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/Activity.js": /*!*********************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/Activity.js ***! \*********************************************************/ /*! exports provided: createActivity */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createActivity\", function() { return createActivity; });\n/* harmony import */ var _Contracts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Contracts */ \"./node_modules/@microsoft/oteljs/dist/Contracts.js\");\n/* harmony import */ var _OTelNotifications__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./OTelNotifications */ \"./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\");\n/* harmony import */ var _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SimpleTelemetryLogger */ \"./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js\");\n\r\n\r\n\r\n// Currently we only send one activity at a time\r\nvar ACTIVITY_COUNT = 1;\r\n// Currently we do not aggregate activities in OTelJS\r\nvar ACTIVITY_AGGMODE = 0;\r\nvar getCurrentMicroseconds = function () {\r\n return Date.now() * 1000;\r\n};\r\nif (typeof window === 'object' && typeof window.performance === 'object' && 'now' in window.performance) {\r\n getCurrentMicroseconds = function () {\r\n return Math.floor(window.performance.now()) * 1000;\r\n };\r\n}\r\nvar createActivity = function (activityProperties) {\r\n var _startTime = getCurrentMicroseconds();\r\n var _ended;\r\n var clonedEvent = Object(_SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_2__[\"cloneEvent\"])(activityProperties.telemetryEvent);\r\n return {\r\n cv: activityProperties.parentCv.getNext(),\r\n eventName: activityProperties.telemetryEvent.eventName,\r\n dataFields: clonedEvent.dataFields,\r\n eventFlags: clonedEvent.eventFlags,\r\n telemetryProperties: clonedEvent.telemetryProperties,\r\n /**\r\n * Creates an activity parented to this one.\r\n * @param telemetryEvent - The underlying telemetry event for this activity\r\n */\r\n createChildActivity: function (telemetryEvent) {\r\n return createActivity({\r\n telemetryEvent: telemetryEvent,\r\n sendTelemetryEvent: activityProperties.sendTelemetryEvent,\r\n parentCv: this.cv\r\n });\r\n },\r\n /**\r\n * Sets the result of the activity. Does not end it.\r\n * @param resultCode - The result code, e.g. 0 for success\r\n * @param resultType - Optional: The result type, e.g. \"HRESULT\"\r\n * @param resultTag - Optional: The result tag\r\n */\r\n setResult: function (code, type, tag) {\r\n this.result = { code: code, type: type, tag: tag };\r\n },\r\n /**\r\n * Ends the activity; records the duration and sends a telemetry event.\r\n */\r\n endNow: function () {\r\n if (_ended) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_1__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () { return 'Already ended'; });\r\n return;\r\n }\r\n if (this.success === undefined && this.result === undefined) {\r\n // The Activity dashboard shows these activities as 'unresolved'\r\n // but developers generally should avoid leaving activities in this state.\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_1__[\"logNotification\"])(1 /* LogLevel.Warning */, 0 /* Category.Core */, function () { return 'Activity does not have success or result set'; });\r\n }\r\n var endTime = getCurrentMicroseconds();\r\n var duration = endTime - _startTime;\r\n _ended = true;\r\n // Fill the event contract\r\n var activity = {\r\n duration: duration,\r\n count: ACTIVITY_COUNT,\r\n aggMode: ACTIVITY_AGGMODE,\r\n cV: this.cv.value,\r\n success: this.success,\r\n result: this.result\r\n };\r\n var newDataFields = this.eventContract && this.eventContract.dataFields ? this.eventContract.dataFields : [];\r\n newDataFields.push.apply(newDataFields, _Contracts__WEBPACK_IMPORTED_MODULE_0__[\"Activity\"].getFields(activity));\r\n this.eventContract = {\r\n name: _Contracts__WEBPACK_IMPORTED_MODULE_0__[\"Activity\"].contractName,\r\n dataFields: newDataFields\r\n };\r\n return activityProperties.sendTelemetryEvent(this);\r\n }\r\n };\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0FjdGl2aXR5LnRzPzEyZmUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUErQztBQUVPO0FBRUQ7QUFFckQsZ0RBQWdEO0FBQ2hELElBQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUV6QixxREFBcUQ7QUFDckQsSUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7QUFFM0IsSUFBSSxzQkFBc0IsR0FBRztJQUMzQixPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDM0IsQ0FBQyxDQUFDO0FBQ0YsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLENBQUMsV0FBVyxLQUFLLFFBQVEsSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRTtJQUN2RyxzQkFBc0IsR0FBRztRQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNyRCxDQUFDLENBQUM7Q0FDSDtBQWtETSxJQUFNLGNBQWMsR0FBZ0UsVUFBQyxrQkFBdUM7SUFDakksSUFBSSxVQUFVLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUMxQyxJQUFJLE1BQWUsQ0FBQztJQUVwQixJQUFNLFdBQVcsR0FBRyx5RUFBVSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWxFLE9BQU87UUFDTCxFQUFFLEVBQUUsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUN6QyxTQUFTLEVBQUUsa0JBQWtCLENBQUMsY0FBYyxDQUFDLFNBQVM7UUFDdEQsVUFBVSxFQUFFLFdBQVcsQ0FBQyxVQUFVO1FBQ2xDLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtRQUNsQyxtQkFBbUIsRUFBRSxXQUFXLENBQUMsbUJBQW1CO1FBRXBEOzs7V0FHRztRQUNILG1CQUFtQixFQUFuQixVQUFvQixjQUE4QjtZQUNoRCxPQUFPLGNBQWMsQ0FBQztnQkFDcEIsY0FBYztnQkFDZCxrQkFBa0IsRUFBRSxrQkFBa0IsQ0FBQyxrQkFBa0I7Z0JBQ3pELFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRTthQUNsQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQ7Ozs7O1dBS0c7UUFDSCxTQUFTLEVBQVQsVUFBVSxJQUFZLEVBQUUsSUFBYSxFQUFFLEdBQVk7WUFDakQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLElBQUksUUFBRSxJQUFJLFFBQUUsR0FBRyxPQUFFLENBQUM7UUFDcEMsQ0FBQztRQUVEOztXQUVHO1FBQ0gsTUFBTSxFQUFOO1lBQ0UsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsMEVBQWUsZ0RBQWdDLGNBQU0sc0JBQWUsRUFBZixDQUFlLENBQUMsQ0FBQztnQkFDdEUsT0FBTzthQUNSO1lBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDM0QsZ0VBQWdFO2dCQUNoRSwwRUFBMEU7Z0JBQzFFLDBFQUFlLGtEQUFrQyxjQUFNLHFEQUE4QyxFQUE5QyxDQUE4QyxDQUFDLENBQUM7YUFDeEc7WUFFRCxJQUFJLE9BQU8sR0FBRyxzQkFBc0IsRUFBRSxDQUFDO1lBQ3ZDLElBQUksUUFBUSxHQUFHLE9BQU8sR0FBRyxVQUFVLENBQUM7WUFDcEMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUVkLDBCQUEwQjtZQUMxQixJQUFJLFFBQVEsR0FBc0I7Z0JBQ2hDLFFBQVE7Z0JBQ1IsS0FBSyxFQUFFLGNBQWM7Z0JBQ3JCLE9BQU8sRUFBRSxnQkFBZ0I7Z0JBQ3pCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUs7Z0JBQ2pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO2FBQ3BCLENBQUM7WUFFRixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdHLGFBQWEsQ0FBQyxJQUFJLE9BQWxCLGFBQWEsRUFBUyxtREFBUSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUVwRCxJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNuQixJQUFJLEVBQUUsbURBQVEsQ0FBQyxZQUFZO2dCQUMzQixVQUFVLEVBQUUsYUFBYTthQUMxQixDQUFDO1lBRUYsT0FBTyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L0FjdGl2aXR5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZpdHksIFJlc3VsdCB9IGZyb20gJy4vQ29udHJhY3RzJztcclxuaW1wb3J0IHsgQ1YgfSBmcm9tICcuL0NvcnJlbGF0aW9uVmVjdG9yJztcclxuaW1wb3J0IHsgbG9nTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9PVGVsTm90aWZpY2F0aW9ucyc7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUV2ZW50LCBMb2dMZXZlbCwgQ2F0ZWdvcnksIEZpbGxlZFRlbGVtZXRyeUV2ZW50IH0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgY2xvbmVFdmVudCB9IGZyb20gJy4vU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyJztcclxuXHJcbi8vIEN1cnJlbnRseSB3ZSBvbmx5IHNlbmQgb25lIGFjdGl2aXR5IGF0IGEgdGltZVxyXG5jb25zdCBBQ1RJVklUWV9DT1VOVCA9IDE7XHJcblxyXG4vLyBDdXJyZW50bHkgd2UgZG8gbm90IGFnZ3JlZ2F0ZSBhY3Rpdml0aWVzIGluIE9UZWxKU1xyXG5jb25zdCBBQ1RJVklUWV9BR0dNT0RFID0gMDtcclxuXHJcbmxldCBnZXRDdXJyZW50TWljcm9zZWNvbmRzID0gKCkgPT4ge1xyXG4gIHJldHVybiBEYXRlLm5vdygpICogMTAwMDtcclxufTtcclxuaWYgKHR5cGVvZiB3aW5kb3cgPT09ICdvYmplY3QnICYmIHR5cGVvZiB3aW5kb3cucGVyZm9ybWFuY2UgPT09ICdvYmplY3QnICYmICdub3cnIGluIHdpbmRvdy5wZXJmb3JtYW5jZSkge1xyXG4gIGdldEN1cnJlbnRNaWNyb3NlY29uZHMgPSAoKSA9PiB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcih3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkpICogMTAwMDtcclxuICB9O1xyXG59XHJcblxyXG4vKipcclxuICogQWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQgYXBwbHkgdG8gdGhlIGFjdGl2aXR5XHJcbiAqL1xyXG5pbnRlcmZhY2UgSUFjdGl2aXR5UHJvcGVydGllcyB7XHJcbiAgc2VuZFRlbGVtZXRyeUV2ZW50OiAodGVsZW1ldHJ5RXZlbnQ6IFRlbGVtZXRyeUV2ZW50KSA9PiB2b2lkO1xyXG5cclxuICB0ZWxlbWV0cnlFdmVudDogVGVsZW1ldHJ5RXZlbnQ7XHJcblxyXG4gIHBhcmVudEN2OiBDVjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQWN0aXZpdHlTY29wZSBleHRlbmRzIEZpbGxlZFRlbGVtZXRyeUV2ZW50IHtcclxuICAvKipcclxuICAgKiBUaGUgY29ycmVsYXRpb24gdmVjdG9yXHJcbiAgICovXHJcbiAgY3Y6IENWO1xyXG5cclxuICAvKipcclxuICAgKiBXaGV0aGVyIHRoZSBhY3Rpdml0eSBzdWNjZWVkZWQuIEF0IGxlYXN0IG9uZSBvZiBzdWNjZXNzIG9yIHJlc3VsdCBtdXN0IGJlIHNldC5cclxuICAgKi9cclxuICBzdWNjZXNzPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIHJlc3VsdCBvZiB0aGUgYWN0aXZpdHkuIENhbiBiZSBzZXQgd2l0aCBzZXRSZXN1bHQoKS5cclxuICAgKiBBdCBsZWFzdCBvbmUgb2Ygc3VjY2VzcyBvciByZXN1bHQgbXVzdCBiZSBzZXQuXHJcbiAgICovXHJcbiAgcmVzdWx0PzogUmVzdWx0LkNvbnRyYWN0O1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuIGFjdGl2aXR5IHBhcmVudGVkIHRvIHRoaXMgb25lLlxyXG4gICAqIEBwYXJhbSB0ZWxlbWV0cnlFdmVudCAtIFRoZSB1bmRlcmx5aW5nIHRlbGVtZXRyeSBldmVudCBmb3IgdGhpcyBhY3Rpdml0eVxyXG4gICAqL1xyXG4gIGNyZWF0ZUNoaWxkQWN0aXZpdHkodGVsZW1ldHJ5RXZlbnQ6IFRlbGVtZXRyeUV2ZW50KTogSUFjdGl2aXR5U2NvcGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIHJlc3VsdCBvZiB0aGUgYWN0aXZpdHkuIERvZXMgbm90IGVuZCBpdC5cclxuICAgKiBAcGFyYW0gcmVzdWx0Q29kZSAtIFRoZSByZXN1bHQgY29kZSwgZS5nLiAwIGZvciBzdWNjZXNzXHJcbiAgICogQHBhcmFtIHJlc3VsdFR5cGUgLSBPcHRpb25hbDogVGhlIHJlc3VsdCB0eXBlLCBlLmcuIFwiSFJFU1VMVFwiXHJcbiAgICogQHBhcmFtIHJlc3VsdFRhZyAtIE9wdGlvbmFsOiBUaGUgcmVzdWx0IHRhZ1xyXG4gICAqL1xyXG4gIHNldFJlc3VsdChjb2RlOiBudW1iZXIsIHR5cGU/OiBzdHJpbmcsIHRhZz86IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuZHMgdGhlIGFjdGl2aXR5OyBzZW5kcyBhIHRlbGVtZXRyeSBldmVudC5cclxuICAgKi9cclxuICBlbmROb3coKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGl2aXR5OiAoYWN0aXZpdHlQcm9wZXJ0aWVzOiBJQWN0aXZpdHlQcm9wZXJ0aWVzKSA9PiBJQWN0aXZpdHlTY29wZSA9IChhY3Rpdml0eVByb3BlcnRpZXM6IElBY3Rpdml0eVByb3BlcnRpZXMpID0+IHtcclxuICBsZXQgX3N0YXJ0VGltZSA9IGdldEN1cnJlbnRNaWNyb3NlY29uZHMoKTtcclxuICBsZXQgX2VuZGVkOiBib29sZWFuO1xyXG5cclxuICBjb25zdCBjbG9uZWRFdmVudCA9IGNsb25lRXZlbnQoYWN0aXZpdHlQcm9wZXJ0aWVzLnRlbGVtZXRyeUV2ZW50KTtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIGN2OiBhY3Rpdml0eVByb3BlcnRpZXMucGFyZW50Q3YuZ2V0TmV4dCgpLFxyXG4gICAgZXZlbnROYW1lOiBhY3Rpdml0eVByb3BlcnRpZXMudGVsZW1ldHJ5RXZlbnQuZXZlbnROYW1lLFxyXG4gICAgZGF0YUZpZWxkczogY2xvbmVkRXZlbnQuZGF0YUZpZWxkcyxcclxuICAgIGV2ZW50RmxhZ3M6IGNsb25lZEV2ZW50LmV2ZW50RmxhZ3MsXHJcbiAgICB0ZWxlbWV0cnlQcm9wZXJ0aWVzOiBjbG9uZWRFdmVudC50ZWxlbWV0cnlQcm9wZXJ0aWVzLFxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBhY3Rpdml0eSBwYXJlbnRlZCB0byB0aGlzIG9uZS5cclxuICAgICAqIEBwYXJhbSB0ZWxlbWV0cnlFdmVudCAtIFRoZSB1bmRlcmx5aW5nIHRlbGVtZXRyeSBldmVudCBmb3IgdGhpcyBhY3Rpdml0eVxyXG4gICAgICovXHJcbiAgICBjcmVhdGVDaGlsZEFjdGl2aXR5KHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCkge1xyXG4gICAgICByZXR1cm4gY3JlYXRlQWN0aXZpdHkoe1xyXG4gICAgICAgIHRlbGVtZXRyeUV2ZW50LFxyXG4gICAgICAgIHNlbmRUZWxlbWV0cnlFdmVudDogYWN0aXZpdHlQcm9wZXJ0aWVzLnNlbmRUZWxlbWV0cnlFdmVudCxcclxuICAgICAgICBwYXJlbnRDdjogdGhpcy5jdlxyXG4gICAgICB9KTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByZXN1bHQgb2YgdGhlIGFjdGl2aXR5LiBEb2VzIG5vdCBlbmQgaXQuXHJcbiAgICAgKiBAcGFyYW0gcmVzdWx0Q29kZSAtIFRoZSByZXN1bHQgY29kZSwgZS5nLiAwIGZvciBzdWNjZXNzXHJcbiAgICAgKiBAcGFyYW0gcmVzdWx0VHlwZSAtIE9wdGlvbmFsOiBUaGUgcmVzdWx0IHR5cGUsIGUuZy4gXCJIUkVTVUxUXCJcclxuICAgICAqIEBwYXJhbSByZXN1bHRUYWcgLSBPcHRpb25hbDogVGhlIHJlc3VsdCB0YWdcclxuICAgICAqL1xyXG4gICAgc2V0UmVzdWx0KGNvZGU6IG51bWJlciwgdHlwZT86IHN0cmluZywgdGFnPzogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgIHRoaXMucmVzdWx0ID0geyBjb2RlLCB0eXBlLCB0YWcgfTtcclxuICAgIH0sXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmRzIHRoZSBhY3Rpdml0eTsgcmVjb3JkcyB0aGUgZHVyYXRpb24gYW5kIHNlbmRzIGEgdGVsZW1ldHJ5IGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBlbmROb3coKSB7XHJcbiAgICAgIGlmIChfZW5kZWQpIHtcclxuICAgICAgICBsb2dOb3RpZmljYXRpb24oTG9nTGV2ZWwuRXJyb3IsIENhdGVnb3J5LkNvcmUsICgpID0+ICdBbHJlYWR5IGVuZGVkJyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5zdWNjZXNzID09PSB1bmRlZmluZWQgJiYgdGhpcy5yZXN1bHQgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIC8vIFRoZSBBY3Rpdml0eSBkYXNoYm9hcmQgc2hvd3MgdGhlc2UgYWN0aXZpdGllcyBhcyAndW5yZXNvbHZlZCdcclxuICAgICAgICAvLyBidXQgZGV2ZWxvcGVycyBnZW5lcmFsbHkgc2hvdWxkIGF2b2lkIGxlYXZpbmcgYWN0aXZpdGllcyBpbiB0aGlzIHN0YXRlLlxyXG4gICAgICAgIGxvZ05vdGlmaWNhdGlvbihMb2dMZXZlbC5XYXJuaW5nLCBDYXRlZ29yeS5Db3JlLCAoKSA9PiAnQWN0aXZpdHkgZG9lcyBub3QgaGF2ZSBzdWNjZXNzIG9yIHJlc3VsdCBzZXQnKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgbGV0IGVuZFRpbWUgPSBnZXRDdXJyZW50TWljcm9zZWNvbmRzKCk7XHJcbiAgICAgIGxldCBkdXJhdGlvbiA9IGVuZFRpbWUgLSBfc3RhcnRUaW1lO1xyXG4gICAgICBfZW5kZWQgPSB0cnVlO1xyXG5cclxuICAgICAgLy8gRmlsbCB0aGUgZXZlbnQgY29udHJhY3RcclxuICAgICAgbGV0IGFjdGl2aXR5OiBBY3Rpdml0eS5Db250cmFjdCA9IHtcclxuICAgICAgICBkdXJhdGlvbixcclxuICAgICAgICBjb3VudDogQUNUSVZJVFlfQ09VTlQsXHJcbiAgICAgICAgYWdnTW9kZTogQUNUSVZJVFlfQUdHTU9ERSxcclxuICAgICAgICBjVjogdGhpcy5jdi52YWx1ZSxcclxuICAgICAgICBzdWNjZXNzOiB0aGlzLnN1Y2Nlc3MsXHJcbiAgICAgICAgcmVzdWx0OiB0aGlzLnJlc3VsdFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgbGV0IG5ld0RhdGFGaWVsZHMgPSB0aGlzLmV2ZW50Q29udHJhY3QgJiYgdGhpcy5ldmVudENvbnRyYWN0LmRhdGFGaWVsZHMgPyB0aGlzLmV2ZW50Q29udHJhY3QuZGF0YUZpZWxkcyA6IFtdO1xyXG4gICAgICBuZXdEYXRhRmllbGRzLnB1c2goLi4uQWN0aXZpdHkuZ2V0RmllbGRzKGFjdGl2aXR5KSk7XHJcblxyXG4gICAgICB0aGlzLmV2ZW50Q29udHJhY3QgPSB7XHJcbiAgICAgICAgbmFtZTogQWN0aXZpdHkuY29udHJhY3ROYW1lLFxyXG4gICAgICAgIGRhdGFGaWVsZHM6IG5ld0RhdGFGaWVsZHNcclxuICAgICAgfTtcclxuXHJcbiAgICAgIHJldHVybiBhY3Rpdml0eVByb3BlcnRpZXMuc2VuZFRlbGVtZXRyeUV2ZW50KHRoaXMpO1xyXG4gICAgfVxyXG4gIH07XHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/Activity.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/Contracts.js": /*!**********************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/Contracts.js ***! \**********************************************************/ /*! exports provided: Result, Activity, User, Funnel, UserAction, App, Session, HealthQosError, Release */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Result\", function() { return Result; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Activity\", function() { return Activity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"User\", function() { return User; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Funnel\", function() { return Funnel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserAction\", function() { return UserAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"App\", function() { return App; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Session\", function() { return Session; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HealthQosError\", function() { return HealthQosError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Release\", function() { return Release; });\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n\r\nfunction getFullFieldName(instanceName, fieldName) {\r\n return instanceName ? instanceName + '.' + fieldName : fieldName;\r\n}\r\n/**\r\n * Adds a data field from a contract to the data fields array.\r\n * If the data field value is empty, the field is skipped.\r\n * @param instanceName - The name of the contract instance. Empty if no instance.\r\n * @param fieldName - The name of the field to add\r\n * @param value - The value\r\n * @param dataFields - The array of data fields to which a field will be added\r\n */\r\nfunction addStringDataField(instanceName, fieldName, value, dataFields) {\r\n if (value) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(getFullFieldName(instanceName, fieldName)), value));\r\n }\r\n}\r\nfunction addBooleanDataField(instanceName, fieldName, value, dataFields) {\r\n if (typeof value === 'boolean') {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])(\"\".concat(getFullFieldName(instanceName, fieldName)), value));\r\n }\r\n}\r\nfunction addInt64DataField(instanceName, fieldName, value, dataFields) {\r\n if (typeof value === 'number') {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(getFullFieldName(instanceName, fieldName)), value));\r\n }\r\n}\r\nvar Result = {\r\n /* Gets data fields for the Office.System.Result contract */\r\n getFields: function (contract) {\r\n var instanceName = 'Activity.Result';\r\n var contractName = 'Office.System.Result';\r\n var dataFields = [];\r\n addInt64DataField(instanceName, 'Code', contract.code, dataFields);\r\n addStringDataField(instanceName, 'Type', contract.type, dataFields);\r\n addInt64DataField(instanceName, 'Tag', contract.tag, dataFields);\r\n addBooleanDataField(instanceName, 'IsExpected', contract.isExpected, dataFields);\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('zC.Activity.Result', contractName));\r\n return dataFields;\r\n }\r\n}; // Result\r\nvar Activity = {\r\n contractName: 'Office.System.Activity',\r\n /* Gets data fields for the Office.System.Activity contract */\r\n getFields: function (contract) {\r\n var instanceName = 'Activity';\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'CV', contract.cV, dataFields);\r\n addInt64DataField(instanceName, 'Duration', contract.duration, dataFields);\r\n addInt64DataField(instanceName, 'Count', contract.count, dataFields);\r\n addInt64DataField(instanceName, 'AggMode', contract.aggMode, dataFields);\r\n addBooleanDataField(instanceName, 'Success', contract.success, dataFields);\r\n if (contract.result) {\r\n dataFields.push.apply(dataFields, Result.getFields(contract.result));\r\n }\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('zC.Activity', this.contractName));\r\n return dataFields;\r\n }\r\n}; // Activity\r\nvar User = {\r\n /* Gets data fields for the Office.System.User contract */\r\n getFields: function (contract) {\r\n var instanceName = 'User';\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'PrimaryIdentityHash', contract.primaryIdentityHash, dataFields);\r\n addStringDataField(instanceName, 'PrimaryIdentitySpace', contract.primaryIdentitySpace, dataFields);\r\n addStringDataField(instanceName, 'TenantId', contract.tenantId, dataFields);\r\n addStringDataField(instanceName, 'TenantGroup', contract.tenantGroup, dataFields);\r\n addBooleanDataField(instanceName, 'IsAnonymous', contract.isAnonymous, dataFields);\r\n return dataFields;\r\n }\r\n}; // User\r\nvar Funnel = {\r\n /* Gets data fields for the Office.System.Funnel contract */\r\n getFields: function (instanceName, contract) {\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'Name', contract.name, dataFields);\r\n addStringDataField(instanceName, 'State', contract.state, dataFields);\r\n return dataFields;\r\n }\r\n}; // Funnel\r\nvar UserAction = {\r\n /* Gets data fields for the Office.System.UserAction contract */\r\n getFields: function (contract) {\r\n var instanceName = 'UserAction';\r\n var dataFields = [];\r\n addInt64DataField(instanceName, 'Id', contract.id, dataFields);\r\n addStringDataField(instanceName, 'Name', contract.name, dataFields);\r\n addStringDataField(instanceName, 'CommandSurface', contract.commandSurface, dataFields);\r\n addStringDataField(instanceName, 'ParentName', contract.parentName, dataFields);\r\n addStringDataField(instanceName, 'TriggerMethod', contract.triggerMethod, dataFields);\r\n addInt64DataField(instanceName, 'TimeOffsetMs', contract.timeOffsetMs, dataFields);\r\n return dataFields;\r\n }\r\n}; // UserAction\r\nvar App = {\r\n /* Gets data fields for the Office.System.App contract */\r\n getFields: function (contract) {\r\n var instanceName = 'App';\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'Name', contract.name, dataFields);\r\n addStringDataField(instanceName, 'Platform', contract.platform, dataFields);\r\n addStringDataField(instanceName, 'Version', contract.version, dataFields);\r\n return dataFields;\r\n }\r\n}; // App\r\nvar Session = {\r\n /* Gets data fields for the Office.System.Session contract */\r\n getFields: function (contract) {\r\n var instanceName = 'Session';\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'Id', contract.id, dataFields);\r\n addStringDataField(instanceName, 'EcsETag', contract.ecsETag, dataFields);\r\n return dataFields;\r\n }\r\n}; // Session\r\nvar HealthQosError = {\r\n /**\r\n * Gets data fields for the Health contract\r\n * See https://aka.ms/asha/docs for documentation on usage and parameters.\r\n * Generally, use sendHealthQosError() instead of using this contract directly.\r\n */\r\n getFields: function (contract) {\r\n var dataFields = [];\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('Pillar', contract.pillar));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('Veto', contract.veto));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])('IsIntentional', contract.isIntentional));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])('IsInternal', contract.isInternal));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])('AlertOnPillar', contract.alertOnPillar));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])('IsSessionEndingError', contract.isSessionEndingError));\r\n addBooleanDataField(undefined, 'InStaging', contract.inStaging, dataFields);\r\n return dataFields;\r\n }\r\n}; // HealthQosError\r\nvar Release = {\r\n /* Gets data fields for the Office.System.Release contract */\r\n getFields: function (contract) {\r\n var instanceName = 'Release';\r\n var dataFields = [];\r\n addStringDataField(instanceName, 'AudienceGroup', contract.audienceGroup, dataFields);\r\n return dataFields;\r\n }\r\n}; // Release\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0NvbnRyYWN0cy50cz84ODk5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBa0c7QUFFbEcsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFnQyxFQUFFLFNBQWlCO0lBQzNFLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ25FLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBUyxrQkFBa0IsQ0FDekIsWUFBZ0MsRUFDaEMsU0FBaUIsRUFDakIsS0FBZ0MsRUFDaEMsVUFBdUI7SUFFdkIsSUFBSSxLQUFLLEVBQUU7UUFDVCxVQUFVLENBQUMsSUFBSSxDQUFDLDRFQUFtQixDQUFDLFVBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUM3RjtBQUNILENBQUM7QUFDRCxTQUFTLG1CQUFtQixDQUMxQixZQUFnQyxFQUNoQyxTQUFpQixFQUNqQixLQUFpQyxFQUNqQyxVQUF1QjtJQUV2QixJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUM5QixVQUFVLENBQUMsSUFBSSxDQUFDLDZFQUFvQixDQUFDLFVBQUcsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztLQUM5RjtBQUNILENBQUM7QUFDRCxTQUFTLGlCQUFpQixDQUFDLFlBQWdDLEVBQUUsU0FBaUIsRUFBRSxLQUFnQyxFQUFFLFVBQXVCO0lBQ3ZJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkVBQWtCLENBQUMsVUFBRyxnQkFBZ0Is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QztDQUNGLENBQUMsQ0FBQyxVQUFVIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvQ29udHJhY3RzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xyXG5pbXBvcnQgeyBEYXRhRmllbGQgfSBmcm9tICcuL0RhdGFNb2RlbHMnO1xyXG5pbXBvcnQgeyBtYWtlQm9vbGVhbkRhdGFGaWVsZCwgbWFrZUludDY0RGF0YUZpZWxkLCBtYWtlU3RyaW5nRGF0YUZpZWxkIH0gZnJvbSAnLi9EYXRhRmllbGRIZWxwZXInO1xyXG5cclxuZnVuY3Rpb24gZ2V0RnVsbEZpZWxkTmFtZShpbnN0YW5jZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCwgZmllbGROYW1lOiBzdHJpbmcpIHtcclxuICByZXR1cm4gaW5zdGFuY2VOYW1lID8gaW5zdGFuY2VOYW1lICsgJy4nICsgZmllbGROYW1lIDogZmllbGROYW1lO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcyBhIGRhdGEgZmllbGQgZnJvbSBhIGNvbnRyYWN0IHRvIHRoZSBkYXRhIGZpZWxkcyBhcnJheS5cclxuICogSWYgdGhlIGRhdGEgZmllbGQgdmFsdWUgaXMgZW1wdHksIHRoZSBmaWVsZCBpcyBza2lwcGVkLlxyXG4gKiBAcGFyYW0gaW5zdGFuY2VOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGNvbnRyYWN0IGluc3RhbmNlLiBFbXB0eSBpZiBubyBpbnN0YW5jZS5cclxuICogQHBhcmFtIGZpZWxkTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBmaWVsZCB0byBhZGRcclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlXHJcbiAqIEBwYXJhbSBkYXRhRmllbGRzIC0gVGhlIGFycmF5IG9mIGRhdGEgZmllbGRzIHRvIHdoaWNoIGEgZmllbGQgd2lsbCBiZSBhZGRlZFxyXG4gKi9cclxuZnVuY3Rpb24gYWRkU3RyaW5nRGF0YUZpZWxkKFxyXG4gIGluc3RhbmNlTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxyXG4gIGZpZWxkTmFtZTogc3RyaW5nLFxyXG4gIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsLFxyXG4gIGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdXHJcbikge1xyXG4gIGlmICh2YWx1ZSkge1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7Z2V0RnVsbEZpZWxkTmFtZShpbnN0YW5jZU5hbWUsIGZpZWxkTmFtZSl9YCwgdmFsdWUpKTtcclxuICB9XHJcbn1cclxuZnVuY3Rpb24gYWRkQm9vbGVhbkRhdGFGaWVsZChcclxuICBpbnN0YW5jZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICBmaWVsZE5hbWU6IHN0cmluZyxcclxuICB2YWx1ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCB8IG51bGwsXHJcbiAgZGF0YUZpZWxkczogRGF0YUZpZWxkW11cclxuKSB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZUJvb2xlYW5EYXRhRmllbGQoYCR7Z2V0RnVsbEZpZWxkTmFtZShpbnN0YW5jZU5hbWUsIGZpZWxkTmFtZSl9YCwgdmFsdWUpKTtcclxuICB9XHJcbn1cclxuZnVuY3Rpb24gYWRkSW50NjREYXRhRmllbGQoaW5zdGFuY2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIGZpZWxkTmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgZGF0YUZpZWxkczogRGF0YUZpZWxkW10pIHtcclxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtnZXRGdWxsRmllbGROYW1lKGluc3RhbmNlTmFtZSwgZmllbGROYW1lKX1gLCB2YWx1ZSkpO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHQge1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgY29kZTogbnVtYmVyO1xyXG4gICAgdHlwZT86IHN0cmluZztcclxuICAgIHRhZz86IG51bWJlcjtcclxuICAgIGlzRXhwZWN0ZWQ/OiBib29sZWFuO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY29uc3QgUmVzdWx0ID0ge1xyXG4gIC8qIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBPZmZpY2UuU3lzdGVtLlJlc3VsdCBjb250cmFjdCAqL1xyXG4gIGdldEZpZWxkcyhjb250cmFjdDogUmVzdWx0LkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgY29uc3QgaW5zdGFuY2VOYW1lID0gJ0FjdGl2aXR5LlJlc3VsdCc7XHJcbiAgICBjb25zdCBjb250cmFjdE5hbWUgPSAnT2ZmaWNlLlN5c3RlbS5SZXN1bHQnO1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBhZGRJbnQ2NERhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdDb2RlJywgY29udHJhY3QuY29kZSwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnVHlwZScsIGNvbnRyYWN0LnR5cGUsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkSW50NjREYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnVGFnJywgY29udHJhY3QudGFnLCBkYXRhRmllbGRzKTtcclxuICAgIGFkZEJvb2xlYW5EYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnSXNFeHBlY3RlZCcsIGNvbnRyYWN0LmlzRXhwZWN0ZWQsIGRhdGFGaWVsZHMpO1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoJ3pDLkFjdGl2aXR5LlJlc3VsdCcsIGNvbnRyYWN0TmFtZSkpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59OyAvLyBSZXN1bHRcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgQWN0aXZpdHkge1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgY1Y/OiBzdHJpbmc7XHJcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgY291bnQ6IG51bWJlcjtcclxuICAgIGFnZ01vZGU6IG51bWJlcjtcclxuICAgIHN1Y2Nlc3M/OiBib29sZWFuO1xyXG4gICAgcmVzdWx0PzogUmVzdWx0LkNvbnRyYWN0O1xyXG4gIH1cclxufVxyXG5leHBvcnQgY29uc3QgQWN0aXZpdHkgPSB7XHJcbiAgY29udHJhY3ROYW1lOiAnT2ZmaWNlLlN5c3RlbS5BY3Rpdml0eScsXHJcbiAgLyogR2V0cyBkYXRhIGZpZWxkcyBmb3IgdGhlIE9mZmljZS5TeXN0ZW0uQWN0aXZpdHkgY29udHJhY3QgKi9cclxuICBnZXRGaWVsZHMoY29udHJhY3Q6IEFjdGl2aXR5LkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgY29uc3QgaW5zdGFuY2VOYW1lID0gJ0FjdGl2aXR5JztcclxuICAgIGxldCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ0NWJywgY29udHJhY3QuY1YsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkSW50NjREYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnRHVyYXRpb24nLCBjb250cmFjdC5kdXJhdGlvbiwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRJbnQ2NERhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdDb3VudCcsIGNvbnRyYWN0LmNvdW50LCBkYXRhRmllbGRzKTtcclxuICAgIGFkZEludDY0RGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ0FnZ01vZGUnLCBjb250cmFjdC5hZ2dNb2RlLCBkYXRhRmllbGRzKTtcclxuICAgIGFkZEJvb2xlYW5EYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnU3VjY2VzcycsIGNvbnRyYWN0LnN1Y2Nlc3MsIGRhdGFGaWVsZHMpO1xyXG4gICAgaWYgKGNvbnRyYWN0LnJlc3VsdCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2goLi4uUmVzdWx0LmdldEZpZWxkcyhjb250cmFjdC5yZXN1bHQpKTtcclxuICAgIH1cclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKCd6Qy5BY3Rpdml0eScsIHRoaXMuY29udHJhY3ROYW1lKSk7XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn07IC8vIEFjdGl2aXR5XHJcblxyXG5leHBvcnQgY29uc3QgZW51bSBQcmltYXJ5SWRlbnRpdHlTcGFjZSB7XHJcbiAgVXNlck9iamVjdElkID0gJ1VzZXJPYmplY3RJZCcsXHJcbiAgTVNBQ0lEID0gJ01TQUNJRCcsXHJcbiAgT3JnSWRQdWlkID0gJ09yZ0lkUHVpZCcsXHJcbiAgT3JnSWRDSUQgPSAnT3JnSWRDSUQnLFxyXG4gIE1zYVB1aWQgPSAnTXNhUHVpZCcsXHJcbiAgV29waUF1dGggPSAnV29waUF1dGgnLFxyXG4gIFRoaXJkUGFydHkgPSAnVGhpcmRQYXJ0eSdcclxufVxyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBVc2VyIHtcclxuICAvLyAnT2ZmaWNlLlN5c3RlbS5Vc2VyJ1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgcHJpbWFyeUlkZW50aXR5SGFzaD86IHN0cmluZztcclxuICAgIHByaW1hcnlJZGVudGl0eVNwYWNlPzogc3RyaW5nO1xyXG4gICAgdGVuYW50SWQ/OiBzdHJpbmc7XHJcbiAgICB0ZW5hbnRHcm91cD86IHN0cmluZztcclxuICAgIGlzQW5vbnltb3VzPzogYm9vbGVhbjtcclxuICB9XHJcbiAgZXhwb3J0IHR5cGUgU3RyaWN0Q29udHJhY3RLbm93blVzZXIgPSB7XHJcbiAgICBwcmltYXJ5SWRlbnRpdHlIYXNoOiBzdHJpbmc7XHJcbiAgICBwcmltYXJ5SWRlbnRpdHlTcGFjZTogUHJpbWFyeUlkZW50aXR5U3BhY2U7XHJcbiAgICB0ZW5hbnRJZD86IHN0cmluZztcclxuICAgIHRlbmFudEdyb3VwPzogc3RyaW5nO1xyXG4gICAgaXNBbm9ueW1vdXM/OiBmYWxzZTtcclxuICB9O1xyXG4gIGV4cG9ydCB0eXBlIFN0cmljdENvbnRyYWN0VW5rbm93blVzZXIgPSB7XHJcbiAgICBwcmltYXJ5SWRlbnRpdHlIYXNoOiBuZXZlcjtcclxuICAgIHByaW1hcnlJZGVudGl0eVNwYWNlOiBuZXZlcjtcclxuICAgIHRlbmFudElkPzogbmV2ZXI7XHJcbiAgICB0ZW5hbnRHcm91cD86IG5ldmVyO1xyXG4gICAgaXNBbm9ueW1vdXM6IHRydWU7XHJcbiAgfTtcclxuICBleHBvcnQgdHlwZSBTdHJpY3RDb250cmFjdCA9IFN0cmljdENvbnRyYWN0S25vd25Vc2VyIHwgU3RyaWN0Q29udHJhY3RVbmtub3duVXNlcjtcclxufVxyXG5leHBvcnQgY29uc3QgVXNlciA9IHtcclxuICAvKiBHZXRzIGRhdGEgZmllbGRzIGZvciB0aGUgT2ZmaWNlLlN5c3RlbS5Vc2VyIGNvbnRyYWN0ICovXHJcbiAgZ2V0RmllbGRzKGNvbnRyYWN0OiBVc2VyLkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgY29uc3QgaW5zdGFuY2VOYW1lID0gJ1VzZXInO1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnUHJpbWFyeUlkZW50aXR5SGFzaCcsIGNvbnRyYWN0LnByaW1hcnlJZGVudGl0eUhhc2gsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ1ByaW1hcnlJZGVudGl0eVNwYWNlJywgY29udHJhY3QucHJpbWFyeUlkZW50aXR5U3BhY2UsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ1RlbmFudElkJywgY29udHJhY3QudGVuYW50SWQsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ1RlbmFudEdyb3VwJywgY29udHJhY3QudGVuYW50R3JvdXAsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkQm9vbGVhbkRhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdJc0Fub255bW91cycsIGNvbnRyYWN0LmlzQW5vbnltb3VzLCBkYXRhRmllbGRzKTtcclxuICAgIHJldHVybiBkYXRhRmllbGRzO1xyXG4gIH1cclxufTsgLy8gVXNlclxyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBGdW5uZWwge1xyXG4gIC8vICdPZmZpY2UuU3lzdGVtLkZ1bm5lbCdcclxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0IHtcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBzdGF0ZT86IHN0cmluZztcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IEZ1bm5lbCA9IHtcclxuICAvKiBHZXRzIGRhdGEgZmllbGRzIGZvciB0aGUgT2ZmaWNlLlN5c3RlbS5GdW5uZWwgY29udHJhY3QgKi9cclxuICBnZXRGaWVsZHMoaW5zdGFuY2VOYW1lOiBzdHJpbmcsIGNvbnRyYWN0OiBGdW5uZWwuQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGFkZFN0cmluZ0RhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdOYW1lJywgY29udHJhY3QubmFtZSwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnU3RhdGUnLCBjb250cmFjdC5zdGF0ZSwgZGF0YUZpZWxkcyk7XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn07IC8vIEZ1bm5lbFxyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBVc2VyQWN0aW9uIHtcclxuICAvLyAnT2ZmaWNlLlN5c3RlbS5Vc2VyQWN0aW9uJ1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgaWQ/OiBudW1iZXI7XHJcbiAgICBuYW1lPzogc3RyaW5nO1xyXG4gICAgY29tbWFuZFN1cmZhY2U/OiBzdHJpbmc7XHJcbiAgICBwYXJlbnROYW1lPzogc3RyaW5nO1xyXG4gICAgdHJpZ2dlck1ldGhvZD86IHN0cmluZztcclxuICAgIHRpbWVPZmZzZXRNcz86IG51bWJlcjtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNvbnN0IFVzZXJBY3Rpb24gPSB7XHJcbiAgLyogR2V0cyBkYXRhIGZpZWxkcyBmb3IgdGhlIE9mZmljZS5TeXN0ZW0uVXNlckFjdGlvbiBjb250cmFjdCAqL1xyXG4gIGdldEZpZWxkcyhjb250cmFjdDogVXNlckFjdGlvbi5Db250cmFjdCk6IERhdGFGaWVsZFtdIHtcclxuICAgIGNvbnN0IGluc3RhbmNlTmFtZSA9ICdVc2VyQWN0aW9uJztcclxuICAgIGxldCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG4gICAgYWRkSW50NjREYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnSWQnLCBjb250cmFjdC5pZCwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnTmFtZScsIGNvbnRyYWN0Lm5hbWUsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ0NvbW1hbmRTdXJmYWNlJywgY29udHJhY3QuY29tbWFuZFN1cmZhY2UsIGRhdGFGaWVsZHMpO1xyXG4gICAgYWRkU3RyaW5nRGF0YUZpZWxkKGluc3RhbmNlTmFtZSwgJ1BhcmVudE5hbWUnLCBjb250cmFjdC5wYXJlbnROYW1lLCBkYXRhRmllbGRzKTtcclxuICAgIGFkZFN0cmluZ0RhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdUcmlnZ2VyTWV0aG9kJywgY29udHJhY3QudHJpZ2dlck1ldGhvZCwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRJbnQ2NERhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdUaW1lT2Zmc2V0TXMnLCBjb250cmFjdC50aW1lT2Zmc2V0TXMsIGRhdGFGaWVsZHMpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59OyAvLyBVc2VyQWN0aW9uXHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEFwcCB7XHJcbiAgLy8gJ09mZmljZS5TeXN0ZW0uQXBwJ1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIHBsYXRmb3JtPzogc3RyaW5nO1xyXG4gICAgdmVyc2lvbj86IHN0cmluZztcclxuICB9XHJcbiAgZXhwb3J0IHR5cGUgU3RyaWN0Q29udHJhY3QgPSB7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBwbGF0Zm9ybTogJ1dlYicgfCBzdHJpbmc7XHJcbiAgICB2ZXJzaW9uOiBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5leHBvcnQgY29uc3QgQXBwID0ge1xyXG4gIC8qIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBPZmZpY2UuU3lzdGVtLkFwcCBjb250cmFjdCAqL1xyXG4gIGdldEZpZWxkcyhjb250cmFjdDogQXBwLkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgY29uc3QgaW5zdGFuY2VOYW1lID0gJ0FwcCc7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGFkZFN0cmluZ0RhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdOYW1lJywgY29udHJhY3QubmFtZSwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnUGxhdGZvcm0nLCBjb250cmFjdC5wbGF0Zm9ybSwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnVmVyc2lvbicsIGNvbnRyYWN0LnZlcnNpb24sIGRhdGFGaWVsZHMpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59OyAvLyBBcHBcclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgU2Vzc2lvbiB7XHJcbiAgLy8gJ09mZmljZS5TeXN0ZW0uU2Vzc2lvbidcclxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBlY3NFVGFnPzogc3RyaW5nO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY29uc3QgU2Vzc2lvbiA9IHtcclxuICAvKiBHZXRzIGRhdGEgZmllbGRzIGZvciB0aGUgT2ZmaWNlLlN5c3RlbS5TZXNzaW9uIGNvbnRyYWN0ICovXHJcbiAgZ2V0RmllbGRzKGNvbnRyYWN0OiBTZXNzaW9uLkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgY29uc3QgaW5zdGFuY2VOYW1lID0gJ1Nlc3Npb24nO1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnSWQnLCBjb250cmFjdC5pZCwgZGF0YUZpZWxkcyk7XHJcbiAgICBhZGRTdHJpbmdEYXRhRmllbGQoaW5zdGFuY2VOYW1lLCAnRWNzRVRhZycsIGNvbnRyYWN0LmVjc0VUYWcsIGRhdGFGaWVsZHMpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59OyAvLyBTZXNzaW9uXHJcblxyXG4vLyBTZWUgaHR0cHM6Ly9ha2EubXMvYXNoYS9kb2NzIGZvciBkb2N1bWVudGF0aW9uIG9uIHVzYWdlIGFuZCBwYXJhbWV0ZXJzLlxyXG4vLyBUaGUgSGVhbHRoUW9zRXJyb3IgJ2NvbnRyYWN0JyBpcyBhIHNldCBvZiBmaWVsZHMsIGJ1dCBpdCBkb2VzIG5vdFxyXG4vLyBoYXZlIGFuIGluc3RhbmNlIG5hbWU7IHRodXMsIGZpZWxkcyBhcmUgc2VudCBhcyBEYXRhLlBpbGxhciBpbnN0ZWFkIG9mXHJcbi8vIERhdGEuSGVhbHRoUW9zRXJyb3IuUGlsbGFyXHJcbmV4cG9ydCBuYW1lc3BhY2UgSGVhbHRoUW9zRXJyb3Ige1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgcGlsbGFyOiBRb3NQaWxsYXJOYW1lO1xyXG4gICAgdmV0bzogc3RyaW5nO1xyXG4gICAgaXNJbnRlbnRpb25hbDogYm9vbGVhbjtcclxuICAgIGlzSW50ZXJuYWw6IGJvb2xlYW47XHJcbiAgICBhbGVydE9uUGlsbGFyOiBib29sZWFuO1xyXG4gICAgaXNTZXNzaW9uRW5kaW5nRXJyb3I6IGJvb2xlYW47XHJcbiAgICBpblN0YWdpbmc/OiBib29sZWFuO1xyXG4gIH1cclxufVxyXG5leHBvcnQgY29uc3QgZW51bSBRb3NQaWxsYXJOYW1lIHtcclxuICBJbnRlcnJ1cHRpb25zID0gJ0ludGVycnVwdGlvbnMnLFxyXG4gIE9wZW4gPSAnT3BlbicsXHJcbiAgU2F2ZSA9ICdTYXZlJyxcclxuICBSZWFsVGltZUNvYXV0aCA9ICdSZWFsVGltZUNvYXV0aCcsXHJcbiAgTm90ZWJvb2tOYXZpZ2F0aW9uID0gJ05vdGVib29rTmF2aWdhdGlvbicsXHJcbiAgRmlkZWxpdHkgPSAnRmlkZWxpdHknLFxyXG4gIEFzeW5jQ29sbGFiID0gJ0FzeW5jQ29sbGFiJyxcclxuICBQcmVzZW50ID0gJ1ByZXNlbnQnLFxyXG4gIENvbnRlbnRDb25zdW1wdGlvbiA9ICdDb250ZW50Q29uc3VtcHRpb24nLFxyXG4gIENvbnRlbnRDcmVhdGlvbiA9ICdDb250ZW50Q3JlYXRpb24nXHJcbn1cclxuZXhwb3J0IGNvbnN0IEhlYWx0aFFvc0Vycm9yID0ge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBIZWFsdGggY29udHJhY3RcclxuICAgKiBTZWUgaHR0cHM6Ly9ha2EubXMvYXNoYS9kb2NzIGZvciBkb2N1bWVudGF0aW9uIG9uIHVzYWdlIGFuZCBwYXJhbWV0ZXJzLlxyXG4gICAqIEdlbmVyYWxseSwgdXNlIHNlbmRIZWFsdGhRb3NFcnJvcigpIGluc3RlYWQgb2YgdXNpbmcgdGhpcyBjb250cmFjdCBkaXJlY3RseS5cclxuICAgKi9cclxuICBnZXRGaWVsZHMoY29udHJhY3Q6IEhlYWx0aFFvc0Vycm9yLkNvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZCgnUGlsbGFyJywgY29udHJhY3QucGlsbGFyKSk7XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZCgnVmV0bycsIGNvbnRyYWN0LnZldG8pKTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlQm9vbGVhbkRhdGFGaWVsZCgnSXNJbnRlbnRpb25hbCcsIGNvbnRyYWN0LmlzSW50ZW50aW9uYWwpKTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlQm9vbGVhbkRhdGFGaWVsZCgnSXNJbnRlcm5hbCcsIGNvbnRyYWN0LmlzSW50ZXJuYWwpKTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlQm9vbGVhbkRhdGFGaWVsZCgnQWxlcnRPblBpbGxhcicsIGNvbnRyYWN0LmFsZXJ0T25QaWxsYXIpKTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlQm9vbGVhbkRhdGFGaWVsZCgnSXNTZXNzaW9uRW5kaW5nRXJyb3InLCBjb250cmFjdC5pc1Nlc3Npb25FbmRpbmdFcnJvcikpO1xyXG4gICAgYWRkQm9vbGVhbkRhdGFGaWVsZCh1bmRlZmluZWQsICdJblN0YWdpbmcnLCBjb250cmFjdC5pblN0YWdpbmcsIGRhdGFGaWVsZHMpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59OyAvLyBIZWFsdGhRb3NFcnJvclxyXG5cclxuZXhwb3J0IGNvbnN0IGVudW0gQXVkaWVuY2VHcm91cCB7XHJcbiAgQXV0b21hdGlvbiA9ICdBdXRvbWF0aW9uJyxcclxuICBEb2dmb29kID0gJ0RvZ2Zvb2QnLFxyXG4gIE1pY3Jvc29mdCA9ICdNaWNyb3NvZnQnLFxyXG4gIEluc2lkZXJzID0gJ0luc2lkZXJzJyxcclxuICBQcm9kdWN0aW9uID0gJ1Byb2R1Y3Rpb24nXHJcbn1cclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgUmVsZWFzZSB7XHJcbiAgZXhwb3J0IGludGVyZmFjZSBDb250cmFjdCB7XHJcbiAgICBhdWRpZW5jZUdyb3VwPzogQXVkaWVuY2VHcm91cCB8IHN0cmluZztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBSZWxlYXNlID0ge1xyXG4gIC8qIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBPZmZpY2UuU3lzdGVtLlJlbGVhc2UgY29udHJhY3QgKi9cclxuICBnZXRGaWVsZHMoY29udHJhY3Q6IFJlbGVhc2UuQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBjb25zdCBpbnN0YW5jZU5hbWUgPSAnUmVsZWFzZSc7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGFkZFN0cmluZ0RhdGFGaWVsZChpbnN0YW5jZU5hbWUsICdBdWRpZW5jZUdyb3VwJywgY29udHJhY3QuYXVkaWVuY2VHcm91cCwgZGF0YUZpZWxkcyk7XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn07IC8vIFJlbGVhc2VcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/Contracts.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/CorrelationVector.js": /*!******************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/CorrelationVector.js ***! \******************************************************************/ /*! exports provided: CV, getBaseCv */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CV\", function() { return CV; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getBaseCv\", function() { return getBaseCv; });\n// The \"base CV\" has a hash without any child numbers\r\nvar baseCv;\r\n/**\r\n * Implementation of correlation vector\r\n */\r\nvar CV = /** @class */ (function () {\r\n function CV(value) {\r\n this.value = value;\r\n this.nextChild = 0;\r\n }\r\n /**\r\n * The index of the next child\r\n */\r\n CV.prototype.getNext = function () {\r\n return new CV(\"\".concat(this.value, \".\").concat(++this.nextChild));\r\n };\r\n return CV;\r\n}());\r\n\r\n/**\r\n * Gets a base correlation vector for this session\r\n * @returns A base correlation vector, with a value of a 22-character string\r\n */\r\nfunction getBaseCv() {\r\n if (!baseCv) {\r\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n var hashLength = 22;\r\n var result = [];\r\n for (var i = 0; i < hashLength; i++) {\r\n // (security is not a concern here and secure crypto function is not available on all platform)\r\n // eslint-disable-next-line no-restricted-properties\r\n result.push(characters.charAt(Math.floor(Math.random() * characters.length)));\r\n }\r\n baseCv = new CV(result.join(''));\r\n }\r\n return baseCv;\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0NvcnJlbGF0aW9uVmVjdG9yLnRzP2U4ZWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUEscURBQXFEO0FBQ3JELElBQUksTUFBc0IsQ0FBQztBQUUzQjs7R0FFRztBQUNIO0lBVUUsWUFBWSxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFPLEdBQVA7UUFDRSxPQUFPLElBQUksRUFBRSxDQUFDLFVBQUcsSUFBSSxDQUFDLEtBQUssY0FBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFDSCxTQUFDO0FBQUQsQ0FBQzs7QUFFRDs7O0dBR0c7QUFDSSxTQUFTLFNBQVM7SUFDdkIsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNYLElBQUksVUFBVSxHQUFHLGtFQUFrRSxDQUFDO1FBQ3BGLElBQUksVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVwQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFaEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQywrRkFBK0Y7WUFDL0Ysb0RBQW9EO1lBQ3BELE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQy9FO1FBQ0QsTUFBTSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUNsQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvZGlzdC9Db3JyZWxhdGlvblZlY3Rvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFRoZSBcImJhc2UgQ1ZcIiBoYXMgYSBoYXNoIHdpdGhvdXQgYW55IGNoaWxkIG51bWJlcnNcclxubGV0IGJhc2VDdjogQ1YgfCB1bmRlZmluZWQ7XHJcblxyXG4vKipcclxuICogSW1wbGVtZW50YXRpb24gb2YgY29ycmVsYXRpb24gdmVjdG9yXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQ1Yge1xyXG4gIC8qKlxyXG4gICAqIFRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBjb3JyZWxhdGlvbiB2ZWN0b3JcclxuICAgKi9cclxuICB2YWx1ZTogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIFRoZSBpbmRleCBvZiB0aGUgbmV4dCBjaGlsZCBvZiB0aGlzIGNvcnJlbGF0aW9uIHZlY3RvclxyXG4gICAqL1xyXG4gIG5leHRDaGlsZDogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3Rvcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLm5leHRDaGlsZCA9IDA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUaGUgaW5kZXggb2YgdGhlIG5leHQgY2hpbGRcclxuICAgKi9cclxuICBnZXROZXh0KCkge1xyXG4gICAgcmV0dXJuIG5ldyBDVihgJHt0aGlzLnZhbHVlfS4keysrdGhpcy5uZXh0Q2hpbGR9YCk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogR2V0cyBhIGJhc2UgY29ycmVsYXRpb24gdmVjdG9yIGZvciB0aGlzIHNlc3Npb25cclxuICogQHJldHVybnMgQSBiYXNlIGNvcnJlbGF0aW9uIHZlY3Rvciwgd2l0aCBhIHZhbHVlIG9mIGEgMjItY2hhcmFjdGVyIHN0cmluZ1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VDdigpIHtcclxuICBpZiAoIWJhc2VDdikge1xyXG4gICAgbGV0IGNoYXJhY3RlcnMgPSAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyc7XHJcbiAgICBsZXQgaGFzaExlbmd0aCA9IDIyO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSBbXTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhhc2hMZW5ndGg7IGkrKykge1xyXG4gICAgICAvLyAoc2VjdXJpdHkgaXMgbm90IGEgY29uY2VybiBoZXJlIGFuZCBzZWN1cmUgY3J5cHRvIGZ1bmN0aW9uIGlzIG5vdCBhdmFpbGFibGUgb24gYWxsIHBsYXRmb3JtKVxyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1wcm9wZXJ0aWVzXHJcbiAgICAgIHJlc3VsdC5wdXNoKGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKSkpO1xyXG4gICAgfVxyXG4gICAgYmFzZUN2ID0gbmV3IENWKHJlc3VsdC5qb2luKCcnKSk7XHJcbiAgfVxyXG4gIHJldHVybiBiYXNlQ3Y7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/CorrelationVector.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js": /*!****************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js ***! \****************************************************************/ /*! exports provided: makeBooleanDataField, makeInt64DataField, makeDoubleDataField, makeStringDataField, makeGuidDataField */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeBooleanDataField\", function() { return makeBooleanDataField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeInt64DataField\", function() { return makeInt64DataField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeDoubleDataField\", function() { return makeDoubleDataField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeStringDataField\", function() { return makeStringDataField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeGuidDataField\", function() { return makeGuidDataField; });\n/**\r\n * Make a boolean data field.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nfunction makeBooleanDataField(name, value, classification) {\r\n return {\r\n name: name,\r\n dataType: 1 /* DataFieldType.Boolean */,\r\n value: value,\r\n classification: classification ? classification : 4 /* DataClassification.SystemMetadata */\r\n };\r\n}\r\n/**\r\n * Make a data field corresponding to the Aria Int64 data type. Note that\r\n * JavaScript doesn't actually support Int64 precision on large numbers.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nfunction makeInt64DataField(name, value, classification) {\r\n return {\r\n name: name,\r\n dataType: 2 /* DataFieldType.Int64 */,\r\n value: value,\r\n classification: classification ? classification : 4 /* DataClassification.SystemMetadata */\r\n };\r\n}\r\n/**\r\n * Make a double data field\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nfunction makeDoubleDataField(name, value, classification) {\r\n return {\r\n name: name,\r\n dataType: 3 /* DataFieldType.Double */,\r\n value: value,\r\n classification: classification ? classification : 4 /* DataClassification.SystemMetadata */\r\n };\r\n}\r\n/**\r\n * Make a string data field\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nfunction makeStringDataField(name, value, classification) {\r\n return {\r\n name: name,\r\n dataType: 0 /* DataFieldType.String */,\r\n value: value,\r\n classification: classification ? classification : 4 /* DataClassification.SystemMetadata */\r\n };\r\n}\r\n/**\r\n * Make a GUID data field\r\n * !!!WARNING: Only the 1DS Sink has support for Guid types.\r\n * @param name - The name of the data field\r\n * @param value - The value of the data field\r\n */\r\nfunction makeGuidDataField(name, value, classification) {\r\n return {\r\n name: name,\r\n dataType: 4 /* DataFieldType.Guid */,\r\n value: value,\r\n classification: classification ? classification : 4 /* DataClassification.SystemMetadata */\r\n };\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0RhdGFGaWVsZEhlbHBlci50cz9kZjQyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0dBSUc7QUFDSSxTQUFTLG9CQUFvQixDQUFDLElBQVksRUFBRSxLQUFjLEVBQUUsY0FBbUM7SUFDcEcsT0FBTztRQUNMLElBQUk7UUFDSixRQUFRLCtCQUF1QjtRQUMvQixLQUFLO1FBQ0wsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsMENBQWtDO0tBQ3BGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxTQUFTLGtCQUFrQixDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsY0FBbUM7SUFDakcsT0FBTztRQUNMLElBQUk7UUFDSixRQUFRLDZCQUFxQjtRQUM3QixLQUFLO1FBQ0wsY0FBYyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsMENBQWtDO0tBQ3BGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNJLFNBQVMsbUJBQW1CLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxjQUFtQztJQUNsRyxPQUFPO1FBQ0wsSUFBSTtRQUNKLFFBQVEsOEJBQXNCO1FBQzlCLEtBQUs7UUFDTCxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQywwQ0FBa0M7S0FDcEYsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0ksU0FBUyxtQkFBbUIsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLGNBQW1DO0lBQ2xHLE9BQU87UUFDTCxJQUFJO1FBQ0osUUFBUSw4QkFBc0I7UUFDOUIsS0FBSztRQUNMLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLDBDQUFrQztLQUNwRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0ksU0FBUyxpQkFBaUIsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLGNBQW1DO0lBQ2hHLE9BQU87UUFDTCxJQUFJO1FBQ0osUUFBUSw0QkFBb0I7UUFDNUIsS0FBSztRQUNMLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLDBDQUFrQztLQUNwRixDQUFDO0FBQ0osQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L0RhdGFGaWVsZEhlbHBlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGFGaWVsZCwgRGF0YUZpZWxkVHlwZSwgRGF0YUNsYXNzaWZpY2F0aW9uIH0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuXHJcbi8qKlxyXG4gKiBNYWtlIGEgYm9vbGVhbiBkYXRhIGZpZWxkLlxyXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGZpZWxkXHJcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VCb29sZWFuRGF0YUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IGJvb2xlYW4sIGNsYXNzaWZpY2F0aW9uPzogRGF0YUNsYXNzaWZpY2F0aW9uKTogRGF0YUZpZWxkIHtcclxuICByZXR1cm4ge1xyXG4gICAgbmFtZSxcclxuICAgIGRhdGFUeXBlOiBEYXRhRmllbGRUeXBlLkJvb2xlYW4sXHJcbiAgICB2YWx1ZSxcclxuICAgIGNsYXNzaWZpY2F0aW9uOiBjbGFzc2lmaWNhdGlvbiA/IGNsYXNzaWZpY2F0aW9uIDogRGF0YUNsYXNzaWZpY2F0aW9uLlN5c3RlbU1ldGFkYXRhXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBkYXRhIGZpZWxkIGNvcnJlc3BvbmRpbmcgdG8gdGhlIEFyaWEgSW50NjQgZGF0YSB0eXBlLiBOb3RlIHRoYXRcclxuICogSmF2YVNjcmlwdCBkb2Vzbid0IGFjdHVhbGx5IHN1cHBvcnQgSW50NjQgcHJlY2lzaW9uIG9uIGxhcmdlIG51bWJlcnMuXHJcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRhdGEgZmllbGRcclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZUludDY0RGF0YUZpZWxkKG5hbWU6IHN0cmluZywgdmFsdWU6IG51bWJlciwgY2xhc3NpZmljYXRpb24/OiBEYXRhQ2xhc3NpZmljYXRpb24pOiBEYXRhRmllbGQge1xyXG4gIHJldHVybiB7XHJcbiAgICBuYW1lLFxyXG4gICAgZGF0YVR5cGU6IERhdGFGaWVsZFR5cGUuSW50NjQsXHJcbiAgICB2YWx1ZSxcclxuICAgIGNsYXNzaWZpY2F0aW9uOiBjbGFzc2lmaWNhdGlvbiA/IGNsYXNzaWZpY2F0aW9uIDogRGF0YUNsYXNzaWZpY2F0aW9uLlN5c3RlbU1ldGFkYXRhXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBkb3VibGUgZGF0YSBmaWVsZFxyXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGZpZWxkXHJcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VEb3VibGVEYXRhRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCBjbGFzc2lmaWNhdGlvbj86IERhdGFDbGFzc2lmaWNhdGlvbik6IERhdGFGaWVsZCB7XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWUsXHJcbiAgICBkYXRhVHlwZTogRGF0YUZpZWxkVHlwZS5Eb3VibGUsXHJcbiAgICB2YWx1ZSxcclxuICAgIGNsYXNzaWZpY2F0aW9uOiBjbGFzc2lmaWNhdGlvbiA/IGNsYXNzaWZpY2F0aW9uIDogRGF0YUNsYXNzaWZpY2F0aW9uLlN5c3RlbU1ldGFkYXRhXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBzdHJpbmcgZGF0YSBmaWVsZFxyXG4gKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGZpZWxkXHJcbiAqIEBwYXJhbSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgZGF0YSBmaWVsZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VTdHJpbmdEYXRhRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjbGFzc2lmaWNhdGlvbj86IERhdGFDbGFzc2lmaWNhdGlvbik6IERhdGFGaWVsZCB7XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWUsXHJcbiAgICBkYXRhVHlwZTogRGF0YUZpZWxkVHlwZS5TdHJpbmcsXHJcbiAgICB2YWx1ZSxcclxuICAgIGNsYXNzaWZpY2F0aW9uOiBjbGFzc2lmaWNhdGlvbiA/IGNsYXNzaWZpY2F0aW9uIDogRGF0YUNsYXNzaWZpY2F0aW9uLlN5c3RlbU1ldGFkYXRhXHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIE1ha2UgYSBHVUlEIGRhdGEgZmllbGRcclxuICogISEhV0FSTklORzogT25seSB0aGUgMURTIFNpbmsgaGFzIHN1cHBvcnQgZm9yIEd1aWQgdHlwZXMuXHJcbiAqIEBwYXJhbSBuYW1lIC0gVGhlIG5hbWUgb2YgdGhlIGRhdGEgZmllbGRcclxuICogQHBhcmFtIHZhbHVlIC0gVGhlIHZhbHVlIG9mIHRoZSBkYXRhIGZpZWxkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZUd1aWREYXRhRmllbGQobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBjbGFzc2lmaWNhdGlvbj86IERhdGFDbGFzc2lmaWNhdGlvbik6IERhdGFGaWVsZCB7XHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWUsXHJcbiAgICBkYXRhVHlwZTogRGF0YUZpZWxkVHlwZS5HdWlkLFxyXG4gICAgdmFsdWUsXHJcbiAgICBjbGFzc2lmaWNhdGlvbjogY2xhc3NpZmljYXRpb24gPyBjbGFzc2lmaWNhdGlvbiA6IERhdGFDbGFzc2lmaWNhdGlvbi5TeXN0ZW1NZXRhZGF0YVxyXG4gIH07XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/DataModels.js": /*!***********************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/DataModels.js ***! \***********************************************************/ /*! no exports provided */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L0RhdGFNb2RlbHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/DataModels.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/EventFlagFiller.js": /*!****************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/EventFlagFiller.js ***! \****************************************************************/ /*! exports provided: getEffectiveEventFlags */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getEffectiveEventFlags\", function() { return getEffectiveEventFlags; });\n/* harmony import */ var _OTelNotifications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OTelNotifications */ \"./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\");\n\r\n/**\r\n * Gets EventFlags from a STE.TelemetryEvent, filling them with default values if they don't exist\r\n * Note that the passed telemetry event is not changed\r\n * @param telemetryEvent - The telemetry event\r\n */\r\nfunction getEffectiveEventFlags(telemetryEvent) {\r\n var eventFlags = {\r\n costPriority: 1 /* CostPriority.Normal */,\r\n samplingPolicy: 1 /* SamplingPolicy.Measure */,\r\n persistencePriority: 1 /* PersistencePriority.Normal */,\r\n dataCategories: 0 /* DataCategories.NotSet */,\r\n diagnosticLevel: 100 /* DiagnosticLevel.Optional */\r\n };\r\n if (!telemetryEvent.eventFlags || !telemetryEvent.eventFlags.dataCategories) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_0__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () { return 'DataCategories'; });\r\n }\r\n if (!telemetryEvent.eventFlags) {\r\n return eventFlags;\r\n }\r\n if (telemetryEvent.eventFlags.costPriority) {\r\n eventFlags.costPriority = telemetryEvent.eventFlags.costPriority;\r\n }\r\n if (telemetryEvent.eventFlags.samplingPolicy) {\r\n eventFlags.samplingPolicy = telemetryEvent.eventFlags.samplingPolicy;\r\n }\r\n if (telemetryEvent.eventFlags.persistencePriority) {\r\n eventFlags.persistencePriority = telemetryEvent.eventFlags.persistencePriority;\r\n }\r\n if (telemetryEvent.eventFlags.dataCategories) {\r\n eventFlags.dataCategories = telemetryEvent.eventFlags.dataCategories;\r\n }\r\n if (telemetryEvent.eventFlags.diagnosticLevel) {\r\n eventFlags.diagnosticLevel = telemetryEvent.eventFlags.diagnosticLevel;\r\n }\r\n return eventFlags;\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0V2ZW50RmxhZ0ZpbGxlci50cz8zZmZhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBO0FBQUE7QUFBQTtBQUFzRDtBQUV0RDs7OztHQUlHO0FBQ0ksU0FBUyxzQkFBc0IsQ0FBQyxjQUE4QjtJQUNuRSxJQUFJLFVBQVUsR0FBcUI7UUFDakMsWUFBWSw2QkFBcUI7UUFDakMsY0FBYyxnQ0FBd0I7UUFDdEMsbUJBQW1CLG9DQUE0QjtRQUMvQyxjQUFjLCtCQUF1QjtRQUNyQyxlQUFlLG9DQUEwQjtLQUMxQyxDQUFDO0lBRUYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRTtRQUMzRSwwRUFBZSxnREFBZ0MsY0FBTSx1QkFBZ0IsRUFBaEIsQ0FBZ0IsQ0FBQyxDQUFDO0tBQ3hFO0lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUU7UUFDOUIsT0FBTyxVQUFVLENBQUM7S0FDbkI7SUFFRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1FBQzFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUM7S0FDbEU7SUFFRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1FBQzVDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7S0FDdEU7SUFFRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUU7UUFDakQsVUFBVSxDQUFDLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUM7S0FDaEY7SUFFRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFO1FBQzVDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUM7S0FDdEU7SUFFRCxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFO1FBQzdDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7S0FDeEU7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvRXZlbnRGbGFnRmlsbGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmlsbGVkRXZlbnRGbGFncyB9IGZyb20gJy4vRmlsbGVkRXZlbnRGbGFncyc7XHJcbmltcG9ydCB7XHJcbiAgQ29zdFByaW9yaXR5LFxyXG4gIFNhbXBsaW5nUG9saWN5LFxyXG4gIFBlcnNpc3RlbmNlUHJpb3JpdHksXHJcbiAgRGF0YUNhdGVnb3JpZXMsXHJcbiAgRGlhZ25vc3RpY0xldmVsLFxyXG4gIFRlbGVtZXRyeUV2ZW50LFxyXG4gIExvZ0xldmVsLFxyXG4gIENhdGVnb3J5XHJcbn0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgbG9nTm90aWZpY2F0aW9uIH0gZnJvbSAnLi9PVGVsTm90aWZpY2F0aW9ucyc7XHJcblxyXG4vKipcclxuICogR2V0cyBFdmVudEZsYWdzIGZyb20gYSBTVEUuVGVsZW1ldHJ5RXZlbnQsIGZpbGxpbmcgdGhlbSB3aXRoIGRlZmF1bHQgdmFsdWVzIGlmIHRoZXkgZG9uJ3QgZXhpc3RcclxuICogTm90ZSB0aGF0IHRoZSBwYXNzZWQgdGVsZW1ldHJ5IGV2ZW50IGlzIG5vdCBjaGFuZ2VkXHJcbiAqIEBwYXJhbSB0ZWxlbWV0cnlFdmVudCAtIFRoZSB0ZWxlbWV0cnkgZXZlbnRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRFZmZlY3RpdmVFdmVudEZsYWdzKHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCk6IEZpbGxlZEV2ZW50RmxhZ3Mge1xyXG4gIGxldCBldmVudEZsYWdzOiBGaWxsZWRFdmVudEZsYWdzID0ge1xyXG4gICAgY29zdFByaW9yaXR5OiBDb3N0UHJpb3JpdHkuTm9ybWFsLFxyXG4gICAgc2FtcGxpbmdQb2xpY3k6IFNhbXBsaW5nUG9saWN5Lk1lYXN1cmUsXHJcbiAgICBwZXJzaXN0ZW5jZVByaW9yaXR5OiBQZXJzaXN0ZW5jZVByaW9yaXR5Lk5vcm1hbCxcclxuICAgIGRhdGFDYXRlZ29yaWVzOiBEYXRhQ2F0ZWdvcmllcy5Ob3RTZXQsXHJcbiAgICBkaWFnbm9zdGljTGV2ZWw6IERpYWdub3N0aWNMZXZlbC5PcHRpb25hbFxyXG4gIH07XHJcblxyXG4gIGlmICghdGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncyB8fCAhdGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5kYXRhQ2F0ZWdvcmllcykge1xyXG4gICAgbG9nTm90aWZpY2F0aW9uKExvZ0xldmVsLkVycm9yLCBDYXRlZ29yeS5Db3JlLCAoKSA9PiAnRGF0YUNhdGVnb3JpZXMnKTtcclxuICB9XHJcblxyXG4gIGlmICghdGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncykge1xyXG4gICAgcmV0dXJuIGV2ZW50RmxhZ3M7XHJcbiAgfVxyXG5cclxuICBpZiAodGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5jb3N0UHJpb3JpdHkpIHtcclxuICAgIGV2ZW50RmxhZ3MuY29zdFByaW9yaXR5ID0gdGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5jb3N0UHJpb3JpdHk7XHJcbiAgfVxyXG5cclxuICBpZiAodGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5zYW1wbGluZ1BvbGljeSkge1xyXG4gICAgZXZlbnRGbGFncy5zYW1wbGluZ1BvbGljeSA9IHRlbGVtZXRyeUV2ZW50LmV2ZW50RmxhZ3Muc2FtcGxpbmdQb2xpY3k7XHJcbiAgfVxyXG5cclxuICBpZiAodGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5wZXJzaXN0ZW5jZVByaW9yaXR5KSB7XHJcbiAgICBldmVudEZsYWdzLnBlcnNpc3RlbmNlUHJpb3JpdHkgPSB0ZWxlbWV0cnlFdmVudC5ldmVudEZsYWdzLnBlcnNpc3RlbmNlUHJpb3JpdHk7XHJcbiAgfVxyXG5cclxuICBpZiAodGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5kYXRhQ2F0ZWdvcmllcykge1xyXG4gICAgZXZlbnRGbGFncy5kYXRhQ2F0ZWdvcmllcyA9IHRlbGVtZXRyeUV2ZW50LmV2ZW50RmxhZ3MuZGF0YUNhdGVnb3JpZXM7XHJcbiAgfVxyXG5cclxuICBpZiAodGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5kaWFnbm9zdGljTGV2ZWwpIHtcclxuICAgIGV2ZW50RmxhZ3MuZGlhZ25vc3RpY0xldmVsID0gdGVsZW1ldHJ5RXZlbnQuZXZlbnRGbGFncy5kaWFnbm9zdGljTGV2ZWw7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZXZlbnRGbGFncztcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/EventFlagFiller.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/InternalContracts.js": /*!******************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/InternalContracts.js ***! \******************************************************************/ /*! exports provided: Error */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Error\", function() { return Error; });\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n\r\nvar Error = {\r\n /**\r\n * Gets data fields for the Error Contract\r\n * @param contract - The object containing data fields pertaining to the Error Contract\r\n */\r\n getFields: function (contract) {\r\n var instanceName = 'Error';\r\n var dataFields = [];\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".ErrorGroup\"), contract.errorGroup));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Tag\"), contract.tag));\r\n if (contract.code !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Code\"), contract.code));\r\n }\r\n if (contract.id !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Id\"), contract.id));\r\n }\r\n if (contract.count !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Count\"), contract.count));\r\n }\r\n return dataFields;\r\n }\r\n}; // Error\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL0ludGVybmFsQ29udHJhY3RzLnRzPzU4MjciXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0E7QUFBQTtBQUFBO0FBQTRFO0FBYXJFLElBQU0sS0FBSyxHQUFHO0lBQ25COzs7T0FHRztJQUNILFNBQVMsRUFBVCxVQUFVLFFBQXdCO1FBQ2hDLElBQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM3QixJQUFJLFVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBQ2pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNEVBQW1CLENBQUMsVUFBRyxZQUFZLGdCQUFhLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsVUFBVSxDQUFDLElBQUksQ0FBQywyRUFBa0IsQ0FBQyxVQUFHLFlBQVksU0FBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDL0IsVUFBVSxDQUFDLElBQUksQ0FBQywyRUFBa0IsQ0FBQyxVQUFHLFlBQVksVUFBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzVFO1FBQ0QsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLFNBQVMsRUFBRTtZQUM3QixVQUFVLENBQUMsSUFBSSxDQUFDLDJFQUFrQixDQUFDLFVBQUcsWUFBWSxRQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkVBQWtCLENBQUMsVUFBRyxZQUFZLFdBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUM5RTtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRixDQUFDLENBQUMsUUFBUSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L0ludGVybmFsQ29udHJhY3RzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUZpZWxkIH0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgbWFrZUludDY0RGF0YUZpZWxkLCBtYWtlU3RyaW5nRGF0YUZpZWxkIH0gZnJvbSAnLi9EYXRhRmllbGRIZWxwZXInO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcclxuZXhwb3J0IG5hbWVzcGFjZSBFcnJvciB7XHJcbiAgZXhwb3J0IGludGVyZmFjZSBDb250cmFjdCB7XHJcbiAgICBlcnJvckdyb3VwOiBzdHJpbmc7XHJcbiAgICB0YWc6IG51bWJlcjtcclxuICAgIGNvZGU/OiBudW1iZXI7XHJcbiAgICBpZD86IG51bWJlcjtcclxuICAgIGNvdW50PzogbnVtYmVyO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IEVycm9yID0ge1xyXG4gIC8qKlxyXG4gICAqIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBFcnJvciBDb250cmFjdFxyXG4gICAqIEBwYXJhbSBjb250cmFjdCAtIFRoZSBvYmplY3QgY29udGFpbmluZyBkYXRhIGZpZWxkcyBwZXJ0YWluaW5nIHRvIHRoZSBFcnJvciBDb250cmFjdFxyXG4gICAqL1xyXG4gIGdldEZpZWxkcyhjb250cmFjdDogRXJyb3IuQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBjb25zdCBpbnN0YW5jZU5hbWUgPSAnRXJyb3InO1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LkVycm9yR3JvdXBgLCBjb250cmFjdC5lcnJvckdyb3VwKSk7XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZUludDY0RGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uVGFnYCwgY29udHJhY3QudGFnKSk7XHJcbiAgICBpZiAoY29udHJhY3QuY29kZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Db2RlYCwgY29udHJhY3QuY29kZSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LmlkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LklkYCwgY29udHJhY3QuaWQpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC5jb3VudCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Db3VudGAsIGNvbnRyYWN0LmNvdW50KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn07IC8vIEVycm9yXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/InternalContracts.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/OTelNotifications.js": /*!******************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/OTelNotifications.js ***! \******************************************************************/ /*! exports provided: onNotification, logNotification, logError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"onNotification\", function() { return onNotification; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logNotification\", function() { return logNotification; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"logError\", function() { return logError; });\nfunction getNotificationHandler() {\r\n var _listeners = [];\r\n return {\r\n /**\r\n * Fires an event to its listeners\r\n * @param args - The parameters of the event\r\n */\r\n fireEvent: function (args) {\r\n _listeners.forEach(function (listener) { return listener(args); });\r\n },\r\n /**\r\n * Add an event listener\r\n * @param listener - The listener that can process events\r\n */\r\n addListener: function (listener) {\r\n if (listener) {\r\n _listeners.push(listener);\r\n }\r\n }\r\n };\r\n}\r\nvar notificationHandler = getNotificationHandler();\r\n/**\r\n * Returns a list of notification event listeners. You can add an event listener:\r\n * onNotification().addListener(event =\\> \\{\r\n * console.log(event!.message + ' ' + event!.level); \\});\r\n *\r\n * DO NOT trigger telemetry events on these notifications, as doing so may\r\n * create an infinite loop of telemetry events.\r\n */\r\nfunction onNotification() {\r\n return notificationHandler;\r\n}\r\n/**\r\n * Internal function: log a notification\r\n * @param level - The level of notification to log\r\n * @param category - The category of the notification\r\n * @param message - A function that returns a message to log\r\n */\r\nfunction logNotification(level, category, message) {\r\n notificationHandler.fireEvent({ level: level, category: category, message: message });\r\n}\r\n/**\r\n * Internal function: log an error\r\n * @param category - The category of the notification\r\n * @param message - A message that will precede the message from error object\r\n * @param error - An error object, from which an error message might be obtained\r\n */\r\nfunction logError(category, message, error) {\r\n logNotification(0 /* LogLevel.Error */, category, function () {\r\n var errorMessage = error instanceof Error ? error.message : '';\r\n return \"\".concat(message, \": \").concat(errorMessage);\r\n });\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL09UZWxOb3RpZmljYXRpb25zLnRzP2Q0ZDUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxTQUFTLHNCQUFzQjtJQUM3QixJQUFNLFVBQVUsR0FBeUMsRUFBRSxDQUFDO0lBQzVELE9BQU87UUFDTDs7O1dBR0c7UUFDSCxTQUFTLEVBQVQsVUFBVSxJQUFtQjtZQUMzQixVQUFVLENBQUMsT0FBTyxDQUFDLGtCQUFRLElBQUksZUFBUSxDQUFDLElBQUksQ0FBQyxFQUFkLENBQWMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRDs7O1dBR0c7UUFDSCxXQUFXLEVBQVgsVUFBWSxRQUF1QztZQUNqRCxJQUFJLFFBQVEsRUFBRTtnQkFDWixVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzNCO1FBQ0gsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsSUFBSSxtQkFBbUIsR0FBRyxzQkFBc0IsRUFBRSxDQUFDO0FBYW5EOzs7Ozs7O0dBT0c7QUFDSSxTQUFTLGNBQWM7SUFDNUIsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxTQUFTLGVBQWUsQ0FBQyxLQUFlLEVBQUUsUUFBa0IsRUFBRSxPQUFxQjtJQUN4RixtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRSxLQUFLLFNBQUUsUUFBUSxZQUFFLE9BQU8sV0FBRSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0ksU0FBUyxRQUFRLENBQUMsUUFBa0IsRUFBRSxPQUFlLEVBQUUsS0FBVTtJQUN0RSxlQUFlLHlCQUFpQixRQUFRLEVBQUU7UUFDeEMsSUFBSSxZQUFZLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9ELE9BQU8sVUFBRyxPQUFPLGVBQUssWUFBWSxDQUFFLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvT1RlbE5vdGlmaWNhdGlvbnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dMZXZlbCwgQ2F0ZWdvcnkgfSBmcm9tICcuL0RhdGFNb2RlbHMnO1xyXG5cclxuZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uSGFuZGxlcigpIHtcclxuICBjb25zdCBfbGlzdGVuZXJzOiBBcnJheTwoYXJnczogSU5vdGlmaWNhdGlvbikgPT4gdm9pZD4gPSBbXTtcclxuICByZXR1cm4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBGaXJlcyBhbiBldmVudCB0byBpdHMgbGlzdGVuZXJzXHJcbiAgICAgKiBAcGFyYW0gYXJncyAtIFRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBldmVudFxyXG4gICAgICovXHJcbiAgICBmaXJlRXZlbnQoYXJnczogSU5vdGlmaWNhdGlvbik6IHZvaWQge1xyXG4gICAgICBfbGlzdGVuZXJzLmZvckVhY2gobGlzdGVuZXIgPT4gbGlzdGVuZXIoYXJncykpO1xyXG4gICAgfSxcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFkZCBhbiBldmVudCBsaXN0ZW5lclxyXG4gICAgICogQHBhcmFtIGxpc3RlbmVyIC0gVGhlIGxpc3RlbmVyIHRoYXQgY2FuIHByb2Nlc3MgZXZlbnRzXHJcbiAgICAgKi9cclxuICAgIGFkZExpc3RlbmVyKGxpc3RlbmVyOiAoYXJnczogSU5vdGlmaWNhdGlvbikgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICBpZiAobGlzdGVuZXIpIHtcclxuICAgICAgICBfbGlzdGVuZXJzLnB1c2gobGlzdGVuZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxufVxyXG5cclxubGV0IG5vdGlmaWNhdGlvbkhhbmRsZXIgPSBnZXROb3RpZmljYXRpb25IYW5kbGVyKCk7XHJcblxyXG4vLyBUaGlzIGludGVyZmFjZSBoaWRlcyBmaXJlRXZlbnQgZnJvbSBjYWxsZXJzIGluIFR5cGVTY3JpcHRcclxuZXhwb3J0IGludGVyZmFjZSBJTm90aWZpY2F0aW9uSGFuZGxlciB7XHJcbiAgYWRkTGlzdGVuZXIobGlzdGVuZXI6IChhcmdzOiBJTm90aWZpY2F0aW9uKSA9PiB2b2lkKTogdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTm90aWZpY2F0aW9uIHtcclxuICBsZXZlbDogTG9nTGV2ZWw7XHJcbiAgY2F0ZWdvcnk6IENhdGVnb3J5O1xyXG4gIG1lc3NhZ2U6ICgpID0+IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJldHVybnMgYSBsaXN0IG9mIG5vdGlmaWNhdGlvbiBldmVudCBsaXN0ZW5lcnMuIFlvdSBjYW4gYWRkIGFuIGV2ZW50IGxpc3RlbmVyOlxyXG4gKiAgICBvbk5vdGlmaWNhdGlvbigpLmFkZExpc3RlbmVyKGV2ZW50ID1cXD4gXFx7XHJcbiAqICAgICAgY29uc29sZS5sb2coZXZlbnQhLm1lc3NhZ2UgKyAnICcgKyBldmVudCEubGV2ZWwpOyBcXH0pO1xyXG4gKlxyXG4gKiBETyBOT1QgdHJpZ2dlciB0ZWxlbWV0cnkgZXZlbnRzIG9uIHRoZXNlIG5vdGlmaWNhdGlvbnMsIGFzIGRvaW5nIHNvIG1heVxyXG4gKiBjcmVhdGUgYW4gaW5maW5pdGUgbG9vcCBvZiB0ZWxlbWV0cnkgZXZlbnRzLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9uTm90aWZpY2F0aW9uKCk6IElOb3RpZmljYXRpb25IYW5kbGVyIHtcclxuICByZXR1cm4gbm90aWZpY2F0aW9uSGFuZGxlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGZ1bmN0aW9uOiBsb2cgYSBub3RpZmljYXRpb25cclxuICogQHBhcmFtIGxldmVsIC0gVGhlIGxldmVsIG9mIG5vdGlmaWNhdGlvbiB0byBsb2dcclxuICogQHBhcmFtIGNhdGVnb3J5IC0gVGhlIGNhdGVnb3J5IG9mIHRoZSBub3RpZmljYXRpb25cclxuICogQHBhcmFtIG1lc3NhZ2UgLSBBIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG1lc3NhZ2UgdG8gbG9nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbG9nTm90aWZpY2F0aW9uKGxldmVsOiBMb2dMZXZlbCwgY2F0ZWdvcnk6IENhdGVnb3J5LCBtZXNzYWdlOiAoKSA9PiBzdHJpbmcpIHtcclxuICBub3RpZmljYXRpb25IYW5kbGVyLmZpcmVFdmVudCh7IGxldmVsLCBjYXRlZ29yeSwgbWVzc2FnZSB9KTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVybmFsIGZ1bmN0aW9uOiBsb2cgYW4gZXJyb3JcclxuICogQHBhcmFtIGNhdGVnb3J5IC0gVGhlIGNhdGVnb3J5IG9mIHRoZSBub3RpZmljYXRpb25cclxuICogQHBhcmFtIG1lc3NhZ2UgLSBBIG1lc3NhZ2UgdGhhdCB3aWxsIHByZWNlZGUgdGhlIG1lc3NhZ2UgZnJvbSBlcnJvciBvYmplY3RcclxuICogQHBhcmFtIGVycm9yIC0gQW4gZXJyb3Igb2JqZWN0LCBmcm9tIHdoaWNoIGFuIGVycm9yIG1lc3NhZ2UgbWlnaHQgYmUgb2J0YWluZWRcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBsb2dFcnJvcihjYXRlZ29yeTogQ2F0ZWdvcnksIG1lc3NhZ2U6IHN0cmluZywgZXJyb3I6IGFueSkge1xyXG4gIGxvZ05vdGlmaWNhdGlvbihMb2dMZXZlbC5FcnJvciwgY2F0ZWdvcnksICgpID0+IHtcclxuICAgIGxldCBlcnJvck1lc3NhZ2UgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICcnO1xyXG4gICAgcmV0dXJuIGAke21lc3NhZ2V9OiAke2Vycm9yTWVzc2FnZX1gO1xyXG4gIH0pO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js": /*!**********************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js ***! \**********************************************************************/ /*! exports provided: SuppressNexus, cloneEvent, SimpleTelemetryLogger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SuppressNexus\", function() { return SuppressNexus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cloneEvent\", function() { return cloneEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SimpleTelemetryLogger\", function() { return SimpleTelemetryLogger; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _TenantTokenManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TenantTokenManager */ \"./node_modules/@microsoft/oteljs/dist/TenantTokenManager.js\");\n/* harmony import */ var _TelemetryEventValidator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TelemetryEventValidator */ \"./node_modules/@microsoft/oteljs/dist/TelemetryEventValidator.js\");\n/* harmony import */ var _OTelNotifications__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./OTelNotifications */ \"./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\");\n/* harmony import */ var _Version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Version */ \"./node_modules/@microsoft/oteljs/dist/Version.js\");\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n\r\n\r\n\r\n\r\n\r\n\r\nvar CUSTOMER_CONTENT_VERSION = 1;\r\nvar MAX_EVENT_QUEUE_LENGTH = 1000;\r\n/**\r\n * Use this as the Nexus tenant token when Nexus logging is not needed or relevant\r\n */\r\nvar SuppressNexus = -1;\r\n/**\r\n * Clone a telemetry event; generally so we don't modify the input telemetry event\r\n * Also initializes telemetryProperties and dataFields if they aren't already set\r\n * @param telemetryEvent - The event to clone\r\n */\r\nfunction cloneEvent(telemetryEvent) {\r\n var localEvent = {\r\n eventName: telemetryEvent.eventName,\r\n eventFlags: telemetryEvent.eventFlags || {},\r\n telemetryProperties: !!telemetryEvent.telemetryProperties ? Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, telemetryEvent.telemetryProperties) : {},\r\n dataFields: !!telemetryEvent.dataFields ? telemetryEvent.dataFields.slice() : [],\r\n timestamp: telemetryEvent.timestamp || new Date().getTime()\r\n };\r\n if (!!telemetryEvent.eventContract) {\r\n localEvent.eventContract = { name: telemetryEvent.eventContract.name, dataFields: telemetryEvent.eventContract.dataFields.slice() };\r\n }\r\n return localEvent;\r\n}\r\n/**\r\n * SimpleTelemetryLogger is the base implementation of a telemetry logger.\r\n * It exposes sendTelemetryEvent, which is used to log a telemetry event.\r\n *\r\n * Add a sink by calling addSink() or modifying the telemetrySinks list.\r\n * If no sinks are attached, it keeps a queue of events, but starts silently\r\n */\r\nvar SimpleTelemetryLogger = /** @class */ (function () {\r\n /**\r\n * Creates a telemetry logger\r\n * @param parent - A parent telemetry logger that this telemetry logger should inherit from\r\n * This telemetry logger will send telemetry to the same sinks\r\n * and will send the same persistent data fields as the parent logger\r\n * @param persistentDataFields - Data fields to send with every event\r\n */\r\n function SimpleTelemetryLogger(parent, persistentDataFields, config) {\r\n var _a, _b, _c;\r\n /**\r\n * A list of sinks that telemetry events will be forwarded to\r\n */\r\n this.telemetrySinks = [];\r\n /**\r\n * @internal Internal variable; do not use publicly.\r\n * 'Data.' will be prepended to each field.\r\n */\r\n this.persistentDataFields = [];\r\n /**\r\n * A list of Part A data fields that should be added to every event. In the 1DS Sink,\r\n * part A data fields will be sent without 'Data.'. On native clients, these fields\r\n * will still get added as 'Data.Foo'.\r\n */\r\n this.partAFields = [];\r\n this.eventQueue = [];\r\n this.config = config || {};\r\n if (parent) {\r\n this.telemetrySinks = parent.telemetrySinks;\r\n (_a = this.persistentDataFields).push.apply(_a, parent.persistentDataFields);\r\n this.config = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, parent.getConfig()), this.config);\r\n (_b = this.partAFields).push.apply(_b, parent.partAFields);\r\n }\r\n if (persistentDataFields) {\r\n (_c = this.persistentDataFields).push.apply(_c, persistentDataFields);\r\n }\r\n }\r\n SimpleTelemetryLogger.prototype.addEventContentType = function (dataFields, eventContentType) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_5__[\"makeInt64DataField\"])('EventContent.Type', eventContentType));\r\n };\r\n /**\r\n * SendTelemetryEvent is the basic way to send a telemetry event.\r\n * This should be used for sending telemetry about discrete events that happened\r\n * For telemetry that includes duration and/or success/failure, the Activity API may be more appropriate.\r\n * @param telemetryEvent - The telemetry event to send\r\n */\r\n SimpleTelemetryLogger.prototype.sendTelemetryEvent = function (telemetryEvent) {\r\n var clonedEvent = cloneEvent(telemetryEvent);\r\n var telemetryProperties = clonedEvent.telemetryProperties;\r\n // Nexus is no longer supported by OTelJS\r\n telemetryProperties.nexusTenantToken = SuppressNexus;\r\n // If either one is missing, we try to fill both\r\n if (!telemetryProperties.ariaTenantToken) {\r\n var success = Object(_TenantTokenManager__WEBPACK_IMPORTED_MODULE_1__[\"fillTenantTokens\"])(clonedEvent.eventName, telemetryProperties);\r\n if (!success && !telemetryProperties.ariaTenantToken) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_3__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () { return 'No tenant token: ' + telemetryEvent.eventName; });\r\n return;\r\n }\r\n }\r\n this.sendTelemetryEventInternal(clonedEvent, 1 /* EventType.SendTelemetryEvent */);\r\n };\r\n /**\r\n * Sends customer content to an appropriate compliant endpoint\r\n * @param event - The event to send\r\n * @param customerContentType - The type of customer content\r\n */\r\n SimpleTelemetryLogger.prototype.sendCustomerContent = function (customerContentEvent) {\r\n var clonedEvent = cloneEvent(customerContentEvent);\r\n var telemetryProperties = clonedEvent.telemetryProperties;\r\n var customerContentVersion = telemetryProperties.customerContentVersion;\r\n if (!customerContentVersion || customerContentVersion > CUSTOMER_CONTENT_VERSION) {\r\n telemetryProperties.customerContentVersion = CUSTOMER_CONTENT_VERSION;\r\n }\r\n // Suppress any tenant tokens that were passed in; the event must go to the customer content tenant.\r\n telemetryProperties.ariaTenantToken = undefined;\r\n telemetryProperties.nexusTenantToken = undefined;\r\n telemetryProperties.dnmToken = undefined;\r\n this.addEventContentType(clonedEvent.dataFields, 2 /* ContentType.CustomerContent */);\r\n return this.sendTelemetryEventInternal(clonedEvent, 2 /* EventType.CustomerContent */);\r\n };\r\n /**\r\n * Send a direct numerical measurement to the a DNM tenant\r\n * @param directNumericEvent - the event to send\r\n */\r\n SimpleTelemetryLogger.prototype.sendDirectNumericEvent = function (directNumericEvent) {\r\n var clonedEvent = cloneEvent(directNumericEvent);\r\n var telemetryProperties = clonedEvent.telemetryProperties;\r\n if (!telemetryProperties.dnmToken) {\r\n var success = Object(_TenantTokenManager__WEBPACK_IMPORTED_MODULE_1__[\"fillTenantTokens\"])(clonedEvent.eventName, telemetryProperties);\r\n if (!success && !telemetryProperties.dnmToken) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_3__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () { return 'No dnm token: ' + clonedEvent.eventName; });\r\n return;\r\n }\r\n }\r\n this.addEventContentType(clonedEvent.dataFields, 1 /* ContentType.AnonymousData */);\r\n this.sendTelemetryEventInternal(clonedEvent, 3 /* EventType.DirectNumericEvent */);\r\n };\r\n /**\r\n * Internal method to send a telemetry event\r\n * @param event - The telemetry event to send.\r\n * Note that it may be a CustomerContentEvent by virtue of having a customerContentVersion and customerContentType.\r\n */\r\n SimpleTelemetryLogger.prototype.sendTelemetryEventInternal = function (telemetryEvent, eventType) {\r\n if (eventType !== 2 /* EventType.CustomerContent */ &&\r\n (telemetryEvent.telemetryProperties.customerContentVersion || telemetryEvent.telemetryProperties.customerContentType)) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_3__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () { return 'Customer content'; });\r\n return;\r\n }\r\n try {\r\n if (this.telemetrySinks.length === 0) {\r\n if (this.config.enableQueue && this.eventQueue.length < MAX_EVENT_QUEUE_LENGTH) {\r\n this.eventQueue.push([telemetryEvent, eventType]);\r\n }\r\n else {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_3__[\"logNotification\"])(1 /* LogLevel.Warning */, 0 /* Category.Core */, function () { return 'No telemetry sinks are attached.'; });\r\n }\r\n return;\r\n }\r\n this.processTelemetryEvent(telemetryEvent, eventType);\r\n }\r\n catch (error) {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_3__[\"logError\"])(0 /* Category.Core */, 'SendTelemetryEvent', error);\r\n return;\r\n }\r\n try {\r\n this.telemetrySinks.forEach(function (telemetrySink) {\r\n if (eventType === 2 /* EventType.CustomerContent */) {\r\n // Skip this sink if it doesn't support customer content\r\n if (telemetrySink.sendCustomerContent) {\r\n telemetrySink.sendCustomerContent(telemetryEvent);\r\n }\r\n }\r\n else if (eventType === 3 /* EventType.DirectNumericEvent */) {\r\n if (telemetrySink.sendNonStandardEvent) {\r\n telemetrySink.sendNonStandardEvent(telemetryEvent, eventType);\r\n }\r\n }\r\n else {\r\n telemetrySink.sendTelemetryEvent(telemetryEvent);\r\n }\r\n });\r\n }\r\n catch (_e) {\r\n // Sinks should handle their own errors;\r\n }\r\n };\r\n /**\r\n * Processes a telemetry event, but does not send it\r\n * Adds persistent data fields\r\n * Validates the event\r\n * Throws if the event is invalid\r\n * @param telemetryEvent - The telemetry event to process\r\n */\r\n SimpleTelemetryLogger.prototype.processTelemetryEvent = function (telemetryEvent, eventType) {\r\n var _a, _b;\r\n var _c;\r\n // The last-added data field wins, if the same-named data field is added more than once.\r\n // Persistent data fields should have lower priority than per-event data fields\r\n if (telemetryEvent.dataFields) {\r\n (_c = telemetryEvent.dataFields) === null || _c === void 0 ? void 0 : _c.unshift(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_5__[\"makeStringDataField\"])('OTelJS.Version', _Version__WEBPACK_IMPORTED_MODULE_4__[\"oteljsVersion\"]));\r\n // Do not add logger persistent data fields to DNM events\r\n // All Part C fields should be explicitly added\r\n if (eventType !== 3 /* EventType.DirectNumericEvent */ && this.persistentDataFields) {\r\n (_a = telemetryEvent.dataFields).unshift.apply(_a, this.persistentDataFields);\r\n }\r\n }\r\n if (this.partAFields.length > 0) {\r\n var eventContract = telemetryEvent.eventContract || {\r\n name: '',\r\n dataFields: []\r\n };\r\n (_b = eventContract.dataFields).push.apply(_b, this.partAFields);\r\n telemetryEvent.eventContract = eventContract;\r\n }\r\n if (!this.config.disableValidation) {\r\n Object(_TelemetryEventValidator__WEBPACK_IMPORTED_MODULE_2__[\"validateTelemetryEvent\"])(telemetryEvent);\r\n }\r\n };\r\n /**\r\n * Adds a telemetry sink, to which events will be sent\r\n * @param sink - The telemetry sink to add\r\n */\r\n SimpleTelemetryLogger.prototype.addSink = function (sink) {\r\n this.telemetrySinks.push(sink);\r\n this.flushQueue();\r\n };\r\n /**\r\n * Flush the queue of telemetry events that were accumulated before a sink was attached.\r\n * The queue is emptied whether or not a sink is attached.\r\n *\r\n * Note that all events are sent at once. If an event throttler is enabled on a telemetry sink,\r\n * it may be triggered; you may choose to only connect the event throttler after flushing the queue.\r\n */\r\n SimpleTelemetryLogger.prototype.flushQueue = function () {\r\n var eventQueue = this.eventQueue;\r\n this.eventQueue = [];\r\n if (this.telemetrySinks.length > 0) {\r\n for (var _i = 0, eventQueue_1 = eventQueue; _i < eventQueue_1.length; _i++) {\r\n var _a = eventQueue_1[_i], telemetryEvent = _a[0], eventType = _a[1];\r\n this.sendTelemetryEventInternal(telemetryEvent, eventType);\r\n }\r\n }\r\n };\r\n /**\r\n * Sets a tenant token for a single namespace. Events within the namespace will be sent to the corresponding tenant.\r\n * @param namespace - The namespace to which the tokens apply, such as Office.System.\r\n * @param ariaTenantToken - The Aria tenant token\r\n * @param nexusTenantToken - The Nexus tenant token\r\n */\r\n SimpleTelemetryLogger.prototype.setTenantToken = function (namespace, ariaTenantToken, nexusTenantToken) {\r\n Object(_TenantTokenManager__WEBPACK_IMPORTED_MODULE_1__[\"setTenantTokens\"])(namespace, { ariaTenantToken: ariaTenantToken, nexusTenantToken: nexusTenantToken });\r\n };\r\n /**\r\n * Sets a tenant token for a single namespace for DNM. Events within the namespace will be sent to the corresponding tenant.\r\n * @param namespace - The namespace to which the tokens apply, such as Office.System.\r\n * @param dnmToken - The Aria tenant token for direct numerical measurement events\r\n */\r\n SimpleTelemetryLogger.prototype.setDNMToken = function (namespace, dnmToken) {\r\n Object(_TenantTokenManager__WEBPACK_IMPORTED_MODULE_1__[\"setTenantTokens\"])(namespace, { dnmToken: dnmToken });\r\n };\r\n /**\r\n * Clone a telemetry event; generally so we don't modify the input telemetry event\r\n * Also sets dataFields to [] if it isn't already set\r\n * @param telemetryEvent - The event to clone\r\n */\r\n SimpleTelemetryLogger.prototype.cloneEvent = function (telemetryEvent) {\r\n return cloneEvent(telemetryEvent);\r\n };\r\n /**\r\n * Gets the currently applied configuration\r\n */\r\n SimpleTelemetryLogger.prototype.getConfig = function () {\r\n return this.config;\r\n };\r\n return SimpleTelemetryLogger;\r\n}());\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1NpbXBsZVRlbGVtZXRyeUxvZ2dlci50cz9kNjQ5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQXlFO0FBYU47QUFDSDtBQUN0QjtBQUNrQztBQUU1RSxJQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBQztBQUNuQyxJQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQztBQXFCcEM7O0dBRUc7QUFDSSxJQUFNLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUVoQzs7OztHQUlHO0FBQ0ksU0FBUyxVQUFVLENBQUMsY0FBOEI7SUFDdkQsSUFBSSxVQUFVLEdBQXlCO1FBQ3JDLFNBQVMsRUFBRSxjQUFjLENBQUMsU0FBUztRQUNuQyxVQUFVLEVBQUUsY0FBYyxDQUFDLFVBQVUsSUFBSSxFQUFFO1FBQzNDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLDJEQUFLLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRyxDQUFDLENBQUMsRUFBRTtRQUMxRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDaEYsU0FBUyxFQUFFLGNBQWMsQ0FBQyxTQUFTLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUU7S0FDNUQsQ0FBQztJQUVGLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUU7UUFDbEMsVUFBVSxDQUFDLGFBQWEsR0FBRyxFQUFFLElBQUksRUFBRSxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztLQUNySTtJQUNELE9BQU8sVUFBVSxDQUFDO0FB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SSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUM1RDtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksOENBQWMsR0FBckIsVUFBc0IsU0FBaUIsRUFBRSxlQUF3QixFQUFFLGdCQUF5QjtRQUMxRiwyRUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLGVBQWUsbUJBQUUsZ0JBQWdCLG9CQUFFLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLDJDQUFXLEdBQWxCLFVBQW1CLFNBQWlCLEVBQUUsUUFBZ0I7UUFDcEQsMkVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLFlBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksMENBQVUsR0FBakIsVUFBa0IsY0FBOEI7UUFDOUMsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0kseUNBQVMsR0FBaEI7UUFDRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNILDRCQUFDO0FBQUQsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L1NpbXBsZVRlbGVtZXRyeUxvZ2dlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGxUZW5hbnRUb2tlbnMsIHNldFRlbmFudFRva2VucyB9IGZyb20gJy4vVGVuYW50VG9rZW5NYW5hZ2VyJztcclxuaW1wb3J0IHtcclxuICBEYXRhRmllbGQsXHJcbiAgVGVsZW1ldHJ5RXZlbnQsXHJcbiAgVGVsZW1ldHJ5U2luayxcclxuICBDdXN0b21lckNvbnRlbnRFdmVudCxcclxuICBMb2dMZXZlbCxcclxuICBDYXRlZ29yeSxcclxuICBGaWxsZWRUZWxlbWV0cnlFdmVudCxcclxuICBGaWxsZWRDdXN0b21lckNvbnRlbnRFdmVudCxcclxuICBEaXJlY3ROdW1lcmljRXZlbnQsXHJcbiAgRXZlbnRUeXBlXHJcbn0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgdmFsaWRhdGVUZWxlbWV0cnlFdmVudCB9IGZyb20gJy4vVGVsZW1ldHJ5RXZlbnRWYWxpZGF0b3InO1xyXG5pbXBvcnQgeyBsb2dOb3RpZmljYXRpb24sIGxvZ0Vycm9yIH0gZnJvbSAnLi9PVGVsTm90aWZpY2F0aW9ucyc7XHJcbmltcG9ydCB7IG90ZWxqc1ZlcnNpb24gfSBmcm9tICcuL1ZlcnNpb24nO1xyXG5pbXBvcnQgeyBtYWtlU3RyaW5nRGF0YUZpZWxkLCBtYWtlSW50NjREYXRhRmllbGQgfSBmcm9tICcuL0RhdGFGaWVsZEhlbHBlcic7XHJcblxyXG5jb25zdCBDVVNUT01FUl9DT05URU5UX1ZFUlNJT04gPSAxO1xyXG5jb25zdCBNQVhfRVZFTlRfUVVFVUVfTEVOR1RIID0gMTAwMDtcclxuXHJcbi8qKlxyXG4gKiBTZXRzIHRoZSBjb250ZW50IHR5cGUgZm9yIGFuIGV2ZW50LlxyXG4gKlxyXG4gKiBObyBkZWZhdWx0IHZhbHVlIGZvciBDb250ZW50VHlwZS5cclxuICpcclxuICogSWYgdGhlIHR5cGUgaXMgRGlhZ25vc3RpY0RhdGEgdGhlbiBldmVudCBpcyB0cmVhdGVkIGFzIGEgc3RhbmRhcmQgdGVsZW1ldHJ5IGV2ZW50IHdoZXJlIGFzXHJcbiAqIGluIGNhc2Ugb2YgdGhlIEFub255bW91c0RhdGEgdGhlIHRlbGVtZXRyeSBldmVudCBpcyB0cmVhdGVkIGFzIERpcmVjdCBNZWFzdXJlcyAoQW5vbnltb3VzKSBldmVudHMuXHJcbiAqIEluIGJvdGggdGhlIGFib3ZlIGNhc2VzIHRoZXNlIHRlbGVtZXRyeSBkYXRhIGlzIGF2YWlsYWJsZSBpbiBBcmlhL0t1c3RvL0Nvc21vcy5cclxuICogVGhlIHR5cGUgQ3VzdG9tZXJDb250ZW50IGlzIHVzZWQgdG8gY29sbGVjdCBkYXRhIHVzaW5nIHRoZSBDb21wbGlhbnQgQ3VzdG9tZXIgQ29udGVudCBpbiBPZmZpY2UoQ0NDTykgcGlwZWxpbmUuXHJcbiAqIFRoZXNlIGV2ZW50cyB3aWxsIG5vdCBiZSBhdmFpbGFibGUgaW4gQXJpYS9LdXN0by9Db3Ntb3MgYW5kIHdvdWxkIG9ubHkgYmUgYXZhaWxhYmxlIGluIGNvbXBsaWFudCBib3VuZGFyaWVzIHN1Y2ggYXMgU3Vic3RyYXRlLlxyXG4gKlxyXG4gKiBGcm9tOiBodHRwczovL29mZmljZS52aXN1YWxzdHVkaW8uY29tL09mZmljZS9fZ2l0L09mZmljZT9wYXRoPS9saWJsZXQvdGVsZW1ldHJ5ZXZlbnQvcHVibGljL0NvbnRlbnRUeXBlLmgmX2E9Y29udGVudHMmdmVyc2lvbj1HQm1haW5cclxuICovXHJcbmNvbnN0IGVudW0gQ29udGVudFR5cGUge1xyXG4gIFRlbGVtZXRyeURhdGEgPSAwLFxyXG4gIEFub255bW91c0RhdGEgPSAxLCAvLyBEaXJlY3QgTnVtZXJpYyBNZWFzdXJlc1xyXG4gIEN1c3RvbWVyQ29udGVudCA9IDJcclxufVxyXG5cclxuLyoqXHJcbiAqIFVzZSB0aGlzIGFzIHRoZSBOZXh1cyB0ZW5hbnQgdG9rZW4gd2hlbiBOZXh1cyBsb2dnaW5nIGlzIG5vdCBuZWVkZWQgb3IgcmVsZXZhbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBTdXBwcmVzc05leHVzID0gLTE7XHJcblxyXG4vKipcclxuICogQ2xvbmUgYSB0ZWxlbWV0cnkgZXZlbnQ7IGdlbmVyYWxseSBzbyB3ZSBkb24ndCBtb2RpZnkgdGhlIGlucHV0IHRlbGVtZXRyeSBldmVudFxyXG4gKiBBbHNvIGluaXRpYWxpemVzIHRlbGVtZXRyeVByb3BlcnRpZXMgYW5kIGRhdGFGaWVsZHMgaWYgdGhleSBhcmVuJ3QgYWxyZWFkeSBzZXRcclxuICogQHBhcmFtIHRlbGVtZXRyeUV2ZW50IC0gVGhlIGV2ZW50IHRvIGNsb25lXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY2xvbmVFdmVudCh0ZWxlbWV0cnlFdmVudDogVGVsZW1ldHJ5RXZlbnQpOiBGaWxsZWRUZWxlbWV0cnlFdmVudCB7XHJcbiAgbGV0IGxvY2FsRXZlbnQ6IEZpbGxlZFRlbGVtZXRyeUV2ZW50ID0ge1xyXG4gICAgZXZlbnROYW1lOiB0ZWxlbWV0cnlFdmVudC5ldmVudE5hbWUsXHJcbiAgICBldmVudEZsYWdzOiB0ZWxlbWV0cnlFdmVudC5ldmVudEZsYWdzIHx8IHt9LFxyXG4gICAgdGVsZW1ldHJ5UHJvcGVydGllczogISF0ZWxlbWV0cnlFdmVudC50ZWxlbWV0cnlQcm9wZXJ0aWVzID8geyAuLi50ZWxlbWV0cnlFdmVudC50ZWxlbWV0cnlQcm9wZXJ0aWVzIH0gOiB7fSxcclxuICAgIGRhdGFGaWVsZHM6ICEhdGVsZW1ldHJ5RXZlbnQuZGF0YUZpZWxkcyA/IHRlbGVtZXRyeUV2ZW50LmRhdGFGaWVsZHMuc2xpY2UoKSA6IFtdLFxyXG4gICAgdGltZXN0YW1wOiB0ZWxlbWV0cnlFdmVudC50aW1lc3RhbXAgfHwgbmV3IERhdGUoKS5nZXRUaW1lKClcclxuICB9O1xyXG5cclxuICBpZiAoISF0ZWxlbWV0cnlFdmVudC5ldmVudENvbnRyYWN0KSB7XHJcbiAgICBsb2NhbEV2ZW50LmV2ZW50Q29udHJhY3QgPSB7IG5hbWU6IHRlbGVtZXRyeUV2ZW50LmV2ZW50Q29udHJhY3QubmFtZSwgZGF0YUZpZWxkczogdGVsZW1ldHJ5RXZlbnQuZXZlbnRDb250cmFjdC5kYXRhRmllbGRzLnNsaWNlKCkgfTtcclxuICB9XHJcbiAgcmV0dXJuIGxvY2FsRXZlbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVNpbXBsZVRlbGVtZXRyeUxvZ2dlciBleHRlbmRzIFRlbGVtZXRyeVNpbmsge1xyXG4gIC8qKlxyXG4gICAqIEEgbGlzdCBvZiBzaW5rcyB0aGF0IHRlbGVtZXRyeSBldmVudHMgd2lsbCBiZSBmb3J3YXJkZWQgdG9cclxuICAgKi9cclxuICB0ZWxlbWV0cnlTaW5rczogVGVsZW1ldHJ5U2lua1tdO1xyXG5cclxuICAvKipcclxuICAgKiBwZXJzaXN0ZW50RGF0YUZpZWxkczogRGF0YSBmaWVsZHMgdGhhdCB3aWxsIGF1dG9tYXRpY2FsbHkgYmUgc2VudCB3aXRoIGV2ZXJ5IGV2ZW50LlxyXG4gICAqICdEYXRhLicgd2lsbCBiZSBwcmVwZW5kZWQgdG8gZWFjaCBmaWVsZC5cclxuICAgKi9cclxuICBwZXJzaXN0ZW50RGF0YUZpZWxkczogRGF0YUZpZWxkW107XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgbGlzdCBvZiBQYXJ0IEEgZGF0YSBmaWVsZHMgdGhhdCBzaG91bGQgYmUgYWRkZWQgdG8gZXZlcnkgZXZlbnQuIEluIHRoZSAxRFMgU2luayxcclxuICAgKiBwYXJ0IEEgZGF0YSBmaWVsZHMgd2lsbCBiZSBzZW50IHdpdGhvdXQgJ0RhdGEuJy4gT24gbmF0aXZlIGNsaWVudHMsIHRoZXNlIGZpZWxkc1xyXG4gICAqIHdpbGwgc3RpbGwgZ2V0IHNlbnQgYXMgJ0RhdGEuRm9vJy5cclxuICAgKi9cclxuICBwYXJ0QUZpZWxkczogRGF0YUZpZWxkW107XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgYSB0ZWxlbWV0cnkgZXZlbnRcclxuICAgKiBAcGFyYW0gdGVsZW1ldHJ5RXZlbnQgLSBUaGUgZXZlbnQgdG8gc2VuZFxyXG4gICAqL1xyXG4gIHNlbmRUZWxlbWV0cnlFdmVudCh0ZWxlbWV0cnlFdmVudDogVGVsZW1ldHJ5RXZlbnQpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhbiBldmVudCBjb250YWluaW5nIGN1c3RvbWVyIGNvbnRlbnQsIHRvIGEgY29tcGxpYW50IGVuZHBvaW50XHJcbiAgICogQHBhcmFtIHRlbGVtZXRyeUV2ZW50IC0gVGhlIGV2ZW50IHRvIHNlbmRcclxuICAgKiBAcGFyYW0gY3VzdG9tZXJDb250ZW50VHlwZSAtIFRoZSB0eXBlIG9mIGN1c3RvbWVyIGNvbnRlbnRcclxuICAgKi9cclxuICBzZW5kQ3VzdG9tZXJDb250ZW50KGN1c3RvbWVyQ29udGVudEV2ZW50OiBDdXN0b21lckNvbnRlbnRFdmVudCk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZCBhIHNpbmsgZm9yIHByb2Nlc3NpbmcgdGVsZW1ldHJ5IGV2ZW50c1xyXG4gICAqIEBwYXJhbSBzaW5rIC0gQSB0ZWxlbWV0cnkgc2luayB0byB3aGljaCBldmVudHMgd2lsbCBiZSBwYXNzZWQgd2hlbiBzZW5kVGVsZW1ldHJ5RXZlbnQgaXMgY2FsbGVkLlxyXG4gICAqL1xyXG4gIGFkZFNpbmsoc2luazogVGVsZW1ldHJ5U2luayk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0b2tlbnMgdG8gdXNlIGZvciBzZW5kaW5nIHRlbGVtZXRyeSB0byBBcmlhIGFuZC9vciBOZXh1c1xyXG4gICAqIFRoZSB0b2tlbnMgd2lsbCBiZSB1c2VkIGZvciBldmVudHMgd2hpY2ggdGhlIG5hbWVzcGFjZSBoYXMgYW4gZXhhY3Qgb3IgcGFydGlhbCBtYXRjaFxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgbmFtZXNwYWNlIGZvciB0aGUgdG9rZW5zXHJcbiAgICogQHBhcmFtIGFyaWFUZW5hbnRUb2tlbiAtIE9wdGlvbmFsOiBUaGUgQXJpYSB0ZW5hbnQgdG9rZW5cclxuICAgKiBAcGFyYW0gbmV4dXNUZW5hbnRUb2tlbiAtIE9wdGlvbmFsOiBUaGUgTmV4dXMgdGVuYW50IHRva2VuXHJcbiAgICovXHJcbiAgc2V0VGVuYW50VG9rZW4obmFtZXNwYWNlOiBzdHJpbmcsIGFyaWFUZW5hbnRUb2tlbj86IHN0cmluZywgbmV4dXNUZW5hbnRUb2tlbj86IG51bWJlcik6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0b2tlbnMgdG8gdXNlIGZvciBzZW5kaW5nIHRlbGVtZXRyeSB0byBBcmlhIHZpYSB0aGUgRE5NIHBpcGVsaW5lXHJcbiAgICogVGhlIHRva2VucyB3aWxsIGJlIHVzZWQgZm9yIGV2ZW50cyB3aGljaCB0aGUgbmFtZXNwYWNlIGhhcyBhbiBleGFjdCBvciBwYXJ0aWFsIG1hdGNoXHJcbiAgICogQHBhcmFtIG5hbWVzcGFjZSAtIFRoZSBuYW1lc3BhY2UgZm9yIHRoZSB0b2tlbnNcclxuICAgKiBAcGFyYW0gZG5tVGVuYW50VG9rZW4gLSBUaGUgQXJpYSBkbm0gdGVuYW50IHRva2VuXHJcbiAgICovXHJcbiAgc2V0RE5NVG9rZW4obmFtZXNwYWNlOiBzdHJpbmcsIGRubVRlbmFudFRva2VuOiBzdHJpbmcpOiB2b2lkO1xyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGN1cnJlbnRseSBhcHBsaWVkIHRlbGVtZXRyeSBjb25maWd1cmF0aW9uXHJcbiAgICovXHJcbiAgZ2V0Q29uZmlnKCk6IElUZWxlbWV0cnlDb25maWc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGZvciB0ZWxlbWV0cnkgc2lua3NcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRlbGVtZXRyeUNvbmZpZyB7XHJcbiAgLyoqXHJcbiAgICogTk9UIEZPUiBVU0UgSU4gQllQQVNTSU5HIFZBTElEQVRJT04gUlVMRVM7IE9OTFkgRk9SIFVTRSBJTiBJTVBST1ZJTkcgUEVSRk9STUFOQ0VcclxuICAgKlxyXG4gICAqIERpc2FibGVzIGJhc2ljIHZhbGlkYXRpb24gdGhhdCB0ZWxlbWV0cnkgZXZlbnRzIGNvbmZvcm0gdG8gT2ZmaWNlIEV2ZW50IFNjaGVtYVxyXG4gICAqIFZhbGlkYXRpb24gYWRkcyBhIHNtYWxsIG92ZXJoZWFkIHRoYXQgY291bGQgYWR2ZXJzZWx5IGFmZmVjdCBwZXJmIGluIHByb2R1Y3Rpb24uXHJcbiAgICogSW4gcHJlLXByb2R1Y3Rpb24sIHZhbGlkYXRpb24gc2hvdWxkIGJlIHR1cm5lZCBvbiB0byBlbnN1cmUgdGhhdCBldmVudHMgYXJlIHZhbGlkLlxyXG4gICAqIFRvIGltcHJvdmUgcGVyZiwgdmFsaWRhdGlvbiBjYW4gYmUgdHVybmVkIG9mZiBpbiBwcm9kdWN0aW9uLiBUaGlzIGZsYWcgTVVTVCBOT1RcclxuICAgKiBiZSB1c2VkIHRvIGJ5cGFzcyBydWxlcyB0aGF0IHdvdWxkIG90aGVyd2lzZSBwcmV2ZW50IGV2ZW50cyBmcm9tIGJlaW5nIHNlbnQuXHJcbiAgICovXHJcbiAgZGlzYWJsZVZhbGlkYXRpb24/OiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBFbmFibGVzIHF1ZXVlaW5nIGV2ZW50cyB3aGVuIG5vIHRlbGVtZXRyeSBzaW5rIGlzIGF0dGFjaGVkLlxyXG4gICAqL1xyXG4gIGVuYWJsZVF1ZXVlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFNpbXBsZVRlbGVtZXRyeUxvZ2dlciBpcyB0aGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBhIHRlbGVtZXRyeSBsb2dnZXIuXHJcbiAqIEl0IGV4cG9zZXMgc2VuZFRlbGVtZXRyeUV2ZW50LCB3aGljaCBpcyB1c2VkIHRvIGxvZyBhIHRlbGVtZXRyeSBldmVudC5cclxuICpcclxuICogQWRkIGEgc2luayBieSBjYWxsaW5nIGFkZFNpbmsoKSBvciBtb2RpZnlpbmcgdGhlIHRlbGVtZXRyeVNpbmtzIGxpc3QuXHJcbiAqIElmIG5vIHNpbmtzIGFyZSBhdHRhY2hlZCwgaXQga2VlcHMgYSBxdWV1ZSBvZiBldmVudHMsIGJ1dCBzdGFydHMgc2lsZW50bHlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBTaW1wbGVUZWxlbWV0cnlMb2dnZXIgaW1wbGVtZW50cyBJU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyIHtcclxuICAvKipcclxuICAgKiBBIGxpc3Qgb2Ygc2lua3MgdGhhdCB0ZWxlbWV0cnkgZXZlbnRzIHdpbGwgYmUgZm9yd2FyZGVkIHRvXHJcbiAgICovXHJcbiAgdGVsZW1ldHJ5U2lua3M6IFRlbGVtZXRyeVNpbmtbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBAaW50ZXJuYWwgSW50ZXJuYWwgdmFyaWFibGU7IGRvIG5vdCB1c2UgcHVibGljbHkuXHJcbiAgICogJ0RhdGEuJyB3aWxsIGJlIHByZXBlbmRlZCB0byBlYWNoIGZpZWxkLlxyXG4gICAqL1xyXG4gIHBlcnNpc3RlbnREYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBBIGxpc3Qgb2YgUGFydCBBIGRhdGEgZmllbGRzIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIGV2ZXJ5IGV2ZW50LiBJbiB0aGUgMURTIFNpbmssXHJcbiAgICogcGFydCBBIGRhdGEgZmllbGRzIHdpbGwgYmUgc2VudCB3aXRob3V0ICdEYXRhLicuIE9uIG5hdGl2ZSBjbGllbnRzLCB0aGVzZSBmaWVsZHNcclxuICAgKiB3aWxsIHN0aWxsIGdldCBhZGRlZCBhcyAnRGF0YS5Gb28nLlxyXG4gICAqL1xyXG4gIHBhcnRBRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGNvbmZpZzogSVRlbGVtZXRyeUNvbmZpZztcclxuXHJcbiAgcHJpdmF0ZSBldmVudFF1ZXVlOiBbRmlsbGVkVGVsZW1ldHJ5RXZlbnQsIEV2ZW50VHlwZV1bXSA9IFtdO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGEgdGVsZW1ldHJ5IGxvZ2dlclxyXG4gICAqIEBwYXJhbSBwYXJlbnQgLSBBIHBhcmVudCB0ZWxlbWV0cnkgbG9nZ2VyIHRoYXQgdGhpcyB0ZWxlbWV0cnkgbG9nZ2VyIHNob3VsZCBpbmhlcml0IGZyb21cclxuICAgKiAgICAgICAgICAgICAgICAgVGhpcyB0ZWxlbWV0cnkgbG9nZ2VyIHdpbGwgc2VuZCB0ZWxlbWV0cnkgdG8gdGhlIHNhbWUgc2lua3NcclxuICAgKiAgICAgICAgICAgICAgICAgYW5kIHdpbGwgc2VuZCB0aGUgc2FtZSBwZXJzaXN0ZW50IGRhdGEgZmllbGRzIGFzIHRoZSBwYXJlbnQgbG9nZ2VyXHJcbiAgICogQHBhcmFtIHBlcnNpc3RlbnREYXRhRmllbGRzIC0gRGF0YSBmaWVsZHMgdG8gc2VuZCB3aXRoIGV2ZXJ5IGV2ZW50XHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocGFyZW50PzogSVNpbXBsZVRlbGVtZXRyeUxvZ2dlciwgcGVyc2lzdGVudERhdGFGaWVsZHM/OiBEYXRhRmllbGRbXSwgY29uZmlnPzogSVRlbGVtZXRyeUNvbmZpZykge1xyXG4gICAgdGhpcy5jb25maWcgPSBjb25maWcgfHwge307XHJcbiAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgIHRoaXMudGVsZW1ldHJ5U2lua3MgPSBwYXJlbnQudGVsZW1ldHJ5U2lua3M7XHJcbiAgICAgIHRoaXMucGVyc2lzdGVudERhdGFGaWVsZHMucHVzaCguLi5wYXJlbnQucGVyc2lzdGVudERhdGFGaWVsZHMpO1xyXG4gICAgICB0aGlzLmNvbmZpZyA9IHsgLi4ucGFyZW50LmdldENvbmZpZygpLCAuLi50aGlzLmNvbmZpZyB9O1xyXG4gICAgICB0aGlzLnBhcnRBRmllbGRzLnB1c2goLi4ucGFyZW50LnBhcnRBRmllbGRzKTtcclxuICAgIH1cclxuICAgIGlmIChwZXJzaXN0ZW50RGF0YUZpZWxkcykge1xyXG4gICAgICB0aGlzLnBlcnNpc3RlbnREYXRhRmllbGRzLnB1c2goLi4ucGVyc2lzdGVudERhdGFGaWVsZHMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRFdmVudENvbnRlbnRUeXBlKGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdLCBldmVudENvbnRlbnRUeXBlOiBDb250ZW50VHlwZSkge1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZCgnRXZlbnRDb250ZW50LlR5cGUnLCBldmVudENvbnRlbnRUeXBlKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kVGVsZW1ldHJ5RXZlbnQgaXMgdGhlIGJhc2ljIHdheSB0byBzZW5kIGEgdGVsZW1ldHJ5IGV2ZW50LlxyXG4gICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgZm9yIHNlbmRpbmcgdGVsZW1ldHJ5IGFib3V0IGRpc2NyZXRlIGV2ZW50cyB0aGF0IGhhcHBlbmVkXHJcbiAgICogRm9yIHRlbGVtZXRyeSB0aGF0IGluY2x1ZGVzIGR1cmF0aW9uIGFuZC9vciBzdWNjZXNzL2ZhaWx1cmUsIHRoZSBBY3Rpdml0eSBBUEkgbWF5IGJlIG1vcmUgYXBwcm9wcmlhdGUuXHJcbiAgICogQHBhcmFtIHRlbGVtZXRyeUV2ZW50IC0gVGhlIHRlbGVtZXRyeSBldmVudCB0byBzZW5kXHJcbiAgICovXHJcbiAgcHVibGljIHNlbmRUZWxlbWV0cnlFdmVudCh0ZWxlbWV0cnlFdmVudDogVGVsZW1ldHJ5RXZlbnQpIHtcclxuICAgIGNvbnN0IGNsb25lZEV2ZW50ID0gY2xvbmVFdmVudCh0ZWxlbWV0cnlFdmVudCk7XHJcblxyXG4gICAgY29uc3QgdGVsZW1ldHJ5UHJvcGVydGllcyA9IGNsb25lZEV2ZW50LnRlbGVtZXRyeVByb3BlcnRpZXM7XHJcbiAgICAvLyBOZXh1cyBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGJ5IE9UZWxKU1xyXG4gICAgdGVsZW1ldHJ5UHJvcGVydGllcy5uZXh1c1RlbmFudFRva2VuID0gU3VwcHJlc3NOZXh1cztcclxuXHJcbiAgICAvLyBJZiBlaXRoZXIgb25lIGlzIG1pc3NpbmcsIHdlIHRyeSB0byBmaWxsIGJvdGhcclxuICAgIGlmICghdGVsZW1ldHJ5UHJvcGVydGllcy5hcmlhVGVuYW50VG9rZW4pIHtcclxuICAgICAgbGV0IHN1Y2Nlc3MgPSBmaWxsVGVuYW50VG9rZW5zKGNsb25lZEV2ZW50LmV2ZW50TmFtZSwgdGVsZW1ldHJ5UHJvcGVydGllcyk7XHJcblxyXG4gICAgICBpZiAoIXN1Y2Nlc3MgJiYgIXRlbGVtZXRyeVByb3BlcnRpZXMuYXJpYVRlbmFudFRva2VuKSB7XHJcbiAgICAgICAgbG9nTm90aWZpY2F0aW9uKExvZ0xldmVsLkVycm9yLCBDYXRlZ29yeS5Db3JlLCAoKSA9PiAnTm8gdGVuYW50IHRva2VuOiAnICsgdGVsZW1ldHJ5RXZlbnQuZXZlbnROYW1lKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNlbmRUZWxlbWV0cnlFdmVudEludGVybmFsKGNsb25lZEV2ZW50LCBFdmVudFR5cGUuU2VuZFRlbGVtZXRyeUV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGN1c3RvbWVyIGNvbnRlbnQgdG8gYW4gYXBwcm9wcmlhdGUgY29tcGxpYW50IGVuZHBvaW50XHJcbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHRvIHNlbmRcclxuICAgKiBAcGFyYW0gY3VzdG9tZXJDb250ZW50VHlwZSAtIFRoZSB0eXBlIG9mIGN1c3RvbWVyIGNvbnRlbnRcclxuICAgKi9cclxuICBwdWJsaWMgc2VuZEN1c3RvbWVyQ29udGVudChjdXN0b21lckNvbnRlbnRFdmVudDogQ3VzdG9tZXJDb250ZW50RXZlbnQpIHtcclxuICAgIGNvbnN0IGNsb25lZEV2ZW50ID0gY2xvbmVFdmVudChjdXN0b21lckNvbnRlbnRFdmVudCk7XHJcbiAgICBjb25zdCB0ZWxlbWV0cnlQcm9wZXJ0aWVzID0gY2xvbmVkRXZlbnQudGVsZW1ldHJ5UHJvcGVydGllcztcclxuXHJcbiAgICBjb25zdCBjdXN0b21lckNvbnRlbnRWZXJzaW9uID0gdGVsZW1ldHJ5UHJvcGVydGllcy5jdXN0b21lckNvbnRlbnRWZXJzaW9uO1xyXG4gICAgaWYgKCFjdXN0b21lckNvbnRlbnRWZXJzaW9uIHx8IGN1c3RvbWVyQ29udGVudFZlcnNpb24gPiBDVVNUT01FUl9DT05URU5UX1ZFUlNJT04pIHtcclxuICAgICAgdGVsZW1ldHJ5UHJvcGVydGllcy5jdXN0b21lckNvbnRlbnRWZXJzaW9uID0gQ1VTVE9NRVJfQ09OVEVOVF9WRVJTSU9OO1xyXG4gICAgfVxyXG4gICAgLy8gU3VwcHJlc3MgYW55IHRlbmFudCB0b2tlbnMgdGhhdCB3ZXJlIHBhc3NlZCBpbjsgdGhlIGV2ZW50IG11c3QgZ28gdG8gdGhlIGN1c3RvbWVyIGNvbnRlbnQgdGVuYW50LlxyXG4gICAgdGVsZW1ldHJ5UHJvcGVydGllcy5hcmlhVGVuYW50VG9rZW4gPSB1bmRlZmluZWQ7XHJcbiAgICB0ZWxlbWV0cnlQcm9wZXJ0aWVzLm5leHVzVGVuYW50VG9rZW4gPSB1bmRlZmluZWQ7XHJcbiAgICB0ZWxlbWV0cnlQcm9wZXJ0aWVzLmRubVRva2VuID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMuYWRkRXZlbnRDb250ZW50VHlwZShjbG9uZWRFdmVudC5kYXRhRmllbGRzLCBDb250ZW50VHlwZS5DdXN0b21lckNvbnRlbnQpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnNlbmRUZWxlbWV0cnlFdmVudEludGVybmFsKGNsb25lZEV2ZW50LCBFdmVudFR5cGUuQ3VzdG9tZXJDb250ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmQgYSBkaXJlY3QgbnVtZXJpY2FsIG1lYXN1cmVtZW50IHRvIHRoZSBhIEROTSB0ZW5hbnRcclxuICAgKiBAcGFyYW0gZGlyZWN0TnVtZXJpY0V2ZW50IC0gdGhlIGV2ZW50IHRvIHNlbmRcclxuICAgKi9cclxuICBwdWJsaWMgc2VuZERpcmVjdE51bWVyaWNFdmVudChkaXJlY3ROdW1lcmljRXZlbnQ6IERpcmVjdE51bWVyaWNFdmVudCkge1xyXG4gICAgY29uc3QgY2xvbmVkRXZlbnQgPSBjbG9uZUV2ZW50KGRpcmVjdE51bWVyaWNFdmVudCk7XHJcblxyXG4gICAgY29uc3QgdGVsZW1ldHJ5UHJvcGVydGllcyA9IGNsb25lZEV2ZW50LnRlbGVtZXRyeVByb3BlcnRpZXM7XHJcblxyXG4gICAgaWYgKCF0ZWxlbWV0cnlQcm9wZXJ0aWVzLmRubVRva2VuKSB7XHJcbiAgICAgIGxldCBzdWNjZXNzID0gZmlsbFRlbmFudFRva2VucyhjbG9uZWRFdmVudC5ldmVudE5hbWUsIHRlbGVtZXRyeVByb3BlcnRpZXMpO1xyXG5cclxuICAgICAgaWYgKCFzdWNjZXNzICYmICF0ZWxlbWV0cnlQcm9wZXJ0aWVzLmRubVRva2VuKSB7XHJcbiAgICAgICAgbG9nTm90aWZpY2F0aW9uKExvZ0xldmVsLkVycm9yLCBDYXRlZ29yeS5Db3JlLCAoKSA9PiAnTm8gZG5tIHRva2VuOiAnICsgY2xvbmVkRXZlbnQuZXZlbnROYW1lKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmFkZEV2ZW50Q29udGVudFR5cGUoY2xvbmVkRXZlbnQuZGF0YUZpZWxkcywgQ29udGVudFR5cGUuQW5vbnltb3VzRGF0YSk7XHJcblxyXG4gICAgdGhpcy5zZW5kVGVsZW1ldHJ5RXZlbnRJbnRlcm5hbChjbG9uZWRFdmVudCwgRXZlbnRUeXBlLkRpcmVjdE51bWVyaWNFdmVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnRlcm5hbCBtZXRob2QgdG8gc2VuZCBhIHRlbGVtZXRyeSBldmVudFxyXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSB0ZWxlbWV0cnkgZXZlbnQgdG8gc2VuZC5cclxuICAgKiBOb3RlIHRoYXQgaXQgbWF5IGJlIGEgQ3VzdG9tZXJDb250ZW50RXZlbnQgYnkgdmlydHVlIG9mIGhhdmluZyBhIGN1c3RvbWVyQ29udGVudFZlcnNpb24gYW5kIGN1c3RvbWVyQ29udGVudFR5cGUuXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNlbmRUZWxlbWV0cnlFdmVudEludGVybmFsKHRlbGVtZXRyeUV2ZW50OiBGaWxsZWRUZWxlbWV0cnlFdmVudCwgZXZlbnRUeXBlOiBFdmVudFR5cGUpIHtcclxuICAgIGlmIChcclxuICAgICAgZXZlbnRUeXBlICE9PSBFdmVudFR5cGUuQ3VzdG9tZXJDb250ZW50ICYmXHJcbiAgICAgICh0ZWxlbWV0cnlFdmVudC50ZWxlbWV0cnlQcm9wZXJ0aWVzLmN1c3RvbWVyQ29udGVudFZlcnNpb24gfHwgdGVsZW1ldHJ5RXZlbnQudGVsZW1ldHJ5UHJvcGVydGllcy5jdXN0b21lckNvbnRlbnRUeXBlKVxyXG4gICAgKSB7XHJcbiAgICAgIGxvZ05vdGlmaWNhdGlvbihMb2dMZXZlbC5FcnJvciwgQ2F0ZWdvcnkuQ29yZSwgKCkgPT4gJ0N1c3RvbWVyIGNvbnRlbnQnKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGlmICh0aGlzLnRlbGVtZXRyeVNpbmtzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5lbmFibGVRdWV1ZSAmJiB0aGlzLmV2ZW50UXVldWUubGVuZ3RoIDwgTUFYX0VWRU5UX1FVRVVFX0xFTkdUSCkge1xyXG4gICAgICAgICAgdGhpcy5ldmVudFF1ZXVlLnB1c2goW3RlbGVtZXRyeUV2ZW50LCBldmVudFR5cGVdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbG9nTm90aWZpY2F0aW9uKExvZ0xldmVsLldhcm5pbmcsIENhdGVnb3J5LkNvcmUsICgpID0+ICdObyB0ZWxlbWV0cnkgc2lua3MgYXJlIGF0dGFjaGVkLicpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucHJvY2Vzc1RlbGVtZXRyeUV2ZW50KHRlbGVtZXRyeUV2ZW50LCBldmVudFR5cGUpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgbG9nRXJyb3IoQ2F0ZWdvcnkuQ29yZSwgJ1NlbmRUZWxlbWV0cnlFdmVudCcsIGVycm9yKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMudGVsZW1ldHJ5U2lua3MuZm9yRWFjaCh0ZWxlbWV0cnlTaW5rID0+IHtcclxuICAgICAgICBpZiAoZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQ3VzdG9tZXJDb250ZW50KSB7XHJcbiAgICAgICAgICAvLyBTa2lwIHRoaXMgc2luayBpZiBpdCBkb2Vzbid0IHN1cHBvcnQgY3VzdG9tZXIgY29udGVudFxyXG4gICAgICAgICAgaWYgKHRlbGVtZXRyeVNpbmsuc2VuZEN1c3RvbWVyQ29udGVudCkge1xyXG4gICAgICAgICAgICB0ZWxlbWV0cnlTaW5rLnNlbmRDdXN0b21lckNvbnRlbnQodGVsZW1ldHJ5RXZlbnQgYXMgRmlsbGVkQ3VzdG9tZXJDb250ZW50RXZlbnQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09PSBFdmVudFR5cGUuRGlyZWN0TnVtZXJpY0V2ZW50KSB7XHJcbiAgICAgICAgICBpZiAodGVsZW1ldHJ5U2luay5zZW5kTm9uU3RhbmRhcmRFdmVudCkge1xyXG4gICAgICAgICAgICB0ZWxlbWV0cnlTaW5rLnNlbmROb25TdGFuZGFyZEV2ZW50KHRlbGVtZXRyeUV2ZW50LCBldmVudFR5cGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0ZWxlbWV0cnlTaW5rLnNlbmRUZWxlbWV0cnlFdmVudCh0ZWxlbWV0cnlFdmVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gY2F0Y2ggKF9lKSB7XHJcbiAgICAgIC8vIFNpbmtzIHNob3VsZCBoYW5kbGUgdGhlaXIgb3duIGVycm9ycztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb2Nlc3NlcyBhIHRlbGVtZXRyeSBldmVudCwgYnV0IGRvZXMgbm90IHNlbmQgaXRcclxuICAgKiAgIEFkZHMgcGVyc2lzdGVudCBkYXRhIGZpZWxkc1xyXG4gICAqICAgVmFsaWRhdGVzIHRoZSBldmVudFxyXG4gICAqIFRocm93cyBpZiB0aGUgZXZlbnQgaXMgaW52YWxpZFxyXG4gICAqIEBwYXJhbSB0ZWxlbWV0cnlFdmVudCAtIFRoZSB0ZWxlbWV0cnkgZXZlbnQgdG8gcHJvY2Vzc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgcHJvY2Vzc1RlbGVtZXRyeUV2ZW50KHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCwgZXZlbnRUeXBlOiBFdmVudFR5cGUpIHtcclxuICAgIC8vIFRoZSBsYXN0LWFkZGVkIGRhdGEgZmllbGQgd2lucywgaWYgdGhlIHNhbWUtbmFtZWQgZGF0YSBmaWVsZCBpcyBhZGRlZCBtb3JlIHRoYW4gb25jZS5cclxuICAgIC8vIFBlcnNpc3RlbnQgZGF0YSBmaWVsZHMgc2hvdWxkIGhhdmUgbG93ZXIgcHJpb3JpdHkgdGhhbiBwZXItZXZlbnQgZGF0YSBmaWVsZHNcclxuICAgIGlmICh0ZWxlbWV0cnlFdmVudC5kYXRhRmllbGRzKSB7XHJcbiAgICAgIHRlbGVtZXRyeUV2ZW50LmRhdGFGaWVsZHM/LnVuc2hpZnQobWFrZVN0cmluZ0RhdGFGaWVsZCgnT1RlbEpTLlZlcnNpb24nLCBvdGVsanNWZXJzaW9uKSk7XHJcbiAgICAgIC8vIERvIG5vdCBhZGQgbG9nZ2VyIHBlcnNpc3RlbnQgZGF0YSBmaWVsZHMgdG8gRE5NIGV2ZW50c1xyXG4gICAgICAvLyBBbGwgUGFydCBDIGZpZWxkcyBzaG91bGQgYmUgZXhwbGljaXRseSBhZGRlZFxyXG4gICAgICBpZiAoZXZlbnRUeXBlICE9PSBFdmVudFR5cGUuRGlyZWN0TnVtZXJpY0V2ZW50ICYmIHRoaXMucGVyc2lzdGVudERhdGFGaWVsZHMpIHtcclxuICAgICAgICB0ZWxlbWV0cnlFdmVudC5kYXRhRmllbGRzLnVuc2hpZnQoLi4udGhpcy5wZXJzaXN0ZW50RGF0YUZpZWxkcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wYXJ0QUZpZWxkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGV2ZW50Q29udHJhY3QgPSB0ZWxlbWV0cnlFdmVudC5ldmVudENvbnRyYWN0IHx8IHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICBkYXRhRmllbGRzOiBbXVxyXG4gICAgICB9O1xyXG4gICAgICBldmVudENvbnRyYWN0LmRhdGFGaWVsZHMucHVzaCguLi50aGlzLnBhcnRBRmllbGRzKTtcclxuXHJcbiAgICAgIHRlbGVtZXRyeUV2ZW50LmV2ZW50Q29udHJhY3QgPSBldmVudENvbnRyYWN0O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5jb25maWcuZGlzYWJsZVZhbGlkYXRpb24pIHtcclxuICAgICAgdmFsaWRhdGVUZWxlbWV0cnlFdmVudCh0ZWxlbWV0cnlFdmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZGRzIGEgdGVsZW1ldHJ5IHNpbmssIHRvIHdoaWNoIGV2ZW50cyB3aWxsIGJlIHNlbnRcclxuICAgKiBAcGFyYW0gc2luayAtIFRoZSB0ZWxlbWV0cnkgc2luayB0byBhZGRcclxuICAgKi9cclxuICBwdWJsaWMgYWRkU2luayhzaW5rOiBUZWxlbWV0cnlTaW5rKSB7XHJcbiAgICB0aGlzLnRlbGVtZXRyeVNpbmtzLnB1c2goc2luayk7XHJcbiAgICB0aGlzLmZsdXNoUXVldWUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZsdXNoIHRoZSBxdWV1ZSBvZiB0ZWxlbWV0cnkgZXZlbnRzIHRoYXQgd2VyZSBhY2N1bXVsYXRlZCBiZWZvcmUgYSBzaW5rIHdhcyBhdHRhY2hlZC5cclxuICAgKiBUaGUgcXVldWUgaXMgZW1wdGllZCB3aGV0aGVyIG9yIG5vdCBhIHNpbmsgaXMgYXR0YWNoZWQuXHJcbiAgICpcclxuICAgKiBOb3RlIHRoYXQgYWxsIGV2ZW50cyBhcmUgc2VudCBhdCBvbmNlLiBJZiBhbiBldmVudCB0aHJvdHRsZXIgaXMgZW5hYmxlZCBvbiBhIHRlbGVtZXRyeSBzaW5rLFxyXG4gICAqIGl0IG1heSBiZSB0cmlnZ2VyZWQ7IHlvdSBtYXkgY2hvb3NlIHRvIG9ubHkgY29ubmVjdCB0aGUgZXZlbnQgdGhyb3R0bGVyIGFmdGVyIGZsdXNoaW5nIHRoZSBxdWV1ZS5cclxuICAgKi9cclxuICBwdWJsaWMgZmx1c2hRdWV1ZSgpIHtcclxuICAgIGNvbnN0IGV2ZW50UXVldWUgPSB0aGlzLmV2ZW50UXVldWU7XHJcbiAgICB0aGlzLmV2ZW50UXVldWUgPSBbXTtcclxuXHJcbiAgICBpZiAodGhpcy50ZWxlbWV0cnlTaW5rcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGZvciAoY29uc3QgW3RlbGVtZXRyeUV2ZW50LCBldmVudFR5cGVdIG9mIGV2ZW50UXVldWUpIHtcclxuICAgICAgICB0aGlzLnNlbmRUZWxlbWV0cnlFdmVudEludGVybmFsKHRlbGVtZXRyeUV2ZW50LCBldmVudFR5cGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIGEgdGVuYW50IHRva2VuIGZvciBhIHNpbmdsZSBuYW1lc3BhY2UuIEV2ZW50cyB3aXRoaW4gdGhlIG5hbWVzcGFjZSB3aWxsIGJlIHNlbnQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdGVuYW50LlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgbmFtZXNwYWNlIHRvIHdoaWNoIHRoZSB0b2tlbnMgYXBwbHksIHN1Y2ggYXMgT2ZmaWNlLlN5c3RlbS5cclxuICAgKiBAcGFyYW0gYXJpYVRlbmFudFRva2VuIC0gVGhlIEFyaWEgdGVuYW50IHRva2VuXHJcbiAgICogQHBhcmFtIG5leHVzVGVuYW50VG9rZW4gLSBUaGUgTmV4dXMgdGVuYW50IHRva2VuXHJcbiAgICovXHJcbiAgcHVibGljIHNldFRlbmFudFRva2VuKG5hbWVzcGFjZTogc3RyaW5nLCBhcmlhVGVuYW50VG9rZW4/OiBzdHJpbmcsIG5leHVzVGVuYW50VG9rZW4/OiBudW1iZXIpIHtcclxuICAgIHNldFRlbmFudFRva2VucyhuYW1lc3BhY2UsIHsgYXJpYVRlbmFudFRva2VuLCBuZXh1c1RlbmFudFRva2VuIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyBhIHRlbmFudCB0b2tlbiBmb3IgYSBzaW5nbGUgbmFtZXNwYWNlIGZvciBETk0uIEV2ZW50cyB3aXRoaW4gdGhlIG5hbWVzcGFjZSB3aWxsIGJlIHNlbnQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgdGVuYW50LlxyXG4gICAqIEBwYXJhbSBuYW1lc3BhY2UgLSBUaGUgbmFtZXNwYWNlIHRvIHdoaWNoIHRoZSB0b2tlbnMgYXBwbHksIHN1Y2ggYXMgT2ZmaWNlLlN5c3RlbS5cclxuICAgKiBAcGFyYW0gZG5tVG9rZW4gLSBUaGUgQXJpYSB0ZW5hbnQgdG9rZW4gZm9yIGRpcmVjdCBudW1lcmljYWwgbWVhc3VyZW1lbnQgZXZlbnRzXHJcbiAgICovXHJcbiAgcHVibGljIHNldEROTVRva2VuKG5hbWVzcGFjZTogc3RyaW5nLCBkbm1Ub2tlbjogc3RyaW5nKSB7XHJcbiAgICBzZXRUZW5hbnRUb2tlbnMobmFtZXNwYWNlLCB7IGRubVRva2VuIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvbmUgYSB0ZWxlbWV0cnkgZXZlbnQ7IGdlbmVyYWxseSBzbyB3ZSBkb24ndCBtb2RpZnkgdGhlIGlucHV0IHRlbGVtZXRyeSBldmVudFxyXG4gICAqIEFsc28gc2V0cyBkYXRhRmllbGRzIHRvIFtdIGlmIGl0IGlzbid0IGFscmVhZHkgc2V0XHJcbiAgICogQHBhcmFtIHRlbGVtZXRyeUV2ZW50IC0gVGhlIGV2ZW50IHRvIGNsb25lXHJcbiAgICovXHJcbiAgcHVibGljIGNsb25lRXZlbnQodGVsZW1ldHJ5RXZlbnQ6IFRlbGVtZXRyeUV2ZW50KTogVGVsZW1ldHJ5RXZlbnQge1xyXG4gICAgcmV0dXJuIGNsb25lRXZlbnQodGVsZW1ldHJ5RXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0cyB0aGUgY3VycmVudGx5IGFwcGxpZWQgY29uZmlndXJhdGlvblxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDb25maWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWc7XHJcbiAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/TelemetryEventValidator.js": /*!************************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/TelemetryEventValidator.js ***! \************************************************************************/ /*! exports provided: validateTelemetryEvent, validateInt */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validateTelemetryEvent\", function() { return validateTelemetryEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"validateInt\", function() { return validateInt; });\nvar INT64_MAX = 9007199254740991;\r\nvar INT64_MIN = -INT64_MAX;\r\nvar MaxEventNameLength = 98; // Client Code = 100 limit; Aria Compact SDK = 98 limit.\r\n// Starts with \"Office\", and then at least two more alphanumeric tokens that start with capital letters\r\n// Tokens are separated by periods.\r\nvar EventNameRegex = /^Office(\\.[A-Z][a-zA-Z0-9]*){2,}$/;\r\n// Contains alphanumeric or _ or .\r\n// Must be between 1 and 95 characters long (5 characters reserved for 'Data.')\r\nvar AlphanumericRegex = /^[a-zA-Z0-9_\\.]{1,95}$/;\r\nfunction validateTelemetryEvent(telemetryEvent) {\r\n if (!isEventNameValid(telemetryEvent.eventName)) {\r\n throw new Error('Invalid eventName');\r\n }\r\n var eventContract = telemetryEvent.eventContract;\r\n if (eventContract) {\r\n if (eventContract.name && !isNameValid(eventContract.name)) {\r\n throw new Error('Invalid eventContract');\r\n }\r\n validateDataFields(eventContract.dataFields);\r\n }\r\n validateDataFields(telemetryEvent.dataFields);\r\n}\r\nfunction isEventNameValid(eventName) {\r\n if (!eventName || eventName.length > MaxEventNameLength) {\r\n return false;\r\n }\r\n return EventNameRegex.test(eventName);\r\n}\r\nfunction isNameValid(name) {\r\n return AlphanumericRegex.test(name);\r\n}\r\nfunction validateDataFields(dataFields) {\r\n if (!dataFields) {\r\n return;\r\n }\r\n dataFields.forEach(function (dataField) {\r\n if (typeof dataField.name !== 'string' || !isNameValid(dataField.name)) {\r\n throw new Error('Invalid dataField name');\r\n }\r\n if (dataField.dataType === 2 /* DataFieldType.Int64 */) {\r\n validateInt(dataField.value);\r\n }\r\n });\r\n}\r\nfunction validateInt(value) {\r\n if (typeof value !== 'number' || !isFinite(value) || Math.floor(value) !== value || value < INT64_MIN || value > INT64_MAX) {\r\n throw new Error(\"Invalid integer \".concat(JSON.stringify(value)));\r\n }\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1RlbGVtZXRyeUV2ZW50VmFsaWRhdG9yLnRzPzQ1YTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUFBQTtBQUFBO0FBQUEsSUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUM7QUFDbkMsSUFBTSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUM7QUFFN0IsSUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUMsQ0FBQyx3REFBd0Q7QUFFdkYsdUdBQXVHO0FBQ3ZHLG1DQUFtQztBQUNuQyxJQUFNLGNBQWMsR0FBRyxtQ0FBbUMsQ0FBQztBQUUzRCxrQ0FBa0M7QUFDbEMsK0VBQStFO0FBQy9FLElBQU0saUJBQWlCLEdBQUcsd0JBQXdCLENBQUM7QUFFNUMsU0FBUyxzQkFBc0IsQ0FBQyxjQUE4QjtJQUNuRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUN0QztJQUVELElBQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUM7SUFDbkQsSUFBSSxhQUFhLEVBQUU7UUFDakIsSUFBSSxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxRCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7U0FDMUM7UUFDRCxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7S0FDOUM7SUFFRCxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUMsU0FBNkI7SUFDckQsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLGtCQUFrQixFQUFFO1FBQ3ZELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQVk7SUFDL0IsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsVUFBbUM7SUFDN0QsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNmLE9BQU87S0FDUjtJQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsbUJBQVM7UUFDMUIsSUFBSSxPQUFPLFNBQVMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0RSxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7U0FDM0M7UUFFRCxJQUFJLFNBQVMsQ0FBQyxRQUFRLGdDQUF3QixFQUFFO1lBQzlDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFTSxTQUFTLFdBQVcsQ0FBQyxLQUFVO0lBQ3BDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLEtBQUssR0FBRyxTQUFTLElBQUksS0FBSyxHQUFHLFNBQVMsRUFBRTtRQUMxSCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUFtQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFFLENBQUMsQ0FBQztLQUM3RDtBQUNILENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvZGlzdC9UZWxlbWV0cnlFdmVudFZhbGlkYXRvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbGVtZXRyeUV2ZW50LCBEYXRhRmllbGQsIERhdGFGaWVsZFR5cGUgfSBmcm9tICcuL0RhdGFNb2RlbHMnO1xyXG5cclxuY29uc3QgSU5UNjRfTUFYID0gOTAwNzE5OTI1NDc0MDk5MTtcclxuY29uc3QgSU5UNjRfTUlOID0gLUlOVDY0X01BWDtcclxuXHJcbmNvbnN0IE1heEV2ZW50TmFtZUxlbmd0aCA9IDk4OyAvLyBDbGllbnQgQ29kZSA9IDEwMCBsaW1pdDsgQXJpYSBDb21wYWN0IFNESyA9IDk4IGxpbWl0LlxyXG5cclxuLy8gU3RhcnRzIHdpdGggXCJPZmZpY2VcIiwgYW5kIHRoZW4gYXQgbGVhc3QgdHdvIG1vcmUgYWxwaGFudW1lcmljIHRva2VucyB0aGF0IHN0YXJ0IHdpdGggY2FwaXRhbCBsZXR0ZXJzXHJcbi8vIFRva2VucyBhcmUgc2VwYXJhdGVkIGJ5IHBlcmlvZHMuXHJcbmNvbnN0IEV2ZW50TmFtZVJlZ2V4ID0gL15PZmZpY2UoXFwuW0EtWl1bYS16QS1aMC05XSopezIsfSQvO1xyXG5cclxuLy8gQ29udGFpbnMgYWxwaGFudW1lcmljIG9yIF8gb3IgLlxyXG4vLyBNdXN0IGJlIGJldHdlZW4gMSBhbmQgOTUgY2hhcmFjdGVycyBsb25nICg1IGNoYXJhY3RlcnMgcmVzZXJ2ZWQgZm9yICdEYXRhLicpXHJcbmNvbnN0IEFscGhhbnVtZXJpY1JlZ2V4ID0gL15bYS16QS1aMC05X1xcLl17MSw5NX0kLztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVRlbGVtZXRyeUV2ZW50KHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCkge1xyXG4gIGlmICghaXNFdmVudE5hbWVWYWxpZCh0ZWxlbWV0cnlFdmVudC5ldmVudE5hbWUpKSB7XHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZXZlbnROYW1lJyk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBldmVudENvbnRyYWN0ID0gdGVsZW1ldHJ5RXZlbnQuZXZlbnRDb250cmFjdDtcclxuICBpZiAoZXZlbnRDb250cmFjdCkge1xyXG4gICAgaWYgKGV2ZW50Q29udHJhY3QubmFtZSAmJiAhaXNOYW1lVmFsaWQoZXZlbnRDb250cmFjdC5uYW1lKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZXZlbnRDb250cmFjdCcpO1xyXG4gICAgfVxyXG4gICAgdmFsaWRhdGVEYXRhRmllbGRzKGV2ZW50Q29udHJhY3QuZGF0YUZpZWxkcyk7XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZURhdGFGaWVsZHModGVsZW1ldHJ5RXZlbnQuZGF0YUZpZWxkcyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzRXZlbnROYW1lVmFsaWQoZXZlbnROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICBpZiAoIWV2ZW50TmFtZSB8fCBldmVudE5hbWUubGVuZ3RoID4gTWF4RXZlbnROYW1lTGVuZ3RoKSB7XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gRXZlbnROYW1lUmVnZXgudGVzdChldmVudE5hbWUpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc05hbWVWYWxpZChuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICByZXR1cm4gQWxwaGFudW1lcmljUmVnZXgudGVzdChuYW1lKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdmFsaWRhdGVEYXRhRmllbGRzKGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgaWYgKCFkYXRhRmllbGRzKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG4gIGRhdGFGaWVsZHMuZm9yRWFjaChkYXRhRmllbGQgPT4ge1xyXG4gICAgaWYgKHR5cGVvZiBkYXRhRmllbGQubmFtZSAhPT0gJ3N0cmluZycgfHwgIWlzTmFtZVZhbGlkKGRhdGFGaWVsZC5uYW1lKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0YUZpZWxkIG5hbWUnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YUZpZWxkLmRhdGFUeXBlID09PSBEYXRhRmllbGRUeXBlLkludDY0KSB7XHJcbiAgICAgIHZhbGlkYXRlSW50KGRhdGFGaWVsZC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUludCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicgfHwgIWlzRmluaXRlKHZhbHVlKSB8fCBNYXRoLmZsb29yKHZhbHVlKSAhPT0gdmFsdWUgfHwgdmFsdWUgPCBJTlQ2NF9NSU4gfHwgdmFsdWUgPiBJTlQ2NF9NQVgpIHtcclxuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBpbnRlZ2VyICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xyXG4gIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/TelemetryEventValidator.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/TelemetryLogger.js": /*!****************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/TelemetryLogger.js ***! \****************************************************************/ /*! exports provided: TelemetryLogger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TelemetryLogger\", function() { return TelemetryLogger; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SimpleTelemetryLogger */ \"./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js\");\n/* harmony import */ var _Activity__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Activity */ \"./node_modules/@microsoft/oteljs/dist/Activity.js\");\n/* harmony import */ var _InternalContracts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./InternalContracts */ \"./node_modules/@microsoft/oteljs/dist/InternalContracts.js\");\n/* harmony import */ var _Contracts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Contracts */ \"./node_modules/@microsoft/oteljs/dist/Contracts.js\");\n/* harmony import */ var _CorrelationVector__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./CorrelationVector */ \"./node_modules/@microsoft/oteljs/dist/CorrelationVector.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * A TelemetryLogger that includes more advanced functions than the SimpleTelemetryLogger,\r\n * specifically activities and errors.\r\n */\r\nvar TelemetryLogger = /** @class */ (function (_super) {\r\n Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__extends\"])(TelemetryLogger, _super);\r\n function TelemetryLogger(parent, persistentDataFields, config) {\r\n var _this = _super.call(this, parent, persistentDataFields, config) || this;\r\n _this.baseCv = Object(_CorrelationVector__WEBPACK_IMPORTED_MODULE_5__[\"getBaseCv\"])();\r\n return _this;\r\n }\r\n /**\r\n * Creates a new activity. The caller is responsible for setting the result and calling endNow.\r\n * @param telemetryEvent - The underlying telemetry event for this activity\r\n */\r\n TelemetryLogger.prototype.createActivity = function (telemetryEvent) {\r\n return Object(_Activity__WEBPACK_IMPORTED_MODULE_2__[\"createActivity\"])({\r\n sendTelemetryEvent: this.sendTelemetryEvent.bind(this),\r\n telemetryEvent: telemetryEvent,\r\n parentCv: this.baseCv\r\n });\r\n };\r\n /**\r\n * Advanced usage: Sends an activity. The caller is responsible for setting all of the activity parameters.\r\n * @param activityName - The name of the activity\r\n * @param activity - The activity contract\r\n * @param dataFields - Optional additional data fields\r\n * @param eventFlags - Event flags\r\n */\r\n TelemetryLogger.prototype.sendActivity = function (activityName, activity, dataFields, eventFlags) {\r\n return this.sendTelemetryEvent({\r\n eventName: activityName,\r\n eventContract: {\r\n name: _Contracts__WEBPACK_IMPORTED_MODULE_4__[\"Activity\"].contractName,\r\n dataFields: _Contracts__WEBPACK_IMPORTED_MODULE_4__[\"Activity\"].getFields(activity)\r\n },\r\n dataFields: dataFields,\r\n eventFlags: eventFlags\r\n });\r\n };\r\n /**\r\n * Sends an event with the Error data contract. A convenience wrapper around sendTelemetryEvent, with\r\n * an Error as a data field.\r\n * @param error - an ErrorEvent that represents the error\r\n */\r\n TelemetryLogger.prototype.sendError = function (error) {\r\n var dataFields = _InternalContracts__WEBPACK_IMPORTED_MODULE_3__[\"Error\"].getFields(error.error);\r\n if (error.dataFields != null) {\r\n dataFields.push.apply(dataFields, error.dataFields);\r\n }\r\n return this.sendTelemetryEvent({\r\n eventName: error.eventName,\r\n dataFields: dataFields,\r\n eventFlags: error.eventFlags\r\n });\r\n };\r\n /**\r\n * Creates a customer content activity, which should be ended by the caller by calling endNow().\r\n * @param telemetryEvent - the underlying telemetry event for the activity\r\n * @param customerContentType - the type of the customer content\r\n */\r\n TelemetryLogger.prototype.createCustomerContentActivity = function (customerContentEvent) {\r\n return Object(_Activity__WEBPACK_IMPORTED_MODULE_2__[\"createActivity\"])({\r\n sendTelemetryEvent: this.sendCustomerContent.bind(this),\r\n telemetryEvent: customerContentEvent,\r\n parentCv: this.baseCv\r\n });\r\n };\r\n return TelemetryLogger;\r\n}(_SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_1__[\"SimpleTelemetryLogger\"]));\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1RlbGVtZXRyeUxvZ2dlci50cz9mOTA3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF3RjtBQUM1QjtBQUNoQjtBQUNMO0FBR2E7QUE4Q3BEOzs7R0FHRztBQUNIO0lBQXFDLGlGQUFxQjtJQUV4RCx5QkFBWSxNQUErQixFQUFFLG9CQUFrQyxFQUFFLE1BQXlCO1FBQTFHLFlBQ0Usa0JBQU0sTUFBTSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxTQUU1QztRQURDLEtBQUksQ0FBQyxNQUFNLEdBQUcsb0VBQVMsRUFBRSxDQUFDOztJQUM1QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksd0NBQWMsR0FBckIsVUFBc0IsY0FBOEI7UUFDbEQsT0FBTyxnRUFBYyxDQUFDO1lBQ3BCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3RELGNBQWM7WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU07U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLHNDQUFZLEdBQW5CLFVBQW9CLFlBQW9CLEVBQUUsUUFBMkIsRUFBRSxVQUF1QixFQUFFLFVBQXNCO1FBQ3BILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO1lBQzdCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLGFBQWEsRUFBRTtnQkFDYixJQUFJLEVBQUUsbURBQVEsQ0FBQyxZQUFZO2dCQUMzQixVQUFVLEVBQUUsbURBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO2FBQ3pDO1lBQ0QsVUFBVTtZQUNWLFVBQVU7U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1DQUFTLEdBQWhCLFVBQWlCLEtBQWlCO1FBQ2hDLElBQUksVUFBVSxHQUFnQix3REFBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxLQUFLLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRTtZQUM1QixVQUFVLENBQUMsSUFBSSxPQUFmLFVBQVUsRUFBUyxLQUFLLENBQUMsVUFBVSxFQUFFO1NBQ3RDO1FBQ0QsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7WUFDN0IsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTO1lBQzFCLFVBQVU7WUFDVixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx1REFBNkIsR0FBcEMsVUFBcUMsb0JBQTBDO1FBQzdFLE9BQU8sZ0VBQWMsQ0FBQztZQUNwQixrQkFBa0IsRUFBRyxJQUFJLENBQUMsbUJBQW1ELENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4RixjQUFjLEVBQUUsb0JBQW9CO1lBQ3BDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTTtTQUN0QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0gsc0JBQUM7QUFBRCxDQUFDLENBbkVvQyw0RUFBcUIsR0FtRXpEIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvVGVsZW1ldHJ5TG9nZ2VyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyLCBJU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyIH0gZnJvbSAnLi9TaW1wbGVUZWxlbWV0cnlMb2dnZXInO1xyXG5pbXBvcnQgeyBjcmVhdGVBY3Rpdml0eSwgSUFjdGl2aXR5U2NvcGUgfSBmcm9tICcuL0FjdGl2aXR5JztcclxuaW1wb3J0IHsgRXJyb3IgfSBmcm9tICcuL0ludGVybmFsQ29udHJhY3RzJztcclxuaW1wb3J0IHsgQWN0aXZpdHkgfSBmcm9tICcuL0NvbnRyYWN0cyc7XHJcbmltcG9ydCB7IEV2ZW50RmxhZ3MsIERhdGFGaWVsZCwgVGVsZW1ldHJ5RXZlbnQsIEN1c3RvbWVyQ29udGVudEV2ZW50IH0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuaW1wb3J0IHsgSVRlbGVtZXRyeUNvbmZpZyB9IGZyb20gJy4nO1xyXG5pbXBvcnQgeyBDViwgZ2V0QmFzZUN2IH0gZnJvbSAnLi9Db3JyZWxhdGlvblZlY3Rvcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yRXZlbnQge1xyXG4gIGV2ZW50TmFtZTogc3RyaW5nO1xyXG4gIGVycm9yOiBFcnJvci5Db250cmFjdDtcclxuICBldmVudEZsYWdzOiBFdmVudEZsYWdzO1xyXG4gIGRhdGFGaWVsZHM/OiBEYXRhRmllbGRbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJVGVsZW1ldHJ5TG9nZ2VyIGV4dGVuZHMgSVNpbXBsZVRlbGVtZXRyeUxvZ2dlciB7XHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlcyBhIG5ldyBhY3Rpdml0eS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGUgcmVzdWx0IGFuZCBjYWxsaW5nIGVuZE5vdy5cclxuICAgKiBAcGFyYW0gdGVsZW1ldHJ5RXZlbnQgLSBUaGUgdW5kZXJseWluZyB0ZWxlbWV0cnkgZXZlbnQgZm9yIHRoaXMgYWN0aXZpdHlcclxuICAgKi9cclxuICBjcmVhdGVBY3Rpdml0eSh0ZWxlbWV0cnlFdmVudDogVGVsZW1ldHJ5RXZlbnQsIHBhcmVudD86IElBY3Rpdml0eVNjb3BlKTogSUFjdGl2aXR5U2NvcGU7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkdmFuY2VkIHVzYWdlOiBTZW5kcyBhbiBhY3Rpdml0eS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyBhbGwgb2YgdGhlIGFjdGl2aXR5IHBhcmFtZXRlcnMuXHJcbiAgICogQHBhcmFtIGFjdGl2aXR5TmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBhY3Rpdml0eVxyXG4gICAqIEBwYXJhbSBhY3Rpdml0eSAtIFRoZSBhY3Rpdml0eSBjb250cmFjdFxyXG4gICAqIEBwYXJhbSBkYXRhRmllbGRzIC0gT3B0aW9uYWwgYWRkaXRpb25hbCBkYXRhIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBldmVudEZsYWdzIC0gRXZlbnQgZmxhZ3NcclxuICAgKi9cclxuICBzZW5kQWN0aXZpdHkoYWN0aXZpdHlOYW1lOiBzdHJpbmcsIGFjdGl2aXR5OiBBY3Rpdml0eS5Db250cmFjdCwgZGF0YUZpZWxkcz86IERhdGFGaWVsZFtdLCBldmVudEZsYWdzPzogRXZlbnRGbGFncyk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGFuIGV2ZW50IHdpdGggdGhlIEVycm9yIGRhdGEgY29udHJhY3QuIEEgY29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgc2VuZFRlbGVtZXRyeUV2ZW50LCB3aXRoXHJcbiAgICogYW4gRXJyb3IgYXMgYSBkYXRhIGZpZWxkLlxyXG4gICAqIEBwYXJhbSBldmVudE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgZXZlbnRcclxuICAgKiBAcGFyYW0gZXJyb3JHcm91cCAtIFRoZSBncm91cCBvZiB0aGUgZXJyb3JcclxuICAgKiBAcGFyYW0gdGFnIC0gVGhlIGVycm9yIHRhZ1xyXG4gICAqIEBwYXJhbSBjb2RlIC0gVGhlIGVycm9yIGNvZGVcclxuICAgKiBAcGFyYW0gaWQgLSBUaGUgZXJyb3IgaWRcclxuICAgKiBAcGFyYW0gY291bnQgLSBUaGUgY291bnQgb2YgdGhlIGVycm9yXHJcbiAgICogQHBhcmFtIGRhdGFGaWVsZHMgLSBEYXRhIGZpZWxkcyB0byBzZW5kIHdpdGggdGhlIGV2ZW50XHJcbiAgICogQHBhcmFtIGV2ZW50RmxhZ3MgLSBPcHRpb25hbCBldmVudCBmbGFncyB0byB1c2UgZm9yIHRoZSBlcnJvclxyXG4gICAqL1xyXG4gIHNlbmRFcnJvcih0ZWxlbWV0cnlFdmVudDogRXJyb3JFdmVudCk6IHZvaWQ7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBjdXN0b21lciBjb250ZW50IGFjdGl2aXR5LCB3aGljaCBzaG91bGQgYmUgZW5kZWQgYnkgdGhlIGNhbGxlciBieSBjYWxsaW5nIGVuZE5vdygpLlxyXG4gICAqIEBwYXJhbSBjdXN0b21lckNvbnRlbnRFdmVudCAtIFRoZSB1bmRlcmx5aW5nIGN1c3RvbWVyIGNvbnRlbnQgZXZlbnQgZm9yIHRoaXMgYWN0aXZpdHlcclxuICAgKi9cclxuICBjcmVhdGVDdXN0b21lckNvbnRlbnRBY3Rpdml0eShjdXN0b21lckNvbnRlbnRFdmVudDogQ3VzdG9tZXJDb250ZW50RXZlbnQpOiBJQWN0aXZpdHlTY29wZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgVGVsZW1ldHJ5TG9nZ2VyIHRoYXQgaW5jbHVkZXMgbW9yZSBhZHZhbmNlZCBmdW5jdGlvbnMgdGhhbiB0aGUgU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyLFxyXG4gKiBzcGVjaWZpY2FsbHkgYWN0aXZpdGllcyBhbmQgZXJyb3JzLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFRlbGVtZXRyeUxvZ2dlciBleHRlbmRzIFNpbXBsZVRlbGVtZXRyeUxvZ2dlciBpbXBsZW1lbnRzIElUZWxlbWV0cnlMb2dnZXIge1xyXG4gIHByaXZhdGUgYmFzZUN2OiBDVjtcclxuICBjb25zdHJ1Y3RvcihwYXJlbnQ/OiBJU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyLCBwZXJzaXN0ZW50RGF0YUZpZWxkcz86IERhdGFGaWVsZFtdLCBjb25maWc/OiBJVGVsZW1ldHJ5Q29uZmlnKSB7XHJcbiAgICBzdXBlcihwYXJlbnQsIHBlcnNpc3RlbnREYXRhRmllbGRzLCBjb25maWcpO1xyXG4gICAgdGhpcy5iYXNlQ3YgPSBnZXRCYXNlQ3YoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBuZXcgYWN0aXZpdHkuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdGhlIHJlc3VsdCBhbmQgY2FsbGluZyBlbmROb3cuXHJcbiAgICogQHBhcmFtIHRlbGVtZXRyeUV2ZW50IC0gVGhlIHVuZGVybHlpbmcgdGVsZW1ldHJ5IGV2ZW50IGZvciB0aGlzIGFjdGl2aXR5XHJcbiAgICovXHJcbiAgcHVibGljIGNyZWF0ZUFjdGl2aXR5KHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCk6IElBY3Rpdml0eVNjb3BlIHtcclxuICAgIHJldHVybiBjcmVhdGVBY3Rpdml0eSh7XHJcbiAgICAgIHNlbmRUZWxlbWV0cnlFdmVudDogdGhpcy5zZW5kVGVsZW1ldHJ5RXZlbnQuYmluZCh0aGlzKSxcclxuICAgICAgdGVsZW1ldHJ5RXZlbnQsXHJcbiAgICAgIHBhcmVudEN2OiB0aGlzLmJhc2VDdlxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBZHZhbmNlZCB1c2FnZTogU2VuZHMgYW4gYWN0aXZpdHkuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgYWxsIG9mIHRoZSBhY3Rpdml0eSBwYXJhbWV0ZXJzLlxyXG4gICAqIEBwYXJhbSBhY3Rpdml0eU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgYWN0aXZpdHlcclxuICAgKiBAcGFyYW0gYWN0aXZpdHkgLSBUaGUgYWN0aXZpdHkgY29udHJhY3RcclxuICAgKiBAcGFyYW0gZGF0YUZpZWxkcyAtIE9wdGlvbmFsIGFkZGl0aW9uYWwgZGF0YSBmaWVsZHNcclxuICAgKiBAcGFyYW0gZXZlbnRGbGFncyAtIEV2ZW50IGZsYWdzXHJcbiAgICovXHJcbiAgcHVibGljIHNlbmRBY3Rpdml0eShhY3Rpdml0eU5hbWU6IHN0cmluZywgYWN0aXZpdHk6IEFjdGl2aXR5LkNvbnRyYWN0LCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSwgZXZlbnRGbGFnczogRXZlbnRGbGFncykge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VuZFRlbGVtZXRyeUV2ZW50KHtcclxuICAgICAgZXZlbnROYW1lOiBhY3Rpdml0eU5hbWUsXHJcbiAgICAgIGV2ZW50Q29udHJhY3Q6IHtcclxuICAgICAgICBuYW1lOiBBY3Rpdml0eS5jb250cmFjdE5hbWUsXHJcbiAgICAgICAgZGF0YUZpZWxkczogQWN0aXZpdHkuZ2V0RmllbGRzKGFjdGl2aXR5KVxyXG4gICAgICB9LFxyXG4gICAgICBkYXRhRmllbGRzLFxyXG4gICAgICBldmVudEZsYWdzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbmRzIGFuIGV2ZW50IHdpdGggdGhlIEVycm9yIGRhdGEgY29udHJhY3QuIEEgY29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgc2VuZFRlbGVtZXRyeUV2ZW50LCB3aXRoXHJcbiAgICogYW4gRXJyb3IgYXMgYSBkYXRhIGZpZWxkLlxyXG4gICAqIEBwYXJhbSBlcnJvciAtIGFuIEVycm9yRXZlbnQgdGhhdCByZXByZXNlbnRzIHRoZSBlcnJvclxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZW5kRXJyb3IoZXJyb3I6IEVycm9yRXZlbnQpIHtcclxuICAgIGxldCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IEVycm9yLmdldEZpZWxkcyhlcnJvci5lcnJvcik7XHJcbiAgICBpZiAoZXJyb3IuZGF0YUZpZWxkcyAhPSBudWxsKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaCguLi5lcnJvci5kYXRhRmllbGRzKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnNlbmRUZWxlbWV0cnlFdmVudCh7XHJcbiAgICAgIGV2ZW50TmFtZTogZXJyb3IuZXZlbnROYW1lLFxyXG4gICAgICBkYXRhRmllbGRzLFxyXG4gICAgICBldmVudEZsYWdzOiBlcnJvci5ldmVudEZsYWdzXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZXMgYSBjdXN0b21lciBjb250ZW50IGFjdGl2aXR5LCB3aGljaCBzaG91bGQgYmUgZW5kZWQgYnkgdGhlIGNhbGxlciBieSBjYWxsaW5nIGVuZE5vdygpLlxyXG4gICAqIEBwYXJhbSB0ZWxlbWV0cnlFdmVudCAtIHRoZSB1bmRlcmx5aW5nIHRlbGVtZXRyeSBldmVudCBmb3IgdGhlIGFjdGl2aXR5XHJcbiAgICogQHBhcmFtIGN1c3RvbWVyQ29udGVudFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgY3VzdG9tZXIgY29udGVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyBjcmVhdGVDdXN0b21lckNvbnRlbnRBY3Rpdml0eShjdXN0b21lckNvbnRlbnRFdmVudDogQ3VzdG9tZXJDb250ZW50RXZlbnQpOiBJQWN0aXZpdHlTY29wZSB7XHJcbiAgICByZXR1cm4gY3JlYXRlQWN0aXZpdHkoe1xyXG4gICAgICBzZW5kVGVsZW1ldHJ5RXZlbnQ6ICh0aGlzLnNlbmRDdXN0b21lckNvbnRlbnQgYXMgKHQ6IFRlbGVtZXRyeUV2ZW50KSA9PiB2b2lkKS5iaW5kKHRoaXMpLFxyXG4gICAgICB0ZWxlbWV0cnlFdmVudDogY3VzdG9tZXJDb250ZW50RXZlbnQsXHJcbiAgICAgIHBhcmVudEN2OiB0aGlzLmJhc2VDdlxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/TelemetryLogger.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/TenantTokenManager.js": /*!*******************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/TenantTokenManager.js ***! \*******************************************************************/ /*! exports provided: setTenantTokens, fillTenantTokens, clear */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setTenantTokens\", function() { return setTenantTokens; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fillTenantTokens\", function() { return fillTenantTokens; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clear\", function() { return clear; });\n/* harmony import */ var _OTelNotifications__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./OTelNotifications */ \"./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\");\n\r\nvar NAMESPACE_SEPARATOR = '.';\r\nvar tenantTokens = {};\r\nfunction setTenantTokens(namespace, telemetryProperties) {\r\n if (\r\n // Starts with \"Office.\" and doesn't end with \".\"\r\n namespace.substring(0, 7) === 'Office' + NAMESPACE_SEPARATOR &&\r\n namespace[namespace.length - 1] !== NAMESPACE_SEPARATOR) {\r\n if (tenantTokens[namespace]) {\r\n if (telemetryProperties.ariaTenantToken) {\r\n tenantTokens[namespace].ariaTenantToken = telemetryProperties.ariaTenantToken;\r\n }\r\n if (telemetryProperties.dnmToken) {\r\n tenantTokens[namespace].dnmToken = telemetryProperties.dnmToken;\r\n }\r\n }\r\n else {\r\n tenantTokens[namespace] = telemetryProperties;\r\n }\r\n }\r\n else {\r\n Object(_OTelNotifications__WEBPACK_IMPORTED_MODULE_0__[\"logNotification\"])(0 /* LogLevel.Error */, 0 /* Category.Core */, function () {\r\n return \"Namespace: \".concat(namespace);\r\n });\r\n return;\r\n }\r\n}\r\n/**\r\n * Gets the tenant tokens corresponding to an event\r\n * Strategy: Search for the whole string, then substrings that could be the namespace\r\n * @param eventName - The event name\r\n * @returns - The corresponding tenant tokens, or undefined if none found\r\n */\r\nfunction fillTenantTokens(eventName, telemetryProperties) {\r\n var indexOfCharacterAfterNamespace = eventName.length;\r\n while (indexOfCharacterAfterNamespace > 0) {\r\n var namespaceCandidate = eventName.substr(0, indexOfCharacterAfterNamespace);\r\n if (tenantTokens[namespaceCandidate]) {\r\n var storedTelemetryProperties = tenantTokens[namespaceCandidate];\r\n telemetryProperties.ariaTenantToken = storedTelemetryProperties.ariaTenantToken;\r\n telemetryProperties.dnmToken = storedTelemetryProperties.dnmToken;\r\n return true;\r\n }\r\n indexOfCharacterAfterNamespace = eventName.lastIndexOf(NAMESPACE_SEPARATOR, indexOfCharacterAfterNamespace - 1);\r\n }\r\n return false;\r\n}\r\nfunction clear() {\r\n tenantTokens = {};\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1RlbmFudFRva2VuTWFuYWdlci50cz80ZjA2Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBc0Q7QUFHdEQsSUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQUM7QUFFaEMsSUFBSSxZQUFZLEdBQWlELEVBQUUsQ0FBQztBQUU3RCxTQUFTLGVBQWUsQ0FBQyxTQUFpQixFQUFFLG1CQUF3QztJQUN6RjtJQUNFLGlEQUFpRDtJQUNqRCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxRQUFRLEdBQUcsbUJBQW1CO1FBQzVELFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLG1CQUFtQixFQUN2RDtRQUNBLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzNCLElBQUksbUJBQW1CLENBQUMsZUFBZSxFQUFFO2dCQUN2QyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsZUFBZSxHQUFHLG1CQUFtQixDQUFDLGVBQWUsQ0FBQzthQUMvRTtZQUNELElBQUksbUJBQW1CLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQzthQUNqRTtTQUNGO2FBQU07WUFDTCxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7U0FDL0M7S0FDRjtTQUFNO1FBQ0wsMEVBQWUsZ0RBQWdDO1lBQzdDLE9BQU8scUJBQWMsU0FBUyxDQUFFLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO0tBQ1I7QUFDSCxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSSxTQUFTLGdCQUFnQixDQUFDLFNBQWlCLEVBQUUsbUJBQXdDO0lBQzFGLElBQUksOEJBQThCLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztJQUN0RCxPQUFPLDhCQUE4QixHQUFHLENBQUMsRUFBRTtRQUN6QyxJQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFDL0UsSUFBSSxZQUFZLENBQUMsa0JBQWtCLENBQUMsRUFBRTtZQUNwQyxJQUFNLHlCQUF5QixHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBRW5FLG1CQUFtQixDQUFDLGVBQWUsR0FBRyx5QkFBeUIsQ0FBQyxlQUFlLENBQUM7WUFDaEYsbUJBQW1CLENBQUMsUUFBUSxHQUFHLHlCQUF5QixDQUFDLFFBQVEsQ0FBQztZQUNsRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsOEJBQThCLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsRUFBRSw4QkFBOEIsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNqSDtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVNLFNBQVMsS0FBSztJQUNuQixZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3BCLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvZGlzdC9UZW5hbnRUb2tlbk1hbmFnZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBsb2dOb3RpZmljYXRpb24gfSBmcm9tICcuL09UZWxOb3RpZmljYXRpb25zJztcclxuaW1wb3J0IHsgVGVsZW1ldHJ5UHJvcGVydGllcywgTG9nTGV2ZWwsIENhdGVnb3J5IH0gZnJvbSAnLi9EYXRhTW9kZWxzJztcclxuXHJcbmNvbnN0IE5BTUVTUEFDRV9TRVBBUkFUT1IgPSAnLic7XHJcblxyXG5sZXQgdGVuYW50VG9rZW5zOiB7IFtuYW1lc3BhY2U6IHN0cmluZ106IFRlbGVtZXRyeVByb3BlcnRpZXMgfSA9IHt9O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNldFRlbmFudFRva2VucyhuYW1lc3BhY2U6IHN0cmluZywgdGVsZW1ldHJ5UHJvcGVydGllczogVGVsZW1ldHJ5UHJvcGVydGllcykge1xyXG4gIGlmIChcclxuICAgIC8vIFN0YXJ0cyB3aXRoIFwiT2ZmaWNlLlwiIGFuZCBkb2Vzbid0IGVuZCB3aXRoIFwiLlwiXHJcbiAgICBuYW1lc3BhY2Uuc3Vic3RyaW5nKDAsIDcpID09PSAnT2ZmaWNlJyArIE5BTUVTUEFDRV9TRVBBUkFUT1IgJiZcclxuICAgIG5hbWVzcGFjZVtuYW1lc3BhY2UubGVuZ3RoIC0gMV0gIT09IE5BTUVTUEFDRV9TRVBBUkFUT1JcclxuICApIHtcclxuICAgIGlmICh0ZW5hbnRUb2tlbnNbbmFtZXNwYWNlXSkge1xyXG4gICAgICBpZiAodGVsZW1ldHJ5UHJvcGVydGllcy5hcmlhVGVuYW50VG9rZW4pIHtcclxuICAgICAgICB0ZW5hbnRUb2tlbnNbbmFtZXNwYWNlXS5hcmlhVGVuYW50VG9rZW4gPSB0ZWxlbWV0cnlQcm9wZXJ0aWVzLmFyaWFUZW5hbnRUb2tlbjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGVsZW1ldHJ5UHJvcGVydGllcy5kbm1Ub2tlbikge1xyXG4gICAgICAgIHRlbmFudFRva2Vuc1tuYW1lc3BhY2VdLmRubVRva2VuID0gdGVsZW1ldHJ5UHJvcGVydGllcy5kbm1Ub2tlbjtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGVuYW50VG9rZW5zW25hbWVzcGFjZV0gPSB0ZWxlbWV0cnlQcm9wZXJ0aWVzO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBsb2dOb3RpZmljYXRpb24oTG9nTGV2ZWwuRXJyb3IsIENhdGVnb3J5LkNvcmUsICgpID0+IHtcclxuICAgICAgcmV0dXJuIGBOYW1lc3BhY2U6ICR7bmFtZXNwYWNlfWA7XHJcbiAgICB9KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHRoZSB0ZW5hbnQgdG9rZW5zIGNvcnJlc3BvbmRpbmcgdG8gYW4gZXZlbnRcclxuICogU3RyYXRlZ3k6IFNlYXJjaCBmb3IgdGhlIHdob2xlIHN0cmluZywgdGhlbiBzdWJzdHJpbmdzIHRoYXQgY291bGQgYmUgdGhlIG5hbWVzcGFjZVxyXG4gKiBAcGFyYW0gZXZlbnROYW1lIC0gVGhlIGV2ZW50IG5hbWVcclxuICogQHJldHVybnMgLSBUaGUgY29ycmVzcG9uZGluZyB0ZW5hbnQgdG9rZW5zLCBvciB1bmRlZmluZWQgaWYgbm9uZSBmb3VuZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbGxUZW5hbnRUb2tlbnMoZXZlbnROYW1lOiBzdHJpbmcsIHRlbGVtZXRyeVByb3BlcnRpZXM6IFRlbGVtZXRyeVByb3BlcnRpZXMpOiBib29sZWFuIHtcclxuICBsZXQgaW5kZXhPZkNoYXJhY3RlckFmdGVyTmFtZXNwYWNlID0gZXZlbnROYW1lLmxlbmd0aDtcclxuICB3aGlsZSAoaW5kZXhPZkNoYXJhY3RlckFmdGVyTmFtZXNwYWNlID4gMCkge1xyXG4gICAgY29uc3QgbmFtZXNwYWNlQ2FuZGlkYXRlID0gZXZlbnROYW1lLnN1YnN0cigwLCBpbmRleE9mQ2hhcmFjdGVyQWZ0ZXJOYW1lc3BhY2UpO1xyXG4gICAgaWYgKHRlbmFudFRva2Vuc1tuYW1lc3BhY2VDYW5kaWRhdGVdKSB7XHJcbiAgICAgIGNvbnN0IHN0b3JlZFRlbGVtZXRyeVByb3BlcnRpZXMgPSB0ZW5hbnRUb2tlbnNbbmFtZXNwYWNlQ2FuZGlkYXRlXTtcclxuXHJcbiAgICAgIHRlbGVtZXRyeVByb3BlcnRpZXMuYXJpYVRlbmFudFRva2VuID0gc3RvcmVkVGVsZW1ldHJ5UHJvcGVydGllcy5hcmlhVGVuYW50VG9rZW47XHJcbiAgICAgIHRlbGVtZXRyeVByb3BlcnRpZXMuZG5tVG9rZW4gPSBzdG9yZWRUZWxlbWV0cnlQcm9wZXJ0aWVzLmRubVRva2VuO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIGluZGV4T2ZDaGFyYWN0ZXJBZnRlck5hbWVzcGFjZSA9IGV2ZW50TmFtZS5sYXN0SW5kZXhPZihOQU1FU1BBQ0VfU0VQQVJBVE9SLCBpbmRleE9mQ2hhcmFjdGVyQWZ0ZXJOYW1lc3BhY2UgLSAxKTtcclxuICB9XHJcbiAgcmV0dXJuIGZhbHNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2xlYXIoKSB7XHJcbiAgdGVuYW50VG9rZW5zID0ge307XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/TenantTokenManager.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/Utils.js": /*!******************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/Utils.js ***! \******************************************************/ /*! exports provided: sendHealthQosError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendHealthQosError\", function() { return sendHealthQosError; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Contracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Contracts */ \"./node_modules/@microsoft/oteljs/dist/Contracts.js\");\n/* harmony import */ var _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SimpleTelemetryLogger */ \"./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js\");\n/**\r\n * Utils are standalone useful tools for other packages that consume OTelJS.\r\n * If they are unused, then Webpack does not bundle them.\r\n * Utils must not be imported internally by other modules in OTelJS.\r\n */\r\n\r\n\r\n\r\n/**\r\n * Sends a Health Qos event. See https://aka.ms/asha/docs for documentation on usage and parameters.\r\n * @param telemetryLogger - The telemetry logger\r\n * @param tenant - The name and token for the tenant. The name should be something like \"Office.SDX.Health\"\r\n */\r\nfunction sendHealthQosError(telemetryLogger, tenant, errorName, vetoes, pillar, isIntentional, isInternal, alertOnPillar, isSessionEndingError, inStaging, additionalDataFields) {\r\n vetoes.forEach(function (veto) {\r\n telemetryLogger.sendTelemetryEvent({\r\n eventName: tenant.name + '.Qos.Error.' + errorName,\r\n eventFlags: {\r\n diagnosticLevel: 110 /* DiagnosticLevel.RequiredServiceData */\r\n },\r\n dataFields: Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__spreadArray\"])([], _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"HealthQosError\"].getFields({\r\n veto: veto,\r\n pillar: pillar,\r\n isIntentional: isIntentional,\r\n isInternal: isInternal,\r\n alertOnPillar: alertOnPillar,\r\n isSessionEndingError: isSessionEndingError,\r\n inStaging: inStaging\r\n }), true), (additionalDataFields || []), true),\r\n telemetryProperties: {\r\n ariaTenantToken: tenant.token,\r\n nexusTenantToken: _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_2__[\"SuppressNexus\"]\r\n }\r\n });\r\n });\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1V0aWxzLnRzP2Y5MGIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0dBSUc7O0FBR3lEO0FBRUo7QUFFeEQ7Ozs7R0FJRztBQUNJLFNBQVMsa0JBQWtCLENBQ2hDLGVBQWdDLEVBQ2hDLE1BQXVDLEVBQ3ZDLFNBQWlCLEVBQ2pCLE1BQWdCLEVBQ2hCLE1BQXFCLEVBQ3JCLGFBQXNCLEVBQ3RCLFVBQW1CLEVBQ25CLGFBQXNCLEVBQ3RCLG9CQUE2QixFQUM3QixTQUFtQixFQUNuQixvQkFBa0M7SUFFbEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFJO1FBQ2pCLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQztZQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksR0FBRyxhQUFhLEdBQUcsU0FBUztZQUNsRCxVQUFVLEVBQUU7Z0JBQ1YsZUFBZSwrQ0FBcUM7YUFDckQ7WUFDRCxVQUFVLEVBQUUsNEhBQ1AseURBQWMsQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLElBQUk7Z0JBQ0osTUFBTTtnQkFDTixhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsYUFBYTtnQkFDYixvQkFBb0I7Z0JBQ3BCLFNBQVM7YUFDVixDQUFDLFNBQ0MsQ0FBQyxvQkFBb0IsSUFBSSxFQUFFLENBQUMsT0FDaEM7WUFDRCxtQkFBbUIsRUFBRTtnQkFDbkIsZUFBZSxFQUFFLE1BQU0sQ0FBQyxLQUFLO2dCQUM3QixnQkFBZ0IsRUFBRSxvRUFBYTthQUNoQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbWljcm9zb2Z0L290ZWxqcy9kaXN0L1V0aWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFV0aWxzIGFyZSBzdGFuZGFsb25lIHVzZWZ1bCB0b29scyBmb3Igb3RoZXIgcGFja2FnZXMgdGhhdCBjb25zdW1lIE9UZWxKUy5cclxuICogSWYgdGhleSBhcmUgdW51c2VkLCB0aGVuIFdlYnBhY2sgZG9lcyBub3QgYnVuZGxlIHRoZW0uXHJcbiAqIFV0aWxzIG11c3Qgbm90IGJlIGltcG9ydGVkIGludGVybmFsbHkgYnkgb3RoZXIgbW9kdWxlcyBpbiBPVGVsSlMuXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgRGF0YUZpZWxkLCBEaWFnbm9zdGljTGV2ZWwgfSBmcm9tICcuL0RhdGFNb2RlbHMnO1xyXG5pbXBvcnQgeyBRb3NQaWxsYXJOYW1lLCBIZWFsdGhRb3NFcnJvciB9IGZyb20gJy4vQ29udHJhY3RzJztcclxuaW1wb3J0IHsgVGVsZW1ldHJ5TG9nZ2VyIH0gZnJvbSAnLi9UZWxlbWV0cnlMb2dnZXInO1xyXG5pbXBvcnQgeyBTdXBwcmVzc05leHVzIH0gZnJvbSAnLi9TaW1wbGVUZWxlbWV0cnlMb2dnZXInO1xyXG5cclxuLyoqXHJcbiAqIFNlbmRzIGEgSGVhbHRoIFFvcyBldmVudC4gU2VlIGh0dHBzOi8vYWthLm1zL2FzaGEvZG9jcyBmb3IgZG9jdW1lbnRhdGlvbiBvbiB1c2FnZSBhbmQgcGFyYW1ldGVycy5cclxuICogQHBhcmFtIHRlbGVtZXRyeUxvZ2dlciAtIFRoZSB0ZWxlbWV0cnkgbG9nZ2VyXHJcbiAqIEBwYXJhbSB0ZW5hbnQgLSBUaGUgbmFtZSBhbmQgdG9rZW4gZm9yIHRoZSB0ZW5hbnQuIFRoZSBuYW1lIHNob3VsZCBiZSBzb21ldGhpbmcgbGlrZSBcIk9mZmljZS5TRFguSGVhbHRoXCJcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzZW5kSGVhbHRoUW9zRXJyb3IoXHJcbiAgdGVsZW1ldHJ5TG9nZ2VyOiBUZWxlbWV0cnlMb2dnZXIsXHJcbiAgdGVuYW50OiB7IG5hbWU6IHN0cmluZzsgdG9rZW46IHN0cmluZyB9LFxyXG4gIGVycm9yTmFtZTogc3RyaW5nLFxyXG4gIHZldG9lczogc3RyaW5nW10sXHJcbiAgcGlsbGFyOiBRb3NQaWxsYXJOYW1lLFxyXG4gIGlzSW50ZW50aW9uYWw6IGJvb2xlYW4sXHJcbiAgaXNJbnRlcm5hbDogYm9vbGVhbixcclxuICBhbGVydE9uUGlsbGFyOiBib29sZWFuLFxyXG4gIGlzU2Vzc2lvbkVuZGluZ0Vycm9yOiBib29sZWFuLFxyXG4gIGluU3RhZ2luZz86IGJvb2xlYW4sXHJcbiAgYWRkaXRpb25hbERhdGFGaWVsZHM/OiBEYXRhRmllbGRbXVxyXG4pIHtcclxuICB2ZXRvZXMuZm9yRWFjaCh2ZXRvID0+IHtcclxuICAgIHRlbGVtZXRyeUxvZ2dlci5zZW5kVGVsZW1ldHJ5RXZlbnQoe1xyXG4gICAgICBldmVudE5hbWU6IHRlbmFudC5uYW1lICsgJy5Rb3MuRXJyb3IuJyArIGVycm9yTmFtZSxcclxuICAgICAgZXZlbnRGbGFnczoge1xyXG4gICAgICAgIGRpYWdub3N0aWNMZXZlbDogRGlhZ25vc3RpY0xldmVsLlJlcXVpcmVkU2VydmljZURhdGFcclxuICAgICAgfSxcclxuICAgICAgZGF0YUZpZWxkczogW1xyXG4gICAgICAgIC4uLkhlYWx0aFFvc0Vycm9yLmdldEZpZWxkcyh7XHJcbiAgICAgICAgICB2ZXRvLFxyXG4gICAgICAgICAgcGlsbGFyLFxyXG4gICAgICAgICAgaXNJbnRlbnRpb25hbCxcclxuICAgICAgICAgIGlzSW50ZXJuYWwsXHJcbiAgICAgICAgICBhbGVydE9uUGlsbGFyLFxyXG4gICAgICAgICAgaXNTZXNzaW9uRW5kaW5nRXJyb3IsXHJcbiAgICAgICAgICBpblN0YWdpbmdcclxuICAgICAgICB9KSxcclxuICAgICAgICAuLi4oYWRkaXRpb25hbERhdGFGaWVsZHMgfHwgW10pXHJcbiAgICAgIF0sXHJcbiAgICAgIHRlbGVtZXRyeVByb3BlcnRpZXM6IHtcclxuICAgICAgICBhcmlhVGVuYW50VG9rZW46IHRlbmFudC50b2tlbixcclxuICAgICAgICBuZXh1c1RlbmFudFRva2VuOiBTdXBwcmVzc05leHVzXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0pO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/Utils.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/Version.js": /*!********************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/Version.js ***! \********************************************************/ /*! exports provided: oteljsVersion */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"oteljsVersion\", function() { return oteljsVersion; });\nvar oteljsVersion = '4.9.0';\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL1ZlcnNpb24udHM/NzEwNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQU8sSUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvVmVyc2lvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBvdGVsanNWZXJzaW9uID0gJzQuOS4wJztcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/Version.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/contracts/Contracts.js": /*!********************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/contracts/Contracts.js ***! \********************************************************************/ /*! exports provided: Contracts */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Contracts\", function() { return Contracts; });\n/* harmony import */ var _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./officeeventschema.tml */ \"./node_modules/@microsoft/oteljs/dist/contracts/officeeventschema.tml.js\");\n/* harmony import */ var _Office_System_Error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Office.System.Error */ \"./node_modules/@microsoft/oteljs/dist/contracts/Office.System.Error.js\");\n/* eslint-disable @typescript-eslint/no-namespace */\r\n\r\n\r\nvar _Activity = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"Activity\"];\r\nvar _Result = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"Result\"];\r\nvar _Error = _Office_System_Error__WEBPACK_IMPORTED_MODULE_1__[\"Error\"];\r\nvar _Funnel = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"Funnel\"];\r\nvar _Host = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"Host\"];\r\nvar _UserAction = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"UserAction\"];\r\nvar _User = _officeeventschema_tml__WEBPACK_IMPORTED_MODULE_0__[\"User\"];\r\nvar Contracts;\r\n(function (Contracts) {\r\n var Office;\r\n (function (Office) {\r\n var System;\r\n (function (System) {\r\n System.Activity = _Activity;\r\n System.Result = _Result;\r\n System.Error = _Error;\r\n System.Funnel = _Funnel;\r\n System.Host = _Host;\r\n System.User = _User;\r\n System.UserAction = _UserAction;\r\n })(System = Office.System || (Office.System = {}));\r\n })(Office = Contracts.Office || (Contracts.Office = {}));\r\n})(Contracts || (Contracts = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL2NvbnRyYWN0cy9Db250cmFjdHMudHM/ZjExZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLG9EQUFvRDtBQUN1QztBQUM3QztBQUU5QyxJQUFPLFNBQVMsR0FBRywrREFBUSxDQUFDO0FBQzVCLElBQU8sT0FBTyxHQUFHLDZEQUFNLENBQUM7QUFDeEIsSUFBTyxNQUFNLEdBQUcsMERBQUssQ0FBQztBQUN0QixJQUFPLE9BQU8sR0FBRyw2REFBTSxDQUFDO0FBQ3hCLElBQU8sS0FBSyxHQUFHLDJEQUFJLENBQUM7QUFDcEIsSUFBTyxXQUFXLEdBQUcsaUVBQVUsQ0FBQztBQUNoQyxJQUFPLEtBQUssR0FBRywyREFBSSxDQUFDO0FBRWIsSUFBVSxTQUFTLENBWXpCO0FBWkQsV0FBaUIsU0FBUztJQUN4QixJQUFpQixNQUFNLENBVXRCO0lBVkQsV0FBaUIsTUFBTTtRQUNyQixJQUFpQixNQUFNLENBUXRCO1FBUkQsV0FBaUIsTUFBTTtZQUNQLGVBQVEsR0FBRyxTQUFTLENBQUM7WUFDckIsYUFBTSxHQUFHLE9BQU8sQ0FBQztZQUNqQixZQUFLLEdBQUcsTUFBTSxDQUFDO1lBQ2YsYUFBTSxHQUFHLE9BQU8sQ0FBQztZQUNqQixXQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2IsV0FBSSxHQUFHLEtBQUssQ0FBQztZQUNiLGlCQUFVLEdBQUcsV0FBVyxDQUFDO1FBQ3pDLENBQUMsRUFSZ0IsTUFBTSxHQUFOLGFBQU0sS0FBTixhQUFNLFFBUXRCO0lBQ0gsQ0FBQyxFQVZnQixNQUFNLEdBQU4sZ0JBQU0sS0FBTixnQkFBTSxRQVV0QjtBQUNILENBQUMsRUFaZ0IsU0FBUyxLQUFULFNBQVMsUUFZekIiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvZGlzdC9jb250cmFjdHMvQ29udHJhY3RzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5hbWVzcGFjZSAqL1xyXG5pbXBvcnQgeyBBY3Rpdml0eSwgUmVzdWx0LCBGdW5uZWwsIEhvc3QsIFVzZXJBY3Rpb24sIFVzZXIgfSBmcm9tICcuL29mZmljZWV2ZW50c2NoZW1hLnRtbCc7XHJcbmltcG9ydCB7IEVycm9yIH0gZnJvbSAnLi9PZmZpY2UuU3lzdGVtLkVycm9yJztcclxuXHJcbmltcG9ydCBfQWN0aXZpdHkgPSBBY3Rpdml0eTtcclxuaW1wb3J0IF9SZXN1bHQgPSBSZXN1bHQ7XHJcbmltcG9ydCBfRXJyb3IgPSBFcnJvcjtcclxuaW1wb3J0IF9GdW5uZWwgPSBGdW5uZWw7XHJcbmltcG9ydCBfSG9zdCA9IEhvc3Q7XHJcbmltcG9ydCBfVXNlckFjdGlvbiA9IFVzZXJBY3Rpb247XHJcbmltcG9ydCBfVXNlciA9IFVzZXI7XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIENvbnRyYWN0cyB7XHJcbiAgZXhwb3J0IG5hbWVzcGFjZSBPZmZpY2Uge1xyXG4gICAgZXhwb3J0IG5hbWVzcGFjZSBTeXN0ZW0ge1xyXG4gICAgICBleHBvcnQgaW1wb3J0IEFjdGl2aXR5ID0gX0FjdGl2aXR5O1xyXG4gICAgICBleHBvcnQgaW1wb3J0IFJlc3VsdCA9IF9SZXN1bHQ7XHJcbiAgICAgIGV4cG9ydCBpbXBvcnQgRXJyb3IgPSBfRXJyb3I7XHJcbiAgICAgIGV4cG9ydCBpbXBvcnQgRnVubmVsID0gX0Z1bm5lbDtcclxuICAgICAgZXhwb3J0IGltcG9ydCBIb3N0ID0gX0hvc3Q7XHJcbiAgICAgIGV4cG9ydCBpbXBvcnQgVXNlciA9IF9Vc2VyO1xyXG4gICAgICBleHBvcnQgaW1wb3J0IFVzZXJBY3Rpb24gPSBfVXNlckFjdGlvbjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/contracts/Contracts.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/contracts/Office.System.Error.js": /*!******************************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/contracts/Office.System.Error.js ***! \******************************************************************************/ /*! exports provided: Error */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Error\", function() { return Error; });\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n\r\nvar Error;\r\n(function (Error) {\r\n /**\r\n * Gets data fields for the Error Contract\r\n * @param instanceName - The instance name of this Error Contract\r\n * @param contract - The object containing data fields pertaining to the Error Contract\r\n */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".ErrorGroup\"), contract.errorGroup));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Tag\"), contract.tag));\r\n if (contract.code !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Code\"), contract.code));\r\n }\r\n if (contract.id !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Id\"), contract.id));\r\n }\r\n if (contract.count !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Count\"), contract.count));\r\n }\r\n return dataFields;\r\n }\r\n Error.getFields = getFields;\r\n})(Error || (Error = {})); // Error\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL2NvbnRyYWN0cy9PZmZpY2UuU3lzdGVtLkVycm9yLnRzPzg3MWQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7QUFBQTtBQUFBO0FBQTZFO0FBRXRFLElBQVUsS0FBSyxDQTZCckI7QUE3QkQsV0FBaUIsS0FBSztJQVNwQjs7OztPQUlHO0lBQ0gsU0FBZ0IsU0FBUyxDQUFDLFlBQW9CLEVBQUUsUUFBa0I7UUFDaEUsSUFBSSxVQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLDRFQUFtQixDQUFDLFVBQUcsWUFBWSxnQkFBYSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkVBQWtCLENBQUMsVUFBRyxZQUFZLFNBQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQy9CLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkVBQWtCLENBQUMsVUFBRyxZQUFZLFVBQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM1RTtRQUNELElBQUksUUFBUSxDQUFDLEVBQUUsS0FBSyxTQUFTLEVBQUU7WUFDN0IsVUFBVSxDQUFDLElBQUksQ0FBQywyRUFBa0IsQ0FBQyxVQUFHLFlBQVksUUFBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLDJFQUFrQixDQUFDLFVBQUcsWUFBWSxXQUFRLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBZGUsZUFBUyxZQWN4QjtBQUNILENBQUMsRUE3QmdCLEtBQUssS0FBTCxLQUFLLFFBNkJyQixDQUFDLFFBQVEiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvZGlzdC9jb250cmFjdHMvT2ZmaWNlLlN5c3RlbS5FcnJvci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cclxuaW1wb3J0IHsgRGF0YUZpZWxkIH0gZnJvbSAnLi4vRGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IG1ha2VJbnQ2NERhdGFGaWVsZCwgbWFrZVN0cmluZ0RhdGFGaWVsZCB9IGZyb20gJy4uL0RhdGFGaWVsZEhlbHBlcic7XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIEVycm9yIHtcclxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0IHtcclxuICAgIGVycm9yR3JvdXA6IHN0cmluZztcclxuICAgIHRhZzogbnVtYmVyO1xyXG4gICAgY29kZT86IG51bWJlcjtcclxuICAgIGlkPzogbnVtYmVyO1xyXG4gICAgY291bnQ/OiBudW1iZXI7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGRhdGEgZmllbGRzIGZvciB0aGUgRXJyb3IgQ29udHJhY3RcclxuICAgKiBAcGFyYW0gaW5zdGFuY2VOYW1lIC0gVGhlIGluc3RhbmNlIG5hbWUgb2YgdGhpcyBFcnJvciBDb250cmFjdFxyXG4gICAqIEBwYXJhbSBjb250cmFjdCAtIFRoZSBvYmplY3QgY29udGFpbmluZyBkYXRhIGZpZWxkcyBwZXJ0YWluaW5nIHRvIHRoZSBFcnJvciBDb250cmFjdFxyXG4gICAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoaW5zdGFuY2VOYW1lOiBzdHJpbmcsIGNvbnRyYWN0OiBDb250cmFjdCk6IERhdGFGaWVsZFtdIHtcclxuICAgIGxldCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5FcnJvckdyb3VwYCwgY29udHJhY3QuZXJyb3JHcm91cCkpO1xyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlRhZ2AsIGNvbnRyYWN0LnRhZykpO1xyXG4gICAgaWYgKGNvbnRyYWN0LmNvZGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZUludDY0RGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uQ29kZWAsIGNvbnRyYWN0LmNvZGUpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC5pZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5JZGAsIGNvbnRyYWN0LmlkKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3QuY291bnQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZUludDY0RGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uQ291bnRgLCBjb250cmFjdC5jb3VudCkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59IC8vIEVycm9yXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/contracts/Office.System.Error.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/contracts/officeeventschema.tml.js": /*!********************************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/contracts/officeeventschema.tml.js ***! \********************************************************************************/ /*! exports provided: Result, Activity, Host, User, Funnel, UserAction */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Result\", function() { return Result; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Activity\", function() { return Activity; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Host\", function() { return Host; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"User\", function() { return User; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Funnel\", function() { return Funnel; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserAction\", function() { return UserAction; });\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n/* eslint-disable @typescript-eslint/no-namespace */\r\n/*\r\n This code was automatically generated, and then edited by hand.\r\n*/\r\n\r\nvar Result;\r\n(function (Result) {\r\n var contractName = 'Office.System.Result';\r\n /* Gets data fields for the Office.System.Result contract */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Code\"), contract.code));\r\n if (contract.type !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Type\"), contract.type));\r\n }\r\n if (contract.tag !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Tag\"), contract.tag));\r\n }\r\n if (contract.isExpected !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])(\"\".concat(instanceName, \".IsExpected\"), contract.isExpected));\r\n }\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('zC.Activity.Result', contractName));\r\n return dataFields;\r\n }\r\n Result.getFields = getFields;\r\n})(Result || (Result = {})); // Result\r\nvar Activity;\r\n(function (Activity) {\r\n Activity.contractName = 'Office.System.Activity';\r\n /* Gets data fields for the Office.System.Activity contract */\r\n function getFields(contract) {\r\n var instanceName = 'Activity';\r\n var dataFields = [];\r\n if (contract.cV !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".CV\"), contract.cV));\r\n }\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Duration\"), contract.duration));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Count\"), contract.count));\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".AggMode\"), contract.aggMode));\r\n if (contract.success !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])(\"\".concat(instanceName, \".Success\"), contract.success));\r\n }\r\n if (contract.result !== undefined) {\r\n dataFields.push.apply(dataFields, Result.getFields(\"\".concat(instanceName, \".Result\"), contract.result));\r\n }\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])('zC.Activity', Activity.contractName));\r\n return dataFields;\r\n }\r\n Activity.getFields = getFields;\r\n})(Activity || (Activity = {})); // Activity\r\nvar Host;\r\n(function (Host) {\r\n /* Gets data fields for the Office.System.Host contract */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n if (contract.id !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Id\"), contract.id));\r\n }\r\n if (contract.version !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Version\"), contract.version));\r\n }\r\n if (contract.sessionId !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".SessionId\"), contract.sessionId));\r\n }\r\n return dataFields;\r\n }\r\n Host.getFields = getFields;\r\n})(Host || (Host = {})); // Host\r\nvar User;\r\n(function (User) {\r\n /* Gets data fields for the Office.System.User contract */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n if (contract.alias !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Alias\"), contract.alias));\r\n }\r\n if (contract.primaryIdentityHash !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".PrimaryIdentityHash\"), contract.primaryIdentityHash));\r\n }\r\n if (contract.primaryIdentitySpace !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".PrimaryIdentitySpace\"), contract.primaryIdentitySpace));\r\n }\r\n if (contract.tenantId !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".TenantId\"), contract.tenantId));\r\n }\r\n if (contract.tenantGroup !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".TenantGroup\"), contract.tenantGroup));\r\n }\r\n if (contract.isAnonymous !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeBooleanDataField\"])(\"\".concat(instanceName, \".IsAnonymous\"), contract.isAnonymous));\r\n }\r\n return dataFields;\r\n }\r\n User.getFields = getFields;\r\n})(User || (User = {})); // User\r\nvar Funnel;\r\n(function (Funnel) {\r\n /* Gets data fields for the Office.System.Funnel contract */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n if (contract.name !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Name\"), contract.name));\r\n }\r\n if (contract.state !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".State\"), contract.state));\r\n }\r\n return dataFields;\r\n }\r\n Funnel.getFields = getFields;\r\n})(Funnel || (Funnel = {})); // Funnel\r\nvar UserAction;\r\n(function (UserAction) {\r\n /* Gets data fields for the Office.System.UserAction contract */\r\n function getFields(instanceName, contract) {\r\n var dataFields = [];\r\n if (contract.id !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".Id\"), contract.id));\r\n }\r\n if (contract.name !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".Name\"), contract.name));\r\n }\r\n if (contract.commandSurface !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".CommandSurface\"), contract.commandSurface));\r\n }\r\n if (contract.parentName !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".ParentName\"), contract.parentName));\r\n }\r\n if (contract.triggerMethod !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeStringDataField\"])(\"\".concat(instanceName, \".TriggerMethod\"), contract.triggerMethod));\r\n }\r\n if (contract.timeOffsetMs !== undefined) {\r\n dataFields.push(Object(_DataFieldHelper__WEBPACK_IMPORTED_MODULE_0__[\"makeInt64DataField\"])(\"\".concat(instanceName, \".TimeOffsetMs\"), contract.timeOffsetMs));\r\n }\r\n return dataFields;\r\n }\r\n UserAction.getFields = getFields;\r\n})(UserAction || (UserAction = {})); // UserAction\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL2NvbnRyYWN0cy9vZmZpY2VldmVudHNjaGVtYS50bWwudHM/NTgzOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsb0RBQW9EO0FBQ3BEOztFQUVFO0FBR2lHO0FBRTVGLElBQVUsTUFBTSxDQXlCdEI7QUF6QkQsV0FBaUIsTUFBTTtJQUNyQixJQUFNLFlBQVksR0FBRyxzQkFBc0IsQ0FBQztJQVE1Qyw0REFBNEQ7SUFDNUQsU0FBZ0IsU0FBUyxDQUFDLFlBQW9CLEVBQUUsUUFBa0I7UUFDaEUsSUFBSSxVQUFVLEdBQWdCLEVBQUUsQ0FBQztRQUNqQyxVQUFVLENBQUMsSUFBSSxDQUFDLDJFQUFrQixDQUFDLFVBQUcsWUFBWSxVQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0UsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUMvQixVQUFVLENBQUMsSUFBSSxDQUFDLDRFQUFtQixDQUFDLFVBQUcsWUFBWSxVQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDN0U7UUFDRCxJQUFJLFFBQVEsQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsMkVBQWtCLENBQUMsVUFBRyxZQUFZLFNBQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMxRTtRQUNELElBQUksUUFBUSxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDckMsVUFBVSxDQUFDLElBQUksQ0FBQyw2RUFBb0IsQ0FBQyxVQUFHLFlBQVksZ0JBQWEsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztTQUMxRjtRQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsNEVBQW1CLENBQUMsb0JBQW9C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QVUsQ0FBQyxJQUFJLENBQUMsNEVBQW1CLENBQUMsVUFBRyxZQUFZLFVBQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUM3RTtRQUNELElBQUksUUFBUSxDQUFDLGNBQWMsS0FBSyxTQUFTLEVBQUU7WUFDekMsVUFBVSxDQUFDLElBQUksQ0FBQyw0RUFBbUIsQ0FBQyxVQUFHLFlBQVksb0JBQWlCLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7U0FDakc7UUFDRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEtBQUssU0FBUyxFQUFFO1lBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNEVBQW1CLENBQUMsVUFBRyxZQUFZLGdCQUFhLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7U0FDekY7UUFDRCxJQUFJLFFBQVEsQ0FBQyxhQUFhLEtBQUssU0FBUyxFQUFFO1lBQ3hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsNEVBQW1CLENBQUMsVUFBRyxZQUFZLG1CQUFnQixFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQy9GO1FBQ0QsSUFBSSxRQUFRLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUN2QyxVQUFVLENBQUMsSUFBSSxDQUFDLDJFQUFrQixDQUFDLFVBQUcsWUFBWSxrQkFBZSxFQUFFLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQzVGO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQXJCZSxvQkFBUyxZQXFCeEI7QUFDSCxDQUFDLEVBbENnQixVQUFVLEtBQVYsVUFBVSxRQWtDMUIsQ0FBQyxhQUFhIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvY29udHJhY3RzL29mZmljZWV2ZW50c2NoZW1hLnRtbC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2UgKi9cclxuLypcclxuICAgIFRoaXMgY29kZSB3YXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQsIGFuZCB0aGVuIGVkaXRlZCBieSBoYW5kLlxyXG4qL1xyXG5cclxuaW1wb3J0IHsgRGF0YUZpZWxkIH0gZnJvbSAnLi4vRGF0YU1vZGVscyc7XHJcbmltcG9ydCB7IG1ha2VCb29sZWFuRGF0YUZpZWxkLCBtYWtlSW50NjREYXRhRmllbGQsIG1ha2VTdHJpbmdEYXRhRmllbGQgfSBmcm9tICcuLi9EYXRhRmllbGRIZWxwZXInO1xyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBSZXN1bHQge1xyXG4gIGNvbnN0IGNvbnRyYWN0TmFtZSA9ICdPZmZpY2UuU3lzdGVtLlJlc3VsdCc7XHJcbiAgZXhwb3J0IGludGVyZmFjZSBDb250cmFjdCB7XHJcbiAgICBjb2RlOiBudW1iZXI7XHJcbiAgICB0eXBlPzogc3RyaW5nO1xyXG4gICAgdGFnPzogbnVtYmVyO1xyXG4gICAgaXNFeHBlY3RlZD86IGJvb2xlYW47XHJcbiAgfVxyXG5cclxuICAvKiBHZXRzIGRhdGEgZmllbGRzIGZvciB0aGUgT2ZmaWNlLlN5c3RlbS5SZXN1bHQgY29udHJhY3QgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzKGluc3RhbmNlTmFtZTogc3RyaW5nLCBjb250cmFjdDogQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Db2RlYCwgY29udHJhY3QuY29kZSkpO1xyXG4gICAgaWYgKGNvbnRyYWN0LnR5cGUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlR5cGVgLCBjb250cmFjdC50eXBlKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3QudGFnICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlRhZ2AsIGNvbnRyYWN0LnRhZykpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LmlzRXhwZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZUJvb2xlYW5EYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Jc0V4cGVjdGVkYCwgY29udHJhY3QuaXNFeHBlY3RlZCkpO1xyXG4gICAgfVxyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoJ3pDLkFjdGl2aXR5LlJlc3VsdCcsIGNvbnRyYWN0TmFtZSkpO1xyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59IC8vIFJlc3VsdFxyXG5leHBvcnQgbmFtZXNwYWNlIEFjdGl2aXR5IHtcclxuICBleHBvcnQgY29uc3QgY29udHJhY3ROYW1lID0gJ09mZmljZS5TeXN0ZW0uQWN0aXZpdHknO1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgY1Y/OiBzdHJpbmc7XHJcbiAgICBkdXJhdGlvbjogbnVtYmVyO1xyXG4gICAgY291bnQ6IG51bWJlcjtcclxuICAgIGFnZ01vZGU6IG51bWJlcjtcclxuICAgIHN1Y2Nlc3M/OiBib29sZWFuO1xyXG4gICAgcmVzdWx0PzogUmVzdWx0LkNvbnRyYWN0O1xyXG4gIH1cclxuXHJcbiAgLyogR2V0cyBkYXRhIGZpZWxkcyBmb3IgdGhlIE9mZmljZS5TeXN0ZW0uQWN0aXZpdHkgY29udHJhY3QgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzKGNvbnRyYWN0OiBDb250cmFjdCk6IERhdGFGaWVsZFtdIHtcclxuICAgIGNvbnN0IGluc3RhbmNlTmFtZSA9ICdBY3Rpdml0eSc7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGlmIChjb250cmFjdC5jViAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uQ1ZgLCBjb250cmFjdC5jVikpO1xyXG4gICAgfVxyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LkR1cmF0aW9uYCwgY29udHJhY3QuZHVyYXRpb24pKTtcclxuICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Db3VudGAsIGNvbnRyYWN0LmNvdW50KSk7XHJcbiAgICBkYXRhRmllbGRzLnB1c2gobWFrZUludDY0RGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uQWdnTW9kZWAsIGNvbnRyYWN0LmFnZ01vZGUpKTtcclxuICAgIGlmIChjb250cmFjdC5zdWNjZXNzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VCb29sZWFuRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uU3VjY2Vzc2AsIGNvbnRyYWN0LnN1Y2Nlc3MpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC5yZXN1bHQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2goLi4uUmVzdWx0LmdldEZpZWxkcyhgJHtpbnN0YW5jZU5hbWV9LlJlc3VsdGAsIGNvbnRyYWN0LnJlc3VsdCkpO1xyXG4gICAgfVxyXG4gICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoJ3pDLkFjdGl2aXR5JywgY29udHJhY3ROYW1lKSk7XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn0gLy8gQWN0aXZpdHlcclxuZXhwb3J0IG5hbWVzcGFjZSBIb3N0IHtcclxuICAvLyAnT2ZmaWNlLlN5c3RlbS5Ib3N0JztcclxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0IHtcclxuICAgIGlkPzogc3RyaW5nO1xyXG4gICAgdmVyc2lvbj86IHN0cmluZztcclxuICAgIHNlc3Npb25JZD86IHN0cmluZztcclxuICB9XHJcblxyXG4gIC8qIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBPZmZpY2UuU3lzdGVtLkhvc3QgY29udHJhY3QgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzKGluc3RhbmNlTmFtZTogc3RyaW5nLCBjb250cmFjdDogQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGlmIChjb250cmFjdC5pZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uSWRgLCBjb250cmFjdC5pZCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LnZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlZlcnNpb25gLCBjb250cmFjdC52ZXJzaW9uKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3Quc2Vzc2lvbklkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5TZXNzaW9uSWRgLCBjb250cmFjdC5zZXNzaW9uSWQpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhRmllbGRzO1xyXG4gIH1cclxufSAvLyBIb3N0XHJcbmV4cG9ydCBuYW1lc3BhY2UgVXNlciB7XHJcbiAgLy8gJ09mZmljZS5TeXN0ZW0uVXNlcidcclxuICBleHBvcnQgaW50ZXJmYWNlIENvbnRyYWN0IHtcclxuICAgIGFsaWFzPzogc3RyaW5nO1xyXG4gICAgcHJpbWFyeUlkZW50aXR5SGFzaD86IHN0cmluZztcclxuICAgIHByaW1hcnlJZGVudGl0eVNwYWNlPzogc3RyaW5nO1xyXG4gICAgdGVuYW50SWQ/OiBzdHJpbmc7XHJcbiAgICB0ZW5hbnRHcm91cD86IHN0cmluZztcclxuICAgIGlzQW5vbnltb3VzPzogYm9vbGVhbjtcclxuICB9XHJcblxyXG4gIC8qIEdldHMgZGF0YSBmaWVsZHMgZm9yIHRoZSBPZmZpY2UuU3lzdGVtLlVzZXIgY29udHJhY3QgKi9cclxuICBleHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRzKGluc3RhbmNlTmFtZTogc3RyaW5nLCBjb250cmFjdDogQ29udHJhY3QpOiBEYXRhRmllbGRbXSB7XHJcbiAgICBsZXQgZGF0YUZpZWxkczogRGF0YUZpZWxkW10gPSBbXTtcclxuICAgIGlmIChjb250cmFjdC5hbGlhcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uQWxpYXNgLCBjb250cmFjdC5hbGlhcykpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LnByaW1hcnlJZGVudGl0eUhhc2ggIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlByaW1hcnlJZGVudGl0eUhhc2hgLCBjb250cmFjdC5wcmltYXJ5SWRlbnRpdHlIYXNoKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3QucHJpbWFyeUlkZW50aXR5U3BhY2UgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZVN0cmluZ0RhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LlByaW1hcnlJZGVudGl0eVNwYWNlYCwgY29udHJhY3QucHJpbWFyeUlkZW50aXR5U3BhY2UpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC50ZW5hbnRJZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uVGVuYW50SWRgLCBjb250cmFjdC50ZW5hbnRJZCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LnRlbmFudEdyb3VwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5UZW5hbnRHcm91cGAsIGNvbnRyYWN0LnRlbmFudEdyb3VwKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3QuaXNBbm9ueW1vdXMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkYXRhRmllbGRzLnB1c2gobWFrZUJvb2xlYW5EYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Jc0Fub255bW91c2AsIGNvbnRyYWN0LmlzQW5vbnltb3VzKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YUZpZWxkcztcclxuICB9XHJcbn0gLy8gVXNlclxyXG5leHBvcnQgbmFtZXNwYWNlIEZ1bm5lbCB7XHJcbiAgLy8gJ09mZmljZS5TeXN0ZW0uRnVubmVsJ1xyXG4gIGV4cG9ydCBpbnRlcmZhY2UgQ29udHJhY3Qge1xyXG4gICAgbmFtZT86IHN0cmluZztcclxuICAgIHN0YXRlPzogc3RyaW5nO1xyXG4gIH1cclxuXHJcbiAgLyogR2V0cyBkYXRhIGZpZWxkcyBmb3IgdGhlIE9mZmljZS5TeXN0ZW0uRnVubmVsIGNvbnRyYWN0ICovXHJcbiAgZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkcyhpbnN0YW5jZU5hbWU6IHN0cmluZywgY29udHJhY3Q6IENvbnRyYWN0KTogRGF0YUZpZWxkW10ge1xyXG4gICAgbGV0IGRhdGFGaWVsZHM6IERhdGFGaWVsZFtdID0gW107XHJcbiAgICBpZiAoY29udHJhY3QubmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uTmFtZWAsIGNvbnRyYWN0Lm5hbWUpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC5zdGF0ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uU3RhdGVgLCBjb250cmFjdC5zdGF0ZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRhdGFGaWVsZHM7XHJcbiAgfVxyXG59IC8vIEZ1bm5lbFxyXG5leHBvcnQgbmFtZXNwYWNlIFVzZXJBY3Rpb24ge1xyXG4gIC8vICdPZmZpY2UuU3lzdGVtLlVzZXJBY3Rpb24nXHJcbiAgZXhwb3J0IGludGVyZmFjZSBDb250cmFjdCB7XHJcbiAgICBpZD86IG51bWJlcjtcclxuICAgIG5hbWU/OiBzdHJpbmc7XHJcbiAgICBjb21tYW5kU3VyZmFjZT86IHN0cmluZztcclxuICAgIHBhcmVudE5hbWU/OiBzdHJpbmc7XHJcbiAgICB0cmlnZ2VyTWV0aG9kPzogc3RyaW5nO1xyXG4gICAgdGltZU9mZnNldE1zPzogbnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgLyogR2V0cyBkYXRhIGZpZWxkcyBmb3IgdGhlIE9mZmljZS5TeXN0ZW0uVXNlckFjdGlvbiBjb250cmFjdCAqL1xyXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZHMoaW5zdGFuY2VOYW1lOiBzdHJpbmcsIGNvbnRyYWN0OiBDb250cmFjdCk6IERhdGFGaWVsZFtdIHtcclxuICAgIGxldCBkYXRhRmllbGRzOiBEYXRhRmllbGRbXSA9IFtdO1xyXG4gICAgaWYgKGNvbnRyYWN0LmlkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VJbnQ2NERhdGFGaWVsZChgJHtpbnN0YW5jZU5hbWV9LklkYCwgY29udHJhY3QuaWQpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC5uYW1lICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5OYW1lYCwgY29udHJhY3QubmFtZSkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LmNvbW1hbmRTdXJmYWNlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5Db21tYW5kU3VyZmFjZWAsIGNvbnRyYWN0LmNvbW1hbmRTdXJmYWNlKSk7XHJcbiAgICB9XHJcbiAgICBpZiAoY29udHJhY3QucGFyZW50TmFtZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlU3RyaW5nRGF0YUZpZWxkKGAke2luc3RhbmNlTmFtZX0uUGFyZW50TmFtZWAsIGNvbnRyYWN0LnBhcmVudE5hbWUpKTtcclxuICAgIH1cclxuICAgIGlmIChjb250cmFjdC50cmlnZ2VyTWV0aG9kICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGF0YUZpZWxkcy5wdXNoKG1ha2VTdHJpbmdEYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5UcmlnZ2VyTWV0aG9kYCwgY29udHJhY3QudHJpZ2dlck1ldGhvZCkpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbnRyYWN0LnRpbWVPZmZzZXRNcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRhdGFGaWVsZHMucHVzaChtYWtlSW50NjREYXRhRmllbGQoYCR7aW5zdGFuY2VOYW1lfS5UaW1lT2Zmc2V0TXNgLCBjb250cmFjdC50aW1lT2Zmc2V0TXMpKTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhRmllbGRzO1xyXG4gIH1cclxufSAvLyBVc2VyQWN0aW9uXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/contracts/officeeventschema.tml.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/enumObjects/EnumObjects.js": /*!************************************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/enumObjects/EnumObjects.js ***! \************************************************************************/ /*! exports provided: EnumObjects */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EnumObjects\", function() { return EnumObjects; });\n/**\r\n * This file contains the same enums as DataModels.ts, but declared as objects\r\n * These objects should only be used by consumers who cannot use const enums for whatever reason\r\n * Typically, users may encounter issues if they use ts-jest and isolatedModules.\r\n * Avoiding these EnumObjects saves 1.5KB in package size\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar EnumObjects;\r\n(function (EnumObjects) {\r\n EnumObjects.DataClassification = {\r\n EssentialServiceMetadata: (1 << 0),\r\n AccountData: (1 << 1),\r\n SystemMetadata: (1 << 2),\r\n OrganizationIdentifiableInformation: (1 << 3),\r\n EndUserIdentifiableInformation: (1 << 4),\r\n CustomerContent: (1 << 5),\r\n AccessControl: (1 << 6),\r\n PublicNonPersonalData: (1 << 7),\r\n EndUserPseudonymousInformation: (1 << 8),\r\n PublicPersonalData: (1 << 9),\r\n SupportData: (1 << 10),\r\n DirectMeasurementData: (1 << 11),\r\n Everything: 0xffff\r\n };\r\n EnumObjects.DataFieldType = {\r\n // eslint-disable-next-line id-denylist\r\n String: 0,\r\n // eslint-disable-next-line id-denylist\r\n Boolean: 1,\r\n Int64: 2,\r\n Double: 3,\r\n Guid: 4\r\n };\r\n EnumObjects.SamplingPolicy = {\r\n NotSet: 0,\r\n Measure: 1,\r\n Diagnostics: 2,\r\n CriticalBusinessImpact: 191,\r\n CriticalCensus: 192,\r\n CriticalExperimentation: 193,\r\n CriticalUsage: 194\r\n };\r\n EnumObjects.PersistencePriority = {\r\n NotSet: 0,\r\n Normal: 1,\r\n High: 2\r\n };\r\n EnumObjects.CostPriority = {\r\n NotSet: 0,\r\n Normal: 1,\r\n High: 2\r\n };\r\n EnumObjects.DataCategories = {\r\n NotSet: 0x00,\r\n SoftwareSetup: 0x01,\r\n ProductServiceUsage: 0x02,\r\n ProductServicePerformance: 0x04,\r\n DeviceConfiguration: 0x08,\r\n InkingTypingSpeech: 0x10\r\n };\r\n EnumObjects.DiagnosticLevel = {\r\n ReservedDoNotUse: 0,\r\n Required: 10,\r\n BasicEvent: 10,\r\n Optional: 100,\r\n FullEvent: 100,\r\n RequiredServiceData: 110,\r\n NecessaryServiceDataEvent: 110,\r\n RequiredServiceDataForEssentialServices: 120,\r\n AlwaysOnNecessaryServiceDataEvent: 120\r\n };\r\n EnumObjects.DnmInterval = {\r\n Hourly: 1,\r\n Daily: 2\r\n };\r\n EnumObjects.AllowedPartA = {\r\n ReleaseAudienceGroup: 1,\r\n WacRing: 2,\r\n AppName: 3,\r\n AppPlatform: 4,\r\n AppVersion: 5\r\n };\r\n EnumObjects.CustomerContentType = {\r\n None: 0x0,\r\n MocaAddIn: 0x1\r\n };\r\n EnumObjects.LogLevel = {\r\n Error: 0,\r\n Warning: 1,\r\n Info: 2,\r\n Verbose: 3\r\n };\r\n EnumObjects.Category = {\r\n Core: 0,\r\n Sink: 1,\r\n Transport: 2\r\n };\r\n EnumObjects.PrimaryIdentitySpace = {\r\n UserObjectId: 'UserObjectId',\r\n MSACID: 'MSACID',\r\n OrgIdPuid: 'OrgIdPuid',\r\n OrgIdCID: 'OrgIdCID',\r\n MsaPuid: 'MsaPuid',\r\n WopiAuth: 'WopiAuth',\r\n ThirdParty: 'ThirdParty'\r\n };\r\n EnumObjects.AudienceGroup = {\r\n Automation: 'Automation',\r\n Dogfood: 'Dogfood',\r\n Microsoft: 'Microsoft',\r\n Insiders: 'Insiders',\r\n Production: 'Production'\r\n };\r\n})(EnumObjects || (EnumObjects = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL2VudW1PYmplY3RzL0VudW1PYmplY3RzLnRzP2VjZDUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOzs7OztHQUtHO0FBbUJILDJEQUEyRDtBQUNwRCxJQUFVLFdBQVcsQ0FzSDNCO0FBdEhELFdBQWlCLFdBQVc7SUFDYiw4QkFBa0IsR0FBRztRQUNoQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQTJCO1FBQzVELFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQTJCO1FBQy9DLGNBQWMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQTJCO1FBQ2xELG1DQUFtQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBMkI7UUFDdkUsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUEyQjtRQUNsRSxlQUFlLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUEyQjtRQUNuRCxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUEyQjtRQUNqRCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQTJCO1FBQ3pELDhCQUE4QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBMkI7UUFDbEUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUEyQjtRQUN0RCxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUEyQjtRQUNoRCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQTJCO1FBQzFELFVBQVUsRUFBRSxNQUFnQztLQUM3QyxDQUFDO0lBRVcseUJBQWEsR0FBRztRQUMzQix1Q0FBdUM7UUFDdkMsTUFBTSxFQUFFLENBQXNCO1FBQzlCLHVDQUF1QztRQUN2QyxPQUFPLEVBQUUsQ0FBc0I7UUFDL0IsS0FBSyxFQUFFLENBQXNCO1FBQzdCLE1BQU0sRUFBRSxDQUFzQjtRQUM5QixJQUFJLEVBQUUsQ0FBc0I7S0FDN0IsQ0FBQztJQUVXLDBCQUFjLEdBQUc7UUFDNUIsTUFBTSxFQUFFLENBQXVCO1FBQy9CLE9BQU8sRUFBRSxDQUF1QjtRQUNoQyxXQUFXLEVBQUUsQ0FBdUI7UUFDcEMsc0JBQXNCLEVBQUUsR0FBeUI7UUFDakQsY0FBYyxFQUFFLEdBQXlCO1FBQ3pDLHVCQUF1QixFQUFFLEdBQXlCO1FBQ2xELGFBQWEsRUFBRSxHQUF5QjtLQUN6QyxDQUFDO0lBRVcsK0JBQW1CLEdBQUc7UUFDakMsTUFBTSxFQUFFLENBQTRCO1FBQ3BDLE1BQU0sRUFBRSxDQUE0QjtRQUNwQyxJQUFJLEVBQUUsQ0FBNEI7S0FDbkMsQ0FBQztJQUVXLHdCQUFZLEdBQUc7UUFDMUIsTUFBTSxFQUFFLENBQXFCO1FBQzdCLE1BQU0sRUFBRSxDQUFxQjtRQUM3QixJQUFJLEVBQUUsQ0FBcUI7S0FDNUIsQ0FBQztJQUVXLDBCQUFjLEdBQUc7UUFDNUIsTUFBTSxFQUFFLElBQTBCO1FBQ2xDLGFBQWEsRUFBRSxJQUEwQjtRQUN6QyxtQkFBbUIsRUFBRSxJQUEwQjtRQUMvQyx5QkFBeUIsRUFBRSxJQUEwQjtRQUNyRCxtQkFBbUIsRUFBRSxJQUEwQjtRQUMvQyxrQkFBa0IsRUFBRSxJQUEwQjtLQUMvQyxDQUFDO0lBRVcsMkJBQWUsR0FBRztRQUM3QixnQkFBZ0IsRUFBRSxDQUF3QjtRQUMxQyxRQUFRLEVBQUUsRUFBeUI7UUFDbkMsVUFBVSxFQUFFLEVBQXlCO1FBQ3JDLFFBQVEsRUFBRSxHQUEwQjtRQUNwQyxTQUFTLEVBQUUsR0FBMEI7UUFDckMsbUJBQW1CLEVBQUUsR0FBMEI7UUFDL0MseUJBQXlCLEVBQUUsR0FBMEI7UUFDckQsdUNBQXVDLEVBQUUsR0FBMEI7UUFDbkUsaUNBQWlDLEVBQUUsR0FBMEI7S0FDOUQsQ0FBQztJQUVXLHVCQUFXLEdBQUc7UUFDekIsTUFBTSxFQUFFLENBQWdCO1FBQ3hCLEtBQUssRUFBRSxDQUFnQjtLQUN4QixDQUFDO0lBRVcsd0JBQVksR0FBRztRQUMxQixvQkFBb0IsRUFBRSxDQUFpQjtRQUN2QyxPQUFPLEVBQUUsQ0FBaUI7UUFDMUIsT0FBTyxFQUFFLENBQWlCO1FBQzFCLFdBQVcsRUFBRSxDQUFpQjtRQUM5QixVQUFVLEVBQUUsQ0FBaUI7S0FDOUIsQ0FBQztJQUVXLCtCQUFtQixHQUFHO1FBQ2pDLElBQUksRUFBRSxHQUE4QjtRQUNwQyxTQUFTLEVBQUUsR0FBOEI7S0FDMUMsQ0FBQztJQUVXLG9CQUFRLEdBQUc7UUFDdEIsS0FBSyxFQUFFLENBQWlCO1FBQ3hCLE9BQU8sRUFBRSxDQUFpQjtRQUMxQixJQUFJLEVBQUUsQ0FBaUI7UUFDdkIsT0FBTyxFQUFFLENBQWlCO0tBQzNCLENBQUM7SUFFVyxvQkFBUSxHQUFHO1FBQ3RCLElBQUksRUFBRSxDQUFpQjtRQUN2QixJQUFJLEVBQUUsQ0FBaUI7UUFDdkIsU0FBUyxFQUFFLENBQWlCO0tBQzdCLENBQUM7SUFFVyxnQ0FBb0IsR0FBRztRQUNsQyxZQUFZLEVBQUUsY0FBMEM7UUFDeEQsTUFBTSxFQUFFLFFBQW9DO1FBQzVDLFNBQVMsRUFBRSxXQUF1QztRQUNsRCxRQUFRLEVBQUUsVUFBc0M7UUFDaEQsT0FBTyxFQUFFLFNBQXFDO1FBQzlDLFFBQVEsRUFBRSxVQUFzQztRQUNoRCxVQUFVLEVBQUUsWUFBd0M7S0FDckQsQ0FBQztJQUVXLHlCQUFhLEdBQUc7UUFDM0IsVUFBVSxFQUFFLFlBQWlDO1FBQzdDLE9BQU8sRUFBRSxTQUE4QjtRQUN2QyxTQUFTLEVBQUUsV0FBZ0M7UUFDM0MsUUFBUSxFQUFFLFVBQStCO1FBQ3pDLFVBQVUsRUFBRSxZQUFpQztLQUM5QyxDQUFDO0FBQ0osQ0FBQyxFQXRIZ0IsV0FBVyxLQUFYLFdBQVcsUUFzSDNCIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvZW51bU9iamVjdHMvRW51bU9iamVjdHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBzYW1lIGVudW1zIGFzIERhdGFNb2RlbHMudHMsIGJ1dCBkZWNsYXJlZCBhcyBvYmplY3RzXHJcbiAqIFRoZXNlIG9iamVjdHMgc2hvdWxkIG9ubHkgYmUgdXNlZCBieSBjb25zdW1lcnMgd2hvIGNhbm5vdCB1c2UgY29uc3QgZW51bXMgZm9yIHdoYXRldmVyIHJlYXNvblxyXG4gKiBUeXBpY2FsbHksIHVzZXJzIG1heSBlbmNvdW50ZXIgaXNzdWVzIGlmIHRoZXkgdXNlIHRzLWplc3QgYW5kIGlzb2xhdGVkTW9kdWxlcy5cclxuICogQXZvaWRpbmcgdGhlc2UgRW51bU9iamVjdHMgc2F2ZXMgMS41S0IgaW4gcGFja2FnZSBzaXplXHJcbiAqL1xyXG5cclxuaW1wb3J0IHtcclxuICBEYXRhQ2xhc3NpZmljYXRpb24gYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICBEYXRhRmllbGRUeXBlIGFzIERhdGFGaWVsZFR5cGVUeXBlLFxyXG4gIFNhbXBsaW5nUG9saWN5IGFzIFNhbXBsaW5nUG9saWN5VHlwZSxcclxuICBQZXJzaXN0ZW5jZVByaW9yaXR5IGFzIFBlcnNpc3RlbmNlUHJpb3JpdHlUeXBlLFxyXG4gIENvc3RQcmlvcml0eSBhcyBDb3N0UHJpb3JpdHlUeXBlLFxyXG4gIERhdGFDYXRlZ29yaWVzIGFzIERhdGFDYXRlZ29yaWVzVHlwZSxcclxuICBEaWFnbm9zdGljTGV2ZWwgYXMgRGlhZ25vc3RpY0xldmVsVHlwZSxcclxuICBDdXN0b21lckNvbnRlbnRUeXBlIGFzIEN1c3RvbWVyQ29udGVudFR5cGVUeXBlLFxyXG4gIExvZ0xldmVsIGFzIExvZ0xldmVsVHlwZSxcclxuICBDYXRlZ29yeSBhcyBDYXRlZ29yeVR5cGUsXHJcbiAgRG5tSW50ZXJ2YWwsXHJcbiAgQWxsb3dlZFBhcnRBXHJcbn0gZnJvbSAnLi4vRGF0YU1vZGVscyc7XHJcblxyXG5pbXBvcnQgeyBQcmltYXJ5SWRlbnRpdHlTcGFjZSBhcyBQcmltYXJ5SWRlbnRpdHlTcGFjZVR5cGUsIEF1ZGllbmNlR3JvdXAgYXMgQXVkaWVuY2VHcm91cFR5cGUgfSBmcm9tICcuLi9Db250cmFjdHMnO1xyXG5cclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1uYW1lc3BhY2VcclxuZXhwb3J0IG5hbWVzcGFjZSBFbnVtT2JqZWN0cyB7XHJcbiAgZXhwb3J0IGNvbnN0IERhdGFDbGFzc2lmaWNhdGlvbiA9IHtcclxuICAgIEVzc2VudGlhbFNlcnZpY2VNZXRhZGF0YTogKDEgPDwgMCkgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIEFjY291bnREYXRhOiAoMSA8PCAxKSBhcyBEYXRhQ2xhc3NpZmljYXRpb25UeXBlLFxyXG4gICAgU3lzdGVtTWV0YWRhdGE6ICgxIDw8IDIpIGFzIERhdGFDbGFzc2lmaWNhdGlvblR5cGUsXHJcbiAgICBPcmdhbml6YXRpb25JZGVudGlmaWFibGVJbmZvcm1hdGlvbjogKDEgPDwgMykgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIEVuZFVzZXJJZGVudGlmaWFibGVJbmZvcm1hdGlvbjogKDEgPDwgNCkgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIEN1c3RvbWVyQ29udGVudDogKDEgPDwgNSkgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIEFjY2Vzc0NvbnRyb2w6ICgxIDw8IDYpIGFzIERhdGFDbGFzc2lmaWNhdGlvblR5cGUsXHJcbiAgICBQdWJsaWNOb25QZXJzb25hbERhdGE6ICgxIDw8IDcpIGFzIERhdGFDbGFzc2lmaWNhdGlvblR5cGUsXHJcbiAgICBFbmRVc2VyUHNldWRvbnltb3VzSW5mb3JtYXRpb246ICgxIDw8IDgpIGFzIERhdGFDbGFzc2lmaWNhdGlvblR5cGUsIC8vIEVVUElcclxuICAgIFB1YmxpY1BlcnNvbmFsRGF0YTogKDEgPDwgOSkgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIFN1cHBvcnREYXRhOiAoMSA8PCAxMCkgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZSxcclxuICAgIERpcmVjdE1lYXN1cmVtZW50RGF0YTogKDEgPDwgMTEpIGFzIERhdGFDbGFzc2lmaWNhdGlvblR5cGUsXHJcbiAgICBFdmVyeXRoaW5nOiAweGZmZmYgYXMgRGF0YUNsYXNzaWZpY2F0aW9uVHlwZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBEYXRhRmllbGRUeXBlID0ge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0XHJcbiAgICBTdHJpbmc6IDAgYXMgRGF0YUZpZWxkVHlwZVR5cGUsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaWQtZGVueWxpc3RcclxuICAgIEJvb2xlYW46IDEgYXMgRGF0YUZpZWxkVHlwZVR5cGUsXHJcbiAgICBJbnQ2NDogMiBhcyBEYXRhRmllbGRUeXBlVHlwZSxcclxuICAgIERvdWJsZTogMyBhcyBEYXRhRmllbGRUeXBlVHlwZSxcclxuICAgIEd1aWQ6IDQgYXMgRGF0YUZpZWxkVHlwZVR5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgU2FtcGxpbmdQb2xpY3kgPSB7XHJcbiAgICBOb3RTZXQ6IDAgYXMgU2FtcGxpbmdQb2xpY3lUeXBlLFxyXG4gICAgTWVhc3VyZTogMSBhcyBTYW1wbGluZ1BvbGljeVR5cGUsXHJcbiAgICBEaWFnbm9zdGljczogMiBhcyBTYW1wbGluZ1BvbGljeVR5cGUsXHJcbiAgICBDcml0aWNhbEJ1c2luZXNzSW1wYWN0OiAxOTEgYXMgU2FtcGxpbmdQb2xpY3lUeXBlLFxyXG4gICAgQ3JpdGljYWxDZW5zdXM6IDE5MiBhcyBTYW1wbGluZ1BvbGljeVR5cGUsXHJcbiAgICBDcml0aWNhbEV4cGVyaW1lbnRhdGlvbjogMTkzIGFzIFNhbXBsaW5nUG9saWN5VHlwZSxcclxuICAgIENyaXRpY2FsVXNhZ2U6IDE5NCBhcyBTYW1wbGluZ1BvbGljeVR5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgUGVyc2lzdGVuY2VQcmlvcml0eSA9IHtcclxuICAgIE5vdFNldDogMCBhcyBQZXJzaXN0ZW5jZVByaW9yaXR5VHlwZSxcclxuICAgIE5vcm1hbDogMSBhcyBQZXJzaXN0ZW5jZVByaW9yaXR5VHlwZSxcclxuICAgIEhpZ2g6IDIgYXMgUGVyc2lzdGVuY2VQcmlvcml0eVR5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgQ29zdFByaW9yaXR5ID0ge1xyXG4gICAgTm90U2V0OiAwIGFzIENvc3RQcmlvcml0eVR5cGUsXHJcbiAgICBOb3JtYWw6IDEgYXMgQ29zdFByaW9yaXR5VHlwZSxcclxuICAgIEhpZ2g6IDIgYXMgQ29zdFByaW9yaXR5VHlwZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBEYXRhQ2F0ZWdvcmllcyA9IHtcclxuICAgIE5vdFNldDogMHgwMCBhcyBEYXRhQ2F0ZWdvcmllc1R5cGUsXHJcbiAgICBTb2Z0d2FyZVNldHVwOiAweDAxIGFzIERhdGFDYXRlZ29yaWVzVHlwZSxcclxuICAgIFByb2R1Y3RTZXJ2aWNlVXNhZ2U6IDB4MDIgYXMgRGF0YUNhdGVnb3JpZXNUeXBlLFxyXG4gICAgUHJvZHVjdFNlcnZpY2VQZXJmb3JtYW5jZTogMHgwNCBhcyBEYXRhQ2F0ZWdvcmllc1R5cGUsXHJcbiAgICBEZXZpY2VDb25maWd1cmF0aW9uOiAweDA4IGFzIERhdGFDYXRlZ29yaWVzVHlwZSxcclxuICAgIElua2luZ1R5cGluZ1NwZWVjaDogMHgxMCBhcyBEYXRhQ2F0ZWdvcmllc1R5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgRGlhZ25vc3RpY0xldmVsID0ge1xyXG4gICAgUmVzZXJ2ZWREb05vdFVzZTogMCBhcyBEaWFnbm9zdGljTGV2ZWxUeXBlLFxyXG4gICAgUmVxdWlyZWQ6IDEwIGFzIERpYWdub3N0aWNMZXZlbFR5cGUsXHJcbiAgICBCYXNpY0V2ZW50OiAxMCBhcyBEaWFnbm9zdGljTGV2ZWxUeXBlLFxyXG4gICAgT3B0aW9uYWw6IDEwMCBhcyBEaWFnbm9zdGljTGV2ZWxUeXBlLFxyXG4gICAgRnVsbEV2ZW50OiAxMDAgYXMgRGlhZ25vc3RpY0xldmVsVHlwZSxcclxuICAgIFJlcXVpcmVkU2VydmljZURhdGE6IDExMCBhcyBEaWFnbm9zdGljTGV2ZWxUeXBlLFxyXG4gICAgTmVjZXNzYXJ5U2VydmljZURhdGFFdmVudDogMTEwIGFzIERpYWdub3N0aWNMZXZlbFR5cGUsXHJcbiAgICBSZXF1aXJlZFNlcnZpY2VEYXRhRm9yRXNzZW50aWFsU2VydmljZXM6IDEyMCBhcyBEaWFnbm9zdGljTGV2ZWxUeXBlLFxyXG4gICAgQWx3YXlzT25OZWNlc3NhcnlTZXJ2aWNlRGF0YUV2ZW50OiAxMjAgYXMgRGlhZ25vc3RpY0xldmVsVHlwZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBEbm1JbnRlcnZhbCA9IHtcclxuICAgIEhvdXJseTogMSBhcyBEbm1JbnRlcnZhbCxcclxuICAgIERhaWx5OiAyIGFzIERubUludGVydmFsXHJcbiAgfTtcclxuXHJcbiAgZXhwb3J0IGNvbnN0IEFsbG93ZWRQYXJ0QSA9IHtcclxuICAgIFJlbGVhc2VBdWRpZW5jZUdyb3VwOiAxIGFzIEFsbG93ZWRQYXJ0QSxcclxuICAgIFdhY1Jpbmc6IDIgYXMgQWxsb3dlZFBhcnRBLFxyXG4gICAgQXBwTmFtZTogMyBhcyBBbGxvd2VkUGFydEEsXHJcbiAgICBBcHBQbGF0Zm9ybTogNCBhcyBBbGxvd2VkUGFydEEsXHJcbiAgICBBcHBWZXJzaW9uOiA1IGFzIEFsbG93ZWRQYXJ0QVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBDdXN0b21lckNvbnRlbnRUeXBlID0ge1xyXG4gICAgTm9uZTogMHgwIGFzIEN1c3RvbWVyQ29udGVudFR5cGVUeXBlLFxyXG4gICAgTW9jYUFkZEluOiAweDEgYXMgQ3VzdG9tZXJDb250ZW50VHlwZVR5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgTG9nTGV2ZWwgPSB7XHJcbiAgICBFcnJvcjogMCBhcyBMb2dMZXZlbFR5cGUsXHJcbiAgICBXYXJuaW5nOiAxIGFzIExvZ0xldmVsVHlwZSxcclxuICAgIEluZm86IDIgYXMgTG9nTGV2ZWxUeXBlLFxyXG4gICAgVmVyYm9zZTogMyBhcyBMb2dMZXZlbFR5cGVcclxuICB9O1xyXG5cclxuICBleHBvcnQgY29uc3QgQ2F0ZWdvcnkgPSB7XHJcbiAgICBDb3JlOiAwIGFzIENhdGVnb3J5VHlwZSxcclxuICAgIFNpbms6IDEgYXMgQ2F0ZWdvcnlUeXBlLFxyXG4gICAgVHJhbnNwb3J0OiAyIGFzIENhdGVnb3J5VHlwZVxyXG4gIH07XHJcblxyXG4gIGV4cG9ydCBjb25zdCBQcmltYXJ5SWRlbnRpdHlTcGFjZSA9IHtcclxuICAgIFVzZXJPYmplY3RJZDogJ1VzZXJPYmplY3RJZCcgYXMgUHJpbWFyeUlkZW50aXR5U3BhY2VUeXBlLFxyXG4gICAgTVNBQ0lEOiAnTVNBQ0lEJyBhcyBQcmltYXJ5SWRlbnRpdHlTcGFjZVR5cGUsXHJcbiAgICBPcmdJZFB1aWQ6ICdPcmdJZFB1aWQnIGFzIFByaW1hcnlJZGVudGl0eVNwYWNlVHlwZSxcclxuICAgIE9yZ0lkQ0lEOiAnT3JnSWRDSUQnIGFzIFByaW1hcnlJZGVudGl0eVNwYWNlVHlwZSxcclxuICAgIE1zYVB1aWQ6ICdNc2FQdWlkJyBhcyBQcmltYXJ5SWRlbnRpdHlTcGFjZVR5cGUsXHJcbiAgICBXb3BpQXV0aDogJ1dvcGlBdXRoJyBhcyBQcmltYXJ5SWRlbnRpdHlTcGFjZVR5cGUsXHJcbiAgICBUaGlyZFBhcnR5OiAnVGhpcmRQYXJ0eScgYXMgUHJpbWFyeUlkZW50aXR5U3BhY2VUeXBlXHJcbiAgfTtcclxuXHJcbiAgZXhwb3J0IGNvbnN0IEF1ZGllbmNlR3JvdXAgPSB7XHJcbiAgICBBdXRvbWF0aW9uOiAnQXV0b21hdGlvbicgYXMgQXVkaWVuY2VHcm91cFR5cGUsXHJcbiAgICBEb2dmb29kOiAnRG9nZm9vZCcgYXMgQXVkaWVuY2VHcm91cFR5cGUsXHJcbiAgICBNaWNyb3NvZnQ6ICdNaWNyb3NvZnQnIGFzIEF1ZGllbmNlR3JvdXBUeXBlLFxyXG4gICAgSW5zaWRlcnM6ICdJbnNpZGVycycgYXMgQXVkaWVuY2VHcm91cFR5cGUsXHJcbiAgICBQcm9kdWN0aW9uOiAnUHJvZHVjdGlvbicgYXMgQXVkaWVuY2VHcm91cFR5cGVcclxuICB9O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/enumObjects/EnumObjects.js\n"); /***/ }), /***/ "./node_modules/@microsoft/oteljs/dist/index.js": /*!******************************************************!*\ !*** ./node_modules/@microsoft/oteljs/dist/index.js ***! \******************************************************/ /*! exports provided: Contracts, Result, Activity, User, Funnel, UserAction, App, Session, HealthQosError, Release, CV, makeBooleanDataField, makeInt64DataField, makeDoubleDataField, makeStringDataField, makeGuidDataField, getEffectiveEventFlags, onNotification, logNotification, logError, SuppressNexus, cloneEvent, SimpleTelemetryLogger, TelemetryLogger, EnumObjects, sendHealthQosError */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _contracts_Contracts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./contracts/Contracts */ \"./node_modules/@microsoft/oteljs/dist/contracts/Contracts.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Contracts\", function() { return _contracts_Contracts__WEBPACK_IMPORTED_MODULE_0__[\"Contracts\"]; });\n\n/* harmony import */ var _Contracts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Contracts */ \"./node_modules/@microsoft/oteljs/dist/Contracts.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Result\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"Result\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Activity\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"Activity\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"User\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"User\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Funnel\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"Funnel\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"UserAction\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"UserAction\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"App\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"App\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Session\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"Session\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"HealthQosError\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"HealthQosError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Release\", function() { return _Contracts__WEBPACK_IMPORTED_MODULE_1__[\"Release\"]; });\n\n/* harmony import */ var _DataModels__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./DataModels */ \"./node_modules/@microsoft/oteljs/dist/DataModels.js\");\n/* empty/unused harmony star reexport *//* harmony import */ var _CorrelationVector__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CorrelationVector */ \"./node_modules/@microsoft/oteljs/dist/CorrelationVector.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"CV\", function() { return _CorrelationVector__WEBPACK_IMPORTED_MODULE_3__[\"CV\"]; });\n\n/* harmony import */ var _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DataFieldHelper */ \"./node_modules/@microsoft/oteljs/dist/DataFieldHelper.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeBooleanDataField\", function() { return _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__[\"makeBooleanDataField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeInt64DataField\", function() { return _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__[\"makeInt64DataField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeDoubleDataField\", function() { return _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__[\"makeDoubleDataField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeStringDataField\", function() { return _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__[\"makeStringDataField\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"makeGuidDataField\", function() { return _DataFieldHelper__WEBPACK_IMPORTED_MODULE_4__[\"makeGuidDataField\"]; });\n\n/* harmony import */ var _EventFlagFiller__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./EventFlagFiller */ \"./node_modules/@microsoft/oteljs/dist/EventFlagFiller.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"getEffectiveEventFlags\", function() { return _EventFlagFiller__WEBPACK_IMPORTED_MODULE_5__[\"getEffectiveEventFlags\"]; });\n\n/* harmony import */ var _OTelNotifications__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./OTelNotifications */ \"./node_modules/@microsoft/oteljs/dist/OTelNotifications.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"onNotification\", function() { return _OTelNotifications__WEBPACK_IMPORTED_MODULE_6__[\"onNotification\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logNotification\", function() { return _OTelNotifications__WEBPACK_IMPORTED_MODULE_6__[\"logNotification\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"logError\", function() { return _OTelNotifications__WEBPACK_IMPORTED_MODULE_6__[\"logError\"]; });\n\n/* harmony import */ var _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./SimpleTelemetryLogger */ \"./node_modules/@microsoft/oteljs/dist/SimpleTelemetryLogger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SuppressNexus\", function() { return _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_7__[\"SuppressNexus\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"cloneEvent\", function() { return _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_7__[\"cloneEvent\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"SimpleTelemetryLogger\", function() { return _SimpleTelemetryLogger__WEBPACK_IMPORTED_MODULE_7__[\"SimpleTelemetryLogger\"]; });\n\n/* harmony import */ var _TelemetryLogger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./TelemetryLogger */ \"./node_modules/@microsoft/oteljs/dist/TelemetryLogger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TelemetryLogger\", function() { return _TelemetryLogger__WEBPACK_IMPORTED_MODULE_8__[\"TelemetryLogger\"]; });\n\n/* harmony import */ var _enumObjects_EnumObjects__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enumObjects/EnumObjects */ \"./node_modules/@microsoft/oteljs/dist/enumObjects/EnumObjects.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"EnumObjects\", function() { return _enumObjects_EnumObjects__WEBPACK_IMPORTED_MODULE_9__[\"EnumObjects\"]; });\n\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./Utils */ \"./node_modules/@microsoft/oteljs/dist/Utils.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"sendHealthQosError\", function() { return _Utils__WEBPACK_IMPORTED_MODULE_10__[\"sendHealthQosError\"]; });\n\n/* Contracts in a big object, for backwards compatibility */\r\n\r\n/* Contracts in individual objects, for size optimization */\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/* Enums for callers who don't like const enums */\r\n\r\n/* Util functions for public consumption */\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1pY3Jvc29mdC9vdGVsanMvc3JjL2luZGV4LnRzPzdiOTAiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSw0REFBNEQ7QUFDdEI7QUFFdEMsNERBQTREO0FBQ2hDO0FBRUM7QUFFWTtBQUNQO0FBQ0E7QUFDRTtBQUNJO0FBQ047QUFFbEMsa0RBQWtEO0FBQ1I7QUFFMUMsMkNBQTJDO0FBQ25CIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0BtaWNyb3NvZnQvb3RlbGpzL2Rpc3QvaW5kZXguanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBDb250cmFjdHMgaW4gYSBiaWcgb2JqZWN0LCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9jb250cmFjdHMvQ29udHJhY3RzJztcclxuXHJcbi8qIENvbnRyYWN0cyBpbiBpbmRpdmlkdWFsIG9iamVjdHMsIGZvciBzaXplIG9wdGltaXphdGlvbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL0NvbnRyYWN0cyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL0RhdGFNb2RlbHMnO1xyXG5leHBvcnQgeyBJQWN0aXZpdHlTY29wZSB9IGZyb20gJy4vQWN0aXZpdHknO1xyXG5leHBvcnQgeyBDViB9IGZyb20gJy4vQ29ycmVsYXRpb25WZWN0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL0RhdGFGaWVsZEhlbHBlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vRXZlbnRGbGFnRmlsbGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9PVGVsTm90aWZpY2F0aW9ucyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vU2ltcGxlVGVsZW1ldHJ5TG9nZ2VyJztcclxuZXhwb3J0ICogZnJvbSAnLi9UZWxlbWV0cnlMb2dnZXInO1xyXG5cclxuLyogRW51bXMgZm9yIGNhbGxlcnMgd2hvIGRvbid0IGxpa2UgY29uc3QgZW51bXMgKi9cclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtT2JqZWN0cy9FbnVtT2JqZWN0cyc7XHJcblxyXG4vKiBVdGlsIGZ1bmN0aW9ucyBmb3IgcHVibGljIGNvbnN1bXB0aW9uICovXHJcbmV4cG9ydCAqIGZyb20gJy4vVXRpbHMnO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@microsoft/oteljs/dist/index.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js": /*!*********************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js ***! \*********************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IFloodgateHostPlatform = exports.GovernedChannelType = exports.ICampaignDefinitions = exports.Api = void 0;\r\n__exportStar(__webpack_require__(/*! ./src/Core/Api */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\"), exports);\r\nexports.Api = __webpack_require__(/*! ./src/Core/Api */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\");\r\n__exportStar(__webpack_require__(/*! ./src/Core/ISurveyInfo */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/ISurveyEvent */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/Campaign/UxSchema */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js\"), exports);\r\nvar CampaignDefinitions_1 = __webpack_require__(/*! ./src/Core/Governance/CampaignDefinitions */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js\");\r\nObject.defineProperty(exports, \"ICampaignDefinitions\", { enumerable: true, get: function () { return CampaignDefinitions_1.ICampaignDefinitions; } });\r\nvar GovernedChannel_1 = __webpack_require__(/*! ./src/Core/Governance/GovernedChannel */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js\");\r\nObject.defineProperty(exports, \"GovernedChannelType\", { enumerable: true, get: function () { return GovernedChannel_1.GovernedChannelType; } });\r\n__exportStar(__webpack_require__(/*! ./src/Core/DynamicUx/IDynamicUxCommonInitOptions */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js\"), exports);\r\nvar IFloodgateHostPlatform_1 = __webpack_require__(/*! ./src/Core/DynamicUx/IFloodgateHostPlatform */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js\");\r\nObject.defineProperty(exports, \"IFloodgateHostPlatform\", { enumerable: true, get: function () { return IFloodgateHostPlatform_1.IFloodgateHostPlatform; } });\r\n__exportStar(__webpack_require__(/*! ./src/Core/DynamicUx/ISurveyCSSParams */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./src/Core/Petrol/ManifestType */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9pbmRleC5qcz9kYTdkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGtDQUFrQyxvQ0FBb0MsYUFBYSxFQUFFLEVBQUU7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGNBQWM7QUFDNUQ7QUFDQSxhQUFhLG1CQUFPLENBQUMsa0dBQWdCO0FBQ3JDLGNBQWMsbUJBQU8sQ0FBQyxrR0FBZ0I7QUFDdEMsYUFBYSxtQkFBTyxDQUFDLDRHQUF3QjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsOEdBQXlCO0FBQzlDLGFBQWEsbUJBQU8sQ0FBQyw4SEFBOEI7QUFDbkQsNEJBQTRCLG1CQUFPLENBQUMsa0pBQTJDO0FBQy9FLHdEQUF3RCxxQ0FBcUMsbURBQW1ELEVBQUUsRUFBRTtBQUNwSix3QkFBd0IsbUJBQU8sQ0FBQywwSUFBdUM7QUFDdkUsdURBQXVELHFDQUFxQyw4Q0FBOEMsRUFBRSxFQUFFO0FBQzlJLGFBQWEsbUJBQU8sQ0FBQyxnS0FBa0Q7QUFDdkUsK0JBQStCLG1CQUFPLENBQUMsc0pBQTZDO0FBQ3BGLDBEQUEwRCxxQ0FBcUMsd0RBQXdELEVBQUUsRUFBRTtBQUMzSixhQUFhLG1CQUFPLENBQUMsMElBQXVDO0FBQzVELGFBQWEsbUJBQU8sQ0FBQyw0SEFBZ0MiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSkpO1xyXG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcclxufTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklGbG9vZGdhdGVIb3N0UGxhdGZvcm0gPSBleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSBleHBvcnRzLklDYW1wYWlnbkRlZmluaXRpb25zID0gZXhwb3J0cy5BcGkgPSB2b2lkIDA7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9BcGlcIiksIGV4cG9ydHMpO1xyXG5leHBvcnRzLkFwaSA9IHJlcXVpcmUoXCIuL3NyYy9Db3JlL0FwaVwiKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL3NyYy9Db3JlL0lTdXJ2ZXlJbmZvXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL3NyYy9Db3JlL0lTdXJ2ZXlFdmVudFwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYVwiKSwgZXhwb3J0cyk7XHJcbnZhciBDYW1wYWlnbkRlZmluaXRpb25zXzEgPSByZXF1aXJlKFwiLi9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnNcIik7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIklDYW1wYWlnbkRlZmluaXRpb25zXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBDYW1wYWlnbkRlZmluaXRpb25zXzEuSUNhbXBhaWduRGVmaW5pdGlvbnM7IH0gfSk7XHJcbnZhciBHb3Zlcm5lZENoYW5uZWxfMSA9IHJlcXVpcmUoXCIuL3NyYy9Db3JlL0dvdmVybmFuY2UvR292ZXJuZWRDaGFubmVsXCIpO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJHb3Zlcm5lZENoYW5uZWxUeXBlXCIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBHb3Zlcm5lZENoYW5uZWxfMS5Hb3Zlcm5lZENoYW5uZWxUeXBlOyB9IH0pO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vc3JjL0NvcmUvRHluYW1pY1V4L0lEeW5hbWljVXhDb21tb25Jbml0T3B0aW9uc1wiKSwgZXhwb3J0cyk7XHJcbnZhciBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtXzEgPSByZXF1aXJlKFwiLi9zcmMvQ29yZS9EeW5hbWljVXgvSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybVwiKTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybVwiLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24gKCkgeyByZXR1cm4gSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybV8xLklGbG9vZGdhdGVIb3N0UGxhdGZvcm07IH0gfSk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtc1wiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9zcmMvQ29yZS9QZXRyb2wvTWFuaWZlc3RUeXBlXCIpLCBleHBvcnRzKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js": /*!****************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.EcsConfigType = void 0;\r\nvar EcsConfigType;\r\n(function (EcsConfigType) {\r\n EcsConfigType[EcsConfigType[\"Default\"] = 0] = \"Default\";\r\n EcsConfigType[EcsConfigType[\"User\"] = 1] = \"User\";\r\n})(EcsConfigType = exports.EcsConfigType || (exports.EcsConfigType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvRWNzL0lNb2RlbHMuanM/MDBkMCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHNFQUFzRSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9FY3MvSU1vZGVscy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRWNzQ29uZmlnVHlwZSA9IHZvaWQgMDtcclxudmFyIEVjc0NvbmZpZ1R5cGU7XHJcbihmdW5jdGlvbiAoRWNzQ29uZmlnVHlwZSkge1xyXG4gICAgRWNzQ29uZmlnVHlwZVtFY3NDb25maWdUeXBlW1wiRGVmYXVsdFwiXSA9IDBdID0gXCJEZWZhdWx0XCI7XHJcbiAgICBFY3NDb25maWdUeXBlW0Vjc0NvbmZpZ1R5cGVbXCJVc2VyXCJdID0gMV0gPSBcIlVzZXJcIjtcclxufSkoRWNzQ29uZmlnVHlwZSA9IGV4cG9ydHMuRWNzQ29uZmlnVHlwZSB8fCAoZXhwb3J0cy5FY3NDb25maWdUeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js": /*!**********************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js ***! \**********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ActivityName = void 0;\r\nvar ActivityName = (function () {\r\n function ActivityName() {\r\n }\r\n ActivityName.AppLaunch = \"AppLaunch\";\r\n ActivityName.AppUsageTime = \"AppUsageTime\";\r\n ActivityName.AppResume = \"AppResume\";\r\n return ActivityName;\r\n}());\r\nexports.ActivityName = ActivityName;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUFjdGl2aXR5TGlzdGVuZXIuanM/YWViMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUFjdGl2aXR5TGlzdGVuZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkFjdGl2aXR5TmFtZSA9IHZvaWQgMDtcclxudmFyIEFjdGl2aXR5TmFtZSA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBBY3Rpdml0eU5hbWUoKSB7XHJcbiAgICB9XHJcbiAgICBBY3Rpdml0eU5hbWUuQXBwTGF1bmNoID0gXCJBcHBMYXVuY2hcIjtcclxuICAgIEFjdGl2aXR5TmFtZS5BcHBVc2FnZVRpbWUgPSBcIkFwcFVzYWdlVGltZVwiO1xyXG4gICAgQWN0aXZpdHlOYW1lLkFwcFJlc3VtZSA9IFwiQXBwUmVzdW1lXCI7XHJcbiAgICByZXR1cm4gQWN0aXZpdHlOYW1lO1xyXG59KCkpO1xyXG5leHBvcnRzLkFjdGl2aXR5TmFtZSA9IEFjdGl2aXR5TmFtZTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js": /*!**************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js ***! \**************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUNWU3VydmV5LmpzP2RiN2EiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JQ1ZTdXJ2ZXkuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js": /*!*********************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUR5bmFtaWNVeENsaWVudC5qcz81NjNkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUR5bmFtaWNVeENsaWVudC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js": /*!****************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUVjc0FkYXB0ZXIuanM/NzY1MCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lFY3NBZGFwdGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js": /*!***************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.RoamingSettingIdMap = void 0;\r\nexports.RoamingSettingIdMap = {\r\n CampaignStates: 1258,\r\n GovernedChannelStates: 1257,\r\n SurveyActivationStats: 1259,\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVNldHRpbmdJZE1hcC5qcz9lNzIxIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lGbG9vZGdhdGVTZXR0aW5nSWRNYXAuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlJvYW1pbmdTZXR0aW5nSWRNYXAgPSB2b2lkIDA7XHJcbmV4cG9ydHMuUm9hbWluZ1NldHRpbmdJZE1hcCA9IHtcclxuICAgIENhbXBhaWduU3RhdGVzOiAxMjU4LFxyXG4gICAgR292ZXJuZWRDaGFubmVsU3RhdGVzOiAxMjU3LFxyXG4gICAgU3VydmV5QWN0aXZhdGlvblN0YXRzOiAxMjU5LFxyXG59O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js": /*!******************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js ***! \******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.FloodgateStorageProviderFileType = void 0;\r\nvar FloodgateStorageProviderFileType;\r\n(function (FloodgateStorageProviderFileType) {\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"FloodgateSettings\"] = 0] = \"FloodgateSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"SurveyActivationStats\"] = 1] = \"SurveyActivationStats\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"SurveyEventActivityStats\"] = 2] = \"SurveyEventActivityStats\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"CampaignDefinitions\"] = 3] = \"CampaignDefinitions\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"CampaignStates\"] = 4] = \"CampaignStates\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"GovernedChannelStates\"] = 5] = \"GovernedChannelStates\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_MessageMetadata\"] = 6] = \"TmsCache_MessageMetadata\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_UserGovernance\"] = 7] = \"TmsCache_UserGovernance\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"TmsCache_CampaignContent\"] = 8] = \"TmsCache_CampaignContent\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"Tms_DynamicSettings\"] = 9] = \"Tms_DynamicSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"LogLevelSettings\"] = 10] = \"LogLevelSettings\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"UserFacts\"] = 11] = \"UserFacts\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"DebugOverrides\"] = 12] = \"DebugOverrides\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"DynamicCampaignDefinitions\"] = 13] = \"DynamicCampaignDefinitions\";\r\n FloodgateStorageProviderFileType[FloodgateStorageProviderFileType[\"FeatureGateOverrides\"] = 14] = \"FeatureGateOverrides\";\r\n})(FloodgateStorageProviderFileType = exports.FloodgateStorageProviderFileType || (exports.FloodgateStorageProviderFileType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlci5qcz82OTM5Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQywrSEFBK0giLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGUgPSB2b2lkIDA7XHJcbnZhciBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZTtcclxuKGZ1bmN0aW9uIChGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSkge1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJGbG9vZGdhdGVTZXR0aW5nc1wiXSA9IDBdID0gXCJGbG9vZGdhdGVTZXR0aW5nc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJTdXJ2ZXlBY3RpdmF0aW9uU3RhdHNcIl0gPSAxXSA9IFwiU3VydmV5QWN0aXZhdGlvblN0YXRzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlN1cnZleUV2ZW50QWN0aXZpdHlTdGF0c1wiXSA9IDJdID0gXCJTdXJ2ZXlFdmVudEFjdGl2aXR5U3RhdHNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiQ2FtcGFpZ25EZWZpbml0aW9uc1wiXSA9IDNdID0gXCJDYW1wYWlnbkRlZmluaXRpb25zXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkNhbXBhaWduU3RhdGVzXCJdID0gNF0gPSBcIkNhbXBhaWduU3RhdGVzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkdvdmVybmVkQ2hhbm5lbFN0YXRlc1wiXSA9IDVdID0gXCJHb3Zlcm5lZENoYW5uZWxTdGF0ZXNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiVG1zQ2FjaGVfTWVzc2FnZU1ldGFkYXRhXCJdID0gNl0gPSBcIlRtc0NhY2hlX01lc3NhZ2VNZXRhZGF0YVwiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJUbXNDYWNoZV9Vc2VyR292ZXJuYW5jZVwiXSA9IDddID0gXCJUbXNDYWNoZV9Vc2VyR292ZXJuYW5jZVwiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJUbXNDYWNoZV9DYW1wYWlnbkNvbnRlbnRcIl0gPSA4XSA9IFwiVG1zQ2FjaGVfQ2FtcGFpZ25Db250ZW50XCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlRtc19EeW5hbWljU2V0dGluZ3NcIl0gPSA5XSA9IFwiVG1zX0R5bmFtaWNTZXR0aW5nc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJMb2dMZXZlbFNldHRpbmdzXCJdID0gMTBdID0gXCJMb2dMZXZlbFNldHRpbmdzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIlVzZXJGYWN0c1wiXSA9IDExXSA9IFwiVXNlckZhY3RzXCI7XHJcbiAgICBGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtGbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZVtcIkRlYnVnT3ZlcnJpZGVzXCJdID0gMTJdID0gXCJEZWJ1Z092ZXJyaWRlc1wiO1xyXG4gICAgRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbRmxvb2RnYXRlU3RvcmFnZVByb3ZpZGVyRmlsZVR5cGVbXCJEeW5hbWljQ2FtcGFpZ25EZWZpbml0aW9uc1wiXSA9IDEzXSA9IFwiRHluYW1pY0NhbXBhaWduRGVmaW5pdGlvbnNcIjtcclxuICAgIEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW0Zsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlW1wiRmVhdHVyZUdhdGVPdmVycmlkZXNcIl0gPSAxNF0gPSBcIkZlYXR1cmVHYXRlT3ZlcnJpZGVzXCI7XHJcbn0pKEZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlckZpbGVUeXBlID0gZXhwb3J0cy5GbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSB8fCAoZXhwb3J0cy5GbG9vZGdhdGVTdG9yYWdlUHJvdmlkZXJGaWxlVHlwZSA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUZsb29kZ2F0ZVN0cmluZ1Byb3ZpZGVyLmpzP2ZlZWUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXIuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GovernanceServiceClientState = exports.GovernanceServiceSurveyType = void 0;\r\nvar GovernanceServiceSurveyType;\r\n(function (GovernanceServiceSurveyType) {\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Unknown\"] = 0] = \"Unknown\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Feedback\"] = 1] = \"Feedback\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Nps\"] = 2] = \"Nps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Psat\"] = 4] = \"Psat\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Bps\"] = 6] = \"Bps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Fps\"] = 8] = \"Fps\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Nlqs\"] = 18] = \"Nlqs\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"GenericMessagingSurface\"] = 22] = \"GenericMessagingSurface\";\r\n GovernanceServiceSurveyType[GovernanceServiceSurveyType[\"Intercept\"] = 24] = \"Intercept\";\r\n})(GovernanceServiceSurveyType = exports.GovernanceServiceSurveyType || (exports.GovernanceServiceSurveyType = {}));\r\nvar GovernanceServiceClientState;\r\n(function (GovernanceServiceClientState) {\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"Disabled\"] = 0] = \"Disabled\";\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"InitializationFailed\"] = 1] = \"InitializationFailed\";\r\n GovernanceServiceClientState[GovernanceServiceClientState[\"Enabled\"] = 2] = \"Enabled\";\r\n})(GovernanceServiceClientState = exports.GovernanceServiceClientState || (exports.GovernanceServiceClientState = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LmpzPzY5YjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdIQUFnSDtBQUNqSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxtSEFBbUgiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSUdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlID0gZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGUgPSB2b2lkIDA7XHJcbnZhciBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGU7XHJcbihmdW5jdGlvbiAoR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlKSB7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiVW5rbm93blwiXSA9IDBdID0gXCJVbmtub3duXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiRmVlZGJhY2tcIl0gPSAxXSA9IFwiRmVlZGJhY2tcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbXCJOcHNcIl0gPSAyXSA9IFwiTnBzXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiUHNhdFwiXSA9IDRdID0gXCJQc2F0XCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiQnBzXCJdID0gNl0gPSBcIkJwc1wiO1xyXG4gICAgR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW0dvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtcIkZwc1wiXSA9IDhdID0gXCJGcHNcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlU3VydmV5VHlwZVtHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbXCJObHFzXCJdID0gMThdID0gXCJObHFzXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiR2VuZXJpY01lc3NhZ2luZ1N1cmZhY2VcIl0gPSAyMl0gPSBcIkdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGVbR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlW1wiSW50ZXJjZXB0XCJdID0gMjRdID0gXCJJbnRlcmNlcHRcIjtcclxufSkoR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlID0gZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZVN1cnZleVR5cGUgfHwgKGV4cG9ydHMuR292ZXJuYW5jZVNlcnZpY2VTdXJ2ZXlUeXBlID0ge30pKTtcclxudmFyIEdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGU7XHJcbihmdW5jdGlvbiAoR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSkge1xyXG4gICAgR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZVtHb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlW1wiRGlzYWJsZWRcIl0gPSAwXSA9IFwiRGlzYWJsZWRcIjtcclxuICAgIEdvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGVbR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZVtcIkluaXRpYWxpemF0aW9uRmFpbGVkXCJdID0gMV0gPSBcIkluaXRpYWxpemF0aW9uRmFpbGVkXCI7XHJcbiAgICBHb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlW0dvdmVybmFuY2VTZXJ2aWNlQ2xpZW50U3RhdGVbXCJFbmFibGVkXCJdID0gMl0gPSBcIkVuYWJsZWRcIjtcclxufSkoR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSA9IGV4cG9ydHMuR292ZXJuYW5jZVNlcnZpY2VDbGllbnRTdGF0ZSB8fCAoZXhwb3J0cy5Hb3Zlcm5hbmNlU2VydmljZUNsaWVudFN0YXRlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js ***! \*****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU11bHRpcGxlQ2hvaWNlQ29tcG9uZW50LmpzP2YzYjMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JTXVsdGlwbGVDaG9pY2VDb21wb25lbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js": /*!****************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js ***! \****************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5scXNTdXJ2ZXkuanM/M2NlZSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lObHFzU3VydmV5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js": /*!***************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js ***! \***************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5wc1N1cnZleS5qcz84OGNiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSU5wc1N1cnZleS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js": /*!************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVByb21wdC5qcz8xNGVhIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVByb21wdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js": /*!************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.LAUNCHER_TYPE_DEFAULT = exports.DOM_INTERCEPT_TAGNAME = exports.DOM_NLQS_TAGNAME = exports.DOM_FPS_TAGNAME = exports.DOM_BPS_TAGNAME = exports.DOM_PSAT_TAGNAME = exports.DOM_NPS_TAGNAME = exports.DOM_FEEDBACKSURVEY_TAGNAME = exports.SurveyType = void 0;\r\nvar SurveyType;\r\n(function (SurveyType) {\r\n SurveyType[SurveyType[\"Feedback\"] = 0] = \"Feedback\";\r\n SurveyType[SurveyType[\"Nps\"] = 1] = \"Nps\";\r\n SurveyType[SurveyType[\"Psat\"] = 2] = \"Psat\";\r\n SurveyType[SurveyType[\"Bps\"] = 3] = \"Bps\";\r\n SurveyType[SurveyType[\"Fps\"] = 4] = \"Fps\";\r\n SurveyType[SurveyType[\"Nlqs\"] = 5] = \"Nlqs\";\r\n SurveyType[SurveyType[\"Intercept\"] = 6] = \"Intercept\";\r\n SurveyType[SurveyType[\"GenericMessagingSurface\"] = 12] = \"GenericMessagingSurface\";\r\n})(SurveyType = exports.SurveyType || (exports.SurveyType = {}));\r\nexports.DOM_FEEDBACKSURVEY_TAGNAME = \"FeedbackSurvey\";\r\nexports.DOM_NPS_TAGNAME = \"Nps\";\r\nexports.DOM_PSAT_TAGNAME = \"Psat\";\r\nexports.DOM_BPS_TAGNAME = \"Bps\";\r\nexports.DOM_FPS_TAGNAME = \"Fps\";\r\nexports.DOM_NLQS_TAGNAME = \"Nlqs\";\r\nexports.DOM_INTERCEPT_TAGNAME = \"Intercept\";\r\nexports.LAUNCHER_TYPE_DEFAULT = \"survey\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleS5qcz82MDJjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNkRBQTZEO0FBQzlEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuTEFVTkNIRVJfVFlQRV9ERUZBVUxUID0gZXhwb3J0cy5ET01fSU5URVJDRVBUX1RBR05BTUUgPSBleHBvcnRzLkRPTV9OTFFTX1RBR05BTUUgPSBleHBvcnRzLkRPTV9GUFNfVEFHTkFNRSA9IGV4cG9ydHMuRE9NX0JQU19UQUdOQU1FID0gZXhwb3J0cy5ET01fUFNBVF9UQUdOQU1FID0gZXhwb3J0cy5ET01fTlBTX1RBR05BTUUgPSBleHBvcnRzLkRPTV9GRUVEQkFDS1NVUlZFWV9UQUdOQU1FID0gZXhwb3J0cy5TdXJ2ZXlUeXBlID0gdm9pZCAwO1xyXG52YXIgU3VydmV5VHlwZTtcclxuKGZ1bmN0aW9uIChTdXJ2ZXlUeXBlKSB7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJGZWVkYmFja1wiXSA9IDBdID0gXCJGZWVkYmFja1wiO1xyXG4gICAgU3VydmV5VHlwZVtTdXJ2ZXlUeXBlW1wiTnBzXCJdID0gMV0gPSBcIk5wc1wiO1xyXG4gICAgU3VydmV5VHlwZVtTdXJ2ZXlUeXBlW1wiUHNhdFwiXSA9IDJdID0gXCJQc2F0XCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJCcHNcIl0gPSAzXSA9IFwiQnBzXCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJGcHNcIl0gPSA0XSA9IFwiRnBzXCI7XHJcbiAgICBTdXJ2ZXlUeXBlW1N1cnZleVR5cGVbXCJObHFzXCJdID0gNV0gPSBcIk5scXNcIjtcclxuICAgIFN1cnZleVR5cGVbU3VydmV5VHlwZVtcIkludGVyY2VwdFwiXSA9IDZdID0gXCJJbnRlcmNlcHRcIjtcclxuICAgIFN1cnZleVR5cGVbU3VydmV5VHlwZVtcIkdlbmVyaWNNZXNzYWdpbmdTdXJmYWNlXCJdID0gMTJdID0gXCJHZW5lcmljTWVzc2FnaW5nU3VyZmFjZVwiO1xyXG59KShTdXJ2ZXlUeXBlID0gZXhwb3J0cy5TdXJ2ZXlUeXBlIHx8IChleHBvcnRzLlN1cnZleVR5cGUgPSB7fSkpO1xyXG5leHBvcnRzLkRPTV9GRUVEQkFDS1NVUlZFWV9UQUdOQU1FID0gXCJGZWVkYmFja1N1cnZleVwiO1xyXG5leHBvcnRzLkRPTV9OUFNfVEFHTkFNRSA9IFwiTnBzXCI7XHJcbmV4cG9ydHMuRE9NX1BTQVRfVEFHTkFNRSA9IFwiUHNhdFwiO1xyXG5leHBvcnRzLkRPTV9CUFNfVEFHTkFNRSA9IFwiQnBzXCI7XHJcbmV4cG9ydHMuRE9NX0ZQU19UQUdOQU1FID0gXCJGcHNcIjtcclxuZXhwb3J0cy5ET01fTkxRU19UQUdOQU1FID0gXCJObHFzXCI7XHJcbmV4cG9ydHMuRE9NX0lOVEVSQ0VQVF9UQUdOQU1FID0gXCJJbnRlcmNlcHRcIjtcclxuZXhwb3J0cy5MQVVOQ0hFUl9UWVBFX0RFRkFVTFQgPSBcInN1cnZleVwiO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js": /*!*********************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js ***! \*********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.JSON_SURVEYSPECIFICDATA_KEYNAME = exports.JSON_SURVEYSTRINGS_KEYNAME = exports.JSON_EXTENDEDMANIFESTDATA_KEYNAME = exports.JSON_APPLICATION_KEYNAME = exports.JSON_MULTIPLECHOICE_KEYNAME = exports.JSON_QUESTION_KEYNAME = exports.JSON_TITLE_KEYNAME = exports.JSON_CVSURVEYPLATFORM_KEYNAME = exports.JSON_CVSURVEYUIHOST_KEYNAME = exports.JSON_CVSURVEYPRODUCTNAME_KEYNAME = exports.JSON_RATINGOPTIONS_KEYNAME = exports.JSON_CVSURVEYTHEME_KEYNAME = exports.JSON_CVSURVEYFORMID_KEYNAME = exports.JSON_CVSURVEY_KEYNAME = exports.JSON_RATING_KEYNAME = exports.JSON_COMMENT_KEYNAME = exports.JSON_PROMPTNOTEXT_KEYNAME = exports.JSON_PROMPTYESTEXT_KEYNAME = exports.JSON_PROMPT_KEYNAME = exports.JSON_INTERCEPTURL_KEYNAME = exports.JSON_INTERCEPT_KEYNAME = exports.DOM_MULTIPLECHOICE_TAGNAME = exports.DOM_CVSURVEY_TAGNAME = exports.DOM_RATING_TAGNAME = exports.DOM_COMMENT_TAGNAME = exports.DOM_PROMPT_TAGNAME = void 0;\r\nexports.DOM_PROMPT_TAGNAME = \"Prompt\";\r\nexports.DOM_COMMENT_TAGNAME = \"Comment\";\r\nexports.DOM_RATING_TAGNAME = \"Rating\";\r\nexports.DOM_CVSURVEY_TAGNAME = \"CVSurvey\";\r\nexports.DOM_MULTIPLECHOICE_TAGNAME = \"MultipleChoice\";\r\nexports.JSON_INTERCEPT_KEYNAME = \"intercept\";\r\nexports.JSON_INTERCEPTURL_KEYNAME = \"url\";\r\nexports.JSON_PROMPT_KEYNAME = \"prompt\";\r\nexports.JSON_PROMPTYESTEXT_KEYNAME = \"yesButtonText\";\r\nexports.JSON_PROMPTNOTEXT_KEYNAME = \"noButtonText\";\r\nexports.JSON_COMMENT_KEYNAME = \"comment\";\r\nexports.JSON_RATING_KEYNAME = \"rating\";\r\nexports.JSON_CVSURVEY_KEYNAME = \"cvSurvey\";\r\nexports.JSON_CVSURVEYFORMID_KEYNAME = \"formId\";\r\nexports.JSON_CVSURVEYTHEME_KEYNAME = \"theme\";\r\nexports.JSON_RATINGOPTIONS_KEYNAME = \"options\";\r\nexports.JSON_CVSURVEYPRODUCTNAME_KEYNAME = \"productName\";\r\nexports.JSON_CVSURVEYUIHOST_KEYNAME = \"uiHost\";\r\nexports.JSON_CVSURVEYPLATFORM_KEYNAME = \"platform\";\r\nexports.JSON_TITLE_KEYNAME = \"title\";\r\nexports.JSON_QUESTION_KEYNAME = \"question\";\r\nexports.JSON_MULTIPLECHOICE_KEYNAME = \"multipleChoice\";\r\nexports.JSON_APPLICATION_KEYNAME = \"application\";\r\nexports.JSON_EXTENDEDMANIFESTDATA_KEYNAME = \"extendedManifestData\";\r\nexports.JSON_SURVEYSTRINGS_KEYNAME = \"surveyStrings\";\r\nexports.JSON_SURVEYSPECIFICDATA_KEYNAME = \"surveySpecificData\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvSVN1cnZleUNvbXBvbmVudC5qcz9mNDM1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQXBpL0lTdXJ2ZXlDb21wb25lbnQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkpTT05fU1VSVkVZU1BFQ0lGSUNEQVRBX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fU1VSVkVZU1RSSU5HU19LRVlOQU1FID0gZXhwb3J0cy5KU09OX0VYVEVOREVETUFOSUZFU1REQVRBX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQVBQTElDQVRJT05fS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9NVUxUSVBMRUNIT0lDRV9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1FVRVNUSU9OX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fVElUTEVfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWVBMQVRGT1JNX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQ1ZTVVJWRVlVSUhPU1RfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWVBST0RVQ1ROQU1FX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fUkFUSU5HT1BUSU9OU19LRVlOQU1FID0gZXhwb3J0cy5KU09OX0NWU1VSVkVZVEhFTUVfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX0NWU1VSVkVZX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fUkFUSU5HX0tFWU5BTUUgPSBleHBvcnRzLkpTT05fQ09NTUVOVF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1BST01QVE5PVEVYVF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1BST01QVFlFU1RFWFRfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9QUk9NUFRfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9JTlRFUkNFUFRVUkxfS0VZTkFNRSA9IGV4cG9ydHMuSlNPTl9JTlRFUkNFUFRfS0VZTkFNRSA9IGV4cG9ydHMuRE9NX01VTFRJUExFQ0hPSUNFX1RBR05BTUUgPSBleHBvcnRzLkRPTV9DVlNVUlZFWV9UQUdOQU1FID0gZXhwb3J0cy5ET01fUkFUSU5HX1RBR05BTUUgPSBleHBvcnRzLkRPTV9DT01NRU5UX1RBR05BTUUgPSBleHBvcnRzLkRPTV9QUk9NUFRfVEFHTkFNRSA9IHZvaWQgMDtcclxuZXhwb3J0cy5ET01fUFJPTVBUX1RBR05BTUUgPSBcIlByb21wdFwiO1xyXG5leHBvcnRzLkRPTV9DT01NRU5UX1RBR05BTUUgPSBcIkNvbW1lbnRcIjtcclxuZXhwb3J0cy5ET01fUkFUSU5HX1RBR05BTUUgPSBcIlJhdGluZ1wiO1xyXG5leHBvcnRzLkRPTV9DVlNVUlZFWV9UQUdOQU1FID0gXCJDVlN1cnZleVwiO1xyXG5leHBvcnRzLkRPTV9NVUxUSVBMRUNIT0lDRV9UQUdOQU1FID0gXCJNdWx0aXBsZUNob2ljZVwiO1xyXG5leHBvcnRzLkpTT05fSU5URVJDRVBUX0tFWU5BTUUgPSBcImludGVyY2VwdFwiO1xyXG5leHBvcnRzLkpTT05fSU5URVJDRVBUVVJMX0tFWU5BTUUgPSBcInVybFwiO1xyXG5leHBvcnRzLkpTT05fUFJPTVBUX0tFWU5BTUUgPSBcInByb21wdFwiO1xyXG5leHBvcnRzLkpTT05fUFJPTVBUWUVTVEVYVF9LRVlOQU1FID0gXCJ5ZXNCdXR0b25UZXh0XCI7XHJcbmV4cG9ydHMuSlNPTl9QUk9NUFROT1RFWFRfS0VZTkFNRSA9IFwibm9CdXR0b25UZXh0XCI7XHJcbmV4cG9ydHMuSlNPTl9DT01NRU5UX0tFWU5BTUUgPSBcImNvbW1lbnRcIjtcclxuZXhwb3J0cy5KU09OX1JBVElOR19LRVlOQU1FID0gXCJyYXRpbmdcIjtcclxuZXhwb3J0cy5KU09OX0NWU1VSVkVZX0tFWU5BTUUgPSBcImN2U3VydmV5XCI7XHJcbmV4cG9ydHMuSlNPTl9DVlNVUlZFWUZPUk1JRF9LRVlOQU1FID0gXCJmb3JtSWRcIjtcclxuZXhwb3J0cy5KU09OX0NWU1VSVkVZVEhFTUVfS0VZTkFNRSA9IFwidGhlbWVcIjtcclxuZXhwb3J0cy5KU09OX1JBVElOR09QVElPTlNfS0VZTkFNRSA9IFwib3B0aW9uc1wiO1xyXG5leHBvcnRzLkpTT05fQ1ZTVVJWRVlQUk9EVUNUTkFNRV9LRVlOQU1FID0gXCJwcm9kdWN0TmFtZVwiO1xyXG5leHBvcnRzLkpTT05fQ1ZTVVJWRVlVSUhPU1RfS0VZTkFNRSA9IFwidWlIb3N0XCI7XHJcbmV4cG9ydHMuSlNPTl9DVlNVUlZFWVBMQVRGT1JNX0tFWU5BTUUgPSBcInBsYXRmb3JtXCI7XHJcbmV4cG9ydHMuSlNPTl9USVRMRV9LRVlOQU1FID0gXCJ0aXRsZVwiO1xyXG5leHBvcnRzLkpTT05fUVVFU1RJT05fS0VZTkFNRSA9IFwicXVlc3Rpb25cIjtcclxuZXhwb3J0cy5KU09OX01VTFRJUExFQ0hPSUNFX0tFWU5BTUUgPSBcIm11bHRpcGxlQ2hvaWNlXCI7XHJcbmV4cG9ydHMuSlNPTl9BUFBMSUNBVElPTl9LRVlOQU1FID0gXCJhcHBsaWNhdGlvblwiO1xyXG5leHBvcnRzLkpTT05fRVhURU5ERURNQU5JRkVTVERBVEFfS0VZTkFNRSA9IFwiZXh0ZW5kZWRNYW5pZmVzdERhdGFcIjtcclxuZXhwb3J0cy5KU09OX1NVUlZFWVNUUklOR1NfS0VZTkFNRSA9IFwic3VydmV5U3RyaW5nc1wiO1xyXG5leHBvcnRzLkpTT05fU1VSVkVZU1BFQ0lGSUNEQVRBX0tFWU5BTUUgPSBcInN1cnZleVNwZWNpZmljRGF0YVwiO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js": /*!**********************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js ***! \**********************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(__webpack_require__(/*! ./../ISurveyInfo */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IActivityListener */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IActivityListener.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ISurvey */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ISurveyComponent */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurveyComponent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IEcsAdapter */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IEcsAdapter.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateSettingIdMap */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateSettingIdMap.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateStorageProvider */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStorageProvider.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IFloodgateStringProvider */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IFloodgateStringProvider.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IMultipleChoiceComponent */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IMultipleChoiceComponent.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IPrompt */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IPrompt.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./INlqsSurvey */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INlqsSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./INpsSurvey */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/INpsSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./ICVSurvey */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ICVSurvey.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IDynamicUxClient */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IDynamicUxClient.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IGovernanceServiceClient */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/IGovernanceServiceClient.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./Ecs/IModels */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/Ecs/IModels.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9BcGkvaW5kZXguanM/MjcwMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiO0FBQ0E7QUFDQSxrQ0FBa0Msb0NBQW9DLGFBQWEsRUFBRSxFQUFFO0FBQ3ZGLENBQUM7QUFDRDtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBLDhDQUE4QyxjQUFjO0FBQzVELGFBQWEsbUJBQU8sQ0FBQyxzR0FBa0I7QUFDdkMsYUFBYSxtQkFBTyxDQUFDLG1IQUFxQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsK0ZBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLGlIQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsdUdBQWU7QUFDcEMsYUFBYSxtQkFBTyxDQUFDLDZIQUEwQjtBQUMvQyxhQUFhLG1CQUFPLENBQUMsbUlBQTZCO0FBQ2xELGFBQWEsbUJBQU8sQ0FBQyxpSUFBNEI7QUFDakQsYUFBYSxtQkFBTyxDQUFDLGlJQUE0QjtBQUNqRCxhQUFhLG1CQUFPLENBQUMsK0ZBQVc7QUFDaEMsYUFBYSxtQkFBTyxDQUFDLHVHQUFlO0FBQ3BDLGFBQWEsbUJBQU8sQ0FBQyxxR0FBYztBQUNuQyxhQUFhLG1CQUFPLENBQUMsbUdBQWE7QUFDbEMsYUFBYSxtQkFBTyxDQUFDLGlIQUFvQjtBQUN6QyxhQUFhLG1CQUFPLENBQUMsaUlBQTRCO0FBQ2pELGFBQWEsbUJBQU8sQ0FBQyx1R0FBZSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG52YXIgX19jcmVhdGVCaW5kaW5nID0gKHRoaXMgJiYgdGhpcy5fX2NyZWF0ZUJpbmRpbmcpIHx8IChPYmplY3QuY3JlYXRlID8gKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIGsyLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZnVuY3Rpb24oKSB7IHJldHVybiBtW2tdOyB9IH0pO1xyXG59KSA6IChmdW5jdGlvbihvLCBtLCBrLCBrMikge1xyXG4gICAgaWYgKGsyID09PSB1bmRlZmluZWQpIGsyID0gaztcclxuICAgIG9bazJdID0gbVtrXTtcclxufSkpO1xyXG52YXIgX19leHBvcnRTdGFyID0gKHRoaXMgJiYgdGhpcy5fX2V4cG9ydFN0YXIpIHx8IGZ1bmN0aW9uKG0sIGV4cG9ydHMpIHtcclxuICAgIGZvciAodmFyIHAgaW4gbSkgaWYgKHAgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXhwb3J0cywgcCkpIF9fY3JlYXRlQmluZGluZyhleHBvcnRzLCBtLCBwKTtcclxufTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vLi4vSVN1cnZleUluZm9cIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUFjdGl2aXR5TGlzdGVuZXJcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVN1cnZleVwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JU3VydmV5Q29tcG9uZW50XCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lFY3NBZGFwdGVyXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lGbG9vZGdhdGVTZXR0aW5nSWRNYXBcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUZsb29kZ2F0ZVN0b3JhZ2VQcm92aWRlclwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JRmxvb2RnYXRlU3RyaW5nUHJvdmlkZXJcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU11bHRpcGxlQ2hvaWNlQ29tcG9uZW50XCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lQcm9tcHRcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU5scXNTdXJ2ZXlcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSU5wc1N1cnZleVwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JQ1ZTdXJ2ZXlcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSUR5bmFtaWNVeENsaWVudFwiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JR292ZXJuYW5jZVNlcnZpY2VDbGllbnRcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vRWNzL0lNb2RlbHNcIiksIGV4cG9ydHMpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/index.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js": /*!**********************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js ***! \**********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.BranchingTargetType = exports.ConditionSourceType = exports.ConditionType = void 0;\r\nvar ConditionType;\r\n(function (ConditionType) {\r\n ConditionType[\"Equals\"] = \"Equals\";\r\n ConditionType[\"NotEquals\"] = \"NotEquals\";\r\n ConditionType[\"GreaterThan\"] = \"GreaterThan\";\r\n ConditionType[\"GreaterThanOrEqual\"] = \"GreaterThanOrEqual\";\r\n ConditionType[\"LessThan\"] = \"LessThan\";\r\n ConditionType[\"LessThanOrEqual\"] = \"LessThanOrEqual\";\r\n ConditionType[\"IsAnswered\"] = \"IsAnswered\";\r\n})(ConditionType = exports.ConditionType || (exports.ConditionType = {}));\r\nvar ConditionSourceType;\r\n(function (ConditionSourceType) {\r\n ConditionSourceType[\"Question\"] = \"Question\";\r\n ConditionSourceType[\"Variable\"] = \"Variable\";\r\n})(ConditionSourceType = exports.ConditionSourceType || (exports.ConditionSourceType = {}));\r\nvar BranchingTargetType;\r\n(function (BranchingTargetType) {\r\n BranchingTargetType[\"Page\"] = \"Page\";\r\n BranchingTargetType[\"Override\"] = \"Override\";\r\n})(BranchingTargetType = exports.BranchingTargetType || (exports.BranchingTargetType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JQnJhbmNoaW5nUnVsZXMuanM/NTdjZCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzRUFBc0U7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHdGQUF3RjtBQUN6RjtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0ZBQXdGIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvQ2FtcGFpZ24vVXhTY2hlbWEvSUJyYW5jaGluZ1J1bGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5CcmFuY2hpbmdUYXJnZXRUeXBlID0gZXhwb3J0cy5Db25kaXRpb25Tb3VyY2VUeXBlID0gZXhwb3J0cy5Db25kaXRpb25UeXBlID0gdm9pZCAwO1xyXG52YXIgQ29uZGl0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChDb25kaXRpb25UeXBlKSB7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiRXF1YWxzXCJdID0gXCJFcXVhbHNcIjtcclxuICAgIENvbmRpdGlvblR5cGVbXCJOb3RFcXVhbHNcIl0gPSBcIk5vdEVxdWFsc1wiO1xyXG4gICAgQ29uZGl0aW9uVHlwZVtcIkdyZWF0ZXJUaGFuXCJdID0gXCJHcmVhdGVyVGhhblwiO1xyXG4gICAgQ29uZGl0aW9uVHlwZVtcIkdyZWF0ZXJUaGFuT3JFcXVhbFwiXSA9IFwiR3JlYXRlclRoYW5PckVxdWFsXCI7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiTGVzc1RoYW5cIl0gPSBcIkxlc3NUaGFuXCI7XHJcbiAgICBDb25kaXRpb25UeXBlW1wiTGVzc1RoYW5PckVxdWFsXCJdID0gXCJMZXNzVGhhbk9yRXF1YWxcIjtcclxuICAgIENvbmRpdGlvblR5cGVbXCJJc0Fuc3dlcmVkXCJdID0gXCJJc0Fuc3dlcmVkXCI7XHJcbn0pKENvbmRpdGlvblR5cGUgPSBleHBvcnRzLkNvbmRpdGlvblR5cGUgfHwgKGV4cG9ydHMuQ29uZGl0aW9uVHlwZSA9IHt9KSk7XHJcbnZhciBDb25kaXRpb25Tb3VyY2VUeXBlO1xyXG4oZnVuY3Rpb24gKENvbmRpdGlvblNvdXJjZVR5cGUpIHtcclxuICAgIENvbmRpdGlvblNvdXJjZVR5cGVbXCJRdWVzdGlvblwiXSA9IFwiUXVlc3Rpb25cIjtcclxuICAgIENvbmRpdGlvblNvdXJjZVR5cGVbXCJWYXJpYWJsZVwiXSA9IFwiVmFyaWFibGVcIjtcclxufSkoQ29uZGl0aW9uU291cmNlVHlwZSA9IGV4cG9ydHMuQ29uZGl0aW9uU291cmNlVHlwZSB8fCAoZXhwb3J0cy5Db25kaXRpb25Tb3VyY2VUeXBlID0ge30pKTtcclxudmFyIEJyYW5jaGluZ1RhcmdldFR5cGU7XHJcbihmdW5jdGlvbiAoQnJhbmNoaW5nVGFyZ2V0VHlwZSkge1xyXG4gICAgQnJhbmNoaW5nVGFyZ2V0VHlwZVtcIlBhZ2VcIl0gPSBcIlBhZ2VcIjtcclxuICAgIEJyYW5jaGluZ1RhcmdldFR5cGVbXCJPdmVycmlkZVwiXSA9IFwiT3ZlcnJpZGVcIjtcclxufSkoQnJhbmNoaW5nVGFyZ2V0VHlwZSA9IGV4cG9ydHMuQnJhbmNoaW5nVGFyZ2V0VHlwZSB8fCAoZXhwb3J0cy5CcmFuY2hpbmdUYXJnZXRUeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js": /*!****************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.QuestionType = void 0;\r\nvar QuestionType;\r\n(function (QuestionType) {\r\n QuestionType[\"Comment\"] = \"Comment\";\r\n QuestionType[\"ContactMe\"] = \"ContactMe\";\r\n QuestionType[\"MultipleChoice\"] = \"MultipleChoice\";\r\n QuestionType[\"Label\"] = \"Label\";\r\n QuestionType[\"Rating\"] = \"Rating\";\r\n QuestionType[\"SingleSelect\"] = \"SingleSelect\";\r\n QuestionType[\"Likert\"] = \"Likert\";\r\n})(QuestionType = exports.QuestionType || (exports.QuestionType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JUXVlc3Rpb24uanM/YTgzOSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxtRUFBbUUiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JUXVlc3Rpb24uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlF1ZXN0aW9uVHlwZSA9IHZvaWQgMDtcclxudmFyIFF1ZXN0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChRdWVzdGlvblR5cGUpIHtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkNvbW1lbnRcIl0gPSBcIkNvbW1lbnRcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkNvbnRhY3RNZVwiXSA9IFwiQ29udGFjdE1lXCI7XHJcbiAgICBRdWVzdGlvblR5cGVbXCJNdWx0aXBsZUNob2ljZVwiXSA9IFwiTXVsdGlwbGVDaG9pY2VcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIkxhYmVsXCJdID0gXCJMYWJlbFwiO1xyXG4gICAgUXVlc3Rpb25UeXBlW1wiUmF0aW5nXCJdID0gXCJSYXRpbmdcIjtcclxuICAgIFF1ZXN0aW9uVHlwZVtcIlNpbmdsZVNlbGVjdFwiXSA9IFwiU2luZ2xlU2VsZWN0XCI7XHJcbiAgICBRdWVzdGlvblR5cGVbXCJMaWtlcnRcIl0gPSBcIkxpa2VydFwiO1xyXG59KShRdWVzdGlvblR5cGUgPSBleHBvcnRzLlF1ZXN0aW9uVHlwZSB8fCAoZXhwb3J0cy5RdWVzdGlvblR5cGUgPSB7fSkpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js": /*!****************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js ***! \****************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurveySurfaceSize = void 0;\r\nvar SurveySurfaceSize;\r\n(function (SurveySurfaceSize) {\r\n SurveySurfaceSize[\"Compact\"] = \"Compact\";\r\n SurveySurfaceSize[\"Medium\"] = \"Medium\";\r\n})(SurveySurfaceSize = exports.SurveySurfaceSize || (exports.SurveySurfaceSize = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JVXhTY2hlbWEuanM/MzQ2ZiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtGQUFrRiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL0lVeFNjaGVtYS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuU3VydmV5U3VyZmFjZVNpemUgPSB2b2lkIDA7XHJcbnZhciBTdXJ2ZXlTdXJmYWNlU2l6ZTtcclxuKGZ1bmN0aW9uIChTdXJ2ZXlTdXJmYWNlU2l6ZSkge1xyXG4gICAgU3VydmV5U3VyZmFjZVNpemVbXCJDb21wYWN0XCJdID0gXCJDb21wYWN0XCI7XHJcbiAgICBTdXJ2ZXlTdXJmYWNlU2l6ZVtcIk1lZGl1bVwiXSA9IFwiTWVkaXVtXCI7XHJcbn0pKFN1cnZleVN1cmZhY2VTaXplID0gZXhwb3J0cy5TdXJ2ZXlTdXJmYWNlU2l6ZSB8fCAoZXhwb3J0cy5TdXJ2ZXlTdXJmYWNlU2l6ZSA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js": /*!**************************************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js ***! \**************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IUxSchemaAdditionalCapabilitiesTypes = void 0;\r\nvar IUxSchemaAdditionalCapabilitiesTypes;\r\n(function (IUxSchemaAdditionalCapabilitiesTypes) {\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Email\"] = \"email\";\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Screenshot\"] = \"screenshot\";\r\n IUxSchemaAdditionalCapabilitiesTypes[\"Diagnostics\"] = \"diagnostics\";\r\n})(IUxSchemaAdditionalCapabilitiesTypes = exports.IUxSchemaAdditionalCapabilitiesTypes || (exports.IUxSchemaAdditionalCapabilitiesTypes = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9JVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzLmpzP2U2ZjIiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDJJQUEySSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL0lVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IHZvaWQgMDtcclxudmFyIElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcztcclxuKGZ1bmN0aW9uIChJVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzVHlwZXMpIHtcclxuICAgIElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlc1tcIkVtYWlsXCJdID0gXCJlbWFpbFwiO1xyXG4gICAgSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzW1wiU2NyZWVuc2hvdFwiXSA9IFwic2NyZWVuc2hvdFwiO1xyXG4gICAgSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzW1wiRGlhZ25vc3RpY3NcIl0gPSBcImRpYWdub3N0aWNzXCI7XHJcbn0pKElVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IGV4cG9ydHMuSVV4U2NoZW1hQWRkaXRpb25hbENhcGFiaWxpdGllc1R5cGVzIHx8IChleHBvcnRzLklVeFNjaGVtYUFkZGl0aW9uYWxDYXBhYmlsaXRpZXNUeXBlcyA9IHt9KSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js": /*!************************************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js ***! \************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar _a;\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.SurveyRestrictions = exports.MAX_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = exports.MIN_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = exports.MAX_VERTICAL_OPTIONS_LIKERT_QUESTIONS = exports.MIN_VERTICAL_OPTIONS_LIKERT_QUESTIONS = exports.MAX_OPTIONS_NON_LIKERT_QUESTIONS = exports.MIN_OPTIONS_NON_LIKERT_QUESTIONS = void 0;\r\nvar ISurvey_1 = __webpack_require__(/*! ../../../Api/ISurvey */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Api/ISurvey.js\");\r\nexports.MIN_OPTIONS_NON_LIKERT_QUESTIONS = 2;\r\nexports.MAX_OPTIONS_NON_LIKERT_QUESTIONS = 10;\r\nexports.MIN_VERTICAL_OPTIONS_LIKERT_QUESTIONS = 2;\r\nexports.MAX_VERTICAL_OPTIONS_LIKERT_QUESTIONS = 7;\r\nexports.MIN_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = 1;\r\nexports.MAX_HORIZONTAL_OPTIONS_LIKERT_QUESTIONS = 10;\r\nexports.SurveyRestrictions = (_a = {},\r\n _a[ISurvey_1.SurveyType.Fps] = { MinNumberOfPages: 2, FirstTemplateId: \"0e19ac6f-d831-499c-9e83-a709e27784b6\" },\r\n _a);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9WYWxpZGF0aW9uL1N1cnZleVJlc3RyaWN0aW9ucy5qcz9mODY3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQSw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBLGdCQUFnQixtQkFBTyxDQUFDLDBHQUFzQjtBQUM5QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQ0FBcUM7QUFDckMsb0NBQW9DLCtFQUErRTtBQUNuSCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL1ZhbGlkYXRpb24vU3VydmV5UmVzdHJpY3Rpb25zLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfYTtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLlN1cnZleVJlc3RyaWN0aW9ucyA9IGV4cG9ydHMuTUFYX0hPUklaT05UQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gZXhwb3J0cy5NSU5fSE9SSVpPTlRBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1BWF9WRVJUSUNBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1JTl9WRVJUSUNBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSBleHBvcnRzLk1BWF9PUFRJT05TX05PTl9MSUtFUlRfUVVFU1RJT05TID0gZXhwb3J0cy5NSU5fT1BUSU9OU19OT05fTElLRVJUX1FVRVNUSU9OUyA9IHZvaWQgMDtcclxudmFyIElTdXJ2ZXlfMSA9IHJlcXVpcmUoXCIuLi8uLi8uLi9BcGkvSVN1cnZleVwiKTtcclxuZXhwb3J0cy5NSU5fT1BUSU9OU19OT05fTElLRVJUX1FVRVNUSU9OUyA9IDI7XHJcbmV4cG9ydHMuTUFYX09QVElPTlNfTk9OX0xJS0VSVF9RVUVTVElPTlMgPSAxMDtcclxuZXhwb3J0cy5NSU5fVkVSVElDQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gMjtcclxuZXhwb3J0cy5NQVhfVkVSVElDQUxfT1BUSU9OU19MSUtFUlRfUVVFU1RJT05TID0gNztcclxuZXhwb3J0cy5NSU5fSE9SSVpPTlRBTF9PUFRJT05TX0xJS0VSVF9RVUVTVElPTlMgPSAxO1xyXG5leHBvcnRzLk1BWF9IT1JJWk9OVEFMX09QVElPTlNfTElLRVJUX1FVRVNUSU9OUyA9IDEwO1xyXG5leHBvcnRzLlN1cnZleVJlc3RyaWN0aW9ucyA9IChfYSA9IHt9LFxyXG4gICAgX2FbSVN1cnZleV8xLlN1cnZleVR5cGUuRnBzXSA9IHsgTWluTnVtYmVyT2ZQYWdlczogMiwgRmlyc3RUZW1wbGF0ZUlkOiBcIjBlMTlhYzZmLWQ4MzEtNDk5Yy05ZTgzLWE3MDllMjc3ODRiNlwiIH0sXHJcbiAgICBfYSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js": /*!************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js ***! \************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}));\r\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\r\n};\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n__exportStar(__webpack_require__(/*! ./IUxSchema */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchema.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IQuestion */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IQuestion.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IBranchingRules */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IBranchingRules.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./IUxSchemaAdditionalCapabilities */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/IUxSchemaAdditionalCapabilities.js\"), exports);\r\n__exportStar(__webpack_require__(/*! ./Validation/SurveyRestrictions */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/Validation/SurveyRestrictions.js\"), exports);\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9DYW1wYWlnbi9VeFNjaGVtYS9pbmRleC5qcz82ZjRiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2I7QUFDQTtBQUNBLGtDQUFrQyxvQ0FBb0MsYUFBYSxFQUFFLEVBQUU7QUFDdkYsQ0FBQztBQUNEO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsOENBQThDLGNBQWM7QUFDNUQsYUFBYSxtQkFBTyxDQUFDLGlIQUFhO0FBQ2xDLGFBQWEsbUJBQU8sQ0FBQyxpSEFBYTtBQUNsQyxhQUFhLG1CQUFPLENBQUMsNkhBQW1CO0FBQ3hDLGFBQWEsbUJBQU8sQ0FBQyw2SkFBbUM7QUFDeEQsYUFBYSxtQkFBTyxDQUFDLHlKQUFpQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0NhbXBhaWduL1V4U2NoZW1hL2luZGV4LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbnZhciBfX2NyZWF0ZUJpbmRpbmcgPSAodGhpcyAmJiB0aGlzLl9fY3JlYXRlQmluZGluZykgfHwgKE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KSk7XHJcbnZhciBfX2V4cG9ydFN0YXIgPSAodGhpcyAmJiB0aGlzLl9fZXhwb3J0U3RhcikgfHwgZnVuY3Rpb24obSwgZXhwb3J0cykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChleHBvcnRzLCBwKSkgX19jcmVhdGVCaW5kaW5nKGV4cG9ydHMsIG0sIHApO1xyXG59O1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JVXhTY2hlbWFcIiksIGV4cG9ydHMpO1xyXG5fX2V4cG9ydFN0YXIocmVxdWlyZShcIi4vSVF1ZXN0aW9uXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL0lCcmFuY2hpbmdSdWxlc1wiKSwgZXhwb3J0cyk7XHJcbl9fZXhwb3J0U3RhcihyZXF1aXJlKFwiLi9JVXhTY2hlbWFBZGRpdGlvbmFsQ2FwYWJpbGl0aWVzXCIpLCBleHBvcnRzKTtcclxuX19leHBvcnRTdGFyKHJlcXVpcmUoXCIuL1ZhbGlkYXRpb24vU3VydmV5UmVzdHJpY3Rpb25zXCIpLCBleHBvcnRzKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Campaign/UxSchema/index.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js": /*!**************************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js ***! \**************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSUR5bmFtaWNVeENvbW1vbkluaXRPcHRpb25zLmpzP2EzY2UiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0R5bmFtaWNVeC9JRHluYW1pY1V4Q29tbW9uSW5pdE9wdGlvbnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IDynamicUxCommonInitOptions.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js": /*!*********************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js ***! \*********************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.IFloodgateHostPlatform = void 0;\r\nvar IFloodgateHostPlatform;\r\n(function (IFloodgateHostPlatform) {\r\n IFloodgateHostPlatform[\"Web\"] = \"Web\";\r\n IFloodgateHostPlatform[\"Android\"] = \"Android\";\r\n IFloodgateHostPlatform[\"Win32\"] = \"Win32\";\r\n IFloodgateHostPlatform[\"iOS\"] = \"iOS\";\r\n})(IFloodgateHostPlatform = exports.IFloodgateHostPlatform || (exports.IFloodgateHostPlatform = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybS5qcz9iY2ZkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGlHQUFpRyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0R5bmFtaWNVeC9JRmxvb2RnYXRlSG9zdFBsYXRmb3JtLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuZXhwb3J0cy5JRmxvb2RnYXRlSG9zdFBsYXRmb3JtID0gdm9pZCAwO1xyXG52YXIgSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybTtcclxuKGZ1bmN0aW9uIChJRmxvb2RnYXRlSG9zdFBsYXRmb3JtKSB7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiV2ViXCJdID0gXCJXZWJcIjtcclxuICAgIElGbG9vZGdhdGVIb3N0UGxhdGZvcm1bXCJBbmRyb2lkXCJdID0gXCJBbmRyb2lkXCI7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiV2luMzJcIl0gPSBcIldpbjMyXCI7XHJcbiAgICBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtW1wiaU9TXCJdID0gXCJpT1NcIjtcclxufSkoSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybSA9IGV4cG9ydHMuSUZsb29kZ2F0ZUhvc3RQbGF0Zm9ybSB8fCAoZXhwb3J0cy5JRmxvb2RnYXRlSG9zdFBsYXRmb3JtID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/IFloodgateHostPlatform.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js": /*!***************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtcy5qcz85NTE1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9EeW5hbWljVXgvSVN1cnZleUNTU1BhcmFtcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/DynamicUx/ISurveyCSSParams.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js": /*!*******************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js ***! \*******************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.ICampaignDefinitions = void 0;\r\nvar ICampaignDefinitions = (function () {\r\n function ICampaignDefinitions() {\r\n }\r\n return ICampaignDefinitions;\r\n}());\r\nexports.ICampaignDefinitions = ICampaignDefinitions;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnMuanM/YjAyMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjO0FBQzVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0NhbXBhaWduRGVmaW5pdGlvbnMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLklDYW1wYWlnbkRlZmluaXRpb25zID0gdm9pZCAwO1xyXG52YXIgSUNhbXBhaWduRGVmaW5pdGlvbnMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gSUNhbXBhaWduRGVmaW5pdGlvbnMoKSB7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSUNhbXBhaWduRGVmaW5pdGlvbnM7XHJcbn0oKSk7XHJcbmV4cG9ydHMuSUNhbXBhaWduRGVmaW5pdGlvbnMgPSBJQ2FtcGFpZ25EZWZpbml0aW9ucztcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/CampaignDefinitions.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js": /*!***************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js ***! \***************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.GovernedChannelType = void 0;\r\nvar GovernedChannelType;\r\n(function (GovernedChannelType) {\r\n GovernedChannelType[GovernedChannelType[\"Standard\"] = 0] = \"Standard\";\r\n GovernedChannelType[GovernedChannelType[\"Urgent\"] = 1] = \"Urgent\";\r\n GovernedChannelType[GovernedChannelType[\"Banner\"] = 2] = \"Banner\";\r\n GovernedChannelType[GovernedChannelType[\"TeachingMessage\"] = 3] = \"TeachingMessage\";\r\n GovernedChannelType[GovernedChannelType[\"BusinessBar\"] = 4] = \"BusinessBar\";\r\n})(GovernedChannelType = exports.GovernedChannelType || (exports.GovernedChannelType = {}));\r\n(function (GovernedChannelType) {\r\n function getDefault() { return GovernedChannelType.Standard; }\r\n GovernedChannelType.getDefault = getDefault;\r\n})(GovernedChannelType = exports.GovernedChannelType || (exports.GovernedChannelType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9Hb3Zlcm5hbmNlL0dvdmVybmVkQ2hhbm5lbC5qcz9mNDRkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsd0ZBQXdGO0FBQ3pGO0FBQ0EsMkJBQTJCLHFDQUFxQztBQUNoRTtBQUNBLENBQUMsd0ZBQXdGIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvR292ZXJuYW5jZS9Hb3Zlcm5lZENoYW5uZWwuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB2b2lkIDA7XHJcbnZhciBHb3Zlcm5lZENoYW5uZWxUeXBlO1xyXG4oZnVuY3Rpb24gKEdvdmVybmVkQ2hhbm5lbFR5cGUpIHtcclxuICAgIEdvdmVybmVkQ2hhbm5lbFR5cGVbR292ZXJuZWRDaGFubmVsVHlwZVtcIlN0YW5kYXJkXCJdID0gMF0gPSBcIlN0YW5kYXJkXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJVcmdlbnRcIl0gPSAxXSA9IFwiVXJnZW50XCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJCYW5uZXJcIl0gPSAyXSA9IFwiQmFubmVyXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJUZWFjaGluZ01lc3NhZ2VcIl0gPSAzXSA9IFwiVGVhY2hpbmdNZXNzYWdlXCI7XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlW0dvdmVybmVkQ2hhbm5lbFR5cGVbXCJCdXNpbmVzc0JhclwiXSA9IDRdID0gXCJCdXNpbmVzc0JhclwiO1xyXG59KShHb3Zlcm5lZENoYW5uZWxUeXBlID0gZXhwb3J0cy5Hb3Zlcm5lZENoYW5uZWxUeXBlIHx8IChleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB7fSkpO1xyXG4oZnVuY3Rpb24gKEdvdmVybmVkQ2hhbm5lbFR5cGUpIHtcclxuICAgIGZ1bmN0aW9uIGdldERlZmF1bHQoKSB7IHJldHVybiBHb3Zlcm5lZENoYW5uZWxUeXBlLlN0YW5kYXJkOyB9XHJcbiAgICBHb3Zlcm5lZENoYW5uZWxUeXBlLmdldERlZmF1bHQgPSBnZXREZWZhdWx0O1xyXG59KShHb3Zlcm5lZENoYW5uZWxUeXBlID0gZXhwb3J0cy5Hb3Zlcm5lZENoYW5uZWxUeXBlIHx8IChleHBvcnRzLkdvdmVybmVkQ2hhbm5lbFR5cGUgPSB7fSkpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Governance/GovernedChannel.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js": /*!*************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js ***! \*************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5RXZlbnQuanM/Zjk4OSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE4QyxjQUFjIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzL2Rpc3Qvc3JjL0NvcmUvSVN1cnZleUV2ZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XHJcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwgeyB2YWx1ZTogdHJ1ZSB9KTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyEvent.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js": /*!************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js ***! \************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.JSON_ID_KEYNAME = exports.JSON_SURVEY_KEYNAME = exports.DOM_ID_TAGNAME = exports.DOM_TYPE_VALUE = exports.DOM_TYPE_TAGNAME = exports.SurveyInfoBusinessLevel = void 0;\r\nvar SurveyInfoBusinessLevel;\r\n(function (SurveyInfoBusinessLevel) {\r\n SurveyInfoBusinessLevel[SurveyInfoBusinessLevel[\"None\"] = 0] = \"None\";\r\n SurveyInfoBusinessLevel[SurveyInfoBusinessLevel[\"Critical\"] = 1] = \"Critical\";\r\n})(SurveyInfoBusinessLevel = exports.SurveyInfoBusinessLevel || (exports.SurveyInfoBusinessLevel = {}));\r\nexports.DOM_TYPE_TAGNAME = \"Type\";\r\nexports.DOM_TYPE_VALUE = \"Survey\";\r\nexports.DOM_ID_TAGNAME = \"SurveyID\";\r\nexports.JSON_SURVEY_KEYNAME = \"survey\";\r\nexports.JSON_ID_KEYNAME = \"surveyId\";\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5SW5mby5qcz9iYzQwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQThDLGNBQWM7QUFDNUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0dBQW9HO0FBQ3JHO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9JU3VydmV5SW5mby5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XHJcbmV4cG9ydHMuSlNPTl9JRF9LRVlOQU1FID0gZXhwb3J0cy5KU09OX1NVUlZFWV9LRVlOQU1FID0gZXhwb3J0cy5ET01fSURfVEFHTkFNRSA9IGV4cG9ydHMuRE9NX1RZUEVfVkFMVUUgPSBleHBvcnRzLkRPTV9UWVBFX1RBR05BTUUgPSBleHBvcnRzLlN1cnZleUluZm9CdXNpbmVzc0xldmVsID0gdm9pZCAwO1xyXG52YXIgU3VydmV5SW5mb0J1c2luZXNzTGV2ZWw7XHJcbihmdW5jdGlvbiAoU3VydmV5SW5mb0J1c2luZXNzTGV2ZWwpIHtcclxuICAgIFN1cnZleUluZm9CdXNpbmVzc0xldmVsW1N1cnZleUluZm9CdXNpbmVzc0xldmVsW1wiTm9uZVwiXSA9IDBdID0gXCJOb25lXCI7XHJcbiAgICBTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbFtTdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbFtcIkNyaXRpY2FsXCJdID0gMV0gPSBcIkNyaXRpY2FsXCI7XHJcbn0pKFN1cnZleUluZm9CdXNpbmVzc0xldmVsID0gZXhwb3J0cy5TdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbCB8fCAoZXhwb3J0cy5TdXJ2ZXlJbmZvQnVzaW5lc3NMZXZlbCA9IHt9KSk7XHJcbmV4cG9ydHMuRE9NX1RZUEVfVEFHTkFNRSA9IFwiVHlwZVwiO1xyXG5leHBvcnRzLkRPTV9UWVBFX1ZBTFVFID0gXCJTdXJ2ZXlcIjtcclxuZXhwb3J0cy5ET01fSURfVEFHTkFNRSA9IFwiU3VydmV5SURcIjtcclxuZXhwb3J0cy5KU09OX1NVUlZFWV9LRVlOQU1FID0gXCJzdXJ2ZXlcIjtcclxuZXhwb3J0cy5KU09OX0lEX0tFWU5BTUUgPSBcInN1cnZleUlkXCI7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/ISurveyInfo.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js": /*!********************************************************************************************!*\ !*** ./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js ***! \********************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nexports.AuthenticationType = void 0;\r\nvar AuthenticationType;\r\n(function (AuthenticationType) {\r\n AuthenticationType[AuthenticationType[\"MSA\"] = 0] = \"MSA\";\r\n AuthenticationType[AuthenticationType[\"AAD\"] = 1] = \"AAD\";\r\n AuthenticationType[AuthenticationType[\"Unauthenticated\"] = 2] = \"Unauthenticated\";\r\n})(AuthenticationType = exports.AuthenticationType || (exports.AuthenticationType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9mbG9vZGdhdGUtc2hhcmVkLXR5cGluZ3MvZGlzdC9zcmMvQ29yZS9QZXRyb2wvTWFuaWZlc3RUeXBlLmpzP2MyNjYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLHFGQUFxRiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL1BldHJvbC9NYW5pZmVzdFR5cGUuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xyXG5leHBvcnRzLkF1dGhlbnRpY2F0aW9uVHlwZSA9IHZvaWQgMDtcclxudmFyIEF1dGhlbnRpY2F0aW9uVHlwZTtcclxuKGZ1bmN0aW9uIChBdXRoZW50aWNhdGlvblR5cGUpIHtcclxuICAgIEF1dGhlbnRpY2F0aW9uVHlwZVtBdXRoZW50aWNhdGlvblR5cGVbXCJNU0FcIl0gPSAwXSA9IFwiTVNBXCI7XHJcbiAgICBBdXRoZW50aWNhdGlvblR5cGVbQXV0aGVudGljYXRpb25UeXBlW1wiQUFEXCJdID0gMV0gPSBcIkFBRFwiO1xyXG4gICAgQXV0aGVudGljYXRpb25UeXBlW0F1dGhlbnRpY2F0aW9uVHlwZVtcIlVuYXV0aGVudGljYXRlZFwiXSA9IDJdID0gXCJVbmF1dGhlbnRpY2F0ZWRcIjtcclxufSkoQXV0aGVudGljYXRpb25UeXBlID0gZXhwb3J0cy5BdXRoZW50aWNhdGlvblR5cGUgfHwgKGV4cG9ydHMuQXV0aGVudGljYXRpb25UeXBlID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/floodgate-shared-typings/dist/src/Core/Petrol/ManifestType.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentResponse.js": /*!***************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentResponse.js ***! \***************************************************************************************/ /*! exports provided: ContentResponse */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContentResponse\", function() { return ContentResponse; });\nvar ContentResponse = /** @class */ (function () {\n function ContentResponse() {\n }\n return ContentResponse;\n}());\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbW1vbi9Db250ZW50UmVzcG9uc2UudHM/ZjMwNCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtBQUFBO0FBQUE7SUFBQTtJQUdBLENBQUM7SUFBRCxzQkFBQztBQUFELENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvQ29tbW9uL0NvbnRlbnRSZXNwb25zZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRUeXBlIH0gZnJvbSBcIi4vQ29udGVudFR5cGVcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDb250ZW50UmVzcG9uc2Uge1xyXG5cdHB1YmxpYyBjb250ZW50VHlwZTogQ29udGVudFR5cGU7XHJcblx0cHVibGljIGNvbnRlbnQ6IGFueTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentResponse.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js": /*!***********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js ***! \***********************************************************************************/ /*! exports provided: ContentTypeToStorageKeyMap */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ContentTypeToStorageKeyMap\", function() { return ContentTypeToStorageKeyMap; });\nvar _a;\nvar ContentTypeToStorageKeyMap = (_a = {},\n _a[\"CampaignContent\" /* campaignContent */] = \"obf-TmsCampaignContent\",\n _a[\"DynamicSettings\" /* dynamicSettings */] = \"obf-TmsDynamicSettings\",\n _a[\"LogLevelSettings\" /* logLevelSettings */] = \"obf-LogLevelSettings\",\n _a[\"MessageMetadata\" /* messageMetadata */] = \"obf-TmsMessageMetadata\",\n _a[\"UserFacts\" /* userFacts */] = \"obf-UserFacts\",\n _a[\"UserGovernance\" /* userGovernanceRules */] = \"obf-TmsUserGovernance\",\n _a);\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbW1vbi9Db250ZW50VHlwZS50cz85ODBjIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNPLElBQU0sMEJBQTBCO0lBQ3RDLDhDQUErQix3QkFBd0I7SUFDdkQsOENBQStCLHdCQUF3QjtJQUN2RCxnREFBZ0Msc0JBQXNCO0lBQ3RELDhDQUErQix3QkFBd0I7SUFDdkQsa0NBQXlCLGVBQWU7SUFDeEMsaURBQW1DLHVCQUF1QjtPQUMxRCxDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0NvbW1vbi9Db250ZW50VHlwZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBlbnVtIENvbnRlbnRUeXBlIHtcclxuXHRtZXNzYWdlTWV0YWRhdGEgICAgID0gXCJNZXNzYWdlTWV0YWRhdGFcIiwgICAgLy8gbWV0YWRhdGEgYWJvdXQgbWVzc2FnZXNcclxuXHR1c2VyR292ZXJuYW5jZVJ1bGVzID0gXCJVc2VyR292ZXJuYW5jZVwiLCAgICAgLy8gdXNlciBHb3Zlcm5hbmNlIChBVEMpIGZyb20gSVJJU1xyXG5cdGNhbXBhaWduQ29udGVudCAgICAgPSBcIkNhbXBhaWduQ29udGVudFwiLCAgICAvLyBjYW1wYWlnbnMgZm9yIEZsb29kZ2F0ZVxyXG5cdGR5bmFtaWNTZXR0aW5ncyAgICAgPSBcIkR5bmFtaWNTZXR0aW5nc1wiLCAgICAvLyBkeW5hbWljIHNldHRpbmdzIGZyb20gVE1TIHNlcnZpY2VcclxuXHRsb2dMZXZlbFNldHRpbmdzICAgID0gXCJMb2dMZXZlbFNldHRpbmdzXCIsICAgLy8gbG9nIGxldmVsIHNldHRpbmdzIGZyb20gVE1TIHNlcnZpY2VcclxuXHR1c2VyRmFjdHMgICAgICAgICAgID0gXCJVc2VyRmFjdHNcIiwgICAgICAgICAgLy8gdXNlciBmYWN0cyBmcm9tIFRVTElQUyBzZXJ2aWNlXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBDb250ZW50VHlwZVRvU3RvcmFnZUtleU1hcDogeyBbayBpbiBDb250ZW50VHlwZV06IHN0cmluZyB9ID0ge1xyXG5cdFtDb250ZW50VHlwZS5jYW1wYWlnbkNvbnRlbnRdOiBcIm9iZi1UbXNDYW1wYWlnbkNvbnRlbnRcIixcclxuXHRbQ29udGVudFR5cGUuZHluYW1pY1NldHRpbmdzXTogXCJvYmYtVG1zRHluYW1pY1NldHRpbmdzXCIsXHJcblx0W0NvbnRlbnRUeXBlLmxvZ0xldmVsU2V0dGluZ3NdOiBcIm9iZi1Mb2dMZXZlbFNldHRpbmdzXCIsXHJcblx0W0NvbnRlbnRUeXBlLm1lc3NhZ2VNZXRhZGF0YV06IFwib2JmLVRtc01lc3NhZ2VNZXRhZGF0YVwiLFxyXG5cdFtDb250ZW50VHlwZS51c2VyRmFjdHNdOiBcIm9iZi1Vc2VyRmFjdHNcIixcclxuXHRbQ29udGVudFR5cGUudXNlckdvdmVybmFuY2VSdWxlc106IFwib2JmLVRtc1VzZXJHb3Zlcm5hbmNlXCIsXHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Init.js": /*!****************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Init.js ***! \****************************************************************************/ /*! exports provided: initialize, filterDisabledUserFactRules */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filterDisabledUserFactRules\", function() { return filterDisabledUserFactRules; });\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Configuration/Configuration */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js\");\n/* harmony import */ var _Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Settings */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\");\n/* harmony import */ var _Facts_UserFacts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Facts/UserFacts */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFacts.js\");\n\n\n\n\n\nfunction initialize(config) {\n var _a, _b;\n Object(_Logging_Logger__WEBPACK_IMPORTED_MODULE_0__[\"setLogger\"])(config === null || config === void 0 ? void 0 : config.logger);\n Object(_Settings__WEBPACK_IMPORTED_MODULE_2__[\"initSettings\"])(config === null || config === void 0 ? void 0 : config.settings);\n if (config === null || config === void 0 ? void 0 : config.sessionId) {\n _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().setSessionId(config.sessionId);\n }\n if ((_a = config === null || config === void 0 ? void 0 : config.userFactConfig) === null || _a === void 0 ? void 0 : _a.enableSendUserFacts) {\n var currentDateTime = new Date();\n var filteredRules = filterDisabledUserFactRules(config.userFactConfig.disabledUserFacts, config.userFactConfig.userFactRules);\n _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().setUserFactRules(filteredRules);\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_0__[\"getLogger\"]().event(\"UserFacts_Config_Rules\" /* UserFactsConfigRules */, { Message: JSON.stringify(filteredRules) }, Object(_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n if ((_b = config.settings) === null || _b === void 0 ? void 0 : _b.appId) {\n Object(_Facts_UserFacts__WEBPACK_IMPORTED_MODULE_3__[\"sendAppLastUsed\"])(config.settings.appId, currentDateTime);\n }\n }\n}\n/**\n * Removes manifests for disabled UserFacts\n * @param disabledUserFacts list of UserFacts to disable and not send\n * @param userFactRules static map of all UserFactManifests. Modifies map\n * by removing disabled userFacts\n */\nfunction filterDisabledUserFactRules(disabledUserFacts, userFactRules) {\n var enabledRulesMap = userFactRules;\n if (!userFactRules || !disabledUserFacts) {\n return enabledRulesMap;\n }\n Object.keys(enabledRulesMap).forEach(function (key) {\n if (disabledUserFacts.find(function (fact) { return fact == enabledRulesMap[key].userFactName; })) {\n delete enabledRulesMap[key];\n }\n });\n return enabledRulesMap;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbW1vbi9Jbml0LnRzPzgxNWEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBOEM7QUFDRjtBQUNvQjtBQUVMO0FBQ047QUFHOUMsU0FBUyxVQUFVLENBQUMsTUFBK0I7O0lBQ3pELGlFQUFTLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLDhEQUFZLENBQUMsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRS9CLElBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFNBQVMsRUFBRTtRQUN0QixnRUFBaUIsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7S0FDbkQ7SUFFRCxVQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxjQUFjLDBDQUFFLG1CQUFtQixFQUFFO1FBQ2hELElBQU0sZUFBZSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFbkMsSUFBTSxhQUFhLEdBQUcsMkJBQTJCLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUMvSCxnRUFBaUIsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BELHlEQUFnQixFQUFFLENBQUMsS0FBSyxzREFBZ0MsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLGlFQUFlLEVBQUUsQ0FBQyxDQUFDO1FBRXZILFVBQUksTUFBTSxDQUFDLFFBQVEsMENBQUUsS0FBSyxFQUFFO1lBQzNCLHdFQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLENBQUM7U0FDeEQ7S0FDRDtBQUNGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNJLFNBQVMsMkJBQTJCLENBQUMsaUJBQTJCLEVBQUUsYUFBZ0M7SUFFeEcsSUFBTSxlQUFlLEdBQXVCLGFBQWEsQ0FBQztJQUUxRCxJQUFJLENBQUMsYUFBYSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7UUFDekMsT0FBTyxlQUFlLENBQUM7S0FDdkI7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFHO1FBQ3ZDLElBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGNBQUksSUFBSSxXQUFJLElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBekMsQ0FBeUMsQ0FBQyxFQUFFO1lBQzdFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzVCO0lBQ0YsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLGVBQWUsQ0FBQztBQUN4QixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0NvbW1vbi9Jbml0LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2V0TG9nZ2VyIH0gZnJvbSBcIi4uL0xvZ2dpbmcvTG9nZ2VyXCI7XHJcbmltcG9ydCAqIGFzIExvZ2dlciBmcm9tIFwiLi4vTG9nZ2luZy9Mb2dnZXJcIjtcclxuaW1wb3J0ICogYXMgQ29uZmlndXJhdGlvbiBmcm9tIFwiLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IElQZXJzb25hbGl6YXRpb25Db25maWcsIElVc2VyRmFjdFJ1bGVzTWFwIH0gZnJvbSBcIi4vTW9kZWxzXCI7XHJcbmltcG9ydCB7IGdldFNhbXBsaW5nUmF0ZSwgaW5pdFNldHRpbmdzIH0gZnJvbSBcIi4vU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgc2VuZEFwcExhc3RVc2VkIH0gZnJvbSBcIi4uL0ZhY3RzL1VzZXJGYWN0c1wiO1xyXG5pbXBvcnQgeyBFdmVudElkcyB9IGZyb20gXCIuLi9Mb2dnaW5nL0NvbnN0YW50c1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemUoY29uZmlnPzogSVBlcnNvbmFsaXphdGlvbkNvbmZpZykge1xyXG5cdHNldExvZ2dlcihjb25maWc/LmxvZ2dlcik7XHJcblx0aW5pdFNldHRpbmdzKGNvbmZpZz8uc2V0dGluZ3MpO1xyXG5cclxuXHRpZiAoY29uZmlnPy5zZXNzaW9uSWQpIHtcclxuXHRcdENvbmZpZ3VyYXRpb24uZ2V0KCkuc2V0U2Vzc2lvbklkKGNvbmZpZy5zZXNzaW9uSWQpO1xyXG5cdH1cclxuXHJcblx0aWYgKGNvbmZpZz8udXNlckZhY3RDb25maWc/LmVuYWJsZVNlbmRVc2VyRmFjdHMpIHtcclxuXHRcdGNvbnN0IGN1cnJlbnREYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcblxyXG5cdFx0Y29uc3QgZmlsdGVyZWRSdWxlcyA9IGZpbHRlckRpc2FibGVkVXNlckZhY3RSdWxlcyhjb25maWcudXNlckZhY3RDb25maWcuZGlzYWJsZWRVc2VyRmFjdHMsIGNvbmZpZy51c2VyRmFjdENvbmZpZy51c2VyRmFjdFJ1bGVzKVxyXG5cdFx0Q29uZmlndXJhdGlvbi5nZXQoKS5zZXRVc2VyRmFjdFJ1bGVzKGZpbHRlcmVkUnVsZXMpO1xyXG5cdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0NvbmZpZ1J1bGVzLCB7IE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KGZpbHRlcmVkUnVsZXMpIH0sIGdldFNhbXBsaW5nUmF0ZSgpKTtcclxuXHRcdFxyXG5cdFx0aWYgKGNvbmZpZy5zZXR0aW5ncz8uYXBwSWQpIHtcclxuXHRcdFx0c2VuZEFwcExhc3RVc2VkKGNvbmZpZy5zZXR0aW5ncy5hcHBJZCwgY3VycmVudERhdGVUaW1lKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmVzIG1hbmlmZXN0cyBmb3IgZGlzYWJsZWQgVXNlckZhY3RzXHJcbiAqIEBwYXJhbSBkaXNhYmxlZFVzZXJGYWN0cyBsaXN0IG9mIFVzZXJGYWN0cyB0byBkaXNhYmxlIGFuZCBub3Qgc2VuZFxyXG4gKiBAcGFyYW0gdXNlckZhY3RSdWxlcyBzdGF0aWMgbWFwIG9mIGFsbCBVc2VyRmFjdE1hbmlmZXN0cy4gTW9kaWZpZXMgbWFwXHJcbiAqIGJ5IHJlbW92aW5nIGRpc2FibGVkIHVzZXJGYWN0c1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckRpc2FibGVkVXNlckZhY3RSdWxlcyhkaXNhYmxlZFVzZXJGYWN0czogc3RyaW5nW10sIHVzZXJGYWN0UnVsZXM6IElVc2VyRmFjdFJ1bGVzTWFwKSA6IElVc2VyRmFjdFJ1bGVzTWFwIHtcclxuXHRcclxuXHRjb25zdCBlbmFibGVkUnVsZXNNYXAgOiBJVXNlckZhY3RSdWxlc01hcCA9IHVzZXJGYWN0UnVsZXM7XHJcblxyXG5cdGlmICghdXNlckZhY3RSdWxlcyB8fCAhZGlzYWJsZWRVc2VyRmFjdHMpIHtcclxuXHRcdHJldHVybiBlbmFibGVkUnVsZXNNYXA7XHJcblx0fVxyXG5cclxuXHRPYmplY3Qua2V5cyhlbmFibGVkUnVsZXNNYXApLmZvckVhY2goa2V5ID0+IHtcclxuXHRcdGlmKGRpc2FibGVkVXNlckZhY3RzLmZpbmQoZmFjdCA9PiBmYWN0ID09IGVuYWJsZWRSdWxlc01hcFtrZXldLnVzZXJGYWN0TmFtZSkpIHtcclxuXHRcdFx0ZGVsZXRlIGVuYWJsZWRSdWxlc01hcFtrZXldO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG5cclxuXHRyZXR1cm4gZW5hYmxlZFJ1bGVzTWFwO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Init.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js ***! \********************************************************************************/ /*! exports provided: PERSONALIZATION_DEFAULT_CACHE_EXPIRATION, initSettings, getSetting, getSamplingRate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PERSONALIZATION_DEFAULT_CACHE_EXPIRATION\", function() { return PERSONALIZATION_DEFAULT_CACHE_EXPIRATION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initSettings\", function() { return initSettings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSetting\", function() { return getSetting; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSamplingRate\", function() { return getSamplingRate; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\nvar PERSONALIZATION_DEFAULT_CACHE_EXPIRATION = 4 * 60 * 60 * 1000; // 4 hrs in ms\nvar defaultSettingsProd = {\n environment: \"prod\",\n userFactsUrl: \"https://attributes.engagement.office.com/facts\",\n userFactsRequestTimeOut: 3000,\n userFactsCacheExpiration: PERSONALIZATION_DEFAULT_CACHE_EXPIRATION,\n eventSamplingRate: 1,\n};\nvar defaultSettingsInt = {\n environment: \"int\",\n userFactsUrl: \"https://attributes.engagement.office-int.com/facts\",\n userFactsRequestTimeOut: 3000,\n userFactsCacheExpiration: PERSONALIZATION_DEFAULT_CACHE_EXPIRATION,\n eventSamplingRate: 1,\n};\nvar defaultSettingsEdog = {\n environment: \"edog\",\n userFactsUrl: \"https://attributes.engagement.officeppe.com/facts\",\n userFactsRequestTimeOut: 3000,\n userFactsCacheExpiration: PERSONALIZATION_DEFAULT_CACHE_EXPIRATION,\n eventSamplingRate: 1,\n};\nvar customSettings = defaultSettingsProd;\nfunction initSettings(inputSettings) {\n var _a;\n if (!initSettings) {\n return;\n }\n var defaultSettings = defaultSettingsProd;\n var environment = (_a = inputSettings === null || inputSettings === void 0 ? void 0 : inputSettings.environment) !== null && _a !== void 0 ? _a : defaultSettingsProd.environment;\n switch (environment) {\n case \"int\":\n defaultSettings = defaultSettingsInt;\n break;\n case \"edog\":\n defaultSettings = defaultSettingsEdog;\n break;\n default:\n break;\n }\n customSettings = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, defaultSettings), inputSettings);\n}\nfunction getSetting(name) {\n var _a;\n return ((_a = customSettings[name]) !== null && _a !== void 0 ? _a : defaultSettingsProd[name]);\n}\nfunction getSamplingRate() {\n var rate = getSetting(\"eventSamplingRate\");\n return !rate ? 0.01 : rate / 100.0;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbW1vbi9TZXR0aW5ncy50cz85YjE4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFTyxJQUFNLHdDQUF3QyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBQyxjQUFjO0FBRXpGLElBQU0sbUJBQW1CLEdBQTZCO0lBQ3JELFdBQVcsRUFBRSxNQUFNO0lBQ25CLFlBQVksRUFBRSxnREFBZ0Q7SUFDOUQsdUJBQXVCLEVBQUUsSUFBSTtJQUM3Qix3QkFBd0IsRUFBRSx3Q0FBd0M7SUFDbEUsaUJBQWlCLEVBQUUsQ0FBQztDQUNwQixDQUFDO0FBRUYsSUFBTSxrQkFBa0IsR0FBNkI7SUFDcEQsV0FBVyxFQUFFLEtBQUs7SUFDbEIsWUFBWSxFQUFFLG9EQUFvRDtJQUNsRSx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLHdCQUF3QixFQUFFLHdDQUF3QztJQUNsRSxpQkFBaUIsRUFBRSxDQUFDO0NBQ3BCLENBQUM7QUFFRixJQUFNLG1CQUFtQixHQUE2QjtJQUNyRCxXQUFXLEVBQUUsTUFBTTtJQUNuQixZQUFZLEVBQUUsbURBQW1EO0lBQ2pFLHVCQUF1QixFQUFFLElBQUk7SUFDN0Isd0JBQXdCLEVBQUUsd0NBQXdDO0lBQ2xFLGlCQUFpQixFQUFFLENBQUM7Q0FDcEIsQ0FBQztBQUVGLElBQUksY0FBYyxHQUE2QixtQkFBbUIsQ0FBQztBQUU1RCxTQUFTLFlBQVksQ0FBQyxhQUF3Qzs7SUFDcEUsSUFBSSxDQUFDLFlBQVksRUFBRTtRQUNsQixPQUFPO0tBQ1A7SUFFRCxJQUFJLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQztJQUMxQyxJQUFNLFdBQVcsU0FBRyxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsV0FBVyxtQ0FBSSxtQkFBbUIsQ0FBQyxXQUFXLENBQUM7SUFDbEYsUUFBUSxXQUFXLEVBQUU7UUFDcEIsS0FBSyxLQUFLO1lBQ1QsZUFBZSxHQUFHLGtCQUFrQixDQUFDO1lBQ3JDLE1BQU07UUFDUCxLQUFLLE1BQU07WUFDVixlQUFlLEdBQUcsbUJBQW1CLENBQUM7WUFDdEMsTUFBTTtRQUNQO1lBQ0MsTUFBTTtLQUNQO0lBRUQsY0FBYyxHQUFHLGtIQUFLLGVBQWUsR0FBSyxhQUFhLENBQUUsQ0FBQztBQUMzRCxDQUFDO0FBRU0sU0FBUyxVQUFVLENBQUksSUFBb0M7O0lBQ2pFLE9BQU8sT0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG1DQUFJLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFpQixDQUFDO0FBQzVFLENBQUM7QUFFTSxTQUFTLGVBQWU7SUFDOUIsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLG1CQUFtQixDQUFXLENBQUM7SUFDdkQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUMsS0FBSyxDQUFDO0FBQ2xDLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvQ29tbW9uL1NldHRpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBlcnNvbmFsaXphdGlvblNldHRpbmdzIH0gZnJvbSBcIi4vTW9kZWxzXCI7XHJcblxyXG5leHBvcnQgY29uc3QgUEVSU09OQUxJWkFUSU9OX0RFRkFVTFRfQ0FDSEVfRVhQSVJBVElPTiA9IDQgKiA2MCAqIDYwICogMTAwMCAvLyA0IGhycyBpbiBtc1xyXG5cclxuY29uc3QgZGVmYXVsdFNldHRpbmdzUHJvZDogSVBlcnNvbmFsaXphdGlvblNldHRpbmdzID0ge1xyXG5cdGVudmlyb25tZW50OiBcInByb2RcIixcclxuXHR1c2VyRmFjdHNVcmw6IFwiaHR0cHM6Ly9hdHRyaWJ1dGVzLmVuZ2FnZW1lbnQub2ZmaWNlLmNvbS9mYWN0c1wiLFxyXG5cdHVzZXJGYWN0c1JlcXVlc3RUaW1lT3V0OiAzMDAwLFxyXG5cdHVzZXJGYWN0c0NhY2hlRXhwaXJhdGlvbjogUEVSU09OQUxJWkFUSU9OX0RFRkFVTFRfQ0FDSEVfRVhQSVJBVElPTixcclxuXHRldmVudFNhbXBsaW5nUmF0ZTogMSwgLy9zYW1wbGUgYXQgMSVcclxufTtcclxuXHJcbmNvbnN0IGRlZmF1bHRTZXR0aW5nc0ludDogSVBlcnNvbmFsaXphdGlvblNldHRpbmdzID0ge1xyXG5cdGVudmlyb25tZW50OiBcImludFwiLFxyXG5cdHVzZXJGYWN0c1VybDogXCJodHRwczovL2F0dHJpYnV0ZXMuZW5nYWdlbWVudC5vZmZpY2UtaW50LmNvbS9mYWN0c1wiLFxyXG5cdHVzZXJGYWN0c1JlcXVlc3RUaW1lT3V0OiAzMDAwLFxyXG5cdHVzZXJGYWN0c0NhY2hlRXhwaXJhdGlvbjogUEVSU09OQUxJWkFUSU9OX0RFRkFVTFRfQ0FDSEVfRVhQSVJBVElPTixcclxuXHRldmVudFNhbXBsaW5nUmF0ZTogMSwgLy9zYW1wbGUgYXQgMSVcclxufTtcclxuXHJcbmNvbnN0IGRlZmF1bHRTZXR0aW5nc0Vkb2c6IElQZXJzb25hbGl6YXRpb25TZXR0aW5ncyA9IHtcclxuXHRlbnZpcm9ubWVudDogXCJlZG9nXCIsXHJcblx0dXNlckZhY3RzVXJsOiBcImh0dHBzOi8vYXR0cmlidXRlcy5lbmdhZ2VtZW50Lm9mZmljZXBwZS5jb20vZmFjdHNcIixcclxuXHR1c2VyRmFjdHNSZXF1ZXN0VGltZU91dDogMzAwMCxcclxuXHR1c2VyRmFjdHNDYWNoZUV4cGlyYXRpb246IFBFUlNPTkFMSVpBVElPTl9ERUZBVUxUX0NBQ0hFX0VYUElSQVRJT04sXHJcblx0ZXZlbnRTYW1wbGluZ1JhdGU6IDEsIC8vc2FtcGxlIGF0IDElXHJcbn07XHJcblxyXG5sZXQgY3VzdG9tU2V0dGluZ3M6IElQZXJzb25hbGl6YXRpb25TZXR0aW5ncyA9IGRlZmF1bHRTZXR0aW5nc1Byb2Q7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaW5pdFNldHRpbmdzKGlucHV0U2V0dGluZ3M/OiBJUGVyc29uYWxpemF0aW9uU2V0dGluZ3MpIHtcclxuXHRpZiAoIWluaXRTZXR0aW5ncykge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0bGV0IGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRTZXR0aW5nc1Byb2Q7XHJcblx0Y29uc3QgZW52aXJvbm1lbnQgPSBpbnB1dFNldHRpbmdzPy5lbnZpcm9ubWVudCA/PyBkZWZhdWx0U2V0dGluZ3NQcm9kLmVudmlyb25tZW50O1xyXG5cdHN3aXRjaCAoZW52aXJvbm1lbnQpIHtcclxuXHRcdGNhc2UgXCJpbnRcIjpcclxuXHRcdFx0ZGVmYXVsdFNldHRpbmdzID0gZGVmYXVsdFNldHRpbmdzSW50O1xyXG5cdFx0XHRicmVhaztcclxuXHRcdGNhc2UgXCJlZG9nXCI6XHJcblx0XHRcdGRlZmF1bHRTZXR0aW5ncyA9IGRlZmF1bHRTZXR0aW5nc0Vkb2c7XHJcblx0XHRcdGJyZWFrO1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0YnJlYWs7XHJcblx0fVxyXG5cclxuXHRjdXN0b21TZXR0aW5ncyA9IHsgLi4uZGVmYXVsdFNldHRpbmdzLCAuLi5pbnB1dFNldHRpbmdzIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXR0aW5nPFQ+KG5hbWU6IGtleW9mIElQZXJzb25hbGl6YXRpb25TZXR0aW5ncyk6IFQge1xyXG5cdHJldHVybiAoY3VzdG9tU2V0dGluZ3NbbmFtZV0gPz8gZGVmYXVsdFNldHRpbmdzUHJvZFtuYW1lXSkgYXMgdW5rbm93biBhcyBUO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2FtcGxpbmdSYXRlKCk6IG51bWJlciB7XHJcblx0Y29uc3QgcmF0ZSA9IGdldFNldHRpbmcoXCJldmVudFNhbXBsaW5nUmF0ZVwiKSBhcyBudW1iZXI7XHJcblx0cmV0dXJuICFyYXRlID8gMC4wMSA6IHJhdGUvMTAwLjA7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js": /*!********************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js ***! \********************************************************************************************/ /*! exports provided: Configuration, get */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Configuration\", function() { return Configuration; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/**\n * Class representing a configuration (user provided options)\n * for personalization\n */\nvar Configuration = /** @class */ (function () {\n function Configuration() {\n }\n Configuration.prototype.setSessionId = function (sessionId) {\n this.sessionId = sessionId;\n };\n Configuration.prototype.setUserFactRules = function (userFactRules) {\n this.userFactRules = userFactRules;\n };\n Configuration.prototype.getSessionId = function () {\n return this.sessionId;\n };\n Configuration.prototype.getUserFactRules = function () {\n return this.userFactRules;\n };\n return Configuration;\n}());\n\nvar configuration = new Configuration();\n/**\n * Get the current configuration\n */\nfunction get() {\n return configuration;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvbi50cz9mMzAyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBOzs7R0FHRztBQUlIO0lBQUE7SUFvQkEsQ0FBQztJQWZVLG9DQUFZLEdBQW5CLFVBQW9CLFNBQWlCO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFTSx3Q0FBZ0IsR0FBdkIsVUFBd0IsYUFBZ0M7UUFDcEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDdkMsQ0FBQztJQUVNLG9DQUFZLEdBQW5CO1FBQ0ksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFTSx3Q0FBZ0IsR0FBdkI7UUFDSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUNMLG9CQUFDO0FBQUQsQ0FBQzs7QUFFRCxJQUFNLGFBQWEsR0FBa0IsSUFBSSxhQUFhLEVBQUUsQ0FBQztBQUV6RDs7R0FFRztBQUNJLFNBQVMsR0FBRztJQUNsQixPQUFPLGFBQWEsQ0FBQztBQUV0QixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvbi5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDbGFzcyByZXByZXNlbnRpbmcgYSBjb25maWd1cmF0aW9uICh1c2VyIHByb3ZpZGVkIG9wdGlvbnMpXHJcbiAqIGZvciBwZXJzb25hbGl6YXRpb25cclxuICovXHJcblxyXG5pbXBvcnQgeyBJVXNlckZhY3RSdWxlc01hcCB9IGZyb20gXCIuLi9Db21tb24vTW9kZWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvbiB7XHJcblxyXG4gICAgcHJpdmF0ZSBzZXNzaW9uSWQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgdXNlckZhY3RSdWxlczogSVVzZXJGYWN0UnVsZXNNYXA7XHJcblxyXG4gICAgcHVibGljIHNldFNlc3Npb25JZChzZXNzaW9uSWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuc2Vzc2lvbklkID0gc2Vzc2lvbklkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRVc2VyRmFjdFJ1bGVzKHVzZXJGYWN0UnVsZXM6IElVc2VyRmFjdFJ1bGVzTWFwKSB7XHJcbiAgICAgICAgdGhpcy51c2VyRmFjdFJ1bGVzID0gdXNlckZhY3RSdWxlcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0U2Vzc2lvbklkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbklkO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRVc2VyRmFjdFJ1bGVzKCk6IElVc2VyRmFjdFJ1bGVzTWFwIHtcclxuICAgICAgICByZXR1cm4gdGhpcy51c2VyRmFjdFJ1bGVzO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCBjb25maWd1cmF0aW9uOiBDb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcclxuXHJcbi8qKlxyXG4gKiBHZXQgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvblxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBDb25maWd1cmF0aW9uIHtcclxuXHRyZXR1cm4gY29uZmlndXJhdGlvbjtcclxuXHJcbn0iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/DynamicConfiguration.js": /*!***************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/DynamicConfiguration.js ***! \***************************************************************************************************/ /*! exports provided: getDynamicSetting, resetDynamicSettingsTmsgCache */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDynamicSetting\", function() { return getDynamicSetting; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"resetDynamicSettingsTmsgCache\", function() { return resetDynamicSettingsTmsgCache; });\n/* harmony import */ var _Common_ContentType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Common/ContentType */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js\");\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Utils_Storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/Storage */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n\n\n\n\nvar isNOU = _Utils_Utils__WEBPACK_IMPORTED_MODULE_3__[\"isNOU\"];\nvar dynamicSettingsTmsgCache = {};\nfunction parseObjectFromCache(tempItem) {\n try {\n var tempCacheItem = JSON.parse(tempItem);\n return tempCacheItem;\n }\n catch (e) {\n return null;\n }\n}\nfunction getDynamicSetting(key, defaultValue) {\n try {\n dynamicSettingsTmsgCache = {};\n if (_Utils_Storage__WEBPACK_IMPORTED_MODULE_2__[\"isStorageAvailable\"]) {\n var tempStorageItem = _Utils_Storage__WEBPACK_IMPORTED_MODULE_2__[\"readObjectFromStorage\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_0__[\"ContentTypeToStorageKeyMap\"][\"DynamicSettings\" /* dynamicSettings */]);\n if (!isNOU(tempStorageItem)) {\n var tempCacheItem = parseObjectFromCache(tempStorageItem);\n if (!isNOU(tempCacheItem)) {\n tempCacheItem.expiryDate = typeof tempCacheItem.expiryDate === \"string\" ?\n new Date(tempCacheItem.expiryDate) : tempCacheItem.expiryDate;\n dynamicSettingsTmsgCache[tempCacheItem.contentType] = tempCacheItem;\n }\n }\n }\n if (dynamicSettingsTmsgCache.isNOU) {\n return defaultValue;\n }\n var settingsObj = (dynamicSettingsTmsgCache[\"DynamicSettings\" /* dynamicSettings */]\n && dynamicSettingsTmsgCache[\"DynamicSettings\" /* dynamicSettings */].content);\n if (!isNOU(settingsObj)\n && Object.prototype.hasOwnProperty.call(settingsObj, key)\n && !isNOU(settingsObj[key])) {\n var settingValue = settingsObj[key];\n // parse types\n if (typeof defaultValue === \"number\" && typeof settingValue !== \"number\") {\n if (typeof settingValue === \"string\") {\n var returnValue = settingValue.indexOf(\".\") === -1 ? parseInt(settingValue, 10) : parseFloat(settingValue);\n return isNaN(returnValue) ? defaultValue : returnValue;\n }\n return defaultValue;\n }\n return settingValue;\n }\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().error(\"Common_Error\" /* CommonError */, {\n ErrorMessage: \"Error reading dynamic setting \" + (error && error.message),\n Type: key,\n });\n }\n return defaultValue;\n}\nfunction resetDynamicSettingsTmsgCache() {\n dynamicSettingsTmsgCache = {};\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0NvbmZpZ3VyYXRpb24vRHluYW1pY0NvbmZpZ3VyYXRpb24udHM/MWQwYyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFtRTtBQUV0QjtBQUVEO0FBQ0o7QUFFaEMsU0FBSyxHQUFLLGtEQUFMLENBQVc7QUFvQ3hCLElBQUksd0JBQXdCLEdBQTBDLEVBQUUsQ0FBQztBQUV6RSxTQUFTLG9CQUFvQixDQUFDLFFBQWdCO0lBQzdDLElBQUk7UUFDSCxJQUFNLGFBQWEsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvRCxPQUFPLGFBQWEsQ0FBQztLQUNyQjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUM7S0FDWjtBQUNGLENBQUM7QUFFTSxTQUFTLGlCQUFpQixDQUFJLEdBQWUsRUFBRSxZQUFlO0lBQ3BFLElBQUk7UUFDSCx3QkFBd0IsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxpRUFBMEIsRUFBRTtZQUMvQixJQUFNLGVBQWUsR0FBVyxvRUFBNkIsQ0FBQyw4RUFBMEIseUNBQTZCLENBQUMsQ0FBQztZQUN2SCxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxFQUFFO2dCQUM1QixJQUFNLGFBQWEsR0FBdUIsb0JBQW9CLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQ2hGLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUU7b0JBQzFCLGFBQWEsQ0FBQyxVQUFVLEdBQUcsT0FBTyxhQUFhLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FBQyxDQUFDO3dCQUN4RSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7b0JBQy9ELHdCQUF3QixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsR0FBRyxhQUFhLENBQUM7aUJBQ3BFO2FBQ0Q7U0FDRDtRQUVELElBQUksd0JBQXdCLENBQUMsS0FBSyxFQUFFO1lBQ25DLE9BQU8sWUFBWSxDQUFDO1NBQ3BCO1FBRUQsSUFBTSxXQUFXLEdBQUcsQ0FBQyx3QkFBd0IseUNBQTZCO2VBQ3RFLHdCQUF3Qix5Q0FBNkIsQ0FBQyxPQUFPLENBQXNCLENBQUM7UUFDeEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7ZUFDbkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUM7ZUFDdEQsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsSUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXRDLGNBQWM7WUFDZCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLEVBQUU7Z0JBQ3pFLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxFQUFFO29CQUNyQyxJQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzdHLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQTJCLENBQUM7aUJBQ3ZFO2dCQUVELE9BQU8sWUFBWSxDQUFDO2FBQ3BCO1lBRUQsT0FBTyxZQUFZLENBQUM7U0FDcEI7S0FDRDtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2YseURBQWlCLEVBQUUsQ0FBQyxLQUFLLG1DQUV4QjtZQUNDLFlBQVksRUFBRSxvQ0FBaUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUU7WUFDdkUsSUFBSSxFQUFFLEdBQUc7U0FDVCxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3JCLENBQUM7QUFFTSxTQUFTLDZCQUE2QjtJQUM1Qyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7QUFDL0IsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9Db25maWd1cmF0aW9uL0R5bmFtaWNDb25maWd1cmF0aW9uLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRUeXBlXCI7XHJcbmltcG9ydCB7IENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwIH0gZnJvbSBcIi4uL0NvbW1vbi9Db250ZW50VHlwZVwiO1xyXG5pbXBvcnQgeyBFdmVudElkcyB9IGZyb20gXCIuLi9Mb2dnaW5nL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgKiBhcyBMb2dnaW5nIGZyb20gXCIuLi9Mb2dnaW5nL0xvZ2dlclwiO1xyXG5pbXBvcnQgKiBhcyBDYWNoaW5nIGZyb20gXCIuLi9VdGlscy9DYWNoaW5nXCI7XHJcbmltcG9ydCAqIGFzIFN0b3JhZ2UgZnJvbSBcIi4uL1V0aWxzL1N0b3JhZ2VcIjtcclxuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSBcIi4uL1V0aWxzL1V0aWxzXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VIH0gPSBVdGlscztcclxuXHJcbmV4cG9ydCBjb25zdCBlbnVtIFNldHRpbmdLZXkge1xyXG5cdC8vIEdlbmVyYWxcclxuXHRsb2dMZXZlbFNldHRpbmdzID0gXCJMb2dMZXZlbFNldHRpbmdzXCIsXHJcblxyXG5cdC8vIFdlYiBzdXJmYWNlc1xyXG5cdHRlYWNoaW5nTWVzc2FnZUNvb2xkb3duID0gXCJUZWFjaGluZ01lc3NhZ2VDb29sZG93blwiLFxyXG5cdHdlYlN1cmZhY2VzSW50TGluayA9IFwiV2ViU3VyZmFjZXNJbnRMaW5rXCIsXHJcblx0d2ViU3VyZmFjZXNQcm9kTGluayA9IFwiV2ViU3VyZmFjZXNQcm9kTGlua1wiLFxyXG5cclxuXHQvLyBUTVMgc2V0dGluZ3NcclxuXHR0bXNBcHBJZCA9IFwiVG1zQXBwSWRcIixcclxuXHR0bXNTZXJ2aWNlVXJsID0gXCJUbXNTZXJ2aWNlVXJsXCIsXHJcblx0dG1zQWN0aW9uVXJsID0gXCJUbXNBY3Rpb25VcmxcIixcclxuXHR0bXNMb2FkVGltZW91dCA9IFwiVG1zTG9hZFRpbWVvdXRcIixcclxuXHR0bXNNZXNzYWdlTWV0YWRhdGFFeHBpcnkgPSBcIlRtc01lc3NhZ2VNZXRhZGF0YUV4cGlyeVwiLFxyXG5cdHRtc1VzZXJHb3Zlcm5hbmNlUnVsZXNFeHBpcnkgPSBcIlRtc1VzZXJHb3Zlcm5hbmNlUnVsZXNFeHBpcnlcIixcclxuXHR0bXNDYW1wYWlnbkNvbnRlbnRFeHBpcnkgPSBcIlRtc0NhbXBhaWduQ29udGVudEV4cGlyeVwiLFxyXG5cdHRtc0R5bmFtaWNTZXR0aW5nc0V4cGlyeSA9IFwiVG1zRHluYW1pY1NldHRpbmdzRXhwaXJ5XCIsXHJcblx0dG1zTG9nTGV2ZWxTZXR0aW5nc0V4cGlyeSA9IFwiVG1zTG9nTGV2ZWxTZXR0aW5nc0V4cGlyeVwiLFxyXG5cdHRtc1VzZXJGYWN0c0V4cGlyeSA9IFwiVG1zVXNlckZhY3RzRXhwaXJ5XCIsXHJcblxyXG5cdC8vIFR1bGlwc1xyXG5cdHR1bGlwc0FwcElkID0gXCJUdWxpcHNBcHBJZFwiLFxyXG5cdHR1bGlwc0xvYWRUaW1lb3V0ID0gXCJUdWxpcHNMb2FkVGltZW91dFwiLFxyXG5cdHR1bGlwc1NlcnZpY2VVcmwgPSBcIlR1bGlwc1NlcnZpY2VVcmxcIixcclxuXHR0dWxpcHNJbmdlc3Rpb25UaW1lSW50ZXJ2YWwgPSBcIlR1bGlwc0luZ2VzdGlvblRpbWVJbnRlcnZhbFwiLFxyXG5cclxuXHQvLyBBdWdMb29wXHJcblx0dHVsaXBzQXVnTG9vcEFubm90YXRpb25OYW1lID0gXCJUdWxpcHNBdWdMb29wQW5ub3RhdGlvbk5hbWVcIixcclxuXHR0dWxpcHNBdWdMb29wUGFja2FnZURlbGF5TG9hZCA9IFwiVHVsaXBzQXVnTG9vcFBhY2thZ2VEZWxheUxvYWRcIixcclxuXHR0dWxpcHNBdWdMb29wTG9hZFJldHJ5VGltZXMgPSBcIlR1bGlwc0F1Z0xvb3BMb2FkUmV0cnlUaW1lc1wiLFxyXG5cdHR1bGlwc0F1Z0xvb3BMb2FkVGltZW91dCA9IFwiVHVsaXBzQXVnTG9vcExvYWRUaW1lb3V0XCIsXHJcbn1cclxuXHJcbmxldCBkeW5hbWljU2V0dGluZ3NUbXNnQ2FjaGU6IHsgW2tleTogc3RyaW5nXTogQ2FjaGluZy5JQ2FjaGVJdGVtIH0gPSB7fTtcclxuXHJcbmZ1bmN0aW9uIHBhcnNlT2JqZWN0RnJvbUNhY2hlKHRlbXBJdGVtOiBzdHJpbmcpOiBDYWNoaW5nLklDYWNoZUl0ZW0ge1xyXG5cdHRyeSB7XHJcblx0XHRjb25zdCB0ZW1wQ2FjaGVJdGVtOiBDYWNoaW5nLklDYWNoZUl0ZW0gPSBKU09OLnBhcnNlKHRlbXBJdGVtKTtcclxuXHRcdHJldHVybiB0ZW1wQ2FjaGVJdGVtO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldER5bmFtaWNTZXR0aW5nPFQ+KGtleTogU2V0dGluZ0tleSwgZGVmYXVsdFZhbHVlOiBUKTogVCB7XHJcblx0dHJ5IHtcclxuXHRcdGR5bmFtaWNTZXR0aW5nc1Rtc2dDYWNoZSA9IHt9O1xyXG5cdFx0aWYgKFN0b3JhZ2UuaXNTdG9yYWdlQXZhaWxhYmxlKSB7XHJcblx0XHRcdGNvbnN0IHRlbXBTdG9yYWdlSXRlbTogc3RyaW5nID0gU3RvcmFnZS5yZWFkT2JqZWN0RnJvbVN0b3JhZ2UoQ29udGVudFR5cGVUb1N0b3JhZ2VLZXlNYXBbQ29udGVudFR5cGUuZHluYW1pY1NldHRpbmdzXSk7XHJcblx0XHRcdGlmICghaXNOT1UodGVtcFN0b3JhZ2VJdGVtKSkge1xyXG5cdFx0XHRcdGNvbnN0IHRlbXBDYWNoZUl0ZW06IENhY2hpbmcuSUNhY2hlSXRlbSA9IHBhcnNlT2JqZWN0RnJvbUNhY2hlKHRlbXBTdG9yYWdlSXRlbSk7XHJcblx0XHRcdFx0aWYgKCFpc05PVSh0ZW1wQ2FjaGVJdGVtKSkge1xyXG5cdFx0XHRcdFx0dGVtcENhY2hlSXRlbS5leHBpcnlEYXRlID0gdHlwZW9mIHRlbXBDYWNoZUl0ZW0uZXhwaXJ5RGF0ZSA9PT0gXCJzdHJpbmdcIiA/XHJcblx0XHRcdFx0XHRcdG5ldyBEYXRlKHRlbXBDYWNoZUl0ZW0uZXhwaXJ5RGF0ZSkgOiB0ZW1wQ2FjaGVJdGVtLmV4cGlyeURhdGU7XHJcblx0XHRcdFx0XHRkeW5hbWljU2V0dGluZ3NUbXNnQ2FjaGVbdGVtcENhY2hlSXRlbS5jb250ZW50VHlwZV0gPSB0ZW1wQ2FjaGVJdGVtO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChkeW5hbWljU2V0dGluZ3NUbXNnQ2FjaGUuaXNOT1UpIHtcclxuXHRcdFx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBzZXR0aW5nc09iaiA9IChkeW5hbWljU2V0dGluZ3NUbXNnQ2FjaGVbQ29udGVudFR5cGUuZHluYW1pY1NldHRpbmdzXVxyXG5cdFx0XHQmJiBkeW5hbWljU2V0dGluZ3NUbXNnQ2FjaGVbQ29udGVudFR5cGUuZHluYW1pY1NldHRpbmdzXS5jb250ZW50KSBhcyBSZWNvcmQ8c3RyaW5nLCBUPjtcclxuXHRcdGlmICghaXNOT1Uoc2V0dGluZ3NPYmopXHJcblx0XHRcdCYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzZXR0aW5nc09iaiwga2V5KVxyXG5cdFx0XHQmJiAhaXNOT1Uoc2V0dGluZ3NPYmpba2V5XSkpIHtcclxuXHRcdFx0Y29uc3Qgc2V0dGluZ1ZhbHVlID0gc2V0dGluZ3NPYmpba2V5XTtcclxuXHJcblx0XHRcdC8vIHBhcnNlIHR5cGVzXHJcblx0XHRcdGlmICh0eXBlb2YgZGVmYXVsdFZhbHVlID09PSBcIm51bWJlclwiICYmIHR5cGVvZiBzZXR0aW5nVmFsdWUgIT09IFwibnVtYmVyXCIpIHtcclxuXHRcdFx0XHRpZiAodHlwZW9mIHNldHRpbmdWYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xyXG5cdFx0XHRcdFx0Y29uc3QgcmV0dXJuVmFsdWUgPSBzZXR0aW5nVmFsdWUuaW5kZXhPZihcIi5cIikgPT09IC0xID8gcGFyc2VJbnQoc2V0dGluZ1ZhbHVlLCAxMCkgOiBwYXJzZUZsb2F0KHNldHRpbmdWYWx1ZSk7XHJcblx0XHRcdFx0XHRyZXR1cm4gaXNOYU4ocmV0dXJuVmFsdWUpID8gZGVmYXVsdFZhbHVlIDogcmV0dXJuVmFsdWUgYXMgdW5rbm93biBhcyBUO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIHNldHRpbmdWYWx1ZTtcclxuXHRcdH1cclxuXHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5lcnJvcihcclxuXHRcdFx0RXZlbnRJZHMuQ29tbW9uRXJyb3IsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRFcnJvck1lc3NhZ2U6IGBFcnJvciByZWFkaW5nIGR5bmFtaWMgc2V0dGluZyAke2Vycm9yICYmIGVycm9yLm1lc3NhZ2V9YCxcclxuXHRcdFx0XHRUeXBlOiBrZXksXHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlc2V0RHluYW1pY1NldHRpbmdzVG1zZ0NhY2hlKCkge1xyXG5cdGR5bmFtaWNTZXR0aW5nc1Rtc2dDYWNoZSA9IHt9O1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/DynamicConfiguration.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/CachedUserFacts.js": /*!**************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/CachedUserFacts.js ***! \**************************************************************************************/ /*! exports provided: UserFactLocalStorageKey, getCachedUserFacts, getUnExpiredCachedUserFacts, mergeLocalUserFacts */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UserFactLocalStorageKey\", function() { return UserFactLocalStorageKey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCachedUserFacts\", function() { return getCachedUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUnExpiredCachedUserFacts\", function() { return getUnExpiredCachedUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mergeLocalUserFacts\", function() { return mergeLocalUserFacts; });\n/* harmony import */ var _Common_ContentType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Common/ContentType */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js\");\n/* harmony import */ var _Utils_Caching__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Caching */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js\");\n\n\nvar UserFactLocalStorageKey = _Common_ContentType__WEBPACK_IMPORTED_MODULE_0__[\"ContentTypeToStorageKeyMap\"][\"UserFacts\" /* userFacts */];\n// Get UserFacts\nfunction getCachedUserFacts(userId) {\n return Object(_Utils_Caching__WEBPACK_IMPORTED_MODULE_1__[\"getCachedContent\"])(UserFactLocalStorageKey);\n}\n// Get UserFacts\nfunction getUnExpiredCachedUserFacts(userId) {\n return Object(_Utils_Caching__WEBPACK_IMPORTED_MODULE_1__[\"getValidCachedContent\"])(UserFactLocalStorageKey, null);\n}\n// Merges or appends local UserFacts into the input array (usually remote facts)\nfunction mergeLocalUserFacts(inputUserFacts) {\n var localUserFacts = Object(_Utils_Caching__WEBPACK_IMPORTED_MODULE_1__[\"getCachedContent\"])(UserFactLocalStorageKey);\n if (!localUserFacts) {\n return inputUserFacts;\n }\n if (!inputUserFacts) {\n return localUserFacts;\n }\n localUserFacts.forEach(function (localFact) {\n var localSourcedFact = localFact;\n if ((localSourcedFact === null || localSourcedFact === void 0 ? void 0 : localSourcedFact.source) == 1 /* Local */) {\n var matchingInputFact = inputUserFacts.find(function (inputFact) { return inputFact.userFactName == localFact.userFactName; });\n if (!matchingInputFact) {\n // if the local fact doesn't exist in input/remote list, then append to the list\n inputUserFacts.push(localSourcedFact);\n return;\n }\n // if local fact is newer, update the fact value from local cache\n if (localFact.sourceDateTime > matchingInputFact.sourceDateTime) {\n matchingInputFact.sourceDateTime = localFact.sourceDateTime;\n matchingInputFact.userFactValue = localFact.userFactValue;\n matchingInputFact.source = 1 /* Local */;\n }\n }\n });\n return inputUserFacts;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0ZhY3RzL0NhY2hlZFVzZXJGYWN0cy50cz84MGYzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWdGO0FBRUw7QUFFcEUsSUFBTSx1QkFBdUIsR0FBRyw4RUFBMEIsNkJBQXVCLENBQUM7QUFFekYsZ0JBQWdCO0FBQ1QsU0FBUyxrQkFBa0IsQ0FBQyxNQUFlO0lBQ2pELE9BQU8sdUVBQWdCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsZ0JBQWdCO0FBQ1QsU0FBUywyQkFBMkIsQ0FBQyxNQUFlO0lBQzFELE9BQU8sNEVBQXFCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELGdGQUFnRjtBQUN6RSxTQUFTLG1CQUFtQixDQUFDLGNBQTRCO0lBQy9ELElBQU0sY0FBYyxHQUFnQix1RUFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzlFLElBQUksQ0FBQyxjQUFjLEVBQUU7UUFDcEIsT0FBTyxjQUFjLENBQUM7S0FDdEI7SUFFRCxJQUFJLENBQUMsY0FBYyxFQUFFO1FBQ3BCLE9BQU8sY0FBYyxDQUFDO0tBQ3RCO0lBRUQsY0FBYyxDQUFDLE9BQU8sQ0FBQyxtQkFBUztRQUMvQixJQUFNLGdCQUFnQixHQUFHLFNBQTZCLENBQUM7UUFDdkQsSUFBSSxpQkFBZ0IsYUFBaEIsZ0JBQWdCLHVCQUFoQixnQkFBZ0IsQ0FBRSxNQUFNLGtCQUF3QixFQUFFO1lBQ3JELElBQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxtQkFBUyxJQUFJLGdCQUFTLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQWhELENBQWdELENBQUMsQ0FBQztZQUM3RyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3ZCLGdGQUFnRjtnQkFDaEYsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN0QyxPQUFPO2FBQ1A7WUFFRCxpRUFBaUU7WUFDakUsSUFBSSxTQUFTLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDLGNBQWMsRUFBRTtnQkFDaEUsaUJBQWlCLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUM7Z0JBQzVELGlCQUFpQixDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsYUFBYSxDQUFDO2dCQUN6RCxpQkFBc0MsQ0FBQyxNQUFNLGdCQUF1QixDQUFDO2FBQ3RFO1NBQ0Q7SUFDRixDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sY0FBYyxDQUFDO0FBQ3ZCLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvRmFjdHMvQ2FjaGVkVXNlckZhY3RzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFR5cGUsIENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwIH0gZnJvbSBcIi4uL0NvbW1vbi9Db250ZW50VHlwZVwiO1xyXG5pbXBvcnQgeyBJU291cmNlZFVzZXJGYWN0LCBJVXNlckZhY3QsIFVzZXJGYWN0U291cmNlIH0gZnJvbSBcIi4uL0NvbW1vbi9Nb2RlbHNcIjtcclxuaW1wb3J0IHsgZ2V0Q2FjaGVkQ29udGVudCwgZ2V0VmFsaWRDYWNoZWRDb250ZW50IH0gZnJvbSBcIi4uL1V0aWxzL0NhY2hpbmdcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBVc2VyRmFjdExvY2FsU3RvcmFnZUtleSA9IENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW0NvbnRlbnRUeXBlLnVzZXJGYWN0c107XHJcblxyXG4vLyBHZXQgVXNlckZhY3RzXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWNoZWRVc2VyRmFjdHModXNlcklkPzogc3RyaW5nKTogSVVzZXJGYWN0W10ge1xyXG5cdHJldHVybiBnZXRDYWNoZWRDb250ZW50KFVzZXJGYWN0TG9jYWxTdG9yYWdlS2V5KTtcclxufVxyXG5cclxuLy8gR2V0IFVzZXJGYWN0c1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5FeHBpcmVkQ2FjaGVkVXNlckZhY3RzKHVzZXJJZD86IHN0cmluZyk6IElVc2VyRmFjdFtdIHtcclxuXHRyZXR1cm4gZ2V0VmFsaWRDYWNoZWRDb250ZW50KFVzZXJGYWN0TG9jYWxTdG9yYWdlS2V5LCBudWxsKTtcclxufVxyXG5cclxuLy8gTWVyZ2VzIG9yIGFwcGVuZHMgbG9jYWwgVXNlckZhY3RzIGludG8gdGhlIGlucHV0IGFycmF5ICh1c3VhbGx5IHJlbW90ZSBmYWN0cylcclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlTG9jYWxVc2VyRmFjdHMoaW5wdXRVc2VyRmFjdHM/OiBJVXNlckZhY3RbXSk6IElVc2VyRmFjdFtdIHtcclxuXHRjb25zdCBsb2NhbFVzZXJGYWN0czogSVVzZXJGYWN0W10gPSBnZXRDYWNoZWRDb250ZW50KFVzZXJGYWN0TG9jYWxTdG9yYWdlS2V5KTtcclxuXHRpZiAoIWxvY2FsVXNlckZhY3RzKSB7XHJcblx0XHRyZXR1cm4gaW5wdXRVc2VyRmFjdHM7XHJcblx0fVxyXG5cclxuXHRpZiAoIWlucHV0VXNlckZhY3RzKSB7XHJcblx0XHRyZXR1cm4gbG9jYWxVc2VyRmFjdHM7XHJcblx0fVxyXG5cclxuXHRsb2NhbFVzZXJGYWN0cy5mb3JFYWNoKGxvY2FsRmFjdCA9PiB7XHJcblx0XHRjb25zdCBsb2NhbFNvdXJjZWRGYWN0ID0gbG9jYWxGYWN0IGFzIElTb3VyY2VkVXNlckZhY3Q7XHJcblx0XHRpZiAobG9jYWxTb3VyY2VkRmFjdD8uc291cmNlID09IFVzZXJGYWN0U291cmNlLkxvY2FsKSB7XHJcblx0XHRcdGNvbnN0IG1hdGNoaW5nSW5wdXRGYWN0ID0gaW5wdXRVc2VyRmFjdHMuZmluZChpbnB1dEZhY3QgPT4gaW5wdXRGYWN0LnVzZXJGYWN0TmFtZSA9PSBsb2NhbEZhY3QudXNlckZhY3ROYW1lKTtcclxuXHRcdFx0aWYgKCFtYXRjaGluZ0lucHV0RmFjdCkge1xyXG5cdFx0XHRcdC8vIGlmIHRoZSBsb2NhbCBmYWN0IGRvZXNuJ3QgZXhpc3QgaW4gaW5wdXQvcmVtb3RlIGxpc3QsIHRoZW4gYXBwZW5kIHRvIHRoZSBsaXN0XHJcblx0XHRcdFx0aW5wdXRVc2VyRmFjdHMucHVzaChsb2NhbFNvdXJjZWRGYWN0KTtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGlmIGxvY2FsIGZhY3QgaXMgbmV3ZXIsIHVwZGF0ZSB0aGUgZmFjdCB2YWx1ZSBmcm9tIGxvY2FsIGNhY2hlXHJcblx0XHRcdGlmIChsb2NhbEZhY3Quc291cmNlRGF0ZVRpbWUgPiBtYXRjaGluZ0lucHV0RmFjdC5zb3VyY2VEYXRlVGltZSkge1xyXG5cdFx0XHRcdG1hdGNoaW5nSW5wdXRGYWN0LnNvdXJjZURhdGVUaW1lID0gbG9jYWxGYWN0LnNvdXJjZURhdGVUaW1lO1xyXG5cdFx0XHRcdG1hdGNoaW5nSW5wdXRGYWN0LnVzZXJGYWN0VmFsdWUgPSBsb2NhbEZhY3QudXNlckZhY3RWYWx1ZTtcclxuXHRcdFx0XHQobWF0Y2hpbmdJbnB1dEZhY3QgYXMgSVNvdXJjZWRVc2VyRmFjdCkuc291cmNlID0gVXNlckZhY3RTb3VyY2UuTG9jYWw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0cmV0dXJuIGlucHV0VXNlckZhY3RzO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/CachedUserFacts.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js ***! \********************************************************************************/ /*! exports provided: AppUsageUserFactType, ComparatorType, AppLastUsedEventNames */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AppUsageUserFactType\", function() { return AppUsageUserFactType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ComparatorType\", function() { return ComparatorType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AppLastUsedEventNames\", function() { return AppLastUsedEventNames; });\n/**\n * Constants.ts\n *\n * Module to hold userFact-related constants\n */\nvar AppUsageUserFactType = \"AppUsage\";\nvar ComparatorType;\n(function (ComparatorType) {\n ComparatorType[ComparatorType[\"Equal\"] = 0] = \"Equal\";\n ComparatorType[ComparatorType[\"NotEqual\"] = 1] = \"NotEqual\";\n ComparatorType[ComparatorType[\"GreaterThan\"] = 2] = \"GreaterThan\";\n ComparatorType[ComparatorType[\"GreaterThanOrEqual\"] = 3] = \"GreaterThanOrEqual\";\n ComparatorType[ComparatorType[\"LessThan\"] = 4] = \"LessThan\";\n ComparatorType[ComparatorType[\"LessThanOrEqual\"] = 5] = \"LessThanOrEqual\";\n})(ComparatorType || (ComparatorType = {}));\nvar AppLastUsedEventNames = {\n 2155: \"WordWebLastUsed\",\n 2156: \"ExcelWebLastUsed\",\n 2157: \"PowerPointWebLastUsed\",\n};\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0ZhY3RzL0NvbnN0YW50cy50cz83OGQzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7Ozs7R0FJRztBQUVJLElBQU0sb0JBQW9CLEdBQUcsVUFBVSxDQUFDO0FBRS9DLElBQVksY0FPWDtBQVBELFdBQVksY0FBYztJQUN6QixxREFBUztJQUNULDJEQUFRO0lBQ1IsaUVBQVc7SUFDWCwrRUFBa0I7SUFDbEIsMkRBQVE7SUFDUix5RUFBZTtBQUNoQixDQUFDLEVBUFcsY0FBYyxLQUFkLGNBQWMsUUFPekI7QUFFTSxJQUFNLHFCQUFxQixHQUFnQztJQUNqRSxJQUFJLEVBQUUsaUJBQWlCO0lBQ3ZCLElBQUksRUFBRSxrQkFBa0I7SUFDeEIsSUFBSSxFQUFFLHVCQUF1QjtDQUM3QixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0ZhY3RzL0NvbnN0YW50cy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBDb25zdGFudHMudHNcclxuICpcclxuICogTW9kdWxlIHRvIGhvbGQgdXNlckZhY3QtcmVsYXRlZCBjb25zdGFudHNcclxuICovXHJcblxyXG5leHBvcnQgY29uc3QgQXBwVXNhZ2VVc2VyRmFjdFR5cGUgPSBcIkFwcFVzYWdlXCI7XHJcblxyXG5leHBvcnQgZW51bSBDb21wYXJhdG9yVHlwZSB7XHJcblx0RXF1YWwgPSAwLFxyXG5cdE5vdEVxdWFsLFxyXG5cdEdyZWF0ZXJUaGFuLFxyXG5cdEdyZWF0ZXJUaGFuT3JFcXVhbCxcclxuXHRMZXNzVGhhbixcclxuXHRMZXNzVGhhbk9yRXF1YWwsXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBBcHBMYXN0VXNlZEV2ZW50TmFtZXM6IHsgW2FwcElkOiBudW1iZXJdOiBzdHJpbmcgfSA9IHtcclxuXHQyMTU1OiBcIldvcmRXZWJMYXN0VXNlZFwiLFxyXG5cdDIxNTY6IFwiRXhjZWxXZWJMYXN0VXNlZFwiLFxyXG5cdDIxNTc6IFwiUG93ZXJQb2ludFdlYkxhc3RVc2VkXCIsXHJcbn07XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactManifest.js": /*!***************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactManifest.js ***! \***************************************************************************************/ /*! exports provided: CompareDataPropertyToDataField, CompareDataPropertyToTelemetryEvent, EvaluateEvent, EvaluateTelemetryEvent, HasDedupIntervalPassed */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CompareDataPropertyToDataField\", function() { return CompareDataPropertyToDataField; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CompareDataPropertyToTelemetryEvent\", function() { return CompareDataPropertyToTelemetryEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EvaluateEvent\", function() { return EvaluateEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"EvaluateTelemetryEvent\", function() { return EvaluateTelemetryEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"HasDedupIntervalPassed\", function() { return HasDedupIntervalPassed; });\n/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Constants */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js\");\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Common_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/Settings */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\");\n\n\n\nfunction CompareDataPropertyToDataField(prop, dataField) {\n if (dataField.dataType != prop.type) {\n return false;\n }\n switch (prop.comparator) {\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].Equal:\n return dataField.value === prop.value;\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].NotEqual:\n return dataField.value != prop.value;\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].GreaterThan:\n return dataField.value > prop.value;\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].GreaterThanOrEqual:\n return dataField.value >= prop.value;\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].LessThan:\n return dataField.value < prop.value;\n case _Constants__WEBPACK_IMPORTED_MODULE_0__[\"ComparatorType\"].LessThanOrEqual:\n return dataField.value <= prop.value;\n default:\n return false;\n }\n}\nfunction CompareDataPropertyToTelemetryEvent(prop, event) {\n if (event.dataFields) {\n var dataField = event.dataFields.find(function (property) { return property.name === prop.propertyName; });\n if (dataField) {\n return CompareDataPropertyToDataField(prop, dataField);\n }\n }\n // if the datafield property resides as part of the EventContract object search and compare those data fields\n if (event.eventContract && event.eventContract.dataFields) {\n var eventContractData = event.eventContract.dataFields.find(function (property) { return property.name === prop.propertyName; });\n if (eventContractData) {\n return CompareDataPropertyToDataField(prop, eventContractData);\n }\n }\n return false;\n}\n// Called when canSendUserFact is called by the host apps\nfunction EvaluateEvent(manifest, eventTime, lastSourceTime) {\n if (manifest === null || eventTime === null) {\n return false;\n }\n var dedupPassed = HasDedupIntervalPassed(manifest.dedupIntervalSeconds, eventTime, lastSourceTime);\n if (!dedupPassed) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().event(\"UserFacts_User_Fact_Not_Sent_Dedup_Interval\" /* UserFactsUserFactNotSentDedupInterval */, { eventName: manifest.userFactName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n }\n return dedupPassed;\n}\n// Called when canSendUserFact is called through the otel telemetry sink\nfunction EvaluateTelemetryEvent(manifest, event, eventTime, lastSourceTime) {\n if (manifest === null || eventTime === null) {\n return false;\n }\n // check that all data properties match values in telemetry event\n if (!manifest.props.every(function (m) { return CompareDataPropertyToTelemetryEvent(m, event); })) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().event(\"UserFacts_Telemetry_Event_Manifest_Mismatch\" /* UserFactsTelemetryEventManifestMismatch */, { eventName: manifest.userFactName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n return false;\n }\n var dedupPassed = HasDedupIntervalPassed(manifest.dedupIntervalSeconds, eventTime, lastSourceTime);\n if (!dedupPassed) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().event(\"UserFacts_Telemetry_Event_Not_Sent_Dedup_Interval\" /* UserFactsTelemetryEventNotSentDedupInterval */, { eventName: manifest.userFactName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n }\n return dedupPassed;\n}\n/**\n * Check if the dedupInterval provided in the user fact manifest has elapsed between the eventTime and the lastSourceTime\n * @param dedupIntervalSeconds the dedup interval for the user fact, obtained from the user fact manifest\n * @param eventTime the most recent time the user fact has occured\n * @param lastSourceTime the last time the user fact has occured, pulled from local storage\n */\nfunction HasDedupIntervalPassed(dedupIntervalSeconds, eventTime, lastSourceTime) {\n if (eventTime == null) {\n return false;\n }\n // if the last source time does not exist or is an invalid date, fact is being added for the first time\n if (!lastSourceTime) {\n return true;\n }\n // validate the the dedupIntervalSeconds has elapsed since the last sourceDateTime\n return (eventTime.getTime() - lastSourceTime.getTime() >= dedupIntervalSeconds * 1000 /*convert to milliseconds*/);\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0ZhY3RzL1VzZXJGYWN0TWFuaWZlc3QudHM/NmVmMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBNkM7QUFHRDtBQUVTO0FBRTlDLFNBQVMsOEJBQThCLENBQUMsSUFBMkIsRUFBRSxTQUFvQjtJQUMvRixJQUFJLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtRQUNwQyxPQUFPLEtBQUssQ0FBQztLQUNiO0lBRUQsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ3hCLEtBQUsseURBQWMsQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZDLEtBQUsseURBQWMsQ0FBQyxRQUFRO1lBQzNCLE9BQU8sU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLEtBQUsseURBQWMsQ0FBQyxXQUFXO1lBQzlCLE9BQU8sU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3JDLEtBQUsseURBQWMsQ0FBQyxrQkFBa0I7WUFDckMsT0FBTyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEMsS0FBSyx5REFBYyxDQUFDLFFBQVE7WUFDM0IsT0FBTyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDckMsS0FBSyx5REFBYyxDQUFDLGVBQWU7WUFDbEMsT0FBTyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEM7WUFDQyxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0YsQ0FBQztBQUVNLFNBQVMsbUNBQW1DLENBQUMsSUFBMkIsRUFBRSxLQUFxQjtJQUNyRyxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7UUFDckIsSUFB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QkFBMkIsQ0FBQyxDQUFDO0FBQ3BILENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvRmFjdHMvVXNlckZhY3RNYW5pZmVzdC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBhcmF0b3JUeXBlIH0gZnJvbSBcIi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IElVc2VyRmFjdERhdGFQcm9wZXJ0eSwgSVVzZXJGYWN0TWFuaWZlc3QgfSBmcm9tIFwiLi4vQ29tbW9uL01vZGVsc1wiO1xyXG5pbXBvcnQgeyBFdmVudElkcyB9IGZyb20gXCIuLi9Mb2dnaW5nL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgKiBhcyBMb2dnZXIgZnJvbSBcIi4uL0xvZ2dpbmcvTG9nZ2VyXCI7XHJcbmltcG9ydCB7IFRlbGVtZXRyeUV2ZW50LCBEYXRhRmllbGQgfSBmcm9tIFwiQG1pY3Jvc29mdC9vdGVsanNcIjtcclxuaW1wb3J0IHsgZ2V0U2FtcGxpbmdSYXRlIH0gZnJvbSBcIi4uL0NvbW1vbi9TZXR0aW5nc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIENvbXBhcmVEYXRhUHJvcGVydHlUb0RhdGFGaWVsZChwcm9wOiBJVXNlckZhY3REYXRhUHJvcGVydHksIGRhdGFGaWVsZDogRGF0YUZpZWxkKTogYm9vbGVhbiB7XHJcblx0aWYgKGRhdGFGaWVsZC5kYXRhVHlwZSAhPSBwcm9wLnR5cGUpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblxyXG5cdHN3aXRjaCAocHJvcC5jb21wYXJhdG9yKSB7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkVxdWFsOlxyXG5cdFx0XHRyZXR1cm4gZGF0YUZpZWxkLnZhbHVlID09PSBwcm9wLnZhbHVlO1xyXG5cdFx0Y2FzZSBDb21wYXJhdG9yVHlwZS5Ob3RFcXVhbDpcclxuXHRcdFx0cmV0dXJuIGRhdGFGaWVsZC52YWx1ZSAhPSBwcm9wLnZhbHVlO1xyXG5cdFx0Y2FzZSBDb21wYXJhdG9yVHlwZS5HcmVhdGVyVGhhbjpcclxuXHRcdFx0cmV0dXJuIGRhdGFGaWVsZC52YWx1ZSA+IHByb3AudmFsdWU7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkdyZWF0ZXJUaGFuT3JFcXVhbDpcclxuXHRcdFx0cmV0dXJuIGRhdGFGaWVsZC52YWx1ZSA+PSBwcm9wLnZhbHVlO1xyXG5cdFx0Y2FzZSBDb21wYXJhdG9yVHlwZS5MZXNzVGhhbjpcclxuXHRcdFx0cmV0dXJuIGRhdGFGaWVsZC52YWx1ZSA8IHByb3AudmFsdWU7XHJcblx0XHRjYXNlIENvbXBhcmF0b3JUeXBlLkxlc3NUaGFuT3JFcXVhbDpcclxuXHRcdFx0cmV0dXJuIGRhdGFGaWVsZC52YWx1ZSA8PSBwcm9wLnZhbHVlO1xyXG5cdFx0ZGVmYXVsdDpcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIENvbXBhcmVEYXRhUHJvcGVydHlUb1RlbGVtZXRyeUV2ZW50KHByb3A6IElVc2VyRmFjdERhdGFQcm9wZXJ0eSwgZXZlbnQ6IFRlbGVtZXRyeUV2ZW50KTogYm9vbGVhbiB7XHJcblx0aWYgKGV2ZW50LmRhdGFGaWVsZHMpIHtcclxuXHRcdGNvbnN0IGRhdGFGaWVsZCA9IGV2ZW50LmRhdGFGaWVsZHMuZmluZChwcm9wZXJ0eSA9PiBwcm9wZXJ0eS5uYW1lID09PSBwcm9wLnByb3BlcnR5TmFtZSk7XHJcblxyXG5cdFx0aWYgKGRhdGFGaWVsZCkge1xyXG5cdFx0XHRyZXR1cm4gQ29tcGFyZURhdGFQcm9wZXJ0eVRvRGF0YUZpZWxkKHByb3AsIGRhdGFGaWVsZCk7XHJcblx0XHR9XHRcclxuXHR9XHJcblxyXG5cdC8vIGlmIHRoZSBkYXRhZmllbGQgcHJvcGVydHkgcmVzaWRlcyBhcyBwYXJ0IG9mIHRoZSBFdmVudENvbnRyYWN0IG9iamVjdCBzZWFyY2ggYW5kIGNvbXBhcmUgdGhvc2UgZGF0YSBmaWVsZHNcclxuXHRpZiAoZXZlbnQuZXZlbnRDb250cmFjdCAmJiBldmVudC5ldmVudENvbnRyYWN0LmRhdGFGaWVsZHMpIHtcclxuXHRcdGNvbnN0IGV2ZW50Q29udHJhY3REYXRhID0gZXZlbnQuZXZlbnRDb250cmFjdC5kYXRhRmllbGRzLmZpbmQocHJvcGVydHkgPT4gcHJvcGVydHkubmFtZSA9PT0gcHJvcC5wcm9wZXJ0eU5hbWUpO1xyXG5cclxuXHRcdGlmIChldmVudENvbnRyYWN0RGF0YSkge1xyXG5cdFx0XHRyZXR1cm4gQ29tcGFyZURhdGFQcm9wZXJ0eVRvRGF0YUZpZWxkKHByb3AsIGV2ZW50Q29udHJhY3REYXRhKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiBmYWxzZTtcclxufVxyXG5cclxuLy8gQ2FsbGVkIHdoZW4gY2FuU2VuZFVzZXJGYWN0IGlzIGNhbGxlZCBieSB0aGUgaG9zdCBhcHBzXHJcbmV4cG9ydCBmdW5jdGlvbiBFdmFsdWF0ZUV2ZW50KG1hbmlmZXN0OiBJVXNlckZhY3RNYW5pZmVzdCwgZXZlbnRUaW1lOiBEYXRlICwgbGFzdFNvdXJjZVRpbWU6IERhdGUpOiBib29sZWFuIHtcclxuXHRpZiAobWFuaWZlc3QgPT09IG51bGwgfHwgZXZlbnRUaW1lID09PSBudWxsKSB7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRjb25zdCBkZWR1cFBhc3NlZCA9IEhhc0RlZHVwSW50ZXJ2YWxQYXNzZWQobWFuaWZlc3QuZGVkdXBJbnRlcnZhbFNlY29uZHMsICBldmVudFRpbWUsIGxhc3RTb3VyY2VUaW1lKTtcclxuXHRpZiAoIWRlZHVwUGFzc2VkKSB7XHJcblx0XHRMb2dnZXIuZ2V0TG9nZ2VyKCkuZXZlbnQoRXZlbnRJZHMuVXNlckZhY3RzVXNlckZhY3ROb3RTZW50RGVkdXBJbnRlcnZhbCwgeyBldmVudE5hbWU6IG1hbmlmZXN0LnVzZXJGYWN0TmFtZSB9LCBnZXRTYW1wbGluZ1JhdGUoKSk7XHJcblx0fVxyXG5cdHJldHVybiBkZWR1cFBhc3NlZDtcclxufVxyXG5cclxuLy8gQ2FsbGVkIHdoZW4gY2FuU2VuZFVzZXJGYWN0IGlzIGNhbGxlZCB0aHJvdWdoIHRoZSBvdGVsIHRlbGVtZXRyeSBzaW5rXHJcbmV4cG9ydCBmdW5jdGlvbiBFdmFsdWF0ZVRlbGVtZXRyeUV2ZW50KG1hbmlmZXN0OiBJVXNlckZhY3RNYW5pZmVzdCwgZXZlbnQ6IFRlbGVtZXRyeUV2ZW50LCBldmVudFRpbWU6IERhdGUsIGxhc3RTb3VyY2VUaW1lOiBEYXRlKTogYm9vbGVhbiB7XHJcblx0aWYgKG1hbmlmZXN0ID09PSBudWxsIHx8IGV2ZW50VGltZSA9PT0gbnVsbCkge1xyXG5cdFx0cmV0dXJuIGZhbHNlO1xyXG5cdH1cclxuXHJcblx0Ly8gY2hlY2sgdGhhdCBhbGwgZGF0YSBwcm9wZXJ0aWVzIG1hdGNoIHZhbHVlcyBpbiB0ZWxlbWV0cnkgZXZlbnRcclxuXHRpZiAoIW1hbmlmZXN0LnByb3BzLmV2ZXJ5KG0gPT4gQ29tcGFyZURhdGFQcm9wZXJ0eVRvVGVsZW1ldHJ5RXZlbnQobSwgZXZlbnQpKSkge1xyXG5cdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c1RlbGVtZXRyeUV2ZW50TWFuaWZlc3RNaXNtYXRjaCwgeyBldmVudE5hbWU6IG1hbmlmZXN0LnVzZXJGYWN0TmFtZSB9LCBnZXRTYW1wbGluZ1JhdGUoKSk7XHJcblx0XHRyZXR1cm4gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRjb25zdCBkZWR1cFBhc3NlZCA9IEhhc0RlZHVwSW50ZXJ2YWxQYXNzZWQobWFuaWZlc3QuZGVkdXBJbnRlcnZhbFNlY29uZHMsIGV2ZW50VGltZSwgbGFzdFNvdXJjZVRpbWUpO1xyXG5cdGlmICghZGVkdXBQYXNzZWQpIHtcclxuXHRcdExvZ2dlci5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNUZWxlbWV0cnlFdmVudE5vdFNlbnREZWR1cEludGVydmFsLCB7IGV2ZW50TmFtZTogbWFuaWZlc3QudXNlckZhY3ROYW1lIH0sIGdldFNhbXBsaW5nUmF0ZSgpKTtcclxuXHR9XHJcblx0cmV0dXJuIGRlZHVwUGFzc2VkO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgdGhlIGRlZHVwSW50ZXJ2YWwgcHJvdmlkZWQgaW4gdGhlIHVzZXIgZmFjdCBtYW5pZmVzdCBoYXMgZWxhcHNlZCBiZXR3ZWVuIHRoZSBldmVudFRpbWUgYW5kIHRoZSBsYXN0U291cmNlVGltZVxyXG4gKiBAcGFyYW0gZGVkdXBJbnRlcnZhbFNlY29uZHMgdGhlIGRlZHVwIGludGVydmFsIGZvciB0aGUgdXNlciBmYWN0LCBvYnRhaW5lZCBmcm9tIHRoZSB1c2VyIGZhY3QgbWFuaWZlc3RcclxuICogQHBhcmFtIGV2ZW50VGltZSB0aGUgbW9zdCByZWNlbnQgdGltZSB0aGUgdXNlciBmYWN0IGhhcyBvY2N1cmVkXHJcbiAqIEBwYXJhbSBsYXN0U291cmNlVGltZSB0aGUgbGFzdCB0aW1lIHRoZSB1c2VyIGZhY3QgaGFzIG9jY3VyZWQsIHB1bGxlZCBmcm9tIGxvY2FsIHN0b3JhZ2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBIYXNEZWR1cEludGVydmFsUGFzc2VkKGRlZHVwSW50ZXJ2YWxTZWNvbmRzOiBudW1iZXIsIGV2ZW50VGltZTogRGF0ZSwgbGFzdFNvdXJjZVRpbWU6IERhdGUpOiBib29sZWFuIHtcclxuXHRpZiAoZXZlbnRUaW1lID09IG51bGwpIHtcclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9XHJcblx0Ly8gaWYgdGhlIGxhc3Qgc291cmNlIHRpbWUgZG9lcyBub3QgZXhpc3Qgb3IgaXMgYW4gaW52YWxpZCBkYXRlLCBmYWN0IGlzIGJlaW5nIGFkZGVkIGZvciB0aGUgZmlyc3QgdGltZVxyXG5cdGlmICghbGFzdFNvdXJjZVRpbWUpIHtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH1cclxuXHJcblx0Ly8gdmFsaWRhdGUgdGhlIHRoZSBkZWR1cEludGVydmFsU2Vjb25kcyBoYXMgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCBzb3VyY2VEYXRlVGltZVxyXG5cdHJldHVybiAoZXZlbnRUaW1lLmdldFRpbWUoKSAtIGxhc3RTb3VyY2VUaW1lLmdldFRpbWUoKSA+PSBkZWR1cEludGVydmFsU2Vjb25kcyAqIDEwMDAgLypjb252ZXJ0IHRvIG1pbGxpc2Vjb25kcyovKTtcclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactManifest.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFacts.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFacts.js ***! \********************************************************************************/ /*! exports provided: mapUserFacts, getUserFactList, getUserFacts, getUserFactManifest, sendAppLastUsed, processTelemetryEvent, processUserFactEvent, sendUserFact, readLastSourceTimeFromCache, writeFactToCache */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"mapUserFacts\", function() { return mapUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUserFactList\", function() { return getUserFactList; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUserFacts\", function() { return getUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUserFactManifest\", function() { return getUserFactManifest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendAppLastUsed\", function() { return sendAppLastUsed; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"processTelemetryEvent\", function() { return processTelemetryEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"processUserFactEvent\", function() { return processUserFactEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendUserFact\", function() { return sendUserFact; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"readLastSourceTimeFromCache\", function() { return readLastSourceTimeFromCache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"writeFactToCache\", function() { return writeFactToCache; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Configuration/Configuration */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js\");\n/* harmony import */ var _Common_Settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Common/Settings */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\");\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Utils_Caching__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/Caching */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js\");\n/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Constants */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js\");\n/* harmony import */ var _UserFactManifest__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./UserFactManifest */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactManifest.js\");\n/* harmony import */ var _UserFactsClient__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./UserFactsClient */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactsClient.js\");\n/* harmony import */ var _CachedUserFacts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CachedUserFacts */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/CachedUserFacts.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n\n\n\n\n\n\n\n\n\n\nvar authTokenConfigProd = {\n scenario: \"tulips\",\n appId: \"https://attributes.engagement.office.com/UserFacts.Read\",\n};\nfunction mapUserFacts(userFacts) {\n if (!userFacts) {\n return null;\n }\n var userFactMap = {};\n userFacts.forEach(function (uf) { return userFactMap[uf.userFactName] = uf; });\n return userFactMap;\n}\n// Get UserFacts\nfunction getUserFactList(userId, authCallback) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var userFacts, authToken, _a, _b, exception_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n userFacts = Object(_CachedUserFacts__WEBPACK_IMPORTED_MODULE_8__[\"getUnExpiredCachedUserFacts\"])(userId);\n if (!(!userFacts || userFacts.length == 0)) return [3 /*break*/, 8];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, , 7]);\n _a = authCallback;\n if (!_a) return [3 /*break*/, 3];\n return [4 /*yield*/, authCallback(authTokenConfigProd)];\n case 2:\n _a = (_c.sent());\n _c.label = 3;\n case 3:\n authToken = _a;\n _b = authToken;\n if (!_b) return [3 /*break*/, 5];\n return [4 /*yield*/, Object(_UserFactsClient__WEBPACK_IMPORTED_MODULE_7__[\"fetchUserFactsWithTimeout\"])(authToken)];\n case 4:\n _b = (_c.sent());\n _c.label = 5;\n case 5:\n userFacts = _b;\n return [3 /*break*/, 7];\n case 6:\n exception_1 = _c.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_Error\" /* UserFactsCommonError */, { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_9__[\"getErrorMessage\"])(exception_1) });\n return [3 /*break*/, 7];\n case 7: return [3 /*break*/, 9];\n case 8:\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_LoadedFromCache\" /* UserFactsCommonCacheLoad */, createTelemetryDataForCacheRead(userFacts === null || userFacts === void 0 ? void 0 : userFacts.length, Object(_UserFactsClient__WEBPACK_IMPORTED_MODULE_7__[\"getUserFactNames\"])(userFacts)), Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n _c.label = 9;\n case 9: return [2 /*return*/, userFacts];\n }\n });\n });\n}\n// Get UserFacts\nfunction getUserFacts(userId, authCallback) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var userFactList;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, getUserFactList(userId, authCallback)];\n case 1:\n userFactList = _a.sent();\n return [2 /*return*/, userFactList && mapUserFacts(userFactList)];\n }\n });\n });\n}\nfunction getUserFactManifest() {\n return _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getUserFactRules();\n}\nfunction sendAppLastUsed(appId, lastUsedTime) {\n if (!_Constants__WEBPACK_IMPORTED_MODULE_5__[\"AppLastUsedEventNames\"][appId]) {\n return;\n }\n processUserFactEvent(_Constants__WEBPACK_IMPORTED_MODULE_5__[\"AppLastUsedEventNames\"][appId], lastUsedTime);\n}\nfunction processTelemetryEvent(telemetryEvent) {\n if (!telemetryEvent || !telemetryEvent.eventName) {\n return;\n }\n var userFactRules = getUserFactManifest();\n if (!userFactRules) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Null_Telemetry_Event_Rules_Map\" /* UserFactsNullTelemetryEventRulesMap */, { Name: telemetryEvent.eventName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n return;\n }\n var manifest = userFactRules[telemetryEvent.eventName];\n try {\n if (!manifest) {\n // Manifest for this event does not exist\n return;\n }\n var cachedFactLastSourceTime = readLastSourceTimeFromCache(manifest.userFactName);\n var userFactTime = new Date(telemetryEvent.timestamp);\n if (!Object(_UserFactManifest__WEBPACK_IMPORTED_MODULE_6__[\"EvaluateTelemetryEvent\"])(manifest, telemetryEvent, userFactTime, cachedFactLastSourceTime)) {\n // fact was not written to local storage\n return;\n }\n sendUserFact(manifest.userFactName, userFactTime);\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Process_Telemetry_Event_Error\" /* UserFactsProcessTelemetryEventError */, { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_9__[\"getErrorMessage\"])(error), Name: telemetryEvent.eventName });\n return;\n }\n}\nfunction processUserFactEvent(eventName, userFactTime) {\n if (!eventName || !userFactTime) {\n return;\n }\n var userFactRules = getUserFactManifest();\n if (!userFactRules) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Null_User_Fact_Rules_Map\" /* UserFactsNullUserFactRulesMap */, { Name: eventName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n return;\n }\n var manifest = userFactRules[eventName];\n try {\n if (!manifest) {\n // Manifest for this user fact event does not exist\n return;\n }\n var cachedFactLastSourceTime = readLastSourceTimeFromCache(manifest.userFactName);\n if (!Object(_UserFactManifest__WEBPACK_IMPORTED_MODULE_6__[\"EvaluateEvent\"])(manifest, userFactTime, cachedFactLastSourceTime)) {\n // fact was not written to local storage\n return;\n }\n sendUserFact(manifest.userFactName, userFactTime);\n return;\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Process_UserFact_Event_Error\" /* UserFactsProcessUserFactEventError */, { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_9__[\"getErrorMessage\"])(error), Name: eventName });\n return;\n }\n}\nfunction sendUserFact(userFactName, userFactTime) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().userFactEvent(userFactName, userFactTime.toISOString());\n writeFactToCache(userFactName, userFactTime.toISOString());\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Send_User_Fact_Success\" /* UserFactsSendUserFactSuccess */, { Name: userFactName }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSamplingRate\"])());\n}\nfunction readLastSourceTimeFromCache(factKey) {\n var cachedUserFacts;\n try {\n cachedUserFacts = mapUserFacts(Object(_CachedUserFacts__WEBPACK_IMPORTED_MODULE_8__[\"getCachedUserFacts\"])());\n if (!cachedUserFacts) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Empty_Cache\" /* UserFactsEmptyCache */, { Name: factKey });\n return null;\n }\n var lastSourceTime = (cachedUserFacts[factKey]) ? cachedUserFacts[factKey].sourceDateTime : null;\n if (!lastSourceTime) {\n return null;\n }\n return new Date(lastSourceTime);\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Read_Cache_Error\" /* UserFactsReadCacheError */, { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_9__[\"getErrorMessage\"])(error), Name: factKey });\n return null;\n }\n}\nfunction writeFactToCache(factKey, factTime) {\n var cachedUserFacts;\n try {\n cachedUserFacts = Object(_CachedUserFacts__WEBPACK_IMPORTED_MODULE_8__[\"getCachedUserFacts\"])();\n // Do not set expiration if there are no cached entries in first time boot scenarios.\n // This to let subsequent service call go through.\n var cacheExpiration = cachedUserFacts ? Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_2__[\"getSetting\"])(\"userFactsCacheExpiration\") : -1;\n var mergedFacts = Object(_UserFactsClient__WEBPACK_IMPORTED_MODULE_7__[\"addOrUpdateAppUsageUserFact\"])(factKey, factTime, cachedUserFacts);\n Object(_Utils_Caching__WEBPACK_IMPORTED_MODULE_4__[\"updateCache\"])(\"UserFacts\" /* userFacts */, mergedFacts, cacheExpiration, _CachedUserFacts__WEBPACK_IMPORTED_MODULE_8__[\"UserFactLocalStorageKey\"]);\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Write_Cache_Error\" /* UserFactsWriteCacheError */, { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_9__[\"getErrorMessage\"])(error), Name: factKey });\n }\n}\nfunction createTelemetryDataForCacheRead(count, factNames) {\n if (count === void 0) { count = -1; }\n if (factNames === void 0) { factNames = undefined; }\n return {\n Count: count,\n FactNames: Object(_UserFactsClient__WEBPACK_IMPORTED_MODULE_7__[\"createStringOfFactNames\"])(factNames),\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0ZhY3RzL1VzZXJGYWN0cy50cz9hZjdmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDZ0U7QUFDQztBQUdyQjtBQUNHO0FBQ0s7QUFDdUI7QUFDMkQ7QUFDekI7QUFFNUQ7QUFFakQsSUFBTSxtQkFBbUIsR0FBK0I7SUFDdkQsUUFBUSxFQUFFLFFBQVE7SUFDbEIsS0FBSyxFQUFFLHlEQUF5RDtDQUNoRSxDQUFDO0FBRUssU0FBUyxZQUFZLENBQUMsU0FBc0I7SUFDbEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNmLE9BQU8sSUFBSSxDQUFDO0tBQ1o7SUFFRCxJQUFNLFdBQVcsR0FBaUIsRUFBRSxDQUFDO0lBQ3JDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBQyxFQUFFLElBQUssa0JBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxFQUFqQyxDQUFpQyxDQUFDLENBQUM7SUFDN0QsT0FBTyxXQUFXLENBQUM7QUFDcEIsQ0FBQztBQUVELGdCQUFnQjtBQUNULFNBQWUsZUFBZSxDQUFDLE1BQWMsRUFDbkQsWUFBOEU7Ozs7OztvQkFDMUUsU0FBUyxHQUFHLG9GQUEyQixDQUFDLE1BQU0sQ0FBQyxDQUFDO3lCQUNoRCxFQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsR0FBbkMsd0JBQW1DOzs7O29CQUVuQixpQkFBWTs2QkFBWix3QkFBWTtvQkFBSSxxQkFBTSxZQUFZLENBQUMsbUJBQW1CLENBQUM7OzBCQUF2QyxTQUF1Qzs7O29CQUFuRSxTQUFTLEtBQTBEO29CQUM3RCxjQUFTOzZCQUFULHdCQUFTO29CQUFJLHFCQUFNLGtGQUF5QixDQUFDLFNBQVMsQ0FBQzs7MEJBQTFDLFNBQTBDOzs7b0JBQW5FLFNBQVMsS0FBMEQsQ0FBQzs7OztvQkFFcEUseURBQWdCLEVBQUUsQ0FBQyxLQUFLLHNEQUFnQyxFQUFFLEtBQUssRUFBRSxvRUFB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QUFFLGlEQUErQjtJQUNuRixPQUFPO1FBQ04sS0FBSyxFQUFFLEtBQUs7UUFDWixTQUFTLEVBQUUsZ0ZBQXVCLENBQUMsU0FBUyxDQUFDO0tBQzdDLENBQUM7QUFDSCxDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL0ZhY3RzL1VzZXJGYWN0cy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQZXJzb25hbGl6YXRpb25BdXRoQ29uZmlnLCBJVXNlckZhY3QsIElVc2VyRmFjdE1hbmlmZXN0LCBJVXNlckZhY3RNYXAsIElVc2VyRmFjdFJ1bGVzTWFwIH0gZnJvbSBcIi4uL0NvbW1vbi9Nb2RlbHNcIjtcclxuaW1wb3J0ICogYXMgQ29uZmlndXJhdGlvbiBmcm9tIFwiLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IGdldFNhbXBsaW5nUmF0ZSwgZ2V0U2V0dGluZyB9IGZyb20gXCIuLi9Db21tb24vU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRUeXBlXCI7XHJcbmltcG9ydCB7IEV2ZW50SWRzIH0gZnJvbSBcIi4uL0xvZ2dpbmcvQ29uc3RhbnRzXCI7XHJcbmltcG9ydCAqIGFzIExvZ2dlciBmcm9tIFwiLi4vTG9nZ2luZy9Mb2dnZXJcIjtcclxuaW1wb3J0IHsgdXBkYXRlQ2FjaGUgfSBmcm9tIFwiLi4vVXRpbHMvQ2FjaGluZ1wiO1xyXG5pbXBvcnQgeyBBcHBMYXN0VXNlZEV2ZW50TmFtZXMgfSBmcm9tIFwiLi9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgRXZhbHVhdGVFdmVudCwgRXZhbHVhdGVUZWxlbWV0cnlFdmVudCB9IGZyb20gXCIuL1VzZXJGYWN0TWFuaWZlc3RcIjtcclxuaW1wb3J0IHsgYWRkT3JVcGRhdGVBcHBVc2FnZVVzZXJGYWN0LCBjcmVhdGVTdHJpbmdPZkZhY3ROYW1lcywgZmV0Y2hVc2VyRmFjdHNXaXRoVGltZW91dCwgZ2V0VXNlckZhY3ROYW1lcyB9IGZyb20gXCIuL1VzZXJGYWN0c0NsaWVudFwiO1xyXG5pbXBvcnQgeyBnZXRDYWNoZWRVc2VyRmFjdHMsIGdldFVuRXhwaXJlZENhY2hlZFVzZXJGYWN0cywgVXNlckZhY3RMb2NhbFN0b3JhZ2VLZXkgfSBmcm9tIFwiLi9DYWNoZWRVc2VyRmFjdHNcIjtcclxuaW1wb3J0IHsgVGVsZW1ldHJ5RXZlbnQgfSBmcm9tIFwiQG1pY3Jvc29mdC9vdGVsanNcIjtcclxuaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlIH0gZnJvbSBcIi4uL1V0aWxzL1V0aWxzXCI7XHJcblxyXG5jb25zdCBhdXRoVG9rZW5Db25maWdQcm9kOiBJUGVyc29uYWxpemF0aW9uQXV0aENvbmZpZyA9IHtcclxuXHRzY2VuYXJpbzogXCJ0dWxpcHNcIixcclxuXHRhcHBJZDogXCJodHRwczovL2F0dHJpYnV0ZXMuZW5nYWdlbWVudC5vZmZpY2UuY29tL1VzZXJGYWN0cy5SZWFkXCIsXHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwVXNlckZhY3RzKHVzZXJGYWN0czogSVVzZXJGYWN0W10pOiBJVXNlckZhY3RNYXAge1xyXG5cdGlmICghdXNlckZhY3RzKSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdGNvbnN0IHVzZXJGYWN0TWFwOiBJVXNlckZhY3RNYXAgPSB7fTtcclxuXHR1c2VyRmFjdHMuZm9yRWFjaCgodWYpID0+IHVzZXJGYWN0TWFwW3VmLnVzZXJGYWN0TmFtZV0gPSB1Zik7XHJcblx0cmV0dXJuIHVzZXJGYWN0TWFwO1xyXG59XHJcblxyXG4vLyBHZXQgVXNlckZhY3RzXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRVc2VyRmFjdExpc3QodXNlcklkOiBzdHJpbmcsXHJcblx0YXV0aENhbGxiYWNrOiAoYXV0aFRva2VuQ29uZmlnOiBJUGVyc29uYWxpemF0aW9uQXV0aENvbmZpZykgPT4gUHJvbWlzZTxzdHJpbmc+KTogUHJvbWlzZTxJVXNlckZhY3RbXT4ge1xyXG5cdGxldCB1c2VyRmFjdHMgPSBnZXRVbkV4cGlyZWRDYWNoZWRVc2VyRmFjdHModXNlcklkKTtcclxuXHRpZiAoIXVzZXJGYWN0cyB8fCB1c2VyRmFjdHMubGVuZ3RoID09IDApIHtcclxuXHRcdHRyeSB7XHJcblx0XHRcdGNvbnN0IGF1dGhUb2tlbiA9IGF1dGhDYWxsYmFjayAmJiBhd2FpdCBhdXRoQ2FsbGJhY2soYXV0aFRva2VuQ29uZmlnUHJvZCk7XHJcblx0XHRcdHVzZXJGYWN0cyA9IGF1dGhUb2tlbiAmJiBhd2FpdCBmZXRjaFVzZXJGYWN0c1dpdGhUaW1lb3V0KGF1dGhUb2tlbik7XHJcblx0XHR9IGNhdGNoIChleGNlcHRpb24pIHtcclxuXHRcdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0NvbW1vbkVycm9yLCB7IGVycm9yOiBnZXRFcnJvck1lc3NhZ2UoZXhjZXB0aW9uKSB9KTtcclxuXHRcdH1cclxuXHR9IGVsc2Uge1xyXG5cdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0NvbW1vbkNhY2hlTG9hZCxcclxuXHRcdFx0Y3JlYXRlVGVsZW1ldHJ5RGF0YUZvckNhY2hlUmVhZCh1c2VyRmFjdHM/Lmxlbmd0aCwgZ2V0VXNlckZhY3ROYW1lcyh1c2VyRmFjdHMpKSwgZ2V0U2FtcGxpbmdSYXRlKCkpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHVzZXJGYWN0cztcclxufVxyXG5cclxuLy8gR2V0IFVzZXJGYWN0c1xyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VXNlckZhY3RzKHVzZXJJZDogc3RyaW5nLFxyXG5cdGF1dGhDYWxsYmFjazogKGF1dGhUb2tlbkNvbmZpZzogSVBlcnNvbmFsaXphdGlvbkF1dGhDb25maWcpID0+IFByb21pc2U8c3RyaW5nPik6IFByb21pc2U8SVVzZXJGYWN0TWFwPiB7XHJcblx0Y29uc3QgdXNlckZhY3RMaXN0ID0gYXdhaXQgZ2V0VXNlckZhY3RMaXN0KHVzZXJJZCwgYXV0aENhbGxiYWNrKTtcclxuXHRyZXR1cm4gdXNlckZhY3RMaXN0ICYmIG1hcFVzZXJGYWN0cyh1c2VyRmFjdExpc3QpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlckZhY3RNYW5pZmVzdCgpOiBJVXNlckZhY3RSdWxlc01hcCB7XHJcblx0cmV0dXJuIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0VXNlckZhY3RSdWxlcygpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VuZEFwcExhc3RVc2VkKGFwcElkOiBudW1iZXIsIGxhc3RVc2VkVGltZTogRGF0ZSk6IHZvaWQge1xyXG5cdGlmICghQXBwTGFzdFVzZWRFdmVudE5hbWVzW2FwcElkXSkge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRwcm9jZXNzVXNlckZhY3RFdmVudChBcHBMYXN0VXNlZEV2ZW50TmFtZXNbYXBwSWRdLCBsYXN0VXNlZFRpbWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc1RlbGVtZXRyeUV2ZW50KHRlbGVtZXRyeUV2ZW50OiBUZWxlbWV0cnlFdmVudCkge1xyXG5cdGlmICghdGVsZW1ldHJ5RXZlbnQgfHwgIXRlbGVtZXRyeUV2ZW50LmV2ZW50TmFtZSkge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgdXNlckZhY3RSdWxlcyA9IGdldFVzZXJGYWN0TWFuaWZlc3QoKTtcclxuXHRpZiAoIXVzZXJGYWN0UnVsZXMpIHtcclxuXHRcdExvZ2dlci5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNOdWxsVGVsZW1ldHJ5RXZlbnRSdWxlc01hcCwgeyBOYW1lOiB0ZWxlbWV0cnlFdmVudC5ldmVudE5hbWUgfSwgZ2V0U2FtcGxpbmdSYXRlKCkpO1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBtYW5pZmVzdCA9IHVzZXJGYWN0UnVsZXNbdGVsZW1ldHJ5RXZlbnQuZXZlbnROYW1lXTtcclxuXHRcclxuXHR0cnkge1xyXG5cdFx0aWYgKCFtYW5pZmVzdCkge1xyXG5cdFx0XHQvLyBNYW5pZmVzdCBmb3IgdGhpcyBldmVudCBkb2VzIG5vdCBleGlzdFxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBjYWNoZWRGYWN0TGFzdFNvdXJjZVRpbWUgPSByZWFkTGFzdFNvdXJjZVRpbWVGcm9tQ2FjaGUobWFuaWZlc3QudXNlckZhY3ROYW1lKTtcclxuXHRcdGNvbnN0IHVzZXJGYWN0VGltZSA9IG5ldyBEYXRlKHRlbGVtZXRyeUV2ZW50LnRpbWVzdGFtcClcclxuXHJcblx0XHRpZiAoIUV2YWx1YXRlVGVsZW1ldHJ5RXZlbnQobWFuaWZlc3QsIHRlbGVtZXRyeUV2ZW50LCB1c2VyRmFjdFRpbWUsIGNhY2hlZEZhY3RMYXN0U291cmNlVGltZSkpIHtcclxuXHRcdFx0Ly8gZmFjdCB3YXMgbm90IHdyaXR0ZW4gdG8gbG9jYWwgc3RvcmFnZVxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRzZW5kVXNlckZhY3QobWFuaWZlc3QudXNlckZhY3ROYW1lLCB1c2VyRmFjdFRpbWUpXHJcblxyXG5cdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRMb2dnZXIuZ2V0TG9nZ2VyKCkuZXZlbnQoRXZlbnRJZHMuVXNlckZhY3RzUHJvY2Vzc1RlbGVtZXRyeUV2ZW50RXJyb3IsIHsgZXJyb3I6IGdldEVycm9yTWVzc2FnZShlcnJvciksIE5hbWU6IHRlbGVtZXRyeUV2ZW50LmV2ZW50TmFtZSB9KTtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9jZXNzVXNlckZhY3RFdmVudChldmVudE5hbWU6IHN0cmluZywgdXNlckZhY3RUaW1lOiBEYXRlKSB7XHJcblx0aWYgKCFldmVudE5hbWUgfHwgIXVzZXJGYWN0VGltZSkge1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0Y29uc3QgdXNlckZhY3RSdWxlcyA9IGdldFVzZXJGYWN0TWFuaWZlc3QoKTtcclxuXHRpZiAoIXVzZXJGYWN0UnVsZXMpIHtcclxuXHRcdExvZ2dlci5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNOdWxsVXNlckZhY3RSdWxlc01hcCwgeyBOYW1lOiBldmVudE5hbWUgfSwgZ2V0U2FtcGxpbmdSYXRlKCkpO1xyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHRjb25zdCBtYW5pZmVzdCA9IHVzZXJGYWN0UnVsZXNbZXZlbnROYW1lXTtcclxuXHJcblx0dHJ5IHtcclxuXHRcdGlmICghbWFuaWZlc3QpIHtcclxuXHRcdFx0Ly8gTWFuaWZlc3QgZm9yIHRoaXMgdXNlciBmYWN0IGV2ZW50IGRvZXMgbm90IGV4aXN0XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGNhY2hlZEZhY3RMYXN0U291cmNlVGltZSA9IHJlYWRMYXN0U291cmNlVGltZUZyb21DYWNoZShtYW5pZmVzdC51c2VyRmFjdE5hbWUpO1xyXG5cdFx0XHJcblx0XHRpZiAoIUV2YWx1YXRlRXZlbnQobWFuaWZlc3QsIHVzZXJGYWN0VGltZSwgY2FjaGVkRmFjdExhc3RTb3VyY2VUaW1lKSkge1xyXG5cdFx0XHQvLyBmYWN0IHdhcyBub3Qgd3JpdHRlbiB0byBsb2NhbCBzdG9yYWdlXHJcblx0XHRcdHJldHVybjtcclxuXHRcdH0gXHJcblx0XHRzZW5kVXNlckZhY3QobWFuaWZlc3QudXNlckZhY3ROYW1lLCB1c2VyRmFjdFRpbWUpO1xyXG5cdFx0cmV0dXJuO1xyXG5cdFx0XHJcblx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdExvZ2dlci5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNQcm9jZXNzVXNlckZhY3RFdmVudEVycm9yLCB7IGVycm9yOiBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpLCBOYW1lOiBldmVudE5hbWUgfSk7XHJcblx0XHRyZXR1cm47XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2VuZFVzZXJGYWN0KHVzZXJGYWN0TmFtZTogc3RyaW5nLCB1c2VyRmFjdFRpbWU6IERhdGUpIHtcdFxyXG5cdExvZ2dlci5nZXRMb2dnZXIoKS51c2VyRmFjdEV2ZW50KHVzZXJGYWN0TmFtZSwgdXNlckZhY3RUaW1lLnRvSVNPU3RyaW5nKCkpO1xyXG5cdHdyaXRlRmFjdFRvQ2FjaGUodXNlckZhY3ROYW1lLCB1c2VyRmFjdFRpbWUudG9JU09TdHJpbmcoKSk7XHJcblx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c1NlbmRVc2VyRmFjdFN1Y2Nlc3MsIHsgTmFtZTogdXNlckZhY3ROYW1lIH0sIGdldFNhbXBsaW5nUmF0ZSgpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRMYXN0U291cmNlVGltZUZyb21DYWNoZShmYWN0S2V5OiBzdHJpbmcpOiBEYXRlIHtcclxuXHRsZXQgY2FjaGVkVXNlckZhY3RzO1xyXG5cdHRyeSB7XHJcblx0XHRjYWNoZWRVc2VyRmFjdHMgPSBtYXBVc2VyRmFjdHMoZ2V0Q2FjaGVkVXNlckZhY3RzKCkpO1xyXG5cdFx0aWYgKCFjYWNoZWRVc2VyRmFjdHMpIHtcclxuXHRcdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0VtcHR5Q2FjaGUsIHsgTmFtZTogZmFjdEtleSB9KTtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgbGFzdFNvdXJjZVRpbWUgPSAoY2FjaGVkVXNlckZhY3RzW2ZhY3RLZXldKSA/IGNhY2hlZFVzZXJGYWN0c1tmYWN0S2V5XS5zb3VyY2VEYXRlVGltZSA6IG51bGw7XHJcblx0XHRpZiAoIWxhc3RTb3VyY2VUaW1lKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG5ldyBEYXRlKGxhc3RTb3VyY2VUaW1lKTtcclxuXHJcblx0fSBjYXRjaChlcnJvcikge1xyXG5cdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c1JlYWRDYWNoZUVycm9yLCB7IGVycm9yOiBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpLCBOYW1lOiBmYWN0S2V5IH0pO1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVGYWN0VG9DYWNoZShmYWN0S2V5OiBzdHJpbmcsIGZhY3RUaW1lOiBzdHJpbmcpIHtcclxuXHRsZXQgY2FjaGVkVXNlckZhY3RzO1xyXG5cdHRyeSB7XHJcblx0XHRjYWNoZWRVc2VyRmFjdHMgPSBnZXRDYWNoZWRVc2VyRmFjdHMoKTtcclxuXHJcblx0XHQvLyBEbyBub3Qgc2V0IGV4cGlyYXRpb24gaWYgdGhlcmUgYXJlIG5vIGNhY2hlZCBlbnRyaWVzIGluIGZpcnN0IHRpbWUgYm9vdCBzY2VuYXJpb3MuXHJcblx0XHQvLyBUaGlzIHRvIGxldCBzdWJzZXF1ZW50IHNlcnZpY2UgY2FsbCBnbyB0aHJvdWdoLlxyXG5cdFx0Y29uc3QgY2FjaGVFeHBpcmF0aW9uID0gY2FjaGVkVXNlckZhY3RzID8gZ2V0U2V0dGluZzxudW1iZXI+KFwidXNlckZhY3RzQ2FjaGVFeHBpcmF0aW9uXCIpIDogLTE7XHJcblx0XHRjb25zdCBtZXJnZWRGYWN0cyA9IGFkZE9yVXBkYXRlQXBwVXNhZ2VVc2VyRmFjdChmYWN0S2V5LCBmYWN0VGltZSwgY2FjaGVkVXNlckZhY3RzKTtcclxuXHRcdFxyXG5cdFx0dXBkYXRlQ2FjaGUoQ29udGVudFR5cGUudXNlckZhY3RzLCBtZXJnZWRGYWN0cywgY2FjaGVFeHBpcmF0aW9uLCBVc2VyRmFjdExvY2FsU3RvcmFnZUtleSk7XHJcblx0fSBjYXRjaChlcnJvcikge1xyXG5cdFx0TG9nZ2VyLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c1dyaXRlQ2FjaGVFcnJvciwgeyBlcnJvcjogZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSwgTmFtZTogZmFjdEtleSB9KVxyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlVGVsZW1ldHJ5RGF0YUZvckNhY2hlUmVhZChjb3VudCA9IC0xLCBmYWN0TmFtZXM6IHN0cmluZ1tdID0gdW5kZWZpbmVkKTogTG9nZ2VyLklDdXN0b21Mb2dEYXRhIHtcclxuXHRyZXR1cm4ge1xyXG5cdFx0Q291bnQ6IGNvdW50LFxyXG5cdFx0RmFjdE5hbWVzOiBjcmVhdGVTdHJpbmdPZkZhY3ROYW1lcyhmYWN0TmFtZXMpLFxyXG5cdH07XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFacts.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactsClient.js": /*!**************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactsClient.js ***! \**************************************************************************************/ /*! exports provided: createStringOfFactNames, getUserFactNames, fetchUserFacts, fetchUserFactsWithTimeout, addClientIngestionTimeAndNormalizeKeys, addOrUpdateAppUsageUserFact */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createStringOfFactNames\", function() { return createStringOfFactNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUserFactNames\", function() { return getUserFactNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchUserFacts\", function() { return fetchUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"fetchUserFactsWithTimeout\", function() { return fetchUserFactsWithTimeout; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addClientIngestionTimeAndNormalizeKeys\", function() { return addClientIngestionTimeAndNormalizeKeys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addOrUpdateAppUsageUserFact\", function() { return addOrUpdateAppUsageUserFact; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Common_Settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Common/Settings */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Configuration/Configuration */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/Configuration.js\");\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Utils_Caching__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/Caching */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js\");\n/* harmony import */ var _Utils_Transport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/Transport */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Transport.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n/* harmony import */ var _CachedUserFacts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CachedUserFacts */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/CachedUserFacts.js\");\n/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Constants */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/Constants.js\");\n\n\n\n\n\n\n\n\n\nfunction createStringOfFactNames(factNames) {\n if (!factNames)\n return undefined;\n return factNames.join(\", \");\n}\nfunction getUserFactNames(userFacts) {\n return userFacts === null || userFacts === void 0 ? void 0 : userFacts.map(function (uf) { return uf.userFactName; });\n}\nfunction createTelemetryData(requestStartTimestamp, response, count, factNames, samplingRate) {\n if (count === void 0) { count = -1; }\n if (factNames === void 0) { factNames = undefined; }\n if (samplingRate === void 0) { samplingRate = -1; }\n var _a = response || {}, headers = _a.headers, status = _a.status, statusText = _a.statusText;\n var serverSessionId = headers && headers.get(\"X-ClientSessionId\");\n var serverCorrelationId = headers && headers.get(\"X-CorrelationId\");\n return {\n CorrelationId: serverCorrelationId || undefined,\n Count: count,\n HttpStatusCode: status || undefined,\n HttpStatusText: statusText || undefined,\n FactNames: createStringOfFactNames(factNames),\n SamplingRate: samplingRate,\n SessionId: serverSessionId,\n TimeMilliseconds: +new Date() - requestStartTimestamp,\n };\n}\nfunction fetchUserFacts(authToken) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var requestStartTime, userFacts, serviceUrl, samplingRate, response, userFactsResponse, error_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n requestStartTime = +new Date();\n userFacts = null;\n _a.label = 1;\n case 1:\n _a.trys.push([1, 6, , 7]);\n serviceUrl = Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_1__[\"getSetting\"])(\"userFactsUrl\");\n samplingRate = Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_1__[\"getSamplingRate\"])();\n return [4 /*yield*/, Object(_Utils_Transport__WEBPACK_IMPORTED_MODULE_5__[\"sendGetRequest\"])(serviceUrl, authToken, _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getSessionId())];\n case 2:\n response = _a.sent();\n if (!(response.status === 200 || response.status === 204)) return [3 /*break*/, 4];\n return [4 /*yield*/, response.json()];\n case 3:\n userFactsResponse = _a.sent();\n userFacts = updateAndSaveUserFacts(userFactsResponse);\n if (!userFacts || userFacts.length === 0) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_Error_No_FactsReturned\" /* UserFactsCommonErrorNoFactsReturned */, createTelemetryData(requestStartTime, response));\n }\n else {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_Info\" /* UserFactsCommonInfo */, createTelemetryData(requestStartTime, response, userFacts.length, getUserFactNames(userFacts), samplingRate), samplingRate);\n }\n return [3 /*break*/, 5];\n case 4:\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_Error\" /* UserFactsCommonError */, createTelemetryData(requestStartTime, response));\n _a.label = 5;\n case 5: return [3 /*break*/, 7];\n case 6:\n error_1 = _a.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_3__[\"getLogger\"]().event(\"UserFacts_Common_Error\" /* UserFactsCommonError */, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({}, createTelemetryData(requestStartTime, null)), { error: Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_6__[\"getErrorMessage\"])(error_1) }));\n return [3 /*break*/, 7];\n case 7: return [2 /*return*/, userFacts];\n }\n });\n });\n}\nfunction fetchUserFactsWithTimeout(authToken) {\n var userFactsPromise = fetchUserFacts(authToken);\n var requestTimeout = Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_1__[\"getSetting\"])(\"userFactsRequestTimeOut\");\n return Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_6__[\"createTimeoutPromise\"])(requestTimeout, userFactsPromise);\n}\nfunction updateAndSaveUserFacts(userFactsResponse) {\n if (!userFactsResponse || userFactsResponse.length == 0) {\n return null;\n }\n var normalizedUserFacts = addClientIngestionTimeAndNormalizeKeys(userFactsResponse);\n var userFacts = Object(_CachedUserFacts__WEBPACK_IMPORTED_MODULE_7__[\"mergeLocalUserFacts\"])(normalizedUserFacts);\n var cacheExpiration = Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_1__[\"getSetting\"])(\"userFactsCacheExpiration\");\n Object(_Utils_Caching__WEBPACK_IMPORTED_MODULE_4__[\"saveToCache\"])(\"UserFacts\" /* userFacts */, userFacts, cacheExpiration, _CachedUserFacts__WEBPACK_IMPORTED_MODULE_7__[\"UserFactLocalStorageKey\"]);\n return userFacts;\n}\nfunction addClientIngestionTimeAndNormalizeKeys(tulipsResponseFacts) {\n var currentDateTime = new Date(Date.now()).toISOString();\n return tulipsResponseFacts.map(function (responseFact) {\n var fact = normalizeKeys(responseFact);\n fact.clientIngestionDateTime = currentDateTime;\n return fact;\n });\n}\n/**\n * Iterate through the current list of user facts to update the source date time of given fact\n * @param userFactName the user fact to be updated\n * @param newSourceDateTime the new source date time\n * @param userFacts the list of user facts\n */\nfunction addOrUpdateAppUsageUserFact(userFactName, newSourceDateTime, userFacts) {\n if (!userFacts) {\n userFacts = [];\n }\n var fact = userFacts.find(function (uf) { return uf.userFactName === userFactName; });\n if (fact) {\n fact.sourceDateTime = newSourceDateTime;\n fact.userFactValue = newSourceDateTime;\n fact.storageDateTime = newSourceDateTime;\n fact.source = 1 /* Local */;\n }\n else {\n // if fact did not already exist in cache, add it\n var newFact = {\n userFactType: _Constants__WEBPACK_IMPORTED_MODULE_8__[\"AppUsageUserFactType\"],\n userFactName: userFactName,\n userFactValue: newSourceDateTime,\n sourceDateTime: newSourceDateTime,\n storageDateTime: newSourceDateTime,\n clientIngestionDateTime: \"\",\n source: 1 /* Local */\n };\n userFacts.push(newFact);\n }\n return userFacts;\n}\n/**\n * This method normalizes the keys of the user fact object retrieved from the TULIPS service.\n * Specifically it converts the first letter of each key in the object to lower case.\n * For example the key \"UserFactType\" returned from the service will be converted to \"userFactType\".\n * @param userFact the user fact object\n */\nfunction normalizeKeys(userFact) {\n var normalizedUserFact = {};\n for (var _i = 0, _a = Object.keys(userFact); _i < _a.length; _i++) {\n var key = _a[_i];\n var normalizedKey = (key.charAt(0).toLowerCase() + key.substring(1));\n normalizedUserFact[normalizedKey] = userFact[key];\n }\n return normalizedUserFact;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0ZhY3RzL1VzZXJGYWN0c0NsaWVudC50cz9kMTRlIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRWlFO0FBQ0Q7QUFFbkI7QUFDRTtBQUNLO0FBQ21CO0FBQ1U7QUFDOUI7QUFFNUMsU0FBUyx1QkFBdUIsQ0FBQyxTQUFtQjtJQUMxRCxJQUFJLENBQUMsU0FBUztRQUNiLE9BQU8sU0FBUyxDQUFDO0lBRWxCLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRU0sU0FBUyxnQkFBZ0IsQ0FBQyxTQUFzQjtJQUN0RCxPQUFPLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxHQUFHLENBQUMsWUFBRSxJQUFJLFNBQUUsQ0FBQyxZQUFZLEVBQWYsQ0FBZSxFQUFFO0FBQzlDLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLHFCQUE2QixFQUFFLFFBQWtCLEVBQUUsS0FBVSxFQUFFLFNBQStCLEVBQUUsWUFBaUI7SUFBOUQsaUNBQVMsQ0FBQztJQUFFLGlEQUErQjtJQUFFLCtDQUFnQixDQUFDO0lBQ3ZJLFNBQWtDLFFBQVEsSUFBSSxFQUFjLEVBQTFELE9BQU8sZUFBRSxNQUFNLGNBQUUsVUFBVSxnQkFBK0IsQ0FBQztJQUNuRSxJQUFNLGVBQWUsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3BFLElBQU0sbUJBQW1CLEdBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUV0RSxPQUFPO1FBQ04sYUFBYSxFQUFFLG1CQUFtQixJQUFJLFNBQVM7UUFDL0MsS0FBSyxFQUFFLEtBQUs7UUFDWixjQUFjLEVBQUUsTUFBTSxJQUFJLFNBQVM7UUFDbkMsY0FBYyxFQUFFLFVBQVUsSUFBSSxTQUFTO1FBQ3ZDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxTQUFTLENBQUM7UUFDN0MsWUFBWSxFQUFFLFlBQVk7UUFDMUIsU0FBUyxFQUFFLGVBQWU7UUFDMUIsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLElBQUksRUFBRSxHQUFHLHFCQUFxQjtLQUNyRCxDQUFDO0FBQ0gsQ0FBQztBQUVNLFNBQWUsY0FBYyxDQUFDLFNBQWlCOzs7Ozs7b0JBQy9DLGdCQUFnQixHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDakMsU0FBUyxHQUFHLElBQUksQ0FBQzs7OztvQkFJZCxVQUFVLEdBQUcsbUVBQVUsQ0FBQyxjQUFjLENBQVcsQ0FBQztvQkFDbEQsWUFBWSxHQUFHLHdFQUFlLEVBQUUsQ0FBQztvQkFDWixxQkFBTSx1RUFBYyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsZ0VBQWlCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQzs7b0JBQXBHLFFBQVEsR0FBYSxTQUErRTt5QkFDdEcsU0FBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxHQUFHLEdBQWxELHdCQUFrRDtvQkFDZCxxQkFBTSxRQUFRLENBQUMsSUFBSSxFQUFFOztvQkFBdEQsaUJBQWlCLEdBQWdCLFNBQXFCO29CQUM1RCxTQUFTLEdBQUcsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztvQkFFdEQsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDekMseURBQWlCLEVBQUUsQ0FBQyxLQUFLLHNGQUErQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO3FCQUN6SDt5QkFDSTt3QkFDSix5REFBaUIsRUFBRSxDQUFDLEtBQUssb0RBQStCLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFDckcsU0FBUyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxZQUFZLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztxQkFDN0U7OztvQkFFRCx5REFBaUIsRUFBRSxDQUFDLEtBQUssc0RBQWdDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7Ozs7O29CQUczRyx5REFBaUIsRUFBRSxDQUFDLEtBQUssNkdBQUMsMkRBQW9DLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxLQUN4RyxLQUFLLEVBQUUsb0VBQWUsQ0FBQyxPQUFLLENBQUMsSUFBRyxDQUFDOzt3QkFHbkMsc0JBQU8sU0FBUyxFQUFDOzs7O0NBQ2pCO0FBRU0sU0FBUyx5QkFBeUIsQ0FBQyxTQUFpQjtJQUMxRCxJQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxJQUFNLGNBQWMsR0FBRyxtRUFBVSxDQUFTLHlCQUF5QixDQUFDLENBQUM7SUFFckUsT0FBTyx5RUFBb0IsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMvRCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxpQkFBOEI7SUFDN0QsSUFBSSxDQUFDLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLENBQUM7S0FDWjtJQUVELElBQU0sbUJBQW1CLEdBQUcsc0NBQXNDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUN0RixJQUFNLFNBQVMsR0FBRyw0RUFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNELElBQU0sZUFBZSxHQUFHLG1FQUFVLENBQVMsMEJBQTBCLENBQUMsQ0FBQztJQUN2RSxrRUFBVyw4QkFBd0IsU0FBUyxFQUFFLGVBQWUsRUFBRSx3RUFBdUIsQ0FBQyxDQUFDO0lBQ3hGLE9BQU8sU0FBUyxDQUFDO0FBQ2xCLENBQUM7QUFFTSxTQUFTLHNDQUFzQyxDQUFDLG1CQUFnQztJQUN0RixJQUFNLGVBQWUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUzRCxPQUFPLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxVQUFDLFlBQVk7UUFDM0MsSUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxlQUFlLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNJLFNBQVMsMkJBQTJCLENBQUMsWUFBb0IsRUFBRSxpQkFBeUIsRUFBRSxTQUFzQjtJQUNsSCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ2YsU0FBUyxHQUFHLEVBQUUsQ0FBQztLQUNmO0lBRUQsSUFBTSxJQUFJLEdBQXFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBRSxJQUFJLFNBQUUsQ0FBQyxZQUFZLEtBQUssWUFBWSxFQUFoQyxDQUFnQyxDQUFDLENBQUM7SUFDdEYsSUFBSSxJQUFJLEVBQUU7UUFDVCxJQUFJLENBQUMsY0FBYyxHQUFHLGlCQUFpQixDQUFDO1FBQ3hDLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLENBQUM7UUFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxnQkFBdUIsQ0FBQztLQUNuQztTQUFNO1FBQ04saURBQWlEO1FBQ2pELElBQU0sT0FBTyxHQUFxQjtZQUNqQyxZQUFZLEVBQUUsK0RBQW9CO1lBQ2xDLFlBQVksRUFBRSxZQUFZO1lBQzFCLGFBQWEsRUFBRSxpQkFBaUI7WUFDaEMsY0FBYyxFQUFFLGlCQUFpQjtZQUNqQyxlQUFlLEVBQUUsaUJBQWlCO1lBQ2xDLHVCQUF1QixFQUFFLEVBQUU7WUFDM0IsTUFBTSxlQUFzQjtTQUM1QixDQUFDO1FBRUYsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN4QjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsYUFBYSxDQUFDLFFBQW1CO0lBQ3pDLElBQU0sa0JBQWtCLEdBQUcsRUFBZSxDQUFDO0lBQzNDLEtBQWtCLFVBQXFCLEVBQXJCLFdBQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQXJCLGNBQXFCLEVBQXJCLElBQXFCLEVBQUU7UUFBcEMsSUFBTSxHQUFHO1FBQ2IsSUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQW9CLENBQUM7UUFDMUYsa0JBQWtCLENBQUMsYUFBYSxDQUFDLEdBQUksUUFBZ0IsQ0FBQyxHQUFHLENBQW9CLENBQUM7S0FDOUU7SUFFRCxPQUFPLGtCQUFrQixDQUFDO0FBQzNCLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvRmFjdHMvVXNlckZhY3RzQ2xpZW50LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRUeXBlXCI7XHJcbmltcG9ydCB7IElTb3VyY2VkVXNlckZhY3QsIElVc2VyRmFjdCwgVXNlckZhY3RTb3VyY2UgfSBmcm9tIFwiLi4vQ29tbW9uL01vZGVsc1wiO1xyXG5pbXBvcnQgeyBnZXRTZXR0aW5nLCBnZXRTYW1wbGluZ1JhdGUgfSBmcm9tIFwiLi4vQ29tbW9uL1NldHRpbmdzXCI7XHJcbmltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4uL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgeyBFdmVudElkcyB9IGZyb20gXCIuLi9Mb2dnaW5nL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgKiBhcyBMb2dnaW5nIGZyb20gXCIuLi9Mb2dnaW5nL0xvZ2dlclwiO1xyXG5pbXBvcnQgeyBzYXZlVG9DYWNoZSB9IGZyb20gXCIuLi9VdGlscy9DYWNoaW5nXCI7XHJcbmltcG9ydCB7IHNlbmRHZXRSZXF1ZXN0IH0gZnJvbSBcIi4uL1V0aWxzL1RyYW5zcG9ydFwiO1xyXG5pbXBvcnQgeyBjcmVhdGVUaW1lb3V0UHJvbWlzZSwgZ2V0RXJyb3JNZXNzYWdlIH0gZnJvbSBcIi4uL1V0aWxzL1V0aWxzXCI7XHJcbmltcG9ydCB7IFVzZXJGYWN0TG9jYWxTdG9yYWdlS2V5LCBtZXJnZUxvY2FsVXNlckZhY3RzIH0gZnJvbSBcIi4vQ2FjaGVkVXNlckZhY3RzXCI7XHJcbmltcG9ydCB7IEFwcFVzYWdlVXNlckZhY3RUeXBlIH0gZnJvbSBcIi4vQ29uc3RhbnRzXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3RyaW5nT2ZGYWN0TmFtZXMoZmFjdE5hbWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XHJcblx0aWYgKCFmYWN0TmFtZXMpXHJcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xyXG5cclxuXHRyZXR1cm4gZmFjdE5hbWVzLmpvaW4oXCIsIFwiKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFVzZXJGYWN0TmFtZXModXNlckZhY3RzOiBJVXNlckZhY3RbXSk6IHN0cmluZ1tdIHtcclxuXHRyZXR1cm4gdXNlckZhY3RzPy5tYXAodWYgPT4gdWYudXNlckZhY3ROYW1lKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlVGVsZW1ldHJ5RGF0YShyZXF1ZXN0U3RhcnRUaW1lc3RhbXA6IG51bWJlciwgcmVzcG9uc2U6IFJlc3BvbnNlLCBjb3VudCA9IC0xLCBmYWN0TmFtZXM6IHN0cmluZ1tdID0gdW5kZWZpbmVkLCBzYW1wbGluZ1JhdGUgPSAtMSkge1xyXG5cdGNvbnN0IHsgaGVhZGVycywgc3RhdHVzLCBzdGF0dXNUZXh0IH0gPSByZXNwb25zZSB8fCB7fSBhcyBSZXNwb25zZTtcclxuXHRjb25zdCBzZXJ2ZXJTZXNzaW9uSWQgPSBoZWFkZXJzICYmIGhlYWRlcnMuZ2V0KFwiWC1DbGllbnRTZXNzaW9uSWRcIik7XHJcblx0Y29uc3Qgc2VydmVyQ29ycmVsYXRpb25JZCA9IGhlYWRlcnMgJiYgaGVhZGVycy5nZXQoXCJYLUNvcnJlbGF0aW9uSWRcIik7XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRDb3JyZWxhdGlvbklkOiBzZXJ2ZXJDb3JyZWxhdGlvbklkIHx8IHVuZGVmaW5lZCxcclxuXHRcdENvdW50OiBjb3VudCxcclxuXHRcdEh0dHBTdGF0dXNDb2RlOiBzdGF0dXMgfHwgdW5kZWZpbmVkLFxyXG5cdFx0SHR0cFN0YXR1c1RleHQ6IHN0YXR1c1RleHQgfHwgdW5kZWZpbmVkLFxyXG5cdFx0RmFjdE5hbWVzOiBjcmVhdGVTdHJpbmdPZkZhY3ROYW1lcyhmYWN0TmFtZXMpLFxyXG5cdFx0U2FtcGxpbmdSYXRlOiBzYW1wbGluZ1JhdGUsXHJcblx0XHRTZXNzaW9uSWQ6IHNlcnZlclNlc3Npb25JZCxcclxuXHRcdFRpbWVNaWxsaXNlY29uZHM6ICtuZXcgRGF0ZSgpIC0gcmVxdWVzdFN0YXJ0VGltZXN0YW1wLFxyXG5cdH07XHJcbn1cclxuXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFVzZXJGYWN0cyhhdXRoVG9rZW46IHN0cmluZyk6IFByb21pc2U8SVVzZXJGYWN0W10+IHtcclxuXHRjb25zdCByZXF1ZXN0U3RhcnRUaW1lID0gK25ldyBEYXRlKCk7XHJcblx0bGV0IHVzZXJGYWN0cyA9IG51bGw7XHJcblxyXG5cdC8vIG1ha2Ugc2VydmljZSBjYWxsIGFuZCBzYXZlIHRoZSByZXNwb25zZSB0byBsb2NhbCBjYWNoZVxyXG5cdHRyeSB7XHJcblx0XHRjb25zdCBzZXJ2aWNlVXJsID0gZ2V0U2V0dGluZyhcInVzZXJGYWN0c1VybFwiKSBhcyBzdHJpbmc7XHJcblx0XHRjb25zdCBzYW1wbGluZ1JhdGUgPSBnZXRTYW1wbGluZ1JhdGUoKTtcclxuXHRcdGNvbnN0IHJlc3BvbnNlOiBSZXNwb25zZSA9IGF3YWl0IHNlbmRHZXRSZXF1ZXN0KHNlcnZpY2VVcmwsIGF1dGhUb2tlbiwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRTZXNzaW9uSWQoKSk7XHJcblx0XHRpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDAgfHwgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDQpIHtcclxuXHRcdFx0Y29uc3QgdXNlckZhY3RzUmVzcG9uc2U6IElVc2VyRmFjdFtdID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xyXG5cdFx0XHR1c2VyRmFjdHMgPSB1cGRhdGVBbmRTYXZlVXNlckZhY3RzKHVzZXJGYWN0c1Jlc3BvbnNlKTtcclxuXHJcblx0XHRcdGlmICghdXNlckZhY3RzIHx8IHVzZXJGYWN0cy5sZW5ndGggPT09IDApIHtcclxuXHRcdFx0XHRMb2dnaW5nLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0NvbW1vbkVycm9yTm9GYWN0c1JldHVybmVkLCBjcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIHJlc3BvbnNlKSk7XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNDb21tb25JbmZvLCBjcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIHJlc3BvbnNlLCBcclxuXHRcdFx0XHRcdHVzZXJGYWN0cy5sZW5ndGgsIGdldFVzZXJGYWN0TmFtZXModXNlckZhY3RzKSwgc2FtcGxpbmdSYXRlKSwgc2FtcGxpbmdSYXRlKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChFdmVudElkcy5Vc2VyRmFjdHNDb21tb25FcnJvciwgY3JlYXRlVGVsZW1ldHJ5RGF0YShyZXF1ZXN0U3RhcnRUaW1lLCByZXNwb25zZSkpO1xyXG5cdFx0fVxyXG5cdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRMb2dnaW5nLmdldExvZ2dlcigpLmV2ZW50KEV2ZW50SWRzLlVzZXJGYWN0c0NvbW1vbkVycm9yLCB7IC4uLmNyZWF0ZVRlbGVtZXRyeURhdGEocmVxdWVzdFN0YXJ0VGltZSwgbnVsbCksXHJcblx0XHRcdGVycm9yOiBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpIH0pO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHVzZXJGYWN0cztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGZldGNoVXNlckZhY3RzV2l0aFRpbWVvdXQoYXV0aFRva2VuOiBzdHJpbmcpOiBQcm9taXNlPElVc2VyRmFjdFtdPiB7XHJcblx0Y29uc3QgdXNlckZhY3RzUHJvbWlzZSA9IGZldGNoVXNlckZhY3RzKGF1dGhUb2tlbik7XHJcblx0Y29uc3QgcmVxdWVzdFRpbWVvdXQgPSBnZXRTZXR0aW5nPG51bWJlcj4oXCJ1c2VyRmFjdHNSZXF1ZXN0VGltZU91dFwiKTtcclxuXHJcblx0cmV0dXJuIGNyZWF0ZVRpbWVvdXRQcm9taXNlKHJlcXVlc3RUaW1lb3V0LCB1c2VyRmFjdHNQcm9taXNlKTtcclxufVxyXG5cclxuZnVuY3Rpb24gdXBkYXRlQW5kU2F2ZVVzZXJGYWN0cyh1c2VyRmFjdHNSZXNwb25zZTogSVVzZXJGYWN0W10pOiBJVXNlckZhY3RbXSB7XHJcblx0aWYgKCF1c2VyRmFjdHNSZXNwb25zZSB8fCB1c2VyRmFjdHNSZXNwb25zZS5sZW5ndGggPT0gMCkge1xyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRjb25zdCBub3JtYWxpemVkVXNlckZhY3RzID0gYWRkQ2xpZW50SW5nZXN0aW9uVGltZUFuZE5vcm1hbGl6ZUtleXModXNlckZhY3RzUmVzcG9uc2UpO1xyXG5cdGNvbnN0IHVzZXJGYWN0cyA9IG1lcmdlTG9jYWxVc2VyRmFjdHMobm9ybWFsaXplZFVzZXJGYWN0cyk7XHJcblx0Y29uc3QgY2FjaGVFeHBpcmF0aW9uID0gZ2V0U2V0dGluZzxudW1iZXI+KFwidXNlckZhY3RzQ2FjaGVFeHBpcmF0aW9uXCIpO1xyXG5cdHNhdmVUb0NhY2hlKENvbnRlbnRUeXBlLnVzZXJGYWN0cywgdXNlckZhY3RzLCBjYWNoZUV4cGlyYXRpb24sIFVzZXJGYWN0TG9jYWxTdG9yYWdlS2V5KTtcclxuXHRyZXR1cm4gdXNlckZhY3RzO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYWRkQ2xpZW50SW5nZXN0aW9uVGltZUFuZE5vcm1hbGl6ZUtleXModHVsaXBzUmVzcG9uc2VGYWN0czogSVVzZXJGYWN0W10pOiBJVXNlckZhY3RbXSB7XHJcblx0Y29uc3QgY3VycmVudERhdGVUaW1lID0gbmV3IERhdGUoRGF0ZS5ub3coKSkudG9JU09TdHJpbmcoKTtcclxuXHJcblx0cmV0dXJuIHR1bGlwc1Jlc3BvbnNlRmFjdHMubWFwKChyZXNwb25zZUZhY3QpID0+IHtcclxuXHRcdGNvbnN0IGZhY3QgPSBub3JtYWxpemVLZXlzKHJlc3BvbnNlRmFjdCk7XHJcblx0XHRmYWN0LmNsaWVudEluZ2VzdGlvbkRhdGVUaW1lID0gY3VycmVudERhdGVUaW1lO1xyXG5cdFx0cmV0dXJuIGZhY3Q7XHJcblx0fSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJdGVyYXRlIHRocm91Z2ggdGhlIGN1cnJlbnQgbGlzdCBvZiB1c2VyIGZhY3RzIHRvIHVwZGF0ZSB0aGUgc291cmNlIGRhdGUgdGltZSBvZiBnaXZlbiBmYWN0XHJcbiAqIEBwYXJhbSB1c2VyRmFjdE5hbWUgdGhlIHVzZXIgZmFjdCB0byBiZSB1cGRhdGVkXHJcbiAqIEBwYXJhbSBuZXdTb3VyY2VEYXRlVGltZSB0aGUgbmV3IHNvdXJjZSBkYXRlIHRpbWVcclxuICogQHBhcmFtIHVzZXJGYWN0cyB0aGUgbGlzdCBvZiB1c2VyIGZhY3RzXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYWRkT3JVcGRhdGVBcHBVc2FnZVVzZXJGYWN0KHVzZXJGYWN0TmFtZTogc3RyaW5nLCBuZXdTb3VyY2VEYXRlVGltZTogc3RyaW5nLCB1c2VyRmFjdHM6IElVc2VyRmFjdFtdKTogSVVzZXJGYWN0W10ge1xyXG5cdGlmICghdXNlckZhY3RzKSB7XHJcblx0XHR1c2VyRmFjdHMgPSBbXTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGZhY3Q6IElTb3VyY2VkVXNlckZhY3QgPSB1c2VyRmFjdHMuZmluZCh1ZiA9PiB1Zi51c2VyRmFjdE5hbWUgPT09IHVzZXJGYWN0TmFtZSk7XHJcblx0aWYgKGZhY3QpIHsgXHJcblx0XHRmYWN0LnNvdXJjZURhdGVUaW1lID0gbmV3U291cmNlRGF0ZVRpbWU7XHJcblx0XHRmYWN0LnVzZXJGYWN0VmFsdWUgPSBuZXdTb3VyY2VEYXRlVGltZTtcclxuXHRcdGZhY3Quc3RvcmFnZURhdGVUaW1lID0gbmV3U291cmNlRGF0ZVRpbWU7XHJcblx0XHRmYWN0LnNvdXJjZSA9IFVzZXJGYWN0U291cmNlLkxvY2FsO1xyXG5cdH0gZWxzZSB7IFxyXG5cdFx0Ly8gaWYgZmFjdCBkaWQgbm90IGFscmVhZHkgZXhpc3QgaW4gY2FjaGUsIGFkZCBpdFxyXG5cdFx0Y29uc3QgbmV3RmFjdDogSVNvdXJjZWRVc2VyRmFjdCA9IHtcclxuXHRcdFx0dXNlckZhY3RUeXBlOiBBcHBVc2FnZVVzZXJGYWN0VHlwZSxcclxuXHRcdFx0dXNlckZhY3ROYW1lOiB1c2VyRmFjdE5hbWUsXHJcblx0XHRcdHVzZXJGYWN0VmFsdWU6IG5ld1NvdXJjZURhdGVUaW1lLFxyXG5cdFx0XHRzb3VyY2VEYXRlVGltZTogbmV3U291cmNlRGF0ZVRpbWUsXHJcblx0XHRcdHN0b3JhZ2VEYXRlVGltZTogbmV3U291cmNlRGF0ZVRpbWUsXHJcblx0XHRcdGNsaWVudEluZ2VzdGlvbkRhdGVUaW1lOiBcIlwiLFxyXG5cdFx0XHRzb3VyY2U6IFVzZXJGYWN0U291cmNlLkxvY2FsXHJcblx0XHR9O1xyXG5cclxuXHRcdHVzZXJGYWN0cy5wdXNoKG5ld0ZhY3QpO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHVzZXJGYWN0cztcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoaXMgbWV0aG9kIG5vcm1hbGl6ZXMgdGhlIGtleXMgb2YgdGhlIHVzZXIgZmFjdCBvYmplY3QgcmV0cmlldmVkIGZyb20gdGhlIFRVTElQUyBzZXJ2aWNlLlxyXG4gKiBTcGVjaWZpY2FsbHkgaXQgY29udmVydHMgdGhlIGZpcnN0IGxldHRlciBvZiBlYWNoIGtleSBpbiB0aGUgb2JqZWN0IHRvIGxvd2VyIGNhc2UuXHJcbiAqIEZvciBleGFtcGxlIHRoZSBrZXkgXCJVc2VyRmFjdFR5cGVcIiByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2aWNlIHdpbGwgYmUgY29udmVydGVkIHRvIFwidXNlckZhY3RUeXBlXCIuXHJcbiAqIEBwYXJhbSB1c2VyRmFjdCB0aGUgdXNlciBmYWN0IG9iamVjdFxyXG4gKi9cclxuZnVuY3Rpb24gbm9ybWFsaXplS2V5cyh1c2VyRmFjdDogSVVzZXJGYWN0KSB7XHJcblx0Y29uc3Qgbm9ybWFsaXplZFVzZXJGYWN0ID0ge30gYXMgSVVzZXJGYWN0O1xyXG5cdGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHVzZXJGYWN0KSkge1xyXG5cdFx0Y29uc3Qgbm9ybWFsaXplZEtleSA9IChrZXkuY2hhckF0KDApLnRvTG93ZXJDYXNlKCkgKyBrZXkuc3Vic3RyaW5nKDEpKSBhcyBrZXlvZiBJVXNlckZhY3Q7XHJcblx0XHRub3JtYWxpemVkVXNlckZhY3Rbbm9ybWFsaXplZEtleV0gPSAodXNlckZhY3QgYXMgYW55KVtrZXldIGFzIChzdHJpbmcgJiBEYXRlKTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBub3JtYWxpemVkVXNlckZhY3Q7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactsClient.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js": /*!*******************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js ***! \*******************************************************************************/ /*! exports provided: getLogger, setLogger */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLogger\", function() { return getLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLogger\", function() { return setLogger; });\nvar globalLogger = {\n error: function (message) {\n var data = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n },\n info: function (message) {\n var data = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n },\n warn: function (message) {\n var data = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n },\n trace: function (message) {\n var data = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n data[_i - 1] = arguments[_i];\n }\n },\n event: function (eventName, customLogData, samplingRatio) {\n if (samplingRatio === void 0) { samplingRatio = 1; }\n },\n userFactEvent: function (eventName, userFactValue) { },\n};\nfunction getLogger() {\n return globalLogger;\n}\nfunction setLogger(logger) {\n if (logger) {\n globalLogger = logger;\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL0xvZ2dpbmcvTG9nZ2VyLnRzP2YwNTUiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0E7QUFBQTtBQUFBO0FBQUEsSUFBSSxZQUFZLEdBQTJCO0lBQzFDLEtBQUssRUFBTCxVQUFNLE9BQWU7UUFBRSxjQUFrQjthQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7WUFBbEIsNkJBQWtCOztJQUFTLENBQUM7SUFDbkQsSUFBSSxFQUFKLFVBQUssT0FBZTtRQUFFLGNBQWtCO2FBQWxCLFVBQWtCLEVBQWxCLHFCQUFrQixFQUFsQixJQUFrQjtZQUFsQiw2QkFBa0I7O0lBQVMsQ0FBQztJQUNsRCxJQUFJLEVBQUosVUFBSyxPQUFlO1FBQUUsY0FBa0I7YUFBbEIsVUFBa0IsRUFBbEIscUJBQWtCLEVBQWxCLElBQWtCO1lBQWxCLDZCQUFrQjs7SUFBUyxDQUFDO0lBQ2xELEtBQUssRUFBTCxVQUFNLE9BQWU7UUFBRSxjQUFrQjthQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7WUFBbEIsNkJBQWtCOztJQUFTLENBQUM7SUFDbkQsS0FBSyxFQUFMLFVBQU0sU0FBaUIsRUFBRSxhQUE4QixFQUFFLGFBQWlCO1FBQWpCLGlEQUFpQjtJQUFTLENBQUM7SUFDcEYsYUFBYSxFQUFiLFVBQWMsU0FBaUIsRUFBRSxhQUFxQixJQUFTLENBQUM7Q0FDaEUsQ0FBQztBQUVLLFNBQVMsU0FBUztJQUN4QixPQUFPLFlBQVksQ0FBQztBQUNyQixDQUFDO0FBRU0sU0FBUyxTQUFTLENBQUMsTUFBOEI7SUFDdkQsSUFBSSxNQUFNLEVBQUU7UUFDWCxZQUFZLEdBQUcsTUFBTSxDQUFDO0tBQ3RCO0FBQ0YsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9Mb2dnaW5nL0xvZ2dlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIExvZ2dpbmcgSW50ZXJmYWNlc1xyXG5leHBvcnQgaW50ZXJmYWNlIElDdXN0b21Mb2dEYXRhIHtcclxuXHRba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25hbGl6YXRpb25Mb2dnZXIge1xyXG5cdGVycm9yKG1lc3NhZ2U6IHN0cmluZywgLi4uZGF0YTogdW5rbm93bltdKTogdm9pZDtcclxuXHRpbmZvKG1lc3NhZ2U6IHN0cmluZywgLi4uZGF0YTogdW5rbm93bltdKTogdm9pZDtcclxuXHR3YXJuKG1lc3NhZ2U6IHN0cmluZywgLi4uZGF0YTogdW5rbm93bltdKTogdm9pZDtcclxuXHR0cmFjZShtZXNzYWdlOiBzdHJpbmcsIC4uLmRhdGE6IHVua25vd25bXSk6IHZvaWQ7XHJcblx0ZXZlbnQoZXZlbnROYW1lOiBzdHJpbmcsIGN1c3RvbUxvZ0RhdGE/OiBJQ3VzdG9tTG9nRGF0YSwgc2FtcGxpbmdSYXRpbz86IG51bWJlcik6IHZvaWQ7XHJcblx0dXNlckZhY3RFdmVudD8odXNlckZhY3Q6IHN0cmluZywgdXNlckZhY3RWYWx1ZTogc3RyaW5nKTogdm9pZDtcclxufVxyXG5cclxubGV0IGdsb2JhbExvZ2dlcjogSVBlcnNvbmFsaXphdGlvbkxvZ2dlciA9IHtcclxuXHRlcnJvcihtZXNzYWdlOiBzdHJpbmcsIC4uLmRhdGE6IHVua25vd25bXSk6IHZvaWQge30sXHJcblx0aW5mbyhtZXNzYWdlOiBzdHJpbmcsIC4uLmRhdGE6IHVua25vd25bXSk6IHZvaWQge30sXHJcblx0d2FybihtZXNzYWdlOiBzdHJpbmcsIC4uLmRhdGE6IHVua25vd25bXSk6IHZvaWQge30sXHJcblx0dHJhY2UobWVzc2FnZTogc3RyaW5nLCAuLi5kYXRhOiB1bmtub3duW10pOiB2b2lkIHt9LFxyXG5cdGV2ZW50KGV2ZW50TmFtZTogc3RyaW5nLCBjdXN0b21Mb2dEYXRhPzogSUN1c3RvbUxvZ0RhdGEsIHNhbXBsaW5nUmF0aW8gPSAxKTogdm9pZCB7fSxcclxuXHR1c2VyRmFjdEV2ZW50KGV2ZW50TmFtZTogc3RyaW5nLCB1c2VyRmFjdFZhbHVlOiBzdHJpbmcpOiB2b2lkIHt9LFxyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldExvZ2dlcigpOiBJUGVyc29uYWxpemF0aW9uTG9nZ2VyIHtcclxuXHRyZXR1cm4gZ2xvYmFsTG9nZ2VyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9nZ2VyKGxvZ2dlcjogSVBlcnNvbmFsaXphdGlvbkxvZ2dlcik6IHZvaWQge1xyXG5cdGlmIChsb2dnZXIpIHtcclxuXHRcdGdsb2JhbExvZ2dlciA9IGxvZ2dlcjtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Polyfills/Fetch.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Polyfills/Fetch.js ***! \********************************************************************************/ /*! no exports provided */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var whatwg_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! whatwg-fetch */ \"./node_modules/whatwg-fetch/fetch.js\");\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1BvbHlmaWxscy9GZXRjaC50cz8zZmQ0Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBc0IiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvUG9seWZpbGxzL0ZldGNoLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwid2hhdHdnLWZldGNoXCI7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Polyfills/Fetch.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/LocalUserFactHelper.js": /*!******************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/LocalUserFactHelper.js ***! \******************************************************************************************************/ /*! exports provided: createUserFact, getLocalUserFact */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createUserFact\", function() { return createUserFact; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getLocalUserFact\", function() { return getLocalUserFact; });\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n/*\n * LocalUserFactHelper.ts\n */\n\n\n\nfunction getBrowserSettings() {\n try {\n // Screen dimensions\n var documentElement = document && (document.documentElement || document.getElementsByTagName(\"body\")[0]);\n var browserSettings = {\n pageWidth: (window === null || window === void 0 ? void 0 : window.innerWidth) || (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientWidth),\n pageHeight: (window === null || window === void 0 ? void 0 : window.innerHeight) || (documentElement === null || documentElement === void 0 ? void 0 : documentElement.clientHeight),\n pageTop: (window === null || window === void 0 ? void 0 : window.pageYOffset) || (documentElement === null || documentElement === void 0 ? void 0 : documentElement.scrollTop),\n pageLeft: (window === null || window === void 0 ? void 0 : window.pageXOffset) || (documentElement === null || documentElement === void 0 ? void 0 : documentElement.scrollLeft),\n screenWidth: screen ? screen.width : 0,\n screenHeight: screen ? screen.height : 0,\n colorDepth: screen ? screen.colorDepth : 0,\n userAgent: navigator === null || navigator === void 0 ? void 0 : navigator.userAgent,\n };\n return browserSettings;\n }\n catch (error) {\n // ignore\n return null;\n }\n}\n// Currently used for AADC but can be extended to any other settings\nfunction getCustomSettings(userConsentGroup, feedbackEnabledByAADC) {\n // Custom settings\n var customSettings = {\n // AADC related values\n userConsentGroup: userConsentGroup,\n feedbackEnabledByAADC: feedbackEnabledByAADC,\n };\n return customSettings;\n}\n// input userFactName is expected to be of form window__obj1___obj2\nfunction getBrowserLocalFact(userFactName) {\n var factNameValues = userFactName && userFactName.split(\"__\");\n if (!factNameValues || factNameValues.length <= 1) {\n return null;\n }\n var userFact = null;\n var objectName = factNameValues[0];\n var propertyName = factNameValues.pop();\n // common top level objects eg: window__status\n if (propertyName && factNameValues.length === 1) {\n userFact = createUserFact(window[objectName] || window, propertyName);\n }\n // handle names like window__navigator__userAgent__length\n if (!userFact && propertyName && factNameValues.length > 1) {\n if (objectName === \"window\") {\n // remove the window object.. it will be used as first/default\n factNameValues.shift();\n }\n // try getting target as object path eg: window['navigator']['userAgent']\n var globalObject = factNameValues.reduce(function (prev, curr) { return prev && prev[curr]; }, window);\n if (globalObject) {\n // get the fact value eg: 'length'\n userFact = createUserFact(globalObject, propertyName);\n }\n }\n if (userFact) {\n userFact.userFactName = userFactName;\n }\n return userFact;\n}\n// For consistency, fact names should match %SRCROOT%\\personalization\\common\\LocalUserFactsDataProvider.cpp\nfunction createUserFact(targetObject, factName) {\n if (!targetObject) {\n return null;\n }\n // get fact value\n var factValue = targetObject[factName];\n if (!factValue) {\n // try looking up with case insensitive key\n var loweCaseFactName_1 = factName.toLowerCase();\n var caseInsensitiveKey = Object.keys(targetObject).find(function (key) { return key.toLowerCase() === loweCaseFactName_1; });\n factValue = targetObject[caseInsensitiveKey];\n }\n if (_Utils_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isNOU\"](factValue)) {\n return null;\n }\n // ignore object and function type values\n if (!_Utils_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isArray\"](factValue) && (_Utils_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isObject\"](factValue) || _Utils_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isFunction\"](factValue))) {\n return null;\n }\n // Handle serialized values\n var currentDateTime = new Date().toISOString();\n return {\n userFactType: \"Local\",\n userFactName: factName,\n userFactValue: factValue.toString(),\n sourceDateTime: currentDateTime,\n storageDateTime: currentDateTime,\n clientIngestionDateTime: currentDateTime,\n };\n}\nvar localFactTargetObjects;\nfunction getLocalUserFact(userFactName, commonInitOptions, configuration) {\n try {\n if (!localFactTargetObjects) {\n localFactTargetObjects = [\n commonInitOptions,\n commonInitOptions === null || commonInitOptions === void 0 ? void 0 : commonInitOptions.applicationSettings,\n commonInitOptions === null || commonInitOptions === void 0 ? void 0 : commonInitOptions.telemetryGroup,\n commonInitOptions === null || commonInitOptions === void 0 ? void 0 : commonInitOptions.applicationGroup,\n commonInitOptions === null || commonInitOptions === void 0 ? void 0 : commonInitOptions.webGroup,\n configuration.getFloodgateInitOptions(),\n configuration,\n getBrowserSettings(),\n getCustomSettings(configuration.getUserConsentGroup(), configuration.isFeedbackSurveyEnabledByAADC()),\n ];\n }\n // lookup in target objects and create fact\n var userFact = localFactTargetObjects.reduce(function (generatedFact, targetObject) { return generatedFact || createUserFact(targetObject, userFactName); }, null);\n // lookup global browser objects for names like navigator__userAgent or location__href\n if (!userFact) {\n userFact = getBrowserLocalFact(userFactName);\n }\n return userFact;\n }\n catch (error) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_0__[\"getLogger\"]().event(\"UserFacts_LocalFact_Error\" /* UserFactsLocalFactError */, {\n ErrorMessage: \"Error getting local fact - \" + userFactName + \" \" + Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_1__[\"getErrorMessage\"])(error) + \" \",\n });\n return null;\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1RhcmdldGVkTWVzc2FnaW5nL0xvY2FsVXNlckZhY3RIZWxwZXIudHM/ZDkwMiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0dBRUc7QUFJMEM7QUFDTDtBQUNTO0FBRWpELFNBQVMsa0JBQWtCO0lBQzFCLElBQUk7UUFDSCxvQkFBb0I7UUFDcEIsSUFBTSxlQUFlLEdBQUcsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxRQUFRLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRyxJQUFNLGVBQWUsR0FBRztZQUN2QixTQUFTLEVBQUUsT0FBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFVBQVUsTUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsV0FBVztZQUM3RCxVQUFVLEVBQUUsT0FBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsTUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsWUFBWTtZQUNoRSxPQUFPLEVBQUUsT0FBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsTUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsU0FBUztZQUMxRCxRQUFRLEVBQUUsT0FBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLFdBQVcsTUFBSSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsVUFBVTtZQUM1RCxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxD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UUFBUSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FDM0MsVUFBQyxhQUFhLEVBQUUsWUFBWSxJQUFLLG9CQUFhLElBQUksY0FBYyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsRUFBM0QsQ0FBMkQsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVyRyxzRkFBc0Y7UUFDdEYsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNkLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM3QztRQUVELE9BQU8sUUFBUSxDQUFDO0tBQ2hCO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZix5REFBaUIsRUFBRSxDQUFDLEtBQUssNERBRXhCO1lBQ0MsWUFBWSxFQUFFLGdDQUE4QixZQUFZLFNBQUksb0VBQWUsQ0FBQyxLQUFLLENBQUMsTUFBRztTQUNyRixDQUFDLENBQUM7UUFFSixPQUFPLElBQUksQ0FBQztLQUNaO0FBQ0YsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9UYXJnZXRlZE1lc3NhZ2luZy9Mb2NhbFVzZXJGYWN0SGVscGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogTG9jYWxVc2VyRmFjdEhlbHBlci50c1xyXG4gKi9cclxuXHJcbmltcG9ydCB7IElVc2VyRmFjdCB9IGZyb20gXCIuLi9Db21tb24vTW9kZWxzXCI7XHJcbmltcG9ydCB7IEV2ZW50SWRzIH0gZnJvbSBcIi4uL0xvZ2dpbmcvQ29uc3RhbnRzXCI7XHJcbmltcG9ydCAqIGFzIExvZ2dpbmcgZnJvbSBcIi4uL0xvZ2dpbmcvTG9nZ2VyXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuLi9VdGlscy9VdGlsc1wiO1xyXG5pbXBvcnQgeyBnZXRFcnJvck1lc3NhZ2UgfSBmcm9tIFwiLi4vVXRpbHMvVXRpbHNcIjtcclxuXHJcbmZ1bmN0aW9uIGdldEJyb3dzZXJTZXR0aW5ncygpIHtcclxuXHR0cnkge1xyXG5cdFx0Ly8gU2NyZWVuIGRpbWVuc2lvbnNcclxuXHRcdGNvbnN0IGRvY3VtZW50RWxlbWVudCA9IGRvY3VtZW50ICYmIChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJib2R5XCIpWzBdKTtcclxuXHRcdGNvbnN0IGJyb3dzZXJTZXR0aW5ncyA9IHtcclxuXHRcdFx0cGFnZVdpZHRoOiB3aW5kb3c/LmlubmVyV2lkdGggfHwgZG9jdW1lbnRFbGVtZW50Py5jbGllbnRXaWR0aCxcclxuXHRcdFx0cGFnZUhlaWdodDogd2luZG93Py5pbm5lckhlaWdodCB8fCBkb2N1bWVudEVsZW1lbnQ/LmNsaWVudEhlaWdodCxcclxuXHRcdFx0cGFnZVRvcDogd2luZG93Py5wYWdlWU9mZnNldCB8fCBkb2N1bWVudEVsZW1lbnQ/LnNjcm9sbFRvcCxcclxuXHRcdFx0cGFnZUxlZnQ6IHdpbmRvdz8ucGFnZVhPZmZzZXQgfHwgZG9jdW1lbnRFbGVtZW50Py5zY3JvbGxMZWZ0LFxyXG5cdFx0XHRzY3JlZW5XaWR0aDogc2NyZWVuID8gc2NyZWVuLndpZHRoIDogMCxcclxuXHRcdFx0c2NyZWVuSGVpZ2h0OiBzY3JlZW4gPyBzY3JlZW4uaGVpZ2h0IDogMCxcclxuXHRcdFx0Y29sb3JEZXB0aDogc2NyZWVuID8gc2NyZWVuLmNvbG9yRGVwdGggOiAwLFxyXG5cdFx0XHR1c2VyQWdlbnQ6IG5hdmlnYXRvcj8udXNlckFnZW50LFxyXG5cdFx0fTtcclxuXHJcblx0XHRyZXR1cm4gYnJvd3NlclNldHRpbmdzO1xyXG5cdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHQvLyBpZ25vcmVcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxufVxyXG5cclxuLy8gQ3VycmVudGx5IHVzZWQgZm9yIEFBREMgYnV0IGNhbiBiZSBleHRlbmRlZCB0byBhbnkgb3RoZXIgc2V0dGluZ3NcclxuZnVuY3Rpb24gZ2V0Q3VzdG9tU2V0dGluZ3ModXNlckNvbnNlbnRHcm91cDogbnVtYmVyLCBmZWVkYmFja0VuYWJsZWRCeUFBREM6IGJvb2xlYW4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ICB7XHJcblx0Ly8gQ3VzdG9tIHNldHRpbmdzXHJcblx0Y29uc3QgY3VzdG9tU2V0dGluZ3MgPSB7XHJcblx0XHQvLyBBQURDIHJlbGF0ZWQgdmFsdWVzXHJcblx0XHR1c2VyQ29uc2VudEdyb3VwLFxyXG5cdFx0ZmVlZGJhY2tFbmFibGVkQnlBQURDLFxyXG5cclxuXHRcdC8vIE90aGVyIHZhbHVlc1xyXG5cdH07XHJcblxyXG5cdHJldHVybiBjdXN0b21TZXR0aW5ncztcclxufVxyXG5cclxuLy8gaW5wdXQgdXNlckZhY3ROYW1lIGlzIGV4cGVjdGVkIHRvIGJlIG9mIGZvcm0gd2luZG93X19vYmoxX19fb2JqMlxyXG5mdW5jdGlvbiBnZXRCcm93c2VyTG9jYWxGYWN0KHVzZXJGYWN0TmFtZTogc3RyaW5nKTogSVVzZXJGYWN0IHtcclxuXHRjb25zdCBmYWN0TmFtZVZhbHVlcyA9IHVzZXJGYWN0TmFtZSAmJiB1c2VyRmFjdE5hbWUuc3BsaXQoXCJfX1wiKTtcclxuXHRpZiAoIWZhY3ROYW1lVmFsdWVzIHx8IGZhY3ROYW1lVmFsdWVzLmxlbmd0aCA8PSAxKSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdGxldCB1c2VyRmFjdDogSVVzZXJGYWN0ID0gbnVsbDtcclxuXHRjb25zdCBvYmplY3ROYW1lID0gZmFjdE5hbWVWYWx1ZXNbMF07XHJcblx0Y29uc3QgcHJvcGVydHlOYW1lID0gZmFjdE5hbWVWYWx1ZXMucG9wKCk7XHJcblxyXG5cdC8vIGNvbW1vbiB0b3AgbGV2ZWwgb2JqZWN0cyBlZzogd2luZG93X19zdGF0dXNcclxuXHRpZiAocHJvcGVydHlOYW1lICYmIGZhY3ROYW1lVmFsdWVzLmxlbmd0aCA9PT0gMSkge1xyXG5cdFx0dXNlckZhY3QgPSBjcmVhdGVVc2VyRmFjdCh3aW5kb3dbb2JqZWN0TmFtZSBhcyBhbnldIHx8IHdpbmRvdywgcHJvcGVydHlOYW1lKTtcclxuXHR9XHJcblxyXG5cdC8vIGhhbmRsZSBuYW1lcyBsaWtlIHdpbmRvd19fbmF2aWdhdG9yX191c2VyQWdlbnRfX2xlbmd0aFxyXG5cdGlmICghdXNlckZhY3QgJiYgcHJvcGVydHlOYW1lICYmIGZhY3ROYW1lVmFsdWVzLmxlbmd0aCA+IDEpIHtcclxuXHRcdGlmIChvYmplY3ROYW1lID09PSBcIndpbmRvd1wiKSB7XHJcblx0XHRcdC8vIHJlbW92ZSB0aGUgd2luZG93IG9iamVjdC4uIGl0IHdpbGwgYmUgdXNlZCBhcyBmaXJzdC9kZWZhdWx0XHJcblx0XHRcdGZhY3ROYW1lVmFsdWVzLnNoaWZ0KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gdHJ5IGdldHRpbmcgdGFyZ2V0IGFzIG9iamVjdCBwYXRoIGVnOiB3aW5kb3dbJ25hdmlnYXRvciddWyd1c2VyQWdlbnQnXVxyXG5cdFx0Y29uc3QgZ2xvYmFsT2JqZWN0ID0gZmFjdE5hbWVWYWx1ZXMucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICYmIHByZXZbY3VyciBhcyBhbnldLCB3aW5kb3cpO1xyXG5cdFx0aWYgKGdsb2JhbE9iamVjdCkge1xyXG5cdFx0XHQvLyBnZXQgdGhlIGZhY3QgdmFsdWUgZWc6ICdsZW5ndGgnXHJcblx0XHRcdHVzZXJGYWN0ID0gY3JlYXRlVXNlckZhY3QoZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0aWYgKHVzZXJGYWN0KSB7XHJcblx0XHR1c2VyRmFjdC51c2VyRmFjdE5hbWUgPSB1c2VyRmFjdE5hbWU7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdXNlckZhY3Q7XHJcbn1cclxuXHJcbi8vIEZvciBjb25zaXN0ZW5jeSwgZmFjdCBuYW1lcyBzaG91bGQgbWF0Y2ggJVNSQ1JPT1QlXFxwZXJzb25hbGl6YXRpb25cXGNvbW1vblxcTG9jYWxVc2VyRmFjdHNEYXRhUHJvdmlkZXIuY3BwXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVVc2VyRmFjdCh0YXJnZXRPYmplY3Q6IFJlY29yZDxzdHJpbmcsIGFueT4sIGZhY3ROYW1lOiBzdHJpbmcpOiBJVXNlckZhY3Qge1xyXG5cdGlmICghdGFyZ2V0T2JqZWN0KSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8vIGdldCBmYWN0IHZhbHVlXHJcblx0bGV0IGZhY3RWYWx1ZSA9IHRhcmdldE9iamVjdFtmYWN0TmFtZV07XHJcblx0aWYgKCFmYWN0VmFsdWUpIHtcclxuXHRcdC8vIHRyeSBsb29raW5nIHVwIHdpdGggY2FzZSBpbnNlbnNpdGl2ZSBrZXlcclxuXHRcdGNvbnN0IGxvd2VDYXNlRmFjdE5hbWUgPSBmYWN0TmFtZS50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0Y29uc3QgY2FzZUluc2Vuc2l0aXZlS2V5ID0gT2JqZWN0LmtleXModGFyZ2V0T2JqZWN0KS5maW5kKChrZXkpID0+IGtleS50b0xvd2VyQ2FzZSgpID09PSBsb3dlQ2FzZUZhY3ROYW1lKTtcclxuXHRcdGZhY3RWYWx1ZSA9IHRhcmdldE9iamVjdFtjYXNlSW5zZW5zaXRpdmVLZXldO1xyXG5cdH1cclxuXHJcblx0aWYgKFV0aWxzLmlzTk9VKGZhY3RWYWx1ZSkpIHtcclxuXHRcdHJldHVybiBudWxsO1xyXG5cdH1cclxuXHJcblx0Ly8gaWdub3JlIG9iamVjdCBhbmQgZnVuY3Rpb24gdHlwZSB2YWx1ZXNcclxuXHRpZiAoIVV0aWxzLmlzQXJyYXkoZmFjdFZhbHVlKSAmJiAoVXRpbHMuaXNPYmplY3QoZmFjdFZhbHVlKSB8fCBVdGlscy5pc0Z1bmN0aW9uKGZhY3RWYWx1ZSkpKSB7XHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcblxyXG5cdC8vIEhhbmRsZSBzZXJpYWxpemVkIHZhbHVlc1xyXG5cdGNvbnN0IGN1cnJlbnREYXRlVGltZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcclxuXHRyZXR1cm4ge1xyXG5cdFx0dXNlckZhY3RUeXBlOiBcIkxvY2FsXCIsXHJcblx0XHR1c2VyRmFjdE5hbWU6IGZhY3ROYW1lLFxyXG5cdFx0dXNlckZhY3RWYWx1ZTogZmFjdFZhbHVlLnRvU3RyaW5nKCksXHJcblx0XHRzb3VyY2VEYXRlVGltZTogY3VycmVudERhdGVUaW1lLFxyXG5cdFx0c3RvcmFnZURhdGVUaW1lOiBjdXJyZW50RGF0ZVRpbWUsXHJcblx0XHRjbGllbnRJbmdlc3Rpb25EYXRlVGltZTogY3VycmVudERhdGVUaW1lLFxyXG5cdH07XHJcbn1cclxuXHJcbmxldCBsb2NhbEZhY3RUYXJnZXRPYmplY3RzOiBBcnJheTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcclxuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsVXNlckZhY3Q8VD4odXNlckZhY3ROYW1lOiBzdHJpbmcsIGNvbW1vbkluaXRPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBjb25maWd1cmF0aW9uOiBhbnkpOiBJVXNlckZhY3Qge1xyXG5cdHRyeSB7XHJcblx0XHRpZiAoIWxvY2FsRmFjdFRhcmdldE9iamVjdHMpIHtcclxuXHRcdFx0bG9jYWxGYWN0VGFyZ2V0T2JqZWN0cyA9IFtcclxuXHRcdFx0XHRjb21tb25Jbml0T3B0aW9ucyxcclxuXHRcdFx0XHRjb21tb25Jbml0T3B0aW9ucz8uYXBwbGljYXRpb25TZXR0aW5ncyxcclxuXHRcdFx0XHRjb21tb25Jbml0T3B0aW9ucz8udGVsZW1ldHJ5R3JvdXAsXHJcblx0XHRcdFx0Y29tbW9uSW5pdE9wdGlvbnM/LmFwcGxpY2F0aW9uR3JvdXAsXHJcblx0XHRcdFx0Y29tbW9uSW5pdE9wdGlvbnM/LndlYkdyb3VwLFxyXG5cdFx0XHRcdGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKSxcclxuXHRcdFx0XHRjb25maWd1cmF0aW9uLFxyXG5cdFx0XHRcdGdldEJyb3dzZXJTZXR0aW5ncygpLFxyXG5cdFx0XHRcdGdldEN1c3RvbVNldHRpbmdzKGNvbmZpZ3VyYXRpb24uZ2V0VXNlckNvbnNlbnRHcm91cCgpLFxyXG5cdFx0XHRcdGNvbmZpZ3VyYXRpb24uaXNGZWVkYmFja1N1cnZleUVuYWJsZWRCeUFBREMoKSksXHJcblx0XHRcdF07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gbG9va3VwIGluIHRhcmdldCBvYmplY3RzIGFuZCBjcmVhdGUgZmFjdFxyXG5cdFx0bGV0IHVzZXJGYWN0ID0gbG9jYWxGYWN0VGFyZ2V0T2JqZWN0cy5yZWR1Y2U8SVVzZXJGYWN0PihcclxuXHRcdFx0KGdlbmVyYXRlZEZhY3QsIHRhcmdldE9iamVjdCkgPT4gZ2VuZXJhdGVkRmFjdCB8fCBjcmVhdGVVc2VyRmFjdCh0YXJnZXRPYmplY3QsIHVzZXJGYWN0TmFtZSksIG51bGwpO1xyXG5cclxuXHRcdC8vIGxvb2t1cCBnbG9iYWwgYnJvd3NlciBvYmplY3RzIGZvciBuYW1lcyBsaWtlIG5hdmlnYXRvcl9fdXNlckFnZW50IG9yIGxvY2F0aW9uX19ocmVmXHJcblx0XHRpZiAoIXVzZXJGYWN0KSB7XHJcblx0XHRcdHVzZXJGYWN0ID0gZ2V0QnJvd3NlckxvY2FsRmFjdCh1c2VyRmFjdE5hbWUpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB1c2VyRmFjdDtcclxuXHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0RXZlbnRJZHMuVXNlckZhY3RzTG9jYWxGYWN0RXJyb3IsXHJcblx0XHRcdHtcclxuXHRcdFx0XHRFcnJvck1lc3NhZ2U6IGBFcnJvciBnZXR0aW5nIGxvY2FsIGZhY3QgLSAke3VzZXJGYWN0TmFtZX0gJHtnZXRFcnJvck1lc3NhZ2UoZXJyb3IpfSBgLFxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRyZXR1cm4gbnVsbDtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/LocalUserFactHelper.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingClient.js": /*!**********************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingClient.js ***! \**********************************************************************************************************/ /*! exports provided: getDebugCampaignDefinitions, getDebugUserFacts, TargetedMessagingClient */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugCampaignDefinitions\", function() { return getDebugCampaignDefinitions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getDebugUserFacts\", function() { return getDebugUserFacts; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TargetedMessagingClient\", function() { return TargetedMessagingClient; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Common/ContentType */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentType.js\");\n/* harmony import */ var _Facts_UserFactsClient__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Facts/UserFactsClient */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFactsClient.js\");\n/* harmony import */ var _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Utils/Caching */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js\");\n/* harmony import */ var _Utils_Storage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../Utils/Storage */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js\");\n/* harmony import */ var _Utils_Transport__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils/Transport */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Transport.js\");\n/* harmony import */ var _Utils_UrlUtils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Utils/UrlUtils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/UrlUtils.js\");\n/* harmony import */ var _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Logging/Logger */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Logging/Logger.js\");\n/* harmony import */ var _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./TargetedMessagingConstants */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingConstants.js\");\n/* harmony import */ var _Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../Configuration/DynamicConfiguration */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Configuration/DynamicConfiguration.js\");\n/* harmony import */ var _Common_ContentResponse__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../Common/ContentResponse */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/ContentResponse.js\");\n/* harmony import */ var _Facts_UserFacts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../Facts/UserFacts */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Facts/UserFacts.js\");\n/* harmony import */ var _Common_Settings__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../Common/Settings */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Common/Settings.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nfunction getDebugCampaignDefinitions() {\n var debugOverrides = _Utils_Storage__WEBPACK_IMPORTED_MODULE_4__[\"readObjectFromStorage\"](\"obf-DebugOverrides\", {});\n return debugOverrides && debugOverrides.tmsResponse && debugOverrides.tmsResponse.CampaignContent && {\n contentType: \"CampaignContent\" /* campaignContent */,\n content: debugOverrides.tmsResponse.CampaignContent,\n };\n}\nfunction getDebugUserFacts() {\n var debugOverrides = _Utils_Storage__WEBPACK_IMPORTED_MODULE_4__[\"readObjectFromStorage\"](\"obf-DebugOverrides\", {});\n return debugOverrides && debugOverrides.userFactsResponse && {\n contentType: \"UserFacts\" /* userFacts */,\n content: debugOverrides.userFactsResponse,\n };\n}\nvar TargetedMessagingClient = /** @class */ (function () {\n function TargetedMessagingClient(app, platform, version, locale, country, sessionId, authTokenCallback, campaignFlights, campaignParameters, ageGroup, authType, audience, messagingServiceSettings, packageVersion) {\n var _a, _b, _c, _d;\n this.locale = \"en-us\";\n this.country = \"US\";\n this.locale = locale;\n this.country = country;\n this.authTokenCallback = authTokenCallback;\n this.app = app;\n this.platform = platform;\n this.version = version;\n this.packageVersion = packageVersion;\n this.sessionId = sessionId;\n this.campaignFlights = campaignFlights;\n this.campaignParameters = campaignParameters;\n this.ageGroup = ageGroup;\n this.authType = authType;\n this.messagingServiceSettings = messagingServiceSettings;\n var internalEnvs = [\"dogfood\", \"edog\", \"int\", \"microsoft\"];\n var isInternalEnv = audience && internalEnvs.indexOf(audience.toLowerCase()) !== -1;\n var campaignMetadataAggregatorConfig = isInternalEnv ? (_a = this.messagingServiceSettings) === null || _a === void 0 ? void 0 : _a.campaignMetadataAggregatorInt : (_b = this.messagingServiceSettings) === null || _b === void 0 ? void 0 : _b.campaignMetadataAggregatorProd;\n var setCampaignActionConfig = isInternalEnv ? (_c = this.messagingServiceSettings) === null || _c === void 0 ? void 0 : _c.setCampaignActionInt : (_d = this.messagingServiceSettings) === null || _d === void 0 ? void 0 : _d.setCampaignActionProd;\n var cmaDefaultBaseUrlPrefix = isInternalEnv ? _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_EDOG\"]\n : _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_PROD\"];\n var scaDefaultBaseUrlPrefix = isInternalEnv ? _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_SETCAMPAIGNACTION_PREFIX_EDOG\"]\n : _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_SETCAMPAIGNACTION_PREFIX_PROD\"];\n this.campaignMetadataAggregatorPrefix = campaignMetadataAggregatorConfig || cmaDefaultBaseUrlPrefix;\n this.setCampaignActionPrefix = setCampaignActionConfig || scaDefaultBaseUrlPrefix;\n // bind getAuthToken function to avoid losing context after passing the function as param\n this.getAuthToken = this.getAuthToken.bind(this);\n }\n TargetedMessagingClient.prototype.getContent = function (requestedContent) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var response;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!_Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"isCachedTypeExpired\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][requestedContent])) return [3 /*break*/, 2];\n return [4 /*yield*/, this.refreshItemsInCacheFromTmsService([requestedContent])];\n case 1:\n _a.sent();\n _a.label = 2;\n case 2:\n response = this.retrieveCacheItemAndCreateContentResponse(requestedContent);\n return [2 /*return*/, response];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.getMultipleContents = function (requestedContent) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var contentResponses, bulkRefreshList, _i, requestedContent_1, contentType, responseItem;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.refreshItemsInCacheFromTmsService(requestedContent)];\n case 1:\n _a.sent();\n contentResponses = new Array();\n bulkRefreshList = new Array();\n for (_i = 0, requestedContent_1 = requestedContent; _i < requestedContent_1.length; _i++) {\n contentType = requestedContent_1[_i];\n responseItem = this.createCachedContentResponse(contentType);\n contentResponses.push(responseItem);\n }\n this.refreshItemsInCacheFromTmsService(bulkRefreshList);\n return [2 /*return*/, contentResponses];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.getUserFactsContent = function (requestedContent) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var response;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.refreshItemsInCacheFromSubstrateTulipsService(requestedContent)];\n case 1:\n _a.sent();\n response = this.retrieveCacheItemAndCreateContentResponse(requestedContent);\n return [2 /*return*/, response];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.sendBeaconRequestToService = function (app, beaconParameters, platform, version, locale, country, sessionId, authTokenCallback) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var authTokenConfig, authToken, puid, _a, requestStartTime, tmsQueryParams, requestBody, header, response, error_1;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_b) {\n switch (_b.label) {\n case 0:\n this.sessionId = sessionId;\n this.authTokenCallback = authTokenCallback;\n authTokenConfig = {\n scenario: 'TMS',\n appId: Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TulipsAppId\" /* tulipsAppId */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"GUIDs\"].TMSAppID)\n };\n return [4 /*yield*/, this.getAuthToken(authTokenConfig)];\n case 1:\n authToken = _b.sent();\n if (!!authToken) return [3 /*break*/, 4];\n _a = this.authTokenCallback.getUserPuid;\n if (!_a) return [3 /*break*/, 3];\n return [4 /*yield*/, this.authTokenCallback.getUserPuid()];\n case 2:\n _a = (_b.sent());\n _b.label = 3;\n case 3:\n puid = _a;\n _b.label = 4;\n case 4:\n requestStartTime = +new Date();\n _b.label = 5;\n case 5:\n _b.trys.push([5, 7, , 8]);\n tmsQueryParams = {\n app: app,\n country: country,\n locale: locale,\n platform: platform,\n puid: puid,\n version: version,\n };\n requestBody = JSON.stringify({\n actionName: beaconParameters.actionName,\n actionUrl: beaconParameters.actionUrl,\n });\n header = {\n \"Content-Type\": \"applicationhttps://www.microsoft.com/json;charset=utf-8\",\n };\n return [4 /*yield*/, this.sendRequest(tmsQueryParams, authToken, \"TmsActionUrl\" /* tmsActionUrl */, this.setCampaignActionPrefix + _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_SETCAMPAIGNACTION_ENDPOINT\"] + \"?\", header, requestBody, \"POST\")];\n case 6:\n response = _b.sent();\n if (!response || response.status !== 200) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"WebSurfaces_SetCampaignAction_Error\" /* SetCampaignActionError */, this.createTelemetryData(requestStartTime, response, \"Beacon\" + beaconParameters.actionName));\n return [2 /*return*/, false];\n }\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().info(\"WebSurfaces_SetCampaignAction_Requests\" /* SetCampaignActionRequests */, this.createTelemetryData(requestStartTime, response, \"Beacon\" + beaconParameters.actionName), .01);\n return [2 /*return*/, true];\n case 7:\n error_1 = _b.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"WebSurfaces_SetCampaignAction_Error\" /* SetCampaignActionError */, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ ErrorMessage: \"Error fetching from TMS SetCampaignAction endpoint:\" + Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_13__[\"getErrorMessage\"])(error_1) }, this.createTelemetryData(requestStartTime, null, \"Beacon\" + beaconParameters.actionName)));\n return [2 /*return*/, false];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.getTulipsServiceUserFactsContent = function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n return [2 /*return*/, Object(_Facts_UserFacts__WEBPACK_IMPORTED_MODULE_11__[\"getUserFactList\"])(null, this.getAuthToken)];\n });\n });\n };\n TargetedMessagingClient.prototype.parseCampaignIdFromResponse = function (response) {\n var campaignIds = response === null || response === void 0 ? void 0 : response.map(function (campaign) { return campaign.CampaignId; });\n return campaignIds === null || campaignIds === void 0 ? void 0 : campaignIds.toString();\n };\n TargetedMessagingClient.prototype.createTelemetryData = function (requestStartTimestamp, response, type, campaignIds) {\n var _a = response || {}, headers = _a.headers, status = _a.status, statusText = _a.statusText;\n var serverSessionId = headers && headers.get(\"X-UserSessionId\");\n var serverCorrelationId = headers && headers.get(\"X-CorrelationId\");\n return {\n Type: type,\n TimeMilliseconds: +new Date() - requestStartTimestamp,\n SessionId: serverSessionId || this.sessionId,\n CorrelationId: serverCorrelationId || undefined,\n HttpStatusCode: status || undefined,\n HttpStatusText: statusText || undefined,\n Flights: this.campaignFlights,\n CampaignId: campaignIds || undefined,\n };\n };\n TargetedMessagingClient.prototype.sendRequest = function (tmsgQueryParams, authToken, key, defaultBaseUrl, requestHeaders, requestBody, verb) {\n var queryParamStr = Object(_Utils_UrlUtils__WEBPACK_IMPORTED_MODULE_6__[\"buildQueryParameters\"])(tmsgQueryParams);\n var tmsgBaseUrl = Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(key, defaultBaseUrl);\n var requestPromise = verb === \"POST\" ?\n _Utils_Transport__WEBPACK_IMPORTED_MODULE_5__[\"sendPostRequest\"](tmsgBaseUrl + queryParamStr, requestBody, authToken, requestHeaders, this.sessionId) :\n _Utils_Transport__WEBPACK_IMPORTED_MODULE_5__[\"sendGetRequest\"](tmsgBaseUrl + queryParamStr, authToken, this.sessionId);\n return requestPromise;\n };\n TargetedMessagingClient.prototype.retrieveCacheItemAndCreateContentResponse = function (contentType) {\n var _a;\n var responseItem = this.createCachedContentResponse(contentType);\n if (_Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"isCachedTypeExpired\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][contentType])) {\n if (contentType === \"UserFacts\" /* userFacts */) {\n this.refreshItemsInCacheFromSubstrateTulipsService(contentType);\n }\n else {\n this.refreshItemsInCacheFromTmsService([contentType]);\n }\n }\n else { // cache is not expired\n if (contentType === \"CampaignContent\" /* campaignContent */) {\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"Campaign_Retrieved_Cache\" /* CampaignRetrievedCache */, { campaignIds: this.parseCampaignIdFromResponse((_a = responseItem === null || responseItem === void 0 ? void 0 : responseItem.content) === null || _a === void 0 ? void 0 : _a.campaigns) }, Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_12__[\"getSamplingRate\"])());\n }\n }\n return responseItem;\n };\n TargetedMessagingClient.prototype.createCachedContentResponse = function (requestedContent) {\n var contentResponse = new _Common_ContentResponse__WEBPACK_IMPORTED_MODULE_10__[\"ContentResponse\"]();\n contentResponse.content = _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"getCachedContent\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][requestedContent]);\n contentResponse.contentType = requestedContent;\n return contentResponse;\n };\n TargetedMessagingClient.prototype.getAuthToken = function (authTokenConfig) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var startTime, getDuration, samplingRate, createAuthTelemetryLogData, retVal, error_2;\n var _this = this;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.authTokenCallback || !this.authTokenCallback.getAuthToken || !authTokenConfig) {\n return [2 /*return*/, null];\n }\n startTime = +new Date();\n getDuration = function () { return +new Date() - startTime; };\n samplingRate = Object(_Common_Settings__WEBPACK_IMPORTED_MODULE_12__[\"getSamplingRate\"])();\n createAuthTelemetryLogData = function (message, tokenLength) {\n if (tokenLength === void 0) { tokenLength = -1; }\n return {\n Message: message,\n SamplingRate: samplingRate,\n Scenario: authTokenConfig.scenario,\n SessionId: _this.sessionId,\n TimeMilliseconds: getDuration(),\n TokenLegth: tokenLength,\n Type: authTokenConfig.appId,\n };\n };\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.authTokenCallback.getAuthToken(authTokenConfig)];\n case 2:\n retVal = _a.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"EngagementAuth_Request_Successful\" /* EngagementAuthSuccessful */, createAuthTelemetryLogData(\"getAuthToken Successful\", retVal === null || retVal === void 0 ? void 0 : retVal.length), samplingRate);\n return [2 /*return*/, retVal];\n case 3:\n error_2 = _a.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"EngagementAuth_Request_Error\" /* EngagementAuthError */, createAuthTelemetryLogData(\"Error getting token:\" + Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_13__[\"getErrorMessage\"])(error_2)));\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/, null];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.refreshItemsInCacheFromTmsService = function (contentTypes) {\n var _a;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var bulkRefreshList, _i, contentTypes_1, contentType, authTokenConfig, authToken, userPuid, _b, requestStartTime, documentElement, browserParams, debugOverrides, tmsQueryParams, response, tmsServiceResponse, error_3;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\n switch (_c.label) {\n case 0:\n if (contentTypes.length === 0) {\n return [2 /*return*/];\n }\n bulkRefreshList = new Array();\n for (_i = 0, contentTypes_1 = contentTypes; _i < contentTypes_1.length; _i++) {\n contentType = contentTypes_1[_i];\n if (_Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"isCachedTypeExpired\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][contentType])) {\n bulkRefreshList.push(contentType);\n }\n }\n if (bulkRefreshList.length === 0) {\n // exit out if all items in cache are still valid to avoid unnecessary service roundtrips\n return [2 /*return*/];\n }\n // always request for dynamic settings\n if (contentTypes.indexOf(\"DynamicSettings\" /* dynamicSettings */) === -1) {\n contentTypes.push(\"DynamicSettings\" /* dynamicSettings */);\n }\n authTokenConfig = {\n scenario: 'TMS',\n appId: Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TulipsAppId\" /* tulipsAppId */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"GUIDs\"].TMSAppID)\n };\n return [4 /*yield*/, this.getAuthToken(authTokenConfig)];\n case 1:\n authToken = _c.sent();\n if (!!authToken) return [3 /*break*/, 4];\n _b = this.authTokenCallback.getUserPuid;\n if (!_b) return [3 /*break*/, 3];\n return [4 /*yield*/, this.authTokenCallback.getUserPuid()];\n case 2:\n _b = (_c.sent());\n _c.label = 3;\n case 3:\n userPuid = _b;\n _c.label = 4;\n case 4:\n requestStartTime = +new Date();\n _c.label = 5;\n case 5:\n _c.trys.push([5, 10, , 11]);\n documentElement = document && (document.documentElement || document.getElementsByTagName(\"body\")[0]);\n browserParams = {\n pageWidth: window.innerWidth || documentElement.clientWidth,\n pageHeight: window.innerHeight || documentElement.clientHeight,\n screenWidth: screen ? screen.width : undefined,\n screenHeight: screen ? screen.height : undefined,\n colorDepth: screen ? screen.colorDepth : undefined,\n };\n debugOverrides = _Utils_Storage__WEBPACK_IMPORTED_MODULE_4__[\"readObjectFromStorage\"](\"obf-DebugOverrides\", {});\n tmsQueryParams = debugOverrides.replaceTmsQueryParams || Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ country: this.country, locale: this.locale, app: this.app, platform: this.platform, version: this.version, campaignParams: Object(_Utils_UrlUtils__WEBPACK_IMPORTED_MODULE_6__[\"buildQueryParameters\"])(browserParams) + \"&more=true&\" + (this.campaignParameters || \"\"), contentType: contentTypes.join(\";\"), puid: userPuid, OFC_FLIGHTS: this.campaignFlights }, (debugOverrides.addTmsQueryParams || {})), { ageGroup: this.ageGroup, sessionUserType: this.authType, packageVersion: this.packageVersion });\n return [4 /*yield*/, this.sendRequest(tmsQueryParams, authToken, \"TmsServiceUrl\" /* tmsServiceUrl */, this.campaignMetadataAggregatorPrefix + _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TMS_CAMPAIGNMETADATAAGGREGATOR_ENDPOINT\"] + \"?\")];\n case 6:\n response = _c.sent();\n if (!(response.status === 200)) return [3 /*break*/, 8];\n return [4 /*yield*/, response.json()];\n case 7:\n tmsServiceResponse = _c.sent();\n if (contentTypes.indexOf(\"MessageMetadata\" /* messageMetadata */) !== -1\n && tmsServiceResponse.MessageMetadata !== undefined) {\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"MessageMetadata\" /* messageMetadata */, tmsServiceResponse.MessageMetadata, Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TmsMessageMetadataExpiry\" /* tmsMessageMetadataExpiry */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_MESSAGEMETADATA\"]), _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"MessageMetadata\" /* messageMetadata */]);\n }\n if (contentTypes.indexOf(\"UserGovernance\" /* userGovernanceRules */) !== -1\n && tmsServiceResponse.UserGovernanceRules !== undefined) {\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"UserGovernance\" /* userGovernanceRules */, tmsServiceResponse.UserGovernanceRules, Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TmsUserGovernanceRulesExpiry\" /* tmsUserGovernanceRulesExpiry */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_USERGOVERNANCERULES\"]), _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"UserGovernance\" /* userGovernanceRules */]);\n }\n if (contentTypes.indexOf(\"CampaignContent\" /* campaignContent */) !== -1\n && tmsServiceResponse.CampaignContent !== undefined) {\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"CampaignContent\" /* campaignContent */, tmsServiceResponse.CampaignContent, Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TmsCampaignContentExpiry\" /* tmsCampaignContentExpiry */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_CAMPAIGNCONTENT\"]), _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"CampaignContent\" /* campaignContent */]);\n }\n // There is no explicit request for the next set of ContentTypes in the code\n // If the server responds with these types save and use them later\n if (tmsServiceResponse.DynamicSettings !== undefined) {\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"DynamicSettings\" /* dynamicSettings */, tmsServiceResponse.DynamicSettings, Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TmsDynamicSettingsExpiry\" /* tmsDynamicSettingsExpiry */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_DYNAMICSETTINGS\"]), _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"DynamicSettings\" /* dynamicSettings */]);\n }\n if (tmsServiceResponse.LogLevelSettings !== undefined) {\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"LogLevelSettings\" /* logLevelSettings */, tmsServiceResponse.LogLevelSettings, Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TmsLogLevelSettingsExpiry\" /* tmsLogLevelSettingsExpiry */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_LOGLEVELSETTINGS\"]), _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"LogLevelSettings\" /* logLevelSettings */]);\n }\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"WebSurfaces_CampaignMetadataAggregator_Requests\" /* CampaignMetadataAggregatorRequests */, this.createTelemetryData(requestStartTime, response, contentTypes.join(\";\"), this.parseCampaignIdFromResponse((_a = tmsServiceResponse === null || tmsServiceResponse === void 0 ? void 0 : tmsServiceResponse.CampaignContent) === null || _a === void 0 ? void 0 : _a.campaigns)), 0.01);\n return [3 /*break*/, 9];\n case 8:\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"WebSurfaces_CampaignMetadataAggregator_Error\" /* CampaignMetadataAggregatorError */, this.createTelemetryData(requestStartTime, response, contentTypes.join(\";\")));\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n error_3 = _c.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"WebSurfaces_CampaignMetadataAggregator_Error\" /* CampaignMetadataAggregatorError */, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ ErrorMessage: \"Error fetching from TMS:\" + Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_13__[\"getErrorMessage\"])(error_3) }, this.createTelemetryData(requestStartTime, null, contentTypes.join(\";\"))));\n return [3 /*break*/, 11];\n case 11: return [2 /*return*/];\n }\n });\n });\n };\n TargetedMessagingClient.prototype.refreshItemsInCacheFromSubstrateTulipsService = function (contentType) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var authTokenConfig, authToken, requestStartTime, response, tulipsServiceResponse, normalizedUserFacts, error_4;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n switch (_a.label) {\n case 0:\n // check if touched item is actually due for refresh or is still valid\n if (!_Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"isCachedTypeExpired\"](_Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][contentType])) {\n // exit out if the cache is still valid to avoid unnecessary service roundtrips\n return [2 /*return*/];\n }\n authTokenConfig = {\n scenario: 'TulipsSubstrate',\n appId: Object(_Configuration_DynamicConfiguration__WEBPACK_IMPORTED_MODULE_9__[\"getDynamicSetting\"])(\"TulipsAppId\" /* tulipsAppId */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"GUIDs\"].TULIPSSubstrateAppID)\n };\n return [4 /*yield*/, this.getAuthToken(authTokenConfig)];\n case 1:\n authToken = _a.sent();\n if (!authToken) {\n // if authToken is null then exit out since service call cannot be made without authToken\n return [2 /*return*/];\n }\n requestStartTime = +new Date();\n _a.label = 2;\n case 2:\n _a.trys.push([2, 7, , 8]);\n return [4 /*yield*/, this.sendRequest({}, authToken, \"TulipsServiceUrl\" /* tulipsServiceUrl */, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"TULIPS_SERVICEURL\"])];\n case 3:\n response = _a.sent();\n if (!(response.status === 200 || response.status === 204)) return [3 /*break*/, 5];\n return [4 /*yield*/, response.json()];\n case 4:\n tulipsServiceResponse = _a.sent();\n if (contentType.indexOf(\"UserFacts\" /* userFacts */) !== -1\n && tulipsServiceResponse !== undefined) {\n normalizedUserFacts = Object(_Facts_UserFactsClient__WEBPACK_IMPORTED_MODULE_2__[\"addClientIngestionTimeAndNormalizeKeys\"])(tulipsServiceResponse);\n _Utils_Caching__WEBPACK_IMPORTED_MODULE_3__[\"saveToCache\"](\"UserFacts\" /* userFacts */, normalizedUserFacts, _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_8__[\"CACHE_EXPIRY_USERFACTS\"], _Common_ContentType__WEBPACK_IMPORTED_MODULE_1__[\"ContentTypeToStorageKeyMap\"][\"UserFacts\" /* userFacts */]);\n }\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"UserFacts_Messaging_Requests\" /* UserFactsMessagingRequests */, this.createTelemetryData(requestStartTime, response, contentType), .01);\n return [3 /*break*/, 6];\n case 5:\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"UserFacts_Common_Error\" /* UserFactsCommonError */, this.createTelemetryData(requestStartTime, response, contentType));\n _a.label = 6;\n case 6: return [3 /*break*/, 8];\n case 7:\n error_4 = _a.sent();\n _Logging_Logger__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().event(\"UserFacts_Common_Error\" /* UserFactsCommonError */, Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({ ErrorMessage: \"Error fetching from TULIPS:\" + Object(_Utils_Utils__WEBPACK_IMPORTED_MODULE_13__[\"getErrorMessage\"])(error_4) }, this.createTelemetryData(requestStartTime, null, contentType)));\n return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n };\n return TargetedMessagingClient;\n}());\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1RhcmdldGVkTWVzc2FnaW5nL1RhcmdldGVkTWVzc2FnaW5nQ2xpZW50LnRzPzFhMGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFnRjtBQUNBO0FBQ3BDO0FBQ0E7QUFDSTtBQUV1QjtBQUUxQjtBQUNpQjtBQUV3QjtBQUUxQjtBQUdPO0FBQ2Q7QUFFSjtBQTRCMUMsU0FBUywyQkFBMkI7SUFDMUMsSUFBTSxjQUFjLEdBQUcsb0VBQTZCLENBQWtCLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLE9BQU8sY0FBYyxJQUFJLGNBQWMsQ0FBQyxXQUFXLElBQUksY0FBYyxDQUFDLFdBQVcsQ0FBQyxlQUFlLElBQUk7UUFDcEcsV0FBVyx5Q0FBNkI7UUFDeEMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxXQUFXLENBQUMsZUFBZTtLQUNuRCxDQUFDO0FBQ0gsQ0FBQztBQUVNLFNBQVMsaUJBQWlCO0lBQ2hDLElBQU0sY0FBYyxHQUFHLG9FQUE2QixDQUFrQixvQkFBb0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLGNBQWMsSUFBSSxjQUFjLENBQUMsaUJBQWlCLElBQUk7UUFDNUQsV0FBVyw2QkFBdUI7UUFDbEMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxpQkFBaUI7S0FDekMsQ0FBQztBQUNILENBQUM7QUFFRDtJQWlCQyxpQ0FDQyxHQUFXLEVBQ1gsUUFBZ0IsRUFDaEIsT0FBZSxFQUNmLE1BQWMsRUFDZCxPQUFlLEVBQ2YsU0FBaUIsRUFDakIsaUJBQThDLEVBQzlDLGVBQXdCLEVBQ3hCLGtCQUEyQixFQUMzQixRQUFtQixFQUNuQixRQUE2QixFQUM3QixRQUFpQixFQUNqQix3QkFBb0QsRUFDcEQsY0FBdUI7O1FBOUJoQixXQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxJQUFJLENBQUM7UUErQnRCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFD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LEdBQUcsR0FBbEQsd0JBQWtEO3dCQUN2QixxQkFBTSxRQUFRLENBQUMsSUFBSSxFQUFFOzt3QkFBN0MscUJBQXFCLEdBQUcsU0FBcUI7d0JBRW5ELElBQUksV0FBVyxDQUFDLE9BQU8sNkJBQXVCLEtBQUssQ0FBQyxDQUFDOytCQUNqRCxxQkFBcUIsS0FBSyxTQUFTLEVBQUU7NEJBQ2xDLG1CQUFtQixHQUFHLHFHQUFzQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7NEJBQzFGLDBEQUFtQiw4QkFFakIsbUJBQW1CLEVBQ25CLGtGQUFvQyxFQUNwQyw4RUFBMEIsNkJBQXVCLENBQUMsQ0FBQzt5QkFDckQ7d0JBRUQseURBQWlCLEVBQUUsQ0FBQyxLQUFLLGtFQUV4QixJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLFdBQVcsQ0FBMkIsRUFBRSxHQUFHLENBQUMsQ0FBQzs7O3dCQUVuRyx5REFBaUIsRUFBRSxDQUFDLEtBQUssc0RBRXhCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUEyQixDQUFDLENBQUM7Ozs7O3dCQUcvRix5REFBaUIsRUFBRSxDQUFDLEtBQUssK0dBR3ZCLFlBQVksRUFBRSw2QkFBNkIsR0FBRyxxRUFBZSxDQUFDLE9BQUssQ0FBQyxJQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxFQUMvRCxDQUFDOzs7Ozs7S0FFTDtJQUNGLDhCQUFDO0FBQUQsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9UYXJnZXRlZE1lc3NhZ2luZy9UYXJnZXRlZE1lc3NhZ2luZ0NsaWVudC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0SUNhbXBhaWduRGVmaW5pdGlvbixcclxuXHRJRmxvb2RnYXRlQXV0aFRva2VuQ2FsbGJhY2ssXHJcblx0SU1lc3NhZ2VTcGVjLFxyXG59IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5cclxuaW1wb3J0IHsgQWdlR3JvdXAsIEF1dGhlbnRpY2F0aW9uVHlwZSwgSUJlYWNvblBhcmFtZXRlcnMsIElNZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3MsIElVc2VyRmFjdCB9IGZyb20gXCIuLi9Db21tb24vTW9kZWxzXCI7XHJcblxyXG5pbXBvcnQgeyBDb250ZW50VHlwZSwgQ29udGVudFR5cGVUb1N0b3JhZ2VLZXlNYXAgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRUeXBlXCI7XHJcbmltcG9ydCB7YWRkQ2xpZW50SW5nZXN0aW9uVGltZUFuZE5vcm1hbGl6ZUtleXN9IGZyb20gXCIuLi9GYWN0cy9Vc2VyRmFjdHNDbGllbnRcIjtcclxuaW1wb3J0ICogYXMgQ2FjaGluZyBmcm9tIFwiLi4vVXRpbHMvQ2FjaGluZ1wiO1xyXG5pbXBvcnQgKiBhcyBTdG9yYWdlIGZyb20gXCIuLi9VdGlscy9TdG9yYWdlXCI7XHJcbmltcG9ydCAqIGFzIFRyYW5zcG9ydCBmcm9tIFwiLi4vVXRpbHMvVHJhbnNwb3J0XCI7XHJcblxyXG5pbXBvcnQgeyBidWlsZFF1ZXJ5UGFyYW1ldGVycywgSVF1ZXJ5UGFyYW1zIH0gZnJvbSBcIi4uL1V0aWxzL1VybFV0aWxzXCI7XHJcblxyXG5pbXBvcnQgKiBhcyBMb2dnaW5nIGZyb20gXCIuLi9Mb2dnaW5nL0xvZ2dlclwiO1xyXG5pbXBvcnQgKiBhcyBUbXNnQ29uc3RhbnRzIGZyb20gXCIuL1RhcmdldGVkTWVzc2FnaW5nQ29uc3RhbnRzXCI7XHJcblxyXG5pbXBvcnQgeyBnZXREeW5hbWljU2V0dGluZywgU2V0dGluZ0tleSB9IGZyb20gXCIuLi9Db25maWd1cmF0aW9uL0R5bmFtaWNDb25maWd1cmF0aW9uXCI7XHJcblxyXG5pbXBvcnQgeyBDb250ZW50UmVzcG9uc2UgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRSZXNwb25zZVwiO1xyXG5pbXBvcnQgeyBFdmVudElkcywgSUN1c3RvbVByb3BlcnRpZXMgfSBmcm9tIFwiLi4vTG9nZ2luZy9Db25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUF1dGhUb2tlbkNvbmZpZyB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncy9kaXN0L3NyYy9Db3JlL0FwaS9JRmxvb2RnYXRlQXV0aFRva2VuQ2FsbGJhY2tcIjtcclxuaW1wb3J0IHsgZ2V0VXNlckZhY3RMaXN0LCBnZXRVc2VyRmFjdHMgfSBmcm9tIFwiLi4vRmFjdHMvVXNlckZhY3RzXCI7XHJcbmltcG9ydCB7IGdldFNhbXBsaW5nUmF0ZSB9IGZyb20gXCIuLi9Db21tb24vU2V0dGluZ3NcIjtcclxuaW1wb3J0IHsgbWVyZ2VMb2NhbFVzZXJGYWN0cyB9IGZyb20gXCIuLi9GYWN0cy9DYWNoZWRVc2VyRmFjdHNcIjtcclxuaW1wb3J0IHsgZ2V0RXJyb3JNZXNzYWdlIH0gZnJvbSBcIi4uL1V0aWxzL1V0aWxzXCI7XHJcblxyXG5pbnRlcmZhY2UgSVRtc1NlcnZpY2VSZXNwb25zZSB7XHJcblx0TWVzc2FnZU1ldGFkYXRhOiBJTWVzc2FnZVNwZWM7XHJcblx0VXNlckdvdmVybmFuY2VSdWxlczogYW55O1xyXG5cdENhbXBhaWduQ29udGVudDogYW55O1xyXG5cdER5bmFtaWNTZXR0aW5nczogYW55O1xyXG5cdExvZ0xldmVsU2V0dGluZ3M6IElMb2dMZXZlbFNldHRpbmdzO1xyXG59XHJcblxyXG5jb25zdCBlbnVtIExvZ0xldmVsIHtcclxuXHROb25lLFxyXG5cdENyaXRpY2FsLFxyXG5cdEVycm9yLFxyXG5cdEluZm8sXHJcbn1cclxuXHJcbmludGVyZmFjZSBJTG9nTGV2ZWxTZXR0aW5ncyB7XHJcblx0bG9nTGV2ZWw6IExvZ0xldmVsO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgSURlYnVnT3ZlcnJpZGVzIHtcclxuXHRhZGRUbXNRdWVyeVBhcmFtcz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XHJcblx0cmVwbGFjZVRtc1F1ZXJ5UGFyYW1zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcclxuXHR0bXNSZXNwb25zZT86IElUbXNTZXJ2aWNlUmVzcG9uc2U7XHJcblx0dXNlckZhY3RzUmVzcG9uc2U/OiBJVG1zU2VydmljZVJlc3BvbnNlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVidWdDYW1wYWlnbkRlZmluaXRpb25zKCk6IENvbnRlbnRSZXNwb25zZSB7XHJcblx0Y29uc3QgZGVidWdPdmVycmlkZXMgPSBTdG9yYWdlLnJlYWRPYmplY3RGcm9tU3RvcmFnZTxJRGVidWdPdmVycmlkZXM+KFwib2JmLURlYnVnT3ZlcnJpZGVzXCIsIHt9KTtcclxuXHRyZXR1cm4gZGVidWdPdmVycmlkZXMgJiYgZGVidWdPdmVycmlkZXMudG1zUmVzcG9uc2UgJiYgZGVidWdPdmVycmlkZXMudG1zUmVzcG9uc2UuQ2FtcGFpZ25Db250ZW50ICYmIHtcclxuXHRcdGNvbnRlbnRUeXBlOiBDb250ZW50VHlwZS5jYW1wYWlnbkNvbnRlbnQsXHJcblx0XHRjb250ZW50OiBkZWJ1Z092ZXJyaWRlcy50bXNSZXNwb25zZS5DYW1wYWlnbkNvbnRlbnQsXHJcblx0fTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldERlYnVnVXNlckZhY3RzKCk6IENvbnRlbnRSZXNwb25zZSB7XHJcblx0Y29uc3QgZGVidWdPdmVycmlkZXMgPSBTdG9yYWdlLnJlYWRPYmplY3RGcm9tU3RvcmFnZTxJRGVidWdPdmVycmlkZXM+KFwib2JmLURlYnVnT3ZlcnJpZGVzXCIsIHt9KTtcclxuXHRyZXR1cm4gZGVidWdPdmVycmlkZXMgJiYgZGVidWdPdmVycmlkZXMudXNlckZhY3RzUmVzcG9uc2UgJiYge1xyXG5cdFx0Y29udGVudFR5cGU6IENvbnRlbnRUeXBlLnVzZXJGYWN0cyxcclxuXHRcdGNvbnRlbnQ6IGRlYnVnT3ZlcnJpZGVzLnVzZXJGYWN0c1Jlc3BvbnNlLFxyXG5cdH07XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYXJnZXRlZE1lc3NhZ2luZ0NsaWVudCB7XHJcblx0cHJpdmF0ZSBsb2NhbGUgPSBcImVuLXVzXCI7XHJcblx0cHJpdmF0ZSBjb3VudHJ5ID0gXCJVU1wiO1xyXG5cdHByaXZhdGUgYXV0aFRva2VuQ2FsbGJhY2s6IElGbG9vZGdhdGVBdXRoVG9rZW5DYWxsYmFjaztcclxuXHRwcml2YXRlIGFwcDogc3RyaW5nO1xyXG5cdHByaXZhdGUgcGxhdGZvcm06IHN0cmluZztcclxuXHRwcml2YXRlIHZlcnNpb246IHN0cmluZztcclxuXHRwcml2YXRlIHBhY2thZ2VWZXJzaW9uOiBzdHJpbmc7XHJcblx0cHJpdmF0ZSBzZXNzaW9uSWQ6IHN0cmluZztcclxuXHRwcml2YXRlIGNhbXBhaWduRmxpZ2h0czogc3RyaW5nO1xyXG5cdHByaXZhdGUgY2FtcGFpZ25QYXJhbWV0ZXJzOiBzdHJpbmc7XHJcblx0cHJpdmF0ZSBhZ2VHcm91cDogQWdlR3JvdXA7XHJcblx0cHJpdmF0ZSBhdXRoVHlwZTogQXV0aGVudGljYXRpb25UeXBlO1xyXG5cdHByaXZhdGUgY2FtcGFpZ25NZXRhZGF0YUFnZ3JlZ2F0b3JQcmVmaXg6IHN0cmluZztcclxuXHRwcml2YXRlIHNldENhbXBhaWduQWN0aW9uUHJlZml4OiBzdHJpbmc7XHJcblx0cHJpdmF0ZSBtZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3M6IElNZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3M7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0YXBwOiBzdHJpbmcsXHJcblx0XHRwbGF0Zm9ybTogc3RyaW5nLFxyXG5cdFx0dmVyc2lvbjogc3RyaW5nLFxyXG5cdFx0bG9jYWxlOiBzdHJpbmcsXHJcblx0XHRjb3VudHJ5OiBzdHJpbmcsXHJcblx0XHRzZXNzaW9uSWQ6IHN0cmluZyxcclxuXHRcdGF1dGhUb2tlbkNhbGxiYWNrOiBJRmxvb2RnYXRlQXV0aFRva2VuQ2FsbGJhY2ssXHJcblx0XHRjYW1wYWlnbkZsaWdodHM/OiBzdHJpbmcsXHJcblx0XHRjYW1wYWlnblBhcmFtZXRlcnM/OiBzdHJpbmcsXHJcblx0XHRhZ2VHcm91cD86IEFnZUdyb3VwLFxyXG5cdFx0YXV0aFR5cGU/OiBBdXRoZW50aWNhdGlvblR5cGUsXHJcblx0XHRhdWRpZW5jZT86IHN0cmluZyxcclxuXHRcdG1lc3NhZ2luZ1NlcnZpY2VTZXR0aW5ncz86IElNZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3MsXHJcblx0XHRwYWNrYWdlVmVyc2lvbj86IHN0cmluZyxcclxuXHRcdCkge1xyXG5cdFx0dGhpcy5sb2NhbGUgPSBsb2NhbGU7XHJcblx0XHR0aGlzLmNvdW50cnkgPSBjb3VudHJ5O1xyXG5cdFx0dGhpcy5hdXRoVG9rZW5DYWxsYmFjayA9IGF1dGhUb2tlbkNhbGxiYWNrO1xyXG5cdFx0dGhpcy5hcHAgPSBhcHA7XHJcblx0XHR0aGlzLnBsYXRmb3JtID0gcGxhdGZvcm07XHJcblx0XHR0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xyXG5cdFx0dGhpcy5wYWNrYWdlVmVyc2lvbiA9IHBhY2thZ2VWZXJzaW9uO1xyXG5cdFx0dGhpcy5zZXNzaW9uSWQgPSBzZXNzaW9uSWQ7XHJcblx0XHR0aGlzLmNhbXBhaWduRmxpZ2h0cyA9IGNhbXBhaWduRmxpZ2h0cztcclxuXHRcdHRoaXMuY2FtcGFpZ25QYXJhbWV0ZXJzID0gY2FtcGFpZ25QYXJhbWV0ZXJzO1xyXG5cdFx0dGhpcy5hZ2VHcm91cCA9IGFnZUdyb3VwO1xyXG5cdFx0dGhpcy5hdXRoVHlwZSA9IGF1dGhUeXBlO1xyXG5cdFx0dGhpcy5tZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3MgPSBtZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3M7XHJcblxyXG5cdFx0Y29uc3QgaW50ZXJuYWxFbnZzID0gW1wiZG9nZm9vZFwiLCBcImVkb2dcIiwgXCJpbnRcIiwgXCJtaWNyb3NvZnRcIl07XHJcblx0XHRjb25zdCBpc0ludGVybmFsRW52ID0gYXVkaWVuY2UgJiYgaW50ZXJuYWxFbnZzLmluZGV4T2YoYXVkaWVuY2UudG9Mb3dlckNhc2UoKSkgIT09IC0xO1xyXG5cdFx0Y29uc3QgY2FtcGFpZ25NZXRhZGF0YUFnZ3JlZ2F0b3JDb25maWcgPSBpc0ludGVybmFsRW52ID8gdGhpcy5tZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3M/LmNhbXBhaWduTWV0YWRhdGFBZ2dyZWdhdG9ySW50XHJcblx0XHQ6IHRoaXMubWVzc2FnaW5nU2VydmljZVNldHRpbmdzPy5jYW1wYWlnbk1ldGFkYXRhQWdncmVnYXRvclByb2Q7XHJcblx0XHRjb25zdCBzZXRDYW1wYWlnbkFjdGlvbkNvbmZpZyA9IGlzSW50ZXJuYWxFbnYgPyB0aGlzLm1lc3NhZ2luZ1NlcnZpY2VTZXR0aW5ncz8uc2V0Q2FtcGFpZ25BY3Rpb25JbnRcclxuXHRcdDogdGhpcy5tZXNzYWdpbmdTZXJ2aWNlU2V0dGluZ3M/LnNldENhbXBhaWduQWN0aW9uUHJvZDtcclxuXHJcblx0XHRjb25zdCBjbWFEZWZhdWx0QmFzZVVybFByZWZpeCA9IGlzSW50ZXJuYWxFbnYgPyBUbXNnQ29uc3RhbnRzLlRNU19DQU1QQUlHTk1FVEFEQVRBQUdHUkVHQVRPUl9QUkVGSVhfRURPR1xyXG5cdFx0OiBUbXNnQ29uc3RhbnRzLlRNU19DQU1QQUlHTk1FVEFEQVRBQUdHUkVHQVRPUl9QUkVGSVhfUFJPRDtcclxuXHRcdGNvbnN0IHNjYURlZmF1bHRCYXNlVXJsUHJlZml4ID0gaXNJbnRlcm5hbEVudiA/IFRtc2dDb25zdGFudHMuVE1TX1NFVENBTVBBSUdOQUNUSU9OX1BSRUZJWF9FRE9HXHJcblx0XHQ6IFRtc2dDb25zdGFudHMuVE1TX1NFVENBTVBBSUdOQUNUSU9OX1BSRUZJWF9QUk9EO1xyXG5cclxuXHRcdHRoaXMuY2FtcGFpZ25NZXRhZGF0YUFnZ3JlZ2F0b3JQcmVmaXggPSBjYW1wYWlnbk1ldGFkYXRhQWdncmVnYXRvckNvbmZpZyB8fCBjbWFEZWZhdWx0QmFzZVVybFByZWZpeDtcclxuXHRcdHRoaXMuc2V0Q2FtcGFpZ25BY3Rpb25QcmVmaXggPSBzZXRDYW1wYWlnbkFjdGlvbkNvbmZpZyB8fCBzY2FEZWZhdWx0QmFzZVVybFByZWZpeDtcclxuXHJcblx0XHQvLyBiaW5kIGdldEF1dGhUb2tlbiBmdW5jdGlvbiB0byBhdm9pZCBsb3NpbmcgY29udGV4dCBhZnRlciBwYXNzaW5nIHRoZSBmdW5jdGlvbiBhcyBwYXJhbVxyXG5cdFx0dGhpcy5nZXRBdXRoVG9rZW4gPSB0aGlzLmdldEF1dGhUb2tlbi5iaW5kKHRoaXMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGFzeW5jIGdldENvbnRlbnQoXHJcblx0XHRyZXF1ZXN0ZWRDb250ZW50OiBDb250ZW50VHlwZSk6IFByb21pc2U8Q29udGVudFJlc3BvbnNlPiB7XHJcblx0XHRpZiAoQ2FjaGluZy5pc0NhY2hlZFR5cGVFeHBpcmVkKENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW3JlcXVlc3RlZENvbnRlbnRdKSkge1xyXG5cdFx0XHRhd2FpdCB0aGlzLnJlZnJlc2hJdGVtc0luQ2FjaGVGcm9tVG1zU2VydmljZShbcmVxdWVzdGVkQ29udGVudF0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlc3BvbnNlOiBDb250ZW50UmVzcG9uc2UgPSB0aGlzLnJldHJpZXZlQ2FjaGVJdGVtQW5kQ3JlYXRlQ29udGVudFJlc3BvbnNlKHJlcXVlc3RlZENvbnRlbnQpO1xyXG5cdFx0cmV0dXJuIHJlc3BvbnNlO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGFzeW5jIGdldE11bHRpcGxlQ29udGVudHMoXHJcblx0XHRyZXF1ZXN0ZWRDb250ZW50OiBDb250ZW50VHlwZVtdKTogUHJvbWlzZTxDb250ZW50UmVzcG9uc2VbXT4ge1xyXG5cdFx0YXdhaXQgdGhpcy5yZWZyZXNoSXRlbXNJbkNhY2hlRnJvbVRtc1NlcnZpY2UocmVxdWVzdGVkQ29udGVudCk7XHJcblxyXG5cdFx0Y29uc3QgY29udGVudFJlc3BvbnNlczogQ29udGVudFJlc3BvbnNlW10gPSBuZXcgQXJyYXk8Q29udGVudFJlc3BvbnNlPigpO1xyXG5cdFx0Y29uc3QgYnVsa1JlZnJlc2hMaXN0OiBDb250ZW50VHlwZVtdID0gbmV3IEFycmF5PENvbnRlbnRUeXBlPigpO1xyXG5cdFx0Zm9yIChjb25zdCBjb250ZW50VHlwZSBvZiByZXF1ZXN0ZWRDb250ZW50KSB7XHJcblx0XHRcdGNvbnN0IHJlc3BvbnNlSXRlbSA9IHRoaXMuY3JlYXRlQ2FjaGVkQ29udGVudFJlc3BvbnNlKGNvbnRlbnRUeXBlKTtcclxuXHRcdFx0Y29udGVudFJlc3BvbnNlcy5wdXNoKHJlc3BvbnNlSXRlbSk7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5yZWZyZXNoSXRlbXNJbkNhY2hlRnJvbVRtc1NlcnZpY2UoYnVsa1JlZnJlc2hMaXN0KTtcclxuXHJcblx0XHRyZXR1cm4gY29udGVudFJlc3BvbnNlcztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBnZXRVc2VyRmFjdHNDb250ZW50KFxyXG5cdFx0cmVxdWVzdGVkQ29udGVudDogQ29udGVudFR5cGUpOiBQcm9taXNlPENvbnRlbnRSZXNwb25zZT4ge1xyXG5cdFx0YXdhaXQgdGhpcy5yZWZyZXNoSXRlbXNJbkNhY2hlRnJvbVN1YnN0cmF0ZVR1bGlwc1NlcnZpY2UocmVxdWVzdGVkQ29udGVudCk7XHJcblx0XHRjb25zdCByZXNwb25zZTogQ29udGVudFJlc3BvbnNlID0gdGhpcy5yZXRyaWV2ZUNhY2hlSXRlbUFuZENyZWF0ZUNvbnRlbnRSZXNwb25zZShyZXF1ZXN0ZWRDb250ZW50KTtcclxuXHRcdHJldHVybiByZXNwb25zZTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBzZW5kQmVhY29uUmVxdWVzdFRvU2VydmljZShcclxuXHRcdGFwcDogc3RyaW5nLFxyXG5cdFx0YmVhY29uUGFyYW1ldGVyczogSUJlYWNvblBhcmFtZXRlcnMsXHJcblx0XHRwbGF0Zm9ybTogc3RyaW5nLFxyXG5cdFx0dmVyc2lvbjogc3RyaW5nLFxyXG5cdFx0bG9jYWxlOiBzdHJpbmcsXHJcblx0XHRjb3VudHJ5OiBzdHJpbmcsXHJcblx0XHRzZXNzaW9uSWQ6IHN0cmluZyxcclxuXHRcdGF1dGhUb2tlbkNhbGxiYWNrOiBJRmxvb2RnYXRlQXV0aFRva2VuQ2FsbGJhY2ssXHJcblx0XHQpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuXHRcdHRoaXMuc2Vzc2lvbklkID0gc2Vzc2lvbklkO1xyXG5cdFx0dGhpcy5hdXRoVG9rZW5DYWxsYmFjayA9IGF1dGhUb2tlbkNhbGxiYWNrO1xyXG5cclxuXHRcdGNvbnN0IGF1dGhUb2tlbkNvbmZpZzogSUF1dGhUb2tlbkNvbmZpZyA9IHtcclxuXHRcdFx0c2NlbmFyaW86ICdUTVMnLFxyXG5cdFx0XHRhcHBJZDogZ2V0RHluYW1pY1NldHRpbmcoU2V0dGluZ0tleS50dWxpcHNBcHBJZCwgVG1zZ0NvbnN0YW50cy5HVUlEcy5UTVNBcHBJRClcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgYXV0aFRva2VuID0gYXdhaXQgdGhpcy5nZXRBdXRoVG9rZW4oYXV0aFRva2VuQ29uZmlnKTtcclxuXHRcdGxldCBwdWlkOiBzdHJpbmc7XHJcblx0XHRpZiAoIWF1dGhUb2tlbikge1xyXG5cdFx0XHRwdWlkID0gdGhpcy5hdXRoVG9rZW5DYWxsYmFjay5nZXRVc2VyUHVpZCAmJiBhd2FpdCB0aGlzLmF1dGhUb2tlbkNhbGxiYWNrLmdldFVzZXJQdWlkKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgcmVxdWVzdFN0YXJ0VGltZSA9ICtuZXcgRGF0ZSgpO1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgdG1zUXVlcnlQYXJhbXM6IElRdWVyeVBhcmFtcyA9IHtcclxuXHRcdFx0XHRhcHAsXHJcblx0XHRcdFx0Y291bnRyeSxcclxuXHRcdFx0XHRsb2NhbGUsXHJcblx0XHRcdFx0cGxhdGZvcm0sXHJcblx0XHRcdFx0cHVpZCxcclxuXHRcdFx0XHR2ZXJzaW9uLFxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0Y29uc3QgcmVxdWVzdEJvZHkgPSBKU09OLnN0cmluZ2lmeSh7XHJcblx0XHRcdFx0YWN0aW9uTmFtZTogYmVhY29uUGFyYW1ldGVycy5hY3Rpb25OYW1lLFxyXG5cdFx0XHRcdGFjdGlvblVybDogYmVhY29uUGFyYW1ldGVycy5hY3Rpb25VcmwsXHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdFx0Y29uc3QgaGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xyXG5cdFx0XHRcdFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04XCIsXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHRjb25zdCByZXNwb25zZTogUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KFxyXG5cdFx0XHRcdHRtc1F1ZXJ5UGFyYW1zLFxyXG5cdFx0XHRcdGF1dGhUb2tlbixcclxuXHRcdFx0XHRTZXR0aW5nS2V5LnRtc0FjdGlvblVybCxcclxuXHRcdFx0XHR0aGlzLnNldENhbXBhaWduQWN0aW9uUHJlZml4ICsgVG1zZ0NvbnN0YW50cy5UTVNfU0VUQ0FNUEFJR05BQ1RJT05fRU5EUE9JTlQgKyBcIj9cIixcclxuXHRcdFx0XHRoZWFkZXIsXHJcblx0XHRcdFx0cmVxdWVzdEJvZHksXHJcblx0XHRcdFx0XCJQT1NUXCIpO1xyXG5cclxuXHRcdFx0aWYgKCFyZXNwb25zZSB8fCByZXNwb25zZS5zdGF0dXMgIT09IDIwMCkge1xyXG5cdFx0XHRcdExvZ2dpbmcuZ2V0TG9nZ2VyKCkuZXZlbnQoXHJcblx0XHRcdFx0XHRFdmVudElkcy5TZXRDYW1wYWlnbkFjdGlvbkVycm9yLFxyXG5cdFx0XHRcdFx0dGhpcy5jcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIHJlc3BvbnNlLCBgQmVhY29uJHtiZWFjb25QYXJhbWV0ZXJzLmFjdGlvbk5hbWV9YCkgYXMgTG9nZ2luZy5JQ3VzdG9tTG9nRGF0YSk7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHRcdExvZ2dpbmcuZ2V0TG9nZ2VyKCkuaW5mbyhcclxuXHRcdFx0XHRFdmVudElkcy5TZXRDYW1wYWlnbkFjdGlvblJlcXVlc3RzLFxyXG5cdFx0XHRcdHRoaXMuY3JlYXRlVGVsZW1ldHJ5RGF0YShyZXF1ZXN0U3RhcnRUaW1lLCByZXNwb25zZSwgYEJlYWNvbiR7YmVhY29uUGFyYW1ldGVycy5hY3Rpb25OYW1lfWApLCAuMDEpO1xyXG5cdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdExvZ2dpbmcuZ2V0TG9nZ2VyKCkuZXZlbnQoXHJcblx0XHRcdFx0RXZlbnRJZHMuU2V0Q2FtcGFpZ25BY3Rpb25FcnJvcixcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRFcnJvck1lc3NhZ2U6XHJcblx0XHRcdFx0XHRcdFwiRXJyb3IgZmV0Y2hpbmcgZnJvbSBUTVMgU2V0Q2FtcGFpZ25BY3Rpb24gZW5kcG9pbnQ6XCIgKyBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpLFxyXG5cdFx0XHRcdFx0Li4udGhpcy5jcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIG51bGwsIGBCZWFjb24ke2JlYWNvblBhcmFtZXRlcnMuYWN0aW9uTmFtZX1gKSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHVibGljIGFzeW5jIGdldFR1bGlwc1NlcnZpY2VVc2VyRmFjdHNDb250ZW50KCk6IFByb21pc2U8SVVzZXJGYWN0W10+IHtcclxuXHRcdHJldHVybiBnZXRVc2VyRmFjdExpc3QobnVsbCwgdGhpcy5nZXRBdXRoVG9rZW4pO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBwYXJzZUNhbXBhaWduSWRGcm9tUmVzcG9uc2UocmVzcG9uc2U6IElDYW1wYWlnbkRlZmluaXRpb25bXSk6IHN0cmluZyB7XHJcblx0XHRjb25zdCBjYW1wYWlnbklkczogc3RyaW5nW10gPSByZXNwb25zZT8ubWFwKChjYW1wYWlnbjogYW55KSA9PiBjYW1wYWlnbi5DYW1wYWlnbklkKTtcclxuXHRcdHJldHVybiBjYW1wYWlnbklkcz8udG9TdHJpbmcoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY3JlYXRlVGVsZW1ldHJ5RGF0YShyZXF1ZXN0U3RhcnRUaW1lc3RhbXA6IG51bWJlciwgcmVzcG9uc2U6IFJlc3BvbnNlLCB0eXBlOiBzdHJpbmcsIGNhbXBhaWduSWRzPzogc3RyaW5nKTogSUN1c3RvbVByb3BlcnRpZXMge1xyXG5cdFx0Y29uc3QgeyBoZWFkZXJzLCBzdGF0dXMsIHN0YXR1c1RleHQgfSA9IHJlc3BvbnNlIHx8IHt9IGFzIFJlc3BvbnNlO1xyXG5cdFx0Y29uc3Qgc2VydmVyU2Vzc2lvbklkID0gaGVhZGVycyAmJiBoZWFkZXJzLmdldChcIlgtVXNlclNlc3Npb25JZFwiKTtcclxuXHRcdGNvbnN0IHNlcnZlckNvcnJlbGF0aW9uSWQgPSBoZWFkZXJzICYmIGhlYWRlcnMuZ2V0KFwiWC1Db3JyZWxhdGlvbklkXCIpO1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0VHlwZTogdHlwZSxcclxuXHRcdFx0VGltZU1pbGxpc2Vjb25kczogK25ldyBEYXRlKCkgLSByZXF1ZXN0U3RhcnRUaW1lc3RhbXAsXHJcblx0XHRcdFNlc3Npb25JZDogc2VydmVyU2Vzc2lvbklkIHx8IHRoaXMuc2Vzc2lvbklkLFxyXG5cdFx0XHRDb3JyZWxhdGlvbklkOiBzZXJ2ZXJDb3JyZWxhdGlvbklkIHx8IHVuZGVmaW5lZCxcclxuXHRcdFx0SHR0cFN0YXR1c0NvZGU6IHN0YXR1cyB8fCB1bmRlZmluZWQsXHJcblx0XHRcdEh0dHBTdGF0dXNUZXh0OiBzdGF0dXNUZXh0IHx8IHVuZGVmaW5lZCxcclxuXHJcblx0XHRcdEZsaWdodHM6IHRoaXMuY2FtcGFpZ25GbGlnaHRzLFxyXG5cdFx0XHRDYW1wYWlnbklkOiBjYW1wYWlnbklkcyB8fCB1bmRlZmluZWQsXHJcblx0XHR9O1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBzZW5kUmVxdWVzdChcclxuXHRcdHRtc2dRdWVyeVBhcmFtczogSVF1ZXJ5UGFyYW1zLFxyXG5cdFx0YXV0aFRva2VuOiBzdHJpbmcsXHJcblx0XHRrZXk6IFNldHRpbmdLZXksXHJcblx0XHRkZWZhdWx0QmFzZVVybDogc3RyaW5nLFxyXG5cdFx0cmVxdWVzdEhlYWRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxyXG5cdFx0cmVxdWVzdEJvZHk/OiBzdHJpbmcsXHJcblx0XHR2ZXJiPzogc3RyaW5nKTogUHJvbWlzZTxSZXNwb25zZT4ge1xyXG5cdFx0Y29uc3QgcXVlcnlQYXJhbVN0ciA9IGJ1aWxkUXVlcnlQYXJhbWV0ZXJzKHRtc2dRdWVyeVBhcmFtcyk7XHJcblx0XHRjb25zdCB0bXNnQmFzZVVybCA9IGdldER5bmFtaWNTZXR0aW5nKGtleSwgZGVmYXVsdEJhc2VVcmwpO1xyXG5cdFx0Y29uc3QgcmVxdWVzdFByb21pc2UgPSB2ZXJiID09PSBcIlBPU1RcIiA/XHJcblx0XHRcdFRyYW5zcG9ydC5zZW5kUG9zdFJlcXVlc3QodG1zZ0Jhc2VVcmwgKyBxdWVyeVBhcmFtU3RyLCByZXF1ZXN0Qm9keSwgYXV0aFRva2VuLCByZXF1ZXN0SGVhZGVycywgdGhpcy5zZXNzaW9uSWQpIDpcclxuXHRcdFx0VHJhbnNwb3J0LnNlbmRHZXRSZXF1ZXN0KHRtc2dCYXNlVXJsICsgcXVlcnlQYXJhbVN0ciwgYXV0aFRva2VuLCB0aGlzLnNlc3Npb25JZCk7XHJcblx0XHRyZXR1cm4gcmVxdWVzdFByb21pc2U7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJldHJpZXZlQ2FjaGVJdGVtQW5kQ3JlYXRlQ29udGVudFJlc3BvbnNlKGNvbnRlbnRUeXBlOiBDb250ZW50VHlwZSk6IENvbnRlbnRSZXNwb25zZSB7XHJcblx0XHRjb25zdCByZXNwb25zZUl0ZW06IENvbnRlbnRSZXNwb25zZSA9IHRoaXMuY3JlYXRlQ2FjaGVkQ29udGVudFJlc3BvbnNlKGNvbnRlbnRUeXBlKTtcclxuXHRcdGlmIChDYWNoaW5nLmlzQ2FjaGVkVHlwZUV4cGlyZWQoQ29udGVudFR5cGVUb1N0b3JhZ2VLZXlNYXBbY29udGVudFR5cGVdKSkge1xyXG5cdFx0XHRpZiAoY29udGVudFR5cGUgPT09IENvbnRlbnRUeXBlLnVzZXJGYWN0cykge1xyXG5cdFx0XHRcdHRoaXMucmVmcmVzaEl0ZW1zSW5DYWNoZUZyb21TdWJzdHJhdGVUdWxpcHNTZXJ2aWNlKGNvbnRlbnRUeXBlKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHR0aGlzLnJlZnJlc2hJdGVtc0luQ2FjaGVGcm9tVG1zU2VydmljZShbY29udGVudFR5cGVdKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7IC8vIGNhY2hlIGlzIG5vdCBleHBpcmVkXHJcblx0XHRcdGlmIChjb250ZW50VHlwZSA9PT0gQ29udGVudFR5cGUuY2FtcGFpZ25Db250ZW50KSB7XHJcblx0XHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRcdEV2ZW50SWRzLkNhbXBhaWduUmV0cmlldmVkQ2FjaGUsIHsgY2FtcGFpZ25JZHM6IHRoaXMucGFyc2VDYW1wYWlnbklkRnJvbVJlc3BvbnNlKHJlc3BvbnNlSXRlbT8uY29udGVudD8uY2FtcGFpZ25zKSB9LCBnZXRTYW1wbGluZ1JhdGUoKSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiByZXNwb25zZUl0ZW07XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGNyZWF0ZUNhY2hlZENvbnRlbnRSZXNwb25zZShyZXF1ZXN0ZWRDb250ZW50OiBDb250ZW50VHlwZSk6IENvbnRlbnRSZXNwb25zZSB7XHJcblx0XHRjb25zdCBjb250ZW50UmVzcG9uc2U6IENvbnRlbnRSZXNwb25zZSA9IG5ldyBDb250ZW50UmVzcG9uc2UoKTtcclxuXHRcdGNvbnRlbnRSZXNwb25zZS5jb250ZW50ID0gQ2FjaGluZy5nZXRDYWNoZWRDb250ZW50KENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW3JlcXVlc3RlZENvbnRlbnRdKTtcclxuXHRcdGNvbnRlbnRSZXNwb25zZS5jb250ZW50VHlwZSA9IHJlcXVlc3RlZENvbnRlbnQ7XHJcblxyXG5cdFx0cmV0dXJuIGNvbnRlbnRSZXNwb25zZTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgYXN5bmMgZ2V0QXV0aFRva2VuKGF1dGhUb2tlbkNvbmZpZzogSUF1dGhUb2tlbkNvbmZpZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcblx0XHRpZiAoIXRoaXMuYXV0aFRva2VuQ2FsbGJhY2sgfHwgIXRoaXMuYXV0aFRva2VuQ2FsbGJhY2suZ2V0QXV0aFRva2VuIHx8ICFhdXRoVG9rZW5Db25maWcpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qgc3RhcnRUaW1lID0gK25ldyBEYXRlKCk7XHJcblx0XHRjb25zdCBnZXREdXJhdGlvbiA9ICgpID0+ICtuZXcgRGF0ZSgpIC0gc3RhcnRUaW1lO1xyXG5cdFx0Y29uc3Qgc2FtcGxpbmdSYXRlID0gZ2V0U2FtcGxpbmdSYXRlKCk7XHJcblxyXG5cdFx0Y29uc3QgY3JlYXRlQXV0aFRlbGVtZXRyeUxvZ0RhdGEgPSAobWVzc2FnZTogc3RyaW5nLCB0b2tlbkxlbmd0aCA9IC0xKTogTG9nZ2luZy5JQ3VzdG9tTG9nRGF0YSA9PiB7XHJcblx0XHRcdHJldHVybiB7XHJcblx0XHRcdFx0TWVzc2FnZTogbWVzc2FnZSxcclxuXHRcdFx0XHRTYW1wbGluZ1JhdGU6IHNhbXBsaW5nUmF0ZSxcclxuXHRcdFx0XHRTY2VuYXJpbzogYXV0aFRva2VuQ29uZmlnLnNjZW5hcmlvLFxyXG5cdFx0XHRcdFNlc3Npb25JZDogdGhpcy5zZXNzaW9uSWQsXHJcblx0XHRcdFx0VGltZU1pbGxpc2Vjb25kczogZ2V0RHVyYXRpb24oKSxcclxuXHRcdFx0XHRUb2tlbkxlZ3RoOiB0b2tlbkxlbmd0aCxcclxuXHRcdFx0XHRUeXBlOiBhdXRoVG9rZW5Db25maWcuYXBwSWQsXHJcblx0XHRcdH07XHJcblx0XHR9XHJcblxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0Y29uc3QgcmV0VmFsID0gYXdhaXQgdGhpcy5hdXRoVG9rZW5DYWxsYmFjay5nZXRBdXRoVG9rZW4oYXV0aFRva2VuQ29uZmlnKTtcclxuXHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRFdmVudElkcy5FbmdhZ2VtZW50QXV0aFN1Y2Nlc3NmdWwsXHJcblx0XHRcdFx0Y3JlYXRlQXV0aFRlbGVtZXRyeUxvZ0RhdGEoXCJnZXRBdXRoVG9rZW4gU3VjY2Vzc2Z1bFwiLCByZXRWYWw/Lmxlbmd0aCksIHNhbXBsaW5nUmF0ZSk7XHJcblxyXG5cdFx0XHRyZXR1cm4gcmV0VmFsO1xyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRFdmVudElkcy5FbmdhZ2VtZW50QXV0aEVycm9yLFxyXG5cdFx0XHRcdGNyZWF0ZUF1dGhUZWxlbWV0cnlMb2dEYXRhKFwiRXJyb3IgZ2V0dGluZyB0b2tlbjpcIiArIGdldEVycm9yTWVzc2FnZShlcnJvcikpXHJcblx0XHRcdCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIG51bGw7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlZnJlc2hJdGVtc0luQ2FjaGVGcm9tVG1zU2VydmljZShjb250ZW50VHlwZXM6IENvbnRlbnRUeXBlW10pOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdGlmIChjb250ZW50VHlwZXMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBjaGVjayBpZiB0b3VjaGVkIGl0ZW1zIGFyZSBhY3R1YWxseSBkdWUgZm9yIHJlZnJlc2ggb3IgYXJlIHN0aWxsIHZhbGlkXHJcblx0XHRjb25zdCBidWxrUmVmcmVzaExpc3Q6IENvbnRlbnRUeXBlW10gPSBuZXcgQXJyYXk8Q29udGVudFR5cGU+KCk7XHJcblx0XHRmb3IgKGNvbnN0IGNvbnRlbnRUeXBlIG9mIGNvbnRlbnRUeXBlcykge1xyXG5cdFx0XHRpZiAoQ2FjaGluZy5pc0NhY2hlZFR5cGVFeHBpcmVkKENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW2NvbnRlbnRUeXBlXSkpIHtcclxuXHRcdFx0XHRidWxrUmVmcmVzaExpc3QucHVzaChjb250ZW50VHlwZSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoYnVsa1JlZnJlc2hMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG5cdFx0XHQvLyBleGl0IG91dCBpZiBhbGwgaXRlbXMgaW4gY2FjaGUgYXJlIHN0aWxsIHZhbGlkIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHNlcnZpY2Ugcm91bmR0cmlwc1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gYWx3YXlzIHJlcXVlc3QgZm9yIGR5bmFtaWMgc2V0dGluZ3NcclxuXHRcdGlmIChjb250ZW50VHlwZXMuaW5kZXhPZihDb250ZW50VHlwZS5keW5hbWljU2V0dGluZ3MpID09PSAtMSkge1xyXG5cdFx0XHRjb250ZW50VHlwZXMucHVzaChDb250ZW50VHlwZS5keW5hbWljU2V0dGluZ3MpO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIGdldCBhdXRoIHRva2VuIG9yIHVzZXIgaWRcclxuXHRcdGNvbnN0IGF1dGhUb2tlbkNvbmZpZzogSUF1dGhUb2tlbkNvbmZpZyA9IHtcclxuXHRcdFx0c2NlbmFyaW86ICdUTVMnLFxyXG5cdFx0XHRhcHBJZDogZ2V0RHluYW1pY1NldHRpbmcoU2V0dGluZ0tleS50dWxpcHNBcHBJZCwgVG1zZ0NvbnN0YW50cy5HVUlEcy5UTVNBcHBJRClcclxuXHRcdH07XHJcblxyXG5cdFx0Y29uc3QgYXV0aFRva2VuID0gYXdhaXQgdGhpcy5nZXRBdXRoVG9rZW4oYXV0aFRva2VuQ29uZmlnKTtcclxuXHRcdGxldCB1c2VyUHVpZDogc3RyaW5nO1xyXG5cdFx0aWYgKCFhdXRoVG9rZW4pIHtcclxuXHRcdFx0dXNlclB1aWQgPSB0aGlzLmF1dGhUb2tlbkNhbGxiYWNrLmdldFVzZXJQdWlkICYmIGF3YWl0IHRoaXMuYXV0aFRva2VuQ2FsbGJhY2suZ2V0VXNlclB1aWQoKTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCByZXF1ZXN0U3RhcnRUaW1lID0gK25ldyBEYXRlKCk7XHJcblxyXG5cdFx0Ly8gbWFrZSBzZXJ2aWNlIGNhbGwgZm9yIGV4cGlyZWQgb3IgdW5jYWNoZWQgaXRlbXNcclxuXHRcdHRyeSB7XHJcblx0XHRcdC8vIGNhcHR1cmUgYnJvd3NlciBkYXRhIHRvIHBlcmZvcm0gYWRkaXRpb25hbCBmaWx0ZXJzIG9uIElSSVNcclxuXHRcdFx0Ly8gdGhpcyBpcyB0byBhdm9pZCBzaG93aW5nIGJhZCBVSSBleHBlcmllbmNlIG9uIHVuc3VwcG9ydGVkIGJyb3dzZXJzL2RpbWVuc2lvbnNcclxuXHRcdFx0Y29uc3QgZG9jdW1lbnRFbGVtZW50ID0gZG9jdW1lbnQgJiYgKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF0pO1xyXG5cdFx0XHRjb25zdCBicm93c2VyUGFyYW1zOiBJUXVlcnlQYXJhbXMgPSB7XHJcblx0XHRcdFx0cGFnZVdpZHRoOiB3aW5kb3cuaW5uZXJXaWR0aCB8fCBkb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgsXHJcblx0XHRcdFx0cGFnZUhlaWdodDogd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQsXHJcblx0XHRcdFx0c2NyZWVuV2lkdGg6IHNjcmVlbiA/IHNjcmVlbi53aWR0aCA6IHVuZGVmaW5lZCxcclxuXHRcdFx0XHRzY3JlZW5IZWlnaHQ6IHNjcmVlbiA/IHNjcmVlbi5oZWlnaHQgOiB1bmRlZmluZWQsXHJcblx0XHRcdFx0Y29sb3JEZXB0aDogc2NyZWVuID8gc2NyZWVuLmNvbG9yRGVwdGggOiB1bmRlZmluZWQsXHJcblx0XHRcdH07XHJcblxyXG5cdFx0XHQvLyBhbGxvdyB0ZXN0aW5nIHdpdGggcXVlcnkgcGFyYW0gb3ZlcnJpZGVzIHdpdGgga2V5IG9iZi1EZWJ1Z092ZXJyaWRlc1xyXG5cdFx0XHQvLyBlZzoge1wiYWRkVG1zUXVlcnlQYXJhbXNcIjp7XCJrZXkxXCI6XCJrZXkxdmFsdWVcIn0sXCJyZXBsYWNlVG1zUXVlcnlQYXJhbXNcIjp7XCJrZXkyXCI6XCJrZXkydmFsdWVcIn0sIFwidG1zUmVzcG9uc2VcIjoge319XHJcblx0XHRcdGNvbnN0IGRlYnVnT3ZlcnJpZGVzID0gU3RvcmFnZS5yZWFkT2JqZWN0RnJvbVN0b3JhZ2U8SURlYnVnT3ZlcnJpZGVzPihcIm9iZi1EZWJ1Z092ZXJyaWRlc1wiLCB7fSk7XHJcblx0XHRcdGNvbnN0IHRtc1F1ZXJ5UGFyYW1zOiBJUXVlcnlQYXJhbXMgPSBkZWJ1Z092ZXJyaWRlcy5yZXBsYWNlVG1zUXVlcnlQYXJhbXMgfHwge1xyXG5cdFx0XHRcdGNvdW50cnk6IHRoaXMuY291bnRyeSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMubG9jYWxlLFxyXG5cdFx0XHRcdGFwcDogdGhpcy5hcHAsXHJcblx0XHRcdFx0cGxhdGZvcm06IHRoaXMucGxhdGZvcm0sXHJcblx0XHRcdFx0dmVyc2lvbjogdGhpcy52ZXJzaW9uLFxyXG5cdFx0XHRcdGNhbXBhaWduUGFyYW1zOiBidWlsZFF1ZXJ5UGFyYW1ldGVycyhicm93c2VyUGFyYW1zKSArIFwiJm1vcmU9dHJ1ZSZcIiArICh0aGlzLmNhbXBhaWduUGFyYW1ldGVycyB8fCBcIlwiKSxcclxuXHRcdFx0XHRjb250ZW50VHlwZTogY29udGVudFR5cGVzLmpvaW4oXCI7XCIpLFxyXG5cdFx0XHRcdHB1aWQ6IHVzZXJQdWlkLFxyXG5cdFx0XHRcdE9GQ19GTElHSFRTOiB0aGlzLmNhbXBhaWduRmxpZ2h0cyxcclxuXHRcdFx0XHQuLi4oZGVidWdPdmVycmlkZXMuYWRkVG1zUXVlcnlQYXJhbXMgfHwge30pLFxyXG5cdFx0XHRcdGFnZUdyb3VwOiB0aGlzLmFnZUdyb3VwLFxyXG5cdFx0XHRcdHNlc3Npb25Vc2VyVHlwZTogdGhpcy5hdXRoVHlwZSxcclxuXHRcdFx0XHRwYWNrYWdlVmVyc2lvbjogdGhpcy5wYWNrYWdlVmVyc2lvbixcclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdGNvbnN0IHJlc3BvbnNlOiBSZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoXHJcblx0XHRcdFx0dG1zUXVlcnlQYXJhbXMsXHJcblx0XHRcdFx0YXV0aFRva2VuLFxyXG5cdFx0XHRcdFNldHRpbmdLZXkudG1zU2VydmljZVVybCxcclxuXHRcdFx0XHR0aGlzLmNhbXBhaWduTWV0YWRhdGFBZ2dyZWdhdG9yUHJlZml4ICsgVG1zZ0NvbnN0YW50cy5UTVNfQ0FNUEFJR05NRVRBREFUQUFHR1JFR0FUT1JfRU5EUE9JTlQgKyBcIj9cIik7XHJcblx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xyXG5cdFx0XHRcdGNvbnN0IHRtc1NlcnZpY2VSZXNwb25zZTogSVRtc1NlcnZpY2VSZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcblx0XHRcdFx0aWYgKGNvbnRlbnRUeXBlcy5pbmRleE9mKENvbnRlbnRUeXBlLm1lc3NhZ2VNZXRhZGF0YSkgIT09IC0xXHJcblx0XHRcdFx0XHQmJiB0bXNTZXJ2aWNlUmVzcG9uc2UuTWVzc2FnZU1ldGFkYXRhICE9PSB1bmRlZmluZWQpIHtcclxuXHRcdFx0XHRcdENhY2hpbmcuc2F2ZVRvQ2FjaGUoXHJcblx0XHRcdFx0XHRcdENvbnRlbnRUeXBlLm1lc3NhZ2VNZXRhZGF0YSxcclxuXHRcdFx0XHRcdFx0dG1zU2VydmljZVJlc3BvbnNlLk1lc3NhZ2VNZXRhZGF0YSxcclxuXHRcdFx0XHRcdFx0Z2V0RHluYW1pY1NldHRpbmcoU2V0dGluZ0tleS50bXNNZXNzYWdlTWV0YWRhdGFFeHBpcnksIFRtc2dDb25zdGFudHMuQ0FDSEVfRVhQSVJZX01FU1NBR0VNRVRBREFUQSksXHJcblx0XHRcdFx0XHRcdENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW0NvbnRlbnRUeXBlLm1lc3NhZ2VNZXRhZGF0YV0pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0aWYgKGNvbnRlbnRUeXBlcy5pbmRleE9mKENvbnRlbnRUeXBlLnVzZXJHb3Zlcm5hbmNlUnVsZXMpICE9PSAtMVxyXG5cdFx0XHRcdFx0JiYgdG1zU2VydmljZVJlc3BvbnNlLlVzZXJHb3Zlcm5hbmNlUnVsZXMgIT09IHVuZGVmaW5lZCkge1xyXG5cdFx0XHRcdFx0Q2FjaGluZy5zYXZlVG9DYWNoZShcclxuXHRcdFx0XHRcdFx0Q29udGVudFR5cGUudXNlckdvdmVybmFuY2VSdWxlcyxcclxuXHRcdFx0XHRcdFx0dG1zU2VydmljZVJlc3BvbnNlLlVzZXJHb3Zlcm5hbmNlUnVsZXMsXHJcblx0XHRcdFx0XHRcdGdldER5bmFtaWNTZXR0aW5nKFNldHRpbmdLZXkudG1zVXNlckdvdmVybmFuY2VSdWxlc0V4cGlyeSwgVG1zZ0NvbnN0YW50cy5DQUNIRV9FWFBJUllfVVNFUkdPVkVSTkFOQ0VSVUxFUyksXHJcblx0XHRcdFx0XHRcdENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW0NvbnRlbnRUeXBlLnVzZXJHb3Zlcm5hbmNlUnVsZXNdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmIChjb250ZW50VHlwZXMuaW5kZXhPZihDb250ZW50VHlwZS5jYW1wYWlnbkNvbnRlbnQpICE9PSAtMVxyXG5cdFx0XHRcdFx0JiYgdG1zU2VydmljZVJlc3BvbnNlLkNhbXBhaWduQ29udGVudCAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRDYWNoaW5nLnNhdmVUb0NhY2hlKFxyXG5cdFx0XHRcdFx0XHRDb250ZW50VHlwZS5jYW1wYWlnbkNvbnRlbnQsXHJcblx0XHRcdFx0XHRcdHRtc1NlcnZpY2VSZXNwb25zZS5DYW1wYWlnbkNvbnRlbnQsXHJcblx0XHRcdFx0XHRcdGdldER5bmFtaWNTZXR0aW5nKFNldHRpbmdLZXkudG1zQ2FtcGFpZ25Db250ZW50RXhwaXJ5LCBUbXNnQ29uc3RhbnRzLkNBQ0hFX0VYUElSWV9DQU1QQUlHTkNPTlRFTlQpLFxyXG5cdFx0XHRcdFx0XHRDb250ZW50VHlwZVRvU3RvcmFnZUtleU1hcFtDb250ZW50VHlwZS5jYW1wYWlnbkNvbnRlbnRdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIFRoZXJlIGlzIG5vIGV4cGxpY2l0IHJlcXVlc3QgZm9yIHRoZSBuZXh0IHNldCBvZiBDb250ZW50VHlwZXMgaW4gdGhlIGNvZGVcclxuXHRcdFx0XHQvLyBJZiB0aGUgc2VydmVyIHJlc3BvbmRzIHdpdGggdGhlc2UgdHlwZXMgc2F2ZSBhbmQgdXNlIHRoZW0gbGF0ZXJcclxuXHRcdFx0XHRpZiAodG1zU2VydmljZVJlc3BvbnNlLkR5bmFtaWNTZXR0aW5ncyAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRDYWNoaW5nLnNhdmVUb0NhY2hlKFxyXG5cdFx0XHRcdFx0XHRDb250ZW50VHlwZS5keW5hbWljU2V0dGluZ3MsXHJcblx0XHRcdFx0XHRcdHRtc1NlcnZpY2VSZXNwb25zZS5EeW5hbWljU2V0dGluZ3MsXHJcblx0XHRcdFx0XHRcdGdldER5bmFtaWNTZXR0aW5nKFNldHRpbmdLZXkudG1zRHluYW1pY1NldHRpbmdzRXhwaXJ5LCBUbXNnQ29uc3RhbnRzLkNBQ0hFX0VYUElSWV9EWU5BTUlDU0VUVElOR1MpLFxyXG5cdFx0XHRcdFx0XHRDb250ZW50VHlwZVRvU3RvcmFnZUtleU1hcFtDb250ZW50VHlwZS5keW5hbWljU2V0dGluZ3NdKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICh0bXNTZXJ2aWNlUmVzcG9uc2UuTG9nTGV2ZWxTZXR0aW5ncyAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRDYWNoaW5nLnNhdmVUb0NhY2hlKFxyXG5cdFx0XHRcdFx0XHRDb250ZW50VHlwZS5sb2dMZXZlbFNldHRpbmdzLFxyXG5cdFx0XHRcdFx0XHR0bXNTZXJ2aWNlUmVzcG9uc2UuTG9nTGV2ZWxTZXR0aW5ncyxcclxuXHRcdFx0XHRcdFx0Z2V0RHluYW1pY1NldHRpbmcoU2V0dGluZ0tleS50bXNMb2dMZXZlbFNldHRpbmdzRXhwaXJ5LCBUbXNnQ29uc3RhbnRzLkNBQ0hFX0VYUElSWV9MT0dMRVZFTFNFVFRJTkdTKSxcclxuXHRcdFx0XHRcdFx0Q29udGVudFR5cGVUb1N0b3JhZ2VLZXlNYXBbQ29udGVudFR5cGUubG9nTGV2ZWxTZXR0aW5nc10pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRcdEV2ZW50SWRzLkNhbXBhaWduTWV0YWRhdGFBZ2dyZWdhdG9yUmVxdWVzdHMsXHJcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVRlbGVtZXRyeURhdGEocmVxdWVzdFN0YXJ0VGltZSwgcmVzcG9uc2UsIGNvbnRlbnRUeXBlcy5qb2luKFwiO1wiKSwgXHJcblx0XHRcdFx0XHRcdHRoaXMucGFyc2VDYW1wYWlnbklkRnJvbVJlc3BvbnNlKHRtc1NlcnZpY2VSZXNwb25zZT8uQ2FtcGFpZ25Db250ZW50Py5jYW1wYWlnbnMpKSBhcyBMb2dnaW5nLklDdXN0b21Mb2dEYXRhLFxyXG5cdFx0XHRcdFx0MC4wMSk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRcdEV2ZW50SWRzLkNhbXBhaWduTWV0YWRhdGFBZ2dyZWdhdG9yRXJyb3IsXHJcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVRlbGVtZXRyeURhdGEocmVxdWVzdFN0YXJ0VGltZSwgcmVzcG9uc2UsIGNvbnRlbnRUeXBlcy5qb2luKFwiO1wiKSkgYXMgTG9nZ2luZy5JQ3VzdG9tTG9nRGF0YSk7XHJcblx0XHRcdH1cclxuXHRcdH0gY2F0Y2ggKGVycm9yKSB7XHJcblx0XHRcdExvZ2dpbmcuZ2V0TG9nZ2VyKCkuZXZlbnQoXHJcblx0XHRcdFx0RXZlbnRJZHMuQ2FtcGFpZ25NZXRhZGF0YUFnZ3JlZ2F0b3JFcnJvcixcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRFcnJvck1lc3NhZ2U6IFwiRXJyb3IgZmV0Y2hpbmcgZnJvbSBUTVM6XCIgKyBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpLFxyXG5cdFx0XHRcdFx0Li4udGhpcy5jcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIG51bGwsIGNvbnRlbnRUeXBlcy5qb2luKFwiO1wiKSksXHJcblx0XHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGFzeW5jIHJlZnJlc2hJdGVtc0luQ2FjaGVGcm9tU3Vic3RyYXRlVHVsaXBzU2VydmljZShjb250ZW50VHlwZTogQ29udGVudFR5cGUpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdC8vIGNoZWNrIGlmIHRvdWNoZWQgaXRlbSBpcyBhY3R1YWxseSBkdWUgZm9yIHJlZnJlc2ggb3IgaXMgc3RpbGwgdmFsaWRcclxuXHRcdGlmICghQ2FjaGluZy5pc0NhY2hlZFR5cGVFeHBpcmVkKENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW2NvbnRlbnRUeXBlXSkpIHtcclxuXHRcdFx0Ly8gZXhpdCBvdXQgaWYgdGhlIGNhY2hlIGlzIHN0aWxsIHZhbGlkIHRvIGF2b2lkIHVubmVjZXNzYXJ5IHNlcnZpY2Ugcm91bmR0cmlwc1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3QgYXV0aFRva2VuQ29uZmlnOiBJQXV0aFRva2VuQ29uZmlnID0ge1xyXG5cdFx0XHRzY2VuYXJpbzogJ1R1bGlwc1N1YnN0cmF0ZScsXHJcblx0XHRcdGFwcElkOiBnZXREeW5hbWljU2V0dGluZyhTZXR0aW5nS2V5LnR1bGlwc0FwcElkLCBUbXNnQ29uc3RhbnRzLkdVSURzLlRVTElQU1N1YnN0cmF0ZUFwcElEKVxyXG5cdFx0fTtcclxuXHJcblx0XHRjb25zdCBhdXRoVG9rZW4gPSBhd2FpdCB0aGlzLmdldEF1dGhUb2tlbihhdXRoVG9rZW5Db25maWcpO1xyXG5cdFx0aWYgKCFhdXRoVG9rZW4pIHtcclxuXHRcdFx0Ly8gaWYgYXV0aFRva2VuIGlzIG51bGwgdGhlbiBleGl0IG91dCBzaW5jZSBzZXJ2aWNlIGNhbGwgY2Fubm90IGJlIG1hZGUgd2l0aG91dCBhdXRoVG9rZW5cclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHJlcXVlc3RTdGFydFRpbWUgPSArbmV3IERhdGUoKTtcclxuXHJcblx0XHQvLyBtYWtlIHNlcnZpY2UgY2FsbCBmb3IgZXhwaXJlZCBvciB1bmNhY2hlZCBpdGVtXHJcblx0XHR0cnkge1xyXG5cdFx0XHRjb25zdCByZXNwb25zZTogUmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KFxyXG5cdFx0XHRcdHt9LFxyXG5cdFx0XHRcdGF1dGhUb2tlbixcclxuXHRcdFx0XHRTZXR0aW5nS2V5LnR1bGlwc1NlcnZpY2VVcmwsXHJcblx0XHRcdFx0VG1zZ0NvbnN0YW50cy5UVUxJUFNfU0VSVklDRVVSTCk7XHJcblx0XHRcdGlmIChyZXNwb25zZS5zdGF0dXMgPT09IDIwMCB8fCByZXNwb25zZS5zdGF0dXMgPT09IDIwNCkge1xyXG5cdFx0XHRcdGNvbnN0IHR1bGlwc1NlcnZpY2VSZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcblx0XHRcdFx0aWYgKGNvbnRlbnRUeXBlLmluZGV4T2YoQ29udGVudFR5cGUudXNlckZhY3RzKSAhPT0gLTFcclxuXHRcdFx0XHRcdCYmIHR1bGlwc1NlcnZpY2VSZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7XHJcblx0XHRcdFx0XHRjb25zdCBub3JtYWxpemVkVXNlckZhY3RzID0gYWRkQ2xpZW50SW5nZXN0aW9uVGltZUFuZE5vcm1hbGl6ZUtleXModHVsaXBzU2VydmljZVJlc3BvbnNlKTtcclxuXHRcdFx0XHRcdENhY2hpbmcuc2F2ZVRvQ2FjaGUoXHJcblx0XHRcdFx0XHRcdFx0Q29udGVudFR5cGUudXNlckZhY3RzLFxyXG5cdFx0XHRcdFx0XHRcdG5vcm1hbGl6ZWRVc2VyRmFjdHMsXHJcblx0XHRcdFx0XHRcdFx0VG1zZ0NvbnN0YW50cy5DQUNIRV9FWFBJUllfVVNFUkZBQ1RTLFxyXG5cdFx0XHRcdFx0XHRcdENvbnRlbnRUeXBlVG9TdG9yYWdlS2V5TWFwW0NvbnRlbnRUeXBlLnVzZXJGYWN0c10pO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRcdEV2ZW50SWRzLlVzZXJGYWN0c01lc3NhZ2luZ1JlcXVlc3RzLFxyXG5cdFx0XHRcdFx0dGhpcy5jcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIHJlc3BvbnNlLCBjb250ZW50VHlwZSkgYXMgTG9nZ2luZy5JQ3VzdG9tTG9nRGF0YSwgLjAxKTtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRMb2dnaW5nLmdldExvZ2dlcigpLmV2ZW50KFxyXG5cdFx0XHRcdFx0RXZlbnRJZHMuVXNlckZhY3RzQ29tbW9uRXJyb3IsXHJcblx0XHRcdFx0XHR0aGlzLmNyZWF0ZVRlbGVtZXRyeURhdGEocmVxdWVzdFN0YXJ0VGltZSwgcmVzcG9uc2UsIGNvbnRlbnRUeXBlKSBhcyBMb2dnaW5nLklDdXN0b21Mb2dEYXRhKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCAoZXJyb3IpIHtcclxuXHRcdFx0TG9nZ2luZy5nZXRMb2dnZXIoKS5ldmVudChcclxuXHRcdFx0XHRFdmVudElkcy5Vc2VyRmFjdHNDb21tb25FcnJvcixcclxuXHRcdFx0XHR7XHJcblx0XHRcdFx0XHRFcnJvck1lc3NhZ2U6IFwiRXJyb3IgZmV0Y2hpbmcgZnJvbSBUVUxJUFM6XCIgKyBnZXRFcnJvck1lc3NhZ2UoZXJyb3IpLFxyXG5cdFx0XHRcdFx0Li4udGhpcy5jcmVhdGVUZWxlbWV0cnlEYXRhKHJlcXVlc3RTdGFydFRpbWUsIG51bGwsIGNvbnRlbnRUeXBlKSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingClient.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingConstants.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingConstants.js ***! \*************************************************************************************************************/ /*! exports provided: CACHE_EXPIRY_MESSAGEMETADATA, CACHE_EXPIRY_USERGOVERNANCERULES, CACHE_EXPIRY_CAMPAIGNCONTENT, CACHE_EXPIRY_DYNAMICSETTINGS, CACHE_EXPIRY_LOGLEVELSETTINGS, CACHE_EXPIRY_USERFACTS, TMS_CAMPAIGNMETADATAAGGREGATOR_ENDPOINT, TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_EDOG, TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_PROD, TMS_CAMPAIGN_LOAD_TIMEOUT, TMS_FETCH_TIMEOUT, TMS_SETCAMPAIGNACTION_ENDPOINT, TMS_SETCAMPAIGNACTION_PREFIX_EDOG, TMS_SETCAMPAIGNACTION_PREFIX_PROD, TULIPS_SERVICEURL, TULIPS_LOAD_TIMEOUT, TULIPS_FETCH_TIMEOUT, TULIPS_INGESTION_TIME, AUGLOOP_INIT_CHECK_RETRY_TIMES, GUIDs */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_MESSAGEMETADATA\", function() { return CACHE_EXPIRY_MESSAGEMETADATA; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_USERGOVERNANCERULES\", function() { return CACHE_EXPIRY_USERGOVERNANCERULES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_CAMPAIGNCONTENT\", function() { return CACHE_EXPIRY_CAMPAIGNCONTENT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_DYNAMICSETTINGS\", function() { return CACHE_EXPIRY_DYNAMICSETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_LOGLEVELSETTINGS\", function() { return CACHE_EXPIRY_LOGLEVELSETTINGS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CACHE_EXPIRY_USERFACTS\", function() { return CACHE_EXPIRY_USERFACTS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_CAMPAIGNMETADATAAGGREGATOR_ENDPOINT\", function() { return TMS_CAMPAIGNMETADATAAGGREGATOR_ENDPOINT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_EDOG\", function() { return TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_EDOG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_PROD\", function() { return TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_PROD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_CAMPAIGN_LOAD_TIMEOUT\", function() { return TMS_CAMPAIGN_LOAD_TIMEOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_FETCH_TIMEOUT\", function() { return TMS_FETCH_TIMEOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_SETCAMPAIGNACTION_ENDPOINT\", function() { return TMS_SETCAMPAIGNACTION_ENDPOINT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_SETCAMPAIGNACTION_PREFIX_EDOG\", function() { return TMS_SETCAMPAIGNACTION_PREFIX_EDOG; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TMS_SETCAMPAIGNACTION_PREFIX_PROD\", function() { return TMS_SETCAMPAIGNACTION_PREFIX_PROD; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TULIPS_SERVICEURL\", function() { return TULIPS_SERVICEURL; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TULIPS_LOAD_TIMEOUT\", function() { return TULIPS_LOAD_TIMEOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TULIPS_FETCH_TIMEOUT\", function() { return TULIPS_FETCH_TIMEOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TULIPS_INGESTION_TIME\", function() { return TULIPS_INGESTION_TIME; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AUGLOOP_INIT_CHECK_RETRY_TIMES\", function() { return AUGLOOP_INIT_CHECK_RETRY_TIMES; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"GUIDs\", function() { return GUIDs; });\nvar CACHE_EXPIRY_MESSAGEMETADATA = 14400000; // expiry in ms - 4hrs\nvar CACHE_EXPIRY_USERGOVERNANCERULES = 14400000; // expiry in ms - 4hrs\nvar CACHE_EXPIRY_CAMPAIGNCONTENT = 14400000; // expiry in ms - 4hrs\nvar CACHE_EXPIRY_DYNAMICSETTINGS = 14400000; // expiry in ms - 4hrs\nvar CACHE_EXPIRY_LOGLEVELSETTINGS = 14400000; // expiry in ms - 4hrs\nvar CACHE_EXPIRY_USERFACTS = 86400000; // expiry in ms - 24hrs\nvar TMS_CAMPAIGNMETADATAAGGREGATOR_ENDPOINT = \"campaignmetadataaggregator\";\nvar TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_EDOG = \"https://messaging.engagement.office.com/\";\nvar TMS_CAMPAIGNMETADATAAGGREGATOR_PREFIX_PROD = \"https://messaging.engagement.office.com/\";\nvar TMS_CAMPAIGN_LOAD_TIMEOUT = 3000;\nvar TMS_FETCH_TIMEOUT = 5000; // timeout for fetching tms service requests\nvar TMS_SETCAMPAIGNACTION_ENDPOINT = \"setcampaignaction\";\nvar TMS_SETCAMPAIGNACTION_PREFIX_EDOG = \"https://messaging.action.office.com/\";\nvar TMS_SETCAMPAIGNACTION_PREFIX_PROD = \"https://messaging.action.office.com/\";\nvar TULIPS_SERVICEURL = \"https://substrate.office.com/OfficePersonalizationUserLifecycle/api/facts\";\nvar TULIPS_LOAD_TIMEOUT = 3000;\nvar TULIPS_FETCH_TIMEOUT = 5000; // timeout for fetching tulips service requests\nvar TULIPS_INGESTION_TIME = 24 * 60 * 60 * 1000; // Tulips ingestion time\nvar AUGLOOP_INIT_CHECK_RETRY_TIMES = 5;\n/**\n * Constant GUIDs\n */\nvar GUIDs = /** @class */ (function () {\n function GUIDs() {\n }\n GUIDs.TMSAppID = \"4c4f550b-42b2-4a16-93f9-fdb9e01bb6ed\";\n GUIDs.TULIPSSubstrateAppID = \"05c88d91-956e-46b4-91b0-77a33cc21a4d\";\n return GUIDs;\n}());\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1RhcmdldGVkTWVzc2FnaW5nL1RhcmdldGVkTWVzc2FnaW5nQ29uc3RhbnRzLnRzP2U4NjkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQU8sSUFBTSw0QkFBNEIsR0FBRyxRQUFRLENBQUMsQ0FBQyxzQkFBc0I7QUFDckUsSUFBTSxnQ0FBZ0MsR0FBRyxRQUFRLENBQUMsQ0FBQyxzQkFBc0I7QUFDekUsSUFBTSw0QkFBNEIsR0FBRyxRQUFRLENBQUMsQ0FBQyxzQkFBc0I7QUFDckUsSUFBTSw0QkFBNEIsR0FBRyxRQUFRLENBQUMsQ0FBQyxzQkFBc0I7QUFDckUsSUFBTSw2QkFBNkIsR0FBRyxRQUFRLENBQUMsQ0FBQyxzQkFBc0I7QUFDdEUsSUFBTSxzQkFBc0IsR0FBRyxRQUFRLENBQUMsQ0FBQyx1QkFBdUI7QUFFaEUsSUFBTSx1Q0FBdUMsR0FBRyw0QkFBNEIsQ0FBQztBQUM3RSxJQUFNLDBDQUEwQyxHQUFHLDBDQUEwQyxDQUFDO0FBQzlGLElBQU0sMENBQTBDLEdBQUcsMENBQTBDLENBQUM7QUFFOUYsSUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFdkMsSUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQyw0Q0FBNEM7QUFFNUUsSUFBTSw4QkFBOEIsR0FBRyxtQkFBbUIsQ0FBQztBQUMzRCxJQUFNLGlDQUFpQyxHQUFHLHNDQUFzQyxDQUFDO0FBQ2pGLElBQU0saUNBQWlDLEdBQUcsc0NBQXNDLENBQUM7QUFFakYsSUFBTSxpQkFBaUIsR0FDN0IsMkVBQTJFLENBQUM7QUFFdEUsSUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7QUFFakMsSUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsQ0FBQywrQ0FBK0M7QUFFbEYsSUFBTSxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyx3QkFBd0I7QUFFM0UsSUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUM7QUFFaEQ7O0dBRUc7QUFDSDtJQUFBO0lBR0EsQ0FBQztJQUZjLGNBQVEsR0FBRyxzQ0FBc0MsQ0FBQztJQUNsRCwwQkFBb0IsR0FBRyxzQ0FBc0MsQ0FBQztJQUM3RSxZQUFDO0NBQUE7QUFIaUIiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvVGFyZ2V0ZWRNZXNzYWdpbmcvVGFyZ2V0ZWRNZXNzYWdpbmdDb25zdGFudHMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ0FDSEVfRVhQSVJZX01FU1NBR0VNRVRBREFUQSA9IDE0NDAwMDAwOyAvLyBleHBpcnkgaW4gbXMgLSA0aHJzXHJcbmV4cG9ydCBjb25zdCBDQUNIRV9FWFBJUllfVVNFUkdPVkVSTkFOQ0VSVUxFUyA9IDE0NDAwMDAwOyAvLyBleHBpcnkgaW4gbXMgLSA0aHJzXHJcbmV4cG9ydCBjb25zdCBDQUNIRV9FWFBJUllfQ0FNUEFJR05DT05URU5UID0gMTQ0MDAwMDA7IC8vIGV4cGlyeSBpbiBtcyAtIDRocnNcclxuZXhwb3J0IGNvbnN0IENBQ0hFX0VYUElSWV9EWU5BTUlDU0VUVElOR1MgPSAxNDQwMDAwMDsgLy8gZXhwaXJ5IGluIG1zIC0gNGhyc1xyXG5leHBvcnQgY29uc3QgQ0FDSEVfRVhQSVJZX0xPR0xFVkVMU0VUVElOR1MgPSAxNDQwMDAwMDsgLy8gZXhwaXJ5IGluIG1zIC0gNGhyc1xyXG5leHBvcnQgY29uc3QgQ0FDSEVfRVhQSVJZX1VTRVJGQUNUUyA9IDg2NDAwMDAwOyAvLyBleHBpcnkgaW4gbXMgLSAyNGhyc1xyXG5cclxuZXhwb3J0IGNvbnN0IFRNU19DQU1QQUlHTk1FVEFEQVRBQUdHUkVHQVRPUl9FTkRQT0lOVCA9IFwiY2FtcGFpZ25tZXRhZGF0YWFnZ3JlZ2F0b3JcIjtcclxuZXhwb3J0IGNvbnN0IFRNU19DQU1QQUlHTk1FVEFEQVRBQUdHUkVHQVRPUl9QUkVGSVhfRURPRyA9IFwiaHR0cHM6Ly9tZXNzYWdpbmcuZW5nYWdlbWVudC5vZmZpY2UuY29tL1wiO1xyXG5leHBvcnQgY29uc3QgVE1TX0NBTVBBSUdOTUVUQURBVEFBR0dSRUdBVE9SX1BSRUZJWF9QUk9EID0gXCJodHRwczovL21lc3NhZ2luZy5lbmdhZ2VtZW50Lm9mZmljZS5jb20vXCI7XHJcblxyXG5leHBvcnQgY29uc3QgVE1TX0NBTVBBSUdOX0xPQURfVElNRU9VVCA9IDMwMDA7XHJcblxyXG5leHBvcnQgY29uc3QgVE1TX0ZFVENIX1RJTUVPVVQgPSA1MDAwOyAvLyB0aW1lb3V0IGZvciBmZXRjaGluZyB0bXMgc2VydmljZSByZXF1ZXN0c1xyXG5cclxuZXhwb3J0IGNvbnN0IFRNU19TRVRDQU1QQUlHTkFDVElPTl9FTkRQT0lOVCA9IFwic2V0Y2FtcGFpZ25hY3Rpb25cIjtcclxuZXhwb3J0IGNvbnN0IFRNU19TRVRDQU1QQUlHTkFDVElPTl9QUkVGSVhfRURPRyA9IFwiaHR0cHM6Ly9tZXNzYWdpbmcuYWN0aW9uLm9mZmljZS5jb20vXCI7XHJcbmV4cG9ydCBjb25zdCBUTVNfU0VUQ0FNUEFJR05BQ1RJT05fUFJFRklYX1BST0QgPSBcImh0dHBzOi8vbWVzc2FnaW5nLmFjdGlvbi5vZmZpY2UuY29tL1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRVTElQU19TRVJWSUNFVVJMID1cclxuXHRcImh0dHBzOi8vc3Vic3RyYXRlLm9mZmljZS5jb20vT2ZmaWNlUGVyc29uYWxpemF0aW9uVXNlckxpZmVjeWNsZS9hcGkvZmFjdHNcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBUVUxJUFNfTE9BRF9USU1FT1VUID0gMzAwMDtcclxuXHJcbmV4cG9ydCBjb25zdCBUVUxJUFNfRkVUQ0hfVElNRU9VVCA9IDUwMDA7IC8vIHRpbWVvdXQgZm9yIGZldGNoaW5nIHR1bGlwcyBzZXJ2aWNlIHJlcXVlc3RzXHJcblxyXG5leHBvcnQgY29uc3QgVFVMSVBTX0lOR0VTVElPTl9USU1FID0gMjQgKiA2MCAqIDYwICogMTAwMDsgLy8gVHVsaXBzIGluZ2VzdGlvbiB0aW1lXHJcblxyXG5leHBvcnQgY29uc3QgQVVHTE9PUF9JTklUX0NIRUNLX1JFVFJZX1RJTUVTID0gNTtcclxuXHJcbi8qKlxyXG4gKiBDb25zdGFudCBHVUlEc1xyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEdVSURzIHtcclxuXHRwdWJsaWMgc3RhdGljIFRNU0FwcElEID0gXCI0YzRmNTUwYi00MmIyLTRhMTYtOTNmOS1mZGI5ZTAxYmI2ZWRcIjtcclxuXHRwdWJsaWMgc3RhdGljIFRVTElQU1N1YnN0cmF0ZUFwcElEID0gXCIwNWM4OGQ5MS05NTZlLTQ2YjQtOTFiMC03N2EzM2NjMjFhNGRcIjtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingConstants.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingTransport.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingTransport.js ***! \*************************************************************************************************************/ /*! exports provided: TargetedMessagingTransport */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TargetedMessagingTransport\", function() { return TargetedMessagingTransport; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _Polyfills_Fetch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Polyfills/Fetch */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Polyfills/Fetch.js\");\n/* harmony import */ var _Utils_Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Utils/Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n/* harmony import */ var _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./TargetedMessagingConstants */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingConstants.js\");\n\n\n\n\nvar isNOU = _Utils_Utils__WEBPACK_IMPORTED_MODULE_2__[\"isNOU\"];\nvar TargetedMessagingTransport = /** @class */ (function () {\n function TargetedMessagingTransport(sessionId) {\n this.sessionId = sessionId;\n }\n TargetedMessagingTransport.prototype.sendGetRequest = function (requestUrl, token, useTimeout, timeout) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var requestInit;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n requestInit = {\n method: \"GET\",\n headers: this.createHeaders(token),\n };\n return [2 /*return*/, useTimeout ?\n this.timeoutFetch(requestUrl, requestInit, timeout !== null && timeout !== void 0 ? timeout : _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_3__[\"TMS_FETCH_TIMEOUT\"]) :\n fetch(requestUrl, requestInit)];\n });\n });\n };\n TargetedMessagingTransport.prototype.sendPostRequest = function (requestUrl, requestBody, token, requestHeaders, useTimeout, timeout) {\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\n var requestInit;\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\n requestInit = {\n method: \"POST\",\n headers: this.createHeaders(token, requestHeaders),\n body: requestBody,\n };\n return [2 /*return*/, useTimeout ?\n this.timeoutFetch(requestUrl, requestInit, timeout !== null && timeout !== void 0 ? timeout : _TargetedMessagingConstants__WEBPACK_IMPORTED_MODULE_3__[\"TMS_FETCH_TIMEOUT\"]) :\n fetch(requestUrl, requestInit)];\n });\n });\n };\n TargetedMessagingTransport.prototype.createHeaders = function (token, requestHeaders) {\n var headers = typeof Headers !== \"undefined\" && new Headers();\n if (headers) {\n if (!isNOU(token)) {\n headers.append(\"Authorization\", \"Bearer \" + token);\n }\n if (!isNOU(requestHeaders)) {\n for (var key in requestHeaders) {\n if (Object.prototype.hasOwnProperty.call(requestHeaders, key)) {\n headers.append(key, requestHeaders[key]);\n }\n }\n }\n headers.append(\"X-CorrelationId\", _Utils_Utils__WEBPACK_IMPORTED_MODULE_2__[\"guid\"]());\n if (this.sessionId) {\n headers.append(\"X-UserSessionId\", this.sessionId);\n }\n }\n return headers;\n };\n TargetedMessagingTransport.prototype.timeoutFetch = function (input, init, timeout) {\n if (init === void 0) { init = {}; }\n return new Promise(function (resolve, reject) {\n fetch(input, init).then(resolve, reject);\n setTimeout(function () { return reject(new Error(\"Service request timed out\")); }, timeout);\n });\n };\n return TargetedMessagingTransport;\n}());\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1RhcmdldGVkTWVzc2FnaW5nL1RhcmdldGVkTWVzc2FnaW5nVHJhbnNwb3J0LnRzP2IzNjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUE0QjtBQUNZO0FBQ3FCO0FBRXJELFNBQUssR0FBSyxrREFBTCxDQUFXO0FBRXhCO0lBQ0Msb0NBQW9CLFNBQWtCO1FBQWxCLGNBQVMsR0FBVCxTQUFTLENBQVM7SUFDdEMsQ0FBQztJQUVZLG1EQUFjLEdBQTNCLFVBQTRCLFVBQWtCLEVBQUUsS0FBYyxFQUFFLFVBQW9CLEVBQUUsT0FBZ0I7Ozs7Z0JBQy9GLFdBQVcsR0FBRztvQkFDbkIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO2lCQUNsQyxDQUFDO2dCQUVGLHNCQUFPLFVBQVUsQ0FBQyxDQUFDO3dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksNkVBQThCLENBQUMsQ0FBQyxDQUFDO3dCQUN2RixLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFDOzs7S0FDaEM7SUFFWSxvREFBZSxHQUE1QixVQUNDLFVBQWtCLEVBQUUsV0FBbUIsRUFBRSxLQUFjLEVBQUUsY0FBdUMsRUFBRSxVQUFvQixFQUN0SCxPQUFnQjs7OztnQkFDVixXQUFXLEdBQUc7b0JBQ25CLE1BQU0sRUFBRSxNQUFNO29CQUNkLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUM7b0JBQ2xELElBQUksRUFBRSxXQUFXO2lCQUNqQixDQUFDO2dCQUVGLHNCQUFPLFVBQVUsQ0FBQyxDQUFDO3dCQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksNkVBQThCLENBQUMsQ0FBQyxDQUFDO3dCQUN2RixLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxFQUFDOzs7S0FDaEM7SUFFUyxrREFBYSxHQUF2QixVQUF3QixLQUFjLEVBQUUsY0FBdUM7UUFDOUUsSUFBTSxPQUFPLEdBQVksT0FBTyxPQUFPLEtBQUssV0FBVyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7UUFFekUsSUFBSSxPQUFPLEVBQUU7WUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNsQixPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUM7YUFDbkQ7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUMzQixLQUFLLElBQU0sR0FBRyxJQUFJLGNBQWMsRUFBRTtvQkFDakMsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxFQUFFO3dCQUM5RCxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztxQkFDekM7aUJBQ0Q7YUFDRDtZQUVELE9BQU8sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsaURBQVUsRUFBRSxDQUFDLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNsRDtTQUNEO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQztJQUVPLGlEQUFZLEdBQXBCLFVBQXFCLEtBQWtCLEVBQUUsSUFBc0IsRUFBRSxPQUFlO1FBQXZDLGdDQUFzQjtRQUM5RCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07WUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3pDLFVBQVUsQ0FBQyxjQUFNLGFBQU0sQ0FDdEIsSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxFQUR2QixDQUN1QixFQUN2QyxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNGLGlDQUFDO0FBQUQsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9UYXJnZXRlZE1lc3NhZ2luZy9UYXJnZXRlZE1lc3NhZ2luZ1RyYW5zcG9ydC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4uL1BvbHlmaWxscy9GZXRjaFwiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi4vVXRpbHMvVXRpbHNcIjtcclxuaW1wb3J0ICogYXMgVG1zQ29uc3RhbnRzIGZyb20gXCIuL1RhcmdldGVkTWVzc2FnaW5nQ29uc3RhbnRzXCI7XHJcblxyXG5jb25zdCB7IGlzTk9VIH0gPSBVdGlscztcclxuXHJcbmV4cG9ydCBjbGFzcyBUYXJnZXRlZE1lc3NhZ2luZ1RyYW5zcG9ydCB7XHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBzZXNzaW9uSWQ/OiBzdHJpbmcpIHtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBzZW5kR2V0UmVxdWVzdChyZXF1ZXN0VXJsOiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCB1c2VUaW1lb3V0PzogYm9vbGVhbiwgdGltZW91dD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRcdGNvbnN0IHJlcXVlc3RJbml0ID0ge1xyXG5cdFx0XHRtZXRob2Q6IFwiR0VUXCIsXHJcblx0XHRcdGhlYWRlcnM6IHRoaXMuY3JlYXRlSGVhZGVycyh0b2tlbiksXHJcblx0XHR9O1xyXG5cclxuXHRcdHJldHVybiB1c2VUaW1lb3V0ID9cclxuXHRcdFx0dGhpcy50aW1lb3V0RmV0Y2gocmVxdWVzdFVybCwgcmVxdWVzdEluaXQsIHRpbWVvdXQgPz8gVG1zQ29uc3RhbnRzLlRNU19GRVRDSF9USU1FT1VUKSA6XHJcblx0XHRcdGZldGNoKHJlcXVlc3RVcmwsIHJlcXVlc3RJbml0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBhc3luYyBzZW5kUG9zdFJlcXVlc3QoXHJcblx0XHRyZXF1ZXN0VXJsOiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCByZXF1ZXN0SGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHVzZVRpbWVvdXQ/OiBib29sZWFuLFxyXG5cdFx0dGltZW91dD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRcdGNvbnN0IHJlcXVlc3RJbml0ID0ge1xyXG5cdFx0XHRtZXRob2Q6IFwiUE9TVFwiLFxyXG5cdFx0XHRoZWFkZXJzOiB0aGlzLmNyZWF0ZUhlYWRlcnModG9rZW4sIHJlcXVlc3RIZWFkZXJzKSxcclxuXHRcdFx0Ym9keTogcmVxdWVzdEJvZHksXHJcblx0XHR9O1xyXG5cclxuXHRcdHJldHVybiB1c2VUaW1lb3V0ID9cclxuXHRcdFx0dGhpcy50aW1lb3V0RmV0Y2gocmVxdWVzdFVybCwgcmVxdWVzdEluaXQsIHRpbWVvdXQgPz8gVG1zQ29uc3RhbnRzLlRNU19GRVRDSF9USU1FT1VUKSA6XHJcblx0XHRcdGZldGNoKHJlcXVlc3RVcmwsIHJlcXVlc3RJbml0KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBjcmVhdGVIZWFkZXJzKHRva2VuPzogc3RyaW5nLCByZXF1ZXN0SGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBIZWFkZXJzIHtcclxuXHRcdGNvbnN0IGhlYWRlcnM6IEhlYWRlcnMgPSB0eXBlb2YgSGVhZGVycyAhPT0gXCJ1bmRlZmluZWRcIiAmJiBuZXcgSGVhZGVycygpO1xyXG5cclxuXHRcdGlmIChoZWFkZXJzKSB7XHJcblx0XHRcdGlmICghaXNOT1UodG9rZW4pKSB7XHJcblx0XHRcdFx0aGVhZGVycy5hcHBlbmQoXCJBdXRob3JpemF0aW9uXCIsIFwiQmVhcmVyIFwiICsgdG9rZW4pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIWlzTk9VKHJlcXVlc3RIZWFkZXJzKSkge1xyXG5cdFx0XHRcdGZvciAoY29uc3Qga2V5IGluIHJlcXVlc3RIZWFkZXJzKSB7XHJcblx0XHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVlc3RIZWFkZXJzLCBrZXkpKSB7XHJcblx0XHRcdFx0XHRcdGhlYWRlcnMuYXBwZW5kKGtleSwgcmVxdWVzdEhlYWRlcnNba2V5XSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRoZWFkZXJzLmFwcGVuZChcIlgtQ29ycmVsYXRpb25JZFwiLCBVdGlscy5ndWlkKCkpO1xyXG5cdFx0XHRpZiAodGhpcy5zZXNzaW9uSWQpIHtcclxuXHRcdFx0XHRoZWFkZXJzLmFwcGVuZChcIlgtVXNlclNlc3Npb25JZFwiLCB0aGlzLnNlc3Npb25JZCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gaGVhZGVycztcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgdGltZW91dEZldGNoKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdDogUmVxdWVzdEluaXQgPSB7fSwgdGltZW91dDogbnVtYmVyKTogUHJvbWlzZTxSZXNwb25zZT4ge1xyXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdFx0ZmV0Y2goaW5wdXQsIGluaXQpLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTtcclxuXHRcdFx0c2V0VGltZW91dCgoKSA9PiByZWplY3QoXHJcblx0XHRcdFx0bmV3IEVycm9yKFwiU2VydmljZSByZXF1ZXN0IHRpbWVkIG91dFwiKSksXHJcblx0XHRcdFx0dGltZW91dCk7XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/TargetedMessaging/TargetedMessagingTransport.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js": /*!******************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js ***! \******************************************************************************/ /*! exports provided: saveToCache, updateCache, getCachedContent, getValidCachedContent, isCachedTypeExpired, createItem */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"saveToCache\", function() { return saveToCache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"updateCache\", function() { return updateCache; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCachedContent\", function() { return getCachedContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getValidCachedContent\", function() { return getValidCachedContent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isCachedTypeExpired\", function() { return isCachedTypeExpired; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createItem\", function() { return createItem; });\n/* harmony import */ var _Storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Storage */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js\");\n\nfunction saveToCache(contentType, content, expiryTime, storageKey) {\n var cacheItem = createItem(contentType, content, expiryTime);\n setItem(cacheItem, storageKey);\n return cacheItem;\n}\nfunction updateCache(contentType, content, expiryTime, storageKey) {\n var cacheItem = getItem(storageKey);\n if (!cacheItem) {\n return saveToCache(contentType, content, expiryTime, storageKey);\n }\n cacheItem.content = content;\n setItem(cacheItem, storageKey);\n return cacheItem;\n}\nfunction getCachedContent(storageKey) {\n var cacheItem = getItem(storageKey);\n return cacheItem && cacheItem.content;\n}\nfunction getValidCachedContent(storageKey, defaultValue) {\n var cacheItem = getItem(storageKey);\n return isCacheItemExpired(cacheItem) ? defaultValue : cacheItem.content;\n}\nfunction isCachedTypeExpired(storageKey) {\n var cacheItem = getItem(storageKey);\n return isCacheItemExpired(cacheItem);\n}\nfunction createItem(contentType, content, expiryTime) {\n var cacheItem = {\n contentType: contentType,\n content: content,\n expiryDate: new Date(Date.now() + expiryTime),\n lastRetrievedDate: new Date(),\n };\n return cacheItem;\n}\nfunction isCacheItemExpired(cacheItem) {\n return !cacheItem\n || !cacheItem.expiryDate\n || cacheItem.expiryDate < new Date();\n}\nfunction setItem(cacheItem, storageKey) {\n Object(_Storage__WEBPACK_IMPORTED_MODULE_0__[\"writeToStorage\"])(storageKey !== null && storageKey !== void 0 ? storageKey : cacheItem.contentType, cacheItem);\n}\nfunction getItem(storageKey) {\n var cachedItem = Object(_Storage__WEBPACK_IMPORTED_MODULE_0__[\"readObjectFromStorage\"])(storageKey);\n if (cachedItem) {\n cachedItem.expiryDate = typeof cachedItem.expiryDate === \"string\" ?\n new Date(cachedItem.expiryDate) : cachedItem.expiryDate;\n }\n return cachedItem;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL0NhY2hpbmcudHM/OTRkMSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQWtFO0FBUzNELFNBQVMsV0FBVyxDQUFDLFdBQXdCLEVBQUUsT0FBWSxFQUFFLFVBQWtCLEVBQUUsVUFBbUI7SUFDMUcsSUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0QsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQixPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDO0FBRU0sU0FBUyxXQUFXLENBQUMsV0FBd0IsRUFBRSxPQUFZLEVBQUUsVUFBa0IsRUFBRSxVQUFtQjtJQUMxRyxJQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtRQUNmLE9BQU8sV0FBVyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0tBQ2pFO0lBRUQsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDNUIsT0FBTyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvQixPQUFPLFNBQVMsQ0FBQztBQUNsQixDQUFDO0FBRU0sU0FBUyxnQkFBZ0IsQ0FBSSxVQUFrQjtJQUNyRCxJQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsT0FBTyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQztBQUN2QyxDQUFDO0FBRU0sU0FBUyxxQkFBcUIsQ0FBSSxVQUFrQixFQUFFLFlBQWU7SUFDM0UsSUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQztBQUN6RSxDQUFDO0FBRU0sU0FBUyxtQkFBbUIsQ0FBQyxVQUFrQjtJQUNyRCxJQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QyxDQUFDO0FBRU0sU0FBUyxVQUFVLENBQUMsV0FBd0IsRUFBRSxPQUFZLEVBQUUsVUFBa0I7SUFDcEYsSUFBTSxTQUFTLEdBQWU7UUFDN0IsV0FBVztRQUNYLE9BQU87UUFDUCxVQUFVLEVBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUM5QyxpQkFBaUIsRUFBRSxJQUFJLElBQUksRUFBRTtLQUM3QixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsU0FBcUI7SUFDaEQsT0FBTyxDQUFDLFNBQVM7V0FDYixDQUFDLFNBQVMsQ0FBQyxVQUFVO1dBQ3JCLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsU0FBcUIsRUFBRSxVQUFtQjtJQUMxRCwrREFBYyxDQUFDLFVBQVUsYUFBVixVQUFVLGNBQVYsVUFBVSxHQUFJLFNBQVMsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsT0FBTyxDQUFDLFVBQWtCO0lBQ2xDLElBQU0sVUFBVSxHQUFHLHNFQUFxQixDQUFhLFVBQVUsQ0FBQyxDQUFDO0lBQ2pFLElBQUksVUFBVSxFQUFFO1FBQ2YsVUFBVSxDQUFDLFVBQVUsR0FBRyxPQUFPLFVBQVUsQ0FBQyxVQUFVLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDbEUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO0tBQ3pEO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDbkIsQ0FBQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMtb2ZiL29mZmljZXBlcnNvbmFsaXphdGlvbi9kaXN0L2xpYi9VdGlscy9DYWNoaW5nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29udGVudFR5cGUgfSBmcm9tIFwiLi4vQ29tbW9uL0NvbnRlbnRUeXBlXCI7XHJcbmltcG9ydCB7IHJlYWRPYmplY3RGcm9tU3RvcmFnZSwgd3JpdGVUb1N0b3JhZ2UgfSBmcm9tIFwiLi9TdG9yYWdlXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElDYWNoZUl0ZW0ge1xyXG5cdGNvbnRlbnRUeXBlOiBDb250ZW50VHlwZTtcclxuXHRjb250ZW50OiBhbnk7XHJcblx0ZXhwaXJ5RGF0ZTogRGF0ZTtcclxuXHRsYXN0UmV0cmlldmVkRGF0ZTogRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVUb0NhY2hlKGNvbnRlbnRUeXBlOiBDb250ZW50VHlwZSwgY29udGVudDogYW55LCBleHBpcnlUaW1lOiBudW1iZXIsIHN0b3JhZ2VLZXk/OiBzdHJpbmcpOiBJQ2FjaGVJdGVtIHtcclxuXHRjb25zdCBjYWNoZUl0ZW0gPSBjcmVhdGVJdGVtKGNvbnRlbnRUeXBlLCBjb250ZW50LCBleHBpcnlUaW1lKTtcclxuXHRzZXRJdGVtKGNhY2hlSXRlbSwgc3RvcmFnZUtleSk7XHJcblx0cmV0dXJuIGNhY2hlSXRlbTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNhY2hlKGNvbnRlbnRUeXBlOiBDb250ZW50VHlwZSwgY29udGVudDogYW55LCBleHBpcnlUaW1lOiBudW1iZXIsIHN0b3JhZ2VLZXk/OiBzdHJpbmcpOiBJQ2FjaGVJdGVtIHtcclxuXHRjb25zdCBjYWNoZUl0ZW0gPSBnZXRJdGVtKHN0b3JhZ2VLZXkpO1xyXG5cdGlmICghY2FjaGVJdGVtKSB7XHJcblx0XHRyZXR1cm4gc2F2ZVRvQ2FjaGUoY29udGVudFR5cGUsIGNvbnRlbnQsIGV4cGlyeVRpbWUsIHN0b3JhZ2VLZXkpO1xyXG5cdH1cclxuXHJcblx0Y2FjaGVJdGVtLmNvbnRlbnQgPSBjb250ZW50O1xyXG5cdHNldEl0ZW0oY2FjaGVJdGVtLCBzdG9yYWdlS2V5KTtcclxuXHRyZXR1cm4gY2FjaGVJdGVtO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2FjaGVkQ29udGVudDxUPihzdG9yYWdlS2V5OiBzdHJpbmcpOiBUIHtcclxuXHRjb25zdCBjYWNoZUl0ZW0gPSBnZXRJdGVtKHN0b3JhZ2VLZXkpO1xyXG5cdHJldHVybiBjYWNoZUl0ZW0gJiYgY2FjaGVJdGVtLmNvbnRlbnQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRWYWxpZENhY2hlZENvbnRlbnQ8VD4oc3RvcmFnZUtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU6IFQpOiBUIHtcclxuXHRjb25zdCBjYWNoZUl0ZW0gPSBnZXRJdGVtKHN0b3JhZ2VLZXkpO1xyXG5cdHJldHVybiBpc0NhY2hlSXRlbUV4cGlyZWQoY2FjaGVJdGVtKSA/IGRlZmF1bHRWYWx1ZSA6IGNhY2hlSXRlbS5jb250ZW50O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gaXNDYWNoZWRUeXBlRXhwaXJlZChzdG9yYWdlS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRjb25zdCBjYWNoZUl0ZW0gPSBnZXRJdGVtKHN0b3JhZ2VLZXkpO1xyXG5cdHJldHVybiBpc0NhY2hlSXRlbUV4cGlyZWQoY2FjaGVJdGVtKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUl0ZW0oY29udGVudFR5cGU6IENvbnRlbnRUeXBlLCBjb250ZW50OiBhbnksIGV4cGlyeVRpbWU6IG51bWJlcik6IElDYWNoZUl0ZW0ge1xyXG5cdGNvbnN0IGNhY2hlSXRlbTogSUNhY2hlSXRlbSA9IHtcclxuXHRcdGNvbnRlbnRUeXBlLFxyXG5cdFx0Y29udGVudCxcclxuXHRcdGV4cGlyeURhdGU6ICBuZXcgRGF0ZShEYXRlLm5vdygpICsgZXhwaXJ5VGltZSksXHJcblx0XHRsYXN0UmV0cmlldmVkRGF0ZTogbmV3IERhdGUoKSxcclxuXHR9O1xyXG5cclxuXHRyZXR1cm4gY2FjaGVJdGVtO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0NhY2hlSXRlbUV4cGlyZWQoY2FjaGVJdGVtOiBJQ2FjaGVJdGVtKTogYm9vbGVhbiB7XHJcblx0cmV0dXJuICFjYWNoZUl0ZW1cclxuXHRcdHx8ICFjYWNoZUl0ZW0uZXhwaXJ5RGF0ZVxyXG5cdFx0fHwgY2FjaGVJdGVtLmV4cGlyeURhdGUgPCBuZXcgRGF0ZSgpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZXRJdGVtKGNhY2hlSXRlbTogSUNhY2hlSXRlbSwgc3RvcmFnZUtleT86IHN0cmluZyk6IHZvaWQge1xyXG5cdHdyaXRlVG9TdG9yYWdlKHN0b3JhZ2VLZXkgPz8gY2FjaGVJdGVtLmNvbnRlbnRUeXBlLCBjYWNoZUl0ZW0pO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRJdGVtKHN0b3JhZ2VLZXk6IHN0cmluZyk6IElDYWNoZUl0ZW0ge1xyXG5cdGNvbnN0IGNhY2hlZEl0ZW0gPSByZWFkT2JqZWN0RnJvbVN0b3JhZ2U8SUNhY2hlSXRlbT4oc3RvcmFnZUtleSk7XHJcblx0aWYgKGNhY2hlZEl0ZW0pIHtcclxuXHRcdGNhY2hlZEl0ZW0uZXhwaXJ5RGF0ZSA9IHR5cGVvZiBjYWNoZWRJdGVtLmV4cGlyeURhdGUgPT09IFwic3RyaW5nXCIgP1xyXG5cdFx0XHRuZXcgRGF0ZShjYWNoZWRJdGVtLmV4cGlyeURhdGUpIDogY2FjaGVkSXRlbS5leHBpcnlEYXRlO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGNhY2hlZEl0ZW07XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Caching.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js": /*!******************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js ***! \******************************************************************************/ /*! exports provided: isStorageAvailable, readObjectFromStorage, writeToStorage */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isStorageAvailable\", function() { return isStorageAvailable; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"readObjectFromStorage\", function() { return readObjectFromStorage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"writeToStorage\", function() { return writeToStorage; });\n/* harmony import */ var _Utils_Window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Utils/Window */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Window.js\");\n/**\n * Local storage wrapper\n */\n\n/**\n * Code to detect localStorage presence.\n * Copied from MDN: https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n */\nfunction isStorageAvailable() {\n try {\n var x = \"__storage_test__\";\n _Utils_Window__WEBPACK_IMPORTED_MODULE_0__[\"getGlobal\"]().localStorage.setItem(x, x);\n _Utils_Window__WEBPACK_IMPORTED_MODULE_0__[\"getGlobal\"]().localStorage.removeItem(x);\n return true;\n }\n catch (e) {\n return e instanceof DOMException && (\n // everything except Firefox\n e.code === 22 ||\n // Firefox\n e.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n e.name === \"QuotaExceededError\" ||\n // Firefox\n e.name === \"NS_ERROR_DOM_QUOTA_REACHED\") &&\n // acknowledge QuotaExceededError only if there's something already stored\n _Utils_Window__WEBPACK_IMPORTED_MODULE_0__[\"getGlobal\"]().localStorage.length !== 0;\n }\n}\n/**\n * Safely read an object\n */\nfunction readObjectFromStorage(storageKey, defaultValue) {\n if (!storageKey) {\n return defaultValue;\n }\n try {\n var result = _Utils_Window__WEBPACK_IMPORTED_MODULE_0__[\"getGlobal\"]().localStorage.getItem(storageKey);\n var parsedObject = result && (result[0] === \"{\" || result[0] === \"[\") ? JSON.parse(result) : result;\n return parsedObject !== null && parsedObject !== void 0 ? parsedObject : defaultValue;\n }\n catch (e) {\n // ignore\n }\n return defaultValue;\n}\n/**\n * Write to the localStorage\n */\nfunction writeToStorage(storageKey, content) {\n if (!storageKey || !content) {\n return;\n }\n try {\n var contentString = typeof content === \"string\" ? content : JSON.stringify(content);\n _Utils_Window__WEBPACK_IMPORTED_MODULE_0__[\"getGlobal\"]().localStorage.setItem(storageKey, contentString);\n }\n catch (e) {\n // ignore\n }\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL1N0b3JhZ2UudHM/ZTBjNSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0dBRUc7QUFFdUM7QUFFMUM7OztHQUdHO0FBQ0ksU0FBUyxrQkFBa0I7SUFDakMsSUFBSTtRQUNILElBQU0sQ0FBQyxHQUFHLGtCQUFrQixDQUFDO1FBQzdCLHVEQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsdURBQWdCLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDO0tBQ1o7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNYLE9BQU8sQ0FBQyxZQUFZLFlBQVksSUFBSTtRQUNuQyw0QkFBNEI7UUFDNUIsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFO1lBQ2IsVUFBVTtZQUNWLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUNmLHlEQUF5RDtZQUN6RCw0QkFBNEI7WUFDNUIsQ0FBQyxDQUFDLElBQUksS0FBSyxvQkFBb0I7WUFDL0IsVUFBVTtZQUNWLENBQUMsQ0FBQyxJQUFJLEtBQUssNEJBQTRCLENBQUM7WUFDeEMsMEVBQTBFO1lBQzFFLHVEQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7S0FDOUM7QUFDRixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxTQUFTLHFCQUFxQixDQUFJLFVBQWtCLEVBQUUsWUFBZ0I7SUFDNUUsSUFBSSxDQUFDLFVBQVUsRUFBRTtRQUNoQixPQUFPLFlBQVksQ0FBQztLQUNwQjtJQUVELElBQUk7UUFDSCxJQUFNLE1BQU0sR0FBRyx1REFBZ0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkUsSUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN0RyxPQUFPLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLFlBQVksQ0FBQztLQUNwQztJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gsU0FBUztLQUNUO0lBRUQsT0FBTyxZQUFZLENBQUM7QUFDckIsQ0FBQztBQUVEOztHQUVHO0FBQ0ksU0FBUyxjQUFjLENBQUksVUFBa0IsRUFBRSxPQUFVO0lBQy9ELElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDNUIsT0FBTztLQUNQO0lBRUQsSUFBSTtRQUNILElBQU0sYUFBYSxHQUFHLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RGLHVEQUFnQixFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLENBQUM7S0FDbkU7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNYLFNBQVM7S0FDVDtBQUNGLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvVXRpbHMvU3RvcmFnZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBMb2NhbCBzdG9yYWdlIHdyYXBwZXJcclxuICovXHJcblxyXG5pbXBvcnQgKiBhcyBXaW5kb3cgZnJvbSBcIi4uL1V0aWxzL1dpbmRvd1wiO1xyXG5cclxuLyoqXHJcbiAqIENvZGUgdG8gZGV0ZWN0IGxvY2FsU3RvcmFnZSBwcmVzZW5jZS5cclxuICogQ29waWVkIGZyb20gTUROOiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvV2ViX1N0b3JhZ2VfQVBJL1VzaW5nX3RoZV9XZWJfU3RvcmFnZV9BUElcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N0b3JhZ2VBdmFpbGFibGUoKTogYm9vbGVhbiB7XHJcblx0dHJ5IHtcclxuXHRcdGNvbnN0IHggPSBcIl9fc3RvcmFnZV90ZXN0X19cIjtcclxuXHRcdFdpbmRvdy5nZXRHbG9iYWwoKS5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSh4LCB4KTtcclxuXHRcdFdpbmRvdy5nZXRHbG9iYWwoKS5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh4KTtcclxuXHRcdHJldHVybiB0cnVlO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdHJldHVybiBlIGluc3RhbmNlb2YgRE9NRXhjZXB0aW9uICYmIChcclxuXHRcdFx0Ly8gZXZlcnl0aGluZyBleGNlcHQgRmlyZWZveFxyXG5cdFx0XHRlLmNvZGUgPT09IDIyIHx8XHJcblx0XHRcdC8vIEZpcmVmb3hcclxuXHRcdFx0ZS5jb2RlID09PSAxMDE0IHx8XHJcblx0XHRcdC8vIHRlc3QgbmFtZSBmaWVsZCB0b28sIGJlY2F1c2UgY29kZSBtaWdodCBub3QgYmUgcHJlc2VudFxyXG5cdFx0XHQvLyBldmVyeXRoaW5nIGV4Y2VwdCBGaXJlZm94XHJcblx0XHRcdGUubmFtZSA9PT0gXCJRdW90YUV4Y2VlZGVkRXJyb3JcIiB8fFxyXG5cdFx0XHQvLyBGaXJlZm94XHJcblx0XHRcdGUubmFtZSA9PT0gXCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRFwiKSAmJlxyXG5cdFx0XHQvLyBhY2tub3dsZWRnZSBRdW90YUV4Y2VlZGVkRXJyb3Igb25seSBpZiB0aGVyZSdzIHNvbWV0aGluZyBhbHJlYWR5IHN0b3JlZFxyXG5cdFx0XHRXaW5kb3cuZ2V0R2xvYmFsKCkubG9jYWxTdG9yYWdlLmxlbmd0aCAhPT0gMDtcclxuXHR9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTYWZlbHkgcmVhZCBhbiBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZWFkT2JqZWN0RnJvbVN0b3JhZ2U8VD4oc3RvcmFnZUtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XHJcblx0aWYgKCFzdG9yYWdlS2V5KSB7XHJcblx0XHRyZXR1cm4gZGVmYXVsdFZhbHVlO1xyXG5cdH1cclxuXHJcblx0dHJ5IHtcclxuXHRcdGNvbnN0IHJlc3VsdCA9IFdpbmRvdy5nZXRHbG9iYWwoKS5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShzdG9yYWdlS2V5KTtcclxuXHRcdGNvbnN0IHBhcnNlZE9iamVjdCA9IHJlc3VsdCAmJiAocmVzdWx0WzBdID09PSBcIntcIiB8fCByZXN1bHRbMF0gPT09IFwiW1wiKSA/IEpTT04ucGFyc2UocmVzdWx0KSA6IHJlc3VsdDtcclxuXHRcdHJldHVybiBwYXJzZWRPYmplY3QgPz8gZGVmYXVsdFZhbHVlO1xyXG5cdH0gY2F0Y2ggKGUpIHtcclxuXHRcdC8vIGlnbm9yZVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIGRlZmF1bHRWYWx1ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFdyaXRlIHRvIHRoZSBsb2NhbFN0b3JhZ2VcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB3cml0ZVRvU3RvcmFnZTxUPihzdG9yYWdlS2V5OiBzdHJpbmcsIGNvbnRlbnQ6IFQpOiB2b2lkIHtcclxuXHRpZiAoIXN0b3JhZ2VLZXkgfHwgIWNvbnRlbnQpIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblxyXG5cdHRyeSB7XHJcblx0XHRjb25zdCBjb250ZW50U3RyaW5nID0gdHlwZW9mIGNvbnRlbnQgPT09IFwic3RyaW5nXCIgPyBjb250ZW50IDogSlNPTi5zdHJpbmdpZnkoY29udGVudCk7XHJcblx0XHRXaW5kb3cuZ2V0R2xvYmFsKCkubG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwgY29udGVudFN0cmluZyk7XHJcblx0fSBjYXRjaCAoZSkge1xyXG5cdFx0Ly8gaWdub3JlXHJcblx0fVxyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Storage.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Transport.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Transport.js ***! \********************************************************************************/ /*! exports provided: FETCH_TIMEOUT, sendGetRequest, sendPostRequest */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"FETCH_TIMEOUT\", function() { return FETCH_TIMEOUT; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendGetRequest\", function() { return sendGetRequest; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"sendPostRequest\", function() { return sendPostRequest; });\n/* harmony import */ var _Polyfills_Fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Polyfills/Fetch */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Polyfills/Fetch.js\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Utils */ \"./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\");\n\n\nvar FETCH_TIMEOUT = 5000;\nfunction sendGetRequest(requestUrl, token, sessionId, useTimeout, timeout) {\n var requestInit = {\n method: \"GET\",\n headers: createHeaders(token, null, sessionId),\n };\n return useTimeout ?\n timeoutFetch(requestUrl, requestInit, timeout !== null && timeout !== void 0 ? timeout : FETCH_TIMEOUT) :\n fetch(requestUrl, requestInit);\n}\nfunction sendPostRequest(requestUrl, requestBody, token, requestHeaders, sessionId, useTimeout, timeout) {\n var requestInit = {\n method: \"POST\",\n headers: createHeaders(token, requestHeaders, sessionId),\n body: requestBody,\n };\n return useTimeout ?\n timeoutFetch(requestUrl, requestInit, timeout !== null && timeout !== void 0 ? timeout : FETCH_TIMEOUT) :\n fetch(requestUrl, requestInit);\n}\nfunction createHeaders(token, requestHeaders, sessionId) {\n var headers = typeof Headers !== \"undefined\" && new Headers();\n if (headers) {\n if (!_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isNOU\"](token)) {\n headers.append(\"Authorization\", \"Bearer \" + token);\n }\n if (!_Utils__WEBPACK_IMPORTED_MODULE_1__[\"isNOU\"](requestHeaders)) {\n for (var key in requestHeaders) {\n if (Object.prototype.hasOwnProperty.call(requestHeaders, key)) {\n headers.append(key, requestHeaders[key]);\n }\n }\n }\n headers.append(\"X-CorrelationId\", _Utils__WEBPACK_IMPORTED_MODULE_1__[\"guid\"]());\n if (sessionId) {\n headers.append(\"X-ClientSessionId\", sessionId);\n }\n }\n return headers;\n}\nfunction timeoutFetch(input, init, timeout) {\n if (init === void 0) { init = {}; }\n return new Promise(function (resolve, reject) {\n fetch(input, init).then(resolve, reject);\n setTimeout(function () { return reject(new Error(\"Service request timed out\")); }, timeout);\n });\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL1RyYW5zcG9ydC50cz9iMDVmIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUE0QjtBQUNLO0FBRTFCLElBQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUUzQixTQUFTLGNBQWMsQ0FBQyxVQUFrQixFQUFFLEtBQWMsRUFBRSxTQUFrQixFQUNwRixVQUFvQixFQUFFLE9BQWdCO0lBQ3RDLElBQU0sV0FBVyxHQUFHO1FBQ25CLE1BQU0sRUFBRSxLQUFLO1FBQ2IsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQztLQUM5QyxDQUFDO0lBRUYsT0FBTyxVQUFVLENBQUMsQ0FBQztRQUNsQixZQUFZLENBQUMsVUFBVSxFQUFFLFdBQVcsRUFBRSxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLEtBQUssQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVNLFNBQVMsZUFBZSxDQUM5QixVQUFrQixFQUFFLFdBQW1CLEVBQUUsS0FBYyxFQUFFLGNBQXVDLEVBQUUsU0FBa0IsRUFDcEgsVUFBb0IsRUFBRSxPQUFnQjtJQUN0QyxJQUFNLFdBQVcsR0FBRztRQUNuQixNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUM7UUFDeEQsSUFBSSxFQUFFLFdBQVc7S0FDakIsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDLENBQUM7UUFDbEIsWUFBWSxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxhQUFQLE9BQU8sY0FBUCxPQUFPLEdBQUksYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRSxLQUFLLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxLQUFjLEVBQUUsY0FBdUMsRUFBRSxTQUFrQjtJQUNqRyxJQUFNLE9BQU8sR0FBWSxPQUFPLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUV6RSxJQUFJLE9BQU8sRUFBRTtRQUNaLElBQUksQ0FBQyw0Q0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksQ0FBQyw0Q0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2pDLEtBQUssSUFBTSxHQUFHLElBQUksY0FBYyxFQUFFO2dCQUNqQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDLEVBQUU7b0JBQzlELE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUN6QzthQUNEO1NBQ0Q7UUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLDJDQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksU0FBUyxFQUFFO1lBQ2QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLENBQUMsQ0FBQztTQUMvQztLQUNEO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWtCLEVBQUUsSUFBc0IsRUFBRSxPQUFlO0lBQXZDLGdDQUFzQjtJQUMvRCxPQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07UUFDbEMsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLFVBQVUsQ0FBQyxjQUFNLGFBQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLEVBQTlDLENBQThDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDM0UsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL1V0aWxzL1RyYW5zcG9ydC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4uL1BvbHlmaWxscy9GZXRjaFwiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi9VdGlsc1wiO1xyXG5cclxuZXhwb3J0IGNvbnN0IEZFVENIX1RJTUVPVVQgPSA1MDAwO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNlbmRHZXRSZXF1ZXN0KHJlcXVlc3RVcmw6IHN0cmluZywgdG9rZW4/OiBzdHJpbmcsIHNlc3Npb25JZD86IHN0cmluZyxcclxuXHR1c2VUaW1lb3V0PzogYm9vbGVhbiwgdGltZW91dD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRjb25zdCByZXF1ZXN0SW5pdCA9IHtcclxuXHRcdG1ldGhvZDogXCJHRVRcIixcclxuXHRcdGhlYWRlcnM6IGNyZWF0ZUhlYWRlcnModG9rZW4sIG51bGwsIHNlc3Npb25JZCksXHJcblx0fTtcclxuXHJcblx0cmV0dXJuIHVzZVRpbWVvdXQgP1xyXG5cdFx0dGltZW91dEZldGNoKHJlcXVlc3RVcmwsIHJlcXVlc3RJbml0LCB0aW1lb3V0ID8/IEZFVENIX1RJTUVPVVQpIDpcclxuXHRcdGZldGNoKHJlcXVlc3RVcmwsIHJlcXVlc3RJbml0KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHNlbmRQb3N0UmVxdWVzdChcclxuXHRyZXF1ZXN0VXJsOiBzdHJpbmcsIHJlcXVlc3RCb2R5OiBzdHJpbmcsIHRva2VuPzogc3RyaW5nLCByZXF1ZXN0SGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHNlc3Npb25JZD86IHN0cmluZyxcclxuXHR1c2VUaW1lb3V0PzogYm9vbGVhbiwgdGltZW91dD86IG51bWJlcik6IFByb21pc2U8UmVzcG9uc2U+IHtcclxuXHRjb25zdCByZXF1ZXN0SW5pdCA9IHtcclxuXHRcdG1ldGhvZDogXCJQT1NUXCIsXHJcblx0XHRoZWFkZXJzOiBjcmVhdGVIZWFkZXJzKHRva2VuLCByZXF1ZXN0SGVhZGVycywgc2Vzc2lvbklkKSxcclxuXHRcdGJvZHk6IHJlcXVlc3RCb2R5LFxyXG5cdH07XHJcblxyXG5cdHJldHVybiB1c2VUaW1lb3V0ID9cclxuXHRcdHRpbWVvdXRGZXRjaChyZXF1ZXN0VXJsLCByZXF1ZXN0SW5pdCwgdGltZW91dCA/PyBGRVRDSF9USU1FT1VUKSA6XHJcblx0XHRmZXRjaChyZXF1ZXN0VXJsLCByZXF1ZXN0SW5pdCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUhlYWRlcnModG9rZW4/OiBzdHJpbmcsIHJlcXVlc3RIZWFkZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiwgc2Vzc2lvbklkPzogc3RyaW5nKTogSGVhZGVycyB7XHJcblx0Y29uc3QgaGVhZGVyczogSGVhZGVycyA9IHR5cGVvZiBIZWFkZXJzICE9PSBcInVuZGVmaW5lZFwiICYmIG5ldyBIZWFkZXJzKCk7XHJcblxyXG5cdGlmIChoZWFkZXJzKSB7XHJcblx0XHRpZiAoIVV0aWxzLmlzTk9VKHRva2VuKSkge1xyXG5cdFx0XHRoZWFkZXJzLmFwcGVuZChcIkF1dGhvcml6YXRpb25cIiwgXCJCZWFyZXIgXCIgKyB0b2tlbik7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFVdGlscy5pc05PVShyZXF1ZXN0SGVhZGVycykpIHtcclxuXHRcdFx0Zm9yIChjb25zdCBrZXkgaW4gcmVxdWVzdEhlYWRlcnMpIHtcclxuXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVlc3RIZWFkZXJzLCBrZXkpKSB7XHJcblx0XHRcdFx0XHRoZWFkZXJzLmFwcGVuZChrZXksIHJlcXVlc3RIZWFkZXJzW2tleV0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGhlYWRlcnMuYXBwZW5kKFwiWC1Db3JyZWxhdGlvbklkXCIsIFV0aWxzLmd1aWQoKSk7XHJcblx0XHRpZiAoc2Vzc2lvbklkKSB7XHJcblx0XHRcdGhlYWRlcnMuYXBwZW5kKFwiWC1DbGllbnRTZXNzaW9uSWRcIiwgc2Vzc2lvbklkKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiBoZWFkZXJzO1xyXG59XHJcblxyXG5mdW5jdGlvbiB0aW1lb3V0RmV0Y2goaW5wdXQ6IFJlcXVlc3RJbmZvLCBpbml0OiBSZXF1ZXN0SW5pdCA9IHt9LCB0aW1lb3V0OiBudW1iZXIpOiBQcm9taXNlPFJlc3BvbnNlPiB7XHJcblx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuXHRcdGZldGNoKGlucHV0LCBpbml0KS50aGVuKHJlc29sdmUsIHJlamVjdCk7XHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IHJlamVjdChuZXcgRXJyb3IoXCJTZXJ2aWNlIHJlcXVlc3QgdGltZWQgb3V0XCIpKSwgdGltZW91dCk7XHJcblx0fSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Transport.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/UrlUtils.js": /*!*******************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/UrlUtils.js ***! \*******************************************************************************/ /*! exports provided: buildQueryParameters */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"buildQueryParameters\", function() { return buildQueryParameters; });\n/*\n * UrlUtils.ts\n */\nfunction buildQueryParameters(keyAndValues, encodeValueAsURI) {\n if (encodeValueAsURI === void 0) { encodeValueAsURI = true; }\n var queryParamsString = \"\";\n for (var key in keyAndValues || []) {\n if (Object.prototype.hasOwnProperty.call(keyAndValues, key)) {\n var value = keyAndValues[key];\n if (value !== null && value !== undefined && typeof value !== \"object\") {\n var prefix = !queryParamsString ? \"\" : \"&\";\n var encodedValue = encodeValueAsURI ? encodeURIComponent(value) : value;\n var queryParamItem = key + \"=\" + encodedValue;\n queryParamsString += prefix + queryParamItem;\n }\n }\n }\n return queryParamsString;\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL1VybFV0aWxzLnRzPzZjMzkiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBOztHQUVHO0FBTUksU0FBUyxvQkFBb0IsQ0FBQyxZQUEwQixFQUFFLGdCQUF1QjtJQUF2QiwwREFBdUI7SUFDdkYsSUFBSSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDM0IsS0FBSyxJQUFNLEdBQUcsSUFBSSxZQUFZLElBQUksRUFBRSxFQUFFO1FBQ3JDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsRUFBRTtZQUM1RCxJQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO2dCQUN2RSxJQUFNLE1BQU0sR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDN0MsSUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzFFLElBQU0sY0FBYyxHQUFNLEdBQUcsU0FBSSxZQUFjLENBQUM7Z0JBQ2hELGlCQUFpQixJQUFJLE1BQU0sR0FBRyxjQUFjLENBQUM7YUFDN0M7U0FDRDtLQUNEO0lBRUQsT0FBTyxpQkFBaUIsQ0FBQztBQUMxQixDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL1V0aWxzL1VybFV0aWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVXJsVXRpbHMudHNcclxuICovXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElRdWVyeVBhcmFtcyB7XHJcblx0W2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRRdWVyeVBhcmFtZXRlcnMoa2V5QW5kVmFsdWVzOiBJUXVlcnlQYXJhbXMsIGVuY29kZVZhbHVlQXNVUkkgPSB0cnVlKTogc3RyaW5nIHtcclxuXHRsZXQgcXVlcnlQYXJhbXNTdHJpbmcgPSBcIlwiO1xyXG5cdGZvciAoY29uc3Qga2V5IGluIGtleUFuZFZhbHVlcyB8fCBbXSkge1xyXG5cdFx0aWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrZXlBbmRWYWx1ZXMsIGtleSkpIHtcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSBrZXlBbmRWYWx1ZXNba2V5XTtcclxuXHRcdFx0aWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIHZhbHVlICE9PSBcIm9iamVjdFwiKSB7XHJcblx0XHRcdFx0Y29uc3QgcHJlZml4ID0gIXF1ZXJ5UGFyYW1zU3RyaW5nID8gXCJcIiA6IFwiJlwiO1xyXG5cdFx0XHRcdGNvbnN0IGVuY29kZWRWYWx1ZSA9IGVuY29kZVZhbHVlQXNVUkkgPyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpIDogdmFsdWU7XHJcblx0XHRcdFx0Y29uc3QgcXVlcnlQYXJhbUl0ZW0gPSBgJHtrZXl9PSR7ZW5jb2RlZFZhbHVlfWA7XHJcblx0XHRcdFx0cXVlcnlQYXJhbXNTdHJpbmcgKz0gcHJlZml4ICsgcXVlcnlQYXJhbUl0ZW07XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiBxdWVyeVBhcmFtc1N0cmluZztcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/UrlUtils.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js": /*!****************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js ***! \****************************************************************************/ /*! exports provided: createTimeoutPromise, getErrorMessage, isNOU, guid, isArray, isFunction, isObject */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTimeoutPromise\", function() { return createTimeoutPromise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getErrorMessage\", function() { return getErrorMessage; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNOU\", function() { return isNOU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guid\", function() { return guid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isArray\", function() { return isArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isFunction\", function() { return isFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isObject\", function() { return isObject; });\n/*\n * Utils.ts\n *\n * Module for utility functions\n */\n// Creates a promise that rejects in milliseconds and\n// returns the race between the created timeout promise and the passed in promise\nfunction createTimeoutPromise(ms, promise) {\n // Create a promise that rejects in milliseconds\n var timeout = new Promise(function (resolve, reject) {\n var id = setTimeout(function () {\n clearTimeout(id);\n reject(\"Timed out after \" + ms + \"ms.\");\n }, ms);\n });\n // Returns a race between our timeout and the passed in promise\n return Promise.race([promise, timeout]);\n}\n// gets error message\nfunction getErrorMessage(value) {\n var _a, _b, _c;\n return (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.message) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : value === null || value === void 0 ? void 0 : value.toString();\n}\n/**\n * Check if an input value is null or undefined\n * @param value: input value\n */\nfunction isNOU(value) {\n return (value === null || value === undefined);\n}\n/**\n * Create guid string\n */\nfunction guid() {\n // Stitch in '4' in the third group\n return (randomHex4() + randomHex4() + \"-\" + randomHex4() + \"-4\" + randomHex4().substr(0, 3) + \"-\" + randomHex4() + \"-\"\n + randomHex4() + randomHex4() + randomHex4()).toLowerCase();\n}\n/**\n * Create random Hex4 string\n */\nfunction randomHex4() {\n return (Math.floor(((1 + Math.random()) * 0x10000))).toString(16).substring(1);\n}\n/**\n * Check if an input value is an array\n * @param value: input value\n */\nfunction isArray(value) {\n return (value !== null && value !== undefined && (Array.isArray(value)));\n}\n/**\n * Check if an input value is an array\n * @param value: input value\n */\nfunction isFunction(value) {\n return (value !== null && value !== undefined && (typeof value === \"function\"));\n}\n/**\n * Check if an input value is an object\n * @param value: input value\n */\nfunction isObject(value) {\n return (value !== null && value !== undefined && (typeof value === \"object\"));\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL1V0aWxzLnRzPzNkMzYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOzs7O0dBSUc7QUFFSCwwREFBMEQ7QUFDMUQsaUZBQWlGO0FBQzFFLFNBQVMsb0JBQW9CLENBQUksRUFBVSxFQUFFLE9BQW1CO0lBQ3RFLHFEQUFxRDtJQUNyRCxJQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNO1FBQzNDLElBQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQztZQUNyQixZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakIsTUFBTSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDUixDQUFDLENBQUMsQ0FBQztJQUVILCtEQUErRDtJQUMvRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQWUsQ0FBQztBQUN2RCxDQUFDO0FBRUQscUJBQXFCO0FBQ2QsU0FBUyxlQUFlLENBQUMsS0FBK0I7O0lBQzlELHlCQUFRLEtBQWUsMENBQUUsT0FBTywwQ0FBRSxRQUFRLHFDQUFNLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxRQUFRLEdBQUc7QUFDbkUsQ0FBQztBQUVEOzs7R0FHRztBQUNJLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDL0IsT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7R0FFRztBQUNJLFNBQVMsSUFBSTtJQUNuQixtQ0FBbUM7SUFDbkMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLFVBQVUsRUFBRSxHQUFHLEdBQUcsR0FBRyxVQUFVLEVBQUUsR0FBRyxJQUFJLEdBQUcsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsVUFBVSxFQUFFLEdBQUcsR0FBRztVQUNuSCxVQUFVLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQzlELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQVMsVUFBVTtJQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxTQUFTLE9BQU8sQ0FBQyxLQUFVO0lBQ2pDLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQ7OztHQUdHO0FBQ0ksU0FBUyxVQUFVLENBQUMsS0FBVTtJQUNwQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0ksU0FBUyxRQUFRLENBQUMsS0FBVTtJQUNsQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy1vZmIvb2ZmaWNlcGVyc29uYWxpemF0aW9uL2Rpc3QvbGliL1V0aWxzL1V0aWxzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogVXRpbHMudHNcclxuICpcclxuICogTW9kdWxlIGZvciB1dGlsaXR5IGZ1bmN0aW9uc1xyXG4gKi9cclxuXHJcbi8vIENyZWF0ZXMgYSBwcm9taXNlIHRoYXQgcmVqZWN0cyBpbiA8bXM+IG1pbGxpc2Vjb25kcyBhbmRcclxuLy8gcmV0dXJucyB0aGUgcmFjZSBiZXR3ZWVuIHRoZSBjcmVhdGVkIHRpbWVvdXQgcHJvbWlzZSBhbmQgdGhlIHBhc3NlZCBpbiBwcm9taXNlXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUaW1lb3V0UHJvbWlzZTxUPihtczogbnVtYmVyLCBwcm9taXNlOiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XHJcblx0Ly8gQ3JlYXRlIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgaW4gPG1zPiBtaWxsaXNlY29uZHNcclxuXHRjb25zdCB0aW1lb3V0ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG5cdFx0Y29uc3QgaWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHRcdFx0Y2xlYXJUaW1lb3V0KGlkKTtcclxuXHRcdFx0cmVqZWN0KFwiVGltZWQgb3V0IGFmdGVyIFwiICsgbXMgKyBcIm1zLlwiKTtcclxuXHRcdH0sIG1zKTtcclxuXHR9KTtcclxuXHJcblx0Ly8gUmV0dXJucyBhIHJhY2UgYmV0d2VlbiBvdXIgdGltZW91dCBhbmQgdGhlIHBhc3NlZCBpbiBwcm9taXNlXHJcblx0cmV0dXJuIFByb21pc2UucmFjZShbcHJvbWlzZSwgdGltZW91dF0pIGFzIFByb21pc2U8VD47XHJcbn1cclxuXHJcbi8vIGdldHMgZXJyb3IgbWVzc2FnZVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JNZXNzYWdlKHZhbHVlPzogRXJyb3IgfCBzdHJpbmcgfCBvYmplY3QpOiBzdHJpbmcge1xyXG5cdHJldHVybiAodmFsdWUgYXMgRXJyb3IpPy5tZXNzYWdlPy50b1N0cmluZygpID8/IHZhbHVlPy50b1N0cmluZygpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgYW4gaW5wdXQgdmFsdWUgaXMgbnVsbCBvciB1bmRlZmluZWRcclxuICogQHBhcmFtIHZhbHVlOiBpbnB1dCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzTk9VKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuXHRyZXR1cm4gKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpO1xyXG59XHJcblxyXG4vKipcclxuICogQ3JlYXRlIGd1aWQgc3RyaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ3VpZCgpOiBzdHJpbmcge1xyXG5cdC8vIFN0aXRjaCBpbiAnNCcgaW4gdGhlIHRoaXJkIGdyb3VwXHJcblx0cmV0dXJuIChyYW5kb21IZXg0KCkgKyByYW5kb21IZXg0KCkgKyBcIi1cIiArIHJhbmRvbUhleDQoKSArIFwiLTRcIiArIHJhbmRvbUhleDQoKS5zdWJzdHIoMCwgMykgKyBcIi1cIiArIHJhbmRvbUhleDQoKSArIFwiLVwiXHJcblx0XHQrIHJhbmRvbUhleDQoKSArIHJhbmRvbUhleDQoKSArIHJhbmRvbUhleDQoKSkudG9Mb3dlckNhc2UoKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZSByYW5kb20gSGV4NCBzdHJpbmdcclxuICovXHJcbmZ1bmN0aW9uIHJhbmRvbUhleDQoKTogc3RyaW5nIHtcclxuXHRyZXR1cm4gKE1hdGguZmxvb3IoKCgxICsgTWF0aC5yYW5kb20oKSkgKiAweDEwMDAwKSkpLnRvU3RyaW5nKDE2KS5zdWJzdHJpbmcoMSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDaGVjayBpZiBhbiBpbnB1dCB2YWx1ZSBpcyBhbiBhcnJheVxyXG4gKiBAcGFyYW0gdmFsdWU6IGlucHV0IHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcblx0cmV0dXJuICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIChBcnJheS5pc0FycmF5KHZhbHVlKSkpO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hlY2sgaWYgYW4gaW5wdXQgdmFsdWUgaXMgYW4gYXJyYXlcclxuICogQHBhcmFtIHZhbHVlOiBpbnB1dCB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb24odmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdHJldHVybiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIHZhbHVlID09PSBcImZ1bmN0aW9uXCIpKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIENoZWNrIGlmIGFuIGlucHV0IHZhbHVlIGlzIGFuIG9iamVjdFxyXG4gKiBAcGFyYW0gdmFsdWU6IGlucHV0IHZhbHVlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG5cdHJldHVybiAodmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Utils.js\n"); /***/ }), /***/ "./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Window.js": /*!*****************************************************************************!*\ !*** ./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Window.js ***! \*****************************************************************************/ /*! exports provided: get, getGlobal */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getGlobal\", function() { return getGlobal; });\n/**\n * Window.ts\n *\n * Module wrapping around the global window object\n */\nvar w = typeof window !== \"undefined\" && window;\n/**\n * Get the IWindow object\n */\nfunction get() { return w; }\n/**\n * Get the IWindow object\n */\nfunction getGlobal() { return w; }\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi4vLi4vc3JjL1V0aWxzL1dpbmRvdy50cz9jYzIyIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBO0FBQUE7QUFBQTtBQUFBOzs7O0dBSUc7QUFFSCxJQUFNLENBQUMsR0FBRyxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksTUFBTSxDQUFDO0FBRWxEOztHQUVHO0FBQ0ksU0FBUyxHQUFHLEtBQXlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUV2RDs7R0FFRztBQUNJLFNBQVMsU0FBUyxLQUF5QixPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zLW9mYi9vZmZpY2VwZXJzb25hbGl6YXRpb24vZGlzdC9saWIvVXRpbHMvV2luZG93LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8qKlxyXG4gKiBXaW5kb3cudHNcclxuICpcclxuICogTW9kdWxlIHdyYXBwaW5nIGFyb3VuZCB0aGUgZ2xvYmFsIHdpbmRvdyBvYmplY3RcclxuICovXHJcblxyXG5jb25zdCB3ID0gdHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB3aW5kb3c7XHJcblxyXG4vKipcclxuICogR2V0IHRoZSBJV2luZG93IG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldCgpOiBXaW5kb3dMb2NhbFN0b3JhZ2UgeyByZXR1cm4gdzsgfVxyXG5cclxuLyoqXHJcbiAqIEdldCB0aGUgSVdpbmRvdyBvYmplY3RcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWwoKTogV2luZG93TG9jYWxTdG9yYWdlIHsgcmV0dXJuIHc7IH1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms-ofb/officepersonalization/dist/lib/Utils/Window.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/foreignEnvLoader.js": /*!********************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/foreignEnvLoader.js ***! \********************************************************************************/ /*! exports provided: hvcTrustedTypePolicy, initialize, preloadFeature, bootstrapFeature */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hvcTrustedTypePolicy\", function() { return hvcTrustedTypePolicy; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"preloadFeature\", function() { return preloadFeature; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"bootstrapFeature\", function() { return bootstrapFeature; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _runtime_bootstrap_scriptLoader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../runtime/bootstrap/scriptLoader */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/scriptLoader.js\");\n/* harmony import */ var _runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../runtime/logging/broadcastLogger */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/broadcastLogger.js\");\n/* harmony import */ var _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../runtime/logging/log.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js\");\n/* harmony import */ var _runtime_logging_macKustoLogger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../runtime/logging/macKustoLogger */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/macKustoLogger.js\");\n/* harmony import */ var _runtime_public_utils_uuid__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../runtime/public/utils/uuid */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/public/utils/uuid.js\");\n/* harmony import */ var _runtime_bootstrap_trustedTypesPolicy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../runtime/bootstrap/trustedTypesPolicy */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/trustedTypesPolicy.js\");\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nvar hvcTrustedTypePolicy = Object(_runtime_bootstrap_trustedTypesPolicy__WEBPACK_IMPORTED_MODULE_6__[\"createTrustedTypesPolicy\"])('@centro/hvc-loader');\r\nfunction assert(condition, message) {\r\n if (!condition) {\r\n var error = new Error(message);\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error, message: message, id: '508371', error: error });\r\n throw error;\r\n }\r\n}\r\nfunction getFeatureLoadingState(featureName) {\r\n if (window === undefined) {\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info, message: 'window is undefined', id: '512105' });\r\n return false;\r\n }\r\n if (window.m365_admin_features === undefined) {\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info, message: 'window.m365_admin_features is undefined', id: '512108' });\r\n return false;\r\n }\r\n if (window.m365_admin_features.initializers !== undefined &&\r\n window.m365_admin_features.initializers[featureName] !== undefined) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction getDbgState(featureName) {\r\n var _a, _b;\r\n return !!((_b = (_a = window.m365_admin_features) === null || _a === void 0 ? void 0 : _a.locDbg) === null || _b === void 0 ? void 0 : _b[featureName]);\r\n}\r\nvar centroBaseUrl = undefined;\r\nvar uxVersionData = undefined;\r\nvar loaderInitialized = false;\r\nvar loggersInitialized = false;\r\nvar uxVersionDebugData = undefined;\r\nvar enableQueryParam = false;\r\nvar consumerAdapters = new Map();\r\nvar instanceVersionInfo = undefined;\r\nvar consumerPreConfig = undefined;\r\nfunction normalizeCasingForUxVersionData(mixedCaseUxVersionData) {\r\n if (mixedCaseUxVersionData !== undefined && mixedCaseUxVersionData.hasOwnProperty('__hostApp_config')) {\r\n for (var hvcProp in mixedCaseUxVersionData) {\r\n if (!hvcProp.startsWith('__')) {\r\n mixedCaseUxVersionData[hvcProp.toLowerCase()] = mixedCaseUxVersionData[hvcProp];\r\n if (hvcProp.toLowerCase() !== hvcProp) {\r\n delete mixedCaseUxVersionData[hvcProp];\r\n }\r\n }\r\n }\r\n }\r\n return JSON.stringify(mixedCaseUxVersionData);\r\n}\r\nfunction getUxVersionData(queryParams) {\r\n if (queryParams === void 0) { queryParams = ''; }\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var error, versionUrl;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (consumerPreConfig === undefined) {\r\n error = new Error('attempting to getUxVersionData before preConfig were provided');\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error, message: error.message, error: error, id: '508373' });\r\n throw error;\r\n }\r\n versionUrl = centroBaseUrl + \"/admin/api/uxversion\" + queryParams;\r\n if (enableQueryParam) {\r\n // If no query params need to be added lead with ? instead of &\r\n if (queryParams === '') {\r\n versionUrl = versionUrl + \"?locale=\" + consumerPreConfig.locale + \"&hostingapp=\" + consumerPreConfig.hostName;\r\n }\r\n else {\r\n versionUrl = versionUrl + \"&locale=\" + consumerPreConfig.locale + \"&hostingapp=\" + consumerPreConfig.hostName;\r\n }\r\n }\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n var req = new XMLHttpRequest();\r\n req.open('GET', versionUrl, true);\r\n if (!enableQueryParam) {\r\n req.setRequestHeader('x-ms-mac-locale', consumerPreConfig.locale);\r\n req.setRequestHeader('x-ms-mac-hostingapp', consumerPreConfig.hostName);\r\n }\r\n req.onreadystatechange = function () {\r\n if (req.readyState === XMLHttpRequest.DONE) {\r\n var correlationId = req.getResponseHeader('x-ms-correlation-id');\r\n if (req.status !== 200) {\r\n var errorMsg = \"Request to \" + versionUrl + \" failed, server responseCode: \" + req.status + \" body: \" + req.response + \" correlationId: \" + correlationId;\r\n var err = new Error(errorMsg);\r\n reject(err);\r\n return;\r\n }\r\n resolve(normalizeCasingForUxVersionData(JSON.parse(req.response)));\r\n }\r\n };\r\n req.send();\r\n })];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n}\r\nfunction getUxVersionDebugData() {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var _a, _b;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n if (uxVersionDebugData) {\r\n return [2 /*return*/];\r\n }\r\n _b = (_a = JSON).parse;\r\n return [4 /*yield*/, getUxVersionData(\"?locdbg=true\")];\r\n case 1:\r\n uxVersionDebugData = _b.apply(_a, [_c.sent()]);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Initialize the HVC loader.\r\n *\r\n * This should be called before calling any other hvc-loader functions\r\n */\r\nfunction initialize(params) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var baseUrl, preConfig, uxData, enableUxVersionQueryParam, appId, hostName, versionInfo, kustoEndpoint, hvcLoaderInitializeStartTime, queryParam, uxDataFromAPI, error_1;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n baseUrl = params.centroEnvironmentBaseUrl, preConfig = params.preConfig, uxData = params.centroHvcData, enableUxVersionQueryParam = params.enableUxVersionQueryParam;\r\n // Note: user might not call us from TypeScript environment, so assert on all non-optional params.\r\n assert(!!baseUrl, 'centroEnvironmentBaseUrl is missing');\r\n assert(!!preConfig, 'preConfig is missing');\r\n consumerPreConfig = preConfig;\r\n if (!consumerPreConfig.appId) {\r\n consumerPreConfig.appId = Object(_runtime_public_utils_uuid__WEBPACK_IMPORTED_MODULE_5__[\"createUUID\"])();\r\n }\r\n appId = consumerPreConfig.appId;\r\n hostName = consumerPreConfig.hostName;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n if (loaderInitialized) {\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: 'initialize() is called but loader is already previously initialized',\r\n id: '508375'\r\n });\r\n return [2 /*return*/];\r\n }\r\n centroBaseUrl = baseUrl.substring(baseUrl.length - 1) === '/' ? baseUrl.substring(0, baseUrl.length - 1) : baseUrl;\r\n versionInfo = __webpack_require__(/*! ../../package.json */ \"./node_modules/@ms/centro-hvc-loader/package.json\");\r\n instanceVersionInfo = versionInfo.version;\r\n kustoEndpoint = centroBaseUrl + \"/api/instrument/logclient\";\r\n if (!loggersInitialized) {\r\n // do this first\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"addLogger\"])('hvcLoaderKustoLogger', Object(_runtime_logging_macKustoLogger__WEBPACK_IMPORTED_MODULE_4__[\"makeMacKustoLogger\"])(appId, kustoEndpoint, hostName, versionInfo.name + '_' + versionInfo.version));\r\n Object(_runtime_logging_macKustoLogger__WEBPACK_IMPORTED_MODULE_4__[\"unlockLoggingQueue\"])();\r\n if (consumerPreConfig.additionalLoggers !== undefined) {\r\n Object.keys(consumerPreConfig.additionalLoggers).forEach(function (key) {\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"addLogger\"])(key, { logger: consumerPreConfig.additionalLoggers[key] });\r\n });\r\n }\r\n loggersInitialized = true;\r\n }\r\n hvcLoaderInitializeStartTime = performance.now();\r\n if (!!!uxData) return [3 /*break*/, 2];\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info, message: 'uxVersion Data is provided thru parameter', id: '508372', data: uxData });\r\n uxVersionData = JSON.parse(uxData);\r\n return [3 /*break*/, 4];\r\n case 2:\r\n if (params.forHostVersion && params.hvcVersion) {\r\n throw new Error('cannot specify both forHostVersion and hvcVersion');\r\n }\r\n // do not use polyfill-required API (URLSearchParams)\r\n enableQueryParam = !!enableUxVersionQueryParam;\r\n queryParam = '';\r\n if (params.forHostVersion) {\r\n queryParam = \"?bldVer=\" + encodeURIComponent(params.forHostVersion);\r\n }\r\n else if (params.hvcVersion) {\r\n queryParam = \"?pkgver=\" + encodeURIComponent(params.hvcVersion);\r\n }\r\n return [4 /*yield*/, getUxVersionData(queryParam)];\r\n case 3:\r\n uxDataFromAPI = _a.sent();\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: 'uxVersion Data is provided thru parameter',\r\n id: '508372',\r\n data: uxDataFromAPI\r\n });\r\n uxVersionData = JSON.parse(uxDataFromAPI);\r\n _a.label = 4;\r\n case 4:\r\n loaderInitialized = true;\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: 'hvcloader initialze() step has succeeded',\r\n id: '513574',\r\n data: {\r\n eventName: 'hvcLoader_Initialize_step',\r\n fromStart: performance.now() - hvcLoaderInitializeStartTime,\r\n UA: navigator.userAgent,\r\n enableQueryParam: enableQueryParam\r\n }\r\n });\r\n return [3 /*break*/, 6];\r\n case 5:\r\n error_1 = _a.sent();\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({ type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error, message: 'hvcloader initialze() step has failed ' + error_1.message, id: '508376', error: error_1 });\r\n throw error_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Preload HVC to prepare for its bootstrapping.\r\n *\r\n * This should be called before attempting to bootstrap a HVC\r\n *\r\n * To preload multiple features in parallel: Promise.all([preloadFeature(), preloadFeature(), ...])\r\n *\r\n * The returning Promise resolves to [boolean, Record | undefined], indicating if the preload has happened, with or without static additional objects\r\n * If the HVC is not enabled for your app in the Centro versioning server the promise resolves to false.\r\n */\r\nfunction preloadFeature(params) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var uxData, preloadFeatureStartTime, lowerCaseFeatureName, staticAdditionalObjects, foreignEnvMainVersion, error_2;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n uxData = uxVersionData;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 7, , 8]);\r\n if (!loaderInitialized) {\r\n throw new Error('initialize() needs to be invoked before calling preloadFeature()');\r\n }\r\n preloadFeatureStartTime = performance.now();\r\n if (!(params.localMode && !process.env.CENTRO_HVC_DATA)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, getUxVersionDebugData()];\r\n case 2:\r\n _a.sent();\r\n uxData = uxVersionDebugData;\r\n _a.label = 3;\r\n case 3:\r\n if (!uxData) {\r\n throw new Error('uxVersionData is not populated');\r\n }\r\n lowerCaseFeatureName = params.featureName.toLowerCase();\r\n if (!uxData[lowerCaseFeatureName]) {\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: \"HVC \" + lowerCaseFeatureName + \" is not enabled for this host\",\r\n id: '508419'\r\n });\r\n return [2 /*return*/, [false, undefined]];\r\n }\r\n if (!(getFeatureLoadingState(lowerCaseFeatureName) && getDbgState(lowerCaseFeatureName) === !!params.localMode)) return [3 /*break*/, 4];\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: \"preloadFeature() feature \" + lowerCaseFeatureName + \" already loaded previously\",\r\n id: '508465',\r\n data: { hvc: lowerCaseFeatureName }\r\n });\r\n return [3 /*break*/, 6];\r\n case 4: return [4 /*yield*/, Object(_runtime_bootstrap_scriptLoader__WEBPACK_IMPORTED_MODULE_1__[\"dynamicLoader\"])(uxData[lowerCaseFeatureName].loaderSpec, hvcTrustedTypePolicy)];\r\n case 5:\r\n _a.sent();\r\n if (!getFeatureLoadingState(lowerCaseFeatureName)) {\r\n throw new Error(\"preloadFeature(): global is not populated after loading for \" + lowerCaseFeatureName);\r\n }\r\n if (window.m365_admin_features.locDbg === undefined) {\r\n window.m365_admin_features.locDbg = {};\r\n }\r\n window.m365_admin_features.locDbg[lowerCaseFeatureName] = !!params.localMode;\r\n _a.label = 6;\r\n case 6:\r\n if (params.adapters) {\r\n // store adapters\r\n consumerAdapters.set(lowerCaseFeatureName, params.adapters);\r\n }\r\n staticAdditionalObjects = void 0;\r\n // to get more detailed info of which hvc feature causes trouble, adding this extra log\r\n try {\r\n staticAdditionalObjects = window.m365_admin_features.staticAdditionalObjects[lowerCaseFeatureName];\r\n }\r\n catch (error) {\r\n foreignEnvMainVersion = window.m365_admin_features.foreignEnvMainVersion;\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error,\r\n message: foreignEnvMainVersion\r\n ? \"using v3 Hvc \" + lowerCaseFeatureName + \", error when trying to retrieve staticAdditionalObjects, error: \" + error.message\r\n : \"using v2 Hvc \" + lowerCaseFeatureName + \", staticAdditionalObjects is not supported, error: \" + error.message,\r\n id: '521848',\r\n error: error\r\n });\r\n throw error;\r\n }\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: 'preloadFeatures() step has succeeded',\r\n id: '513585',\r\n data: {\r\n hvc: lowerCaseFeatureName,\r\n uxdata: JSON.stringify(uxData),\r\n eventName: 'preloadFeature_step',\r\n fromStart: performance.now() - preloadFeatureStartTime,\r\n UA: navigator.userAgent\r\n }\r\n });\r\n return [2 /*return*/, [true, staticAdditionalObjects]];\r\n case 7:\r\n error_2 = _a.sent();\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error,\r\n message: 'error in preloadFeatures() step ' + error_2.message,\r\n id: '508417',\r\n data: { uxdata: JSON.stringify(uxData) },\r\n error: error_2\r\n });\r\n throw error_2;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/**\r\n * Bootstrap the HVC.\r\n *\r\n * This will return a function which you could use to bootstrap the HVC, the return result\r\n * of the function can be used to unmount the HVC\r\n */\r\nfunction bootstrapFeature(params) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var bootStrapFeatureStartTime, uxData, lowerCaseFeatureName, loaderData, bootstrapper, error_3, foreignEnvMainVersion, error_4;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 7, , 8]);\r\n if (!loaderInitialized) {\r\n throw new Error('initialize() needs to be invoked before calling bootstrapFeature()');\r\n }\r\n bootStrapFeatureStartTime = performance.now();\r\n uxData = uxVersionData;\r\n lowerCaseFeatureName = params.featureName.toLowerCase();\r\n if (getDbgState(lowerCaseFeatureName) && !process.env.CENTRO_HVC_DATA) {\r\n uxData = uxVersionDebugData;\r\n }\r\n if (!uxData) {\r\n throw new Error('uxVersionData is not populated');\r\n }\r\n if (!getFeatureLoadingState(lowerCaseFeatureName)) return [3 /*break*/, 5];\r\n loaderData = {\r\n centroBaseUrl: centroBaseUrl,\r\n cdnUrl: uxData[lowerCaseFeatureName].cdnUrl,\r\n ariaLoggerId: uxData.__hostApp_config.ariaLoggerId,\r\n targetAppUrls: uxData.__hostApp_config.hostingAppUrls,\r\n versionInfo: instanceVersionInfo\r\n };\r\n bootstrapper = void 0;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, window.m365_admin_features.initializers[lowerCaseFeatureName](consumerAdapters.get(lowerCaseFeatureName), loaderData, consumerPreConfig)];\r\n case 2:\r\n bootstrapper = _a.sent();\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Info,\r\n message: 'bootstrapFeature() step has succeeded',\r\n id: '513586',\r\n data: {\r\n hvc: lowerCaseFeatureName,\r\n eventName: 'bootstrapFeature_step',\r\n fromStart: performance.now() - bootStrapFeatureStartTime,\r\n UA: navigator.userAgent\r\n }\r\n });\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_3 = _a.sent();\r\n foreignEnvMainVersion = window.m365_admin_features.foreignEnvMainVersion;\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error,\r\n message: foreignEnvMainVersion\r\n ? \"using v3 Hvc \" + lowerCaseFeatureName + \", error when running foreignFeatureInitializeRuntime, error: \" + error_3.message\r\n : \"using v2 Hvc \" + lowerCaseFeatureName + \" is not supported, error: \" + error_3.message,\r\n id: '521851',\r\n error: error_3\r\n });\r\n throw error_3;\r\n case 4: return [2 /*return*/, bootstrapper];\r\n case 5: throw new Error(\"bootstrapFeature(): preloadFeature() was not called before bootstraping \" + lowerCaseFeatureName);\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n error_4 = _a.sent();\r\n Object(_runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_2__[\"log\"])({\r\n type: _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_3__[\"LogKind\"].Error,\r\n message: 'error in bootstrapFeature() step ' + error_4.message,\r\n id: '508481',\r\n error: error_4\r\n });\r\n throw error_4;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../process/browser.js */ \"./node_modules/process/browser.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvaHZjLWxvYWRlci9mb3JlaWduRW52TG9hZGVyLmpzPzNkZjEiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQStDO0FBQ21CO0FBQ0U7QUFDYjtBQUNvQztBQUNqQztBQUN5QjtBQUM1RSwyQkFBMkIsc0dBQXdCO0FBQzFEO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNEVBQUcsRUFBRSxPQUFPLGtFQUFPLHNEQUFzRDtBQUNqRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw0RUFBRyxFQUFFLE9BQU8sa0VBQU8scURBQXFEO0FBQ2hGO0FBQ0E7QUFDQTtBQUNBLFFBQVEsNEVBQUcsRUFBRSxPQUFPLGtFQUFPLHlFQUF5RTtBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLGtCQUFrQjtBQUNuRCxXQUFXLHVEQUFTO0FBQ3BCO0FBQ0EsZUFBZSx5REFBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw0RUFBRyxFQUFFLE9BQU8sa0VBQU8sNERBQTREO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0w7QUFDQTtBQUNBLFdBQVcsdURBQVM7QUFDcEI7QUFDQSxlQUFlLHlEQUFXO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsV0FBVyx1REFBUztBQUNwQjtBQUNBLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtEQUFrRCw2RUFBVTtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdCQUF3Qiw0RUFBRztBQUMzQixrQ0FBa0Msa0VBQU87QUFDekM7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsbUJBQU8sQ0FBQyw2RUFBb0I7QUFDOUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0Isa0ZBQVMseUJBQXlCLDBGQUFrQjtBQUM1RSx3QkFBd0IsMEZBQWtCO0FBQzFDO0FBQ0E7QUFDQSxnQ0FBZ0Msa0ZBQVMsT0FBTyxtREFBbUQ7QUFDbkcsNkJBQTZCO0FBQzdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEVBQUcsRUFBRSxPQUFPLGtFQUFPLHlGQUF5RjtBQUNoSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEVBQUc7QUFDdkIsOEJBQThCLGtFQUFPO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0RUFBRztBQUN2Qiw4QkFBOEIsa0VBQU87QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsNEVBQUcsRUFBRSxPQUFPLGtFQUFPLDJHQUEyRztBQUNsSjtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQLFdBQVcsdURBQVM7QUFDcEI7QUFDQSxlQUFlLHlEQUFXO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esd0JBQXdCLDRFQUFHO0FBQzNCLGtDQUFrQyxrRUFBTztBQUN6QztBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0RUFBRztBQUN2Qiw4QkFBOEIsa0VBQU87QUFDckM7QUFDQTtBQUNBLCtCQUErQjtBQUMvQixxQkFBcUI7QUFDckI7QUFDQSw2Q0FBNkMscUZBQWE7QUFDMUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx3QkFBd0IsNEVBQUc7QUFDM0Isa0NBQWtDLGtFQUFPO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUI7QUFDekI7QUFDQTtBQUNBLG9CQUFvQiw0RUFBRztBQUN2Qiw4QkFBOEIsa0VBQU87QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0RUFBRztBQUN2Qiw4QkFBOEIsa0VBQU87QUFDckM7QUFDQTtBQUNBLCtCQUErQixpQ0FBaUM7QUFDaEU7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1AsV0FBVyx1REFBUztBQUNwQjtBQUNBLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDRFQUFHO0FBQ3ZCLDhCQUE4QixrRUFBTztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLDRFQUFHO0FBQ3ZCLDhCQUE4QixrRUFBTztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQiw0RUFBRztBQUN2Qiw4QkFBOEIsa0VBQU87QUFDckM7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVCxLQUFLO0FBQ0wiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvaHZjLWxvYWRlci9mb3JlaWduRW52TG9hZGVyLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgX19hd2FpdGVyLCBfX2dlbmVyYXRvciB9IGZyb20gXCJ0c2xpYlwiO1xyXG5pbXBvcnQgeyBkeW5hbWljTG9hZGVyIH0gZnJvbSAnLi4vcnVudGltZS9ib290c3RyYXAvc2NyaXB0TG9hZGVyJztcclxuaW1wb3J0IHsgYWRkTG9nZ2VyLCBsb2cgfSBmcm9tICcuLi9ydW50aW1lL2xvZ2dpbmcvYnJvYWRjYXN0TG9nZ2VyJztcclxuaW1wb3J0IHsgTG9nS2luZCB9IGZyb20gJy4uL3J1bnRpbWUvbG9nZ2luZy9sb2cudHlwZXMnO1xyXG5pbXBvcnQgeyBtYWtlTWFjS3VzdG9Mb2dnZXIsIHVubG9ja0xvZ2dpbmdRdWV1ZSB9IGZyb20gJy4uL3J1bnRpbWUvbG9nZ2luZy9tYWNLdXN0b0xvZ2dlcic7XHJcbmltcG9ydCB7IGNyZWF0ZVVVSUQgfSBmcm9tICcuLi9ydW50aW1lL3B1YmxpYy91dGlscy91dWlkJztcclxuaW1wb3J0IHsgY3JlYXRlVHJ1c3RlZFR5cGVzUG9saWN5IH0gZnJvbSAnLi4vcnVudGltZS9ib290c3RyYXAvdHJ1c3RlZFR5cGVzUG9saWN5JztcclxuZXhwb3J0IHZhciBodmNUcnVzdGVkVHlwZVBvbGljeSA9IGNyZWF0ZVRydXN0ZWRUeXBlc1BvbGljeSgnQGNlbnRyby9odmMtbG9hZGVyJyk7XHJcbmZ1bmN0aW9uIGFzc2VydChjb25kaXRpb24sIG1lc3NhZ2UpIHtcclxuICAgIGlmICghY29uZGl0aW9uKSB7XHJcbiAgICAgICAgdmFyIGVycm9yID0gbmV3IEVycm9yKG1lc3NhZ2UpO1xyXG4gICAgICAgIGxvZyh7IHR5cGU6IExvZ0tpbmQuRXJyb3IsIG1lc3NhZ2U6IG1lc3NhZ2UsIGlkOiAnNTA4MzcxJywgZXJyb3I6IGVycm9yIH0pO1xyXG4gICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgfVxyXG59XHJcbmZ1bmN0aW9uIGdldEZlYXR1cmVMb2FkaW5nU3RhdGUoZmVhdHVyZU5hbWUpIHtcclxuICAgIGlmICh3aW5kb3cgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGxvZyh7IHR5cGU6IExvZ0tpbmQuSW5mbywgbWVzc2FnZTogJ3dpbmRvdyBpcyB1bmRlZmluZWQnLCBpZDogJzUxMjEwNScgfSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpbmRvdy5tMzY1X2FkbWluX2ZlYXR1cmVzID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICBsb2coeyB0eXBlOiBMb2dLaW5kLkluZm8sIG1lc3NhZ2U6ICd3aW5kb3cubTM2NV9hZG1pbl9mZWF0dXJlcyBpcyB1bmRlZmluZWQnLCBpZDogJzUxMjEwOCcgfSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgaWYgKHdpbmRvdy5tMzY1X2FkbWluX2ZlYXR1cmVzLmluaXRpYWxpemVycyAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgd2luZG93Lm0zNjVfYWRtaW5fZmVhdHVyZXMuaW5pdGlhbGl6ZXJzW2ZlYXR1cmVOYW1lXSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gZ2V0RGJnU3RhdGUoZmVhdHVyZU5hbWUpIHtcclxuICAgIHZhciBfYSwgX2I7XHJcbiAgICByZXR1cm4gISEoKF9iID0gKF9hID0gd2luZG93Lm0zNjVfYWRtaW5fZmVhdHVyZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sb2NEYmcpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYltmZWF0dXJlTmFtZV0pO1xyXG59XHJcbnZhciBjZW50cm9CYXNlVXJsID0gdW5kZWZpbmVkO1xyXG52YXIgdXhWZXJzaW9uRGF0YSA9IHVuZGVmaW5lZDtcclxudmFyIGxvYWRlckluaXRpYWxpemVkID0gZmFsc2U7XHJcbnZhciBsb2dnZXJzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxudmFyIHV4VmVyc2lvbkRlYnVnRGF0YSA9IHVuZGVmaW5lZDtcclxudmFyIGVuYWJsZVF1ZXJ5UGFyYW0gPSBmYWxzZTtcclxudmFyIGNvbnN1bWVyQWRhcHRlcnMgPSBuZXcgTWFwKCk7XHJcbnZhciBpbnN0YW5jZVZlcnNpb25JbmZvID0gdW5kZWZpbmVkO1xyXG52YXIgY29uc3VtZXJQcmVDb25maWcgPSB1bmRlZmluZWQ7XHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZUNhc2luZ0ZvclV4VmVyc2lvbkRhdGEobWl4ZWRDYXNlVXhWZXJzaW9uRGF0YSkge1xyXG4gICAgaWYgKG1peGVkQ2FzZVV4VmVyc2lvbkRhdGEgIT09IHVuZGVmaW5lZCAmJiBtaXhlZENhc2VVeFZlcnNpb25EYXRhLmhhc093blByb3BlcnR5KCdfX2hvc3RBcHBfY29uZmlnJykpIHtcclxuICAgICAgICBmb3IgKHZhciBodmNQcm9wIGluIG1peGVkQ2FzZVV4VmVyc2lvbkRhdGEpIHtcclxuICAgICAgICAgICAgaWYgKCFodmNQcm9wLnN0YXJ0c1dpdGgoJ19fJykpIHtcclxuICAgICAgICAgICAgICAgIG1peGVkQ2FzZVV4VmVyc2lvbkRhdGFbaHZjUHJvcC50b0xvd2VyQ2FzZSgpXSA9IG1peGVkQ2FzZVV4VmVyc2lvbkRhdGFbaHZjUHJvcF07XHJcbiAgICAgICAgICAgICAgICBpZiAoaHZjUHJvcC50b0xvd2VyQ2FzZSgpICE9PSBodmNQcm9wKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1peGVkQ2FzZVV4VmVyc2lvbkRhdGFbaHZjUHJvcF07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobWl4ZWRDYXNlVXhWZXJzaW9uRGF0YSk7XHJcbn1cclxuZnVuY3Rpb24gZ2V0VXhWZXJzaW9uRGF0YShxdWVyeVBhcmFtcykge1xyXG4gICAgaWYgKHF1ZXJ5UGFyYW1zID09PSB2b2lkIDApIHsgcXVlcnlQYXJhbXMgPSAnJzsgfVxyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBlcnJvciwgdmVyc2lvblVybDtcclxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoY29uc3VtZXJQcmVDb25maWcgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IG5ldyBFcnJvcignYXR0ZW1wdGluZyB0byBnZXRVeFZlcnNpb25EYXRhIGJlZm9yZSBwcmVDb25maWcgd2VyZSBwcm92aWRlZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coeyB0eXBlOiBMb2dLaW5kLkVycm9yLCBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLCBlcnJvcjogZXJyb3IsIGlkOiAnNTA4MzczJyB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHZlcnNpb25VcmwgPSBjZW50cm9CYXNlVXJsICsgXCIvYWRtaW4vYXBpL3V4dmVyc2lvblwiICsgcXVlcnlQYXJhbXM7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVuYWJsZVF1ZXJ5UGFyYW0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgbm8gcXVlcnkgcGFyYW1zIG5lZWQgdG8gYmUgYWRkZWQgbGVhZCB3aXRoID8gaW5zdGVhZCBvZiAmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChxdWVyeVBhcmFtcyA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb25VcmwgPSB2ZXJzaW9uVXJsICsgXCI/bG9jYWxlPVwiICsgY29uc3VtZXJQcmVDb25maWcubG9jYWxlICsgXCImaG9zdGluZ2FwcD1cIiArIGNvbnN1bWVyUHJlQ29uZmlnLmhvc3ROYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvblVybCA9IHZlcnNpb25VcmwgKyBcIiZsb2NhbGU9XCIgKyBjb25zdW1lclByZUNvbmZpZy5sb2NhbGUgKyBcIiZob3N0aW5nYXBwPVwiICsgY29uc3VtZXJQcmVDb25maWcuaG9zdE5hbWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLm9wZW4oJ0dFVCcsIHZlcnNpb25VcmwsIHRydWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbmFibGVRdWVyeVBhcmFtKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoJ3gtbXMtbWFjLWxvY2FsZScsIGNvbnN1bWVyUHJlQ29uZmlnLmxvY2FsZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoJ3gtbXMtbWFjLWhvc3RpbmdhcHAnLCBjb25zdW1lclByZUNvbmZpZy5ob3N0TmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29ycmVsYXRpb25JZCA9IHJlcS5nZXRSZXNwb25zZUhlYWRlcigneC1tcy1jb3JyZWxhdGlvbi1pZCcpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxLnN0YXR1cyAhPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZXJyb3JNc2cgPSBcIlJlcXVlc3QgdG8gXCIgKyB2ZXJzaW9uVXJsICsgXCIgZmFpbGVkLCBzZXJ2ZXIgcmVzcG9uc2VDb2RlOiBcIiArIHJlcS5zdGF0dXMgKyBcIiBib2R5OiBcIiArIHJlcS5yZXNwb25zZSArIFwiIGNvcnJlbGF0aW9uSWQ6IFwiICsgY29ycmVsYXRpb25JZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlcnIgPSBuZXcgRXJyb3IoZXJyb3JNc2cpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShub3JtYWxpemVDYXNpbmdGb3JVeFZlcnNpb25EYXRhKEpTT04ucGFyc2UocmVxLnJlc3BvbnNlKSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXEuc2VuZCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE6IHJldHVybiBbMiAvKnJldHVybiovLCBfYS5zZW50KCldO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBnZXRVeFZlcnNpb25EZWJ1Z0RhdGEoKSB7XHJcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF9hLCBfYjtcclxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9jKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoX2MubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICBpZiAodXhWZXJzaW9uRGVidWdEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgX2IgPSAoX2EgPSBKU09OKS5wYXJzZTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBnZXRVeFZlcnNpb25EYXRhKFwiP2xvY2RiZz10cnVlXCIpXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICB1eFZlcnNpb25EZWJ1Z0RhdGEgPSBfYi5hcHBseShfYSwgW19jLnNlbnQoKV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuLyoqXHJcbiAqIEluaXRpYWxpemUgdGhlIEhWQyBsb2FkZXIuXHJcbiAqXHJcbiAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgY2FsbGluZyBhbnkgb3RoZXIgaHZjLWxvYWRlciBmdW5jdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciBiYXNlVXJsLCBwcmVDb25maWcsIHV4RGF0YSwgZW5hYmxlVXhWZXJzaW9uUXVlcnlQYXJhbSwgYXBwSWQsIGhvc3ROYW1lLCB2ZXJzaW9uSW5mbywga3VzdG9FbmRwb2ludCwgaHZjTG9hZGVySW5pdGlhbGl6ZVN0YXJ0VGltZSwgcXVlcnlQYXJhbSwgdXhEYXRhRnJvbUFQSSwgZXJyb3JfMTtcclxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsID0gcGFyYW1zLmNlbnRyb0Vudmlyb25tZW50QmFzZVVybCwgcHJlQ29uZmlnID0gcGFyYW1zLnByZUNvbmZpZywgdXhEYXRhID0gcGFyYW1zLmNlbnRyb0h2Y0RhdGEsIGVuYWJsZVV4VmVyc2lvblF1ZXJ5UGFyYW0gPSBwYXJhbXMuZW5hYmxlVXhWZXJzaW9uUXVlcnlQYXJhbTtcclxuICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiB1c2VyIG1pZ2h0IG5vdCBjYWxsIHVzIGZyb20gVHlwZVNjcmlwdCBlbnZpcm9ubWVudCwgc28gYXNzZXJ0IG9uIGFsbCBub24tb3B0aW9uYWwgcGFyYW1zLlxyXG4gICAgICAgICAgICAgICAgICAgIGFzc2VydCghIWJhc2VVcmwsICdjZW50cm9FbnZpcm9ubWVudEJhc2VVcmwgaXMgbWlzc2luZycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFzc2VydCghIXByZUNvbmZpZywgJ3ByZUNvbmZpZyBpcyBtaXNzaW5nJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3VtZXJQcmVDb25maWcgPSBwcmVDb25maWc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjb25zdW1lclByZUNvbmZpZy5hcHBJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lclByZUNvbmZpZy5hcHBJZCA9IGNyZWF0ZVVVSUQoKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgYXBwSWQgPSBjb25zdW1lclByZUNvbmZpZy5hcHBJZDtcclxuICAgICAgICAgICAgICAgICAgICBob3N0TmFtZSA9IGNvbnN1bWVyUHJlQ29uZmlnLmhvc3ROYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hLmxhYmVsID0gMTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzEsIDUsICwgNl0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2FkZXJJbml0aWFsaXplZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogTG9nS2luZC5JbmZvLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2luaXRpYWxpemUoKSBpcyBjYWxsZWQgYnV0IGxvYWRlciBpcyBhbHJlYWR5IHByZXZpb3VzbHkgaW5pdGlhbGl6ZWQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MDgzNzUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNlbnRyb0Jhc2VVcmwgPSBiYXNlVXJsLnN1YnN0cmluZyhiYXNlVXJsLmxlbmd0aCAtIDEpID09PSAnLycgPyBiYXNlVXJsLnN1YnN0cmluZygwLCBiYXNlVXJsLmxlbmd0aCAtIDEpIDogYmFzZVVybDtcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uSW5mbyA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpO1xyXG4gICAgICAgICAgICAgICAgICAgIGluc3RhbmNlVmVyc2lvbkluZm8gPSB2ZXJzaW9uSW5mby52ZXJzaW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGt1c3RvRW5kcG9pbnQgPSBjZW50cm9CYXNlVXJsICsgXCIvYXBpL2luc3RydW1lbnQvbG9nY2xpZW50XCI7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFsb2dnZXJzSW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG8gdGhpcyBmaXJzdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRMb2dnZXIoJ2h2Y0xvYWRlckt1c3RvTG9nZ2VyJywgbWFrZU1hY0t1c3RvTG9nZ2VyKGFwcElkLCBrdXN0b0VuZHBvaW50LCBob3N0TmFtZSwgdmVyc2lvbkluZm8ubmFtZSArICdfJyArIHZlcnNpb25JbmZvLnZlcnNpb24pKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5sb2NrTG9nZ2luZ1F1ZXVlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25zdW1lclByZUNvbmZpZy5hZGRpdGlvbmFsTG9nZ2VycyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhjb25zdW1lclByZUNvbmZpZy5hZGRpdGlvbmFsTG9nZ2VycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkTG9nZ2VyKGtleSwgeyBsb2dnZXI6IGNvbnN1bWVyUHJlQ29uZmlnLmFkZGl0aW9uYWxMb2dnZXJzW2tleV0gfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXJzSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBodmNMb2FkZXJJbml0aWFsaXplU3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEhIXV4RGF0YSkgcmV0dXJuIFszIC8qYnJlYWsqLywgMl07XHJcbiAgICAgICAgICAgICAgICAgICAgbG9nKHsgdHlwZTogTG9nS2luZC5JbmZvLCBtZXNzYWdlOiAndXhWZXJzaW9uIERhdGEgaXMgcHJvdmlkZWQgdGhydSBwYXJhbWV0ZXInLCBpZDogJzUwODM3MicsIGRhdGE6IHV4RGF0YSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB1eFZlcnNpb25EYXRhID0gSlNPTi5wYXJzZSh1eERhdGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMyAvKmJyZWFrKi8sIDRdO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbXMuZm9ySG9zdFZlcnNpb24gJiYgcGFyYW1zLmh2Y1ZlcnNpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5ub3Qgc3BlY2lmeSBib3RoIGZvckhvc3RWZXJzaW9uIGFuZCBodmNWZXJzaW9uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdCB1c2UgcG9seWZpbGwtcmVxdWlyZWQgQVBJIChVUkxTZWFyY2hQYXJhbXMpXHJcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlUXVlcnlQYXJhbSA9ICEhZW5hYmxlVXhWZXJzaW9uUXVlcnlQYXJhbTtcclxuICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtID0gJyc7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5mb3JIb3N0VmVyc2lvbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVBhcmFtID0gXCI/YmxkVmVyPVwiICsgZW5jb2RlVVJJQ29tcG9uZW50KHBhcmFtcy5mb3JIb3N0VmVyc2lvbik7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHBhcmFtcy5odmNWZXJzaW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW0gPSBcIj9wa2d2ZXI9XCIgKyBlbmNvZGVVUklDb21wb25lbnQocGFyYW1zLmh2Y1ZlcnNpb24pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBnZXRVeFZlcnNpb25EYXRhKHF1ZXJ5UGFyYW0pXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICB1eERhdGFGcm9tQVBJID0gX2Euc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IExvZ0tpbmQuSW5mbyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ3V4VmVyc2lvbiBEYXRhIGlzIHByb3ZpZGVkIHRocnUgcGFyYW1ldGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MDgzNzInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB1eERhdGFGcm9tQVBJXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdXhWZXJzaW9uRGF0YSA9IEpTT04ucGFyc2UodXhEYXRhRnJvbUFQSSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2EubGFiZWwgPSA0O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OlxyXG4gICAgICAgICAgICAgICAgICAgIGxvYWRlckluaXRpYWxpemVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkluZm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdodmNsb2FkZXIgaW5pdGlhbHplKCkgc3RlcCBoYXMgc3VjY2VlZGVkJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MTM1NzQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE5hbWU6ICdodmNMb2FkZXJfSW5pdGlhbGl6ZV9zdGVwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21TdGFydDogcGVyZm9ybWFuY2Uubm93KCkgLSBodmNMb2FkZXJJbml0aWFsaXplU3RhcnRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVUE6IG5hdmlnYXRvci51c2VyQWdlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVRdWVyeVBhcmFtOiBlbmFibGVRdWVyeVBhcmFtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA2XTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgICAgICAgICBlcnJvcl8xID0gX2Euc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZyh7IHR5cGU6IExvZ0tpbmQuRXJyb3IsIG1lc3NhZ2U6ICdodmNsb2FkZXIgaW5pdGlhbHplKCkgc3RlcCBoYXMgZmFpbGVkICcgKyBlcnJvcl8xLm1lc3NhZ2UsIGlkOiAnNTA4Mzc2JywgZXJyb3I6IGVycm9yXzEgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNjogcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4vKipcclxuICogUHJlbG9hZCBIVkMgdG8gcHJlcGFyZSBmb3IgaXRzIGJvb3RzdHJhcHBpbmcuXHJcbiAqXHJcbiAqIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBiZWZvcmUgYXR0ZW1wdGluZyB0byBib290c3RyYXAgYSBIVkNcclxuICpcclxuICogVG8gcHJlbG9hZCBtdWx0aXBsZSBmZWF0dXJlcyBpbiBwYXJhbGxlbDogUHJvbWlzZS5hbGwoW3ByZWxvYWRGZWF0dXJlKCksIHByZWxvYWRGZWF0dXJlKCksIC4uLl0pXHJcbiAqXHJcbiAqIFRoZSByZXR1cm5pbmcgUHJvbWlzZSByZXNvbHZlcyB0byBbYm9vbGVhbiwgUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZF0sIGluZGljYXRpbmcgaWYgdGhlIHByZWxvYWQgaGFzIGhhcHBlbmVkLCB3aXRoIG9yIHdpdGhvdXQgc3RhdGljIGFkZGl0aW9uYWwgb2JqZWN0c1xyXG4gKiBJZiB0aGUgSFZDIGlzIG5vdCBlbmFibGVkIGZvciB5b3VyIGFwcCBpbiB0aGUgQ2VudHJvIHZlcnNpb25pbmcgc2VydmVyIHRoZSBwcm9taXNlIHJlc29sdmVzIHRvIGZhbHNlLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHByZWxvYWRGZWF0dXJlKHBhcmFtcykge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB1eERhdGEsIHByZWxvYWRGZWF0dXJlU3RhcnRUaW1lLCBsb3dlckNhc2VGZWF0dXJlTmFtZSwgc3RhdGljQWRkaXRpb25hbE9iamVjdHMsIGZvcmVpZ25FbnZNYWluVmVyc2lvbiwgZXJyb3JfMjtcclxuICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAoX2EubGFiZWwpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICB1eERhdGEgPSB1eFZlcnNpb25EYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hLmxhYmVsID0gMTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzEsIDcsICwgOF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghbG9hZGVySW5pdGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbml0aWFsaXplKCkgbmVlZHMgdG8gYmUgaW52b2tlZCBiZWZvcmUgY2FsbGluZyBwcmVsb2FkRmVhdHVyZSgpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHByZWxvYWRGZWF0dXJlU3RhcnRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEocGFyYW1zLmxvY2FsTW9kZSAmJiAhcHJvY2Vzcy5lbnYuQ0VOVFJPX0hWQ19EQVRBKSkgcmV0dXJuIFszIC8qYnJlYWsqLywgM107XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgZ2V0VXhWZXJzaW9uRGVidWdEYXRhKCldO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgIF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICB1eERhdGEgPSB1eFZlcnNpb25EZWJ1Z0RhdGE7XHJcbiAgICAgICAgICAgICAgICAgICAgX2EubGFiZWwgPSAzO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdXhEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigndXhWZXJzaW9uRGF0YSBpcyBub3QgcG9wdWxhdGVkJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyQ2FzZUZlYXR1cmVOYW1lID0gcGFyYW1zLmZlYXR1cmVOYW1lLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1eERhdGFbbG93ZXJDYXNlRmVhdHVyZU5hbWVdKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkluZm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkhWQyBcIiArIGxvd2VyQ2FzZUZlYXR1cmVOYW1lICsgXCIgaXMgbm90IGVuYWJsZWQgZm9yIHRoaXMgaG9zdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MDg0MTknXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgW2ZhbHNlLCB1bmRlZmluZWRdXTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEoZ2V0RmVhdHVyZUxvYWRpbmdTdGF0ZShsb3dlckNhc2VGZWF0dXJlTmFtZSkgJiYgZ2V0RGJnU3RhdGUobG93ZXJDYXNlRmVhdHVyZU5hbWUpID09PSAhIXBhcmFtcy5sb2NhbE1vZGUpKSByZXR1cm4gWzMgLypicmVhayovLCA0XTtcclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkluZm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IFwicHJlbG9hZEZlYXR1cmUoKSBmZWF0dXJlIFwiICsgbG93ZXJDYXNlRmVhdHVyZU5hbWUgKyBcIiBhbHJlYWR5IGxvYWRlZCBwcmV2aW91c2x5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnNTA4NDY1JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogeyBodmM6IGxvd2VyQ2FzZUZlYXR1cmVOYW1lIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA2XTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNDogcmV0dXJuIFs0IC8qeWllbGQqLywgZHluYW1pY0xvYWRlcih1eERhdGFbbG93ZXJDYXNlRmVhdHVyZU5hbWVdLmxvYWRlclNwZWMsIGh2Y1RydXN0ZWRUeXBlUG9saWN5KV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDU6XHJcbiAgICAgICAgICAgICAgICAgICAgX2Euc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICghZ2V0RmVhdHVyZUxvYWRpbmdTdGF0ZShsb3dlckNhc2VGZWF0dXJlTmFtZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicHJlbG9hZEZlYXR1cmUoKTogZ2xvYmFsIGlzIG5vdCBwb3B1bGF0ZWQgYWZ0ZXIgbG9hZGluZyBmb3IgXCIgKyBsb3dlckNhc2VGZWF0dXJlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubTM2NV9hZG1pbl9mZWF0dXJlcy5sb2NEYmcgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cubTM2NV9hZG1pbl9mZWF0dXJlcy5sb2NEYmcgPSB7fTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgd2luZG93Lm0zNjVfYWRtaW5fZmVhdHVyZXMubG9jRGJnW2xvd2VyQ2FzZUZlYXR1cmVOYW1lXSA9ICEhcGFyYW1zLmxvY2FsTW9kZTtcclxuICAgICAgICAgICAgICAgICAgICBfYS5sYWJlbCA9IDY7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDY6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtcy5hZGFwdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdG9yZSBhZGFwdGVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdW1lckFkYXB0ZXJzLnNldChsb3dlckNhc2VGZWF0dXJlTmFtZSwgcGFyYW1zLmFkYXB0ZXJzKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdGljQWRkaXRpb25hbE9iamVjdHMgPSB2b2lkIDA7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gdG8gZ2V0IG1vcmUgZGV0YWlsZWQgaW5mbyBvZiB3aGljaCBodmMgZmVhdHVyZSBjYXVzZXMgdHJvdWJsZSwgYWRkaW5nIHRoaXMgZXh0cmEgbG9nXHJcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljQWRkaXRpb25hbE9iamVjdHMgPSB3aW5kb3cubTM2NV9hZG1pbl9mZWF0dXJlcy5zdGF0aWNBZGRpdGlvbmFsT2JqZWN0c1tsb3dlckNhc2VGZWF0dXJlTmFtZV07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduRW52TWFpblZlcnNpb24gPSB3aW5kb3cubTM2NV9hZG1pbl9mZWF0dXJlcy5mb3JlaWduRW52TWFpblZlcnNpb247XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogZm9yZWlnbkVudk1haW5WZXJzaW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcInVzaW5nIHYzIEh2YyBcIiArIGxvd2VyQ2FzZUZlYXR1cmVOYW1lICsgXCIsIGVycm9yIHdoZW4gdHJ5aW5nIHRvIHJldHJpZXZlIHN0YXRpY0FkZGl0aW9uYWxPYmplY3RzLCBlcnJvcjogXCIgKyBlcnJvci5tZXNzYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBcInVzaW5nIHYyIEh2YyBcIiArIGxvd2VyQ2FzZUZlYXR1cmVOYW1lICsgXCIsIHN0YXRpY0FkZGl0aW9uYWxPYmplY3RzIGlzIG5vdCBzdXBwb3J0ZWQsIGVycm9yOiBcIiArIGVycm9yLm1lc3NhZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogJzUyMTg0OCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkluZm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdwcmVsb2FkRmVhdHVyZXMoKSBzdGVwIGhhcyBzdWNjZWVkZWQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzUxMzU4NScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh2YzogbG93ZXJDYXNlRmVhdHVyZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1eGRhdGE6IEpTT04uc3RyaW5naWZ5KHV4RGF0YSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE5hbWU6ICdwcmVsb2FkRmVhdHVyZV9zdGVwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21TdGFydDogcGVyZm9ybWFuY2Uubm93KCkgLSBwcmVsb2FkRmVhdHVyZVN0YXJ0VGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVBOiBuYXZpZ2F0b3IudXNlckFnZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgW3RydWUsIHN0YXRpY0FkZGl0aW9uYWxPYmplY3RzXV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfMiA9IF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnZXJyb3IgaW4gcHJlbG9hZEZlYXR1cmVzKCkgc3RlcCAnICsgZXJyb3JfMi5tZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJzUwODQxNycsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IHsgdXhkYXRhOiBKU09OLnN0cmluZ2lmeSh1eERhdGEpIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnJvcl8yXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3JfMjtcclxuICAgICAgICAgICAgICAgIGNhc2UgODogcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG4vKipcclxuICogQm9vdHN0cmFwIHRoZSBIVkMuXHJcbiAqXHJcbiAqIFRoaXMgd2lsbCByZXR1cm4gYSBmdW5jdGlvbiB3aGljaCB5b3UgY291bGQgdXNlIHRvIGJvb3RzdHJhcCB0aGUgSFZDLCB0aGUgcmV0dXJuIHJlc3VsdFxyXG4gKiBvZiB0aGUgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gdW5tb3VudCB0aGUgSFZDXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gYm9vdHN0cmFwRmVhdHVyZShwYXJhbXMpIHtcclxuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgYm9vdFN0cmFwRmVhdHVyZVN0YXJ0VGltZSwgdXhEYXRhLCBsb3dlckNhc2VGZWF0dXJlTmFtZSwgbG9hZGVyRGF0YSwgYm9vdHN0cmFwcGVyLCBlcnJvcl8zLCBmb3JlaWduRW52TWFpblZlcnNpb24sIGVycm9yXzQ7XHJcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKF9hLmxhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDA6XHJcbiAgICAgICAgICAgICAgICAgICAgX2EudHJ5cy5wdXNoKFswLCA3LCAsIDhdKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIWxvYWRlckluaXRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW5pdGlhbGl6ZSgpIG5lZWRzIHRvIGJlIGludm9rZWQgYmVmb3JlIGNhbGxpbmcgYm9vdHN0cmFwRmVhdHVyZSgpJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJvb3RTdHJhcEZlYXR1cmVTdGFydFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgICAgICAgICB1eERhdGEgPSB1eFZlcnNpb25EYXRhO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvd2VyQ2FzZUZlYXR1cmVOYW1lID0gcGFyYW1zLmZlYXR1cmVOYW1lLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldERiZ1N0YXRlKGxvd2VyQ2FzZUZlYXR1cmVOYW1lKSAmJiAhcHJvY2Vzcy5lbnYuQ0VOVFJPX0hWQ19EQVRBKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHV4RGF0YSA9IHV4VmVyc2lvbkRlYnVnRGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1eERhdGEpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1eFZlcnNpb25EYXRhIGlzIG5vdCBwb3B1bGF0ZWQnKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFnZXRGZWF0dXJlTG9hZGluZ1N0YXRlKGxvd2VyQ2FzZUZlYXR1cmVOYW1lKSkgcmV0dXJuIFszIC8qYnJlYWsqLywgNV07XHJcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyRGF0YSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudHJvQmFzZVVybDogY2VudHJvQmFzZVVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2RuVXJsOiB1eERhdGFbbG93ZXJDYXNlRmVhdHVyZU5hbWVdLmNkblVybCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxvZ2dlcklkOiB1eERhdGEuX19ob3N0QXBwX2NvbmZpZy5hcmlhTG9nZ2VySWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEFwcFVybHM6IHV4RGF0YS5fX2hvc3RBcHBfY29uZmlnLmhvc3RpbmdBcHBVcmxzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uSW5mbzogaW5zdGFuY2VWZXJzaW9uSW5mb1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYm9vdHN0cmFwcGVyID0gdm9pZCAwO1xyXG4gICAgICAgICAgICAgICAgICAgIF9hLmxhYmVsID0gMTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICBfYS50cnlzLnB1c2goWzEsIDMsICwgNF0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCAvKnlpZWxkKi8sIHdpbmRvdy5tMzY1X2FkbWluX2ZlYXR1cmVzLmluaXRpYWxpemVyc1tsb3dlckNhc2VGZWF0dXJlTmFtZV0oY29uc3VtZXJBZGFwdGVycy5nZXQobG93ZXJDYXNlRmVhdHVyZU5hbWUpLCBsb2FkZXJEYXRhLCBjb25zdW1lclByZUNvbmZpZyldO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgIGJvb3RzdHJhcHBlciA9IF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkluZm8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdib290c3RyYXBGZWF0dXJlKCkgc3RlcCBoYXMgc3VjY2VlZGVkJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MTM1ODYnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodmM6IGxvd2VyQ2FzZUZlYXR1cmVOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROYW1lOiAnYm9vdHN0cmFwRmVhdHVyZV9zdGVwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21TdGFydDogcGVyZm9ybWFuY2Uubm93KCkgLSBib290U3RyYXBGZWF0dXJlU3RhcnRUaW1lLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVUE6IG5hdmlnYXRvci51c2VyQWdlbnRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMyAvKmJyZWFrKi8sIDRdO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAzOlxyXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXzMgPSBfYS5zZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yZWlnbkVudk1haW5WZXJzaW9uID0gd2luZG93Lm0zNjVfYWRtaW5fZmVhdHVyZXMuZm9yZWlnbkVudk1haW5WZXJzaW9uO1xyXG4gICAgICAgICAgICAgICAgICAgIGxvZyh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IExvZ0tpbmQuRXJyb3IsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGZvcmVpZ25FbnZNYWluVmVyc2lvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcInVzaW5nIHYzIEh2YyBcIiArIGxvd2VyQ2FzZUZlYXR1cmVOYW1lICsgXCIsIGVycm9yIHdoZW4gcnVubmluZyBmb3JlaWduRmVhdHVyZUluaXRpYWxpemVSdW50aW1lLCBlcnJvcjogXCIgKyBlcnJvcl8zLm1lc3NhZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJ1c2luZyB2MiBIdmMgXCIgKyBsb3dlckNhc2VGZWF0dXJlTmFtZSArIFwiIGlzIG5vdCBzdXBwb3J0ZWQsIGVycm9yOiBcIiArIGVycm9yXzMubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MjE4NTEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JfM1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzM7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IHJldHVybiBbMiAvKnJldHVybiovLCBib290c3RyYXBwZXJdO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA1OiB0aHJvdyBuZXcgRXJyb3IoXCJib290c3RyYXBGZWF0dXJlKCk6IHByZWxvYWRGZWF0dXJlKCkgd2FzIG5vdCBjYWxsZWQgYmVmb3JlIGJvb3RzdHJhcGluZyBcIiArIGxvd2VyQ2FzZUZlYXR1cmVOYW1lKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNjogcmV0dXJuIFszIC8qYnJlYWsqLywgOF07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDc6XHJcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JfNCA9IF9hLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBsb2coe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBMb2dLaW5kLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnZXJyb3IgaW4gYm9vdHN0cmFwRmVhdHVyZSgpIHN0ZXAgJyArIGVycm9yXzQubWVzc2FnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6ICc1MDg0ODEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JfNFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yXzQ7XHJcbiAgICAgICAgICAgICAgICBjYXNlIDg6IHJldHVybiBbMiAvKnJldHVybiovXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/foreignEnvLoader.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/index.js": /*!*********************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/index.js ***! \*********************************************************************/ /*! exports provided: initialize, preloadFeature, bootstrapFeature, RequestVerb, BackendTarget, TokenOnlyRequestUrl, LogKind, LogCategory, isInfo, isError, isAnalytics, isPerformance, isAvailability, isReliability, log, AdapterProvider, AdapterType, createStaticDataSource */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foreignEnvLoader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foreignEnvLoader */ \"./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/foreignEnvLoader.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"initialize\", function() { return _foreignEnvLoader__WEBPACK_IMPORTED_MODULE_0__[\"initialize\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"preloadFeature\", function() { return _foreignEnvLoader__WEBPACK_IMPORTED_MODULE_0__[\"preloadFeature\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"bootstrapFeature\", function() { return _foreignEnvLoader__WEBPACK_IMPORTED_MODULE_0__[\"bootstrapFeature\"]; });\n\n/* harmony import */ var _runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../runtime/data/requestFunction.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"RequestVerb\", function() { return _runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_1__[\"RequestVerb\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"BackendTarget\", function() { return _runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_1__[\"BackendTarget\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"TokenOnlyRequestUrl\", function() { return _runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_1__[\"TokenOnlyRequestUrl\"]; });\n\n/* harmony import */ var _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../runtime/logging/log.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LogKind\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"LogKind\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"LogCategory\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"LogCategory\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isInfo\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isInfo\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isError\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isError\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAnalytics\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isAnalytics\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isPerformance\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isPerformance\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isAvailability\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isAvailability\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"isReliability\", function() { return _runtime_logging_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isReliability\"]; });\n\n/* harmony import */ var _runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../runtime/logging/broadcastLogger */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/broadcastLogger.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"log\", function() { return _runtime_logging_broadcastLogger__WEBPACK_IMPORTED_MODULE_3__[\"log\"]; });\n\n/* harmony import */ var _runtime_bootstrap_adapter_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../runtime/bootstrap/adapter.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/adapter.types.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AdapterProvider\", function() { return _runtime_bootstrap_adapter_types__WEBPACK_IMPORTED_MODULE_4__[\"AdapterProvider\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"AdapterType\", function() { return _runtime_bootstrap_adapter_types__WEBPACK_IMPORTED_MODULE_4__[\"AdapterType\"]; });\n\n/* harmony import */ var _runtime_configuration_staticDataSource__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../runtime/configuration/staticDataSource */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/staticDataSource.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createStaticDataSource\", function() { return _runtime_configuration_staticDataSource__WEBPACK_IMPORTED_MODULE_5__[\"createStaticDataSource\"]; });\n\n/**\r\n * All types and functions here will be exposed under the Centro HVC-loader npm package.\r\n * If you want to expose your own type and functions to HVC consumers there are two options:\r\n * - publish a new npm package containing your types and functions. You can manage versions on your own.\r\n * - expose an interface without explicit typing, and then check the passed in values in runtime.\r\n */\r\n\r\n\r\n\r\n\r\n\r\n\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvaHZjLWxvYWRlci9pbmRleC5qcz9kYWU3Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2tGO0FBQ3NCO0FBQ3dDO0FBQ3ZGO0FBQ3lCO0FBQ0MiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvaHZjLWxvYWRlci9pbmRleC5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBbGwgdHlwZXMgYW5kIGZ1bmN0aW9ucyBoZXJlIHdpbGwgYmUgZXhwb3NlZCB1bmRlciB0aGUgQ2VudHJvIEhWQy1sb2FkZXIgbnBtIHBhY2thZ2UuXHJcbiAqIElmIHlvdSB3YW50IHRvIGV4cG9zZSB5b3VyIG93biB0eXBlIGFuZCBmdW5jdGlvbnMgdG8gSFZDIGNvbnN1bWVycyB0aGVyZSBhcmUgdHdvIG9wdGlvbnM6XHJcbiAqIC0gcHVibGlzaCBhIG5ldyBucG0gcGFja2FnZSBjb250YWluaW5nIHlvdXIgdHlwZXMgYW5kIGZ1bmN0aW9ucy4gWW91IGNhbiBtYW5hZ2UgdmVyc2lvbnMgb24geW91ciBvd24uXHJcbiAqIC0gZXhwb3NlIGFuIGludGVyZmFjZSB3aXRob3V0IGV4cGxpY2l0IHR5cGluZywgYW5kIHRoZW4gY2hlY2sgdGhlIHBhc3NlZCBpbiB2YWx1ZXMgaW4gcnVudGltZS5cclxuICovXHJcbmV4cG9ydCB7IGluaXRpYWxpemUsIHByZWxvYWRGZWF0dXJlLCBib290c3RyYXBGZWF0dXJlIH0gZnJvbSAnLi9mb3JlaWduRW52TG9hZGVyJztcclxuZXhwb3J0IHsgUmVxdWVzdFZlcmIsIEJhY2tlbmRUYXJnZXQsIFRva2VuT25seVJlcXVlc3RVcmwgfSBmcm9tICcuLi9ydW50aW1lL2RhdGEvcmVxdWVzdEZ1bmN0aW9uLnR5cGVzJztcclxuZXhwb3J0IHsgTG9nS2luZCwgTG9nQ2F0ZWdvcnksIGlzSW5mbywgaXNFcnJvciwgaXNBbmFseXRpY3MsIGlzUGVyZm9ybWFuY2UsIGlzQXZhaWxhYmlsaXR5LCBpc1JlbGlhYmlsaXR5IH0gZnJvbSAnLi4vcnVudGltZS9sb2dnaW5nL2xvZy50eXBlcyc7XHJcbmV4cG9ydCB7IGxvZyB9IGZyb20gJy4uL3J1bnRpbWUvbG9nZ2luZy9icm9hZGNhc3RMb2dnZXInO1xyXG5leHBvcnQgeyBBZGFwdGVyUHJvdmlkZXIsIEFkYXB0ZXJUeXBlIH0gZnJvbSAnLi4vcnVudGltZS9ib290c3RyYXAvYWRhcHRlci50eXBlcyc7XHJcbmV4cG9ydCB7IGNyZWF0ZVN0YXRpY0RhdGFTb3VyY2UgfSBmcm9tICcuLi9ydW50aW1lL2NvbmZpZ3VyYXRpb24vc3RhdGljRGF0YVNvdXJjZSc7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/index.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/adapter.types.js": /*!************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/adapter.types.js ***! \************************************************************************************/ /*! exports provided: AdapterProvider, AdapterType */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AdapterProvider\", function() { return AdapterProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AdapterType\", function() { return AdapterType; });\n/**\r\n * The adapter provider parties\r\n */\r\nvar AdapterProvider;\r\n(function (AdapterProvider) {\r\n AdapterProvider[\"Centro\"] = \"Centro\";\r\n AdapterProvider[\"Hvc\"] = \"Hvc\";\r\n AdapterProvider[\"Consumer\"] = \"Consumer\";\r\n})(AdapterProvider || (AdapterProvider = {}));\r\n/**\r\n * The adapter types\r\n */\r\nvar AdapterType;\r\n(function (AdapterType) {\r\n AdapterType[\"Request\"] = \"Request\";\r\n AdapterType[\"History\"] = \"History\";\r\n AdapterType[\"DataSources\"] = \"DataSources\";\r\n AdapterType[\"SetTitleImpl\"] = \"SetTitleImpl\";\r\n})(AdapterType || (AdapterType = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9ib290c3RyYXAvYWRhcHRlci50eXBlcy5qcz9jNzEwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBDQUEwQztBQUMzQztBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQyIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMvY2VudHJvLWh2Yy1sb2FkZXIvZGlzdC9ydW50aW1lL2Jvb3RzdHJhcC9hZGFwdGVyLnR5cGVzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFRoZSBhZGFwdGVyIHByb3ZpZGVyIHBhcnRpZXNcclxuICovXHJcbmV4cG9ydCB2YXIgQWRhcHRlclByb3ZpZGVyO1xyXG4oZnVuY3Rpb24gKEFkYXB0ZXJQcm92aWRlcikge1xyXG4gICAgQWRhcHRlclByb3ZpZGVyW1wiQ2VudHJvXCJdID0gXCJDZW50cm9cIjtcclxuICAgIEFkYXB0ZXJQcm92aWRlcltcIkh2Y1wiXSA9IFwiSHZjXCI7XHJcbiAgICBBZGFwdGVyUHJvdmlkZXJbXCJDb25zdW1lclwiXSA9IFwiQ29uc3VtZXJcIjtcclxufSkoQWRhcHRlclByb3ZpZGVyIHx8IChBZGFwdGVyUHJvdmlkZXIgPSB7fSkpO1xyXG4vKipcclxuICogVGhlIGFkYXB0ZXIgdHlwZXNcclxuICovXHJcbmV4cG9ydCB2YXIgQWRhcHRlclR5cGU7XHJcbihmdW5jdGlvbiAoQWRhcHRlclR5cGUpIHtcclxuICAgIEFkYXB0ZXJUeXBlW1wiUmVxdWVzdFwiXSA9IFwiUmVxdWVzdFwiO1xyXG4gICAgQWRhcHRlclR5cGVbXCJIaXN0b3J5XCJdID0gXCJIaXN0b3J5XCI7XHJcbiAgICBBZGFwdGVyVHlwZVtcIkRhdGFTb3VyY2VzXCJdID0gXCJEYXRhU291cmNlc1wiO1xyXG4gICAgQWRhcHRlclR5cGVbXCJTZXRUaXRsZUltcGxcIl0gPSBcIlNldFRpdGxlSW1wbFwiO1xyXG59KShBZGFwdGVyVHlwZSB8fCAoQWRhcHRlclR5cGUgPSB7fSkpO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/adapter.types.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/scriptLoader.js": /*!***********************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/scriptLoader.js ***! \***********************************************************************************/ /*! exports provided: dynamicLoader */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"dynamicLoader\", function() { return dynamicLoader; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n\r\nfunction decorateElement(element, attributes) {\r\n if (!attributes) {\r\n return;\r\n }\r\n for (var attr in attributes) {\r\n if (attributes.hasOwnProperty(attr)) {\r\n // this can be any attributes\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n ;\r\n element[attr] = attributes[attr];\r\n }\r\n }\r\n}\r\nfunction loadScriptUrl(leaf, trustedTypePolicy) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n // @ts-ignore TODO: TS Bug, remove once upgrade\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var scriptElement = document.createElement('script');\r\n if (trustedTypePolicy === null || trustedTypePolicy === void 0 ? void 0 : trustedTypePolicy.createScriptURL) {\r\n scriptElement.src = trustedTypePolicy.createScriptURL(leaf.content);\r\n }\r\n else {\r\n scriptElement.src = leaf.content;\r\n }\r\n scriptElement.onload = function () {\r\n resolve();\r\n };\r\n scriptElement.onerror = function () {\r\n reject(new Error(\"Dynamically loading script \" + leaf.content + \" failed\"));\r\n };\r\n decorateElement(scriptElement, leaf.attributes);\r\n document.body.appendChild(scriptElement);\r\n })];\r\n });\r\n });\r\n}\r\nfunction loadScript(leaf) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n // @ts-ignore TODO: TS Bug, remove once upgrade\r\n return [2 /*return*/, new Promise(function (resolve) {\r\n var scriptElement = document.createElement('script');\r\n var inlineScript = document.createTextNode(leaf.content);\r\n scriptElement.appendChild(inlineScript);\r\n decorateElement(scriptElement, leaf.attributes);\r\n document.body.appendChild(scriptElement);\r\n resolve();\r\n })];\r\n });\r\n });\r\n}\r\nfunction loadStyleUrl(leaf) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n // @ts-ignore TODO: TS Bug, remove once upgrade\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var linkElement = document.createElement('link');\r\n linkElement.rel = 'stylesheet';\r\n linkElement.type = 'text/css';\r\n linkElement.href = leaf.content;\r\n linkElement.onload = function () {\r\n resolve();\r\n };\r\n linkElement.onerror = function () {\r\n reject(new Error(\"Dynamically loading style \" + leaf.content + \" failed\"));\r\n };\r\n decorateElement(linkElement, leaf.attributes);\r\n document.head.appendChild(linkElement);\r\n })];\r\n });\r\n });\r\n}\r\nfunction loadStyle(leaf) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n // @ts-ignore TODO: TS Bug, remove once upgrade\r\n return [2 /*return*/, new Promise(function (resolve) {\r\n var linkElement = document.createElement('link');\r\n linkElement.rel = 'stylesheet';\r\n linkElement.type = 'text/css';\r\n var inlineStyle = document.createTextNode(leaf.content);\r\n linkElement.appendChild(inlineStyle);\r\n decorateElement(linkElement, leaf.attributes);\r\n document.head.appendChild(linkElement);\r\n resolve();\r\n })];\r\n });\r\n });\r\n}\r\nfunction dynamicLoader(node, trustedTypePolicy) {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n var _a, err_1, _b, _c, script, e_1_1, err_2;\r\n var e_1, _d;\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n _a = node.type;\r\n switch (_a) {\r\n case 'parallel': return [3 /*break*/, 1];\r\n case 'sequential': return [3 /*break*/, 5];\r\n case 'scriptUrl': return [3 /*break*/, 16];\r\n case 'script': return [3 /*break*/, 18];\r\n case 'styleUrl': return [3 /*break*/, 20];\r\n case 'style': return [3 /*break*/, 22];\r\n }\r\n return [3 /*break*/, 24];\r\n case 1:\r\n _e.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, Promise.all(node.children.map(function (n) {\r\n return dynamicLoader(n, trustedTypePolicy);\r\n }))];\r\n case 2:\r\n _e.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n err_1 = _e.sent();\r\n if (node.optional) {\r\n console.log('Dynamic loading of optional script failed', err_1);\r\n }\r\n else {\r\n throw err_1;\r\n }\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n case 5:\r\n _e.trys.push([5, 14, , 15]);\r\n _e.label = 6;\r\n case 6:\r\n _e.trys.push([6, 11, 12, 13]);\r\n _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__values\"])(node.children), _c = _b.next();\r\n _e.label = 7;\r\n case 7:\r\n if (!!_c.done) return [3 /*break*/, 10];\r\n script = _c.value;\r\n return [4 /*yield*/, dynamicLoader(script, trustedTypePolicy)];\r\n case 8:\r\n _e.sent();\r\n _e.label = 9;\r\n case 9:\r\n _c = _b.next();\r\n return [3 /*break*/, 7];\r\n case 10: return [3 /*break*/, 13];\r\n case 11:\r\n e_1_1 = _e.sent();\r\n e_1 = { error: e_1_1 };\r\n return [3 /*break*/, 13];\r\n case 12:\r\n try {\r\n if (_c && !_c.done && (_d = _b.return)) _d.call(_b);\r\n }\r\n finally { if (e_1) throw e_1.error; }\r\n return [7 /*endfinally*/];\r\n case 13: return [3 /*break*/, 15];\r\n case 14:\r\n err_2 = _e.sent();\r\n if (node.optional) {\r\n console.log('Dynamic loading of optional script failed', err_2);\r\n }\r\n else {\r\n throw err_2;\r\n }\r\n return [3 /*break*/, 15];\r\n case 15: return [2 /*return*/];\r\n case 16: return [4 /*yield*/, loadScriptUrl(node, trustedTypePolicy)];\r\n case 17:\r\n _e.sent();\r\n return [2 /*return*/];\r\n case 18: return [4 /*yield*/, loadScript(node)];\r\n case 19:\r\n _e.sent();\r\n return [2 /*return*/];\r\n case 20: return [4 /*yield*/, loadStyleUrl(node)];\r\n case 21:\r\n _e.sent();\r\n return [2 /*return*/];\r\n case 22: return [4 /*yield*/, loadStyle(node)];\r\n case 23:\r\n _e.sent();\r\n return [2 /*return*/];\r\n case 24: throw new Error(\"Invalid script loader object \" + JSON.stringify(node));\r\n }\r\n });\r\n });\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9ib290c3RyYXAvc2NyaXB0TG9hZGVyLmpzPzVkMmQiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQXlEO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLHVEQUFTO0FBQ3BCLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQSxXQUFXLHVEQUFTO0FBQ3BCLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQSxXQUFXLHVEQUFTO0FBQ3BCLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixTQUFTO0FBQ1QsS0FBSztBQUNMO0FBQ0E7QUFDQSxXQUFXLHVEQUFTO0FBQ3BCLGVBQWUseURBQVc7QUFDMUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsU0FBUztBQUNULEtBQUs7QUFDTDtBQUNPO0FBQ1AsV0FBVyx1REFBUztBQUNwQjtBQUNBO0FBQ0EsZUFBZSx5REFBVztBQUMxQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QjtBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsc0RBQVE7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLDBCQUEwQjtBQUN2RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsS0FBSztBQUNMIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy9jZW50cm8taHZjLWxvYWRlci9kaXN0L3J1bnRpbWUvYm9vdHN0cmFwL3NjcmlwdExvYWRlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciwgX19nZW5lcmF0b3IsIF9fdmFsdWVzIH0gZnJvbSBcInRzbGliXCI7XHJcbmZ1bmN0aW9uIGRlY29yYXRlRWxlbWVudChlbGVtZW50LCBhdHRyaWJ1dGVzKSB7XHJcbiAgICBpZiAoIWF0dHJpYnV0ZXMpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBmb3IgKHZhciBhdHRyIGluIGF0dHJpYnV0ZXMpIHtcclxuICAgICAgICBpZiAoYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShhdHRyKSkge1xyXG4gICAgICAgICAgICAvLyB0aGlzIGNhbiBiZSBhbnkgYXR0cmlidXRlc1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgICAgICA7XHJcbiAgICAgICAgICAgIGVsZW1lbnRbYXR0cl0gPSBhdHRyaWJ1dGVzW2F0dHJdO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiBsb2FkU2NyaXB0VXJsKGxlYWYsIHRydXN0ZWRUeXBlUG9saWN5KSB7XHJcbiAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgICAgICAvLyBAdHMtaWdub3JlIFRPRE86IFRTIEJ1ZywgcmVtb3ZlIG9uY2UgdXBncmFkZVxyXG4gICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgbmV3IFByb21pc2UoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRydXN0ZWRUeXBlUG9saWN5ID09PSBudWxsIHx8IHRydXN0ZWRUeXBlUG9saWN5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0cnVzdGVkVHlwZVBvbGljeS5jcmVhdGVTY3JpcHRVUkwpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0RWxlbWVudC5zcmMgPSB0cnVzdGVkVHlwZVBvbGljeS5jcmVhdGVTY3JpcHRVUkwobGVhZi5jb250ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdEVsZW1lbnQuc3JjID0gbGVhZi5jb250ZW50O1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0RWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRHluYW1pY2FsbHkgbG9hZGluZyBzY3JpcHQgXCIgKyBsZWFmLmNvbnRlbnQgKyBcIiBmYWlsZWRcIikpO1xyXG4gICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdGVFbGVtZW50KHNjcmlwdEVsZW1lbnQsIGxlYWYuYXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHRFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgIH0pXTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG59XHJcbmZ1bmN0aW9uIGxvYWRTY3JpcHQobGVhZikge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBUUyBCdWcsIHJlbW92ZSBvbmNlIHVwZ3JhZGVcclxuICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5saW5lU2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobGVhZi5jb250ZW50KTtcclxuICAgICAgICAgICAgICAgICAgICBzY3JpcHRFbGVtZW50LmFwcGVuZENoaWxkKGlubGluZVNjcmlwdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZGVjb3JhdGVFbGVtZW50KHNjcmlwdEVsZW1lbnQsIGxlYWYuYXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHRFbGVtZW50KTtcclxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICB9KV07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBsb2FkU3R5bGVVcmwobGVhZikge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBUUyBCdWcsIHJlbW92ZSBvbmNlIHVwZ3JhZGVcclxuICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlua0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlua0VsZW1lbnQucmVsID0gJ3N0eWxlc2hlZXQnO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LnR5cGUgPSAndGV4dC9jc3MnO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LmhyZWYgPSBsZWFmLmNvbnRlbnQ7XHJcbiAgICAgICAgICAgICAgICAgICAgbGlua0VsZW1lbnQub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBsaW5rRWxlbWVudC5vbmVycm9yID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKFwiRHluYW1pY2FsbHkgbG9hZGluZyBzdHlsZSBcIiArIGxlYWYuY29udGVudCArIFwiIGZhaWxlZFwiKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZUVsZW1lbnQobGlua0VsZW1lbnQsIGxlYWYuYXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICB9KV07XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufVxyXG5mdW5jdGlvbiBsb2FkU3R5bGUobGVhZikge1xyXG4gICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2EpIHtcclxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZSBUT0RPOiBUUyBCdWcsIHJlbW92ZSBvbmNlIHVwZ3JhZGVcclxuICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi8sIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbmtFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgICAgICAgICAgICAgICAgICBsaW5rRWxlbWVudC50eXBlID0gJ3RleHQvY3NzJztcclxuICAgICAgICAgICAgICAgICAgICB2YXIgaW5saW5lU3R5bGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShsZWFmLmNvbnRlbnQpO1xyXG4gICAgICAgICAgICAgICAgICAgIGxpbmtFbGVtZW50LmFwcGVuZENoaWxkKGlubGluZVN0eWxlKTtcclxuICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZUVsZW1lbnQobGlua0VsZW1lbnQsIGxlYWYuYXR0cmlidXRlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rRWxlbWVudCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfSldO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGR5bmFtaWNMb2FkZXIobm9kZSwgdHJ1c3RlZFR5cGVQb2xpY3kpIHtcclxuICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgX2EsIGVycl8xLCBfYiwgX2MsIHNjcmlwdCwgZV8xXzEsIGVycl8yO1xyXG4gICAgICAgIHZhciBlXzEsIF9kO1xyXG4gICAgICAgIHJldHVybiBfX2dlbmVyYXRvcih0aGlzLCBmdW5jdGlvbiAoX2UpIHtcclxuICAgICAgICAgICAgc3dpdGNoIChfZS5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgICAgIF9hID0gbm9kZS50eXBlO1xyXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoX2EpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncGFyYWxsZWwnOiByZXR1cm4gWzMgLypicmVhayovLCAxXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc2VxdWVudGlhbCc6IHJldHVybiBbMyAvKmJyZWFrKi8sIDVdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzY3JpcHRVcmwnOiByZXR1cm4gWzMgLypicmVhayovLCAxNl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NjcmlwdCc6IHJldHVybiBbMyAvKmJyZWFrKi8sIDE4XTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3R5bGVVcmwnOiByZXR1cm4gWzMgLypicmVhayovLCAyMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N0eWxlJzogcmV0dXJuIFszIC8qYnJlYWsqLywgMjJdO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCAyNF07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICAgICAgICAgICAgX2UudHJ5cy5wdXNoKFsxLCAzLCAsIDRdKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQgLyp5aWVsZCovLCBQcm9taXNlLmFsbChub2RlLmNoaWxkcmVuLm1hcChmdW5jdGlvbiAobikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGR5bmFtaWNMb2FkZXIobiwgdHJ1c3RlZFR5cGVQb2xpY3kpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSldO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgIF9lLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA0XTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICBlcnJfMSA9IF9lLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZS5vcHRpb25hbCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRHluYW1pYyBsb2FkaW5nIG9mIG9wdGlvbmFsIHNjcmlwdCBmYWlsZWQnLCBlcnJfMSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlcnJfMTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFszIC8qYnJlYWsqLywgNF07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IHJldHVybiBbMiAvKnJldHVybiovXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgICAgICAgICBfZS50cnlzLnB1c2goWzUsIDE0LCAsIDE1XSk7XHJcbiAgICAgICAgICAgICAgICAgICAgX2UubGFiZWwgPSA2O1xyXG4gICAgICAgICAgICAgICAgY2FzZSA2OlxyXG4gICAgICAgICAgICAgICAgICAgIF9lLnRyeXMucHVzaChbNiwgMTEsIDEyLCAxM10pO1xyXG4gICAgICAgICAgICAgICAgICAgIF9iID0gX192YWx1ZXMobm9kZS5jaGlsZHJlbiksIF9jID0gX2IubmV4dCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9lLmxhYmVsID0gNztcclxuICAgICAgICAgICAgICAgIGNhc2UgNzpcclxuICAgICAgICAgICAgICAgICAgICBpZiAoISFfYy5kb25lKSByZXR1cm4gWzMgLypicmVhayovLCAxMF07XHJcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0ID0gX2MudmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0IC8qeWllbGQqLywgZHluYW1pY0xvYWRlcihzY3JpcHQsIHRydXN0ZWRUeXBlUG9saWN5KV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDg6XHJcbiAgICAgICAgICAgICAgICAgICAgX2Uuc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF9lLmxhYmVsID0gOTtcclxuICAgICAgICAgICAgICAgIGNhc2UgOTpcclxuICAgICAgICAgICAgICAgICAgICBfYyA9IF9iLm5leHQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCA3XTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTA6IHJldHVybiBbMyAvKmJyZWFrKi8sIDEzXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTE6XHJcbiAgICAgICAgICAgICAgICAgICAgZV8xXzEgPSBfZS5zZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZV8xID0geyBlcnJvcjogZV8xXzEgfTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCAxM107XHJcbiAgICAgICAgICAgICAgICBjYXNlIDEyOlxyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfYyAmJiAhX2MuZG9uZSAmJiAoX2QgPSBfYi5yZXR1cm4pKSBfZC5jYWxsKF9iKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZmluYWxseSB7IGlmIChlXzEpIHRocm93IGVfMS5lcnJvcjsgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbNyAvKmVuZGZpbmFsbHkqL107XHJcbiAgICAgICAgICAgICAgICBjYXNlIDEzOiByZXR1cm4gWzMgLypicmVhayovLCAxNV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE0OlxyXG4gICAgICAgICAgICAgICAgICAgIGVycl8yID0gX2Uuc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlLm9wdGlvbmFsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdEeW5hbWljIGxvYWRpbmcgb2Ygb3B0aW9uYWwgc2NyaXB0IGZhaWxlZCcsIGVycl8yKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IGVycl8yO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMgLypicmVhayovLCAxNV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE1OiByZXR1cm4gWzIgLypyZXR1cm4qL107XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE2OiByZXR1cm4gWzQgLyp5aWVsZCovLCBsb2FkU2NyaXB0VXJsKG5vZGUsIHRydXN0ZWRUeXBlUG9saWN5KV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE3OlxyXG4gICAgICAgICAgICAgICAgICAgIF9lLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XHJcbiAgICAgICAgICAgICAgICBjYXNlIDE4OiByZXR1cm4gWzQgLyp5aWVsZCovLCBsb2FkU2NyaXB0KG5vZGUpXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMTk6XHJcbiAgICAgICAgICAgICAgICAgICAgX2Uuc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiAvKnJldHVybiovXTtcclxuICAgICAgICAgICAgICAgIGNhc2UgMjA6IHJldHVybiBbNCAvKnlpZWxkKi8sIGxvYWRTdHlsZVVybChub2RlKV07XHJcbiAgICAgICAgICAgICAgICBjYXNlIDIxOlxyXG4gICAgICAgICAgICAgICAgICAgIF9lLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qL107XHJcbiAgICAgICAgICAgICAgICBjYXNlIDIyOiByZXR1cm4gWzQgLyp5aWVsZCovLCBsb2FkU3R5bGUobm9kZSldO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyMzpcclxuICAgICAgICAgICAgICAgICAgICBfZS5zZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyIC8qcmV0dXJuKi9dO1xyXG4gICAgICAgICAgICAgICAgY2FzZSAyNDogdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzY3JpcHQgbG9hZGVyIG9iamVjdCBcIiArIEpTT04uc3RyaW5naWZ5KG5vZGUpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/scriptLoader.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/trustedTypesPolicy.js": /*!*****************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/trustedTypesPolicy.js ***! \*****************************************************************************************/ /*! exports provided: createTrustedTypesPolicy */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTrustedTypesPolicy\", function() { return createTrustedTypesPolicy; });\nvar createTrustedTypesPolicy = function (policyName) {\r\n var _a;\r\n var ttWindow = window;\r\n var trustedTypePolicy;\r\n if ((_a = ttWindow === null || ttWindow === void 0 ? void 0 : ttWindow.trustedTypes) === null || _a === void 0 ? void 0 : _a.createPolicy) {\r\n try {\r\n trustedTypePolicy = ttWindow.trustedTypes.createPolicy(policyName, {\r\n createScriptURL: function (url) {\r\n var parseUrl;\r\n try {\r\n parseUrl = new URL(url);\r\n }\r\n catch (error) {\r\n throw new Error(\"Invalid script url \" + url);\r\n }\r\n if ((parseUrl === null || parseUrl === void 0 ? void 0 : parseUrl.protocol) !== 'https:') {\r\n throw new Error(\"Only https protocol is allowed for script url \" + url);\r\n }\r\n return url;\r\n },\r\n createScript: undefined,\r\n createHTML: undefined\r\n });\r\n }\r\n catch (error) {\r\n console.error('Failed to create trusted type policy', error);\r\n }\r\n }\r\n return trustedTypePolicy;\r\n};\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9ib290c3RyYXAvdHJ1c3RlZFR5cGVzUG9saWN5LmpzPzAzY2MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9ib290c3RyYXAvdHJ1c3RlZFR5cGVzUG9saWN5LmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHZhciBjcmVhdGVUcnVzdGVkVHlwZXNQb2xpY3kgPSBmdW5jdGlvbiAocG9saWN5TmFtZSkge1xyXG4gICAgdmFyIF9hO1xyXG4gICAgdmFyIHR0V2luZG93ID0gd2luZG93O1xyXG4gICAgdmFyIHRydXN0ZWRUeXBlUG9saWN5O1xyXG4gICAgaWYgKChfYSA9IHR0V2luZG93ID09PSBudWxsIHx8IHR0V2luZG93ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0dFdpbmRvdy50cnVzdGVkVHlwZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jcmVhdGVQb2xpY3kpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0cnVzdGVkVHlwZVBvbGljeSA9IHR0V2luZG93LnRydXN0ZWRUeXBlcy5jcmVhdGVQb2xpY3kocG9saWN5TmFtZSwge1xyXG4gICAgICAgICAgICAgICAgY3JlYXRlU2NyaXB0VVJMOiBmdW5jdGlvbiAodXJsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBhcnNlVXJsO1xyXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlVXJsID0gbmV3IFVSTCh1cmwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiSW52YWxpZCBzY3JpcHQgdXJsIFwiICsgdXJsKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKChwYXJzZVVybCA9PT0gbnVsbCB8fCBwYXJzZVVybCA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFyc2VVcmwucHJvdG9jb2wpICE9PSAnaHR0cHM6Jykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJPbmx5IGh0dHBzIHByb3RvY29sIGlzIGFsbG93ZWQgZm9yIHNjcmlwdCB1cmwgXCIgKyB1cmwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNyZWF0ZVNjcmlwdDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgICAgY3JlYXRlSFRNTDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRmFpbGVkIHRvIGNyZWF0ZSB0cnVzdGVkIHR5cGUgcG9saWN5JywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0cnVzdGVkVHlwZVBvbGljeTtcclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/bootstrap/trustedTypesPolicy.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/runtimeDataSources.js": /*!*********************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/runtimeDataSources.js ***! \*********************************************************************************************/ /*! exports provided: SupportedHostingApps, RuntimeDataSources */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"SupportedHostingApps\", function() { return SupportedHostingApps; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RuntimeDataSources\", function() { return RuntimeDataSources; });\n// This should be the same as Microsoft.Online.BOX.Util.HostApp\r\nvar SupportedHostingApps;\r\n(function (SupportedHostingApps) {\r\n SupportedHostingApps[\"M365AdminPortal\"] = \"M365AdminPortal\";\r\n SupportedHostingApps[\"SPOAdminPortal\"] = \"SPOAdminPortal\";\r\n // This is not the same as SPOAdminPortal - this is for HVCs that will be used in SharePoint Sites.\r\n SupportedHostingApps[\"SPOPortal\"] = \"SPOPortal\";\r\n SupportedHostingApps[\"EXOAdminPortal\"] = \"EXOAdminPortal\";\r\n SupportedHostingApps[\"TeamsAdminPortal\"] = \"TeamsAdminPortal\";\r\n SupportedHostingApps[\"SecurityPortal\"] = \"SecurityPortal\";\r\n SupportedHostingApps[\"CompliancePortal\"] = \"CompliancePortal\";\r\n SupportedHostingApps[\"M365SCCPortal\"] = \"M365SCCPortal\";\r\n SupportedHostingApps[\"SupportCentral\"] = \"SupportCentral\";\r\n SupportedHostingApps[\"IbizaMTMPortal\"] = \"IbizaMTMPortal\";\r\n SupportedHostingApps[\"CloudCostManagementPortal\"] = \"CloudCostManagementPortal\";\r\n SupportedHostingApps[\"Rave\"] = \"Rave\";\r\n SupportedHostingApps[\"DynamicsPortal\"] = \"DynamicsPortal\";\r\n SupportedHostingApps[\"TeamsApp\"] = \"TeamsApp\";\r\n SupportedHostingApps[\"M365DefenderSMB\"] = \"M365DefenderSMB\";\r\n // Windows 365 Portal is also called as Cloud PC Portal\r\n SupportedHostingApps[\"Windows365Portal\"] = \"Windows365Portal\";\r\n SupportedHostingApps[\"PPACAdminPortal\"] = \"PPACAdminPortal\";\r\n SupportedHostingApps[\"VivaGoals\"] = \"VivaGoals\";\r\n SupportedHostingApps[\"VivaPulse\"] = \"VivaPulse\";\r\n SupportedHostingApps[\"FireSurveysHost\"] = \"FireSurveysHost\";\r\n SupportedHostingApps[\"AEM\"] = \"AEM\";\r\n SupportedHostingApps[\"ExcelPythonAddon\"] = \"ExcelPythonAddon\";\r\n SupportedHostingApps[\"AdminAppMetaOSTeams\"] = \"AdminAppMetaOSTeams\";\r\n SupportedHostingApps[\"AdminAppMetaOSOffice\"] = \"AdminAppMetaOSOffice\";\r\n SupportedHostingApps[\"Project\"] = \"Project\";\r\n SupportedHostingApps[\"Planner\"] = \"Planner\";\r\n SupportedHostingApps[\"Visio\"] = \"Visio\";\r\n SupportedHostingApps[\"Clipchamp\"] = \"Clipchamp\";\r\n})(SupportedHostingApps || (SupportedHostingApps = {}));\r\n// NOTE: those names should be globally unique among all admin centers.\r\nvar RuntimeDataSources;\r\n(function (RuntimeDataSources) {\r\n RuntimeDataSources[\"Static\"] = \"centro.runtime.static\";\r\n RuntimeDataSources[\"Error\"] = \"centro.hvc.error\";\r\n})(RuntimeDataSources || (RuntimeDataSources = {}));\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9jb25maWd1cmF0aW9uL3J1bnRpbWVEYXRhU291cmNlcy5qcz8wNjhkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsb0RBQW9EO0FBQ3JEO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQSxDQUFDLGdEQUFnRCIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMvY2VudHJvLWh2Yy1sb2FkZXIvZGlzdC9ydW50aW1lL2NvbmZpZ3VyYXRpb24vcnVudGltZURhdGFTb3VyY2VzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgYXMgTWljcm9zb2Z0Lk9ubGluZS5CT1guVXRpbC5Ib3N0QXBwXHJcbmV4cG9ydCB2YXIgU3VwcG9ydGVkSG9zdGluZ0FwcHM7XHJcbihmdW5jdGlvbiAoU3VwcG9ydGVkSG9zdGluZ0FwcHMpIHtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiTTM2NUFkbWluUG9ydGFsXCJdID0gXCJNMzY1QWRtaW5Qb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiU1BPQWRtaW5Qb3J0YWxcIl0gPSBcIlNQT0FkbWluUG9ydGFsXCI7XHJcbiAgICAvLyBUaGlzIGlzIG5vdCB0aGUgc2FtZSBhcyBTUE9BZG1pblBvcnRhbCAtIHRoaXMgaXMgZm9yIEhWQ3MgdGhhdCB3aWxsIGJlIHVzZWQgaW4gU2hhcmVQb2ludCBTaXRlcy5cclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiU1BPUG9ydGFsXCJdID0gXCJTUE9Qb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiRVhPQWRtaW5Qb3J0YWxcIl0gPSBcIkVYT0FkbWluUG9ydGFsXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIlRlYW1zQWRtaW5Qb3J0YWxcIl0gPSBcIlRlYW1zQWRtaW5Qb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiU2VjdXJpdHlQb3J0YWxcIl0gPSBcIlNlY3VyaXR5UG9ydGFsXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIkNvbXBsaWFuY2VQb3J0YWxcIl0gPSBcIkNvbXBsaWFuY2VQb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiTTM2NVNDQ1BvcnRhbFwiXSA9IFwiTTM2NVNDQ1BvcnRhbFwiO1xyXG4gICAgU3VwcG9ydGVkSG9zdGluZ0FwcHNbXCJTdXBwb3J0Q2VudHJhbFwiXSA9IFwiU3VwcG9ydENlbnRyYWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiSWJpemFNVE1Qb3J0YWxcIl0gPSBcIkliaXphTVRNUG9ydGFsXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIkNsb3VkQ29zdE1hbmFnZW1lbnRQb3J0YWxcIl0gPSBcIkNsb3VkQ29zdE1hbmFnZW1lbnRQb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiUmF2ZVwiXSA9IFwiUmF2ZVwiO1xyXG4gICAgU3VwcG9ydGVkSG9zdGluZ0FwcHNbXCJEeW5hbWljc1BvcnRhbFwiXSA9IFwiRHluYW1pY3NQb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiVGVhbXNBcHBcIl0gPSBcIlRlYW1zQXBwXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIk0zNjVEZWZlbmRlclNNQlwiXSA9IFwiTTM2NURlZmVuZGVyU01CXCI7XHJcbiAgICAvLyBXaW5kb3dzIDM2NSBQb3J0YWwgaXMgYWxzbyBjYWxsZWQgYXMgQ2xvdWQgUEMgUG9ydGFsXHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIldpbmRvd3MzNjVQb3J0YWxcIl0gPSBcIldpbmRvd3MzNjVQb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiUFBBQ0FkbWluUG9ydGFsXCJdID0gXCJQUEFDQWRtaW5Qb3J0YWxcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiVml2YUdvYWxzXCJdID0gXCJWaXZhR29hbHNcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiVml2YVB1bHNlXCJdID0gXCJWaXZhUHVsc2VcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiRmlyZVN1cnZleXNIb3N0XCJdID0gXCJGaXJlU3VydmV5c0hvc3RcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiQUVNXCJdID0gXCJBRU1cIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiRXhjZWxQeXRob25BZGRvblwiXSA9IFwiRXhjZWxQeXRob25BZGRvblwiO1xyXG4gICAgU3VwcG9ydGVkSG9zdGluZ0FwcHNbXCJBZG1pbkFwcE1ldGFPU1RlYW1zXCJdID0gXCJBZG1pbkFwcE1ldGFPU1RlYW1zXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIkFkbWluQXBwTWV0YU9TT2ZmaWNlXCJdID0gXCJBZG1pbkFwcE1ldGFPU09mZmljZVwiO1xyXG4gICAgU3VwcG9ydGVkSG9zdGluZ0FwcHNbXCJQcm9qZWN0XCJdID0gXCJQcm9qZWN0XCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIlBsYW5uZXJcIl0gPSBcIlBsYW5uZXJcIjtcclxuICAgIFN1cHBvcnRlZEhvc3RpbmdBcHBzW1wiVmlzaW9cIl0gPSBcIlZpc2lvXCI7XHJcbiAgICBTdXBwb3J0ZWRIb3N0aW5nQXBwc1tcIkNsaXBjaGFtcFwiXSA9IFwiQ2xpcGNoYW1wXCI7XHJcbn0pKFN1cHBvcnRlZEhvc3RpbmdBcHBzIHx8IChTdXBwb3J0ZWRIb3N0aW5nQXBwcyA9IHt9KSk7XHJcbi8vIE5PVEU6IHRob3NlIG5hbWVzIHNob3VsZCBiZSBnbG9iYWxseSB1bmlxdWUgYW1vbmcgYWxsIGFkbWluIGNlbnRlcnMuXHJcbmV4cG9ydCB2YXIgUnVudGltZURhdGFTb3VyY2VzO1xyXG4oZnVuY3Rpb24gKFJ1bnRpbWVEYXRhU291cmNlcykge1xyXG4gICAgUnVudGltZURhdGFTb3VyY2VzW1wiU3RhdGljXCJdID0gXCJjZW50cm8ucnVudGltZS5zdGF0aWNcIjtcclxuICAgIFJ1bnRpbWVEYXRhU291cmNlc1tcIkVycm9yXCJdID0gXCJjZW50cm8uaHZjLmVycm9yXCI7XHJcbn0pKFJ1bnRpbWVEYXRhU291cmNlcyB8fCAoUnVudGltZURhdGFTb3VyY2VzID0ge30pKTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/runtimeDataSources.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/staticDataSource.js": /*!*******************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/staticDataSource.js ***! \*******************************************************************************************/ /*! exports provided: createStaticDataSource */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createStaticDataSource\", function() { return createStaticDataSource; });\nfunction createStaticDataSource(config) {\r\n return {\r\n register: function () { return config; },\r\n unregister: function () {\r\n // do nothing\r\n }\r\n };\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9jb25maWd1cmF0aW9uL3N0YXRpY0RhdGFTb3VyY2UuanM/ZWJhNiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQU87QUFDUDtBQUNBLCtCQUErQixlQUFlLEVBQUU7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMvY2VudHJvLWh2Yy1sb2FkZXIvZGlzdC9ydW50aW1lL2NvbmZpZ3VyYXRpb24vc3RhdGljRGF0YVNvdXJjZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGF0aWNEYXRhU291cmNlKGNvbmZpZykge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgICByZWdpc3RlcjogZnVuY3Rpb24gKCkgeyByZXR1cm4gY29uZmlnOyB9LFxyXG4gICAgICAgIHVucmVnaXN0ZXI6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgLy8gZG8gbm90aGluZ1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/staticDataSource.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types.js": /*!***************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types.js ***! \***************************************************************************************/ /*! exports provided: RequestVerb, BackendTarget, TokenOnlyRequestUrl */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"RequestVerb\", function() { return RequestVerb; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"BackendTarget\", function() { return BackendTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"TokenOnlyRequestUrl\", function() { return TokenOnlyRequestUrl; });\n/**\r\n * The Verb used for the HTTP request\r\n */\r\nvar RequestVerb;\r\n(function (RequestVerb) {\r\n /**\r\n * HTTP GET method\r\n */\r\n RequestVerb[\"GET\"] = \"GET\";\r\n /**\r\n * HTTP PUT method\r\n */\r\n RequestVerb[\"PUT\"] = \"PUT\";\r\n /**\r\n * HTTP POST method\r\n */\r\n RequestVerb[\"POST\"] = \"POST\";\r\n /**\r\n * HTTP DELETE method\r\n */\r\n RequestVerb[\"DELETE\"] = \"DELETE\";\r\n /**\r\n * HTTP PATCH method\r\n */\r\n RequestVerb[\"PATCH\"] = \"PATCH\";\r\n})(RequestVerb || (RequestVerb = {}));\r\n/**\r\n * The target of the HTTP call\r\n */\r\nvar BackendTarget;\r\n(function (BackendTarget) {\r\n BackendTarget[\"M365AdminCenter\"] = \"MAC\";\r\n BackendTarget[\"Mover\"] = \"Mover\";\r\n BackendTarget[\"ExchangeAdminCenter\"] = \"EAC\";\r\n BackendTarget[\"SharepointAdminCenter\"] = \"SPO\";\r\n BackendTarget[\"TeamsAdminCenter\"] = \"TAC\";\r\n BackendTarget[\"ComplianceAdminCenter\"] = \"CAC\";\r\n BackendTarget[\"SecurityAdminCenter\"] = \"SAC\";\r\n BackendTarget[\"ProductivityAdminCenter\"] = \"PAC\";\r\n BackendTarget[\"GraphApi\"] = \"Graph\";\r\n BackendTarget[\"VRoomApi\"] = \"VRoom\";\r\n BackendTarget[\"DeviceCareApi\"] = \"DeviceCare\";\r\n BackendTarget[\"RecommendationApi\"] = \"Reco\";\r\n BackendTarget[\"M365AoboApi\"] = \"M365Aobo\";\r\n BackendTarget[\"Assist\"] = \"Assist\";\r\n BackendTarget[\"BusinessApplicationPlatform\"] = \"PPACBap\";\r\n BackendTarget[\"PowerPlatformAPITenantLevel\"] = \"ppapi-tenant-level\";\r\n BackendTarget[\"GovernancePPACAPI\"] = \"GovPPACAPI\";\r\n BackendTarget[\"LicensingAPI\"] = \"LicAPI\";\r\n BackendTarget[\"PPApiTenantLevel\"] = \"PPApiTenantLevel\";\r\n BackendTarget[\"Fusion\"] = \"Fusion\";\r\n BackendTarget[\"VivaPulse\"] = \"VivaPulse\";\r\n BackendTarget[\"CloudPolicyServiceApi\"] = \"OCPS\";\r\n BackendTarget[\"ECS\"] = \"ECS\";\r\n BackendTarget[\"O365ShellServices\"] = \"O365Shell\";\r\n BackendTarget[\"ProfileService\"] = \"ProfileService\";\r\n BackendTarget[\"VsbHub\"] = \"VsbHub\";\r\n BackendTarget[\"Augloop\"] = \"Augloop\";\r\n})(BackendTarget || (BackendTarget = {}));\r\n/**\r\n * When this is used as request URL, then a token response should be sent\r\n */\r\nvar TokenOnlyRequestUrl = '__token__';\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9kYXRhL3JlcXVlc3RGdW5jdGlvbi50eXBlcy5qcz9hYTlkIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLGtDQUFrQztBQUNuQztBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxzQ0FBc0M7QUFDdkM7QUFDQTtBQUNBO0FBQ08iLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9kYXRhL3JlcXVlc3RGdW5jdGlvbi50eXBlcy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBUaGUgVmVyYiB1c2VkIGZvciB0aGUgSFRUUCByZXF1ZXN0XHJcbiAqL1xyXG5leHBvcnQgdmFyIFJlcXVlc3RWZXJiO1xyXG4oZnVuY3Rpb24gKFJlcXVlc3RWZXJiKSB7XHJcbiAgICAvKipcclxuICAgICAqIEhUVFAgR0VUIG1ldGhvZFxyXG4gICAgICovXHJcbiAgICBSZXF1ZXN0VmVyYltcIkdFVFwiXSA9IFwiR0VUXCI7XHJcbiAgICAvKipcclxuICAgICAqIEhUVFAgUFVUIG1ldGhvZFxyXG4gICAgICovXHJcbiAgICBSZXF1ZXN0VmVyYltcIlBVVFwiXSA9IFwiUFVUXCI7XHJcbiAgICAvKipcclxuICAgICAqIEhUVFAgUE9TVCBtZXRob2RcclxuICAgICAqL1xyXG4gICAgUmVxdWVzdFZlcmJbXCJQT1NUXCJdID0gXCJQT1NUXCI7XHJcbiAgICAvKipcclxuICAgICAqIEhUVFAgREVMRVRFIG1ldGhvZFxyXG4gICAgICovXHJcbiAgICBSZXF1ZXN0VmVyYltcIkRFTEVURVwiXSA9IFwiREVMRVRFXCI7XHJcbiAgICAvKipcclxuICAgICAqIEhUVFAgUEFUQ0ggbWV0aG9kXHJcbiAgICAgKi9cclxuICAgIFJlcXVlc3RWZXJiW1wiUEFUQ0hcIl0gPSBcIlBBVENIXCI7XHJcbn0pKFJlcXVlc3RWZXJiIHx8IChSZXF1ZXN0VmVyYiA9IHt9KSk7XHJcbi8qKlxyXG4gKiBUaGUgdGFyZ2V0IG9mIHRoZSBIVFRQIGNhbGxcclxuICovXHJcbmV4cG9ydCB2YXIgQmFja2VuZFRhcmdldDtcclxuKGZ1bmN0aW9uIChCYWNrZW5kVGFyZ2V0KSB7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiTTM2NUFkbWluQ2VudGVyXCJdID0gXCJNQUNcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJNb3ZlclwiXSA9IFwiTW92ZXJcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJFeGNoYW5nZUFkbWluQ2VudGVyXCJdID0gXCJFQUNcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJTaGFyZXBvaW50QWRtaW5DZW50ZXJcIl0gPSBcIlNQT1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIlRlYW1zQWRtaW5DZW50ZXJcIl0gPSBcIlRBQ1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkNvbXBsaWFuY2VBZG1pbkNlbnRlclwiXSA9IFwiQ0FDXCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiU2VjdXJpdHlBZG1pbkNlbnRlclwiXSA9IFwiU0FDXCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiUHJvZHVjdGl2aXR5QWRtaW5DZW50ZXJcIl0gPSBcIlBBQ1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkdyYXBoQXBpXCJdID0gXCJHcmFwaFwiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIlZSb29tQXBpXCJdID0gXCJWUm9vbVwiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkRldmljZUNhcmVBcGlcIl0gPSBcIkRldmljZUNhcmVcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJSZWNvbW1lbmRhdGlvbkFwaVwiXSA9IFwiUmVjb1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIk0zNjVBb2JvQXBpXCJdID0gXCJNMzY1QW9ib1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkFzc2lzdFwiXSA9IFwiQXNzaXN0XCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiQnVzaW5lc3NBcHBsaWNhdGlvblBsYXRmb3JtXCJdID0gXCJQUEFDQmFwXCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiUG93ZXJQbGF0Zm9ybUFQSVRlbmFudExldmVsXCJdID0gXCJwcGFwaS10ZW5hbnQtbGV2ZWxcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJHb3Zlcm5hbmNlUFBBQ0FQSVwiXSA9IFwiR292UFBBQ0FQSVwiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkxpY2Vuc2luZ0FQSVwiXSA9IFwiTGljQVBJXCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiUFBBcGlUZW5hbnRMZXZlbFwiXSA9IFwiUFBBcGlUZW5hbnRMZXZlbFwiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkZ1c2lvblwiXSA9IFwiRnVzaW9uXCI7XHJcbiAgICBCYWNrZW5kVGFyZ2V0W1wiVml2YVB1bHNlXCJdID0gXCJWaXZhUHVsc2VcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJDbG91ZFBvbGljeVNlcnZpY2VBcGlcIl0gPSBcIk9DUFNcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJFQ1NcIl0gPSBcIkVDU1wiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIk8zNjVTaGVsbFNlcnZpY2VzXCJdID0gXCJPMzY1U2hlbGxcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJQcm9maWxlU2VydmljZVwiXSA9IFwiUHJvZmlsZVNlcnZpY2VcIjtcclxuICAgIEJhY2tlbmRUYXJnZXRbXCJWc2JIdWJcIl0gPSBcIlZzYkh1YlwiO1xyXG4gICAgQmFja2VuZFRhcmdldFtcIkF1Z2xvb3BcIl0gPSBcIkF1Z2xvb3BcIjtcclxufSkoQmFja2VuZFRhcmdldCB8fCAoQmFja2VuZFRhcmdldCA9IHt9KSk7XHJcbi8qKlxyXG4gKiBXaGVuIHRoaXMgaXMgdXNlZCBhcyByZXF1ZXN0IFVSTCwgdGhlbiBhIHRva2VuIHJlc3BvbnNlIHNob3VsZCBiZSBzZW50XHJcbiAqL1xyXG5leHBvcnQgdmFyIFRva2VuT25seVJlcXVlc3RVcmwgPSAnX190b2tlbl9fJztcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/broadcastLogger.js": /*!************************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/broadcastLogger.js ***! \************************************************************************************/ /*! exports provided: addLogger, removeLogger, broadcastLogger, addAdditionalLoggers, flush, log */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addLogger\", function() { return addLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeLogger\", function() { return removeLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"broadcastLogger\", function() { return broadcastLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addAdditionalLoggers\", function() { return addAdditionalLoggers; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"flush\", function() { return flush; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"log\", function() { return log; });\n/* harmony import */ var _log_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./log.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js\");\n\r\nvar registeredLoggers = new Map();\r\nfunction addLogger(name, loggerObj) {\r\n if (registeredLoggers.has(name)) {\r\n throw new Error(\"Logger \" + name + \" already exists\");\r\n }\r\n registeredLoggers.set(name, loggerObj);\r\n}\r\nfunction removeLogger(name) {\r\n registeredLoggers.delete(name);\r\n}\r\nfunction broadcastLogger(options) {\r\n broadCastTo(options, registeredLoggers);\r\n}\r\nfunction addAdditionalLoggers(additionalLoggers) {\r\n if (additionalLoggers) {\r\n Object.keys(additionalLoggers).forEach(function (key) {\r\n addLogger(key, { logger: additionalLoggers[key] });\r\n });\r\n }\r\n}\r\nfunction flush() {\r\n var flushArray = [];\r\n registeredLoggers.forEach(function (loggerObj) {\r\n if (loggerObj.flush) {\r\n flushArray.push(loggerObj.flush());\r\n }\r\n });\r\n return Promise.all(flushArray);\r\n}\r\nfunction broadCastTo(options, loggers) {\r\n // eslint-disable-next-line @typescript-eslint/typedef\r\n loggers.forEach(function (loggerObj, name) {\r\n try {\r\n loggerObj.logger(options);\r\n }\r\n catch (error) {\r\n var restLoggers = new Map(loggers);\r\n restLoggers.delete(name);\r\n broadCastTo({\r\n id: '500294',\r\n type: _log_types__WEBPACK_IMPORTED_MODULE_0__[\"LogKind\"].Error,\r\n logCategory: _log_types__WEBPACK_IMPORTED_MODULE_0__[\"LogCategory\"].ClientError,\r\n message: \"Failure in logger: \" + name,\r\n error: error\r\n }, restLoggers);\r\n }\r\n });\r\n}\r\n/**\r\n * Log messages\r\n */\r\nvar log = broadcastLogger;\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9sb2dnaW5nL2Jyb2FkY2FzdExvZ2dlci5qcz8xZTc1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBbUQ7QUFDbkQ7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQSw0QkFBNEIsaUNBQWlDO0FBQzdELFNBQVM7QUFDVDtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLGtEQUFPO0FBQzdCLDZCQUE2QixzREFBVztBQUN4QztBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ08iLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9sb2dnaW5nL2Jyb2FkY2FzdExvZ2dlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0NhdGVnb3J5LCBMb2dLaW5kIH0gZnJvbSAnLi9sb2cudHlwZXMnO1xyXG52YXIgcmVnaXN0ZXJlZExvZ2dlcnMgPSBuZXcgTWFwKCk7XHJcbmV4cG9ydCBmdW5jdGlvbiBhZGRMb2dnZXIobmFtZSwgbG9nZ2VyT2JqKSB7XHJcbiAgICBpZiAocmVnaXN0ZXJlZExvZ2dlcnMuaGFzKG5hbWUpKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiTG9nZ2VyIFwiICsgbmFtZSArIFwiIGFscmVhZHkgZXhpc3RzXCIpO1xyXG4gICAgfVxyXG4gICAgcmVnaXN0ZXJlZExvZ2dlcnMuc2V0KG5hbWUsIGxvZ2dlck9iaik7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUxvZ2dlcihuYW1lKSB7XHJcbiAgICByZWdpc3RlcmVkTG9nZ2Vycy5kZWxldGUobmFtZSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGJyb2FkY2FzdExvZ2dlcihvcHRpb25zKSB7XHJcbiAgICBicm9hZENhc3RUbyhvcHRpb25zLCByZWdpc3RlcmVkTG9nZ2Vycyk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZEFkZGl0aW9uYWxMb2dnZXJzKGFkZGl0aW9uYWxMb2dnZXJzKSB7XHJcbiAgICBpZiAoYWRkaXRpb25hbExvZ2dlcnMpIHtcclxuICAgICAgICBPYmplY3Qua2V5cyhhZGRpdGlvbmFsTG9nZ2VycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XHJcbiAgICAgICAgICAgIGFkZExvZ2dlcihrZXksIHsgbG9nZ2VyOiBhZGRpdGlvbmFsTG9nZ2Vyc1trZXldIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBmbHVzaCgpIHtcclxuICAgIHZhciBmbHVzaEFycmF5ID0gW107XHJcbiAgICByZWdpc3RlcmVkTG9nZ2Vycy5mb3JFYWNoKGZ1bmN0aW9uIChsb2dnZXJPYmopIHtcclxuICAgICAgICBpZiAobG9nZ2VyT2JqLmZsdXNoKSB7XHJcbiAgICAgICAgICAgIGZsdXNoQXJyYXkucHVzaChsb2dnZXJPYmouZmx1c2goKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoZmx1c2hBcnJheSk7XHJcbn1cclxuZnVuY3Rpb24gYnJvYWRDYXN0VG8ob3B0aW9ucywgbG9nZ2Vycykge1xyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC90eXBlZGVmXHJcbiAgICBsb2dnZXJzLmZvckVhY2goZnVuY3Rpb24gKGxvZ2dlck9iaiwgbmFtZSkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGxvZ2dlck9iai5sb2dnZXIob3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICB2YXIgcmVzdExvZ2dlcnMgPSBuZXcgTWFwKGxvZ2dlcnMpO1xyXG4gICAgICAgICAgICByZXN0TG9nZ2Vycy5kZWxldGUobmFtZSk7XHJcbiAgICAgICAgICAgIGJyb2FkQ2FzdFRvKHtcclxuICAgICAgICAgICAgICAgIGlkOiAnNTAwMjk0JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6IExvZ0tpbmQuRXJyb3IsXHJcbiAgICAgICAgICAgICAgICBsb2dDYXRlZ29yeTogTG9nQ2F0ZWdvcnkuQ2xpZW50RXJyb3IsXHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkZhaWx1cmUgaW4gbG9nZ2VyOiBcIiArIG5hbWUsXHJcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3JcclxuICAgICAgICAgICAgfSwgcmVzdExvZ2dlcnMpO1xyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG59XHJcbi8qKlxyXG4gKiBMb2cgbWVzc2FnZXNcclxuICovXHJcbmV4cG9ydCB2YXIgbG9nID0gYnJvYWRjYXN0TG9nZ2VyO1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/broadcastLogger.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js": /*!******************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js ***! \******************************************************************************/ /*! exports provided: LogKind, LogCategory, PerfMarkerPrefix, isInfo, isError, isAnalytics, isPerformance, isAvailability, isReliability */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogKind\", function() { return LogKind; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogCategory\", function() { return LogCategory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PerfMarkerPrefix\", function() { return PerfMarkerPrefix; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInfo\", function() { return isInfo; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isError\", function() { return isError; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAnalytics\", function() { return isAnalytics; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isPerformance\", function() { return isPerformance; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isAvailability\", function() { return isAvailability; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isReliability\", function() { return isReliability; });\nvar LogKind;\r\n(function (LogKind) {\r\n LogKind[\"Info\"] = \"Info\";\r\n LogKind[\"Error\"] = \"Error\";\r\n /**\r\n * Engagement/Analytics logging\r\n */\r\n LogKind[\"Analytics\"] = \"Analytics\";\r\n /**\r\n * Performance related logging\r\n */\r\n LogKind[\"Performance\"] = \"Performance\";\r\n /**\r\n * Interface kind is dedicated for module's logging of interfacing informations.\r\n * To improve interoperability and debugging.\r\n */\r\n LogKind[\"Interface\"] = \"Interface\";\r\n /**\r\n * Logs dedicated to availability.\r\n */\r\n LogKind[\"Availability\"] = \"Availability\";\r\n /**\r\n * Logs dedicated to availability.\r\n */\r\n LogKind[\"Reliability\"] = \"Reliability\";\r\n})(LogKind || (LogKind = {}));\r\n/*\r\nthis enumeration is used to categorize client logs in kusto to help with data mining, reporting and querying logs\r\n*/\r\nvar LogCategory;\r\n(function (LogCategory) {\r\n LogCategory[\"ClientInfo\"] = \"ClientInfo\";\r\n LogCategory[\"ClientError\"] = \"ClientError\";\r\n /**\r\n * logs related to Engagement/Analytics\r\n */\r\n LogCategory[\"ClientAnalytics\"] = \"ClientAnalytics\";\r\n /**\r\n * Logs related to Performance\r\n */\r\n LogCategory[\"ClientPerformance\"] = \"ClientPerformance\";\r\n /**\r\n * Logs related to availability.\r\n */\r\n LogCategory[\"ClientAvailability\"] = \"ClientAvailability\";\r\n /*\r\n Logs related to reliability\r\n */\r\n LogCategory[\"ClientReliability\"] = \"ClientReliability\";\r\n})(LogCategory || (LogCategory = {}));\r\n/*\r\nprefixes for PLT perf markers\r\n*/\r\nvar PerfMarkerPrefix;\r\n(function (PerfMarkerPrefix) {\r\n PerfMarkerPrefix[\"Microsoft365AdminCenter\"] = \"@ms/mac\";\r\n})(PerfMarkerPrefix || (PerfMarkerPrefix = {}));\r\n/**\r\n * A type guard to check if the log is a info log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isInfo(option) {\r\n return option.type === LogKind.Info || option.type === LogKind.Interface;\r\n}\r\n/**\r\n * A type guard to check if the log is a error log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isError(option) {\r\n return option.type === LogKind.Error;\r\n}\r\n/**\r\n * A type guard to check if the log is a analytics log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isAnalytics(option) {\r\n return option.type === LogKind.Analytics;\r\n}\r\n/**\r\n * A type guard to check if the log is a performance log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isPerformance(option) {\r\n return option.type === LogKind.Performance;\r\n}\r\n/**\r\n * A type guard to check if the log is an availability log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isAvailability(option) {\r\n return option.type === LogKind.Availability;\r\n}\r\n/**\r\n * A type guard to check if the log is an reliability log\r\n *\r\n * @param option a ILogOptions\r\n */\r\nfunction isReliability(option) {\r\n return option.type === LogKind.Reliability;\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9sb2dnaW5nL2xvZy50eXBlcy5qcz82Zjg1Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLDBCQUEwQjtBQUMzQjtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxrQ0FBa0M7QUFDbkM7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0EsQ0FBQyw0Q0FBNEM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ087QUFDUDtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy9jZW50cm8taHZjLWxvYWRlci9kaXN0L3J1bnRpbWUvbG9nZ2luZy9sb2cudHlwZXMuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdmFyIExvZ0tpbmQ7XHJcbihmdW5jdGlvbiAoTG9nS2luZCkge1xyXG4gICAgTG9nS2luZFtcIkluZm9cIl0gPSBcIkluZm9cIjtcclxuICAgIExvZ0tpbmRbXCJFcnJvclwiXSA9IFwiRXJyb3JcIjtcclxuICAgIC8qKlxyXG4gICAgICogRW5nYWdlbWVudC9BbmFseXRpY3MgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBMb2dLaW5kW1wiQW5hbHl0aWNzXCJdID0gXCJBbmFseXRpY3NcIjtcclxuICAgIC8qKlxyXG4gICAgICogUGVyZm9ybWFuY2UgcmVsYXRlZCBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIExvZ0tpbmRbXCJQZXJmb3JtYW5jZVwiXSA9IFwiUGVyZm9ybWFuY2VcIjtcclxuICAgIC8qKlxyXG4gICAgICogSW50ZXJmYWNlIGtpbmQgaXMgZGVkaWNhdGVkIGZvciBtb2R1bGUncyBsb2dnaW5nIG9mIGludGVyZmFjaW5nIGluZm9ybWF0aW9ucy5cclxuICAgICAqIFRvIGltcHJvdmUgaW50ZXJvcGVyYWJpbGl0eSBhbmQgZGVidWdnaW5nLlxyXG4gICAgICovXHJcbiAgICBMb2dLaW5kW1wiSW50ZXJmYWNlXCJdID0gXCJJbnRlcmZhY2VcIjtcclxuICAgIC8qKlxyXG4gICAgICogTG9ncyBkZWRpY2F0ZWQgdG8gYXZhaWxhYmlsaXR5LlxyXG4gICAgICovXHJcbiAgICBMb2dLaW5kW1wiQXZhaWxhYmlsaXR5XCJdID0gXCJBdmFpbGFiaWxpdHlcIjtcclxuICAgIC8qKlxyXG4gICAgICogTG9ncyBkZWRpY2F0ZWQgdG8gYXZhaWxhYmlsaXR5LlxyXG4gICAgICovXHJcbiAgICBMb2dLaW5kW1wiUmVsaWFiaWxpdHlcIl0gPSBcIlJlbGlhYmlsaXR5XCI7XHJcbn0pKExvZ0tpbmQgfHwgKExvZ0tpbmQgPSB7fSkpO1xyXG4vKlxyXG50aGlzIGVudW1lcmF0aW9uIGlzIHVzZWQgdG8gY2F0ZWdvcml6ZSBjbGllbnQgbG9ncyBpbiBrdXN0byB0byBoZWxwIHdpdGggZGF0YSBtaW5pbmcsIHJlcG9ydGluZyBhbmQgcXVlcnlpbmcgbG9nc1xyXG4qL1xyXG5leHBvcnQgdmFyIExvZ0NhdGVnb3J5O1xyXG4oZnVuY3Rpb24gKExvZ0NhdGVnb3J5KSB7XHJcbiAgICBMb2dDYXRlZ29yeVtcIkNsaWVudEluZm9cIl0gPSBcIkNsaWVudEluZm9cIjtcclxuICAgIExvZ0NhdGVnb3J5W1wiQ2xpZW50RXJyb3JcIl0gPSBcIkNsaWVudEVycm9yXCI7XHJcbiAgICAvKipcclxuICAgICAqIGxvZ3MgcmVsYXRlZCB0byBFbmdhZ2VtZW50L0FuYWx5dGljc1xyXG4gICAgICovXHJcbiAgICBMb2dDYXRlZ29yeVtcIkNsaWVudEFuYWx5dGljc1wiXSA9IFwiQ2xpZW50QW5hbHl0aWNzXCI7XHJcbiAgICAvKipcclxuICAgICAqIExvZ3MgcmVsYXRlZCB0byBQZXJmb3JtYW5jZVxyXG4gICAgICovXHJcbiAgICBMb2dDYXRlZ29yeVtcIkNsaWVudFBlcmZvcm1hbmNlXCJdID0gXCJDbGllbnRQZXJmb3JtYW5jZVwiO1xyXG4gICAgLyoqXHJcbiAgICAgKiBMb2dzIHJlbGF0ZWQgdG8gYXZhaWxhYmlsaXR5LlxyXG4gICAgICovXHJcbiAgICBMb2dDYXRlZ29yeVtcIkNsaWVudEF2YWlsYWJpbGl0eVwiXSA9IFwiQ2xpZW50QXZhaWxhYmlsaXR5XCI7XHJcbiAgICAvKlxyXG4gICAgTG9ncyByZWxhdGVkIHRvIHJlbGlhYmlsaXR5XHJcbiAgICAqL1xyXG4gICAgTG9nQ2F0ZWdvcnlbXCJDbGllbnRSZWxpYWJpbGl0eVwiXSA9IFwiQ2xpZW50UmVsaWFiaWxpdHlcIjtcclxufSkoTG9nQ2F0ZWdvcnkgfHwgKExvZ0NhdGVnb3J5ID0ge30pKTtcclxuLypcclxucHJlZml4ZXMgZm9yIFBMVCBwZXJmIG1hcmtlcnNcclxuKi9cclxuZXhwb3J0IHZhciBQZXJmTWFya2VyUHJlZml4O1xyXG4oZnVuY3Rpb24gKFBlcmZNYXJrZXJQcmVmaXgpIHtcclxuICAgIFBlcmZNYXJrZXJQcmVmaXhbXCJNaWNyb3NvZnQzNjVBZG1pbkNlbnRlclwiXSA9IFwiQG1zL21hY1wiO1xyXG59KShQZXJmTWFya2VyUHJlZml4IHx8IChQZXJmTWFya2VyUHJlZml4ID0ge30pKTtcclxuLyoqXHJcbiAqIEEgdHlwZSBndWFyZCB0byBjaGVjayBpZiB0aGUgbG9nIGlzIGEgaW5mbyBsb2dcclxuICpcclxuICogQHBhcmFtIG9wdGlvbiBhIElMb2dPcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNJbmZvKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIG9wdGlvbi50eXBlID09PSBMb2dLaW5kLkluZm8gfHwgb3B0aW9uLnR5cGUgPT09IExvZ0tpbmQuSW50ZXJmYWNlO1xyXG59XHJcbi8qKlxyXG4gKiBBIHR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIGxvZyBpcyBhIGVycm9yIGxvZ1xyXG4gKlxyXG4gKiBAcGFyYW0gb3B0aW9uIGEgSUxvZ09wdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc0Vycm9yKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIG9wdGlvbi50eXBlID09PSBMb2dLaW5kLkVycm9yO1xyXG59XHJcbi8qKlxyXG4gKiBBIHR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIGxvZyBpcyBhIGFuYWx5dGljcyBsb2dcclxuICpcclxuICogQHBhcmFtIG9wdGlvbiBhIElMb2dPcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaXNBbmFseXRpY3Mob3B0aW9uKSB7XHJcbiAgICByZXR1cm4gb3B0aW9uLnR5cGUgPT09IExvZ0tpbmQuQW5hbHl0aWNzO1xyXG59XHJcbi8qKlxyXG4gKiBBIHR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIGxvZyBpcyBhIHBlcmZvcm1hbmNlIGxvZ1xyXG4gKlxyXG4gKiBAcGFyYW0gb3B0aW9uIGEgSUxvZ09wdGlvbnNcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1BlcmZvcm1hbmNlKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIG9wdGlvbi50eXBlID09PSBMb2dLaW5kLlBlcmZvcm1hbmNlO1xyXG59XHJcbi8qKlxyXG4gKiBBIHR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIGxvZyBpcyBhbiBhdmFpbGFiaWxpdHkgbG9nXHJcbiAqXHJcbiAqIEBwYXJhbSBvcHRpb24gYSBJTG9nT3B0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzQXZhaWxhYmlsaXR5KG9wdGlvbikge1xyXG4gICAgcmV0dXJuIG9wdGlvbi50eXBlID09PSBMb2dLaW5kLkF2YWlsYWJpbGl0eTtcclxufVxyXG4vKipcclxuICogQSB0eXBlIGd1YXJkIHRvIGNoZWNrIGlmIHRoZSBsb2cgaXMgYW4gcmVsaWFiaWxpdHkgbG9nXHJcbiAqXHJcbiAqIEBwYXJhbSBvcHRpb24gYSBJTG9nT3B0aW9uc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVsaWFiaWxpdHkob3B0aW9uKSB7XHJcbiAgICByZXR1cm4gb3B0aW9uLnR5cGUgPT09IExvZ0tpbmQuUmVsaWFiaWxpdHk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/macKustoLogger.js": /*!***********************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/macKustoLogger.js ***! \***********************************************************************************/ /*! exports provided: makeMacKustoLogger, unlockLoggingQueue */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"makeMacKustoLogger\", function() { return makeMacKustoLogger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unlockLoggingQueue\", function() { return unlockLoggingQueue; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _routing_history__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../routing/history */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/routing/history.js\");\n/* harmony import */ var _log_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./log.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/log.types.js\");\n\r\n\r\n\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n LogLevel[LogLevel[\"Info\"] = 1] = \"Info\";\r\n LogLevel[LogLevel[\"Comment\"] = 2] = \"Comment\";\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n})(LogLevel || (LogLevel = {}));\r\nvar loggingQueueLocked = true;\r\nfunction makeMacKustoLogger(appIdStr, kustoEndpointStr, hostNameStr, versionInfoStr) {\r\n var loggingQueueInterval = 1000;\r\n var queue = [];\r\n var xhrPromise = Promise.resolve();\r\n var remoteLoggerSequenceNumber = 0;\r\n var appId = appIdStr;\r\n var kustoEndpoint = kustoEndpointStr;\r\n var hostName = hostNameStr;\r\n var versionInfo = versionInfoStr;\r\n /**\r\n * Type confirms with server-side contract\r\n */\r\n var scheduleNextSend = function () {\r\n setTimeout(function () {\r\n sendInstrumentRequest().catch(function () {\r\n // do nothing as this is invoked from setTimeout needs to be safe\r\n });\r\n }, loggingQueueInterval);\r\n };\r\n /**\r\n * Http request used exclusively for talking with /api/instrument\r\n */\r\n var sendInstrumentRequest = function () {\r\n if (queue.length === 0 || loggingQueueLocked) {\r\n scheduleNextSend();\r\n return Promise.resolve();\r\n }\r\n // TODO: sendBeacon() is broken right now in Chrome:\r\n // http://crbug.com/490015\r\n xhrPromise = new Promise(function (resolve, reject) {\r\n var req = new XMLHttpRequest();\r\n req.open('POST', kustoEndpoint, true);\r\n req.setRequestHeader('Content-Type', 'applicationhttps://www.microsoft.com/json');\r\n // Set common headers\r\n req.setRequestHeader('x-ms-mac-hostingapp', hostName);\r\n req.setRequestHeader('x-ms-mac-appid', appId);\r\n req.setRequestHeader('x-ms-mac-version', versionInfo);\r\n req.onreadystatechange = function () {\r\n if (req.readyState === XMLHttpRequest.DONE) {\r\n if (req.status !== 204) {\r\n var err = new Error(\"Request to /api/instrument/logclient failed, server responseCode: \" + req.status + \" body: \" + req.response);\r\n console.log(err);\r\n reject(err);\r\n return;\r\n }\r\n resolve();\r\n }\r\n };\r\n var data = queue.splice(0, queue.length);\r\n req.send(JSON.stringify(data));\r\n });\r\n return xhrPromise.then(scheduleNextSend);\r\n };\r\n scheduleNextSend();\r\n var queueLog = function (data) {\r\n queue.push(data);\r\n };\r\n function flush() {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this, void 0, void 0, function () {\r\n return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this, function (_a) {\r\n return [2 /*return*/, Promise.all([xhrPromise, sendInstrumentRequest()]).then(function () {\r\n return;\r\n })];\r\n });\r\n });\r\n }\r\n function macKustoLogger(options) {\r\n // only log anything that is not analytics and perf\r\n if (Object(_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isAnalytics\"])(options) || Object(_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isPerformance\"])(options)) {\r\n return;\r\n }\r\n remoteLoggerSequenceNumber += 1;\r\n var tagId = parseInt(options.id, 10);\r\n var message = options.message || '';\r\n var pathName = '', flyoutName = '';\r\n try {\r\n pathName = Object(_routing_history__WEBPACK_IMPORTED_MODULE_1__[\"getHistory\"])().location.pathname;\r\n if (pathName !== null && pathName.indexOf(':') !== -1) {\r\n var pathArray = pathName.split(':');\r\n pathName = pathArray[0];\r\n flyoutName = pathArray[1];\r\n }\r\n }\r\n catch (error) {\r\n pathName = '';\r\n flyoutName = '';\r\n }\r\n queueLog({\r\n TagId: tagId,\r\n LogLevel: LogLevel.Info,\r\n LogCategory: options.logCategory || _log_types__WEBPACK_IMPORTED_MODULE_2__[\"LogCategory\"].ClientInfo,\r\n Message: message,\r\n Adhoc0: appId,\r\n Adhoc1: remoteLoggerSequenceNumber.toString(),\r\n Adhoc2: JSON.stringify({\r\n data: options.data\r\n }),\r\n Adhoc5: flyoutName,\r\n PageName: pathName\r\n });\r\n if (Object(_log_types__WEBPACK_IMPORTED_MODULE_2__[\"isError\"])(options)) {\r\n var stack = options.error.stack || '';\r\n // log the stack under 500781\r\n queueLog({\r\n TagId: 500781,\r\n LogLevel: LogLevel.Error,\r\n LogCategory: options.logCategory || _log_types__WEBPACK_IMPORTED_MODULE_2__[\"LogCategory\"].ClientError,\r\n Message: \"UI Exception: \" + (options.error.message || ''),\r\n Adhoc0: appId,\r\n Adhoc1: remoteLoggerSequenceNumber.toString(),\r\n Adhoc2: JSON.stringify({\r\n version: versionInfo,\r\n stack: stack\r\n }),\r\n Adhoc3: tagId.toString(),\r\n Adhoc5: flyoutName,\r\n PageName: pathName\r\n });\r\n }\r\n }\r\n return { logger: macKustoLogger, flush: flush };\r\n}\r\nfunction unlockLoggingQueue() {\r\n loggingQueueLocked = false;\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9sb2dnaW5nL21hY0t1c3RvTG9nZ2VyLmpzP2RlZGYiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQStDO0FBQ0M7QUFDK0I7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsNEJBQTRCO0FBQzdCO0FBQ087QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2IsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLHVEQUFTO0FBQ3hCLG1CQUFtQix5REFBVztBQUM5QjtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsWUFBWSw4REFBVyxhQUFhLGdFQUFhO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLG1FQUFVO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdELHNEQUFXO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFNBQVM7QUFDVCxZQUFZLDBEQUFPO0FBQ25CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvREFBb0Qsc0RBQVc7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ087QUFDUDtBQUNBIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy9jZW50cm8taHZjLWxvYWRlci9kaXN0L3J1bnRpbWUvbG9nZ2luZy9tYWNLdXN0b0xvZ2dlci5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXdhaXRlciwgX19nZW5lcmF0b3IgfSBmcm9tIFwidHNsaWJcIjtcclxuaW1wb3J0IHsgZ2V0SGlzdG9yeSB9IGZyb20gJy4uL3JvdXRpbmcvaGlzdG9yeSc7XHJcbmltcG9ydCB7IGlzQW5hbHl0aWNzLCBpc0Vycm9yLCBpc1BlcmZvcm1hbmNlLCBMb2dDYXRlZ29yeSB9IGZyb20gJy4vbG9nLnR5cGVzJztcclxudmFyIExvZ0xldmVsO1xyXG4oZnVuY3Rpb24gKExvZ0xldmVsKSB7XHJcbiAgICBMb2dMZXZlbFtMb2dMZXZlbFtcIlRyYWNlXCJdID0gMF0gPSBcIlRyYWNlXCI7XHJcbiAgICBMb2dMZXZlbFtMb2dMZXZlbFtcIkluZm9cIl0gPSAxXSA9IFwiSW5mb1wiO1xyXG4gICAgTG9nTGV2ZWxbTG9nTGV2ZWxbXCJDb21tZW50XCJdID0gMl0gPSBcIkNvbW1lbnRcIjtcclxuICAgIExvZ0xldmVsW0xvZ0xldmVsW1wiV2FybmluZ1wiXSA9IDNdID0gXCJXYXJuaW5nXCI7XHJcbiAgICBMb2dMZXZlbFtMb2dMZXZlbFtcIkVycm9yXCJdID0gNF0gPSBcIkVycm9yXCI7XHJcbiAgICBMb2dMZXZlbFtMb2dMZXZlbFtcIkNyaXRpY2FsXCJdID0gNV0gPSBcIkNyaXRpY2FsXCI7XHJcbn0pKExvZ0xldmVsIHx8IChMb2dMZXZlbCA9IHt9KSk7XHJcbnZhciBsb2dnaW5nUXVldWVMb2NrZWQgPSB0cnVlO1xyXG5leHBvcnQgZnVuY3Rpb24gbWFrZU1hY0t1c3RvTG9nZ2VyKGFwcElkU3RyLCBrdXN0b0VuZHBvaW50U3RyLCBob3N0TmFtZVN0ciwgdmVyc2lvbkluZm9TdHIpIHtcclxuICAgIHZhciBsb2dnaW5nUXVldWVJbnRlcnZhbCA9IDEwMDA7XHJcbiAgICB2YXIgcXVldWUgPSBbXTtcclxuICAgIHZhciB4aHJQcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICB2YXIgcmVtb3RlTG9nZ2VyU2VxdWVuY2VOdW1iZXIgPSAwO1xyXG4gICAgdmFyIGFwcElkID0gYXBwSWRTdHI7XHJcbiAgICB2YXIga3VzdG9FbmRwb2ludCA9IGt1c3RvRW5kcG9pbnRTdHI7XHJcbiAgICB2YXIgaG9zdE5hbWUgPSBob3N0TmFtZVN0cjtcclxuICAgIHZhciB2ZXJzaW9uSW5mbyA9IHZlcnNpb25JbmZvU3RyO1xyXG4gICAgLyoqXHJcbiAgICAgKiBUeXBlIGNvbmZpcm1zIHdpdGggc2VydmVyLXNpZGUgY29udHJhY3RcclxuICAgICAqL1xyXG4gICAgdmFyIHNjaGVkdWxlTmV4dFNlbmQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNlbmRJbnN0cnVtZW50UmVxdWVzdCgpLmNhdGNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcgYXMgdGhpcyBpcyBpbnZva2VkIGZyb20gc2V0VGltZW91dCBuZWVkcyB0byBiZSBzYWZlXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0sIGxvZ2dpbmdRdWV1ZUludGVydmFsKTtcclxuICAgIH07XHJcbiAgICAvKipcclxuICAgICAqIEh0dHAgcmVxdWVzdCB1c2VkIGV4Y2x1c2l2ZWx5IGZvciB0YWxraW5nIHdpdGggL2FwaS9pbnN0cnVtZW50XHJcbiAgICAgKi9cclxuICAgIHZhciBzZW5kSW5zdHJ1bWVudFJlcXVlc3QgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHF1ZXVlLmxlbmd0aCA9PT0gMCB8fCBsb2dnaW5nUXVldWVMb2NrZWQpIHtcclxuICAgICAgICAgICAgc2NoZWR1bGVOZXh0U2VuZCgpO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIFRPRE86IHNlbmRCZWFjb24oKSBpcyBicm9rZW4gcmlnaHQgbm93IGluIENocm9tZTpcclxuICAgICAgICAvLyBodHRwOi8vY3JidWcuY29tLzQ5MDAxNVxyXG4gICAgICAgIHhoclByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuICAgICAgICAgICAgcmVxLm9wZW4oJ1BPU1QnLCBrdXN0b0VuZHBvaW50LCB0cnVlKTtcclxuICAgICAgICAgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcbiAgICAgICAgICAgIC8vIFNldCBjb21tb24gaGVhZGVyc1xyXG4gICAgICAgICAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigneC1tcy1tYWMtaG9zdGluZ2FwcCcsIGhvc3ROYW1lKTtcclxuICAgICAgICAgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoJ3gtbXMtbWFjLWFwcGlkJywgYXBwSWQpO1xyXG4gICAgICAgICAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigneC1tcy1tYWMtdmVyc2lvbicsIHZlcnNpb25JbmZvKTtcclxuICAgICAgICAgICAgcmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PT0gWE1MSHR0cFJlcXVlc3QuRE9ORSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXEuc3RhdHVzICE9PSAyMDQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVyciA9IG5ldyBFcnJvcihcIlJlcXVlc3QgdG8gL2FwaS9pbnN0cnVtZW50L2xvZ2NsaWVudCBmYWlsZWQsIHNlcnZlciByZXNwb25zZUNvZGU6IFwiICsgcmVxLnN0YXR1cyArIFwiIGJvZHk6IFwiICsgcmVxLnJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB2YXIgZGF0YSA9IHF1ZXVlLnNwbGljZSgwLCBxdWV1ZS5sZW5ndGgpO1xyXG4gICAgICAgICAgICByZXEuc2VuZChKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHhoclByb21pc2UudGhlbihzY2hlZHVsZU5leHRTZW5kKTtcclxuICAgIH07XHJcbiAgICBzY2hlZHVsZU5leHRTZW5kKCk7XHJcbiAgICB2YXIgcXVldWVMb2cgPSBmdW5jdGlvbiAoZGF0YSkge1xyXG4gICAgICAgIHF1ZXVlLnB1c2goZGF0YSk7XHJcbiAgICB9O1xyXG4gICAgZnVuY3Rpb24gZmx1c2goKSB7XHJcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9hKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gWzIgLypyZXR1cm4qLywgUHJvbWlzZS5hbGwoW3hoclByb21pc2UsIHNlbmRJbnN0cnVtZW50UmVxdWVzdCgpXSkudGhlbihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICB9KV07XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZnVuY3Rpb24gbWFjS3VzdG9Mb2dnZXIob3B0aW9ucykge1xyXG4gICAgICAgIC8vIG9ubHkgbG9nIGFueXRoaW5nIHRoYXQgaXMgbm90IGFuYWx5dGljcyBhbmQgcGVyZlxyXG4gICAgICAgIGlmIChpc0FuYWx5dGljcyhvcHRpb25zKSB8fCBpc1BlcmZvcm1hbmNlKG9wdGlvbnMpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVtb3RlTG9nZ2VyU2VxdWVuY2VOdW1iZXIgKz0gMTtcclxuICAgICAgICB2YXIgdGFnSWQgPSBwYXJzZUludChvcHRpb25zLmlkLCAxMCk7XHJcbiAgICAgICAgdmFyIG1lc3NhZ2UgPSBvcHRpb25zLm1lc3NhZ2UgfHwgJyc7XHJcbiAgICAgICAgdmFyIHBhdGhOYW1lID0gJycsIGZseW91dE5hbWUgPSAnJztcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBwYXRoTmFtZSA9IGdldEhpc3RvcnkoKS5sb2NhdGlvbi5wYXRobmFtZTtcclxuICAgICAgICAgICAgaWYgKHBhdGhOYW1lICE9PSBudWxsICYmIHBhdGhOYW1lLmluZGV4T2YoJzonKSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHZhciBwYXRoQXJyYXkgPSBwYXRoTmFtZS5zcGxpdCgnOicpO1xyXG4gICAgICAgICAgICAgICAgcGF0aE5hbWUgPSBwYXRoQXJyYXlbMF07XHJcbiAgICAgICAgICAgICAgICBmbHlvdXROYW1lID0gcGF0aEFycmF5WzFdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBwYXRoTmFtZSA9ICcnO1xyXG4gICAgICAgICAgICBmbHlvdXROYW1lID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHF1ZXVlTG9nKHtcclxuICAgICAgICAgICAgVGFnSWQ6IHRhZ0lkLFxyXG4gICAgICAgICAgICBMb2dMZXZlbDogTG9nTGV2ZWwuSW5mbyxcclxuICAgICAgICAgICAgTG9nQ2F0ZWdvcnk6IG9wdGlvbnMubG9nQ2F0ZWdvcnkgfHwgTG9nQ2F0ZWdvcnkuQ2xpZW50SW5mbyxcclxuICAgICAgICAgICAgTWVzc2FnZTogbWVzc2FnZSxcclxuICAgICAgICAgICAgQWRob2MwOiBhcHBJZCxcclxuICAgICAgICAgICAgQWRob2MxOiByZW1vdGVMb2dnZXJTZXF1ZW5jZU51bWJlci50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBBZGhvYzI6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgIGRhdGE6IG9wdGlvbnMuZGF0YVxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgQWRob2M1OiBmbHlvdXROYW1lLFxyXG4gICAgICAgICAgICBQYWdlTmFtZTogcGF0aE5hbWVcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoaXNFcnJvcihvcHRpb25zKSkge1xyXG4gICAgICAgICAgICB2YXIgc3RhY2sgPSBvcHRpb25zLmVycm9yLnN0YWNrIHx8ICcnO1xyXG4gICAgICAgICAgICAvLyBsb2cgdGhlIHN0YWNrIHVuZGVyIDUwMDc4MVxyXG4gICAgICAgICAgICBxdWV1ZUxvZyh7XHJcbiAgICAgICAgICAgICAgICBUYWdJZDogNTAwNzgxLFxyXG4gICAgICAgICAgICAgICAgTG9nTGV2ZWw6IExvZ0xldmVsLkVycm9yLFxyXG4gICAgICAgICAgICAgICAgTG9nQ2F0ZWdvcnk6IG9wdGlvbnMubG9nQ2F0ZWdvcnkgfHwgTG9nQ2F0ZWdvcnkuQ2xpZW50RXJyb3IsXHJcbiAgICAgICAgICAgICAgICBNZXNzYWdlOiBcIlVJIEV4Y2VwdGlvbjogXCIgKyAob3B0aW9ucy5lcnJvci5tZXNzYWdlIHx8ICcnKSxcclxuICAgICAgICAgICAgICAgIEFkaG9jMDogYXBwSWQsXHJcbiAgICAgICAgICAgICAgICBBZGhvYzE6IHJlbW90ZUxvZ2dlclNlcXVlbmNlTnVtYmVyLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgICAgICBBZGhvYzI6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uSW5mbyxcclxuICAgICAgICAgICAgICAgICAgICBzdGFjazogc3RhY2tcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgQWRob2MzOiB0YWdJZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICAgICAgQWRob2M1OiBmbHlvdXROYW1lLFxyXG4gICAgICAgICAgICAgICAgUGFnZU5hbWU6IHBhdGhOYW1lXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB7IGxvZ2dlcjogbWFjS3VzdG9Mb2dnZXIsIGZsdXNoOiBmbHVzaCB9O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiB1bmxvY2tMb2dnaW5nUXVldWUoKSB7XHJcbiAgICBsb2dnaW5nUXVldWVMb2NrZWQgPSBmYWxzZTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/logging/macKustoLogger.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/public/utils/uuid.js": /*!******************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/public/utils/uuid.js ***! \******************************************************************************/ /*! exports provided: createUUID */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createUUID\", function() { return createUUID; });\n/* eslint-disable no-bitwise */\r\n/**\r\n * Create a UUID\r\n */\r\nfunction createUUID() {\r\n return (1e7 + '' + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {\r\n return (c ^\r\n (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16);\r\n });\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9wdWJsaWMvdXRpbHMvdXVpZC5qcz82NGMzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL0Btcy9jZW50cm8taHZjLWxvYWRlci9kaXN0L3J1bnRpbWUvcHVibGljL3V0aWxzL3V1aWQuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1iaXR3aXNlICovXHJcbi8qKlxyXG4gKiBDcmVhdGUgYSBVVUlEXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVVVJRCgpIHtcclxuICAgIHJldHVybiAoMWU3ICsgJycgKyAtMWUzICsgLTRlMyArIC04ZTMgKyAtMWUxMSkucmVwbGFjZSgvWzAxOF0vZywgZnVuY3Rpb24gKGMpIHtcclxuICAgICAgICByZXR1cm4gKGMgXlxyXG4gICAgICAgICAgICAoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgxKSlbMF0gJiAoMTUgPj4gKGMgLyA0KSkpKS50b1N0cmluZygxNik7XHJcbiAgICB9KTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/public/utils/uuid.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/dist/runtime/routing/history.js": /*!****************************************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/dist/runtime/routing/history.js ***! \****************************************************************************/ /*! exports provided: parseUrls, setHistory, getHistory */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"parseUrls\", function() { return parseUrls; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setHistory\", function() { return setHistory; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHistory\", function() { return getHistory; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _configuration_runtimeDataSources__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../configuration/runtimeDataSources */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/configuration/runtimeDataSources.js\");\n\r\n\r\nvar history = undefined;\r\nvar parseUrls = function (urlJsonString) {\r\n var urlMap = new Map();\r\n if (urlJsonString) {\r\n var urls = JSON.parse(urlJsonString);\r\n Object.entries(urls).forEach(function (_a) {\r\n var _b = Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__read\"])(_a, 2), key = _b[0], value = _b[1];\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n try {\r\n urlMap.set(_configuration_runtimeDataSources__WEBPACK_IMPORTED_MODULE_1__[\"SupportedHostingApps\"][key], new URL(value));\r\n }\r\n catch (_c) {\r\n // ignore if URL is not valid\r\n }\r\n });\r\n }\r\n return urlMap;\r\n};\r\nfunction setHistory(newHistory) {\r\n history = newHistory;\r\n}\r\nfunction getHistory() {\r\n if (history === undefined) {\r\n throw new Error('History object has not been set');\r\n }\r\n return history;\r\n}\r\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvQG1zL2NlbnRyby1odmMtbG9hZGVyL2Rpc3QvcnVudGltZS9yb3V0aW5nL2hpc3RvcnkuanM/YjE2YiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBK0I7QUFDNEM7QUFDM0U7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLG9EQUFNO0FBQzNCO0FBQ0E7QUFDQSwyQkFBMkIsc0ZBQW9CO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMvY2VudHJvLWh2Yy1sb2FkZXIvZGlzdC9ydW50aW1lL3JvdXRpbmcvaGlzdG9yeS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fcmVhZCB9IGZyb20gXCJ0c2xpYlwiO1xyXG5pbXBvcnQgeyBTdXBwb3J0ZWRIb3N0aW5nQXBwcyB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vcnVudGltZURhdGFTb3VyY2VzJztcclxudmFyIGhpc3RvcnkgPSB1bmRlZmluZWQ7XHJcbmV4cG9ydCB2YXIgcGFyc2VVcmxzID0gZnVuY3Rpb24gKHVybEpzb25TdHJpbmcpIHtcclxuICAgIHZhciB1cmxNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICBpZiAodXJsSnNvblN0cmluZykge1xyXG4gICAgICAgIHZhciB1cmxzID0gSlNPTi5wYXJzZSh1cmxKc29uU3RyaW5nKTtcclxuICAgICAgICBPYmplY3QuZW50cmllcyh1cmxzKS5mb3JFYWNoKGZ1bmN0aW9uIChfYSkge1xyXG4gICAgICAgICAgICB2YXIgX2IgPSBfX3JlYWQoX2EsIDIpLCBrZXkgPSBfYlswXSwgdmFsdWUgPSBfYlsxXTtcclxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIHVybE1hcC5zZXQoU3VwcG9ydGVkSG9zdGluZ0FwcHNba2V5XSwgbmV3IFVSTCh2YWx1ZSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhdGNoIChfYykge1xyXG4gICAgICAgICAgICAgICAgLy8gaWdub3JlIGlmIFVSTCBpcyBub3QgdmFsaWRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHVybE1hcDtcclxufTtcclxuZXhwb3J0IGZ1bmN0aW9uIHNldEhpc3RvcnkobmV3SGlzdG9yeSkge1xyXG4gICAgaGlzdG9yeSA9IG5ld0hpc3Rvcnk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEhpc3RvcnkoKSB7XHJcbiAgICBpZiAoaGlzdG9yeSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdIaXN0b3J5IG9iamVjdCBoYXMgbm90IGJlZW4gc2V0Jyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaGlzdG9yeTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/dist/runtime/routing/history.js\n"); /***/ }), /***/ "./node_modules/@ms/centro-hvc-loader/package.json": /*!*********************************************************!*\ !*** ./node_modules/@ms/centro-hvc-loader/package.json ***! \*********************************************************/ /*! exports provided: name, version, description, license, devDependencies, homepage, bugs, author, main, module, typings, scripts, dependencies, default */ /***/ (function(module) { eval("module.exports = JSON.parse(\"{\\\"name\\\":\\\"@ms/centro-hvc-loader\\\",\\\"version\\\":\\\"3.2.2\\\",\\\"description\\\":\\\"Project Centro high value component loader\\\",\\\"license\\\":\\\"UNLICENSED\\\",\\\"devDependencies\\\":{\\\"@types/webpack-env\\\":\\\"1.15.1\\\",\\\"typescript\\\":\\\"4.2.3-gauri-patch-3\\\"},\\\"homepage\\\":\\\"https://office.visualstudio.com/OC/_git/M365AdminUX?path=%2Fmodules%2Fhvc-loader\\\",\\\"bugs\\\":{\\\"url\\\":\\\"https://office.visualstudio.com/OC/_workitems/edit/2364251\\\",\\\"email\\\":\\\"centroinfo@microsoft.com\\\"},\\\"author\\\":\\\"MAC Platform Team \\\",\\\"main\\\":\\\"./dist/hvc-loader/index.js\\\",\\\"module\\\":\\\"./dist/hvc-loader/index.js\\\",\\\"typings\\\":\\\"./dist/hvc-loader/index.d.ts\\\",\\\"scripts\\\":{\\\"build\\\":\\\"tsc -p ./tsconfig.json\\\"},\\\"dependencies\\\":{\\\"tslib\\\":\\\"^2.1.0\\\"}}\");//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL25vZGVfbW9kdWxlcy9AbXMvY2VudHJvLWh2Yy1sb2FkZXIvcGFja2FnZS5qc29uLmpzIiwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/@ms/centro-hvc-loader/package.json\n"); /***/ }), /***/ "./node_modules/es6-promise/auto.js": /*!******************************************!*\ !*** ./node_modules/es6-promise/auto.js ***! \******************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("// This file can be required in Browserify and Node.js for automatic polyfill\n// To use it: require('es6-promise/auto');\n\nmodule.exports = __webpack_require__(/*! ./ */ \"./node_modules/es6-promise/dist/es6-promise.js\").polyfill();\n//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvZXM2LXByb21pc2UvYXV0by5qcz8wODIwIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDYTtBQUNiLGlCQUFpQixtQkFBTyxDQUFDLDBEQUFJIiwiZmlsZSI6Ii4vbm9kZV9tb2R1bGVzL2VzNi1wcm9taXNlL2F1dG8uanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIGZpbGUgY2FuIGJlIHJlcXVpcmVkIGluIEJyb3dzZXJpZnkgYW5kIE5vZGUuanMgZm9yIGF1dG9tYXRpYyBwb2x5ZmlsbFxuLy8gVG8gdXNlIGl0OiAgcmVxdWlyZSgnZXM2LXByb21pc2UvYXV0bycpO1xuJ3VzZSBzdHJpY3QnO1xubW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLycpLnBvbHlmaWxsKCk7XG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/es6-promise/auto.js\n"); /***/ }), /***/ "./node_modules/es6-promise/dist/es6-promise.js": /*!******************************************************!*\ !*** ./node_modules/es6-promise/dist/es6-promise.js ***! \******************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("/* WEBPACK VAR INJECTION */(function(process, global) {/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\t true ? module.exports = factory() :\n\tundefined;\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && \"function\" === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'applicationhttps://www.microsoft.com/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../process/browser.js */ \"./node_modules/process/browser.js\"), __webpack_require__(/*! ./../../webpack/buildin/global.js */ \"./node_modules/webpack/buildin/global.js\")))//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vY29uZmlnL3ZlcnNpb25UZW1wbGF0ZS50eHQ/MDk1MCIsIndlYnBhY2s6Ly8vbGliL2VzNi1wcm9taXNlL3V0aWxzLmpzP2ZhYTEiLCJ3ZWJwYWNrOi8vL2xpYi9lczYtcHJvbWlzZS9hc2FwLmpzPzc2N2YiLCJ3ZWJwYWNrOi8vL2xpYi9lczYtcHJvbWlzZS90aGVuLmpzP2JhYzYiLCJ3ZWJwYWNrOi8vL2xpYi9lczYtcHJvbWlzZS9wcm9taXNlL3Jlc29sdmUuanM/MDQwNSIsIndlYnBhY2s6Ly8vbGliL2VzNi1wcm9taXNlLy1pbnRlcm5hbC5qcz9mMWI2Iiwid2VicGFjazovLy9saWIvZXM2LXByb21pc2UvZW51bWVyYXRvci5qcz9hNGJjIiwid2VicGFjazovLy9saWIvZXM2LXByb21pc2UvcHJvbWlzZS9hbGwuanM/YzFhNyIsIndlYnBhY2s6Ly8vbGliL2VzNi1wcm9taXNlL3Byb21pc2UvcmFjZS5qcz8zN2NiIiwid2VicGFjazovLy9saWIvZXM2LXByb21pc2UvcHJvbWlzZS9yZWplY3QuanM/NTFjNyIsIndlYnBhY2s6Ly8vbGliL2VzNi1wcm9taXNlL3Byb21pc2UuanM/NTQwYiIsIndlYnBhY2s6Ly8vbGliL2VzNi1wcm9taXNlL3BvbHlmaWxsLmpzPzAzNTUiLCJ3ZWJwYWNrOi8vL2xpYi9lczYtcHJvbWlzZS5qcz8yZDRlIl0sIm5hbWVzIjpbInJlc29sdmUiLCJfcmVzb2x2ZSIsInRoZW4iLCJvcmlnaW5hbFRoZW4iLCJvcmlnaW5hbFJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiX3JlamVjdCIsIlJlc29sdmUiLCJSZWplY3QiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7Ozs7O0FDTk8sU0FBUyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUU7RUFDbEMsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUM7RUFDcEIsT0FBTyxDQUFDLEtBQUssSUFBSSxLQUFLLElBQUks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QUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDOztFQUV0QixJQUFJLENBQUMsRUFBRTtJQUNMLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQztJQUMzQixJQUFJO01BQ0YsZUFBZSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztLQUMvRCxDQUFDLE9BQU8sQ0FBQyxFQUFFOztLQUVYOztJQUVELElBQUksZUFBZSxLQUFLLGtCQUFrQixJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtNQUNyRCxPQUFPO0tBQ1I7R0FDRjs7RUFFRCxLQUFLLENBQUMsT0FBTyxHQUFHQSxTQUFPLENBQUM7OztBQzlCMUIsQ0QrQkM7QUM5QkRBLFNBQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzVCQSxTQUFPLENBQUMsT0FBTyxHQUFHQSxTQUFPLENBQUMiLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvZXM2LXByb21pc2UvZGlzdC9lczYtcHJvbWlzZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQG92ZXJ2aWV3IGVzNi1wcm9taXNlIC0gYSB0aW55IGltcGxlbWVudGF0aW9uIG9mIFByb21pc2VzL0ErLlxuICogQGNvcHlyaWdodCBDb3B5cmlnaHQgKGMpIDIwMTQgWWVodWRhIEthdHosIFRvbSBEYWxlLCBTdGVmYW4gUGVubmVyIGFuZCBjb250cmlidXRvcnMgKENvbnZlcnNpb24gdG8gRVM2IEFQSSBieSBKYWtlIEFyY2hpYmFsZClcbiAqIEBsaWNlbnNlICAgTGljZW5zZWQgdW5kZXIgTUlUIGxpY2Vuc2VcbiAqICAgICAgICAgICAgU2VlIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9zdGVmYW5wZW5uZXIvZXM2LXByb21pc2UvbWFzdGVyL0xJQ0VOU0VcbiAqIEB2ZXJzaW9uICAgdjQuMi44KzFlNjhkY2U2XG4gKi9cbiIsImV4cG9ydCBmdW5jdGlvbiBvYmplY3RPckZ1bmN0aW9uKHgpIHtcbiAgdmFyIHR5cGUgPSB0eXBlb2YgeDtcbiAgcmV0dXJuIHggIT09IG51bGwgJiYgKHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgPT09ICdmdW5jdGlvbicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbih4KSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ2Z1bmN0aW9uJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWF5YmVUaGVuYWJsZSh4KSB7XG4gIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSAnb2JqZWN0Jztcbn1cblxudmFyIF9pc0FycmF5ID0gdm9pZCAwO1xuaWYgKEFycmF5LmlzQXJyYXkpIHtcbiAgX2lzQXJyYXkgPSBBcnJheS5pc0FycmF5O1xufSBlbHNlIHtcbiAgX2lzQXJyYXkgPSBmdW5jdGlvbiAoeCkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoeCkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG4gIH07XG59XG5cbmV4cG9ydCB2YXIgaXNBcnJheSA9IF9pc0FycmF5OyIsInZhciBsZW4gPSAwO1xudmFyIHZlcnR4TmV4dCA9IHZvaWQgMDtcbnZhciBjdXN0b21TY2hlZHVsZXJGbiA9IHZvaWQgMDtcblxuZXhwb3J0IHZhciBhc2FwID0gZnVuY3Rpb24gYXNhcChjYWxsYmFjaywgYXJnKSB7XG4gIHF1ZXVlW2xlbl0gPSBjYWxsYmFjaztcbiAgcXVldWVbbGVuICsgMV0gPSBhcmc7XG4gIGxlbiArPSAyO1xuICBpZiAobGVuID09PSAyKSB7XG4gICAgLy8gSWYgbGVuIGlzIDIsIHRoYXQgbWVhbnMgdGhhdCB3ZSBuZWVkIHRvIHNjaGVkdWxlIGFuIGFzeW5jIGZsdXNoLlxuICAgIC8vIElmIGFkZGl0aW9uYWwgY2FsbGJhY2tzIGFyZSBxdWV1ZWQgYmVmb3JlIHRoZSBxdWV1ZSBpcyBmbHVzaGVkLCB0aGV5XG4gICAgLy8gd2lsbCBiZSBwcm9jZXNzZWQgYnkgdGhpcyBmbHVzaCB0aGF0IHdlIGFyZSBzY2hlZHVsaW5nLlxuICAgIGlmIChjdXN0b21TY2hlZHVsZXJGbikge1xuICAgICAgY3VzdG9tU2NoZWR1bGVyRm4oZmx1c2gpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzY2hlZHVsZUZsdXNoKCk7XG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2NoZWR1bGVyKHNjaGVkdWxlRm4pIHtcbiAgY3VzdG9tU2NoZWR1bGVyRm4gPSBzY2hlZHVsZUZuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXNhcChhc2FwRm4pIHtcbiAgYXNhcCA9IGFzYXBGbjtcbn1cblxudmFyIGJyb3dzZXJXaW5kb3cgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IHVuZGVmaW5lZDtcbnZhciBicm93c2VyR2xvYmFsID0gYnJvd3NlcldpbmRvdyB8fCB7fTtcbnZhciBCcm93c2VyTXV0YXRpb25PYnNlcnZlciA9IGJyb3dzZXJHbG9iYWwuTXV0YXRpb25PYnNlcnZlciB8fCBicm93c2VyR2xvYmFsLldlYktpdE11dGF0aW9uT2JzZXJ2ZXI7XG52YXIgaXNOb2RlID0gdHlwZW9mIHNlbGYgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiB7fS50b1N0cmluZy5jYWxsKHByb2Nlc3MpID09PSAnW29iamVjdCBwcm9jZXNzXSc7XG5cbi8vIHRlc3QgZm9yIHdlYiB3b3JrZXIgYnV0IG5vdCBpbiBJRTEwXG52YXIgaXNXb3JrZXIgPSB0eXBlb2YgVWludDhDbGFtcGVkQXJyYXkgIT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgTWVzc2FnZUNoYW5uZWwgIT09ICd1bmRlZmluZWQnO1xuXG4vLyBub2RlXG5mdW5jdGlvbiB1c2VOZXh0VGljaygpIHtcbiAgLy8gbm9kZSB2ZXJzaW9uIDAuMTAueCBkaXNwbGF5cyBhIGRlcHJlY2F0aW9uIHdhcm5pbmcgd2hlbiBuZXh0VGljayBpcyB1c2VkIHJlY3Vyc2l2ZWx5XG4gIC8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vY3Vqb2pzL3doZW4vaXNzdWVzLzQxMCBmb3IgZGV0YWlsc1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBwcm9jZXNzLm5leHRUaWNrKGZsdXNoKTtcbiAgfTtcbn1cblxuLy8gdmVydHhcbmZ1bmN0aW9uIHVzZVZlcnR4VGltZXIoKSB7XG4gIGlmICh0eXBlb2YgdmVydHhOZXh0ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB2ZXJ0eE5leHQoZmx1c2gpO1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gdXNlU2V0VGltZW91dCgpO1xufVxuXG5mdW5jdGlvbiB1c2VNdXRhdGlvbk9ic2VydmVyKCkge1xuICB2YXIgaXRlcmF0aW9ucyA9IDA7XG4gIHZhciBvYnNlcnZlciA9IG5ldyBCcm93c2VyTXV0YXRpb25PYnNlcnZlcihmbHVzaCk7XG4gIHZhciBub2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJycpO1xuICBvYnNlcnZlci5vYnNlcnZlKG5vZGUsIHsgY2hhcmFjdGVyRGF0YTogdHJ1ZSB9KTtcblxuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIG5vZGUuZGF0YSA9IGl0ZXJhdGlvbnMgPSArK2l0ZXJhdGlvbnMgJSAyO1xuICB9O1xufVxuXG4vLyB3ZWIgd29ya2VyXG5mdW5jdGlvbiB1c2VNZXNzYWdlQ2hhbm5lbCgpIHtcbiAgdmFyIGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTtcbiAgY2hhbm5lbC5wb3J0MS5vbm1lc3NhZ2UgPSBmbHVzaDtcbiAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gY2hhbm5lbC5wb3J0Mi5wb3N0TWVzc2FnZSgwKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gdXNlU2V0VGltZW91dCgpIHtcbiAgLy8gU3RvcmUgc2V0VGltZW91dCByZWZlcmVuY2Ugc28gZXM2LXByb21pc2Ugd2lsbCBiZSB1bmFmZmVjdGVkIGJ5XG4gIC8vIG90aGVyIGNvZGUgbW9kaWZ5aW5nIHNldFRpbWVvdXQgKGxpa2Ugc2lub24udXNlRmFrZVRpbWVycygpKVxuICB2YXIgZ2xvYmFsU2V0VGltZW91dCA9IHNldFRpbWVvdXQ7XG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIGdsb2JhbFNldFRpbWVvdXQoZmx1c2gsIDEpO1xuICB9O1xufVxuXG52YXIgcXVldWUgPSBuZXcgQXJyYXkoMTAwMCk7XG5mdW5jdGlvbiBmbHVzaCgpIHtcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW47IGkgKz0gMikge1xuICAgIHZhciBjYWxsYmFjayA9IHF1ZXVlW2ldO1xuICAgIHZhciBhcmcgPSBxdWV1ZVtpICsgMV07XG5cbiAgICBjYWxsYmFjayhhcmcpO1xuXG4gICAgcXVldWVbaV0gPSB1bmRlZmluZWQ7XG4gICAgcXVldWVbaSArIDFdID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgbGVuID0gMDtcbn1cblxuZnVuY3Rpb24gYXR0ZW1wdFZlcnR4KCkge1xuICB0cnkge1xuICAgIHZhciB2ZXJ0eCA9IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCkucmVxdWlyZSgndmVydHgnKTtcbiAgICB2ZXJ0eE5leHQgPSB2ZXJ0eC5ydW5Pbkxvb3AgfHwgdmVydHgucnVuT25Db250ZXh0O1xuICAgIHJldHVybiB1c2VWZXJ0eFRpbWVyKCk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gdXNlU2V0VGltZW91dCgpO1xuICB9XG59XG5cbnZhciBzY2hlZHVsZUZsdXNoID0gdm9pZCAwO1xuLy8gRGVjaWRlIHdoYXQgYXN5bmMgbWV0aG9kIHRvIHVzZSB0byB0cmlnZ2VyaW5nIHByb2Nlc3Npbmcgb2YgcXVldWVkIGNhbGxiYWNrczpcbmlmIChpc05vZGUpIHtcbiAgc2NoZWR1bGVGbHVzaCA9IHVzZU5leHRUaWNrKCk7XG59IGVsc2UgaWYgKEJyb3dzZXJNdXRhdGlvbk9ic2VydmVyKSB7XG4gIHNjaGVkdWxlRmx1c2ggPSB1c2VNdXRhdGlvbk9ic2VydmVyKCk7XG59IGVsc2UgaWYgKGlzV29ya2VyKSB7XG4gIHNjaGVkdWxlRmx1c2ggPSB1c2VNZXNzYWdlQ2hhbm5lbCgpO1xufSBlbHNlIGlmIChicm93c2VyV2luZG93ID09PSB1bmRlZmluZWQgJiYgdHlwZW9mIHJlcXVpcmUgPT09ICdmdW5jdGlvbicpIHtcbiAgc2NoZWR1bGVGbHVzaCA9IGF0dGVtcHRWZXJ0eCgpO1xufSBlbHNlIHtcbiAgc2NoZWR1bGVGbHVzaCA9IHVzZVNldFRpbWVvdXQoKTtcbn0iLCJpbXBvcnQgeyBpbnZva2VDYWxsYmFjaywgc3Vic2NyaWJlLCBGVUxGSUxMRUQsIFJFSkVDVEVELCBub29wLCBtYWtlUHJvbWlzZSwgUFJPTUlTRV9JRCB9IGZyb20gJy4vLWludGVybmFsJztcblxuaW1wb3J0IHsgYXNhcCB9IGZyb20gJy4vYXNhcCc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHRoZW4ob25GdWxmaWxsbWVudCwgb25SZWplY3Rpb24pIHtcbiAgdmFyIHBhcmVudCA9IHRoaXM7XG5cbiAgdmFyIGNoaWxkID0gbmV3IHRoaXMuY29uc3RydWN0b3Iobm9vcCk7XG5cbiAgaWYgKGNoaWxkW1BST01JU0VfSURdID09PSB1bmRlZmluZWQpIHtcbiAgICBtYWtlUHJvbWlzZShjaGlsZCk7XG4gIH1cblxuICB2YXIgX3N0YXRlID0gcGFyZW50Ll9zdGF0ZTtcblxuXG4gIGlmIChfc3RhdGUpIHtcbiAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbX3N0YXRlIC0gMV07XG4gICAgYXNhcChmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gaW52b2tlQ2FsbGJhY2soX3N0YXRlLCBjaGlsZCwgY2FsbGJhY2ssIHBhcmVudC5fcmVzdWx0KTtcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBzdWJzY3JpYmUocGFyZW50LCBjaGlsZCwgb25GdWxmaWxsbWVudCwgb25SZWplY3Rpb24pO1xuICB9XG5cbiAgcmV0dXJuIGNoaWxkO1xufSIsImltcG9ydCB7IG5vb3AsIHJlc29sdmUgYXMgX3Jlc29sdmUgfSBmcm9tICcuLi8taW50ZXJuYWwnO1xuXG4vKipcbiAgYFByb21pc2UucmVzb2x2ZWAgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIGJlY29tZSByZXNvbHZlZCB3aXRoIHRoZVxuICBwYXNzZWQgYHZhbHVlYC4gSXQgaXMgc2hvcnRoYW5kIGZvciB0aGUgZm9sbG93aW5nOlxuXG4gIGBgYGphdmFzY3JpcHRcbiAgbGV0IHByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qpe1xuICAgIHJlc29sdmUoMSk7XG4gIH0pO1xuXG4gIHByb21pc2UudGhlbihmdW5jdGlvbih2YWx1ZSl7XG4gICAgLy8gdmFsdWUgPT09IDFcbiAgfSk7XG4gIGBgYFxuXG4gIEluc3RlYWQgb2Ygd3JpdGluZyB0aGUgYWJvdmUsIHlvdXIgY29kZSBub3cgc2ltcGx5IGJlY29tZXMgdGhlIGZvbGxvd2luZzpcblxuICBgYGBqYXZhc2NyaXB0XG4gIGxldCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKDEpO1xuXG4gIHByb21pc2UudGhlbihmdW5jdGlvbih2YWx1ZSl7XG4gICAgLy8gdmFsdWUgPT09IDFcbiAgfSk7XG4gIGBgYFxuXG4gIEBtZXRob2QgcmVzb2x2ZVxuICBAc3RhdGljXG4gIEBwYXJhbSB7QW55fSB2YWx1ZSB2YWx1ZSB0aGF0IHRoZSByZXR1cm5lZCBwcm9taXNlIHdpbGwgYmUgcmVzb2x2ZWQgd2l0aFxuICBVc2VmdWwgZm9yIHRvb2xpbmcuXG4gIEByZXR1cm4ge1Byb21pc2V9IGEgcHJvbWlzZSB0aGF0IHdpbGwgYmVjb21lIGZ1bGZpbGxlZCB3aXRoIHRoZSBnaXZlblxuICBgdmFsdWVgXG4qL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmVzb2x2ZShvYmplY3QpIHtcbiAgLypqc2hpbnQgdmFsaWR0aGlzOnRydWUgKi9cbiAgdmFyIENvbnN0cnVjdG9yID0gdGhpcztcblxuICBpZiAob2JqZWN0ICYmIHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnICYmIG9iamVjdC5jb25zdHJ1Y3RvciA9PT0gQ29uc3RydWN0b3IpIHtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG5cbiAgdmFyIHByb21pc2UgPSBuZXcgQ29uc3RydWN0b3Iobm9vcCk7XG4gIF9yZXNvbHZlKHByb21pc2UsIG9iamVjdCk7XG4gIHJldHVybiBwcm9taXNlO1xufSIsImltcG9ydCB7IG9iamVjdE9yRnVuY3Rpb24sIGlzRnVuY3Rpb24gfSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IHsgYXNhcCB9IGZyb20gJy4vYXNhcCc7XG5cbmltcG9ydCBvcmlnaW5hbFRoZW4gZnJvbSAnLi90aGVuJztcbmltcG9ydCBvcmlnaW5hbFJlc29sdmUgZnJvbSAnLi9wcm9taXNlL3Jlc29sdmUnO1xuXG5leHBvcnQgdmFyIFBST01JU0VfSUQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG5cbmZ1bmN0aW9uIG5vb3AoKSB7fVxuXG52YXIgUEVORElORyA9IHZvaWQgMDtcbnZhciBGVUxGSUxMRUQgPSAxO1xudmFyIFJFSkVDVEVEID0gMjtcblxuZnVuY3Rpb24gc2VsZkZ1bGZpbGxtZW50KCkge1xuICByZXR1cm4gbmV3IFR5cGVFcnJvcihcIllvdSBjYW5ub3QgcmVzb2x2ZSBhIHByb21pc2Ugd2l0aCBpdHNlbGZcIik7XG59XG5cbmZ1bmN0aW9uIGNhbm5vdFJldHVybk93bigpIHtcbiAgcmV0dXJuIG5ldyBUeXBlRXJyb3IoJ0EgcHJvbWlzZXMgY2FsbGJhY2sgY2Fubm90IHJldHVybiB0aGF0IHNhbWUgcHJvbWlzZS4nKTtcbn1cblxuZnVuY3Rpb24gdHJ5VGhlbih0aGVuLCB2YWx1ZSwgZnVsZmlsbG1lbnRIYW5kbGVyLCByZWplY3Rpb25IYW5kbGVyKSB7XG4gIHRyeSB7XG4gICAgdGhlbi5jYWxsKHZhbHVlLCBmdWxmaWxsbWVudEhhbmRsZXIsIHJlamVjdGlvbkhhbmRsZXIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGU7XG4gIH1cbn1cblxuZnVuY3Rpb24gaGFuZGxlRm9yZWlnblRoZW5hYmxlKHByb21pc2UsIHRoZW5hYmxlLCB0aGVuKSB7XG4gIGFzYXAoZnVuY3Rpb24gKHByb21pc2UpIHtcbiAgICB2YXIgc2VhbGVkID0gZmFsc2U7XG4gICAgdmFyIGVycm9yID0gdHJ5VGhlbih0aGVuLCB0aGVuYWJsZSwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICBpZiAoc2VhbGVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHNlYWxlZCA9IHRydWU7XG4gICAgICBpZiAodGhlbmFibGUgIT09IHZhbHVlKSB7XG4gICAgICAgIHJlc29sdmUocHJvbWlzZSwgdmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZnVsZmlsbChwcm9taXNlLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgaWYgKHNlYWxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzZWFsZWQgPSB0cnVlO1xuXG4gICAgICByZWplY3QocHJvbWlzZSwgcmVhc29uKTtcbiAgICB9LCAnU2V0dGxlOiAnICsgKHByb21pc2UuX2xhYmVsIHx8ICcgdW5rbm93biBwcm9taXNlJykpO1xuXG4gICAgaWYgKCFzZWFsZWQgJiYgZXJyb3IpIHtcbiAgICAgIHNlYWxlZCA9IHRydWU7XG4gICAgICByZWplY3QocHJvbWlzZSwgZXJyb3IpO1xuICAgIH1cbiAgfSwgcHJvbWlzZSk7XG59XG5cbmZ1bmN0aW9uIGhhbmRsZU93blRoZW5hYmxlKHByb21pc2UsIHRoZW5hYmxlKSB7XG4gIGlmICh0aGVuYWJsZS5fc3RhdGUgPT09IEZVTEZJTExFRCkge1xuICAgIGZ1bGZpbGwocHJvbWlzZSwgdGhlbmFibGUuX3Jlc3VsdCk7XG4gIH0gZWxzZSBpZiAodGhlbmFibGUuX3N0YXRlID09PSBSRUpFQ1RFRCkge1xuICAgIHJlamVjdChwcm9taXNlLCB0aGVuYWJsZS5fcmVzdWx0KTtcbiAgfSBlbHNlIHtcbiAgICBzdWJzY3JpYmUodGhlbmFibGUsIHVuZGVmaW5lZCwgZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICByZXR1cm4gcmVzb2x2ZShwcm9taXNlLCB2YWx1ZSk7XG4gICAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgcmV0dXJuIHJlamVjdChwcm9taXNlLCByZWFzb24pO1xuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGhhbmRsZU1heWJlVGhlbmFibGUocHJvbWlzZSwgbWF5YmVUaGVuYWJsZSwgdGhlbikge1xuICBpZiAobWF5YmVUaGVuYWJsZS5jb25zdHJ1Y3RvciA9PT0gcHJvbWlzZS5jb25zdHJ1Y3RvciAmJiB0aGVuID09PSBvcmlnaW5hbFRoZW4gJiYgbWF5YmVUaGVuYWJsZS5jb25zdHJ1Y3Rvci5yZXNvbHZlID09PSBvcmlnaW5hbFJlc29sdmUpIHtcbiAgICBoYW5kbGVPd25UaGVuYWJsZShwcm9taXNlLCBtYXliZVRoZW5hYmxlKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAodGhlbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBmdWxmaWxsKHByb21pc2UsIG1heWJlVGhlbmFibGUpO1xuICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbih0aGVuKSkge1xuICAgICAgaGFuZGxlRm9yZWlnblRoZW5hYmxlKHByb21pc2UsIG1heWJlVGhlbmFibGUsIHRoZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmdWxmaWxsKHByb21pc2UsIG1heWJlVGhlbmFibGUpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiByZXNvbHZlKHByb21pc2UsIHZhbHVlKSB7XG4gIGlmIChwcm9taXNlID09PSB2YWx1ZSkge1xuICAgIHJlamVjdChwcm9taXNlLCBzZWxmRnVsZmlsbG1lbnQoKSk7XG4gIH0gZWxzZSBpZiAob2JqZWN0T3JGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICB2YXIgdGhlbiA9IHZvaWQgMDtcbiAgICB0cnkge1xuICAgICAgdGhlbiA9IHZhbHVlLnRoZW47XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJlamVjdChwcm9taXNlLCBlcnJvcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGhhbmRsZU1heWJlVGhlbmFibGUocHJvbWlzZSwgdmFsdWUsIHRoZW4pO1xuICB9IGVsc2Uge1xuICAgIGZ1bGZpbGwocHJvbWlzZSwgdmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHB1Ymxpc2hSZWplY3Rpb24ocHJvbWlzZSkge1xuICBpZiAocHJvbWlzZS5fb25lcnJvcikge1xuICAgIHByb21pc2UuX29uZXJyb3IocHJvbWlzZS5fcmVzdWx0KTtcbiAgfVxuXG4gIHB1Ymxpc2gocHJvbWlzZSk7XG59XG5cbmZ1bmN0aW9uIGZ1bGZpbGwocHJvbWlzZSwgdmFsdWUpIHtcbiAgaWYgKHByb21pc2UuX3N0YXRlICE9PSBQRU5ESU5HKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvbWlzZS5fcmVzdWx0ID0gdmFsdWU7XG4gIHByb21pc2UuX3N0YXRlID0gRlVMRklMTEVEO1xuXG4gIGlmIChwcm9taXNlLl9zdWJzY3JpYmVycy5sZW5ndGggIT09IDApIHtcbiAgICBhc2FwKHB1Ymxpc2gsIHByb21pc2UpO1xuICB9XG59XG5cbmZ1bmN0aW9uIHJlamVjdChwcm9taXNlLCByZWFzb24pIHtcbiAgaWYgKHByb21pc2UuX3N0YXRlICE9PSBQRU5ESU5HKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHByb21pc2UuX3N0YXRlID0gUkVKRUNURUQ7XG4gIHByb21pc2UuX3Jlc3VsdCA9IHJlYXNvbjtcblxuICBhc2FwKHB1Ymxpc2hSZWplY3Rpb24sIHByb21pc2UpO1xufVxuXG5mdW5jdGlvbiBzdWJzY3JpYmUocGFyZW50LCBjaGlsZCwgb25GdWxmaWxsbWVudCwgb25SZWplY3Rpb24pIHtcbiAgdmFyIF9zdWJzY3JpYmVycyA9IHBhcmVudC5fc3Vic2NyaWJlcnM7XG4gIHZhciBsZW5ndGggPSBfc3Vic2NyaWJlcnMubGVuZ3RoO1xuXG5cbiAgcGFyZW50Ll9vbmVycm9yID0gbnVsbDtcblxuICBfc3Vic2NyaWJlcnNbbGVuZ3RoXSA9IGNoaWxkO1xuICBfc3Vic2NyaWJlcnNbbGVuZ3RoICsgRlVMRklMTEVEXSA9IG9uRnVsZmlsbG1lbnQ7XG4gIF9zdWJzY3JpYmVyc1tsZW5ndGggKyBSRUpFQ1RFRF0gPSBvblJlamVjdGlvbjtcblxuICBpZiAobGVuZ3RoID09PSAwICYmIHBhcmVudC5fc3RhdGUpIHtcbiAgICBhc2FwKHB1Ymxpc2gsIHBhcmVudCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gcHVibGlzaChwcm9taXNlKSB7XG4gIHZhciBzdWJzY3JpYmVycyA9IHByb21pc2UuX3N1YnNjcmliZXJzO1xuICB2YXIgc2V0dGxlZCA9IHByb21pc2UuX3N0YXRlO1xuXG4gIGlmIChzdWJzY3JpYmVycy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm47XG4gIH1cblxuICB2YXIgY2hpbGQgPSB2b2lkIDAsXG4gICAgICBjYWxsYmFjayA9IHZvaWQgMCxcbiAgICAgIGRldGFpbCA9IHByb21pc2UuX3Jlc3VsdDtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN1YnNjcmliZXJzLmxlbmd0aDsgaSArPSAzKSB7XG4gICAgY2hpbGQgPSBzdWJzY3JpYmVyc1tpXTtcbiAgICBjYWxsYmFjayA9IHN1YnNjcmliZXJzW2kgKyBzZXR0bGVkXTtcblxuICAgIGlmIChjaGlsZCkge1xuICAgICAgaW52b2tlQ2FsbGJhY2soc2V0dGxlZCwgY2hpbGQsIGNhbGxiYWNrLCBkZXRhaWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhkZXRhaWwpO1xuICAgIH1cbiAgfVxuXG4gIHByb21pc2UuX3N1YnNjcmliZXJzLmxlbmd0aCA9IDA7XG59XG5cbmZ1bmN0aW9uIGludm9rZUNhbGxiYWNrKHNldHRsZWQsIHByb21pc2UsIGNhbGxiYWNrLCBkZXRhaWwpIHtcbiAgdmFyIGhhc0NhbGxiYWNrID0gaXNGdW5jdGlvbihjYWxsYmFjayksXG4gICAgICB2YWx1ZSA9IHZvaWQgMCxcbiAgICAgIGVycm9yID0gdm9pZCAwLFxuICAgICAgc3VjY2VlZGVkID0gdHJ1ZTtcblxuICBpZiAoaGFzQ2FsbGJhY2spIHtcbiAgICB0cnkge1xuICAgICAgdmFsdWUgPSBjYWxsYmFjayhkZXRhaWwpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHN1Y2NlZWRlZCA9IGZhbHNlO1xuICAgICAgZXJyb3IgPSBlO1xuICAgIH1cblxuICAgIGlmIChwcm9taXNlID09PSB2YWx1ZSkge1xuICAgICAgcmVqZWN0KHByb21pc2UsIGNhbm5vdFJldHVybk93bigpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdmFsdWUgPSBkZXRhaWw7XG4gIH1cblxuICBpZiAocHJvbWlzZS5fc3RhdGUgIT09IFBFTkRJTkcpIHtcbiAgICAvLyBub29wXG4gIH0gZWxzZSBpZiAoaGFzQ2FsbGJhY2sgJiYgc3VjY2VlZGVkKSB7XG4gICAgcmVzb2x2ZShwcm9taXNlLCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoc3VjY2VlZGVkID09PSBmYWxzZSkge1xuICAgIHJlamVjdChwcm9taXNlLCBlcnJvcik7XG4gIH0gZWxzZSBpZiAoc2V0dGxlZCA9PT0gRlVMRklMTEVEKSB7XG4gICAgZnVsZmlsbChwcm9taXNlLCB2YWx1ZSk7XG4gIH0gZWxzZSBpZiAoc2V0dGxlZCA9PT0gUkVKRUNURUQpIHtcbiAgICByZWplY3QocHJvbWlzZSwgdmFsdWUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRpYWxpemVQcm9taXNlKHByb21pc2UsIHJlc29sdmVyKSB7XG4gIHRyeSB7XG4gICAgcmVzb2x2ZXIoZnVuY3Rpb24gcmVzb2x2ZVByb21pc2UodmFsdWUpIHtcbiAgICAgIHJlc29sdmUocHJvbWlzZSwgdmFsdWUpO1xuICAgIH0sIGZ1bmN0aW9uIHJlamVjdFByb21pc2UocmVhc29uKSB7XG4gICAgICByZWplY3QocHJvbWlzZSwgcmVhc29uKTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlamVjdChwcm9taXNlLCBlKTtcbiAgfVxufVxuXG52YXIgaWQgPSAwO1xuZnVuY3Rpb24gbmV4dElkKCkge1xuICByZXR1cm4gaWQrKztcbn1cblxuZnVuY3Rpb24gbWFrZVByb21pc2UocHJvbWlzZSkge1xuICBwcm9taXNlW1BST01JU0VfSURdID0gaWQrKztcbiAgcHJvbWlzZS5fc3RhdGUgPSB1bmRlZmluZWQ7XG4gIHByb21pc2UuX3Jlc3VsdCA9IHVuZGVmaW5lZDtcbiAgcHJvbWlzZS5fc3Vic2NyaWJlcnMgPSBbXTtcbn1cblxuZXhwb3J0IHsgbmV4dElkLCBtYWtlUHJvbWlzZSwgbm9vcCwgcmVzb2x2ZSwgcmVqZWN0LCBmdWxmaWxsLCBzdWJzY3JpYmUsIHB1Ymxpc2gsIHB1Ymxpc2hSZWplY3Rpb24sIGluaXRpYWxpemVQcm9taXNlLCBpbnZva2VDYWxsYmFjaywgRlVMRklMTEVELCBSRUpFQ1RFRCwgUEVORElORywgaGFuZGxlTWF5YmVUaGVuYWJsZSB9OyIsImZ1bmN0aW9uIF9jbGFzc0NhbGxDaGVjayhpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHsgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHsgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTsgfSB9XG5cbmltcG9ydCB7IGlzQXJyYXksIGlzTWF5YmVUaGVuYWJsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgbm9vcCwgcmVqZWN0LCBmdWxmaWxsLCBzdWJzY3JpYmUsIEZVTEZJTExFRCwgUkVKRUNURUQsIFBFTkRJTkcsIGhhbmRsZU1heWJlVGhlbmFibGUgfSBmcm9tICcuLy1pbnRlcm5hbCc7XG5cbmltcG9ydCB0aGVuIGZyb20gJy4vdGhlbic7XG5pbXBvcnQgUHJvbWlzZSBmcm9tICcuL3Byb21pc2UnO1xuaW1wb3J0IG9yaWdpbmFsUmVzb2x2ZSBmcm9tICcuL3Byb21pc2UvcmVzb2x2ZSc7XG5pbXBvcnQgb3JpZ2luYWxUaGVuIGZyb20gJy4vdGhlbic7XG5pbXBvcnQgeyBtYWtlUHJvbWlzZSwgUFJPTUlTRV9JRCB9IGZyb20gJy4vLWludGVybmFsJztcblxuZnVuY3Rpb24gdmFsaWRhdGlvbkVycm9yKCkge1xuICByZXR1cm4gbmV3IEVycm9yKCdBcnJheSBNZXRob2RzIG11c3QgYmUgcHJvdmlkZWQgYW4gQXJyYXknKTtcbn07XG5cbnZhciBFbnVtZXJhdG9yID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBFbnVtZXJhdG9yKENvbnN0cnVjdG9yLCBpbnB1dCkge1xuICAgIHRoaXMuX2luc3RhbmNlQ29uc3RydWN0b3IgPSBDb25zdHJ1Y3RvcjtcbiAgICB0aGlzLnByb21pc2UgPSBuZXcgQ29uc3RydWN0b3Iobm9vcCk7XG5cbiAgICBpZiAoIXRoaXMucHJvbWlzZVtQUk9NSVNFX0lEXSkge1xuICAgICAgbWFrZVByb21pc2UodGhpcy5wcm9taXNlKTtcbiAgICB9XG5cbiAgICBpZiAoaXNBcnJheShpbnB1dCkpIHtcbiAgICAgIHRoaXMubGVuZ3RoID0gaW5wdXQubGVuZ3RoO1xuICAgICAgdGhpcy5fcmVtYWluaW5nID0gaW5wdXQubGVuZ3RoO1xuXG4gICAgICB0aGlzLl9yZXN1bHQgPSBuZXcgQXJyYXkodGhpcy5sZW5ndGgpO1xuXG4gICAgICBpZiAodGhpcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZnVsZmlsbCh0aGlzLnByb21pc2UsIHRoaXMuX3Jlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxlbmd0aCA9IHRoaXMubGVuZ3RoIHx8IDA7XG4gICAgICAgIHRoaXMuX2VudW1lcmF0ZShpbnB1dCk7XG4gICAgICAgIGlmICh0aGlzLl9yZW1haW5pbmcgPT09IDApIHtcbiAgICAgICAgICBmdWxmaWxsKHRoaXMucHJvbWlzZSwgdGhpcy5fcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZWplY3QodGhpcy5wcm9taXNlLCB2YWxpZGF0aW9uRXJyb3IoKSk7XG4gICAgfVxuICB9XG5cbiAgRW51bWVyYXRvci5wcm90b3R5cGUuX2VudW1lcmF0ZSA9IGZ1bmN0aW9uIF9lbnVtZXJhdGUoaW5wdXQpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgdGhpcy5fc3RhdGUgPT09IFBFTkRJTkcgJiYgaSA8IGlucHV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLl9lYWNoRW50cnkoaW5wdXRbaV0sIGkpO1xuICAgIH1cbiAgfTtcblxuICBFbnVtZXJhdG9yLnByb3RvdHlwZS5fZWFjaEVudHJ5ID0gZnVuY3Rpb24gX2VhY2hFbnRyeShlbnRyeSwgaSkge1xuICAgIHZhciBjID0gdGhpcy5faW5zdGFuY2VDb25zdHJ1Y3RvcjtcbiAgICB2YXIgcmVzb2x2ZSA9IGMucmVzb2x2ZTtcblxuXG4gICAgaWYgKHJlc29sdmUgPT09IG9yaWdpbmFsUmVzb2x2ZSkge1xuICAgICAgdmFyIF90aGVuID0gdm9pZCAwO1xuICAgICAgdmFyIGVycm9yID0gdm9pZCAwO1xuICAgICAgdmFyIGRpZEVycm9yID0gZmFsc2U7XG4gICAgICB0cnkge1xuICAgICAgICBfdGhlbiA9IGVudHJ5LnRoZW47XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgZXJyb3IgPSBlO1xuICAgICAgfVxuXG4gICAgICBpZiAoX3RoZW4gPT09IG9yaWdpbmFsVGhlbiAmJiBlbnRyeS5fc3RhdGUgIT09IFBFTkRJTkcpIHtcbiAgICAgICAgdGhpcy5fc2V0dGxlZEF0KGVudHJ5Ll9zdGF0ZSwgaSwgZW50cnkuX3Jlc3VsdCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBfdGhlbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICB0aGlzLl9yZW1haW5pbmctLTtcbiAgICAgICAgdGhpcy5fcmVzdWx0W2ldID0gZW50cnk7XG4gICAgICB9IGVsc2UgaWYgKGMgPT09IFByb21pc2UpIHtcbiAgICAgICAgdmFyIHByb21pc2UgPSBuZXcgYyhub29wKTtcbiAgICAgICAgaWYgKGRpZEVycm9yKSB7XG4gICAgICAgICAgcmVqZWN0KHByb21pc2UsIGVycm9yKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBoYW5kbGVNYXliZVRoZW5hYmxlKHByb21pc2UsIGVudHJ5LCBfdGhlbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fd2lsbFNldHRsZUF0KHByb21pc2UsIGkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fd2lsbFNldHRsZUF0KG5ldyBjKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoZW50cnkpO1xuICAgICAgICB9KSwgaSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3dpbGxTZXR0bGVBdChyZXNvbHZlKGVudHJ5KSwgaSk7XG4gICAgfVxuICB9O1xuXG4gIEVudW1lcmF0b3IucHJvdG90eXBlLl9zZXR0bGVkQXQgPSBmdW5jdGlvbiBfc2V0dGxlZEF0KHN0YXRlLCBpLCB2YWx1ZSkge1xuICAgIHZhciBwcm9taXNlID0gdGhpcy5wcm9taXNlO1xuXG5cbiAgICBpZiAocHJvbWlzZS5fc3RhdGUgPT09IFBFTkRJTkcpIHtcbiAgICAgIHRoaXMuX3JlbWFpbmluZy0tO1xuXG4gICAgICBpZiAoc3RhdGUgPT09IFJFSkVDVEVEKSB7XG4gICAgICAgIHJlamVjdChwcm9taXNlLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yZXN1bHRbaV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5fcmVtYWluaW5nID09PSAwKSB7XG4gICAgICBmdWxmaWxsKHByb21pc2UsIHRoaXMuX3Jlc3VsdCk7XG4gICAgfVxuICB9O1xuXG4gIEVudW1lcmF0b3IucHJvdG90eXBlLl93aWxsU2V0dGxlQXQgPSBmdW5jdGlvbiBfd2lsbFNldHRsZUF0KHByb21pc2UsIGkpIHtcbiAgICB2YXIgZW51bWVyYXRvciA9IHRoaXM7XG5cbiAgICBzdWJzY3JpYmUocHJvbWlzZSwgdW5kZWZpbmVkLCBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgIHJldHVybiBlbnVtZXJhdG9yLl9zZXR0bGVkQXQoRlVMRklMTEVELCBpLCB2YWx1ZSk7XG4gICAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgICAgcmV0dXJuIGVudW1lcmF0b3IuX3NldHRsZWRBdChSRUpFQ1RFRCwgaSwgcmVhc29uKTtcbiAgICB9KTtcbiAgfTtcblxuICByZXR1cm4gRW51bWVyYXRvcjtcbn0oKTtcblxuZXhwb3J0IGRlZmF1bHQgRW51bWVyYXRvcjtcbjsiLCJpbXBvcnQgRW51bWVyYXRvciBmcm9tICcuLi9lbnVtZXJhdG9yJztcblxuLyoqXG4gIGBQcm9taXNlLmFsbGAgYWNjZXB0cyBhbiBhcnJheSBvZiBwcm9taXNlcywgYW5kIHJldHVybnMgYSBuZXcgcHJvbWlzZSB3aGljaFxuICBpcyBmdWxmaWxsZWQgd2l0aCBhbiBhcnJheSBvZiBmdWxmaWxsbWVudCB2YWx1ZXMgZm9yIHRoZSBwYXNzZWQgcHJvbWlzZXMsIG9yXG4gIHJlamVjdGVkIHdpdGggdGhlIHJlYXNvbiBvZiB0aGUgZmlyc3QgcGFzc2VkIHByb21pc2UgdG8gYmUgcmVqZWN0ZWQuIEl0IGNhc3RzIGFsbFxuICBlbGVtZW50cyBvZiB0aGUgcGFzc2VkIGl0ZXJhYmxlIHRvIHByb21pc2VzIGFzIGl0IHJ1bnMgdGhpcyBhbGdvcml0aG0uXG5cbiAgRXhhbXBsZTpcblxuICBgYGBqYXZhc2NyaXB0XG4gIGxldCBwcm9taXNlMSA9IHJlc29sdmUoMSk7XG4gIGxldCBwcm9taXNlMiA9IHJlc29sdmUoMik7XG4gIGxldCBwcm9taXNlMyA9IHJlc29sdmUoMyk7XG4gIGxldCBwcm9taXNlcyA9IFsgcHJvbWlzZTEsIHByb21pc2UyLCBwcm9taXNlMyBdO1xuXG4gIFByb21pc2UuYWxsKHByb21pc2VzKS50aGVuKGZ1bmN0aW9uKGFycmF5KXtcbiAgICAvLyBUaGUgYXJyYXkgaGVyZSB3b3VsZCBiZSBbIDEsIDIsIDMgXTtcbiAgfSk7XG4gIGBgYFxuXG4gIElmIGFueSBvZiB0aGUgYHByb21pc2VzYCBnaXZlbiB0byBgYWxsYCBhcmUgcmVqZWN0ZWQsIHRoZSBmaXJzdCBwcm9taXNlXG4gIHRoYXQgaXMgcmVqZWN0ZWQgd2lsbCBiZSBnaXZlbiBhcyBhbiBhcmd1bWVudCB0byB0aGUgcmV0dXJuZWQgcHJvbWlzZXMnc1xuICByZWplY3Rpb24gaGFuZGxlci4gRm9yIGV4YW1wbGU6XG5cbiAgRXhhbXBsZTpcblxuICBgYGBqYXZhc2NyaXB0XG4gIGxldCBwcm9taXNlMSA9IHJlc29sdmUoMSk7XG4gIGxldCBwcm9taXNlMiA9IHJlamVjdChuZXcgRXJyb3IoXCIyXCIpKTtcbiAgbGV0IHByb21pc2UzID0gcmVqZWN0KG5ldyBFcnJvcihcIjNcIikpO1xuICBsZXQgcHJvbWlzZXMgPSBbIHByb21pc2UxLCBwcm9taXNlMiwgcHJvbWlzZTMgXTtcblxuICBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbihmdW5jdGlvbihhcnJheSl7XG4gICAgLy8gQ29kZSBoZXJlIG5ldmVyIHJ1bnMgYmVjYXVzZSB0aGVyZSBhcmUgcmVqZWN0ZWQgcHJvbWlzZXMhXG4gIH0sIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgLy8gZXJyb3IubWVzc2FnZSA9PT0gXCIyXCJcbiAgfSk7XG4gIGBgYFxuXG4gIEBtZXRob2QgYWxsXG4gIEBzdGF0aWNcbiAgQHBhcmFtIHtBcnJheX0gZW50cmllcyBhcnJheSBvZiBwcm9taXNlc1xuICBAcGFyYW0ge1N0cmluZ30gbGFiZWwgb3B0aW9uYWwgc3RyaW5nIGZvciBsYWJlbGluZyB0aGUgcHJvbWlzZS5cbiAgVXNlZnVsIGZvciB0b29saW5nLlxuICBAcmV0dXJuIHtQcm9taXNlfSBwcm9taXNlIHRoYXQgaXMgZnVsZmlsbGVkIHdoZW4gYWxsIGBwcm9taXNlc2AgaGF2ZSBiZWVuXG4gIGZ1bGZpbGxlZCwgb3IgcmVqZWN0ZWQgaWYgYW55IG9mIHRoZW0gYmVjb21lIHJlamVjdGVkLlxuICBAc3RhdGljXG4qL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWxsKGVudHJpZXMpIHtcbiAgcmV0dXJuIG5ldyBFbnVtZXJhdG9yKHRoaXMsIGVudHJpZXMpLnByb21pc2U7XG59IiwiaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG4vKipcbiAgYFByb21pc2UucmFjZWAgcmV0dXJucyBhIG5ldyBwcm9taXNlIHdoaWNoIGlzIHNldHRsZWQgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZVxuICBmaXJzdCBwYXNzZWQgcHJvbWlzZSB0byBzZXR0bGUuXG5cbiAgRXhhbXBsZTpcblxuICBgYGBqYXZhc2NyaXB0XG4gIGxldCBwcm9taXNlMSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7XG4gICAgc2V0VGltZW91dChmdW5jdGlvbigpe1xuICAgICAgcmVzb2x2ZSgncHJvbWlzZSAxJyk7XG4gICAgfSwgMjAwKTtcbiAgfSk7XG5cbiAgbGV0IHByb21pc2UyID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KXtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICByZXNvbHZlKCdwcm9taXNlIDInKTtcbiAgICB9LCAxMDApO1xuICB9KTtcblxuICBQcm9taXNlLnJhY2UoW3Byb21pc2UxLCBwcm9taXNlMl0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KXtcbiAgICAvLyByZXN1bHQgPT09ICdwcm9taXNlIDInIGJlY2F1c2UgaXQgd2FzIHJlc29sdmVkIGJlZm9yZSBwcm9taXNlMVxuICAgIC8vIHdhcyByZXNvbHZlZC5cbiAgfSk7XG4gIGBgYFxuXG4gIGBQcm9taXNlLnJhY2VgIGlzIGRldGVybWluaXN0aWMgaW4gdGhhdCBvbmx5IHRoZSBzdGF0ZSBvZiB0aGUgZmlyc3RcbiAgc2V0dGxlZCBwcm9taXNlIG1hdHRlcnMuIEZvciBleGFtcGxlLCBldmVuIGlmIG90aGVyIHByb21pc2VzIGdpdmVuIHRvIHRoZVxuICBgcHJvbWlzZXNgIGFycmF5IGFyZ3VtZW50IGFyZSByZXNvbHZlZCwgYnV0IHRoZSBmaXJzdCBzZXR0bGVkIHByb21pc2UgaGFzXG4gIGJlY29tZSByZWplY3RlZCBiZWZvcmUgdGhlIG90aGVyIHByb21pc2VzIGJlY2FtZSBmdWxmaWxsZWQsIHRoZSByZXR1cm5lZFxuICBwcm9taXNlIHdpbGwgYmVjb21lIHJlamVjdGVkOlxuXG4gIGBgYGphdmFzY3JpcHRcbiAgbGV0IHByb21pc2UxID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KXtcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XG4gICAgICByZXNvbHZlKCdwcm9taXNlIDEnKTtcbiAgICB9LCAyMDApO1xuICB9KTtcblxuICBsZXQgcHJvbWlzZTIgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qpe1xuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcbiAgICAgIHJlamVjdChuZXcgRXJyb3IoJ3Byb21pc2UgMicpKTtcbiAgICB9LCAxMDApO1xuICB9KTtcblxuICBQcm9taXNlLnJhY2UoW3Byb21pc2UxLCBwcm9taXNlMl0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KXtcbiAgICAvLyBDb2RlIGhlcmUgbmV2ZXIgcnVuc1xuICB9LCBmdW5jdGlvbihyZWFzb24pe1xuICAgIC8vIHJlYXNvbi5tZXNzYWdlID09PSAncHJvbWlzZSAyJyBiZWNhdXNlIHByb21pc2UgMiBiZWNhbWUgcmVqZWN0ZWQgYmVmb3JlXG4gICAgLy8gcHJvbWlzZSAxIGJlY2FtZSBmdWxmaWxsZWRcbiAgfSk7XG4gIGBgYFxuXG4gIEFuIGV4YW1wbGUgcmVhbC13b3JsZCB1c2UgY2FzZSBpcyBpbXBsZW1lbnRpbmcgdGltZW91dHM6XG5cbiAgYGBgamF2YXNjcmlwdFxuICBQcm9taXNlLnJhY2UoW2FqYXgoJ2Zvby5qc29uJyksIHRpbWVvdXQoNTAwMCldKVxuICBgYGBcblxuICBAbWV0aG9kIHJhY2VcbiAgQHN0YXRpY1xuICBAcGFyYW0ge0FycmF5fSBwcm9taXNlcyBhcnJheSBvZiBwcm9taXNlcyB0byBvYnNlcnZlXG4gIFVzZWZ1bCBmb3IgdG9vbGluZy5cbiAgQHJldHVybiB7UHJvbWlzZX0gYSBwcm9taXNlIHdoaWNoIHNldHRsZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHRoZSBmaXJzdCBwYXNzZWRcbiAgcHJvbWlzZSB0byBzZXR0bGUuXG4qL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcmFjZShlbnRyaWVzKSB7XG4gIC8qanNoaW50IHZhbGlkdGhpczp0cnVlICovXG4gIHZhciBDb25zdHJ1Y3RvciA9IHRoaXM7XG5cbiAgaWYgKCFpc0FycmF5KGVudHJpZXMpKSB7XG4gICAgcmV0dXJuIG5ldyBDb25zdHJ1Y3RvcihmdW5jdGlvbiAoXywgcmVqZWN0KSB7XG4gICAgICByZXR1cm4gcmVqZWN0KG5ldyBUeXBlRXJyb3IoJ1lvdSBtdXN0IHBhc3MgYW4gYXJyYXkgdG8gcmFjZS4nKSk7XG4gICAgfSk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5ldyBDb25zdHJ1Y3RvcihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICB2YXIgbGVuZ3RoID0gZW50cmllcy5sZW5ndGg7XG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICAgIENvbnN0cnVjdG9yLnJlc29sdmUoZW50cmllc1tpXSkudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59IiwiaW1wb3J0IHsgbm9vcCwgcmVqZWN0IGFzIF9yZWplY3QgfSBmcm9tICcuLi8taW50ZXJuYWwnO1xuXG4vKipcbiAgYFByb21pc2UucmVqZWN0YCByZXR1cm5zIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIHRoZSBwYXNzZWQgYHJlYXNvbmAuXG4gIEl0IGlzIHNob3J0aGFuZCBmb3IgdGhlIGZvbGxvd2luZzpcblxuICBgYGBqYXZhc2NyaXB0XG4gIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KXtcbiAgICByZWplY3QobmV3IEVycm9yKCdXSE9PUFMnKSk7XG4gIH0pO1xuXG4gIHByb21pc2UudGhlbihmdW5jdGlvbih2YWx1ZSl7XG4gICAgLy8gQ29kZSBoZXJlIGRvZXNuJ3QgcnVuIGJlY2F1c2UgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQhXG4gIH0sIGZ1bmN0aW9uKHJlYXNvbil7XG4gICAgLy8gcmVhc29uLm1lc3NhZ2UgPT09ICdXSE9PUFMnXG4gIH0pO1xuICBgYGBcblxuICBJbnN0ZWFkIG9mIHdyaXRpbmcgdGhlIGFib3ZlLCB5b3VyIGNvZGUgbm93IHNpbXBseSBiZWNvbWVzIHRoZSBmb2xsb3dpbmc6XG5cbiAgYGBgamF2YXNjcmlwdFxuICBsZXQgcHJvbWlzZSA9IFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignV0hPT1BTJykpO1xuXG4gIHByb21pc2UudGhlbihmdW5jdGlvbih2YWx1ZSl7XG4gICAgLy8gQ29kZSBoZXJlIGRvZXNuJ3QgcnVuIGJlY2F1c2UgdGhlIHByb21pc2UgaXMgcmVqZWN0ZWQhXG4gIH0sIGZ1bmN0aW9uKHJlYXNvbil7XG4gICAgLy8gcmVhc29uLm1lc3NhZ2UgPT09ICdXSE9PUFMnXG4gIH0pO1xuICBgYGBcblxuICBAbWV0aG9kIHJlamVjdFxuICBAc3RhdGljXG4gIEBwYXJhbSB7QW55fSByZWFzb24gdmFsdWUgdGhhdCB0aGUgcmV0dXJuZWQgcHJvbWlzZSB3aWxsIGJlIHJlamVjdGVkIHdpdGguXG4gIFVzZWZ1bCBmb3IgdG9vbGluZy5cbiAgQHJldHVybiB7UHJvbWlzZX0gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggdGhlIGdpdmVuIGByZWFzb25gLlxuKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlamVjdChyZWFzb24pIHtcbiAgLypqc2hpbnQgdmFsaWR0aGlzOnRydWUgKi9cbiAgdmFyIENvbnN0cnVjdG9yID0gdGhpcztcbiAgdmFyIHByb21pc2UgPSBuZXcgQ29uc3RydWN0b3Iobm9vcCk7XG4gIF9yZWplY3QocHJvbWlzZSwgcmVhc29uKTtcbiAgcmV0dXJuIHByb21pc2U7XG59IiwiZnVuY3Rpb24gX2NsYXNzQ2FsbENoZWNrKGluc3RhbmNlLCBDb25zdHJ1Y3RvcikgeyBpZiAoIShpbnN0YW5jZSBpbnN0YW5jZW9mIENvbnN0cnVjdG9yKSkgeyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpOyB9IH1cblxuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgbm9vcCwgbmV4dElkLCBQUk9NSVNFX0lELCBpbml0aWFsaXplUHJvbWlzZSB9IGZyb20gJy4vLWludGVybmFsJztcbmltcG9ydCB7IGFzYXAsIHNldEFzYXAsIHNldFNjaGVkdWxlciB9IGZyb20gJy4vYXNhcCc7XG5cbmltcG9ydCBhbGwgZnJvbSAnLi9wcm9taXNlL2FsbCc7XG5pbXBvcnQgcmFjZSBmcm9tICcuL3Byb21pc2UvcmFjZSc7XG5pbXBvcnQgUmVzb2x2ZSBmcm9tICcuL3Byb21pc2UvcmVzb2x2ZSc7XG5pbXBvcnQgUmVqZWN0IGZyb20gJy4vcHJvbWlzZS9yZWplY3QnO1xuaW1wb3J0IHRoZW4gZnJvbSAnLi90aGVuJztcblxuZnVuY3Rpb24gbmVlZHNSZXNvbHZlcigpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcignWW91IG11c3QgcGFzcyBhIHJlc29sdmVyIGZ1bmN0aW9uIGFzIHRoZSBmaXJzdCBhcmd1bWVudCB0byB0aGUgcHJvbWlzZSBjb25zdHJ1Y3RvcicpO1xufVxuXG5mdW5jdGlvbiBuZWVkc05ldygpIHtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkZhaWxlZCB0byBjb25zdHJ1Y3QgJ1Byb21pc2UnOiBQbGVhc2UgdXNlIHRoZSAnbmV3JyBvcGVyYXRvciwgdGhpcyBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLlwiKTtcbn1cblxuLyoqXG4gIFByb21pc2Ugb2JqZWN0cyByZXByZXNlbnQgdGhlIGV2ZW50dWFsIHJlc3VsdCBvZiBhbiBhc3luY2hyb25vdXMgb3BlcmF0aW9uLiBUaGVcbiAgcHJpbWFyeSB3YXkgb2YgaW50ZXJhY3Rpbmcgd2l0aCBhIHByb21pc2UgaXMgdGhyb3VnaCBpdHMgYHRoZW5gIG1ldGhvZCwgd2hpY2hcbiAgcmVnaXN0ZXJzIGNhbGxiYWNrcyB0byByZWNlaXZlIGVpdGhlciBhIHByb21pc2UncyBldmVudHVhbCB2YWx1ZSBvciB0aGUgcmVhc29uXG4gIHdoeSB0aGUgcHJvbWlzZSBjYW5ub3QgYmUgZnVsZmlsbGVkLlxuXG4gIFRlcm1pbm9sb2d5XG4gIC0tLS0tLS0tLS0tXG5cbiAgLSBgcHJvbWlzZWAgaXMgYW4gb2JqZWN0IG9yIGZ1bmN0aW9uIHdpdGggYSBgdGhlbmAgbWV0aG9kIHdob3NlIGJlaGF2aW9yIGNvbmZvcm1zIHRvIHRoaXMgc3BlY2lmaWNhdGlvbi5cbiAgLSBgdGhlbmFibGVgIGlzIGFuIG9iamVjdCBvciBmdW5jdGlvbiB0aGF0IGRlZmluZXMgYSBgdGhlbmAgbWV0aG9kLlxuICAtIGB2YWx1ZWAgaXMgYW55IGxlZ2FsIEphdmFTY3JpcHQgdmFsdWUgKGluY2x1ZGluZyB1bmRlZmluZWQsIGEgdGhlbmFibGUsIG9yIGEgcHJvbWlzZSkuXG4gIC0gYGV4Y2VwdGlvbmAgaXMgYSB2YWx1ZSB0aGF0IGlzIHRocm93biB1c2luZyB0aGUgdGhyb3cgc3RhdGVtZW50LlxuICAtIGByZWFzb25gIGlzIGEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2h5IGEgcHJvbWlzZSB3YXMgcmVqZWN0ZWQuXG4gIC0gYHNldHRsZWRgIHRoZSBmaW5hbCByZXN0aW5nIHN0YXRlIG9mIGEgcHJvbWlzZSwgZnVsZmlsbGVkIG9yIHJlamVjdGVkLlxuXG4gIEEgcHJvbWlzZSBjYW4gYmUgaW4gb25lIG9mIHRocmVlIHN0YXRlczogcGVuZGluZywgZnVsZmlsbGVkLCBvciByZWplY3RlZC5cblxuICBQcm9taXNlcyB0aGF0IGFyZSBmdWxmaWxsZWQgaGF2ZSBhIGZ1bGZpbGxtZW50IHZhbHVlIGFuZCBhcmUgaW4gdGhlIGZ1bGZpbGxlZFxuICBzdGF0ZS4gIFByb21pc2VzIHRoYXQgYXJlIHJlamVjdGVkIGhhdmUgYSByZWplY3Rpb24gcmVhc29uIGFuZCBhcmUgaW4gdGhlXG4gIHJlamVjdGVkIHN0YXRlLiAgQSBmdWxmaWxsbWVudCB2YWx1ZSBpcyBuZXZlciBhIHRoZW5hYmxlLlxuXG4gIFByb21pc2VzIGNhbiBhbHNvIGJlIHNhaWQgdG8gKnJlc29sdmUqIGEgdmFsdWUuICBJZiB0aGlzIHZhbHVlIGlzIGFsc28gYVxuICBwcm9taXNlLCB0aGVuIHRoZSBvcmlnaW5hbCBwcm9taXNlJ3Mgc2V0dGxlZCBzdGF0ZSB3aWxsIG1hdGNoIHRoZSB2YWx1ZSdzXG4gIHNldHRsZWQgc3RhdGUuICBTbyBhIHByb21pc2UgdGhhdCAqcmVzb2x2ZXMqIGEgcHJvbWlzZSB0aGF0IHJlamVjdHMgd2lsbFxuICBpdHNlbGYgcmVqZWN0LCBhbmQgYSBwcm9taXNlIHRoYXQgKnJlc29sdmVzKiBhIHByb21pc2UgdGhhdCBmdWxmaWxscyB3aWxsXG4gIGl0c2VsZiBmdWxmaWxsLlxuXG5cbiAgQmFzaWMgVXNhZ2U6XG4gIC0tLS0tLS0tLS0tLVxuXG4gIGBgYGpzXG4gIGxldCBwcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgLy8gb24gc3VjY2Vzc1xuICAgIHJlc29sdmUodmFsdWUpO1xuXG4gICAgLy8gb24gZmFpbHVyZVxuICAgIHJlamVjdChyZWFzb24pO1xuICB9KTtcblxuICBwcm9taXNlLnRoZW4oZnVuY3Rpb24odmFsdWUpIHtcbiAgICAvLyBvbiBmdWxmaWxsbWVudFxuICB9LCBmdW5jdGlvbihyZWFzb24pIHtcbiAgICAvLyBvbiByZWplY3Rpb25cbiAgfSk7XG4gIGBgYFxuXG4gIEFkdmFuY2VkIFVzYWdlOlxuICAtLS0tLS0tLS0tLS0tLS1cblxuICBQcm9taXNlcyBzaGluZSB3aGVuIGFic3RyYWN0aW5nIGF3YXkgYXN5bmNocm9ub3VzIGludGVyYWN0aW9ucyBzdWNoIGFzXG4gIGBYTUxIdHRwUmVxdWVzdGBzLlxuXG4gIGBgYGpzXG4gIGZ1bmN0aW9uIGdldEpTT04odXJsKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCl7XG4gICAgICBsZXQgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG5cbiAgICAgIHhoci5vcGVuKCdHRVQnLCB1cmwpO1xuICAgICAgeGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGhhbmRsZXI7XG4gICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2pzb24nO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0FjY2VwdCcsICdhcHBsaWNhdGlvbi9qc29uJyk7XG4gICAgICB4aHIuc2VuZCgpO1xuXG4gICAgICBmdW5jdGlvbiBoYW5kbGVyKCkge1xuICAgICAgICBpZiAodGhpcy5yZWFkeVN0YXRlID09PSB0aGlzLkRPTkUpIHtcbiAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IDIwMCkge1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLnJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KG5ldyBFcnJvcignZ2V0SlNPTjogYCcgKyB1cmwgKyAnYCBmYWlsZWQgd2l0aCBzdGF0dXM6IFsnICsgdGhpcy5zdGF0dXMgKyAnXScpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICBnZXRKU09OKCcvcG9zdHMuanNvbicpLnRoZW4oZnVuY3Rpb24oanNvbikge1xuICAgIC8vIG9uIGZ1bGZpbGxtZW50XG4gIH0sIGZ1bmN0aW9uKHJlYXNvbikge1xuICAgIC8vIG9uIHJlamVjdGlvblxuICB9KTtcbiAgYGBgXG5cbiAgVW5saWtlIGNhbGxiYWNrcywgcHJvbWlzZXMgYXJlIGdyZWF0IGNvbXBvc2FibGUgcHJpbWl0aXZlcy5cblxuICBgYGBqc1xuICBQcm9taXNlLmFsbChbXG4gICAgZ2V0SlNPTignL3Bvc3RzJyksXG4gICAgZ2V0SlNPTignL2NvbW1lbnRzJylcbiAgXSkudGhlbihmdW5jdGlvbih2YWx1ZXMpe1xuICAgIHZhbHVlc1swXSAvLyA9PiBwb3N0c0pTT05cbiAgICB2YWx1ZXNbMV0gLy8gPT4gY29tbWVudHNKU09OXG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9KTtcbiAgYGBgXG5cbiAgQGNsYXNzIFByb21pc2VcbiAgQHBhcmFtIHtGdW5jdGlvbn0gcmVzb2x2ZXJcbiAgVXNlZnVsIGZvciB0b29saW5nLlxuICBAY29uc3RydWN0b3JcbiovXG5cbnZhciBQcm9taXNlID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBQcm9taXNlKHJlc29sdmVyKSB7XG4gICAgdGhpc1tQUk9NSVNFX0lEXSA9IG5leHRJZCgpO1xuICAgIHRoaXMuX3Jlc3VsdCA9IHRoaXMuX3N0YXRlID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuX3N1YnNjcmliZXJzID0gW107XG5cbiAgICBpZiAobm9vcCAhPT0gcmVzb2x2ZXIpIHtcbiAgICAgIHR5cGVvZiByZXNvbHZlciAhPT0gJ2Z1bmN0aW9uJyAmJiBuZWVkc1Jlc29sdmVyKCk7XG4gICAgICB0aGlzIGluc3RhbmNlb2YgUHJvbWlzZSA/IGluaXRpYWxpemVQcm9taXNlKHRoaXMsIHJlc29sdmVyKSA6IG5lZWRzTmV3KCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gIFRoZSBwcmltYXJ5IHdheSBvZiBpbnRlcmFjdGluZyB3aXRoIGEgcHJvbWlzZSBpcyB0aHJvdWdoIGl0cyBgdGhlbmAgbWV0aG9kLFxuICB3aGljaCByZWdpc3RlcnMgY2FsbGJhY2tzIHRvIHJlY2VpdmUgZWl0aGVyIGEgcHJvbWlzZSdzIGV2ZW50dWFsIHZhbHVlIG9yIHRoZVxuICByZWFzb24gd2h5IHRoZSBwcm9taXNlIGNhbm5vdCBiZSBmdWxmaWxsZWQuXG4gICBgYGBqc1xuICBmaW5kVXNlcigpLnRoZW4oZnVuY3Rpb24odXNlcil7XG4gICAgLy8gdXNlciBpcyBhdmFpbGFibGVcbiAgfSwgZnVuY3Rpb24ocmVhc29uKXtcbiAgICAvLyB1c2VyIGlzIHVuYXZhaWxhYmxlLCBhbmQgeW91IGFyZSBnaXZlbiB0aGUgcmVhc29uIHdoeVxuICB9KTtcbiAgYGBgXG4gICBDaGFpbmluZ1xuICAtLS0tLS0tLVxuICAgVGhlIHJldHVybiB2YWx1ZSBvZiBgdGhlbmAgaXMgaXRzZWxmIGEgcHJvbWlzZS4gIFRoaXMgc2Vjb25kLCAnZG93bnN0cmVhbSdcbiAgcHJvbWlzZSBpcyByZXNvbHZlZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGZpcnN0IHByb21pc2UncyBmdWxmaWxsbWVudFxuICBvciByZWplY3Rpb24gaGFuZGxlciwgb3IgcmVqZWN0ZWQgaWYgdGhlIGhhbmRsZXIgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiAgIGBgYGpzXG4gIGZpbmRVc2VyKCkudGhlbihmdW5jdGlvbiAodXNlcikge1xuICAgIHJldHVybiB1c2VyLm5hbWU7XG4gIH0sIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICByZXR1cm4gJ2RlZmF1bHQgbmFtZSc7XG4gIH0pLnRoZW4oZnVuY3Rpb24gKHVzZXJOYW1lKSB7XG4gICAgLy8gSWYgYGZpbmRVc2VyYCBmdWxmaWxsZWQsIGB1c2VyTmFtZWAgd2lsbCBiZSB0aGUgdXNlcidzIG5hbWUsIG90aGVyd2lzZSBpdFxuICAgIC8vIHdpbGwgYmUgYCdkZWZhdWx0IG5hbWUnYFxuICB9KTtcbiAgIGZpbmRVc2VyKCkudGhlbihmdW5jdGlvbiAodXNlcikge1xuICAgIHRocm93IG5ldyBFcnJvcignRm91bmQgdXNlciwgYnV0IHN0aWxsIHVuaGFwcHknKTtcbiAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignYGZpbmRVc2VyYCByZWplY3RlZCBhbmQgd2UncmUgdW5oYXBweScpO1xuICB9KS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIC8vIG5ldmVyIHJlYWNoZWRcbiAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgIC8vIGlmIGBmaW5kVXNlcmAgZnVsZmlsbGVkLCBgcmVhc29uYCB3aWxsIGJlICdGb3VuZCB1c2VyLCBidXQgc3RpbGwgdW5oYXBweScuXG4gICAgLy8gSWYgYGZpbmRVc2VyYCByZWplY3RlZCwgYHJlYXNvbmAgd2lsbCBiZSAnYGZpbmRVc2VyYCByZWplY3RlZCBhbmQgd2UncmUgdW5oYXBweScuXG4gIH0pO1xuICBgYGBcbiAgSWYgdGhlIGRvd25zdHJlYW0gcHJvbWlzZSBkb2VzIG5vdCBzcGVjaWZ5IGEgcmVqZWN0aW9uIGhhbmRsZXIsIHJlamVjdGlvbiByZWFzb25zIHdpbGwgYmUgcHJvcGFnYXRlZCBmdXJ0aGVyIGRvd25zdHJlYW0uXG4gICBgYGBqc1xuICBmaW5kVXNlcigpLnRoZW4oZnVuY3Rpb24gKHVzZXIpIHtcbiAgICB0aHJvdyBuZXcgUGVkYWdvZ2ljYWxFeGNlcHRpb24oJ1Vwc3RyZWFtIGVycm9yJyk7XG4gIH0pLnRoZW4oZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgLy8gbmV2ZXIgcmVhY2hlZFxuICB9KS50aGVuKGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIC8vIG5ldmVyIHJlYWNoZWRcbiAgfSwgZnVuY3Rpb24gKHJlYXNvbikge1xuICAgIC8vIFRoZSBgUGVkZ2Fnb2NpYWxFeGNlcHRpb25gIGlzIHByb3BhZ2F0ZWQgYWxsIHRoZSB3YXkgZG93biB0byBoZXJlXG4gIH0pO1xuICBgYGBcbiAgIEFzc2ltaWxhdGlvblxuICAtLS0tLS0tLS0tLS1cbiAgIFNvbWV0aW1lcyB0aGUgdmFsdWUgeW91IHdhbnQgdG8gcHJvcGFnYXRlIHRvIGEgZG93bnN0cmVhbSBwcm9taXNlIGNhbiBvbmx5IGJlXG4gIHJldHJpZXZlZCBhc3luY2hyb25vdXNseS4gVGhpcyBjYW4gYmUgYWNoaWV2ZWQgYnkgcmV0dXJuaW5nIGEgcHJvbWlzZSBpbiB0aGVcbiAgZnVsZmlsbG1lbnQgb3IgcmVqZWN0aW9uIGhhbmRsZXIuIFRoZSBkb3duc3RyZWFtIHByb21pc2Ugd2lsbCB0aGVuIGJlIHBlbmRpbmdcbiAgdW50aWwgdGhlIHJldHVybmVkIHByb21pc2UgaXMgc2V0dGxlZC4gVGhpcyBpcyBjYWxsZWQgKmFzc2ltaWxhdGlvbiouXG4gICBgYGBqc1xuICBmaW5kVXNlcigpLnRoZW4oZnVuY3Rpb24gKHVzZXIpIHtcbiAgICByZXR1cm4gZmluZENvbW1lbnRzQnlBdXRob3IodXNlcik7XG4gIH0pLnRoZW4oZnVuY3Rpb24gKGNvbW1lbnRzKSB7XG4gICAgLy8gVGhlIHVzZXIncyBjb21tZW50cyBhcmUgbm93IGF2YWlsYWJsZVxuICB9KTtcbiAgYGBgXG4gICBJZiB0aGUgYXNzaW1saWF0ZWQgcHJvbWlzZSByZWplY3RzLCB0aGVuIHRoZSBkb3duc3RyZWFtIHByb21pc2Ugd2lsbCBhbHNvIHJlamVjdC5cbiAgIGBgYGpzXG4gIGZpbmRVc2VyKCkudGhlbihmdW5jdGlvbiAodXNlcikge1xuICAgIHJldHVybiBmaW5kQ29tbWVudHNCeUF1dGhvcih1c2VyKTtcbiAgfSkudGhlbihmdW5jdGlvbiAoY29tbWVudHMpIHtcbiAgICAvLyBJZiBgZmluZENvbW1lbnRzQnlBdXRob3JgIGZ1bGZpbGxzLCB3ZSdsbCBoYXZlIHRoZSB2YWx1ZSBoZXJlXG4gIH0sIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAvLyBJZiBgZmluZENvbW1lbnRzQnlBdXRob3JgIHJlamVjdHMsIHdlJ2xsIGhhdmUgdGhlIHJlYXNvbiBoZXJlXG4gIH0pO1xuICBgYGBcbiAgIFNpbXBsZSBFeGFtcGxlXG4gIC0tLS0tLS0tLS0tLS0tXG4gICBTeW5jaHJvbm91cyBFeGFtcGxlXG4gICBgYGBqYXZhc2NyaXB0XG4gIGxldCByZXN1bHQ7XG4gICB0cnkge1xuICAgIHJlc3VsdCA9IGZpbmRSZXN1bHQoKTtcbiAgICAvLyBzdWNjZXNzXG4gIH0gY2F0Y2gocmVhc29uKSB7XG4gICAgLy8gZmFpbHVyZVxuICB9XG4gIGBgYFxuICAgRXJyYmFjayBFeGFtcGxlXG4gICBgYGBqc1xuICBmaW5kUmVzdWx0KGZ1bmN0aW9uKHJlc3VsdCwgZXJyKXtcbiAgICBpZiAoZXJyKSB7XG4gICAgICAvLyBmYWlsdXJlXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHN1Y2Nlc3NcbiAgICB9XG4gIH0pO1xuICBgYGBcbiAgIFByb21pc2UgRXhhbXBsZTtcbiAgIGBgYGphdmFzY3JpcHRcbiAgZmluZFJlc3VsdCgpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KXtcbiAgICAvLyBzdWNjZXNzXG4gIH0sIGZ1bmN0aW9uKHJlYXNvbil7XG4gICAgLy8gZmFpbHVyZVxuICB9KTtcbiAgYGBgXG4gICBBZHZhbmNlZCBFeGFtcGxlXG4gIC0tLS0tLS0tLS0tLS0tXG4gICBTeW5jaHJvbm91cyBFeGFtcGxlXG4gICBgYGBqYXZhc2NyaXB0XG4gIGxldCBhdXRob3IsIGJvb2tzO1xuICAgdHJ5IHtcbiAgICBhdXRob3IgPSBmaW5kQXV0aG9yKCk7XG4gICAgYm9va3MgID0gZmluZEJvb2tzQnlBdXRob3IoYXV0aG9yKTtcbiAgICAvLyBzdWNjZXNzXG4gIH0gY2F0Y2gocmVhc29uKSB7XG4gICAgLy8gZmFpbHVyZVxuICB9XG4gIGBgYFxuICAgRXJyYmFjayBFeGFtcGxlXG4gICBgYGBqc1xuICAgZnVuY3Rpb24gZm91bmRCb29rcyhib29rcykge1xuICAgfVxuICAgZnVuY3Rpb24gZmFpbHVyZShyZWFzb24pIHtcbiAgIH1cbiAgIGZpbmRBdXRob3IoZnVuY3Rpb24oYXV0aG9yLCBlcnIpe1xuICAgIGlmIChlcnIpIHtcbiAgICAgIGZhaWx1cmUoZXJyKTtcbiAgICAgIC8vIGZhaWx1cmVcbiAgICB9IGVsc2Uge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZmluZEJvb29rc0J5QXV0aG9yKGF1dGhvciwgZnVuY3Rpb24oYm9va3MsIGVycikge1xuICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIGZhaWx1cmUoZXJyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgZm91bmRCb29rcyhib29rcyk7XG4gICAgICAgICAgICB9IGNhdGNoKHJlYXNvbikge1xuICAgICAgICAgICAgICBmYWlsdXJlKHJlYXNvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgZmFpbHVyZShlcnIpO1xuICAgICAgfVxuICAgICAgLy8gc3VjY2Vzc1xuICAgIH1cbiAgfSk7XG4gIGBgYFxuICAgUHJvbWlzZSBFeGFtcGxlO1xuICAgYGBgamF2YXNjcmlwdFxuICBmaW5kQXV0aG9yKCkuXG4gICAgdGhlbihmaW5kQm9va3NCeUF1dGhvcikuXG4gICAgdGhlbihmdW5jdGlvbihib29rcyl7XG4gICAgICAvLyBmb3VuZCBib29rc1xuICB9KS5jYXRjaChmdW5jdGlvbihyZWFzb24pe1xuICAgIC8vIHNvbWV0aGluZyB3ZW50IHdyb25nXG4gIH0pO1xuICBgYGBcbiAgIEBtZXRob2QgdGhlblxuICBAcGFyYW0ge0Z1bmN0aW9ufSBvbkZ1bGZpbGxlZFxuICBAcGFyYW0ge0Z1bmN0aW9ufSBvblJlamVjdGVkXG4gIFVzZWZ1bCBmb3IgdG9vbGluZy5cbiAgQHJldHVybiB7UHJvbWlzZX1cbiAgKi9cblxuICAvKipcbiAgYGNhdGNoYCBpcyBzaW1wbHkgc3VnYXIgZm9yIGB0aGVuKHVuZGVmaW5lZCwgb25SZWplY3Rpb24pYCB3aGljaCBtYWtlcyBpdCB0aGUgc2FtZVxuICBhcyB0aGUgY2F0Y2ggYmxvY2sgb2YgYSB0cnkvY2F0Y2ggc3RhdGVtZW50LlxuICBgYGBqc1xuICBmdW5jdGlvbiBmaW5kQXV0aG9yKCl7XG4gIHRocm93IG5ldyBFcnJvcignY291bGRuJ3QgZmluZCB0aGF0IGF1dGhvcicpO1xuICB9XG4gIC8vIHN5bmNocm9ub3VzXG4gIHRyeSB7XG4gIGZpbmRBdXRob3IoKTtcbiAgfSBjYXRjaChyZWFzb24pIHtcbiAgLy8gc29tZXRoaW5nIHdlbnQgd3JvbmdcbiAgfVxuICAvLyBhc3luYyB3aXRoIHByb21pc2VzXG4gIGZpbmRBdXRob3IoKS5jYXRjaChmdW5jdGlvbihyZWFzb24pe1xuICAvLyBzb21ldGhpbmcgd2VudCB3cm9uZ1xuICB9KTtcbiAgYGBgXG4gIEBtZXRob2QgY2F0Y2hcbiAgQHBhcmFtIHtGdW5jdGlvbn0gb25SZWplY3Rpb25cbiAgVXNlZnVsIGZvciB0b29saW5nLlxuICBAcmV0dXJuIHtQcm9taXNlfVxuICAqL1xuXG5cbiAgUHJvbWlzZS5wcm90b3R5cGUuY2F0Y2ggPSBmdW5jdGlvbiBfY2F0Y2gob25SZWplY3Rpb24pIHtcbiAgICByZXR1cm4gdGhpcy50aGVuKG51bGwsIG9uUmVqZWN0aW9uKTtcbiAgfTtcblxuICAvKipcbiAgICBgZmluYWxseWAgd2lsbCBiZSBpbnZva2VkIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb21pc2UncyBmYXRlIGp1c3QgYXMgbmF0aXZlXG4gICAgdHJ5L2NhdGNoL2ZpbmFsbHkgYmVoYXZlc1xuICBcbiAgICBTeW5jaHJvbm91cyBleGFtcGxlOlxuICBcbiAgICBgYGBqc1xuICAgIGZpbmRBdXRob3IoKSB7XG4gICAgICBpZiAoTWF0aC5yYW5kb20oKSA+IDAuNSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBuZXcgQXV0aG9yKCk7XG4gICAgfVxuICBcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGZpbmRBdXRob3IoKTsgLy8gc3VjY2VlZCBvciBmYWlsXG4gICAgfSBjYXRjaChlcnJvcikge1xuICAgICAgcmV0dXJuIGZpbmRPdGhlckF1dGhlcigpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICAvLyBhbHdheXMgcnVuc1xuICAgICAgLy8gZG9lc24ndCBhZmZlY3QgdGhlIHJldHVybiB2YWx1ZVxuICAgIH1cbiAgICBgYGBcbiAgXG4gICAgQXN5bmNocm9ub3VzIGV4YW1wbGU6XG4gIFxuICAgIGBgYGpzXG4gICAgZmluZEF1dGhvcigpLmNhdGNoKGZ1bmN0aW9uKHJlYXNvbil7XG4gICAgICByZXR1cm4gZmluZE90aGVyQXV0aGVyKCk7XG4gICAgfSkuZmluYWxseShmdW5jdGlvbigpe1xuICAgICAgLy8gYXV0aG9yIHdhcyBlaXRoZXIgZm91bmQsIG9yIG5vdFxuICAgIH0pO1xuICAgIGBgYFxuICBcbiAgICBAbWV0aG9kIGZpbmFsbHlcbiAgICBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFja1xuICAgIEByZXR1cm4ge1Byb21pc2V9XG4gICovXG5cblxuICBQcm9taXNlLnByb3RvdHlwZS5maW5hbGx5ID0gZnVuY3Rpb24gX2ZpbmFsbHkoY2FsbGJhY2spIHtcbiAgICB2YXIgcHJvbWlzZSA9IHRoaXM7XG4gICAgdmFyIGNvbnN0cnVjdG9yID0gcHJvbWlzZS5jb25zdHJ1Y3RvcjtcblxuICAgIGlmIChpc0Z1bmN0aW9uKGNhbGxiYWNrKSkge1xuICAgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbiAodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yLnJlc29sdmUoY2FsbGJhY2soKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9KTtcbiAgICAgIH0sIGZ1bmN0aW9uIChyZWFzb24pIHtcbiAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yLnJlc29sdmUoY2FsbGJhY2soKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgdGhyb3cgcmVhc29uO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9taXNlLnRoZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTtcbiAgfTtcblxuICByZXR1cm4gUHJvbWlzZTtcbn0oKTtcblxuUHJvbWlzZS5wcm90b3R5cGUudGhlbiA9IHRoZW47XG5leHBvcnQgZGVmYXVsdCBQcm9taXNlO1xuUHJvbWlzZS5hbGwgPSBhbGw7XG5Qcm9taXNlLnJhY2UgPSByYWNlO1xuUHJvbWlzZS5yZXNvbHZlID0gUmVzb2x2ZTtcblByb21pc2UucmVqZWN0ID0gUmVqZWN0O1xuUHJvbWlzZS5fc2V0U2NoZWR1bGVyID0gc2V0U2NoZWR1bGVyO1xuUHJvbWlzZS5fc2V0QXNhcCA9IHNldEFzYXA7XG5Qcm9taXNlLl9hc2FwID0gYXNhcDsiLCIvKmdsb2JhbCBzZWxmKi9cbmltcG9ydCBQcm9taXNlIGZyb20gJy4vcHJvbWlzZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBvbHlmaWxsKCkge1xuICB2YXIgbG9jYWwgPSB2b2lkIDA7XG5cbiAgaWYgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgbG9jYWwgPSBnbG9iYWw7XG4gIH0gZWxzZSBpZiAodHlwZW9mIHNlbGYgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgbG9jYWwgPSBzZWxmO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBsb2NhbCA9IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwb2x5ZmlsbCBmYWlsZWQgYmVjYXVzZSBnbG9iYWwgb2JqZWN0IGlzIHVuYXZhaWxhYmxlIGluIHRoaXMgZW52aXJvbm1lbnQnKTtcbiAgICB9XG4gIH1cblxuICB2YXIgUCA9IGxvY2FsLlByb21pc2U7XG5cbiAgaWYgKFApIHtcbiAgICB2YXIgcHJvbWlzZVRvU3RyaW5nID0gbnVsbDtcbiAgICB0cnkge1xuICAgICAgcHJvbWlzZVRvU3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFAucmVzb2x2ZSgpKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBzaWxlbnRseSBpZ25vcmVkXG4gICAgfVxuXG4gICAgaWYgKHByb21pc2VUb1N0cmluZyA9PT0gJ1tvYmplY3QgUHJvbWlzZV0nICYmICFQLmNhc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBsb2NhbC5Qcm9taXNlID0gUHJvbWlzZTtcbn0iLCJpbXBvcnQgUHJvbWlzZSBmcm9tICcuL2VzNi1wcm9taXNlL3Byb21pc2UnO1xuaW1wb3J0IHBvbHlmaWxsIGZyb20gJy4vZXM2LXByb21pc2UvcG9seWZpbGwnO1xuXG4vLyBTdHJhbmdlIGNvbXBhdC4uXG5Qcm9taXNlLnBvbHlmaWxsID0gcG9seWZpbGw7XG5Qcm9taXNlLlByb21pc2UgPSBQcm9taXNlO1xuZXhwb3J0IGRlZmF1bHQgUHJvbWlzZTsiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./node_modules/es6-promise/dist/es6-promise.js\n"); /***/ }), /***/ "./node_modules/feedback-html2canvas/src/index.js": /*!********************************************************!*\ !*** ./node_modules/feedback-html2canvas/src/index.js ***! \********************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("/* eslint-disable */\r\n/*!\r\n * html2canvas 1.4.1 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n *\r\n * THIS VERSION IS FROM THE FOLLOWING FORK: https://github.com/shhnjk/html2canvas\r\n *\r\n */\r\n(function (global, factory) {\r\n true\r\n ? (module.exports = factory())\r\n : undefined;\r\n })(this, function () {\r\n \"use strict\";\r\n \r\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation.\r\n \r\n Permission to use, copy, modify, and/or distribute this software for any\r\n purpose with or without fee is hereby granted.\r\n \r\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\n AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\n LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\n OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\n PERFORMANCE OF THIS SOFTWARE.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n \r\n var extendStatics = function (d, b) {\r\n extendStatics =\r\n Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array &&\r\n function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n function (d, b) {\r\n for (var p in b)\r\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\r\n };\r\n return extendStatics(d, b);\r\n };\r\n \r\n function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\r\n \"Class extends value \" + String(b) + \" is not a constructor or null\"\r\n );\r\n extendStatics(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n d.prototype =\r\n b === null ? Object.create(b) : ((__.prototype = b.prototype), new __());\r\n }\r\n \r\n var __assign = function () {\r\n __assign =\r\n Object.assign ||\r\n function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s)\r\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n \r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) {\r\n return value instanceof P\r\n ? value\r\n : new P(function (resolve) {\r\n resolve(value);\r\n });\r\n }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) {\r\n try {\r\n step(generator.next(value));\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }\r\n function rejected(value) {\r\n try {\r\n step(generator[\"throw\"](value));\r\n } catch (e) {\r\n reject(e);\r\n }\r\n }\r\n function step(result) {\r\n result.done\r\n ? resolve(result.value)\r\n : adopt(result.value).then(fulfilled, rejected);\r\n }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n \r\n function __generator(thisArg, body) {\r\n var _ = {\r\n label: 0,\r\n sent: function () {\r\n if (t[0] & 1) throw t[1];\r\n return t[1];\r\n },\r\n trys: [],\r\n ops: [],\r\n },\r\n f,\r\n y,\r\n t,\r\n g;\r\n return (\r\n (g = { next: verb(0), throw: verb(1), return: verb(2) }),\r\n typeof Symbol === \"function\" &&\r\n (g[Symbol.iterator] = function () {\r\n return this;\r\n }),\r\n g\r\n );\r\n function verb(n) {\r\n return function (v) {\r\n return step([n, v]);\r\n };\r\n }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_)\r\n try {\r\n if (\r\n ((f = 1),\r\n y &&\r\n (t =\r\n op[0] & 2\r\n ? y[\"return\"]\r\n : op[0]\r\n ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0)\r\n : y.next) &&\r\n !(t = t.call(y, op[1])).done)\r\n )\r\n return t;\r\n if (((y = 0), t)) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0:\r\n case 1:\r\n t = op;\r\n break;\r\n case 4:\r\n _.label++;\r\n return { value: op[1], done: false };\r\n case 5:\r\n _.label++;\r\n y = op[1];\r\n op = [0];\r\n continue;\r\n case 7:\r\n op = _.ops.pop();\r\n _.trys.pop();\r\n continue;\r\n default:\r\n if (\r\n !((t = _.trys), (t = t.length > 0 && t[t.length - 1])) &&\r\n (op[0] === 6 || op[0] === 2)\r\n ) {\r\n _ = 0;\r\n continue;\r\n }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {\r\n _.label = op[1];\r\n break;\r\n }\r\n if (op[0] === 6 && _.label < t[1]) {\r\n _.label = t[1];\r\n t = op;\r\n break;\r\n }\r\n if (t && _.label < t[2]) {\r\n _.label = t[2];\r\n _.ops.push(op);\r\n break;\r\n }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop();\r\n continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) {\r\n op = [6, e];\r\n y = 0;\r\n } finally {\r\n f = t = 0;\r\n }\r\n if (op[0] & 5) throw op[1];\r\n return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\r\n \r\n function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2)\r\n for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n }\r\n \r\n var Bounds = /** @class */ (function () {\r\n function Bounds(left, top, width, height) {\r\n this.left = left;\r\n this.top = top;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n Bounds.prototype.add = function (x, y, w, h) {\r\n return new Bounds(\r\n this.left + x,\r\n this.top + y,\r\n this.width + w,\r\n this.height + h\r\n );\r\n };\r\n Bounds.fromClientRect = function (context, clientRect) {\r\n return new Bounds(\r\n clientRect.left + context.windowBounds.left,\r\n clientRect.top + context.windowBounds.top,\r\n clientRect.width,\r\n clientRect.height\r\n );\r\n };\r\n Bounds.fromDOMRectList = function (context, domRectList) {\r\n var domRect = Array.from(domRectList).find(function (rect) {\r\n return rect.width !== 0;\r\n });\r\n return domRect\r\n ? new Bounds(\r\n domRect.left + context.windowBounds.left,\r\n domRect.top + context.windowBounds.top,\r\n domRect.width,\r\n domRect.height\r\n )\r\n : Bounds.EMPTY;\r\n };\r\n Bounds.EMPTY = new Bounds(0, 0, 0, 0);\r\n return Bounds;\r\n })();\r\n var parseBounds = function (context, node) {\r\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\r\n };\r\n var parseDocumentSize = function (document) {\r\n var body = document.body;\r\n var documentElement = document.documentElement;\r\n if (!body || !documentElement) {\r\n throw new Error(\"Unable to get document size\");\r\n }\r\n var width = Math.max(\r\n Math.max(body.scrollWidth, documentElement.scrollWidth),\r\n Math.max(body.offsetWidth, documentElement.offsetWidth),\r\n Math.max(body.clientWidth, documentElement.clientWidth)\r\n );\r\n var height = Math.max(\r\n Math.max(body.scrollHeight, documentElement.scrollHeight),\r\n Math.max(body.offsetHeight, documentElement.offsetHeight),\r\n Math.max(body.clientHeight, documentElement.clientHeight)\r\n );\r\n return new Bounds(0, 0, width, height);\r\n };\r\n \r\n /*\r\n * css-line-break 2.1.0 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var toCodePoints$1 = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n } else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n } else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint$1 = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return \"\";\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = \"\";\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n } else {\r\n codePoint -= 0x10000;\r\n codeUnits.push(\r\n (codePoint >> 10) + 0xd800,\r\n (codePoint % 0x400) + 0xdc00\r\n );\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var chars$2 =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Use a lookup table to find the index.\r\n var lookup$2 = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\r\n for (var i$2 = 0; i$2 < chars$2.length; i$2++) {\r\n lookup$2[chars$2.charCodeAt(i$2)] = i$2;\r\n }\r\n \r\n /*\r\n * utrie 1.0.2 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var chars$1$1 =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Use a lookup table to find the index.\r\n var lookup$1$1 = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\r\n for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {\r\n lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1;\r\n }\r\n var decode$1 = function (base64) {\r\n var bufferLength = base64.length * 0.75,\r\n len = base64.length,\r\n i,\r\n p = 0,\r\n encoded1,\r\n encoded2,\r\n encoded3,\r\n encoded4;\r\n if (base64[base64.length - 1] === \"=\") {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === \"=\") {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer =\r\n typeof ArrayBuffer !== \"undefined\" &&\r\n typeof Uint8Array !== \"undefined\" &&\r\n typeof Uint8Array.prototype.slice !== \"undefined\"\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup$1$1[base64.charCodeAt(i)];\r\n encoded2 = lookup$1$1[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup$1$1[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup$1$1[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array$1 = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array$1 = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push(\r\n (buffer[i + 3] << 24) |\r\n (buffer[i + 2] << 16) |\r\n (buffer[i + 1] << 8) |\r\n buffer[i]\r\n );\r\n }\r\n return bytes;\r\n };\r\n \r\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2$1 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1$1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT$1 = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 0x10000 >> UTRIE2_SHIFT_2$1;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 0x400 >> UTRIE2_SHIFT_2$1;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH$1 =\r\n UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 =\r\n 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET$1 =\r\n UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 0x10000 >> UTRIE2_SHIFT_1$1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1;\r\n var slice16$1 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32$1 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64$1 = function (base64, _byteLength) {\r\n var buffer = decode$1(base64);\r\n var view32 = Array.isArray(buffer)\r\n ? polyUint32Array$1(buffer)\r\n : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer)\r\n ? polyUint16Array$1(buffer)\r\n : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16$1(view16, headerLength / 2, view32[4] / 2);\r\n var data =\r\n view32[5] === 2\r\n ? slice16$1(view16, (headerLength + view32[4]) / 2)\r\n : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie$1 = /** @class */ (function () {\r\n function Trie(\r\n initialValue,\r\n errorValue,\r\n highStart,\r\n highValueIndex,\r\n index,\r\n data\r\n ) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (\r\n codePoint < 0x0d800 ||\r\n (codePoint > 0x0dbff && codePoint <= 0x0ffff)\r\n ) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2$1];\r\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix =\r\n this.index[\r\n UTRIE2_LSCP_INDEX_2_OFFSET$1 +\r\n ((codePoint - 0xd800) >> UTRIE2_SHIFT_2$1)\r\n ];\r\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix =\r\n UTRIE2_INDEX_1_OFFSET$1 -\r\n UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 +\r\n (codePoint >> UTRIE2_SHIFT_1$1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2$1) & UTRIE2_INDEX_2_MASK$1;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n })();\r\n \r\n /*\r\n * base64-arraybuffer 1.0.2 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var chars$3 =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Use a lookup table to find the index.\r\n var lookup$3 = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\r\n for (var i$3 = 0; i$3 < chars$3.length; i$3++) {\r\n lookup$3[chars$3.charCodeAt(i$3)] = i$3;\r\n }\r\n \r\n var base64$1 =\r\n \"KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==\";\r\n \r\n var LETTER_NUMBER_MODIFIER = 50;\r\n // Non-tailorable Line Breaking Classes\r\n var BK = 1; // Cause a line break (after)\r\n var CR$1 = 2; // Cause a line break (after), except between CR and LF\r\n var LF$1 = 3; // Cause a line break (after)\r\n var CM = 4; // Prohibit a line break between the character and the preceding character\r\n var NL = 5; // Cause a line break (after)\r\n var WJ = 7; // Prohibit line breaks before and after\r\n var ZW = 8; // Provide a break opportunity\r\n var GL = 9; // Prohibit line breaks before and after\r\n var SP = 10; // Enable indirect line breaks\r\n var ZWJ$1 = 11; // Prohibit line breaks within joiner sequences\r\n // Break Opportunities\r\n var B2 = 12; // Provide a line break opportunity before and after the character\r\n var BA = 13; // Generally provide a line break opportunity after the character\r\n var BB = 14; // Generally provide a line break opportunity before the character\r\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\r\n var CB = 16; // Provide a line break opportunity contingent on additional information\r\n // Characters Prohibiting Certain Breaks\r\n var CL = 17; // Prohibit line breaks before\r\n var CP = 18; // Prohibit line breaks before\r\n var EX = 19; // Prohibit line breaks before\r\n var IN = 20; // Allow only indirect line breaks between pairs\r\n var NS = 21; // Allow only indirect line breaks before\r\n var OP = 22; // Prohibit line breaks after\r\n var QU = 23; // Act like they are both opening and closing\r\n // Numeric Context\r\n var IS = 24; // Prevent breaks after any and before numeric\r\n var NU = 25; // Form numeric expressions for line breaking purposes\r\n var PO = 26; // Do not break following a numeric expression\r\n var PR = 27; // Do not break in front of a numeric expression\r\n var SY = 28; // Prevent a break before; and allow a break after\r\n // Other Characters\r\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\r\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\r\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\r\n var EB = 32; // Do not break from following Emoji Modifier\r\n var EM = 33; // Do not break from preceding Emoji Base\r\n var H2 = 34; // Form Korean syllable blocks\r\n var H3 = 35; // Form Korean syllable blocks\r\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\r\n var ID = 37; // Break before or after; except in some numeric context\r\n var JL = 38; // Form Korean syllable blocks\r\n var JV = 39; // Form Korean syllable blocks\r\n var JT = 40; // Form Korean syllable blocks\r\n var RI$1 = 41; // Keep pairs together. For pairs; break before and after other classes\r\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\r\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\r\n var ea_OP = [0x2329, 0xff08];\r\n var BREAK_MANDATORY = \"!\";\r\n var BREAK_NOT_ALLOWED$1 = \"×\";\r\n var BREAK_ALLOWED$1 = \"÷\";\r\n var UnicodeTrie$1 = createTrieFromBase64$1(base64$1);\r\n var ALPHABETICS = [AL, HL];\r\n var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL];\r\n var SPACE$1 = [SP, ZW];\r\n var PREFIX_POSTFIX = [PR, PO];\r\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1);\r\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\r\n var HYPHEN = [HY, BA];\r\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\r\n if (lineBreak === void 0) {\r\n lineBreak = \"strict\";\r\n }\r\n var types = [];\r\n var indices = [];\r\n var categories = [];\r\n codePoints.forEach(function (codePoint, index) {\r\n var classType = UnicodeTrie$1.get(codePoint);\r\n if (classType > LETTER_NUMBER_MODIFIER) {\r\n categories.push(true);\r\n classType -= LETTER_NUMBER_MODIFIER;\r\n } else {\r\n categories.push(false);\r\n }\r\n if ([\"normal\", \"auto\", \"loose\"].indexOf(lineBreak) !== -1) {\r\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\r\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\r\n indices.push(index);\r\n return types.push(CB);\r\n }\r\n }\r\n if (classType === CM || classType === ZWJ$1) {\r\n // LB10 Treat any remaining combining mark or ZWJ as AL.\r\n if (index === 0) {\r\n indices.push(index);\r\n return types.push(AL);\r\n }\r\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\r\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\r\n var prev = types[index - 1];\r\n if (LINE_BREAKS.indexOf(prev) === -1) {\r\n indices.push(indices[index - 1]);\r\n return types.push(prev);\r\n }\r\n indices.push(index);\r\n return types.push(AL);\r\n }\r\n indices.push(index);\r\n if (classType === CJ) {\r\n return types.push(lineBreak === \"strict\" ? NS : ID);\r\n }\r\n if (classType === SA) {\r\n return types.push(AL);\r\n }\r\n if (classType === AI) {\r\n return types.push(AL);\r\n }\r\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\r\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\r\n // to take into account the actual line breaking properties for these characters.\r\n if (classType === XX) {\r\n if (\r\n (codePoint >= 0x20000 && codePoint <= 0x2fffd) ||\r\n (codePoint >= 0x30000 && codePoint <= 0x3fffd)\r\n ) {\r\n return types.push(ID);\r\n } else {\r\n return types.push(AL);\r\n }\r\n }\r\n types.push(classType);\r\n });\r\n return [indices, types, categories];\r\n };\r\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\r\n var current = classTypes[currentIndex];\r\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\r\n var i = currentIndex;\r\n while (i <= classTypes.length) {\r\n i++;\r\n var next = classTypes[i];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (current === SP) {\r\n var i = currentIndex;\r\n while (i > 0) {\r\n i--;\r\n var prev = classTypes[i];\r\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\r\n var n = currentIndex;\r\n while (n <= classTypes.length) {\r\n n++;\r\n var next = classTypes[n];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (prev !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\r\n var i = currentIndex;\r\n while (i >= 0) {\r\n var type = classTypes[i];\r\n if (type === SP) {\r\n i--;\r\n } else {\r\n return type;\r\n }\r\n }\r\n return 0;\r\n };\r\n var _lineBreakAtIndex = function (\r\n codePoints,\r\n classTypes,\r\n indicies,\r\n index,\r\n forbiddenBreaks\r\n ) {\r\n if (indicies[index] === 0) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n var currentIndex = index - 1;\r\n if (\r\n Array.isArray(forbiddenBreaks) &&\r\n forbiddenBreaks[currentIndex] === true\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n var beforeIndex = currentIndex - 1;\r\n var afterIndex = currentIndex + 1;\r\n var current = classTypes[currentIndex];\r\n // LB4 Always break after hard line breaks.\r\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\r\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\r\n var next = classTypes[afterIndex];\r\n if (current === CR$1 && next === LF$1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\r\n return BREAK_MANDATORY;\r\n }\r\n // LB6 Do not break before hard line breaks.\r\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB7 Do not break before spaces or zero width space.\r\n if (SPACE$1.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\r\n return BREAK_ALLOWED$1;\r\n }\r\n // LB8a Do not break after a zero width joiner.\r\n if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // zwj emojis\r\n if (\r\n (current === EB || current === EM) &&\r\n UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB11 Do not break before or after Word joiner and related characters.\r\n if (current === WJ || next === WJ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB12 Do not break after NBSP and related characters.\r\n if (current === GL) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\r\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\r\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB14 Do not break after ‘[’, even after spaces.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB15 Do not break within ‘”[’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB17 Do not break within ‘——’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB18 Break after spaces.\r\n if (current === SP) {\r\n return BREAK_ALLOWED$1;\r\n }\r\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\r\n if (current === QU || next === QU) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB20 Break before and after unresolved CB.\r\n if (next === CB || current === CB) {\r\n return BREAK_ALLOWED$1;\r\n }\r\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\r\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB21a Don't break after Hebrew + Hyphen.\r\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB21b Don’t break between Solidus and Hebrew letters.\r\n if (current === SY && next === HL) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB22 Do not break before ellipsis.\r\n if (next === IN) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB23 Do not break between digits and letters.\r\n if (\r\n (ALPHABETICS.indexOf(next) !== -1 && current === NU) ||\r\n (ALPHABETICS.indexOf(current) !== -1 && next === NU)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\r\n if (\r\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\r\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\r\n if (\r\n (ALPHABETICS.indexOf(current) !== -1 &&\r\n PREFIX_POSTFIX.indexOf(next) !== -1) ||\r\n (PREFIX_POSTFIX.indexOf(current) !== -1 &&\r\n ALPHABETICS.indexOf(next) !== -1)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB25 Do not break between the following pairs of classes relevant to numbers:\r\n if (\r\n // (PR | PO) × ( OP | HY )? NU\r\n ([PR, PO].indexOf(current) !== -1 &&\r\n (next === NU ||\r\n ([OP, HY].indexOf(next) !== -1 &&\r\n classTypes[afterIndex + 1] === NU))) ||\r\n // ( OP | HY ) × NU\r\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\r\n // NU ×\t(NU | SY | IS)\r\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\r\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\r\n var prevIndex = currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED$1;\r\n } else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\r\n if ([PR, PO].indexOf(next) !== -1) {\r\n var prevIndex =\r\n [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED$1;\r\n } else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n // LB26 Do not break a Korean syllable.\r\n if (\r\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\r\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\r\n ([JT, H3].indexOf(current) !== -1 && next === JT)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB27 Treat a Korean Syllable Block the same as ID.\r\n if (\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 &&\r\n [IN, PO].indexOf(next) !== -1) ||\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB28 Do not break between alphabetics (“at”).\r\n if (\r\n ALPHABETICS.indexOf(current) !== -1 &&\r\n ALPHABETICS.indexOf(next) !== -1\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\r\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\r\n if (\r\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\r\n next === OP &&\r\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\r\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\r\n ) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\r\n // indicators preceding the position of the break.\r\n if (current === RI$1 && next === RI$1) {\r\n var i = indicies[currentIndex];\r\n var count = 1;\r\n while (i > 0) {\r\n i--;\r\n if (classTypes[i] === RI$1) {\r\n count++;\r\n } else {\r\n break;\r\n }\r\n }\r\n if (count % 2 !== 0) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n }\r\n // LB30b Do not break between an emoji base and an emoji modifier.\r\n if (current === EB && next === EM) {\r\n return BREAK_NOT_ALLOWED$1;\r\n }\r\n return BREAK_ALLOWED$1;\r\n };\r\n var cssFormattedClasses = function (codePoints, options) {\r\n if (!options) {\r\n options = { lineBreak: \"normal\", wordBreak: \"normal\" };\r\n }\r\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak),\r\n indicies = _a[0],\r\n classTypes = _a[1],\r\n isLetterNumber = _a[2];\r\n if (\r\n options.wordBreak === \"break-all\" ||\r\n options.wordBreak === \"break-word\"\r\n ) {\r\n classTypes = classTypes.map(function (type) {\r\n return [NU, AL, SA].indexOf(type) !== -1 ? ID : type;\r\n });\r\n }\r\n var forbiddenBreakpoints =\r\n options.wordBreak === \"keep-all\"\r\n ? isLetterNumber.map(function (letterNumber, i) {\r\n return (\r\n letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff\r\n );\r\n })\r\n : undefined;\r\n return [indicies, classTypes, forbiddenBreakpoints];\r\n };\r\n var Break = /** @class */ (function () {\r\n function Break(codePoints, lineBreak, start, end) {\r\n this.codePoints = codePoints;\r\n this.required = lineBreak === BREAK_MANDATORY;\r\n this.start = start;\r\n this.end = end;\r\n }\r\n Break.prototype.slice = function () {\r\n return fromCodePoint$1.apply(\r\n void 0,\r\n this.codePoints.slice(this.start, this.end)\r\n );\r\n };\r\n return Break;\r\n })();\r\n var LineBreaker = function (str, options) {\r\n var codePoints = toCodePoints$1(str);\r\n var _a = cssFormattedClasses(codePoints, options),\r\n indicies = _a[0],\r\n classTypes = _a[1],\r\n forbiddenBreakpoints = _a[2];\r\n var length = codePoints.length;\r\n var lastEnd = 0;\r\n var nextIndex = 0;\r\n return {\r\n next: function () {\r\n if (nextIndex >= length) {\r\n return { done: true, value: null };\r\n }\r\n var lineBreak = BREAK_NOT_ALLOWED$1;\r\n while (\r\n nextIndex < length &&\r\n (lineBreak = _lineBreakAtIndex(\r\n codePoints,\r\n classTypes,\r\n indicies,\r\n ++nextIndex,\r\n forbiddenBreakpoints\r\n )) === BREAK_NOT_ALLOWED$1\r\n ) {}\r\n if (lineBreak !== BREAK_NOT_ALLOWED$1 || nextIndex === length) {\r\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\r\n lastEnd = nextIndex;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\r\n \r\n // https://www.w3.org/TR/css-syntax-3\r\n var FLAG_UNRESTRICTED = 1 << 0;\r\n var FLAG_ID = 1 << 1;\r\n var FLAG_INTEGER = 1 << 2;\r\n var FLAG_NUMBER = 1 << 3;\r\n var LINE_FEED = 0x000a;\r\n var SOLIDUS = 0x002f;\r\n var REVERSE_SOLIDUS = 0x005c;\r\n var CHARACTER_TABULATION = 0x0009;\r\n var SPACE = 0x0020;\r\n var QUOTATION_MARK = 0x0022;\r\n var EQUALS_SIGN = 0x003d;\r\n var NUMBER_SIGN = 0x0023;\r\n var DOLLAR_SIGN = 0x0024;\r\n var PERCENTAGE_SIGN = 0x0025;\r\n var APOSTROPHE = 0x0027;\r\n var LEFT_PARENTHESIS = 0x0028;\r\n var RIGHT_PARENTHESIS = 0x0029;\r\n var LOW_LINE = 0x005f;\r\n var HYPHEN_MINUS = 0x002d;\r\n var EXCLAMATION_MARK = 0x0021;\r\n var LESS_THAN_SIGN = 0x003c;\r\n var GREATER_THAN_SIGN = 0x003e;\r\n var COMMERCIAL_AT = 0x0040;\r\n var LEFT_SQUARE_BRACKET = 0x005b;\r\n var RIGHT_SQUARE_BRACKET = 0x005d;\r\n var CIRCUMFLEX_ACCENT = 0x003d;\r\n var LEFT_CURLY_BRACKET = 0x007b;\r\n var QUESTION_MARK = 0x003f;\r\n var RIGHT_CURLY_BRACKET = 0x007d;\r\n var VERTICAL_LINE = 0x007c;\r\n var TILDE = 0x007e;\r\n var CONTROL = 0x0080;\r\n var REPLACEMENT_CHARACTER = 0xfffd;\r\n var ASTERISK = 0x002a;\r\n var PLUS_SIGN = 0x002b;\r\n var COMMA = 0x002c;\r\n var COLON = 0x003a;\r\n var SEMICOLON = 0x003b;\r\n var FULL_STOP = 0x002e;\r\n var NULL = 0x0000;\r\n var BACKSPACE = 0x0008;\r\n var LINE_TABULATION = 0x000b;\r\n var SHIFT_OUT = 0x000e;\r\n var INFORMATION_SEPARATOR_ONE = 0x001f;\r\n var DELETE = 0x007f;\r\n var EOF = -1;\r\n var ZERO = 0x0030;\r\n var a = 0x0061;\r\n var e = 0x0065;\r\n var f = 0x0066;\r\n var u = 0x0075;\r\n var z = 0x007a;\r\n var A = 0x0041;\r\n var E = 0x0045;\r\n var F = 0x0046;\r\n var U = 0x0055;\r\n var Z = 0x005a;\r\n var isDigit = function (codePoint) {\r\n return codePoint >= ZERO && codePoint <= 0x0039;\r\n };\r\n var isSurrogateCodePoint = function (codePoint) {\r\n return codePoint >= 0xd800 && codePoint <= 0xdfff;\r\n };\r\n var isHex = function (codePoint) {\r\n return (\r\n isDigit(codePoint) ||\r\n (codePoint >= A && codePoint <= F) ||\r\n (codePoint >= a && codePoint <= f)\r\n );\r\n };\r\n var isLowerCaseLetter = function (codePoint) {\r\n return codePoint >= a && codePoint <= z;\r\n };\r\n var isUpperCaseLetter = function (codePoint) {\r\n return codePoint >= A && codePoint <= Z;\r\n };\r\n var isLetter = function (codePoint) {\r\n return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\r\n };\r\n var isNonASCIICodePoint = function (codePoint) {\r\n return codePoint >= CONTROL;\r\n };\r\n var isWhiteSpace = function (codePoint) {\r\n return (\r\n codePoint === LINE_FEED ||\r\n codePoint === CHARACTER_TABULATION ||\r\n codePoint === SPACE\r\n );\r\n };\r\n var isNameStartCodePoint = function (codePoint) {\r\n return (\r\n isLetter(codePoint) ||\r\n isNonASCIICodePoint(codePoint) ||\r\n codePoint === LOW_LINE\r\n );\r\n };\r\n var isNameCodePoint = function (codePoint) {\r\n return (\r\n isNameStartCodePoint(codePoint) ||\r\n isDigit(codePoint) ||\r\n codePoint === HYPHEN_MINUS\r\n );\r\n };\r\n var isNonPrintableCodePoint = function (codePoint) {\r\n return (\r\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\r\n codePoint === LINE_TABULATION ||\r\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\r\n codePoint === DELETE\r\n );\r\n };\r\n var isValidEscape = function (c1, c2) {\r\n if (c1 !== REVERSE_SOLIDUS) {\r\n return false;\r\n }\r\n return c2 !== LINE_FEED;\r\n };\r\n var isIdentifierStart = function (c1, c2, c3) {\r\n if (c1 === HYPHEN_MINUS) {\r\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\r\n } else if (isNameStartCodePoint(c1)) {\r\n return true;\r\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isNumberStart = function (c1, c2, c3) {\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n if (isDigit(c2)) {\r\n return true;\r\n }\r\n return c2 === FULL_STOP && isDigit(c3);\r\n }\r\n if (c1 === FULL_STOP) {\r\n return isDigit(c2);\r\n }\r\n return isDigit(c1);\r\n };\r\n var stringToNumber = function (codePoints) {\r\n var c = 0;\r\n var sign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n sign = -1;\r\n }\r\n c++;\r\n }\r\n var integers = [];\r\n while (isDigit(codePoints[c])) {\r\n integers.push(codePoints[c++]);\r\n }\r\n var int = integers.length\r\n ? parseInt(fromCodePoint$1.apply(void 0, integers), 10)\r\n : 0;\r\n if (codePoints[c] === FULL_STOP) {\r\n c++;\r\n }\r\n var fraction = [];\r\n while (isDigit(codePoints[c])) {\r\n fraction.push(codePoints[c++]);\r\n }\r\n var fracd = fraction.length;\r\n var frac = fracd\r\n ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10)\r\n : 0;\r\n if (codePoints[c] === E || codePoints[c] === e) {\r\n c++;\r\n }\r\n var expsign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n expsign = -1;\r\n }\r\n c++;\r\n }\r\n var exponent = [];\r\n while (isDigit(codePoints[c])) {\r\n exponent.push(codePoints[c++]);\r\n }\r\n var exp = exponent.length\r\n ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10)\r\n : 0;\r\n return (\r\n sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp)\r\n );\r\n };\r\n var LEFT_PARENTHESIS_TOKEN = {\r\n type: 2 /* LEFT_PARENTHESIS_TOKEN */,\r\n };\r\n var RIGHT_PARENTHESIS_TOKEN = {\r\n type: 3 /* RIGHT_PARENTHESIS_TOKEN */,\r\n };\r\n var COMMA_TOKEN = { type: 4 /* COMMA_TOKEN */ };\r\n var SUFFIX_MATCH_TOKEN = { type: 13 /* SUFFIX_MATCH_TOKEN */ };\r\n var PREFIX_MATCH_TOKEN = { type: 8 /* PREFIX_MATCH_TOKEN */ };\r\n var COLUMN_TOKEN = { type: 21 /* COLUMN_TOKEN */ };\r\n var DASH_MATCH_TOKEN = { type: 9 /* DASH_MATCH_TOKEN */ };\r\n var INCLUDE_MATCH_TOKEN = { type: 10 /* INCLUDE_MATCH_TOKEN */ };\r\n var LEFT_CURLY_BRACKET_TOKEN = {\r\n type: 11 /* LEFT_CURLY_BRACKET_TOKEN */,\r\n };\r\n var RIGHT_CURLY_BRACKET_TOKEN = {\r\n type: 12 /* RIGHT_CURLY_BRACKET_TOKEN */,\r\n };\r\n var SUBSTRING_MATCH_TOKEN = { type: 14 /* SUBSTRING_MATCH_TOKEN */ };\r\n var BAD_URL_TOKEN = { type: 23 /* BAD_URL_TOKEN */ };\r\n var BAD_STRING_TOKEN = { type: 1 /* BAD_STRING_TOKEN */ };\r\n var CDO_TOKEN = { type: 25 /* CDO_TOKEN */ };\r\n var CDC_TOKEN = { type: 24 /* CDC_TOKEN */ };\r\n var COLON_TOKEN = { type: 26 /* COLON_TOKEN */ };\r\n var SEMICOLON_TOKEN = { type: 27 /* SEMICOLON_TOKEN */ };\r\n var LEFT_SQUARE_BRACKET_TOKEN = {\r\n type: 28 /* LEFT_SQUARE_BRACKET_TOKEN */,\r\n };\r\n var RIGHT_SQUARE_BRACKET_TOKEN = {\r\n type: 29 /* RIGHT_SQUARE_BRACKET_TOKEN */,\r\n };\r\n var WHITESPACE_TOKEN = { type: 31 /* WHITESPACE_TOKEN */ };\r\n var EOF_TOKEN = { type: 32 /* EOF_TOKEN */ };\r\n var Tokenizer = /** @class */ (function () {\r\n function Tokenizer() {\r\n this._value = [];\r\n }\r\n Tokenizer.prototype.write = function (chunk) {\r\n this._value = this._value.concat(toCodePoints$1(chunk));\r\n };\r\n Tokenizer.prototype.read = function () {\r\n var tokens = [];\r\n var token = this.consumeToken();\r\n while (token !== EOF_TOKEN) {\r\n tokens.push(token);\r\n token = this.consumeToken();\r\n }\r\n return tokens;\r\n };\r\n Tokenizer.prototype.consumeToken = function () {\r\n var codePoint = this.consumeCodePoint();\r\n switch (codePoint) {\r\n case QUOTATION_MARK:\r\n return this.consumeStringToken(QUOTATION_MARK);\r\n case NUMBER_SIGN:\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\r\n var flags = isIdentifierStart(c1, c2, c3)\r\n ? FLAG_ID\r\n : FLAG_UNRESTRICTED;\r\n var value = this.consumeName();\r\n return { type: 5 /* HASH_TOKEN */, value: value, flags: flags };\r\n }\r\n break;\r\n case DOLLAR_SIGN:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUFFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case APOSTROPHE:\r\n return this.consumeStringToken(APOSTROPHE);\r\n case LEFT_PARENTHESIS:\r\n return LEFT_PARENTHESIS_TOKEN;\r\n case RIGHT_PARENTHESIS:\r\n return RIGHT_PARENTHESIS_TOKEN;\r\n case ASTERISK:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUBSTRING_MATCH_TOKEN;\r\n }\r\n break;\r\n case PLUS_SIGN:\r\n if (\r\n isNumberStart(\r\n codePoint,\r\n this.peekCodePoint(0),\r\n this.peekCodePoint(1)\r\n )\r\n ) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case COMMA:\r\n return COMMA_TOKEN;\r\n case HYPHEN_MINUS:\r\n var e1 = codePoint;\r\n var e2 = this.peekCodePoint(0);\r\n var e3 = this.peekCodePoint(1);\r\n if (isNumberStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isIdentifierStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDC_TOKEN;\r\n }\r\n break;\r\n case FULL_STOP:\r\n if (\r\n isNumberStart(\r\n codePoint,\r\n this.peekCodePoint(0),\r\n this.peekCodePoint(1)\r\n )\r\n ) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case SOLIDUS:\r\n if (this.peekCodePoint(0) === ASTERISK) {\r\n this.consumeCodePoint();\r\n while (true) {\r\n var c = this.consumeCodePoint();\r\n if (c === ASTERISK) {\r\n c = this.consumeCodePoint();\r\n if (c === SOLIDUS) {\r\n return this.consumeToken();\r\n }\r\n }\r\n if (c === EOF) {\r\n return this.consumeToken();\r\n }\r\n }\r\n }\r\n break;\r\n case COLON:\r\n return COLON_TOKEN;\r\n case SEMICOLON:\r\n return SEMICOLON_TOKEN;\r\n case LESS_THAN_SIGN:\r\n if (\r\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\r\n this.peekCodePoint(1) === HYPHEN_MINUS &&\r\n this.peekCodePoint(2) === HYPHEN_MINUS\r\n ) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDO_TOKEN;\r\n }\r\n break;\r\n case COMMERCIAL_AT:\r\n var a1 = this.peekCodePoint(0);\r\n var a2 = this.peekCodePoint(1);\r\n var a3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(a1, a2, a3)) {\r\n var value = this.consumeName();\r\n return { type: 7 /* AT_KEYWORD_TOKEN */, value: value };\r\n }\r\n break;\r\n case LEFT_SQUARE_BRACKET:\r\n return LEFT_SQUARE_BRACKET_TOKEN;\r\n case REVERSE_SOLIDUS:\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n break;\r\n case RIGHT_SQUARE_BRACKET:\r\n return RIGHT_SQUARE_BRACKET_TOKEN;\r\n case CIRCUMFLEX_ACCENT:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return PREFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case LEFT_CURLY_BRACKET:\r\n return LEFT_CURLY_BRACKET_TOKEN;\r\n case RIGHT_CURLY_BRACKET:\r\n return RIGHT_CURLY_BRACKET_TOKEN;\r\n case u:\r\n case U:\r\n var u1 = this.peekCodePoint(0);\r\n var u2 = this.peekCodePoint(1);\r\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\r\n this.consumeCodePoint();\r\n this.consumeUnicodeRangeToken();\r\n }\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n case VERTICAL_LINE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return DASH_MATCH_TOKEN;\r\n }\r\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\r\n this.consumeCodePoint();\r\n return COLUMN_TOKEN;\r\n }\r\n break;\r\n case TILDE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return INCLUDE_MATCH_TOKEN;\r\n }\r\n break;\r\n case EOF:\r\n return EOF_TOKEN;\r\n }\r\n if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n return WHITESPACE_TOKEN;\r\n }\r\n if (isDigit(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isNameStartCodePoint(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n return { type: 6 /* DELIM_TOKEN */, value: fromCodePoint$1(codePoint) };\r\n };\r\n Tokenizer.prototype.consumeCodePoint = function () {\r\n var value = this._value.shift();\r\n return typeof value === \"undefined\" ? -1 : value;\r\n };\r\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\r\n this._value.unshift(codePoint);\r\n };\r\n Tokenizer.prototype.peekCodePoint = function (delta) {\r\n if (delta >= this._value.length) {\r\n return -1;\r\n }\r\n return this._value[delta];\r\n };\r\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\r\n var digits = [];\r\n var codePoint = this.consumeCodePoint();\r\n while (isHex(codePoint) && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var questionMarks = false;\r\n while (codePoint === QUESTION_MARK && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n questionMarks = true;\r\n }\r\n if (questionMarks) {\r\n var start_1 = parseInt(\r\n fromCodePoint$1.apply(\r\n void 0,\r\n digits.map(function (digit) {\r\n return digit === QUESTION_MARK ? ZERO : digit;\r\n })\r\n ),\r\n 16\r\n );\r\n var end = parseInt(\r\n fromCodePoint$1.apply(\r\n void 0,\r\n digits.map(function (digit) {\r\n return digit === QUESTION_MARK ? F : digit;\r\n })\r\n ),\r\n 16\r\n );\r\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start_1, end: end };\r\n }\r\n var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16);\r\n if (\r\n this.peekCodePoint(0) === HYPHEN_MINUS &&\r\n isHex(this.peekCodePoint(1))\r\n ) {\r\n this.consumeCodePoint();\r\n codePoint = this.consumeCodePoint();\r\n var endDigits = [];\r\n while (isHex(codePoint) && endDigits.length < 6) {\r\n endDigits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16);\r\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: end };\r\n } else {\r\n return { type: 30 /* UNICODE_RANGE_TOKEN */, start: start, end: start };\r\n }\r\n };\r\n Tokenizer.prototype.consumeIdentLikeToken = function () {\r\n var value = this.consumeName();\r\n if (\r\n value.toLowerCase() === \"url\" &&\r\n this.peekCodePoint(0) === LEFT_PARENTHESIS\r\n ) {\r\n this.consumeCodePoint();\r\n return this.consumeUrlToken();\r\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: 19 /* FUNCTION_TOKEN */, value: value };\r\n }\r\n return { type: 20 /* IDENT_TOKEN */, value: value };\r\n };\r\n Tokenizer.prototype.consumeUrlToken = function () {\r\n var value = [];\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF) {\r\n return { type: 22 /* URL_TOKEN */, value: \"\" };\r\n }\r\n var next = this.peekCodePoint(0);\r\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\r\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\r\n if (stringToken.type === 0 /* STRING_TOKEN */) {\r\n this.consumeWhiteSpace();\r\n if (\r\n this.peekCodePoint(0) === EOF ||\r\n this.peekCodePoint(0) === RIGHT_PARENTHESIS\r\n ) {\r\n this.consumeCodePoint();\r\n return { type: 22 /* URL_TOKEN */, value: stringToken.value };\r\n }\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\r\n return {\r\n type: 22 /* URL_TOKEN */,\r\n value: fromCodePoint$1.apply(void 0, value),\r\n };\r\n } else if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n if (\r\n this.peekCodePoint(0) === EOF ||\r\n this.peekCodePoint(0) === RIGHT_PARENTHESIS\r\n ) {\r\n this.consumeCodePoint();\r\n return {\r\n type: 22 /* URL_TOKEN */,\r\n value: fromCodePoint$1.apply(void 0, value),\r\n };\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n } else if (\r\n codePoint === QUOTATION_MARK ||\r\n codePoint === APOSTROPHE ||\r\n codePoint === LEFT_PARENTHESIS ||\r\n isNonPrintableCodePoint(codePoint)\r\n ) {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n } else if (codePoint === REVERSE_SOLIDUS) {\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n value.push(this.consumeEscapedCodePoint());\r\n } else {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n } else {\r\n value.push(codePoint);\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeWhiteSpace = function () {\r\n while (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n };\r\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\r\n return;\r\n }\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.consumeEscapedCodePoint();\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeStringSlice = function (count) {\r\n var SLICE_STACK_SIZE = 50000;\r\n var value = \"\";\r\n while (count > 0) {\r\n var amount = Math.min(SLICE_STACK_SIZE, count);\r\n value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount));\r\n count -= amount;\r\n }\r\n this._value.shift();\r\n return value;\r\n };\r\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\r\n var value = \"\";\r\n var i = 0;\r\n do {\r\n var codePoint = this._value[i];\r\n if (\r\n codePoint === EOF ||\r\n codePoint === undefined ||\r\n codePoint === endingCodePoint\r\n ) {\r\n value += this.consumeStringSlice(i);\r\n return { type: 0 /* STRING_TOKEN */, value: value };\r\n }\r\n if (codePoint === LINE_FEED) {\r\n this._value.splice(0, i);\r\n return BAD_STRING_TOKEN;\r\n }\r\n if (codePoint === REVERSE_SOLIDUS) {\r\n var next = this._value[i + 1];\r\n if (next !== EOF && next !== undefined) {\r\n if (next === LINE_FEED) {\r\n value += this.consumeStringSlice(i);\r\n i = -1;\r\n this._value.shift();\r\n } else if (isValidEscape(codePoint, next)) {\r\n value += this.consumeStringSlice(i);\r\n value += fromCodePoint$1(this.consumeEscapedCodePoint());\r\n i = -1;\r\n }\r\n }\r\n }\r\n i++;\r\n } while (true);\r\n };\r\n Tokenizer.prototype.consumeNumber = function () {\r\n var repr = [];\r\n var type = FLAG_INTEGER;\r\n var c1 = this.peekCodePoint(0);\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n if (c1 === FULL_STOP && isDigit(c2)) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n c1 = this.peekCodePoint(0);\r\n c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (\r\n (c1 === E || c1 === e) &&\r\n (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) ||\r\n isDigit(c2))\r\n ) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n return [stringToNumber(repr), type];\r\n };\r\n Tokenizer.prototype.consumeNumericToken = function () {\r\n var _a = this.consumeNumber(),\r\n number = _a[0],\r\n flags = _a[1];\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(c1, c2, c3)) {\r\n var unit = this.consumeName();\r\n return {\r\n type: 15 /* DIMENSION_TOKEN */,\r\n number: number,\r\n flags: flags,\r\n unit: unit,\r\n };\r\n }\r\n if (c1 === PERCENTAGE_SIGN) {\r\n this.consumeCodePoint();\r\n return {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n number: number,\r\n flags: flags,\r\n };\r\n }\r\n return { type: 17 /* NUMBER_TOKEN */, number: number, flags: flags };\r\n };\r\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\r\n var codePoint = this.consumeCodePoint();\r\n if (isHex(codePoint)) {\r\n var hex = fromCodePoint$1(codePoint);\r\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\r\n hex += fromCodePoint$1(this.consumeCodePoint());\r\n }\r\n if (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n var hexCodePoint = parseInt(hex, 16);\r\n if (\r\n hexCodePoint === 0 ||\r\n isSurrogateCodePoint(hexCodePoint) ||\r\n hexCodePoint > 0x10ffff\r\n ) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return hexCodePoint;\r\n }\r\n if (codePoint === EOF) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return codePoint;\r\n };\r\n Tokenizer.prototype.consumeName = function () {\r\n var result = \"\";\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (isNameCodePoint(codePoint)) {\r\n result += fromCodePoint$1(codePoint);\r\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n result += fromCodePoint$1(this.consumeEscapedCodePoint());\r\n } else {\r\n this.reconsumeCodePoint(codePoint);\r\n return result;\r\n }\r\n }\r\n };\r\n return Tokenizer;\r\n })();\r\n \r\n var Parser = /** @class */ (function () {\r\n function Parser(tokens) {\r\n this._tokens = tokens;\r\n }\r\n Parser.create = function (value) {\r\n var tokenizer = new Tokenizer();\r\n tokenizer.write(value);\r\n return new Parser(tokenizer.read());\r\n };\r\n Parser.parseValue = function (value) {\r\n return Parser.create(value).parseComponentValue();\r\n };\r\n Parser.parseValues = function (value) {\r\n return Parser.create(value).parseComponentValues();\r\n };\r\n Parser.prototype.parseComponentValue = function () {\r\n var token = this.consumeToken();\r\n while (token.type === 31 /* WHITESPACE_TOKEN */) {\r\n token = this.consumeToken();\r\n }\r\n if (token.type === 32 /* EOF_TOKEN */) {\r\n throw new SyntaxError(\r\n \"Error parsing CSS component value, unexpected EOF\"\r\n );\r\n }\r\n this.reconsumeToken(token);\r\n var value = this.consumeComponentValue();\r\n do {\r\n token = this.consumeToken();\r\n } while (token.type === 31 /* WHITESPACE_TOKEN */);\r\n if (token.type === 32 /* EOF_TOKEN */) {\r\n return value;\r\n }\r\n throw new SyntaxError(\r\n \"Error parsing CSS component value, multiple values found when expecting only one\"\r\n );\r\n };\r\n Parser.prototype.parseComponentValues = function () {\r\n var values = [];\r\n while (true) {\r\n var value = this.consumeComponentValue();\r\n if (value.type === 32 /* EOF_TOKEN */) {\r\n return values;\r\n }\r\n values.push(value);\r\n values.push();\r\n }\r\n };\r\n Parser.prototype.consumeComponentValue = function () {\r\n var token = this.consumeToken();\r\n switch (token.type) {\r\n case 11 /* LEFT_CURLY_BRACKET_TOKEN */:\r\n case 28 /* LEFT_SQUARE_BRACKET_TOKEN */:\r\n case 2 /* LEFT_PARENTHESIS_TOKEN */:\r\n return this.consumeSimpleBlock(token.type);\r\n case 19 /* FUNCTION_TOKEN */:\r\n return this.consumeFunction(token);\r\n }\r\n return token;\r\n };\r\n Parser.prototype.consumeSimpleBlock = function (type) {\r\n var block = { type: type, values: [] };\r\n var token = this.consumeToken();\r\n while (true) {\r\n if (\r\n token.type === 32 /* EOF_TOKEN */ ||\r\n isEndingTokenFor(token, type)\r\n ) {\r\n return block;\r\n }\r\n this.reconsumeToken(token);\r\n block.values.push(this.consumeComponentValue());\r\n token = this.consumeToken();\r\n }\r\n };\r\n Parser.prototype.consumeFunction = function (functionToken) {\r\n var cssFunction = {\r\n name: functionToken.value,\r\n values: [],\r\n type: 18 /* FUNCTION */,\r\n };\r\n while (true) {\r\n var token = this.consumeToken();\r\n if (\r\n token.type === 32 /* EOF_TOKEN */ ||\r\n token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */\r\n ) {\r\n return cssFunction;\r\n }\r\n this.reconsumeToken(token);\r\n cssFunction.values.push(this.consumeComponentValue());\r\n }\r\n };\r\n Parser.prototype.consumeToken = function () {\r\n var token = this._tokens.shift();\r\n return typeof token === \"undefined\" ? EOF_TOKEN : token;\r\n };\r\n Parser.prototype.reconsumeToken = function (token) {\r\n this._tokens.unshift(token);\r\n };\r\n return Parser;\r\n })();\r\n var isDimensionToken = function (token) {\r\n return token.type === 15 /* DIMENSION_TOKEN */;\r\n };\r\n var isNumberToken = function (token) {\r\n return token.type === 17 /* NUMBER_TOKEN */;\r\n };\r\n var isIdentToken = function (token) {\r\n return token.type === 20 /* IDENT_TOKEN */;\r\n };\r\n var isStringToken = function (token) {\r\n return token.type === 0 /* STRING_TOKEN */;\r\n };\r\n var isIdentWithValue = function (token, value) {\r\n return isIdentToken(token) && token.value === value;\r\n };\r\n var nonWhiteSpace = function (token) {\r\n return token.type !== 31 /* WHITESPACE_TOKEN */;\r\n };\r\n var nonFunctionArgSeparator = function (token) {\r\n return (\r\n token.type !== 31 /* WHITESPACE_TOKEN */ &&\r\n token.type !== 4 /* COMMA_TOKEN */\r\n );\r\n };\r\n var parseFunctionArgs = function (tokens) {\r\n var args = [];\r\n var arg = [];\r\n tokens.forEach(function (token) {\r\n if (token.type === 4 /* COMMA_TOKEN */) {\r\n if (arg.length === 0) {\r\n throw new Error(\"Error parsing function args, zero tokens for arg\");\r\n }\r\n args.push(arg);\r\n arg = [];\r\n return;\r\n }\r\n if (token.type !== 31 /* WHITESPACE_TOKEN */) {\r\n arg.push(token);\r\n }\r\n });\r\n if (arg.length) {\r\n args.push(arg);\r\n }\r\n return args;\r\n };\r\n var isEndingTokenFor = function (token, type) {\r\n if (\r\n type === 11 /* LEFT_CURLY_BRACKET_TOKEN */ &&\r\n token.type === 12 /* RIGHT_CURLY_BRACKET_TOKEN */\r\n ) {\r\n return true;\r\n }\r\n if (\r\n type === 28 /* LEFT_SQUARE_BRACKET_TOKEN */ &&\r\n token.type === 29 /* RIGHT_SQUARE_BRACKET_TOKEN */\r\n ) {\r\n return true;\r\n }\r\n return (\r\n type === 2 /* LEFT_PARENTHESIS_TOKEN */ &&\r\n token.type === 3 /* RIGHT_PARENTHESIS_TOKEN */\r\n );\r\n };\r\n \r\n var isLength = function (token) {\r\n return (\r\n token.type === 17 /* NUMBER_TOKEN */ ||\r\n token.type === 15 /* DIMENSION_TOKEN */\r\n );\r\n };\r\n \r\n var isLengthPercentage = function (token) {\r\n return token.type === 16 /* PERCENTAGE_TOKEN */ || isLength(token);\r\n };\r\n var parseLengthPercentageTuple = function (tokens) {\r\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\r\n };\r\n var ZERO_LENGTH = {\r\n type: 17 /* NUMBER_TOKEN */,\r\n number: 0,\r\n flags: FLAG_INTEGER,\r\n };\r\n var FIFTY_PERCENT = {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n number: 50,\r\n flags: FLAG_INTEGER,\r\n };\r\n var HUNDRED_PERCENT = {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n number: 100,\r\n flags: FLAG_INTEGER,\r\n };\r\n var getAbsoluteValueForTuple = function (tuple, width, height) {\r\n var x = tuple[0],\r\n y = tuple[1];\r\n return [\r\n getAbsoluteValue(x, width),\r\n getAbsoluteValue(typeof y !== \"undefined\" ? y : x, height),\r\n ];\r\n };\r\n var getAbsoluteValue = function (token, parent) {\r\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\r\n return (token.number / 100) * parent;\r\n }\r\n if (isDimensionToken(token)) {\r\n switch (token.unit) {\r\n case \"rem\":\r\n case \"em\":\r\n return 16 * token.number; // TODO use correct font-size\r\n case \"px\":\r\n default:\r\n return token.number;\r\n }\r\n }\r\n return token.number;\r\n };\r\n \r\n var DEG = \"deg\";\r\n var GRAD = \"grad\";\r\n var RAD = \"rad\";\r\n var TURN = \"turn\";\r\n var angle = {\r\n name: \"angle\",\r\n parse: function (_context, value) {\r\n if (value.type === 15 /* DIMENSION_TOKEN */) {\r\n switch (value.unit) {\r\n case DEG:\r\n return (Math.PI * value.number) / 180;\r\n case GRAD:\r\n return (Math.PI / 200) * value.number;\r\n case RAD:\r\n return value.number;\r\n case TURN:\r\n return Math.PI * 2 * value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported angle type\");\r\n },\r\n };\r\n var isAngle = function (value) {\r\n if (value.type === 15 /* DIMENSION_TOKEN */) {\r\n if (\r\n value.unit === DEG ||\r\n value.unit === GRAD ||\r\n value.unit === RAD ||\r\n value.unit === TURN\r\n ) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var parseNamedSide = function (tokens) {\r\n var sideOrCorner = tokens\r\n .filter(isIdentToken)\r\n .map(function (ident) {\r\n return ident.value;\r\n })\r\n .join(\" \");\r\n switch (sideOrCorner) {\r\n case \"to bottom right\":\r\n case \"to right bottom\":\r\n case \"left top\":\r\n case \"top left\":\r\n return [ZERO_LENGTH, ZERO_LENGTH];\r\n case \"to top\":\r\n case \"bottom\":\r\n return deg(0);\r\n case \"to bottom left\":\r\n case \"to left bottom\":\r\n case \"right top\":\r\n case \"top right\":\r\n return [ZERO_LENGTH, HUNDRED_PERCENT];\r\n case \"to right\":\r\n case \"left\":\r\n return deg(90);\r\n case \"to top left\":\r\n case \"to left top\":\r\n case \"right bottom\":\r\n case \"bottom right\":\r\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\r\n case \"to bottom\":\r\n case \"top\":\r\n return deg(180);\r\n case \"to top right\":\r\n case \"to right top\":\r\n case \"left bottom\":\r\n case \"bottom left\":\r\n return [HUNDRED_PERCENT, ZERO_LENGTH];\r\n case \"to left\":\r\n case \"right\":\r\n return deg(270);\r\n }\r\n return 0;\r\n };\r\n var deg = function (deg) {\r\n return (Math.PI * deg) / 180;\r\n };\r\n \r\n var color$1 = {\r\n name: \"color\",\r\n parse: function (context, value) {\r\n if (value.type === 18 /* FUNCTION */) {\r\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\r\n if (typeof colorFunction === \"undefined\") {\r\n throw new Error(\r\n 'Attempting to parse an unsupported color function \"' +\r\n value.name +\r\n '\"'\r\n );\r\n }\r\n return colorFunction(context, value.values);\r\n }\r\n if (value.type === 5 /* HASH_TOKEN */) {\r\n if (value.value.length === 3) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n return pack(\r\n parseInt(r + r, 16),\r\n parseInt(g + g, 16),\r\n parseInt(b + b, 16),\r\n 1\r\n );\r\n }\r\n if (value.value.length === 4) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n var a = value.value.substring(3, 4);\r\n return pack(\r\n parseInt(r + r, 16),\r\n parseInt(g + g, 16),\r\n parseInt(b + b, 16),\r\n parseInt(a + a, 16) / 255\r\n );\r\n }\r\n if (value.value.length === 6) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\r\n }\r\n if (value.value.length === 8) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n var a = value.value.substring(6, 8);\r\n return pack(\r\n parseInt(r, 16),\r\n parseInt(g, 16),\r\n parseInt(b, 16),\r\n parseInt(a, 16) / 255\r\n );\r\n }\r\n }\r\n if (value.type === 20 /* IDENT_TOKEN */) {\r\n var namedColor = COLORS[value.value.toUpperCase()];\r\n if (typeof namedColor !== \"undefined\") {\r\n return namedColor;\r\n }\r\n }\r\n return COLORS.TRANSPARENT;\r\n },\r\n };\r\n var isTransparent = function (color) {\r\n return (0xff & color) === 0;\r\n };\r\n var asString = function (color) {\r\n var alpha = 0xff & color;\r\n var blue = 0xff & (color >> 8);\r\n var green = 0xff & (color >> 16);\r\n var red = 0xff & (color >> 24);\r\n return alpha < 255\r\n ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\"\r\n : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\r\n };\r\n var pack = function (r, g, b, a) {\r\n return (\r\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0\r\n );\r\n };\r\n var getTokenColorValue = function (token, i) {\r\n if (token.type === 17 /* NUMBER_TOKEN */) {\r\n return token.number;\r\n }\r\n if (token.type === 16 /* PERCENTAGE_TOKEN */) {\r\n var max = i === 3 ? 1 : 255;\r\n return i === 3\r\n ? (token.number / 100) * max\r\n : Math.round((token.number / 100) * max);\r\n }\r\n return 0;\r\n };\r\n var rgb = function (_context, args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n if (tokens.length === 3) {\r\n var _a = tokens.map(getTokenColorValue),\r\n r = _a[0],\r\n g = _a[1],\r\n b = _a[2];\r\n return pack(r, g, b, 1);\r\n }\r\n if (tokens.length === 4) {\r\n var _b = tokens.map(getTokenColorValue),\r\n r = _b[0],\r\n g = _b[1],\r\n b = _b[2],\r\n a = _b[3];\r\n return pack(r, g, b, a);\r\n }\r\n return 0;\r\n };\r\n function hue2rgb(t1, t2, hue) {\r\n if (hue < 0) {\r\n hue += 1;\r\n }\r\n if (hue >= 1) {\r\n hue -= 1;\r\n }\r\n if (hue < 1 / 6) {\r\n return (t2 - t1) * hue * 6 + t1;\r\n } else if (hue < 1 / 2) {\r\n return t2;\r\n } else if (hue < 2 / 3) {\r\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\r\n } else {\r\n return t1;\r\n }\r\n }\r\n var hsl = function (context, args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n var hue = tokens[0],\r\n saturation = tokens[1],\r\n lightness = tokens[2],\r\n alpha = tokens[3];\r\n var h =\r\n (hue.type === 17 /* NUMBER_TOKEN */\r\n ? deg(hue.number)\r\n : angle.parse(context, hue)) /\r\n (Math.PI * 2);\r\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\r\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\r\n var a =\r\n typeof alpha !== \"undefined\" && isLengthPercentage(alpha)\r\n ? getAbsoluteValue(alpha, 1)\r\n : 1;\r\n if (s === 0) {\r\n return pack(l * 255, l * 255, l * 255, 1);\r\n }\r\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var t1 = l * 2 - t2;\r\n var r = hue2rgb(t1, t2, h + 1 / 3);\r\n var g = hue2rgb(t1, t2, h);\r\n var b = hue2rgb(t1, t2, h - 1 / 3);\r\n return pack(r * 255, g * 255, b * 255, a);\r\n };\r\n var SUPPORTED_COLOR_FUNCTIONS = {\r\n hsl: hsl,\r\n hsla: hsl,\r\n rgb: rgb,\r\n rgba: rgb,\r\n };\r\n var parseColor = function (context, value) {\r\n return color$1.parse(context, Parser.create(value).parseComponentValue());\r\n };\r\n var COLORS = {\r\n ALICEBLUE: 0xf0f8ffff,\r\n ANTIQUEWHITE: 0xfaebd7ff,\r\n AQUA: 0x00ffffff,\r\n AQUAMARINE: 0x7fffd4ff,\r\n AZURE: 0xf0ffffff,\r\n BEIGE: 0xf5f5dcff,\r\n BISQUE: 0xffe4c4ff,\r\n BLACK: 0x000000ff,\r\n BLANCHEDALMOND: 0xffebcdff,\r\n BLUE: 0x0000ffff,\r\n BLUEVIOLET: 0x8a2be2ff,\r\n BROWN: 0xa52a2aff,\r\n BURLYWOOD: 0xdeb887ff,\r\n CADETBLUE: 0x5f9ea0ff,\r\n CHARTREUSE: 0x7fff00ff,\r\n CHOCOLATE: 0xd2691eff,\r\n CORAL: 0xff7f50ff,\r\n CORNFLOWERBLUE: 0x6495edff,\r\n CORNSILK: 0xfff8dcff,\r\n CRIMSON: 0xdc143cff,\r\n CYAN: 0x00ffffff,\r\n DARKBLUE: 0x00008bff,\r\n DARKCYAN: 0x008b8bff,\r\n DARKGOLDENROD: 0xb886bbff,\r\n DARKGRAY: 0xa9a9a9ff,\r\n DARKGREEN: 0x006400ff,\r\n DARKGREY: 0xa9a9a9ff,\r\n DARKKHAKI: 0xbdb76bff,\r\n DARKMAGENTA: 0x8b008bff,\r\n DARKOLIVEGREEN: 0x556b2fff,\r\n DARKORANGE: 0xff8c00ff,\r\n DARKORCHID: 0x9932ccff,\r\n DARKRED: 0x8b0000ff,\r\n DARKSALMON: 0xe9967aff,\r\n DARKSEAGREEN: 0x8fbc8fff,\r\n DARKSLATEBLUE: 0x483d8bff,\r\n DARKSLATEGRAY: 0x2f4f4fff,\r\n DARKSLATEGREY: 0x2f4f4fff,\r\n DARKTURQUOISE: 0x00ced1ff,\r\n DARKVIOLET: 0x9400d3ff,\r\n DEEPPINK: 0xff1493ff,\r\n DEEPSKYBLUE: 0x00bfffff,\r\n DIMGRAY: 0x696969ff,\r\n DIMGREY: 0x696969ff,\r\n DODGERBLUE: 0x1e90ffff,\r\n FIREBRICK: 0xb22222ff,\r\n FLORALWHITE: 0xfffaf0ff,\r\n FORESTGREEN: 0x228b22ff,\r\n FUCHSIA: 0xff00ffff,\r\n GAINSBORO: 0xdcdcdcff,\r\n GHOSTWHITE: 0xf8f8ffff,\r\n GOLD: 0xffd700ff,\r\n GOLDENROD: 0xdaa520ff,\r\n GRAY: 0x808080ff,\r\n GREEN: 0x008000ff,\r\n GREENYELLOW: 0xadff2fff,\r\n GREY: 0x808080ff,\r\n HONEYDEW: 0xf0fff0ff,\r\n HOTPINK: 0xff69b4ff,\r\n INDIANRED: 0xcd5c5cff,\r\n INDIGO: 0x4b0082ff,\r\n IVORY: 0xfffff0ff,\r\n KHAKI: 0xf0e68cff,\r\n LAVENDER: 0xe6e6faff,\r\n LAVENDERBLUSH: 0xfff0f5ff,\r\n LAWNGREEN: 0x7cfc00ff,\r\n LEMONCHIFFON: 0xfffacdff,\r\n LIGHTBLUE: 0xadd8e6ff,\r\n LIGHTCORAL: 0xf08080ff,\r\n LIGHTCYAN: 0xe0ffffff,\r\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\r\n LIGHTGRAY: 0xd3d3d3ff,\r\n LIGHTGREEN: 0x90ee90ff,\r\n LIGHTGREY: 0xd3d3d3ff,\r\n LIGHTPINK: 0xffb6c1ff,\r\n LIGHTSALMON: 0xffa07aff,\r\n LIGHTSEAGREEN: 0x20b2aaff,\r\n LIGHTSKYBLUE: 0x87cefaff,\r\n LIGHTSLATEGRAY: 0x778899ff,\r\n LIGHTSLATEGREY: 0x778899ff,\r\n LIGHTSTEELBLUE: 0xb0c4deff,\r\n LIGHTYELLOW: 0xffffe0ff,\r\n LIME: 0x00ff00ff,\r\n LIMEGREEN: 0x32cd32ff,\r\n LINEN: 0xfaf0e6ff,\r\n MAGENTA: 0xff00ffff,\r\n MAROON: 0x800000ff,\r\n MEDIUMAQUAMARINE: 0x66cdaaff,\r\n MEDIUMBLUE: 0x0000cdff,\r\n MEDIUMORCHID: 0xba55d3ff,\r\n MEDIUMPURPLE: 0x9370dbff,\r\n MEDIUMSEAGREEN: 0x3cb371ff,\r\n MEDIUMSLATEBLUE: 0x7b68eeff,\r\n MEDIUMSPRINGGREEN: 0x00fa9aff,\r\n MEDIUMTURQUOISE: 0x48d1ccff,\r\n MEDIUMVIOLETRED: 0xc71585ff,\r\n MIDNIGHTBLUE: 0x191970ff,\r\n MINTCREAM: 0xf5fffaff,\r\n MISTYROSE: 0xffe4e1ff,\r\n MOCCASIN: 0xffe4b5ff,\r\n NAVAJOWHITE: 0xffdeadff,\r\n NAVY: 0x000080ff,\r\n OLDLACE: 0xfdf5e6ff,\r\n OLIVE: 0x808000ff,\r\n OLIVEDRAB: 0x6b8e23ff,\r\n ORANGE: 0xffa500ff,\r\n ORANGERED: 0xff4500ff,\r\n ORCHID: 0xda70d6ff,\r\n PALEGOLDENROD: 0xeee8aaff,\r\n PALEGREEN: 0x98fb98ff,\r\n PALETURQUOISE: 0xafeeeeff,\r\n PALEVIOLETRED: 0xdb7093ff,\r\n PAPAYAWHIP: 0xffefd5ff,\r\n PEACHPUFF: 0xffdab9ff,\r\n PERU: 0xcd853fff,\r\n PINK: 0xffc0cbff,\r\n PLUM: 0xdda0ddff,\r\n POWDERBLUE: 0xb0e0e6ff,\r\n PURPLE: 0x800080ff,\r\n REBECCAPURPLE: 0x663399ff,\r\n RED: 0xff0000ff,\r\n ROSYBROWN: 0xbc8f8fff,\r\n ROYALBLUE: 0x4169e1ff,\r\n SADDLEBROWN: 0x8b4513ff,\r\n SALMON: 0xfa8072ff,\r\n SANDYBROWN: 0xf4a460ff,\r\n SEAGREEN: 0x2e8b57ff,\r\n SEASHELL: 0xfff5eeff,\r\n SIENNA: 0xa0522dff,\r\n SILVER: 0xc0c0c0ff,\r\n SKYBLUE: 0x87ceebff,\r\n SLATEBLUE: 0x6a5acdff,\r\n SLATEGRAY: 0x708090ff,\r\n SLATEGREY: 0x708090ff,\r\n SNOW: 0xfffafaff,\r\n SPRINGGREEN: 0x00ff7fff,\r\n STEELBLUE: 0x4682b4ff,\r\n TAN: 0xd2b48cff,\r\n TEAL: 0x008080ff,\r\n THISTLE: 0xd8bfd8ff,\r\n TOMATO: 0xff6347ff,\r\n TRANSPARENT: 0x00000000,\r\n TURQUOISE: 0x40e0d0ff,\r\n VIOLET: 0xee82eeff,\r\n WHEAT: 0xf5deb3ff,\r\n WHITE: 0xffffffff,\r\n WHITESMOKE: 0xf5f5f5ff,\r\n YELLOW: 0xffff00ff,\r\n YELLOWGREEN: 0x9acd32ff,\r\n };\r\n \r\n var backgroundClip = {\r\n name: \"background-clip\",\r\n initialValue: \"border-box\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case \"padding-box\":\r\n return 1 /* PADDING_BOX */;\r\n case \"content-box\":\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n },\r\n };\r\n \r\n var backgroundColor = {\r\n name: \"background-color\",\r\n initialValue: \"transparent\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"color\",\r\n };\r\n \r\n var parseColorStop = function (context, args) {\r\n var color = color$1.parse(context, args[0]);\r\n var stop = args[1];\r\n return stop && isLengthPercentage(stop)\r\n ? { color: color, stop: stop }\r\n : { color: color, stop: null };\r\n };\r\n var processColorStops = function (stops, lineLength) {\r\n var first = stops[0];\r\n var last = stops[stops.length - 1];\r\n if (first.stop === null) {\r\n first.stop = ZERO_LENGTH;\r\n }\r\n if (last.stop === null) {\r\n last.stop = HUNDRED_PERCENT;\r\n }\r\n var processStops = [];\r\n var previous = 0;\r\n for (var i = 0; i < stops.length; i++) {\r\n var stop_1 = stops[i].stop;\r\n if (stop_1 !== null) {\r\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\r\n if (absoluteValue > previous) {\r\n processStops.push(absoluteValue);\r\n } else {\r\n processStops.push(previous);\r\n }\r\n previous = absoluteValue;\r\n } else {\r\n processStops.push(null);\r\n }\r\n }\r\n var gapBegin = null;\r\n for (var i = 0; i < processStops.length; i++) {\r\n var stop_2 = processStops[i];\r\n if (stop_2 === null) {\r\n if (gapBegin === null) {\r\n gapBegin = i;\r\n }\r\n } else if (gapBegin !== null) {\r\n var gapLength = i - gapBegin;\r\n var beforeGap = processStops[gapBegin - 1];\r\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\r\n for (var g = 1; g <= gapLength; g++) {\r\n processStops[gapBegin + g - 1] = gapValue * g;\r\n }\r\n gapBegin = null;\r\n }\r\n }\r\n return stops.map(function (_a, i) {\r\n var color = _a.color;\r\n return {\r\n color: color,\r\n stop: Math.max(Math.min(1, processStops[i] / lineLength), 0),\r\n };\r\n });\r\n };\r\n var getAngleFromCorner = function (corner, width, height) {\r\n var centerX = width / 2;\r\n var centerY = height / 2;\r\n var x = getAbsoluteValue(corner[0], width) - centerX;\r\n var y = centerY - getAbsoluteValue(corner[1], height);\r\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\r\n };\r\n var calculateGradientDirection = function (angle, width, height) {\r\n var radian =\r\n typeof angle === \"number\"\r\n ? angle\r\n : getAngleFromCorner(angle, width, height);\r\n var lineLength =\r\n Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var halfLineLength = lineLength / 2;\r\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\r\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\r\n return [\r\n lineLength,\r\n halfWidth - xDiff,\r\n halfWidth + xDiff,\r\n halfHeight - yDiff,\r\n halfHeight + yDiff,\r\n ];\r\n };\r\n var distance = function (a, b) {\r\n return Math.sqrt(a * a + b * b);\r\n };\r\n var findCorner = function (width, height, x, y, closest) {\r\n var corners = [\r\n [0, 0],\r\n [0, height],\r\n [width, 0],\r\n [width, height],\r\n ];\r\n return corners.reduce(\r\n function (stat, corner) {\r\n var cx = corner[0],\r\n cy = corner[1];\r\n var d = distance(x - cx, y - cy);\r\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\r\n return {\r\n optimumCorner: corner,\r\n optimumDistance: d,\r\n };\r\n }\r\n return stat;\r\n },\r\n {\r\n optimumDistance: closest ? Infinity : -Infinity,\r\n optimumCorner: null,\r\n }\r\n ).optimumCorner;\r\n };\r\n var calculateRadius = function (gradient, x, y, width, height) {\r\n var rx = 0;\r\n var ry = 0;\r\n switch (gradient.size) {\r\n case 0 /* CLOSEST_SIDE */:\r\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\r\n if (gradient.shape === 0 /* CIRCLE */) {\r\n rx = ry = Math.min(\r\n Math.abs(x),\r\n Math.abs(x - width),\r\n Math.abs(y),\r\n Math.abs(y - height)\r\n );\r\n } else if (gradient.shape === 1 /* ELLIPSE */) {\r\n rx = Math.min(Math.abs(x), Math.abs(x - width));\r\n ry = Math.min(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case 2 /* CLOSEST_CORNER */:\r\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\r\n if (gradient.shape === 0 /* CIRCLE */) {\r\n rx = ry = Math.min(\r\n distance(x, y),\r\n distance(x, y - height),\r\n distance(x - width, y),\r\n distance(x - width, y - height)\r\n );\r\n } else if (gradient.shape === 1 /* ELLIPSE */) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\r\n var c =\r\n Math.min(Math.abs(y), Math.abs(y - height)) /\r\n Math.min(Math.abs(x), Math.abs(x - width));\r\n var _a = findCorner(width, height, x, y, true),\r\n cx = _a[0],\r\n cy = _a[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n case 1 /* FARTHEST_SIDE */:\r\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\r\n if (gradient.shape === 0 /* CIRCLE */) {\r\n rx = ry = Math.max(\r\n Math.abs(x),\r\n Math.abs(x - width),\r\n Math.abs(y),\r\n Math.abs(y - height)\r\n );\r\n } else if (gradient.shape === 1 /* ELLIPSE */) {\r\n rx = Math.max(Math.abs(x), Math.abs(x - width));\r\n ry = Math.max(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case 3 /* FARTHEST_CORNER */:\r\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\r\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\r\n if (gradient.shape === 0 /* CIRCLE */) {\r\n rx = ry = Math.max(\r\n distance(x, y),\r\n distance(x, y - height),\r\n distance(x - width, y),\r\n distance(x - width, y - height)\r\n );\r\n } else if (gradient.shape === 1 /* ELLIPSE */) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\r\n var c =\r\n Math.max(Math.abs(y), Math.abs(y - height)) /\r\n Math.max(Math.abs(x), Math.abs(x - width));\r\n var _b = findCorner(width, height, x, y, false),\r\n cx = _b[0],\r\n cy = _b[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n }\r\n if (Array.isArray(gradient.size)) {\r\n rx = getAbsoluteValue(gradient.size[0], width);\r\n ry =\r\n gradient.size.length === 2\r\n ? getAbsoluteValue(gradient.size[1], height)\r\n : rx;\r\n }\r\n return [rx, ry];\r\n };\r\n \r\n var linearGradient = function (context, tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (\r\n firstToken.type === 20 /* IDENT_TOKEN */ &&\r\n firstToken.value === \"to\"\r\n ) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n } else if (isAngle(firstToken)) {\r\n angle$1 = angle.parse(context, firstToken);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(context, arg);\r\n stops.push(colorStop);\r\n });\r\n return { angle: angle$1, stops: stops, type: 1 /* LINEAR_GRADIENT */ };\r\n };\r\n \r\n var prefixLinearGradient = function (context, tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (\r\n firstToken.type === 20 /* IDENT_TOKEN */ &&\r\n [\"top\", \"left\", \"right\", \"bottom\"].indexOf(firstToken.value) !== -1\r\n ) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n } else if (isAngle(firstToken)) {\r\n angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(context, arg);\r\n stops.push(colorStop);\r\n });\r\n return {\r\n angle: angle$1,\r\n stops: stops,\r\n type: 1 /* LINEAR_GRADIENT */,\r\n };\r\n };\r\n \r\n var webkitGradient = function (context, tokens) {\r\n var angle = deg(180);\r\n var stops = [];\r\n var type = 1; /* LINEAR_GRADIENT */\r\n var shape = 0; /* CIRCLE */\r\n var size = 3; /* FARTHEST_CORNER */\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var firstToken = arg[0];\r\n if (i === 0) {\r\n if (isIdentToken(firstToken) && firstToken.value === \"linear\") {\r\n type = 1 /* LINEAR_GRADIENT */;\r\n return;\r\n } else if (isIdentToken(firstToken) && firstToken.value === \"radial\") {\r\n type = 2 /* RADIAL_GRADIENT */;\r\n return;\r\n }\r\n }\r\n if (firstToken.type === 18 /* FUNCTION */) {\r\n if (firstToken.name === \"from\") {\r\n var color = color$1.parse(context, firstToken.values[0]);\r\n stops.push({ stop: ZERO_LENGTH, color: color });\r\n } else if (firstToken.name === \"to\") {\r\n var color = color$1.parse(context, firstToken.values[0]);\r\n stops.push({ stop: HUNDRED_PERCENT, color: color });\r\n } else if (firstToken.name === \"color-stop\") {\r\n var values = firstToken.values.filter(nonFunctionArgSeparator);\r\n if (values.length === 2) {\r\n var color = color$1.parse(context, values[1]);\r\n var stop_1 = values[0];\r\n if (isNumberToken(stop_1)) {\r\n stops.push({\r\n stop: {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n number: stop_1.number * 100,\r\n flags: stop_1.flags,\r\n },\r\n color: color,\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return type === 1 /* LINEAR_GRADIENT */\r\n ? {\r\n angle: (angle + deg(180)) % deg(360),\r\n stops: stops,\r\n type: type,\r\n }\r\n : {\r\n size: size,\r\n shape: shape,\r\n stops: stops,\r\n position: position,\r\n type: type,\r\n };\r\n };\r\n \r\n var CLOSEST_SIDE = \"closest-side\";\r\n var FARTHEST_SIDE = \"farthest-side\";\r\n var CLOSEST_CORNER = \"closest-corner\";\r\n var FARTHEST_CORNER = \"farthest-corner\";\r\n var CIRCLE = \"circle\";\r\n var ELLIPSE = \"ellipse\";\r\n var COVER = \"cover\";\r\n var CONTAIN = \"contain\";\r\n var radialGradient = function (context, tokens) {\r\n var shape = 0; /* CIRCLE */\r\n var size = 3; /* FARTHEST_CORNER */\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n var isAtPosition_1 = false;\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isAtPosition_1) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case \"center\":\r\n position.push(FIFTY_PERCENT);\r\n return acc;\r\n case \"top\":\r\n case \"left\":\r\n position.push(ZERO_LENGTH);\r\n return acc;\r\n case \"right\":\r\n case \"bottom\":\r\n position.push(HUNDRED_PERCENT);\r\n return acc;\r\n }\r\n } else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n }\r\n } else if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = 0 /* CIRCLE */;\r\n return false;\r\n case ELLIPSE:\r\n shape = 1 /* ELLIPSE */;\r\n return false;\r\n case \"at\":\r\n isAtPosition_1 = true;\r\n return false;\r\n case CLOSEST_SIDE:\r\n size = 0 /* CLOSEST_SIDE */;\r\n return false;\r\n case COVER:\r\n case FARTHEST_SIDE:\r\n size = 1 /* FARTHEST_SIDE */;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_CORNER:\r\n size = 2 /* CLOSEST_CORNER */;\r\n return false;\r\n case FARTHEST_CORNER:\r\n size = 3 /* FARTHEST_CORNER */;\r\n return false;\r\n }\r\n } else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(context, arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return {\r\n size: size,\r\n shape: shape,\r\n stops: stops,\r\n position: position,\r\n type: 2 /* RADIAL_GRADIENT */,\r\n };\r\n };\r\n \r\n var prefixRadialGradient = function (context, tokens) {\r\n var shape = 0; /* CIRCLE */\r\n var size = 3; /* FARTHEST_CORNER */\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case \"center\":\r\n position.push(FIFTY_PERCENT);\r\n return false;\r\n case \"top\":\r\n case \"left\":\r\n position.push(ZERO_LENGTH);\r\n return false;\r\n case \"right\":\r\n case \"bottom\":\r\n position.push(HUNDRED_PERCENT);\r\n return false;\r\n }\r\n } else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n } else if (i === 1) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = 0 /* CIRCLE */;\r\n return false;\r\n case ELLIPSE:\r\n shape = 1 /* ELLIPSE */;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_SIDE:\r\n size = 0 /* CLOSEST_SIDE */;\r\n return false;\r\n case FARTHEST_SIDE:\r\n size = 1 /* FARTHEST_SIDE */;\r\n return false;\r\n case CLOSEST_CORNER:\r\n size = 2 /* CLOSEST_CORNER */;\r\n return false;\r\n case COVER:\r\n case FARTHEST_CORNER:\r\n size = 3 /* FARTHEST_CORNER */;\r\n return false;\r\n }\r\n } else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(context, arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return {\r\n size: size,\r\n shape: shape,\r\n stops: stops,\r\n position: position,\r\n type: 2 /* RADIAL_GRADIENT */,\r\n };\r\n };\r\n \r\n var isLinearGradient = function (background) {\r\n return background.type === 1 /* LINEAR_GRADIENT */;\r\n };\r\n var isRadialGradient = function (background) {\r\n return background.type === 2 /* RADIAL_GRADIENT */;\r\n };\r\n var image = {\r\n name: \"image\",\r\n parse: function (context, value) {\r\n if (value.type === 22 /* URL_TOKEN */) {\r\n var image_1 = { url: value.value, type: 0 /* URL */ };\r\n context.cache.addImage(value.value);\r\n return image_1;\r\n }\r\n if (value.type === 18 /* FUNCTION */) {\r\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n if (typeof imageFunction === \"undefined\") {\r\n throw new Error(\r\n 'Attempting to parse an unsupported image function \"' +\r\n value.name +\r\n '\"'\r\n );\r\n }\r\n return imageFunction(context, value.values);\r\n }\r\n throw new Error(\"Unsupported image type \" + value.type);\r\n },\r\n };\r\n function isSupportedImage(value) {\r\n return (\r\n !(value.type === 20 /* IDENT_TOKEN */ && value.value === \"none\") &&\r\n (value.type !== 18 /* FUNCTION */ ||\r\n !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\r\n );\r\n }\r\n var SUPPORTED_IMAGE_FUNCTIONS = {\r\n \"linear-gradient\": linearGradient,\r\n \"-moz-linear-gradient\": prefixLinearGradient,\r\n \"-ms-linear-gradient\": prefixLinearGradient,\r\n \"-o-linear-gradient\": prefixLinearGradient,\r\n \"-webkit-linear-gradient\": prefixLinearGradient,\r\n \"radial-gradient\": radialGradient,\r\n \"-moz-radial-gradient\": prefixRadialGradient,\r\n \"-ms-radial-gradient\": prefixRadialGradient,\r\n \"-o-radial-gradient\": prefixRadialGradient,\r\n \"-webkit-radial-gradient\": prefixRadialGradient,\r\n \"-webkit-gradient\": webkitGradient,\r\n };\r\n \r\n var backgroundImage = {\r\n name: \"background-image\",\r\n initialValue: \"none\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (context, tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === \"none\") {\r\n return [];\r\n }\r\n return tokens\r\n .filter(function (value) {\r\n return nonFunctionArgSeparator(value) && isSupportedImage(value);\r\n })\r\n .map(function (value) {\r\n return image.parse(context, value);\r\n });\r\n },\r\n };\r\n \r\n var backgroundOrigin = {\r\n name: \"background-origin\",\r\n initialValue: \"border-box\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case \"padding-box\":\r\n return 1 /* PADDING_BOX */;\r\n case \"content-box\":\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n },\r\n };\r\n \r\n var backgroundPosition = {\r\n name: \"background-position\",\r\n initialValue: \"0% 0%\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (_context, tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values.filter(isLengthPercentage);\r\n })\r\n .map(parseLengthPercentageTuple);\r\n },\r\n };\r\n \r\n var backgroundRepeat = {\r\n name: \"background-repeat\",\r\n initialValue: \"repeat\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n return token.value;\r\n })\r\n .join(\" \");\r\n })\r\n .map(parseBackgroundRepeat);\r\n },\r\n };\r\n var parseBackgroundRepeat = function (value) {\r\n switch (value) {\r\n case \"no-repeat\":\r\n return 1 /* NO_REPEAT */;\r\n case \"repeat-x\":\r\n case \"repeat no-repeat\":\r\n return 2 /* REPEAT_X */;\r\n case \"repeat-y\":\r\n case \"no-repeat repeat\":\r\n return 3 /* REPEAT_Y */;\r\n case \"repeat\":\r\n default:\r\n return 0 /* REPEAT */;\r\n }\r\n };\r\n \r\n var BACKGROUND_SIZE;\r\n (function (BACKGROUND_SIZE) {\r\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\r\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\r\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\r\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\r\n var backgroundSize = {\r\n name: \"background-size\",\r\n initialValue: \"0\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n return values.filter(isBackgroundSizeInfoToken);\r\n });\r\n },\r\n };\r\n var isBackgroundSizeInfoToken = function (value) {\r\n return isIdentToken(value) || isLengthPercentage(value);\r\n };\r\n \r\n var borderColorForSide = function (side) {\r\n return {\r\n name: \"border-\" + side + \"-color\",\r\n initialValue: \"transparent\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"color\",\r\n };\r\n };\r\n var borderTopColor = borderColorForSide(\"top\");\r\n var borderRightColor = borderColorForSide(\"right\");\r\n var borderBottomColor = borderColorForSide(\"bottom\");\r\n var borderLeftColor = borderColorForSide(\"left\");\r\n \r\n var borderRadiusForSide = function (side) {\r\n return {\r\n name: \"border-radius-\" + side,\r\n initialValue: \"0 0\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return parseLengthPercentageTuple(tokens.filter(isLengthPercentage));\r\n },\r\n };\r\n };\r\n var borderTopLeftRadius = borderRadiusForSide(\"top-left\");\r\n var borderTopRightRadius = borderRadiusForSide(\"top-right\");\r\n var borderBottomRightRadius = borderRadiusForSide(\"bottom-right\");\r\n var borderBottomLeftRadius = borderRadiusForSide(\"bottom-left\");\r\n \r\n var borderStyleForSide = function (side) {\r\n return {\r\n name: \"border-\" + side + \"-style\",\r\n initialValue: \"solid\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, style) {\r\n switch (style) {\r\n case \"none\":\r\n return 0 /* NONE */;\r\n case \"dashed\":\r\n return 2 /* DASHED */;\r\n case \"dotted\":\r\n return 3 /* DOTTED */;\r\n case \"double\":\r\n return 4 /* DOUBLE */;\r\n }\r\n return 1 /* SOLID */;\r\n },\r\n };\r\n };\r\n var borderTopStyle = borderStyleForSide(\"top\");\r\n var borderRightStyle = borderStyleForSide(\"right\");\r\n var borderBottomStyle = borderStyleForSide(\"bottom\");\r\n var borderLeftStyle = borderStyleForSide(\"left\");\r\n \r\n var borderWidthForSide = function (side) {\r\n return {\r\n name: \"border-\" + side + \"-width\",\r\n initialValue: \"0\",\r\n type: 0 /* VALUE */,\r\n prefix: false,\r\n parse: function (_context, token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n },\r\n };\r\n };\r\n var borderTopWidth = borderWidthForSide(\"top\");\r\n var borderRightWidth = borderWidthForSide(\"right\");\r\n var borderBottomWidth = borderWidthForSide(\"bottom\");\r\n var borderLeftWidth = borderWidthForSide(\"left\");\r\n \r\n var color = {\r\n name: \"color\",\r\n initialValue: \"transparent\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"color\",\r\n };\r\n \r\n var direction = {\r\n name: \"direction\",\r\n initialValue: \"ltr\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, direction) {\r\n switch (direction) {\r\n case \"rtl\":\r\n return 1 /* RTL */;\r\n case \"ltr\":\r\n default:\r\n return 0 /* LTR */;\r\n }\r\n },\r\n };\r\n \r\n var display = {\r\n name: \"display\",\r\n initialValue: \"inline-block\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\r\n return bit | parseDisplayValue(token.value);\r\n }, 0 /* NONE */);\r\n },\r\n };\r\n var parseDisplayValue = function (display) {\r\n switch (display) {\r\n case \"block\":\r\n case \"-webkit-box\":\r\n return 2 /* BLOCK */;\r\n case \"inline\":\r\n return 4 /* INLINE */;\r\n case \"run-in\":\r\n return 8 /* RUN_IN */;\r\n case \"flow\":\r\n return 16 /* FLOW */;\r\n case \"flow-root\":\r\n return 32 /* FLOW_ROOT */;\r\n case \"table\":\r\n return 64 /* TABLE */;\r\n case \"flex\":\r\n case \"-webkit-flex\":\r\n return 128 /* FLEX */;\r\n case \"grid\":\r\n case \"-ms-grid\":\r\n return 256 /* GRID */;\r\n case \"ruby\":\r\n return 512 /* RUBY */;\r\n case \"subgrid\":\r\n return 1024 /* SUBGRID */;\r\n case \"list-item\":\r\n return 2048 /* LIST_ITEM */;\r\n case \"table-row-group\":\r\n return 4096 /* TABLE_ROW_GROUP */;\r\n case \"table-header-group\":\r\n return 8192 /* TABLE_HEADER_GROUP */;\r\n case \"table-footer-group\":\r\n return 16384 /* TABLE_FOOTER_GROUP */;\r\n case \"table-row\":\r\n return 32768 /* TABLE_ROW */;\r\n case \"table-cell\":\r\n return 65536 /* TABLE_CELL */;\r\n case \"table-column-group\":\r\n return 131072 /* TABLE_COLUMN_GROUP */;\r\n case \"table-column\":\r\n return 262144 /* TABLE_COLUMN */;\r\n case \"table-caption\":\r\n return 524288 /* TABLE_CAPTION */;\r\n case \"ruby-base\":\r\n return 1048576 /* RUBY_BASE */;\r\n case \"ruby-text\":\r\n return 2097152 /* RUBY_TEXT */;\r\n case \"ruby-base-container\":\r\n return 4194304 /* RUBY_BASE_CONTAINER */;\r\n case \"ruby-text-container\":\r\n return 8388608 /* RUBY_TEXT_CONTAINER */;\r\n case \"contents\":\r\n return 16777216 /* CONTENTS */;\r\n case \"inline-block\":\r\n return 33554432 /* INLINE_BLOCK */;\r\n case \"inline-list-item\":\r\n return 67108864 /* INLINE_LIST_ITEM */;\r\n case \"inline-table\":\r\n return 134217728 /* INLINE_TABLE */;\r\n case \"inline-flex\":\r\n return 268435456 /* INLINE_FLEX */;\r\n case \"inline-grid\":\r\n return 536870912 /* INLINE_GRID */;\r\n }\r\n return 0 /* NONE */;\r\n };\r\n \r\n var float = {\r\n name: \"float\",\r\n initialValue: \"none\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, float) {\r\n switch (float) {\r\n case \"left\":\r\n return 1 /* LEFT */;\r\n case \"right\":\r\n return 2 /* RIGHT */;\r\n case \"inline-start\":\r\n return 3 /* INLINE_START */;\r\n case \"inline-end\":\r\n return 4 /* INLINE_END */;\r\n }\r\n return 0 /* NONE */;\r\n },\r\n };\r\n \r\n var letterSpacing = {\r\n name: \"letter-spacing\",\r\n initialValue: \"0\",\r\n prefix: false,\r\n type: 0 /* VALUE */,\r\n parse: function (_context, token) {\r\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === \"normal\") {\r\n return 0;\r\n }\r\n if (token.type === 17 /* NUMBER_TOKEN */) {\r\n return token.number;\r\n }\r\n if (token.type === 15 /* DIMENSION_TOKEN */) {\r\n return token.number;\r\n }\r\n return 0;\r\n },\r\n };\r\n \r\n var LINE_BREAK;\r\n (function (LINE_BREAK) {\r\n LINE_BREAK[\"NORMAL\"] = \"normal\";\r\n LINE_BREAK[\"STRICT\"] = \"strict\";\r\n })(LINE_BREAK || (LINE_BREAK = {}));\r\n var lineBreak = {\r\n name: \"line-break\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, lineBreak) {\r\n switch (lineBreak) {\r\n case \"strict\":\r\n return LINE_BREAK.STRICT;\r\n case \"normal\":\r\n default:\r\n return LINE_BREAK.NORMAL;\r\n }\r\n },\r\n };\r\n \r\n var lineHeight = {\r\n name: \"line-height\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 4 /* TOKEN_VALUE */,\r\n };\r\n var computeLineHeight = function (token, fontSize) {\r\n if (isIdentToken(token) && token.value === \"normal\") {\r\n return 1.2 * fontSize;\r\n } else if (token.type === 17 /* NUMBER_TOKEN */) {\r\n return fontSize * token.number;\r\n } else if (isLengthPercentage(token)) {\r\n return getAbsoluteValue(token, fontSize);\r\n }\r\n return fontSize;\r\n };\r\n \r\n var listStyleImage = {\r\n name: \"list-style-image\",\r\n initialValue: \"none\",\r\n type: 0 /* VALUE */,\r\n prefix: false,\r\n parse: function (context, token) {\r\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === \"none\") {\r\n return null;\r\n }\r\n return image.parse(context, token);\r\n },\r\n };\r\n \r\n var listStylePosition = {\r\n name: \"list-style-position\",\r\n initialValue: \"outside\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, position) {\r\n switch (position) {\r\n case \"inside\":\r\n return 0 /* INSIDE */;\r\n case \"outside\":\r\n default:\r\n return 1 /* OUTSIDE */;\r\n }\r\n },\r\n };\r\n \r\n var listStyleType = {\r\n name: \"list-style-type\",\r\n initialValue: \"none\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, type) {\r\n switch (type) {\r\n case \"disc\":\r\n return 0 /* DISC */;\r\n case \"circle\":\r\n return 1 /* CIRCLE */;\r\n case \"square\":\r\n return 2 /* SQUARE */;\r\n case \"decimal\":\r\n return 3 /* DECIMAL */;\r\n case \"cjk-decimal\":\r\n return 4 /* CJK_DECIMAL */;\r\n case \"decimal-leading-zero\":\r\n return 5 /* DECIMAL_LEADING_ZERO */;\r\n case \"lower-roman\":\r\n return 6 /* LOWER_ROMAN */;\r\n case \"upper-roman\":\r\n return 7 /* UPPER_ROMAN */;\r\n case \"lower-greek\":\r\n return 8 /* LOWER_GREEK */;\r\n case \"lower-alpha\":\r\n return 9 /* LOWER_ALPHA */;\r\n case \"upper-alpha\":\r\n return 10 /* UPPER_ALPHA */;\r\n case \"arabic-indic\":\r\n return 11 /* ARABIC_INDIC */;\r\n case \"armenian\":\r\n return 12 /* ARMENIAN */;\r\n case \"bengali\":\r\n return 13 /* BENGALI */;\r\n case \"cambodian\":\r\n return 14 /* CAMBODIAN */;\r\n case \"cjk-earthly-branch\":\r\n return 15 /* CJK_EARTHLY_BRANCH */;\r\n case \"cjk-heavenly-stem\":\r\n return 16 /* CJK_HEAVENLY_STEM */;\r\n case \"cjk-ideographic\":\r\n return 17 /* CJK_IDEOGRAPHIC */;\r\n case \"devanagari\":\r\n return 18 /* DEVANAGARI */;\r\n case \"ethiopic-numeric\":\r\n return 19 /* ETHIOPIC_NUMERIC */;\r\n case \"georgian\":\r\n return 20 /* GEORGIAN */;\r\n case \"gujarati\":\r\n return 21 /* GUJARATI */;\r\n case \"gurmukhi\":\r\n return 22 /* GURMUKHI */;\r\n case \"hebrew\":\r\n return 22 /* HEBREW */;\r\n case \"hiragana\":\r\n return 23 /* HIRAGANA */;\r\n case \"hiragana-iroha\":\r\n return 24 /* HIRAGANA_IROHA */;\r\n case \"japanese-formal\":\r\n return 25 /* JAPANESE_FORMAL */;\r\n case \"japanese-informal\":\r\n return 26 /* JAPANESE_INFORMAL */;\r\n case \"kannada\":\r\n return 27 /* KANNADA */;\r\n case \"katakana\":\r\n return 28 /* KATAKANA */;\r\n case \"katakana-iroha\":\r\n return 29 /* KATAKANA_IROHA */;\r\n case \"khmer\":\r\n return 30 /* KHMER */;\r\n case \"korean-hangul-formal\":\r\n return 31 /* KOREAN_HANGUL_FORMAL */;\r\n case \"korean-hanja-formal\":\r\n return 32 /* KOREAN_HANJA_FORMAL */;\r\n case \"korean-hanja-informal\":\r\n return 33 /* KOREAN_HANJA_INFORMAL */;\r\n case \"lao\":\r\n return 34 /* LAO */;\r\n case \"lower-armenian\":\r\n return 35 /* LOWER_ARMENIAN */;\r\n case \"malayalam\":\r\n return 36 /* MALAYALAM */;\r\n case \"mongolian\":\r\n return 37 /* MONGOLIAN */;\r\n case \"myanmar\":\r\n return 38 /* MYANMAR */;\r\n case \"oriya\":\r\n return 39 /* ORIYA */;\r\n case \"persian\":\r\n return 40 /* PERSIAN */;\r\n case \"simp-chinese-formal\":\r\n return 41 /* SIMP_CHINESE_FORMAL */;\r\n case \"simp-chinese-informal\":\r\n return 42 /* SIMP_CHINESE_INFORMAL */;\r\n case \"tamil\":\r\n return 43 /* TAMIL */;\r\n case \"telugu\":\r\n return 44 /* TELUGU */;\r\n case \"thai\":\r\n return 45 /* THAI */;\r\n case \"tibetan\":\r\n return 46 /* TIBETAN */;\r\n case \"trad-chinese-formal\":\r\n return 47 /* TRAD_CHINESE_FORMAL */;\r\n case \"trad-chinese-informal\":\r\n return 48 /* TRAD_CHINESE_INFORMAL */;\r\n case \"upper-armenian\":\r\n return 49 /* UPPER_ARMENIAN */;\r\n case \"disclosure-open\":\r\n return 50 /* DISCLOSURE_OPEN */;\r\n case \"disclosure-closed\":\r\n return 51 /* DISCLOSURE_CLOSED */;\r\n case \"none\":\r\n default:\r\n return -1 /* NONE */;\r\n }\r\n },\r\n };\r\n \r\n var marginForSide = function (side) {\r\n return {\r\n name: \"margin-\" + side,\r\n initialValue: \"0\",\r\n prefix: false,\r\n type: 4 /* TOKEN_VALUE */,\r\n };\r\n };\r\n var marginTop = marginForSide(\"top\");\r\n var marginRight = marginForSide(\"right\");\r\n var marginBottom = marginForSide(\"bottom\");\r\n var marginLeft = marginForSide(\"left\");\r\n \r\n var overflow = {\r\n name: \"overflow\",\r\n initialValue: \"visible\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return tokens.filter(isIdentToken).map(function (overflow) {\r\n switch (overflow.value) {\r\n case \"hidden\":\r\n return 1 /* HIDDEN */;\r\n case \"scroll\":\r\n return 2 /* SCROLL */;\r\n case \"clip\":\r\n return 3 /* CLIP */;\r\n case \"auto\":\r\n return 4 /* AUTO */;\r\n case \"visible\":\r\n default:\r\n return 0 /* VISIBLE */;\r\n }\r\n });\r\n },\r\n };\r\n \r\n var overflowWrap = {\r\n name: \"overflow-wrap\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, overflow) {\r\n switch (overflow) {\r\n case \"break-word\":\r\n return \"break-word\" /* BREAK_WORD */;\r\n case \"normal\":\r\n default:\r\n return \"normal\" /* NORMAL */;\r\n }\r\n },\r\n };\r\n \r\n var paddingForSide = function (side) {\r\n return {\r\n name: \"padding-\" + side,\r\n initialValue: \"0\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"length-percentage\",\r\n };\r\n };\r\n var paddingTop = paddingForSide(\"top\");\r\n var paddingRight = paddingForSide(\"right\");\r\n var paddingBottom = paddingForSide(\"bottom\");\r\n var paddingLeft = paddingForSide(\"left\");\r\n \r\n var textAlign = {\r\n name: \"text-align\",\r\n initialValue: \"left\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, textAlign) {\r\n switch (textAlign) {\r\n case \"right\":\r\n return 2 /* RIGHT */;\r\n case \"center\":\r\n case \"justify\":\r\n return 1 /* CENTER */;\r\n case \"left\":\r\n default:\r\n return 0 /* LEFT */;\r\n }\r\n },\r\n };\r\n \r\n var position = {\r\n name: \"position\",\r\n initialValue: \"static\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, position) {\r\n switch (position) {\r\n case \"relative\":\r\n return 1 /* RELATIVE */;\r\n case \"absolute\":\r\n return 2 /* ABSOLUTE */;\r\n case \"fixed\":\r\n return 3 /* FIXED */;\r\n case \"sticky\":\r\n return 4 /* STICKY */;\r\n }\r\n return 0 /* STATIC */;\r\n },\r\n };\r\n \r\n var textShadow = {\r\n name: \"text-shadow\",\r\n initialValue: \"none\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (context, tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], \"none\")) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: COLORS.TRANSPARENT,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n } else if (c === 1) {\r\n shadow.offsetY = token;\r\n } else {\r\n shadow.blur = token;\r\n }\r\n c++;\r\n } else {\r\n shadow.color = color$1.parse(context, token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n },\r\n };\r\n \r\n var textTransform = {\r\n name: \"text-transform\",\r\n initialValue: \"none\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, textTransform) {\r\n switch (textTransform) {\r\n case \"uppercase\":\r\n return 2 /* UPPERCASE */;\r\n case \"lowercase\":\r\n return 1 /* LOWERCASE */;\r\n case \"capitalize\":\r\n return 3 /* CAPITALIZE */;\r\n }\r\n return 0 /* NONE */;\r\n },\r\n };\r\n \r\n var transform$1 = {\r\n name: \"transform\",\r\n initialValue: \"none\",\r\n prefix: true,\r\n type: 0 /* VALUE */,\r\n parse: function (_context, token) {\r\n if (token.type === 20 /* IDENT_TOKEN */ && token.value === \"none\") {\r\n return null;\r\n }\r\n if (token.type === 18 /* FUNCTION */) {\r\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\r\n if (typeof transformFunction === \"undefined\") {\r\n throw new Error(\r\n 'Attempting to parse an unsupported transform function \"' +\r\n token.name +\r\n '\"'\r\n );\r\n }\r\n return transformFunction(token.values);\r\n }\r\n return null;\r\n },\r\n };\r\n var matrix = function (args) {\r\n var values = args\r\n .filter(function (arg) {\r\n return arg.type === 17 /* NUMBER_TOKEN */;\r\n })\r\n .map(function (arg) {\r\n return arg.number;\r\n });\r\n return values.length === 6 ? values : null;\r\n };\r\n // doesn't support 3D transforms at the moment\r\n var matrix3d = function (args) {\r\n var values = args\r\n .filter(function (arg) {\r\n return arg.type === 17 /* NUMBER_TOKEN */;\r\n })\r\n .map(function (arg) {\r\n return arg.number;\r\n });\r\n var a1 = values[0],\r\n b1 = values[1];\r\n values[2];\r\n values[3];\r\n var a2 = values[4],\r\n b2 = values[5];\r\n values[6];\r\n values[7];\r\n values[8];\r\n values[9];\r\n values[10];\r\n values[11];\r\n var a4 = values[12],\r\n b4 = values[13];\r\n values[14];\r\n values[15];\r\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\r\n };\r\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\r\n matrix: matrix,\r\n matrix3d: matrix3d,\r\n };\r\n \r\n var DEFAULT_VALUE = {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n number: 50,\r\n flags: FLAG_INTEGER,\r\n };\r\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\r\n var transformOrigin = {\r\n name: \"transform-origin\",\r\n initialValue: \"50% 50%\",\r\n prefix: true,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n var origins = tokens.filter(isLengthPercentage);\r\n if (origins.length !== 2) {\r\n return DEFAULT;\r\n }\r\n return [origins[0], origins[1]];\r\n },\r\n };\r\n \r\n var visibility = {\r\n name: \"visible\",\r\n initialValue: \"none\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, visibility) {\r\n switch (visibility) {\r\n case \"hidden\":\r\n return 1 /* HIDDEN */;\r\n case \"collapse\":\r\n return 2 /* COLLAPSE */;\r\n case \"visible\":\r\n default:\r\n return 0 /* VISIBLE */;\r\n }\r\n },\r\n };\r\n \r\n var WORD_BREAK;\r\n (function (WORD_BREAK) {\r\n WORD_BREAK[\"NORMAL\"] = \"normal\";\r\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\r\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\r\n })(WORD_BREAK || (WORD_BREAK = {}));\r\n var wordBreak = {\r\n name: \"word-break\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, wordBreak) {\r\n switch (wordBreak) {\r\n case \"break-all\":\r\n return WORD_BREAK.BREAK_ALL;\r\n case \"keep-all\":\r\n return WORD_BREAK.KEEP_ALL;\r\n case \"normal\":\r\n default:\r\n return WORD_BREAK.NORMAL;\r\n }\r\n },\r\n };\r\n \r\n var zIndex = {\r\n name: \"z-index\",\r\n initialValue: \"auto\",\r\n prefix: false,\r\n type: 0 /* VALUE */,\r\n parse: function (_context, token) {\r\n if (token.type === 20 /* IDENT_TOKEN */) {\r\n return { auto: true, order: 0 };\r\n }\r\n if (isNumberToken(token)) {\r\n return { auto: false, order: token.number };\r\n }\r\n throw new Error(\"Invalid z-index number parsed\");\r\n },\r\n };\r\n \r\n var time = {\r\n name: \"time\",\r\n parse: function (_context, value) {\r\n if (value.type === 15 /* DIMENSION_TOKEN */) {\r\n switch (value.unit.toLowerCase()) {\r\n case \"s\":\r\n return 1000 * value.number;\r\n case \"ms\":\r\n return value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported time type\");\r\n },\r\n };\r\n \r\n var opacity = {\r\n name: \"opacity\",\r\n initialValue: \"1\",\r\n type: 0 /* VALUE */,\r\n prefix: false,\r\n parse: function (_context, token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n return 1;\r\n },\r\n };\r\n \r\n var textDecorationColor = {\r\n name: \"text-decoration-color\",\r\n initialValue: \"transparent\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"color\",\r\n };\r\n \r\n var textDecorationLine = {\r\n name: \"text-decoration-line\",\r\n initialValue: \"none\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n return tokens\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n switch (token.value) {\r\n case \"underline\":\r\n return 1 /* UNDERLINE */;\r\n case \"overline\":\r\n return 2 /* OVERLINE */;\r\n case \"line-through\":\r\n return 3 /* LINE_THROUGH */;\r\n case \"none\":\r\n return 4 /* BLINK */;\r\n }\r\n return 0 /* NONE */;\r\n })\r\n .filter(function (line) {\r\n return line !== 0 /* NONE */;\r\n });\r\n },\r\n };\r\n \r\n var fontFamily = {\r\n name: \"font-family\",\r\n initialValue: \"\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n var accumulator = [];\r\n var results = [];\r\n tokens.forEach(function (token) {\r\n switch (token.type) {\r\n case 20 /* IDENT_TOKEN */:\r\n case 0 /* STRING_TOKEN */:\r\n accumulator.push(token.value);\r\n break;\r\n case 17 /* NUMBER_TOKEN */:\r\n accumulator.push(token.number.toString());\r\n break;\r\n case 4 /* COMMA_TOKEN */:\r\n results.push(accumulator.join(\" \"));\r\n accumulator.length = 0;\r\n break;\r\n }\r\n });\r\n if (accumulator.length) {\r\n results.push(accumulator.join(\" \"));\r\n }\r\n return results.map(function (result) {\r\n return result.indexOf(\" \") === -1 ? result : \"'\" + result + \"'\";\r\n });\r\n },\r\n };\r\n \r\n var fontSize = {\r\n name: \"font-size\",\r\n initialValue: \"0\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"length\",\r\n };\r\n \r\n var fontWeight = {\r\n name: \"font-weight\",\r\n initialValue: \"normal\",\r\n type: 0 /* VALUE */,\r\n prefix: false,\r\n parse: function (_context, token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case \"bold\":\r\n return 700;\r\n case \"normal\":\r\n default:\r\n return 400;\r\n }\r\n }\r\n return 400;\r\n },\r\n };\r\n \r\n var fontVariant = {\r\n name: \"font-variant\",\r\n initialValue: \"none\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (_context, tokens) {\r\n return tokens.filter(isIdentToken).map(function (token) {\r\n return token.value;\r\n });\r\n },\r\n };\r\n \r\n var fontStyle = {\r\n name: \"font-style\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 2 /* IDENT_VALUE */,\r\n parse: function (_context, overflow) {\r\n switch (overflow) {\r\n case \"oblique\":\r\n return \"oblique\" /* OBLIQUE */;\r\n case \"italic\":\r\n return \"italic\" /* ITALIC */;\r\n case \"normal\":\r\n default:\r\n return \"normal\" /* NORMAL */;\r\n }\r\n },\r\n };\r\n \r\n var contains = function (bit, value) {\r\n return (bit & value) !== 0;\r\n };\r\n \r\n var content = {\r\n name: \"content\",\r\n initialValue: \"none\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (_context, tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === \"none\") {\r\n return [];\r\n }\r\n return tokens;\r\n },\r\n };\r\n \r\n var counterIncrement = {\r\n name: \"counter-increment\",\r\n initialValue: \"none\",\r\n prefix: true,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === \"none\") {\r\n return null;\r\n }\r\n var increments = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (counter.type === 20 /* IDENT_TOKEN */) {\r\n var increment = next && isNumberToken(next) ? next.number : 1;\r\n increments.push({ counter: counter.value, increment: increment });\r\n }\r\n }\r\n return increments;\r\n },\r\n };\r\n \r\n var counterReset = {\r\n name: \"counter-reset\",\r\n initialValue: \"none\",\r\n prefix: true,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var resets = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (isIdentToken(counter) && counter.value !== \"none\") {\r\n var reset = next && isNumberToken(next) ? next.number : 0;\r\n resets.push({ counter: counter.value, reset: reset });\r\n }\r\n }\r\n return resets;\r\n },\r\n };\r\n \r\n var duration = {\r\n name: \"duration\",\r\n initialValue: \"0s\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (context, tokens) {\r\n return tokens.filter(isDimensionToken).map(function (token) {\r\n return time.parse(context, token);\r\n });\r\n },\r\n };\r\n \r\n var quotes = {\r\n name: \"quotes\",\r\n initialValue: \"none\",\r\n prefix: true,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === 20 /* IDENT_TOKEN */ && first.value === \"none\") {\r\n return null;\r\n }\r\n var quotes = [];\r\n var filtered = tokens.filter(isStringToken);\r\n if (filtered.length % 2 !== 0) {\r\n return null;\r\n }\r\n for (var i = 0; i < filtered.length; i += 2) {\r\n var open_1 = filtered[i].value;\r\n var close_1 = filtered[i + 1].value;\r\n quotes.push({ open: open_1, close: close_1 });\r\n }\r\n return quotes;\r\n },\r\n };\r\n var getQuote = function (quotes, depth, open) {\r\n if (!quotes) {\r\n return \"\";\r\n }\r\n var quote = quotes[Math.min(depth, quotes.length - 1)];\r\n if (!quote) {\r\n return \"\";\r\n }\r\n return open ? quote.open : quote.close;\r\n };\r\n \r\n var boxShadow = {\r\n name: \"box-shadow\",\r\n initialValue: \"none\",\r\n type: 1 /* LIST */,\r\n prefix: false,\r\n parse: function (context, tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], \"none\")) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: 0x000000ff,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n spread: ZERO_LENGTH,\r\n inset: false,\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isIdentWithValue(token, \"inset\")) {\r\n shadow.inset = true;\r\n } else if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n } else if (c === 1) {\r\n shadow.offsetY = token;\r\n } else if (c === 2) {\r\n shadow.blur = token;\r\n } else {\r\n shadow.spread = token;\r\n }\r\n c++;\r\n } else {\r\n shadow.color = color$1.parse(context, token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n },\r\n };\r\n \r\n var paintOrder = {\r\n name: \"paint-order\",\r\n initialValue: \"normal\",\r\n prefix: false,\r\n type: 1 /* LIST */,\r\n parse: function (_context, tokens) {\r\n var DEFAULT_VALUE = [0 /* FILL */, 1 /* STROKE */, 2 /* MARKERS */];\r\n var layers = [];\r\n tokens.filter(isIdentToken).forEach(function (token) {\r\n switch (token.value) {\r\n case \"stroke\":\r\n layers.push(1 /* STROKE */);\r\n break;\r\n case \"fill\":\r\n layers.push(0 /* FILL */);\r\n break;\r\n case \"markers\":\r\n layers.push(2 /* MARKERS */);\r\n break;\r\n }\r\n });\r\n DEFAULT_VALUE.forEach(function (value) {\r\n if (layers.indexOf(value) === -1) {\r\n layers.push(value);\r\n }\r\n });\r\n return layers;\r\n },\r\n };\r\n \r\n var webkitTextStrokeColor = {\r\n name: \"-webkit-text-stroke-color\",\r\n initialValue: \"currentcolor\",\r\n prefix: false,\r\n type: 3 /* TYPE_VALUE */,\r\n format: \"color\",\r\n };\r\n \r\n var webkitTextStrokeWidth = {\r\n name: \"-webkit-text-stroke-width\",\r\n initialValue: \"0\",\r\n type: 0 /* VALUE */,\r\n prefix: false,\r\n parse: function (_context, token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n },\r\n };\r\n \r\n var CSSParsedDeclaration = /** @class */ (function () {\r\n function CSSParsedDeclaration(context, declaration) {\r\n var _a, _b;\r\n this.animationDuration = parse(\r\n context,\r\n duration,\r\n declaration.animationDuration\r\n );\r\n this.backgroundClip = parse(\r\n context,\r\n backgroundClip,\r\n declaration.backgroundClip\r\n );\r\n this.backgroundColor = parse(\r\n context,\r\n backgroundColor,\r\n declaration.backgroundColor\r\n );\r\n this.backgroundImage = parse(\r\n context,\r\n backgroundImage,\r\n declaration.backgroundImage\r\n );\r\n this.backgroundOrigin = parse(\r\n context,\r\n backgroundOrigin,\r\n declaration.backgroundOrigin\r\n );\r\n this.backgroundPosition = parse(\r\n context,\r\n backgroundPosition,\r\n declaration.backgroundPosition\r\n );\r\n this.backgroundRepeat = parse(\r\n context,\r\n backgroundRepeat,\r\n declaration.backgroundRepeat\r\n );\r\n this.backgroundSize = parse(\r\n context,\r\n backgroundSize,\r\n declaration.backgroundSize\r\n );\r\n this.borderTopColor = parse(\r\n context,\r\n borderTopColor,\r\n declaration.borderTopColor\r\n );\r\n this.borderRightColor = parse(\r\n context,\r\n borderRightColor,\r\n declaration.borderRightColor\r\n );\r\n this.borderBottomColor = parse(\r\n context,\r\n borderBottomColor,\r\n declaration.borderBottomColor\r\n );\r\n this.borderLeftColor = parse(\r\n context,\r\n borderLeftColor,\r\n declaration.borderLeftColor\r\n );\r\n this.borderTopLeftRadius = parse(\r\n context,\r\n borderTopLeftRadius,\r\n declaration.borderTopLeftRadius\r\n );\r\n this.borderTopRightRadius = parse(\r\n context,\r\n borderTopRightRadius,\r\n declaration.borderTopRightRadius\r\n );\r\n this.borderBottomRightRadius = parse(\r\n context,\r\n borderBottomRightRadius,\r\n declaration.borderBottomRightRadius\r\n );\r\n this.borderBottomLeftRadius = parse(\r\n context,\r\n borderBottomLeftRadius,\r\n declaration.borderBottomLeftRadius\r\n );\r\n this.borderTopStyle = parse(\r\n context,\r\n borderTopStyle,\r\n declaration.borderTopStyle\r\n );\r\n this.borderRightStyle = parse(\r\n context,\r\n borderRightStyle,\r\n declaration.borderRightStyle\r\n );\r\n this.borderBottomStyle = parse(\r\n context,\r\n borderBottomStyle,\r\n declaration.borderBottomStyle\r\n );\r\n this.borderLeftStyle = parse(\r\n context,\r\n borderLeftStyle,\r\n declaration.borderLeftStyle\r\n );\r\n this.borderTopWidth = parse(\r\n context,\r\n borderTopWidth,\r\n declaration.borderTopWidth\r\n );\r\n this.borderRightWidth = parse(\r\n context,\r\n borderRightWidth,\r\n declaration.borderRightWidth\r\n );\r\n this.borderBottomWidth = parse(\r\n context,\r\n borderBottomWidth,\r\n declaration.borderBottomWidth\r\n );\r\n this.borderLeftWidth = parse(\r\n context,\r\n borderLeftWidth,\r\n declaration.borderLeftWidth\r\n );\r\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\r\n this.color = parse(context, color, declaration.color);\r\n this.direction = parse(context, direction, declaration.direction);\r\n this.display = parse(context, display, declaration.display);\r\n this.float = parse(context, float, declaration.cssFloat);\r\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\r\n this.fontSize = parse(context, fontSize, declaration.fontSize);\r\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\r\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\r\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\r\n this.letterSpacing = parse(\r\n context,\r\n letterSpacing,\r\n declaration.letterSpacing\r\n );\r\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\r\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\r\n this.listStyleImage = parse(\r\n context,\r\n listStyleImage,\r\n declaration.listStyleImage\r\n );\r\n this.listStylePosition = parse(\r\n context,\r\n listStylePosition,\r\n declaration.listStylePosition\r\n );\r\n this.listStyleType = parse(\r\n context,\r\n listStyleType,\r\n declaration.listStyleType\r\n );\r\n this.marginTop = parse(context, marginTop, declaration.marginTop);\r\n this.marginRight = parse(context, marginRight, declaration.marginRight);\r\n this.marginBottom = parse(\r\n context,\r\n marginBottom,\r\n declaration.marginBottom\r\n );\r\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\r\n this.opacity = parse(context, opacity, declaration.opacity);\r\n var overflowTuple = parse(context, overflow, declaration.overflow);\r\n this.overflowX = overflowTuple[0];\r\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\r\n this.overflowWrap = parse(\r\n context,\r\n overflowWrap,\r\n declaration.overflowWrap\r\n );\r\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\r\n this.paddingRight = parse(\r\n context,\r\n paddingRight,\r\n declaration.paddingRight\r\n );\r\n this.paddingBottom = parse(\r\n context,\r\n paddingBottom,\r\n declaration.paddingBottom\r\n );\r\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\r\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\r\n this.position = parse(context, position, declaration.position);\r\n this.textAlign = parse(context, textAlign, declaration.textAlign);\r\n this.textDecorationColor = parse(\r\n context,\r\n textDecorationColor,\r\n (_a = declaration.textDecorationColor) !== null && _a !== void 0\r\n ? _a\r\n : declaration.color\r\n );\r\n this.textDecorationLine = parse(\r\n context,\r\n textDecorationLine,\r\n (_b = declaration.textDecorationLine) !== null && _b !== void 0\r\n ? _b\r\n : declaration.textDecoration\r\n );\r\n this.textShadow = parse(context, textShadow, declaration.textShadow);\r\n this.textTransform = parse(\r\n context,\r\n textTransform,\r\n declaration.textTransform\r\n );\r\n this.transform = parse(context, transform$1, declaration.transform);\r\n this.transformOrigin = parse(\r\n context,\r\n transformOrigin,\r\n declaration.transformOrigin\r\n );\r\n this.visibility = parse(context, visibility, declaration.visibility);\r\n this.webkitTextStrokeColor = parse(\r\n context,\r\n webkitTextStrokeColor,\r\n declaration.webkitTextStrokeColor\r\n );\r\n this.webkitTextStrokeWidth = parse(\r\n context,\r\n webkitTextStrokeWidth,\r\n declaration.webkitTextStrokeWidth\r\n );\r\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\r\n this.zIndex = parse(context, zIndex, declaration.zIndex);\r\n }\r\n CSSParsedDeclaration.prototype.isVisible = function () {\r\n return (\r\n this.display > 0 &&\r\n this.opacity > 0 &&\r\n this.visibility === 0 /* VISIBLE */\r\n );\r\n };\r\n CSSParsedDeclaration.prototype.isTransparent = function () {\r\n return isTransparent(this.backgroundColor);\r\n };\r\n CSSParsedDeclaration.prototype.isTransformed = function () {\r\n return this.transform !== null;\r\n };\r\n CSSParsedDeclaration.prototype.isPositioned = function () {\r\n return this.position !== 0 /* STATIC */;\r\n };\r\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\r\n return this.isPositioned() && !this.zIndex.auto;\r\n };\r\n CSSParsedDeclaration.prototype.isFloating = function () {\r\n return this.float !== 0 /* NONE */;\r\n };\r\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\r\n return (\r\n contains(this.display, 4 /* INLINE */) ||\r\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\r\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\r\n contains(this.display, 536870912 /* INLINE_GRID */) ||\r\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\r\n contains(this.display, 134217728 /* INLINE_TABLE */)\r\n );\r\n };\r\n return CSSParsedDeclaration;\r\n })();\r\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\r\n function CSSParsedPseudoDeclaration(context, declaration) {\r\n this.content = parse(context, content, declaration.content);\r\n this.quotes = parse(context, quotes, declaration.quotes);\r\n }\r\n return CSSParsedPseudoDeclaration;\r\n })();\r\n var CSSParsedCounterDeclaration = /** @class */ (function () {\r\n function CSSParsedCounterDeclaration(context, declaration) {\r\n this.counterIncrement = parse(\r\n context,\r\n counterIncrement,\r\n declaration.counterIncrement\r\n );\r\n this.counterReset = parse(\r\n context,\r\n counterReset,\r\n declaration.counterReset\r\n );\r\n }\r\n return CSSParsedCounterDeclaration;\r\n })();\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var parse = function (context, descriptor, style) {\r\n var tokenizer = new Tokenizer();\r\n var value =\r\n style !== null && typeof style !== \"undefined\"\r\n ? style.toString()\r\n : descriptor.initialValue;\r\n tokenizer.write(value);\r\n var parser = new Parser(tokenizer.read());\r\n switch (descriptor.type) {\r\n case 2 /* IDENT_VALUE */:\r\n var token = parser.parseComponentValue();\r\n return descriptor.parse(\r\n context,\r\n isIdentToken(token) ? token.value : descriptor.initialValue\r\n );\r\n case 0 /* VALUE */:\r\n return descriptor.parse(context, parser.parseComponentValue());\r\n case 1 /* LIST */:\r\n return descriptor.parse(context, parser.parseComponentValues());\r\n case 4 /* TOKEN_VALUE */:\r\n return parser.parseComponentValue();\r\n case 3 /* TYPE_VALUE */:\r\n switch (descriptor.format) {\r\n case \"angle\":\r\n return angle.parse(context, parser.parseComponentValue());\r\n case \"color\":\r\n return color$1.parse(context, parser.parseComponentValue());\r\n case \"image\":\r\n return image.parse(context, parser.parseComponentValue());\r\n case \"length\":\r\n var length_1 = parser.parseComponentValue();\r\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\r\n case \"length-percentage\":\r\n var value_1 = parser.parseComponentValue();\r\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\r\n case \"time\":\r\n return time.parse(context, parser.parseComponentValue());\r\n }\r\n break;\r\n }\r\n };\r\n \r\n var elementDebuggerAttribute = \"data-html2canvas-debug\";\r\n var getElementDebugType = function (element) {\r\n var attribute = element.getAttribute(elementDebuggerAttribute);\r\n switch (attribute) {\r\n case \"all\":\r\n return 1 /* ALL */;\r\n case \"clone\":\r\n return 2 /* CLONE */;\r\n case \"parse\":\r\n return 3 /* PARSE */;\r\n case \"render\":\r\n return 4 /* RENDER */;\r\n default:\r\n return 0 /* NONE */;\r\n }\r\n };\r\n var isDebugging = function (element, type) {\r\n var elementType = getElementDebugType(element);\r\n return elementType === 1 /* ALL */ || type === elementType;\r\n };\r\n \r\n var ElementContainer = /** @class */ (function () {\r\n function ElementContainer(context, element) {\r\n this.context = context;\r\n this.textNodes = [];\r\n this.elements = [];\r\n this.flags = 0;\r\n if (isDebugging(element, 3 /* PARSE */)) {\r\n debugger;\r\n }\r\n this.styles = new CSSParsedDeclaration(\r\n context,\r\n window.getComputedStyle(element, null)\r\n );\r\n if (isHTMLElementNode(element)) {\r\n if (\r\n this.styles.animationDuration.some(function (duration) {\r\n return duration > 0;\r\n })\r\n ) {\r\n element.style.animationDuration = \"0s\";\r\n }\r\n if (this.styles.transform !== null) {\r\n // getBoundingClientRect takes transforms into account\r\n element.style.transform = \"none\";\r\n }\r\n }\r\n this.bounds = parseBounds(this.context, element);\r\n if (isDebugging(element, 4 /* RENDER */)) {\r\n this.flags |= 16 /* DEBUG_RENDER */;\r\n }\r\n }\r\n return ElementContainer;\r\n })();\r\n \r\n /*\r\n * text-segmentation 1.0.3 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var base64 =\r\n \"AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=\";\r\n \r\n /*\r\n * utrie 1.0.2 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var chars$1 =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Use a lookup table to find the index.\r\n var lookup$1 = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\r\n for (var i$1 = 0; i$1 < chars$1.length; i$1++) {\r\n lookup$1[chars$1.charCodeAt(i$1)] = i$1;\r\n }\r\n var decode = function (base64) {\r\n var bufferLength = base64.length * 0.75,\r\n len = base64.length,\r\n i,\r\n p = 0,\r\n encoded1,\r\n encoded2,\r\n encoded3,\r\n encoded4;\r\n if (base64[base64.length - 1] === \"=\") {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === \"=\") {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer =\r\n typeof ArrayBuffer !== \"undefined\" &&\r\n typeof Uint8Array !== \"undefined\" &&\r\n typeof Uint8Array.prototype.slice !== \"undefined\"\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup$1[base64.charCodeAt(i)];\r\n encoded2 = lookup$1[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup$1[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup$1[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push(\r\n (buffer[i + 3] << 24) |\r\n (buffer[i + 2] << 16) |\r\n (buffer[i + 1] << 8) |\r\n buffer[i]\r\n );\r\n }\r\n return bytes;\r\n };\r\n \r\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH =\r\n UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH =\r\n 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET =\r\n UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\r\n var slice16 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64 = function (base64, _byteLength) {\r\n var buffer = decode(base64);\r\n var view32 = Array.isArray(buffer)\r\n ? polyUint32Array(buffer)\r\n : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer)\r\n ? polyUint16Array(buffer)\r\n : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\r\n var data =\r\n view32[5] === 2\r\n ? slice16(view16, (headerLength + view32[4]) / 2)\r\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie = /** @class */ (function () {\r\n function Trie(\r\n initialValue,\r\n errorValue,\r\n highStart,\r\n highValueIndex,\r\n index,\r\n data\r\n ) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (\r\n codePoint < 0x0d800 ||\r\n (codePoint > 0x0dbff && codePoint <= 0x0ffff)\r\n ) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix =\r\n this.index[\r\n UTRIE2_LSCP_INDEX_2_OFFSET +\r\n ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)\r\n ];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix =\r\n UTRIE2_INDEX_1_OFFSET -\r\n UTRIE2_OMITTED_BMP_INDEX_1_LENGTH +\r\n (codePoint >> UTRIE2_SHIFT_1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n })();\r\n \r\n /*\r\n * base64-arraybuffer 1.0.2 \r\n * Copyright (c) 2022 Niklas von Hertzen \r\n * Released under MIT License\r\n */\r\n var chars =\r\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Use a lookup table to find the index.\r\n var lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\r\n for (var i = 0; i < chars.length; i++) {\r\n lookup[chars.charCodeAt(i)] = i;\r\n }\r\n \r\n var Prepend = 1;\r\n var CR = 2;\r\n var LF = 3;\r\n var Control = 4;\r\n var Extend = 5;\r\n var SpacingMark = 7;\r\n var L = 8;\r\n var V = 9;\r\n var T = 10;\r\n var LV = 11;\r\n var LVT = 12;\r\n var ZWJ = 13;\r\n var Extended_Pictographic = 14;\r\n var RI = 15;\r\n var toCodePoints = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n } else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n } else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return \"\";\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = \"\";\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n } else {\r\n codePoint -= 0x10000;\r\n codeUnits.push(\r\n (codePoint >> 10) + 0xd800,\r\n (codePoint % 0x400) + 0xdc00\r\n );\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var UnicodeTrie = createTrieFromBase64(base64);\r\n var BREAK_NOT_ALLOWED = \"×\";\r\n var BREAK_ALLOWED = \"÷\";\r\n var codePointToClass = function (codePoint) {\r\n return UnicodeTrie.get(codePoint);\r\n };\r\n var _graphemeBreakAtIndex = function (_codePoints, classTypes, index) {\r\n var prevIndex = index - 2;\r\n var prev = classTypes[prevIndex];\r\n var current = classTypes[index - 1];\r\n var next = classTypes[index];\r\n // GB3 Do not break between a CR and LF\r\n if (current === CR && next === LF) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB4 Otherwise, break before and after controls.\r\n if (current === CR || current === LF || current === Control) {\r\n return BREAK_ALLOWED;\r\n }\r\n // GB5\r\n if (next === CR || next === LF || next === Control) {\r\n return BREAK_ALLOWED;\r\n }\r\n // Do not break Hangul syllable sequences.\r\n // GB6\r\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB7\r\n if ((current === LV || current === V) && (next === V || next === T)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB8\r\n if ((current === LVT || current === T) && next === T) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB9 Do not break before extending characters or ZWJ.\r\n if (next === ZWJ || next === Extend) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // Do not break before SpacingMarks, or after Prepend characters.\r\n // GB9a\r\n if (next === SpacingMark) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB9a\r\n if (current === Prepend) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\r\n if (current === ZWJ && next === Extended_Pictographic) {\r\n while (prev === Extend) {\r\n prev = classTypes[--prevIndex];\r\n }\r\n if (prev === Extended_Pictographic) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n // GB12 Do not break within emoji flag sequences.\r\n // That is, do not break between regional indicator (RI) symbols\r\n // if there is an odd number of RI characters before the break point.\r\n if (current === RI && next === RI) {\r\n var countRI = 0;\r\n while (prev === RI) {\r\n countRI++;\r\n prev = classTypes[--prevIndex];\r\n }\r\n if (countRI % 2 === 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n return BREAK_ALLOWED;\r\n };\r\n var GraphemeBreaker = function (str) {\r\n var codePoints = toCodePoints(str);\r\n var length = codePoints.length;\r\n var index = 0;\r\n var lastEnd = 0;\r\n var classTypes = codePoints.map(codePointToClass);\r\n return {\r\n next: function () {\r\n if (index >= length) {\r\n return { done: true, value: null };\r\n }\r\n var graphemeBreak = BREAK_NOT_ALLOWED;\r\n while (\r\n index < length &&\r\n (graphemeBreak = _graphemeBreakAtIndex(\r\n codePoints,\r\n classTypes,\r\n ++index\r\n )) === BREAK_NOT_ALLOWED\r\n ) {}\r\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\r\n var value = fromCodePoint.apply(\r\n null,\r\n codePoints.slice(lastEnd, index)\r\n );\r\n lastEnd = index;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\r\n var splitGraphemes = function (str) {\r\n var breaker = GraphemeBreaker(str);\r\n var graphemes = [];\r\n var bk;\r\n while (!(bk = breaker.next()).done) {\r\n if (bk.value) {\r\n graphemes.push(bk.value.slice());\r\n }\r\n }\r\n return graphemes;\r\n };\r\n \r\n var testRangeBounds = function (document) {\r\n var TEST_HEIGHT = 123;\r\n if (document.createRange) {\r\n var range = document.createRange();\r\n if (range.getBoundingClientRect) {\r\n var testElement = document.createElement(\"boundtest\");\r\n testElement.style.height = TEST_HEIGHT + \"px\";\r\n testElement.style.display = \"block\";\r\n document.body.appendChild(testElement);\r\n range.selectNode(testElement);\r\n var rangeBounds = range.getBoundingClientRect();\r\n var rangeHeight = Math.round(rangeBounds.height);\r\n document.body.removeChild(testElement);\r\n if (rangeHeight === TEST_HEIGHT) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var testIOSLineBreak = function (document) {\r\n var testElement = document.createElement(\"boundtest\");\r\n testElement.style.width = \"50px\";\r\n testElement.style.display = \"block\";\r\n testElement.style.fontSize = \"12px\";\r\n testElement.style.letterSpacing = \"0px\";\r\n testElement.style.wordSpacing = \"0px\";\r\n document.body.appendChild(testElement);\r\n var range = document.createRange();\r\n testElement.innerHTML =\r\n typeof \"\".repeat === \"function\" ? \"👨\".repeat(10) : \"\";\r\n var node = testElement.firstChild;\r\n var textList = toCodePoints$1(node.data).map(function (i) {\r\n return fromCodePoint$1(i);\r\n });\r\n var offset = 0;\r\n var prev = {};\r\n // ios 13 does not handle range getBoundingClientRect line changes correctly #2177\r\n var supports = textList.every(function (text, i) {\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + text.length);\r\n var rect = range.getBoundingClientRect();\r\n offset += text.length;\r\n var boundAhead = rect.x > prev.x || rect.y > prev.y;\r\n prev = rect;\r\n if (i === 0) {\r\n return true;\r\n }\r\n return boundAhead;\r\n });\r\n document.body.removeChild(testElement);\r\n return supports;\r\n };\r\n var testCORS = function () {\r\n return typeof new Image().crossOrigin !== \"undefined\";\r\n };\r\n var testResponseType = function () {\r\n return typeof new XMLHttpRequest().responseType === \"string\";\r\n };\r\n var testSVG = function (document) {\r\n var img = new Image();\r\n var canvas = document.createElement(\"canvas\");\r\n var ctx = canvas.getContext(\"2d\");\r\n if (!ctx) {\r\n return false;\r\n }\r\n img.src =\r\n \"data:image/svg+xml,\";\r\n try {\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toDataURL();\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isGreenPixel = function (data) {\r\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\r\n };\r\n var testForeignObject = function (document) {\r\n var canvas = document.createElement(\"canvas\");\r\n var size = 100;\r\n canvas.width = size;\r\n canvas.height = size;\r\n var ctx = canvas.getContext(\"2d\");\r\n if (!ctx) {\r\n return Promise.reject(false);\r\n }\r\n ctx.fillStyle = \"rgb(0, 255, 0)\";\r\n ctx.fillRect(0, 0, size, size);\r\n var img = new Image();\r\n var greenImageSrc = canvas.toDataURL();\r\n img.src = greenImageSrc;\r\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\r\n ctx.fillStyle = \"red\";\r\n ctx.fillRect(0, 0, size, size);\r\n return loadSerializedSVG$1(svg)\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n var data = ctx.getImageData(0, 0, size, size).data;\r\n ctx.fillStyle = \"red\";\r\n ctx.fillRect(0, 0, size, size);\r\n var node = document.createElement(\"div\");\r\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\r\n node.style.height = size + \"px\";\r\n // Firefox 55 does not render inline tags\r\n return isGreenPixel(data)\r\n ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node))\r\n : Promise.reject(false);\r\n })\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n // Edge does not render background-images\r\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\r\n })\r\n .catch(function () {\r\n return false;\r\n });\r\n };\r\n var createForeignObjectSVG = function (width, height, x, y, node) {\r\n var xmlns = \"http://www.w3.org/2000/svg\";\r\n var svg = document.createElementNS(xmlns, \"svg\");\r\n var foreignObject = document.createElementNS(xmlns, \"foreignObject\");\r\n svg.setAttributeNS(null, \"width\", width.toString());\r\n svg.setAttributeNS(null, \"height\", height.toString());\r\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\r\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\r\n foreignObject.setAttributeNS(null, \"x\", x.toString());\r\n foreignObject.setAttributeNS(null, \"y\", y.toString());\r\n foreignObject.setAttributeNS(null, \"externalResourcesRequired\", \"true\");\r\n svg.appendChild(foreignObject);\r\n foreignObject.appendChild(node);\r\n return svg;\r\n };\r\n var loadSerializedSVG$1 = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () {\r\n return resolve(img);\r\n };\r\n img.onerror = reject;\r\n img.src =\r\n \"data:image/svg+xml;charset=utf-8,\" +\r\n encodeURIComponent(new XMLSerializer().serializeToString(svg));\r\n });\r\n };\r\n var FEATURES = {\r\n get SUPPORT_RANGE_BOUNDS() {\r\n var value = testRangeBounds(document);\r\n Object.defineProperty(FEATURES, \"SUPPORT_RANGE_BOUNDS\", { value: value });\r\n return value;\r\n },\r\n get SUPPORT_WORD_BREAKING() {\r\n var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\r\n Object.defineProperty(FEATURES, \"SUPPORT_WORD_BREAKING\", {\r\n value: value,\r\n });\r\n return value;\r\n },\r\n get SUPPORT_SVG_DRAWING() {\r\n var value = testSVG(document);\r\n Object.defineProperty(FEATURES, \"SUPPORT_SVG_DRAWING\", { value: value });\r\n return value;\r\n },\r\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\r\n var value =\r\n typeof Array.from === \"function\" && typeof window.fetch === \"function\"\r\n ? testForeignObject(document)\r\n : Promise.resolve(false);\r\n Object.defineProperty(FEATURES, \"SUPPORT_FOREIGNOBJECT_DRAWING\", {\r\n value: value,\r\n });\r\n return value;\r\n },\r\n get SUPPORT_CORS_IMAGES() {\r\n var value = testCORS();\r\n Object.defineProperty(FEATURES, \"SUPPORT_CORS_IMAGES\", { value: value });\r\n return value;\r\n },\r\n get SUPPORT_RESPONSE_TYPE() {\r\n var value = testResponseType();\r\n Object.defineProperty(FEATURES, \"SUPPORT_RESPONSE_TYPE\", {\r\n value: value,\r\n });\r\n return value;\r\n },\r\n get SUPPORT_CORS_XHR() {\r\n var value = \"withCredentials\" in new XMLHttpRequest();\r\n Object.defineProperty(FEATURES, \"SUPPORT_CORS_XHR\", { value: value });\r\n return value;\r\n },\r\n get SUPPORT_NATIVE_TEXT_SEGMENTATION() {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var value = !!(typeof Intl !== \"undefined\" && Intl.Segmenter);\r\n Object.defineProperty(FEATURES, \"SUPPORT_NATIVE_TEXT_SEGMENTATION\", {\r\n value: value,\r\n });\r\n return value;\r\n },\r\n };\r\n \r\n var TextBounds = /** @class */ (function () {\r\n function TextBounds(text, bounds) {\r\n this.text = text;\r\n this.bounds = bounds;\r\n }\r\n return TextBounds;\r\n })();\r\n var parseTextBounds = function (context, value, styles, node) {\r\n var textList = breakText(value, styles);\r\n var textBounds = [];\r\n var offset = 0;\r\n textList.forEach(function (text) {\r\n if (styles.textDecorationLine.length || text.trim().length > 0) {\r\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n var clientRects = createRange(\r\n node,\r\n offset,\r\n text.length\r\n ).getClientRects();\r\n if (clientRects.length > 1) {\r\n var subSegments = segmentGraphemes(text);\r\n var subOffset_1 = 0;\r\n subSegments.forEach(function (subSegment) {\r\n textBounds.push(\r\n new TextBounds(\r\n subSegment,\r\n Bounds.fromDOMRectList(\r\n context,\r\n createRange(\r\n node,\r\n subOffset_1 + offset,\r\n subSegment.length\r\n ).getClientRects()\r\n )\r\n )\r\n );\r\n subOffset_1 += subSegment.length;\r\n });\r\n } else {\r\n textBounds.push(\r\n new TextBounds(text, Bounds.fromDOMRectList(context, clientRects))\r\n );\r\n }\r\n } else {\r\n var replacementNode = node.splitText(text.length);\r\n textBounds.push(\r\n new TextBounds(text, getWrapperBounds(context, node))\r\n );\r\n node = replacementNode;\r\n }\r\n } else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n node = node.splitText(text.length);\r\n }\r\n offset += text.length;\r\n });\r\n return textBounds;\r\n };\r\n var getWrapperBounds = function (context, node) {\r\n var ownerDocument = node.ownerDocument;\r\n if (ownerDocument) {\r\n var wrapper = ownerDocument.createElement(\"html2canvaswrapper\");\r\n wrapper.appendChild(node.cloneNode(true));\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.replaceChild(wrapper, node);\r\n var bounds = parseBounds(context, wrapper);\r\n if (wrapper.firstChild) {\r\n parentNode.replaceChild(wrapper.firstChild, wrapper);\r\n }\r\n return bounds;\r\n }\r\n }\r\n return Bounds.EMPTY;\r\n };\r\n var createRange = function (node, offset, length) {\r\n var ownerDocument = node.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error(\"Node has no owner document\");\r\n }\r\n var range = ownerDocument.createRange();\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + length);\r\n return range;\r\n };\r\n var segmentGraphemes = function (value) {\r\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var segmenter = new Intl.Segmenter(void 0, { granularity: \"grapheme\" });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return Array.from(segmenter.segment(value)).map(function (segment) {\r\n return segment.segment;\r\n });\r\n }\r\n return splitGraphemes(value);\r\n };\r\n var segmentWords = function (value, styles) {\r\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var segmenter = new Intl.Segmenter(void 0, {\r\n granularity: \"word\",\r\n });\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return Array.from(segmenter.segment(value)).map(function (segment) {\r\n return segment.segment;\r\n });\r\n }\r\n return breakWords(value, styles);\r\n };\r\n var breakText = function (value, styles) {\r\n return styles.letterSpacing !== 0\r\n ? segmentGraphemes(value)\r\n : segmentWords(value, styles);\r\n };\r\n // https://drafts.csswg.org/css-text/#word-separator\r\n var wordSeparators = [\r\n 0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091,\r\n ];\r\n var breakWords = function (str, styles) {\r\n var breaker = LineBreaker(str, {\r\n lineBreak: styles.lineBreak,\r\n wordBreak:\r\n styles.overflowWrap === \"break-word\" /* BREAK_WORD */\r\n ? \"break-word\"\r\n : styles.wordBreak,\r\n });\r\n var words = [];\r\n var bk;\r\n var _loop_1 = function () {\r\n if (bk.value) {\r\n var value = bk.value.slice();\r\n var codePoints = toCodePoints$1(value);\r\n var word_1 = \"\";\r\n codePoints.forEach(function (codePoint) {\r\n if (wordSeparators.indexOf(codePoint) === -1) {\r\n word_1 += fromCodePoint$1(codePoint);\r\n } else {\r\n if (word_1.length) {\r\n words.push(word_1);\r\n }\r\n words.push(fromCodePoint$1(codePoint));\r\n word_1 = \"\";\r\n }\r\n });\r\n if (word_1.length) {\r\n words.push(word_1);\r\n }\r\n }\r\n };\r\n while (!(bk = breaker.next()).done) {\r\n _loop_1();\r\n }\r\n return words;\r\n };\r\n \r\n var TextContainer = /** @class */ (function () {\r\n function TextContainer(context, node, styles) {\r\n this.text = transform(node.data, styles.textTransform);\r\n this.textBounds = parseTextBounds(context, this.text, styles, node);\r\n }\r\n return TextContainer;\r\n })();\r\n var transform = function (text, transform) {\r\n switch (transform) {\r\n case 1 /* LOWERCASE */:\r\n return text.toLowerCase();\r\n case 3 /* CAPITALIZE */:\r\n return text.replace(CAPITALIZE, capitalize);\r\n case 2 /* UPPERCASE */:\r\n return text.toUpperCase();\r\n default:\r\n return text;\r\n }\r\n };\r\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\r\n var capitalize = function (m, p1, p2) {\r\n if (m.length > 0) {\r\n return p1 + p2.toUpperCase();\r\n }\r\n return m;\r\n };\r\n \r\n var ImageElementContainer = /** @class */ (function (_super) {\r\n __extends(ImageElementContainer, _super);\r\n function ImageElementContainer(context, img) {\r\n var _this = _super.call(this, context, img) || this;\r\n _this.src = img.currentSrc || img.src;\r\n _this.intrinsicWidth = img.naturalWidth;\r\n _this.intrinsicHeight = img.naturalHeight;\r\n _this.context.cache.addImage(_this.src);\r\n return _this;\r\n }\r\n return ImageElementContainer;\r\n })(ElementContainer);\r\n \r\n var CanvasElementContainer = /** @class */ (function (_super) {\r\n __extends(CanvasElementContainer, _super);\r\n function CanvasElementContainer(context, canvas) {\r\n var _this = _super.call(this, context, canvas) || this;\r\n _this.canvas = canvas;\r\n _this.intrinsicWidth = canvas.width;\r\n _this.intrinsicHeight = canvas.height;\r\n return _this;\r\n }\r\n return CanvasElementContainer;\r\n })(ElementContainer);\r\n \r\n var SVGElementContainer = /** @class */ (function (_super) {\r\n __extends(SVGElementContainer, _super);\r\n function SVGElementContainer(context, img) {\r\n var _this = _super.call(this, context, img) || this;\r\n var s = new XMLSerializer();\r\n var bounds = parseBounds(context, img);\r\n img.setAttribute(\"width\", bounds.width + \"px\");\r\n img.setAttribute(\"height\", bounds.height + \"px\");\r\n _this.svg =\r\n \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\r\n _this.intrinsicWidth = img.width.baseVal.value;\r\n _this.intrinsicHeight = img.height.baseVal.value;\r\n _this.context.cache.addImage(_this.svg);\r\n return _this;\r\n }\r\n return SVGElementContainer;\r\n })(ElementContainer);\r\n \r\n var LIElementContainer = /** @class */ (function (_super) {\r\n __extends(LIElementContainer, _super);\r\n function LIElementContainer(context, element) {\r\n var _this = _super.call(this, context, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return LIElementContainer;\r\n })(ElementContainer);\r\n \r\n var OLElementContainer = /** @class */ (function (_super) {\r\n __extends(OLElementContainer, _super);\r\n function OLElementContainer(context, element) {\r\n var _this = _super.call(this, context, element) || this;\r\n _this.start = element.start;\r\n _this.reversed =\r\n typeof element.reversed === \"boolean\" && element.reversed === true;\r\n return _this;\r\n }\r\n return OLElementContainer;\r\n })(ElementContainer);\r\n \r\n var CHECKBOX_BORDER_RADIUS = [\r\n {\r\n type: 15 /* DIMENSION_TOKEN */,\r\n flags: 0,\r\n unit: \"px\",\r\n number: 3,\r\n },\r\n ];\r\n var RADIO_BORDER_RADIUS = [\r\n {\r\n type: 16 /* PERCENTAGE_TOKEN */,\r\n flags: 0,\r\n number: 50,\r\n },\r\n ];\r\n var reformatInputBounds = function (bounds) {\r\n if (bounds.width > bounds.height) {\r\n return new Bounds(\r\n bounds.left + (bounds.width - bounds.height) / 2,\r\n bounds.top,\r\n bounds.height,\r\n bounds.height\r\n );\r\n } else if (bounds.width < bounds.height) {\r\n return new Bounds(\r\n bounds.left,\r\n bounds.top + (bounds.height - bounds.width) / 2,\r\n bounds.width,\r\n bounds.width\r\n );\r\n }\r\n return bounds;\r\n };\r\n var getInputValue = function (node) {\r\n var value =\r\n node.type === PINPUT\r\n ? new Array(node.value.length + 1).join(\"\\u2022\")\r\n : node.value;\r\n return value.length === 0 ? node.placeholder || \"\" : value;\r\n };\r\n var CHECKBOX = \"checkbox\";\r\n var RADIO = \"radio\";\r\n var PINPUT = \"password\";\r\n var INPUT_COLOR = 0x2a2a2aff;\r\n var InputElementContainer = /** @class */ (function (_super) {\r\n __extends(InputElementContainer, _super);\r\n function InputElementContainer(context, input) {\r\n var _this = _super.call(this, context, input) || this;\r\n _this.type = input.type.toLowerCase();\r\n _this.checked = input.checked;\r\n _this.value = getInputValue(input);\r\n if (_this.type === CHECKBOX || _this.type === RADIO) {\r\n _this.styles.backgroundColor = 0xdededeff;\r\n _this.styles.borderTopColor =\r\n _this.styles.borderRightColor =\r\n _this.styles.borderBottomColor =\r\n _this.styles.borderLeftColor =\r\n 0xa5a5a5ff;\r\n _this.styles.borderTopWidth =\r\n _this.styles.borderRightWidth =\r\n _this.styles.borderBottomWidth =\r\n _this.styles.borderLeftWidth =\r\n 1;\r\n _this.styles.borderTopStyle =\r\n _this.styles.borderRightStyle =\r\n _this.styles.borderBottomStyle =\r\n _this.styles.borderLeftStyle =\r\n 1 /* SOLID */;\r\n _this.styles.backgroundClip = [0 /* BORDER_BOX */];\r\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\r\n _this.bounds = reformatInputBounds(_this.bounds);\r\n }\r\n switch (_this.type) {\r\n case CHECKBOX:\r\n _this.styles.borderTopRightRadius =\r\n _this.styles.borderTopLeftRadius =\r\n _this.styles.borderBottomRightRadius =\r\n _this.styles.borderBottomLeftRadius =\r\n CHECKBOX_BORDER_RADIUS;\r\n break;\r\n case RADIO:\r\n _this.styles.borderTopRightRadius =\r\n _this.styles.borderTopLeftRadius =\r\n _this.styles.borderBottomRightRadius =\r\n _this.styles.borderBottomLeftRadius =\r\n RADIO_BORDER_RADIUS;\r\n break;\r\n }\r\n return _this;\r\n }\r\n return InputElementContainer;\r\n })(ElementContainer);\r\n \r\n var SelectElementContainer = /** @class */ (function (_super) {\r\n __extends(SelectElementContainer, _super);\r\n function SelectElementContainer(context, element) {\r\n var _this = _super.call(this, context, element) || this;\r\n var option = element.options[element.selectedIndex || 0];\r\n _this.value = option ? option.text || \"\" : \"\";\r\n return _this;\r\n }\r\n return SelectElementContainer;\r\n })(ElementContainer);\r\n \r\n var TextareaElementContainer = /** @class */ (function (_super) {\r\n __extends(TextareaElementContainer, _super);\r\n function TextareaElementContainer(context, element) {\r\n var _this = _super.call(this, context, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return TextareaElementContainer;\r\n })(ElementContainer);\r\n \r\n var IFrameElementContainer = /** @class */ (function (_super) {\r\n __extends(IFrameElementContainer, _super);\r\n function IFrameElementContainer(context, iframe) {\r\n var _this = _super.call(this, context, iframe) || this;\r\n _this.src = iframe.src;\r\n _this.width = parseInt(iframe.width, 10) || 0;\r\n _this.height = parseInt(iframe.height, 10) || 0;\r\n _this.backgroundColor = _this.styles.backgroundColor;\r\n try {\r\n if (\r\n iframe.contentWindow &&\r\n iframe.contentWindow.document &&\r\n iframe.contentWindow.document.documentElement\r\n ) {\r\n _this.tree = parseTree(\r\n context,\r\n iframe.contentWindow.document.documentElement\r\n );\r\n // http://www.w3.org/TR/css3-background/#special-backgrounds\r\n var documentBackgroundColor = iframe.contentWindow.document\r\n .documentElement\r\n ? parseColor(\r\n context,\r\n getComputedStyle(iframe.contentWindow.document.documentElement)\r\n .backgroundColor\r\n )\r\n : COLORS.TRANSPARENT;\r\n var bodyBackgroundColor = iframe.contentWindow.document.body\r\n ? parseColor(\r\n context,\r\n getComputedStyle(iframe.contentWindow.document.body)\r\n .backgroundColor\r\n )\r\n : COLORS.TRANSPARENT;\r\n _this.backgroundColor = isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? _this.styles.backgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor;\r\n }\r\n } catch (e) {}\r\n return _this;\r\n }\r\n return IFrameElementContainer;\r\n })(ElementContainer);\r\n \r\n var LIST_OWNERS = [\"OL\", \"UL\", \"MENU\"];\r\n var parseNodeTree = function (context, node, parent, root) {\r\n for (\r\n var childNode = node.firstChild, nextNode = void 0;\r\n childNode;\r\n childNode = nextNode\r\n ) {\r\n nextNode = childNode.nextSibling;\r\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\r\n parent.textNodes.push(\r\n new TextContainer(context, childNode, parent.styles)\r\n );\r\n } else if (isElementNode(childNode)) {\r\n if (isSlotElement(childNode) && childNode.assignedNodes) {\r\n childNode.assignedNodes().forEach(function (childNode) {\r\n return parseNodeTree(context, childNode, parent, root);\r\n });\r\n } else {\r\n var container = createContainer(context, childNode);\r\n if (container.styles.isVisible()) {\r\n if (createsRealStackingContext(childNode, container, root)) {\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n } else if (createsStackingContext(container.styles)) {\r\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\r\n }\r\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\r\n container.flags |= 8 /* IS_LIST_OWNER */;\r\n }\r\n parent.elements.push(container);\r\n childNode.slot;\r\n if (childNode.shadowRoot) {\r\n parseNodeTree(context, childNode.shadowRoot, container, root);\r\n } else if (\r\n !isTextareaElement(childNode) &&\r\n !isSVGElement(childNode) &&\r\n !isSelectElement(childNode)\r\n ) {\r\n parseNodeTree(context, childNode, container, root);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var createContainer = function (context, element) {\r\n if (isImageElement(element)) {\r\n return new ImageElementContainer(context, element);\r\n }\r\n if (isCanvasElement(element)) {\r\n return new CanvasElementContainer(context, element);\r\n }\r\n if (isSVGElement(element)) {\r\n return new SVGElementContainer(context, element);\r\n }\r\n if (isLIElement(element)) {\r\n return new LIElementContainer(context, element);\r\n }\r\n if (isOLElement(element)) {\r\n return new OLElementContainer(context, element);\r\n }\r\n if (isInputElement(element)) {\r\n return new InputElementContainer(context, element);\r\n }\r\n if (isSelectElement(element)) {\r\n return new SelectElementContainer(context, element);\r\n }\r\n if (isTextareaElement(element)) {\r\n return new TextareaElementContainer(context, element);\r\n }\r\n if (isIFrameElement(element)) {\r\n return new IFrameElementContainer(context, element);\r\n }\r\n return new ElementContainer(context, element);\r\n };\r\n var parseTree = function (context, element) {\r\n var container = createContainer(context, element);\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n parseNodeTree(context, element, container, container);\r\n return container;\r\n };\r\n var createsRealStackingContext = function (node, container, root) {\r\n return (\r\n container.styles.isPositionedWithZIndex() ||\r\n container.styles.opacity < 1 ||\r\n container.styles.isTransformed() ||\r\n (isBodyElement(node) && root.styles.isTransparent())\r\n );\r\n };\r\n var createsStackingContext = function (styles) {\r\n return styles.isPositioned() || styles.isFloating();\r\n };\r\n var isTextNode = function (node) {\r\n return node.nodeType === Node.TEXT_NODE;\r\n };\r\n var isElementNode = function (node) {\r\n return node.nodeType === Node.ELEMENT_NODE;\r\n };\r\n var isHTMLElementNode = function (node) {\r\n return (\r\n isElementNode(node) &&\r\n typeof node.style !== \"undefined\" &&\r\n !isSVGElementNode(node)\r\n );\r\n };\r\n var isSVGElementNode = function (element) {\r\n return typeof element.className === \"object\";\r\n };\r\n var isLIElement = function (node) {\r\n return node.tagName === \"LI\";\r\n };\r\n var isOLElement = function (node) {\r\n return node.tagName === \"OL\";\r\n };\r\n var isInputElement = function (node) {\r\n return node.tagName === \"INPUT\";\r\n };\r\n var isHTMLElement = function (node) {\r\n return node.tagName === \"HTML\";\r\n };\r\n var isSVGElement = function (node) {\r\n return node.tagName === \"svg\";\r\n };\r\n var isBodyElement = function (node) {\r\n return node.tagName === \"BODY\";\r\n };\r\n var isCanvasElement = function (node) {\r\n return node.tagName === \"CANVAS\";\r\n };\r\n var isVideoElement = function (node) {\r\n return node.tagName === \"VIDEO\";\r\n };\r\n var isImageElement = function (node) {\r\n return node.tagName === \"IMG\";\r\n };\r\n var isIFrameElement = function (node) {\r\n return node.tagName === \"IFRAME\";\r\n };\r\n var isStyleElement = function (node) {\r\n return node.tagName === \"STYLE\";\r\n };\r\n var isScriptElement = function (node) {\r\n return node.tagName === \"SCRIPT\";\r\n };\r\n var isTextareaElement = function (node) {\r\n return node.tagName === \"TEXTAREA\";\r\n };\r\n var isSelectElement = function (node) {\r\n return node.tagName === \"SELECT\";\r\n };\r\n var isSlotElement = function (node) {\r\n return node.tagName === \"SLOT\";\r\n };\r\n // https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\r\n var isCustomElement = function (node) {\r\n return node.tagName.indexOf(\"-\") > 0;\r\n };\r\n \r\n var CounterState = /** @class */ (function () {\r\n function CounterState() {\r\n this.counters = {};\r\n }\r\n CounterState.prototype.getCounterValue = function (name) {\r\n var counter = this.counters[name];\r\n if (counter && counter.length) {\r\n return counter[counter.length - 1];\r\n }\r\n return 1;\r\n };\r\n CounterState.prototype.getCounterValues = function (name) {\r\n var counter = this.counters[name];\r\n return counter ? counter : [];\r\n };\r\n CounterState.prototype.pop = function (counters) {\r\n var _this = this;\r\n counters.forEach(function (counter) {\r\n return _this.counters[counter].pop();\r\n });\r\n };\r\n CounterState.prototype.parse = function (style) {\r\n var _this = this;\r\n var counterIncrement = style.counterIncrement;\r\n var counterReset = style.counterReset;\r\n var canReset = true;\r\n if (counterIncrement !== null) {\r\n counterIncrement.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n if (counter && entry.increment !== 0) {\r\n canReset = false;\r\n if (!counter.length) {\r\n counter.push(1);\r\n }\r\n counter[Math.max(0, counter.length - 1)] += entry.increment;\r\n }\r\n });\r\n }\r\n var counterNames = [];\r\n if (canReset) {\r\n counterReset.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n counterNames.push(entry.counter);\r\n if (!counter) {\r\n counter = _this.counters[entry.counter] = [];\r\n }\r\n counter.push(entry.reset);\r\n });\r\n }\r\n return counterNames;\r\n };\r\n return CounterState;\r\n })();\r\n var ROMAN_UPPER = {\r\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\r\n values: [\r\n \"M\",\r\n \"CM\",\r\n \"D\",\r\n \"CD\",\r\n \"C\",\r\n \"XC\",\r\n \"L\",\r\n \"XL\",\r\n \"X\",\r\n \"IX\",\r\n \"V\",\r\n \"IV\",\r\n \"I\",\r\n ],\r\n };\r\n var ARMENIAN = {\r\n integers: [\r\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600,\r\n 500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6,\r\n 5, 4, 3, 2, 1,\r\n ],\r\n values: [\r\n \"Ք\",\r\n \"Փ\",\r\n \"Ւ\",\r\n \"Ց\",\r\n \"Ր\",\r\n \"Տ\",\r\n \"Վ\",\r\n \"Ս\",\r\n \"Ռ\",\r\n \"Ջ\",\r\n \"Պ\",\r\n \"Չ\",\r\n \"Ո\",\r\n \"Շ\",\r\n \"Ն\",\r\n \"Յ\",\r\n \"Մ\",\r\n \"Ճ\",\r\n \"Ղ\",\r\n \"Ձ\",\r\n \"Հ\",\r\n \"Կ\",\r\n \"Ծ\",\r\n \"Խ\",\r\n \"Լ\",\r\n \"Ի\",\r\n \"Ժ\",\r\n \"Թ\",\r\n \"Ը\",\r\n \"Է\",\r\n \"Զ\",\r\n \"Ե\",\r\n \"Դ\",\r\n \"Գ\",\r\n \"Բ\",\r\n \"Ա\",\r\n ],\r\n };\r\n var HEBREW = {\r\n integers: [\r\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300,\r\n 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 19, 18, 17, 16, 15, 10, 9, 8, 7,\r\n 6, 5, 4, 3, 2, 1,\r\n ],\r\n values: [\r\n \"י׳\",\r\n \"ט׳\",\r\n \"ח׳\",\r\n \"ז׳\",\r\n \"ו׳\",\r\n \"ה׳\",\r\n \"ד׳\",\r\n \"ג׳\",\r\n \"ב׳\",\r\n \"א׳\",\r\n \"ת\",\r\n \"ש\",\r\n \"ר\",\r\n \"ק\",\r\n \"צ\",\r\n \"פ\",\r\n \"ע\",\r\n \"ס\",\r\n \"נ\",\r\n \"מ\",\r\n \"ל\",\r\n \"כ\",\r\n \"יט\",\r\n \"יח\",\r\n \"יז\",\r\n \"טז\",\r\n \"טו\",\r\n \"י\",\r\n \"ט\",\r\n \"ח\",\r\n \"ז\",\r\n \"ו\",\r\n \"ה\",\r\n \"ד\",\r\n \"ג\",\r\n \"ב\",\r\n \"א\",\r\n ],\r\n };\r\n var GEORGIAN = {\r\n integers: [\r\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800,\r\n 700, 600, 500, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20, 10, 9,\r\n 8, 7, 6, 5, 4, 3, 2, 1,\r\n ],\r\n values: [\r\n \"ჵ\",\r\n \"ჰ\",\r\n \"ჯ\",\r\n \"ჴ\",\r\n \"ხ\",\r\n \"ჭ\",\r\n \"წ\",\r\n \"ძ\",\r\n \"ც\",\r\n \"ჩ\",\r\n \"შ\",\r\n \"ყ\",\r\n \"ღ\",\r\n \"ქ\",\r\n \"ფ\",\r\n \"ჳ\",\r\n \"ტ\",\r\n \"ს\",\r\n \"რ\",\r\n \"ჟ\",\r\n \"პ\",\r\n \"ო\",\r\n \"ჲ\",\r\n \"ნ\",\r\n \"მ\",\r\n \"ლ\",\r\n \"კ\",\r\n \"ი\",\r\n \"თ\",\r\n \"ჱ\",\r\n \"ზ\",\r\n \"ვ\",\r\n \"ე\",\r\n \"დ\",\r\n \"გ\",\r\n \"ბ\",\r\n \"ა\",\r\n ],\r\n };\r\n var createAdditiveCounter = function (\r\n value,\r\n min,\r\n max,\r\n symbols,\r\n fallback,\r\n suffix\r\n ) {\r\n if (value < min || value > max) {\r\n return createCounterText(value, fallback, suffix.length > 0);\r\n }\r\n return (\r\n symbols.integers.reduce(function (string, integer, index) {\r\n while (value >= integer) {\r\n value -= integer;\r\n string += symbols.values[index];\r\n }\r\n return string;\r\n }, \"\") + suffix\r\n );\r\n };\r\n var createCounterStyleWithSymbolResolver = function (\r\n value,\r\n codePointRangeLength,\r\n isNumeric,\r\n resolver\r\n ) {\r\n var string = \"\";\r\n do {\r\n if (!isNumeric) {\r\n value--;\r\n }\r\n string = resolver(value) + string;\r\n value /= codePointRangeLength;\r\n } while (value * codePointRangeLength >= codePointRangeLength);\r\n return string;\r\n };\r\n var createCounterStyleFromRange = function (\r\n value,\r\n codePointRangeStart,\r\n codePointRangeEnd,\r\n isNumeric,\r\n suffix\r\n ) {\r\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\r\n return (\r\n (value < 0 ? \"-\" : \"\") +\r\n (createCounterStyleWithSymbolResolver(\r\n Math.abs(value),\r\n codePointRangeLength,\r\n isNumeric,\r\n function (codePoint) {\r\n return fromCodePoint$1(\r\n Math.floor(codePoint % codePointRangeLength) + codePointRangeStart\r\n );\r\n }\r\n ) +\r\n suffix)\r\n );\r\n };\r\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\r\n if (suffix === void 0) {\r\n suffix = \". \";\r\n }\r\n var codePointRangeLength = symbols.length;\r\n return (\r\n createCounterStyleWithSymbolResolver(\r\n Math.abs(value),\r\n codePointRangeLength,\r\n false,\r\n function (codePoint) {\r\n return symbols[Math.floor(codePoint % codePointRangeLength)];\r\n }\r\n ) + suffix\r\n );\r\n };\r\n var CJK_ZEROS = 1 << 0;\r\n var CJK_TEN_COEFFICIENTS = 1 << 1;\r\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\r\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\r\n var createCJKCounter = function (\r\n value,\r\n numbers,\r\n multipliers,\r\n negativeSign,\r\n suffix,\r\n flags\r\n ) {\r\n if (value < -9999 || value > 9999) {\r\n return createCounterText(value, 4 /* CJK_DECIMAL */, suffix.length > 0);\r\n }\r\n var tmp = Math.abs(value);\r\n var string = suffix;\r\n if (tmp === 0) {\r\n return numbers[0] + string;\r\n }\r\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\r\n var coefficient = tmp % 10;\r\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== \"\") {\r\n string = numbers[coefficient] + string;\r\n } else if (\r\n coefficient > 1 ||\r\n (coefficient === 1 && digit === 0) ||\r\n (coefficient === 1 &&\r\n digit === 1 &&\r\n contains(flags, CJK_TEN_COEFFICIENTS)) ||\r\n (coefficient === 1 &&\r\n digit === 1 &&\r\n contains(flags, CJK_TEN_HIGH_COEFFICIENTS) &&\r\n value > 100) ||\r\n (coefficient === 1 &&\r\n digit > 1 &&\r\n contains(flags, CJK_HUNDRED_COEFFICIENTS))\r\n ) {\r\n string =\r\n numbers[coefficient] +\r\n (digit > 0 ? multipliers[digit - 1] : \"\") +\r\n string;\r\n } else if (coefficient === 1 && digit > 0) {\r\n string = multipliers[digit - 1] + string;\r\n }\r\n tmp = Math.floor(tmp / 10);\r\n }\r\n return (value < 0 ? negativeSign : \"\") + string;\r\n };\r\n var CHINESE_INFORMAL_MULTIPLIERS = \"十百千萬\";\r\n var CHINESE_FORMAL_MULTIPLIERS = \"拾佰仟萬\";\r\n var JAPANESE_NEGATIVE = \"マイナス\";\r\n var KOREAN_NEGATIVE = \"마이너스\";\r\n var createCounterText = function (value, type, appendSuffix) {\r\n var defaultSuffix = appendSuffix ? \". \" : \"\";\r\n var cjkSuffix = appendSuffix ? \"、\" : \"\";\r\n var koreanSuffix = appendSuffix ? \", \" : \"\";\r\n var spaceSuffix = appendSuffix ? \" \" : \"\";\r\n switch (type) {\r\n case 0 /* DISC */:\r\n return \"•\" + spaceSuffix;\r\n case 1 /* CIRCLE */:\r\n return \"◦\" + spaceSuffix;\r\n case 2 /* SQUARE */:\r\n return \"◾\" + spaceSuffix;\r\n case 5 /* DECIMAL_LEADING_ZERO */:\r\n var string = createCounterStyleFromRange(\r\n value,\r\n 48,\r\n 57,\r\n true,\r\n defaultSuffix\r\n );\r\n return string.length < 4 ? \"0\" + string : string;\r\n case 4 /* CJK_DECIMAL */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"〇一二三四五六七八九\",\r\n cjkSuffix\r\n );\r\n case 6 /* LOWER_ROMAN */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 3999,\r\n ROMAN_UPPER,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n ).toLowerCase();\r\n case 7 /* UPPER_ROMAN */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 3999,\r\n ROMAN_UPPER,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n );\r\n case 8 /* LOWER_GREEK */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 945,\r\n 969,\r\n false,\r\n defaultSuffix\r\n );\r\n case 9 /* LOWER_ALPHA */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 97,\r\n 122,\r\n false,\r\n defaultSuffix\r\n );\r\n case 10 /* UPPER_ALPHA */:\r\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\r\n case 11 /* ARABIC_INDIC */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 1632,\r\n 1641,\r\n true,\r\n defaultSuffix\r\n );\r\n case 12 /* ARMENIAN */:\r\n case 49 /* UPPER_ARMENIAN */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 9999,\r\n ARMENIAN,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n );\r\n case 35 /* LOWER_ARMENIAN */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 9999,\r\n ARMENIAN,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n ).toLowerCase();\r\n case 13 /* BENGALI */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 2534,\r\n 2543,\r\n true,\r\n defaultSuffix\r\n );\r\n case 14 /* CAMBODIAN */:\r\n case 30 /* KHMER */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 6112,\r\n 6121,\r\n true,\r\n defaultSuffix\r\n );\r\n case 15 /* CJK_EARTHLY_BRANCH */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"子丑寅卯辰巳午未申酉戌亥\",\r\n cjkSuffix\r\n );\r\n case 16 /* CJK_HEAVENLY_STEM */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"甲乙丙丁戊己庚辛壬癸\",\r\n cjkSuffix\r\n );\r\n case 17 /* CJK_IDEOGRAPHIC */:\r\n case 48 /* TRAD_CHINESE_INFORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零一二三四五六七八九\",\r\n CHINESE_INFORMAL_MULTIPLIERS,\r\n \"負\",\r\n cjkSuffix,\r\n CJK_TEN_COEFFICIENTS |\r\n CJK_TEN_HIGH_COEFFICIENTS |\r\n CJK_HUNDRED_COEFFICIENTS\r\n );\r\n case 47 /* TRAD_CHINESE_FORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零壹貳參肆伍陸柒捌玖\",\r\n CHINESE_FORMAL_MULTIPLIERS,\r\n \"負\",\r\n cjkSuffix,\r\n CJK_ZEROS |\r\n CJK_TEN_COEFFICIENTS |\r\n CJK_TEN_HIGH_COEFFICIENTS |\r\n CJK_HUNDRED_COEFFICIENTS\r\n );\r\n case 42 /* SIMP_CHINESE_INFORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零一二三四五六七八九\",\r\n CHINESE_INFORMAL_MULTIPLIERS,\r\n \"负\",\r\n cjkSuffix,\r\n CJK_TEN_COEFFICIENTS |\r\n CJK_TEN_HIGH_COEFFICIENTS |\r\n CJK_HUNDRED_COEFFICIENTS\r\n );\r\n case 41 /* SIMP_CHINESE_FORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零壹贰叁肆伍陆柒捌玖\",\r\n CHINESE_FORMAL_MULTIPLIERS,\r\n \"负\",\r\n cjkSuffix,\r\n CJK_ZEROS |\r\n CJK_TEN_COEFFICIENTS |\r\n CJK_TEN_HIGH_COEFFICIENTS |\r\n CJK_HUNDRED_COEFFICIENTS\r\n );\r\n case 26 /* JAPANESE_INFORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"〇一二三四五六七八九\",\r\n \"十百千万\",\r\n JAPANESE_NEGATIVE,\r\n cjkSuffix,\r\n 0\r\n );\r\n case 25 /* JAPANESE_FORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零壱弐参四伍六七八九\",\r\n \"拾百千万\",\r\n JAPANESE_NEGATIVE,\r\n cjkSuffix,\r\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\r\n );\r\n case 31 /* KOREAN_HANGUL_FORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"영일이삼사오육칠팔구\",\r\n \"십백천만\",\r\n KOREAN_NEGATIVE,\r\n koreanSuffix,\r\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\r\n );\r\n case 33 /* KOREAN_HANJA_INFORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零一二三四五六七八九\",\r\n \"十百千萬\",\r\n KOREAN_NEGATIVE,\r\n koreanSuffix,\r\n 0\r\n );\r\n case 32 /* KOREAN_HANJA_FORMAL */:\r\n return createCJKCounter(\r\n value,\r\n \"零壹貳參四五六七八九\",\r\n \"拾百千\",\r\n KOREAN_NEGATIVE,\r\n koreanSuffix,\r\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\r\n );\r\n case 18 /* DEVANAGARI */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0x966,\r\n 0x96f,\r\n true,\r\n defaultSuffix\r\n );\r\n case 20 /* GEORGIAN */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 19999,\r\n GEORGIAN,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n );\r\n case 21 /* GUJARATI */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xae6,\r\n 0xaef,\r\n true,\r\n defaultSuffix\r\n );\r\n case 22 /* GURMUKHI */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xa66,\r\n 0xa6f,\r\n true,\r\n defaultSuffix\r\n );\r\n case 22 /* HEBREW */:\r\n return createAdditiveCounter(\r\n value,\r\n 1,\r\n 10999,\r\n HEBREW,\r\n 3 /* DECIMAL */,\r\n defaultSuffix\r\n );\r\n case 23 /* HIRAGANA */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん\"\r\n );\r\n case 24 /* HIRAGANA_IROHA */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす\"\r\n );\r\n case 27 /* KANNADA */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xce6,\r\n 0xcef,\r\n true,\r\n defaultSuffix\r\n );\r\n case 28 /* KATAKANA */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン\",\r\n cjkSuffix\r\n );\r\n case 29 /* KATAKANA_IROHA */:\r\n return createCounterStyleFromSymbols(\r\n value,\r\n \"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス\",\r\n cjkSuffix\r\n );\r\n case 34 /* LAO */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xed0,\r\n 0xed9,\r\n true,\r\n defaultSuffix\r\n );\r\n case 37 /* MONGOLIAN */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0x1810,\r\n 0x1819,\r\n true,\r\n defaultSuffix\r\n );\r\n case 38 /* MYANMAR */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0x1040,\r\n 0x1049,\r\n true,\r\n defaultSuffix\r\n );\r\n case 39 /* ORIYA */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xb66,\r\n 0xb6f,\r\n true,\r\n defaultSuffix\r\n );\r\n case 40 /* PERSIAN */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0x6f0,\r\n 0x6f9,\r\n true,\r\n defaultSuffix\r\n );\r\n case 43 /* TAMIL */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xbe6,\r\n 0xbef,\r\n true,\r\n defaultSuffix\r\n );\r\n case 44 /* TELUGU */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xc66,\r\n 0xc6f,\r\n true,\r\n defaultSuffix\r\n );\r\n case 45 /* THAI */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xe50,\r\n 0xe59,\r\n true,\r\n defaultSuffix\r\n );\r\n case 46 /* TIBETAN */:\r\n return createCounterStyleFromRange(\r\n value,\r\n 0xf20,\r\n 0xf29,\r\n true,\r\n defaultSuffix\r\n );\r\n case 3 /* DECIMAL */:\r\n default:\r\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n }\r\n };\r\n \r\n /// \r\n var htmlEscape = function (str) {\r\n if (!str) return \"\";\r\n var escaped = \"\";\r\n str.split(\"\").forEach(function (char) {\r\n if (char == \"&\") {\r\n char = \"&\";\r\n } else if (char == \"'\") {\r\n char = \"'\";\r\n } else if (char == '\"') {\r\n char = \""\";\r\n } else if (char == \"<\") {\r\n char = \"<\";\r\n } else if (char == \">\") {\r\n char = \">\";\r\n }\r\n escaped += char;\r\n });\r\n return escaped;\r\n };\r\n var createDocType = function (doctype) {\r\n if (!doctype) return \"\";\r\n var name = htmlEscape(doctype.name);\r\n var internalSubset = htmlEscape(doctype.internalSubset);\r\n var publicId = doctype.publicId\r\n ? '\"' + htmlEscape(doctype.publicId) + '\"'\r\n : \"\";\r\n var systemId = doctype.systemId\r\n ? '\"' + htmlEscape(doctype.systemId) + '\"'\r\n : \"\";\r\n return (\r\n \"\"\r\n );\r\n };\r\n var doctypePolicy;\r\n if (window.trustedTypes) {\r\n doctypePolicy = window.trustedTypes.createPolicy(\"html2canvas\", {\r\n // @ts-ignore\r\n createHTML: function (ignored, doctype) {\r\n return createDocType(doctype);\r\n },\r\n });\r\n }\r\n var serializeDoctype = function (doctype) {\r\n if (doctypePolicy !== undefined) {\r\n return doctypePolicy.createHTML(\"\", doctype);\r\n } else {\r\n return createDocType(doctype);\r\n }\r\n };\r\n \r\n var IGNORE_ATTRIBUTE = \"data-html2canvas-ignore\";\r\n var DocumentCloner = /** @class */ (function () {\r\n function DocumentCloner(context, element, options) {\r\n this.context = context;\r\n this.options = options;\r\n this.scrolledElements = [];\r\n this.referenceElement = element;\r\n this.counters = new CounterState();\r\n this.quoteDepth = 0;\r\n if (!element.ownerDocument) {\r\n throw new Error(\"Cloned element does not have an owner document\");\r\n }\r\n this.documentElement = this.cloneNode(\r\n element.ownerDocument.documentElement,\r\n false\r\n );\r\n }\r\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\r\n var _this = this;\r\n var iframe = createIFrameContainer(ownerDocument, windowSize);\r\n if (!iframe.contentWindow) {\r\n return Promise.reject(\"Unable to find iframe window\");\r\n }\r\n var scrollX = ownerDocument.defaultView.pageXOffset;\r\n var scrollY = ownerDocument.defaultView.pageYOffset;\r\n var cloneWindow = iframe.contentWindow;\r\n var documentClone = cloneWindow.document;\r\n /* Chrome doesn't detect relative background-images assigned in inline \\r\\n\\t\\r\\n\\tcommentsOffice\\r\\n\\t\\r\\n\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\r\\n`,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.ThanksPanelVerticalContainer,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t\\tchildren: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.FontTitle,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.FormQuestionMiddleText,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.ThanksPanelTitle,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().ThanksPanel?.Title,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.FontSubText,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.ThanksPanelMessage,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t// changed from innerText to innerHTML for rendering clickable Links\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tinnerHTML: GetThankYouPageText(),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tid: IDs.ThanksPanelParagraph,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tClasses.SubmitButton,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tid: IDs.ThanksPanelCloseButton,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().ThanksPanel?.Close,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tariaLabel: UIStrings.getUIStrings().ThanksPanel?.Close,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\ttag: Tags.Button,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\trole: Roles.Button,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tname: \\\"aria-label\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().ThanksPanel?.Title + \\\" \\\" +\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tUIStrings.getUIStrings().ThanksPanel?.AppreciateText + \\\" \\\" +\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tUIStrings.getUIStrings().ThanksPanel?.Close,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tname: \\\"type\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: \\\"button\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\t// added to create margins after Close button\\r\\n\\t\\t\\t\\t\\t\\tinnerHTML: \\\"
\\\",\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t},\\r\\n\\t\\t],\\r\\n\\t\\tclasses: [Classes.Hidden],\\r\\n\\t\\tid: containerId,\\r\\n\\t};\\r\\n\\treturn formSchema;\\r\\n}\\r\\n\\r\\n/**\\r\\n * The id for the container. This is the id of the top-most element and should\\r\\n * be unique to each form\\r\\n */\\r\\nexport const containerId: string = IDs.ThanksPanelContainer;\\r\\n\\r\\n/**\\r\\n * This method executes form\\r\\n * specific logic when the pane is opened\\r\\n * @param panelType panel type\\r\\n */\\r\\nexport function onSelect(panelType: PanelType): void {\\r\\n\\tif (panelType !== PanelType.Thanks) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\tdocument.getElementById(IDs.ThanksPanelCloseButton).focus();\\r\\n}\\r\\n\\r\\n/**\\r\\n * Form template type\\r\\n */\\r\\nexport const type: PanelTemplateType = PanelTemplateType.Thanks;\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function makeLinkText(url,text){cov_26coouurg2.f[0]++;cov_26coouurg2.s[0]++;return\"\").concat(text,\"\");}function GetThankYouPageText(){cov_26coouurg2.f[1]++;var _a,_b,_c,_d,_e;var thankYouPageText=(cov_26coouurg2.s[1]++,\"\".concat((cov_26coouurg2.b[1][0]++,(_a=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[1][1]++,_a===void 0)?(cov_26coouurg2.b[0][0]++,void 0):(cov_26coouurg2.b[0][1]++,_a.AppreciateText),\"

\"));var ageGroupEnabledForFeedbackUrls=(cov_26coouurg2.s[2]++,(cov_26coouurg2.b[3][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().ageGroup===_Configuration_IInitOptions__WEBPACK_IMPORTED_MODULE_3__[\"AgeGroup\"].Undefined)||(cov_26coouurg2.b[3][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().ageGroup===_Configuration_IInitOptions__WEBPACK_IMPORTED_MODULE_3__[\"AgeGroup\"].Adult)?(cov_26coouurg2.b[2][0]++,true):(cov_26coouurg2.b[2][1]++,false));cov_26coouurg2.s[3]++;if(ageGroupEnabledForFeedbackUrls){cov_26coouurg2.b[4][0]++;var myFeedbackUrlBool=(cov_26coouurg2.s[4]++,!!_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getInAppFeedbackInitOptions().myFeedbackForumUrl);cov_26coouurg2.s[5]++;if(myFeedbackUrlBool){cov_26coouurg2.b[5][0]++;var MyFeedbackString=(cov_26coouurg2.s[6]++,\"\".concat((cov_26coouurg2.b[7][0]++,(_b=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[7][1]++,_b===void 0)?(cov_26coouurg2.b[6][0]++,void 0):(cov_26coouurg2.b[6][1]++,_b.MyFeedbackDescription),\"\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\").concat(makeLinkText(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getInAppFeedbackInitOptions().myFeedbackForumUrl,(cov_26coouurg2.b[9][0]++,(_c=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[9][1]++,_c===void 0)?(cov_26coouurg2.b[8][0]++,void 0):(cov_26coouurg2.b[8][1]++,_c.MyFeedbackLinkText)),\"\\n\\t\\t\\t\\t\\t\\t\\t\\t

\"));cov_26coouurg2.s[7]++;thankYouPageText=\"\".concat(thankYouPageText,\" \").concat(MyFeedbackString);}else{cov_26coouurg2.b[5][1]++;}var feedbackUrlBool=(cov_26coouurg2.s[8]++,!!_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getInAppFeedbackInitOptions().feedbackForumUrl);cov_26coouurg2.s[9]++;if(feedbackUrlBool){cov_26coouurg2.b[10][0]++;var FeedbackPortalText=(cov_26coouurg2.s[10]++,\"\".concat((cov_26coouurg2.b[12][0]++,(_d=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[12][1]++,_d===void 0)?(cov_26coouurg2.b[11][0]++,void 0):(cov_26coouurg2.b[11][1]++,_d.FeedbackPortalDescription),\"\\n\\t\\t\\t\\t\\t\\t\\t\\t
\\n\\t\\t\\t\\t\\t\\t\\t\\t\").concat(makeLinkText(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getInAppFeedbackInitOptions().feedbackForumUrl,(cov_26coouurg2.b[14][0]++,(_e=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[14][1]++,_e===void 0)?(cov_26coouurg2.b[13][0]++,void 0):(cov_26coouurg2.b[13][1]++,_e.FeedbackPortalLinkText)),\"\\n\\t\\t\\t\\t\\t\\t\\t\\t

\"));cov_26coouurg2.s[11]++;thankYouPageText=\"\".concat(thankYouPageText,\" \").concat(FeedbackPortalText);}else{cov_26coouurg2.b[10][1]++;}}else{cov_26coouurg2.b[4][1]++;}cov_26coouurg2.s[12]++;return thankYouPageText;}function generate(){cov_26coouurg2.f[2]++;var _a,_b,_c,_d,_e,_f;var primaryColor=(cov_26coouurg2.s[13]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().primaryColour);var formSchema=(cov_26coouurg2.s[14]++,{children:[{tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div,id:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelInnerContainer,children:[{innerHTML:\"
\",tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div},{id:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelDiscussion,innerHTML:\"\\n\\t\\n\\t\\t\\n\\t\\n\\tcommentsOffice\\n\\t\\n\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\n\\t\\n\",tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div},{id:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelVerticalContainer,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div,children:[{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].FontTitle,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].FormQuestionMiddleText,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].ThanksPanelTitle],innerText:(cov_26coouurg2.b[16][0]++,(_a=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[16][1]++,_a===void 0)?(cov_26coouurg2.b[15][0]++,void 0):(cov_26coouurg2.b[15][1]++,_a.Title),tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].ThanksPanelMessage],innerHTML:GetThankYouPageText(),tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div,id:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelParagraph},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].SubmitButton],id:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelCloseButton,innerText:(cov_26coouurg2.b[18][0]++,(_b=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[18][1]++,_b===void 0)?(cov_26coouurg2.b[17][0]++,void 0):(cov_26coouurg2.b[17][1]++,_b.Close),ariaLabel:(cov_26coouurg2.b[20][0]++,(_c=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[20][1]++,_c===void 0)?(cov_26coouurg2.b[19][0]++,void 0):(cov_26coouurg2.b[19][1]++,_c.Close),tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Button,role:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Roles\"].Button,attributes:[{name:\"aria-label\",value:((cov_26coouurg2.b[22][0]++,(_d=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[22][1]++,_d===void 0)?(cov_26coouurg2.b[21][0]++,void 0):(cov_26coouurg2.b[21][1]++,_d.Title))+\" \"+((cov_26coouurg2.b[24][0]++,(_e=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[24][1]++,_e===void 0)?(cov_26coouurg2.b[23][0]++,void 0):(cov_26coouurg2.b[23][1]++,_e.AppreciateText))+\" \"+((cov_26coouurg2.b[26][0]++,(_f=_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().ThanksPanel)===null)||(cov_26coouurg2.b[26][1]++,_f===void 0)?(cov_26coouurg2.b[25][0]++,void 0):(cov_26coouurg2.b[25][1]++,_f.Close))},{name:\"type\",value:\"button\"}]}]},{innerHTML:\"
\",tag:_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Tags\"].Div}]}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"Classes\"].Hidden],id:containerId});cov_26coouurg2.s[15]++;return formSchema;}var containerId=(cov_26coouurg2.s[16]++,_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelContainer);function onSelect(panelType){cov_26coouurg2.f[3]++;cov_26coouurg2.s[17]++;if(panelType!==0){cov_26coouurg2.b[27][0]++;cov_26coouurg2.s[18]++;return;}else{cov_26coouurg2.b[27][1]++;}cov_26coouurg2.s[19]++;document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ThanksPanelCloseButton).focus();}var type=(cov_26coouurg2.s[20]++,0);//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9CZWxseUJhbmQvUGFuZWxUZW1wbGF0ZXMvVGhhbmtzUGFuZWxUZW1wbGF0ZS50cz8zZWFkIl0sIm5hbWVzIjpbIm1ha2VMaW5rVGV4dCIsInVybCIsInRleHQiLCJjb25jYXQiLCJHZXRUaGFua1lvdVBhZ2VUZXh0IiwiX2EiLCJfYiIsIl9jIiwiX2QiLCJfZSIsInRoYW5rWW91UGFnZVRleHQiLCJVSVN0cmluZ3MiLCJUaGFua3NQYW5lbCIsIkFwcHJlY2lhdGVUZXh0IiwiYWdlR3JvdXBFbmFibGVkRm9yRmVlZGJhY2tVcmxzIiwiZ2V0Q29tbW9uSW5pdE9wdGlvbnMiLCJhZ2VHcm91cCIsIklJbml0T3B0aW9ucyIsIlVuZGVmaW5lZCIsIkNvbmZpZ3VyYXRpb24iLCJBZHVsdCIsIm15RmVlZGJhY2tVcmxCb29sIiwiZ2V0SW5BcHBGZWVkYmFja0luaXRPcHRpb25zIiwibXlGZWVkYmFja0ZvcnVtVXJsIiwiTXlGZWVkYmFja1N0cmluZyIsIk15RmVlZGJhY2tEZXNjcmlwdGlvbiIsIk15RmVlZGJhY2tMaW5rVGV4dCIsImZlZWRiYWNrVXJsQm9vbCIsImZlZWRiYWNrRm9ydW1VcmwiLCJGZWVkYmFja1BvcnRhbFRleHQiLCJGZWVkYmFja1BvcnRhbERlc2NyaXB0aW9uIiwiRmVlZGJhY2tQb3J0YWxMaW5rVGV4dCIsImdlbmVyYXRlIiwiX2YiLCJwcmltYXJ5Q29sb3IiLCJwcmltYXJ5Q29sb3VyIiwiZm9ybVNjaGVtYSIsImNoaWxkcmVuIiwidGFnIiwiVGFncyIsIkRpdiIsImlkIiwiSURzIiwiVGhhbmtzUGFuZWxJbm5lckNvbnRhaW5lciIsImlubmVySFRNTCIsIlRoYW5rc1BhbmVsRGlzY3Vzc2lvbiIsIlRoYW5rc1BhbmVsVmVydGljYWxDb250YWluZXIiLCJjbGFzc2VzIiwiQ2xhc3NlcyIsIkZvbnRUaXRsZSIsIlRleHRBbGlnbkxlZnQiLCJGb3JtUXVlc3Rpb25NaWRkbGVUZXh0IiwiVGhhbmtzUGFuZWxUaXRsZSIsImlubmVyVGV4dCIsIlRpdGxlIiwiRm9udFN1YlRleHQiLCJUaGFua3NQYW5lbE1lc3NhZ2UiLCJUaGFua3NQYW5lbFBhcmFncmFwaCIsIlN1Ym1pdEJ1dHRvbiIsIlRoYW5rc1BhbmVsQ2xvc2VCdXR0b24iLCJDbG9zZSIsImFyaWFMYWJlbCIsIkJ1dHRvbiIsInJvbGUiLCJSb2xlcyIsImF0dHJpYnV0ZXMiLCJuYW1lIiwidmFsdWUiLCJIaWRkZW4iLCJjb250YWluZXJJZCIsIlRoYW5rc1BhbmVsQ29udGFpbmVyIiwib25TZWxlY3QiLCJwYW5lbFR5cGUiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZm9jdXMiLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7bzVvQkFJQSxRQUFTQSxhQUFULENBQXNCQyxHQUF0QixDQUEyQkMsSUFBM0IsQ0FBaUMsNkNBQzdCLE1BQU8sMkRBQTJEQyxNQUEzRCxDQUFrRUYsR0FBbEUsQ0FBdUUsS0FBdkUsRUFBOEVFLE1BQTlFLENBQXFGRCxJQUFyRixDQUEyRixNQUEzRixDQUFQLENBQ0gsQ0FDRCxRQUFTRSxvQkFBVCxFQUErQix1QkFDM0IsR0FBSUMsR0FBSixDQUFRQyxFQUFSLENBQVlDLEVBQVosQ0FBZ0JDLEVBQWhCLENBQW9CQyxFQUFwQixDQUNBLEdBQUlDLHlDQUFtQixHQUFHUCxNQUFILENBQVUsMkJBQUNFLEdBQUtNLGlFQUFBLEdBQXlCQyxXQUEvQixJQUFnRCxJQUFoRCw2QkFBd0RQLEtBQU8sSUFBSyxFQUFwRSw0QkFBd0UsSUFBSyxFQUE3RSw0QkFBaUZBLEdBQUdRLGNBQXBGLENBQVYsQ0FBOEcsVUFBOUcsQ0FBbkIsQ0FBSixDQUNBLEdBQUlDLHVEQUFrQyw2RkFBb0JDLG9CQUFwQixHQUEyQ0MsUUFBM0MsR0FBd0RDLG9FQUFBLENBQXNCQyxTQUE5RSw2QkFDL0JDLGdFQUFBLEdBQW9CSixvQkFBcEIsR0FBMkNDLFFBQTNDLEdBQXdEQyxvRUFBQSxDQUFzQkcsS0FEL0MsQ0FBRCwyQkFDeUQsSUFE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LElBQWhELDhCQUF3REosS0FBTyxJQUFLLEVBQXBFLDZCQUF3RSxJQUFLLEVBQTdFLDZCQUFpRkEsR0FBRzhDLEtBQXBGLENBQUQsRUFBOEYsR0FBOUYsRUFDRiw0QkFBQzdDLEdBQUtFLGlFQUFBLEdBQXlCQyxXQUEvQixJQUFnRCxJQUFoRCw4QkFBd0RILEtBQU8sSUFBSyxFQUFwRSw2QkFBd0UsSUFBSyxFQUE3RSw2QkFBaUZBLEdBQUdJLGNBQXBGLENBREUsRUFDb0csR0FEcEcsRUFFRiw0QkFBQ29CLEdBQUt0QixpRUFBQSxHQUF5QkMsV0FBL0IsSUFBZ0QsSUFBaEQsOEJBQXdEcUIsS0FBTyxJQUFLLEVBQXBFLDZCQUF3RSxJQUFLLEVBQTdFLDZCQUFpRkEsR0FBRzJCLEtBQXBGLENBRkUsQ0FGWCxDQURRLENBT1IsQ0FDSU0sS0FBTSxNQURWLENBRUlDLE1BQU8sUUFGWCxDQVBRLENBVGhCLENBckJNLENBSGQsQ0FWTSxDQTBETixDQUNJdkIsVUFBVyxNQURmLENBRUlOLElBQUtDLGlEQUFJQSxDQUFDQyxHQUZkLENBMURNLENBSGQsQ0FETSxDQURHLENBc0ViTyxRQUFTLENBQUNDLG9EQUFPQSxDQUFDb0IsTUFBVCxDQXRFSSxDQXVFYjNCLEdBQUk0QixXQXZFUyxDQUFiLENBQUosQ0FIdUIsdUJBNEV2QixNQUFPakMsV0FBUCxDQUNILENBQ00sR0FBSWlDLHFDQUFjM0IsZ0RBQUdBLENBQUM0QixvQkFBbEIsQ0FBSixDQUNBLFFBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLENBQTZCLDhDQUNoQyxHQUFJQSxZQUFjLENBQWxCLENBQXFCLGtEQUNqQixPQUNILENBRkQsZ0NBRGdDLHVCQUloQ0MsU0FBU0MsY0FBVCxDQUF3QmhDLGdEQUFHQSxDQUFDaUIsc0JBQTVCLEVBQW9EZ0IsS0FBcEQsR0FDSCxDQUNNLEdBQUlDLDhCQUFPLENBQVAsQ0FBSiIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL0JlbGx5QmFuZC9QYW5lbFRlbXBsYXRlcy9UaGFua3NQYW5lbFRlbXBsYXRlLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgVUlTdHJpbmdzIGZyb20gXCIuLy4uLy4uLy4uL1VJU3RyaW5ncy9VSVN0cmluZ3NcIjtcclxuaW1wb3J0ICogYXMgQ29uZmlndXJhdGlvbiBmcm9tIFwiLi8uLi8uLi8uLi9Db25maWd1cmF0aW9uL0NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0IHsgSURzLCBUYWdzLCBDbGFzc2VzLCBSb2xlcyB9IGZyb20gXCIuLi8uLi9VaUNvbnN0YW50c1wiO1xyXG5pbXBvcnQgKiBhcyBJSW5pdE9wdGlvbnMgZnJvbSBcIi4vLi4vLi4vLi4vQ29uZmlndXJhdGlvbi9JSW5pdE9wdGlvbnNcIjtcclxuZnVuY3Rpb24gbWFrZUxpbmtUZXh0KHVybCwgdGV4dCkge1xyXG4gICAgcmV0dXJuIFwiPGEgdGFyZ2V0PVxcXCJfYmxhbmtcXFwiIHJlbD1cXFwibm9vcGVuZXIgbm9yZWZlcnJlclxcXCIgaHJlZj1cXFwiXCIuY29uY2F0KHVybCwgXCJcXFwiPlwiKS5jb25jYXQodGV4dCwgXCI8L2E+XCIpO1xyXG59XHJcbmZ1bmN0aW9uIEdldFRoYW5rWW91UGFnZVRleHQoKSB7XHJcbiAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lO1xyXG4gICAgdmFyIHRoYW5rWW91UGFnZVRleHQgPSBcIlwiLmNvbmNhdCgoX2EgPSBVSVN0cmluZ3MuZ2V0VUlTdHJpbmdzKCkuVGhhbmtzUGFuZWwpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5BcHByZWNpYXRlVGV4dCwgXCI8YnI+PGJyPlwiKTtcclxuICAgIHZhciBhZ2VHcm91cEVuYWJsZWRGb3JGZWVkYmFja1VybHMgPSAoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFnZUdyb3VwID09PSBJSW5pdE9wdGlvbnMuQWdlR3JvdXAuVW5kZWZpbmVkXHJcbiAgICAgICAgfHwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFnZUdyb3VwID09PSBJSW5pdE9wdGlvbnMuQWdlR3JvdXAuQWR1bHQpID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgaWYgKGFnZUdyb3VwRW5hYmxlZEZvckZlZWRiYWNrVXJscykge1xyXG4gICAgICAgIHZhciBteUZlZWRiYWNrVXJsQm9vbCA9ICEhQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRJbkFwcEZlZWRiYWNrSW5pdE9wdGlvbnMoKS5teUZlZWRiYWNrRm9ydW1Vcmw7XHJcbiAgICAgICAgaWYgKG15RmVlZGJhY2tVcmxCb29sKSB7XHJcbiAgICAgICAgICAgIHZhciBNeUZlZWRiYWNrU3RyaW5nID0gXCJcIi5jb25jYXQoKF9iID0gVUlTdHJpbmdzLmdldFVJU3RyaW5ncygpLlRoYW5rc1BhbmVsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuTXlGZWVkYmFja0Rlc2NyaXB0aW9uLCBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxicj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcIikuY29uY2F0KG1ha2VMaW5rVGV4dChDb25maWd1cmF0aW9uLmdldCgpLmdldEluQXBwRmVlZGJhY2tJbml0T3B0aW9ucygpLm15RmVlZGJhY2tGb3J1bVVybCwgKF9jID0gVUlTdHJpbmdzLmdldFVJU3RyaW5ncygpLlRoYW5rc1BhbmVsKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuTXlGZWVkYmFja0xpbmtUZXh0KSwgXCJcXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHQ8YnI+PGJyPlwiKTtcclxuICAgICAgICAgICAgdGhhbmtZb3VQYWdlVGV4dCA9IFwiXCIuY29uY2F0KHRoYW5rWW91UGFnZVRleHQsIFwiIFwiKS5jb25jYXQoTXlGZWVkYmFja1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBmZWVkYmFja1VybEJvb2wgPSAhIUNvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0SW5BcHBGZWVkYmFja0luaXRPcHRpb25zKCkuZmVlZGJhY2tGb3J1bVVybDtcclxuICAgICAgICBpZiAoZmVlZGJhY2tVcmxCb29sKSB7XHJcbiAgICAgICAgICAgIHZhciBGZWVkYmFja1BvcnRhbFRleHQgPSBcIlwiLmNvbmNhdCgoX2QgPSBVSVN0cmluZ3MuZ2V0VUlTdHJpbmdzKCkuVGhhbmtzUGFuZWwpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5GZWVkYmFja1BvcnRhbERlc2NyaXB0aW9uLCBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxicj5cXG5cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRcIikuY29uY2F0KG1ha2VMaW5rVGV4dChDb25maWd1cmF0aW9uLmdldCgpLmdldEluQXBwRmVlZGJhY2tJbml0T3B0aW9ucygpLmZlZWRiYWNrRm9ydW1VcmwsIChfZSA9IFVJU3RyaW5ncy5nZXRVSVN0cmluZ3MoKS5UaGFua3NQYW5lbCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLkZlZWRiYWNrUG9ydGFsTGlua1RleHQpLCBcIlxcblxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdDxicj48YnI+XCIpO1xyXG4gICAgICAgICAgICB0aGFua1lvdVBhZ2VUZXh0ID0gXCJcIi5jb25jYXQodGhhbmtZb3VQYWdlVGV4dCwgXCIgXCIpLmNvbmNhdChGZWVkYmFja1BvcnRhbFRleHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGFua1lvdVBhZ2VUZXh0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZSgpIHtcclxuICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xyXG4gICAgdmFyIHByaW1hcnlDb2xvciA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKS5wcmltYXJ5Q29sb3VyO1xyXG4gICAgdmFyIGZvcm1TY2hlbWEgPSB7XHJcbiAgICAgICAgY2hpbGRyZW46IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGFnOiBUYWdzLkRpdixcclxuICAgICAgICAgICAgICAgIGlkOiBJRHMuVGhhbmtzUGFuZWxJbm5lckNvbnRhaW5lcixcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IFwiPGJyPlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuRGl2LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogSURzLlRoYW5rc1BhbmVsRGlzY3Vzc2lvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJIVE1MOiBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIiB2aWV3Qm94PVxcXCIwIDAgMzAuNCAyNS4zXFxcIlxcblxcdHJvbGU9XFxcInByZXNlbnRhdGlvblxcXCIgYWx0PVxcXCJcXFwiIHRhYmluZGV4PVxcXCItMVxcXCIgZm9jdXNhYmxlPVxcXCJmYWxzZVxcXCI+XFxuXFx0PGRlZnM+XFxuXFx0XFx0PHN0eWxlPlxcblxcdFxcdFxcdC5jbHMtMSwuY2xzLTN7aXNvbGF0aW9uOmlzb2xhdGU7fVxcblxcdFxcdFxcdC5jbHMtMntmaWxsOiNlMWRmZGQ7fVxcblxcdFxcdFxcdC5jbHMtM3tmaWxsOlwiICsgcHJpbWFyeUNvbG9yICsgXCI7b3BhY2l0eTowLjQ7fVxcblxcdFxcdFxcdC5jbHMtNHtmaWxsOiNjOGM2YzQ7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7fVxcblxcdFxcdFxcdC5jbHMtNXtmaWxsOiNmZmY7fTwvc3R5bGU+XFxuXFx0PC9kZWZzPlxcblxcdDx0aXRsZT5jb21tZW50c09mZmljZTwvdGl0bGU+XFxuXFx0PGcgY2xhc3M9XFxcImNscy0xXFxcIj5cXG5cXHRcXHQ8ZyBpZD1cXFwiTGF5ZXJfMVxcXCIgZGF0YS1uYW1lPVxcXCJMYXllciAxXFxcIj5cXG5cXHRcXHRcXHQ8cGF0aCBjbGFzcz1cXFwiY2xzLTJcXFwiIGQ9XFxcIk0xNy44LDBIMS4yQTEuMjE2LDEuMjE2LDAsMCwwLDAsMS4yVjE1LjNhMS4xNTU0LDEuMTU1NCwwLDAsMCwxLjIsMS4ySDdsLjEsXFxuXFx0XFx0XFx0XFx0NC4xTDEwLDE2LjVoNy45YTEuMTU1NCwxLjE1NTQsMCwwLDAsMS4yLTEuMlYxLjJBMS4zMDUsMS4zMDUsMCwwLDAsMTcuOCwwWlxcXCIvPlxcblxcdFxcdFxcdDxwYXRoIGNsYXNzPVxcXCJjbHMtM1xcXCIgZD1cXFwiTTI4LjUsMTAuOGE2LjA0MjksNi4wNDI5LDAsMCwwLTMuMi0yLDcuMTk0Myw3LjE5NDMsMCwwLDAtNi40LDEsNy40ODg0LFxcblxcdFxcdFxcdFxcdDcuNDg4NCwwLDAsMC0zLjEsNS43LDYuMDE2LDYuMDE2LDAsMCwwLC45LDMuNyw2LjkzOTQsNi45Mzk0LDAsMCwwLDUsMy43bDIuOSwyLjRMMjQuNCwyM2E3LjgzNzIsXFxuXFx0XFx0XFx0XFx0Ny44MzcyLDAsMCwwLDMtMS4zLDcuNDU3NCw3LjQ1NzQsMCwwLDAsMy00LjdBNy41MDc2LDcuNTA3NiwwLDAsMCwyOC41LDEwLjhaXFxcIi8+XFxuXFx0XFx0XFx0PHBhdGggaWQ9XFxcIkxheWVyMl8xX01FTUJFUl8xX0ZJTExcXFwiIGRhdGEtbmFtZT1cXFwiTGF5ZXIyIDEgTUVNQkVSIDEgRklMTFxcXCIgY2xhc3M9XFxcImNscy00XFxcIiBkPVxcXCJNMTEuOTg4NSxcXG5cXHRcXHRcXHRcXHQ4LjAxNTRhLjg5MzkuODkzOSwwLDEsMCwuNjM3MS0uMjU4OS44NjUzLjg2NTMsMCwwLDAtLjYzNzEuMjU4OU02LjgxMTUsOS4yNEEuODk3Ny44OTc3LDAsMSwwLFxcblxcdFxcdFxcdFxcdDUuNTUzMiw3Ljk1ODkuODk3Ny44OTc3LDAsMSwwLDYuODExNSw5LjI0bTMuMjI1OS0xLjI0MTJhLjg5NC44OTQsMCwxLDAsLjI1ODguNjM3QS44NjUzLjg2NTMsXFxuXFx0XFx0XFx0XFx0MCwwLDAsMTAuMDM3NCw3Ljk5ODNaXFxcIi8+XFxuXFx0XFx0XFx0PHBhdGggY2xhc3M9XFxcImNscy01XFxcIiBkPVxcXCJNMjAuOTAxOSwxNi4zMjQzYS44MDA4LjgwMDgsMCwwLDAsLjI1ODYtLjU2NTkuODM3MS44MzcxLDAsMCxcXG5cXHRcXHRcXHRcXHQwLS4yMS0uNTkxOS43NjkzLjc2OTMsMCwwLDAtMS4xMDkxLS4wNS44Mzc5LjgzNzksMCwwLDAtLjI2MjcuNTcwNi44MDEyLjgwMTIsMCwwLDAsXFxuXFx0XFx0XFx0XFx0LjIwNjYuNTg2OS43Ny43NywwLDAsMCwxLjExNjcuMDVtMS41MS0uNTFhLjgwMTQuODAxNCwwLDAsMCwuMjA2Ni41ODc0Ljc2OTUuNzY5NSwwLDAsMCxcXG5cXHRcXHRcXHRcXHQxLjExMjcuMDU0MS44Mzc5LjgzNzksMCwwLDAsLjI2MjctLjU3LjgwMDkuODAwOSwwLDAsMC0uMjA2Ni0uNTg2OS43Njk0Ljc2OTQsMCwwLFxcblxcdFxcdFxcdFxcdDAtMS4xMTY3LS4wNS44MDExLjgwMTEsMCwwLDAtLjI1ODcuNTY2M20yLjgyNzkuMTI3MmEuODM3MS44MzcxLDAsMCwwLC4yMS41OTE5Ljc2OTMuNzY5MywwLDAsXFxuXFx0XFx0XFx0XFx0MCwxLjEwOTEuMDUuODM3OS44Mzc5LDAsMCwwLC4yNjI3LS41NzA2LjgwMTIuODAxMiwwLDAsMC0uMjA2Ni0uNTg2OS43Ny43NywwLDAsXFxuXFx0XFx0XFx0XFx0MC0xLjExNjctLjA1QS44MDA4LjgwMDgsMCwwLDAsMjUuMjQsMTUuOTQxNlpcXFwiLz5cXG5cXHRcXHQ8L2c+XFxuXFx0PC9nPlxcbjwvc3ZnPlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuRGl2LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogSURzLlRoYW5rc1BhbmVsVmVydGljYWxDb250YWluZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhZzogVGFncy5EaXYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc2VzLkZvbnRUaXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3Nlcy5UZXh0QWxpZ25MZWZ0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc2VzLkZvcm1RdWVzdGlvbk1pZGRsZVRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzZXMuVGhhbmtzUGFuZWxUaXRsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyVGV4dDogKF9hID0gVUlTdHJpbmdzLmdldFVJU3RyaW5ncygpLlRoYW5rc1BhbmVsKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuVGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiBUYWdzLkRpdixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NlczogW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc2VzLkZvbnRTdWJUZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDbGFzc2VzLlRleHRBbGlnbkxlZnQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzZXMuVGhhbmtzUGFuZWxNZXNzYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5uZXJIVE1MOiBHZXRUaGFua1lvdVBhZ2VUZXh0KCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnOiBUYWdzLkRpdixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogSURzLlRoYW5rc1BhbmVsUGFyYWdyYXBoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2VzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENsYXNzZXMuU3VibWl0QnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IElEcy5UaGFua3NQYW5lbENsb3NlQnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlubmVyVGV4dDogKF9iID0gVUlTdHJpbmdzLmdldFVJU3RyaW5ncygpLlRoYW5rc1BhbmVsKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuQ2xvc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsOiAoX2MgPSBVSVN0cmluZ3MuZ2V0VUlTdHJpbmdzKCkuVGhhbmtzUGFuZWwpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5DbG9zZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuQnV0dG9uLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6IFJvbGVzLkJ1dHRvbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiYXJpYS1sYWJlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6ICgoX2QgPSBVSVN0cmluZ3MuZ2V0VUlTdHJpbmdzKCkuVGhhbmtzUGFuZWwpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5UaXRsZSkgKyBcIiBcIiArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChfZSA9IFVJU3RyaW5ncy5nZXRVSVN0cmluZ3MoKS5UaGFua3NQYW5lbCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLkFwcHJlY2lhdGVUZXh0KSArIFwiIFwiICtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKF9mID0gVUlTdHJpbmdzLmdldFVJU3RyaW5ncygpLlRoYW5rc1BhbmVsKSA9PT0gbnVsbCB8fCBfZiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2YuQ2xvc2UpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcInR5cGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcImJ1dHRvblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpbm5lckhUTUw6IFwiPGJyPlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuRGl2LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgY2xhc3NlczogW0NsYXNzZXMuSGlkZGVuXSxcclxuICAgICAgICBpZDogY29udGFpbmVySWQsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGZvcm1TY2hlbWE7XHJcbn1cclxuZXhwb3J0IHZhciBjb250YWluZXJJZCA9IElEcy5UaGFua3NQYW5lbENvbnRhaW5lcjtcclxuZXhwb3J0IGZ1bmN0aW9uIG9uU2VsZWN0KHBhbmVsVHlwZSkge1xyXG4gICAgaWYgKHBhbmVsVHlwZSAhPT0gMCkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElEcy5UaGFua3NQYW5lbENsb3NlQnV0dG9uKS5mb2N1cygpO1xyXG59XHJcbmV4cG9ydCB2YXIgdHlwZSA9IDA7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UI/BellyBand/PanelTemplates/ThanksPanelTemplate.ts\n"); /***/ }), /***/ "./scripts/app/UI/BellyBand/TabFocus.ts": /*!**********************************************!*\ !*** ./scripts/app/UI/BellyBand/TabFocus.ts ***! \**********************************************/ /*! exports provided: cycleTabFocus */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cycleTabFocus\", function() { return cycleTabFocus; });\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\nvar cov_2ktttersng=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\BellyBand\\\\TabFocus.ts\",hash=\"bb453856ebbfdb051008d15b92ecbf680acd3860\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\BellyBand\\\\TabFocus.ts\",statementMap:{\"0\":{start:{line:3,column:19},end:{line:3,column:40}},\"1\":{start:{line:4,column:4},end:{line:23,column:5}},\"2\":{start:{line:5,column:8},end:{line:12,column:9}},\"3\":{start:{line:6,column:26},end:{line:6,column:37}},\"4\":{start:{line:7,column:12},end:{line:9,column:13}},\"5\":{start:{line:8,column:16},end:{line:8,column:25}},\"6\":{start:{line:10,column:12},end:{line:10,column:28}},\"7\":{start:{line:11,column:12},end:{line:11,column:19}},\"8\":{start:{line:14,column:9},end:{line:23,column:5}},\"9\":{start:{line:15,column:8},end:{line:22,column:9}},\"10\":{start:{line:16,column:26},end:{line:16,column:37}},\"11\":{start:{line:17,column:12},end:{line:19,column:13}},\"12\":{start:{line:18,column:16},end:{line:18,column:25}},\"13\":{start:{line:20,column:12},end:{line:20,column:28}},\"14\":{start:{line:21,column:12},end:{line:21,column:19}},\"15\":{start:{line:26,column:27},end:{line:29,column:77}},\"16\":{start:{line:30,column:4},end:{line:30,column:89}},\"17\":{start:{line:33,column:4},end:{line:35,column:5}},\"18\":{start:{line:34,column:8},end:{line:34,column:21}},\"19\":{start:{line:36,column:4},end:{line:43,column:5}},\"20\":{start:{line:37,column:8},end:{line:39,column:9}},\"21\":{start:{line:38,column:12},end:{line:38,column:24}},\"22\":{start:{line:40,column:8},end:{line:42,column:9}},\"23\":{start:{line:41,column:12},end:{line:41,column:25}},\"24\":{start:{line:44,column:4},end:{line:44,column:47}}},fnMap:{\"0\":{name:\"cycleTabFocus\",decl:{start:{line:2,column:16},end:{line:2,column:29}},loc:{start:{line:2,column:46},end:{line:24,column:1}},line:2},\"1\":{name:\"getTabbableElements\",decl:{start:{line:25,column:9},end:{line:25,column:28}},loc:{start:{line:25,column:31},end:{line:31,column:1}},line:25},\"2\":{name:\"checkVisible\",decl:{start:{line:32,column:9},end:{line:32,column:21}},loc:{start:{line:32,column:31},end:{line:45,column:1}},line:32}},branchMap:{\"0\":{loc:{start:{line:4,column:4},end:{line:23,column:5}},type:\"if\",locations:[{start:{line:4,column:4},end:{line:23,column:5}},{start:{line:4,column:4},end:{line:23,column:5}}],line:4},\"1\":{loc:{start:{line:7,column:12},end:{line:9,column:13}},type:\"if\",locations:[{start:{line:7,column:12},end:{line:9,column:13}},{start:{line:7,column:12},end:{line:9,column:13}}],line:7},\"2\":{loc:{start:{line:7,column:16},end:{line:7,column:74}},type:\"binary-expr\",locations:[{start:{line:7,column:16},end:{line:7,column:48}},{start:{line:7,column:52},end:{line:7,column:74}}],line:7},\"3\":{loc:{start:{line:14,column:9},end:{line:23,column:5}},type:\"if\",locations:[{start:{line:14,column:9},end:{line:23,column:5}},{start:{line:14,column:9},end:{line:23,column:5}}],line:14},\"4\":{loc:{start:{line:17,column:12},end:{line:19,column:13}},type:\"if\",locations:[{start:{line:17,column:12},end:{line:19,column:13}},{start:{line:17,column:12},end:{line:19,column:13}}],line:17},\"5\":{loc:{start:{line:17,column:16},end:{line:17,column:73}},type:\"binary-expr\",locations:[{start:{line:17,column:16},end:{line:17,column:47}},{start:{line:17,column:51},end:{line:17,column:73}}],line:17},\"6\":{loc:{start:{line:33,column:4},end:{line:35,column:5}},type:\"if\",locations:[{start:{line:33,column:4},end:{line:35,column:5}},{start:{line:33,column:4},end:{line:35,column:5}}],line:33},\"7\":{loc:{start:{line:36,column:4},end:{line:43,column:5}},type:\"if\",locations:[{start:{line:36,column:4},end:{line:43,column:5}},{start:{line:36,column:4},end:{line:43,column:5}}],line:36},\"8\":{loc:{start:{line:37,column:8},end:{line:39,column:9}},type:\"if\",locations:[{start:{line:37,column:8},end:{line:39,column:9}},{start:{line:37,column:8},end:{line:39,column:9}}],line:37},\"9\":{loc:{start:{line:40,column:8},end:{line:42,column:9}},type:\"if\",locations:[{start:{line:40,column:8},end:{line:42,column:9}},{start:{line:40,column:8},end:{line:42,column:9}}],line:40}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0},f:{\"0\":0,\"1\":0,\"2\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\BellyBand\\\\TabFocus.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\BellyBand\\\\TabFocus.ts\"],names:[],mappings:\"AAMA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAOhD,MAAM,UAAU,aAAa,CAAC,cAAuB;IACpD,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAIvC,IAAI,cAAc,CAAC,EAAE,KAAK,GAAG,CAAC,YAAY,EAAE;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAM,OAAO,GAAkB,QAAQ,CAAC,CAAC,CAAE,CAAC;YAE5C,IAAI,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,aAAa,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBAC/D,SAAS;aACT;YAED,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;SACP;KAGD;SAAM,IAAI,cAAc,CAAC,EAAE,KAAK,GAAG,CAAC,aAAa,EAAE;QACnD,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAM,OAAO,GAAkB,QAAQ,CAAC,CAAC,CAAE,CAAC;YAE5C,IAAI,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;gBAC9D,SAAS;aACT;YAED,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO;SACP;KACD;AACF,CAAC;AAMD,SAAS,mBAAmB;IAE3B,IAAM,gBAAgB,GAAG,qEAAqE;QAC7F,gGAAgG;QAChG,oDAAoD;QACpD,qEAAqE,CAAC;IAEvE,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACtF,CAAC;AAQD,SAAS,YAAY,CAAC,OAAoB;IACzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE;QAC3B,OAAO,KAAK,CAAC;KACb;IAGD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE;QACxC,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAClE,OAAO,IAAI,CAAC;SACZ;QAED,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YACjE,OAAO,KAAK,CAAC;SACb;KACD;IAED,OAAO,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5C,CAAC\",sourcesContent:[\"/**\\r\\n * TabFocus.ts\\r\\n *\\r\\n * Module to handle tab and shift tab focus\\r\\n */\\r\\n\\r\\nimport { Classes, IDs } from \\\"./../UiConstants\\\";\\r\\n\\r\\n/**\\r\\n * Keeps tabs and shift tabs focus on visible elements of the feedback dialog\\r\\n * This prevents tabs and shift tabs cycle focus to elements of the background main page.\\r\\n * @param focusedElement The in-focus element object\\r\\n */\\r\\nexport function cycleTabFocus(focusedElement: Element): void {\\r\\n\\tconst elements = getTabbableElements();\\r\\n\\r\\n\\t// when a tab lands on the last dummy tabbable element, set focus to the first\\r\\n\\t// visible element which is the one after the first dummy tabbable element\\r\\n\\tif (focusedElement.id === IDs.LastTabbable) {\\r\\n\\t\\tfor (let i = 0; i < elements.length; i++) {\\r\\n\\t\\t\\tconst element = ( elements[i]);\\r\\n\\r\\n\\t\\t\\tif (element.id === IDs.FirstTabbable || !checkVisible(element)) {\\r\\n\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\telement.focus();\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\t\\t// when a shift tab lands on the first dummy tabbable element, set focus to the last\\r\\n\\t\\t// visible element which is the one before the last dummy tabbable element\\r\\n\\t} else if (focusedElement.id === IDs.FirstTabbable) {\\r\\n\\t\\tfor (let i = elements.length - 1; i >= 0; i--) {\\r\\n\\t\\t\\tconst element = ( elements[i]);\\r\\n\\r\\n\\t\\t\\tif (element.id === IDs.LastTabbable || !checkVisible(element)) {\\r\\n\\t\\t\\t\\tcontinue;\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\telement.focus();\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns a list of tabbable elements.\\r\\n * @returns {NodeListOf} list of tabbable elements\\r\\n */\\r\\nfunction getTabbableElements(): NodeListOf {\\r\\n\\t/* eslint-disable no-useless-escape */\\r\\n\\tconst tabbableSelector = \\\"a[href], area[href], input:not([disabled]):not([tabindex=\\\\'-1\\\\']), \\\" +\\r\\n\\t\\t\\\"button:not([disabled]):not([tabindex=\\\\'-1\\\\']), select:not([disabled]):not([tabindex=\\\\'-1\\\\']), \\\" +\\r\\n\\t\\t\\\"textarea:not([disabled]):not([tabindex =\\\\'-1\\\\']), \\\" +\\r\\n\\t\\t\\\"object, *[tabindex]:not([tabindex=\\\\'-1\\\\']), *[contenteditable=true]\\\";\\r\\n\\r\\n\\treturn document.getElementById(IDs.MainContainer).querySelectorAll(tabbableSelector);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns visibility of an element by inspecting the element's parent class name for visible/hidden value.\\r\\n * Walk up the parent chain if needed.\\r\\n * @param element The element object\\r\\n * @returns {Boolean} whether the element is visible\\r\\n */\\r\\nfunction checkVisible(element: HTMLElement): boolean {\\r\\n\\tif (!element.parentElement) {\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\r\\n\\t// don't bother if parent element id is just whitespace or empty\\r\\n\\tif (/\\\\S/.test(element.parentElement.id)) {\\r\\n\\t\\tif (element.parentElement.className.indexOf(Classes.Visible) >= 0) {\\r\\n\\t\\t\\treturn true;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif (element.parentElement.className.indexOf(Classes.Hidden) >= 0) {\\r\\n\\t\\t\\treturn false;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn checkVisible(element.parentElement);\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function cycleTabFocus(focusedElement){cov_2ktttersng.f[0]++;var elements=(cov_2ktttersng.s[0]++,getTabbableElements());cov_2ktttersng.s[1]++;if(focusedElement.id===_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].LastTabbable){cov_2ktttersng.b[0][0]++;cov_2ktttersng.s[2]++;for(var i=0;i=0;i--){var element=(cov_2ktttersng.s[10]++,elements[i]);cov_2ktttersng.s[11]++;if((cov_2ktttersng.b[5][0]++,element.id===_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].LastTabbable)||(cov_2ktttersng.b[5][1]++,!checkVisible(element))){cov_2ktttersng.b[4][0]++;cov_2ktttersng.s[12]++;continue;}else{cov_2ktttersng.b[4][1]++;}cov_2ktttersng.s[13]++;element.focus();cov_2ktttersng.s[14]++;return;}}else{cov_2ktttersng.b[3][1]++;}}}function getTabbableElements(){cov_2ktttersng.f[1]++;var tabbableSelector=(cov_2ktttersng.s[15]++,\"a[href], area[href], input:not([disabled]):not([tabindex=\\'-1\\']), \"+\"button:not([disabled]):not([tabindex=\\'-1\\']), select:not([disabled]):not([tabindex=\\'-1\\']), \"+\"textarea:not([disabled]):not([tabindex =\\'-1\\']), \"+\"object, *[tabindex]:not([tabindex=\\'-1\\']), *[contenteditable=true]\");cov_2ktttersng.s[16]++;return document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].MainContainer).querySelectorAll(tabbableSelector);}function checkVisible(element){cov_2ktttersng.f[2]++;cov_2ktttersng.s[17]++;if(!element.parentElement){cov_2ktttersng.b[6][0]++;cov_2ktttersng.s[18]++;return false;}else{cov_2ktttersng.b[6][1]++;}cov_2ktttersng.s[19]++;if(/\\S/.test(element.parentElement.id)){cov_2ktttersng.b[7][0]++;cov_2ktttersng.s[20]++;if(element.parentElement.className.indexOf(_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Visible)>=0){cov_2ktttersng.b[8][0]++;cov_2ktttersng.s[21]++;return true;}else{cov_2ktttersng.b[8][1]++;}cov_2ktttersng.s[22]++;if(element.parentElement.className.indexOf(_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Hidden)>=0){cov_2ktttersng.b[9][0]++;cov_2ktttersng.s[23]++;return false;}else{cov_2ktttersng.b[9][1]++;}}else{cov_2ktttersng.b[7][1]++;}cov_2ktttersng.s[24]++;return checkVisible(element.parentElement);}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9CZWxseUJhbmQvVGFiRm9jdXMudHM/NTQxYSJdLCJuYW1lcyI6WyJjeWNsZVRhYkZvY3VzIiwiZm9jdXNlZEVsZW1lbnQiLCJlbGVtZW50cyIsImdldFRhYmJhYmxlRWxlbWVudHMiLCJpZCIsIklEcyIsIkxhc3RUYWJiYWJsZSIsImkiLCJsZW5ndGgiLCJlbGVtZW50IiwiRmlyc3RUYWJiYWJsZSIsImNoZWNrVmlzaWJsZSIsImZvY3VzIiwidGFiYmFibGVTZWxlY3RvciIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJNYWluQ29udGFpbmVyIiwicXVlcnlTZWxlY3RvckFsbCIsInBhcmVudEVsZW1lbnQiLCJ0ZXN0IiwiY2xhc3NOYW1lIiwiaW5kZXhPZiIsIkNsYXNzZXMiLCJWaXNpYmxlIiwiSGlkZGVuIl0sIm1hcHBpbmdzIjoiOzs7K2tTQUNPLFFBQVNBLGNBQVQsQ0FBdUJDLGNBQXZCLENBQXVDLHVCQUMxQyxHQUFJQyxpQ0FBV0MscUJBQVgsQ0FBSixDQUQwQyxzQkFFMUMsR0FBSUYsZUFBZUcsRUFBZixHQUFzQkMsZ0RBQUdBLENBQUNDLFlBQTlCLENBQTRDLGdEQUN4QyxJQUFLLEdBQUlDLEdBQUksQ0FBYixDQUFnQkEsRUFBSUwsU0FBU00sTUFBN0IsQ0FBcUNELEdBQXJDLENBQTBDLENBQ3RDLEdBQUlFLGdDQUFVUCxTQUFTSyxDQUFULENBQVYsQ0FBSixDQURzQyxzQkFFdEMsR0FBSSxrQ0FBUUgsRUFBUixHQUFlQyxnREFBR0EsQ0FBQ0ssYUFBbkIsNkJBQW9DLENBQUNDLGFBQWFGLE9BQWIsQ0FBckMsQ0FBSixDQUFnRSxnREFDNUQsU0FDSCxDQUZELCtCQUZzQyxzQkFLdENBLFFBQVFHLEtBQVIsR0FMc0Msc0JBTXRDLE9BQ0gsQ0FDSixDQVRELElBVUssbURBQUlYLGVBQWVHLEVBQWYsR0FBc0JDLGdEQUFHQSxDQUFDSyxhQUE5QixDQUE2QyxnREFDOUMsSUFBSyxHQUFJSCxHQUFJTCxTQUFTTSxNQUFULENBQWtCLENBQS9CLENBQWtDRCxHQUFLLENBQXZDLENBQTBDQSxHQUExQyxDQUErQyxDQUMzQyxHQUFJRSxpQ0FBVVAsU0FBU0ssQ0FBVCxDQUFWLENBQUosQ0FEMkMsdUJBRTNDLEdBQUksa0NBQVFILEVBQVIsR0FBZUMsZ0RBQUdBLENBQUNDLFlBQW5CLDZCQUFtQyxDQUFDSyxhQUFhRixPQUFiLENBQXBDLENBQUosQ0FBK0QsaURBQzNELFNBQ0gsQ0FGRCwrQkFGMkMsdUJBSzNDQSxRQUFRRyxLQUFSLEdBTDJDLHVCQU0zQyxPQUNILENBQ0osQ0FUSSwrQkFTSixDQUNKLENBQ0QsUUFBU1Qsb0JBQVQsRUFBK0IsdUJBQzNCLEdBQUlVLDBDQUFtQixzRUFDbkIsZ0dBRG1CLENBRW5CLG9EQUZtQixDQUduQixxRUFIQSxDQUFKLENBRDJCLHVCQUszQixNQUFPQyxVQUFTQyxjQUFULENBQXdCVixnREFBR0EsQ0FBQ1csYUFBNUIsRUFBMkNDLGdCQUEzQyxDQUE0REosZ0JBQTVELENBQVAsQ0FDSCxDQUNELFFBQVNGLGFBQVQsQ0FBc0JGLE9BQXRCLENBQStCLDhDQUMzQixHQUFJLENBQUNBLFFBQVFTLGFBQWIsQ0FBNEIsaURBQ3hCLE1BQU8sTUFBUCxDQUNILENBRkQsK0JBRDJCLHVCQUkzQixHQUFJLEtBQUtDLElBQUwsQ0FBVVYsUUFBUVMsYUFBUixDQUFzQmQsRUFBaEMsQ0FBSixDQUF5QyxpREFDckMsR0FBSUssUUFBUVMsYUFBUixDQUFzQkUsU0FBdEIsQ0FBZ0NDLE9BQWhDLENBQXdDQyxvREFBT0EsQ0FBQ0MsT0FBaEQsR0FBNEQsQ0FBaEUsQ0FBbUUsaURBQy9ELE1BQU8sS0FBUCxDQUNILENBRkQsK0JBRHFDLHVCQUlyQyxHQUFJZCxRQUFRUyxhQUFSLENBQXNCRSxTQUF0QixDQUFnQ0MsT0FBaEMsQ0FBd0NDLG9EQUFPQSxDQUFDRSxNQUFoRCxHQUEyRCxDQUEvRCxDQUFrRSxpREFDOUQsTUFBTyxNQUFQLENBQ0gsQ0FGRCwrQkFHSCxDQVBELCtCQUoyQix1QkFZM0IsTUFBT2IsY0FBYUYsUUFBUVMsYUFBckIsQ0FBUCxDQUNIIiwiZmlsZSI6Ii4vc2NyaXB0cy9hcHAvVUkvQmVsbHlCYW5kL1RhYkZvY3VzLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xhc3NlcywgSURzIH0gZnJvbSBcIi4vLi4vVWlDb25zdGFudHNcIjtcclxuZXhwb3J0IGZ1bmN0aW9uIGN5Y2xlVGFiRm9jdXMoZm9jdXNlZEVsZW1lbnQpIHtcclxuICAgIHZhciBlbGVtZW50cyA9IGdldFRhYmJhYmxlRWxlbWVudHMoKTtcclxuICAgIGlmIChmb2N1c2VkRWxlbWVudC5pZCA9PT0gSURzLkxhc3RUYWJiYWJsZSkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBlbGVtZW50c1tpXTtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuaWQgPT09IElEcy5GaXJzdFRhYmJhYmxlIHx8ICFjaGVja1Zpc2libGUoZWxlbWVudCkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZvY3VzZWRFbGVtZW50LmlkID09PSBJRHMuRmlyc3RUYWJiYWJsZSkge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSBlbGVtZW50cy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICB2YXIgZWxlbWVudCA9IGVsZW1lbnRzW2ldO1xyXG4gICAgICAgICAgICBpZiAoZWxlbWVudC5pZCA9PT0gSURzLkxhc3RUYWJiYWJsZSB8fCAhY2hlY2tWaXNpYmxlKGVsZW1lbnQpKSB7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZ2V0VGFiYmFibGVFbGVtZW50cygpIHtcclxuICAgIHZhciB0YWJiYWJsZVNlbGVjdG9yID0gXCJhW2hyZWZdLCBhcmVhW2hyZWZdLCBpbnB1dDpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD1cXCctMVxcJ10pLCBcIiArXHJcbiAgICAgICAgXCJidXR0b246bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PVxcJy0xXFwnXSksIFwiICtcclxuICAgICAgICBcInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4ID1cXCctMVxcJ10pLCBcIiArXHJcbiAgICAgICAgXCJvYmplY3QsICpbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XFwnLTFcXCddKSwgKltjb250ZW50ZWRpdGFibGU9dHJ1ZV1cIjtcclxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChJRHMuTWFpbkNvbnRhaW5lcikucXVlcnlTZWxlY3RvckFsbCh0YWJiYWJsZVNlbGVjdG9yKTtcclxufVxyXG5mdW5jdGlvbiBjaGVja1Zpc2libGUoZWxlbWVudCkge1xyXG4gICAgaWYgKCFlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoL1xcUy8udGVzdChlbGVtZW50LnBhcmVudEVsZW1lbnQuaWQpKSB7XHJcbiAgICAgICAgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZihDbGFzc2VzLlZpc2libGUpID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQuY2xhc3NOYW1lLmluZGV4T2YoQ2xhc3Nlcy5IaWRkZW4pID49IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjaGVja1Zpc2libGUoZWxlbWVudC5wYXJlbnRFbGVtZW50KTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/UI/BellyBand/TabFocus.ts\n"); /***/ }), /***/ "./scripts/app/UI/CategoriesDropdown.ts": /*!**********************************************!*\ !*** ./scripts/app/UI/CategoriesDropdown.ts ***! \**********************************************/ /*! exports provided: generate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../UIStrings/UIStrings */ \"./scripts/app/UIStrings/UIStrings.ts\");\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\nvar cov_xscj542pw=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\CategoriesDropdown.ts\",hash=\"e30caff9eb32614aede15f3573ec5e9f049d4aea\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\CategoriesDropdown.ts\",statementMap:{\"0\":{start:{line:4,column:21},end:{line:4,column:61}},\"1\":{start:{line:5,column:17},end:{line:9,column:10}},\"2\":{start:{line:10,column:4},end:{line:16,column:5}},\"3\":{start:{line:11,column:23},end:{line:11,column:39}},\"4\":{start:{line:12,column:8},end:{line:15,column:11}},\"5\":{start:{line:17,column:4},end:{line:17,column:18}}},fnMap:{\"0\":{name:\"generate\",decl:{start:{line:3,column:16},end:{line:3,column:24}},loc:{start:{line:3,column:43},end:{line:18,column:1}},line:3}},branchMap:{\"0\":{loc:{start:{line:4,column:21},end:{line:4,column:61}},type:\"cond-expr\",locations:[{start:{line:4,column:40},end:{line:4,column:56}},{start:{line:4,column:59},end:{line:4,column:61}}],line:4}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0},f:{\"0\":0},b:{\"0\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\CategoriesDropdown.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\CategoriesDropdown.ts\"],names:[],mappings:\"AAMA,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAO,eAAe,CAAC;AAQtC,MAAM,UAAU,QAAQ,CAAC,gBAA0B;IAClD,IAAM,UAAU,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5D,IAAM,MAAM,GAAgB,CAAC;YAC5B,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YACjD,SAAS,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,mBAAmB;YAC5D,GAAG,EAAE,IAAI,CAAC,MAAM;SAChB,CAAC,CAAC;IAEH,KAAuB,UAAU,EAAV,yBAAU,EAAV,wBAAU,EAAV,IAAU,EAAE;QAA9B,IAAM,QAAQ,mBAAA;QAClB,MAAM,CAAC,IAAI,CAAC;YACX,SAAS,EAAE,QAAQ;YACnB,GAAG,EAAE,IAAI,CAAC,MAAM;SAChB,CAAC,CAAC;KACH;IAED,OAAO,MAAM,CAAC;AACf,CAAC\",sourcesContent:[\"/**\\r\\n * CategoriesDropdown.ts\\r\\n *\\r\\n * A module to render the categories dropdown\\r\\n */\\r\\n\\r\\nimport * as UIStrings from \\\"./../UIStrings/UIStrings\\\";\\r\\nimport { Tags } from \\\"./UiConstants\\\";\\r\\nimport { IUIAsJson } from \\\"./Renderer\\\";\\r\\n\\r\\n/**\\r\\n * Generate custom categories drop-down list. The list will contain just the\\r\\n * placeholder string if customCategories contains no value.\\r\\n * @param customCategories category values\\r\\n */\\r\\nexport function generate(customCategories: string[]): IUIAsJson[] {\\r\\n\\tconst categories = customCategories ? customCategories : [];\\r\\n\\r\\n\\tconst result: IUIAsJson[] = [{\\r\\n\\t\\tattributes: [{ name: \\\"selected\\\", value: \\\"true\\\" }],\\r\\n\\t\\tinnerText: UIStrings.getUIStrings().Form.CategoryPlaceholder,\\r\\n\\t\\ttag: Tags.Option,\\r\\n\\t}];\\r\\n\\r\\n\\tfor (const category of categories) {\\r\\n\\t\\tresult.push({\\r\\n\\t\\t\\tinnerText: category,\\r\\n\\t\\t\\ttag: Tags.Option,\\r\\n\\t\\t});\\r\\n\\t}\\r\\n\\r\\n\\treturn result;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function generate(customCategories){cov_xscj542pw.f[0]++;var categories=(cov_xscj542pw.s[0]++,customCategories?(cov_xscj542pw.b[0][0]++,customCategories):(cov_xscj542pw.b[0][1]++,[]));var result=(cov_xscj542pw.s[1]++,[{attributes:[{name:\"selected\",value:\"true\"}],innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_0__[\"getUIStrings\"]().Form.CategoryPlaceholder,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_1__[\"Tags\"].Option}]);cov_xscj542pw.s[2]++;for(var _i=0,categories_1=categories;_i[] = [];\\r\\n\\r\\n\\tprivate static instance: CentroCoreDataSource;\\r\\n\\r\\n\\tpublic static get() {\\r\\n\\t\\tif (!this.instance) {\\r\\n\\t\\t\\tthis.instance = new CentroCoreDataSource();\\r\\n\\t\\t}\\r\\n\\t\\treturn this.instance;\\r\\n\\t}\\r\\n\\r\\n\\tconstructor() {\\r\\n\\t\\tconst complianceChecks = {\\r\\n\\t\\t\\tauthenticationType: AuthenticationType[(Configuration.get().getCommonInitOptions()?.authenticationType) ??\\r\\n\\t\\t\\t\\tAuthenticationType.Unauthenticated],\\r\\n\\t\\t\\tageGroup: AgeGroup[(Configuration.get().getCommonInitOptions()?.ageGroup) ?? AgeGroup.Undefined],\\r\\n\\t\\t\\tpolicyAllowFeedback: ocpsEnumToString(Configuration.get().getInAppFeedbackInitOptions()?.sendFeedbackPolicyValue),\\r\\n\\t\\t\\tpolicyAllowSurvey: ocpsBooleanToString(Configuration.get().getFloodgateInitOptions()?.surveyEnabled),\\r\\n\\t\\t\\tpolicyAllowScreenshot: ocpsEnumToString(Configuration.get().getCommonInitOptions()?.screenshotPolicyValue),\\r\\n\\t\\t\\tpolicyAllowContact: ocpsEnumToString(Configuration.get().getCommonInitOptions()?.emailPolicyValue),\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tthis.centroInitOptions = {\\r\\n\\t\\t\\t// common init options\\r\\n\\t\\t\\tcommonInitOptions: {\\r\\n\\t\\t\\t\\tappId: Configuration.get().getCommonInitOptions().appId,\\r\\n\\t\\t\\t\\tapplication: Configuration.get().getCommonInitOptions().applicationGroup,\\r\\n\\t\\t\\t\\tcomplianceChecks: complianceChecks,\\r\\n\\t\\t\\t\\tisProduction: Configuration.get().getCommonInitOptions().environment === Constants.Environment.Production,\\r\\n\\t\\t\\t\\tretentionDurationDays: Configuration.get().getCommonInitOptions().retentionDurationDays,\\r\\n\\t\\t\\t\\tsdkVersion: SDK_VERSION_PREFIX + (Window.get().SvaFeedback.sdkVersion !== undefined ?\\r\\n\\t\\t\\t\\t\\tWindow.get().SvaFeedback.sdkVersion : Version),\\r\\n\\t\\t\\t\\ttelemetry: Configuration.get().getCommonInitOptions().telemetryGroup,\\r\\n\\t\\t\\t\\tweb: Configuration.get().getCommonInitOptions().webGroup\\r\\n\\t\\t\\t},\\r\\n\\r\\n\\t\\t\\tautoDismissValues: {\\r\\n\\t\\t\\t\\tpromptAutoDismissTimeInMs: convertAutoDismissToTimeInMs(Configuration.get().getFloodgateInitOptions().autoDismiss),\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\thostPlatform: IFloodgateHostPlatform.Web,\\r\\n\\t\\t};\\r\\n\\t}\\r\\n\\r\\n\\t/*\\r\\n\\tRegister and Unregister is part of the boilerplate code to enable dynamic data passing\\r\\n\\t*/\\r\\n\\tpublic register(\\r\\n\\t\\tlistener?: ConfigUpdatedListener\\r\\n\\t): Readonly> {\\r\\n\\t\\tif (listener) {\\r\\n\\t\\t\\tthis.listeners.push(listener);\\r\\n\\t\\t}\\r\\n\\t\\tconst centroDataOptions: ICentroDataOptions = {\\r\\n\\t\\t\\t...this.centroInitOptions,\\r\\n\\t\\t\\t...this.centroLaunchOptions\\r\\n\\t\\t}\\r\\n\\t\\treturn centroDataOptions;\\r\\n\\t}\\r\\n\\r\\n\\tpublic unregister(listener: ConfigUpdatedListener): void {\\r\\n\\t\\tconst index = this.listeners.indexOf(listener);\\r\\n\\t\\tif (index > -1) {\\r\\n\\t\\t\\tthis.listeners.splice(index, 1);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t/*\\r\\n\\tUpdate function to update the data source with the current survey\\r\\n\\t */\\r\\n\\tpublic updateFloodgateSurvey(onClose: () => void) {\\r\\n\\t\\t// Update the CentroLaunchOptions with new survey info\\r\\n\\t\\tthis.centroLaunchOptions = {\\r\\n\\t\\t\\tuxSchema: Configuration.get().getFloodgateSurvey().getUxSchema(),\\r\\n\\t\\t\\tclientFeedbackId: Configuration.get().getFloodgateSurvey().getPreGeneratedClientFeedbackId(),\\r\\n\\t\\t\\tcampaignId: Configuration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tsurveyId: Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tsurveyType: Configuration.get().getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t\\tisUserInitiatedSurvey: Configuration.get().getFloodgateSurvey().isUserInitiatedSurvey(),\\r\\n\\t\\t\\tcallbackFunctions: {\\r\\n\\t\\t\\t\\tonDismiss: (submitted: boolean) => {\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateInitOptions().onDismiss(\\r\\n\\t\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\t\\t\\t\\tsubmitted,\\r\\n\\t\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\t\\tonClose();\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\tonError: (errorMessage: string) => {\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getCommonInitOptions().onError(errorMessage);\\r\\n\\t\\t\\t\\t\\tonClose();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t};\\r\\n\\t\\tconst centroDataOptions: ICentroDataOptions = {\\r\\n\\t\\t\\t...this.centroInitOptions,\\r\\n\\t\\t\\t...this.centroLaunchOptions\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\t// we need to inform the existing listeners\\r\\n\\t\\tthis.listeners.forEach((listener: ConfigUpdatedListener) => listener(centroDataOptions));\\r\\n\\t}\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var CentroCoreDataSource=(cov_24bh9ud4p0.s[0]++,function(){cov_24bh9ud4p0.f[0]++;function CentroCoreDataSource(){cov_24bh9ud4p0.f[1]++;var _a,_b,_c,_d,_e,_f,_g,_h;cov_24bh9ud4p0.s[1]++;this.listeners=[];var complianceChecks=(cov_24bh9ud4p0.s[2]++,{authenticationType:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"AuthenticationType\"][(cov_24bh9ud4p0.b[1][0]++,(_b=(cov_24bh9ud4p0.b[3][0]++,(_a=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions())===null)||(cov_24bh9ud4p0.b[3][1]++,_a===void 0)?(cov_24bh9ud4p0.b[2][0]++,void 0):(cov_24bh9ud4p0.b[2][1]++,_a.authenticationType))!==null)&&(cov_24bh9ud4p0.b[1][1]++,_b!==void 0)?(cov_24bh9ud4p0.b[0][0]++,_b):(cov_24bh9ud4p0.b[0][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"AuthenticationType\"].Unauthenticated)],ageGroup:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"AgeGroup\"][(cov_24bh9ud4p0.b[5][0]++,(_d=(cov_24bh9ud4p0.b[7][0]++,(_c=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions())===null)||(cov_24bh9ud4p0.b[7][1]++,_c===void 0)?(cov_24bh9ud4p0.b[6][0]++,void 0):(cov_24bh9ud4p0.b[6][1]++,_c.ageGroup))!==null)&&(cov_24bh9ud4p0.b[5][1]++,_d!==void 0)?(cov_24bh9ud4p0.b[4][0]++,_d):(cov_24bh9ud4p0.b[4][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"AgeGroup\"].Undefined)],policyAllowFeedback:Object(_Utils__WEBPACK_IMPORTED_MODULE_3__[\"ocpsEnumToString\"])((cov_24bh9ud4p0.b[9][0]++,(_e=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getInAppFeedbackInitOptions())===null)||(cov_24bh9ud4p0.b[9][1]++,_e===void 0)?(cov_24bh9ud4p0.b[8][0]++,void 0):(cov_24bh9ud4p0.b[8][1]++,_e.sendFeedbackPolicyValue)),policyAllowSurvey:Object(_Utils__WEBPACK_IMPORTED_MODULE_3__[\"ocpsBooleanToString\"])((cov_24bh9ud4p0.b[11][0]++,(_f=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateInitOptions())===null)||(cov_24bh9ud4p0.b[11][1]++,_f===void 0)?(cov_24bh9ud4p0.b[10][0]++,void 0):(cov_24bh9ud4p0.b[10][1]++,_f.surveyEnabled)),policyAllowScreenshot:Object(_Utils__WEBPACK_IMPORTED_MODULE_3__[\"ocpsEnumToString\"])((cov_24bh9ud4p0.b[13][0]++,(_g=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions())===null)||(cov_24bh9ud4p0.b[13][1]++,_g===void 0)?(cov_24bh9ud4p0.b[12][0]++,void 0):(cov_24bh9ud4p0.b[12][1]++,_g.screenshotPolicyValue)),policyAllowContact:Object(_Utils__WEBPACK_IMPORTED_MODULE_3__[\"ocpsEnumToString\"])((cov_24bh9ud4p0.b[15][0]++,(_h=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions())===null)||(cov_24bh9ud4p0.b[15][1]++,_h===void 0)?(cov_24bh9ud4p0.b[14][0]++,void 0):(cov_24bh9ud4p0.b[14][1]++,_h.emailPolicyValue))});cov_24bh9ud4p0.s[3]++;this.centroInitOptions={commonInitOptions:{appId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().appId,application:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().applicationGroup,complianceChecks:complianceChecks,isProduction:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().environment===0,retentionDurationDays:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().retentionDurationDays,sdkVersion:_Constants__WEBPACK_IMPORTED_MODULE_4__[\"SDK_VERSION_PREFIX\"]+(_Window_Window__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().SvaFeedback.sdkVersion!==undefined?(cov_24bh9ud4p0.b[16][0]++,_Window_Window__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().SvaFeedback.sdkVersion):(cov_24bh9ud4p0.b[16][1]++,_Version__WEBPACK_IMPORTED_MODULE_5__[\"default\"])),telemetry:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().telemetryGroup,web:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().webGroup},autoDismissValues:{promptAutoDismissTimeInMs:Object(_Utils__WEBPACK_IMPORTED_MODULE_3__[\"convertAutoDismissToTimeInMs\"])(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateInitOptions().autoDismiss)},hostPlatform:_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_2__[\"IFloodgateHostPlatform\"].Web};}cov_24bh9ud4p0.s[4]++;CentroCoreDataSource.get=function(){cov_24bh9ud4p0.f[2]++;cov_24bh9ud4p0.s[5]++;if(!this.instance){cov_24bh9ud4p0.b[17][0]++;cov_24bh9ud4p0.s[6]++;this.instance=new CentroCoreDataSource();}else{cov_24bh9ud4p0.b[17][1]++;}cov_24bh9ud4p0.s[7]++;return this.instance;};cov_24bh9ud4p0.s[8]++;CentroCoreDataSource.prototype.register=function(listener){cov_24bh9ud4p0.f[3]++;cov_24bh9ud4p0.s[9]++;if(listener){cov_24bh9ud4p0.b[18][0]++;cov_24bh9ud4p0.s[10]++;this.listeners.push(listener);}else{cov_24bh9ud4p0.b[18][1]++;}var centroDataOptions=(cov_24bh9ud4p0.s[11]++,Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({},this.centroInitOptions),this.centroLaunchOptions));cov_24bh9ud4p0.s[12]++;return centroDataOptions;};cov_24bh9ud4p0.s[13]++;CentroCoreDataSource.prototype.unregister=function(listener){cov_24bh9ud4p0.f[4]++;var index=(cov_24bh9ud4p0.s[14]++,this.listeners.indexOf(listener));cov_24bh9ud4p0.s[15]++;if(index>-1){cov_24bh9ud4p0.b[19][0]++;cov_24bh9ud4p0.s[16]++;this.listeners.splice(index,1);}else{cov_24bh9ud4p0.b[19][1]++;}};cov_24bh9ud4p0.s[17]++;CentroCoreDataSource.prototype.updateFloodgateSurvey=function(onClose){cov_24bh9ud4p0.f[5]++;cov_24bh9ud4p0.s[18]++;this.centroLaunchOptions={uxSchema:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getUxSchema(),clientFeedbackId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getPreGeneratedClientFeedbackId(),campaignId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getCampaignId(),surveyId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getId(),surveyType:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getSurveyType(),isUserInitiatedSurvey:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().isUserInitiatedSurvey(),callbackFunctions:{onDismiss:function(submitted){cov_24bh9ud4p0.f[6]++;cov_24bh9ud4p0.s[19]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateInitOptions().onDismiss(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getFloodgateSurvey().getCampaignId(),submitted);cov_24bh9ud4p0.s[20]++;onClose();},onError:function(errorMessage){cov_24bh9ud4p0.f[7]++;cov_24bh9ud4p0.s[21]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_1__[\"get\"]().getCommonInitOptions().onError(errorMessage);cov_24bh9ud4p0.s[22]++;onClose();}}};var centroDataOptions=(cov_24bh9ud4p0.s[23]++,Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({},this.centroInitOptions),this.centroLaunchOptions));cov_24bh9ud4p0.s[24]++;this.listeners.forEach(function(listener){cov_24bh9ud4p0.f[8]++;cov_24bh9ud4p0.s[25]++;return listener(centroDataOptions);});};cov_24bh9ud4p0.s[26]++;return CentroCoreDataSource;}());//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9EeW5hbWljVXgvQ2VudHJvQ29yZURhdGFTb3VyY2UudHM/YTJjZiJdLCJuYW1lcyI6WyJDZW50cm9Db3JlRGF0YVNvdXJjZSIsIl9hIiwiX2IiLCJfYyIsIl9kIiwiX2UiLCJfZiIsIl9nIiwiX2giLCJsaXN0ZW5lcnMiLCJjb21wbGlhbmNlQ2hlY2tzIiwiYXV0aGVudGljYXRpb25UeXBlIiwiQXV0aGVudGljYXRpb25UeXBlIiwiQ29uZmlndXJhdGlvbiIsImdldENvbW1vbkluaXRPcHRpb25zIiwiVW5hdXRoZW50aWNhdGVkIiwiYWdlR3JvdXAiLCJBZ2VHcm91cCIsIlVuZGVmaW5lZCIsInBvbGljeUFsbG93RmVlZGJhY2siLCJvY3BzRW51bVRvU3RyaW5nIiwiZ2V0SW5BcHBGZWVkYmFja0luaXRPcHRpb25zIiwic2VuZEZlZWRiYWNrUG9saWN5VmFsdWUiLCJwb2xpY3lBbGxvd1N1cnZleSIsIm9jcHNCb29sZWFuVG9TdHJpbmciLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsInN1cnZleUVuYWJsZWQiLCJwb2xpY3lBbGxvd1NjcmVlbnNob3QiLCJzY3JlZW5zaG90UG9saWN5VmFsdWUiLCJwb2xpY3lBbGxvd0NvbnRhY3QiLCJlbWFpbFBvbGljeVZhbHVlIiwiY2VudHJvSW5pdE9wdGlvbnMiLCJjb21tb25Jbml0T3B0aW9ucyIsImFwcElkIiwiYXBwbGljYXRpb24iLCJhcHBsaWNhdGlvbkdyb3VwIiwiaXNQcm9kdWN0aW9uIiwiZW52aXJvbm1lbnQiLCJyZXRlbnRpb25EdXJhdGlvbkRheXMiLCJzZGtWZXJzaW9uIiwiU0RLX1ZFUlNJT05fUFJFRklYIiwiV2luZG93IiwiT2ZmaWNlQnJvd3NlckZlZWRiYWNrIiwidW5kZWZpbmVkIiwiVmVyc2lvbiIsInRlbGVtZXRyeSIsInRlbGVtZXRyeUdyb3VwIiwid2ViIiwid2ViR3JvdXAiLCJhdXRvRGlzbWlzc1ZhbHVlcyIsInByb21wdEF1dG9EaXNtaXNzVGltZUluTXMiLCJjb252ZXJ0QXV0b0Rpc21pc3NUb1RpbWVJbk1zIiwiYXV0b0Rpc21pc3MiLCJob3N0UGxhdGZvcm0iLCJJRmxvb2RnYXRlSG9zdFBsYXRmb3JtIiwiV2ViIiwiZ2V0IiwiaW5zdGFuY2UiLCJwcm90b3R5cGUiLCJyZWdpc3RlciIsImxpc3RlbmVyIiwicHVzaCIsImNlbnRyb0RhdGFPcHRpb25zIiwiX19hc3NpZ24iLCJjZW50cm9MYXVuY2hPcHRpb25zIiwidW5yZWdpc3RlciIsImluZGV4IiwiaW5kZXhPZiIsInNwbGljZSIsInVwZGF0ZUZsb29kZ2F0ZVN1cnZleSIsIm9uQ2xvc2UiLCJ1eFNjaGVtYSIsImdldEZsb29kZ2F0ZVN1cnZleSIsImdldFV4U2NoZW1hIiwiY2xpZW50RmVlZGJhY2tJZCIsImdldFByZUdlbmVyYXRlZENsaWVudEZlZWRiYWNrSWQiLCJjYW1wYWlnbklkIiwiZ2V0Q2FtcGFpZ25JZCIsInN1cnZleUlkIiwiZ2V0SWQiLCJzdXJ2ZXlUeXBlIiwiZ2V0U3VydmV5VHlwZSIsImlzVXNlckluaXRpYXRlZFN1cnZleSIsImNhbGxiYWNrRnVuY3Rpb25zIiwib25EaXNtaXNzIiwic3VibWl0dGVkIiwib25FcnJvciIsImVycm9yTWVzc2FnZSIsImZvckVhY2giXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Z2tpQkFRQSxHQUFJQSw2Q0FBd0IsVUFBWSx1QkFDcEMsUUFBU0EscUJBQVQsRUFBZ0MsdUJBQzVCLEdBQUlDLEdBQUosQ0FBUUMsRUFBUixDQUFZQyxFQUFaLENBQWdCQyxFQUFoQixDQUFvQkMsRUFBcEIsQ0FBd0JDLEVBQXhCLENBQTRCQyxFQUE1QixDQUFnQ0MsRUFBaEMsQ0FENEIsc0JBRTVCLEtBQUtDLFNBQUwsQ0FBaUIsRUFBakIsQ0FDQSxHQUFJQyx5Q0FBbUIsQ0FDbkJDLG1CQUFvQkMsK0VBQWtCQSxDQUFDLDJCQUFDVixHQUFNLDJCQUFDRCxHQUFLWSxnRUFBQSxHQUFvQkMsb0JBQXBCLEVBQU4sSUFBc0QsSUFBdEQsNkJBQThE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QixHQUF5Q1MsYUFBekMsRUFMVyxDQU12QkMsc0JBQXVCckUsZ0VBQUEsR0FBb0IyRCxrQkFBcEIsR0FBeUNVLHFCQUF6QyxFQU5BLENBT3ZCQyxrQkFBbUIsQ0FDZkMsVUFBVyxTQUFVQyxTQUFWLENBQXFCLDhDQUM1QnhFLGdFQUFBLEdBQW9CWSx1QkFBcEIsR0FBOEMyRCxTQUE5QyxDQUF3RHZFLGdFQUFBLEdBQW9CMkQsa0JBQXBCLEdBQXlDSyxhQUF6QyxFQUF4RCxDQUFrSFEsU0FBbEgsRUFENEIsdUJBRTVCZixVQUNILENBSmMsQ0FLZmdCLFFBQVMsU0FBVUMsWUFBVixDQUF3Qiw4Q0FDN0IxRSxnRUFBQSxHQUFvQkMsb0JBQXBCLEdBQTJDd0UsT0FBM0MsQ0FBbURDLFlBQW5ELEVBRDZCLHVCQUU3QmpCLFVBQ0gsQ0FSYyxDQVBJLENBQTNCLENBa0JBLEdBQUlSLDJDQUFvQkMsc0RBQVFBLENBQUNBLHNEQUFRQSxDQUFDLEVBQVQsQ0FBYSxLQUFLaEMsaUJBQWxCLENBQVQsQ0FBK0MsS0FBS2lDLG1CQUFwRCxDQUFwQixDQUFKLENBbkJzRSx1QkFvQnRFLEtBQUt2RCxTQUFMLENBQWUrRSxPQUFmLENBQXVCLFNBQVU1QixRQUFWLENBQW9CLDhDQUFFLE1BQU9BLFVBQVNFLGlCQUFULENBQVAsQ0FBcUMsQ0FBbEYsRUFDSCxDQXJCRCxDQWpEb0MsdUJBdUVwQyxNQUFPOUQscUJBQVAsQ0FDSCxDQXhFMkIsRUFBeEIsQ0FBSiIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL0R5bmFtaWNVeC9DZW50cm9Db3JlRGF0YVNvdXJjZS50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fYXNzaWduIH0gZnJvbSBcInRzbGliXCI7XHJcbmltcG9ydCB7IEFnZUdyb3VwLCBBdXRoZW50aWNhdGlvblR5cGUgfSBmcm9tIFwiLi4vLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IElGbG9vZGdhdGVIb3N0UGxhdGZvcm0gfSBmcm9tICdAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5ncyc7XHJcbmltcG9ydCB7IGNvbnZlcnRBdXRvRGlzbWlzc1RvVGltZUluTXMsIG9jcHNCb29sZWFuVG9TdHJpbmcsIG9jcHNFbnVtVG9TdHJpbmcgfSBmcm9tIFwiLi4vLi4vVXRpbHNcIjtcclxuaW1wb3J0IHsgU0RLX1ZFUlNJT05fUFJFRklYIH0gZnJvbSBcIi4uLy4uL0NvbnN0YW50c1wiO1xyXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi4vLi4vVmVyc2lvblwiO1xyXG5pbXBvcnQgKiBhcyBDb25maWd1cmF0aW9uIGZyb20gXCIuLi8uLi9Db25maWd1cmF0aW9uL0NvbmZpZ3VyYXRpb25cIjtcclxuaW1wb3J0ICogYXMgV2luZG93IGZyb20gXCIuLy4uLy4uL1dpbmRvdy9XaW5kb3dcIjtcclxudmFyIENlbnRyb0NvcmVEYXRhU291cmNlID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIENlbnRyb0NvcmVEYXRhU291cmNlKCkge1xyXG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2g7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMgPSBbXTtcclxuICAgICAgICB2YXIgY29tcGxpYW5jZUNoZWNrcyA9IHtcclxuICAgICAgICAgICAgYXV0aGVudGljYXRpb25UeXBlOiBBdXRoZW50aWNhdGlvblR5cGVbKF9iID0gKChfYSA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmF1dGhlbnRpY2F0aW9uVHlwZSkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IEF1dGhlbnRpY2F0aW9uVHlwZS5VbmF1dGhlbnRpY2F0ZWRdLFxyXG4gICAgICAgICAgICBhZ2VHcm91cDogQWdlR3JvdXBbKF9kID0gKChfYyA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLmFnZUdyb3VwKSkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogQWdlR3JvdXAuVW5kZWZpbmVkXSxcclxuICAgICAgICAgICAgcG9saWN5QWxsb3dGZWVkYmFjazogb2Nwc0VudW1Ub1N0cmluZygoX2UgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldEluQXBwRmVlZGJhY2tJbml0T3B0aW9ucygpKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uuc2VuZEZlZWRiYWNrUG9saWN5VmFsdWUpLFxyXG4gICAgICAgICAgICBwb2xpY3lBbGxvd1N1cnZleTogb2Nwc0Jvb2xlYW5Ub1N0cmluZygoX2YgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZUluaXRPcHRpb25zKCkpID09PSBudWxsIHx8IF9mID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZi5zdXJ2ZXlFbmFibGVkKSxcclxuICAgICAgICAgICAgcG9saWN5QWxsb3dTY3JlZW5zaG90OiBvY3BzRW51bVRvU3RyaW5nKChfZyA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKSkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLnNjcmVlbnNob3RQb2xpY3lWYWx1ZSksXHJcbiAgICAgICAgICAgIHBvbGljeUFsbG93Q29udGFjdDogb2Nwc0VudW1Ub1N0cmluZygoX2ggPSBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkpID09PSBudWxsIHx8IF9oID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfaC5lbWFpbFBvbGljeVZhbHVlKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuY2VudHJvSW5pdE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIGNvbW1vbkluaXRPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBhcHBJZDogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFwcElkLFxyXG4gICAgICAgICAgICAgICAgYXBwbGljYXRpb246IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKS5hcHBsaWNhdGlvbkdyb3VwLFxyXG4gICAgICAgICAgICAgICAgY29tcGxpYW5jZUNoZWNrczogY29tcGxpYW5jZUNoZWNrcyxcclxuICAgICAgICAgICAgICAgIGlzUHJvZHVjdGlvbjogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmVudmlyb25tZW50ID09PSAwLFxyXG4gICAgICAgICAgICAgICAgcmV0ZW50aW9uRHVyYXRpb25EYXlzOiBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkucmV0ZW50aW9uRHVyYXRpb25EYXlzLFxyXG4gICAgICAgICAgICAgICAgc2RrVmVyc2lvbjogU0RLX1ZFUlNJT05fUFJFRklYICsgKFdpbmRvdy5nZXQoKS5PZmZpY2VCcm93c2VyRmVlZGJhY2suc2RrVmVyc2lvbiAhPT0gdW5kZWZpbmVkID9cclxuICAgICAgICAgICAgICAgICAgICBXaW5kb3cuZ2V0KCkuT2ZmaWNlQnJvd3NlckZlZWRiYWNrLnNka1ZlcnNpb24gOiBWZXJzaW9uKSxcclxuICAgICAgICAgICAgICAgIHRlbGVtZXRyeTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLnRlbGVtZXRyeUdyb3VwLFxyXG4gICAgICAgICAgICAgICAgd2ViOiBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkud2ViR3JvdXBcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYXV0b0Rpc21pc3NWYWx1ZXM6IHtcclxuICAgICAgICAgICAgICAgIHByb21wdEF1dG9EaXNtaXNzVGltZUluTXM6IGNvbnZlcnRBdXRvRGlzbWlzc1RvVGltZUluTXMoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVJbml0T3B0aW9ucygpLmF1dG9EaXNtaXNzKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgaG9zdFBsYXRmb3JtOiBJRmxvb2RnYXRlSG9zdFBsYXRmb3JtLldlYixcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgQ2VudHJvQ29yZURhdGFTb3VyY2UuZ2V0ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlID0gbmV3IENlbnRyb0NvcmVEYXRhU291cmNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlO1xyXG4gICAgfTtcclxuICAgIENlbnRyb0NvcmVEYXRhU291cmNlLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0aW9uIChsaXN0ZW5lcikge1xyXG4gICAgICAgIGlmIChsaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5wdXNoKGxpc3RlbmVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdmFyIGNlbnRyb0RhdGFPcHRpb25zID0gX19hc3NpZ24oX19hc3NpZ24oe30sIHRoaXMuY2VudHJvSW5pdE9wdGlvbnMpLCB0aGlzLmNlbnRyb0xhdW5jaE9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiBjZW50cm9EYXRhT3B0aW9ucztcclxuICAgIH07XHJcbiAgICBDZW50cm9Db3JlRGF0YVNvdXJjZS5wcm90b3R5cGUudW5yZWdpc3RlciA9IGZ1bmN0aW9uIChsaXN0ZW5lcikge1xyXG4gICAgICAgIHZhciBpbmRleCA9IHRoaXMubGlzdGVuZXJzLmluZGV4T2YobGlzdGVuZXIpO1xyXG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgICAgIHRoaXMubGlzdGVuZXJzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIENlbnRyb0NvcmVEYXRhU291cmNlLnByb3RvdHlwZS51cGRhdGVGbG9vZGdhdGVTdXJ2ZXkgPSBmdW5jdGlvbiAob25DbG9zZSkge1xyXG4gICAgICAgIHRoaXMuY2VudHJvTGF1bmNoT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgdXhTY2hlbWE6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0VXhTY2hlbWEoKSxcclxuICAgICAgICAgICAgY2xpZW50RmVlZGJhY2tJZDogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRQcmVHZW5lcmF0ZWRDbGllbnRGZWVkYmFja0lkKCksXHJcbiAgICAgICAgICAgIGNhbXBhaWduSWQ6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0Q2FtcGFpZ25JZCgpLFxyXG4gICAgICAgICAgICBzdXJ2ZXlJZDogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRJZCgpLFxyXG4gICAgICAgICAgICBzdXJ2ZXlUeXBlOiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFN1cnZleVR5cGUoKSxcclxuICAgICAgICAgICAgaXNVc2VySW5pdGlhdGVkU3VydmV5OiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmlzVXNlckluaXRpYXRlZFN1cnZleSgpLFxyXG4gICAgICAgICAgICBjYWxsYmFja0Z1bmN0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgb25EaXNtaXNzOiBmdW5jdGlvbiAoc3VibWl0dGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVJbml0T3B0aW9ucygpLm9uRGlzbWlzcyhDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldENhbXBhaWduSWQoKSwgc3VibWl0dGVkKTtcclxuICAgICAgICAgICAgICAgICAgICBvbkNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgb25FcnJvcjogZnVuY3Rpb24gKGVycm9yTWVzc2FnZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKS5vbkVycm9yKGVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgICB2YXIgY2VudHJvRGF0YU9wdGlvbnMgPSBfX2Fzc2lnbihfX2Fzc2lnbih7fSwgdGhpcy5jZW50cm9Jbml0T3B0aW9ucyksIHRoaXMuY2VudHJvTGF1bmNoT3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5saXN0ZW5lcnMuZm9yRWFjaChmdW5jdGlvbiAobGlzdGVuZXIpIHsgcmV0dXJuIGxpc3RlbmVyKGNlbnRyb0RhdGFPcHRpb25zKTsgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIENlbnRyb0NvcmVEYXRhU291cmNlO1xyXG59KCkpO1xyXG5leHBvcnQgeyBDZW50cm9Db3JlRGF0YVNvdXJjZSB9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/UI/DynamicUx/CentroCoreDataSource.ts\n"); /***/ }), /***/ "./scripts/app/UI/DynamicUx/CentroLoaderWrapper.ts": /*!*********************************************************!*\ !*** ./scripts/app/UI/DynamicUx/CentroLoaderWrapper.ts ***! \*********************************************************/ /*! exports provided: CentroLoaderWrapper */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CentroLoaderWrapper\", function() { return CentroLoaderWrapper; });\n/* harmony import */ var _ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms/centro-hvc-loader */ \"./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/index.js\");\nvar cov_p1ghhn93t=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLoaderWrapper.ts\",hash=\"5feebe44a180e540d9fb1b503753d634a2bd73ff\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLoaderWrapper.ts\",statementMap:{\"0\":{start:{line:2,column:27},end:{line:10,column:3}},\"1\":{start:{line:5,column:4},end:{line:5,column:60}},\"2\":{start:{line:6,column:4},end:{line:6,column:72}},\"3\":{start:{line:7,column:4},end:{line:7,column:48}},\"4\":{start:{line:8,column:4},end:{line:8,column:56}},\"5\":{start:{line:9,column:4},end:{line:9,column:31}}},fnMap:{\"0\":{name:\"(anonymous_0)\",decl:{start:{line:2,column:27},end:{line:2,column:28}},loc:{start:{line:2,column:39},end:{line:10,column:1}},line:2},\"1\":{name:\"CentroLoaderWrapper\",decl:{start:{line:3,column:13},end:{line:3,column:32}},loc:{start:{line:3,column:35},end:{line:4,column:5}},line:3}},branchMap:{},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0},f:{\"0\":0,\"1\":0},b:{},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLoaderWrapper.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLoaderWrapper.ts\"],names:[],mappings:\"AAMA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAG5G;IAAA;IAKA,CAAC;IAJgB,oCAAgB,GAAG,gBAAgB,CAAC;IACpC,0CAAsB,GAAG,sBAAsB,CAAC;IAChD,8BAAU,GAAG,UAAU,CAAC;IACxB,kCAAc,GAAG,cAAc,CAAC;IACjD,0BAAC;CAAA,AALD,IAKC;SALY,mBAAmB\",sourcesContent:[\"\\r\\n\\r\\n/**\\r\\n * CentroLoaderWrapper to wrap around the centro-hvc-loader function such as bootstrapFeature, createStaticDataSource, initialize, preloadFeature\\r\\n * Therefore, we can mock those function by Jasmine for testing\\r\\n */\\r\\nimport { bootstrapFeature, createStaticDataSource, initialize, preloadFeature } from \\\"@ms/centro-hvc-loader\\\"\\r\\n\\r\\n\\r\\nexport class CentroLoaderWrapper {\\r\\n\\tstatic readonly bootstrapFeature = bootstrapFeature;\\r\\n\\tstatic readonly createStaticDataSource = createStaticDataSource;\\r\\n\\tstatic readonly initialize = initialize;\\r\\n\\tstatic readonly preloadFeature = preloadFeature;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var CentroLoaderWrapper=(cov_p1ghhn93t.s[0]++,function(){cov_p1ghhn93t.f[0]++;function CentroLoaderWrapper(){cov_p1ghhn93t.f[1]++;}cov_p1ghhn93t.s[1]++;CentroLoaderWrapper.bootstrapFeature=_ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_0__[\"bootstrapFeature\"];cov_p1ghhn93t.s[2]++;CentroLoaderWrapper.createStaticDataSource=_ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_0__[\"createStaticDataSource\"];cov_p1ghhn93t.s[3]++;CentroLoaderWrapper.initialize=_ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_0__[\"initialize\"];cov_p1ghhn93t.s[4]++;CentroLoaderWrapper.preloadFeature=_ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_0__[\"preloadFeature\"];cov_p1ghhn93t.s[5]++;return CentroLoaderWrapper;}());//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9EeW5hbWljVXgvQ2VudHJvTG9hZGVyV3JhcHBlci50cz85NDM2Il0sIm5hbWVzIjpbIkNlbnRyb0xvYWRlcldyYXBwZXIiLCJib290c3RyYXBGZWF0dXJlIiwiY3JlYXRlU3RhdGljRGF0YVNvdXJjZSIsImluaXRpYWxpemUiLCJwcmVsb2FkRmVhdHVyZSJdLCJtYXBwaW5ncyI6Ijs7OzAzRUFDQSxHQUFJQSwyQ0FBdUIsVUFBWSxzQkFDbkMsUUFBU0Esb0JBQVQsRUFBK0Isc0JBQzlCLENBRmtDLHFCQUduQ0Esb0JBQW9CQyxnQkFBcEIsQ0FBdUNBLHNFQUF2QyxDQUhtQyxxQkFJbkNELG9CQUFvQkUsc0JBQXBCLENBQTZDQSw0RUFBN0MsQ0FKbUMscUJBS25DRixvQkFBb0JHLFVBQXBCLENBQWlDQSxnRUFBakMsQ0FMbUMscUJBTW5DSCxvQkFBb0JJLGNBQXBCLENBQXFDQSxvRUFBckMsQ0FObUMscUJBT25DLE1BQU9KLG9CQUFQLENBQ0gsQ0FSMEIsRUFBdkIsQ0FBSiIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL0R5bmFtaWNVeC9DZW50cm9Mb2FkZXJXcmFwcGVyLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vdHN0cmFwRmVhdHVyZSwgY3JlYXRlU3RhdGljRGF0YVNvdXJjZSwgaW5pdGlhbGl6ZSwgcHJlbG9hZEZlYXR1cmUgfSBmcm9tIFwiQG1zL2NlbnRyby1odmMtbG9hZGVyXCI7XHJcbnZhciBDZW50cm9Mb2FkZXJXcmFwcGVyID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIENlbnRyb0xvYWRlcldyYXBwZXIoKSB7XHJcbiAgICB9XHJcbiAgICBDZW50cm9Mb2FkZXJXcmFwcGVyLmJvb3RzdHJhcEZlYXR1cmUgPSBib290c3RyYXBGZWF0dXJlO1xyXG4gICAgQ2VudHJvTG9hZGVyV3JhcHBlci5jcmVhdGVTdGF0aWNEYXRhU291cmNlID0gY3JlYXRlU3RhdGljRGF0YVNvdXJjZTtcclxuICAgIENlbnRyb0xvYWRlcldyYXBwZXIuaW5pdGlhbGl6ZSA9IGluaXRpYWxpemU7XHJcbiAgICBDZW50cm9Mb2FkZXJXcmFwcGVyLnByZWxvYWRGZWF0dXJlID0gcHJlbG9hZEZlYXR1cmU7XHJcbiAgICByZXR1cm4gQ2VudHJvTG9hZGVyV3JhcHBlcjtcclxufSgpKTtcclxuZXhwb3J0IHsgQ2VudHJvTG9hZGVyV3JhcHBlciB9O1xyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/UI/DynamicUx/CentroLoaderWrapper.ts\n"); /***/ }), /***/ "./scripts/app/UI/DynamicUx/CentroLogger.ts": /*!**************************************************!*\ !*** ./scripts/app/UI/DynamicUx/CentroLogger.ts ***! \**************************************************/ /*! exports provided: centroLogging */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"centroLogging\", function() { return centroLogging; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ms/centro-hvc-loader */ \"./node_modules/@ms/centro-hvc-loader/dist/hvc-loader/index.js\");\n/* harmony import */ var _Logging_Logging__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../Logging/Logging */ \"./scripts/app/Logging/Logging.ts\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\nvar cov_sp2xj7sba=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLogger.ts\",hash=\"a05895444a92542b264b83284a045f965c312c06\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLogger.ts\",statementMap:{\"0\":{start:{line:7,column:4},end:{line:28,column:5}},\"1\":{start:{line:8,column:28},end:{line:8,column:47}},\"2\":{start:{line:9,column:19},end:{line:9,column:31}},\"3\":{start:{line:9,column:38},end:{line:9,column:48}},\"4\":{start:{line:9,column:57},end:{line:9,column:88}},\"5\":{start:{line:10,column:26},end:{line:15,column:9}},\"6\":{start:{line:16,column:8},end:{line:21,column:9}},\"7\":{start:{line:17,column:12},end:{line:17,column:88}},\"8\":{start:{line:18,column:12},end:{line:18,column:78}},\"9\":{start:{line:19,column:12},end:{line:19,column:88}},\"10\":{start:{line:20,column:12},end:{line:20,column:112}},\"11\":{start:{line:22,column:8},end:{line:22,column:108}},\"12\":{start:{line:25,column:8},end:{line:27,column:11}},\"13\":{start:{line:30,column:27},end:{line:41,column:1}},\"14\":{start:{line:31,column:18},end:{line:31,column:20}},\"15\":{start:{line:32,column:4},end:{line:34,column:5}},\"16\":{start:{line:33,column:8},end:{line:33,column:37}},\"17\":{start:{line:35,column:4},end:{line:38,column:5}},\"18\":{start:{line:36,column:8},end:{line:36,column:43}},\"19\":{start:{line:37,column:8},end:{line:37,column:17}},\"20\":{start:{line:39,column:4},end:{line:39,column:34}},\"21\":{start:{line:40,column:4},end:{line:40,column:13}}},fnMap:{\"0\":{name:\"centroLogging\",decl:{start:{line:5,column:16},end:{line:5,column:29}},loc:{start:{line:5,column:39},end:{line:29,column:1}},line:5},\"1\":{name:\"(anonymous_1)\",decl:{start:{line:30,column:27},end:{line:30,column:28}},loc:{start:{line:30,column:59},end:{line:41,column:1}},line:30}},branchMap:{\"0\":{loc:{start:{line:11,column:31},end:{line:11,column:140}},type:\"cond-expr\",locations:[{start:{line:11,column:118},end:{line:11,column:124}},{start:{line:11,column:127},end:{line:11,column:140}}],line:11},\"1\":{loc:{start:{line:11,column:31},end:{line:11,column:115}},type:\"binary-expr\",locations:[{start:{line:11,column:31},end:{line:11,column:98}},{start:{line:11,column:102},end:{line:11,column:115}}],line:11},\"2\":{loc:{start:{line:16,column:8},end:{line:21,column:9}},type:\"if\",locations:[{start:{line:16,column:8},end:{line:21,column:9}},{start:{line:16,column:8},end:{line:21,column:9}}],line:16},\"3\":{loc:{start:{line:26,column:57},end:{line:26,column:107}},type:\"cond-expr\",locations:[{start:{line:26,column:82},end:{line:26,column:102}},{start:{line:26,column:105},end:{line:26,column:107}}],line:26},\"4\":{loc:{start:{line:26,column:57},end:{line:26,column:79}},type:\"binary-expr\",locations:[{start:{line:26,column:57},end:{line:26,column:62}},{start:{line:26,column:66},end:{line:26,column:79}}],line:26},\"5\":{loc:{start:{line:32,column:4},end:{line:34,column:5}},type:\"if\",locations:[{start:{line:32,column:4},end:{line:34,column:5}},{start:{line:32,column:4},end:{line:34,column:5}}],line:32},\"6\":{loc:{start:{line:32,column:8},end:{line:32,column:106}},type:\"binary-expr\",locations:[{start:{line:32,column:8},end:{line:32,column:64}},{start:{line:32,column:68},end:{line:32,column:106}}],line:32},\"7\":{loc:{start:{line:35,column:4},end:{line:38,column:5}},type:\"if\",locations:[{start:{line:35,column:4},end:{line:38,column:5}},{start:{line:35,column:4},end:{line:38,column:5}}],line:35}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0},f:{\"0\":0,\"1\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLogger.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroLogger.ts\"],names:[],mappings:\";AAMA,OAAO,EAAe,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,OAAO,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAC;AAGnE,MAAM,UAAU,aAAa,CAAC,OAAoB;;IACjD,IAAI;QACH,IAAM,aAAa,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC;QACnC,IAAA,IAAI,GAAiB,OAAO,KAAxB,EAAE,EAAE,GAAa,OAAO,GAApB,EAAK,IAAI,UAAI,OAAO,EAA7B,cAAmB,CAAD,CAAY;QACpC,IAAM,WAAW,GAA8B;YAC9C,iBAAiB,EAAE,MAAA,aAAa,CAAC,uBAAuB,EAAE,CAAC,WAAW,0CAAE,QAAQ,EAAE;YAClF,oBAAoB,EAAE,aAAa,CAAC,uBAAuB,EAAE,CAAC,gBAAgB;YAC9E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAChC,CAAC;QAEF,IAAI,aAAa,CAAC,kBAAkB,EAAE,EAAE;YACvC,WAAW,CAAC,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC,aAAa,EAAE,CAAC;YAC5E,WAAW,CAAC,QAAQ,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC,KAAK,EAAE,CAAC;YAClE,WAAW,CAAC,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC,aAAa,EAAE,CAAC;YAC5E,WAAW,CAAC,gBAAgB,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC,+BAA+B,EAAE,CAAC;SACpG;QAED,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAC,IAAI,EAAE,EAAE,EAAC,EAAE,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;KAClG;IACD,OAAO,KAAK,EAAE;QACb,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAE3C;YACC,YAAY,EAAE,2BAA2B,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CACD,CAAC;KACF;AACF,CAAC;AAED,IAAM,oBAAoB,GAAG,UAAC,OAAoB,EAAE,WAAsC;IACzF,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE;QACvG,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;KAC5B;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QACrB,WAAW,CAAC,YAAY,GAAG,OAAO,CAAA;QAClC,SAA8B;KAC9B;IAED,WAAW,CAAC,OAAO,GAAG,OAAO,CAAA;IAE7B,SAAiC;AAClC,CAAC,CAAA\",sourcesContent:[\"/**\\r\\n * CentroLogger.ts\\r\\n *\\r\\n * Module for the Centro logging\\r\\n */\\r\\n\\r\\nimport { ILogOptions, isError } from '@ms/centro-hvc-loader'\\r\\nimport * as Logging from \\\"../../Logging/Logging\\\";\\r\\nimport * as Configuration from \\\"../../Configuration/Configuration\\\";\\r\\n\\r\\n// This is the object which is used to open/close/update data to Floodgate Centro\\r\\nexport function centroLogging(options: ILogOptions) {\\r\\n\\ttry {\\r\\n\\t\\tconst configuration = Configuration.get();\\r\\n\\t\\tconst {data, id, ...rest} = options;\\r\\n\\t\\tconst persistData: Logging.ICustomProperties = {\\r\\n\\t\\t\\tPromptAutoDismiss: configuration.getFloodgateInitOptions().autoDismiss?.toString(),\\r\\n\\t\\t\\tIsEmailPolicyEnabled: configuration.getFloodgateInitOptions().showEmailAddress,\\r\\n\\t\\t\\tData: JSON.stringify(data),\\r\\n\\t\\t\\tCentroData: JSON.stringify(rest),\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tif (configuration.getFloodgateSurvey()) {\\r\\n\\t\\t\\tpersistData.CampaignId = configuration.getFloodgateSurvey().getCampaignId();\\r\\n\\t\\t\\tpersistData.SurveyId = configuration.getFloodgateSurvey().getId();\\r\\n\\t\\t\\tpersistData.SurveyType = configuration.getFloodgateSurvey().getSurveyType();\\r\\n\\t\\t\\tpersistData.ClientFeedbackId = configuration.getFloodgateSurvey().getPreGeneratedClientFeedbackId();\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tLogging.getLogger().logEvent({name: id}, convertCentroLogType(options, persistData), persistData);\\r\\n\\t}\\r\\n\\tcatch (error) {\\r\\n\\t\\tLogging.getLogger().logEvent(\\r\\n\\t\\t\\tLogging.EventIds.Centro.Logging.Error.VALUE,\\r\\n\\t\\t\\tLogging.LogLevel.Error,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tErrorMessage: \\\"Error logging centro data\\\" + (error && error.message ? \\\": \\\" + error.message : \\\"\\\")\\r\\n\\t\\t\\t}\\r\\n\\t\\t);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nconst convertCentroLogType = (options: ILogOptions, persistData: Logging.ICustomProperties) => {\\r\\n\\tlet message = '';\\r\\n\\tif (Object.prototype.hasOwnProperty.call(options, 'message') && typeof options['message'] === \\\"string\\\") {\\r\\n\\t\\tmessage = options['message']\\r\\n\\t}\\r\\n\\r\\n\\tif (isError(options)) {\\r\\n\\t\\tpersistData.ErrorMessage = message\\r\\n\\t\\treturn Logging.LogLevel.Error;\\r\\n\\t}\\r\\n\\r\\n\\tpersistData.Message = message\\r\\n\\t// Anything from Centro is considered as Critical\\r\\n\\treturn Logging.LogLevel.Critical;\\r\\n}\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function centroLogging(options){cov_sp2xj7sba.f[0]++;var _a;cov_sp2xj7sba.s[0]++;try{var configuration=(cov_sp2xj7sba.s[1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]());var data=(cov_sp2xj7sba.s[2]++,options.data),id=(cov_sp2xj7sba.s[3]++,options.id),rest=(cov_sp2xj7sba.s[4]++,Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__rest\"])(options,[\"data\",\"id\"]));var persistData=(cov_sp2xj7sba.s[5]++,{PromptAutoDismiss:(cov_sp2xj7sba.b[1][0]++,(_a=configuration.getFloodgateInitOptions().autoDismiss)===null)||(cov_sp2xj7sba.b[1][1]++,_a===void 0)?(cov_sp2xj7sba.b[0][0]++,void 0):(cov_sp2xj7sba.b[0][1]++,_a.toString()),IsEmailPolicyEnabled:configuration.getFloodgateInitOptions().showEmailAddress,Data:JSON.stringify(data),CentroData:JSON.stringify(rest)});cov_sp2xj7sba.s[6]++;if(configuration.getFloodgateSurvey()){cov_sp2xj7sba.b[2][0]++;cov_sp2xj7sba.s[7]++;persistData.CampaignId=configuration.getFloodgateSurvey().getCampaignId();cov_sp2xj7sba.s[8]++;persistData.SurveyId=configuration.getFloodgateSurvey().getId();cov_sp2xj7sba.s[9]++;persistData.SurveyType=configuration.getFloodgateSurvey().getSurveyType();cov_sp2xj7sba.s[10]++;persistData.ClientFeedbackId=configuration.getFloodgateSurvey().getPreGeneratedClientFeedbackId();}else{cov_sp2xj7sba.b[2][1]++;}cov_sp2xj7sba.s[11]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_2__[\"getLogger\"]().logEvent({name:id},convertCentroLogType(options,persistData),persistData);}catch(error){cov_sp2xj7sba.s[12]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_2__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_2__[\"EventIds\"].Centro.Logging.Error.VALUE,2,{ErrorMessage:\"Error logging centro data\"+((cov_sp2xj7sba.b[4][0]++,error)&&(cov_sp2xj7sba.b[4][1]++,error.message)?(cov_sp2xj7sba.b[3][0]++,\": \"+error.message):(cov_sp2xj7sba.b[3][1]++,\"\"))});}}cov_sp2xj7sba.s[13]++;var convertCentroLogType=function(options,persistData){cov_sp2xj7sba.f[1]++;var message=(cov_sp2xj7sba.s[14]++,'');cov_sp2xj7sba.s[15]++;if((cov_sp2xj7sba.b[6][0]++,Object.prototype.hasOwnProperty.call(options,'message'))&&(cov_sp2xj7sba.b[6][1]++,typeof options['message']===\"string\")){cov_sp2xj7sba.b[5][0]++;cov_sp2xj7sba.s[16]++;message=options['message'];}else{cov_sp2xj7sba.b[5][1]++;}cov_sp2xj7sba.s[17]++;if(Object(_ms_centro_hvc_loader__WEBPACK_IMPORTED_MODULE_1__[\"isError\"])(options)){cov_sp2xj7sba.b[7][0]++;cov_sp2xj7sba.s[18]++;persistData.ErrorMessage=message;cov_sp2xj7sba.s[19]++;return 2;}else{cov_sp2xj7sba.b[7][1]++;}cov_sp2xj7sba.s[20]++;persistData.Message=message;cov_sp2xj7sba.s[21]++;return 1;};//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9EeW5hbWljVXgvQ2VudHJvTG9nZ2VyLnRzPzNhNzgiXSwibmFtZXMiOlsiY2VudHJvTG9nZ2luZyIsIm9wdGlvbnMiLCJfYSIsImNvbmZpZ3VyYXRpb24iLCJDb25maWd1cmF0aW9uIiwiZGF0YSIsImlkIiwicmVzdCIsIl9fcmVzdCIsInBlcnNpc3REYXRhIiwiUHJvbXB0QXV0b0Rpc21pc3MiLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsImF1dG9EaXNtaXNzIiwidG9TdHJpbmciLCJJc0VtYWlsUG9saWN5RW5hYmxlZCIsInNob3dFbWFpbEFkZHJlc3MiLCJEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsIkNlbnRyb0RhdGEiLCJnZXRGbG9vZGdhdGVTdXJ2ZXkiLCJDYW1wYWlnbklkIiwiZ2V0Q2FtcGFpZ25JZCIsIlN1cnZleUlkIiwiZ2V0SWQiLCJTdXJ2ZXlUeXBlIiwiZ2V0U3VydmV5VHlwZSIsIkNsaWVudEZlZWRiYWNrSWQiLCJnZXRQcmVHZW5lcmF0ZWRDbGllbnRGZWVkYmFja0lkIiwiTG9nZ2luZyIsImxvZ0V2ZW50IiwibmFtZSIsImNvbnZlcnRDZW50cm9Mb2dUeXBlIiwiZXJyb3IiLCJDZW50cm8iLCJFcnJvciIsIlZBTFVFIiwiRXJyb3JNZXNzYWdlIiwibWVzc2FnZSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImlzRXJyb3IiLCJNZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7eTZQQUlPLFFBQVNBLGNBQVQsQ0FBdUJDLE9BQXZCLENBQWdDLHNCQUNuQyxHQUFJQyxHQUFKLENBRG1DLHFCQUVuQyxHQUFJLENBQ0EsR0FBSUMscUNBQWdCQyxnRUFBQSxFQUFoQixDQUFKLENBQ0EsR0FBSUMsNEJBQU9KLFFBQVFJLElBQWYsQ0FBSixDQUF5QkMseUJBQUtMLFFBQVFLLEVBQWIsQ0FBekIsQ0FBMENDLDJCQUFPQyxvREFBTUEsQ0FBQ1AsT0FBUCxDQUFnQixDQUFDLE1BQUQsQ0FBUyxJQUFULENBQWhCLENBQVAsQ0FBMUMsQ0FDQSxHQUFJUSxtQ0FBYyxDQUNkQyxrQkFBbUIsMEJBQUNSLEdBQUtDLGNBQWNRLHVCQUFkLEdBQXdDQyxXQUE5QyxJQUErRCxJQUEvRCw0QkFBdUVWLEtBQU8sSUFBSyxFQUFuRiwyQkFBdUYsSUFBSyxFQUE1RiwyQkFBZ0dBLEdBQUdXLFFBQUgsRUFBaEcsQ0FETCxDQUVkQyxxQkFBc0JYLGNBQWNRLHVCQUFkLEdBQXdDSSxnQkFGaEQsQ0FHZEMsS0FBTUMsS0FBS0MsU0FBTCxDQUFlYixJQUFmLENBSFEsQ0FJZGMsV0FBWUYsS0FBS0MsU0FBTCxDQUFlWCxJQUFmLENBSkUsQ0FBZCxDQUFKLENBSEEscUJBU0EsR0FBSUosY0FBY2lCLGtCQUFkLEVBQUosQ0FBd0MsOENBQ3BDWCxZQUFZWSxVQUFaLENBQXlCbEIsY0FBY2lCLGtCQUFkLEdBQW1DRSxhQUFuQyxFQUF6QixDQURvQyxxQkFFcENiLFlBQVljLFFBQVosQ0FBdUJwQixjQUFjaUIsa0JBQWQsR0FBbUNJLEtBQW5DLEVBQXZCLENBRm9DLHFCQUdwQ2YsWUFBWWdCLFVBQVosQ0FBeUJ0QixjQUFjaUIsa0JBQWQsR0FBbUNNLGFBQW5DLEVBQXpCLENBSG9DLHNCQUlwQ2pCLFlBQVlrQixnQkFBWixDQUErQnhCLGNBQWNpQixrQkFBZCxHQUFtQ1EsK0JBQW5DLEVBQS9CLENBQ0gsQ0FMRCw4QkFUQSxzQkFlQUMsMERBQUEsR0FBb0JDLFFBQXBCLENBQTZCLENBQUVDLEtBQU16QixFQUFSLENBQTdCLENBQTJDMEIscUJBQXFCL0IsT0FBckIsQ0FBOEJRLFdBQTlCLENBQTNDLENBQXVGQSxXQUF2RixFQUNILENBQ0QsTUFBT3dCLEtBQVAsQ0FBYyx1QkFDVkosMERBQUEsR0FBb0JDLFFBQXBCLENBQTZCRCx5REFBQSxDQUFpQkssTUFBakIsQ0FBd0JMLE9BQXhCLENBQWdDTSxLQUFoQyxDQUFzQ0MsS0FBbkUsQ0FBMEUsQ0FBMUUsQ0FBNkUsQ0FDekVDLGFBQWMsNkJBQStCLDBEQUFTSixNQUFNSyxPQUFmLDJCQUF5QixLQUFPTCxNQUFNSyxPQUF0QywyQkFBZ0QsRUFBaEQsQ0FBL0IsQ0FEMkQsQ0FBN0UsRUFHSCxDQUNKLEMsc0JBQ0QsR0FBSU4sc0JBQXVCLFNBQVUvQixPQUFWLENBQW1CUSxXQUFuQixDQUFnQyxzQkFDdkQsR0FBSTZCLGdDQUFVLEVBQVYsQ0FBSixDQUR1RCxzQkFFdkQsR0FBSSxnQ0FBT0MsU0FBUCxDQUFpQkMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDeEMsT0FBckMsQ0FBOEMsU0FBOUMsNkJBQTRELE1BQU9BLFNBQVEsU0FBUixDQUFQLEdBQThCLFFBQTFGLENBQUosQ0FBd0csK0NBQ3BHcUMsUUFBVXJDLFFBQVEsU0FBUixDQUFWLENBQ0gsQ0FGRCw4QkFGdUQsc0JBS3ZELEdBQUl5QyxxRUFBT0EsQ0FBQ3pDLE9BQVIsQ0FBSixDQUFzQiwrQ0FDbEJRLFlBQVk0QixZQUFaLENBQTJCQyxPQUEzQixDQURrQixzQkFFbEIsTUFBTyxFQUFQLENBQ0gsQ0FIRCw4QkFMdUQsc0JBU3ZEN0IsWUFBWWtDLE9BQVosQ0FBc0JMLE9BQXRCLENBVHVELHNCQVV2RCxNQUFPLEVBQVAsQ0FDSCxDQVhEIiwiZmlsZSI6Ii4vc2NyaXB0cy9hcHAvVUkvRHluYW1pY1V4L0NlbnRyb0xvZ2dlci50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9fcmVzdCB9IGZyb20gXCJ0c2xpYlwiO1xyXG5pbXBvcnQgeyBpc0Vycm9yIH0gZnJvbSAnQG1zL2NlbnRyby1odmMtbG9hZGVyJztcclxuaW1wb3J0ICogYXMgTG9nZ2luZyBmcm9tIFwiLi4vLi4vTG9nZ2luZy9Mb2dnaW5nXCI7XHJcbmltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4uLy4uL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvblwiO1xyXG5leHBvcnQgZnVuY3Rpb24gY2VudHJvTG9nZ2luZyhvcHRpb25zKSB7XHJcbiAgICB2YXIgX2E7XHJcbiAgICB0cnkge1xyXG4gICAgICAgIHZhciBjb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5nZXQoKTtcclxuICAgICAgICB2YXIgZGF0YSA9IG9wdGlvbnMuZGF0YSwgaWQgPSBvcHRpb25zLmlkLCByZXN0ID0gX19yZXN0KG9wdGlvbnMsIFtcImRhdGFcIiwgXCJpZFwiXSk7XHJcbiAgICAgICAgdmFyIHBlcnNpc3REYXRhID0ge1xyXG4gICAgICAgICAgICBQcm9tcHRBdXRvRGlzbWlzczogKF9hID0gY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVJbml0T3B0aW9ucygpLmF1dG9EaXNtaXNzKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgSXNFbWFpbFBvbGljeUVuYWJsZWQ6IGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKS5zaG93RW1haWxBZGRyZXNzLFxyXG4gICAgICAgICAgICBEYXRhOiBKU09OLnN0cmluZ2lmeShkYXRhKSxcclxuICAgICAgICAgICAgQ2VudHJvRGF0YTogSlNPTi5zdHJpbmdpZnkocmVzdCksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKSkge1xyXG4gICAgICAgICAgICBwZXJzaXN0RGF0YS5DYW1wYWlnbklkID0gY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCk7XHJcbiAgICAgICAgICAgIHBlcnNpc3REYXRhLlN1cnZleUlkID0gY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRJZCgpO1xyXG4gICAgICAgICAgICBwZXJzaXN0RGF0YS5TdXJ2ZXlUeXBlID0gY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRTdXJ2ZXlUeXBlKCk7XHJcbiAgICAgICAgICAgIHBlcnNpc3REYXRhLkNsaWVudEZlZWRiYWNrSWQgPSBjb25maWd1cmF0aW9uLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFByZUdlbmVyYXRlZENsaWVudEZlZWRiYWNrSWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudCh7IG5hbWU6IGlkIH0sIGNvbnZlcnRDZW50cm9Mb2dUeXBlKG9wdGlvbnMsIHBlcnNpc3REYXRhKSwgcGVyc2lzdERhdGEpO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChMb2dnaW5nLkV2ZW50SWRzLkNlbnRyby5Mb2dnaW5nLkVycm9yLlZBTFVFLCAyLCB7XHJcbiAgICAgICAgICAgIEVycm9yTWVzc2FnZTogXCJFcnJvciBsb2dnaW5nIGNlbnRybyBkYXRhXCIgKyAoZXJyb3IgJiYgZXJyb3IubWVzc2FnZSA/IFwiOiBcIiArIGVycm9yLm1lc3NhZ2UgOiBcIlwiKVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbnZhciBjb252ZXJ0Q2VudHJvTG9nVHlwZSA9IGZ1bmN0aW9uIChvcHRpb25zLCBwZXJzaXN0RGF0YSkge1xyXG4gICAgdmFyIG1lc3NhZ2UgPSAnJztcclxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob3B0aW9ucywgJ21lc3NhZ2UnKSAmJiB0eXBlb2Ygb3B0aW9uc1snbWVzc2FnZSddID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgbWVzc2FnZSA9IG9wdGlvbnNbJ21lc3NhZ2UnXTtcclxuICAgIH1cclxuICAgIGlmIChpc0Vycm9yKG9wdGlvbnMpKSB7XHJcbiAgICAgICAgcGVyc2lzdERhdGEuRXJyb3JNZXNzYWdlID0gbWVzc2FnZTtcclxuICAgICAgICByZXR1cm4gMjtcclxuICAgIH1cclxuICAgIHBlcnNpc3REYXRhLk1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gICAgcmV0dXJuIDE7XHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UI/DynamicUx/CentroLogger.ts\n"); /***/ }), /***/ "./scripts/app/UI/DynamicUx/CentroThemeDataSource.ts": /*!***********************************************************!*\ !*** ./scripts/app/UI/DynamicUx/CentroThemeDataSource.ts ***! \***********************************************************/ /*! exports provided: CentroThemeDataSource */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"CentroThemeDataSource\", function() { return CentroThemeDataSource; });\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\nvar cov_xm6hvswwk=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroThemeDataSource.ts\",hash=\"3d498e262aae4980a2a4dbd238a1e724e4d19fd3\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroThemeDataSource.ts\",statementMap:{\"0\":{start:{line:2,column:29},end:{line:31,column:3}},\"1\":{start:{line:4,column:8},end:{line:4,column:28}},\"2\":{start:{line:5,column:8},end:{line:10,column:10}},\"3\":{start:{line:12,column:4},end:{line:17,column:6}},\"4\":{start:{line:13,column:8},end:{line:15,column:9}},\"5\":{start:{line:14,column:12},end:{line:14,column:56}},\"6\":{start:{line:16,column:8},end:{line:16,column:29}},\"7\":{start:{line:18,column:4},end:{line:23,column:6}},\"8\":{start:{line:19,column:8},end:{line:21,column:9}},\"9\":{start:{line:20,column:12},end:{line:20,column:42}},\"10\":{start:{line:22,column:8},end:{line:22,column:39}},\"11\":{start:{line:24,column:4},end:{line:29,column:6}},\"12\":{start:{line:25,column:20},end:{line:25,column:52}},\"13\":{start:{line:26,column:8},end:{line:28,column:9}},\"14\":{start:{line:27,column:12},end:{line:27,column:44}},\"15\":{start:{line:30,column:4},end:{line:30,column:33}}},fnMap:{\"0\":{name:\"(anonymous_0)\",decl:{start:{line:2,column:29},end:{line:2,column:30}},loc:{start:{line:2,column:41},end:{line:31,column:1}},line:2},\"1\":{name:\"CentroThemeDataSource\",decl:{start:{line:3,column:13},end:{line:3,column:34}},loc:{start:{line:3,column:37},end:{line:11,column:5}},line:3},\"2\":{name:\"(anonymous_2)\",decl:{start:{line:12,column:32},end:{line:12,column:33}},loc:{start:{line:12,column:44},end:{line:17,column:5}},line:12},\"3\":{name:\"(anonymous_3)\",decl:{start:{line:18,column:47},end:{line:18,column:48}},loc:{start:{line:18,column:67},end:{line:23,column:5}},line:18},\"4\":{name:\"(anonymous_4)\",decl:{start:{line:24,column:49},end:{line:24,column:50}},loc:{start:{line:24,column:69},end:{line:29,column:5}},line:24}},branchMap:{\"0\":{loc:{start:{line:13,column:8},end:{line:15,column:9}},type:\"if\",locations:[{start:{line:13,column:8},end:{line:15,column:9}},{start:{line:13,column:8},end:{line:15,column:9}}],line:13},\"1\":{loc:{start:{line:19,column:8},end:{line:21,column:9}},type:\"if\",locations:[{start:{line:19,column:8},end:{line:21,column:9}},{start:{line:19,column:8},end:{line:21,column:9}}],line:19},\"2\":{loc:{start:{line:26,column:8},end:{line:28,column:9}},type:\"if\",locations:[{start:{line:26,column:8},end:{line:28,column:9}},{start:{line:26,column:8},end:{line:28,column:9}}],line:26}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroThemeDataSource.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\CentroThemeDataSource.ts\"],names:[],mappings:\"AAOA,OAAO,KAAK,aAAa,MAAM,mCAAmC,CAAA;AAIlE;IAgBC;QAXQ,cAAS,GAAiD,EAAE,CAAC;QAYpE,IAAI,CAAC,kBAAkB,GAAG;YACzB,SAAS,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,KAAK;YACzD,oBAAoB,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,aAAa;YAC9E,sBAAsB,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,eAAe;YAClF,iBAAiB,EAAE,aAAa,CAAC,GAAG,EAAE,CAAC,uBAAuB,EAAE,CAAC,eAAe;SAChF,CAAC;IACH,CAAC;IAda,yBAAG,GAAjB;QACC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;SAC5C;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAcM,wCAAQ,GAAf,UACC,QAAqD;QAErD,IAAI,QAAQ,EAAE;YACb,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;QACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAChC,CAAC;IAEM,0CAAU,GAAjB,UAAkB,QAAoD;QACrE,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAChC;IACF,CAAC;IAYF,4BAAC;AAAD,CAAC,AAtDD,IAsDC\",sourcesContent:[\"/**\\r\\n * CentroThemeDataSource.ts\\r\\n *\\r\\n * Module for Theme options for Centro\\r\\n */\\r\\n\\r\\nimport { ConfigUpdatedListener } from \\\"@ms/centro-hvc-loader\\\"\\r\\nimport * as Configuration from \\\"../../Configuration/Configuration\\\"\\r\\nimport { ICentroThemeOptions } from \\\"./CentroInterfaces\\\";\\r\\n\\r\\n// This is the object which is used to open/close/update data to Floodgate Centro\\r\\nexport class CentroThemeDataSource {\\r\\n\\t/* Centro Theme options */\\r\\n\\tpublic centroThemeOptions: ICentroThemeOptions;\\r\\n\\r\\n\\t/* This is the list of listeners need to be invoked when the initOptions change */\\r\\n\\tprivate listeners: ConfigUpdatedListener[] = [];\\r\\n\\r\\n\\tprivate static instance: CentroThemeDataSource;\\r\\n\\r\\n\\tpublic static get() {\\r\\n\\t\\tif (!this.instance) {\\r\\n\\t\\t\\tthis.instance = new CentroThemeDataSource();\\r\\n\\t\\t}\\r\\n\\t\\treturn this.instance;\\r\\n\\t}\\r\\n\\r\\n\\tconstructor() {\\r\\n\\t\\tthis.centroThemeOptions = {\\r\\n\\t\\t\\tbaseTheme: Configuration.get().getDynamicUxConfig().theme,\\r\\n\\t\\t\\tprimaryColorOverride: Configuration.get().getCommonInitOptions().primaryColour,\\r\\n\\t\\t\\tsecondaryColorOverride: Configuration.get().getCommonInitOptions().secondaryColour,\\r\\n\\t\\t\\tsurveyUxCSSParams: Configuration.get().getFloodgateInitOptions().surveyCSSParams,\\r\\n\\t\\t};\\r\\n\\t}\\r\\n\\r\\n\\t/*\\r\\n\\tRegister and Unregister is part of the boilerplate code to enable dynamic data passing\\r\\n\\t*/\\r\\n\\tpublic register(\\r\\n\\t\\tlistener?: ConfigUpdatedListener\\r\\n\\t): Readonly> {\\r\\n\\t\\tif (listener) {\\r\\n\\t\\t\\tthis.listeners.push(listener);\\r\\n\\t\\t}\\r\\n\\t\\treturn this.centroThemeOptions;\\r\\n\\t}\\r\\n\\r\\n\\tpublic unregister(listener: ConfigUpdatedListener): void {\\r\\n\\t\\tconst index = this.listeners.indexOf(listener);\\r\\n\\t\\tif (index > -1) {\\r\\n\\t\\t\\tthis.listeners.splice(index, 1);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t/*\\r\\n\\tUpdate function if the init options change in runtime\\r\\n\\tPurposely comment out the code for now. It will be used in the future to update theme\\r\\n\\tpublic updateThemeState(updatedstate: ICentroThemeOptions) {\\r\\n\\t\\tObject.assign(this.centroThemeOptions, updatedstate);\\r\\n\\r\\n\\t\\t// we need to inform the existing listeners\\r\\n\\t\\tthis.listeners.forEach((listener: ConfigUpdatedListener) => listener(this.centroThemeOptions));\\r\\n\\t}\\r\\n\\t*/\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var CentroThemeDataSource=(cov_xm6hvswwk.s[0]++,function(){cov_xm6hvswwk.f[0]++;function CentroThemeDataSource(){cov_xm6hvswwk.f[1]++;cov_xm6hvswwk.s[1]++;this.listeners=[];cov_xm6hvswwk.s[2]++;this.centroThemeOptions={baseTheme:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__[\"get\"]().getDynamicUxConfig().theme,primaryColorOverride:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__[\"get\"]().getCommonInitOptions().primaryColour,secondaryColorOverride:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__[\"get\"]().getCommonInitOptions().secondaryColour,surveyUxCSSParams:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__[\"get\"]().getFloodgateInitOptions().surveyCSSParams};}cov_xm6hvswwk.s[3]++;CentroThemeDataSource.get=function(){cov_xm6hvswwk.f[2]++;cov_xm6hvswwk.s[4]++;if(!this.instance){cov_xm6hvswwk.b[0][0]++;cov_xm6hvswwk.s[5]++;this.instance=new CentroThemeDataSource();}else{cov_xm6hvswwk.b[0][1]++;}cov_xm6hvswwk.s[6]++;return this.instance;};cov_xm6hvswwk.s[7]++;CentroThemeDataSource.prototype.register=function(listener){cov_xm6hvswwk.f[3]++;cov_xm6hvswwk.s[8]++;if(listener){cov_xm6hvswwk.b[1][0]++;cov_xm6hvswwk.s[9]++;this.listeners.push(listener);}else{cov_xm6hvswwk.b[1][1]++;}cov_xm6hvswwk.s[10]++;return this.centroThemeOptions;};cov_xm6hvswwk.s[11]++;CentroThemeDataSource.prototype.unregister=function(listener){cov_xm6hvswwk.f[4]++;var index=(cov_xm6hvswwk.s[12]++,this.listeners.indexOf(listener));cov_xm6hvswwk.s[13]++;if(index>-1){cov_xm6hvswwk.b[2][0]++;cov_xm6hvswwk.s[14]++;this.listeners.splice(index,1);}else{cov_xm6hvswwk.b[2][1]++;}};cov_xm6hvswwk.s[15]++;return CentroThemeDataSource;}());//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9EeW5hbWljVXgvQ2VudHJvVGhlbWVEYXRhU291cmNlLnRzP2Q4ZjYiXSwibmFtZXMiOlsiQ2VudHJvVGhlbWVEYXRhU291cmNlIiwibGlzdGVuZXJzIiwiY2VudHJvVGhlbWVPcHRpb25zIiwiYmFzZVRoZW1lIiwiQ29uZmlndXJhdGlvbiIsImdldER5bmFtaWNVeENvbmZpZyIsInRoZW1lIiwicHJpbWFyeUNvbG9yT3ZlcnJpZGUiLCJnZXRDb21tb25Jbml0T3B0aW9ucyIsInByaW1hcnlDb2xvdXIiLCJzZWNvbmRhcnlDb2xvck92ZXJyaWRlIiwic2Vjb25kYXJ5Q29sb3VyIiwic3VydmV5VXhDU1NQYXJhbXMiLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsInN1cnZleUNTU1BhcmFtcyIsImdldCIsImluc3RhbmNlIiwicHJvdG90eXBlIiwicmVnaXN0ZXIiLCJsaXN0ZW5lciIsInB1c2giLCJ1bnJlZ2lzdGVyIiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIl0sIm1hcHBpbmdzIjoiOzs7bTVNQUNBLEdBQUlBLDZDQUF5QixVQUFZLHNCQUNyQyxRQUFTQSxzQkFBVCxFQUFpQywyQ0FDN0IsS0FBS0MsU0FBTCxDQUFpQixFQUFqQixDQUQ2QixxQkFFN0IsS0FBS0Msa0JBQUwsQ0FBMEIsQ0FDdEJDLFVBQVdDLGdFQUFBLEdBQW9CQyxrQkFBcEIsR0FBeUNDLEtBRDlCLENBRXRCQyxxQkFBc0JILGdFQUFBLEdBQW9CSSxvQkFBcEIsR0FBMkNDLGFBRjNDLENBR3RCQyx1QkFBd0JOLGdFQUFBLEdBQW9CSSxvQkFBcEIsR0FBMkNHLGVBSDdDLENBSXRCQyxrQkFBbUJSLGdFQUFBLEdBQW9CUyx1QkFBcEIsR0FBOENDLGVBSjNDLENBQTFCLENBTUgsQ0FUb0MscUJBVXJDZCxzQkFBc0JlLEdBQXRCLENBQTRCLFVBQVksMkNBQ3BDLEdBQUksQ0FBQyxLQUFLQyxRQUFWLENBQW9CLDhDQUNoQixLQUFLQSxRQUFMLENBQWdCLEdBQUloQixzQkFBSixFQUFoQixDQUNILENBRkQsOEJBRG9DLHFCQUlwQyxNQUFPLE1BQUtnQixRQUFaLENBQ0gsQ0FMRCxDQVZxQyxxQkFnQnJDaEIsc0JBQXNCaUIsU0FBdEIsQ0FBZ0NDLFFBQWhDLENBQTJDLFNBQVVDLFFBQVYsQ0FBb0IsMkNBQzNELEdBQUlBLFFBQUosQ0FBYyw4Q0FDVixLQUFLbEIsU0FBTCxDQUFlbUIsSUFBZixDQUFvQkQsUUFBcEIsRUFDSCxDQUZELDhCQUQyRCxzQkFJM0QsTUFBTyxNQUFLakIsa0JBQVosQ0FDSCxDQUxELENBaEJxQyxzQkFzQnJDRixzQkFBc0JpQixTQUF0QixDQUFnQ0ksVUFBaEMsQ0FBNkMsU0FBVUYsUUFBVixDQUFvQixzQkFDN0QsR0FBSUcsOEJBQVEsS0FBS3JCLFNBQUwsQ0FBZXNCLE9BQWYsQ0FBdUJKLFFBQXZCLENBQVIsQ0FBSixDQUQ2RCxzQkFFN0QsR0FBSUcsTUFBUSxDQUFDLENBQWIsQ0FBZ0IsK0NBQ1osS0FBS3JCLFNBQUwsQ0FBZXVCLE1BQWYsQ0FBc0JGLEtBQXRCLENBQTZCLENBQTdCLEVBQ0gsQ0FGRCw4QkFHSCxDQUxELENBdEJxQyxzQkE0QnJDLE1BQU90QixzQkFBUCxDQUNILENBN0I0QixFQUF6QixDQUFKIiwiZmlsZSI6Ii4vc2NyaXB0cy9hcHAvVUkvRHluYW1pY1V4L0NlbnRyb1RoZW1lRGF0YVNvdXJjZS50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4uLy4uL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvblwiO1xyXG52YXIgQ2VudHJvVGhlbWVEYXRhU291cmNlID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIENlbnRyb1RoZW1lRGF0YVNvdXJjZSgpIHtcclxuICAgICAgICB0aGlzLmxpc3RlbmVycyA9IFtdO1xyXG4gICAgICAgIHRoaXMuY2VudHJvVGhlbWVPcHRpb25zID0ge1xyXG4gICAgICAgICAgICBiYXNlVGhlbWU6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0RHluYW1pY1V4Q29uZmlnKCkudGhlbWUsXHJcbiAgICAgICAgICAgIHByaW1hcnlDb2xvck92ZXJyaWRlOiBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkucHJpbWFyeUNvbG91cixcclxuICAgICAgICAgICAgc2Vjb25kYXJ5Q29sb3JPdmVycmlkZTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLnNlY29uZGFyeUNvbG91cixcclxuICAgICAgICAgICAgc3VydmV5VXhDU1NQYXJhbXM6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKS5zdXJ2ZXlDU1NQYXJhbXMsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuICAgIENlbnRyb1RoZW1lRGF0YVNvdXJjZS5nZXQgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5zdGFuY2UgPSBuZXcgQ2VudHJvVGhlbWVEYXRhU291cmNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlO1xyXG4gICAgfTtcclxuICAgIENlbnRyb1RoZW1lRGF0YVNvdXJjZS5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuICAgICAgICBpZiAobGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5saXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLmNlbnRyb1RoZW1lT3B0aW9ucztcclxuICAgIH07XHJcbiAgICBDZW50cm9UaGVtZURhdGFTb3VyY2UucHJvdG90eXBlLnVucmVnaXN0ZXIgPSBmdW5jdGlvbiAobGlzdGVuZXIpIHtcclxuICAgICAgICB2YXIgaW5kZXggPSB0aGlzLmxpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcclxuICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICAgICAgICB0aGlzLmxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICByZXR1cm4gQ2VudHJvVGhlbWVEYXRhU291cmNlO1xyXG59KCkpO1xyXG5leHBvcnQgeyBDZW50cm9UaGVtZURhdGFTb3VyY2UgfTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/UI/DynamicUx/CentroThemeDataSource.ts\n"); /***/ }), /***/ "./scripts/app/UI/DynamicUx/DynamicUxClient.ts": /*!*****************************************************!*\ !*** ./scripts/app/UI/DynamicUx/DynamicUxClient.ts ***! \*****************************************************/ /*! exports provided: DynamicUxClient, get, setup */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DynamicUxClient\", function() { return DynamicUxClient; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setup\", function() { return setup; });\n/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ \"./node_modules/tslib/tslib.es6.js\");\n/* harmony import */ var _CentroLogger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CentroLogger */ \"./scripts/app/UI/DynamicUx/CentroLogger.ts\");\n/* harmony import */ var _CentroCoreDataSource__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CentroCoreDataSource */ \"./scripts/app/UI/DynamicUx/CentroCoreDataSource.ts\");\n/* harmony import */ var _CentroThemeDataSource__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CentroThemeDataSource */ \"./scripts/app/UI/DynamicUx/CentroThemeDataSource.ts\");\n/* harmony import */ var _CentroConstants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./CentroConstants */ \"./scripts/app/UI/DynamicUx/CentroConstants.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../Utils */ \"./scripts/app/UI/Utils.ts\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\n/* harmony import */ var _Logging_Logging__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../Logging/Logging */ \"./scripts/app/Logging/Logging.ts\");\n/* harmony import */ var _CentroLoaderWrapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CentroLoaderWrapper */ \"./scripts/app/UI/DynamicUx/CentroLoaderWrapper.ts\");\n/* harmony import */ var _ms_centro_hvc_loader_dist_runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ms/centro-hvc-loader/dist/runtime/data/requestFunction.types */ \"./node_modules/@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types.js\");\nvar cov_1dkwn9ysh4=function(){var path='D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\DynamicUxClient.ts',hash='566dd6decfe8db3bde59e7c93b8534654dd225f1',Function=function(){}.constructor,global=new Function('return this')(),gcv='__coverage__',coverageData={path:'D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\DynamicUxClient.ts',statementMap:{'0':{start:{line:11,column:23},end:{line:186,column:3}},'1':{start:{line:13,column:8},end:{line:13,column:34}},'2':{start:{line:14,column:8},end:{line:14,column:29}},'3':{start:{line:16,column:4},end:{line:18,column:6}},'4':{start:{line:17,column:8},end:{line:17,column:38}},'5':{start:{line:19,column:4},end:{line:21,column:6}},'6':{start:{line:20,column:8},end:{line:20,column:46}},'7':{start:{line:22,column:4},end:{line:24,column:6}},'8':{start:{line:23,column:8},end:{line:23,column:32}},'9':{start:{line:25,column:4},end:{line:43,column:6}},'10':{start:{line:26,column:20},end:{line:26,column:24}},'11':{start:{line:27,column:8},end:{line:42,column:9}},'12':{start:{line:28,column:12},end:{line:30,column:49}},'13':{start:{line:31,column:12},end:{line:31,column:32}},'14':{start:{line:34,column:31},end:{line:34,column:48}},'15':{start:{line:35,column:12},end:{line:41,column:57}},'16':{start:{line:36,column:34},end:{line:36,column:66}},'17':{start:{line:37,column:16},end:{line:39,column:53}},'18':{start:{line:40,column:16},end:{line:40,column:37}},'19':{start:{line:44,column:4},end:{line:60,column:6}},'20':{start:{line:45,column:8},end:{line:53,column:11}},'21':{start:{line:54,column:8},end:{line:59,column:9}},'22':{start:{line:55,column:12},end:{line:55,column:47}},'23':{start:{line:58,column:12},end:{line:58,column:49}},'24':{start:{line:61,column:4},end:{line:86,column:6}},'25':{start:{line:62,column:8},end:{line:85,column:11}},'26':{start:{line:64,column:12},end:{line:84,column:15}},'27':{start:{line:65,column:16},end:{line:83,column:17}},'28':{start:{line:67,column:24},end:{line:69,column:25}},'29':{start:{line:68,column:28},end:{line:68,column:95}},'30':{start:{line:70,column:24},end:{line:70,column:37}},'31':{start:{line:72,column:24},end:{line:72,column:50}},'32':{start:{line:73,column:24},end:{line:73,column:96}},'33':{start:{line:74,column:24},end:{line:74,column:34}},'34':{start:{line:75,column:24},end:{line:75,column:75}},'35':{start:{line:77,column:24},end:{line:77,column:51}},'36':{start:{line:78,column:24},end:{line:78,column:38}},'37':{start:{line:80,column:24},end:{line:80,column:44}},'38':{start:{line:81,column:24},end:{line:81,column:130}},'39':{start:{line:82,column:28},end:{line:82,column:39}},'40':{start:{line:87,column:4},end:{line:91,column:6}},'41':{start:{line:88,column:8},end:{line:90,column:9}},'42':{start:{line:89,column:12},end:{line:89,column:31}},'43':{start:{line:92,column:4},end:{line:184,column:6}},'44':{start:{line:93,column:8},end:{line:183,column:11}},'45':{start:{line:95,column:12},end:{line:182,column:15}},'46':{start:{line:96,column:16},end:{line:181,column:17}},'47':{start:{line:98,column:24},end:{line:101,column:25}},'48':{start:{line:100,column:28},end:{line:100,column:39}},'49':{start:{line:102,column:24},end:{line:102,column:45}},'50':{start:{line:103,column:24},end:{line:103,column:55}},'51':{start:{line:104,column:24},end:{line:104,column:37}},'52':{start:{line:106,column:24},end:{line:106,column:50}},'53':{start:{line:107,column:24},end:{line:113,column:26}},'54':{start:{line:114,column:24},end:{line:118,column:26}},'55':{start:{line:119,column:24},end:{line:119,column:81}},'56':{start:{line:121,column:24},end:{line:121,column:34}},'57':{start:{line:122,column:24},end:{line:126,column:26}},'58':{start:{line:123,column:28},end:{line:124,column:91}},'59':{start:{line:125,column:28},end:{line:125,column:84}},'60':{start:{line:127,column:24},end:{line:140,column:26}},'61':{start:{line:129,column:60},end:{line:129,column:89}},'62':{start:{line:131,column:36},end:{line:133,column:37}},'63':{start:{line:132,column:40},end:{line:132,column:58}},'64':{start:{line:134,column:36},end:{line:136,column:37}},'65':{start:{line:135,column:40},end:{line:135,column:74}},'66':{start:{line:137,column:36},end:{line:137,column:54}},'67':{start:{line:141,column:24},end:{line:144,column:32}},'68':{start:{line:146,column:24},end:{line:146,column:34}},'69':{start:{line:147,column:24},end:{line:147,column:34}},'70':{start:{line:148,column:24},end:{line:150,column:32}},'71':{start:{line:152,column:24},end:{line:152,column:53}},'72':{start:{line:153,column:24},end:{line:153,column:45}},'73':{start:{line:154,column:24},end:{line:154,column:73}},'74':{start:{line:155,column:24},end:{line:157,column:27}},'75':{start:{line:158,column:24},end:{line:158,column:38}},'76':{start:{line:160,column:24},end:{line:160,column:44}},'77':{start:{line:161,column:24},end:{line:161,column:45}},'78':{start:{line:162,column:24},end:{line:162,column:73}},'79':{start:{line:163,column:24},end:{line:166,column:27}},'80':{start:{line:167,column:24},end:{line:167,column:133}},'81':{start:{line:168,column:24},end:{line:168,column:38}},'82':{start:{line:170,column:24},end:{line:174,column:25}},'83':{start:{line:171,column:28},end:{line:171,column:70}},'84':{start:{line:172,column:28},end:{line:172,column:64}},'85':{start:{line:173,column:28},end:{line:173,column:39}},'86':{start:{line:175,column:24},end:{line:179,column:25}},'87':{start:{line:176,column:28},end:{line:176,column:72}},'88':{start:{line:177,column:28},end:{line:177,column:66}},'89':{start:{line:178,column:28},end:{line:178,column:39}},'90':{start:{line:180,column:24},end:{line:180,column:35}},'91':{start:{line:185,column:4},end:{line:185,column:27}},'92':{start:{line:190,column:4},end:{line:190,column:27}},'93':{start:{line:193,column:4},end:{line:195,column:5}},'94':{start:{line:194,column:8},end:{line:194,column:48}},'95':{start:{line:196,column:4},end:{line:196,column:34}}},fnMap:{'0':{name:'(anonymous_0)',decl:{start:{line:11,column:23},end:{line:11,column:24}},loc:{start:{line:11,column:35},end:{line:186,column:1}},line:11},'1':{name:'DynamicUxClient',decl:{start:{line:12,column:13},end:{line:12,column:28}},loc:{start:{line:12,column:31},end:{line:15,column:5}},line:12},'2':{name:'(anonymous_2)',decl:{start:{line:16,column:38},end:{line:16,column:39}},loc:{start:{line:16,column:56},end:{line:18,column:5}},line:16},'3':{name:'(anonymous_3)',decl:{start:{line:19,column:42},end:{line:19,column:43}},loc:{start:{line:19,column:54},end:{line:21,column:5}},line:19},'4':{name:'(anonymous_4)',decl:{start:{line:22,column:42},end:{line:22,column:43}},loc:{start:{line:22,column:54},end:{line:24,column:5}},line:22},'5':{name:'(anonymous_5)',decl:{start:{line:25,column:50},end:{line:25,column:51}},loc:{start:{line:25,column:62},end:{line:43,column:5}},line:25},'6':{name:'(anonymous_6)',decl:{start:{line:35,column:23},end:{line:35,column:24}},loc:{start:{line:35,column:35},end:{line:41,column:13}},line:35},'7':{name:'(anonymous_7)',decl:{start:{line:44,column:61},end:{line:44,column:62}},loc:{start:{line:44,column:89},end:{line:60,column:5}},line:44},'8':{name:'(anonymous_8)',decl:{start:{line:61,column:49},end:{line:61,column:50}},loc:{start:{line:61,column:61},end:{line:86,column:5}},line:61},'9':{name:'(anonymous_9)',decl:{start:{line:62,column:47},end:{line:62,column:48}},loc:{start:{line:62,column:59},end:{line:85,column:9}},line:62},'10':{name:'(anonymous_10)',decl:{start:{line:64,column:37},end:{line:64,column:38}},loc:{start:{line:64,column:51},end:{line:84,column:13}},line:64},'11':{name:'(anonymous_11)',decl:{start:{line:87,column:46},end:{line:87,column:47}},loc:{start:{line:87,column:58},end:{line:91,column:5}},line:87},'12':{name:'(anonymous_12)',decl:{start:{line:92,column:45},end:{line:92,column:46}},loc:{start:{line:92,column:57},end:{line:184,column:5}},line:92},'13':{name:'(anonymous_13)',decl:{start:{line:93,column:47},end:{line:93,column:48}},loc:{start:{line:93,column:59},end:{line:183,column:9}},line:93},'14':{name:'(anonymous_14)',decl:{start:{line:95,column:37},end:{line:95,column:38}},loc:{start:{line:95,column:51},end:{line:182,column:13}},line:95},'15':{name:'(anonymous_15)',decl:{start:{line:122,column:38},end:{line:122,column:39}},loc:{start:{line:122,column:52},end:{line:126,column:25}},line:122},'16':{name:'(anonymous_16)',decl:{start:{line:129,column:46},end:{line:129,column:47}},loc:{start:{line:129,column:58},end:{line:129,column:91}},line:129},'17':{name:'(anonymous_17)',decl:{start:{line:130,column:51},end:{line:130,column:52}},loc:{start:{line:130,column:69},end:{line:138,column:33}},line:130},'18':{name:'get',decl:{start:{line:189,column:16},end:{line:189,column:19}},loc:{start:{line:189,column:22},end:{line:191,column:1}},line:189},'19':{name:'setup',decl:{start:{line:192,column:16},end:{line:192,column:21}},loc:{start:{line:192,column:30},end:{line:197,column:1}},line:192}},branchMap:{'0':{loc:{start:{line:27,column:8},end:{line:42,column:9}},type:'if',locations:[{start:{line:27,column:8},end:{line:42,column:9}},{start:{line:27,column:8},end:{line:42,column:9}}],line:27},'1':{loc:{start:{line:54,column:8},end:{line:59,column:9}},type:'if',locations:[{start:{line:54,column:8},end:{line:59,column:9}},{start:{line:54,column:8},end:{line:59,column:9}}],line:54},'2':{loc:{start:{line:65,column:16},end:{line:83,column:17}},type:'switch',locations:[{start:{line:66,column:20},end:{line:70,column:37}},{start:{line:71,column:20},end:{line:75,column:75}},{start:{line:76,column:20},end:{line:78,column:38}},{start:{line:79,column:20},end:{line:81,column:130}},{start:{line:82,column:20},end:{line:82,column:39}}],line:65},'3':{loc:{start:{line:67,column:24},end:{line:69,column:25}},type:'if',locations:[{start:{line:67,column:24},end:{line:69,column:25}},{start:{line:67,column:24},end:{line:69,column:25}}],line:67},'4':{loc:{start:{line:88,column:8},end:{line:90,column:9}},type:'if',locations:[{start:{line:88,column:8},end:{line:90,column:9}},{start:{line:88,column:8},end:{line:90,column:9}}],line:88},'5':{loc:{start:{line:96,column:16},end:{line:181,column:17}},type:'switch',locations:[{start:{line:97,column:20},end:{line:104,column:37}},{start:{line:105,column:20},end:{line:119,column:81}},{start:{line:120,column:20},end:{line:144,column:32}},{start:{line:145,column:20},end:{line:150,column:32}},{start:{line:151,column:20},end:{line:158,column:38}},{start:{line:159,column:20},end:{line:168,column:38}},{start:{line:169,column:20},end:{line:180,column:35}}],line:96},'6':{loc:{start:{line:98,column:24},end:{line:101,column:25}},type:'if',locations:[{start:{line:98,column:24},end:{line:101,column:25}},{start:{line:98,column:24},end:{line:101,column:25}}],line:98},'7':{loc:{start:{line:98,column:28},end:{line:99,column:50}},type:'binary-expr',locations:[{start:{line:98,column:28},end:{line:98,column:50}},{start:{line:98,column:54},end:{line:98,column:76}},{start:{line:99,column:28},end:{line:99,column:50}}],line:98},'8':{loc:{start:{line:108,column:38},end:{line:108,column:135}},type:'binary-expr',locations:[{start:{line:108,column:38},end:{line:108,column:108}},{start:{line:108,column:112},end:{line:108,column:135}}],line:108},'9':{loc:{start:{line:131,column:36},end:{line:133,column:37}},type:'if',locations:[{start:{line:131,column:36},end:{line:133,column:37}},{start:{line:131,column:36},end:{line:133,column:37}}],line:131},'10':{loc:{start:{line:134,column:36},end:{line:136,column:37}},type:'if',locations:[{start:{line:134,column:36},end:{line:136,column:37}},{start:{line:134,column:36},end:{line:136,column:37}}],line:134},'11':{loc:{start:{line:170,column:24},end:{line:174,column:25}},type:'if',locations:[{start:{line:170,column:24},end:{line:174,column:25}},{start:{line:170,column:24},end:{line:174,column:25}}],line:170},'12':{loc:{start:{line:175,column:24},end:{line:179,column:25}},type:'if',locations:[{start:{line:175,column:24},end:{line:179,column:25}},{start:{line:175,column:24},end:{line:179,column:25}}],line:175},'13':{loc:{start:{line:193,column:4},end:{line:195,column:5}},type:'if',locations:[{start:{line:193,column:4},end:{line:195,column:5}},{start:{line:193,column:4},end:{line:195,column:5}}],line:193}},s:{'0':0,'1':0,'2':0,'3':0,'4':0,'5':0,'6':0,'7':0,'8':0,'9':0,'10':0,'11':0,'12':0,'13':0,'14':0,'15':0,'16':0,'17':0,'18':0,'19':0,'20':0,'21':0,'22':0,'23':0,'24':0,'25':0,'26':0,'27':0,'28':0,'29':0,'30':0,'31':0,'32':0,'33':0,'34':0,'35':0,'36':0,'37':0,'38':0,'39':0,'40':0,'41':0,'42':0,'43':0,'44':0,'45':0,'46':0,'47':0,'48':0,'49':0,'50':0,'51':0,'52':0,'53':0,'54':0,'55':0,'56':0,'57':0,'58':0,'59':0,'60':0,'61':0,'62':0,'63':0,'64':0,'65':0,'66':0,'67':0,'68':0,'69':0,'70':0,'71':0,'72':0,'73':0,'74':0,'75':0,'76':0,'77':0,'78':0,'79':0,'80':0,'81':0,'82':0,'83':0,'84':0,'85':0,'86':0,'87':0,'88':0,'89':0,'90':0,'91':0,'92':0,'93':0,'94':0,'95':0},f:{'0':0,'1':0,'2':0,'3':0,'4':0,'5':0,'6':0,'7':0,'8':0,'9':0,'10':0,'11':0,'12':0,'13':0,'14':0,'15':0,'16':0,'17':0,'18':0,'19':0},b:{'0':[0,0],'1':[0,0],'2':[0,0,0,0,0],'3':[0,0],'4':[0,0],'5':[0,0,0,0,0,0,0],'6':[0,0],'7':[0,0,0],'8':[0,0],'9':[0,0],'10':[0,0],'11':[0,0],'12':[0,0],'13':[0,0]},inputSourceMap:{version:3,file:'D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\DynamicUxClient.ts',sourceRoot:'',sources:['D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\DynamicUx\\\\DynamicUxClient.ts'],names:[],mappings:'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',sourcesContent:['import { DynamicUxClientState } from \\'@ms-ofb/floodgate-shared-typings\\';\\r\\nimport { centroLogging } from \\'./CentroLogger\\';\\r\\nimport { IDynamicUxConfig } from \"../../Configuration/IInitOptions\";\\r\\nimport { CentroCoreDataSource } from \\'./CentroCoreDataSource\\';\\r\\nimport { CentroThemeDataSource } from \\'./CentroThemeDataSource\\';\\r\\nimport {\\r\\n\\tCentroCommonInitOptions,\\r\\n\\tCentroFloodgateContainerId,\\r\\n\\tCentroFloodgateFeatureName,\\r\\n\\tCentroFloodgateHostName,\\r\\n\\tCentroFloodgateInitOptions,\\r\\n\\tCentroFloodgatePerfPrefix,\\r\\n\\tCentroPetrolUploadEndpoint,\\r\\n\\tCentroPreloadLoggingSamplingRate,\\r\\n\\tCentroThemeInitOptions,\\r\\n\\tCentroUrlProd,\\r\\n\\tFloodgateCentroVersion\\r\\n} from \\'./CentroConstants\\';\\r\\nimport { getOrCreateDiv } from \\'../Utils\\';\\r\\nimport * as Configuration from \"../../Configuration/Configuration\"\\r\\nimport * as Logging from \"../../Logging/Logging\";\\r\\nimport { CentroLoaderWrapper } from \\'./CentroLoaderWrapper\\';\\r\\nimport IUISurvey from \\'../../FloodgateCore/UISurvey/IUISurvey\\';\\r\\nimport { IAdapterProviderV3 } from \\'@ms/centro-hvc-loader\\';\\r\\nimport { BackendTarget, IRequestOptionsCombined } from \\'@ms/centro-hvc-loader/dist/runtime/data/requestFunction.types\\';\\r\\n\\r\\n\\r\\nexport class DynamicUxClient {\\r\\n\\r\\n\\t// making these data public so they can be access for testing\\r\\n\\tpublic clientState: DynamicUxClientState;\\r\\n\\r\\n\\t// Configuration data\\r\\n\\tprivate dynamicUxConfig: IDynamicUxConfig;\\r\\n\\tprivate userSurveyCallback: (status: DynamicUxClientState) => void;\\r\\n\\tprivate systemSurveyCallback: (status: DynamicUxClientState) => void;\\r\\n\\tprivate boostStrapper;\\r\\n\\tprivate unmountFunc;\\r\\n\\r\\n\\tconstructor() {\\r\\n\\t\\tthis.dynamicUxConfig = {};\\r\\n\\t\\tthis.clientState = DynamicUxClientState.NotStarted;\\r\\n\\t}\\r\\n\\r\\n\\tpublic setup(config: IDynamicUxConfig) {\\r\\n\\t\\tthis.dynamicUxConfig = config;\\r\\n\\t}\\r\\n\\r\\n\\tpublic isEnabled(): boolean {\\r\\n\\t\\treturn !!this.dynamicUxConfig.enabled;\\r\\n\\t}\\r\\n\\r\\n\\tpublic getStatus(): DynamicUxClientState {\\r\\n\\t\\treturn this.clientState;\\r\\n\\t}\\r\\n\\r\\n\\tpublic delayLoadCentroUx() {\\r\\n\\t\\tif (this.dynamicUxConfig.delayLoadingTimeout === 0) {\\r\\n\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.DYNAMICUX_LOAD_PRELOAD,\\r\\n\\t\\t\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\tTimeMilliseconds: 0\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\tCentroPreloadLoggingSamplingRate\\r\\n\\t\\t\\t);\\r\\n\\t\\t\\tthis.loadCentroUx();\\r\\n\\t\\t}\\r\\n\\t\\telse {\\r\\n\\t\\t\\tconst timeBefore = performance.now();\\r\\n\\t\\t\\tsetTimeout(() => {\\r\\n\\t\\t\\t\\tconst waitingTime = performance.now() - timeBefore;\\r\\n\\t\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.DYNAMICUX_LOAD_PRELOAD,\\r\\n\\t\\t\\t\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tTimeMilliseconds: waitingTime\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\tCentroPreloadLoggingSamplingRate\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\tthis.loadCentroUx();\\r\\n\\t\\t\\t}, this.dynamicUxConfig.delayLoadingTimeout);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\t/**\\r\\n\\t * This function should only be called prior to the DynamicUxClient status check\\r\\n\\t * to be Starting, so it can set the callback to be performed once the loading is done\\r\\n\\t */\\r\\n\\tpublic setOnSurveyActivatedCallback(callback: (status: DynamicUxClientState) => void, survey: IUISurvey) {\\r\\n\\t\\tLogging.getLogger().logEvent(Logging.EventIds.SURVEY_TRIGGER_DYNAMICUX_ONLOAD,\\r\\n\\t\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tCampaignId: survey.getCampaignId(),\\r\\n\\t\\t\\t\\tSurveyId: survey.getId(),\\r\\n\\t\\t\\t\\tSurveyType: survey.getSurveyType(),\\r\\n\\t\\t\\t\\tMessage: JSON.stringify({\\r\\n\\t\\t\\t\\t\\tDynamicUxClientState: this.clientState,\\r\\n\\t\\t\\t\\t\\tisUserInitiatedSurvey: survey.isUserInitiatedSurvey()\\r\\n\\t\\t\\t\\t}),\\r\\n\\t\\t\\t}\\r\\n\\t\\t);\\r\\n\\t\\tif (survey.isUserInitiatedSurvey()) {\\r\\n\\t\\t\\tthis.userSurveyCallback = callback;\\r\\n\\t\\t}\\r\\n\\t\\telse {\\r\\n\\t\\t\\tthis.systemSurveyCallback = callback;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tpublic async boostStrapSurvey() {\\r\\n\\t\\tif (this.clientState !== DynamicUxClientState.Success) {\\r\\n\\t\\t\\treturn Promise.reject(\"DynamicUx is not loaded successfully\");\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\ttry {\\r\\n\\t\\t\\tconst divToMountHVC = getOrCreateDiv(CentroFloodgateContainerId, true, false);\\r\\n\\t\\t\\tthis.unmountFunc = await this.boostStrapper.main(divToMountHVC);\\r\\n\\t\\t}\\r\\n\\t\\tcatch (error) {\\r\\n\\t\\t\\treturn Promise.reject(`Error: ${error.toString()}, Error stack: ${error.stack}`);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tpublic unmountSurvey() {\\r\\n\\t\\tif (this.unmountSurvey) {\\r\\n\\t\\t\\tthis.unmountFunc();\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tprivate async loadCentroUx() {\\r\\n\\t\\t// If the Centro is already loaded successfully,\\r\\n\\t\\t// or previous load failed or is loading,\\r\\n\\t\\t// return right away.\\r\\n\\t\\tif (this.clientState === DynamicUxClientState.Success || this.clientState === DynamicUxClientState.Starting ||\\r\\n\\t\\t\\tthis.clientState === DynamicUxClientState.Failure) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tthis.clientState = DynamicUxClientState.Starting;\\r\\n\\t\\tconst timeBefore = performance.now();\\r\\n\\t\\ttry {\\r\\n\\t\\t\\tconst preConfig = {\\r\\n\\t\\t\\t\\thostName: Configuration.get().getFloodgateInitOptions().dynamicUxConfig.hostName || CentroFloodgateHostName,\\r\\n\\t\\t\\t\\tlocale: Configuration.get().getCommonInitOptions().locale,\\r\\n\\t\\t\\t\\t// All perf log will be prefixed with this string.\\r\\n\\t\\t\\t\\t// So that when we analysis perf logs, we know that those logs are coming from HVC running in your environment.\\r\\n\\t\\t\\t\\tperfPrefix: CentroFloodgatePerfPrefix,\\r\\n\\t\\t\\t\\tadditionalLoggers: { CentroFloodgateLoggerFunc: centroLogging },\\r\\n\\t\\t\\t\\tkustoEndpoint: \\'\\',\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\tconst centroParams = {\\r\\n\\t\\t\\t\\t// Please use Centro Prod Url even for development to get the latest released of the HVC\\r\\n\\t\\t\\t\\t// Centro CI Url can also be used for testing unreleased features\\r\\n\\t\\t\\t\\tcentroEnvironmentBaseUrl: CentroUrlProd,\\r\\n\\t\\t\\t\\tpreConfig,\\r\\n\\t\\t\\t\\tforHostVersion: FloodgateCentroVersion // using Floodgate Centro version since Centro only support exact match\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\tawait CentroLoaderWrapper.initialize(centroParams);\\r\\n\\r\\n\\t\\t\\tconst dataSources = sd => {\\r\\n\\t\\t\\t\\tsd(CentroCommonInitOptions, CentroLoaderWrapper.createStaticDataSource({ theme: \\'M365Light\\' })), // unused but required by Centro\\r\\n\\t\\t\\t\\t\\tsd(CentroFloodgateInitOptions, CentroCoreDataSource.get())\\r\\n\\t\\t\\t\\tsd(CentroThemeInitOptions, CentroThemeDataSource.get())\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\t// Adapter for custom request in Centro. However, we don\\'t have any.\\r\\n\\t\\t\\t// So this is basically return empty object or original URL\\r\\n\\t\\t\\tconst centroAdapters: IAdapterProviderV3 = {\\r\\n\\t\\t\\t\\trequest: {\\r\\n\\t\\t\\t\\t\\tgetAuthToken: () => Promise.resolve(null),\\r\\n\\t\\t\\t\\t\\turlResolveHandler: (reqOpt: IRequestOptionsCombined) => {\\r\\n\\t\\t\\t\\t\\t\\tif (reqOpt.url.includes(CentroPetrolUploadEndpoint)) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn reqOpt.url;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\t\\tif (reqOpt.backend === BackendTarget.M365AdminCenter) {\\r\\n\\t\\t\\t\\t\\t\\t\\treturn CentroUrlProd + reqOpt.url;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\treturn reqOpt.url;\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\tawait CentroLoaderWrapper.preloadFeature({\\r\\n\\t\\t\\t\\tfeatureName: CentroFloodgateFeatureName,\\r\\n\\t\\t\\t\\tadapters: { ...centroAdapters, dataSources },\\r\\n\\t\\t\\t});\\r\\n\\r\\n\\t\\t\\tthis.boostStrapper = await CentroLoaderWrapper.bootstrapFeature({\\r\\n\\t\\t\\t\\tfeatureName: CentroFloodgateFeatureName\\r\\n\\t\\t\\t});\\r\\n\\r\\n\\t\\t\\tthis.clientState = DynamicUxClientState.Success;\\r\\n\\t\\t\\tconst serviceCallTime = performance.now() - timeBefore;\\r\\n\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.DYNAMICUX_LOAD_SUCCESS,\\r\\n\\t\\t\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\tTimeMilliseconds: serviceCallTime,\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t);\\r\\n\\t\\t}\\r\\n\\t\\tcatch (error) {\\r\\n\\t\\t\\tthis.clientState = DynamicUxClientState.Failure;\\r\\n\\t\\t\\tconst serviceCallTime = performance.now() - timeBefore;\\r\\n\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.DYNAMICUX_LOAD_FAILURE,\\r\\n\\t\\t\\t\\tLogging.LogLevel.Error,\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\tTimeMilliseconds: serviceCallTime,\\r\\n\\t\\t\\t\\t\\tErrorMessage: `Error: ${error.toString()}, Error stack: ${error.stack}`,\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t);\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().onError(`Failed to download Dynamic survey UX: ${error}`);\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// Perform the callback if there is any survey waiting\\r\\n\\t\\t// The user-initiated-survey has higher priority than system-initated-survey\\r\\n\\t\\tif (this.userSurveyCallback) {\\r\\n\\t\\t\\tthis.userSurveyCallback(this.clientState);\\r\\n\\t\\t\\tthis.userSurveyCallback = undefined;\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tif (this.systemSurveyCallback) {\\r\\n\\t\\t\\tthis.systemSurveyCallback(this.clientState);\\r\\n\\t\\t\\tthis.systemSurveyCallback = undefined;\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nlet dynamicUxClient;\\r\\n\\r\\n/**\\r\\n * Get the current Dynamic Ux Client\\r\\n */\\r\\nexport function get(): DynamicUxClient {\\r\\n\\treturn dynamicUxClient;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Setup the Dynamic Ux Client\\r\\n */\\r\\nexport function setup(config: IDynamicUxConfig) {\\r\\n\\tif (!dynamicUxClient) {\\r\\n\\t\\tdynamicUxClient = new DynamicUxClient();\\r\\n\\t}\\r\\n\\tdynamicUxClient.setup(config);\\r\\n}\\r\\n']},_coverageSchema:'332fd63041d2c1bcb487cc26dd0d5f7d97098a6c'},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var DynamicUxClient=(cov_1dkwn9ysh4.s[0]++,function(){cov_1dkwn9ysh4.f[0]++;function DynamicUxClient(){cov_1dkwn9ysh4.f[1]++;cov_1dkwn9ysh4.s[1]++;this.dynamicUxConfig={};cov_1dkwn9ysh4.s[2]++;this.clientState=0;}cov_1dkwn9ysh4.s[3]++;DynamicUxClient.prototype.setup=function(config){cov_1dkwn9ysh4.f[2]++;cov_1dkwn9ysh4.s[4]++;this.dynamicUxConfig=config;};cov_1dkwn9ysh4.s[5]++;DynamicUxClient.prototype.isEnabled=function(){cov_1dkwn9ysh4.f[3]++;cov_1dkwn9ysh4.s[6]++;return!!this.dynamicUxConfig.enabled;};cov_1dkwn9ysh4.s[7]++;DynamicUxClient.prototype.getStatus=function(){cov_1dkwn9ysh4.f[4]++;cov_1dkwn9ysh4.s[8]++;return this.clientState;};cov_1dkwn9ysh4.s[9]++;DynamicUxClient.prototype.delayLoadCentroUx=function(){cov_1dkwn9ysh4.f[5]++;var _this=(cov_1dkwn9ysh4.s[10]++,this);cov_1dkwn9ysh4.s[11]++;if(this.dynamicUxConfig.delayLoadingTimeout===0){cov_1dkwn9ysh4.b[0][0]++;cov_1dkwn9ysh4.s[12]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].DYNAMICUX_LOAD_PRELOAD,1,{TimeMilliseconds:0},_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroPreloadLoggingSamplingRate\"]);cov_1dkwn9ysh4.s[13]++;this.loadCentroUx();}else{cov_1dkwn9ysh4.b[0][1]++;var timeBefore_1=(cov_1dkwn9ysh4.s[14]++,performance.now());cov_1dkwn9ysh4.s[15]++;setTimeout(function(){cov_1dkwn9ysh4.f[6]++;var waitingTime=(cov_1dkwn9ysh4.s[16]++,performance.now()-timeBefore_1);cov_1dkwn9ysh4.s[17]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].DYNAMICUX_LOAD_PRELOAD,1,{TimeMilliseconds:waitingTime},_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroPreloadLoggingSamplingRate\"]);cov_1dkwn9ysh4.s[18]++;_this.loadCentroUx();},this.dynamicUxConfig.delayLoadingTimeout);}};cov_1dkwn9ysh4.s[19]++;DynamicUxClient.prototype.setOnSurveyActivatedCallback=function(callback,survey){cov_1dkwn9ysh4.f[7]++;cov_1dkwn9ysh4.s[20]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].SURVEY_TRIGGER_DYNAMICUX_ONLOAD,1,{CampaignId:survey.getCampaignId(),SurveyId:survey.getId(),SurveyType:survey.getSurveyType(),Message:JSON.stringify({DynamicUxClientState:this.clientState,isUserInitiatedSurvey:survey.isUserInitiatedSurvey()})});cov_1dkwn9ysh4.s[21]++;if(survey.isUserInitiatedSurvey()){cov_1dkwn9ysh4.b[1][0]++;cov_1dkwn9ysh4.s[22]++;this.userSurveyCallback=callback;}else{cov_1dkwn9ysh4.b[1][1]++;cov_1dkwn9ysh4.s[23]++;this.systemSurveyCallback=callback;}};cov_1dkwn9ysh4.s[24]++;DynamicUxClient.prototype.boostStrapSurvey=function(){cov_1dkwn9ysh4.f[8]++;cov_1dkwn9ysh4.s[25]++;return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this,void 0,void 0,function(){cov_1dkwn9ysh4.f[9]++;var divToMountHVC,_a,error_1;cov_1dkwn9ysh4.s[26]++;return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this,function(_b){cov_1dkwn9ysh4.f[10]++;cov_1dkwn9ysh4.s[27]++;switch(_b.label){case 0:cov_1dkwn9ysh4.b[2][0]++;cov_1dkwn9ysh4.s[28]++;if(this.clientState!==2){cov_1dkwn9ysh4.b[3][0]++;cov_1dkwn9ysh4.s[29]++;return[2,Promise.reject(\"DynamicUx is not loaded successfully\")];}else{cov_1dkwn9ysh4.b[3][1]++;}cov_1dkwn9ysh4.s[30]++;_b.label=1;case 1:cov_1dkwn9ysh4.b[2][1]++;cov_1dkwn9ysh4.s[31]++;_b.trys.push([1,3,,4]);cov_1dkwn9ysh4.s[32]++;divToMountHVC=Object(_Utils__WEBPACK_IMPORTED_MODULE_5__[\"getOrCreateDiv\"])(_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgateContainerId\"],true,false);cov_1dkwn9ysh4.s[33]++;_a=this;cov_1dkwn9ysh4.s[34]++;return[4,this.boostStrapper.main(divToMountHVC)];case 2:cov_1dkwn9ysh4.b[2][2]++;cov_1dkwn9ysh4.s[35]++;_a.unmountFunc=_b.sent();cov_1dkwn9ysh4.s[36]++;return[3,4];case 3:cov_1dkwn9ysh4.b[2][3]++;cov_1dkwn9ysh4.s[37]++;error_1=_b.sent();cov_1dkwn9ysh4.s[38]++;return[2,Promise.reject(\"Error: \".concat(error_1.toString(),\", Error stack: \").concat(error_1.stack))];case 4:cov_1dkwn9ysh4.b[2][4]++;cov_1dkwn9ysh4.s[39]++;return[2];}});});};cov_1dkwn9ysh4.s[40]++;DynamicUxClient.prototype.unmountSurvey=function(){cov_1dkwn9ysh4.f[11]++;cov_1dkwn9ysh4.s[41]++;if(this.unmountSurvey){cov_1dkwn9ysh4.b[4][0]++;cov_1dkwn9ysh4.s[42]++;this.unmountFunc();}else{cov_1dkwn9ysh4.b[4][1]++;}};cov_1dkwn9ysh4.s[43]++;DynamicUxClient.prototype.loadCentroUx=function(){cov_1dkwn9ysh4.f[12]++;cov_1dkwn9ysh4.s[44]++;return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__awaiter\"])(this,void 0,void 0,function(){cov_1dkwn9ysh4.f[13]++;var timeBefore,preConfig,centroParams,dataSources,centroAdapters,_a,serviceCallTime,error_2,serviceCallTime;cov_1dkwn9ysh4.s[45]++;return Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__generator\"])(this,function(_b){cov_1dkwn9ysh4.f[14]++;cov_1dkwn9ysh4.s[46]++;switch(_b.label){case 0:cov_1dkwn9ysh4.b[5][0]++;cov_1dkwn9ysh4.s[47]++;if((cov_1dkwn9ysh4.b[7][0]++,this.clientState===2)||(cov_1dkwn9ysh4.b[7][1]++,this.clientState===1)||(cov_1dkwn9ysh4.b[7][2]++,this.clientState===3)){cov_1dkwn9ysh4.b[6][0]++;cov_1dkwn9ysh4.s[48]++;return[2];}else{cov_1dkwn9ysh4.b[6][1]++;}cov_1dkwn9ysh4.s[49]++;this.clientState=1;cov_1dkwn9ysh4.s[50]++;timeBefore=performance.now();cov_1dkwn9ysh4.s[51]++;_b.label=1;case 1:cov_1dkwn9ysh4.b[5][1]++;cov_1dkwn9ysh4.s[52]++;_b.trys.push([1,5,,6]);cov_1dkwn9ysh4.s[53]++;preConfig={hostName:(cov_1dkwn9ysh4.b[8][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().getFloodgateInitOptions().dynamicUxConfig.hostName)||(cov_1dkwn9ysh4.b[8][1]++,_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgateHostName\"]),locale:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().getCommonInitOptions().locale,perfPrefix:_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgatePerfPrefix\"],additionalLoggers:{CentroFloodgateLoggerFunc:_CentroLogger__WEBPACK_IMPORTED_MODULE_1__[\"centroLogging\"]},kustoEndpoint:''};cov_1dkwn9ysh4.s[54]++;centroParams={centroEnvironmentBaseUrl:_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroUrlProd\"],preConfig:preConfig,forHostVersion:_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"FloodgateCentroVersion\"]};cov_1dkwn9ysh4.s[55]++;return[4,_CentroLoaderWrapper__WEBPACK_IMPORTED_MODULE_8__[\"CentroLoaderWrapper\"].initialize(centroParams)];case 2:cov_1dkwn9ysh4.b[5][2]++;cov_1dkwn9ysh4.s[56]++;_b.sent();cov_1dkwn9ysh4.s[57]++;dataSources=function(sd){cov_1dkwn9ysh4.f[15]++;cov_1dkwn9ysh4.s[58]++;sd(_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroCommonInitOptions\"],_CentroLoaderWrapper__WEBPACK_IMPORTED_MODULE_8__[\"CentroLoaderWrapper\"].createStaticDataSource({theme:'M365Light'})),sd(_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgateInitOptions\"],_CentroCoreDataSource__WEBPACK_IMPORTED_MODULE_2__[\"CentroCoreDataSource\"].get());cov_1dkwn9ysh4.s[59]++;sd(_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroThemeInitOptions\"],_CentroThemeDataSource__WEBPACK_IMPORTED_MODULE_3__[\"CentroThemeDataSource\"].get());};cov_1dkwn9ysh4.s[60]++;centroAdapters={request:{getAuthToken:function(){cov_1dkwn9ysh4.f[16]++;cov_1dkwn9ysh4.s[61]++;return Promise.resolve(null);},urlResolveHandler:function(reqOpt){cov_1dkwn9ysh4.f[17]++;cov_1dkwn9ysh4.s[62]++;if(reqOpt.url.includes(_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroPetrolUploadEndpoint\"])){cov_1dkwn9ysh4.b[9][0]++;cov_1dkwn9ysh4.s[63]++;return reqOpt.url;}else{cov_1dkwn9ysh4.b[9][1]++;}cov_1dkwn9ysh4.s[64]++;if(reqOpt.backend===_ms_centro_hvc_loader_dist_runtime_data_requestFunction_types__WEBPACK_IMPORTED_MODULE_9__[\"BackendTarget\"].M365AdminCenter){cov_1dkwn9ysh4.b[10][0]++;cov_1dkwn9ysh4.s[65]++;return _CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroUrlProd\"]+reqOpt.url;}else{cov_1dkwn9ysh4.b[10][1]++;}cov_1dkwn9ysh4.s[66]++;return reqOpt.url;}}};cov_1dkwn9ysh4.s[67]++;return[4,_CentroLoaderWrapper__WEBPACK_IMPORTED_MODULE_8__[\"CentroLoaderWrapper\"].preloadFeature({featureName:_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgateFeatureName\"],adapters:Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])(Object(tslib__WEBPACK_IMPORTED_MODULE_0__[\"__assign\"])({},centroAdapters),{dataSources:dataSources})})];case 3:cov_1dkwn9ysh4.b[5][3]++;cov_1dkwn9ysh4.s[68]++;_b.sent();cov_1dkwn9ysh4.s[69]++;_a=this;cov_1dkwn9ysh4.s[70]++;return[4,_CentroLoaderWrapper__WEBPACK_IMPORTED_MODULE_8__[\"CentroLoaderWrapper\"].bootstrapFeature({featureName:_CentroConstants__WEBPACK_IMPORTED_MODULE_4__[\"CentroFloodgateFeatureName\"]})];case 4:cov_1dkwn9ysh4.b[5][4]++;cov_1dkwn9ysh4.s[71]++;_a.boostStrapper=_b.sent();cov_1dkwn9ysh4.s[72]++;this.clientState=2;cov_1dkwn9ysh4.s[73]++;serviceCallTime=performance.now()-timeBefore;cov_1dkwn9ysh4.s[74]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].DYNAMICUX_LOAD_SUCCESS,1,{TimeMilliseconds:serviceCallTime});cov_1dkwn9ysh4.s[75]++;return[3,6];case 5:cov_1dkwn9ysh4.b[5][5]++;cov_1dkwn9ysh4.s[76]++;error_2=_b.sent();cov_1dkwn9ysh4.s[77]++;this.clientState=3;cov_1dkwn9ysh4.s[78]++;serviceCallTime=performance.now()-timeBefore;cov_1dkwn9ysh4.s[79]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].DYNAMICUX_LOAD_FAILURE,2,{TimeMilliseconds:serviceCallTime,ErrorMessage:\"Error: \".concat(error_2.toString(),\", Error stack: \").concat(error_2.stack)});cov_1dkwn9ysh4.s[80]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().getCommonInitOptions().onError(\"Failed to download Dynamic survey UX: \".concat(error_2));cov_1dkwn9ysh4.s[81]++;return[3,6];case 6:cov_1dkwn9ysh4.b[5][6]++;cov_1dkwn9ysh4.s[82]++;if(this.userSurveyCallback){cov_1dkwn9ysh4.b[11][0]++;cov_1dkwn9ysh4.s[83]++;this.userSurveyCallback(this.clientState);cov_1dkwn9ysh4.s[84]++;this.userSurveyCallback=undefined;cov_1dkwn9ysh4.s[85]++;return[2];}else{cov_1dkwn9ysh4.b[11][1]++;}cov_1dkwn9ysh4.s[86]++;if(this.systemSurveyCallback){cov_1dkwn9ysh4.b[12][0]++;cov_1dkwn9ysh4.s[87]++;this.systemSurveyCallback(this.clientState);cov_1dkwn9ysh4.s[88]++;this.systemSurveyCallback=undefined;cov_1dkwn9ysh4.s[89]++;return[2];}else{cov_1dkwn9ysh4.b[12][1]++;}cov_1dkwn9ysh4.s[90]++;return[2];}});});};cov_1dkwn9ysh4.s[91]++;return DynamicUxClient;}());var dynamicUxClient;function get(){cov_1dkwn9ysh4.f[18]++;cov_1dkwn9ysh4.s[92]++;return dynamicUxClient;}function setup(config){cov_1dkwn9ysh4.f[19]++;cov_1dkwn9ysh4.s[93]++;if(!dynamicUxClient){cov_1dkwn9ysh4.b[13][0]++;cov_1dkwn9ysh4.s[94]++;dynamicUxClient=new DynamicUxClient();}else{cov_1dkwn9ysh4.b[13][1]++;}cov_1dkwn9ysh4.s[95]++;dynamicUxClient.setup(config);}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9EeW5hbWljVXgvRHluYW1pY1V4Q2xpZW50LnRzP2NhMTUiXSwibmFtZXMiOlsiRHluYW1pY1V4Q2xpZW50IiwiZHluYW1pY1V4Q29uZmlnIiwiY2xpZW50U3RhdGUiLCJwcm90b3R5cGUiLCJzZXR1cCIsImNvbmZpZyIsImlzRW5hYmxlZCIsImVuYWJsZWQiLCJnZXRTdGF0dXMiLCJkZWxheUxvYWRDZW50cm9VeCIsIl90aGlzIiwiZGVsYXlMb2FkaW5nVGltZW91dCIsIkxvZ2dpbmciLCJsb2dFdmVudCIsIkRZTkFNSUNVWF9MT0FEX1BSRUxPQUQiLCJUaW1lTWlsbGlzZWNvbmRzIiwiQ2VudHJvUHJlbG9hZExvZ2dpbmdTYW1wbGluZ1JhdGUiLCJsb2FkQ2VudHJvVXgiLCJ0aW1lQmVmb3JlXzEiLCJwZXJmb3JtYW5jZSIsIm5vdyIsInNldFRpbWVvdXQiLCJ3YWl0aW5nVGltZSIsInNldE9uU3VydmV5QWN0aXZhdGVkQ2FsbGJhY2siLCJjYWxsYmFjayIsInN1cnZleSIsIlNVUlZFWV9UUklHR0VSX0RZTkFNSUNVWF9PTkxPQUQiLCJDYW1wYWlnbklkIiwiZ2V0Q2FtcGFpZ25JZCIsIlN1cnZleUlkIiwiZ2V0SWQiLCJTdXJ2ZXlUeXBlIiwiZ2V0U3VydmV5VHlwZSIsIk1lc3NhZ2UiLCJKU09OIiwic3RyaW5naWZ5IiwiRHluYW1pY1V4Q2xpZW50U3RhdGUiLCJpc1VzZXJJbml0aWF0ZWRTdXJ2ZXkiLCJ1c2VyU3VydmV5Q2FsbGJhY2siLCJzeXN0ZW1TdXJ2ZXlDYWxsYmFjayIsImJvb3N0U3RyYXBTdXJ2ZXkiLCJfX2F3YWl0ZXIiLCJkaXZUb01vdW50SFZDIiwiX2EiLCJlcnJvcl8xIiwiX19nZW5lcmF0b3IiLCJfYiIsImxhYmVsIiwiUHJvbWlzZSIsInJlamVjdCIsInRyeXMiLCJwdXNoIiwiZ2V0T3JDcmVhdGVEaXYiLCJDZW50cm9GbG9vZGdhdGVDb250YWluZXJJZCIsImJvb3N0U3RyYXBwZXIiLCJtYWluIiwidW5tb3VudEZ1bmMiLCJzZW50IiwiY29uY2F0IiwidG9TdHJpbmciLCJzdGFjayIsInVubW91bnRTdXJ2ZXkiLCJ0aW1lQmVmb3JlIiwicHJlQ29uZmlnIiwiY2VudHJvUGFyYW1zIiwiZGF0YVNvdXJjZXMiLCJjZW50cm9BZGFwdGVycyIsInNlcnZpY2VDYWxsVGltZSIsImVycm9yXzIiLCJob3N0TmFtZSIsImdldEZsb29kZ2F0ZUluaXRPcHRpb25zIiwiQ2VudHJvRmxvb2RnYXRlSG9zdE5hbWUiLCJsb2NhbGUiLCJDb25maWd1cmF0aW9uIiwiZ2V0Q29tbW9uSW5pdE9wdGlvbnMiLCJwZXJmUHJlZml4IiwiQ2VudHJvRmxvb2RnYXRlUGVyZlByZWZpeCIsImFkZGl0aW9uYWxMb2dnZXJzIiwiQ2VudHJvRmxvb2RnYXRlTG9nZ2VyRnVuYyIsImNlbnRyb0xvZ2dpbmciLCJrdXN0b0VuZHBvaW50IiwiY2VudHJvRW52aXJvbm1lbnRCYXNlVXJsIiwiQ2VudHJvVXJsUHJvZCIsImZvckhvc3RWZXJzaW9uIiwiRmxvb2RnYXRlQ2VudHJvVmVyc2lvbiIsIkNlbnRyb0xvYWRlcldyYXBwZXIiLCJpbml0aWFsaXplIiwic2QiLCJDZW50cm9Db21tb25Jbml0T3B0aW9ucyIsImNyZWF0ZVN0YXRpY0RhdGFTb3VyY2UiLCJ0aGVtZSIsIkNlbnRyb0Zsb29kZ2F0ZUluaXRPcHRpb25zIiwiQ2VudHJvQ29yZURhdGFTb3VyY2UiLCJnZXQiLCJDZW50cm9UaGVtZUluaXRPcHRpb25zIiwiQ2VudHJvVGhlbWVEYXRhU291cmNlIiwicmVxdWVzdCIsImdldEF1dGhUb2tlbiIsInJlc29sdmUiLCJ1cmxSZXNvbHZlSGFuZGxlciIsInJlcU9wdCIsInVybCIsImluY2x1ZGVzIiwiQ2VudHJvUGV0cm9sVXBsb2FkRW5kcG9pbnQiLCJiYWNrZW5kIiwiQmFja2VuZFRhcmdldCIsIk0zNjVBZG1pbkNlbnRlciIsInByZWxvYWRGZWF0dXJlIiwiZmVhdHVyZU5hbWUiLCJDZW50cm9GbG9vZGdhdGVGZWF0dXJlTmFtZSIsImFkYXB0ZXJzIiwiX19hc3NpZ24iLCJib290c3RyYXBGZWF0dXJlIiwiRFlOQU1JQ1VYX0xPQURfU1VDQ0VTUyIsIkRZTkFNSUNVWF9MT0FEX0ZBSUxVUkUiLCJFcnJvck1lc3NhZ2UiLCJvbkVycm9yIiwidW5kZWZpbmVkIiwiZHluYW1pY1V4Q2xpZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozt1dTJCQVVBLEdBQUlBLHdDQUFtQixVQUFZLHVCQUMvQixRQUFTQSxnQkFBVCxFQUEyQiw2Q0FDdkIsS0FBS0MsZUFBTCxDQUF1QixFQUF2QixDQUR1QixzQkFFdkIsS0FBS0MsV0FBTCxDQUFtQixDQUFuQixDQUNILENBSjhCLHNCQUsvQkYsZ0JBQWdCRyxTQUFoQixDQUEwQkMsS0FBMUIsQ0FBa0MsU0FBVUMsTUFBVixDQUFrQiw2Q0FDaEQsS0FBS0osZUFBTCxDQUF1QkksTUFBdkIsQ0FDSCxDQUZELENBTCtCLHNCQVEvQkwsZ0JBQWdCRyxTQUFoQixDQUEwQkcsU0FBMUIsQ0FBc0MsVUFBWSw2Q0FDOUMsTUFBTyxDQUFDLENBQUMsS0FBS0wsZUFBTCxDQUFxQk0sT0FBOUIsQ0FDSCxDQUZELENBUitCLHNCQVcvQlAsZ0JBQWdCRyxTQUFoQixDQUEwQkssU0FBMUIsQ0FBc0MsVUFBWSw2Q0FDOUMsTUFBTyxNQUFLTixXQUFaLENBQ0gsQ0FGRCxDQVgrQixzQkFjL0JGLGdCQUFnQkcsU0FBaEIsQ0FBMEJNLGlCQUExQixDQUE4QyxVQUFZLHVCQUN0RCxHQUFJQywrQkFBUSxJQUFSLENBQUosQ0FEc0QsdUJBRXRELEdBQUksS0FBS1QsZUFBTCxDQUFxQlUsbUJBQXJCLEdBQTZDLENBQWpELENBQW9ELGlEQUNoREMsMERBQUEsR0FBb0JDLFFBQXBCLENBQTZCRCx5REFBQSxDQUFpQkUsc0JBQTlDLENBQXNFLENBQXRFLENBQXlFLENBQ3JFQyxpQkFBa0IsQ0FEbUQsQ0FBekUsQ0FFR0MsaUZBRkgsRUFEZ0QsdUJBSWhELEtBQUtDLFlBQUwsR0FDSCxDQUxELElBTUssMEJB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bEIsQ0FDSCxDQUZELGdDQUQwQix1QkFJMUJzSCxnQkFBZ0JsSCxLQUFoQixDQUFzQkMsTUFBdEIsRUFDSCIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL0R5bmFtaWNVeC9EeW5hbWljVXhDbGllbnQudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBfX2Fzc2lnbiwgX19hd2FpdGVyLCBfX2dlbmVyYXRvciB9IGZyb20gXCJ0c2xpYlwiO1xyXG5pbXBvcnQgeyBjZW50cm9Mb2dnaW5nIH0gZnJvbSAnLi9DZW50cm9Mb2dnZXInO1xyXG5pbXBvcnQgeyBDZW50cm9Db3JlRGF0YVNvdXJjZSB9IGZyb20gJy4vQ2VudHJvQ29yZURhdGFTb3VyY2UnO1xyXG5pbXBvcnQgeyBDZW50cm9UaGVtZURhdGFTb3VyY2UgfSBmcm9tICcuL0NlbnRyb1RoZW1lRGF0YVNvdXJjZSc7XHJcbmltcG9ydCB7IENlbnRyb0NvbW1vbkluaXRPcHRpb25zLCBDZW50cm9GbG9vZGdhdGVDb250YWluZXJJZCwgQ2VudHJvRmxvb2RnYXRlRmVhdHVyZU5hbWUsIENlbnRyb0Zsb29kZ2F0ZUhvc3ROYW1lLCBDZW50cm9GbG9vZGdhdGVJbml0T3B0aW9ucywgQ2VudHJvRmxvb2RnYXRlUGVyZlByZWZpeCwgQ2VudHJvUGV0cm9sVXBsb2FkRW5kcG9pbnQsIENlbnRyb1ByZWxvYWRMb2dnaW5nU2FtcGxpbmdSYXRlLCBDZW50cm9UaGVtZUluaXRPcHRpb25zLCBDZW50cm9VcmxQcm9kLCBGbG9vZGdhdGVDZW50cm9WZXJzaW9uIH0gZnJvbSAnLi9DZW50cm9Db25zdGFudHMnO1xyXG5pbXBvcnQgeyBnZXRPckNyZWF0ZURpdiB9IGZyb20gJy4uL1V0aWxzJztcclxuaW1wb3J0ICogYXMgQ29uZmlndXJhdGlvbiBmcm9tIFwiLi4vLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCAqIGFzIExvZ2dpbmcgZnJvbSBcIi4uLy4uL0xvZ2dpbmcvTG9nZ2luZ1wiO1xyXG5pbXBvcnQgeyBDZW50cm9Mb2FkZXJXcmFwcGVyIH0gZnJvbSAnLi9DZW50cm9Mb2FkZXJXcmFwcGVyJztcclxuaW1wb3J0IHsgQmFja2VuZFRhcmdldCB9IGZyb20gJ0Btcy9jZW50cm8taHZjLWxvYWRlci9kaXN0L3J1bnRpbWUvZGF0YS9yZXF1ZXN0RnVuY3Rpb24udHlwZXMnO1xyXG52YXIgRHluYW1pY1V4Q2xpZW50ID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIER5bmFtaWNVeENsaWVudCgpIHtcclxuICAgICAgICB0aGlzLmR5bmFtaWNVeENvbmZpZyA9IHt9O1xyXG4gICAgICAgIHRoaXMuY2xpZW50U3RhdGUgPSAwO1xyXG4gICAgfVxyXG4gICAgRHluYW1pY1V4Q2xpZW50LnByb3RvdHlwZS5zZXR1cCA9IGZ1bmN0aW9uIChjb25maWcpIHtcclxuICAgICAgICB0aGlzLmR5bmFtaWNVeENvbmZpZyA9IGNvbmZpZztcclxuICAgIH07XHJcbiAgICBEeW5hbWljVXhDbGllbnQucHJvdG90eXBlLmlzRW5hYmxlZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXR1cm4gISF0aGlzLmR5bmFtaWNVeENvbmZpZy5lbmFibGVkO1xyXG4gICAgfTtcclxuICAgIER5bmFtaWNVeENsaWVudC5wcm90b3R5cGUuZ2V0U3RhdHVzID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNsaWVudFN0YXRlO1xyXG4gICAgfTtcclxuICAgIER5bmFtaWNVeENsaWVudC5wcm90b3R5cGUuZGVsYXlMb2FkQ2VudHJvVXggPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIF90aGlzID0gdGhpcztcclxuICAgICAgICBpZiAodGhpcy5keW5hbWljVXhDb25maWcuZGVsYXlMb2FkaW5nVGltZW91dCA9PT0gMCkge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmdldExvZ2dlcigpLmxvZ0V2ZW50KExvZ2dpbmcuRXZlbnRJZHMuRFlOQU1JQ1VYX0xPQURfUFJFTE9BRCwgMSwge1xyXG4gICAgICAgICAgICAgICAgVGltZU1pbGxpc2Vjb25kczogMFxyXG4gICAgICAgICAgICB9LCBDZW50cm9QcmVsb2FkTG9nZ2luZ1NhbXBsaW5nUmF0ZSk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENlbnRyb1V4KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICB2YXIgdGltZUJlZm9yZV8xID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgICAgdmFyIHdhaXRpbmdUaW1lID0gcGVyZm9ybWFuY2Uubm93KCkgLSB0aW1lQmVmb3JlXzE7XHJcbiAgICAgICAgICAgICAgICBMb2dnaW5nLmdldExvZ2dlcigpLmxvZ0V2ZW50KExvZ2dpbmcuRXZlbnRJZHMuRFlOQU1JQ1VYX0xPQURfUFJFTE9BRCwgMSwge1xyXG4gICAgICAgICAgICAgICAgICAgIFRpbWVNaWxsaXNlY29uZHM6IHdhaXRpbmdUaW1lXHJcbiAgICAgICAgICAgICAgICB9LCBDZW50cm9QcmVsb2FkTG9nZ2luZ1NhbXBsaW5nUmF0ZSk7XHJcbiAgICAgICAgICAgICAgICBfdGhpcy5sb2FkQ2VudHJvVXgoKTtcclxuICAgICAgICAgICAgfSwgdGhpcy5keW5hbWljVXhDb25maWcuZGVsYXlMb2FkaW5nVGltZW91dCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIER5bmFtaWNVeENsaWVudC5wcm90b3R5cGUuc2V0T25TdXJ2ZXlBY3RpdmF0ZWRDYWxsYmFjayA9IGZ1bmN0aW9uIChjYWxsYmFjaywgc3VydmV5KSB7XHJcbiAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9UUklHR0VSX0RZTkFNSUNVWF9PTkxPQUQsIDEsIHtcclxuICAgICAgICAgICAgQ2FtcGFpZ25JZDogc3VydmV5LmdldENhbXBhaWduSWQoKSxcclxuICAgICAgICAgICAgU3VydmV5SWQ6IHN1cnZleS5nZXRJZCgpLFxyXG4gICAgICAgICAgICBTdXJ2ZXlUeXBlOiBzdXJ2ZXkuZ2V0U3VydmV5VHlwZSgpLFxyXG4gICAgICAgICAgICBNZXNzYWdlOiBKU09OLnN0cmluZ2lmeSh7XHJcbiAgICAgICAgICAgICAgICBEeW5hbWljVXhDbGllbnRTdGF0ZTogdGhpcy5jbGllbnRTdGF0ZSxcclxuICAgICAgICAgICAgICAgIGlzVXNlckluaXRpYXRlZFN1cnZleTogc3VydmV5LmlzVXNlckluaXRpYXRlZFN1cnZleSgpXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChzdXJ2ZXkuaXNVc2VySW5pdGlhdGVkU3VydmV5KCkpIHtcclxuICAgICAgICAgICAgdGhpcy51c2VyU3VydmV5Q2FsbGJhY2sgPSBjYWxsYmFjaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3lzdGVtU3VydmV5Q2FsbGJhY2sgPSBjYWxsYmFjaztcclxuICAgICAgICB9XHJcbiAgICB9O1xyXG4gICAgRHluYW1pY1V4Q2xpZW50LnByb3RvdHlwZS5ib29zdFN0cmFwU3VydmV5ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIGRpdlRvTW91bnRIVkMsIF9hLCBlcnJvcl8xO1xyXG4gICAgICAgICAgICByZXR1cm4gX19nZW5lcmF0b3IodGhpcywgZnVuY3Rpb24gKF9iKSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKF9iLmxhYmVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAwOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGllbnRTdGF0ZSAhPT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyLCBQcm9taXNlLnJlamVjdChcIkR5bmFtaWNVeCBpcyBub3QgbG9hZGVkIHN1Y2Nlc3NmdWxseVwiKV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgX2IubGFiZWwgPSAxO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2IudHJ5cy5wdXNoKFsxLCAzLCAsIDRdKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGl2VG9Nb3VudEhWQyA9IGdldE9yQ3JlYXRlRGl2KENlbnRyb0Zsb29kZ2F0ZUNvbnRhaW5lcklkLCB0cnVlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hID0gdGhpcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0LCB0aGlzLmJvb3N0U3RyYXBwZXIubWFpbihkaXZUb01vdW50SFZDKV07XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAyOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYS51bm1vdW50RnVuYyA9IF9iLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFszLCA0XTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDM6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yXzEgPSBfYi5zZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMiwgUHJvbWlzZS5yZWplY3QoXCJFcnJvcjogXCIuY29uY2F0KGVycm9yXzEudG9TdHJpbmcoKSwgXCIsIEVycm9yIHN0YWNrOiBcIikuY29uY2F0KGVycm9yXzEuc3RhY2spKV07XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA0OiByZXR1cm4gWzJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH07XHJcbiAgICBEeW5hbWljVXhDbGllbnQucHJvdG90eXBlLnVubW91bnRTdXJ2ZXkgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudW5tb3VudFN1cnZleSkge1xyXG4gICAgICAgICAgICB0aGlzLnVubW91bnRGdW5jKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfTtcclxuICAgIER5bmFtaWNVeENsaWVudC5wcm90b3R5cGUubG9hZENlbnRyb1V4ID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgdmFyIHRpbWVCZWZvcmUsIHByZUNvbmZpZywgY2VudHJvUGFyYW1zLCBkYXRhU291cmNlcywgY2VudHJvQWRhcHRlcnMsIF9hLCBzZXJ2aWNlQ2FsbFRpbWUsIGVycm9yXzIsIHNlcnZpY2VDYWxsVGltZTtcclxuICAgICAgICAgICAgcmV0dXJuIF9fZ2VuZXJhdG9yKHRoaXMsIGZ1bmN0aW9uIChfYikge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChfYi5sYWJlbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY2xpZW50U3RhdGUgPT09IDIgfHwgdGhpcy5jbGllbnRTdGF0ZSA9PT0gMSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGllbnRTdGF0ZSA9PT0gMykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsaWVudFN0YXRlID0gMTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZUJlZm9yZSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYi5sYWJlbCA9IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAxOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYi50cnlzLnB1c2goWzEsIDUsICwgNl0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVDb25maWcgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0TmFtZTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVJbml0T3B0aW9ucygpLmR5bmFtaWNVeENvbmZpZy5ob3N0TmFtZSB8fCBDZW50cm9GbG9vZGdhdGVIb3N0TmFtZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmxvY2FsZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcmZQcmVmaXg6IENlbnRyb0Zsb29kZ2F0ZVBlcmZQcmVmaXgsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsTG9nZ2VyczogeyBDZW50cm9GbG9vZGdhdGVMb2dnZXJGdW5jOiBjZW50cm9Mb2dnaW5nIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdXN0b0VuZHBvaW50OiAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2VudHJvUGFyYW1zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VudHJvRW52aXJvbm1lbnRCYXNlVXJsOiBDZW50cm9VcmxQcm9kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlQ29uZmlnOiBwcmVDb25maWcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JIb3N0VmVyc2lvbjogRmxvb2RnYXRlQ2VudHJvVmVyc2lvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzQsIENlbnRyb0xvYWRlcldyYXBwZXIuaW5pdGlhbGl6ZShjZW50cm9QYXJhbXMpXTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDI6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9iLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNvdXJjZXMgPSBmdW5jdGlvbiAoc2QpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkKENlbnRyb0NvbW1vbkluaXRPcHRpb25zLCBDZW50cm9Mb2FkZXJXcmFwcGVyLmNyZWF0ZVN0YXRpY0RhdGFTb3VyY2UoeyB0aGVtZTogJ00zNjVMaWdodCcgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkKENlbnRyb0Zsb29kZ2F0ZUluaXRPcHRpb25zLCBDZW50cm9Db3JlRGF0YVNvdXJjZS5nZXQoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZChDZW50cm9UaGVtZUluaXRPcHRpb25zLCBDZW50cm9UaGVtZURhdGFTb3VyY2UuZ2V0KCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjZW50cm9BZGFwdGVycyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Q6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRBdXRoVG9rZW46IGZ1bmN0aW9uICgpIHsgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTsgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxSZXNvbHZlSGFuZGxlcjogZnVuY3Rpb24gKHJlcU9wdCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVxT3B0LnVybC5pbmNsdWRlcyhDZW50cm9QZXRyb2xVcGxvYWRFbmRwb2ludCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXFPcHQudXJsO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXFPcHQuYmFja2VuZCA9PT0gQmFja2VuZFRhcmdldC5NMzY1QWRtaW5DZW50ZXIpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDZW50cm9VcmxQcm9kICsgcmVxT3B0LnVybDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVxT3B0LnVybDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFs0LCBDZW50cm9Mb2FkZXJXcmFwcGVyLnByZWxvYWRGZWF0dXJlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlTmFtZTogQ2VudHJvRmxvb2RnYXRlRmVhdHVyZU5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRhcHRlcnM6IF9fYXNzaWduKF9fYXNzaWduKHt9LCBjZW50cm9BZGFwdGVycyksIHsgZGF0YVNvdXJjZXM6IGRhdGFTb3VyY2VzIH0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgMzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgX2Iuc2VudCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBfYSA9IHRoaXM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbNCwgQ2VudHJvTG9hZGVyV3JhcHBlci5ib290c3RyYXBGZWF0dXJlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZWF0dXJlTmFtZTogQ2VudHJvRmxvb2RnYXRlRmVhdHVyZU5hbWVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXTtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIF9hLmJvb3N0U3RyYXBwZXIgPSBfYi5zZW50KCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xpZW50U3RhdGUgPSAyO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlQ2FsbFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKSAtIHRpbWVCZWZvcmU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIExvZ2dpbmcuZ2V0TG9nZ2VyKCkubG9nRXZlbnQoTG9nZ2luZy5FdmVudElkcy5EWU5BTUlDVVhfTE9BRF9TVUNDRVNTLCAxLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaW1lTWlsbGlzZWNvbmRzOiBzZXJ2aWNlQ2FsbFRpbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzMsIDZdO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgNTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfMiA9IF9iLnNlbnQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jbGllbnRTdGF0ZSA9IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZpY2VDYWxsVGltZSA9IHBlcmZvcm1hbmNlLm5vdygpIC0gdGltZUJlZm9yZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChMb2dnaW5nLkV2ZW50SWRzLkRZTkFNSUNVWF9MT0FEX0ZBSUxVUkUsIDIsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRpbWVNaWxsaXNlY29uZHM6IHNlcnZpY2VDYWxsVGltZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZTogXCJFcnJvcjogXCIuY29uY2F0KGVycm9yXzIudG9TdHJpbmcoKSwgXCIsIEVycm9yIHN0YWNrOiBcIikuY29uY2F0KGVycm9yXzIuc3RhY2spLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLm9uRXJyb3IoXCJGYWlsZWQgdG8gZG93bmxvYWQgRHluYW1pYyBzdXJ2ZXkgVVg6IFwiLmNvbmNhdChlcnJvcl8yKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMywgNl07XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSA2OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy51c2VyU3VydmV5Q2FsbGJhY2spIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlclN1cnZleUNhbGxiYWNrKHRoaXMuY2xpZW50U3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyU3VydmV5Q2FsbGJhY2sgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gWzJdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN5c3RlbVN1cnZleUNhbGxiYWNrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbVN1cnZleUNhbGxiYWNrKHRoaXMuY2xpZW50U3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zeXN0ZW1TdXJ2ZXlDYWxsYmFjayA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBbMl07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFsyXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIER5bmFtaWNVeENsaWVudDtcclxufSgpKTtcclxuZXhwb3J0IHsgRHluYW1pY1V4Q2xpZW50IH07XHJcbnZhciBkeW5hbWljVXhDbGllbnQ7XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXQoKSB7XHJcbiAgICByZXR1cm4gZHluYW1pY1V4Q2xpZW50O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXR1cChjb25maWcpIHtcclxuICAgIGlmICghZHluYW1pY1V4Q2xpZW50KSB7XHJcbiAgICAgICAgZHluYW1pY1V4Q2xpZW50ID0gbmV3IER5bmFtaWNVeENsaWVudCgpO1xyXG4gICAgfVxyXG4gICAgZHluYW1pY1V4Q2xpZW50LnNldHVwKGNvbmZpZyk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/UI/DynamicUx/DynamicUxClient.ts\n"); /***/ }), /***/ "./scripts/app/UI/FeedbackUtils.ts": /*!*****************************************!*\ !*** ./scripts/app/UI/FeedbackUtils.ts ***! \*****************************************/ /*! exports provided: ScreenshotPreviewByCheckbox */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ScreenshotPreviewByCheckbox\", function() { return ScreenshotPreviewByCheckbox; });\n/* harmony import */ var _Screenshot__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./../Screenshot */ \"./scripts/app/Screenshot.ts\");\n/* harmony import */ var _Logging_Logging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../Logging/Logging */ \"./scripts/app/Logging/Logging.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Utils */ \"./scripts/app/UI/Utils.ts\");\nvar cov_1vhjkrvgup=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\FeedbackUtils.ts\",hash=\"3ec76ef0dd83e2e78da9668357123e75cd7f27e0\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\FeedbackUtils.ts\",statementMap:{\"0\":{start:{line:5,column:29},end:{line:5,column:74}},\"1\":{start:{line:6,column:37},end:{line:6,column:85}},\"2\":{start:{line:7,column:18},end:{line:7,column:62}},\"3\":{start:{line:8,column:4},end:{line:22,column:5}},\"4\":{start:{line:9,column:8},end:{line:9,column:62}},\"5\":{start:{line:10,column:26},end:{line:10,column:43}},\"6\":{start:{line:11,column:8},end:{line:18,column:11}},\"7\":{start:{line:12,column:26},end:{line:12,column:43}},\"8\":{start:{line:13,column:12},end:{line:13,column:146}},\"9\":{start:{line:14,column:12},end:{line:14,column:45}},\"10\":{start:{line:16,column:26},end:{line:16,column:43}},\"11\":{start:{line:17,column:12},end:{line:17,column:166}},\"12\":{start:{line:21,column:8},end:{line:21,column:63}}},fnMap:{\"0\":{name:\"ScreenshotPreviewByCheckbox\",decl:{start:{line:4,column:16},end:{line:4,column:43}},loc:{start:{line:4,column:87},end:{line:23,column:1}},line:4},\"1\":{name:\"(anonymous_1)\",decl:{start:{line:11,column:56},end:{line:11,column:57}},loc:{start:{line:11,column:74},end:{line:15,column:9}},line:11},\"2\":{name:\"(anonymous_2)\",decl:{start:{line:15,column:17},end:{line:15,column:18}},loc:{start:{line:15,column:34},end:{line:18,column:9}},line:15}},branchMap:{\"0\":{loc:{start:{line:6,column:37},end:{line:6,column:85}},type:\"binary-expr\",locations:[{start:{line:6,column:37},end:{line:6,column:55}},{start:{line:6,column:59},end:{line:6,column:85}}],line:6},\"1\":{loc:{start:{line:8,column:4},end:{line:22,column:5}},type:\"if\",locations:[{start:{line:8,column:4},end:{line:22,column:5}},{start:{line:8,column:4},end:{line:22,column:5}}],line:8}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0},f:{\"0\":0,\"1\":0,\"2\":0},b:{\"0\":[0,0],\"1\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\FeedbackUtils.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\FeedbackUtils.ts\"],names:[],mappings:\"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAOjC,MAAM,UAAU,2BAA2B,CAAC,oBAA4B,EAAE,mBAA2B;IACpG,IAAM,kBAAkB,GAAsB,QAAQ,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC;IAC5F,IAAM,0BAA0B,GAAY,kBAAkB,IAAI,kBAAkB,CAAC,OAAO,CAAC;IAC7F,IAAM,OAAO,GAAsB,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAEhF,IAAI,0BAA0B,EAAE;QAC/B,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;QACtD,IAAM,WAAS,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;QAC5C,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAC9C,UAAC,MAAyB;YACzB,IAAM,OAAO,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1C,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,KAEnF,EAAE,gBAAgB,EAAE,OAAO,GAAG,WAAS,EAAE,CAAC,CAAC;YAE5C,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC,CACD,CAAC,KAAK,CAAC,UAAC,KAAU;YAClB,IAAM,OAAO,GAAW,WAAW,CAAC,GAAG,EAAE,CAAC;YAC1C,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAElF,EAAE,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,GAAG,WAAS,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;KACH;SAAM;QACN,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;KACvD;AACF,CAAC\",sourcesContent:[\"import * as Screenshot from \\\"./../Screenshot\\\";\\r\\nimport * as Logging from \\\"./../Logging/Logging\\\";\\r\\nimport * as Utils from \\\"./Utils\\\";\\r\\n\\r\\n/**\\r\\n * Screenshot preview is control by screenshot check box. Populate preview if checkbox is checked \\r\\n * @param screenshotCheckboxId The Id of screenshot checkbox \\r\\n * @param screenshotPreviewId The Id of preview \\r\\n */\\r\\nexport function ScreenshotPreviewByCheckbox(screenshotCheckboxId: string, screenshotPreviewId: string): void {\\r\\n\\tconst screenshotCheckBox = document.getElementById(screenshotCheckboxId);\\r\\n\\tconst screenshotCheckBoxSelected: boolean = screenshotCheckBox && screenshotCheckBox.checked;\\r\\n\\tconst preview = document.getElementById(screenshotPreviewId);\\r\\n\\r\\n\\tif (screenshotCheckBoxSelected) {\\r\\n\\t\\tUtils.setElementVisibility(screenshotPreviewId, true);\\r\\n\\t\\tconst startTime: number = performance.now();\\r\\n\\t\\tScreenshot.createScreenshot(document.body).then(\\r\\n\\t\\t\\t(canvas: HTMLCanvasElement) => {\\r\\n\\t\\t\\t\\tconst endTime: number = performance.now();\\r\\n\\t\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.Shared.Screenshot.Render.Success.VALUE,\\r\\n\\t\\t\\t\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t\\t\\t\\t{ TimeMilliseconds: endTime - startTime });\\r\\n\\r\\n\\t\\t\\t\\tpreview.src = canvas.toDataURL();\\r\\n\\t\\t\\t}\\r\\n\\t\\t).catch((error: any) => {\\r\\n\\t\\t\\tconst endTime: number = performance.now();\\r\\n\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.Shared.Screenshot.Render.Failed.VALUE,\\r\\n\\t\\t\\t\\tLogging.LogLevel.Error,\\r\\n\\t\\t\\t\\t{ ErrorMessage: error, TimeMilliseconds: endTime - startTime });\\r\\n\\t\\t});\\r\\n\\t} else {\\r\\n\\t\\tUtils.setElementVisibility(screenshotPreviewId, false);\\r\\n\\t}\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function ScreenshotPreviewByCheckbox(screenshotCheckboxId,screenshotPreviewId){cov_1vhjkrvgup.f[0]++;var screenshotCheckBox=(cov_1vhjkrvgup.s[0]++,document.getElementById(screenshotCheckboxId));var screenshotCheckBoxSelected=(cov_1vhjkrvgup.s[1]++,(cov_1vhjkrvgup.b[0][0]++,screenshotCheckBox)&&(cov_1vhjkrvgup.b[0][1]++,screenshotCheckBox.checked));var preview=(cov_1vhjkrvgup.s[2]++,document.getElementById(screenshotPreviewId));cov_1vhjkrvgup.s[3]++;if(screenshotCheckBoxSelected){cov_1vhjkrvgup.b[1][0]++;cov_1vhjkrvgup.s[4]++;_Utils__WEBPACK_IMPORTED_MODULE_2__[\"setElementVisibility\"](screenshotPreviewId,true);var startTime_1=(cov_1vhjkrvgup.s[5]++,performance.now());cov_1vhjkrvgup.s[6]++;_Screenshot__WEBPACK_IMPORTED_MODULE_0__[\"createScreenshot\"](document.body).then(function(canvas){cov_1vhjkrvgup.f[1]++;var endTime=(cov_1vhjkrvgup.s[7]++,performance.now());cov_1vhjkrvgup.s[8]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"EventIds\"].Shared.Screenshot.Render.Success.VALUE,1,{TimeMilliseconds:endTime-startTime_1});cov_1vhjkrvgup.s[9]++;preview.src=canvas.toDataURL();}).catch(function(error){cov_1vhjkrvgup.f[2]++;var endTime=(cov_1vhjkrvgup.s[10]++,performance.now());cov_1vhjkrvgup.s[11]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"EventIds\"].Shared.Screenshot.Render.Failed.VALUE,2,{ErrorMessage:error,TimeMilliseconds:endTime-startTime_1});});}else{cov_1vhjkrvgup.b[1][1]++;cov_1vhjkrvgup.s[12]++;_Utils__WEBPACK_IMPORTED_MODULE_2__[\"setElementVisibility\"](screenshotPreviewId,false);}}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9GZWVkYmFja1V0aWxzLnRzPzNkNDgiXSwibmFtZXMiOlsiU2NyZWVuc2hvdFByZXZpZXdCeUNoZWNrYm94Iiwic2NyZWVuc2hvdENoZWNrYm94SWQiLCJzY3JlZW5zaG90UHJldmlld0lkIiwic2NyZWVuc2hvdENoZWNrQm94IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNjcmVlbnNob3RDaGVja0JveFNlbGVjdGVkIiwiY2hlY2tlZCIsInByZXZpZXciLCJVdGlscyIsInN0YXJ0VGltZV8xIiwicGVyZm9ybWFuY2UiLCJub3ciLCJTY3JlZW5zaG90IiwiYm9keSIsInRoZW4iLCJjYW52YXMiLCJlbmRUaW1lIiwiTG9nZ2luZyIsImxvZ0V2ZW50IiwiU2hhcmVkIiwiUmVuZGVyIiwiU3VjY2VzcyIsIlZBTFVFIiwiVGltZU1pbGxpc2Vjb25kcyIsInNyYyIsInRvRGF0YVVSTCIsImNhdGNoIiwiZXJyb3IiLCJGYWlsZWQiLCJFcnJvck1lc3NhZ2UiXSwibWFwcGluZ3MiOiI7Ozs7O293S0FHTyxRQUFTQSw0QkFBVCxDQUFxQ0Msb0JBQXJDLENBQTJEQyxtQkFBM0QsQ0FBZ0YsdUJBQ25GLEdBQUlDLDJDQUFxQkMsU0FBU0MsY0FBVCxDQUF3Qkosb0JBQXhCLENBQXJCLENBQUosQ0FDQSxHQUFJSyxtREFBNkIseUVBQXNCSCxtQkFBbUJJLE9BQXpDLENBQTdCLENBQUosQ0FDQSxHQUFJQyxnQ0FBVUosU0FBU0MsY0FBVCxDQUF3QkgsbUJBQXhCLENBQVYsQ0FBSixDQUhtRixzQkFJbkYsR0FBSUksMEJBQUosQ0FBZ0MsZ0RBQzVCRywyREFBQSxDQUEyQlAsbUJBQTNCLENBQWdELElBQWhELEVBQ0EsR0FBSVEsb0NBQWNDLFlBQVlDLEdBQVosRUFBZCxDQUFKLENBRjRCLHNCQUc1QkMsNERBQUEsQ0FBNEJULFNBQVNVLElBQXJDLEVBQTJDQyxJQUEzQyxDQUFnRCxTQUFVQyxNQUFWLENBQWtCLHVCQUM5RCxHQUFJQyxnQ0FBVU4sWUFBWUMsR0FBWixFQUFWLENBQUosQ0FEOEQsc0JBRTlETSwwREFBQSxHQUFvQkMsUUFBcEIsQ0FBNkJELHlEQUFBLENBQWlCRSxNQUFqQixDQUF3QlAsVUFBeEIsQ0FBbUNRLE1BQW5DLENBQTBDQyxPQUExQyxDQUFrREMsS0FBL0UsQ0FBc0YsQ0FBdEYsQ0FBeUYsQ0FBRUMsaUJBQWtCUCxRQUFVUCxXQUE5QixDQUF6RixFQUY4RCxzQkFHOURGLFFBQVFpQixHQUFSLENBQWNULE9BQU9VLFNBQVAsRUFBZCxDQUNILENBSkQsRUFJR0MsS0FKSCxDQUlTLFNBQVVDLEtBQVYsQ0FBaUIsdUJBQ3RCLEdBQUlYLGlDQUFVTixZQUFZQyxHQUFaLEVBQVYsQ0FBSixDQURzQix1QkFFdEJNLDBEQUFBLEdBQW9CQyxRQUFwQixDQUE2QkQseURBQUEsQ0FBaUJFLE1BQWpCLENBQXdCUCxVQUF4QixDQUFtQ1EsTUFBbkMsQ0FBMENRLE1BQTFDLENBQWlETixLQUE5RSxDQUFxRixDQUFyRixDQUF3RixDQUFFTyxhQUFjRixLQUFoQixDQUF1QkosaUJBQWtCUCxRQUFVUCxXQUFuRCxDQUF4RixFQUNILENBUEQsRUFRSCxDQVhELElBWUssaURBQ0RELDJEQUFBLENBQTJCUCxtQkFBM0IsQ0FBZ0QsS0FBaEQsRUFDSCxDQUNKIiwiZmlsZSI6Ii4vc2NyaXB0cy9hcHAvVUkvRmVlZGJhY2tVdGlscy50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFNjcmVlbnNob3QgZnJvbSBcIi4vLi4vU2NyZWVuc2hvdFwiO1xyXG5pbXBvcnQgKiBhcyBMb2dnaW5nIGZyb20gXCIuLy4uL0xvZ2dpbmcvTG9nZ2luZ1wiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi9VdGlsc1wiO1xyXG5leHBvcnQgZnVuY3Rpb24gU2NyZWVuc2hvdFByZXZpZXdCeUNoZWNrYm94KHNjcmVlbnNob3RDaGVja2JveElkLCBzY3JlZW5zaG90UHJldmlld0lkKSB7XHJcbiAgICB2YXIgc2NyZWVuc2hvdENoZWNrQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoc2NyZWVuc2hvdENoZWNrYm94SWQpO1xyXG4gICAgdmFyIHNjcmVlbnNob3RDaGVja0JveFNlbGVjdGVkID0gc2NyZWVuc2hvdENoZWNrQm94ICYmIHNjcmVlbnNob3RDaGVja0JveC5jaGVja2VkO1xyXG4gICAgdmFyIHByZXZpZXcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzY3JlZW5zaG90UHJldmlld0lkKTtcclxuICAgIGlmIChzY3JlZW5zaG90Q2hlY2tCb3hTZWxlY3RlZCkge1xyXG4gICAgICAgIFV0aWxzLnNldEVsZW1lbnRWaXNpYmlsaXR5KHNjcmVlbnNob3RQcmV2aWV3SWQsIHRydWUpO1xyXG4gICAgICAgIHZhciBzdGFydFRpbWVfMSA9IHBlcmZvcm1hbmNlLm5vdygpO1xyXG4gICAgICAgIFNjcmVlbnNob3QuY3JlYXRlU2NyZWVuc2hvdChkb2N1bWVudC5ib2R5KS50aGVuKGZ1bmN0aW9uIChjYW52YXMpIHtcclxuICAgICAgICAgICAgdmFyIGVuZFRpbWUgPSBwZXJmb3JtYW5jZS5ub3coKTtcclxuICAgICAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNoYXJlZC5TY3JlZW5zaG90LlJlbmRlci5TdWNjZXNzLlZBTFVFLCAxLCB7IFRpbWVNaWxsaXNlY29uZHM6IGVuZFRpbWUgLSBzdGFydFRpbWVfMSB9KTtcclxuICAgICAgICAgICAgcHJldmlldy5zcmMgPSBjYW52YXMudG9EYXRhVVJMKCk7XHJcbiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHZhciBlbmRUaW1lID0gcGVyZm9ybWFuY2Uubm93KCk7XHJcbiAgICAgICAgICAgIExvZ2dpbmcuZ2V0TG9nZ2VyKCkubG9nRXZlbnQoTG9nZ2luZy5FdmVudElkcy5TaGFyZWQuU2NyZWVuc2hvdC5SZW5kZXIuRmFpbGVkLlZBTFVFLCAyLCB7IEVycm9yTWVzc2FnZTogZXJyb3IsIFRpbWVNaWxsaXNlY29uZHM6IGVuZFRpbWUgLSBzdGFydFRpbWVfMSB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIFV0aWxzLnNldEVsZW1lbnRWaXNpYmlsaXR5KHNjcmVlbnNob3RQcmV2aWV3SWQsIGZhbHNlKTtcclxuICAgIH1cclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/UI/FeedbackUtils.ts\n"); /***/ }), /***/ "./scripts/app/UI/RatingControl.ts": /*!*****************************************!*\ !*** ./scripts/app/UI/RatingControl.ts ***! \*****************************************/ /*! exports provided: generate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\nvar cov_1gqp50l7ah=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\RatingControl.ts\",hash=\"256f418a36a81645c56e16ebc7fe581d2f485695\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\RatingControl.ts\",statementMap:{\"0\":{start:{line:2,column:13},end:{line:2,column:23}},\"1\":{start:{line:3,column:21},end:{line:22,column:1}},\"2\":{start:{line:23,column:16},end:{line:26,column:1}},\"3\":{start:{line:27,column:17},end:{line:33,column:1}},\"4\":{start:{line:34,column:16},end:{line:40,column:1}},\"5\":{start:{line:41,column:17},end:{line:47,column:1}},\"6\":{start:{line:48,column:16},end:{line:54,column:1}},\"7\":{start:{line:55,column:17},end:{line:60,column:1}},\"8\":{start:{line:61,column:20},end:{line:66,column:1}},\"9\":{start:{line:67,column:20},end:{line:72,column:1}},\"10\":{start:{line:73,column:22},end:{line:78,column:1}},\"11\":{start:{line:79,column:21},end:{line:84,column:1}},\"12\":{start:{line:85,column:21},end:{line:90,column:1}},\"13\":{start:{line:92,column:4},end:{line:144,column:6}}},fnMap:{\"0\":{name:\"generate\",decl:{start:{line:91,column:16},end:{line:91,column:24}},loc:{start:{line:91,column:29},end:{line:145,column:1}},line:91}},branchMap:{},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0},f:{\"0\":0},b:{},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\RatingControl.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\RatingControl.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/**\\r\\n * RatingControl.ts\\r\\n *\\r\\n * A module for a rating control.\\r\\n */\\r\\n\\r\\nimport { AttributeName, Classes, Tags } from \\\"./UiConstants\\\";\\r\\nimport * as Renderer from \\\"./Renderer\\\";\\r\\n\\r\\nconst starId = \\\"obf-star\\\";\\r\\n\\r\\nconst starDefinition: Renderer.IUIAsJson = {\\r\\n\\tchildren: [\\r\\n\\t\\t{\\r\\n\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t{ name: AttributeName.Id, value: starId },\\r\\n\\t\\t\\t\\t{ name: AttributeName.X, value: \\\"0\\\" },\\r\\n\\t\\t\\t\\t{ name: AttributeName.Y, value: \\\"0\\\" },\\r\\n\\t\\t\\t\\t{ name: AttributeName.Width, value: \\\"105\\\" },\\r\\n\\t\\t\\t\\t{ name: AttributeName.Height, value: \\\"100\\\" },\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\tname: AttributeName.Points,\\r\\n\\t\\t\\t\\t\\tvalue: \\\"52.5, 80.3 84, 100 76.3, 63 105, 38 67.2, 35 52.5, 0 37.8, 35 0, 38 28.7, 63 20, 100 52.5, 80.3\\\",\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t],\\r\\n\\t\\t\\tid: starId,\\r\\n\\t\\t\\ttag: Tags.Polygon,\\r\\n\\t\\t},\\r\\n\\t],\\r\\n\\ttag: Tags.Defs,\\r\\n};\\r\\n\\r\\nconst firstStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.xlinkHref, value: `#${starId}` }],\\r\\n\\ttag: Tags.Use,\\r\\n};\\r\\n\\r\\nconst secondStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [\\r\\n\\t\\t{ name: AttributeName.xlinkHref, value: `#${starId}` },\\r\\n\\t\\t{ name: AttributeName.Transform, value: \\\"translate(105 0)\\\" },\\r\\n\\t],\\r\\n\\ttag: Tags.Use,\\r\\n};\\r\\n\\r\\nconst thirdStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [\\r\\n\\t\\t{ name: AttributeName.xlinkHref, value: `#${starId}` },\\r\\n\\t\\t{ name: AttributeName.Transform, value: \\\"translate(210 0)\\\" },\\r\\n\\t],\\r\\n\\ttag: Tags.Use,\\r\\n};\\r\\n\\r\\nconst fourthStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [\\r\\n\\t\\t{ name: AttributeName.xlinkHref, value: `#${starId}` },\\r\\n\\t\\t{ name: AttributeName.Transform, value: \\\"translate(315 0)\\\" },\\r\\n\\t],\\r\\n\\ttag: Tags.Use,\\r\\n};\\r\\n\\r\\nconst fifthStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [\\r\\n\\t\\t{ name: AttributeName.xlinkHref, value: `#${starId}` },\\r\\n\\t\\t{ name: AttributeName.Transform, value: \\\"translate(420 0)\\\" },\\r\\n\\t],\\r\\n\\ttag: Tags.Use,\\r\\n};\\r\\n\\r\\nconst emptyStars: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 525 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar, secondStar, thirdStar, fourthStar, fifthStar],\\r\\n\\tclasses: [Classes.RatingGraphic],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nconst oneFilledStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 105 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar],\\r\\n\\tclasses: [Classes.RatingGraphic, Classes.RatingGraphicFilled],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nconst twoFilledStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 210 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar, secondStar],\\r\\n\\tclasses: [Classes.RatingGraphic, Classes.RatingGraphicFilled],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nconst threeFilledStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 315 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar, secondStar, thirdStar],\\r\\n\\tclasses: [Classes.RatingGraphic, Classes.RatingGraphicFilled],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nconst fourFilledStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 420 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar, secondStar, thirdStar, fourthStar],\\r\\n\\tclasses: [Classes.RatingGraphic, Classes.RatingGraphicFilled],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nconst fiveFilledStar: Renderer.IUIAsJson = {\\r\\n\\tattributes: [{ name: AttributeName.ViewBox, value: \\\"0 0 525 100\\\" }],\\r\\n\\tchildren: [starDefinition, firstStar, secondStar, thirdStar, fourthStar, fifthStar],\\r\\n\\tclasses: [Classes.RatingGraphic, Classes.RatingGraphicFilled],\\r\\n\\ttag: Tags.Svg,\\r\\n};\\r\\n\\r\\nexport function generate(id: string): Renderer.IUIAsJson {\\r\\n\\treturn {\\r\\n\\t\\tchildren: [\\r\\n\\t\\t\\temptyStars,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: \\\"radio\\\" },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Name, value: id },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Value, value: \\\"1\\\" },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\toneFilledStar,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: \\\"radio\\\" },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Name, value: id },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Value, value: \\\"2\\\" },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\ttwoFilledStar,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: \\\"radio\\\" },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Name, value: id },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Value, value: \\\"3\\\" },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tthreeFilledStar,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: \\\"radio\\\" },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Name, value: id },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Value, value: \\\"4\\\" },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tfourFilledStar,\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: \\\"radio\\\" },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Name, value: id },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Value, value: \\\"5\\\" },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tfiveFilledStar,\\r\\n\\t\\t],\\r\\n\\t\\tclasses: [Classes.Rating],\\r\\n\\t\\tid: id,\\r\\n\\t\\ttag: Tags.Span,\\r\\n\\t};\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var starId=(cov_1gqp50l7ah.s[0]++,\"obf-star\");var starDefinition=(cov_1gqp50l7ah.s[1]++,{children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Id,value:starId},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].X,value:\"0\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Y,value:\"0\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Width,value:\"105\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Height,value:\"100\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Points,value:\"52.5, 80.3 84, 100 76.3, 63 105, 38 67.2, 35 52.5, 0 37.8, 35 0, 38 28.7, 63 20, 100 52.5, 80.3\"}],id:starId,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Polygon}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Defs});var firstStar=(cov_1gqp50l7ah.s[2]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].xlinkHref,value:\"#\".concat(starId)}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Use});var secondStar=(cov_1gqp50l7ah.s[3]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].xlinkHref,value:\"#\".concat(starId)},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Transform,value:\"translate(105 0)\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Use});var thirdStar=(cov_1gqp50l7ah.s[4]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].xlinkHref,value:\"#\".concat(starId)},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Transform,value:\"translate(210 0)\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Use});var fourthStar=(cov_1gqp50l7ah.s[5]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].xlinkHref,value:\"#\".concat(starId)},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Transform,value:\"translate(315 0)\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Use});var fifthStar=(cov_1gqp50l7ah.s[6]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].xlinkHref,value:\"#\".concat(starId)},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Transform,value:\"translate(420 0)\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Use});var emptyStars=(cov_1gqp50l7ah.s[7]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 525 100\"}],children:[starDefinition,firstStar,secondStar,thirdStar,fourthStar,fifthStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});var oneFilledStar=(cov_1gqp50l7ah.s[8]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 105 100\"}],children:[starDefinition,firstStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphicFilled],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});var twoFilledStar=(cov_1gqp50l7ah.s[9]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 210 100\"}],children:[starDefinition,firstStar,secondStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphicFilled],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});var threeFilledStar=(cov_1gqp50l7ah.s[10]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 315 100\"}],children:[starDefinition,firstStar,secondStar,thirdStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphicFilled],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});var fourFilledStar=(cov_1gqp50l7ah.s[11]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 420 100\"}],children:[starDefinition,firstStar,secondStar,thirdStar,fourthStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphicFilled],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});var fiveFilledStar=(cov_1gqp50l7ah.s[12]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].ViewBox,value:\"0 0 525 100\"}],children:[starDefinition,firstStar,secondStar,thirdStar,fourthStar,fifthStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphic,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].RatingGraphicFilled],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg});function generate(id){cov_1gqp50l7ah.f[0]++;cov_1gqp50l7ah.s[13]++;return{children:[emptyStars,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Type,value:\"radio\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Name,value:id},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Value,value:\"1\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Input},oneFilledStar,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Type,value:\"radio\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Name,value:id},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Value,value:\"2\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Input},twoFilledStar,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Type,value:\"radio\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Name,value:id},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Value,value:\"3\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Input},threeFilledStar,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Type,value:\"radio\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Name,value:id},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Value,value:\"4\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Input},fourFilledStar,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Type,value:\"radio\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Name,value:id},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"AttributeName\"].Value,value:\"5\"}],tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Input},fiveFilledStar],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Rating],id:id,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Span};}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9SYXRpbmdDb250cm9sLnRzP2Q0YzUiXSwibmFtZXMiOlsic3RhcklkIiwic3RhckRlZmluaXRpb24iLCJjaGlsZHJlbiIsImF0dHJpYnV0ZXMiLCJuYW1lIiwiQXR0cmlidXRlTmFtZSIsIklkIiwidmFsdWUiLCJYIiwiWSIsIldpZHRoIiwiSGVpZ2h0IiwiUG9pbnRzIiwiaWQiLCJ0YWciLCJUYWdzIiwiUG9seWdvbiIsIkRlZnMiLCJmaXJzdFN0YXIiLCJ4bGlua0hyZWYiLCJjb25jYXQiLCJVc2UiLCJzZWNvbmRTdGFyIiwiVHJhbnNmb3JtIiwidGhpcmRTdGFyIiwiZm91cnRoU3RhciIsImZpZnRoU3RhciIsImVtcHR5U3RhcnMiLCJWaWV3Qm94IiwiY2xhc3NlcyIsIkNsYXNzZXMiLCJSYXRpbmdHcmFwaGljIiwiU3ZnIiwib25lRmlsbGVkU3RhciIsIlJhdGluZ0dyYXBoaWNGaWxsZWQiLCJ0d29GaWxsZWRTdGFyIiwidGhyZWVGaWxsZWRTdGFyIiwiZm91ckZpbGxlZFN0YXIiLCJmaXZlRmlsbGVkU3RhciIsImdlbmVyYXRlIiwiVHlwZSIsIk5hbWUiLCJWYWx1ZSIsIklucHV0IiwiUmF0aW5nIiwiU3BhbiJdLCJtYXBwaW5ncyI6Ijs7O21wWEFDQSxHQUFJQSwrQkFBUyxVQUFULENBQUosQ0FDQSxHQUFJQyx1Q0FBaUIsQ0FDakJDLFNBQVUsQ0FDTixDQUNJQyxXQUFZLENBQ1IsQ0FBRUMsS0FBTUMsMERBQWFBLENBQUNDLEVBQXRCLENBQTBCQyxNQUFPUCxNQUFqQyxDQURRLENBRVIsQ0FBRUksS0FBTUMsMERBQWFBLENBQUNHLENBQXRCLENBQXlCRCxNQUFPLEdBQWhDLENBRlEsQ0FHUixDQUFFSCxLQUFNQywwREFBYUEsQ0FBQ0ksQ0FBdEIsQ0FBeUJGLE1BQU8sR0FBaEMsQ0FIUSxDQUlSLENBQUVILEtBQU1DLDBEQUFhQSxDQUFDSyxLQUF0QixDQUE2QkgsTUFBTyxLQUFwQyxDQUpRLENB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QixDQUE0QmxDLE1BQU9NLEVBQW5DLENBRlEsQ0FHUixDQUFFVCxLQUFNQywwREFBYUEsQ0FBQ3FDLEtBQXRCLENBQTZCbkMsTUFBTyxHQUFwQyxDQUhRLENBRGhCLENBTUlPLElBQUtDLGlEQUFJQSxDQUFDNEIsS0FOZCxDQXBCTSxDQTRCTlAsZUE1Qk0sQ0E2Qk4sQ0FDSWpDLFdBQVksQ0FDUixDQUFFQyxLQUFNQywwREFBYUEsQ0FBQ21DLElBQXRCLENBQTRCakMsTUFBTyxPQUFuQyxDQURRLENBRVIsQ0FBRUgsS0FBTUMsMERBQWFBLENBQUNvQyxJQUF0QixDQUE0QmxDLE1BQU9NLEVBQW5DLENBRlEsQ0FHUixDQUFFVCxLQUFNQywwREFBYUEsQ0FBQ3FDLEtBQXRCLENBQTZCbkMsTUFBTyxHQUFwQyxDQUhRLENBRGhCLENBTUlPLElBQUtDLGlEQUFJQSxDQUFDNEIsS0FOZCxDQTdCTSxDQXFDTk4sY0FyQ00sQ0FzQ04sQ0FDSWxDLFdBQVksQ0FDUixDQUFFQyxLQUFNQywwREFBYUEsQ0FBQ21DLElBQXRCLENBQTRCakMsTUFBTyxPQUFuQyxDQURRLENBRVIsQ0FBRUgsS0FBTUMsMERBQWFBLENBQUNvQyxJQUF0QixDQUE0QmxDLE1BQU9NLEVBQW5DLENBRlEsQ0FHUixDQUFFVCxLQUFNQywwREFBYUEsQ0FBQ3FDLEtBQXRCLENBQTZCbkMsTUFBTyxHQUFwQyxDQUhRLENBRGhCLENBTUlPLElBQUtDLGlEQUFJQSxDQUFDNEIsS0FOZCxDQXRDTSxDQThDTkwsY0E5Q00sQ0FEUCxDQWlESFQsUUFBUyxDQUFDQyxvREFBT0EsQ0FBQ2MsTUFBVCxDQWpETixDQWtESC9CLEdBQUlBLEVBbERELENBbURIQyxJQUFLQyxpREFBSUEsQ0FBQzhCLElBbkRQLENBQVAsQ0FxREgiLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9VSS9SYXRpbmdDb250cm9sLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlTmFtZSwgQ2xhc3NlcywgVGFncyB9IGZyb20gXCIuL1VpQ29uc3RhbnRzXCI7XHJcbnZhciBzdGFySWQgPSBcIm9iZi1zdGFyXCI7XHJcbnZhciBzdGFyRGVmaW5pdGlvbiA9IHtcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXHJcbiAgICAgICAgICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuSWQsIHZhbHVlOiBzdGFySWQgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5YLCB2YWx1ZTogXCIwXCIgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5ZLCB2YWx1ZTogXCIwXCIgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5XaWR0aCwgdmFsdWU6IFwiMTA1XCIgfSxcclxuICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5IZWlnaHQsIHZhbHVlOiBcIjEwMFwiIH0sXHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogQXR0cmlidXRlTmFtZS5Qb2ludHMsXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiNTIuNSwgODAuMyA4NCwgMTAwIDc2LjMsIDYzIDEwNSwgMzggNjcuMiwgMzUgNTIuNSwgMCAzNy44LCAzNSAwLCAzOCAyOC43LCA2MyAyMCwgMTAwIDUyLjUsIDgwLjNcIixcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIGlkOiBzdGFySWQsXHJcbiAgICAgICAgICAgIHRhZzogVGFncy5Qb2x5Z29uLFxyXG4gICAgICAgIH0sXHJcbiAgICBdLFxyXG4gICAgdGFnOiBUYWdzLkRlZnMsXHJcbn07XHJcbnZhciBmaXJzdFN0YXIgPSB7XHJcbiAgICBhdHRyaWJ1dGVzOiBbeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLnhsaW5rSHJlZiwgdmFsdWU6IFwiI1wiLmNvbmNhdChzdGFySWQpIH1dLFxyXG4gICAgdGFnOiBUYWdzLlVzZSxcclxufTtcclxudmFyIHNlY29uZFN0YXIgPSB7XHJcbiAgICBhdHRyaWJ1dGVzOiBbXHJcbiAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLnhsaW5rSHJlZiwgdmFsdWU6IFwiI1wiLmNvbmNhdChzdGFySWQpIH0sXHJcbiAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLlRyYW5zZm9ybSwgdmFsdWU6IFwidHJhbnNsYXRlKDEwNSAwKVwiIH0sXHJcbiAgICBdLFxyXG4gICAgdGFnOiBUYWdzLlVzZSxcclxufTtcclxudmFyIHRoaXJkU3RhciA9IHtcclxuICAgIGF0dHJpYnV0ZXM6IFtcclxuICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUueGxpbmtIcmVmLCB2YWx1ZTogXCIjXCIuY29uY2F0KHN0YXJJZCkgfSxcclxuICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVHJhbnNmb3JtLCB2YWx1ZTogXCJ0cmFuc2xhdGUoMjEwIDApXCIgfSxcclxuICAgIF0sXHJcbiAgICB0YWc6IFRhZ3MuVXNlLFxyXG59O1xyXG52YXIgZm91cnRoU3RhciA9IHtcclxuICAgIGF0dHJpYnV0ZXM6IFtcclxuICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUueGxpbmtIcmVmLCB2YWx1ZTogXCIjXCIuY29uY2F0KHN0YXJJZCkgfSxcclxuICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVHJhbnNmb3JtLCB2YWx1ZTogXCJ0cmFuc2xhdGUoMzE1IDApXCIgfSxcclxuICAgIF0sXHJcbiAgICB0YWc6IFRhZ3MuVXNlLFxyXG59O1xyXG52YXIgZmlmdGhTdGFyID0ge1xyXG4gICAgYXR0cmlidXRlczogW1xyXG4gICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS54bGlua0hyZWYsIHZhbHVlOiBcIiNcIi5jb25jYXQoc3RhcklkKSB9LFxyXG4gICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5UcmFuc2Zvcm0sIHZhbHVlOiBcInRyYW5zbGF0ZSg0MjAgMClcIiB9LFxyXG4gICAgXSxcclxuICAgIHRhZzogVGFncy5Vc2UsXHJcbn07XHJcbnZhciBlbXB0eVN0YXJzID0ge1xyXG4gICAgYXR0cmlidXRlczogW3sgbmFtZTogQXR0cmlidXRlTmFtZS5WaWV3Qm94LCB2YWx1ZTogXCIwIDAgNTI1IDEwMFwiIH1dLFxyXG4gICAgY2hpbGRyZW46IFtzdGFyRGVmaW5pdGlvbiwgZmlyc3RTdGFyLCBzZWNvbmRTdGFyLCB0aGlyZFN0YXIsIGZvdXJ0aFN0YXIsIGZpZnRoU3Rhcl0sXHJcbiAgICBjbGFzc2VzOiBbQ2xhc3Nlcy5SYXRpbmdHcmFwaGljXSxcclxuICAgIHRhZzogVGFncy5TdmcsXHJcbn07XHJcbnZhciBvbmVGaWxsZWRTdGFyID0ge1xyXG4gICAgYXR0cmlidXRlczogW3sgbmFtZTogQXR0cmlidXRlTmFtZS5WaWV3Qm94LCB2YWx1ZTogXCIwIDAgMTA1IDEwMFwiIH1dLFxyXG4gICAgY2hpbGRyZW46IFtzdGFyRGVmaW5pdGlvbiwgZmlyc3RTdGFyXSxcclxuICAgIGNsYXNzZXM6IFtDbGFzc2VzLlJhdGluZ0dyYXBoaWMsIENsYXNzZXMuUmF0aW5nR3JhcGhpY0ZpbGxlZF0sXHJcbiAgICB0YWc6IFRhZ3MuU3ZnLFxyXG59O1xyXG52YXIgdHdvRmlsbGVkU3RhciA9IHtcclxuICAgIGF0dHJpYnV0ZXM6IFt7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVmlld0JveCwgdmFsdWU6IFwiMCAwIDIxMCAxMDBcIiB9XSxcclxuICAgIGNoaWxkcmVuOiBbc3RhckRlZmluaXRpb24sIGZpcnN0U3Rhciwgc2Vjb25kU3Rhcl0sXHJcbiAgICBjbGFzc2VzOiBbQ2xhc3Nlcy5SYXRpbmdHcmFwaGljLCBDbGFzc2VzLlJhdGluZ0dyYXBoaWNGaWxsZWRdLFxyXG4gICAgdGFnOiBUYWdzLlN2ZyxcclxufTtcclxudmFyIHRocmVlRmlsbGVkU3RhciA9IHtcclxuICAgIGF0dHJpYnV0ZXM6IFt7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVmlld0JveCwgdmFsdWU6IFwiMCAwIDMxNSAxMDBcIiB9XSxcclxuICAgIGNoaWxkcmVuOiBbc3RhckRlZmluaXRpb24sIGZpcnN0U3Rhciwgc2Vjb25kU3RhciwgdGhpcmRTdGFyXSxcclxuICAgIGNsYXNzZXM6IFtDbGFzc2VzLlJhdGluZ0dyYXBoaWMsIENsYXNzZXMuUmF0aW5nR3JhcGhpY0ZpbGxlZF0sXHJcbiAgICB0YWc6IFRhZ3MuU3ZnLFxyXG59O1xyXG52YXIgZm91ckZpbGxlZFN0YXIgPSB7XHJcbiAgICBhdHRyaWJ1dGVzOiBbeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLlZpZXdCb3gsIHZhbHVlOiBcIjAgMCA0MjAgMTAwXCIgfV0sXHJcbiAgICBjaGlsZHJlbjogW3N0YXJEZWZpbml0aW9uLCBmaXJzdFN0YXIsIHNlY29uZFN0YXIsIHRoaXJkU3RhciwgZm91cnRoU3Rhcl0sXHJcbiAgICBjbGFzc2VzOiBbQ2xhc3Nlcy5SYXRpbmdHcmFwaGljLCBDbGFzc2VzLlJhdGluZ0dyYXBoaWNGaWxsZWRdLFxyXG4gICAgdGFnOiBUYWdzLlN2ZyxcclxufTtcclxudmFyIGZpdmVGaWxsZWRTdGFyID0ge1xyXG4gICAgYXR0cmlidXRlczogW3sgbmFtZTogQXR0cmlidXRlTmFtZS5WaWV3Qm94LCB2YWx1ZTogXCIwIDAgNTI1IDEwMFwiIH1dLFxyXG4gICAgY2hpbGRyZW46IFtzdGFyRGVmaW5pdGlvbiwgZmlyc3RTdGFyLCBzZWNvbmRTdGFyLCB0aGlyZFN0YXIsIGZvdXJ0aFN0YXIsIGZpZnRoU3Rhcl0sXHJcbiAgICBjbGFzc2VzOiBbQ2xhc3Nlcy5SYXRpbmdHcmFwaGljLCBDbGFzc2VzLlJhdGluZ0dyYXBoaWNGaWxsZWRdLFxyXG4gICAgdGFnOiBUYWdzLlN2ZyxcclxufTtcclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlKGlkKSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgICAgICAgIGVtcHR5U3RhcnMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtcclxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVHlwZSwgdmFsdWU6IFwicmFkaW9cIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5OYW1lLCB2YWx1ZTogaWQgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuVmFsdWUsIHZhbHVlOiBcIjFcIiB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIHRhZzogVGFncy5JbnB1dCxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgb25lRmlsbGVkU3RhcixcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5UeXBlLCB2YWx1ZTogXCJyYWRpb1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLk5hbWUsIHZhbHVlOiBpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5WYWx1ZSwgdmFsdWU6IFwiMlwiIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgdGFnOiBUYWdzLklucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0d29GaWxsZWRTdGFyLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBbXHJcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLlR5cGUsIHZhbHVlOiBcInJhZGlvXCIgfSxcclxuICAgICAgICAgICAgICAgICAgICB7IG5hbWU6IEF0dHJpYnV0ZU5hbWUuTmFtZSwgdmFsdWU6IGlkIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLlZhbHVlLCB2YWx1ZTogXCIzXCIgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICB0YWc6IFRhZ3MuSW5wdXQsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHRocmVlRmlsbGVkU3RhcixcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5UeXBlLCB2YWx1ZTogXCJyYWRpb1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLk5hbWUsIHZhbHVlOiBpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5WYWx1ZSwgdmFsdWU6IFwiNFwiIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgdGFnOiBUYWdzLklucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmb3VyRmlsbGVkU3RhcixcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW1xyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5UeXBlLCB2YWx1ZTogXCJyYWRpb1wiIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgeyBuYW1lOiBBdHRyaWJ1dGVOYW1lLk5hbWUsIHZhbHVlOiBpZCB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHsgbmFtZTogQXR0cmlidXRlTmFtZS5WYWx1ZSwgdmFsdWU6IFwiNVwiIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICAgICAgdGFnOiBUYWdzLklucHV0LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBmaXZlRmlsbGVkU3RhcixcclxuICAgICAgICBdLFxyXG4gICAgICAgIGNsYXNzZXM6IFtDbGFzc2VzLlJhdGluZ10sXHJcbiAgICAgICAgaWQ6IGlkLFxyXG4gICAgICAgIHRhZzogVGFncy5TcGFuLFxyXG4gICAgfTtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/UI/RatingControl.ts\n"); /***/ }), /***/ "./scripts/app/UI/Renderer.ts": /*!************************************!*\ !*** ./scripts/app/UI/Renderer.ts ***! \************************************/ /*! exports provided: elementFromJson */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"elementFromJson\", function() { return elementFromJson; });\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\nvar cov_2rr1mew5qv=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Renderer.ts\",hash=\"5fe4a8c5ccde234ce2ab3dfcee27fa267e8036ca\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Renderer.ts\",statementMap:{\"0\":{start:{line:3,column:4},end:{line:5,column:5}},\"1\":{start:{line:4,column:8},end:{line:4,column:26}},\"2\":{start:{line:6,column:4},end:{line:8,column:5}},\"3\":{start:{line:7,column:8},end:{line:7,column:20}},\"4\":{start:{line:9,column:4},end:{line:11,column:5}},\"5\":{start:{line:10,column:8},end:{line:10,column:30}},\"6\":{start:{line:13,column:4},end:{line:15,column:5}},\"7\":{start:{line:14,column:8},end:{line:14,column:19}},\"8\":{start:{line:16,column:4},end:{line:21,column:5}},\"9\":{start:{line:17,column:8},end:{line:17,column:85}},\"10\":{start:{line:20,column:8},end:{line:20,column:53}},\"11\":{start:{line:22,column:4},end:{line:33,column:5}},\"12\":{start:{line:23,column:24},end:{line:23,column:30}},\"13\":{start:{line:24,column:8},end:{line:32,column:9}},\"14\":{start:{line:25,column:12},end:{line:25,column:45}},\"15\":{start:{line:26,column:12},end:{line:31,column:13}},\"16\":{start:{line:27,column:16},end:{line:27,column:108}},\"17\":{start:{line:30,column:16},end:{line:30,column:70}},\"18\":{start:{line:34,column:4},end:{line:36,column:5}},\"19\":{start:{line:35,column:8},end:{line:35,column:31}},\"20\":{start:{line:37,column:4},end:{line:45,column:5}},\"21\":{start:{line:38,column:28},end:{line:38,column:52}},\"22\":{start:{line:39,column:8},end:{line:44,column:9}},\"23\":{start:{line:40,column:12},end:{line:40,column:69}},\"24\":{start:{line:43,column:12},end:{line:43,column:46}},\"25\":{start:{line:46,column:4},end:{line:48,column:5}},\"26\":{start:{line:47,column:8},end:{line:47,column:47}},\"27\":{start:{line:49,column:4},end:{line:51,column:5}},\"28\":{start:{line:50,column:8},end:{line:50,column:45}},\"29\":{start:{line:52,column:4},end:{line:62,column:5}},\"30\":{start:{line:53,column:8},end:{line:61,column:9}},\"31\":{start:{line:54,column:22},end:{line:54,column:40}},\"32\":{start:{line:55,column:12},end:{line:60,column:13}},\"33\":{start:{line:56,column:28},end:{line:56,column:53}},\"34\":{start:{line:57,column:16},end:{line:59,column:17}},\"35\":{start:{line:58,column:20},end:{line:58,column:47}},\"36\":{start:{line:63,column:4},end:{line:63,column:19}}},fnMap:{\"0\":{name:\"elementFromJson\",decl:{start:{line:2,column:16},end:{line:2,column:31}},loc:{start:{line:2,column:45},end:{line:64,column:1}},line:2}},branchMap:{\"0\":{loc:{start:{line:3,column:4},end:{line:5,column:5}},type:\"if\",locations:[{start:{line:3,column:4},end:{line:5,column:5}},{start:{line:3,column:4},end:{line:5,column:5}}],line:3},\"1\":{loc:{start:{line:6,column:4},end:{line:8,column:5}},type:\"if\",locations:[{start:{line:6,column:4},end:{line:8,column:5}},{start:{line:6,column:4},end:{line:8,column:5}}],line:6},\"2\":{loc:{start:{line:9,column:4},end:{line:11,column:5}},type:\"if\",locations:[{start:{line:9,column:4},end:{line:11,column:5}},{start:{line:9,column:4},end:{line:11,column:5}}],line:9},\"3\":{loc:{start:{line:13,column:4},end:{line:15,column:5}},type:\"if\",locations:[{start:{line:13,column:4},end:{line:15,column:5}},{start:{line:13,column:4},end:{line:15,column:5}}],line:13},\"4\":{loc:{start:{line:16,column:4},end:{line:21,column:5}},type:\"if\",locations:[{start:{line:16,column:4},end:{line:21,column:5}},{start:{line:16,column:4},end:{line:21,column:5}}],line:16},\"5\":{loc:{start:{line:22,column:4},end:{line:33,column:5}},type:\"if\",locations:[{start:{line:22,column:4},end:{line:33,column:5}},{start:{line:22,column:4},end:{line:33,column:5}}],line:22},\"6\":{loc:{start:{line:26,column:12},end:{line:31,column:13}},type:\"if\",locations:[{start:{line:26,column:12},end:{line:31,column:13}},{start:{line:26,column:12},end:{line:31,column:13}}],line:26},\"7\":{loc:{start:{line:34,column:4},end:{line:36,column:5}},type:\"if\",locations:[{start:{line:34,column:4},end:{line:36,column:5}},{start:{line:34,column:4},end:{line:36,column:5}}],line:34},\"8\":{loc:{start:{line:37,column:4},end:{line:45,column:5}},type:\"if\",locations:[{start:{line:37,column:4},end:{line:45,column:5}},{start:{line:37,column:4},end:{line:45,column:5}}],line:37},\"9\":{loc:{start:{line:39,column:8},end:{line:44,column:9}},type:\"if\",locations:[{start:{line:39,column:8},end:{line:44,column:9}},{start:{line:39,column:8},end:{line:44,column:9}}],line:39},\"10\":{loc:{start:{line:46,column:4},end:{line:48,column:5}},type:\"if\",locations:[{start:{line:46,column:4},end:{line:48,column:5}},{start:{line:46,column:4},end:{line:48,column:5}}],line:46},\"11\":{loc:{start:{line:46,column:8},end:{line:46,column:32}},type:\"binary-expr\",locations:[{start:{line:46,column:8},end:{line:46,column:24}},{start:{line:46,column:28},end:{line:46,column:32}}],line:46},\"12\":{loc:{start:{line:49,column:4},end:{line:51,column:5}},type:\"if\",locations:[{start:{line:49,column:4},end:{line:51,column:5}},{start:{line:49,column:4},end:{line:51,column:5}}],line:49},\"13\":{loc:{start:{line:49,column:8},end:{line:49,column:32}},type:\"binary-expr\",locations:[{start:{line:49,column:8},end:{line:49,column:24}},{start:{line:49,column:28},end:{line:49,column:32}}],line:49},\"14\":{loc:{start:{line:52,column:4},end:{line:62,column:5}},type:\"if\",locations:[{start:{line:52,column:4},end:{line:62,column:5}},{start:{line:52,column:4},end:{line:62,column:5}}],line:52},\"15\":{loc:{start:{line:55,column:12},end:{line:60,column:13}},type:\"if\",locations:[{start:{line:55,column:12},end:{line:60,column:13}},{start:{line:55,column:12},end:{line:60,column:13}}],line:55},\"16\":{loc:{start:{line:57,column:16},end:{line:59,column:17}},type:\"if\",locations:[{start:{line:57,column:16},end:{line:59,column:17}},{start:{line:57,column:16},end:{line:59,column:17}}],line:57}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0},f:{\"0\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0],\"10\":[0,0],\"11\":[0,0],\"12\":[0,0],\"13\":[0,0],\"14\":[0,0],\"15\":[0,0],\"16\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Renderer.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Renderer.ts\"],names:[],mappings:\"AAQA,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA8BpD,MAAM,UAAU,eAAe,CAAC,MAAiB,EAAE,GAAa;IAC/D,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,WAAW,EAAE;QACtC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC;KAClB;IAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QAChB,OAAO,IAAI,CAAC;KACZ;IAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;QAChB,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KACtB;IAED,IAAI,OAAgB,CAAC;IAErB,IAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE;QAC5B,GAAG,GAAG,IAAI,CAAC;KACX;IAED,IAAI,GAAG,EAAE;QACR,OAAO,GAAG,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;KAC7E;SAAM;QACN,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC7C;IAED,IAAI,MAAM,CAAC,UAAU,EAAE;QACtB,IAAI,SAAS,SAAY,CAAC;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAClD,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,SAAS,EAAE;gBAC/C,OAAO,CAAC,cAAc,CAAC,8BAA8B,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;aAC5F;iBAAM;gBACN,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;aACtD;SACD;KACD;IAED,IAAI,MAAM,CAAC,EAAE,EAAE;QACd,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;KACvB;IAED,IAAI,MAAM,CAAC,OAAO,EAAE;QACnB,IAAM,aAAa,GAAW,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,GAAG,EAAE;YACR,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;SACzD;aAAM;YACN,OAAO,CAAC,SAAS,GAAG,aAAa,CAAC;SAClC;KACD;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE;QAC7B,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC;KACvC;IAED,IAAI,MAAM,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE;QAC7B,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;KACrC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAEhD,IAAM,GAAG,GAAc,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAE1C,IAAI,GAAG,EAAE;gBACR,IAAM,KAAK,GAAY,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAEjD,IAAI,KAAK,EAAE;oBACV,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBAC3B;aACD;SACD;KACD;IAED,OAAO,OAAO,CAAC;AAChB,CAAC\",sourcesContent:[\"/* eslint @microsoft/sdl/no-inner-html: \\\"off\\\" */\\r\\n\\r\\n/**\\r\\n * Renderer.ts\\r\\n *\\r\\n * Module for rendering the markup\\r\\n */\\r\\n\\r\\nimport { AttributeName, Tags } from \\\"./UiConstants\\\";\\r\\n\\r\\n/**\\r\\n * Interface for an attribute\\r\\n */\\r\\nexport interface IAttribute {\\r\\n\\tname: string;\\r\\n\\tvalue: string;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Interface for UI(HTML markup) as json\\r\\n */\\r\\nexport interface IUIAsJson {\\r\\n\\tid?: string;\\r\\n\\ttag?: string; // div by default\\r\\n\\tclasses?: string[]; // CSS class\\r\\n\\tattributes?: IAttribute[];\\r\\n\\tchildren?: IUIAsJson[];\\r\\n\\tinnerText?: string;\\r\\n\\tinnerHTML?: string;\\r\\n\\tbrs?: any; // should the element and its children be created? true by default\\r\\n}\\r\\n\\r\\n/**\\r\\n * Create DOM elements from Json structure\\r\\n * @param {UiAsJson} schema The Json structure\\r\\n * @param {boolean} svg Create svg element instead of html?\\r\\n * @return {HTMLElement} HTML elements with tree structure\\r\\n */\\r\\nexport function elementFromJson(schema: IUIAsJson, svg?: boolean): Element {\\r\\n\\tif (typeof schema.brs === \\\"undefined\\\") {\\r\\n\\t\\tschema.brs = true;\\r\\n\\t}\\r\\n\\r\\n\\tif (!schema.brs) {\\r\\n\\t\\treturn null;\\r\\n\\t}\\r\\n\\r\\n\\tif (!schema.tag) {\\r\\n\\t\\tschema.tag = Tags.Div;\\r\\n\\t}\\r\\n\\r\\n\\tlet element: Element;\\r\\n\\r\\n\\tif (schema.tag === Tags.Svg) {\\r\\n\\t\\tsvg = true;\\r\\n\\t}\\r\\n\\r\\n\\tif (svg) {\\r\\n\\t\\telement = document.createElementNS(\\\"http://www.w3.org/2000/svg\\\", schema.tag);\\r\\n\\t} else {\\r\\n\\t\\telement = document.createElement(schema.tag);\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.attributes) {\\r\\n\\t\\tlet attribute: IAttribute;\\r\\n\\t\\tfor (let i = 0; i < schema.attributes.length; i++) {\\r\\n\\t\\t\\tattribute = schema.attributes[i];\\r\\n\\t\\t\\tif (attribute.name === AttributeName.xlinkHref) {\\r\\n\\t\\t\\t\\telement.setAttributeNS(\\\"http://www.w3.org/1999/xlink\\\", AttributeName.HRef, attribute.value);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\telement.setAttribute(attribute.name, attribute.value);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.id) {\\r\\n\\t\\telement.id = schema.id;\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.classes) {\\r\\n\\t\\tconst concatClasses: string = schema.classes.join(\\\" \\\");\\r\\n\\t\\tif (svg) {\\r\\n\\t\\t\\telement.setAttribute(AttributeName.Class, concatClasses);\\r\\n\\t\\t} else {\\r\\n\\t\\t\\telement.className = concatClasses;\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.innerText && !svg) {\\r\\n\\t\\telement.textContent = schema.innerText;\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.innerHTML && !svg) {\\r\\n\\t\\telement.innerHTML = schema.innerHTML;\\r\\n\\t}\\r\\n\\r\\n\\tif (schema.children) {\\r\\n\\t\\tfor (let i = 0; i < schema.children.length; i++) {\\r\\n\\t\\t\\t// Sometimes IE mis-reports length\\r\\n\\t\\t\\tconst cur: IUIAsJson = schema.children[i];\\r\\n\\r\\n\\t\\t\\tif (cur) {\\r\\n\\t\\t\\t\\tconst child: Element = elementFromJson(cur, svg);\\r\\n\\r\\n\\t\\t\\t\\tif (child) {\\r\\n\\t\\t\\t\\t\\telement.appendChild(child);\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\treturn element;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function elementFromJson(schema,svg){cov_2rr1mew5qv.f[0]++;cov_2rr1mew5qv.s[0]++;if(typeof schema.brs===\"undefined\"){cov_2rr1mew5qv.b[0][0]++;cov_2rr1mew5qv.s[1]++;schema.brs=true;}else{cov_2rr1mew5qv.b[0][1]++;}cov_2rr1mew5qv.s[2]++;if(!schema.brs){cov_2rr1mew5qv.b[1][0]++;cov_2rr1mew5qv.s[3]++;return null;}else{cov_2rr1mew5qv.b[1][1]++;}cov_2rr1mew5qv.s[4]++;if(!schema.tag){cov_2rr1mew5qv.b[2][0]++;cov_2rr1mew5qv.s[5]++;schema.tag=_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Div;}else{cov_2rr1mew5qv.b[2][1]++;}var element;cov_2rr1mew5qv.s[6]++;if(schema.tag===_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Svg){cov_2rr1mew5qv.b[3][0]++;cov_2rr1mew5qv.s[7]++;svg=true;}else{cov_2rr1mew5qv.b[3][1]++;}cov_2rr1mew5qv.s[8]++;if(svg){cov_2rr1mew5qv.b[4][0]++;cov_2rr1mew5qv.s[9]++;element=document.createElementNS(\"http://www.w3.org/2000/svg\",schema.tag);}else{cov_2rr1mew5qv.b[4][1]++;cov_2rr1mew5qv.s[10]++;element=document.createElement(schema.tag);}cov_2rr1mew5qv.s[11]++;if(schema.attributes){cov_2rr1mew5qv.b[5][0]++;var attribute=(cov_2rr1mew5qv.s[12]++,void 0);cov_2rr1mew5qv.s[13]++;for(var i=0;i;\\r\\n\\tprivate spinnerId: string;\\r\\n\\tprivate spinner: HTMLElement;\\r\\n\\r\\n\\t/**\\r\\n\\t * Constructor\\r\\n\\t * @param id id of the element to attach the spinner to\\r\\n\\t */\\r\\n\\tconstructor(id: string) {\\r\\n\\t\\tthis.spinnerId = id;\\r\\n\\t\\tthis.spinner = document.getElementById(this.spinnerId);\\r\\n\\t\\tthis.createCirclesAndArrange();\\r\\n\\t\\tthis.initializeOpacities();\\r\\n\\t\\tthis.start();\\r\\n\\t\\tUtils.setElementVisibility(id, true);\\r\\n\\t}\\r\\n\\r\\n\\t/**\\r\\n\\t * Destroys the spinner\\r\\n\\t */\\r\\n\\tpublic destroy() {\\r\\n\\t\\tUtils.setElementVisibility(this.spinnerId, false);\\r\\n\\t\\tthis.stop();\\r\\n\\t}\\r\\n\\r\\n\\t/**\\r\\n\\t * Starts the animation\\r\\n\\t */\\r\\n\\tprivate start() {\\r\\n\\t\\tthis.stop();\\r\\n\\t\\tthis.interval = setInterval(() => {\\r\\n\\t\\t\\tlet i = this.circleObjects.length;\\r\\n\\t\\t\\twhile (i--) {\\r\\n\\t\\t\\t\\tfade(this.circleObjects[i]);\\r\\n\\t\\t\\t}\\r\\n\\t\\t},\\r\\n\\t\\t\\tanimationSpeed);\\r\\n\\t}\\r\\n\\r\\n\\t/**\\r\\n\\t * Stops the animation\\r\\n\\t */\\r\\n\\tprivate stop() {\\r\\n\\t\\tclearInterval(this.interval);\\r\\n\\t}\\r\\n\\r\\n\\tprivate createCirclesAndArrange() {\\r\\n\\t\\tlet angle = 0;\\r\\n\\t\\tconst offset = parentSize * offsetSize;\\r\\n\\t\\tconst step = (2 * Math.PI) / numCircles;\\r\\n\\t\\tlet i = numCircles;\\r\\n\\t\\tlet circleObject: ICircleObject;\\r\\n\\t\\tconst radius = (parentSize - offset) * 0.5;\\r\\n\\r\\n\\t\\twhile (i--) {\\r\\n\\t\\t\\tconst circle: HTMLDivElement = createCircle();\\r\\n\\t\\t\\tconst x = Math.round(parentSize * 0.5 + radius * Math.cos(angle) - circle.clientWidth * 0.5) - offset * 0.5;\\r\\n\\t\\t\\tconst y = Math.round(parentSize * 0.5 + radius * Math.sin(angle) - circle.clientHeight * 0.5) - offset * 0.5;\\r\\n\\t\\t\\tthis.spinner.appendChild(circle);\\r\\n\\t\\t\\tcircle.style.left = x + \\\"px\\\";\\r\\n\\t\\t\\tcircle.style.top = y + \\\"px\\\";\\r\\n\\t\\t\\tangle += step;\\r\\n\\t\\t\\tcircleObject = { element: circle, j: i };\\r\\n\\t\\t\\tthis.circleObjects.push(circleObject);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tprivate initializeOpacities() {\\r\\n\\t\\tlet i = 0;\\r\\n\\t\\tlet j = 1;\\r\\n\\t\\tlet opacity: number;\\r\\n\\r\\n\\t\\tfor (i; i < numCircles; i++) {\\r\\n\\t\\t\\tconst circleObject = this.circleObjects[i];\\r\\n\\t\\t\\topacity = (fadeIncrement * j++);\\r\\n\\t\\t\\tsetOpacity(circleObject.element, opacity);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction fade(circleObject: any) {\\r\\n\\tlet opacity = getOpacity(circleObject.element) - fadeIncrement;\\r\\n\\r\\n\\tif (opacity <= 0) {\\r\\n\\t\\topacity = 1;\\r\\n\\t}\\r\\n\\r\\n\\tsetOpacity(circleObject.element, opacity);\\r\\n}\\r\\n\\r\\nfunction getOpacity(element: HTMLDivElement) {\\r\\n\\treturn parseFloat(window.getComputedStyle(element).getPropertyValue(\\\"opacity\\\"));\\r\\n}\\r\\n\\r\\nfunction setOpacity(element: HTMLDivElement, opacity: number) {\\r\\n\\telement.style.opacity = opacity.toString();\\r\\n}\\r\\n\\r\\nfunction createCircle(): HTMLDivElement {\\r\\n\\tconst circle: HTMLDivElement = document.createElement(\\\"div\\\");\\r\\n\\tcircle.classList.add(Classes.SpinnerCircle);\\r\\n\\tcircle.style.width = circle.style.height = parentSize * offsetSize + \\\"px\\\";\\r\\n\\treturn circle;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var animationSpeed=(cov_lhh9zg3w0.s[0]++,90);var numCircles=(cov_lhh9zg3w0.s[1]++,8);var offsetSize=(cov_lhh9zg3w0.s[2]++,0.2);var parentSize=(cov_lhh9zg3w0.s[3]++,34);var fadeIncrement=(cov_lhh9zg3w0.s[4]++,1/numCircles);var Spinner=(cov_lhh9zg3w0.s[5]++,function(){cov_lhh9zg3w0.f[0]++;function Spinner(id){cov_lhh9zg3w0.f[1]++;cov_lhh9zg3w0.s[6]++;this.circleObjects=[];cov_lhh9zg3w0.s[7]++;this.spinnerId=id;cov_lhh9zg3w0.s[8]++;this.spinner=document.getElementById(this.spinnerId);cov_lhh9zg3w0.s[9]++;this.createCirclesAndArrange();cov_lhh9zg3w0.s[10]++;this.initializeOpacities();cov_lhh9zg3w0.s[11]++;this.start();cov_lhh9zg3w0.s[12]++;_Utils__WEBPACK_IMPORTED_MODULE_1__[\"setElementVisibility\"](id,true);}cov_lhh9zg3w0.s[13]++;Spinner.prototype.destroy=function(){cov_lhh9zg3w0.f[2]++;cov_lhh9zg3w0.s[14]++;_Utils__WEBPACK_IMPORTED_MODULE_1__[\"setElementVisibility\"](this.spinnerId,false);cov_lhh9zg3w0.s[15]++;this.stop();};cov_lhh9zg3w0.s[16]++;Spinner.prototype.start=function(){cov_lhh9zg3w0.f[3]++;var _this=(cov_lhh9zg3w0.s[17]++,this);cov_lhh9zg3w0.s[18]++;this.stop();cov_lhh9zg3w0.s[19]++;this.interval=setInterval(function(){cov_lhh9zg3w0.f[4]++;var i=(cov_lhh9zg3w0.s[20]++,_this.circleObjects.length);cov_lhh9zg3w0.s[21]++;while(i--){cov_lhh9zg3w0.s[22]++;fade(_this.circleObjects[i]);}},animationSpeed);};cov_lhh9zg3w0.s[23]++;Spinner.prototype.stop=function(){cov_lhh9zg3w0.f[5]++;cov_lhh9zg3w0.s[24]++;clearInterval(this.interval);};cov_lhh9zg3w0.s[25]++;Spinner.prototype.createCirclesAndArrange=function(){cov_lhh9zg3w0.f[6]++;var angle=(cov_lhh9zg3w0.s[26]++,0);var offset=(cov_lhh9zg3w0.s[27]++,parentSize*offsetSize);var step=(cov_lhh9zg3w0.s[28]++,2*Math.PI/numCircles);var i=(cov_lhh9zg3w0.s[29]++,numCircles);var circleObject;var radius=(cov_lhh9zg3w0.s[30]++,(parentSize-offset)*0.5);cov_lhh9zg3w0.s[31]++;while(i--){var circle=(cov_lhh9zg3w0.s[32]++,createCircle());var x=(cov_lhh9zg3w0.s[33]++,Math.round(parentSize*0.5+radius*Math.cos(angle)-circle.clientWidth*0.5)-offset*0.5);var y=(cov_lhh9zg3w0.s[34]++,Math.round(parentSize*0.5+radius*Math.sin(angle)-circle.clientHeight*0.5)-offset*0.5);cov_lhh9zg3w0.s[35]++;this.spinner.appendChild(circle);cov_lhh9zg3w0.s[36]++;circle.style.left=x+\"px\";cov_lhh9zg3w0.s[37]++;circle.style.top=y+\"px\";cov_lhh9zg3w0.s[38]++;angle+=step;cov_lhh9zg3w0.s[39]++;circleObject={element:circle,j:i};cov_lhh9zg3w0.s[40]++;this.circleObjects.push(circleObject);}};cov_lhh9zg3w0.s[41]++;Spinner.prototype.initializeOpacities=function(){cov_lhh9zg3w0.f[7]++;var i=(cov_lhh9zg3w0.s[42]++,0);var j=(cov_lhh9zg3w0.s[43]++,1);var opacity;cov_lhh9zg3w0.s[44]++;for(i;i void,\\r\\n\\tcvSurveyOptionalConfigParams?: ISurveyOptionalConfigParams,\\r\\n\\toverrideUXRenderCallbackAsync?: IOverrideRenderCallback,\\r\\n): ISurveyRenderContext {\\r\\n\\tonDismiss = function (submitted: boolean) {\\r\\n\\t\\tConfiguration.get().getFloodgateInitOptions().onDismiss(\\r\\n\\t\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tsubmitted\\r\\n\\t\\t);\\r\\n\\t\\tonClose();\\r\\n\\t};\\r\\n\\r\\n\\tif (overrideUXRenderCallbackAsync) {\\r\\n\\t\\tconst logCustomProps: Logging.ICustomProperties = {\\r\\n\\t\\t\\tCampaignId: Configuration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tSurveyId: Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tSurveyType: Configuration.get().getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\toverrideUXRenderCallbackAsync(contextParams)\\r\\n\\t\\t\\t.then(() => {\\r\\n\\t\\t\\t\\tinternal.logTelemetryEvent(Logging.EventIds.SURVEY_RENDER_OVERRIDE_SUCCESS, logCustomProps);\\r\\n\\t\\t\\t}).catch((ex) => {\\r\\n\\t\\t\\t\\tlogCustomProps.ErrorMessage = ex;\\r\\n\\t\\t\\t\\tinternal.logTelemetryEvent(Logging.EventIds.SURVEY_RENDER_OVERRIDE_ERROR, logCustomProps);\\r\\n\\t\\t\\t});\\r\\n\\t\\treturn {\\r\\n\\t\\t\\tupdateStyling: () => { return; },\\r\\n\\t\\t};\\r\\n\\t} else {\\r\\n\\t\\tconst renderContext: ISurveyRenderContext = renderCVSurvey(\\r\\n\\t\\t\\tIDs.ToastContainer,\\r\\n\\t\\t\\thandleSurveyEvent,\\r\\n\\t\\t\\tcontextParams,\\r\\n\\t\\t\\tcvSurveyOptionalConfigParams\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\tinternal.logTelemetryEvent(Logging.EventIds.SURVEY_UI_RENDER_CV_SURVEY_COMPLETED);\\r\\n\\t\\treturn renderContext;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * The default handler of events emitted by custom survey tools.\\r\\n * @param key an identifier for the event\\r\\n * @param data all data needed to process the event\\r\\n */\\r\\nexport const handleSurveyEvent: IHandleSurveyEvent = (\\r\\n\\tkey: SurveyEventKey,\\r\\n\\tdata: ISurveyEventData,\\r\\n): void => {\\r\\n\\tlet keyPrefix: string;\\r\\n\\tlet keyBase: string;\\r\\n\\tlet err = false;\\r\\n\\r\\n\\tconst splitKey: string[] = key.split(\\\"_\\\");\\r\\n\\tif (splitKey.length > 1) {\\r\\n\\t\\tkeyPrefix = splitKey[0];\\r\\n\\t\\tkeyBase = splitKey[1];\\r\\n\\t} else {\\r\\n\\t\\tkeyPrefix = \\\"Other\\\";\\r\\n\\t\\tkeyBase = splitKey[0];\\r\\n\\t}\\r\\n\\r\\n\\tswitch (keyPrefix) {\\r\\n\\t\\tcase \\\"CV\\\":\\r\\n\\t\\t\\tswitch (keyBase) {\\r\\n\\t\\t\\t\\tcase \\\"OnSubmit\\\": return onCVSubmit(data);\\r\\n\\t\\t\\t\\tcase \\\"OnCancel\\\": return onCVCancel(data);\\r\\n\\t\\t\\t\\tcase \\\"OnLoaded\\\": return onCVLoaded(data);\\r\\n\\t\\t\\t\\tcase \\\"OnLog\\\": return logGatecrashEvent(data);\\r\\n\\t\\t\\t\\tdefault: err = true;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tdefault: err = true;\\r\\n\\t}\\r\\n\\r\\n\\tif (err) {\\r\\n\\t\\tconst logCustomProps: Logging.ICustomProperties = {\\r\\n\\t\\t\\tCampaignId: Configuration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tSurveyId: Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tSurveyType: Configuration.get().getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t};\\r\\n\\t\\tinternal.logTelemetryEvent(Logging.EventIds.SURVEY_EVENT_KEY_ERROR, logCustomProps);\\r\\n\\t}\\r\\n};\\r\\n\\r\\n// Setting Rating field for SubmitData\\r\\nexport function getRating(values: ISurveyQuestionAnswer): number {\\r\\n\\treturn parseInt(values?.answerValue[0], 10) - 1;\\r\\n}\\r\\n\\r\\n// Setting QuestionValue field for SubmitData\\r\\nexport function getQuestionValue(values: ISurveyQuestionAnswer): string {\\r\\n\\treturn values?.questionValue;\\r\\n}\\r\\n\\r\\n// Setting AnswerValue field for SubmitData\\r\\nexport function getAnswerValue(values: ISurveyQuestionAnswer): string {\\r\\n\\treturn isNOU(values?.answerValue[0]) ? values?.answerValue[0] : `${values?.answerValue[0]}`;\\r\\n}\\r\\n\\r\\n// Setting InsightfulOptions for insightful field for SubmitData\\r\\nexport function getInsightfulOptions(values: ISurveyQuestionAnswer): string[] { // Evaluate\\r\\n\\treturn values?.insightfulQuestionOptions;\\r\\n}\\r\\n\\r\\n// Setting InsightfulAnswers for insightful field for SubmitData\\r\\nexport function getInsightfulAnswers(values: ISurveyQuestionAnswer): boolean[] { // Evaluate\\r\\n\\treturn values?.insightfulQuestionAnswers;\\r\\n}\\r\\n\\r\\nexport interface IFormattedData {\\r\\n\\trating: number;\\r\\n\\tcommentsCollection?: string[];\\r\\n\\temail?: string;\\r\\n\\tratingQuestion?: string;\\r\\n\\tratingsListLength: number;\\r\\n\\tpromptQuestion?: string;\\r\\n\\tpromptResponse?: string;\\r\\n\\tcommentTitlesCollection?: { question: string }[];\\r\\n\\tadditionalPromptQuestion?: string;\\r\\n\\tadditionalPromptResponse?: string;\\r\\n\\tinsightfulQuestionOptionsCollection?: { question: string, options: string[] }[];\\r\\n\\tinsightfulQuestionAnswersCollection?: boolean[][];\\r\\n}\\r\\n\\r\\n/* Traverses the CV Survey response object array and creates props for OCV Payload; \\r\\n * on the face of it though it is O(N^2) runtime complexity, \\r\\n * given the number of pages are only in finite number \\r\\n * (wouldn't expect more than 10 pages at most), this should still run in constant time. \\r\\n */\\r\\nexport function formatSubmitData(submitData: ISurveyEventData): IFormattedData {\\r\\n\\r\\n\\tlet rating: number;\\r\\n\\tconst commentsCollection: string[] = [];\\r\\n\\tlet email: string;\\r\\n\\tlet ratingQuestion: string;\\r\\n\\tlet ratingsListLength: number;\\r\\n\\tlet promptQuestion: string;\\r\\n\\tlet promptResponse: string;\\r\\n\\tconst commentTitlesCollection: { question: string }[] = [];\\r\\n\\tlet additionalPromptQuestion: string;\\r\\n\\tlet additionalPromptResponse: string;\\r\\n\\tconst insightfulQuestionOptionsCollection: { question: string, options: string[] }[] = [];\\r\\n\\tconst insightfulQuestionAnswersCollection: boolean[][] = [];\\r\\n\\tlet isFirstCommentValidated = false;\\r\\n\\tlet isFirstEmptyCommentAdded = false;\\r\\n\\r\\n\\tsubmitData.pageInfo?.forEach(currentPage => {\\r\\n\\r\\n\\t\\tcurrentPage.questionAnswers.forEach(values => {\\r\\n\\r\\n\\t\\t\\tswitch (values?.questionType) {\\r\\n\\r\\n\\t\\t\\t\\tcase QuestionType.Rating:\\r\\n\\r\\n\\t\\t\\t\\t\\trating = getRating(values);\\r\\n\\t\\t\\t\\t\\tratingQuestion = getQuestionValue(values);\\r\\n\\t\\t\\t\\t\\tratingsListLength = values.ratingsListLength;\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\tcase QuestionType.Prompt:\\r\\n\\r\\n\\t\\t\\t\\t\\tpromptQuestion = getQuestionValue(values);\\r\\n\\t\\t\\t\\t\\tpromptResponse = getAnswerValue(values);\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\r\\n\\t\\t\\t\\tcase QuestionType.Verbatim: {\\r\\n\\t\\t\\t\\t\\tconst commentResponse = getAnswerValue(values);\\r\\n\\t\\t\\t\\t\\tconst commentTitle = getQuestionValue(values);\\r\\n\\t\\t\\t\\t\\tconst cvSurveyHasPromptPage = !isNOU(promptResponse);\\r\\n\\t\\t\\t\\t\\tlet setCommentTitleAndValue = false;\\r\\n\\r\\n\\t\\t\\t\\t\\t// This is a workaround because the OCV schema presents issues in the comments values section\\r\\n\\t\\t\\t\\t\\t// when we send an array of null in the extended manifest data.\\r\\n\\t\\t\\t\\t\\t// We will update this logic once the OCV team delivers the fix.\\r\\n\\t\\t\\t\\t\\tif (isFirstCommentValidated) {\\r\\n\\t\\t\\t\\t\\t\\tif (\\r\\n\\t\\t\\t\\t\\t\\t\\t!cvSurveyHasPromptPage &&\\r\\n\\t\\t\\t\\t\\t\\t\\tsubmitData.pageNumber !== \\\"1\\\" &&\\r\\n\\t\\t\\t\\t\\t\\t\\tisNOU(firstCommentResponse) &&\\r\\n\\t\\t\\t\\t\\t\\t\\t!isFirstEmptyCommentAdded\\r\\n\\t\\t\\t\\t\\t\\t) {\\r\\n\\t\\t\\t\\t\\t\\t\\tcommentTitlesCollection.push({ question: firstCommentTitle });\\r\\n\\t\\t\\t\\t\\t\\t\\tcommentsCollection.push(\\\" \\\");\\r\\n\\t\\t\\t\\t\\t\\t\\tisFirstEmptyCommentAdded = true;\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t\\tsetCommentTitleAndValue = cvSurveyHasPromptPage || submitData.pageNumber !== \\\"1\\\";\\r\\n\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\tfirstCommentResponse = commentResponse;\\r\\n\\t\\t\\t\\t\\t\\tfirstCommentTitle = commentTitle;\\r\\n\\t\\t\\t\\t\\t\\tisFirstCommentValidated = true;\\r\\n\\t\\t\\t\\t\\t\\tsetCommentTitleAndValue = cvSurveyHasPromptPage || !isNOU(firstCommentResponse);\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\tif (setCommentTitleAndValue) {\\r\\n\\t\\t\\t\\t\\t\\tcommentTitlesCollection.push({ question: commentTitle });\\r\\n\\t\\t\\t\\t\\t\\tcommentsCollection.push(isNOU(commentResponse) ? \\\" \\\" : commentResponse);\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\t\\t\\t\\t}\\r\\n\\r\\n\\t\\t\\t\\tcase QuestionType.Email:\\r\\n\\t\\t\\t\\t\\temail = getAnswerValue(values);\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\r\\n\\t\\t\\t\\tcase QuestionType.AdditionalQuestion:\\r\\n\\r\\n\\t\\t\\t\\t\\tadditionalPromptQuestion = getQuestionValue(values);\\r\\n\\t\\t\\t\\t\\tadditionalPromptResponse = getAnswerValue(values);\\r\\n\\r\\n\\t\\t\\t\\t\\tbreak;\\r\\n\\r\\n\\t\\t\\t\\tcase QuestionType.ContactMe:\\r\\n\\t\\t\\t\\tdefault:\\r\\n\\r\\n\\t\\t\\t\\t\\tinsightfulQuestionOptionsCollection.push(\\r\\n\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\tquestion: (values?.questionType === QuestionType.ContactMe) ? QuestionType.ContactMe : getQuestionValue(values),\\r\\n\\t\\t\\t\\t\\t\\t\\toptions: getInsightfulOptions(values),\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t);\\r\\n\\r\\n\\t\\t\\t\\t\\tinsightfulQuestionAnswersCollection.push(getInsightfulAnswers(values));\\r\\n\\r\\n\\t\\t\\t}\\r\\n\\r\\n\\t\\t});\\r\\n\\r\\n\\t});\\r\\n\\r\\n\\tconst formattedData: IFormattedData = {\\r\\n\\t\\trating,\\r\\n\\t\\tratingQuestion,\\r\\n\\t\\tratingsListLength,\\r\\n\\t\\temail,\\r\\n\\t\\tcommentsCollection,\\r\\n\\t\\tcommentTitlesCollection,\\r\\n\\t\\tpromptQuestion,\\r\\n\\t\\tpromptResponse,\\r\\n\\t\\tadditionalPromptQuestion,\\r\\n\\t\\tadditionalPromptResponse,\\r\\n\\t\\tinsightfulQuestionOptionsCollection,\\r\\n\\t\\tinsightfulQuestionAnswersCollection,\\r\\n\\t};\\r\\n\\r\\n\\treturn formattedData;\\r\\n}\\r\\n\\r\\nfunction updateExtendedManifestData(transporter: Transporter, formattedData: IFormattedData): string {\\r\\n\\tlet commentValues: string[];\\r\\n\\tlet commentTitles: { question: string }[] = [];\\r\\n\\r\\n\\tif (formattedData.commentsCollection.length > 0) {\\r\\n\\t\\tcommentValues = formattedData.commentsCollection;\\r\\n\\t\\tcommentTitles = formattedData.commentTitlesCollection;\\r\\n\\t}\\r\\n\\r\\n\\t/* Titles */\\r\\n\\tconst extendedManifestData = JSON.parse(transporter.getExtendedManifestData()) as any;\\r\\n\\textendedManifestData.surveyStrings = JSON.stringify({\\r\\n\\t\\tprompt: { title: \\\"\\\", question: formattedData?.promptQuestion, yesButtonText: \\\"YES\\\", noButtonText: \\\"NO\\\" },\\r\\n\\t\\trating: [{ question: formattedData?.ratingQuestion, options: [] }],\\r\\n\\t\\tcomment: commentTitles,\\r\\n\\t\\tmultipleChoice: formattedData.insightfulQuestionOptionsCollection,\\r\\n\\t});\\r\\n\\t/* Values */\\r\\n\\textendedManifestData.surveySpecificData = JSON.stringify({\\r\\n\\t\\trating: [{ numberOfOptions: formattedData.ratingsListLength, selectedRating: formattedData.rating }],\\r\\n\\t\\tcomment: commentValues,\\r\\n\\t\\tmultipleChoice: formattedData.insightfulQuestionAnswersCollection,\\r\\n\\t});\\r\\n\\ttransporter.setExtendedManifestData(JSON.stringify(extendedManifestData));\\r\\n\\treturn extendedManifestData;\\r\\n}\\r\\n\\r\\nfunction updateAppData(): string {\\r\\n\\tconst appData = Configuration.get().getCommonInitOptions().applicationGroup.appData;\\r\\n\\tconst appDataValues: unknown[] = [];\\r\\n\\r\\n\\t// To differentiate CV survey responses from other surveys given the flight object in OCV gets trimmed, this is a workaround for now.\\r\\n\\tconst cvSurveyInfo: ISurveyPayloadAdditionalInfo = {\\r\\n\\t\\tadditionalInfo: {\\r\\n\\t\\t\\tSurveyDescription: customerVoiceSurveyUX,\\r\\n\\t\\t\\tFlight: Configuration.get().getCVSurveyFlights(),\\r\\n\\t\\t\\tIsCopilotLicenseEnabled: Configuration.get().isCopilotLicenseEnabled().toString()\\r\\n\\t\\t},\\r\\n\\t};\\r\\n\\r\\n\\tif (isNOU(appData)) {\\r\\n\\t\\tappDataValues.push({});\\r\\n\\t} else {\\r\\n\\t\\ttry {\\r\\n\\t\\t\\tappDataValues.push(JSON.parse(appData));\\r\\n\\t\\t} catch (ex) {\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.APPDATA_JSON_PARSE_ERROR);\\r\\n\\t\\t\\tappDataValues.push({});\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\r\\n\\tappDataValues.push(cvSurveyInfo);\\r\\n\\treturn JSON.stringify(appDataValues);\\r\\n}\\r\\n\\r\\nfunction setTransporterValues(transporter: Transporter, formattedData: IFormattedData): Transporter {\\r\\n\\ttransporter.setManifestValues(Configuration.get().getFloodgateSurvey().getJsonElements());\\r\\n\\tupdateExtendedManifestData(transporter, formattedData);\\r\\n\\r\\n\\tif (formattedData.email) {\\r\\n\\t\\ttransporter.setEmail(formattedData.email);\\r\\n\\t}\\r\\n\\tconst appData = updateAppData();\\r\\n\\ttransporter.setAppData(appData);\\r\\n\\r\\n\\tconst preGeneratedId = Configuration.get().getFloodgateSurvey().getPreGeneratedClientFeedbackId();\\r\\n\\tif (preGeneratedId) {\\r\\n\\t\\ttransporter.setClientFeedbackId(preGeneratedId);\\r\\n\\t}\\r\\n\\r\\n\\treturn transporter;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Call-back function when user sends feedback from Customer Voice survey experience.\\r\\n * \\r\\n * IMPORTANT: This callback should contain no references to any survey UI\\r\\n * nor DOM elements. This restriction supports multi-window environments\\r\\n * where rendering is happening in a different context than these callbacks.\\r\\n *\\r\\n * View the design document explaining multi-window support changes here:\\r\\n * https://microsoft-my.sharepoint.com/:w:/p/joshdunning/EWghU_fNcrpAseOemGqOO2QBBNaRz_wZDyEL0ZewuXwKtw?e=gi7P1a\\r\\n */\\r\\nfunction onCVSubmit(data: ISurveyEventData): void {\\r\\n\\ttry {\\r\\n\\r\\n\\t\\tconst formattedData = formatSubmitData(data);\\r\\n\\t\\tconst { rating, promptResponse, additionalPromptResponse } = formattedData;\\r\\n\\r\\n\\t\\tconst isPromptAnswerLogMandatory: boolean = validateLogPromptAnswer(promptResponse, additionalPromptResponse);\\r\\n\\t\\t// onCVSubmit is called twice when the user clicks NotNow an ICM was created for the CV team to avoid this behavior\\r\\n\\t\\tif (isPromptAnswerLogMandatory) {\\r\\n\\t\\t\\treturn;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\t// clientfeedback id to overwrite\\r\\n\\t\\tconst transporter: Transporter = new Transporter(\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().environment,\\r\\n\\t\\t\\tApi.SurveyType[Configuration.get().getFloodgateSurvey().getSurveyType()],\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().appId,\\r\\n\\t\\t\\t\\\"Survey\\\",\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().applicationGroup,\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().telemetryGroup,\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().webGroup,\\r\\n\\t\\t);\\r\\n\\r\\n\\t\\tconst comment = isNOU(firstCommentResponse) ? null : firstCommentResponse;\\r\\n\\t\\tConfiguration.get().getFloodgateSurvey().setValues(Number(rating), comment ? comment : null);\\r\\n\\t\\tsetTransporterValues(transporter, formattedData);\\r\\n\\t\\ttransporter.submit();\\r\\n\\r\\n\\t\\tif (\\r\\n\\t\\t\\tdata.eventType === EventType.FormPartialResponseSubmitted ||\\r\\n\\t\\t\\tdata.eventType === EventType.FormResponseSubmitted\\r\\n\\t\\t) {\\r\\n\\t\\t\\t// Toggle OnDismissFlag when data is submitted to OCV\\r\\n\\t\\t\\tonDismissFlag = true;\\r\\n\\t\\t\\tif (hasSubmittedData) {\\r\\n\\t\\t\\t\\tLogging.EventIds.SURVEY_UI_FORM_SECONDARY_SUBMIT.name =\\r\\n\\t\\t\\t\\t\\tSurveyUIFormSecondarySubmitName + data.pageNumber;\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SECONDARY_SUBMIT);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SUBMIT);\\r\\n\\t\\t\\t\\thasSubmittedData = true;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\r\\n\\t} catch (ex) {\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SUBMIT_ERROR);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction validateLogPromptAnswer(promptResponse: string, additionalPromptResponse: string): boolean {\\r\\n\\tlet isPromptAnswerLogNeeded = false;\\r\\n\\tlet isPromptAnswerNo = false;\\r\\n\\tif (!isNOU(promptResponse)) {\\r\\n\\t\\tisPromptAnswerLogNeeded = LogPromptAnswer(promptResponse, QuestionType.Prompt, isPromptResponseLogValidated);\\r\\n\\t\\tisPromptAnswerNo = promptResponse === PromptConstants.No;\\r\\n\\t}\\r\\n\\r\\n\\tif (!isNOU(additionalPromptResponse)) {\\r\\n\\t\\tisPromptAnswerLogNeeded = LogPromptAnswer(additionalPromptResponse,\\r\\n\\t\\t\\tQuestionType.AdditionalQuestion, isAdditionalPromptResponseLogValidated);\\r\\n\\t\\tisPromptAnswerNo = additionalPromptResponse === PromptConstants.No;\\r\\n\\t}\\r\\n\\r\\n\\treturn isPromptAnswerLogNeeded || isPromptAnswerNo;\\r\\n}\\r\\n\\r\\nfunction LogPromptAnswer(promptResponse: string, questionType: string, isPromptAnswerLogged: boolean): boolean {\\r\\n\\r\\n\\tif (!isPromptAnswerLogged) {\\r\\n\\r\\n\\t\\tlet promptMessageClicked;\\r\\n\\t\\tlet promptMessageClosed;\\r\\n\\t\\tif (questionType === QuestionType.Prompt) {\\r\\n\\t\\t\\tisPromptResponseLogValidated = true;\\r\\n\\t\\t\\tpromptMessageClicked = Logging.EventIds.SURVEY_UI_PROMPT_CLICKED;\\r\\n\\t\\t\\tpromptMessageClosed = Logging.EventIds.SURVEY_UI_PROMPT_USERCLOSED;\\r\\n\\t\\t\\tif ((promptResponse === PromptConstants.Yes)) {\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SHOWN);\\r\\n\\t\\t\\t}\\r\\n\\t\\t} else {\\r\\n\\t\\t\\tisAdditionalPromptResponseLogValidated = true;\\r\\n\\t\\t\\tpromptMessageClicked = Logging.EventIds.SURVEY_UI_ADDITIONALPROMPT_CLICKED;\\r\\n\\t\\t\\tpromptMessageClosed = Logging.EventIds.SURVEY_UI_ADDITIONALPROMPT_USERCLOSED;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tlogTelemetryEvent(promptResponse === PromptConstants.No ? promptMessageClosed : promptMessageClicked);\\r\\n\\r\\n\\t\\treturn true;\\r\\n\\t}\\r\\n\\treturn false;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Call-back function when user cancels feedback from Customer Voice survey experience.\\r\\n * \\r\\n * IMPORTANT: This callback should contain no references to any survey UI\\r\\n * nor DOM elements. This restriction supports multi-window environments\\r\\n * where rendering is happening in a different context than these callbacks.\\r\\n *\\r\\n * View the design document explaining multi-window support changes here:\\r\\n * https://microsoft-my.sharepoint.com/:w:/p/joshdunning/EWghU_fNcrpAseOemGqOO2QBBNaRz_wZDyEL0ZewuXwKtw?e=gi7P1a\\r\\n */\\r\\nfunction onCVCancel(data: ISurveyEventData): void {\\r\\n\\tswitch (data.eventType) {\\r\\n\\t\\tcase EventType.FormClosed:\\r\\n\\t\\t\\tif (isNOU(data.pageNumber)) {\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_USERCLOSED);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tLogging.EventIds.SURVEY_UI_FORM_USERCLOSED.name = SurveyUIFormUserClosedName + data.pageNumber.charAt(data.pageNumber.length - 1);\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_USERCLOSED);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.ThankYouPageClosed:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_THANKYOUPAGE_USERCLOSED);\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.PromptClosed:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_USERCLOSED);\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.AdditionalPromptClosed:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_ADDITIONALPROMPT_USERCLOSED);\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.FormAutoDismissed:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_AUTODISMISSED);\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.ThankYouPageAutoDismissed:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_THANKYOUPAGE_AUTODISMISSED);\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase EventType.FormResponseCanceled:\\r\\n\\t\\t\\tif (isNOU(data.pageNumber)) {\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_USERCLOSED);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tLogging.EventIds.SURVEY_UI_FORM_USERCLOSED.name = SurveyUIFormUserClosedName + data.pageNumber?.charAt(data.pageNumber.length - 1);\\r\\n\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_USERCLOSED);\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tdefault:\\r\\n\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_NO_RETURN_TYPE);\\r\\n\\t\\t\\tbreak;\\r\\n\\t}\\r\\n\\r\\n\\tonDismiss(onDismissFlag);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Call-back function when user Customer Voice survey is loaded and ready for showing to the user.\\r\\n * Here we are going to hide the survey if the current survey is the dispatcher survey.\\r\\n * First if the dispacther survey is called, the hasSurveyDispatcher parameter will be true.\\r\\n * And second, dispatcher survey will be the first survey in the survey dispatcher logic. So, we using \\r\\n * hasLoadedDispatcher to make sure we will only hide the first survey in the whole survey dispatcher logic\\r\\n * which is the dispatcher survey.\\r\\n * \\r\\n * IMPORTANT: This callback should contain no references to any survey UI\\r\\n * nor DOM elements. This restriction supports multi-window environments\\r\\n * where rendering is happening in a different context than these callbacks.\\r\\n *\\r\\n * View the design document explaining multi-window support changes here:\\r\\n * https://microsoft-my.sharepoint.com/:w:/p/joshdunning/EWghU_fNcrpAseOemGqOO2QBBNaRz_wZDyEL0ZewuXwKtw?e=gi7P1a\\r\\n */\\r\\nfunction onCVLoaded(data: ISurveyEventData): void {\\r\\n\\tdata.eventId = Logging.EventIds.SURVEY_UI_FORM_SHOWN;\\r\\n\\r\\n\\tif (data.hasSurveyDispatcher) {\\r\\n\\t\\tdata.eventId = Logging.EventIds.SURVEY_UI_FORM_DISPATCHER_IMPLEMENTED;\\r\\n\\t} else if (data.hasSurveyPromptShown) {\\r\\n\\t\\tdata.eventId = Logging.EventIds.SURVEY_UI_PROMPT_SHOWN;\\r\\n\\t}\\r\\n\\r\\n\\tlogGatecrashEvent(data);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Call-back logging function for gatecrash errors and gatecrash events.\\r\\n * \\r\\n * IMPORTANT: This callback should contain no references to any survey UI\\r\\n * nor DOM elements. This restriction supports multi-window environments\\r\\n * where rendering is happening in a different context than these callbacks.\\r\\n *\\r\\n * View the design document explaining multi-window support changes here:\\r\\n * https://microsoft-my.sharepoint.com/:w:/p/joshdunning/EWghU_fNcrpAseOemGqOO2QBBNaRz_wZDyEL0ZewuXwKtw?e=gi7P1a\\r\\n */\\r\\nfunction logGatecrashEvent(data: ISurveyEventData): void {\\r\\n\\tconst configuration = Configuration.get();\\r\\n\\tconst logCustomProps: Logging.ICustomProperties = {\\r\\n\\t\\tTimeMilliseconds: data.TimeMilliseconds,\\r\\n\\t\\tCampaignId: configuration.getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\tSurveyId: configuration.getFloodgateSurvey().getId(),\\r\\n\\t\\tSurveyType: configuration.getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\tErrorMessage: data.customProperties?.ErrorMessage ? data.customProperties?.ErrorMessage : null,\\r\\n\\t\\tMessage: data.customProperties?.Message ? data.customProperties?.Message : null,\\r\\n\\t};\\r\\n\\r\\n\\tlogTelemetryEvent(data.eventId, logCustomProps);\\r\\n}\\r\\n\\r\\n// Log Telemetry for Customer Voice survey funnel.\\r\\nfunction logTelemetryEvent(eventId: Logging.IEventId, customProperties?: Logging.ICustomProperties): void {\\r\\n\\tconst configuration = Configuration.get();\\r\\n\\tlet logCustomProps: Logging.ICustomProperties;\\r\\n\\tif (!customProperties) {\\r\\n\\t\\tlogCustomProps = {\\r\\n\\t\\t\\tCampaignId: configuration.getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tSurveyId: configuration.getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tSurveyType: configuration.getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t\\tClientFeedbackId: Configuration.get().getFloodgateSurvey().getPreGeneratedClientFeedbackId(),\\r\\n\\t\\t\\tCVFormId: configuration.getFloodgateSurvey().getCVSurveyFormId(),\\r\\n\\t\\t};\\r\\n\\t} else {\\r\\n\\t\\tlogCustomProps = customProperties;\\r\\n\\t}\\r\\n\\r\\n\\tLogging.getLogger().logEvent(\\r\\n\\t\\teventId,\\r\\n\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\tlogCustomProps\\r\\n\\t);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Take a dictionary of CSS variables or HTML data attributes and pass them to the CV iframe for injection.\\r\\n * This allows dynamic CSS changes within CV survey at runtime.\\r\\n * \\r\\n * NOTE: All \\\"runtime\\\" CSS variable keys must be prefixed with \\\"--rt\\\", and HTML data attributes must be prefixed\\r\\n * with \\\"data-rt\\\", otherwise CV will reject them.\\r\\n *\\r\\n * Example - CSS Variables\\r\\n * -----------------------\\r\\n * Input dict:\\r\\n * { \\\"--rt-background-color\\\": \\\"black\\\" }\\r\\n *\\r\\n * Result (in CV CSS file):\\r\\n * :root {\\r\\n * --rt-background-color: black;\\r\\n * }\\r\\n *\\r\\n * Usage (in CV CSS file):\\r\\n * .some-css-selector {\\r\\n * background-color: var(--rt-background-color);\\r\\n * }\\r\\n * \\r\\n * Example - HTML Data Attributes\\r\\n * ------------------------------\\r\\n * Input dict:\\r\\n * { \\\"data-rt-theme-color\\\": \\\"dark\\\" }\\r\\n *\\r\\n * Result (in CV HTML):\\r\\n * ... \\r\\n *\\r\\n * Usage (in CV CSS file):\\r\\n * [data-rt-theme-color=\\\"dark\\\"].some-css-selector {\\r\\n * background-color: black;\\r\\n * color: white;\\r\\n * border; 2px solid white;\\r\\n * }\\r\\n *\\r\\n * @param {{ [key: string]: string }} cssVars - Dictionary of HTML data attributes (key: val) to be injected\\r\\n * Leave empty ({}) if only injecting HTML data attributes\\r\\n * @param {{ [key: string]: string }} htmlDataAttrs - Dictionary of HTML data attributes (key: val) to be injected\\r\\n * Leave empty ({}) if only injecting CSS vars\\r\\n */\\r\\nexport function updateSurveyStyling(cssVars: { [key: string]: string }, htmlDataAttrs: { [key: string]: string }): void {\\r\\n\\tconst renderContext: ISurveyRenderContext | null = Configuration.get().getCVRenderContext();\\r\\n\\tif (renderContext) {\\r\\n\\t\\trenderContext.updateStyling(cssVars, htmlDataAttrs);\\r\\n\\t} else {\\r\\n\\t\\tconst logCustomProps: Logging.ICustomProperties = {\\r\\n\\t\\t\\tCampaignId: Configuration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tSurveyId: Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tSurveyType: Configuration.get().getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tinternal.logTelemetryEvent(Logging.EventIds.SURVEY_RENDER_CONTEXT_ERROR, logCustomProps);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nconst internal = {\\r\\n\\tlogTelemetryEvent,\\r\\n};\\r\\n\\r\\nexport const { internal: unitTestExports } = { internal };\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var onDismiss;var onDismissFlag=(cov_87yjgfnc8.s[0]++,false);var isPromptResponseLogValidated=(cov_87yjgfnc8.s[1]++,false);var isAdditionalPromptResponseLogValidated=(cov_87yjgfnc8.s[2]++,false);var hasSubmittedData=(cov_87yjgfnc8.s[3]++,false);var SurveyUIFormSecondarySubmitName=(cov_87yjgfnc8.s[4]++,\"Survey_UI_Form_Secondary_Submit_Page_Number_\");var SurveyUIFormUserClosedName=(cov_87yjgfnc8.s[5]++,\"Survey_UI_Form_UserClosed_Page_Number_\");var firstCommentResponse=(cov_87yjgfnc8.s[6]++,null);var firstCommentTitle=(cov_87yjgfnc8.s[7]++,\"\");function createCVSurvey(contextParams,onClose,cvSurveyOptionalConfigParams,overrideUXRenderCallbackAsync){cov_87yjgfnc8.f[0]++;cov_87yjgfnc8.s[8]++;onDismiss=function(submitted){cov_87yjgfnc8.f[1]++;cov_87yjgfnc8.s[9]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateInitOptions().onDismiss(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getCampaignId(),submitted);cov_87yjgfnc8.s[10]++;onClose();};cov_87yjgfnc8.s[11]++;if(overrideUXRenderCallbackAsync){cov_87yjgfnc8.b[0][0]++;var logCustomProps_1=(cov_87yjgfnc8.s[12]++,{CampaignId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getCampaignId(),SurveyId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getId(),SurveyType:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getSurveyType()});cov_87yjgfnc8.s[13]++;overrideUXRenderCallbackAsync(contextParams).then(function(){cov_87yjgfnc8.f[2]++;cov_87yjgfnc8.s[14]++;internal.logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_RENDER_OVERRIDE_SUCCESS,logCustomProps_1);}).catch(function(ex){cov_87yjgfnc8.f[3]++;cov_87yjgfnc8.s[15]++;logCustomProps_1.ErrorMessage=ex;cov_87yjgfnc8.s[16]++;internal.logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_RENDER_OVERRIDE_ERROR,logCustomProps_1);});cov_87yjgfnc8.s[17]++;return{updateStyling:function(){cov_87yjgfnc8.f[4]++;cov_87yjgfnc8.s[18]++;return;}};}else{cov_87yjgfnc8.b[0][1]++;var renderContext=(cov_87yjgfnc8.s[19]++,Object(gatecrash__WEBPACK_IMPORTED_MODULE_4__[\"renderCVSurvey\"])(_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"IDs\"].ToastContainer,handleSurveyEvent,contextParams,cvSurveyOptionalConfigParams));cov_87yjgfnc8.s[20]++;internal.logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_RENDER_CV_SURVEY_COMPLETED);cov_87yjgfnc8.s[21]++;return renderContext;}}cov_87yjgfnc8.s[22]++;var handleSurveyEvent=function(key,data){cov_87yjgfnc8.f[5]++;var keyPrefix;var keyBase;var err=(cov_87yjgfnc8.s[23]++,false);var splitKey=(cov_87yjgfnc8.s[24]++,key.split(\"_\"));cov_87yjgfnc8.s[25]++;if(splitKey.length>1){cov_87yjgfnc8.b[1][0]++;cov_87yjgfnc8.s[26]++;keyPrefix=splitKey[0];cov_87yjgfnc8.s[27]++;keyBase=splitKey[1];}else{cov_87yjgfnc8.b[1][1]++;cov_87yjgfnc8.s[28]++;keyPrefix=\"Other\";cov_87yjgfnc8.s[29]++;keyBase=splitKey[0];}cov_87yjgfnc8.s[30]++;switch(keyPrefix){case\"CV\":cov_87yjgfnc8.b[2][0]++;cov_87yjgfnc8.s[31]++;switch(keyBase){case\"OnSubmit\":cov_87yjgfnc8.b[3][0]++;cov_87yjgfnc8.s[32]++;return onCVSubmit(data);case\"OnCancel\":cov_87yjgfnc8.b[3][1]++;cov_87yjgfnc8.s[33]++;return onCVCancel(data);case\"OnLoaded\":cov_87yjgfnc8.b[3][2]++;cov_87yjgfnc8.s[34]++;return onCVLoaded(data);case\"OnLog\":cov_87yjgfnc8.b[3][3]++;cov_87yjgfnc8.s[35]++;return logGatecrashEvent(data);default:cov_87yjgfnc8.b[3][4]++;cov_87yjgfnc8.s[36]++;err=true;}cov_87yjgfnc8.s[37]++;break;default:cov_87yjgfnc8.b[2][1]++;cov_87yjgfnc8.s[38]++;err=true;}cov_87yjgfnc8.s[39]++;if(err){cov_87yjgfnc8.b[4][0]++;var logCustomProps=(cov_87yjgfnc8.s[40]++,{CampaignId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getCampaignId(),SurveyId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getId(),SurveyType:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getSurveyType()});cov_87yjgfnc8.s[41]++;internal.logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_EVENT_KEY_ERROR,logCustomProps);}else{cov_87yjgfnc8.b[4][1]++;}};function getRating(values){cov_87yjgfnc8.f[6]++;cov_87yjgfnc8.s[42]++;return parseInt((cov_87yjgfnc8.b[6][0]++,values===null)||(cov_87yjgfnc8.b[6][1]++,values===void 0)?(cov_87yjgfnc8.b[5][0]++,void 0):(cov_87yjgfnc8.b[5][1]++,values.answerValue[0]),10)-1;}function getQuestionValue(values){cov_87yjgfnc8.f[7]++;cov_87yjgfnc8.s[43]++;return(cov_87yjgfnc8.b[8][0]++,values===null)||(cov_87yjgfnc8.b[8][1]++,values===void 0)?(cov_87yjgfnc8.b[7][0]++,void 0):(cov_87yjgfnc8.b[7][1]++,values.questionValue);}function getAnswerValue(values){cov_87yjgfnc8.f[8]++;cov_87yjgfnc8.s[44]++;return Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])((cov_87yjgfnc8.b[11][0]++,values===null)||(cov_87yjgfnc8.b[11][1]++,values===void 0)?(cov_87yjgfnc8.b[10][0]++,void 0):(cov_87yjgfnc8.b[10][1]++,values.answerValue[0]))?(cov_87yjgfnc8.b[9][0]++,(cov_87yjgfnc8.b[13][0]++,values===null)||(cov_87yjgfnc8.b[13][1]++,values===void 0)?(cov_87yjgfnc8.b[12][0]++,void 0):(cov_87yjgfnc8.b[12][1]++,values.answerValue[0])):(cov_87yjgfnc8.b[9][1]++,\"\".concat((cov_87yjgfnc8.b[15][0]++,values===null)||(cov_87yjgfnc8.b[15][1]++,values===void 0)?(cov_87yjgfnc8.b[14][0]++,void 0):(cov_87yjgfnc8.b[14][1]++,values.answerValue[0])));}function getInsightfulOptions(values){cov_87yjgfnc8.f[9]++;cov_87yjgfnc8.s[45]++;return(cov_87yjgfnc8.b[17][0]++,values===null)||(cov_87yjgfnc8.b[17][1]++,values===void 0)?(cov_87yjgfnc8.b[16][0]++,void 0):(cov_87yjgfnc8.b[16][1]++,values.insightfulQuestionOptions);}function getInsightfulAnswers(values){cov_87yjgfnc8.f[10]++;cov_87yjgfnc8.s[46]++;return(cov_87yjgfnc8.b[19][0]++,values===null)||(cov_87yjgfnc8.b[19][1]++,values===void 0)?(cov_87yjgfnc8.b[18][0]++,void 0):(cov_87yjgfnc8.b[18][1]++,values.insightfulQuestionAnswers);}function formatSubmitData(submitData){cov_87yjgfnc8.f[11]++;var _a;var rating;var commentsCollection=(cov_87yjgfnc8.s[47]++,[]);var email;var ratingQuestion;var ratingsListLength;var promptQuestion;var promptResponse;var commentTitlesCollection=(cov_87yjgfnc8.s[48]++,[]);var additionalPromptQuestion;var additionalPromptResponse;var insightfulQuestionOptionsCollection=(cov_87yjgfnc8.s[49]++,[]);var insightfulQuestionAnswersCollection=(cov_87yjgfnc8.s[50]++,[]);var isFirstCommentValidated=(cov_87yjgfnc8.s[51]++,false);var isFirstEmptyCommentAdded=(cov_87yjgfnc8.s[52]++,false);cov_87yjgfnc8.s[53]++;(cov_87yjgfnc8.b[21][0]++,(_a=submitData.pageInfo)===null)||(cov_87yjgfnc8.b[21][1]++,_a===void 0)?(cov_87yjgfnc8.b[20][0]++,void 0):(cov_87yjgfnc8.b[20][1]++,_a.forEach(function(currentPage){cov_87yjgfnc8.f[12]++;cov_87yjgfnc8.s[54]++;currentPage.questionAnswers.forEach(function(values){cov_87yjgfnc8.f[13]++;cov_87yjgfnc8.s[55]++;switch((cov_87yjgfnc8.b[24][0]++,values===null)||(cov_87yjgfnc8.b[24][1]++,values===void 0)?(cov_87yjgfnc8.b[23][0]++,void 0):(cov_87yjgfnc8.b[23][1]++,values.questionType)){case\"rating\":cov_87yjgfnc8.b[22][0]++;cov_87yjgfnc8.s[56]++;rating=getRating(values);cov_87yjgfnc8.s[57]++;ratingQuestion=getQuestionValue(values);cov_87yjgfnc8.s[58]++;ratingsListLength=values.ratingsListLength;cov_87yjgfnc8.s[59]++;break;case\"prompt\":cov_87yjgfnc8.b[22][1]++;cov_87yjgfnc8.s[60]++;promptQuestion=getQuestionValue(values);cov_87yjgfnc8.s[61]++;promptResponse=getAnswerValue(values);cov_87yjgfnc8.s[62]++;break;case\"verbatim\":cov_87yjgfnc8.b[22][2]++;{var commentResponse=(cov_87yjgfnc8.s[63]++,getAnswerValue(values));var commentTitle=(cov_87yjgfnc8.s[64]++,getQuestionValue(values));var cvSurveyHasPromptPage=(cov_87yjgfnc8.s[65]++,!Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(promptResponse));var setCommentTitleAndValue=(cov_87yjgfnc8.s[66]++,false);cov_87yjgfnc8.s[67]++;if(isFirstCommentValidated){cov_87yjgfnc8.b[25][0]++;cov_87yjgfnc8.s[68]++;if((cov_87yjgfnc8.b[27][0]++,!cvSurveyHasPromptPage)&&(cov_87yjgfnc8.b[27][1]++,submitData.pageNumber!==\"1\")&&(cov_87yjgfnc8.b[27][2]++,Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(firstCommentResponse))&&(cov_87yjgfnc8.b[27][3]++,!isFirstEmptyCommentAdded)){cov_87yjgfnc8.b[26][0]++;cov_87yjgfnc8.s[69]++;commentTitlesCollection.push({question:firstCommentTitle});cov_87yjgfnc8.s[70]++;commentsCollection.push(\" \");cov_87yjgfnc8.s[71]++;isFirstEmptyCommentAdded=true;}else{cov_87yjgfnc8.b[26][1]++;}cov_87yjgfnc8.s[72]++;setCommentTitleAndValue=(cov_87yjgfnc8.b[28][0]++,cvSurveyHasPromptPage)||(cov_87yjgfnc8.b[28][1]++,submitData.pageNumber!==\"1\");}else{cov_87yjgfnc8.b[25][1]++;cov_87yjgfnc8.s[73]++;firstCommentResponse=commentResponse;cov_87yjgfnc8.s[74]++;firstCommentTitle=commentTitle;cov_87yjgfnc8.s[75]++;isFirstCommentValidated=true;cov_87yjgfnc8.s[76]++;setCommentTitleAndValue=(cov_87yjgfnc8.b[29][0]++,cvSurveyHasPromptPage)||(cov_87yjgfnc8.b[29][1]++,!Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(firstCommentResponse));}cov_87yjgfnc8.s[77]++;if(setCommentTitleAndValue){cov_87yjgfnc8.b[30][0]++;cov_87yjgfnc8.s[78]++;commentTitlesCollection.push({question:commentTitle});cov_87yjgfnc8.s[79]++;commentsCollection.push(Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(commentResponse)?(cov_87yjgfnc8.b[31][0]++,\" \"):(cov_87yjgfnc8.b[31][1]++,commentResponse));}else{cov_87yjgfnc8.b[30][1]++;}cov_87yjgfnc8.s[80]++;break;}case\"email\":cov_87yjgfnc8.b[22][3]++;cov_87yjgfnc8.s[81]++;email=getAnswerValue(values);cov_87yjgfnc8.s[82]++;break;case\"additional\":cov_87yjgfnc8.b[22][4]++;cov_87yjgfnc8.s[83]++;additionalPromptQuestion=getQuestionValue(values);cov_87yjgfnc8.s[84]++;additionalPromptResponse=getAnswerValue(values);cov_87yjgfnc8.s[85]++;break;case\"contactme\":cov_87yjgfnc8.b[22][5]++;default:cov_87yjgfnc8.b[22][6]++;cov_87yjgfnc8.s[86]++;insightfulQuestionOptionsCollection.push({question:((cov_87yjgfnc8.b[34][0]++,values===null)||(cov_87yjgfnc8.b[34][1]++,values===void 0)?(cov_87yjgfnc8.b[33][0]++,void 0):(cov_87yjgfnc8.b[33][1]++,values.questionType))===\"contactme\"?(cov_87yjgfnc8.b[32][0]++,\"contactme\"):(cov_87yjgfnc8.b[32][1]++,getQuestionValue(values)),options:getInsightfulOptions(values)});cov_87yjgfnc8.s[87]++;insightfulQuestionAnswersCollection.push(getInsightfulAnswers(values));}});}));var formattedData=(cov_87yjgfnc8.s[88]++,{rating:rating,ratingQuestion:ratingQuestion,ratingsListLength:ratingsListLength,email:email,commentsCollection:commentsCollection,commentTitlesCollection:commentTitlesCollection,promptQuestion:promptQuestion,promptResponse:promptResponse,additionalPromptQuestion:additionalPromptQuestion,additionalPromptResponse:additionalPromptResponse,insightfulQuestionOptionsCollection:insightfulQuestionOptionsCollection,insightfulQuestionAnswersCollection:insightfulQuestionAnswersCollection});cov_87yjgfnc8.s[89]++;return formattedData;}function updateExtendedManifestData(transporter,formattedData){cov_87yjgfnc8.f[14]++;var commentValues;var commentTitles=(cov_87yjgfnc8.s[90]++,[]);cov_87yjgfnc8.s[91]++;if(formattedData.commentsCollection.length>0){cov_87yjgfnc8.b[35][0]++;cov_87yjgfnc8.s[92]++;commentValues=formattedData.commentsCollection;cov_87yjgfnc8.s[93]++;commentTitles=formattedData.commentTitlesCollection;}else{cov_87yjgfnc8.b[35][1]++;}var extendedManifestData=(cov_87yjgfnc8.s[94]++,JSON.parse(transporter.getExtendedManifestData()));cov_87yjgfnc8.s[95]++;extendedManifestData.surveyStrings=JSON.stringify({prompt:{title:\"\",question:(cov_87yjgfnc8.b[37][0]++,formattedData===null)||(cov_87yjgfnc8.b[37][1]++,formattedData===void 0)?(cov_87yjgfnc8.b[36][0]++,void 0):(cov_87yjgfnc8.b[36][1]++,formattedData.promptQuestion),yesButtonText:\"YES\",noButtonText:\"NO\"},rating:[{question:(cov_87yjgfnc8.b[39][0]++,formattedData===null)||(cov_87yjgfnc8.b[39][1]++,formattedData===void 0)?(cov_87yjgfnc8.b[38][0]++,void 0):(cov_87yjgfnc8.b[38][1]++,formattedData.ratingQuestion),options:[]}],comment:commentTitles,multipleChoice:formattedData.insightfulQuestionOptionsCollection});cov_87yjgfnc8.s[96]++;extendedManifestData.surveySpecificData=JSON.stringify({rating:[{numberOfOptions:formattedData.ratingsListLength,selectedRating:formattedData.rating}],comment:commentValues,multipleChoice:formattedData.insightfulQuestionAnswersCollection});cov_87yjgfnc8.s[97]++;transporter.setExtendedManifestData(JSON.stringify(extendedManifestData));cov_87yjgfnc8.s[98]++;return extendedManifestData;}function updateAppData(){cov_87yjgfnc8.f[15]++;var appData=(cov_87yjgfnc8.s[99]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().applicationGroup.appData);var appDataValues=(cov_87yjgfnc8.s[100]++,[]);var cvSurveyInfo=(cov_87yjgfnc8.s[101]++,{additionalInfo:{SurveyDescription:_Constants__WEBPACK_IMPORTED_MODULE_7__[\"customerVoiceSurveyUX\"],Flight:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCVSurveyFlights(),IsCopilotLicenseEnabled:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().isCopilotLicenseEnabled().toString()}});cov_87yjgfnc8.s[102]++;if(Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(appData)){cov_87yjgfnc8.b[40][0]++;cov_87yjgfnc8.s[103]++;appDataValues.push({});}else{cov_87yjgfnc8.b[40][1]++;cov_87yjgfnc8.s[104]++;try{cov_87yjgfnc8.s[105]++;appDataValues.push(JSON.parse(appData));}catch(ex){cov_87yjgfnc8.s[106]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].APPDATA_JSON_PARSE_ERROR);cov_87yjgfnc8.s[107]++;appDataValues.push({});}}cov_87yjgfnc8.s[108]++;appDataValues.push(cvSurveyInfo);cov_87yjgfnc8.s[109]++;return JSON.stringify(appDataValues);}function setTransporterValues(transporter,formattedData){cov_87yjgfnc8.f[16]++;cov_87yjgfnc8.s[110]++;transporter.setManifestValues(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getJsonElements());cov_87yjgfnc8.s[111]++;updateExtendedManifestData(transporter,formattedData);cov_87yjgfnc8.s[112]++;if(formattedData.email){cov_87yjgfnc8.b[41][0]++;cov_87yjgfnc8.s[113]++;transporter.setEmail(formattedData.email);}else{cov_87yjgfnc8.b[41][1]++;}var appData=(cov_87yjgfnc8.s[114]++,updateAppData());cov_87yjgfnc8.s[115]++;transporter.setAppData(appData);var preGeneratedId=(cov_87yjgfnc8.s[116]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getPreGeneratedClientFeedbackId());cov_87yjgfnc8.s[117]++;if(preGeneratedId){cov_87yjgfnc8.b[42][0]++;cov_87yjgfnc8.s[118]++;transporter.setClientFeedbackId(preGeneratedId);}else{cov_87yjgfnc8.b[42][1]++;}cov_87yjgfnc8.s[119]++;return transporter;}function onCVSubmit(data){cov_87yjgfnc8.f[17]++;cov_87yjgfnc8.s[120]++;try{var formattedData=(cov_87yjgfnc8.s[121]++,formatSubmitData(data));var rating=(cov_87yjgfnc8.s[122]++,formattedData.rating),promptResponse=(cov_87yjgfnc8.s[123]++,formattedData.promptResponse),additionalPromptResponse=(cov_87yjgfnc8.s[124]++,formattedData.additionalPromptResponse);var isPromptAnswerLogMandatory=(cov_87yjgfnc8.s[125]++,validateLogPromptAnswer(promptResponse,additionalPromptResponse));cov_87yjgfnc8.s[126]++;if(isPromptAnswerLogMandatory){cov_87yjgfnc8.b[43][0]++;cov_87yjgfnc8.s[127]++;return;}else{cov_87yjgfnc8.b[43][1]++;}var transporter=(cov_87yjgfnc8.s[128]++,new _Transport_Transport__WEBPACK_IMPORTED_MODULE_5__[\"Transporter\"](_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().environment,_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_1__[\"Api\"].SurveyType[_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getSurveyType()],_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().appId,\"Survey\",_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().applicationGroup,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().telemetryGroup,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCommonInitOptions().webGroup));var comment=(cov_87yjgfnc8.s[129]++,Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(firstCommentResponse)?(cov_87yjgfnc8.b[44][0]++,null):(cov_87yjgfnc8.b[44][1]++,firstCommentResponse));cov_87yjgfnc8.s[130]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().setValues(Number(rating),comment?(cov_87yjgfnc8.b[45][0]++,comment):(cov_87yjgfnc8.b[45][1]++,null));cov_87yjgfnc8.s[131]++;setTransporterValues(transporter,formattedData);cov_87yjgfnc8.s[132]++;transporter.submit();cov_87yjgfnc8.s[133]++;if((cov_87yjgfnc8.b[47][0]++,data.eventType===\"FormPartialResponseSubmitted\")||(cov_87yjgfnc8.b[47][1]++,data.eventType===\"FormResponseSubmitted\")){cov_87yjgfnc8.b[46][0]++;cov_87yjgfnc8.s[134]++;onDismissFlag=true;cov_87yjgfnc8.s[135]++;if(hasSubmittedData){cov_87yjgfnc8.b[48][0]++;cov_87yjgfnc8.s[136]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SECONDARY_SUBMIT.name=SurveyUIFormSecondarySubmitName+data.pageNumber;cov_87yjgfnc8.s[137]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SECONDARY_SUBMIT);}else{cov_87yjgfnc8.b[48][1]++;cov_87yjgfnc8.s[138]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SUBMIT);cov_87yjgfnc8.s[139]++;hasSubmittedData=true;}}else{cov_87yjgfnc8.b[46][1]++;}}catch(ex){cov_87yjgfnc8.s[140]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SUBMIT_ERROR);}}function validateLogPromptAnswer(promptResponse,additionalPromptResponse){cov_87yjgfnc8.f[18]++;var isPromptAnswerLogNeeded=(cov_87yjgfnc8.s[141]++,false);var isPromptAnswerNo=(cov_87yjgfnc8.s[142]++,false);cov_87yjgfnc8.s[143]++;if(!Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(promptResponse)){cov_87yjgfnc8.b[49][0]++;cov_87yjgfnc8.s[144]++;isPromptAnswerLogNeeded=LogPromptAnswer(promptResponse,\"prompt\",isPromptResponseLogValidated);cov_87yjgfnc8.s[145]++;isPromptAnswerNo=promptResponse===_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"PromptConstants\"].No;}else{cov_87yjgfnc8.b[49][1]++;}cov_87yjgfnc8.s[146]++;if(!Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(additionalPromptResponse)){cov_87yjgfnc8.b[50][0]++;cov_87yjgfnc8.s[147]++;isPromptAnswerLogNeeded=LogPromptAnswer(additionalPromptResponse,\"additional\",isAdditionalPromptResponseLogValidated);cov_87yjgfnc8.s[148]++;isPromptAnswerNo=additionalPromptResponse===_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"PromptConstants\"].No;}else{cov_87yjgfnc8.b[50][1]++;}cov_87yjgfnc8.s[149]++;return(cov_87yjgfnc8.b[51][0]++,isPromptAnswerLogNeeded)||(cov_87yjgfnc8.b[51][1]++,isPromptAnswerNo);}function LogPromptAnswer(promptResponse,questionType,isPromptAnswerLogged){cov_87yjgfnc8.f[19]++;cov_87yjgfnc8.s[150]++;if(!isPromptAnswerLogged){cov_87yjgfnc8.b[52][0]++;var promptMessageClicked=(cov_87yjgfnc8.s[151]++,void 0);var promptMessageClosed=(cov_87yjgfnc8.s[152]++,void 0);cov_87yjgfnc8.s[153]++;if(questionType===\"prompt\"){cov_87yjgfnc8.b[53][0]++;cov_87yjgfnc8.s[154]++;isPromptResponseLogValidated=true;cov_87yjgfnc8.s[155]++;promptMessageClicked=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_PROMPT_CLICKED;cov_87yjgfnc8.s[156]++;promptMessageClosed=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_PROMPT_USERCLOSED;cov_87yjgfnc8.s[157]++;if(promptResponse===_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"PromptConstants\"].Yes){cov_87yjgfnc8.b[54][0]++;cov_87yjgfnc8.s[158]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SHOWN);}else{cov_87yjgfnc8.b[54][1]++;}}else{cov_87yjgfnc8.b[53][1]++;cov_87yjgfnc8.s[159]++;isAdditionalPromptResponseLogValidated=true;cov_87yjgfnc8.s[160]++;promptMessageClicked=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_ADDITIONALPROMPT_CLICKED;cov_87yjgfnc8.s[161]++;promptMessageClosed=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_ADDITIONALPROMPT_USERCLOSED;}cov_87yjgfnc8.s[162]++;logTelemetryEvent(promptResponse===_UiConstants__WEBPACK_IMPORTED_MODULE_2__[\"PromptConstants\"].No?(cov_87yjgfnc8.b[55][0]++,promptMessageClosed):(cov_87yjgfnc8.b[55][1]++,promptMessageClicked));cov_87yjgfnc8.s[163]++;return true;}else{cov_87yjgfnc8.b[52][1]++;}cov_87yjgfnc8.s[164]++;return false;}function onCVCancel(data){cov_87yjgfnc8.f[20]++;var _a;cov_87yjgfnc8.s[165]++;switch(data.eventType){case\"FormClosed\":cov_87yjgfnc8.b[56][0]++;cov_87yjgfnc8.s[166]++;if(Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(data.pageNumber)){cov_87yjgfnc8.b[57][0]++;cov_87yjgfnc8.s[167]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED);}else{cov_87yjgfnc8.b[57][1]++;cov_87yjgfnc8.s[168]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED.name=SurveyUIFormUserClosedName+data.pageNumber.charAt(data.pageNumber.length-1);cov_87yjgfnc8.s[169]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED);}cov_87yjgfnc8.s[170]++;break;case\"ThankYouPageClosed\":cov_87yjgfnc8.b[56][1]++;cov_87yjgfnc8.s[171]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_THANKYOUPAGE_USERCLOSED);cov_87yjgfnc8.s[172]++;break;case\"PromptClosed\":cov_87yjgfnc8.b[56][2]++;cov_87yjgfnc8.s[173]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_PROMPT_USERCLOSED);cov_87yjgfnc8.s[174]++;break;case\"AdditionalPromptClosed\":cov_87yjgfnc8.b[56][3]++;cov_87yjgfnc8.s[175]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_ADDITIONALPROMPT_USERCLOSED);cov_87yjgfnc8.s[176]++;break;case\"FormAutoDismissed\":cov_87yjgfnc8.b[56][4]++;cov_87yjgfnc8.s[177]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_PROMPT_AUTODISMISSED);cov_87yjgfnc8.s[178]++;break;case\"ThankYouPageAutoDismissed\":cov_87yjgfnc8.b[56][5]++;cov_87yjgfnc8.s[179]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_THANKYOUPAGE_AUTODISMISSED);cov_87yjgfnc8.s[180]++;break;case\"FormResponseCanceled\":cov_87yjgfnc8.b[56][6]++;cov_87yjgfnc8.s[181]++;if(Object(_ms_ofb_officefloodgatecore_dist_src_Utils__WEBPACK_IMPORTED_MODULE_0__[\"isNOU\"])(data.pageNumber)){cov_87yjgfnc8.b[58][0]++;cov_87yjgfnc8.s[182]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED);}else{cov_87yjgfnc8.b[58][1]++;cov_87yjgfnc8.s[183]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED.name=SurveyUIFormUserClosedName+((cov_87yjgfnc8.b[60][0]++,(_a=data.pageNumber)===null)||(cov_87yjgfnc8.b[60][1]++,_a===void 0)?(cov_87yjgfnc8.b[59][0]++,void 0):(cov_87yjgfnc8.b[59][1]++,_a.charAt(data.pageNumber.length-1)));cov_87yjgfnc8.s[184]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_USERCLOSED);}cov_87yjgfnc8.s[185]++;break;default:cov_87yjgfnc8.b[56][7]++;cov_87yjgfnc8.s[186]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_NO_RETURN_TYPE);cov_87yjgfnc8.s[187]++;break;}cov_87yjgfnc8.s[188]++;onDismiss(onDismissFlag);}function onCVLoaded(data){cov_87yjgfnc8.f[21]++;cov_87yjgfnc8.s[189]++;data.eventId=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SHOWN;cov_87yjgfnc8.s[190]++;if(data.hasSurveyDispatcher){cov_87yjgfnc8.b[61][0]++;cov_87yjgfnc8.s[191]++;data.eventId=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_DISPATCHER_IMPLEMENTED;}else{cov_87yjgfnc8.b[61][1]++;cov_87yjgfnc8.s[192]++;if(data.hasSurveyPromptShown){cov_87yjgfnc8.b[62][0]++;cov_87yjgfnc8.s[193]++;data.eventId=_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_PROMPT_SHOWN;}else{cov_87yjgfnc8.b[62][1]++;}}cov_87yjgfnc8.s[194]++;logGatecrashEvent(data);}function logGatecrashEvent(data){cov_87yjgfnc8.f[22]++;var _a,_b,_c,_d;var configuration=(cov_87yjgfnc8.s[195]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]());var logCustomProps=(cov_87yjgfnc8.s[196]++,{TimeMilliseconds:data.TimeMilliseconds,CampaignId:configuration.getFloodgateSurvey().getCampaignId(),SurveyId:configuration.getFloodgateSurvey().getId(),SurveyType:configuration.getFloodgateSurvey().getSurveyType(),ErrorMessage:((cov_87yjgfnc8.b[65][0]++,(_a=data.customProperties)===null)||(cov_87yjgfnc8.b[65][1]++,_a===void 0)?(cov_87yjgfnc8.b[64][0]++,void 0):(cov_87yjgfnc8.b[64][1]++,_a.ErrorMessage))?(cov_87yjgfnc8.b[63][0]++,(cov_87yjgfnc8.b[67][0]++,(_b=data.customProperties)===null)||(cov_87yjgfnc8.b[67][1]++,_b===void 0)?(cov_87yjgfnc8.b[66][0]++,void 0):(cov_87yjgfnc8.b[66][1]++,_b.ErrorMessage)):(cov_87yjgfnc8.b[63][1]++,null),Message:((cov_87yjgfnc8.b[70][0]++,(_c=data.customProperties)===null)||(cov_87yjgfnc8.b[70][1]++,_c===void 0)?(cov_87yjgfnc8.b[69][0]++,void 0):(cov_87yjgfnc8.b[69][1]++,_c.Message))?(cov_87yjgfnc8.b[68][0]++,(cov_87yjgfnc8.b[72][0]++,(_d=data.customProperties)===null)||(cov_87yjgfnc8.b[72][1]++,_d===void 0)?(cov_87yjgfnc8.b[71][0]++,void 0):(cov_87yjgfnc8.b[71][1]++,_d.Message)):(cov_87yjgfnc8.b[68][1]++,null)});cov_87yjgfnc8.s[197]++;logTelemetryEvent(data.eventId,logCustomProps);}function logTelemetryEvent(eventId,customProperties){cov_87yjgfnc8.f[23]++;var configuration=(cov_87yjgfnc8.s[198]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]());var logCustomProps;cov_87yjgfnc8.s[199]++;if(!customProperties){cov_87yjgfnc8.b[73][0]++;cov_87yjgfnc8.s[200]++;logCustomProps={CampaignId:configuration.getFloodgateSurvey().getCampaignId(),SurveyId:configuration.getFloodgateSurvey().getId(),SurveyType:configuration.getFloodgateSurvey().getSurveyType(),ClientFeedbackId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getPreGeneratedClientFeedbackId(),CVFormId:configuration.getFloodgateSurvey().getCVSurveyFormId()};}else{cov_87yjgfnc8.b[73][1]++;cov_87yjgfnc8.s[201]++;logCustomProps=customProperties;}cov_87yjgfnc8.s[202]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"getLogger\"]().logEvent(eventId,1,logCustomProps);}function updateSurveyStyling(cssVars,htmlDataAttrs){cov_87yjgfnc8.f[24]++;var renderContext=(cov_87yjgfnc8.s[203]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getCVRenderContext());cov_87yjgfnc8.s[204]++;if(renderContext){cov_87yjgfnc8.b[74][0]++;cov_87yjgfnc8.s[205]++;renderContext.updateStyling(cssVars,htmlDataAttrs);}else{cov_87yjgfnc8.b[74][1]++;var logCustomProps=(cov_87yjgfnc8.s[206]++,{CampaignId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getCampaignId(),SurveyId:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getId(),SurveyType:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_3__[\"get\"]().getFloodgateSurvey().getSurveyType()});cov_87yjgfnc8.s[207]++;internal.logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_RENDER_CONTEXT_ERROR,logCustomProps);}}var internal=(cov_87yjgfnc8.s[208]++,{logTelemetryEvent:logTelemetryEvent});var unitTestExports=(cov_87yjgfnc8.s[209]++,{internal:internal}.internal);//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9Ub2FzdC9DVlRvYXN0LnRzPzVjMmEiXSwibmFtZXMiOlsib25EaXNtaXNzIiwib25EaXNtaXNzRmxhZyIsImlzUHJvbXB0UmVzcG9uc2VMb2dWYWxpZGF0ZWQiLCJpc0FkZGl0aW9uYWxQcm9tcHRSZXNwb25zZUxvZ1ZhbGlkYXRlZCIsImhhc1N1Ym1pdHRlZERhdGEiLCJTdXJ2ZXlVSUZvcm1TZWNvbmRhcnlTdWJtaXROYW1lIiwiU3VydmV5VUlGb3JtVXNlckNsb3NlZE5hbWUiLCJmaXJzdENvbW1lbnRSZXNwb25zZSIsImZpcnN0Q29tbWVudFRpdGxlIiwiY3JlYXRlQ1ZTdXJ2ZXkiLCJjb250ZXh0UGFyYW1zIiwib25DbG9zZSIsImN2U3VydmV5T3B0aW9uYWxDb25maWdQYXJhbXMiLCJvdmVycmlkZVVYUmVuZGVyQ2FsbGJhY2tBc3luYyIsInN1Ym1pdHRlZCIsIkNvbmZpZ3VyYXRpb24iLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsImdldEZsb29kZ2F0ZVN1cnZleSIsImdldENhbXBhaWduSWQiLCJsb2dDdXN0b21Qcm9wc18xIiwiQ2FtcGFpZ25JZCIsIlN1cnZleUlkIiwiZ2V0SWQiLCJTdXJ2ZXlUeXBlIiwiZ2V0U3VydmV5VHlwZSIsInRoZW4iLCJpbnRlcm5hbCIsImxvZ1RlbGVtZXRyeUV2ZW50IiwiTG9nZ2luZyIsIlNVUlZFWV9SRU5ERVJfT1ZFUlJJREVfU1VDQ0VTUyIsImNhdGNoIiwiZXgiLCJFcnJvck1lc3NhZ2UiLCJTVVJWRVlfUkVOREVSX09WRVJSSURFX0VSUk9SIiwidXBkYXRlU3R5bGluZyIsInJlbmRlckNvbnRleHQiLCJyZW5kZXJDVlN1cnZleSIsIklEcyIsIlRvYXN0Q29udGFpbmVyIiwiaGFuZGxlU3VydmV5RXZlbnQiLCJTVVJWRVlfVUlfUkVOREVSX0NWX1NVUlZFWV9DT01QTEVURUQiLCJrZXkiLCJkYXRhIiwia2V5UHJlZml4Iiwia2V5QmFzZSIsImVyciIsInNwbGl0S2V5Iiwic3BsaXQiLCJsZW5ndGgiLCJvbkNWU3VibWl0Iiwib25DVkNhbmNlbCIsIm9uQ1ZMb2FkZWQiLCJsb2dHYXRlY3Jhc2hFdmVudCIsImxvZ0N1c3RvbVByb3BzIiwiU1VSVkVZX0VWRU5UX0tFWV9FUlJPUiIsImdldFJhdGluZyIsInZhbHVlcyIsInBhcnNlSW50IiwiYW5zd2VyVmFsdWUiLCJnZXRRdWVzdGlvblZhbHVlIiwicXVlc3Rpb25WYWx1ZSIsImdldEFuc3dlclZhbHVlIiwiaXNOT1UiLCJjb25jYXQiLCJnZXRJbnNpZ2h0ZnVsT3B0aW9ucyIsImluc2lnaHRmdWxRdWVzdGlvbk9wdGlvbnMiLCJnZXRJbnNpZ2h0ZnVsQW5zd2VycyIsImluc2lnaHRmdWxRdWVzdGlvbkFuc3dlcnMiLCJmb3JtYXRTdWJtaXREYXRhIiwic3VibWl0RGF0YSIsIl9hIiwicmF0aW5nIiwiY29tbWVudHNDb2xsZWN0aW9uIiwiZW1haWwiLCJyYXRpbmdRdWVzdGlvbiIsInJhdGluZ3NMaXN0TGVuZ3RoIiwicHJvbXB0UXVlc3Rpb24iLCJwcm9tcHRSZXNwb25zZSIsImNvbW1lbnRUaXRsZXNDb2xsZWN0aW9uIiwiYWRkaXRpb25hbFByb21wdFF1ZXN0aW9uIiwiYWRkaXRpb25hbFByb21wdFJlc3BvbnNlIiwiaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9uc0NvbGxlY3Rpb24iLCJpbnNpZ2h0ZnVsUXVlc3Rpb25BbnN3ZXJzQ29sbGVjdGlvbiIsImlzRmlyc3RDb21tZW50VmFsaWRhdGVkIiwiaXNGaXJzdEVtcHR5Q29tbWVudEFkZGVkIiwicGFnZUluZm8iLCJmb3JFYWNoIiwiY3VycmVudFBhZ2UiLCJxdWVzdGlvbkFuc3dlcnMiLCJxdWVzdGlvblR5cGUiLCJjb21tZW50UmVzcG9uc2UiLCJjb21tZW50VGl0bGUiLCJjdlN1cnZleUhhc1Byb21wdFBhZ2UiLCJzZXRDb21tZW50VGl0bGVBbmRWYWx1ZSIsInBhZ2VOdW1iZXIiLCJwdXNoIiwicXVlc3Rpb24iLCJvcHRpb25zIiwiZm9ybWF0dGVkRGF0YSIsInVwZGF0ZUV4dGVuZGVkTWFuaWZlc3REYXRhIiwidHJhbnNwb3J0ZXIiLCJjb21tZW50VmFsdWVzIiwiY29tbWVudFRpdGxlcyIsImV4dGVuZGVkTWFuaWZlc3REYXRhIiwiSlNPTiIsInBhcnNlIiwiZ2V0RXh0ZW5kZWRNYW5pZmVzdERhdGEiLCJzdXJ2ZXlTdHJpbmdzIiwic3RyaW5naWZ5IiwicHJvbXB0IiwidGl0bGUiLCJ5ZXNCdXR0b25UZXh0Iiwibm9CdXR0b25UZXh0IiwiY29tbWVudCIsIm11bHRpcGxlQ2hvaWNlIiwic3VydmV5U3BlY2lmaWNEYXRhIiwibnVtYmVyT2ZPcHRpb25zIiwic2VsZWN0ZWRSYXRpbmciLCJzZXRFeHRlbmRlZE1hbmlmZXN0RGF0YSIsInVwZGF0ZUFwcERhdGEiLCJhcHBEYXRhIiwiZ2V0Q29tbW9uSW5pdE9wdGlvbnMiLCJhcHBsaWNhdGlvbkdyb3VwIiwiYXBwRGF0YVZhbHVlcyIsImN2U3VydmV5SW5mbyIsImFkZGl0aW9uYWxJbmZvIiwiU3VydmV5RGVzY3JpcHRpb24iLCJjdXN0b21lclZvaWNlU3VydmV5VVgiLCJGbGlnaHQiLCJnZXRDVlN1cnZleUZsaWdodHMiLCJJc0NvcGlsb3RMaWNlbnNlRW5hYmxlZCIsImlzQ29waWxvdExpY2Vuc2VFbmFibGVkIiwidG9TdHJpbmciLCJBUFBEQVRBX0pTT05fUEFSU0VfRVJST1IiLCJzZXRUcmFuc3BvcnRlclZhbHVlcyIsInNldE1hbmlmZXN0VmFsdWVzIiwiZ2V0SnNvbkVsZW1lbnRzIiwic2V0RW1haWwiLCJzZXRBcHBEYXRhIiwicHJlR2VuZXJhdGVkSWQiLCJnZXRQcmVHZW5lcmF0ZWRDbGllbnRGZWVkYmFja0lkIiwic2V0Q2xpZW50RmVlZGJhY2tJZCIsImlzUHJvbXB0QW5zd2VyTG9nTWFuZGF0b3J5IiwidmFsaWRhdGVMb2dQcm9tcHRBbnN3ZXIiLCJUcmFuc3BvcnRlciIsImVudmlyb25tZW50IiwiQXBpIiwiYXBwSWQiLCJ0ZWxlbWV0cnlHcm91cCIsIndlYkdyb3VwIiwic2V0VmFsdWVzIiwiTnVtYmVyIiwic3VibWl0IiwiZXZlbnRUeXBlIiwiU1VSVkVZX1VJX0ZPUk1fU0VDT05EQVJZX1NVQk1JVCIsIm5hbWUiLCJTVVJWRVlfVUlfRk9STV9TVUJNSVQiLCJTVVJWRVlfVUlfRk9STV9TVUJNSVRfRVJST1IiLCJpc1Byb21wdEFuc3dlckxvZ05lZWRlZCIsImlzUHJvbXB0QW5zd2VyTm8iLCJMb2dQcm9tcHRBbnN3ZXIiLCJQcm9tcHRDb25zdGFudHMiLCJObyIsImlzUHJvbXB0QW5zd2VyTG9nZ2VkIiwicHJvbXB0TWVzc2FnZUNsaWNrZWQiLCJwcm9tcHRNZXNzYWdlQ2xvc2VkIiwiU1VSVkVZX1VJX1BST01QVF9DTElDS0VEIiwiU1VSVkVZX1VJX1BST01QVF9VU0VSQ0xPU0VEIiwiWWVzIiwiU1VSVkVZX1VJX0ZPUk1fU0hPV04iLCJTVVJWRVlfVUlfQURESVRJT05BTFBST01QVF9DTElDS0VEIiwiU1VSVkVZX1VJX0FERElUSU9OQUxQUk9NUFRfVVNFUkNMT1NFRCIsIlNVUlZFWV9VSV9GT1JNX1VTRVJDTE9TRUQiLCJjaGFyQXQiLCJTVVJWRVlfVUlfVEhBTktZT1VQQUdFX1VTRVJDTE9TRUQiLCJTVVJWRVlfVUlfUFJPTVBUX0FVVE9ESVNNSVNTRUQiLCJTVVJWRVlfVUlfVEhBTktZT1VQQUdFX0FVVE9ESVNNSVNTRUQiLCJTVVJWRVlfVUlfRk9STV9OT19SRVRVUk5fVFlQRSIsImV2ZW50SWQiLCJoYXNTdXJ2ZXlEaXNwYXRjaGVyIiwiU1VSVkVZX1VJX0ZPUk1fRElTUEFUQ0hFUl9JTVBMRU1FTlRFRCIsImhhc1N1cnZleVByb21wdFNob3duIiwiU1VSVkVZX1VJX1BST01QVF9TSE9XTiIsIl9iIiwiX2MiLCJfZCIsImNvbmZpZ3VyYXRpb24iLCJUaW1lTWlsbGlzZWNvbmRzIiwiY3VzdG9tUHJvcGVydGllcyIsIk1lc3NhZ2UiLCJDbGllbnRGZWVkYmFja0lkIiwiQ1ZGb3JtSWQiLCJnZXRDVlN1cnZleUZvcm1JZCIsImxvZ0V2ZW50IiwidXBkYXRlU3VydmV5U3R5bGluZyIsImNzc1ZhcnMiLCJodG1sRGF0YUF0dHJzIiwiZ2V0Q1ZSZW5kZXJDb250ZXh0IiwiU1VSVkVZX1JFTkRFUl9DT05URVhUX0VSUk9SIiwidW5pdFRlc3RFeHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3dwMUVBUUEsR0FBSUEsVUFBSixDQUNBLEdBQUlDLHFDQUFnQixLQUFoQixDQUFKLENBQ0EsR0FBSUMsb0RBQStCLEtBQS9CLENBQUosQ0FDQSxHQUFJQyw4REFBeUMsS0FBekMsQ0FBSixDQUNBLEdBQUlDLHdDQUFtQixLQUFuQixDQUFKLENBQ0EsR0FBSUMsdURBQWtDLDhDQUFsQyxDQUFKLENBQ0EsR0FBSUMsa0RBQTZCLHdDQUE3QixDQUFKLENBQ0EsR0FBSUMsNENBQXVCLElBQXZCLENBQUosQ0FDQSxHQUFJQyx5Q0FBb0IsRUFBcEIsQ0FBSixDQUNPLFFBQVNDLGVBQVQsQ0FBd0JDLGFBQXhCLENBQXVDQyxPQUF2QyxDQUFnREMsNEJBQWhELENBQThFQyw2QkFBOUUsQ0FBNkcsMkNBQ2hIYixVQUFZLFNBQVVjLFNBQVYsQ0FBcUIsMkNBQzdCQyxnRUFBQSxHQUFvQkMsdUJBQXBCLEdBQThDaEIsU0FBOUMsQ0FBd0RlLGdFQUFBLEdBQW9CRSxrQkFBcEIsR0FBeUNDLGFBQXpDLEVBQXhELENBQWtISixTQUFsSCxFQUQ2QixzQkFFN0JILFVBQ0gsQ0FIRCxDQURnSCxzQkFLaEgsR0FBSUUsNkJBQUosQ0FBbUMseUJBQy9CLEdBQUlNLHlDQUFtQixDQUNuQkMsV0FBWUwsZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q0MsYUFBekMsRUFETyxDQUVuQkcsU0FBVU4sZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q0ssS0FBekMsRUFGUyxDQUduQkMsV0FBWVIsZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q08sYUFBekMsRUFITyxDQUFuQixDQUFKLENBRCtCLHNCQU0vQlgsOEJBQThCSCxhQUE5QixFQUNLZSxJQURMLENBQ1UsVUFBWSw0Q0FDbEJDLFNBQVND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QyxFQUNILENBQ00sUUFBUzZJLG9CQUFULENBQTZCQyxPQUE3QixDQUFzQ0MsYUFBdEMsQ0FBcUQsdUJBQ3hELEdBQUlqSyx1Q0FBZ0JwQixnRUFBQSxHQUFvQnNMLGtCQUFwQixFQUFoQixDQUFKLENBRHdELHVCQUV4RCxHQUFJbEssYUFBSixDQUFtQixpREFDZkEsY0FBY0QsYUFBZCxDQUE0QmlLLE9BQTVCLENBQXFDQyxhQUFyQyxFQUNILENBRkQsSUFHSywwQkFDRCxHQUFJL0ksd0NBQWlCLENBQ2pCakMsV0FBWUwsZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q0MsYUFBekMsRUFESyxDQUVqQkcsU0FBVU4sZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q0ssS0FBekMsRUFGTyxDQUdqQkMsV0FBWVIsZ0VBQUEsR0FBb0JFLGtCQUFwQixHQUF5Q08sYUFBekMsRUFISyxDQUFqQixDQUFKLENBREMsdUJBTURFLFNBQVNDLGlCQUFULENBQTJCQyx5REFBQSxDQUFpQjBLLDJCQUE1QyxDQUF5RWpKLGNBQXpFLEVBQ0gsQ0FDSixDQUNELEdBQUkzQixrQ0FBVyxDQUNYQyxrQkFBbUJBLGlCQURSLENBQVgsQ0FBSixDQUdPLEdBQUk0Syx5Q0FBa0IsQ0FBRTdLLFNBQVVBLFFBQVosRUFBdUJBLFFBQXpDLENBQUoiLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9VSS9Ub2FzdC9DVlRvYXN0LnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOT1UgfSBmcm9tIFwiQG1zLW9mYi9vZmZpY2VmbG9vZGdhdGVjb3JlL2Rpc3Qvc3JjL1V0aWxzXCI7XHJcbmltcG9ydCB7IEFwaSB9IGZyb20gXCJAbXMtb2ZiL2Zsb29kZ2F0ZS1zaGFyZWQtdHlwaW5nc1wiO1xyXG5pbXBvcnQgeyBJRHMsIFByb21wdENvbnN0YW50cyB9IGZyb20gXCIuLy4uL1VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4vLi4vLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCB7IHJlbmRlckNWU3VydmV5LCB9IGZyb20gXCJnYXRlY3Jhc2hcIjtcclxuaW1wb3J0IHsgVHJhbnNwb3J0ZXIgfSBmcm9tIFwiLi8uLi8uLi9UcmFuc3BvcnQvVHJhbnNwb3J0XCI7XHJcbmltcG9ydCAqIGFzIExvZ2dpbmcgZnJvbSBcIi4vLi4vLi4vTG9nZ2luZy9Mb2dnaW5nXCI7XHJcbmltcG9ydCB7IGN1c3RvbWVyVm9pY2VTdXJ2ZXlVWCB9IGZyb20gXCIuLi8uLi9Db25zdGFudHNcIjtcclxudmFyIG9uRGlzbWlzcztcclxudmFyIG9uRGlzbWlzc0ZsYWcgPSBmYWxzZTtcclxudmFyIGlzUHJvbXB0UmVzcG9uc2VMb2dWYWxpZGF0ZWQgPSBmYWxzZTtcclxudmFyIGlzQWRkaXRpb25hbFByb21wdFJlc3BvbnNlTG9nVmFsaWRhdGVkID0gZmFsc2U7XHJcbnZhciBoYXNTdWJtaXR0ZWREYXRhID0gZmFsc2U7XHJcbnZhciBTdXJ2ZXlVSUZvcm1TZWNvbmRhcnlTdWJtaXROYW1lID0gXCJTdXJ2ZXlfVUlfRm9ybV9TZWNvbmRhcnlfU3VibWl0X1BhZ2VfTnVtYmVyX1wiO1xyXG52YXIgU3VydmV5VUlGb3JtVXNlckNsb3NlZE5hbWUgPSBcIlN1cnZleV9VSV9Gb3JtX1VzZXJDbG9zZWRfUGFnZV9OdW1iZXJfXCI7XHJcbnZhciBmaXJzdENvbW1lbnRSZXNwb25zZSA9IG51bGw7XHJcbnZhciBmaXJzdENvbW1lbnRUaXRsZSA9IFwiXCI7XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDVlN1cnZleShjb250ZXh0UGFyYW1zLCBvbkNsb3NlLCBjdlN1cnZleU9wdGlvbmFsQ29uZmlnUGFyYW1zLCBvdmVycmlkZVVYUmVuZGVyQ2FsbGJhY2tBc3luYykge1xyXG4gICAgb25EaXNtaXNzID0gZnVuY3Rpb24gKHN1Ym1pdHRlZCkge1xyXG4gICAgICAgIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKS5vbkRpc21pc3MoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCksIHN1Ym1pdHRlZCk7XHJcbiAgICAgICAgb25DbG9zZSgpO1xyXG4gICAgfTtcclxuICAgIGlmIChvdmVycmlkZVVYUmVuZGVyQ2FsbGJhY2tBc3luYykge1xyXG4gICAgICAgIHZhciBsb2dDdXN0b21Qcm9wc18xID0ge1xyXG4gICAgICAgICAgICBDYW1wYWlnbklkOiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldENhbXBhaWduSWQoKSxcclxuICAgICAgICAgICAgU3VydmV5SWQ6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSxcclxuICAgICAgICAgICAgU3VydmV5VHlwZTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRTdXJ2ZXlUeXBlKCksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBvdmVycmlkZVVYUmVuZGVyQ2FsbGJhY2tBc3luYyhjb250ZXh0UGFyYW1zKVxyXG4gICAgICAgICAgICAudGhlbihmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGludGVybmFsLmxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1JFTkRFUl9PVkVSUklERV9TVUNDRVNTLCBsb2dDdXN0b21Qcm9wc18xKTtcclxuICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXgpIHtcclxuICAgICAgICAgICAgbG9nQ3VzdG9tUHJvcHNfMS5FcnJvck1lc3NhZ2UgPSBleDtcclxuICAgICAgICAgICAgaW50ZXJuYWwubG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfUkVOREVSX09WRVJSSURFX0VSUk9SLCBsb2dDdXN0b21Qcm9wc18xKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB1cGRhdGVTdHlsaW5nOiBmdW5jdGlvbiAoKSB7IHJldHVybjsgfSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdmFyIHJlbmRlckNvbnRleHQgPSByZW5kZXJDVlN1cnZleShJRHMuVG9hc3RDb250YWluZXIsIGhhbmRsZVN1cnZleUV2ZW50LCBjb250ZXh0UGFyYW1zLCBjdlN1cnZleU9wdGlvbmFsQ29uZmlnUGFyYW1zKTtcclxuICAgICAgICBpbnRlcm5hbC5sb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9SRU5ERVJfQ1ZfU1VSVkVZX0NPTVBMRVRFRCk7XHJcbiAgICAgICAgcmV0dXJuIHJlbmRlckNvbnRleHQ7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IHZhciBoYW5kbGVTdXJ2ZXlFdmVudCA9IGZ1bmN0aW9uIChrZXksIGRhdGEpIHtcclxuICAgIHZhciBrZXlQcmVmaXg7XHJcbiAgICB2YXIga2V5QmFzZTtcclxuICAgIHZhciBlcnIgPSBmYWxzZTtcclxuICAgIHZhciBzcGxpdEtleSA9IGtleS5zcGxpdChcIl9cIik7XHJcbiAgICBpZiAoc3BsaXRLZXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGtleVByZWZpeCA9IHNwbGl0S2V5WzBdO1xyXG4gICAgICAgIGtleUJhc2UgPSBzcGxpdEtleVsxXTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGtleVByZWZpeCA9IFwiT3RoZXJcIjtcclxuICAgICAgICBrZXlCYXNlID0gc3BsaXRLZXlbMF07XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKGtleVByZWZpeCkge1xyXG4gICAgICAgIGNhc2UgXCJDVlwiOlxyXG4gICAgICAgICAgICBzd2l0Y2ggKGtleUJhc2UpIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJPblN1Ym1pdFwiOiByZXR1cm4gb25DVlN1Ym1pdChkYXRhKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJPbkNhbmNlbFwiOiByZXR1cm4gb25DVkNhbmNlbChkYXRhKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJPbkxvYWRlZFwiOiByZXR1cm4gb25DVkxvYWRlZChkYXRhKTtcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJPbkxvZ1wiOiByZXR1cm4gbG9nR2F0ZWNyYXNoRXZlbnQoZGF0YSk7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OiBlcnIgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6IGVyciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoZXJyKSB7XHJcbiAgICAgICAgdmFyIGxvZ0N1c3RvbVByb3BzID0ge1xyXG4gICAgICAgICAgICBDYW1wYWlnbklkOiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldENhbXBhaWduSWQoKSxcclxuICAgICAgICAgICAgU3VydmV5SWQ6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSxcclxuICAgICAgICAgICAgU3VydmV5VHlwZTogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRTdXJ2ZXlUeXBlKCksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpbnRlcm5hbC5sb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9FVkVOVF9LRVlfRVJST1IsIGxvZ0N1c3RvbVByb3BzKTtcclxuICAgIH1cclxufTtcclxuZXhwb3J0IGZ1bmN0aW9uIGdldFJhdGluZyh2YWx1ZXMpIHtcclxuICAgIHJldHVybiBwYXJzZUludCh2YWx1ZXMgPT09IG51bGwgfHwgdmFsdWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZXMuYW5zd2VyVmFsdWVbMF0sIDEwKSAtIDE7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXN0aW9uVmFsdWUodmFsdWVzKSB7XHJcbiAgICByZXR1cm4gdmFsdWVzID09PSBudWxsIHx8IHZhbHVlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsdWVzLnF1ZXN0aW9uVmFsdWU7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuc3dlclZhbHVlKHZhbHVlcykge1xyXG4gICAgcmV0dXJuIGlzTk9VKHZhbHVlcyA9PT0gbnVsbCB8fCB2YWx1ZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbHVlcy5hbnN3ZXJWYWx1ZVswXSkgPyB2YWx1ZXMgPT09IG51bGwgfHwgdmFsdWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZXMuYW5zd2VyVmFsdWVbMF0gOiBcIlwiLmNvbmNhdCh2YWx1ZXMgPT09IG51bGwgfHwgdmFsdWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZXMuYW5zd2VyVmFsdWVbMF0pO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnNpZ2h0ZnVsT3B0aW9ucyh2YWx1ZXMpIHtcclxuICAgIHJldHVybiB2YWx1ZXMgPT09IG51bGwgfHwgdmFsdWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWx1ZXMuaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9ucztcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5zaWdodGZ1bEFuc3dlcnModmFsdWVzKSB7XHJcbiAgICByZXR1cm4gdmFsdWVzID09PSBudWxsIHx8IHZhbHVlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsdWVzLmluc2lnaHRmdWxRdWVzdGlvbkFuc3dlcnM7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN1Ym1pdERhdGEoc3VibWl0RGF0YSkge1xyXG4gICAgdmFyIF9hO1xyXG4gICAgdmFyIHJhdGluZztcclxuICAgIHZhciBjb21tZW50c0NvbGxlY3Rpb24gPSBbXTtcclxuICAgIHZhciBlbWFpbDtcclxuICAgIHZhciByYXRpbmdRdWVzdGlvbjtcclxuICAgIHZhciByYXRpbmdzTGlzdExlbmd0aDtcclxuICAgIHZhciBwcm9tcHRRdWVzdGlvbjtcclxuICAgIHZhciBwcm9tcHRSZXNwb25zZTtcclxuICAgIHZhciBjb21tZW50VGl0bGVzQ29sbGVjdGlvbiA9IFtdO1xyXG4gICAgdmFyIGFkZGl0aW9uYWxQcm9tcHRRdWVzdGlvbjtcclxuICAgIHZhciBhZGRpdGlvbmFsUHJvbXB0UmVzcG9uc2U7XHJcbiAgICB2YXIgaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9uc0NvbGxlY3Rpb24gPSBbXTtcclxuICAgIHZhciBpbnNpZ2h0ZnVsUXVlc3Rpb25BbnN3ZXJzQ29sbGVjdGlvbiA9IFtdO1xyXG4gICAgdmFyIGlzRmlyc3RDb21tZW50VmFsaWRhdGVkID0gZmFsc2U7XHJcbiAgICB2YXIgaXNGaXJzdEVtcHR5Q29tbWVudEFkZGVkID0gZmFsc2U7XHJcbiAgICAoX2EgPSBzdWJtaXREYXRhLnBhZ2VJbmZvKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9yRWFjaChmdW5jdGlvbiAoY3VycmVudFBhZ2UpIHtcclxuICAgICAgICBjdXJyZW50UGFnZS5xdWVzdGlvbkFuc3dlcnMuZm9yRWFjaChmdW5jdGlvbiAodmFsdWVzKSB7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodmFsdWVzID09PSBudWxsIHx8IHZhbHVlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmFsdWVzLnF1ZXN0aW9uVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcInJhdGluZ1wiOlxyXG4gICAgICAgICAgICAgICAgICAgIHJhdGluZyA9IGdldFJhdGluZyh2YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJhdGluZ1F1ZXN0aW9uID0gZ2V0UXVlc3Rpb25WYWx1ZSh2YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJhdGluZ3NMaXN0TGVuZ3RoID0gdmFsdWVzLnJhdGluZ3NMaXN0TGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcInByb21wdFwiOlxyXG4gICAgICAgICAgICAgICAgICAgIHByb21wdFF1ZXN0aW9uID0gZ2V0UXVlc3Rpb25WYWx1ZSh2YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIHByb21wdFJlc3BvbnNlID0gZ2V0QW5zd2VyVmFsdWUodmFsdWVzKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJ2ZXJiYXRpbVwiOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbW1lbnRSZXNwb25zZSA9IGdldEFuc3dlclZhbHVlKHZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNvbW1lbnRUaXRsZSA9IGdldFF1ZXN0aW9uVmFsdWUodmFsdWVzKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgY3ZTdXJ2ZXlIYXNQcm9tcHRQYWdlID0gIWlzTk9VKHByb21wdFJlc3BvbnNlKTtcclxuICAgICAgICAgICAgICAgICAgICB2YXIgc2V0Q29tbWVudFRpdGxlQW5kVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNGaXJzdENvbW1lbnRWYWxpZGF0ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjdlN1cnZleUhhc1Byb21wdFBhZ2UgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Ym1pdERhdGEucGFnZU51bWJlciAhPT0gXCIxXCIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzTk9VKGZpcnN0Q29tbWVudFJlc3BvbnNlKSAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIWlzRmlyc3RFbXB0eUNvbW1lbnRBZGRlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudFRpdGxlc0NvbGxlY3Rpb24ucHVzaCh7IHF1ZXN0aW9uOiBmaXJzdENvbW1lbnRUaXRsZSB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzQ29sbGVjdGlvbi5wdXNoKFwiIFwiKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRmlyc3RFbXB0eUNvbW1lbnRBZGRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29tbWVudFRpdGxlQW5kVmFsdWUgPSBjdlN1cnZleUhhc1Byb21wdFBhZ2UgfHwgc3VibWl0RGF0YS5wYWdlTnVtYmVyICE9PSBcIjFcIjtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Q29tbWVudFJlc3BvbnNlID0gY29tbWVudFJlc3BvbnNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaXJzdENvbW1lbnRUaXRsZSA9IGNvbW1lbnRUaXRsZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGaXJzdENvbW1lbnRWYWxpZGF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRDb21tZW50VGl0bGVBbmRWYWx1ZSA9IGN2U3VydmV5SGFzUHJvbXB0UGFnZSB8fCAhaXNOT1UoZmlyc3RDb21tZW50UmVzcG9uc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAoc2V0Q29tbWVudFRpdGxlQW5kVmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudFRpdGxlc0NvbGxlY3Rpb24ucHVzaCh7IHF1ZXN0aW9uOiBjb21tZW50VGl0bGUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzQ29sbGVjdGlvbi5wdXNoKGlzTk9VKGNvbW1lbnRSZXNwb25zZSkgPyBcIiBcIiA6IGNvbW1lbnRSZXNwb25zZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY2FzZSBcImVtYWlsXCI6XHJcbiAgICAgICAgICAgICAgICAgICAgZW1haWwgPSBnZXRBbnN3ZXJWYWx1ZSh2YWx1ZXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSBcImFkZGl0aW9uYWxcIjpcclxuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvbXB0UXVlc3Rpb24gPSBnZXRRdWVzdGlvblZhbHVlKHZhbHVlcyk7XHJcbiAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb21wdFJlc3BvbnNlID0gZ2V0QW5zd2VyVmFsdWUodmFsdWVzKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgXCJjb250YWN0bWVcIjpcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9uc0NvbGxlY3Rpb24ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXN0aW9uOiAoKHZhbHVlcyA9PT0gbnVsbCB8fCB2YWx1ZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbHVlcy5xdWVzdGlvblR5cGUpID09PSBcImNvbnRhY3RtZVwiKSA/IFwiY29udGFjdG1lXCIgOiBnZXRRdWVzdGlvblZhbHVlKHZhbHVlcyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGdldEluc2lnaHRmdWxPcHRpb25zKHZhbHVlcyksXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaW5zaWdodGZ1bFF1ZXN0aW9uQW5zd2Vyc0NvbGxlY3Rpb24ucHVzaChnZXRJbnNpZ2h0ZnVsQW5zd2Vycyh2YWx1ZXMpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICB2YXIgZm9ybWF0dGVkRGF0YSA9IHtcclxuICAgICAgICByYXRpbmc6IHJhdGluZyxcclxuICAgICAgICByYXRpbmdRdWVzdGlvbjogcmF0aW5nUXVlc3Rpb24sXHJcbiAgICAgICAgcmF0aW5nc0xpc3RMZW5ndGg6IHJhdGluZ3NMaXN0TGVuZ3RoLFxyXG4gICAgICAgIGVtYWlsOiBlbWFpbCxcclxuICAgICAgICBjb21tZW50c0NvbGxlY3Rpb246IGNvbW1lbnRzQ29sbGVjdGlvbixcclxuICAgICAgICBjb21tZW50VGl0bGVzQ29sbGVjdGlvbjogY29tbWVudFRpdGxlc0NvbGxlY3Rpb24sXHJcbiAgICAgICAgcHJvbXB0UXVlc3Rpb246IHByb21wdFF1ZXN0aW9uLFxyXG4gICAgICAgIHByb21wdFJlc3BvbnNlOiBwcm9tcHRSZXNwb25zZSxcclxuICAgICAgICBhZGRpdGlvbmFsUHJvbXB0UXVlc3Rpb246IGFkZGl0aW9uYWxQcm9tcHRRdWVzdGlvbixcclxuICAgICAgICBhZGRpdGlvbmFsUHJvbXB0UmVzcG9uc2U6IGFkZGl0aW9uYWxQcm9tcHRSZXNwb25zZSxcclxuICAgICAgICBpbnNpZ2h0ZnVsUXVlc3Rpb25PcHRpb25zQ29sbGVjdGlvbjogaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9uc0NvbGxlY3Rpb24sXHJcbiAgICAgICAgaW5zaWdodGZ1bFF1ZXN0aW9uQW5zd2Vyc0NvbGxlY3Rpb246IGluc2lnaHRmdWxRdWVzdGlvbkFuc3dlcnNDb2xsZWN0aW9uLFxyXG4gICAgfTtcclxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRhO1xyXG59XHJcbmZ1bmN0aW9uIHVwZGF0ZUV4dGVuZGVkTWFuaWZlc3REYXRhKHRyYW5zcG9ydGVyLCBmb3JtYXR0ZWREYXRhKSB7XHJcbiAgICB2YXIgY29tbWVudFZhbHVlcztcclxuICAgIHZhciBjb21tZW50VGl0bGVzID0gW107XHJcbiAgICBpZiAoZm9ybWF0dGVkRGF0YS5jb21tZW50c0NvbGxlY3Rpb24ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbW1lbnRWYWx1ZXMgPSBmb3JtYXR0ZWREYXRhLmNvbW1lbnRzQ29sbGVjdGlvbjtcclxuICAgICAgICBjb21tZW50VGl0bGVzID0gZm9ybWF0dGVkRGF0YS5jb21tZW50VGl0bGVzQ29sbGVjdGlvbjtcclxuICAgIH1cclxuICAgIHZhciBleHRlbmRlZE1hbmlmZXN0RGF0YSA9IEpTT04ucGFyc2UodHJhbnNwb3J0ZXIuZ2V0RXh0ZW5kZWRNYW5pZmVzdERhdGEoKSk7XHJcbiAgICBleHRlbmRlZE1hbmlmZXN0RGF0YS5zdXJ2ZXlTdHJpbmdzID0gSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgIHByb21wdDogeyB0aXRsZTogXCJcIiwgcXVlc3Rpb246IGZvcm1hdHRlZERhdGEgPT09IG51bGwgfHwgZm9ybWF0dGVkRGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZm9ybWF0dGVkRGF0YS5wcm9tcHRRdWVzdGlvbiwgeWVzQnV0dG9uVGV4dDogXCJZRVNcIiwgbm9CdXR0b25UZXh0OiBcIk5PXCIgfSxcclxuICAgICAgICByYXRpbmc6IFt7IHF1ZXN0aW9uOiBmb3JtYXR0ZWREYXRhID09PSBudWxsIHx8IGZvcm1hdHRlZERhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZvcm1hdHRlZERhdGEucmF0aW5nUXVlc3Rpb24sIG9wdGlvbnM6IFtdIH1dLFxyXG4gICAgICAgIGNvbW1lbnQ6IGNvbW1lbnRUaXRsZXMsXHJcbiAgICAgICAgbXVsdGlwbGVDaG9pY2U6IGZvcm1hdHRlZERhdGEuaW5zaWdodGZ1bFF1ZXN0aW9uT3B0aW9uc0NvbGxlY3Rpb24sXHJcbiAgICB9KTtcclxuICAgIGV4dGVuZGVkTWFuaWZlc3REYXRhLnN1cnZleVNwZWNpZmljRGF0YSA9IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICByYXRpbmc6IFt7IG51bWJlck9mT3B0aW9uczogZm9ybWF0dGVkRGF0YS5yYXRpbmdzTGlzdExlbmd0aCwgc2VsZWN0ZWRSYXRpbmc6IGZvcm1hdHRlZERhdGEucmF0aW5nIH1dLFxyXG4gICAgICAgIGNvbW1lbnQ6IGNvbW1lbnRWYWx1ZXMsXHJcbiAgICAgICAgbXVsdGlwbGVDaG9pY2U6IGZvcm1hdHRlZERhdGEuaW5zaWdodGZ1bFF1ZXN0aW9uQW5zd2Vyc0NvbGxlY3Rpb24sXHJcbiAgICB9KTtcclxuICAgIHRyYW5zcG9ydGVyLnNldEV4dGVuZGVkTWFuaWZlc3REYXRhKEpTT04uc3RyaW5naWZ5KGV4dGVuZGVkTWFuaWZlc3REYXRhKSk7XHJcbiAgICByZXR1cm4gZXh0ZW5kZWRNYW5pZmVzdERhdGE7XHJcbn1cclxuZnVuY3Rpb24gdXBkYXRlQXBwRGF0YSgpIHtcclxuICAgIHZhciBhcHBEYXRhID0gQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFwcGxpY2F0aW9uR3JvdXAuYXBwRGF0YTtcclxuICAgIHZhciBhcHBEYXRhVmFsdWVzID0gW107XHJcbiAgICB2YXIgY3ZTdXJ2ZXlJbmZvID0ge1xyXG4gICAgICAgIGFkZGl0aW9uYWxJbmZvOiB7XHJcbiAgICAgICAgICAgIFN1cnZleURlc2NyaXB0aW9uOiBjdXN0b21lclZvaWNlU3VydmV5VVgsXHJcbiAgICAgICAgICAgIEZsaWdodDogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDVlN1cnZleUZsaWdodHMoKSxcclxuICAgICAgICAgICAgSXNDb3BpbG90TGljZW5zZUVuYWJsZWQ6IENvbmZpZ3VyYXRpb24uZ2V0KCkuaXNDb3BpbG90TGljZW5zZUVuYWJsZWQoKS50b1N0cmluZygpXHJcbiAgICAgICAgfSxcclxuICAgIH07XHJcbiAgICBpZiAoaXNOT1UoYXBwRGF0YSkpIHtcclxuICAgICAgICBhcHBEYXRhVmFsdWVzLnB1c2goe30pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgYXBwRGF0YVZhbHVlcy5wdXNoKEpTT04ucGFyc2UoYXBwRGF0YSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5BUFBEQVRBX0pTT05fUEFSU0VfRVJST1IpO1xyXG4gICAgICAgICAgICBhcHBEYXRhVmFsdWVzLnB1c2goe30pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGFwcERhdGFWYWx1ZXMucHVzaChjdlN1cnZleUluZm8pO1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGFwcERhdGFWYWx1ZXMpO1xyXG59XHJcbmZ1bmN0aW9uIHNldFRyYW5zcG9ydGVyVmFsdWVzKHRyYW5zcG9ydGVyLCBmb3JtYXR0ZWREYXRhKSB7XHJcbiAgICB0cmFuc3BvcnRlci5zZXRNYW5pZmVzdFZhbHVlcyhDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldEpzb25FbGVtZW50cygpKTtcclxuICAgIHVwZGF0ZUV4dGVuZGVkTWFuaWZlc3REYXRhKHRyYW5zcG9ydGVyLCBmb3JtYXR0ZWREYXRhKTtcclxuICAgIGlmIChmb3JtYXR0ZWREYXRhLmVtYWlsKSB7XHJcbiAgICAgICAgdHJhbnNwb3J0ZXIuc2V0RW1haWwoZm9ybWF0dGVkRGF0YS5lbWFpbCk7XHJcbiAgICB9XHJcbiAgICB2YXIgYXBwRGF0YSA9IHVwZGF0ZUFwcERhdGEoKTtcclxuICAgIHRyYW5zcG9ydGVyLnNldEFwcERhdGEoYXBwRGF0YSk7XHJcbiAgICB2YXIgcHJlR2VuZXJhdGVkSWQgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFByZUdlbmVyYXRlZENsaWVudEZlZWRiYWNrSWQoKTtcclxuICAgIGlmIChwcmVHZW5lcmF0ZWRJZCkge1xyXG4gICAgICAgIHRyYW5zcG9ydGVyLnNldENsaWVudEZlZWRiYWNrSWQocHJlR2VuZXJhdGVkSWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyYW5zcG9ydGVyO1xyXG59XHJcbmZ1bmN0aW9uIG9uQ1ZTdWJtaXQoZGF0YSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB2YXIgZm9ybWF0dGVkRGF0YSA9IGZvcm1hdFN1Ym1pdERhdGEoZGF0YSk7XHJcbiAgICAgICAgdmFyIHJhdGluZyA9IGZvcm1hdHRlZERhdGEucmF0aW5nLCBwcm9tcHRSZXNwb25zZSA9IGZvcm1hdHRlZERhdGEucHJvbXB0UmVzcG9uc2UsIGFkZGl0aW9uYWxQcm9tcHRSZXNwb25zZSA9IGZvcm1hdHRlZERhdGEuYWRkaXRpb25hbFByb21wdFJlc3BvbnNlO1xyXG4gICAgICAgIHZhciBpc1Byb21wdEFuc3dlckxvZ01hbmRhdG9yeSA9IHZhbGlkYXRlTG9nUHJvbXB0QW5zd2VyKHByb21wdFJlc3BvbnNlLCBhZGRpdGlvbmFsUHJvbXB0UmVzcG9uc2UpO1xyXG4gICAgICAgIGlmIChpc1Byb21wdEFuc3dlckxvZ01hbmRhdG9yeSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciB0cmFuc3BvcnRlciA9IG5ldyBUcmFuc3BvcnRlcihDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkuZW52aXJvbm1lbnQsIEFwaS5TdXJ2ZXlUeXBlW0NvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0U3VydmV5VHlwZSgpXSwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFwcElkLCBcIlN1cnZleVwiLCBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkuYXBwbGljYXRpb25Hcm91cCwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLnRlbGVtZXRyeUdyb3VwLCBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkud2ViR3JvdXApO1xyXG4gICAgICAgIHZhciBjb21tZW50ID0gaXNOT1UoZmlyc3RDb21tZW50UmVzcG9uc2UpID8gbnVsbCA6IGZpcnN0Q29tbWVudFJlc3BvbnNlO1xyXG4gICAgICAgIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuc2V0VmFsdWVzKE51bWJlcihyYXRpbmcpLCBjb21tZW50ID8gY29tbWVudCA6IG51bGwpO1xyXG4gICAgICAgIHNldFRyYW5zcG9ydGVyVmFsdWVzKHRyYW5zcG9ydGVyLCBmb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICB0cmFuc3BvcnRlci5zdWJtaXQoKTtcclxuICAgICAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT09IFwiRm9ybVBhcnRpYWxSZXNwb25zZVN1Ym1pdHRlZFwiIHx8XHJcbiAgICAgICAgICAgIGRhdGEuZXZlbnRUeXBlID09PSBcIkZvcm1SZXNwb25zZVN1Ym1pdHRlZFwiKSB7XHJcbiAgICAgICAgICAgIG9uRGlzbWlzc0ZsYWcgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAoaGFzU3VibWl0dGVkRGF0YSkge1xyXG4gICAgICAgICAgICAgICAgTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9TRUNPTkRBUllfU1VCTUlULm5hbWUgPVxyXG4gICAgICAgICAgICAgICAgICAgIFN1cnZleVVJRm9ybVNlY29uZGFyeVN1Ym1pdE5hbWUgKyBkYXRhLnBhZ2VOdW1iZXI7XHJcbiAgICAgICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9GT1JNX1NFQ09OREFSWV9TVUJNSVQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9TVUJNSVQpO1xyXG4gICAgICAgICAgICAgICAgaGFzU3VibWl0dGVkRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBjYXRjaCAoZXgpIHtcclxuICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9GT1JNX1NVQk1JVF9FUlJPUik7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdmFsaWRhdGVMb2dQcm9tcHRBbnN3ZXIocHJvbXB0UmVzcG9uc2UsIGFkZGl0aW9uYWxQcm9tcHRSZXNwb25zZSkge1xyXG4gICAgdmFyIGlzUHJvbXB0QW5zd2VyTG9nTmVlZGVkID0gZmFsc2U7XHJcbiAgICB2YXIgaXNQcm9tcHRBbnN3ZXJObyA9IGZhbHNlO1xyXG4gICAgaWYgKCFpc05PVShwcm9tcHRSZXNwb25zZSkpIHtcclxuICAgICAgICBpc1Byb21wdEFuc3dlckxvZ05lZWRlZCA9IExvZ1Byb21wdEFuc3dlcihwcm9tcHRSZXNwb25zZSwgXCJwcm9tcHRcIiwgaXNQcm9tcHRSZXNwb25zZUxvZ1ZhbGlkYXRlZCk7XHJcbiAgICAgICAgaXNQcm9tcHRBbnN3ZXJObyA9IHByb21wdFJlc3BvbnNlID09PSBQcm9tcHRDb25zdGFudHMuTm87XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzTk9VKGFkZGl0aW9uYWxQcm9tcHRSZXNwb25zZSkpIHtcclxuICAgICAgICBpc1Byb21wdEFuc3dlckxvZ05lZWRlZCA9IExvZ1Byb21wdEFuc3dlcihhZGRpdGlvbmFsUHJvbXB0UmVzcG9uc2UsIFwiYWRkaXRpb25hbFwiLCBpc0FkZGl0aW9uYWxQcm9tcHRSZXNwb25zZUxvZ1ZhbGlkYXRlZCk7XHJcbiAgICAgICAgaXNQcm9tcHRBbnN3ZXJObyA9IGFkZGl0aW9uYWxQcm9tcHRSZXNwb25zZSA9PT0gUHJvbXB0Q29uc3RhbnRzLk5vO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGlzUHJvbXB0QW5zd2VyTG9nTmVlZGVkIHx8IGlzUHJvbXB0QW5zd2VyTm87XHJcbn1cclxuZnVuY3Rpb24gTG9nUHJvbXB0QW5zd2VyKHByb21wdFJlc3BvbnNlLCBxdWVzdGlvblR5cGUsIGlzUHJvbXB0QW5zd2VyTG9nZ2VkKSB7XHJcbiAgICBpZiAoIWlzUHJvbXB0QW5zd2VyTG9nZ2VkKSB7XHJcbiAgICAgICAgdmFyIHByb21wdE1lc3NhZ2VDbGlja2VkID0gdm9pZCAwO1xyXG4gICAgICAgIHZhciBwcm9tcHRNZXNzYWdlQ2xvc2VkID0gdm9pZCAwO1xyXG4gICAgICAgIGlmIChxdWVzdGlvblR5cGUgPT09IFwicHJvbXB0XCIpIHtcclxuICAgICAgICAgICAgaXNQcm9tcHRSZXNwb25zZUxvZ1ZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHByb21wdE1lc3NhZ2VDbGlja2VkID0gTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX0NMSUNLRUQ7XHJcbiAgICAgICAgICAgIHByb21wdE1lc3NhZ2VDbG9zZWQgPSBMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9QUk9NUFRfVVNFUkNMT1NFRDtcclxuICAgICAgICAgICAgaWYgKChwcm9tcHRSZXNwb25zZSA9PT0gUHJvbXB0Q29uc3RhbnRzLlllcykpIHtcclxuICAgICAgICAgICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fU0hPV04pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBpc0FkZGl0aW9uYWxQcm9tcHRSZXNwb25zZUxvZ1ZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHByb21wdE1lc3NhZ2VDbGlja2VkID0gTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfQURESVRJT05BTFBST01QVF9DTElDS0VEO1xyXG4gICAgICAgICAgICBwcm9tcHRNZXNzYWdlQ2xvc2VkID0gTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfQURESVRJT05BTFBST01QVF9VU0VSQ0xPU0VEO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChwcm9tcHRSZXNwb25zZSA9PT0gUHJvbXB0Q29uc3RhbnRzLk5vID8gcHJvbXB0TWVzc2FnZUNsb3NlZCA6IHByb21wdE1lc3NhZ2VDbGlja2VkKTtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBvbkNWQ2FuY2VsKGRhdGEpIHtcclxuICAgIHZhciBfYTtcclxuICAgIHN3aXRjaCAoZGF0YS5ldmVudFR5cGUpIHtcclxuICAgICAgICBjYXNlIFwiRm9ybUNsb3NlZFwiOlxyXG4gICAgICAgICAgICBpZiAoaXNOT1UoZGF0YS5wYWdlTnVtYmVyKSkge1xyXG4gICAgICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9VU0VSQ0xPU0VEKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fVVNFUkNMT1NFRC5uYW1lID0gU3VydmV5VUlGb3JtVXNlckNsb3NlZE5hbWUgKyBkYXRhLnBhZ2VOdW1iZXIuY2hhckF0KGRhdGEucGFnZU51bWJlci5sZW5ndGggLSAxKTtcclxuICAgICAgICAgICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fVVNFUkNMT1NFRCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcIlRoYW5rWW91UGFnZUNsb3NlZFwiOlxyXG4gICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9USEFOS1lPVVBBR0VfVVNFUkNMT1NFRCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJQcm9tcHRDbG9zZWRcIjpcclxuICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX1VTRVJDTE9TRUQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiQWRkaXRpb25hbFByb21wdENsb3NlZFwiOlxyXG4gICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9BRERJVElPTkFMUFJPTVBUX1VTRVJDTE9TRUQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiRm9ybUF1dG9EaXNtaXNzZWRcIjpcclxuICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX0FVVE9ESVNNSVNTRUQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwiVGhhbmtZb3VQYWdlQXV0b0Rpc21pc3NlZFwiOlxyXG4gICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9USEFOS1lPVVBBR0VfQVVUT0RJU01JU1NFRCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJGb3JtUmVzcG9uc2VDYW5jZWxlZFwiOlxyXG4gICAgICAgICAgICBpZiAoaXNOT1UoZGF0YS5wYWdlTnVtYmVyKSkge1xyXG4gICAgICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9VU0VSQ0xPU0VEKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgIExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fVVNFUkNMT1NFRC5uYW1lID0gU3VydmV5VUlGb3JtVXNlckNsb3NlZE5hbWUgKyAoKF9hID0gZGF0YS5wYWdlTnVtYmVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2hhckF0KGRhdGEucGFnZU51bWJlci5sZW5ndGggLSAxKSk7XHJcbiAgICAgICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9GT1JNX1VTRVJDTE9TRUQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fTk9fUkVUVVJOX1RZUEUpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIG9uRGlzbWlzcyhvbkRpc21pc3NGbGFnKTtcclxufVxyXG5mdW5jdGlvbiBvbkNWTG9hZGVkKGRhdGEpIHtcclxuICAgIGRhdGEuZXZlbnRJZCA9IExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fU0hPV047XHJcbiAgICBpZiAoZGF0YS5oYXNTdXJ2ZXlEaXNwYXRjaGVyKSB7XHJcbiAgICAgICAgZGF0YS5ldmVudElkID0gTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9ESVNQQVRDSEVSX0lNUExFTUVOVEVEO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YS5oYXNTdXJ2ZXlQcm9tcHRTaG93bikge1xyXG4gICAgICAgIGRhdGEuZXZlbnRJZCA9IExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX1BST01QVF9TSE9XTjtcclxuICAgIH1cclxuICAgIGxvZ0dhdGVjcmFzaEV2ZW50KGRhdGEpO1xyXG59XHJcbmZ1bmN0aW9uIGxvZ0dhdGVjcmFzaEV2ZW50KGRhdGEpIHtcclxuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcclxuICAgIHZhciBjb25maWd1cmF0aW9uID0gQ29uZmlndXJhdGlvbi5nZXQoKTtcclxuICAgIHZhciBsb2dDdXN0b21Qcm9wcyA9IHtcclxuICAgICAgICBUaW1lTWlsbGlzZWNvbmRzOiBkYXRhLlRpbWVNaWxsaXNlY29uZHMsXHJcbiAgICAgICAgQ2FtcGFpZ25JZDogY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCksXHJcbiAgICAgICAgU3VydmV5SWQ6IGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSxcclxuICAgICAgICBTdXJ2ZXlUeXBlOiBjb25maWd1cmF0aW9uLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFN1cnZleVR5cGUoKSxcclxuICAgICAgICBFcnJvck1lc3NhZ2U6ICgoX2EgPSBkYXRhLmN1c3RvbVByb3BlcnRpZXMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5FcnJvck1lc3NhZ2UpID8gKF9iID0gZGF0YS5jdXN0b21Qcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuRXJyb3JNZXNzYWdlIDogbnVsbCxcclxuICAgICAgICBNZXNzYWdlOiAoKF9jID0gZGF0YS5jdXN0b21Qcm9wZXJ0aWVzKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuTWVzc2FnZSkgPyAoX2QgPSBkYXRhLmN1c3RvbVByb3BlcnRpZXMpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5NZXNzYWdlIDogbnVsbCxcclxuICAgIH07XHJcbiAgICBsb2dUZWxlbWV0cnlFdmVudChkYXRhLmV2ZW50SWQsIGxvZ0N1c3RvbVByb3BzKTtcclxufVxyXG5mdW5jdGlvbiBsb2dUZWxlbWV0cnlFdmVudChldmVudElkLCBjdXN0b21Qcm9wZXJ0aWVzKSB7XHJcbiAgICB2YXIgY29uZmlndXJhdGlvbiA9IENvbmZpZ3VyYXRpb24uZ2V0KCk7XHJcbiAgICB2YXIgbG9nQ3VzdG9tUHJvcHM7XHJcbiAgICBpZiAoIWN1c3RvbVByb3BlcnRpZXMpIHtcclxuICAgICAgICBsb2dDdXN0b21Qcm9wcyA9IHtcclxuICAgICAgICAgICAgQ2FtcGFpZ25JZDogY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCksXHJcbiAgICAgICAgICAgIFN1cnZleUlkOiBjb25maWd1cmF0aW9uLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldElkKCksXHJcbiAgICAgICAgICAgIFN1cnZleVR5cGU6IGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0U3VydmV5VHlwZSgpLFxyXG4gICAgICAgICAgICBDbGllbnRGZWVkYmFja0lkOiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFByZUdlbmVyYXRlZENsaWVudEZlZWRiYWNrSWQoKSxcclxuICAgICAgICAgICAgQ1ZGb3JtSWQ6IGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0Q1ZTdXJ2ZXlGb3JtSWQoKSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgbG9nQ3VzdG9tUHJvcHMgPSBjdXN0b21Qcm9wZXJ0aWVzO1xyXG4gICAgfVxyXG4gICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChldmVudElkLCAxLCBsb2dDdXN0b21Qcm9wcyk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZVN1cnZleVN0eWxpbmcoY3NzVmFycywgaHRtbERhdGFBdHRycykge1xyXG4gICAgdmFyIHJlbmRlckNvbnRleHQgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldENWUmVuZGVyQ29udGV4dCgpO1xyXG4gICAgaWYgKHJlbmRlckNvbnRleHQpIHtcclxuICAgICAgICByZW5kZXJDb250ZXh0LnVwZGF0ZVN0eWxpbmcoY3NzVmFycywgaHRtbERhdGFBdHRycyk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICB2YXIgbG9nQ3VzdG9tUHJvcHMgPSB7XHJcbiAgICAgICAgICAgIENhbXBhaWduSWQ6IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0Q2FtcGFpZ25JZCgpLFxyXG4gICAgICAgICAgICBTdXJ2ZXlJZDogQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRJZCgpLFxyXG4gICAgICAgICAgICBTdXJ2ZXlUeXBlOiBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFN1cnZleVR5cGUoKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGludGVybmFsLmxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1JFTkRFUl9DT05URVhUX0VSUk9SLCBsb2dDdXN0b21Qcm9wcyk7XHJcbiAgICB9XHJcbn1cclxudmFyIGludGVybmFsID0ge1xyXG4gICAgbG9nVGVsZW1ldHJ5RXZlbnQ6IGxvZ1RlbGVtZXRyeUV2ZW50LFxyXG59O1xyXG5leHBvcnQgdmFyIHVuaXRUZXN0RXhwb3J0cyA9IHsgaW50ZXJuYWw6IGludGVybmFsIH0uaW50ZXJuYWw7XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UI/Toast/CVToast.ts\n"); /***/ }), /***/ "./scripts/app/UI/Toast/Events.ts": /*!****************************************!*\ !*** ./scripts/app/UI/Toast/Events.ts ***! \****************************************/ /*! exports provided: register */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"register\", function() { return register; });\n/* harmony import */ var _ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\n/* harmony import */ var _ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _Transport_Transport__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../../Transport/Transport */ \"./scripts/app/Transport/Transport.ts\");\n/* harmony import */ var _Constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../Constants */ \"./scripts/app/Constants.ts\");\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../Utils */ \"./scripts/app/UI/Utils.ts\");\n/* harmony import */ var _SpinnerControl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../SpinnerControl */ \"./scripts/app/UI/SpinnerControl.ts\");\n/* harmony import */ var _Logging_Logging__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../../Logging/Logging */ \"./scripts/app/Logging/Logging.ts\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./../../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../Utils */ \"./scripts/app/Utils.ts\");\n/* harmony import */ var _Personalizer_PersonalizerClient__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../Personalizer/PersonalizerClient */ \"./scripts/app/Personalizer/PersonalizerClient.ts\");\nvar cov_2hdnrpmoyp=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Events.ts\",hash=\"14853633fe499234da8e0f2120f5b4d572dd48ca\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Events.ts\",statementMap:{\"0\":{start:{line:11,column:12},end:{line:11,column:23}},\"1\":{start:{line:17,column:4},end:{line:17,column:17}},\"2\":{start:{line:18,column:4},end:{line:18,column:25}},\"3\":{start:{line:21,column:4},end:{line:21,column:22}},\"4\":{start:{line:23,column:20},end:{line:23,column:22}},\"5\":{start:{line:25,column:4},end:{line:25,column:50}},\"6\":{start:{line:26,column:4},end:{line:26,column:69}},\"7\":{start:{line:29,column:4},end:{line:32,column:5}},\"8\":{start:{line:30,column:23},end:{line:30,column:42}},\"9\":{start:{line:31,column:8},end:{line:31,column:83}},\"10\":{start:{line:33,column:4},end:{line:33,column:23}},\"11\":{start:{line:36,column:24},end:{line:36,column:43}},\"12\":{start:{line:37,column:4},end:{line:47,column:7}},\"13\":{start:{line:50,column:4},end:{line:50,column:81}},\"14\":{start:{line:50,column:33},end:{line:50,column:79}},\"15\":{start:{line:50,column:69},end:{line:50,column:76}},\"16\":{start:{line:51,column:4},end:{line:51,column:27}},\"17\":{start:{line:52,column:4},end:{line:52,column:22}},\"18\":{start:{line:53,column:4},end:{line:53,column:67}},\"19\":{start:{line:54,column:4},end:{line:54,column:62}},\"20\":{start:{line:55,column:4},end:{line:55,column:68}},\"21\":{start:{line:56,column:4},end:{line:56,column:71}},\"22\":{start:{line:57,column:4},end:{line:57,column:69}},\"23\":{start:{line:58,column:4},end:{line:58,column:71}},\"24\":{start:{line:59,column:4},end:{line:59,column:31}},\"25\":{start:{line:60,column:25},end:{line:60,column:93}},\"26\":{start:{line:61,column:4},end:{line:63,column:5}},\"27\":{start:{line:62,column:8},end:{line:62,column:90}},\"28\":{start:{line:64,column:22},end:{line:64,column:107}},\"29\":{start:{line:65,column:22},end:{line:65,column:79}},\"30\":{start:{line:66,column:32},end:{line:66,column:61}},\"31\":{start:{line:67,column:4},end:{line:81,column:5}},\"32\":{start:{line:69,column:12},end:{line:69,column:28}},\"33\":{start:{line:70,column:12},end:{line:70,column:18}},\"34\":{start:{line:72,column:32},end:{line:72,column:137}},\"35\":{start:{line:73,column:12},end:{line:75,column:13}},\"36\":{start:{line:74,column:16},end:{line:74,column:44}},\"37\":{start:{line:76,column:12},end:{line:76,column:18}},\"38\":{start:{line:79,column:12},end:{line:79,column:84}},\"39\":{start:{line:80,column:12},end:{line:80,column:18}},\"40\":{start:{line:82,column:4},end:{line:82,column:35}},\"41\":{start:{line:83,column:4},end:{line:88,column:5}},\"42\":{start:{line:84,column:8},end:{line:84,column:27}},\"43\":{start:{line:87,column:8},end:{line:87,column:211}},\"44\":{start:{line:89,column:4},end:{line:105,column:5}},\"45\":{start:{line:90,column:34},end:{line:90,column:81}},\"46\":{start:{line:91,column:8},end:{line:104,column:9}},\"47\":{start:{line:92,column:12},end:{line:103,column:36}},\"48\":{start:{line:93,column:16},end:{line:102,column:17}},\"49\":{start:{line:94,column:20},end:{line:94,column:38}},\"50\":{start:{line:95,column:20},end:{line:101,column:21}},\"51\":{start:{line:96,column:24},end:{line:96,column:188}},\"52\":{start:{line:97,column:24},end:{line:97,column:227}},\"53\":{start:{line:100,column:24},end:{line:100,column:153}},\"54\":{start:{line:108,column:24},end:{line:108,column:71}},\"55\":{start:{line:109,column:4},end:{line:113,column:5}},\"56\":{start:{line:110,column:27},end:{line:110,column:73}},\"57\":{start:{line:111,column:8},end:{line:111,column:113}},\"58\":{start:{line:112,column:8},end:{line:112,column:55}},\"59\":{start:{line:116,column:4},end:{line:122,column:5}},\"60\":{start:{line:117,column:8},end:{line:117,column:31}},\"61\":{start:{line:118,column:8},end:{line:118,column:32}},\"62\":{start:{line:119,column:8},end:{line:119,column:26}},\"63\":{start:{line:120,column:8},end:{line:120,column:33}},\"64\":{start:{line:121,column:8},end:{line:121,column:27}},\"65\":{start:{line:125,column:4},end:{line:125,column:27}},\"66\":{start:{line:126,column:4},end:{line:126,column:28}},\"67\":{start:{line:127,column:4},end:{line:127,column:22}},\"68\":{start:{line:128,column:4},end:{line:128,column:29}},\"69\":{start:{line:129,column:4},end:{line:129,column:23}},\"70\":{start:{line:132,column:4},end:{line:136,column:5}},\"71\":{start:{line:133,column:8},end:{line:133,column:172}},\"72\":{start:{line:134,column:8},end:{line:134,column:213}},\"73\":{start:{line:135,column:8},end:{line:135,column:15}},\"74\":{start:{line:137,column:4},end:{line:137,column:188}},\"75\":{start:{line:140,column:4},end:{line:143,column:5}},\"76\":{start:{line:141,column:8},end:{line:141,column:39}},\"77\":{start:{line:142,column:8},end:{line:142,column:29}},\"78\":{start:{line:146,column:4},end:{line:146,column:27}},\"79\":{start:{line:147,column:4},end:{line:147,column:28}},\"80\":{start:{line:148,column:4},end:{line:153,column:5}},\"81\":{start:{line:149,column:8},end:{line:149,column:27}},\"82\":{start:{line:152,column:8},end:{line:152,column:27}},\"83\":{start:{line:156,column:18},end:{line:156,column:90}},\"84\":{start:{line:157,column:4},end:{line:157,column:22}},\"85\":{start:{line:158,column:4},end:{line:163,column:5}},\"86\":{start:{line:159,column:8},end:{line:159,column:69}},\"87\":{start:{line:162,column:8},end:{line:162,column:73}},\"88\":{start:{line:166,column:14},end:{line:166,column:40}},\"89\":{start:{line:167,column:4},end:{line:169,column:5}},\"90\":{start:{line:168,column:8},end:{line:168,column:21}},\"91\":{start:{line:170,column:4},end:{line:170,column:16}},\"92\":{start:{line:171,column:4},end:{line:171,column:16}},\"93\":{start:{line:174,column:4},end:{line:174,column:23}},\"94\":{start:{line:175,column:4},end:{line:175,column:62}},\"95\":{start:{line:176,column:4},end:{line:176,column:59}},\"96\":{start:{line:177,column:4},end:{line:177,column:64}},\"97\":{start:{line:178,column:4},end:{line:181,column:5}},\"98\":{start:{line:179,column:8},end:{line:179,column:83}},\"99\":{start:{line:180,column:8},end:{line:180,column:100}},\"100\":{start:{line:182,column:21},end:{line:182,column:64}},\"101\":{start:{line:183,column:4},end:{line:185,column:5}},\"102\":{start:{line:184,column:8},end:{line:184,column:30}},\"103\":{start:{line:186,column:4},end:{line:192,column:5}},\"104\":{start:{line:187,column:8},end:{line:187,column:172}},\"105\":{start:{line:188,column:8},end:{line:188,column:206}},\"106\":{start:{line:191,column:8},end:{line:191,column:127}},\"107\":{start:{line:195,column:4},end:{line:195,column:68}},\"108\":{start:{line:198,column:4},end:{line:198,column:27}},\"109\":{start:{line:199,column:4},end:{line:199,column:28}},\"110\":{start:{line:200,column:4},end:{line:200,column:63}},\"111\":{start:{line:201,column:18},end:{line:201,column:59}},\"112\":{start:{line:202,column:22},end:{line:202,column:400}},\"113\":{start:{line:203,column:25},end:{line:203,column:66}},\"114\":{start:{line:204,column:26},end:{line:204,column:66}},\"115\":{start:{line:205,column:25},end:{line:205,column:98}},\"116\":{start:{line:206,column:4},end:{line:206,column:129}},\"117\":{start:{line:207,column:4},end:{line:207,column:94}},\"118\":{start:{line:208,column:24},end:{line:208,column:71}},\"119\":{start:{line:209,column:23},end:{line:209,column:69}},\"120\":{start:{line:210,column:4},end:{line:212,column:5}},\"121\":{start:{line:211,column:8},end:{line:211,column:49}},\"122\":{start:{line:213,column:4},end:{line:215,column:5}},\"123\":{start:{line:214,column:8},end:{line:214,column:49}},\"124\":{start:{line:216,column:4},end:{line:216,column:25}},\"125\":{start:{line:217,column:4},end:{line:217,column:22}},\"126\":{start:{line:218,column:4},end:{line:218,column:21}},\"127\":{start:{line:219,column:4},end:{line:219,column:161}},\"128\":{start:{line:222,column:4},end:{line:222,column:232}}},fnMap:{\"0\":{name:\"dismissAll\",decl:{start:{line:16,column:9},end:{line:16,column:19}},loc:{start:{line:16,column:31},end:{line:19,column:1}},line:16},\"1\":{name:\"unregister\",decl:{start:{line:20,column:9},end:{line:20,column:19}},loc:{start:{line:20,column:22},end:{line:22,column:1}},line:20},\"2\":{name:\"addListener\",decl:{start:{line:24,column:9},end:{line:24,column:20}},loc:{start:{line:24,column:42},end:{line:27,column:1}},line:24},\"3\":{name:\"removeListeners\",decl:{start:{line:28,column:9},end:{line:28,column:24}},loc:{start:{line:28,column:27},end:{line:34,column:1}},line:28},\"4\":{name:\"logTelemetryEvent\",decl:{start:{line:35,column:9},end:{line:35,column:26}},loc:{start:{line:35,column:132},end:{line:48,column:1}},line:35},\"5\":{name:\"register\",decl:{start:{line:49,column:16},end:{line:49,column:24}},loc:{start:{line:49,column:37},end:{line:106,column:1}},line:49},\"6\":{name:\"(anonymous_6)\",decl:{start:{line:50,column:46},end:{line:50,column:47}},loc:{start:{line:50,column:67},end:{line:50,column:78}},line:50},\"7\":{name:\"(anonymous_7)\",decl:{start:{line:92,column:49},end:{line:92,column:50}},loc:{start:{line:92,column:61},end:{line:103,column:13}},line:92},\"8\":{name:\"emailCheckBoxHandler\",decl:{start:{line:107,column:9},end:{line:107,column:29}},loc:{start:{line:107,column:37},end:{line:114,column:1}},line:107},\"9\":{name:\"toastKeyEventHandler\",decl:{start:{line:115,column:9},end:{line:115,column:29}},loc:{start:{line:115,column:37},end:{line:123,column:1}},line:115},\"10\":{name:\"toastCancelHandler\",decl:{start:{line:124,column:9},end:{line:124,column:27}},loc:{start:{line:124,column:35},end:{line:130,column:1}},line:124},\"11\":{name:\"onCancelLoggingRoutine\",decl:{start:{line:131,column:9},end:{line:131,column:31}},loc:{start:{line:131,column:34},end:{line:138,column:1}},line:131},\"12\":{name:\"clearAutoDismiss\",decl:{start:{line:139,column:9},end:{line:139,column:25}},loc:{start:{line:139,column:28},end:{line:144,column:1}},line:139},\"13\":{name:\"promptContainerHandler\",decl:{start:{line:145,column:9},end:{line:145,column:31}},loc:{start:{line:145,column:39},end:{line:154,column:1}},line:145},\"14\":{name:\"interceptHandler\",decl:{start:{line:155,column:9},end:{line:155,column:25}},loc:{start:{line:155,column:28},end:{line:164,column:1}},line:155},\"15\":{name:\"openInNewTab\",decl:{start:{line:165,column:9},end:{line:165,column:21}},loc:{start:{line:165,column:27},end:{line:172,column:1}},line:165},\"16\":{name:\"showSurveyScreen\",decl:{start:{line:173,column:9},end:{line:173,column:25}},loc:{start:{line:173,column:28},end:{line:193,column:1}},line:173},\"17\":{name:\"ratingInputHandler\",decl:{start:{line:194,column:9},end:{line:194,column:27}},loc:{start:{line:194,column:35},end:{line:196,column:1}},line:194},\"18\":{name:\"submitButtonHandler\",decl:{start:{line:197,column:9},end:{line:197,column:28}},loc:{start:{line:197,column:36},end:{line:220,column:1}},line:197},\"19\":{name:\"isPersonalizerEnabledHelper\",decl:{start:{line:221,column:9},end:{line:221,column:36}},loc:{start:{line:221,column:39},end:{line:223,column:1}},line:221}},branchMap:{\"0\":{loc:{start:{line:50,column:4},end:{line:50,column:81}},type:\"if\",locations:[{start:{line:50,column:4},end:{line:50,column:81}},{start:{line:50,column:4},end:{line:50,column:81}}],line:50},\"1\":{loc:{start:{line:67,column:4},end:{line:81,column:5}},type:\"switch\",locations:[{start:{line:68,column:8},end:{line:70,column:18}},{start:{line:71,column:8},end:{line:77,column:9}},{start:{line:78,column:8},end:{line:80,column:18}}],line:67},\"2\":{loc:{start:{line:73,column:12},end:{line:75,column:13}},type:\"if\",locations:[{start:{line:73,column:12},end:{line:75,column:13}},{start:{line:73,column:12},end:{line:75,column:13}}],line:73},\"3\":{loc:{start:{line:83,column:4},end:{line:88,column:5}},type:\"if\",locations:[{start:{line:83,column:4},end:{line:88,column:5}},{start:{line:83,column:4},end:{line:88,column:5}}],line:83},\"4\":{loc:{start:{line:83,column:8},end:{line:83,column:76}},type:\"binary-expr\",locations:[{start:{line:83,column:8},end:{line:83,column:60}},{start:{line:83,column:64},end:{line:83,column:76}}],line:83},\"5\":{loc:{start:{line:89,column:4},end:{line:105,column:5}},type:\"if\",locations:[{start:{line:89,column:4},end:{line:105,column:5}},{start:{line:89,column:4},end:{line:105,column:5}}],line:89},\"6\":{loc:{start:{line:91,column:8},end:{line:104,column:9}},type:\"if\",locations:[{start:{line:91,column:8},end:{line:104,column:9}},{start:{line:91,column:8},end:{line:104,column:9}}],line:91},\"7\":{loc:{start:{line:93,column:16},end:{line:102,column:17}},type:\"if\",locations:[{start:{line:93,column:16},end:{line:102,column:17}},{start:{line:93,column:16},end:{line:102,column:17}}],line:93},\"8\":{loc:{start:{line:95,column:20},end:{line:101,column:21}},type:\"if\",locations:[{start:{line:95,column:20},end:{line:101,column:21}},{start:{line:95,column:20},end:{line:101,column:21}}],line:95},\"9\":{loc:{start:{line:109,column:4},end:{line:113,column:5}},type:\"if\",locations:[{start:{line:109,column:4},end:{line:113,column:5}},{start:{line:109,column:4},end:{line:113,column:5}}],line:109},\"10\":{loc:{start:{line:111,column:29},end:{line:111,column:112}},type:\"cond-expr\",locations:[{start:{line:111,column:53},end:{line:111,column:105}},{start:{line:111,column:108},end:{line:111,column:112}}],line:111},\"11\":{loc:{start:{line:116,column:4},end:{line:122,column:5}},type:\"if\",locations:[{start:{line:116,column:4},end:{line:122,column:5}},{start:{line:116,column:4},end:{line:122,column:5}}],line:116},\"12\":{loc:{start:{line:132,column:4},end:{line:136,column:5}},type:\"if\",locations:[{start:{line:132,column:4},end:{line:136,column:5}},{start:{line:132,column:4},end:{line:136,column:5}}],line:132},\"13\":{loc:{start:{line:132,column:8},end:{line:132,column:51}},type:\"binary-expr\",locations:[{start:{line:132,column:8},end:{line:132,column:18}},{start:{line:132,column:22},end:{line:132,column:51}}],line:132},\"14\":{loc:{start:{line:137,column:22},end:{line:137,column:124}},type:\"cond-expr\",locations:[{start:{line:137,column:35},end:{line:137,column:79}},{start:{line:137,column:82},end:{line:137,column:124}}],line:137},\"15\":{loc:{start:{line:140,column:4},end:{line:143,column:5}},type:\"if\",locations:[{start:{line:140,column:4},end:{line:143,column:5}},{start:{line:140,column:4},end:{line:143,column:5}}],line:140},\"16\":{loc:{start:{line:148,column:4},end:{line:153,column:5}},type:\"if\",locations:[{start:{line:148,column:4},end:{line:153,column:5}},{start:{line:148,column:4},end:{line:153,column:5}}],line:148},\"17\":{loc:{start:{line:158,column:4},end:{line:163,column:5}},type:\"if\",locations:[{start:{line:158,column:4},end:{line:163,column:5}},{start:{line:158,column:4},end:{line:163,column:5}}],line:158},\"18\":{loc:{start:{line:167,column:4},end:{line:169,column:5}},type:\"if\",locations:[{start:{line:167,column:4},end:{line:169,column:5}},{start:{line:167,column:4},end:{line:169,column:5}}],line:167},\"19\":{loc:{start:{line:178,column:4},end:{line:181,column:5}},type:\"if\",locations:[{start:{line:178,column:4},end:{line:181,column:5}},{start:{line:178,column:4},end:{line:181,column:5}}],line:178},\"20\":{loc:{start:{line:183,column:4},end:{line:185,column:5}},type:\"if\",locations:[{start:{line:183,column:4},end:{line:185,column:5}},{start:{line:183,column:4},end:{line:185,column:5}}],line:183},\"21\":{loc:{start:{line:183,column:8},end:{line:183,column:43}},type:\"binary-expr\",locations:[{start:{line:183,column:8},end:{line:183,column:18}},{start:{line:183,column:22},end:{line:183,column:43}}],line:183},\"22\":{loc:{start:{line:186,column:4},end:{line:192,column:5}},type:\"if\",locations:[{start:{line:186,column:4},end:{line:192,column:5}},{start:{line:186,column:4},end:{line:192,column:5}}],line:186},\"23\":{loc:{start:{line:204,column:26},end:{line:204,column:66}},type:\"binary-expr\",locations:[{start:{line:204,column:26},end:{line:204,column:40}},{start:{line:204,column:44},end:{line:204,column:66}}],line:204},\"24\":{loc:{start:{line:206,column:85},end:{line:206,column:127}},type:\"cond-expr\",locations:[{start:{line:206,column:102},end:{line:206,column:122}},{start:{line:206,column:125},end:{line:206,column:127}}],line:206},\"25\":{loc:{start:{line:210,column:4},end:{line:212,column:5}},type:\"if\",locations:[{start:{line:210,column:4},end:{line:212,column:5}},{start:{line:210,column:4},end:{line:212,column:5}}],line:210},\"26\":{loc:{start:{line:210,column:8},end:{line:210,column:75}},type:\"binary-expr\",locations:[{start:{line:210,column:8},end:{line:210,column:21}},{start:{line:210,column:25},end:{line:210,column:46}},{start:{line:210,column:50},end:{line:210,column:75}}],line:210},\"27\":{loc:{start:{line:213,column:4},end:{line:215,column:5}},type:\"if\",locations:[{start:{line:213,column:4},end:{line:215,column:5}},{start:{line:213,column:4},end:{line:215,column:5}}],line:213}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0},b:{\"0\":[0,0],\"1\":[0,0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0],\"10\":[0,0],\"11\":[0,0],\"12\":[0,0],\"13\":[0,0],\"14\":[0,0],\"15\":[0,0],\"16\":[0,0],\"17\":[0,0],\"18\":[0,0],\"19\":[0,0],\"20\":[0,0],\"21\":[0,0],\"22\":[0,0],\"23\":[0,0],\"24\":[0,0],\"25\":[0,0],\"26\":[0,0,0],\"27\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Events.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Events.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/**\\r\\n * Events.ts\\r\\n *\\r\\n * A module for all Event handling.\\r\\n */\\r\\n\\r\\nimport { Api, EndUserActions, SupportedOverrides } from \\\"@ms-ofb/floodgate-shared-typings\\\";\\r\\nimport { Transporter } from \\\"./../../Transport/Transport\\\";\\r\\nimport { AutoDismissValues, SDK_UXID_VERSION } from \\\"./../../Constants\\\";\\r\\nimport { Classes, IDs, Keys } from \\\"./../UiConstants\\\";\\r\\nimport * as UiUtils from \\\"./../Utils\\\";\\r\\nimport { IOnDismissDelegate } from \\\"./../../IOnDismissDelegate\\\";\\r\\nimport { Spinner } from \\\"./../SpinnerControl\\\";\\r\\nimport * as Logging from \\\"./../../Logging/Logging\\\";\\r\\nimport * as Configuration from \\\"./../../Configuration/Configuration\\\";\\r\\nimport * as Utils from \\\"../../Utils\\\";\\r\\nimport * as PersonalizerClient from \\\"../../Personalizer/PersonalizerClient\\\";\\r\\n\\r\\nconst { isNOU } = Utils;\\r\\n\\r\\n/**\\r\\n * Callback for when the feedback dialog is dismissed\\r\\n */\\r\\nlet onDismiss: IOnDismissDelegate;\\r\\n\\r\\n/**\\r\\n * Is the prompt up\\r\\n */\\r\\nlet isPromptUp: boolean;\\r\\n\\r\\n/**\\r\\n * timer function to auto dismiss\\r\\n */\\r\\nlet timerAutoDismiss: number;\\r\\n\\r\\n/**\\r\\n * The AutoDismissValue that was set for the prompt.\\r\\n */\\r\\nlet autoDismissValue: AutoDismissValues;\\r\\n\\r\\n/**\\r\\n * Dismiss all, including networking, UI, and events\\r\\n * @param submitted Was the control submitted (true), or cancelled (false)?\\r\\n */\\r\\nfunction dismissAll(submitted: boolean): void {\\r\\n\\tunregister();\\r\\n\\tonDismiss(submitted);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Listener un-registration\\r\\n */\\r\\nfunction unregister(): void {\\r\\n\\tremoveListeners();\\r\\n}\\r\\n\\r\\n/**\\r\\n * List of listeners and the ids they are attached to. This ensures all events are correctly unregistered.\\r\\n */\\r\\nlet listenersList: { id: string, event: string, listener: (event: Event) => void }[] = [];\\r\\n\\r\\nfunction addListener(id: string, event: string, listener: (event: Event) => void): void {\\r\\n\\tUiUtils.registerListener(id, event, listener);\\r\\n\\tlistenersList.push({ event: event, id: id, listener: listener });\\r\\n}\\r\\n\\r\\nfunction removeListeners(): void {\\r\\n\\tfor (const listener of listenersList) {\\r\\n\\t\\tUiUtils.unregisterListener(listener.id, listener.event, listener.listener);\\r\\n\\t}\\r\\n\\tlistenersList = [];\\r\\n}\\r\\n\\r\\nfunction logTelemetryEvent(eventId: Logging.IEventId, clientFeedbackId?: string, isEmailPolicyEnabled?: boolean,\\r\\n\\t\\taction?: EndUserActions, PersonalizerEventId?: string, actualSetAutoDismissValue?: AutoDismissValues): void {\\r\\n\\r\\n\\tconst configuration = Configuration.get();\\r\\n\\tLogging.getLogger().logEvent(\\r\\n\\t\\teventId,\\r\\n\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t{\\r\\n\\t\\t\\tCampaignId: configuration.getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\tSurveyId: configuration.getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tSurveyType: configuration.getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\t\\tPromptAutoDismiss: configuration.getFloodgateInitOptions().autoDismiss.toString(),\\r\\n\\t\\t\\tClientFeedbackId: clientFeedbackId,\\r\\n\\t\\t\\tIsEmailPolicyEnabled: isEmailPolicyEnabled,\\r\\n\\t\\t\\tPersonalizerUserAction: action,\\r\\n\\t\\t\\tPersonalizerEventId: PersonalizerEventId,\\r\\n\\t\\t\\tActualSetAutoDismissValue: actualSetAutoDismissValue,\\r\\n\\t\\t}\\r\\n\\t);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Register events for toast\\r\\n */\\r\\nexport function register(ON_DISMISS: IOnDismissDelegate = function (submitted: boolean) { return; }) {\\r\\n\\tonDismiss = ON_DISMISS;\\r\\n\\tisPromptUp = true;\\r\\n\\r\\n\\taddListener(IDs.ToastContainer, \\\"keyup\\\", toastKeyEventHandler);\\r\\n\\taddListener(IDs.ToastCancel, \\\"click\\\", toastCancelHandler);\\r\\n\\taddListener(IDs.TFormCancelButton, \\\"click\\\", toastCancelHandler);\\r\\n\\taddListener(IDs.TPromptContainer, \\\"click\\\", promptContainerHandler);\\r\\n\\taddListener(IDs.TFormSubmitButton, \\\"click\\\", submitButtonHandler);\\r\\n\\taddListener(IDs.TFormEmailCheckBox, \\\"click\\\", emailCheckBoxHandler);\\r\\n\\temailCheckBoxHandler(null); // call the checkbox handler to process the initial state\\r\\n\\r\\n\\tconst ratingElements = document.querySelectorAll(\\\"input[name=\\\\\\\"\\\" + IDs.TFormRating + \\\"\\\\\\\"]\\\");\\r\\n\\tfor (let i = 0; i < ratingElements.length; ++i) {\\r\\n\\t\\tUiUtils.registerListenerToElement(ratingElements[i] as HTMLElement, \\\"click\\\", ratingInputHandler);\\r\\n\\t}\\r\\n\\r\\n\\tconst isIntercept = Configuration.get().getFloodgateSurvey().getSurveyType() === Api.SurveyType.Intercept;\\r\\n\\r\\n\\tlet autoDismiss = Configuration.get().getFloodgateInitOptions().autoDismiss;\\r\\n\\tconst isPersonalizerEnabled = isPersonalizerEnabledHelper();\\r\\n\\r\\n\\t// switch true pattern for clarity\\r\\n\\tswitch (true) {\\r\\n\\t\\tcase isIntercept:\\r\\n\\t\\t\\tautoDismiss = AutoDismissValues.NoAutoDismiss;\\r\\n\\t\\t\\tbreak;\\r\\n\\r\\n\\t\\tcase isPersonalizerEnabled: {\\r\\n\\t\\t\\t// Get override value and set it if it exists.\\r\\n\\t\\t\\tconst overrideValue = PersonalizerClient.get().getOverrideValueForSurveyId(SupportedOverrides.AutoDismissTime,\\r\\n\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getId());\\r\\n\\r\\n\\t\\t\\tif (!isNOU(overrideValue)) {\\r\\n\\t\\t\\t\\tautoDismiss = overrideValue;\\r\\n\\t\\t\\t}\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tdefault:\\r\\n\\t\\t\\t// Get the autoDismiss specified in the init options.\\r\\n\\t\\t\\tautoDismiss = Configuration.get().getFloodgateInitOptions().autoDismiss;\\r\\n\\t\\t\\tbreak;\\r\\n\\t}\\r\\n\\r\\n\\t// Set module variable for autoDismiss\\r\\n\\tautoDismissValue = autoDismiss;\\r\\n\\r\\n\\tif (!Configuration.get().getFloodgateSurvey().showPrompt && !isIntercept) {\\r\\n\\t\\tshowSurveyScreen();\\r\\n\\t} else {\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_SHOWN, undefined /* clientFeedbackId */, undefined /* isEmailPolicyEnabled */,\\r\\n\\t\\t\\tundefined /* action */, PersonalizerClient.get().getEventIdForSurveyId(Configuration.get().getFloodgateSurvey().getId()),\\r\\n\\t\\t\\tautoDismiss);\\r\\n\\t}\\r\\n\\r\\n\\tif (autoDismiss !== AutoDismissValues.NoAutoDismiss) {\\r\\n\\t\\tconst autoDismissDuration = Utils.convertAutoDismissToTimeInMs(autoDismiss);\\r\\n\\r\\n\\t\\tif (autoDismissDuration !== 0) {\\r\\n\\t\\t\\ttimerAutoDismiss = window.setTimeout(\\r\\n\\t\\t\\t\\tfunction () {\\r\\n\\t\\t\\t\\t\\tif (isPromptUp) {\\r\\n\\t\\t\\t\\t\\t\\tdismissAll(false);\\r\\n\\t\\t\\t\\t\\t\\tif (isPersonalizerEnabled) {\\r\\n\\t\\t\\t\\t\\t\\t\\t// If personalizer is enabled, call to notify that the prompt has autodismissed (which means it has been ignored).\\r\\n\\t\\t\\t\\t\\t\\t\\tPersonalizerClient.get().logUserActionForSurveyAsync(EndUserActions.Ignore,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId());\\r\\n\\r\\n\\t\\t\\t\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_AUTODISMISSED, undefined /* clientFeedbackId */,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tundefined /* isEmailPolicyEnabled */,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tEndUserActions.Ignore,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tPersonalizerClient.get().getEventIdForSurveyId(Configuration.get().getFloodgateSurvey().getId()),\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tautoDismiss);\\r\\n\\t\\t\\t\\t\\t\\t} else {\\r\\n\\t\\t\\t\\t\\t\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_AUTODISMISSED, undefined /* clientFeedbackId */,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tundefined /* isEmailPolicyEnabled */, undefined /* action */, undefined /* PersonalizerEventId */, autoDismissValue);\\r\\n\\t\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\tautoDismissDuration\\r\\n\\t\\t\\t);\\r\\n\\t\\t}\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction emailCheckBoxHandler(event: Event): void {\\r\\n\\t// show email if checked and show default string if unchecked\\r\\n\\tconst emailCheckBox: HTMLInputElement = document.getElementById(IDs.TFormEmailCheckBox);\\r\\n\\tif (emailCheckBox) {\\r\\n\\t\\tconst emailTextBox: HTMLInputElement = document.getElementById(IDs.TFormEmailTextBox);\\r\\n\\t\\temailTextBox.value = emailCheckBox.checked ? Configuration.get().getCommonInitOptions().userEmail : null;\\r\\n\\t\\temailTextBox.disabled = !emailCheckBox.checked;\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction toastKeyEventHandler(event: Event): void {\\r\\n\\t// dismiss upon pressing the escape key\\r\\n\\tif (( event).keyCode === Keys.Esc) {\\r\\n\\t\\tevent.preventDefault();\\r\\n\\t\\tevent.stopPropagation();\\r\\n\\t\\tdismissAll(false);\\r\\n\\t\\tonCancelLoggingRoutine();\\r\\n\\t\\tclearAutoDismiss();\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction toastCancelHandler(event: Event): void {\\r\\n\\tevent.preventDefault();\\r\\n\\tevent.stopPropagation();\\r\\n\\tdismissAll(false);\\r\\n\\tonCancelLoggingRoutine();\\r\\n\\tclearAutoDismiss();\\r\\n}\\r\\n\\r\\nfunction onCancelLoggingRoutine(): void {\\r\\n\\tif (isPromptUp && isPersonalizerEnabledHelper()) {\\r\\n\\t\\tPersonalizerClient.get().logUserActionForSurveyAsync(EndUserActions.Cancel, Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId());\\r\\n\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_USERCLOSED, undefined /* clientFeedbackId */, undefined /* isEmailPolicyEnabled */,\\r\\n\\t\\t\\tEndUserActions.Cancel, PersonalizerClient.get().getEventIdForSurveyId(Configuration.get().getFloodgateSurvey().getId()),\\r\\n\\t\\t\\tautoDismissValue);\\r\\n\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\tlogTelemetryEvent(isPromptUp ? Logging.EventIds.SURVEY_UI_PROMPT_USERCLOSED : Logging.EventIds.SURVEY_UI_FORM_USERCLOSED,\\r\\n\\t\\tundefined /* clientFeedbackId */, undefined /* isEmailPolicyEnabled */,\\r\\n\\t\\tundefined /* action */, undefined /* PersonalizerEventId */, autoDismissValue);\\r\\n}\\r\\n\\r\\nfunction clearAutoDismiss(): void {\\r\\n\\tif (timerAutoDismiss) {\\r\\n\\t\\tclearTimeout(timerAutoDismiss);\\r\\n\\t\\ttimerAutoDismiss = 0;\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction promptContainerHandler(event: Event): void {\\r\\n\\tevent.preventDefault();\\r\\n\\tevent.stopPropagation();\\r\\n\\r\\n\\tif (Configuration.get().getFloodgateSurvey().getSurveyType() === Api.SurveyType.Intercept) {\\r\\n\\t\\tinterceptHandler();\\r\\n\\t} else {\\r\\n\\t\\tshowSurveyScreen();\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction interceptHandler(): void {\\r\\n\\tconst success = openInNewTab(Configuration.get().getFloodgateSurvey().getInterceptUrl());\\r\\n\\tdismissAll(false);\\r\\n\\r\\n\\t// Logging according to if opening the tab is successful. \\r\\n\\tif (success) {\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_PROMPT_CLICKED);\\r\\n\\t} else {\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_REDIRECTIONFAILURE);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction openInNewTab(url: string): boolean {\\r\\n\\tconst win = window.open(url, \\\"_blank\\\");\\r\\n\\tif (isNOU(win)) {\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\twin.focus();\\r\\n\\treturn true;\\r\\n}\\r\\n\\r\\nfunction showSurveyScreen(): void {\\r\\n\\tisPromptUp = false;\\r\\n\\r\\n\\tUiUtils.setElementVisibility(IDs.TPromptContainer, false);\\r\\n\\tUiUtils.setElementVisibility(IDs.TFormContainer, true);\\r\\n\\r\\n\\t// Adding ToastZoom class to toastContainer. This handles zoom and small screen accesibility.\\r\\n\\t// It is added here so that it doesn't apply to the prompt.\\r\\n\\tUiUtils.addClassById(IDs.ToastContainer, Classes.ToastZoom);\\r\\n\\r\\n\\t// Do the following:\\r\\n\\t// 1. remove toast container's alert attribute when after the user click toast and form is shown, so screen readers\\r\\n\\t// like JAWS doesn't repeat all components on the form.\\r\\n\\t// \\r\\n\\t// 2. Add the dialog role to the toast container and set aria-labelledby to the form title.\\r\\n\\t// This makes the screen reader announce that the form is a dialog and the title of the form.\\r\\n\\tif ((\\\" \\\" + document.getElementById(IDs.TFormContainer).className + \\\" \\\").indexOf(\\\" \\\" + Classes.Visible + \\\" \\\") > -1) {\\r\\n\\t\\tdocument.getElementById(IDs.ToastContainer).setAttribute(\\\"role\\\", \\\"dialog\\\"); // sets role to dialog, this effectively removes the previous 'alert' role.\\r\\n\\t\\tdocument.getElementById(IDs.ToastContainer).setAttribute(\\\"aria-labelledby\\\", IDs.TFormTitle);\\r\\n\\t}\\r\\n\\r\\n\\t// Focus should always be set to first rating item since all supported surveys showing form have rating items so far.\\r\\n\\tconst formRating = document.getElementsByName(IDs.TFormRating);\\r\\n\\tif (formRating && formRating.length > 0) {\\r\\n\\t\\tformRating[0].focus();\\r\\n\\t}\\r\\n\\r\\n\\tif (isPersonalizerEnabledHelper()) {\\r\\n\\t\\t// If personalizer is enabled, call to notify that the prompt has been clicked (which means user has accepted).\\r\\n\\t\\tPersonalizerClient.get().logUserActionForSurveyAsync(EndUserActions.Accept, Configuration.get().getFloodgateSurvey().getId(),\\r\\n\\t\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId());\\r\\n\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SHOWN, undefined /* clientFeedbackId */, undefined /* isEmailPolicyEnabled */,\\r\\n\\t\\t\\tEndUserActions.Accept, PersonalizerClient.get().getEventIdForSurveyId(Configuration.get().getFloodgateSurvey().getId()),\\r\\n\\t\\t\\tautoDismissValue);\\r\\n\\t} else {\\r\\n\\t\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SHOWN, undefined /* clientFeedbackId */, undefined /* isEmailPolicyEnabled */,\\r\\n\\t\\t\\tundefined /* action */, undefined /* PersonalizerEventId */, autoDismissValue);\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction ratingInputHandler(event: Event): void {\\r\\n\\t(document.getElementById(IDs.TFormSubmitButton) as HTMLButtonElement).disabled = false;\\r\\n}\\r\\n\\r\\nfunction submitButtonHandler(event: Event): void {\\r\\n\\tevent.preventDefault();\\r\\n\\tevent.stopPropagation();\\r\\n\\r\\n\\tUiUtils.setElementVisibility(IDs.TFormSubmitButton, false);\\r\\n\\tconst spinner = new Spinner(IDs.TFormSubmitButtonSpinner);\\r\\n\\r\\n\\tconst transporter: Transporter = new Transporter(\\r\\n\\t\\tConfiguration.get().getCommonInitOptions().environment,\\r\\n\\t\\tApi.SurveyType[Configuration.get().getFloodgateSurvey().getSurveyType()],\\r\\n\\t\\tConfiguration.get().getCommonInitOptions().appId,\\r\\n\\t\\t\\\"Survey\\\",\\r\\n\\t\\tConfiguration.get().getCommonInitOptions().applicationGroup,\\r\\n\\t\\tConfiguration.get().getCommonInitOptions().telemetryGroup,\\r\\n\\t\\tConfiguration.get().getCommonInitOptions().webGroup\\r\\n\\t);\\r\\n\\r\\n\\tconst commentElement: HTMLTextAreaElement = document.getElementById(IDs.TFormComment);\\r\\n\\tconst commentEntered: boolean = (commentElement && !!commentElement.value);\\r\\n\\r\\n\\tconst selectedRating: HTMLInputElement =\\r\\n\\t\\tdocument.querySelector(\\\"input[name=\\\\\\\"\\\" + IDs.TFormRating + \\\"\\\\\\\"]:checked\\\") as HTMLInputElement;\\r\\n\\r\\n\\tConfiguration.get().getFloodgateSurvey().setValues(\\r\\n\\t\\tNumber(selectedRating.value),\\r\\n\\t\\tcommentEntered ? commentElement.value : \\\"\\\"\\r\\n\\t);\\r\\n\\r\\n\\t// Add survey-specific data to manifest\\r\\n\\ttransporter.setManifestValues(Configuration.get().getFloodgateSurvey().getJsonElements());\\r\\n\\r\\n\\t// Send email address if user gives consent\\r\\n\\tconst emailCheckBox: HTMLInputElement = document.getElementById(IDs.TFormEmailCheckBox);\\r\\n\\tconst emailTextBox: HTMLInputElement = document.getElementById(IDs.TFormEmailTextBox);\\r\\n\\r\\n\\tif (emailCheckBox && emailCheckBox.checked && emailTextBox.value !== \\\"\\\") {\\r\\n\\t\\ttransporter.setEmail(emailTextBox.value);\\r\\n\\t}\\r\\n\\r\\n\\t// Append UxId string to the sdkVersion property in the manifest.\\r\\n\\t// This is disabled when using EUDB non-compliant UX to ensure that UX version can be tracked properly\\r\\n\\tif (Configuration.get().getFloodgateInitOptions().isEudbUxEnabled) {\\r\\n\\t\\ttransporter.appendUxId(SDK_UXID_VERSION);\\r\\n\\t}\\r\\n\\r\\n\\ttransporter.submit();\\r\\n\\tspinner.destroy();\\r\\n\\tdismissAll(true);\\r\\n\\tlogTelemetryEvent(Logging.EventIds.SURVEY_UI_FORM_SUBMIT, transporter.getClientFeedbackId(),\\r\\n\\t\\tConfiguration.get().getFloodgateInitOptions().showEmailAddress);\\r\\n}\\r\\n\\r\\nfunction isPersonalizerEnabledHelper(): boolean {\\r\\n\\treturn PersonalizerClient.get().isEnabled(Configuration.get().getFloodgateSurvey().getSurveyType(),\\r\\n\\t\\tConfiguration.get().getFloodgateSurvey().getLauncherType(),\\r\\n\\t\\tConfiguration.get().getFloodgateSurvey().getGoverenedChannelType());\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var isNOU=(cov_2hdnrpmoyp.s[0]++,_Utils__WEBPACK_IMPORTED_MODULE_8__[\"isNOU\"]);var onDismiss;var isPromptUp;var timerAutoDismiss;var autoDismissValue;function dismissAll(submitted){cov_2hdnrpmoyp.f[0]++;cov_2hdnrpmoyp.s[1]++;unregister();cov_2hdnrpmoyp.s[2]++;onDismiss(submitted);}function unregister(){cov_2hdnrpmoyp.f[1]++;cov_2hdnrpmoyp.s[3]++;removeListeners();}var listenersList=(cov_2hdnrpmoyp.s[4]++,[]);function addListener(id,event,listener){cov_2hdnrpmoyp.f[2]++;cov_2hdnrpmoyp.s[5]++;_Utils__WEBPACK_IMPORTED_MODULE_4__[\"registerListener\"](id,event,listener);cov_2hdnrpmoyp.s[6]++;listenersList.push({event:event,id:id,listener:listener});}function removeListeners(){cov_2hdnrpmoyp.f[3]++;cov_2hdnrpmoyp.s[7]++;for(var _i=0,listenersList_1=listenersList;_i-1){cov_2hdnrpmoyp.b[19][0]++;cov_2hdnrpmoyp.s[98]++;document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].ToastContainer).setAttribute(\"role\",\"dialog\");cov_2hdnrpmoyp.s[99]++;document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].ToastContainer).setAttribute(\"aria-labelledby\",_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormTitle);}else{cov_2hdnrpmoyp.b[19][1]++;}var formRating=(cov_2hdnrpmoyp.s[100]++,document.getElementsByName(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormRating));cov_2hdnrpmoyp.s[101]++;if((cov_2hdnrpmoyp.b[21][0]++,formRating)&&(cov_2hdnrpmoyp.b[21][1]++,formRating.length>0)){cov_2hdnrpmoyp.b[20][0]++;cov_2hdnrpmoyp.s[102]++;formRating[0].focus();}else{cov_2hdnrpmoyp.b[20][1]++;}cov_2hdnrpmoyp.s[103]++;if(isPersonalizerEnabledHelper()){cov_2hdnrpmoyp.b[22][0]++;cov_2hdnrpmoyp.s[104]++;_Personalizer_PersonalizerClient__WEBPACK_IMPORTED_MODULE_9__[\"get\"]().logUserActionForSurveyAsync(2,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getId(),_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getCampaignId());cov_2hdnrpmoyp.s[105]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SHOWN,undefined,undefined,2,_Personalizer_PersonalizerClient__WEBPACK_IMPORTED_MODULE_9__[\"get\"]().getEventIdForSurveyId(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getId()),autoDismissValue);}else{cov_2hdnrpmoyp.b[22][1]++;cov_2hdnrpmoyp.s[106]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SHOWN,undefined,undefined,undefined,undefined,autoDismissValue);}}function ratingInputHandler(event){cov_2hdnrpmoyp.f[17]++;cov_2hdnrpmoyp.s[107]++;document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButton).disabled=false;}function submitButtonHandler(event){cov_2hdnrpmoyp.f[18]++;cov_2hdnrpmoyp.s[108]++;event.preventDefault();cov_2hdnrpmoyp.s[109]++;event.stopPropagation();cov_2hdnrpmoyp.s[110]++;_Utils__WEBPACK_IMPORTED_MODULE_4__[\"setElementVisibility\"](_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButton,false);var spinner=(cov_2hdnrpmoyp.s[111]++,new _SpinnerControl__WEBPACK_IMPORTED_MODULE_5__[\"Spinner\"](_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButtonSpinner));var transporter=(cov_2hdnrpmoyp.s[112]++,new _Transport_Transport__WEBPACK_IMPORTED_MODULE_1__[\"Transporter\"](_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getCommonInitOptions().environment,_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__[\"Api\"].SurveyType[_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getSurveyType()],_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getCommonInitOptions().appId,\"Survey\",_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getCommonInitOptions().applicationGroup,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getCommonInitOptions().telemetryGroup,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getCommonInitOptions().webGroup));var commentElement=(cov_2hdnrpmoyp.s[113]++,document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormComment));var commentEntered=(cov_2hdnrpmoyp.s[114]++,(cov_2hdnrpmoyp.b[23][0]++,commentElement)&&(cov_2hdnrpmoyp.b[23][1]++,!!commentElement.value));var selectedRating=(cov_2hdnrpmoyp.s[115]++,document.querySelector(\"input[name=\\\"\"+_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormRating+\"\\\"]:checked\"));cov_2hdnrpmoyp.s[116]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().setValues(Number(selectedRating.value),commentEntered?(cov_2hdnrpmoyp.b[24][0]++,commentElement.value):(cov_2hdnrpmoyp.b[24][1]++,\"\"));cov_2hdnrpmoyp.s[117]++;transporter.setManifestValues(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getJsonElements());var emailCheckBox=(cov_2hdnrpmoyp.s[118]++,document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailCheckBox));var emailTextBox=(cov_2hdnrpmoyp.s[119]++,document.getElementById(_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailTextBox));cov_2hdnrpmoyp.s[120]++;if((cov_2hdnrpmoyp.b[26][0]++,emailCheckBox)&&(cov_2hdnrpmoyp.b[26][1]++,emailCheckBox.checked)&&(cov_2hdnrpmoyp.b[26][2]++,emailTextBox.value!==\"\")){cov_2hdnrpmoyp.b[25][0]++;cov_2hdnrpmoyp.s[121]++;transporter.setEmail(emailTextBox.value);}else{cov_2hdnrpmoyp.b[25][1]++;}cov_2hdnrpmoyp.s[122]++;if(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateInitOptions().isEudbUxEnabled){cov_2hdnrpmoyp.b[27][0]++;cov_2hdnrpmoyp.s[123]++;transporter.appendUxId(_Constants__WEBPACK_IMPORTED_MODULE_2__[\"SDK_UXID_VERSION\"]);}else{cov_2hdnrpmoyp.b[27][1]++;}cov_2hdnrpmoyp.s[124]++;transporter.submit();cov_2hdnrpmoyp.s[125]++;spinner.destroy();cov_2hdnrpmoyp.s[126]++;dismissAll(true);cov_2hdnrpmoyp.s[127]++;logTelemetryEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_6__[\"EventIds\"].SURVEY_UI_FORM_SUBMIT,transporter.getClientFeedbackId(),_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateInitOptions().showEmailAddress);}function isPersonalizerEnabledHelper(){cov_2hdnrpmoyp.f[19]++;cov_2hdnrpmoyp.s[128]++;return _Personalizer_PersonalizerClient__WEBPACK_IMPORTED_MODULE_9__[\"get\"]().isEnabled(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getSurveyType(),_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getLauncherType(),_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_7__[\"get\"]().getFloodgateSurvey().getGoverenedChannelType());}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9Ub2FzdC9FdmVudHMudHM/YTVkYiJdLCJuYW1lcyI6WyJpc05PVSIsIlV0aWxzIiwib25EaXNtaXNzIiwiaXNQcm9tcHRVcCIsInRpbWVyQXV0b0Rpc21pc3MiLCJhdXRvRGlzbWlzc1ZhbHVlIiwiZGlzbWlzc0FsbCIsInN1Ym1pdHRlZCIsInVucmVnaXN0ZXIiLCJyZW1vdmVMaXN0ZW5lcnMiLCJsaXN0ZW5lcnNMaXN0IiwiYWRkTGlzdGVuZXIiLCJpZCIsImV2ZW50IiwibGlzdGVuZXIiLCJVaVV0aWxzIiwicHVzaCIsIl9pIiwibGlzdGVuZXJzTGlzdF8xIiwibGVuZ3RoIiwibG9nVGVsZW1ldHJ5RXZlbnQiLCJldmVudElkIiwiY2xpZW50RmVlZGJhY2tJZCIsImlzRW1haWxQb2xpY3lFbmFibGVkIiwiYWN0aW9uIiwiUGVyc29uYWxpemVyRXZlbnRJZCIsImFjdHVhbFNldEF1dG9EaXNtaXNzVmFsdWUiLCJjb25maWd1cmF0aW9uIiwiQ29uZmlndXJhdGlvbiIsIkxvZ2dpbmciLCJsb2dFdmVudCIsIkNhbXBhaWduSWQiLCJnZXRGbG9vZGdhdGVTdXJ2ZXkiLCJnZXRDYW1wYWlnbklkIiwiU3VydmV5SWQiLCJnZXRJZCIsIlN1cnZleVR5cGUiLCJnZXRTdXJ2ZXlUeXBlIiwiUHJvbXB0QXV0b0Rpc21pc3MiLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsImF1dG9EaXNtaXNzIiwidG9TdHJpbmciLCJDbGllbnRGZWVkYmFja0lkIiwiSXNFbWFpbFBvbGljeUVuYWJsZWQiLCJQZXJzb25hbGl6ZXJVc2VyQWN0aW9uIiwiQWN0dWFsU2V0QXV0b0Rpc21pc3NWYWx1ZSIsInJlZ2lzdGVyIiwiT05fRElTTUlTUyIsIklEcyIsIlRvYXN0Q29udGFpbmVyIiwidG9hc3RLZXlFdmVudEhhbmRsZXIiLCJUb2FzdENhbmNlbCIsInRvYXN0Q2FuY2VsSGFuZGxlciIsIlRGb3JtQ2FuY2VsQnV0dG9uIiwiVFByb21wdENvbnRhaW5lciIsInByb21wdENvbnRhaW5lckhhbmRsZXIiLCJURm9ybVN1Ym1pdEJ1dHRvbiIsInN1Ym1pdEJ1dHRvbkhhbmRsZXIiLCJURm9ybUVtYWlsQ2hlY2tCb3giLCJlbWFpbENoZWNrQm94SGFuZGxlciIsInJhdGluZ0VsZW1lbnRzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiVEZvcm1SYXRpbmciLCJpIiwicmF0aW5nSW5wdXRIYW5kbGVyIiwiaXNJbnRlcmNlcHQiLCJBcGkiLCJJbnRlcmNlcHQiLCJpc1BlcnNvbmFsaXplckVuYWJsZWQiLCJpc1BlcnNvbmFsaXplckVuYWJsZWRIZWxwZXIiLCJvdmVycmlkZVZhbHVlIiwiUGVyc29uYWxpemVyQ2xpZW50IiwiZ2V0T3ZlcnJpZGVWYWx1ZUZvclN1cnZleUlkIiwic2hvd1Byb21wdCIsInNob3dTdXJ2ZXlTY3JlZW4iLCJTVVJWRVlfVUlfUFJPTVBUX1NIT1dOIiwidW5kZWZpbmVkIiwiZ2V0RXZlbnRJZEZvclN1cnZleUlkIiwiYXV0b0Rpc21pc3NEdXJhdGlvbiIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJsb2dVc2VyQWN0aW9uRm9yU3VydmV5QXN5bmMiLCJTVVJWRVlfVUlfUFJPTVBUX0FVVE9ESVNNSVNTRUQiLCJlbWFpbENoZWNrQm94IiwiZ2V0RWxlbWVudEJ5SWQiLCJlbWFpbFRleHRCb3giLCJURm9ybUVtYWlsVGV4dEJveCIsInZhbHVlIiwiY2hlY2tlZCIsImdldENvbW1vbkluaXRPcHRpb25zIiwidXNlckVtYWlsIiwiZGlzYWJsZWQiLCJrZXlDb2RlIiwiS2V5cyIsIkVzYyIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwib25DYW5jZWxMb2dnaW5nUm91dGluZSIsImNsZWFyQXV0b0Rpc21pc3MiLCJTVVJWRVlfVUlfUFJPTVBUX1VTRVJDTE9TRUQiLCJTVVJWRVlfVUlfRk9STV9VU0VSQ0xPU0VEIiwiY2xlYXJUaW1lb3V0IiwiaW50ZXJjZXB0SGFuZGxlciIsInN1Y2Nlc3MiLCJvcGVuSW5OZXdUYWIiLCJnZXRJbnRlcmNlcHRVcmwiLCJTVVJWRVlfVUlfUFJPTVBUX0NMSUNLRUQiLCJTVVJWRVlfVUlfUkVESVJFQ1RJT05GQUlMVVJFIiwidXJsIiwid2luIiwib3BlbiIsImZvY3VzIiwiVEZvcm1Db250YWluZXIiLCJDbGFzc2VzIiwiVG9hc3Rab29tIiwiY2xhc3NOYW1lIiwiaW5kZXhPZiIsIlZpc2libGUiLCJzZXRBdHRyaWJ1dGUiLCJURm9ybVRpdGxlIiwiZm9ybVJhdGluZyIsImdldEVsZW1lbnRzQnlOYW1lIiwiU1VSVkVZX1VJX0ZPUk1fU0hPV04iLCJzcGlubmVyIiwiU3Bpbm5lciIsIlRGb3JtU3VibWl0QnV0dG9uU3Bpbm5lciIsInRyYW5zcG9ydGVyIiwiVHJhbnNwb3J0ZXIiLCJlbnZpcm9ubWVudCIsImFwcElkIiwiYXBwbGljYXRpb25Hcm91cCIsInRlbGVtZXRyeUdyb3VwIiwid2ViR3JvdXAiLCJjb21tZW50RWxlbWVudCIsIlRGb3JtQ29tbWVudCIsImNvbW1lbnRFbnRlcmVkIiwic2VsZWN0ZWRSYXRpbmciLCJxdWVyeVNlbGVjdG9yIiwic2V0VmFsdWVzIiwiTnVtYmVyIiwic2V0TWFuaWZlc3RWYWx1ZXMiLCJnZXRKc29uRWxlbWVudHMiLCJzZXRFbWFpbCIsImlzRXVkYlV4RW5hYmxlZCIsImFwcGVuZFV4SWQiLCJTREtfVVhJRF9WRVJTSU9OIiwic3VibWl0IiwiZGVzdHJveSIsIlNVUlZFWV9VSV9GT1JNX1NVQk1JVCIsImdldENsaWVudEZlZWRiYWNrSWQiLCJzaG93RW1haWxBZGRyZXNzIiwiaXNFbmFibGVkIiwiZ2V0TGF1bmNoZXJUeXBlIiwiZ2V0R292ZXJlbmVkQ2hhbm5lbFR5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7eTYxQ0FVQSxHQUFJQSw4QkFBUUMsNENBQVIsQ0FBSixDQUNBLEdBQUlDLFVBQUosQ0FDQSxHQUFJQyxXQUFKLENBQ0EsR0FBSUMsaUJBQUosQ0FDQSxHQUFJQyxpQkFBSixDQUNBLFFBQVNDLFdBQVQs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Q0FBZ0J2QixTQUFTd0IsY0FBVCxDQUF3QnJDLGdEQUFHQSxDQUFDVSxrQkFBNUIsQ0FBaEIsQ0FBSixDQUNBLEdBQUk0Qix1Q0FBZXpCLFNBQVN3QixjQUFULENBQXdCckMsZ0RBQUdBLENBQUN1QyxpQkFBNUIsQ0FBZixDQUFKLENBWmdDLHdCQWFoQyxHQUFJLHNFQUFpQkgsY0FBY0ssT0FBL0IsOEJBQTBDSCxhQUFhRSxLQUFiLEdBQXVCLEVBQWpFLENBQUosQ0FBeUUsbURBQ3JFdUMsWUFBWWdCLFFBQVosQ0FBcUJ6RCxhQUFhRSxLQUFsQyxFQUNILENBRkQsZ0NBYmdDLHdCQWdCaEMsR0FBSTVELGdFQUFBLEdBQW9CVyx1QkFBcEIsR0FBOEN5RyxlQUFsRCxDQUFtRSxtREFDL0RqQixZQUFZa0IsVUFBWixDQUF1QkMsMkRBQXZCLEVBQ0gsQ0FGRCxnQ0FoQmdDLHdCQW1CaENuQixZQUFZb0IsTUFBWixHQW5CZ0Msd0JBb0JoQ3ZCLFFBQVF3QixPQUFSLEdBcEJnQyx3QkFxQmhDOUksV0FBVyxJQUFYLEVBckJnQyx3QkFzQmhDYyxrQkFBa0JTLHlEQUFBLENBQWlCd0gscUJBQW5DLENBQTBEdEIsWUFBWXVCLG1CQUFaLEVBQTFELENBQTZGMUgsZ0VBQUEsR0FBb0JXLHVCQUFwQixHQUE4Q2dILGdCQUEzSSxFQUNILENBQ0QsUUFBU2pGLDRCQUFULEVBQXVDLGdEQUNuQyxNQUFPRSxxRUFBQSxHQUF5QmdGLFNBQXpCLENBQW1DNUgsZ0VBQUEsR0FBb0JJLGtCQUFwQixHQUF5Q0ssYUFBekMsRUFBbkMsQ0FBNkZULGdFQUFBLEdBQW9CSSxrQkFBcEIsR0FBeUN5SCxlQUF6QyxFQUE3RixDQUF5SjdILGdFQUFBLEdBQW9CSSxrQkFBcEIsR0FBeUMwSCx1QkFBekMsRUFBekosQ0FBUCxDQUNIIiwiZmlsZSI6Ii4vc2NyaXB0cy9hcHAvVUkvVG9hc3QvRXZlbnRzLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpIH0gZnJvbSBcIkBtcy1vZmIvZmxvb2RnYXRlLXNoYXJlZC10eXBpbmdzXCI7XHJcbmltcG9ydCB7IFRyYW5zcG9ydGVyIH0gZnJvbSBcIi4vLi4vLi4vVHJhbnNwb3J0L1RyYW5zcG9ydFwiO1xyXG5pbXBvcnQgeyBTREtfVVhJRF9WRVJTSU9OIH0gZnJvbSBcIi4vLi4vLi4vQ29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IENsYXNzZXMsIElEcywgS2V5cyB9IGZyb20gXCIuLy4uL1VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCAqIGFzIFVpVXRpbHMgZnJvbSBcIi4vLi4vVXRpbHNcIjtcclxuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gXCIuLy4uL1NwaW5uZXJDb250cm9sXCI7XHJcbmltcG9ydCAqIGFzIExvZ2dpbmcgZnJvbSBcIi4vLi4vLi4vTG9nZ2luZy9Mb2dnaW5nXCI7XHJcbmltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4vLi4vLi4vQ29uZmlndXJhdGlvbi9Db25maWd1cmF0aW9uXCI7XHJcbmltcG9ydCAqIGFzIFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xyXG5pbXBvcnQgKiBhcyBQZXJzb25hbGl6ZXJDbGllbnQgZnJvbSBcIi4uLy4uL1BlcnNvbmFsaXplci9QZXJzb25hbGl6ZXJDbGllbnRcIjtcclxudmFyIGlzTk9VID0gVXRpbHMuaXNOT1U7XHJcbnZhciBvbkRpc21pc3M7XHJcbnZhciBpc1Byb21wdFVwO1xyXG52YXIgdGltZXJBdXRvRGlzbWlzcztcclxudmFyIGF1dG9EaXNtaXNzVmFsdWU7XHJcbmZ1bmN0aW9uIGRpc21pc3NBbGwoc3VibWl0dGVkKSB7XHJcbiAgICB1bnJlZ2lzdGVyKCk7XHJcbiAgICBvbkRpc21pc3Moc3VibWl0dGVkKTtcclxufVxyXG5mdW5jdGlvbiB1bnJlZ2lzdGVyKCkge1xyXG4gICAgcmVtb3ZlTGlzdGVuZXJzKCk7XHJcbn1cclxudmFyIGxpc3RlbmVyc0xpc3QgPSBbXTtcclxuZnVuY3Rpb24gYWRkTGlzdGVuZXIoaWQsIGV2ZW50LCBsaXN0ZW5lcikge1xyXG4gICAgVWlVdGlscy5yZWdpc3Rlckxpc3RlbmVyKGlkLCBldmVudCwgbGlzdGVuZXIpO1xyXG4gICAgbGlzdGVuZXJzTGlzdC5wdXNoKHsgZXZlbnQ6IGV2ZW50LCBpZDogaWQsIGxpc3RlbmVyOiBsaXN0ZW5lciB9KTtcclxufVxyXG5mdW5jdGlvbiByZW1vdmVMaXN0ZW5lcnMoKSB7XHJcbiAgICBmb3IgKHZhciBfaSA9IDAsIGxpc3RlbmVyc0xpc3RfMSA9IGxpc3RlbmVyc0xpc3Q7IF9pIDwgbGlzdGVuZXJzTGlzdF8xLmxlbmd0aDsgX2krKykge1xyXG4gICAgICAgIHZhciBsaXN0ZW5lciA9IGxpc3RlbmVyc0xpc3RfMVtfaV07XHJcbiAgICAgICAgVWlVdGlscy51bnJlZ2lzdGVyTGlzdGVuZXIobGlzdGVuZXIuaWQsIGxpc3RlbmVyLmV2ZW50LCBsaXN0ZW5lci5saXN0ZW5lcik7XHJcbiAgICB9XHJcbiAgICBsaXN0ZW5lcnNMaXN0ID0gW107XHJcbn1cclxuZnVuY3Rpb24gbG9nVGVsZW1ldHJ5RXZlbnQoZXZlbnRJZCwgY2xpZW50RmVlZGJhY2tJZCwgaXNFbWFpbFBvbGljeUVuYWJsZWQsIGFjdGlvbiwgUGVyc29uYWxpemVyRXZlbnRJZCwgYWN0dWFsU2V0QXV0b0Rpc21pc3NWYWx1ZSkge1xyXG4gICAgdmFyIGNvbmZpZ3VyYXRpb24gPSBDb25maWd1cmF0aW9uLmdldCgpO1xyXG4gICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChldmVudElkLCAxLCB7XHJcbiAgICAgICAgQ2FtcGFpZ25JZDogY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCksXHJcbiAgICAgICAgU3VydmV5SWQ6IGNvbmZpZ3VyYXRpb24uZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSxcclxuICAgICAgICBTdXJ2ZXlUeXBlOiBjb25maWd1cmF0aW9uLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldFN1cnZleVR5cGUoKSxcclxuICAgICAgICBQcm9tcHRBdXRvRGlzbWlzczogY29uZmlndXJhdGlvbi5nZXRGbG9vZGdhdGVJbml0T3B0aW9ucygpLmF1dG9EaXNtaXNzLnRvU3RyaW5nKCksXHJcbiAgICAgICAgQ2xpZW50RmVlZGJhY2tJZDogY2xpZW50RmVlZGJhY2tJZCxcclxuICAgICAgICBJc0VtYWlsUG9saWN5RW5hYmxlZDogaXNFbWFpbFBvbGljeUVuYWJsZWQsXHJcbiAgICAgICAgUGVyc29uYWxpemVyVXNlckFjdGlvbjogYWN0aW9uLFxyXG4gICAgICAgIFBlcnNvbmFsaXplckV2ZW50SWQ6IFBlcnNvbmFsaXplckV2ZW50SWQsXHJcbiAgICAgICAgQWN0dWFsU2V0QXV0b0Rpc21pc3NWYWx1ZTogYWN0dWFsU2V0QXV0b0Rpc21pc3NWYWx1ZSxcclxuICAgIH0pO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlcihPTl9ESVNNSVNTKSB7XHJcbiAgICBpZiAoT05fRElTTUlTUyA9PT0gdm9pZCAwKSB7IE9OX0RJU01JU1MgPSBmdW5jdGlvbiAoc3VibWl0dGVkKSB7IHJldHVybjsgfTsgfVxyXG4gICAgb25EaXNtaXNzID0gT05fRElTTUlTUztcclxuICAgIGlzUHJvbXB0VXAgPSB0cnVlO1xyXG4gICAgYWRkTGlzdGVuZXIoSURzLlRvYXN0Q29udGFpbmVyLCBcImtleXVwXCIsIHRvYXN0S2V5RXZlbnRIYW5kbGVyKTtcclxuICAgIGFkZExpc3RlbmVyKElEcy5Ub2FzdENhbmNlbCwgXCJjbGlja1wiLCB0b2FzdENhbmNlbEhhbmRsZXIpO1xyXG4gICAgYWRkTGlzdGVuZXIoSURzLlRGb3JtQ2FuY2VsQnV0dG9uLCBcImNsaWNrXCIsIHRvYXN0Q2FuY2VsSGFuZGxlcik7XHJcbiAgICBhZGRMaXN0ZW5lcihJRHMuVFByb21wdENvbnRhaW5lciwgXCJjbGlja1wiLCBwcm9tcHRDb250YWluZXJIYW5kbGVyKTtcclxuICAgIGFkZExpc3RlbmVyKElEcy5URm9ybVN1Ym1pdEJ1dHRvbiwgXCJjbGlja1wiLCBzdWJtaXRCdXR0b25IYW5kbGVyKTtcclxuICAgIGFkZExpc3RlbmVyKElEcy5URm9ybUVtYWlsQ2hlY2tCb3gsIFwiY2xpY2tcIiwgZW1haWxDaGVja0JveEhhbmRsZXIpO1xyXG4gICAgZW1haWxDaGVja0JveEhhbmRsZXIobnVsbCk7XHJcbiAgICB2YXIgcmF0aW5nRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiaW5wdXRbbmFtZT1cXFwiXCIgKyBJRHMuVEZvcm1SYXRpbmcgKyBcIlxcXCJdXCIpO1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYXRpbmdFbGVtZW50cy5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgIFVpVXRpbHMucmVnaXN0ZXJMaXN0ZW5lclRvRWxlbWVudChyYXRpbmdFbGVtZW50c1tpXSwgXCJjbGlja1wiLCByYXRpbmdJbnB1dEhhbmRsZXIpO1xyXG4gICAgfVxyXG4gICAgdmFyIGlzSW50ZXJjZXB0ID0gQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRTdXJ2ZXlUeXBlKCkgPT09IEFwaS5TdXJ2ZXlUeXBlLkludGVyY2VwdDtcclxuICAgIHZhciBhdXRvRGlzbWlzcyA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKS5hdXRvRGlzbWlzcztcclxuICAgIHZhciBpc1BlcnNvbmFsaXplckVuYWJsZWQgPSBpc1BlcnNvbmFsaXplckVuYWJsZWRIZWxwZXIoKTtcclxuICAgIHN3aXRjaCAodHJ1ZSkge1xyXG4gICAgICAgIGNhc2UgaXNJbnRlcmNlcHQ6XHJcbiAgICAgICAgICAgIGF1dG9EaXNtaXNzID0gMDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBpc1BlcnNvbmFsaXplckVuYWJsZWQ6IHtcclxuICAgICAgICAgICAgdmFyIG92ZXJyaWRlVmFsdWUgPSBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkuZ2V0T3ZlcnJpZGVWYWx1ZUZvclN1cnZleUlkKDAsIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSk7XHJcbiAgICAgICAgICAgIGlmICghaXNOT1Uob3ZlcnJpZGVWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIGF1dG9EaXNtaXNzID0gb3ZlcnJpZGVWYWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgYXV0b0Rpc21pc3MgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZUluaXRPcHRpb25zKCkuYXV0b0Rpc21pc3M7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgYXV0b0Rpc21pc3NWYWx1ZSA9IGF1dG9EaXNtaXNzO1xyXG4gICAgaWYgKCFDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLnNob3dQcm9tcHQgJiYgIWlzSW50ZXJjZXB0KSB7XHJcbiAgICAgICAgc2hvd1N1cnZleVNjcmVlbigpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX1NIT1dOLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkuZ2V0RXZlbnRJZEZvclN1cnZleUlkKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSksIGF1dG9EaXNtaXNzKTtcclxuICAgIH1cclxuICAgIGlmIChhdXRvRGlzbWlzcyAhPT0gMCkge1xyXG4gICAgICAgIHZhciBhdXRvRGlzbWlzc0R1cmF0aW9uID0gVXRpbHMuY29udmVydEF1dG9EaXNtaXNzVG9UaW1lSW5NcyhhdXRvRGlzbWlzcyk7XHJcbiAgICAgICAgaWYgKGF1dG9EaXNtaXNzRHVyYXRpb24gIT09IDApIHtcclxuICAgICAgICAgICAgdGltZXJBdXRvRGlzbWlzcyA9IHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChpc1Byb21wdFVwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGlzbWlzc0FsbChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGVyc29uYWxpemVyRW5hYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkubG9nVXNlckFjdGlvbkZvclN1cnZleUFzeW5jKDEsIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9QUk9NUFRfQVVUT0RJU01JU1NFRCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIDEsIFBlcnNvbmFsaXplckNsaWVudC5nZXQoKS5nZXRFdmVudElkRm9yU3VydmV5SWQoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRJZCgpKSwgYXV0b0Rpc21pc3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX0FVVE9ESVNNSVNTRUQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgYXV0b0Rpc21pc3NWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LCBhdXRvRGlzbWlzc0R1cmF0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gZW1haWxDaGVja0JveEhhbmRsZXIoZXZlbnQpIHtcclxuICAgIHZhciBlbWFpbENoZWNrQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURzLlRGb3JtRW1haWxDaGVja0JveCk7XHJcbiAgICBpZiAoZW1haWxDaGVja0JveCkge1xyXG4gICAgICAgIHZhciBlbWFpbFRleHRCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChJRHMuVEZvcm1FbWFpbFRleHRCb3gpO1xyXG4gICAgICAgIGVtYWlsVGV4dEJveC52YWx1ZSA9IGVtYWlsQ2hlY2tCb3guY2hlY2tlZCA/IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKS51c2VyRW1haWwgOiBudWxsO1xyXG4gICAgICAgIGVtYWlsVGV4dEJveC5kaXNhYmxlZCA9ICFlbWFpbENoZWNrQm94LmNoZWNrZWQ7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gdG9hc3RLZXlFdmVudEhhbmRsZXIoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5rZXlDb2RlID09PSBLZXlzLkVzYykge1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgZGlzbWlzc0FsbChmYWxzZSk7XHJcbiAgICAgICAgb25DYW5jZWxMb2dnaW5nUm91dGluZSgpO1xyXG4gICAgICAgIGNsZWFyQXV0b0Rpc21pc3MoKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiB0b2FzdENhbmNlbEhhbmRsZXIoZXZlbnQpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGRpc21pc3NBbGwoZmFsc2UpO1xyXG4gICAgb25DYW5jZWxMb2dnaW5nUm91dGluZSgpO1xyXG4gICAgY2xlYXJBdXRvRGlzbWlzcygpO1xyXG59XHJcbmZ1bmN0aW9uIG9uQ2FuY2VsTG9nZ2luZ1JvdXRpbmUoKSB7XHJcbiAgICBpZiAoaXNQcm9tcHRVcCAmJiBpc1BlcnNvbmFsaXplckVuYWJsZWRIZWxwZXIoKSkge1xyXG4gICAgICAgIFBlcnNvbmFsaXplckNsaWVudC5nZXQoKS5sb2dVc2VyQWN0aW9uRm9yU3VydmV5QXN5bmMoMCwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRJZCgpLCBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldENhbXBhaWduSWQoKSk7XHJcbiAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfUFJPTVBUX1VTRVJDTE9TRUQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAwLCBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkuZ2V0RXZlbnRJZEZvclN1cnZleUlkKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSksIGF1dG9EaXNtaXNzVmFsdWUpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxvZ1RlbGVtZXRyeUV2ZW50KGlzUHJvbXB0VXAgPyBMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9QUk9NUFRfVVNFUkNMT1NFRCA6IExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fVVNFUkNMT1NFRCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBhdXRvRGlzbWlzc1ZhbHVlKTtcclxufVxyXG5mdW5jdGlvbiBjbGVhckF1dG9EaXNtaXNzKCkge1xyXG4gICAgaWYgKHRpbWVyQXV0b0Rpc21pc3MpIHtcclxuICAgICAgICBjbGVhclRpbWVvdXQodGltZXJBdXRvRGlzbWlzcyk7XHJcbiAgICAgICAgdGltZXJBdXRvRGlzbWlzcyA9IDA7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gcHJvbXB0Q29udGFpbmVySGFuZGxlcihldmVudCkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgaWYgKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0U3VydmV5VHlwZSgpID09PSBBcGkuU3VydmV5VHlwZS5JbnRlcmNlcHQpIHtcclxuICAgICAgICBpbnRlcmNlcHRIYW5kbGVyKCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgICBzaG93U3VydmV5U2NyZWVuKCk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gaW50ZXJjZXB0SGFuZGxlcigpIHtcclxuICAgIHZhciBzdWNjZXNzID0gb3BlbkluTmV3VGFiKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SW50ZXJjZXB0VXJsKCkpO1xyXG4gICAgZGlzbWlzc0FsbChmYWxzZSk7XHJcbiAgICBpZiAoc3VjY2Vzcykge1xyXG4gICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX1BST01QVF9DTElDS0VEKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX1JFRElSRUNUSU9ORkFJTFVSRSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gb3BlbkluTmV3VGFiKHVybCkge1xyXG4gICAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKHVybCwgXCJfYmxhbmtcIik7XHJcbiAgICBpZiAoaXNOT1Uod2luKSkge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIHdpbi5mb2N1cygpO1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbn1cclxuZnVuY3Rpb24gc2hvd1N1cnZleVNjcmVlbigpIHtcclxuICAgIGlzUHJvbXB0VXAgPSBmYWxzZTtcclxuICAgIFVpVXRpbHMuc2V0RWxlbWVudFZpc2liaWxpdHkoSURzLlRQcm9tcHRDb250YWluZXIsIGZhbHNlKTtcclxuICAgIFVpVXRpbHMuc2V0RWxlbWVudFZpc2liaWxpdHkoSURzLlRGb3JtQ29udGFpbmVyLCB0cnVlKTtcclxuICAgIFVpVXRpbHMuYWRkQ2xhc3NCeUlkKElEcy5Ub2FzdENvbnRhaW5lciwgQ2xhc3Nlcy5Ub2FzdFpvb20pO1xyXG4gICAgaWYgKChcIiBcIiArIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElEcy5URm9ybUNvbnRhaW5lcikuY2xhc3NOYW1lICsgXCIgXCIpLmluZGV4T2YoXCIgXCIgKyBDbGFzc2VzLlZpc2libGUgKyBcIiBcIikgPiAtMSkge1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElEcy5Ub2FzdENvbnRhaW5lcikuc2V0QXR0cmlidXRlKFwicm9sZVwiLCBcImRpYWxvZ1wiKTtcclxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChJRHMuVG9hc3RDb250YWluZXIpLnNldEF0dHJpYnV0ZShcImFyaWEtbGFiZWxsZWRieVwiLCBJRHMuVEZvcm1UaXRsZSk7XHJcbiAgICB9XHJcbiAgICB2YXIgZm9ybVJhdGluZyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKElEcy5URm9ybVJhdGluZyk7XHJcbiAgICBpZiAoZm9ybVJhdGluZyAmJiBmb3JtUmF0aW5nLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmb3JtUmF0aW5nWzBdLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoaXNQZXJzb25hbGl6ZXJFbmFibGVkSGVscGVyKCkpIHtcclxuICAgICAgICBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkubG9nVXNlckFjdGlvbkZvclN1cnZleUFzeW5jKDIsIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRDYW1wYWlnbklkKCkpO1xyXG4gICAgICAgIGxvZ1RlbGVtZXRyeUV2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0ZPUk1fU0hPV04sIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAyLCBQZXJzb25hbGl6ZXJDbGllbnQuZ2V0KCkuZ2V0RXZlbnRJZEZvclN1cnZleUlkKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0SWQoKSksIGF1dG9EaXNtaXNzVmFsdWUpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgbG9nVGVsZW1ldHJ5RXZlbnQoTG9nZ2luZy5FdmVudElkcy5TVVJWRVlfVUlfRk9STV9TSE9XTiwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBhdXRvRGlzbWlzc1ZhbHVlKTtcclxuICAgIH1cclxufVxyXG5mdW5jdGlvbiByYXRpbmdJbnB1dEhhbmRsZXIoZXZlbnQpIHtcclxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKElEcy5URm9ybVN1Ym1pdEJ1dHRvbikuZGlzYWJsZWQgPSBmYWxzZTtcclxufVxyXG5mdW5jdGlvbiBzdWJtaXRCdXR0b25IYW5kbGVyKGV2ZW50KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBVaVV0aWxzLnNldEVsZW1lbnRWaXNpYmlsaXR5KElEcy5URm9ybVN1Ym1pdEJ1dHRvbiwgZmFsc2UpO1xyXG4gICAgdmFyIHNwaW5uZXIgPSBuZXcgU3Bpbm5lcihJRHMuVEZvcm1TdWJtaXRCdXR0b25TcGlubmVyKTtcclxuICAgIHZhciB0cmFuc3BvcnRlciA9IG5ldyBUcmFuc3BvcnRlcihDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkuZW52aXJvbm1lbnQsIEFwaS5TdXJ2ZXlUeXBlW0NvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0U3VydmV5VHlwZSgpXSwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLmFwcElkLCBcIlN1cnZleVwiLCBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkuYXBwbGljYXRpb25Hcm91cCwgQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRDb21tb25Jbml0T3B0aW9ucygpLnRlbGVtZXRyeUdyb3VwLCBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkud2ViR3JvdXApO1xyXG4gICAgdmFyIGNvbW1lbnRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURzLlRGb3JtQ29tbWVudCk7XHJcbiAgICB2YXIgY29tbWVudEVudGVyZWQgPSAoY29tbWVudEVsZW1lbnQgJiYgISFjb21tZW50RWxlbWVudC52YWx1ZSk7XHJcbiAgICB2YXIgc2VsZWN0ZWRSYXRpbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXRbbmFtZT1cXFwiXCIgKyBJRHMuVEZvcm1SYXRpbmcgKyBcIlxcXCJdOmNoZWNrZWRcIik7XHJcbiAgICBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLnNldFZhbHVlcyhOdW1iZXIoc2VsZWN0ZWRSYXRpbmcudmFsdWUpLCBjb21tZW50RW50ZXJlZCA/IGNvbW1lbnRFbGVtZW50LnZhbHVlIDogXCJcIik7XHJcbiAgICB0cmFuc3BvcnRlci5zZXRNYW5pZmVzdFZhbHVlcyhDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZVN1cnZleSgpLmdldEpzb25FbGVtZW50cygpKTtcclxuICAgIHZhciBlbWFpbENoZWNrQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURzLlRGb3JtRW1haWxDaGVja0JveCk7XHJcbiAgICB2YXIgZW1haWxUZXh0Qm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoSURzLlRGb3JtRW1haWxUZXh0Qm94KTtcclxuICAgIGlmIChlbWFpbENoZWNrQm94ICYmIGVtYWlsQ2hlY2tCb3guY2hlY2tlZCAmJiBlbWFpbFRleHRCb3gudmFsdWUgIT09IFwiXCIpIHtcclxuICAgICAgICB0cmFuc3BvcnRlci5zZXRFbWFpbChlbWFpbFRleHRCb3gudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlSW5pdE9wdGlvbnMoKS5pc0V1ZGJVeEVuYWJsZWQpIHtcclxuICAgICAgICB0cmFuc3BvcnRlci5hcHBlbmRVeElkKFNES19VWElEX1ZFUlNJT04pO1xyXG4gICAgfVxyXG4gICAgdHJhbnNwb3J0ZXIuc3VibWl0KCk7XHJcbiAgICBzcGlubmVyLmRlc3Ryb3koKTtcclxuICAgIGRpc21pc3NBbGwodHJ1ZSk7XHJcbiAgICBsb2dUZWxlbWV0cnlFdmVudChMb2dnaW5nLkV2ZW50SWRzLlNVUlZFWV9VSV9GT1JNX1NVQk1JVCwgdHJhbnNwb3J0ZXIuZ2V0Q2xpZW50RmVlZGJhY2tJZCgpLCBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZUluaXRPcHRpb25zKCkuc2hvd0VtYWlsQWRkcmVzcyk7XHJcbn1cclxuZnVuY3Rpb24gaXNQZXJzb25hbGl6ZXJFbmFibGVkSGVscGVyKCkge1xyXG4gICAgcmV0dXJuIFBlcnNvbmFsaXplckNsaWVudC5nZXQoKS5pc0VuYWJsZWQoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRTdXJ2ZXlUeXBlKCksIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0TGF1bmNoZXJUeXBlKCksIENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0R292ZXJlbmVkQ2hhbm5lbFR5cGUoKSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/UI/Toast/Events.ts\n"); /***/ }), /***/ "./scripts/app/UI/Toast/Layout.ts": /*!****************************************!*\ !*** ./scripts/app/UI/Toast/Layout.ts ***! \****************************************/ /*! exports provided: generate */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"generate\", function() { return generate; });\n/* harmony import */ var _ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms-ofb/floodgate-shared-typings */ \"./node_modules/@ms-ofb/floodgate-shared-typings/dist/index.js\");\n/* harmony import */ var _ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ChoiceGroupControl__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../ChoiceGroupControl */ \"./scripts/app/UI/ChoiceGroupControl.ts\");\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./../../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./../UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\n/* harmony import */ var _UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./../../UIStrings/UIStrings */ \"./scripts/app/UIStrings/UIStrings.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./../Utils */ \"./scripts/app/UI/Utils.ts\");\n/* harmony import */ var _Utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./../../Utils */ \"./scripts/app/Utils.ts\");\nvar cov_2fjxzdjssh=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Layout.ts\",hash=\"2d1c5c703af05ddb96b5805b102a8b9cd1830775\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Layout.ts\",statementMap:{\"0\":{start:{line:9,column:17},end:{line:33,column:5}},\"1\":{start:{line:34,column:4},end:{line:34,column:18}},\"2\":{start:{line:37,column:23},end:{line:37,column:108}},\"3\":{start:{line:38,column:23},end:{line:63,column:5}},\"4\":{start:{line:64,column:4},end:{line:64,column:24}},\"5\":{start:{line:67,column:4},end:{line:67,column:88}},\"6\":{start:{line:70,column:21},end:{line:249,column:5}},\"7\":{start:{line:250,column:4},end:{line:250,column:22}},\"8\":{start:{line:253,column:21},end:{line:387,column:5}},\"9\":{start:{line:388,column:4},end:{line:388,column:22}},\"10\":{start:{line:392,column:18},end:{line:392,column:20}},\"11\":{start:{line:393,column:23},end:{line:393,column:90}},\"12\":{start:{line:394,column:16},end:{line:394,column:17}},\"13\":{start:{line:395,column:4},end:{line:399,column:5}},\"14\":{start:{line:396,column:26},end:{line:396,column:44}},\"15\":{start:{line:397,column:8},end:{line:397,column:43}},\"16\":{start:{line:398,column:8},end:{line:398,column:16}},\"17\":{start:{line:400,column:4},end:{line:400,column:201}},\"18\":{start:{line:403,column:4},end:{line:408,column:5}},\"19\":{start:{line:404,column:8},end:{line:404,column:111}},\"20\":{start:{line:407,column:8},end:{line:407,column:58}},\"21\":{start:{line:411,column:21},end:{line:415,column:5}},\"22\":{start:{line:416,column:4},end:{line:416,column:22}}},fnMap:{\"0\":{name:\"generate\",decl:{start:{line:8,column:16},end:{line:8,column:24}},loc:{start:{line:8,column:27},end:{line:35,column:1}},line:8},\"1\":{name:\"generatePrompt\",decl:{start:{line:36,column:9},end:{line:36,column:23}},loc:{start:{line:36,column:26},end:{line:65,column:1}},line:36},\"2\":{name:\"generateForm\",decl:{start:{line:66,column:9},end:{line:66,column:21}},loc:{start:{line:66,column:37},end:{line:68,column:1}},line:66},\"3\":{name:\"generateFormEudbCompliant\",decl:{start:{line:69,column:9},end:{line:69,column:34}},loc:{start:{line:69,column:37},end:{line:251,column:1}},line:69},\"4\":{name:\"generateFormEudbNonCompliant\",decl:{start:{line:252,column:9},end:{line:252,column:37}},loc:{start:{line:252,column:40},end:{line:389,column:1}},line:252},\"5\":{name:\"generateRatingControl\",decl:{start:{line:390,column:9},end:{line:390,column:30}},loc:{start:{line:390,column:33},end:{line:401,column:1}},line:390},\"6\":{name:\"privacyLabelHelper\",decl:{start:{line:402,column:9},end:{line:402,column:27}},loc:{start:{line:402,column:30},end:{line:409,column:1}},line:402},\"7\":{name:\"generateFormContainerLabel\",decl:{start:{line:410,column:9},end:{line:410,column:35}},loc:{start:{line:410,column:43},end:{line:417,column:1}},line:410}},branchMap:{\"0\":{loc:{start:{line:27,column:12},end:{line:29,column:20}},type:\"cond-expr\",locations:[{start:{line:28,column:18},end:{line:28,column:93}},{start:{line:29,column:18},end:{line:29,column:20}}],line:27},\"1\":{loc:{start:{line:31,column:33},end:{line:31,column:73}},type:\"cond-expr\",locations:[{start:{line:31,column:57},end:{line:31,column:68}},{start:{line:31,column:71},end:{line:31,column:73}}],line:31},\"2\":{loc:{start:{line:46,column:27},end:{line:48,column:71}},type:\"cond-expr\",locations:[{start:{line:47,column:20},end:{line:47,column:80}},{start:{line:48,column:20},end:{line:48,column:71}}],line:46},\"3\":{loc:{start:{line:56,column:27},end:{line:58,column:80}},type:\"cond-expr\",locations:[{start:{line:57,column:20},end:{line:57,column:83}},{start:{line:58,column:20},end:{line:58,column:80}}],line:56},\"4\":{loc:{start:{line:67,column:11},end:{line:67,column:87}},type:\"cond-expr\",locations:[{start:{line:67,column:27},end:{line:67,column:54}},{start:{line:67,column:57},end:{line:67,column:87}}],line:67},\"5\":{loc:{start:{line:128,column:21},end:{line:128,column:144}},type:\"binary-expr\",locations:[{start:{line:128,column:21},end:{line:128,column:83}},{start:{line:128,column:87},end:{line:128,column:144}}],line:128},\"6\":{loc:{start:{line:234,column:28},end:{line:234,column:68}},type:\"cond-expr\",locations:[{start:{line:234,column:52},end:{line:234,column:63}},{start:{line:234,column:66},end:{line:234,column:68}}],line:234},\"7\":{loc:{start:{line:285,column:21},end:{line:285,column:144}},type:\"binary-expr\",locations:[{start:{line:285,column:21},end:{line:285,column:83}},{start:{line:285,column:87},end:{line:285,column:144}}],line:285},\"8\":{loc:{start:{line:400,column:66},end:{line:400,column:180}},type:\"cond-expr\",locations:[{start:{line:400,column:162},end:{line:400,column:168}},{start:{line:400,column:171},end:{line:400,column:180}}],line:400},\"9\":{loc:{start:{line:400,column:66},end:{line:400,column:159}},type:\"binary-expr\",locations:[{start:{line:400,column:66},end:{line:400,column:142}},{start:{line:400,column:146},end:{line:400,column:159}}],line:400},\"10\":{loc:{start:{line:403,column:4},end:{line:408,column:5}},type:\"if\",locations:[{start:{line:403,column:4},end:{line:408,column:5}},{start:{line:403,column:4},end:{line:408,column:5}}],line:403}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0],\"10\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Layout.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Toast\\\\Layout.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/**\\r\\n * Layout.ts\\r\\n *\\r\\n * Module for the layout\\r\\n */\\r\\nimport { Api } from \\\"@ms-ofb/floodgate-shared-typings\\\";\\r\\nimport * as Renderer from \\\"./../Renderer\\\";\\r\\nimport * as ChoiceGroupControl from \\\"./../ChoiceGroupControl\\\";\\r\\nimport * as Configuration from \\\"./../../Configuration/Configuration\\\";\\r\\nimport { AttributeName, AttributeValue, Classes, IDs, Tags } from \\\"./../UiConstants\\\";\\r\\nimport * as UIStrings from \\\"./../../UIStrings/UIStrings\\\";\\r\\nimport * as Utils from \\\"./../Utils\\\";\\r\\nimport { isTenantIdCommercial } from \\\"./../../Utils\\\";\\r\\n\\r\\n/**\\r\\n * Generates the toast\\r\\n *\\r\\n * @returns {Renderer.IUIAsJson} Renderer.IUIAsJson object\\r\\n */\\r\\nexport function generate(): Renderer.IUIAsJson {\\r\\n\\tconst schema: Renderer.IUIAsJson = {\\r\\n\\t\\tattributes: [\\r\\n\\t\\t\\t{ name: AttributeName.DataHtml2CanvasIgnore, value: AttributeValue.True },\\r\\n\\t\\t\\t{ name: AttributeName.Role, value: \\\"alert\\\" },\\r\\n\\t\\t\\t{ name: AttributeName.Style, value: Configuration.get().getCSSVarString() },\\r\\n\\t\\t],\\r\\n\\t\\tchildren: [\\r\\n\\t\\t\\tgeneratePrompt(),\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.Type, value: AttributeValue.Button },\\r\\n\\t\\t\\t\\t\\t{ name: AttributeName.AriaLabel, value: UIStrings.getUIStrings().CloseLabel },\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.ToastCancel,\\r\\n\\t\\t\\t\\tinnerHTML: ''+\\r\\n\\t\\t\\t\\t'',\\r\\n\\t\\t\\t\\ttag: Tags.Button,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t(Configuration.get().getFloodgateSurvey().getSurveyType() !== Api.SurveyType.Intercept)\\r\\n\\t\\t\\t\\t? generateForm(Configuration.get().getFloodgateInitOptions().isEudbUxEnabled)\\r\\n\\t\\t\\t\\t: {},\\r\\n\\t\\t],\\r\\n\\t\\tclasses: [Classes.Toast, Utils.isRightToLeft() ? Classes.Rtl : \\\"\\\"],\\r\\n\\t\\tid: IDs.ToastContainer,\\r\\n\\t};\\r\\n\\treturn schema;\\r\\n}\\r\\n\\r\\nfunction generatePrompt(): Renderer.IUIAsJson {\\r\\n\\t// Checking if the campaign is an intercept one to render the relevant prompt strings.\\r\\n\\tconst isIntercept = (Configuration.get().getFloodgateSurvey().getSurveyType() === Api.SurveyType.Intercept);\\r\\n\\r\\n\\tconst promptSchema: Renderer.IUIAsJson = {\\r\\n\\t\\tchildren: [\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\tClasses.FontText,\\r\\n\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TPromptTitle,\\r\\n\\t\\t\\t\\tinnerText: isIntercept ?\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getInterceptTitle() :\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getTitle(),\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\tClasses.FontSubText,\\r\\n\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TPromptText,\\r\\n\\t\\t\\t\\tinnerText: isIntercept ?\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getInterceptQuestion() :\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getPromptQuestion(),\\r\\n\\t\\t\\t},\\r\\n\\t\\t],\\r\\n\\t\\tid: IDs.TPromptContainer,\\r\\n\\t\\ttag: Tags.Button,\\r\\n\\t};\\r\\n\\r\\n\\treturn promptSchema;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Switches between rending the old EUDB non-compliant UX,\\r\\n * or the updated EUDB compliant UX. Needed temporarily for\\r\\n * maintaining experiment baseline - after experiment is complete,\\r\\n * can remove the non-compliant function\\r\\n *\\r\\n * @returns {Renderer.IUIAsJson} Renderer.IUIAsJson object\\r\\n */\\r\\nfunction generateForm(eudbCompliant: boolean): Renderer.IUIAsJson {\\r\\n\\treturn eudbCompliant ? generateFormEudbCompliant() : generateFormEudbNonCompliant();\\r\\n}\\r\\n\\r\\nfunction generateFormEudbCompliant(): Renderer.IUIAsJson {\\r\\n\\tconst formSchema: Renderer.IUIAsJson = {\\r\\n\\t\\tchildren: [\\r\\n\\t\\t\\tgenerateFormContainerLabel(UIStrings.getUIStrings().Floodgate.Form.Title),\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\tClasses.FontText,\\r\\n\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TFormTitle,\\r\\n\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Floodgate.Form.Title,\\r\\n\\t\\t\\t\\tattributes : [\\r\\n\\t\\t\\t\\t\\t{\\t// heading role for screen readers.\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.Role,\\r\\n\\t\\t\\t\\t\\t\\tvalue: \\\"heading\\\",\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.AriaLevel,\\r\\n\\t\\t\\t\\t\\t\\tvalue: \\\"1\\\"\\r\\n\\t\\t\\t\\t\\t}\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tgenerateRatingControl(),\\r\\n\\t\\t\\t{ // Comment question label.\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{ // Note: It's important that this label is specified for the comment TextArea for acessibility and screen readers.\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.For,\\r\\n\\t\\t\\t\\t\\t\\tvalue: IDs.TFormComment,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.AriaLabel,\\r\\n\\t\\t\\t\\t\\t\\tvalue: Configuration.get().getFloodgateSurvey().getCommentQuestion(),\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.MaxLength,\\r\\n\\t\\t\\t\\t\\t\\tvalue: AttributeValue.TextAreaMaxLength,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tinnerText: Configuration.get().getFloodgateSurvey().getCommentQuestion(),\\r\\n\\t\\t\\t\\tclasses: [Classes.FontSubText],\\r\\n\\t\\t\\t\\tid: IDs.TFormCommentQuestion,\\r\\n\\t\\t\\t\\ttag: Tags.Label,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{ // Comment questions response text area with personal information warning placeholder\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.Placeholder,\\r\\n\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().Form.CommentPlaceholder,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.MaxLength,\\r\\n\\t\\t\\t\\t\\t\\tvalue: AttributeValue.TextAreaMaxLength,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.TextInput],\\r\\n\\t\\t\\t\\tid: IDs.TFormComment,\\r\\n\\t\\t\\t\\ttag: Tags.TextArea,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tbrs: Configuration.get().getFloodgateInitOptions().showEmailAddress && Configuration.get().getFloodgateSurvey().showEmailRequest,\\r\\n\\t\\t\\t\\tchildren: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Type,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.Checkbox,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.TFormEmailCheckbox, Classes.CheckBox],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormEmailCheckBox,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [{ name: AttributeName.For, value: IDs.TFormEmailCheckBox }],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.TextAlignLeft, Classes.TFormEmailLabel],\\r\\n\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Form.EmailCheckBoxLabel,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Label,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Type,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.Text,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Placeholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().Form.EmailPlaceholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.AriaLabel,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().Form.EmailPlaceholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Name,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: IDs.BasicFormEmailInput,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.MaxLength,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.TextAreaMaxLength,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Value,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: \\\"\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.FormEmailInput, Classes.TextInput],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormEmailTextBox,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tchildren:\\r\\n\\t\\t\\t\\t\\t[\\r\\n\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\tclasses: [Classes.FontSubSubText, Classes.TextAlignLeft, Classes.FormPrivacyConsentText],\\r\\n\\t\\t\\t\\t\\t\\t\\tinnerText: privacyLabelHelper(),\\r\\n\\t\\t\\t\\t\\t\\t\\ttag: Tags.Label,\\r\\n\\t\\t\\t\\t\\t\\t\\tid: IDs.PrivacyConsentText,\\r\\n\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.HRef,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: Configuration.get().getCommonInitOptions().privacyUrl,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Target,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.BlankWindow,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Rel,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.NoReferrer,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\tclasses: [Classes.Link],\\r\\n\\t\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().PrivacyStatement,\\r\\n\\t\\t\\t\\t\\t\\t\\ttag: Tags.Anchor,\\r\\n\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tclasses: [Classes.FontSubSubText, Classes.TextAlignLeft, Classes.PrivacyStatementLinkDivEudbUx],\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tchildren: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{ name: AttributeName.Disabled, value: AttributeValue.True },\\r\\n\\t\\t\\t\\t\\t\\t\\t{ name: AttributeName.AriaDescribedBy, value: IDs.PrivacyConsentText },\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.FontSubText,\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.SubmitButton,\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormSubmitButton,\\r\\n\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Form.Submit,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Button,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.Spinner, Classes.Hidden],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormSubmitButtonSpinner,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.FontSubText,\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.CancelButton,\\r\\n\\t\\t\\t\\t\\t\\t\\tUtils.isRightToLeft() ? Classes.Rtl : \\\"\\\",\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormCancelButton,\\r\\n\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Form.Cancel,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Button,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TFormSubmitButtonContainer,\\r\\n\\t\\t\\t},\\r\\n\\t\\t],\\r\\n\\t\\tclasses: [Classes.Hidden],\\r\\n\\t\\tid: IDs.TFormContainer,\\r\\n\\t\\tattributes: [\\r\\n\\t\\t\\t{ name: AttributeName.AriaLabelledBy, value: IDs.TFormContainerLabel },\\r\\n\\t\\t],\\r\\n\\t};\\r\\n\\r\\n\\treturn formSchema;\\r\\n}\\r\\n\\r\\nfunction generateFormEudbNonCompliant(): Renderer.IUIAsJson {\\r\\n\\tconst formSchema: Renderer.IUIAsJson = {\\r\\n\\t\\tchildren: [\\r\\n\\t\\t\\tgenerateFormContainerLabel(Configuration.get().getFloodgateSurvey().getTitle()),\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\tClasses.FontText,\\r\\n\\t\\t\\t\\t\\tClasses.TextAlignLeft,\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TFormTitle,\\r\\n\\t\\t\\t\\tinnerText: Configuration.get().getFloodgateSurvey().getTitle(),\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\tgenerateRatingControl(),\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.Placeholder,\\r\\n\\t\\t\\t\\t\\t\\tvalue: Configuration.get().getFloodgateSurvey().getCommentQuestion(),\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.AriaLabel,\\r\\n\\t\\t\\t\\t\\t\\tvalue: Configuration.get().getFloodgateSurvey().getCommentQuestion(),\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tname: AttributeName.MaxLength,\\r\\n\\t\\t\\t\\t\\t\\tvalue: AttributeValue.TextAreaMaxLength,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.TextInput],\\r\\n\\t\\t\\t\\tid: IDs.TFormComment,\\r\\n\\t\\t\\t\\ttag: Tags.TextArea,\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tbrs: Configuration.get().getFloodgateInitOptions().showEmailAddress && Configuration.get().getFloodgateSurvey().showEmailRequest,\\r\\n\\t\\t\\t\\tchildren: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Type,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.Checkbox,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.TFormEmailCheckbox, Classes.CheckBox],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormEmailCheckBox,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [{ name: AttributeName.For, value: IDs.TFormEmailCheckBox }],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.TextAlignLeft, Classes.TFormEmailLabel],\\r\\n\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Form.EmailCheckBoxLabel,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Label,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Type,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.Text,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Placeholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().Form.EmailPlaceholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.AriaLabel,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: UIStrings.getUIStrings().Form.EmailPlaceholder,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Name,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: IDs.BasicFormEmailInput,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.MaxLength,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.TextAreaMaxLength,\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Value,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\tvalue: \\\"\\\",\\r\\n\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.FontSubText, Classes.FormEmailInput, Classes.TextInput],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormEmailTextBox,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Input,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tchildren:\\r\\n\\t\\t\\t\\t\\t[\\r\\n\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\tattributes: [\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.HRef,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: Configuration.get().getCommonInitOptions().privacyUrl,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Target,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.BlankWindow,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tname: AttributeName.Rel,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t\\tvalue: AttributeValue.NoReferrer,\\r\\n\\t\\t\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\t\\tclasses: [Classes.Link],\\r\\n\\t\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().PrivacyStatement,\\r\\n\\t\\t\\t\\t\\t\\t\\ttag: Tags.Anchor,\\r\\n\\t\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tclasses: [Classes.FontSubSubText, Classes.TextAlignLeft, Classes.PrivacyStatementLinkDiv],\\r\\n\\t\\t\\t},\\r\\n\\t\\t\\t{\\r\\n\\t\\t\\t\\tchildren: [\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tattributes: [{ name: AttributeName.Disabled, value: AttributeValue.True }],\\r\\n\\t\\t\\t\\t\\t\\tclasses: [\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.FontSubText,\\r\\n\\t\\t\\t\\t\\t\\t\\tClasses.SubmitButton,\\r\\n\\t\\t\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormSubmitButton,\\r\\n\\t\\t\\t\\t\\t\\tinnerText: UIStrings.getUIStrings().Form.Submit,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Button,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\t\\tclasses: [Classes.Spinner, Classes.Hidden],\\r\\n\\t\\t\\t\\t\\t\\tid: IDs.TFormSubmitButtonSpinner,\\r\\n\\t\\t\\t\\t\\t\\ttag: Tags.Div,\\r\\n\\t\\t\\t\\t\\t},\\r\\n\\t\\t\\t\\t],\\r\\n\\t\\t\\t\\tid: IDs.TFormSubmitButtonContainer,\\r\\n\\t\\t\\t},\\r\\n\\t\\t],\\r\\n\\t\\tclasses: [Classes.Hidden],\\r\\n\\t\\tid: IDs.TFormContainer,\\r\\n\\t\\tattributes: [\\r\\n\\t\\t\\t{ name: AttributeName.AriaLabelledBy, value: IDs.TFormContainerLabel },\\r\\n\\t\\t],\\r\\n\\t};\\r\\n\\r\\n\\treturn formSchema;\\r\\n}\\r\\n\\r\\nfunction generateRatingControl(): Renderer.IUIAsJson {\\r\\n\\tconst choices: [number, string][] = [];\\r\\n\\r\\n\\tconst ratingValues: string[] = Configuration.get().getFloodgateSurvey().getRatingValuesAscending();\\r\\n\\tlet index = 0;\\r\\n\\r\\n\\tfor (const ratingValue of ratingValues) {\\r\\n\\t\\tchoices.push([index, ratingValue]);\\r\\n\\t\\tindex++;\\r\\n\\t}\\r\\n\\r\\n\\t// Ratings need to be shown in descending order\\r\\n\\treturn ChoiceGroupControl.generateRadioGroup(IDs.TFormRating,\\r\\n\\t\\tConfiguration.get().getFloodgateSurvey().getRatingQuestion()?.trim(),\\r\\n\\t\\tchoices.reverse());\\r\\n}\\r\\n\\r\\n// The PrivacyConsent text is concatenated to the PrivacyLabel if the user is commercial.\\r\\nfunction privacyLabelHelper(): string {\\r\\n\\tif (isTenantIdCommercial(Configuration.get().getCommonInitOptions().telemetryGroup.tenantId)) {\\r\\n\\t\\treturn UIStrings.getUIStrings().Form.PrivacyLabel + UIStrings.getUIStrings().Form.PrivacyConsent + \\\" \\\";\\r\\n\\t} else {\\r\\n\\t\\treturn UIStrings.getUIStrings().Form.PrivacyLabel;\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction generateFormContainerLabel(label: string): Renderer.IUIAsJson {\\r\\n\\tconst formSchema: Renderer.IUIAsJson = {\\r\\n\\t\\tclasses: [Classes.Hidden],\\r\\n\\t\\tid: IDs.TFormContainerLabel,\\r\\n\\t\\tinnerText: label,\\r\\n\\t}\\r\\n\\treturn formSchema;\\r\\n}\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function generate(){cov_2fjxzdjssh.f[0]++;var schema=(cov_2fjxzdjssh.s[0]++,{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].DataHtml2CanvasIgnore,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].True},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Role,value:\"alert\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Style,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getCSSVarString()}],children:[generatePrompt(),{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Type,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].Button},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabel,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().CloseLabel}],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].ToastCancel,innerHTML:''+'',tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Button},_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getSurveyType()!==_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__[\"Api\"].SurveyType.Intercept?(cov_2fjxzdjssh.b[0][0]++,generateForm(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateInitOptions().isEudbUxEnabled)):(cov_2fjxzdjssh.b[0][1]++,{})],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Toast,_Utils__WEBPACK_IMPORTED_MODULE_5__[\"isRightToLeft\"]()?(cov_2fjxzdjssh.b[1][0]++,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Rtl):(cov_2fjxzdjssh.b[1][1]++,\"\")],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].ToastContainer});cov_2fjxzdjssh.s[1]++;return schema;}function generatePrompt(){cov_2fjxzdjssh.f[1]++;var isIntercept=(cov_2fjxzdjssh.s[2]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getSurveyType()===_ms_ofb_floodgate_shared_typings__WEBPACK_IMPORTED_MODULE_0__[\"Api\"].SurveyType.Intercept);var promptSchema=(cov_2fjxzdjssh.s[3]++,{children:[{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TPromptTitle,innerText:isIntercept?(cov_2fjxzdjssh.b[2][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getInterceptTitle()):(cov_2fjxzdjssh.b[2][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getTitle())},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TPromptText,innerText:isIntercept?(cov_2fjxzdjssh.b[3][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getInterceptQuestion()):(cov_2fjxzdjssh.b[3][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getPromptQuestion())}],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TPromptContainer,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Button});cov_2fjxzdjssh.s[4]++;return promptSchema;}function generateForm(eudbCompliant){cov_2fjxzdjssh.f[2]++;cov_2fjxzdjssh.s[5]++;return eudbCompliant?(cov_2fjxzdjssh.b[4][0]++,generateFormEudbCompliant()):(cov_2fjxzdjssh.b[4][1]++,generateFormEudbNonCompliant());}function generateFormEudbCompliant(){cov_2fjxzdjssh.f[3]++;var formSchema=(cov_2fjxzdjssh.s[6]++,{children:[generateFormContainerLabel(_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Floodgate.Form.Title),{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormTitle,innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Floodgate.Form.Title,attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Role,value:\"heading\"},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLevel,value:\"1\"}]},generateRatingControl(),{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].For,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormComment},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabel,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getCommentQuestion()},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].MaxLength,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].TextAreaMaxLength}],innerText:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getCommentQuestion(),classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormCommentQuestion,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Label},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Placeholder,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.CommentPlaceholder},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].MaxLength,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].TextAreaMaxLength}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextInput],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormComment,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].TextArea},{brs:(cov_2fjxzdjssh.b[5][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateInitOptions().showEmailAddress)&&(cov_2fjxzdjssh.b[5][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().showEmailRequest),children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Type,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].Checkbox}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TFormEmailCheckbox,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].CheckBox],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailCheckBox,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Input},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].For,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailCheckBox}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TFormEmailLabel],innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailCheckBoxLabel,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Label},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Type,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].Text},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Placeholder,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailPlaceholder},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabel,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailPlaceholder},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Name,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].BasicFormEmailInput},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].MaxLength,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].TextAreaMaxLength},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Value,value:\"\"}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FormEmailInput,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextInput],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailTextBox,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Input}]},{children:[{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FormPrivacyConsentText],innerText:privacyLabelHelper(),tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Label,id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].PrivacyConsentText},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].HRef,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getCommonInitOptions().privacyUrl},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Target,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].BlankWindow},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Rel,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].NoReferrer}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Link],innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().PrivacyStatement,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Anchor}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].PrivacyStatementLinkDivEudbUx]},{children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Disabled,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].True},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaDescribedBy,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].PrivacyConsentText}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].SubmitButton],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButton,innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.Submit,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Button},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Spinner,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Hidden],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButtonSpinner,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Div},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].CancelButton,_Utils__WEBPACK_IMPORTED_MODULE_5__[\"isRightToLeft\"]()?(cov_2fjxzdjssh.b[6][0]++,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Rtl):(cov_2fjxzdjssh.b[6][1]++,\"\")],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormCancelButton,innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.Cancel,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Button}],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButtonContainer}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Hidden],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormContainer,attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabelledBy,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormContainerLabel}]});cov_2fjxzdjssh.s[7]++;return formSchema;}function generateFormEudbNonCompliant(){cov_2fjxzdjssh.f[4]++;var formSchema=(cov_2fjxzdjssh.s[8]++,{children:[generateFormContainerLabel(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getTitle()),{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormTitle,innerText:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getTitle()},generateRatingControl(),{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Placeholder,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getCommentQuestion()},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabel,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getCommentQuestion()},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].MaxLength,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].TextAreaMaxLength}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextInput],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormComment,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].TextArea},{brs:(cov_2fjxzdjssh.b[7][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateInitOptions().showEmailAddress)&&(cov_2fjxzdjssh.b[7][1]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().showEmailRequest),children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Type,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].Checkbox}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TFormEmailCheckbox,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].CheckBox],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailCheckBox,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Input},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].For,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailCheckBox}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TFormEmailLabel],innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailCheckBoxLabel,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Label},{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Type,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].Text},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Placeholder,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailPlaceholder},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabel,value:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.EmailPlaceholder},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Name,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].BasicFormEmailInput},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].MaxLength,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].TextAreaMaxLength},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Value,value:\"\"}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FormEmailInput,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextInput],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormEmailTextBox,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Input}]},{children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].HRef,value:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getCommonInitOptions().privacyUrl},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Target,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].BlankWindow},{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Rel,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].NoReferrer}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Link],innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().PrivacyStatement,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Anchor}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].TextAlignLeft,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].PrivacyStatementLinkDiv]},{children:[{attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].Disabled,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeValue\"].True}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].FontSubText,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].SubmitButton],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButton,innerText:_UIStrings_UIStrings__WEBPACK_IMPORTED_MODULE_4__[\"getUIStrings\"]().Form.Submit,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Button},{classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Spinner,_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Hidden],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButtonSpinner,tag:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Tags\"].Div}],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormSubmitButtonContainer}],classes:[_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"Classes\"].Hidden],id:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormContainer,attributes:[{name:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"AttributeName\"].AriaLabelledBy,value:_UiConstants__WEBPACK_IMPORTED_MODULE_3__[\"IDs\"].TFormContainerLabel}]});cov_2fjxzdjssh.s[9]++;return formSchema;}function generateRatingControl(){cov_2fjxzdjssh.f[5]++;var _a;var choices=(cov_2fjxzdjssh.s[10]++,[]);var ratingValues=(cov_2fjxzdjssh.s[11]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_2__[\"get\"]().getFloodgateSurvey().getRatingValuesAscending());var index=(cov_2fjxzdjssh.s[12]++,0);cov_2fjxzdjssh.s[13]++;for(var _i=0,ratingValues_1=ratingValues;_i void) {\\r\\n\\tconst dxEnabled = Configuration.get().getDynamicUxConfig().enabled;\\r\\n\\tLogging.getLogger().logEvent(Logging.EventIds.SURVEY_UI_CREATE,\\r\\n\\t\\tLogging.LogLevel.Critical,\\r\\n\\t\\t{\\r\\n\\t\\t\\tCampaignId: Configuration.get().getFloodgateSurvey()?.getCampaignId(),\\r\\n\\t\\t\\tSurveyId: Configuration.get().getFloodgateSurvey()?.getId(),\\r\\n\\t\\t\\tSurveyType: Configuration.get().getFloodgateSurvey()?.getSurveyType(),\\r\\n\\t\\t\\tMessage: JSON.stringify({\\r\\n\\t\\t\\t\\tDynamicUxClientState: dxEnabled && DynamicUxClient.get()?.getStatus(),\\r\\n\\t\\t\\t\\tDynamicUxEnabled: dxEnabled,\\r\\n\\t\\t\\t\\tSurveyEnabled: Configuration.get().checkIfSurveysEnabled()\\r\\n\\t\\t\\t}),\\r\\n\\t\\t}\\r\\n\\t);\\r\\n\\r\\n\\tif (Configuration.get().getFloodgateSurvey().getUxSchema() &&\\r\\n\\t\\tdxEnabled && DynamicUxClient.get().getStatus() === DynamicUxClientState.Success) {\\r\\n\\t\\tCentroCoreDataSource.get().updateFloodgateSurvey(() => {\\r\\n\\t\\t\\tDynamicUxClient.get().unmountSurvey();\\r\\n\\t\\t\\tonClose();\\r\\n\\t\\t});\\r\\n\\t\\tDynamicUxClient.get().boostStrapSurvey().catch((error) => {\\r\\n\\t\\t\\tLogging.getLogger().logEvent(Logging.EventIds.DYNAMICUX_BOOSTSTRAPPER_FAILURE,\\r\\n\\t\\t\\t\\tLogging.LogLevel.Error,\\r\\n\\t\\t\\t\\t{\\r\\n\\t\\t\\t\\t\\tErrorMessage: error,\\r\\n\\t\\t\\t\\t\\tMessage: JSON.stringify({\\r\\n\\t\\t\\t\\t\\t\\tDynamicUxClientState: DynamicUxClient.get().getStatus(),\\r\\n\\t\\t\\t\\t\\t}),\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t);\\r\\n\\t\\t\\t// Call onError to let host app know.\\r\\n\\t\\t\\tConfiguration.get().getCommonInitOptions().onError(`Failed to bootstrap Dynamic survey UX: ${error}`);\\r\\n\\t\\t});\\r\\n\\t}\\r\\n\\telse {\\r\\n\\t\\tcreate(Renderer.elementFromJson(Layout.generate()));\\r\\n\\t\\tEvents.register(\\r\\n\\t\\t\\tfunction (submitted: boolean) {\\r\\n\\t\\t\\t\\tUtils.setElementVisibility(IDs.ToastContainer, false);\\r\\n\\t\\t\\t\\tUtils.deleteElementById(IDs.ToastContainer);\\r\\n\\t\\t\\t\\tConfiguration.get().getFloodgateInitOptions().onDismiss(\\r\\n\\t\\t\\t\\t\\tConfiguration.get().getFloodgateSurvey().getCampaignId(),\\r\\n\\t\\t\\t\\t\\tsubmitted\\r\\n\\t\\t\\t\\t);\\r\\n\\t\\t\\t\\tonClose();\\r\\n\\t\\t\\t});\\r\\n\\t}\\r\\n}\\r\\n\\r\\nfunction create(userInterface: Element) {\\r\\n\\tconst surveyContainer = Configuration.get().getFloodgateInitOptions().surveyContainer;\\r\\n\\tif (typeof surveyContainer === 'string') {\\r\\n\\t\\t// Element ID is provided\\r\\n\\t\\tconst surveyContainerElement = Utils.getOrCreateDiv(surveyContainer);\\r\\n\\t\\t// Insert the survey UI as the first child of the survey container\\r\\n\\t\\tsurveyContainerElement.insertBefore(userInterface, surveyContainerElement.firstChild);\\r\\n\\t} else if (surveyContainer instanceof HTMLElement) { // TypeOf surveyContainer is \\\"Object\\\" when HtmlElement is passed, so checking for instanceOf\\r\\n\\t\\t// HtmlElement is provided\\r\\n\\t\\tsurveyContainer.insertBefore(userInterface, surveyContainer.firstChild);\\r\\n\\t} else {\\r\\n\\t\\t// Fallback to current drawing mechanism\\r\\n\\t\\tdocument.body.insertBefore(userInterface, document.body.firstChild);\\r\\n\\t}\\r\\n\\r\\n\\tUtils.setElementVisibility(IDs.ToastContainer, true);\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function createSurvey(onClose){cov_lteep22l7.f[0]++;var _a,_b,_c,_d;var dxEnabled=(cov_lteep22l7.s[0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getDynamicUxConfig().enabled);cov_lteep22l7.s[1]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].SURVEY_UI_CREATE,1,{CampaignId:(cov_lteep22l7.b[1][0]++,(_a=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateSurvey())===null)||(cov_lteep22l7.b[1][1]++,_a===void 0)?(cov_lteep22l7.b[0][0]++,void 0):(cov_lteep22l7.b[0][1]++,_a.getCampaignId()),SurveyId:(cov_lteep22l7.b[3][0]++,(_b=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateSurvey())===null)||(cov_lteep22l7.b[3][1]++,_b===void 0)?(cov_lteep22l7.b[2][0]++,void 0):(cov_lteep22l7.b[2][1]++,_b.getId()),SurveyType:(cov_lteep22l7.b[5][0]++,(_c=_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateSurvey())===null)||(cov_lteep22l7.b[5][1]++,_c===void 0)?(cov_lteep22l7.b[4][0]++,void 0):(cov_lteep22l7.b[4][1]++,_c.getSurveyType()),Message:JSON.stringify({DynamicUxClientState:(cov_lteep22l7.b[6][0]++,dxEnabled)&&(cov_lteep22l7.b[6][1]++,(cov_lteep22l7.b[8][0]++,(_d=_DynamicUx_DynamicUxClient__WEBPACK_IMPORTED_MODULE_6__[\"get\"]())===null)||(cov_lteep22l7.b[8][1]++,_d===void 0)?(cov_lteep22l7.b[7][0]++,void 0):(cov_lteep22l7.b[7][1]++,_d.getStatus())),DynamicUxEnabled:dxEnabled,SurveyEnabled:_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().checkIfSurveysEnabled()})});cov_lteep22l7.s[2]++;if((cov_lteep22l7.b[10][0]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateSurvey().getUxSchema())&&(cov_lteep22l7.b[10][1]++,dxEnabled)&&(cov_lteep22l7.b[10][2]++,_DynamicUx_DynamicUxClient__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().getStatus()===2)){cov_lteep22l7.b[9][0]++;cov_lteep22l7.s[3]++;_DynamicUx_CentroCoreDataSource__WEBPACK_IMPORTED_MODULE_8__[\"CentroCoreDataSource\"].get().updateFloodgateSurvey(function(){cov_lteep22l7.f[1]++;cov_lteep22l7.s[4]++;_DynamicUx_DynamicUxClient__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().unmountSurvey();cov_lteep22l7.s[5]++;onClose();});cov_lteep22l7.s[6]++;_DynamicUx_DynamicUxClient__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().boostStrapSurvey().catch(function(error){cov_lteep22l7.f[2]++;cov_lteep22l7.s[7]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_7__[\"EventIds\"].DYNAMICUX_BOOSTSTRAPPER_FAILURE,2,{ErrorMessage:error,Message:JSON.stringify({DynamicUxClientState:_DynamicUx_DynamicUxClient__WEBPACK_IMPORTED_MODULE_6__[\"get\"]().getStatus()})});cov_lteep22l7.s[8]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getCommonInitOptions().onError(\"Failed to bootstrap Dynamic survey UX: \".concat(error));});}else{cov_lteep22l7.b[9][1]++;cov_lteep22l7.s[9]++;create(_Renderer__WEBPACK_IMPORTED_MODULE_3__[\"elementFromJson\"](_Layout__WEBPACK_IMPORTED_MODULE_2__[\"generate\"]()));cov_lteep22l7.s[10]++;_Events__WEBPACK_IMPORTED_MODULE_1__[\"register\"](function(submitted){cov_lteep22l7.f[3]++;cov_lteep22l7.s[11]++;_Utils__WEBPACK_IMPORTED_MODULE_4__[\"setElementVisibility\"](_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].ToastContainer,false);cov_lteep22l7.s[12]++;_Utils__WEBPACK_IMPORTED_MODULE_4__[\"deleteElementById\"](_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].ToastContainer);cov_lteep22l7.s[13]++;_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateInitOptions().onDismiss(_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateSurvey().getCampaignId(),submitted);cov_lteep22l7.s[14]++;onClose();});}}function create(userInterface){cov_lteep22l7.f[4]++;var surveyContainer=(cov_lteep22l7.s[15]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_5__[\"get\"]().getFloodgateInitOptions().surveyContainer);cov_lteep22l7.s[16]++;if(typeof surveyContainer==='string'){cov_lteep22l7.b[11][0]++;var surveyContainerElement=(cov_lteep22l7.s[17]++,_Utils__WEBPACK_IMPORTED_MODULE_4__[\"getOrCreateDiv\"](surveyContainer));cov_lteep22l7.s[18]++;surveyContainerElement.insertBefore(userInterface,surveyContainerElement.firstChild);}else{cov_lteep22l7.b[11][1]++;cov_lteep22l7.s[19]++;if(surveyContainer instanceof HTMLElement){cov_lteep22l7.b[12][0]++;cov_lteep22l7.s[20]++;surveyContainer.insertBefore(userInterface,surveyContainer.firstChild);}else{cov_lteep22l7.b[12][1]++;cov_lteep22l7.s[21]++;document.body.insertBefore(userInterface,document.body.firstChild);}}cov_lteep22l7.s[22]++;_Utils__WEBPACK_IMPORTED_MODULE_4__[\"setElementVisibility\"](_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"IDs\"].ToastContainer,true);}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9Ub2FzdC9Ub2FzdC50cz80MTYzIl0sIm5hbWVzIjpbImNyZWF0ZVN1cnZleSIsIm9uQ2xvc2UiLCJfYSIsIl9iIiwiX2MiLCJfZCIsImR4RW5hYmxlZCIsIkNvbmZpZ3VyYXRpb24iLCJnZXREeW5hbWljVXhDb25maWciLCJlbmFibGVkIiwiTG9nZ2luZyIsImxvZ0V2ZW50IiwiU1VSVkVZX1VJX0NSRUFURSIsIkNhbXBhaWduSWQiLCJnZXRGbG9vZGdhdGVTdXJ2ZXkiLCJnZXRDYW1wYWlnbklkIiwiU3VydmV5SWQiLCJnZXRJZCIsIlN1cnZleVR5cGUiLCJnZXRTdXJ2ZXlUeXBlIiwiTWVzc2FnZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJEeW5hbWljVXhDbGllbnRTdGF0ZSIsIkR5bmFtaWNVeENsaWVudCIsImdldFN0YXR1cyIsIkR5bmFtaWNVeEVuYWJsZWQiLCJTdXJ2ZXlFbmFibGVkIiwiY2hlY2tJZlN1cnZleXNFbmFibGVkIiwiZ2V0VXhTY2hlbWEiLCJDZW50cm9Db3JlRGF0YVNvdXJjZSIsImdldCIsInVwZGF0ZUZsb29kZ2F0ZVN1cnZleSIsInVubW91bnRTdXJ2ZXkiLCJib29zdFN0cmFwU3VydmV5IiwiY2F0Y2giLCJlcnJvciIsIkRZTkFNSUNVWF9CT09TVFNUUkFQUEVSX0ZBSUxVUkUiLCJFcnJvck1lc3NhZ2UiLCJnZXRDb21tb25Jbml0T3B0aW9ucyIsIm9uRXJyb3IiLCJjb25jYXQiLCJjcmVhdGUiLCJSZW5kZXJlciIsIkxheW91dCIsIkV2ZW50cyIsInN1Ym1pdHRlZCIsIlV0aWxzIiwiSURzIiwiVG9hc3RDb250YWluZXIiLCJnZXRGbG9vZGdhdGVJbml0T3B0aW9ucyIsIm9uRGlzbWlzcyIsInVzZXJJbnRlcmZhY2UiLCJzdXJ2ZXlDb250YWluZXIiLCJzdXJ2ZXlDb250YWluZXJFbGVtZW50IiwiaW5zZXJ0QmVmb3JlIiwiZmlyc3RDaGlsZCIsIkhUTUxFbGVtZW50IiwiZG9j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SCxDQUxELEVBTUgsQ0FDSixDQUNELFFBQVN5QyxPQUFULENBQWdCVSxhQUFoQixDQUErQixzQkFDM0IsR0FBSUMsd0NBQWtCOUMsZ0VBQUEsR0FBb0IyQyx1QkFBcEIsR0FBOENHLGVBQWhFLENBQUosQ0FEMkIsc0JBRTNCLEdBQUksTUFBT0EsZ0JBQVAsR0FBMkIsUUFBL0IsQ0FBeUMsMEJBQ3JDLEdBQUlDLCtDQUF5QlAscURBQUEsQ0FBcUJNLGVBQXJCLENBQXpCLENBQUosQ0FEcUMsc0JBRXJDQyx1QkFBdUJDLFlBQXZCLENBQW9DSCxhQUFwQyxDQUFtREUsdUJBQXVCRSxVQUExRSxFQUNILENBSEQsSUFJSyxtREFBSUgsMEJBQTJCSSxZQUEvQixDQUE0QyxnREFDN0NKLGdCQUFnQkUsWUFBaEIsQ0FBNkJILGFBQTdCLENBQTRDQyxnQkFBZ0JHLFVBQTVELEVBQ0gsQ0FGSSxJQUdBLGdEQUNERSxTQUFTQyxJQUFULENBQWNKLFlBQWQsQ0FBMkJILGFBQTNCLENBQTBDTSxTQUFTQyxJQUFULENBQWNILFVBQXhELEVBQ0gsRUFYMEIsc0JBWTNCVCwyREFBQSxDQUEyQkMsZ0RBQUdBLENBQUNDLGNBQS9CLENBQStDLElBQS9DLEVBQ0giLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9VSS9Ub2FzdC9Ub2FzdC50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElEcyB9IGZyb20gXCIuLy4uL1VpQ29uc3RhbnRzXCI7XHJcbmltcG9ydCAqIGFzIEV2ZW50cyBmcm9tIFwiLi9FdmVudHNcIjtcclxuaW1wb3J0ICogYXMgTGF5b3V0IGZyb20gXCIuL0xheW91dFwiO1xyXG5pbXBvcnQgKiBhcyBSZW5kZXJlciBmcm9tIFwiLi8uLi9SZW5kZXJlclwiO1xyXG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tIFwiLi8uLi9VdGlsc1wiO1xyXG5pbXBvcnQgKiBhcyBDb25maWd1cmF0aW9uIGZyb20gXCIuLy4uLy4uL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgKiBhcyBEeW5hbWljVXhDbGllbnQgZnJvbSBcIi4uL0R5bmFtaWNVeC9EeW5hbWljVXhDbGllbnRcIjtcclxuaW1wb3J0ICogYXMgTG9nZ2luZyBmcm9tIFwiLi4vLi4vTG9nZ2luZy9Mb2dnaW5nXCI7XHJcbmltcG9ydCB7IENlbnRyb0NvcmVEYXRhU291cmNlIH0gZnJvbSBcIi4uL0R5bmFtaWNVeC9DZW50cm9Db3JlRGF0YVNvdXJjZVwiO1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3VydmV5KG9uQ2xvc2UpIHtcclxuICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcclxuICAgIHZhciBkeEVuYWJsZWQgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldER5bmFtaWNVeENvbmZpZygpLmVuYWJsZWQ7XHJcbiAgICBMb2dnaW5nLmdldExvZ2dlcigpLmxvZ0V2ZW50KExvZ2dpbmcuRXZlbnRJZHMuU1VSVkVZX1VJX0NSRUFURSwgMSwge1xyXG4gICAgICAgIENhbXBhaWduSWQ6IChfYSA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5nZXRDYW1wYWlnbklkKCksXHJcbiAgICAgICAgU3VydmV5SWQ6IChfYiA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5nZXRJZCgpLFxyXG4gICAgICAgIFN1cnZleVR5cGU6IChfYyA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5nZXRTdXJ2ZXlUeXBlKCksXHJcbiAgICAgICAgTWVzc2FnZTogSlNPTi5zdHJpbmdpZnkoe1xyXG4gICAgICAgICAgICBEeW5hbWljVXhDbGllbnRTdGF0ZTogZHhFbmFibGVkICYmICgoX2QgPSBEeW5hbWljVXhDbGllbnQuZ2V0KCkpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC5nZXRTdGF0dXMoKSksXHJcbiAgICAgICAgICAgIER5bmFtaWNVeEVuYWJsZWQ6IGR4RW5hYmxlZCxcclxuICAgICAgICAgICAgU3VydmV5RW5hYmxlZDogQ29uZmlndXJhdGlvbi5nZXQoKS5jaGVja0lmU3VydmV5c0VuYWJsZWQoKVxyXG4gICAgICAgIH0pLFxyXG4gICAgfSk7XHJcbiAgICBpZiAoQ29uZmlndXJhdGlvbi5nZXQoKS5nZXRGbG9vZGdhdGVTdXJ2ZXkoKS5nZXRVeFNjaGVtYSgpICYmXHJcbiAgICAgICAgZHhFbmFibGVkICYmIER5bmFtaWNVeENsaWVudC5nZXQoKS5nZXRTdGF0dXMoKSA9PT0gMikge1xyXG4gICAgICAgIENlbnRyb0NvcmVEYXRhU291cmNlLmdldCgpLnVwZGF0ZUZsb29kZ2F0ZVN1cnZleShmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIER5bmFtaWNVeENsaWVudC5nZXQoKS51bm1vdW50U3VydmV5KCk7XHJcbiAgICAgICAgICAgIG9uQ2xvc2UoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBEeW5hbWljVXhDbGllbnQuZ2V0KCkuYm9vc3RTdHJhcFN1cnZleSgpLmNhdGNoKGZ1bmN0aW9uIChlcnJvcikge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmdldExvZ2dlcigpLmxvZ0V2ZW50KExvZ2dpbmcuRXZlbnRJZHMuRFlOQU1JQ1VYX0JPT1NUU1RSQVBQRVJfRkFJTFVSRSwgMiwge1xyXG4gICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlOiBlcnJvcixcclxuICAgICAgICAgICAgICAgIE1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICBEeW5hbWljVXhDbGllbnRTdGF0ZTogRHluYW1pY1V4Q2xpZW50LmdldCgpLmdldFN0YXR1cygpLFxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBDb25maWd1cmF0aW9uLmdldCgpLmdldENvbW1vbkluaXRPcHRpb25zKCkub25FcnJvcihcIkZhaWxlZCB0byBib290c3RyYXAgRHluYW1pYyBzdXJ2ZXkgVVg6IFwiLmNvbmNhdChlcnJvcikpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgY3JlYXRlKFJlbmRlcmVyLmVsZW1lbnRGcm9tSnNvbihMYXlvdXQuZ2VuZXJhdGUoKSkpO1xyXG4gICAgICAgIEV2ZW50cy5yZWdpc3RlcihmdW5jdGlvbiAoc3VibWl0dGVkKSB7XHJcbiAgICAgICAgICAgIFV0aWxzLnNldEVsZW1lbnRWaXNpYmlsaXR5KElEcy5Ub2FzdENvbnRhaW5lciwgZmFsc2UpO1xyXG4gICAgICAgICAgICBVdGlscy5kZWxldGVFbGVtZW50QnlJZChJRHMuVG9hc3RDb250YWluZXIpO1xyXG4gICAgICAgICAgICBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZUluaXRPcHRpb25zKCkub25EaXNtaXNzKENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Rmxvb2RnYXRlU3VydmV5KCkuZ2V0Q2FtcGFpZ25JZCgpLCBzdWJtaXR0ZWQpO1xyXG4gICAgICAgICAgICBvbkNsb3NlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuZnVuY3Rpb24gY3JlYXRlKHVzZXJJbnRlcmZhY2UpIHtcclxuICAgIHZhciBzdXJ2ZXlDb250YWluZXIgPSBDb25maWd1cmF0aW9uLmdldCgpLmdldEZsb29kZ2F0ZUluaXRPcHRpb25zKCkuc3VydmV5Q29udGFpbmVyO1xyXG4gICAgaWYgKHR5cGVvZiBzdXJ2ZXlDb250YWluZXIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgdmFyIHN1cnZleUNvbnRhaW5lckVsZW1lbnQgPSBVdGlscy5nZXRPckNyZWF0ZURpdihzdXJ2ZXlDb250YWluZXIpO1xyXG4gICAgICAgIHN1cnZleUNvbnRhaW5lckVsZW1lbnQuaW5zZXJ0QmVmb3JlKHVzZXJJbnRlcmZhY2UsIHN1cnZleUNvbnRhaW5lckVsZW1lbnQuZmlyc3RDaGlsZCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChzdXJ2ZXlDb250YWluZXIgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIHN1cnZleUNvbnRhaW5lci5pbnNlcnRCZWZvcmUodXNlckludGVyZmFjZSwgc3VydmV5Q29udGFpbmVyLmZpcnN0Q2hpbGQpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUodXNlckludGVyZmFjZSwgZG9jdW1lbnQuYm9keS5maXJzdENoaWxkKTtcclxuICAgIH1cclxuICAgIFV0aWxzLnNldEVsZW1lbnRWaXNpYmlsaXR5KElEcy5Ub2FzdENvbnRhaW5lciwgdHJ1ZSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/UI/Toast/Toast.ts\n"); /***/ }), /***/ "./scripts/app/UI/UI.ts": /*!******************************!*\ !*** ./scripts/app/UI/UI.ts ***! \******************************/ /*! exports provided: createSurvey, createCVSurvey */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _Toast_Toast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Toast/Toast */ \"./scripts/app/UI/Toast/Toast.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createSurvey\", function() { return _Toast_Toast__WEBPACK_IMPORTED_MODULE_0__[\"createSurvey\"]; });\n\n/* harmony import */ var _Toast_CVToast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Toast/CVToast */ \"./scripts/app/UI/Toast/CVToast.ts\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createCVSurvey\", function() { return _Toast_CVToast__WEBPACK_IMPORTED_MODULE_1__[\"createCVSurvey\"]; });\n\nvar cov_2ffsmh1e1c=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UI.ts\",hash=\"79a74f4703db069b893800d6ff623a057dad10aa\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UI.ts\",statementMap:{},fnMap:{},branchMap:{},s:{},f:{},b:{},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UI.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UI.ts\"],names:[],mappings:\"AAMA,OAAO,EAAC,YAAY,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAC\",sourcesContent:[\"/**\\r\\n * UI.ts\\r\\n *\\r\\n * Module for the UI\\r\\n */\\r\\n\\r\\nexport {createSurvey as createSurvey} from \\\"./Toast/Toast\\\";\\r\\nexport {createCVSurvey as createCVSurvey} from \\\"./Toast/CVToast\\\";\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL1VJLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UI/UI.ts\n"); /***/ }), /***/ "./scripts/app/UI/UiConstants.ts": /*!***************************************!*\ !*** ./scripts/app/UI/UiConstants.ts ***! \***************************************/ /*! exports provided: AttributeName, AttributeValue, UrlParameters, Classes, IDs, Keys, Tags, Roles, Urls, PromptConstants */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AttributeName\", function() { return AttributeName; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"AttributeValue\", function() { return AttributeValue; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"UrlParameters\", function() { return UrlParameters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Classes\", function() { return Classes; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"IDs\", function() { return IDs; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Keys\", function() { return Keys; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Tags\", function() { return Tags; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Roles\", function() { return Roles; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Urls\", function() { return Urls; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"PromptConstants\", function() { return PromptConstants; });\nvar cov_7dhltx6qz=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UiConstants.ts\",hash=\"950c3247171be8db52c79d815e9ba3839de8b638\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UiConstants.ts\",statementMap:{\"0\":{start:{line:1,column:21},end:{line:45,column:3}},\"1\":{start:{line:4,column:4},end:{line:4,column:30}},\"2\":{start:{line:5,column:4},end:{line:5,column:43}},\"3\":{start:{line:6,column:4},end:{line:6,column:49}},\"4\":{start:{line:7,column:4},end:{line:7,column:55}},\"5\":{start:{line:8,column:4},end:{line:8,column:49}},\"6\":{start:{line:9,column:4},end:{line:9,column:49}},\"7\":{start:{line:10,column:4},end:{line:10,column:50}},\"8\":{start:{line:11,column:4},end:{line:11,column:43}},\"9\":{start:{line:12,column:4},end:{line:12,column:53}},\"10\":{start:{line:13,column:4},end:{line:13,column:55}},\"11\":{start:{line:14,column:4},end:{line:14,column:43}},\"12\":{start:{line:15,column:4},end:{line:15,column:34}},\"13\":{start:{line:16,column:4},end:{line:16,column:68}},\"14\":{start:{line:17,column:4},end:{line:17,column:40}},\"15\":{start:{line:18,column:4},end:{line:18,column:32}},\"16\":{start:{line:19,column:4},end:{line:19,column:30}},\"17\":{start:{line:20,column:4},end:{line:20,column:38}},\"18\":{start:{line:21,column:4},end:{line:21,column:32}},\"19\":{start:{line:22,column:4},end:{line:22,column:36}},\"20\":{start:{line:23,column:4},end:{line:23,column:32}},\"21\":{start:{line:24,column:4},end:{line:24,column:28}},\"22\":{start:{line:25,column:4},end:{line:25,column:42}},\"23\":{start:{line:26,column:4},end:{line:26,column:32}},\"24\":{start:{line:27,column:4},end:{line:27,column:46}},\"25\":{start:{line:28,column:4},end:{line:28,column:36}},\"26\":{start:{line:29,column:4},end:{line:29,column:30}},\"27\":{start:{line:30,column:4},end:{line:30,column:32}},\"28\":{start:{line:31,column:4},end:{line:31,column:33}},\"29\":{start:{line:32,column:4},end:{line:32,column:36}},\"30\":{start:{line:33,column:4},end:{line:33,column:34}},\"31\":{start:{line:34,column:4},end:{line:34,column:40}},\"32\":{start:{line:35,column:4},end:{line:35,column:36}},\"33\":{start:{line:36,column:4},end:{line:36,column:42}},\"34\":{start:{line:37,column:4},end:{line:37,column:32}},\"35\":{start:{line:38,column:4},end:{line:38,column:34}},\"36\":{start:{line:39,column:4},end:{line:39,column:38}},\"37\":{start:{line:40,column:4},end:{line:40,column:34}},\"38\":{start:{line:41,column:4},end:{line:41,column:43}},\"39\":{start:{line:42,column:4},end:{line:42,column:26}},\"40\":{start:{line:43,column:4},end:{line:43,column:26}},\"41\":{start:{line:44,column:4},end:{line:44,column:25}},\"42\":{start:{line:47,column:22},end:{line:71,column:3}},\"43\":{start:{line:50,column:4},end:{line:50,column:42}},\"44\":{start:{line:51,column:4},end:{line:51,column:37}},\"45\":{start:{line:52,column:4},end:{line:52,column:37}},\"46\":{start:{line:53,column:4},end:{line:53,column:31}},\"47\":{start:{line:54,column:4},end:{line:54,column:39}},\"48\":{start:{line:55,column:4},end:{line:55,column:41}},\"49\":{start:{line:56,column:4},end:{line:56,column:41}},\"50\":{start:{line:57,column:4},end:{line:57,column:39}},\"51\":{start:{line:58,column:4},end:{line:58,column:35}},\"52\":{start:{line:59,column:4},end:{line:59,column:30}},\"53\":{start:{line:60,column:4},end:{line:60,column:37}},\"54\":{start:{line:61,column:4},end:{line:61,column:35}},\"55\":{start:{line:62,column:4},end:{line:62,column:37}},\"56\":{start:{line:63,column:4},end:{line:63,column:59}},\"57\":{start:{line:64,column:4},end:{line:64,column:33}},\"58\":{start:{line:65,column:4},end:{line:65,column:46}},\"59\":{start:{line:66,column:4},end:{line:66,column:33}},\"60\":{start:{line:67,column:4},end:{line:67,column:43}},\"61\":{start:{line:68,column:4},end:{line:68,column:45}},\"62\":{start:{line:69,column:4},end:{line:69,column:61}},\"63\":{start:{line:70,column:4},end:{line:70,column:26}},\"64\":{start:{line:73,column:21},end:{line:78,column:3}},\"65\":{start:{line:76,column:4},end:{line:76,column:34}},\"66\":{start:{line:77,column:4},end:{line:77,column:25}},\"67\":{start:{line:80,column:15},end:{line:148,column:3}},\"68\":{start:{line:83,column:4},end:{line:83,column:54}},\"69\":{start:{line:84,column:4},end:{line:84,column:38}},\"70\":{start:{line:85,column:4},end:{line:85,column:40}},\"71\":{start:{line:86,column:4},end:{line:86,column:44}},\"72\":{start:{line:87,column:4},end:{line:87,column:46}},\"73\":{start:{line:88,column:4},end:{line:88,column:38}},\"74\":{start:{line:89,column:4},end:{line:89,column:44}},\"75\":{start:{line:90,column:4},end:{line:90,column:50}},\"76\":{start:{line:91,column:4},end:{line:91,column:34}},\"77\":{start:{line:92,column:4},end:{line:92,column:30}},\"78\":{start:{line:93,column:4},end:{line:93,column:50}},\"79\":{start:{line:94,column:4},end:{line:94,column:52}},\"80\":{start:{line:95,column:4},end:{line:95,column:46}},\"81\":{start:{line:96,column:4},end:{line:96,column:68}},\"82\":{start:{line:97,column:4},end:{line:97,column:80}},\"83\":{start:{line:98,column:4},end:{line:98,column:28}},\"84\":{start:{line:99,column:4},end:{line:99,column:36}},\"85\":{start:{line:100,column:4},end:{line:100,column:48}},\"86\":{start:{line:101,column:4},end:{line:101,column:46}},\"87\":{start:{line:102,column:4},end:{line:102,column:46}},\"88\":{start:{line:103,column:4},end:{line:103,column:40}},\"89\":{start:{line:104,column:4},end:{line:104,column:36}},\"90\":{start:{line:105,column:4},end:{line:105,column:54}},\"91\":{start:{line:106,column:4},end:{line:106,column:34}},\"92\":{start:{line:107,column:4},end:{line:107,column:48}},\"93\":{start:{line:108,column:4},end:{line:108,column:61}},\"94\":{start:{line:109,column:4},end:{line:109,column:44}},\"95\":{start:{line:110,column:4},end:{line:110,column:52}},\"96\":{start:{line:111,column:4},end:{line:111,column:48}},\"97\":{start:{line:112,column:4},end:{line:112,column:60}},\"98\":{start:{line:113,column:4},end:{line:113,column:46}},\"99\":{start:{line:114,column:4},end:{line:114,column:44}},\"100\":{start:{line:115,column:4},end:{line:115,column:46}},\"101\":{start:{line:116,column:4},end:{line:116,column:52}},\"102\":{start:{line:117,column:4},end:{line:117,column:40}},\"103\":{start:{line:118,column:4},end:{line:118,column:48}},\"104\":{start:{line:119,column:4},end:{line:119,column:48}},\"105\":{start:{line:120,column:4},end:{line:120,column:56}},\"106\":{start:{line:121,column:4},end:{line:121,column:54}},\"107\":{start:{line:122,column:4},end:{line:122,column:58}},\"108\":{start:{line:123,column:4},end:{line:123,column:66}},\"109\":{start:{line:124,column:4},end:{line:124,column:50}},\"110\":{start:{line:125,column:4},end:{line:125,column:66}},\"111\":{start:{line:126,column:4},end:{line:126,column:44}},\"112\":{start:{line:127,column:4},end:{line:127,column:60}},\"113\":{start:{line:128,column:4},end:{line:128,column:52}},\"114\":{start:{line:129,column:4},end:{line:129,column:42}},\"115\":{start:{line:130,column:4},end:{line:130,column:58}},\"116\":{start:{line:131,column:4},end:{line:131,column:50}},\"117\":{start:{line:132,column:4},end:{line:132,column:54}},\"118\":{start:{line:133,column:4},end:{line:133,column:56}},\"119\":{start:{line:134,column:4},end:{line:134,column:50}},\"120\":{start:{line:135,column:4},end:{line:135,column:60}},\"121\":{start:{line:136,column:4},end:{line:136,column:72}},\"122\":{start:{line:137,column:4},end:{line:137,column:68}},\"123\":{start:{line:138,column:4},end:{line:138,column:60}},\"124\":{start:{line:139,column:4},end:{line:139,column:66}},\"125\":{start:{line:140,column:4},end:{line:140,column:64}},\"126\":{start:{line:141,column:4},end:{line:141,column:67}},\"127\":{start:{line:142,column:4},end:{line:142,column:58}},\"128\":{start:{line:143,column:4},end:{line:143,column:53}},\"129\":{start:{line:144,column:4},end:{line:144,column:58}},\"130\":{start:{line:145,column:4},end:{line:145,column:32}},\"131\":{start:{line:146,column:4},end:{line:146,column:40}},\"132\":{start:{line:147,column:4},end:{line:147,column:19}},\"133\":{start:{line:150,column:11},end:{line:235,column:3}},\"134\":{start:{line:153,column:4},end:{line:153,column:40}},\"135\":{start:{line:154,column:4},end:{line:154,column:54}},\"136\":{start:{line:155,column:4},end:{line:155,column:64}},\"137\":{start:{line:156,column:4},end:{line:156,column:54}},\"138\":{start:{line:157,column:4},end:{line:157,column:48}},\"139\":{start:{line:158,column:4},end:{line:158,column:52}},\"140\":{start:{line:159,column:4},end:{line:159,column:50}},\"141\":{start:{line:160,column:4},end:{line:160,column:54}},\"142\":{start:{line:161,column:4},end:{line:161,column:48}},\"143\":{start:{line:162,column:4},end:{line:162,column:52}},\"144\":{start:{line:163,column:4},end:{line:163,column:50}},\"145\":{start:{line:164,column:4},end:{line:164,column:52}},\"146\":{start:{line:165,column:4},end:{line:165,column:46}},\"147\":{start:{line:166,column:4},end:{line:166,column:50}},\"148\":{start:{line:167,column:4},end:{line:167,column:48}},\"149\":{start:{line:168,column:4},end:{line:168,column:50}},\"150\":{start:{line:169,column:4},end:{line:169,column:44}},\"151\":{start:{line:170,column:4},end:{line:170,column:48}},\"152\":{start:{line:171,column:4},end:{line:171,column:46}},\"153\":{start:{line:172,column:4},end:{line:172,column:50}},\"154\":{start:{line:173,column:4},end:{line:173,column:52}},\"155\":{start:{line:174,column:4},end:{line:174,column:54}},\"156\":{start:{line:175,column:4},end:{line:175,column:44}},\"157\":{start:{line:176,column:4},end:{line:176,column:52}},\"158\":{start:{line:177,column:4},end:{line:177,column:56}},\"159\":{start:{line:178,column:4},end:{line:178,column:52}},\"160\":{start:{line:179,column:4},end:{line:179,column:58}},\"161\":{start:{line:180,column:4},end:{line:180,column:54}},\"162\":{start:{line:181,column:4},end:{line:181,column:44}},\"163\":{start:{line:182,column:4},end:{line:182,column:42}},\"164\":{start:{line:183,column:4},end:{line:183,column:44}},\"165\":{start:{line:184,column:4},end:{line:184,column:46}},\"166\":{start:{line:185,column:4},end:{line:185,column:56}},\"167\":{start:{line:186,column:4},end:{line:186,column:74}},\"168\":{start:{line:187,column:4},end:{line:187,column:74}},\"169\":{start:{line:188,column:4},end:{line:188,column:52}},\"170\":{start:{line:189,column:4},end:{line:189,column:58}},\"171\":{start:{line:190,column:4},end:{line:190,column:50}},\"172\":{start:{line:191,column:4},end:{line:191,column:74}},\"173\":{start:{line:192,column:4},end:{line:192,column:72}},\"174\":{start:{line:193,column:4},end:{line:193,column:62}},\"175\":{start:{line:194,column:4},end:{line:194,column:62}},\"176\":{start:{line:195,column:4},end:{line:195,column:76}},\"177\":{start:{line:196,column:4},end:{line:196,column:54}},\"178\":{start:{line:197,column:4},end:{line:197,column:72}},\"179\":{start:{line:198,column:4},end:{line:198,column:72}},\"180\":{start:{line:199,column:4},end:{line:199,column:50}},\"181\":{start:{line:200,column:4},end:{line:200,column:56}},\"182\":{start:{line:201,column:4},end:{line:201,column:48}},\"183\":{start:{line:202,column:4},end:{line:202,column:72}},\"184\":{start:{line:203,column:4},end:{line:203,column:70}},\"185\":{start:{line:204,column:4},end:{line:204,column:60}},\"186\":{start:{line:205,column:4},end:{line:205,column:60}},\"187\":{start:{line:206,column:4},end:{line:206,column:74}},\"188\":{start:{line:207,column:4},end:{line:207,column:58}},\"189\":{start:{line:208,column:4},end:{line:208,column:62}},\"190\":{start:{line:209,column:4},end:{line:209,column:60}},\"191\":{start:{line:210,column:4},end:{line:210,column:74}},\"192\":{start:{line:211,column:4},end:{line:211,column:68}},\"193\":{start:{line:212,column:4},end:{line:212,column:58}},\"194\":{start:{line:213,column:4},end:{line:213,column:72}},\"195\":{start:{line:214,column:4},end:{line:214,column:80}},\"196\":{start:{line:215,column:4},end:{line:215,column:46}},\"197\":{start:{line:216,column:4},end:{line:216,column:40}},\"198\":{start:{line:217,column:4},end:{line:217,column:50}},\"199\":{start:{line:218,column:4},end:{line:218,column:42}},\"200\":{start:{line:219,column:4},end:{line:219,column:40}},\"201\":{start:{line:220,column:4},end:{line:220,column:46}},\"202\":{start:{line:221,column:4},end:{line:221,column:56}},\"203\":{start:{line:222,column:4},end:{line:222,column:38}},\"204\":{start:{line:223,column:4},end:{line:223,column:40}},\"205\":{start:{line:224,column:4},end:{line:224,column:56}},\"206\":{start:{line:225,column:4},end:{line:225,column:58}},\"207\":{start:{line:226,column:4},end:{line:226,column:42}},\"208\":{start:{line:227,column:4},end:{line:227,column:52}},\"209\":{start:{line:228,column:4},end:{line:228,column:54}},\"210\":{start:{line:229,column:4},end:{line:229,column:48}},\"211\":{start:{line:230,column:4},end:{line:230,column:52}},\"212\":{start:{line:231,column:4},end:{line:231,column:52}},\"213\":{start:{line:232,column:4},end:{line:232,column:66}},\"214\":{start:{line:233,column:4},end:{line:233,column:70}},\"215\":{start:{line:234,column:4},end:{line:234,column:15}},\"216\":{start:{line:237,column:12},end:{line:243,column:3}},\"217\":{start:{line:240,column:4},end:{line:240,column:18}},\"218\":{start:{line:241,column:4},end:{line:241,column:17}},\"219\":{start:{line:242,column:4},end:{line:242,column:16}},\"220\":{start:{line:245,column:12},end:{line:266,column:3}},\"221\":{start:{line:248,column:4},end:{line:248,column:22}},\"222\":{start:{line:249,column:4},end:{line:249,column:27}},\"223\":{start:{line:250,column:4},end:{line:250,column:23}},\"224\":{start:{line:251,column:4},end:{line:251,column:21}},\"225\":{start:{line:252,column:4},end:{line:252,column:31}},\"226\":{start:{line:253,column:4},end:{line:253,column:23}},\"227\":{start:{line:254,column:4},end:{line:254,column:21}},\"228\":{start:{line:255,column:4},end:{line:255,column:25}},\"229\":{start:{line:256,column:4},end:{line:256,column:25}},\"230\":{start:{line:257,column:4},end:{line:257,column:27}},\"231\":{start:{line:258,column:4},end:{line:258,column:27}},\"232\":{start:{line:259,column:4},end:{line:259,column:29}},\"233\":{start:{line:260,column:4},end:{line:260,column:27}},\"234\":{start:{line:261,column:4},end:{line:261,column:23}},\"235\":{start:{line:262,column:4},end:{line:262,column:21}},\"236\":{start:{line:263,column:4},end:{line:263,column:31}},\"237\":{start:{line:264,column:4},end:{line:264,column:21}},\"238\":{start:{line:265,column:4},end:{line:265,column:16}},\"239\":{start:{line:268,column:13},end:{line:273,column:3}},\"240\":{start:{line:271,column:4},end:{line:271,column:28}},\"241\":{start:{line:272,column:4},end:{line:272,column:17}},\"242\":{start:{line:275,column:12},end:{line:280,column:3}},\"243\":{start:{line:278,column:4},end:{line:278,column:81}},\"244\":{start:{line:279,column:4},end:{line:279,column:16}},\"245\":{start:{line:282,column:23},end:{line:288,column:3}},\"246\":{start:{line:285,column:4},end:{line:285,column:29}},\"247\":{start:{line:286,column:4},end:{line:286,column:30}},\"248\":{start:{line:287,column:4},end:{line:287,column:27}}},fnMap:{\"0\":{name:\"(anonymous_0)\",decl:{start:{line:1,column:21},end:{line:1,column:22}},loc:{start:{line:1,column:33},end:{line:45,column:1}},line:1},\"1\":{name:\"AttributeName\",decl:{start:{line:2,column:13},end:{line:2,column:26}},loc:{start:{line:2,column:29},end:{line:3,column:5}},line:2},\"2\":{name:\"(anonymous_2)\",decl:{start:{line:47,column:22},end:{line:47,column:23}},loc:{start:{line:47,column:34},end:{line:71,column:1}},line:47},\"3\":{name:\"AttributeValue\",decl:{start:{line:48,column:13},end:{line:48,column:27}},loc:{start:{line:48,column:30},end:{line:49,column:5}},line:48},\"4\":{name:\"(anonymous_4)\",decl:{start:{line:73,column:21},end:{line:73,column:22}},loc:{start:{line:73,column:33},end:{line:78,column:1}},line:73},\"5\":{name:\"UrlParameters\",decl:{start:{line:74,column:13},end:{line:74,column:26}},loc:{start:{line:74,column:29},end:{line:75,column:5}},line:74},\"6\":{name:\"(anonymous_6)\",decl:{start:{line:80,column:15},end:{line:80,column:16}},loc:{start:{line:80,column:27},end:{line:148,column:1}},line:80},\"7\":{name:\"Classes\",decl:{start:{line:81,column:13},end:{line:81,column:20}},loc:{start:{line:81,column:23},end:{line:82,column:5}},line:81},\"8\":{name:\"(anonymous_8)\",decl:{start:{line:150,column:11},end:{line:150,column:12}},loc:{start:{line:150,column:23},end:{line:235,column:1}},line:150},\"9\":{name:\"IDs\",decl:{start:{line:151,column:13},end:{line:151,column:16}},loc:{start:{line:151,column:19},end:{line:152,column:5}},line:151},\"10\":{name:\"(anonymous_10)\",decl:{start:{line:237,column:12},end:{line:237,column:13}},loc:{start:{line:237,column:24},end:{line:243,column:1}},line:237},\"11\":{name:\"Keys\",decl:{start:{line:238,column:13},end:{line:238,column:17}},loc:{start:{line:238,column:20},end:{line:239,column:5}},line:238},\"12\":{name:\"(anonymous_12)\",decl:{start:{line:245,column:12},end:{line:245,column:13}},loc:{start:{line:245,column:24},end:{line:266,column:1}},line:245},\"13\":{name:\"Tags\",decl:{start:{line:246,column:13},end:{line:246,column:17}},loc:{start:{line:246,column:20},end:{line:247,column:5}},line:246},\"14\":{name:\"(anonymous_14)\",decl:{start:{line:268,column:13},end:{line:268,column:14}},loc:{start:{line:268,column:25},end:{line:273,column:1}},line:268},\"15\":{name:\"Roles\",decl:{start:{line:269,column:13},end:{line:269,column:18}},loc:{start:{line:269,column:21},end:{line:270,column:5}},line:269},\"16\":{name:\"(anonymous_16)\",decl:{start:{line:275,column:12},end:{line:275,column:13}},loc:{start:{line:275,column:24},end:{line:280,column:1}},line:275},\"17\":{name:\"Urls\",decl:{start:{line:276,column:13},end:{line:276,column:17}},loc:{start:{line:276,column:20},end:{line:277,column:5}},line:276},\"18\":{name:\"(anonymous_18)\",decl:{start:{line:282,column:23},end:{line:282,column:24}},loc:{start:{line:282,column:35},end:{line:288,column:1}},line:282},\"19\":{name:\"PromptConstants\",decl:{start:{line:283,column:13},end:{line:283,column:28}},loc:{start:{line:283,column:31},end:{line:284,column:5}},line:283}},branchMap:{},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0},b:{},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UiConstants.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\UiConstants.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/**\\r\\n * Constants.ts\\r\\n *\\r\\n * A module for all UI constants.\\r\\n */\\r\\n\\r\\n/**\\r\\n * HTML attribute names\\r\\n */\\r\\nexport class AttributeName {\\r\\n\\tpublic static Alt = \\\"alt\\\";\\r\\n\\tpublic static AriaLabel = \\\"aria-label\\\";\\r\\n\\tpublic static AriaSelected = \\\"aria-selected\\\";\\r\\n\\tpublic static AriaOrientation = \\\"aria-orientation\\\";\\r\\n\\tpublic static AriaExpanded = \\\"aria-expanded\\\";\\r\\n\\tpublic static AriaControls = \\\"aria-controls\\\";\\r\\n\\tpublic static AriaHasPopups = \\\"aria-haspopup\\\";\\r\\n\\tpublic static AriaModal = \\\"aria-modal\\\";\\r\\n\\tpublic static AriaLabelledBy = \\\"aria-labelledby\\\";\\r\\n\\tpublic static AriaDescribedBy = \\\"aria-describedby\\\";\\r\\n\\tpublic static AriaLevel = \\\"aria-level\\\";\\r\\n\\tpublic static Class = \\\"class\\\";\\r\\n\\tpublic static DataHtml2CanvasIgnore = \\\"data-html2canvas-ignore\\\";\\r\\n\\tpublic static Disabled = \\\"disabled\\\";\\r\\n\\tpublic static Fill = \\\"fill\\\";\\r\\n\\tpublic static For = \\\"for\\\";\\r\\n\\tpublic static Preview = \\\"preview\\\";\\r\\n\\tpublic static Form = \\\"form\\\";\\r\\n\\tpublic static Height = \\\"height\\\";\\r\\n\\tpublic static HRef = \\\"href\\\";\\r\\n\\tpublic static Id = \\\"id\\\";\\r\\n\\tpublic static MaxLength = \\\"maxlength\\\";\\r\\n\\tpublic static Name = \\\"name\\\";\\r\\n\\tpublic static Placeholder = \\\"placeholder\\\";\\r\\n\\tpublic static Points = \\\"points\\\";\\r\\n\\tpublic static Rel = \\\"rel\\\";\\r\\n\\tpublic static Role = \\\"role\\\";\\r\\n\\tpublic static Source = \\\"src\\\";\\r\\n\\tpublic static Stroke = \\\"stroke\\\";\\r\\n\\tpublic static Style = \\\"style\\\";\\r\\n\\tpublic static TabIndex = \\\"tabindex\\\";\\r\\n\\tpublic static Target = \\\"target\\\";\\r\\n\\tpublic static Transform = \\\"transform\\\";\\r\\n\\tpublic static Type = \\\"type\\\";\\r\\n\\tpublic static Value = \\\"value\\\";\\r\\n\\tpublic static ViewBox = \\\"viewBox\\\";\\r\\n\\tpublic static Width = \\\"width\\\";\\r\\n\\tpublic static xlinkHref = \\\"xlink:href\\\";\\r\\n\\tpublic static X = \\\"x\\\";\\r\\n\\tpublic static Y = \\\"y\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * HTML attribute values\\r\\n */\\r\\nexport class AttributeValue {\\r\\n\\tpublic static BlankWindow = \\\"_blank\\\";\\r\\n\\tpublic static Button = \\\"button\\\";\\r\\n\\tpublic static Dialog = \\\"dialog\\\";\\r\\n\\tpublic static Tab = \\\"tab\\\";\\r\\n\\tpublic static TabList = \\\"tablist\\\";\\r\\n\\tpublic static TabPanel = \\\"tabpanel\\\";\\r\\n\\tpublic static Checkbox = \\\"checkbox\\\";\\r\\n\\tpublic static Checked = \\\"checked\\\";\\r\\n\\tpublic static False = \\\"false\\\";\\r\\n\\tpublic static Zero = \\\"0\\\";\\r\\n\\tpublic static Polite = \\\"polite\\\";\\r\\n\\tpublic static Radio = \\\"radio\\\";\\r\\n\\tpublic static Submit = \\\"submit\\\";\\r\\n\\tpublic static ScreenshotPreview = \\\"ScreenshotPreview\\\";\\r\\n\\tpublic static Text = \\\"text\\\";\\r\\n\\tpublic static TextAreaMaxLength = \\\"1000\\\";\\r\\n\\tpublic static True = \\\"true\\\";\\r\\n\\tpublic static Unchecked = \\\"unchecked\\\";\\r\\n\\tpublic static NoReferrer = \\\"noreferrer\\\";\\r\\n\\tpublic static AriaOrientationValueVertical = \\\"vertical\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * URL Parameters\\r\\n */\\r\\nexport class UrlParameters {\\r\\n\\tpublic static CLCID = \\\"CLCID\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * CSS classes\\r\\n */\\r\\nexport class Classes {\\r\\n\\tpublic static AriaLiveTemplate = \\\"obf-AriaLiveTemplate\\\";\\r\\n\\tpublic static CheckBox = \\\"obf-CheckBox\\\";\\r\\n\\tpublic static FontTitle = \\\"obf-FontTitle\\\";\\r\\n\\tpublic static CloseButton = \\\"obf-CloseButton\\\";\\r\\n\\tpublic static FontSubtitle = \\\"obf-FontSubtitle\\\";\\r\\n\\tpublic static FontText = \\\"obf-FontText\\\";\\r\\n\\tpublic static FontSubText = \\\"obf-FontSubText\\\";\\r\\n\\tpublic static FontSubSubText = \\\"obf-FontSubSubText\\\";\\r\\n\\tpublic static Hidden = \\\"obf-Hidden\\\";\\r\\n\\tpublic static Link = \\\"obf-Link\\\";\\r\\n\\tpublic static MarginLeft60px = \\\"obf-MarginLeft60px\\\";\\r\\n\\tpublic static MarginLeft180px = \\\"obf-MarginLeft180px\\\";\\r\\n\\tpublic static NarrowLayout = \\\"obf-NarrowLayout\\\";\\r\\n\\tpublic static PrivacyStatementLinkDiv = \\\"obf-PrivacyStatementLinkDiv\\\";\\r\\n\\tpublic static PrivacyStatementLinkDivEudbUx = \\\"obf-PrivacyStatementLinkDivEudbUx\\\";\\r\\n\\tpublic static Rtl = \\\"obf-Rtl\\\";\\r\\n\\tpublic static Spinner = \\\"obf-Spinner\\\";\\r\\n\\tpublic static SpinnerCircle = \\\"obf-SpinnerCircle\\\";\\r\\n\\tpublic static SubmitButton = \\\"obf-SubmitButton\\\";\\r\\n\\tpublic static CancelButton = \\\"obf-CancelButton\\\";\\r\\n\\tpublic static TextInput = \\\"obf-TextInput\\\";\\r\\n\\tpublic static Visible = \\\"obf-Visible\\\";\\r\\n\\tpublic static RequiredAsterisk = \\\"obf-RequiredAsterisk\\\";\\r\\n\\r\\n\\t// rating control\\r\\n\\tpublic static Rating = \\\"obf-Rating\\\";\\r\\n\\tpublic static RatingGraphic = \\\"obf-RatingGraphic\\\";\\r\\n\\tpublic static RatingGraphicFilled = \\\"obf-RatingGraphic-Filled\\\";\\r\\n\\r\\n\\t// choice group control\\r\\n\\tpublic static ChoiceGroup = \\\"obf-ChoiceGroup\\\";\\r\\n\\tpublic static ChoiceGroupIcon = \\\"obf-ChoiceGroupIcon\\\";\\r\\n\\r\\n\\t// region BellyBand\\r\\n\\r\\n\\tpublic static OverallAnchor = \\\"obf-OverallAnchor\\\";\\r\\n\\tpublic static OverallAnchorActive = \\\"obf-OverallAnchorActive\\\";\\r\\n\\tpublic static OverallImage = \\\"obf-OverallImage\\\";\\r\\n\\tpublic static OverallText = \\\"obf-OverallText\\\";\\r\\n\\tpublic static SingleLayout = \\\"obf-SingleLayout\\\";\\r\\n\\tpublic static ShowRightBorder = \\\"obf-ShowRightBorder\\\";\\r\\n\\tpublic static SlideLeft = \\\"obf-slideLeft\\\";\\r\\n\\tpublic static TextAlignLeft = \\\"obf-TextAlignLeft\\\";\\r\\n\\tpublic static FormContainer = \\\"obf-FormContainer\\\";\\r\\n\\tpublic static FormWideContainer = \\\"obf-FormWideContainer\\\";\\r\\n\\r\\n\\t// region ThanksPanel\\r\\n\\tpublic static ThanksPanelTitle = \\\"obf-ThanksPanelTitle\\\";\\r\\n\\tpublic static ThanksPanelMessage = \\\"obf-ThanksPanelMessage\\\";\\r\\n\\r\\n\\t// form classes\\r\\n\\tpublic static FormQuestionMiddleText = \\\"obf-FormQuestionMiddleText\\\";\\r\\n\\tpublic static FormMiddleText = \\\"obf-FormMiddleText\\\";\\r\\n\\tpublic static FormCategoriesDropdown = \\\"obf-FormCategoriesDropdown\\\";\\r\\n\\tpublic static FormComment = \\\"obf-FormComment\\\";\\r\\n\\tpublic static FormRatingContainer = \\\"obf-FormRatingContainer\\\";\\r\\n\\tpublic static FormRatingLabel = \\\"obf-FormRatingLabel\\\";\\r\\n\\tpublic static FormRating = \\\"obf-FormRating\\\";\\r\\n\\tpublic static FormEmailContainer = \\\"obf-FormEmailContainer\\\";\\r\\n\\tpublic static FormEmailInput = \\\"obf-FormEmailInput\\\";\\r\\n\\tpublic static FormEmailTextBox = \\\"obf-FormEmailTextBox\\\";\\r\\n\\tpublic static FormEmailCheckBox = \\\"obf-FormEmailCheckBox\\\";\\r\\n\\tpublic static FormEmailLabel = \\\"obf-FormEmailLabel\\\";\\r\\n\\tpublic static FormBottomContainer = \\\"obf-FormBottomContainer\\\";\\r\\n\\tpublic static FormSubmitButtonContainer = \\\"obf-FormSubmitButtonContainer\\\";\\r\\n\\tpublic static FormScreenshotContainer = \\\"obf-FormScreenshotContainer\\\";\\r\\n\\tpublic static FormScreenshotLabel = \\\"obf-FormScreenshotLabel\\\";\\r\\n\\tpublic static FormScreenshotCheckbox = \\\"obf-FormScreenshotCheckbox\\\";\\r\\n\\tpublic static FormScreenshotPreview = \\\"obf-FormScreenshotPreview\\\";\\r\\n\\tpublic static FormPrivacyConsentText = \\\"obf-TFormPrivacyConsentText\\\";\\r\\n\\t// email textbox classes\\r\\n\\tpublic static TFormEmailCheckbox = \\\"obf-TFormEmailCheckbox\\\";\\r\\n\\tpublic static TFormEmailLabel = \\\"obf-TFormEmailLabel \\\";\\r\\n\\r\\n\\t// email checkbox classes\\r\\n\\tpublic static EmailCheckBoxLabel = \\\"obf-EmailCheckBoxLabel\\\";\\r\\n\\r\\n\\t// endregion\\r\\n\\r\\n\\t// region Toast\\r\\n\\r\\n\\tpublic static Toast = \\\"obf-Toast\\\";\\r\\n\\tpublic static ToastZoom = \\\"obf-ToastZoom\\\";\\r\\n\\r\\n\\t// endregion\\r\\n}\\r\\n\\r\\n/**\\r\\n * HTML element ids\\r\\n */\\r\\nexport class IDs {\\r\\n\\t// region BellyBand\\r\\n\\tpublic static CloseButton = \\\"obf-CloseButton\\\";\\r\\n\\tpublic static ColumnSeparatorDiv = \\\"obf-ColumnSeparatorDiv\\\";\\r\\n\\tpublic static OverallAnchorsContainer = \\\"obf-OverallAnchorsContainer\\\";\\r\\n\\tpublic static OverallFrownAnchor = \\\"obf-OverallFrownAnchor\\\";\\r\\n\\tpublic static OverallFrownDiv = \\\"obf-OverallFrownDiv\\\";\\r\\n\\tpublic static OverallFrownImage = \\\"obf-OverallFrownImage\\\";\\r\\n\\tpublic static OverallFrownText = \\\"obf-OverallFrownText\\\";\\r\\n\\tpublic static OverallSmileAnchor = \\\"obf-OverallSmileAnchor\\\";\\r\\n\\tpublic static OverallSmileDiv = \\\"obf-OverallSmileDiv\\\";\\r\\n\\tpublic static OverallSmileImage = \\\"obf-OverallSmileImage\\\";\\r\\n\\tpublic static OverallSmileText = \\\"obf-OverallSmileText\\\";\\r\\n\\tpublic static OverallIdeaAnchor = \\\"obf-OverallIdeaAnchor\\\";\\r\\n\\tpublic static OverallIdeaDiv = \\\"obf-OverallIdeaDiv\\\";\\r\\n\\tpublic static OverallIdeaImage = \\\"obf-OverallIdeaImage\\\";\\r\\n\\tpublic static OverallIdeaText = \\\"obf-OverallIdeaText\\\";\\r\\n\\tpublic static OverallBugAnchor = \\\"obf-OverallBugAnchor\\\";\\r\\n\\tpublic static OverallBugDiv = \\\"obf-OverallBugDiv\\\";\\r\\n\\tpublic static OverallBugImage = \\\"obf-OverallBugImage\\\";\\r\\n\\tpublic static OverallBugText = \\\"obf-OverallBugText\\\";\\r\\n\\tpublic static QuestionLeftText = \\\"obf-QuestionLeftText\\\";\\r\\n\\tpublic static LeftFormContainer = \\\"obf-LeftFormContainer\\\";\\r\\n\\tpublic static LeftPanelContainer = \\\"obf-LeftPanelContainer\\\";\\r\\n\\tpublic static MainContainer = \\\"obf-MainContainer\\\";\\r\\n\\tpublic static MainContentHolder = \\\"obf-MainContentHolder\\\";\\r\\n\\tpublic static MiddleFormContainer = \\\"obf-MiddleFormContainer\\\";\\r\\n\\tpublic static OverlayBackground = \\\"obf-OverlayBackground\\\";\\r\\n\\tpublic static PrivacyStatementLink = \\\"obf-PrivacyStatementLink\\\";\\r\\n\\tpublic static PrivacyConsentText = \\\"obf-PrivacyConsentText\\\";\\r\\n\\tpublic static FirstTabbable = \\\"obf-FirstTabbable\\\";\\r\\n\\tpublic static LastTabbable = \\\"obf-LastTabbable\\\";\\r\\n\\tpublic static EmailCheckBox = \\\"obf-EmailCheckBox\\\";\\r\\n\\tpublic static RequiredAsterisk = \\\"obf-RequiredStar\\\";\\r\\n\\r\\n\\t// Single form ids\\r\\n\\tpublic static SingleFormContainer = \\\"obf-SingleFormContainer\\\";\\r\\n\\tpublic static SingleFormQuestionMiddleText = \\\"obf-SingleFormQuestionMiddleText\\\";\\r\\n\\tpublic static SingleFormCategoriesDropdown = \\\"obf-SingleFormCategoriesDropdown\\\";\\r\\n\\tpublic static SingleFormComment = \\\"obf-SingleFormComment\\\";\\r\\n\\tpublic static SingleFormEmailInput = \\\"obf-SingleFormEmailInput\\\";\\r\\n\\tpublic static SingleFormRating = \\\"obf-SingleFormRating\\\";\\r\\n\\tpublic static SingleFormScreenshotCheckbox = \\\"obf-SingleFormScreenshotCheckbox\\\";\\r\\n\\tpublic static SingleFormScreenshotPreview = \\\"obf-SingleFormScreenshotPreview\\\";\\r\\n\\tpublic static SingleFormSubmitButton = \\\"obf-SingleFormSubmitButton\\\";\\r\\n\\tpublic static SingleFormCancelButton = \\\"obf-SingleFormCancelButton\\\";\\r\\n\\tpublic static SingleFormSubmitButtonSpinner = \\\"obf-SingleFormSubmitButtonSpinner\\\";\\r\\n\\r\\n\\t// Basic form ids\\r\\n\\tpublic static BasicFormContainer = \\\"obf-BasicFormContainer\\\";\\r\\n\\tpublic static BasicFormQuestionMiddleText = \\\"obf-BasicFormQuestionMiddleText\\\";\\r\\n\\tpublic static BasicFormCategoriesDropdown = \\\"obf-BasicFormCategoriesDropdown\\\";\\r\\n\\tpublic static BasicFormComment = \\\"obf-BasicFormComment\\\";\\r\\n\\tpublic static BasicFormEmailInput = \\\"obf-BasicFormEmailInput\\\";\\r\\n\\tpublic static BasicFormRating = \\\"obf-BasicFormRating\\\";\\r\\n\\tpublic static BasicFormScreenshotCheckbox = \\\"obf-BasicFormScreenshotCheckbox\\\";\\r\\n\\tpublic static BasicFormScreenshotPreview = \\\"obf-BasicFormScreenshotPreview\\\";\\r\\n\\tpublic static BasicFormSubmitButton = \\\"obf-BasicFormSubmitButton\\\";\\r\\n\\tpublic static BasicFormCancelButton = \\\"obf-BasicFormCancelButton\\\";\\r\\n\\tpublic static BasicFormSubmitButtonSpinner = \\\"obf-BasicFormSubmitButtonSpinner\\\";\\r\\n\\r\\n\\t// Thanks Panel ids\\r\\n\\tpublic static ThanksPanelContainer = \\\"obf-ThanksPanelContainer\\\";\\r\\n\\tpublic static ThanksPanelCloseButton = \\\"obf-ThanksPanelCloseButton\\\";\\r\\n\\tpublic static ThanksPanelDiscussion = \\\"obf-ThanksPanelDiscussion\\\";\\r\\n\\tpublic static ThanksPanelVerticalContainer = \\\"obf-ThanksPanelVerticalContainer\\\";\\r\\n\\tpublic static ThanksPanelInnerContainer = \\\"obf-ThanksPanelInnerContainer\\\";\\r\\n\\tpublic static ThanksPanelParagraph = \\\"obf-ThanksPanelParagraph\\\";\\r\\n\\r\\n\\t// Feedback Portal Idea Id\\r\\n\\tpublic static FeedbackPortalIdeaContainer = \\\"obf-FeedbackPortalIdeaContainer\\\";\\r\\n\\tpublic static OverallFeedbackPortalIdeaAnchor = \\\"obf-OverallFeedbackPortalIdeaAnchor\\\";\\r\\n\\r\\n\\t// endregion\\r\\n\\r\\n\\t// region Toast\\r\\n\\tpublic static ToastContainer = \\\"obf-ToastContainer\\\";\\r\\n\\tpublic static ToastCancel = \\\"obf-ToastCancel\\\";\\r\\n\\r\\n\\t// Prompt ids\\r\\n\\tpublic static TPromptContainer = \\\"obf-TPromptContainer\\\";\\r\\n\\tpublic static TPromptTitle = \\\"obf-TPromptTitle\\\";\\r\\n\\tpublic static TPromptText = \\\"obf-TPromptText\\\";\\r\\n\\r\\n\\t// Survey ids\\r\\n\\tpublic static TFormContainer = \\\"obf-TFormContainer\\\";\\r\\n\\tpublic static TFormContainerLabel = \\\"obf-TFormContainerLabel\\\";\\r\\n\\tpublic static TFormTitle = \\\"obf-TFormTitle\\\";\\r\\n\\tpublic static TFormRating = \\\"obf-TFormRating\\\";\\r\\n\\tpublic static TFormRatingQuestion = \\\"obf-TFormRatingQuestion\\\";\\r\\n\\tpublic static TFormCommentQuestion = \\\"obf-TFormCommentQuestion\\\";\\r\\n\\tpublic static TFormComment = \\\"obf-TFormComment\\\";\\r\\n\\tpublic static TFormEmailTextBox = \\\"obf-TFormEmailTextBox\\\";\\r\\n\\tpublic static TFormEmailCheckBox = \\\"obf-TFormEmailCheckBox\\\";\\r\\n\\tpublic static TFormEmailLabel = \\\"obf-TFormEmailLabel\\\";\\r\\n\\tpublic static TFormSubmitButton = \\\"obf-TFormSubmitButton\\\";\\r\\n\\tpublic static TFormCancelButton = \\\"obf-TFormCancelButton\\\";\\r\\n\\tpublic static TFormSubmitButtonSpinner = \\\"obf-TFormSubmitButtonSpinner\\\";\\r\\n\\tpublic static TFormSubmitButtonContainer = \\\"obf-TFormSubmitButtonContainer\\\";\\r\\n\\r\\n\\t// endregion\\r\\n}\\r\\n\\r\\n/**\\r\\n * Keys\\r\\n */\\r\\nexport class Keys {\\r\\n\\tpublic static Esc = 27;\\r\\n\\tpublic static Tab = 9;\\r\\n}\\r\\n\\r\\n/**\\r\\n * HTML tags\\r\\n */\\r\\nexport class Tags {\\r\\n\\tpublic static Anchor = \\\"A\\\";\\r\\n\\tpublic static Button = \\\"button\\\";\\r\\n\\tpublic static Defs = \\\"defs\\\";\\r\\n\\tpublic static Div = \\\"div\\\";\\r\\n\\tpublic static FieldSet = \\\"fieldset\\\";\\r\\n\\tpublic static Form = \\\"form\\\";\\r\\n\\tpublic static Img = \\\"img\\\";\\r\\n\\tpublic static Input = \\\"input\\\";\\r\\n\\tpublic static Label = \\\"label\\\";\\r\\n\\tpublic static Legend = \\\"legend\\\";\\r\\n\\tpublic static Option = \\\"option\\\";\\r\\n\\tpublic static Polygon = \\\"polygon\\\";\\r\\n\\tpublic static Select = \\\"select\\\";\\r\\n\\tpublic static Span = \\\"span\\\";\\r\\n\\tpublic static Svg = \\\"svg\\\";\\r\\n\\tpublic static TextArea = \\\"textarea\\\";\\r\\n\\tpublic static Use = \\\"use\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * HTML roles\\r\\n */\\r\\nexport class Roles {\\r\\n\\tpublic static Button = \\\"Button\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * URLs\\r\\n */\\r\\nexport class Urls {\\r\\n\\t/**\\r\\n\\t * Link to the feedback Privacy Statement\\r\\n\\t */\\r\\n\\tpublic static PrivacyStatementLink = \\\"https://go.microsoft.com/fwlink/?LinkId=521839\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * prompt constants\\r\\n */\\r\\nexport class PromptConstants {\\r\\n\\tpublic static No = \\\"1\\\";\\r\\n\\tpublic static Yes = \\\"2\\\";\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var AttributeName=(cov_7dhltx6qz.s[0]++,function(){cov_7dhltx6qz.f[0]++;function AttributeName(){cov_7dhltx6qz.f[1]++;}cov_7dhltx6qz.s[1]++;AttributeName.Alt=\"alt\";cov_7dhltx6qz.s[2]++;AttributeName.AriaLabel=\"aria-label\";cov_7dhltx6qz.s[3]++;AttributeName.AriaSelected=\"aria-selected\";cov_7dhltx6qz.s[4]++;AttributeName.AriaOrientation=\"aria-orientation\";cov_7dhltx6qz.s[5]++;AttributeName.AriaExpanded=\"aria-expanded\";cov_7dhltx6qz.s[6]++;AttributeName.AriaControls=\"aria-controls\";cov_7dhltx6qz.s[7]++;AttributeName.AriaHasPopups=\"aria-haspopup\";cov_7dhltx6qz.s[8]++;AttributeName.AriaModal=\"aria-modal\";cov_7dhltx6qz.s[9]++;AttributeName.AriaLabelledBy=\"aria-labelledby\";cov_7dhltx6qz.s[10]++;AttributeName.AriaDescribedBy=\"aria-describedby\";cov_7dhltx6qz.s[11]++;AttributeName.AriaLevel=\"aria-level\";cov_7dhltx6qz.s[12]++;AttributeName.Class=\"class\";cov_7dhltx6qz.s[13]++;AttributeName.DataHtml2CanvasIgnore=\"data-html2canvas-ignore\";cov_7dhltx6qz.s[14]++;AttributeName.Disabled=\"disabled\";cov_7dhltx6qz.s[15]++;AttributeName.Fill=\"fill\";cov_7dhltx6qz.s[16]++;AttributeName.For=\"for\";cov_7dhltx6qz.s[17]++;AttributeName.Preview=\"preview\";cov_7dhltx6qz.s[18]++;AttributeName.Form=\"form\";cov_7dhltx6qz.s[19]++;AttributeName.Height=\"height\";cov_7dhltx6qz.s[20]++;AttributeName.HRef=\"href\";cov_7dhltx6qz.s[21]++;AttributeName.Id=\"id\";cov_7dhltx6qz.s[22]++;AttributeName.MaxLength=\"maxlength\";cov_7dhltx6qz.s[23]++;AttributeName.Name=\"name\";cov_7dhltx6qz.s[24]++;AttributeName.Placeholder=\"placeholder\";cov_7dhltx6qz.s[25]++;AttributeName.Points=\"points\";cov_7dhltx6qz.s[26]++;AttributeName.Rel=\"rel\";cov_7dhltx6qz.s[27]++;AttributeName.Role=\"role\";cov_7dhltx6qz.s[28]++;AttributeName.Source=\"src\";cov_7dhltx6qz.s[29]++;AttributeName.Stroke=\"stroke\";cov_7dhltx6qz.s[30]++;AttributeName.Style=\"style\";cov_7dhltx6qz.s[31]++;AttributeName.TabIndex=\"tabindex\";cov_7dhltx6qz.s[32]++;AttributeName.Target=\"target\";cov_7dhltx6qz.s[33]++;AttributeName.Transform=\"transform\";cov_7dhltx6qz.s[34]++;AttributeName.Type=\"type\";cov_7dhltx6qz.s[35]++;AttributeName.Value=\"value\";cov_7dhltx6qz.s[36]++;AttributeName.ViewBox=\"viewBox\";cov_7dhltx6qz.s[37]++;AttributeName.Width=\"width\";cov_7dhltx6qz.s[38]++;AttributeName.xlinkHref=\"xlink:href\";cov_7dhltx6qz.s[39]++;AttributeName.X=\"x\";cov_7dhltx6qz.s[40]++;AttributeName.Y=\"y\";cov_7dhltx6qz.s[41]++;return AttributeName;}());var AttributeValue=(cov_7dhltx6qz.s[42]++,function(){cov_7dhltx6qz.f[2]++;function AttributeValue(){cov_7dhltx6qz.f[3]++;}cov_7dhltx6qz.s[43]++;AttributeValue.BlankWindow=\"_blank\";cov_7dhltx6qz.s[44]++;AttributeValue.Button=\"button\";cov_7dhltx6qz.s[45]++;AttributeValue.Dialog=\"dialog\";cov_7dhltx6qz.s[46]++;AttributeValue.Tab=\"tab\";cov_7dhltx6qz.s[47]++;AttributeValue.TabList=\"tablist\";cov_7dhltx6qz.s[48]++;AttributeValue.TabPanel=\"tabpanel\";cov_7dhltx6qz.s[49]++;AttributeValue.Checkbox=\"checkbox\";cov_7dhltx6qz.s[50]++;AttributeValue.Checked=\"checked\";cov_7dhltx6qz.s[51]++;AttributeValue.False=\"false\";cov_7dhltx6qz.s[52]++;AttributeValue.Zero=\"0\";cov_7dhltx6qz.s[53]++;AttributeValue.Polite=\"polite\";cov_7dhltx6qz.s[54]++;AttributeValue.Radio=\"radio\";cov_7dhltx6qz.s[55]++;AttributeValue.Submit=\"submit\";cov_7dhltx6qz.s[56]++;AttributeValue.ScreenshotPreview=\"ScreenshotPreview\";cov_7dhltx6qz.s[57]++;AttributeValue.Text=\"text\";cov_7dhltx6qz.s[58]++;AttributeValue.TextAreaMaxLength=\"1000\";cov_7dhltx6qz.s[59]++;AttributeValue.True=\"true\";cov_7dhltx6qz.s[60]++;AttributeValue.Unchecked=\"unchecked\";cov_7dhltx6qz.s[61]++;AttributeValue.NoReferrer=\"noreferrer\";cov_7dhltx6qz.s[62]++;AttributeValue.AriaOrientationValueVertical=\"vertical\";cov_7dhltx6qz.s[63]++;return AttributeValue;}());var UrlParameters=(cov_7dhltx6qz.s[64]++,function(){cov_7dhltx6qz.f[4]++;function UrlParameters(){cov_7dhltx6qz.f[5]++;}cov_7dhltx6qz.s[65]++;UrlParameters.CLCID=\"CLCID\";cov_7dhltx6qz.s[66]++;return UrlParameters;}());var Classes=(cov_7dhltx6qz.s[67]++,function(){cov_7dhltx6qz.f[6]++;function Classes(){cov_7dhltx6qz.f[7]++;}cov_7dhltx6qz.s[68]++;Classes.AriaLiveTemplate=\"obf-AriaLiveTemplate\";cov_7dhltx6qz.s[69]++;Classes.CheckBox=\"obf-CheckBox\";cov_7dhltx6qz.s[70]++;Classes.FontTitle=\"obf-FontTitle\";cov_7dhltx6qz.s[71]++;Classes.CloseButton=\"obf-CloseButton\";cov_7dhltx6qz.s[72]++;Classes.FontSubtitle=\"obf-FontSubtitle\";cov_7dhltx6qz.s[73]++;Classes.FontText=\"obf-FontText\";cov_7dhltx6qz.s[74]++;Classes.FontSubText=\"obf-FontSubText\";cov_7dhltx6qz.s[75]++;Classes.FontSubSubText=\"obf-FontSubSubText\";cov_7dhltx6qz.s[76]++;Classes.Hidden=\"obf-Hidden\";cov_7dhltx6qz.s[77]++;Classes.Link=\"obf-Link\";cov_7dhltx6qz.s[78]++;Classes.MarginLeft60px=\"obf-MarginLeft60px\";cov_7dhltx6qz.s[79]++;Classes.MarginLeft180px=\"obf-MarginLeft180px\";cov_7dhltx6qz.s[80]++;Classes.NarrowLayout=\"obf-NarrowLayout\";cov_7dhltx6qz.s[81]++;Classes.PrivacyStatementLinkDiv=\"obf-PrivacyStatementLinkDiv\";cov_7dhltx6qz.s[82]++;Classes.PrivacyStatementLinkDivEudbUx=\"obf-PrivacyStatementLinkDivEudbUx\";cov_7dhltx6qz.s[83]++;Classes.Rtl=\"obf-Rtl\";cov_7dhltx6qz.s[84]++;Classes.Spinner=\"obf-Spinner\";cov_7dhltx6qz.s[85]++;Classes.SpinnerCircle=\"obf-SpinnerCircle\";cov_7dhltx6qz.s[86]++;Classes.SubmitButton=\"obf-SubmitButton\";cov_7dhltx6qz.s[87]++;Classes.CancelButton=\"obf-CancelButton\";cov_7dhltx6qz.s[88]++;Classes.TextInput=\"obf-TextInput\";cov_7dhltx6qz.s[89]++;Classes.Visible=\"obf-Visible\";cov_7dhltx6qz.s[90]++;Classes.RequiredAsterisk=\"obf-RequiredAsterisk\";cov_7dhltx6qz.s[91]++;Classes.Rating=\"obf-Rating\";cov_7dhltx6qz.s[92]++;Classes.RatingGraphic=\"obf-RatingGraphic\";cov_7dhltx6qz.s[93]++;Classes.RatingGraphicFilled=\"obf-RatingGraphic-Filled\";cov_7dhltx6qz.s[94]++;Classes.ChoiceGroup=\"obf-ChoiceGroup\";cov_7dhltx6qz.s[95]++;Classes.ChoiceGroupIcon=\"obf-ChoiceGroupIcon\";cov_7dhltx6qz.s[96]++;Classes.OverallAnchor=\"obf-OverallAnchor\";cov_7dhltx6qz.s[97]++;Classes.OverallAnchorActive=\"obf-OverallAnchorActive\";cov_7dhltx6qz.s[98]++;Classes.OverallImage=\"obf-OverallImage\";cov_7dhltx6qz.s[99]++;Classes.OverallText=\"obf-OverallText\";cov_7dhltx6qz.s[100]++;Classes.SingleLayout=\"obf-SingleLayout\";cov_7dhltx6qz.s[101]++;Classes.ShowRightBorder=\"obf-ShowRightBorder\";cov_7dhltx6qz.s[102]++;Classes.SlideLeft=\"obf-slideLeft\";cov_7dhltx6qz.s[103]++;Classes.TextAlignLeft=\"obf-TextAlignLeft\";cov_7dhltx6qz.s[104]++;Classes.FormContainer=\"obf-FormContainer\";cov_7dhltx6qz.s[105]++;Classes.FormWideContainer=\"obf-FormWideContainer\";cov_7dhltx6qz.s[106]++;Classes.ThanksPanelTitle=\"obf-ThanksPanelTitle\";cov_7dhltx6qz.s[107]++;Classes.ThanksPanelMessage=\"obf-ThanksPanelMessage\";cov_7dhltx6qz.s[108]++;Classes.FormQuestionMiddleText=\"obf-FormQuestionMiddleText\";cov_7dhltx6qz.s[109]++;Classes.FormMiddleText=\"obf-FormMiddleText\";cov_7dhltx6qz.s[110]++;Classes.FormCategoriesDropdown=\"obf-FormCategoriesDropdown\";cov_7dhltx6qz.s[111]++;Classes.FormComment=\"obf-FormComment\";cov_7dhltx6qz.s[112]++;Classes.FormRatingContainer=\"obf-FormRatingContainer\";cov_7dhltx6qz.s[113]++;Classes.FormRatingLabel=\"obf-FormRatingLabel\";cov_7dhltx6qz.s[114]++;Classes.FormRating=\"obf-FormRating\";cov_7dhltx6qz.s[115]++;Classes.FormEmailContainer=\"obf-FormEmailContainer\";cov_7dhltx6qz.s[116]++;Classes.FormEmailInput=\"obf-FormEmailInput\";cov_7dhltx6qz.s[117]++;Classes.FormEmailTextBox=\"obf-FormEmailTextBox\";cov_7dhltx6qz.s[118]++;Classes.FormEmailCheckBox=\"obf-FormEmailCheckBox\";cov_7dhltx6qz.s[119]++;Classes.FormEmailLabel=\"obf-FormEmailLabel\";cov_7dhltx6qz.s[120]++;Classes.FormBottomContainer=\"obf-FormBottomContainer\";cov_7dhltx6qz.s[121]++;Classes.FormSubmitButtonContainer=\"obf-FormSubmitButtonContainer\";cov_7dhltx6qz.s[122]++;Classes.FormScreenshotContainer=\"obf-FormScreenshotContainer\";cov_7dhltx6qz.s[123]++;Classes.FormScreenshotLabel=\"obf-FormScreenshotLabel\";cov_7dhltx6qz.s[124]++;Classes.FormScreenshotCheckbox=\"obf-FormScreenshotCheckbox\";cov_7dhltx6qz.s[125]++;Classes.FormScreenshotPreview=\"obf-FormScreenshotPreview\";cov_7dhltx6qz.s[126]++;Classes.FormPrivacyConsentText=\"obf-TFormPrivacyConsentText\";cov_7dhltx6qz.s[127]++;Classes.TFormEmailCheckbox=\"obf-TFormEmailCheckbox\";cov_7dhltx6qz.s[128]++;Classes.TFormEmailLabel=\"obf-TFormEmailLabel \";cov_7dhltx6qz.s[129]++;Classes.EmailCheckBoxLabel=\"obf-EmailCheckBoxLabel\";cov_7dhltx6qz.s[130]++;Classes.Toast=\"obf-Toast\";cov_7dhltx6qz.s[131]++;Classes.ToastZoom=\"obf-ToastZoom\";cov_7dhltx6qz.s[132]++;return Classes;}());var IDs=(cov_7dhltx6qz.s[133]++,function(){cov_7dhltx6qz.f[8]++;function IDs(){cov_7dhltx6qz.f[9]++;}cov_7dhltx6qz.s[134]++;IDs.CloseButton=\"obf-CloseButton\";cov_7dhltx6qz.s[135]++;IDs.ColumnSeparatorDiv=\"obf-ColumnSeparatorDiv\";cov_7dhltx6qz.s[136]++;IDs.OverallAnchorsContainer=\"obf-OverallAnchorsContainer\";cov_7dhltx6qz.s[137]++;IDs.OverallFrownAnchor=\"obf-OverallFrownAnchor\";cov_7dhltx6qz.s[138]++;IDs.OverallFrownDiv=\"obf-OverallFrownDiv\";cov_7dhltx6qz.s[139]++;IDs.OverallFrownImage=\"obf-OverallFrownImage\";cov_7dhltx6qz.s[140]++;IDs.OverallFrownText=\"obf-OverallFrownText\";cov_7dhltx6qz.s[141]++;IDs.OverallSmileAnchor=\"obf-OverallSmileAnchor\";cov_7dhltx6qz.s[142]++;IDs.OverallSmileDiv=\"obf-OverallSmileDiv\";cov_7dhltx6qz.s[143]++;IDs.OverallSmileImage=\"obf-OverallSmileImage\";cov_7dhltx6qz.s[144]++;IDs.OverallSmileText=\"obf-OverallSmileText\";cov_7dhltx6qz.s[145]++;IDs.OverallIdeaAnchor=\"obf-OverallIdeaAnchor\";cov_7dhltx6qz.s[146]++;IDs.OverallIdeaDiv=\"obf-OverallIdeaDiv\";cov_7dhltx6qz.s[147]++;IDs.OverallIdeaImage=\"obf-OverallIdeaImage\";cov_7dhltx6qz.s[148]++;IDs.OverallIdeaText=\"obf-OverallIdeaText\";cov_7dhltx6qz.s[149]++;IDs.OverallBugAnchor=\"obf-OverallBugAnchor\";cov_7dhltx6qz.s[150]++;IDs.OverallBugDiv=\"obf-OverallBugDiv\";cov_7dhltx6qz.s[151]++;IDs.OverallBugImage=\"obf-OverallBugImage\";cov_7dhltx6qz.s[152]++;IDs.OverallBugText=\"obf-OverallBugText\";cov_7dhltx6qz.s[153]++;IDs.QuestionLeftText=\"obf-QuestionLeftText\";cov_7dhltx6qz.s[154]++;IDs.LeftFormContainer=\"obf-LeftFormContainer\";cov_7dhltx6qz.s[155]++;IDs.LeftPanelContainer=\"obf-LeftPanelContainer\";cov_7dhltx6qz.s[156]++;IDs.MainContainer=\"obf-MainContainer\";cov_7dhltx6qz.s[157]++;IDs.MainContentHolder=\"obf-MainContentHolder\";cov_7dhltx6qz.s[158]++;IDs.MiddleFormContainer=\"obf-MiddleFormContainer\";cov_7dhltx6qz.s[159]++;IDs.OverlayBackground=\"obf-OverlayBackground\";cov_7dhltx6qz.s[160]++;IDs.PrivacyStatementLink=\"obf-PrivacyStatementLink\";cov_7dhltx6qz.s[161]++;IDs.PrivacyConsentText=\"obf-PrivacyConsentText\";cov_7dhltx6qz.s[162]++;IDs.FirstTabbable=\"obf-FirstTabbable\";cov_7dhltx6qz.s[163]++;IDs.LastTabbable=\"obf-LastTabbable\";cov_7dhltx6qz.s[164]++;IDs.EmailCheckBox=\"obf-EmailCheckBox\";cov_7dhltx6qz.s[165]++;IDs.RequiredAsterisk=\"obf-RequiredStar\";cov_7dhltx6qz.s[166]++;IDs.SingleFormContainer=\"obf-SingleFormContainer\";cov_7dhltx6qz.s[167]++;IDs.SingleFormQuestionMiddleText=\"obf-SingleFormQuestionMiddleText\";cov_7dhltx6qz.s[168]++;IDs.SingleFormCategoriesDropdown=\"obf-SingleFormCategoriesDropdown\";cov_7dhltx6qz.s[169]++;IDs.SingleFormComment=\"obf-SingleFormComment\";cov_7dhltx6qz.s[170]++;IDs.SingleFormEmailInput=\"obf-SingleFormEmailInput\";cov_7dhltx6qz.s[171]++;IDs.SingleFormRating=\"obf-SingleFormRating\";cov_7dhltx6qz.s[172]++;IDs.SingleFormScreenshotCheckbox=\"obf-SingleFormScreenshotCheckbox\";cov_7dhltx6qz.s[173]++;IDs.SingleFormScreenshotPreview=\"obf-SingleFormScreenshotPreview\";cov_7dhltx6qz.s[174]++;IDs.SingleFormSubmitButton=\"obf-SingleFormSubmitButton\";cov_7dhltx6qz.s[175]++;IDs.SingleFormCancelButton=\"obf-SingleFormCancelButton\";cov_7dhltx6qz.s[176]++;IDs.SingleFormSubmitButtonSpinner=\"obf-SingleFormSubmitButtonSpinner\";cov_7dhltx6qz.s[177]++;IDs.BasicFormContainer=\"obf-BasicFormContainer\";cov_7dhltx6qz.s[178]++;IDs.BasicFormQuestionMiddleText=\"obf-BasicFormQuestionMiddleText\";cov_7dhltx6qz.s[179]++;IDs.BasicFormCategoriesDropdown=\"obf-BasicFormCategoriesDropdown\";cov_7dhltx6qz.s[180]++;IDs.BasicFormComment=\"obf-BasicFormComment\";cov_7dhltx6qz.s[181]++;IDs.BasicFormEmailInput=\"obf-BasicFormEmailInput\";cov_7dhltx6qz.s[182]++;IDs.BasicFormRating=\"obf-BasicFormRating\";cov_7dhltx6qz.s[183]++;IDs.BasicFormScreenshotCheckbox=\"obf-BasicFormScreenshotCheckbox\";cov_7dhltx6qz.s[184]++;IDs.BasicFormScreenshotPreview=\"obf-BasicFormScreenshotPreview\";cov_7dhltx6qz.s[185]++;IDs.BasicFormSubmitButton=\"obf-BasicFormSubmitButton\";cov_7dhltx6qz.s[186]++;IDs.BasicFormCancelButton=\"obf-BasicFormCancelButton\";cov_7dhltx6qz.s[187]++;IDs.BasicFormSubmitButtonSpinner=\"obf-BasicFormSubmitButtonSpinner\";cov_7dhltx6qz.s[188]++;IDs.ThanksPanelContainer=\"obf-ThanksPanelContainer\";cov_7dhltx6qz.s[189]++;IDs.ThanksPanelCloseButton=\"obf-ThanksPanelCloseButton\";cov_7dhltx6qz.s[190]++;IDs.ThanksPanelDiscussion=\"obf-ThanksPanelDiscussion\";cov_7dhltx6qz.s[191]++;IDs.ThanksPanelVerticalContainer=\"obf-ThanksPanelVerticalContainer\";cov_7dhltx6qz.s[192]++;IDs.ThanksPanelInnerContainer=\"obf-ThanksPanelInnerContainer\";cov_7dhltx6qz.s[193]++;IDs.ThanksPanelParagraph=\"obf-ThanksPanelParagraph\";cov_7dhltx6qz.s[194]++;IDs.FeedbackPortalIdeaContainer=\"obf-FeedbackPortalIdeaContainer\";cov_7dhltx6qz.s[195]++;IDs.OverallFeedbackPortalIdeaAnchor=\"obf-OverallFeedbackPortalIdeaAnchor\";cov_7dhltx6qz.s[196]++;IDs.ToastContainer=\"obf-ToastContainer\";cov_7dhltx6qz.s[197]++;IDs.ToastCancel=\"obf-ToastCancel\";cov_7dhltx6qz.s[198]++;IDs.TPromptContainer=\"obf-TPromptContainer\";cov_7dhltx6qz.s[199]++;IDs.TPromptTitle=\"obf-TPromptTitle\";cov_7dhltx6qz.s[200]++;IDs.TPromptText=\"obf-TPromptText\";cov_7dhltx6qz.s[201]++;IDs.TFormContainer=\"obf-TFormContainer\";cov_7dhltx6qz.s[202]++;IDs.TFormContainerLabel=\"obf-TFormContainerLabel\";cov_7dhltx6qz.s[203]++;IDs.TFormTitle=\"obf-TFormTitle\";cov_7dhltx6qz.s[204]++;IDs.TFormRating=\"obf-TFormRating\";cov_7dhltx6qz.s[205]++;IDs.TFormRatingQuestion=\"obf-TFormRatingQuestion\";cov_7dhltx6qz.s[206]++;IDs.TFormCommentQuestion=\"obf-TFormCommentQuestion\";cov_7dhltx6qz.s[207]++;IDs.TFormComment=\"obf-TFormComment\";cov_7dhltx6qz.s[208]++;IDs.TFormEmailTextBox=\"obf-TFormEmailTextBox\";cov_7dhltx6qz.s[209]++;IDs.TFormEmailCheckBox=\"obf-TFormEmailCheckBox\";cov_7dhltx6qz.s[210]++;IDs.TFormEmailLabel=\"obf-TFormEmailLabel\";cov_7dhltx6qz.s[211]++;IDs.TFormSubmitButton=\"obf-TFormSubmitButton\";cov_7dhltx6qz.s[212]++;IDs.TFormCancelButton=\"obf-TFormCancelButton\";cov_7dhltx6qz.s[213]++;IDs.TFormSubmitButtonSpinner=\"obf-TFormSubmitButtonSpinner\";cov_7dhltx6qz.s[214]++;IDs.TFormSubmitButtonContainer=\"obf-TFormSubmitButtonContainer\";cov_7dhltx6qz.s[215]++;return IDs;}());var Keys=(cov_7dhltx6qz.s[216]++,function(){cov_7dhltx6qz.f[10]++;function Keys(){cov_7dhltx6qz.f[11]++;}cov_7dhltx6qz.s[217]++;Keys.Esc=27;cov_7dhltx6qz.s[218]++;Keys.Tab=9;cov_7dhltx6qz.s[219]++;return Keys;}());var Tags=(cov_7dhltx6qz.s[220]++,function(){cov_7dhltx6qz.f[12]++;function Tags(){cov_7dhltx6qz.f[13]++;}cov_7dhltx6qz.s[221]++;Tags.Anchor=\"A\";cov_7dhltx6qz.s[222]++;Tags.Button=\"button\";cov_7dhltx6qz.s[223]++;Tags.Defs=\"defs\";cov_7dhltx6qz.s[224]++;Tags.Div=\"div\";cov_7dhltx6qz.s[225]++;Tags.FieldSet=\"fieldset\";cov_7dhltx6qz.s[226]++;Tags.Form=\"form\";cov_7dhltx6qz.s[227]++;Tags.Img=\"img\";cov_7dhltx6qz.s[228]++;Tags.Input=\"input\";cov_7dhltx6qz.s[229]++;Tags.Label=\"label\";cov_7dhltx6qz.s[230]++;Tags.Legend=\"legend\";cov_7dhltx6qz.s[231]++;Tags.Option=\"option\";cov_7dhltx6qz.s[232]++;Tags.Polygon=\"polygon\";cov_7dhltx6qz.s[233]++;Tags.Select=\"select\";cov_7dhltx6qz.s[234]++;Tags.Span=\"span\";cov_7dhltx6qz.s[235]++;Tags.Svg=\"svg\";cov_7dhltx6qz.s[236]++;Tags.TextArea=\"textarea\";cov_7dhltx6qz.s[237]++;Tags.Use=\"use\";cov_7dhltx6qz.s[238]++;return Tags;}());var Roles=(cov_7dhltx6qz.s[239]++,function(){cov_7dhltx6qz.f[14]++;function Roles(){cov_7dhltx6qz.f[15]++;}cov_7dhltx6qz.s[240]++;Roles.Button=\"Button\";cov_7dhltx6qz.s[241]++;return Roles;}());var Urls=(cov_7dhltx6qz.s[242]++,function(){cov_7dhltx6qz.f[16]++;function Urls(){cov_7dhltx6qz.f[17]++;}cov_7dhltx6qz.s[243]++;Urls.PrivacyStatementLink=\"https://go.microsoft.com/fwlink/?LinkId=521839\";cov_7dhltx6qz.s[244]++;return Urls;}());var PromptConstants=(cov_7dhltx6qz.s[245]++,function(){cov_7dhltx6qz.f[18]++;function PromptConstants(){cov_7dhltx6qz.f[19]++;}cov_7dhltx6qz.s[246]++;PromptConstants.No=\"1\";cov_7dhltx6qz.s[247]++;PromptConstants.Yes=\"2\";cov_7dhltx6qz.s[248]++;return PromptConstants;}());//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9VaUNvbnN0YW50cy50cz8wMzdmIl0sIm5hbWVzIjpbIkF0dHJpYnV0ZU5hbWUiLCJBbHQiLCJBcmlhTGFiZWwiLCJBcmlhU2VsZWN0ZWQiLCJBcmlhT3JpZW50YXRpb24iLCJBcmlhRXhwYW5kZWQiLCJBcmlhQ29udHJvbHMiLCJBcmlhSGFzUG9wdXBzIiwiQXJpYU1vZGFsIiwiQXJpYUxhYmVsbGVkQnkiLCJBcmlhRGVzY3JpYmVkQnkiLCJBcmlhTGV2ZWwiLCJDbGFzcyIsIkRhdGFIdG1sMkNhbnZhc0lnbm9yZSIsIkRpc2FibGVkIiwiRmlsbCIsIkZvciIsIlByZXZpZXciLCJGb3JtIiwiSGVpZ2h0IiwiSFJlZiIsIklkIiwiTWF4TGVuZ3RoIiwiTmFtZSIsIlBsYWNlaG9sZGVyIiwiUG9pbnRzIiwiUmVsIiwiUm9sZSIsIlNvdXJjZSIsIlN0cm9rZSIsIlN0eWxlIiwiVGFiSW5kZXgiLCJUYXJnZXQiLCJUcmFuc2Zvcm0iLCJUeXBlIiwiVmFsdWUiLCJWaWV3Qm94IiwiV2lkdGgiLCJ4bGlua0hyZWYiLCJYIiwiWSIsIkF0dHJpYnV0ZVZhbHVlIiwiQmxhbmtXaW5kb3ciLCJCdXR0b24iLCJEaWFsb2ciLCJUYWIiLCJUYWJMaXN0IiwiVGFiUGFuZWwiLCJDaGVja2JveCIsIkNoZWNrZWQiLCJGYWxzZSIsIlplcm8iLCJQb2xpdGUiLCJSYWRpbyIsIlN1Ym1pdCIsIlNjcmVlbnNob3RQcmV2aWV3IiwiVGV4dCIsIlRleHRBcmVhTWF4TGVuZ3RoIiwiVHJ1ZSIsIlVuY2hlY2tlZCIsIk5vUmVmZXJyZXIiLCJBcmlhT3JpZW50YXRpb25WYWx1ZVZlcnRpY2FsIiwiVXJsUGFyYW1ldGVycyIsIkNMQ0lEIiwiQ2xhc3NlcyIsIkFyaWFMaXZlVGVtcGxhdGUiLCJDaGVja0JveCIsIkZvbnRUaXRsZSIsIkNsb3NlQnV0dG9uIiwiRm9udFN1YnRpdGxlIiwiRm9udFRleHQiLCJGb250U3ViVGV4dCIsIkZvbnRTdWJTdWJUZXh0IiwiSGlkZGVuIiwiTGluayIsIk1hcmdpbkxlZnQ2MHB4IiwiTWFyZ2luTGVmdDE4MHB4IiwiTmFycm93TGF5b3V0IiwiUHJpdmFjeVN0YXRlbWVudExpbmtEaXYiLCJQcml2YWN5U3RhdGVtZW50TGlua0RpdkV1ZGJVeCIsIlJ0bCIsIlNwaW5uZXIiLCJTcGlubmVyQ2lyY2xlIiwiU3VibWl0QnV0dG9uIiwiQ2FuY2VsQnV0dG9uIiwiVGV4dElucHV0IiwiVmlzaWJsZSIsIlJlcXVpcmVkQXN0ZXJpc2siLCJSYXRpbmciLCJSYXRpbmdHcmFwaGljIiwiUmF0aW5nR3JhcGhpY0ZpbGxlZCIsIkNob2ljZUdyb3VwIiwiQ2hvaWNlR3JvdXBJY29uIiwiT3ZlcmFsbEFuY2hvciIsIk92ZXJhbGxBbmNob3JBY3RpdmUiLCJPdmVyYWxsSW1hZ2UiLCJPdmVyYWxsVGV4dCIsIlNpbmdsZUxheW91dCIsIlNob3dSaWdodEJvcmRlciIsIlNsaWRlTGVmdCIsIlRleHRBbGlnbkxlZnQiLCJGb3JtQ29udGFpbmVyIiwiRm9ybVdpZGVDb250YWluZXIiLCJUaGFua3NQYW5lbFRpdGxlIiwiVGhhbmtzUGFuZWxNZXNzYWdlIiwiRm9ybVF1ZXN0aW9uTWlkZGxlVGV4dCIsIkZvcm1NaWRkbGVUZXh0IiwiRm9ybUNhdGVnb3JpZXNEcm9wZG93biIsIkZvcm1Db21tZW50IiwiRm9ybVJhdGluZ0NvbnRhaW5lciIsIkZvcm1SYXRpbmdMYWJlbCIsIkZvcm1SYXRpbmciLCJGb3JtRW1haWxDb250YWluZXIiLCJGb3JtRW1haWxJbnB1dCIsIkZvcm1FbWFpbFRleHRCb3giLCJGb3JtRW1haWxDaGVja0JveCIsIkZvcm1FbWFpbExhYmVsIiwiRm9ybUJvdHRvbUNvbnRhaW5lciIsIkZvcm1TdWJtaXRCdXR0b25Db250YWluZXIiLCJGb3JtU2NyZWVuc2hvdENvbnRhaW5lciIsIkZvcm1TY3JlZW5zaG90TGFiZWwiLCJGb3JtU2NyZWVuc2hvdENoZWNrYm94IiwiRm9ybVNjcmVlbnNob3RQcmV2aWV3IiwiRm9ybVByaXZhY3lDb25zZW50VGV4dCIsIlRGb3JtRW1haWxDaGVja2JveCIsIlRGb3JtRW1haWxMYWJlbCIsIkVtYWlsQ2hlY2tCb3hMYWJlbCIsIlRvYXN0IiwiVG9hc3Rab29tIiwiSURzIiwiQ29sdW1uU2VwYXJhdG9yRGl2IiwiT3ZlcmFsbEFuY2hvcnNDb250YWluZXIiLCJPdmVyYWxsRnJvd25BbmNob3IiLCJPdmVyYWxsRnJvd25EaXYiLCJPdmVyYWxsRnJvd25JbWFnZSIsIk92ZXJhbGxGcm93blRleHQiLCJPdmVyYWxsU21pbGVBbmNob3IiLCJPdmVyYWxsU21pbGVEaXYiLCJPdmVyYWxsU21pbGVJbWFnZSIsIk92ZXJhbGxTbWlsZVRleHQiLCJPdmVyYWxsSWRlYUFuY2hvciIsIk92ZXJhbGxJZGVhRGl2IiwiT3ZlcmFsbElkZWFJbWFnZSIsIk92ZXJhbGxJZGVhVGV4dCIsIk92ZXJhbGxCdWdBbmNob3IiLCJPdmVyYWxsQnVnRGl2IiwiT3ZlcmFsbEJ1Z0ltYWdlIiwiT3ZlcmFsbEJ1Z1RleHQiLCJRdWVzdGlvbkxlZnRUZXh0IiwiTGVmdEZvcm1Db250YWluZXIiLCJMZWZ0UGFuZWxDb250YWluZXIiLCJNYWluQ29udGFpbmVyIiwiTWFpbkNvbnRlbnRIb2xkZXIiLCJNaWRkbGVGb3JtQ29udGFpbmVyIiwiT3ZlcmxheUJhY2tncm91bmQiLCJQcml2YWN5U3RhdGVtZW50TGluayIsIlByaXZhY3lDb25zZW50VGV4dCIsIkZpcnN0VGFiYmFibGUiLCJMYXN0VGFiYmFibGUiLCJFbWFpbENoZWNrQm94IiwiU2luZ2xlRm9ybUNvbnRhaW5lciIsIlNpbmdsZUZvcm1RdWVzdGlvbk1pZGRsZVRleHQiLCJTaW5nbGVGb3JtQ2F0ZWdvcmllc0Ryb3Bkb3duIiwiU2luZ2xlRm9ybUNvbW1lbnQiLCJTaW5nbGVGb3JtRW1haWxJbnB1dCIsIlNpbmdsZUZvcm1SYXRpbmciLCJTaW5nbGVGb3JtU2NyZWVuc2hvdENoZWNrYm94IiwiU2luZ2xlRm9ybVNjcmVlbnNob3RQcmV2aWV3IiwiU2luZ2xlRm9ybVN1Ym1pdEJ1dHRvbiIsIlNpbmdsZUZvcm1DYW5jZWxCdXR0b24iLCJTaW5nbGVGb3JtU3VibWl0QnV0dG9uU3Bpbm5lciIsIkJhc2ljRm9ybUNvbnRhaW5lciIsIkJhc2ljRm9ybVF1ZXN0aW9uTWlkZGxlVGV4dCIsIkJhc2ljRm9ybUNhdGVnb3JpZXNEcm9wZG93biIsIkJhc2ljRm9ybUNvbW1lbnQiLCJCYXNpY0Zvcm1FbWFpbElucHV0IiwiQmFzaWNGb3JtUmF0aW5nIiwiQmFzaWNGb3JtU2NyZWVuc2hvdENoZWNrYm94IiwiQmFzaWNGb3JtU2NyZWVuc2hvdFByZXZpZXciLCJCYXNpY0Zvcm1TdWJtaXRCdXR0b24iLCJCYXNpY0Zvcm1DYW5jZWxCdXR0b24iLCJCYXNpY0Zvcm1TdWJtaXRCdXR0b25TcGlubmVyIiwiVGhhbmtzUGFuZWxDb250YWluZXIiLCJUaGFua3NQYW5lbENsb3NlQnV0dG9uIiwiVGhhbmtzUGFuZWxEaXNjdXNzaW9uIiwiVGhhbmtzUGFuZWxWZXJ0aWNhbENvbnRhaW5lciIsIlRoYW5rc1BhbmVsSW5uZXJDb250YWluZXIiLCJUaGFua3NQYW5lbFBhcmFncmFwaCIsIkZlZWRiYWNrUG9ydGFsSWRlYUNvbnRhaW5lciIsIk92ZXJhbGxGZWVkYmFja1BvcnRhbElkZWFBbmNob3IiLCJUb2FzdENvbnRhaW5lciIsIlRvYXN0Q2FuY2VsIiwiVFByb21wdENvbnRhaW5lciIsIlRQcm9tcHRUaXRsZSIsIlRQcm9tcHRUZXh0IiwiVEZvcm1Db250YWluZXIiLCJURm9ybUNvbnRhaW5lckxhYmVsIiwiVEZvcm1UaXRsZSIsIlRGb3JtUmF0aW5nIiwiVEZvcm1SYXRpbmdRdWVzdGlvbiIsIlRGb3JtQ29tbWVudFF1ZXN0aW9uIiwiVEZvcm1Db21tZW50IiwiVEZvcm1FbWFpbFRleHRCb3giLCJURm9ybUVtYWlsQ2hlY2tCb3giLCJURm9ybVN1Ym1pdEJ1dHRvbiIsIlRGb3JtQ2FuY2VsQnV0dG9uIiwiVEZvcm1TdWJtaXRCdXR0b25TcGlubmVyIiwiVEZvcm1TdWJtaXRCdXR0b25Db250YWluZXIiLCJLZXlzIiwiRXNjIiwiVGFncyIsIkFuY2hvciIsIkRlZnMiLCJEaXYiLCJGaWVsZFNldCIsIkltZyIsIklucHV0IiwiTGFiZWwiLCJMZWdlbmQiLCJPcHRpb24iLCJQb2x5Z29uIiwiU2VsZWN0IiwiU3BhbiIsIlN2ZyIsIlRleHRBcmVhIiwiVXNlIiwiUm9sZXMiLCJVcmxzIiwiUHJvbXB0Q29uc3RhbnRzIiwiTm8iLCJZZXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O2lyeENBQUEsR0FBSUEscUNBQWlCLFVBQVksc0JBQzdCLFFBQVNBLGNBQVQsRUFBeUIsc0JBQ3hCLENBRjRCLHFCQUc3QkEsY0FBY0MsR0FBZCxDQUFvQixLQUFwQixDQUg2QixxQkFJN0JELGNBQWNFLFNBQWQsQ0FBMEIsWUFBMUIsQ0FKNkIscUJBSzdCRixjQUFjRyxZQUFkLENBQTZCLGVBQTdCLENBTDZCLHFCQU03QkgsY0FBY0ksZUFBZCxDQUFnQyxrQkFBaEMsQ0FONkIscUJBTzdCSixjQUFjSyxZQUFkLENBQTZCLGVBQTdCLENBUDZCLHFCQVE3QkwsY0FBY00sWUFBZCxDQUE2QixlQUE3QixDQVI2QixxQkFTN0JOLGNBQWNPLGFBQWQsQ0FBOEIsZUFBOUIsQ0FUNkIscUJBVTdCUCxjQUFjUSxTQUFkLENBQTBCLFlBQTFCLENBVjZCLHFCQVc3QlIsY0FBY1MsY0FBZCxDQUErQixpQkFBL0IsQ0FYNkIsc0JBWTdCVCxjQUFjVSxlQUFkLENBQWdDLGtCQUFoQyxDQVo2QixzQkFhN0JWLGNBQWNXLFNBQWQsQ0FBMEIsWUFBMUIsQ0FiNkIsc0JBYzdCWCxjQUFjWSxLQUFkLENBQXNCLE9BQXRCLENBZDZCLHNCQWU3QlosY0FBY2EscUJBQWQsQ0FBc0MseUJBQXRDLENBZjZCLHNCQWdCN0JiLGNBQWNjLFFBQWQsQ0FBeUIsVUFBekIsQ0FoQjZCLHNCQWlCN0JkLGNBQWNlLElBQWQsQ0FBcUIsTUFBckIsQ0FqQjZCLHNCQWtCN0JmLGNBQWNnQixHQUFkLENBQW9CLEtBQXBCLENBbEI2QixzQkFtQjdCaEIsY0FB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S0FBS2EsR0FBTCxDQUFXLEtBQVgsQ0FqQm9CLHVCQWtCcEJiLEtBQUtjLFFBQUwsQ0FBZ0IsVUFBaEIsQ0FsQm9CLHVCQW1CcEJkLEtBQUtlLEdBQUwsQ0FBVyxLQUFYLENBbkJvQix1QkFvQnBCLE1BQU9mLEtBQVAsQ0FDSCxDQXJCVyxFQUFSLENBQUosQ0F1QkEsR0FBSWdCLCtCQUFTLFVBQVksdUJBQ3JCLFFBQVNBLE1BQVQsRUFBaUIsdUJBQ2hCLENBRm9CLHVCQUdyQkEsTUFBTXZMLE1BQU4sQ0FBZSxRQUFmLENBSHFCLHVCQUlyQixNQUFPdUwsTUFBUCxDQUNILENBTFksRUFBVCxDQUFKLENBT0EsR0FBSUMsOEJBQVEsVUFBWSx1QkFDcEIsUUFBU0EsS0FBVCxFQUFnQix1QkFDZixDQUZtQix1QkFHcEJBLEtBQUt4RSxvQkFBTCxDQUE0QixnREFBNUIsQ0FIb0IsdUJBSXBCLE1BQU93RSxLQUFQLENBQ0gsQ0FMVyxFQUFSLENBQUosQ0FPQSxHQUFJQyx5Q0FBbUIsVUFBWSx1QkFDL0IsUUFBU0EsZ0JBQVQsRUFBMkIsdUJBQzFCLENBRjhCLHVCQUcvQkEsZ0JBQWdCQyxFQUFoQixDQUFxQixHQUFyQixDQUgrQix1QkFJL0JELGdCQUFnQkUsR0FBaEIsQ0FBc0IsR0FBdEIsQ0FKK0IsdUJBSy9CLE1BQU9GLGdCQUFQLENBQ0gsQ0FOc0IsRUFBbkIsQ0FBSiIsImZpbGUiOiIuL3NjcmlwdHMvYXBwL1VJL1VpQ29uc3RhbnRzLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIEF0dHJpYnV0ZU5hbWUgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQXR0cmlidXRlTmFtZSgpIHtcclxuICAgIH1cclxuICAgIEF0dHJpYnV0ZU5hbWUuQWx0ID0gXCJhbHRcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuQXJpYUxhYmVsID0gXCJhcmlhLWxhYmVsXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkFyaWFTZWxlY3RlZCA9IFwiYXJpYS1zZWxlY3RlZFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5BcmlhT3JpZW50YXRpb24gPSBcImFyaWEtb3JpZW50YXRpb25cIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuQXJpYUV4cGFuZGVkID0gXCJhcmlhLWV4cGFuZGVkXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkFyaWFDb250cm9scyA9IFwiYXJpYS1jb250cm9sc1wiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5BcmlhSGFzUG9wdXBzID0gXCJhcmlhLWhhc3BvcHVwXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkFyaWFNb2RhbCA9IFwiYXJpYS1tb2RhbFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5BcmlhTGFiZWxsZWRCeSA9IFwiYXJpYS1sYWJlbGxlZGJ5XCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkFyaWFEZXNjcmliZWRCeSA9IFwiYXJpYS1kZXNjcmliZWRieVwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5BcmlhTGV2ZWwgPSBcImFyaWEtbGV2ZWxcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuQ2xhc3MgPSBcImNsYXNzXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkRhdGFIdG1sMkNhbnZhc0lnbm9yZSA9IFwiZGF0YS1odG1sMmNhbnZhcy1pZ25vcmVcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuRGlzYWJsZWQgPSBcImRpc2FibGVkXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkZpbGwgPSBcImZpbGxcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuRm9yID0gXCJmb3JcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuUHJldmlldyA9IFwicHJldmlld1wiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5Gb3JtID0gXCJmb3JtXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkhlaWdodCA9IFwiaGVpZ2h0XCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLkhSZWYgPSBcImhyZWZcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuSWQgPSBcImlkXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLk1heExlbmd0aCA9IFwibWF4bGVuZ3RoXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLk5hbWUgPSBcIm5hbWVcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuUGxhY2Vob2xkZXIgPSBcInBsYWNlaG9sZGVyXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLlBvaW50cyA9IFwicG9pbnRzXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLlJlbCA9IFwicmVsXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLlJvbGUgPSBcInJvbGVcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuU291cmNlID0gXCJzcmNcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuU3Ryb2tlID0gXCJzdHJva2VcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuU3R5bGUgPSBcInN0eWxlXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLlRhYkluZGV4ID0gXCJ0YWJpbmRleFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5UYXJnZXQgPSBcInRhcmdldFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5UcmFuc2Zvcm0gPSBcInRyYW5zZm9ybVwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5UeXBlID0gXCJ0eXBlXCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLlZhbHVlID0gXCJ2YWx1ZVwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5WaWV3Qm94ID0gXCJ2aWV3Qm94XCI7XHJcbiAgICBBdHRyaWJ1dGVOYW1lLldpZHRoID0gXCJ3aWR0aFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS54bGlua0hyZWYgPSBcInhsaW5rOmhyZWZcIjtcclxuICAgIEF0dHJpYnV0ZU5hbWUuWCA9IFwieFwiO1xyXG4gICAgQXR0cmlidXRlTmFtZS5ZID0gXCJ5XCI7XHJcbiAgICByZXR1cm4gQXR0cmlidXRlTmFtZTtcclxufSgpKTtcclxuZXhwb3J0IHsgQXR0cmlidXRlTmFtZSB9O1xyXG52YXIgQXR0cmlidXRlVmFsdWUgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQXR0cmlidXRlVmFsdWUoKSB7XHJcbiAgICB9XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5CbGFua1dpbmRvdyA9IFwiX2JsYW5rXCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5CdXR0b24gPSBcImJ1dHRvblwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuRGlhbG9nID0gXCJkaWFsb2dcIjtcclxuICAgIEF0dHJpYnV0ZVZhbHVlLlRhYiA9IFwidGFiXCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5UYWJMaXN0ID0gXCJ0YWJsaXN0XCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5UYWJQYW5lbCA9IFwidGFicGFuZWxcIjtcclxuICAgIEF0dHJpYnV0ZVZhbHVlLkNoZWNrYm94ID0gXCJjaGVja2JveFwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuQ2hlY2tlZCA9IFwiY2hlY2tlZFwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuRmFsc2UgPSBcImZhbHNlXCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5aZXJvID0gXCIwXCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5Qb2xpdGUgPSBcInBvbGl0ZVwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuUmFkaW8gPSBcInJhZGlvXCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5TdWJtaXQgPSBcInN1Ym1pdFwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuU2NyZWVuc2hvdFByZXZpZXcgPSBcIlNjcmVlbnNob3RQcmV2aWV3XCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5UZXh0ID0gXCJ0ZXh0XCI7XHJcbiAgICBBdHRyaWJ1dGVWYWx1ZS5UZXh0QXJlYU1heExlbmd0aCA9IFwiMTAwMFwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuVHJ1ZSA9IFwidHJ1ZVwiO1xyXG4gICAgQXR0cmlidXRlVmFsdWUuVW5jaGVja2VkID0gXCJ1bmNoZWNrZWRcIjtcclxuICAgIEF0dHJpYnV0ZVZhbHVlLk5vUmVmZXJyZXIgPSBcIm5vcmVmZXJyZXJcIjtcclxuICAgIEF0dHJpYnV0ZVZhbHVlLkFyaWFPcmllbnRhdGlvblZhbHVlVmVydGljYWwgPSBcInZlcnRpY2FsXCI7XHJcbiAgICByZXR1cm4gQXR0cmlidXRlVmFsdWU7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IEF0dHJpYnV0ZVZhbHVlIH07XHJcbnZhciBVcmxQYXJhbWV0ZXJzID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFVybFBhcmFtZXRlcnMoKSB7XHJcbiAgICB9XHJcbiAgICBVcmxQYXJhbWV0ZXJzLkNMQ0lEID0gXCJDTENJRFwiO1xyXG4gICAgcmV0dXJuIFVybFBhcmFtZXRlcnM7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFVybFBhcmFtZXRlcnMgfTtcclxudmFyIENsYXNzZXMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gQ2xhc3NlcygpIHtcclxuICAgIH1cclxuICAgIENsYXNzZXMuQXJpYUxpdmVUZW1wbGF0ZSA9IFwib2JmLUFyaWFMaXZlVGVtcGxhdGVcIjtcclxuICAgIENsYXNzZXMuQ2hlY2tCb3ggPSBcIm9iZi1DaGVja0JveFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb250VGl0bGUgPSBcIm9iZi1Gb250VGl0bGVcIjtcclxuICAgIENsYXNzZXMuQ2xvc2VCdXR0b24gPSBcIm9iZi1DbG9zZUJ1dHRvblwiO1xyXG4gICAgQ2xhc3Nlcy5Gb250U3VidGl0bGUgPSBcIm9iZi1Gb250U3VidGl0bGVcIjtcclxuICAgIENsYXNzZXMuRm9udFRleHQgPSBcIm9iZi1Gb250VGV4dFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb250U3ViVGV4dCA9IFwib2JmLUZvbnRTdWJUZXh0XCI7XHJcbiAgICBDbGFzc2VzLkZvbnRTdWJTdWJUZXh0ID0gXCJvYmYtRm9udFN1YlN1YlRleHRcIjtcclxuICAgIENsYXNzZXMuSGlkZGVuID0gXCJvYmYtSGlkZGVuXCI7XHJcbiAgICBDbGFzc2VzLkxpbmsgPSBcIm9iZi1MaW5rXCI7XHJcbiAgICBDbGFzc2VzLk1hcmdpbkxlZnQ2MHB4ID0gXCJvYmYtTWFyZ2luTGVmdDYwcHhcIjtcclxuICAgIENsYXNzZXMuTWFyZ2luTGVmdDE4MHB4ID0gXCJvYmYtTWFyZ2luTGVmdDE4MHB4XCI7XHJcbiAgICBDbGFzc2VzLk5hcnJvd0xheW91dCA9IFwib2JmLU5hcnJvd0xheW91dFwiO1xyXG4gICAgQ2xhc3Nlcy5Qcml2YWN5U3RhdGVtZW50TGlua0RpdiA9IFwib2JmLVByaXZhY3lTdGF0ZW1lbnRMaW5rRGl2XCI7XHJcbiAgICBDbGFzc2VzLlByaXZhY3lTdGF0ZW1lbnRMaW5rRGl2RXVkYlV4ID0gXCJvYmYtUHJpdmFjeVN0YXRlbWVudExpbmtEaXZFdWRiVXhcIjtcclxuICAgIENsYXNzZXMuUnRsID0gXCJvYmYtUnRsXCI7XHJcbiAgICBDbGFzc2VzLlNwaW5uZXIgPSBcIm9iZi1TcGlubmVyXCI7XHJcbiAgICBDbGFzc2VzLlNwaW5uZXJDaXJjbGUgPSBcIm9iZi1TcGlubmVyQ2lyY2xlXCI7XHJcbiAgICBDbGFzc2VzLlN1Ym1pdEJ1dHRvbiA9IFwib2JmLVN1Ym1pdEJ1dHRvblwiO1xyXG4gICAgQ2xhc3Nlcy5DYW5jZWxCdXR0b24gPSBcIm9iZi1DYW5jZWxCdXR0b25cIjtcclxuICAgIENsYXNzZXMuVGV4dElucHV0ID0gXCJvYmYtVGV4dElucHV0XCI7XHJcbiAgICBDbGFzc2VzLlZpc2libGUgPSBcIm9iZi1WaXNpYmxlXCI7XHJcbiAgICBDbGFzc2VzLlJlcXVpcmVkQXN0ZXJpc2sgPSBcIm9iZi1SZXF1aXJlZEFzdGVyaXNrXCI7XHJcbiAgICBDbGFzc2VzLlJhdGluZyA9IFwib2JmLVJhdGluZ1wiO1xyXG4gICAgQ2xhc3Nlcy5SYXRpbmdHcmFwaGljID0gXCJvYmYtUmF0aW5nR3JhcGhpY1wiO1xyXG4gICAgQ2xhc3Nlcy5SYXRpbmdHcmFwaGljRmlsbGVkID0gXCJvYmYtUmF0aW5nR3JhcGhpYy1GaWxsZWRcIjtcclxuICAgIENsYXNzZXMuQ2hvaWNlR3JvdXAgPSBcIm9iZi1DaG9pY2VHcm91cFwiO1xyXG4gICAgQ2xhc3Nlcy5DaG9pY2VHcm91cEljb24gPSBcIm9iZi1DaG9pY2VHcm91cEljb25cIjtcclxuICAgIENsYXNzZXMuT3ZlcmFsbEFuY2hvciA9IFwib2JmLU92ZXJhbGxBbmNob3JcIjtcclxuICAgIENsYXNzZXMuT3ZlcmFsbEFuY2hvckFjdGl2ZSA9IFwib2JmLU92ZXJhbGxBbmNob3JBY3RpdmVcIjtcclxuICAgIENsYXNzZXMuT3ZlcmFsbEltYWdlID0gXCJvYmYtT3ZlcmFsbEltYWdlXCI7XHJcbiAgICBDbGFzc2VzLk92ZXJhbGxUZXh0ID0gXCJvYmYtT3ZlcmFsbFRleHRcIjtcclxuICAgIENsYXNzZXMuU2luZ2xlTGF5b3V0ID0gXCJvYmYtU2luZ2xlTGF5b3V0XCI7XHJcbiAgICBDbGFzc2VzLlNob3dSaWdodEJvcmRlciA9IFwib2JmLVNob3dSaWdodEJvcmRlclwiO1xyXG4gICAgQ2xhc3Nlcy5TbGlkZUxlZnQgPSBcIm9iZi1zbGlkZUxlZnRcIjtcclxuICAgIENsYXNzZXMuVGV4dEFsaWduTGVmdCA9IFwib2JmLVRleHRBbGlnbkxlZnRcIjtcclxuICAgIENsYXNzZXMuRm9ybUNvbnRhaW5lciA9IFwib2JmLUZvcm1Db250YWluZXJcIjtcclxuICAgIENsYXNzZXMuRm9ybVdpZGVDb250YWluZXIgPSBcIm9iZi1Gb3JtV2lkZUNvbnRhaW5lclwiO1xyXG4gICAgQ2xhc3Nlcy5UaGFua3NQYW5lbFRpdGxlID0gXCJvYmYtVGhhbmtzUGFuZWxUaXRsZVwiO1xyXG4gICAgQ2xhc3Nlcy5UaGFua3NQYW5lbE1lc3NhZ2UgPSBcIm9iZi1UaGFua3NQYW5lbE1lc3NhZ2VcIjtcclxuICAgIENsYXNzZXMuRm9ybVF1ZXN0aW9uTWlkZGxlVGV4dCA9IFwib2JmLUZvcm1RdWVzdGlvbk1pZGRsZVRleHRcIjtcclxuICAgIENsYXNzZXMuRm9ybU1pZGRsZVRleHQgPSBcIm9iZi1Gb3JtTWlkZGxlVGV4dFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtQ2F0ZWdvcmllc0Ryb3Bkb3duID0gXCJvYmYtRm9ybUNhdGVnb3JpZXNEcm9wZG93blwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtQ29tbWVudCA9IFwib2JmLUZvcm1Db21tZW50XCI7XHJcbiAgICBDbGFzc2VzLkZvcm1SYXRpbmdDb250YWluZXIgPSBcIm9iZi1Gb3JtUmF0aW5nQ29udGFpbmVyXCI7XHJcbiAgICBDbGFzc2VzLkZvcm1SYXRpbmdMYWJlbCA9IFwib2JmLUZvcm1SYXRpbmdMYWJlbFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtUmF0aW5nID0gXCJvYmYtRm9ybVJhdGluZ1wiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtRW1haWxDb250YWluZXIgPSBcIm9iZi1Gb3JtRW1haWxDb250YWluZXJcIjtcclxuICAgIENsYXNzZXMuRm9ybUVtYWlsSW5wdXQgPSBcIm9iZi1Gb3JtRW1haWxJbnB1dFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtRW1haWxUZXh0Qm94ID0gXCJvYmYtRm9ybUVtYWlsVGV4dEJveFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtRW1haWxDaGVja0JveCA9IFwib2JmLUZvcm1FbWFpbENoZWNrQm94XCI7XHJcbiAgICBDbGFzc2VzLkZvcm1FbWFpbExhYmVsID0gXCJvYmYtRm9ybUVtYWlsTGFiZWxcIjtcclxuICAgIENsYXNzZXMuRm9ybUJvdHRvbUNvbnRhaW5lciA9IFwib2JmLUZvcm1Cb3R0b21Db250YWluZXJcIjtcclxuICAgIENsYXNzZXMuRm9ybVN1Ym1pdEJ1dHRvbkNvbnRhaW5lciA9IFwib2JmLUZvcm1TdWJtaXRCdXR0b25Db250YWluZXJcIjtcclxuICAgIENsYXNzZXMuRm9ybVNjcmVlbnNob3RDb250YWluZXIgPSBcIm9iZi1Gb3JtU2NyZWVuc2hvdENvbnRhaW5lclwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtU2NyZWVuc2hvdExhYmVsID0gXCJvYmYtRm9ybVNjcmVlbnNob3RMYWJlbFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtU2NyZWVuc2hvdENoZWNrYm94ID0gXCJvYmYtRm9ybVNjcmVlbnNob3RDaGVja2JveFwiO1xyXG4gICAgQ2xhc3Nlcy5Gb3JtU2NyZWVuc2hvdFByZXZpZXcgPSBcIm9iZi1Gb3JtU2NyZWVuc2hvdFByZXZpZXdcIjtcclxuICAgIENsYXNzZXMuRm9ybVByaXZhY3lDb25zZW50VGV4dCA9IFwib2JmLVRGb3JtUHJpdmFjeUNvbnNlbnRUZXh0XCI7XHJcbiAgICBDbGFzc2VzLlRGb3JtRW1haWxDaGVja2JveCA9IFwib2JmLVRGb3JtRW1haWxDaGVja2JveFwiO1xyXG4gICAgQ2xhc3Nlcy5URm9ybUVtYWlsTGFiZWwgPSBcIm9iZi1URm9ybUVtYWlsTGFiZWwgXCI7XHJcbiAgICBDbGFzc2VzLkVtYWlsQ2hlY2tCb3hMYWJlbCA9IFwib2JmLUVtYWlsQ2hlY2tCb3hMYWJlbFwiO1xyXG4gICAgQ2xhc3Nlcy5Ub2FzdCA9IFwib2JmLVRvYXN0XCI7XHJcbiAgICBDbGFzc2VzLlRvYXN0Wm9vbSA9IFwib2JmLVRvYXN0Wm9vbVwiO1xyXG4gICAgcmV0dXJuIENsYXNzZXM7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IENsYXNzZXMgfTtcclxudmFyIElEcyA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBJRHMoKSB7XHJcbiAgICB9XHJcbiAgICBJRHMuQ2xvc2VCdXR0b24gPSBcIm9iZi1DbG9zZUJ1dHRvblwiO1xyXG4gICAgSURzLkNvbHVtblNlcGFyYXRvckRpdiA9IFwib2JmLUNvbHVtblNlcGFyYXRvckRpdlwiO1xyXG4gICAgSURzLk92ZXJhbGxBbmNob3JzQ29udGFpbmVyID0gXCJvYmYtT3ZlcmFsbEFuY2hvcnNDb250YWluZXJcIjtcclxuICAgIElEcy5PdmVyYWxsRnJvd25BbmNob3IgPSBcIm9iZi1PdmVyYWxsRnJvd25BbmNob3JcIjtcclxuICAgIElEcy5PdmVyYWxsRnJvd25EaXYgPSBcIm9iZi1PdmVyYWxsRnJvd25EaXZcIjtcclxuICAgIElEcy5PdmVyYWxsRnJvd25JbWFnZSA9IFwib2JmLU92ZXJhbGxGcm93bkltYWdlXCI7XHJcbiAgICBJRHMuT3ZlcmFsbEZyb3duVGV4dCA9IFwib2JmLU92ZXJhbGxGcm93blRleHRcIjtcclxuICAgIElEcy5PdmVyYWxsU21pbGVBbmNob3IgPSBcIm9iZi1PdmVyYWxsU21pbGVBbmNob3JcIjtcclxuICAgIElEcy5PdmVyYWxsU21pbGVEaXYgPSBcIm9iZi1PdmVyYWxsU21pbGVEaXZcIjtcclxuICAgIElEcy5PdmVyYWxsU21pbGVJbWFnZSA9IFwib2JmLU92ZXJhbGxTbWlsZUltYWdlXCI7XHJcbiAgICBJRHMuT3ZlcmFsbFNtaWxlVGV4dCA9IFwib2JmLU92ZXJhbGxTbWlsZVRleHRcIjtcclxuICAgIElEcy5PdmVyYWxsSWRlYUFuY2hvciA9IFwib2JmLU92ZXJhbGxJZGVhQW5jaG9yXCI7XHJcbiAgICBJRHMuT3ZlcmFsbElkZWFEaXYgPSBcIm9iZi1PdmVyYWxsSWRlYURpdlwiO1xyXG4gICAgSURzLk92ZXJhbGxJZGVhSW1hZ2UgPSBcIm9iZi1PdmVyYWxsSWRlYUltYWdlXCI7XHJcbiAgICBJRHMuT3ZlcmFsbElkZWFUZXh0ID0gXCJvYmYtT3ZlcmFsbElkZWFUZXh0XCI7XHJcbiAgICBJRHMuT3ZlcmFsbEJ1Z0FuY2hvciA9IFwib2JmLU92ZXJhbGxCdWdBbmNob3JcIjtcclxuICAgIElEcy5PdmVyYWxsQnVnRGl2ID0gXCJvYmYtT3ZlcmFsbEJ1Z0RpdlwiO1xyXG4gICAgSURzLk92ZXJhbGxCdWdJbWFnZSA9IFwib2JmLU92ZXJhbGxCdWdJbWFnZVwiO1xyXG4gICAgSURzLk92ZXJhbGxCdWdUZXh0ID0gXCJvYmYtT3ZlcmFsbEJ1Z1RleHRcIjtcclxuICAgIElEcy5RdWVzdGlvbkxlZnRUZXh0ID0gXCJvYmYtUXVlc3Rpb25MZWZ0VGV4dFwiO1xyXG4gICAgSURzLkxlZnRGb3JtQ29udGFpbmVyID0gXCJvYmYtTGVmdEZvcm1Db250YWluZXJcIjtcclxuICAgIElEcy5MZWZ0UGFuZWxDb250YWluZXIgPSBcIm9iZi1MZWZ0UGFuZWxDb250YWluZXJcIjtcclxuICAgIElEcy5NYWluQ29udGFpbmVyID0gXCJvYmYtTWFpbkNvbnRhaW5lclwiO1xyXG4gICAgSURzLk1haW5Db250ZW50SG9sZGVyID0gXCJvYmYtTWFpbkNvbnRlbnRIb2xkZXJcIjtcclxuICAgIElEcy5NaWRkbGVGb3JtQ29udGFpbmVyID0gXCJvYmYtTWlkZGxlRm9ybUNvbnRhaW5lclwiO1xyXG4gICAgSURzLk92ZXJsYXlCYWNrZ3JvdW5kID0gXCJvYmYtT3ZlcmxheUJhY2tncm91bmRcIjtcclxuICAgIElEcy5Qcml2YWN5U3RhdGVtZW50TGluayA9IFwib2JmLVByaXZhY3lTdGF0ZW1lbnRMaW5rXCI7XHJcbiAgICBJRHMuUHJpdmFjeUNvbnNlbnRUZXh0ID0gXCJvYmYtUHJpdmFjeUNvbnNlbnRUZXh0XCI7XHJcbiAgICBJRHMuRmlyc3RUYWJiYWJsZSA9IFwib2JmLUZpcnN0VGFiYmFibGVcIjtcclxuICAgIElEcy5MYXN0VGFiYmFibGUgPSBcIm9iZi1MYXN0VGFiYmFibGVcIjtcclxuICAgIElEcy5FbWFpbENoZWNrQm94ID0gXCJvYmYtRW1haWxDaGVja0JveFwiO1xyXG4gICAgSURzLlJlcXVpcmVkQXN0ZXJpc2sgPSBcIm9iZi1SZXF1aXJlZFN0YXJcIjtcclxuICAgIElEcy5TaW5nbGVGb3JtQ29udGFpbmVyID0gXCJvYmYtU2luZ2xlRm9ybUNvbnRhaW5lclwiO1xyXG4gICAgSURzLlNpbmdsZUZvcm1RdWVzdGlvbk1pZGRsZVRleHQgPSBcIm9iZi1TaW5nbGVGb3JtUXVlc3Rpb25NaWRkbGVUZXh0XCI7XHJcbiAgICBJRHMuU2luZ2xlRm9ybUNhdGVnb3JpZXNEcm9wZG93biA9IFwib2JmLVNpbmdsZUZvcm1DYXRlZ29yaWVzRHJvcGRvd25cIjtcclxuICAgIElEcy5TaW5nbGVGb3JtQ29tbWVudCA9IFwib2JmLVNpbmdsZUZvcm1Db21tZW50XCI7XHJcbiAgICBJRHMuU2luZ2xlRm9ybUVtYWlsSW5wdXQgPSBcIm9iZi1TaW5nbGVGb3JtRW1haWxJbnB1dFwiO1xyXG4gICAgSURzLlNpbmdsZUZvcm1SYXRpbmcgPSBcIm9iZi1TaW5nbGVGb3JtUmF0aW5nXCI7XHJcbiAgICBJRHMuU2luZ2xlRm9ybVNjcmVlbnNob3RDaGVja2JveCA9IFwib2JmLVNpbmdsZUZvcm1TY3JlZW5zaG90Q2hlY2tib3hcIjtcclxuICAgIElEcy5TaW5nbGVGb3JtU2NyZWVuc2hvdFByZXZpZXcgPSBcIm9iZi1TaW5nbGVGb3JtU2NyZWVuc2hvdFByZXZpZXdcIjtcclxuICAgIElEcy5TaW5nbGVGb3JtU3VibWl0QnV0dG9uID0gXCJvYmYtU2luZ2xlRm9ybVN1Ym1pdEJ1dHRvblwiO1xyXG4gICAgSURzLlNpbmdsZUZvcm1DYW5jZWxCdXR0b24gPSBcIm9iZi1TaW5nbGVGb3JtQ2FuY2VsQnV0dG9uXCI7XHJcbiAgICBJRHMuU2luZ2xlRm9ybVN1Ym1pdEJ1dHRvblNwaW5uZXIgPSBcIm9iZi1TaW5nbGVGb3JtU3VibWl0QnV0dG9uU3Bpbm5lclwiO1xyXG4gICAgSURzLkJhc2ljRm9ybUNvbnRhaW5lciA9IFwib2JmLUJhc2ljRm9ybUNvbnRhaW5lclwiO1xyXG4gICAgSURzLkJhc2ljRm9ybVF1ZXN0aW9uTWlkZGxlVGV4dCA9IFwib2JmLUJhc2ljRm9ybVF1ZXN0aW9uTWlkZGxlVGV4dFwiO1xyXG4gICAgSURzLkJhc2ljRm9ybUNhdGVnb3JpZXNEcm9wZG93biA9IFwib2JmLUJhc2ljRm9ybUNhdGVnb3JpZXNEcm9wZG93blwiO1xyXG4gICAgSURzLkJhc2ljRm9ybUNvbW1lbnQgPSBcIm9iZi1CYXNpY0Zvcm1Db21tZW50XCI7XHJcbiAgICBJRHMuQmFzaWNGb3JtRW1haWxJbnB1dCA9IFwib2JmLUJhc2ljRm9ybUVtYWlsSW5wdXRcIjtcclxuICAgIElEcy5CYXNpY0Zvcm1SYXRpbmcgPSBcIm9iZi1CYXNpY0Zvcm1SYXRpbmdcIjtcclxuICAgIElEcy5CYXNpY0Zvcm1TY3JlZW5zaG90Q2hlY2tib3ggPSBcIm9iZi1CYXNpY0Zvcm1TY3JlZW5zaG90Q2hlY2tib3hcIjtcclxuICAgIElEcy5CYXNpY0Zvcm1TY3JlZW5zaG90UHJldmlldyA9IFwib2JmLUJhc2ljRm9ybVNjcmVlbnNob3RQcmV2aWV3XCI7XHJcbiAgICBJRHMuQmFzaWNGb3JtU3VibWl0QnV0dG9uID0gXCJvYmYtQmFzaWNGb3JtU3VibWl0QnV0dG9uXCI7XHJcbiAgICBJRHMuQmFzaWNGb3JtQ2FuY2VsQnV0dG9uID0gXCJvYmYtQmFzaWNGb3JtQ2FuY2VsQnV0dG9uXCI7XHJcbiAgICBJRHMuQmFzaWNGb3JtU3VibWl0QnV0dG9uU3Bpbm5lciA9IFwib2JmLUJhc2ljRm9ybVN1Ym1pdEJ1dHRvblNwaW5uZXJcIjtcclxuICAgIElEcy5UaGFua3NQYW5lbENvbnRhaW5lciA9IFwib2JmLVRoYW5rc1BhbmVsQ29udGFpbmVyXCI7XHJcbiAgICBJRHMuVGhhbmtzUGFuZWxDbG9zZUJ1dHRvbiA9IFwib2JmLVRoYW5rc1BhbmVsQ2xvc2VCdXR0b25cIjtcclxuICAgIElEcy5UaGFua3NQYW5lbERpc2N1c3Npb24gPSBcIm9iZi1UaGFua3NQYW5lbERpc2N1c3Npb25cIjtcclxuICAgIElEcy5UaGFua3NQYW5lbFZlcnRpY2FsQ29udGFpbmVyID0gXCJvYmYtVGhhbmtzUGFuZWxWZXJ0aWNhbENvbnRhaW5lclwiO1xyXG4gICAgSURzLlRoYW5rc1BhbmVsSW5uZXJDb250YWluZXIgPSBcIm9iZi1UaGFua3NQYW5lbElubmVyQ29udGFpbmVyXCI7XHJcbiAgICBJRHMuVGhhbmtzUGFuZWxQYXJhZ3JhcGggPSBcIm9iZi1UaGFua3NQYW5lbFBhcmFncmFwaFwiO1xyXG4gICAgSURzLkZlZWRiYWNrUG9ydGFsSWRlYUNvbnRhaW5lciA9IFwib2JmLUZlZWRiYWNrUG9ydGFsSWRlYUNvbnRhaW5lclwiO1xyXG4gICAgSURzLk92ZXJhbGxGZWVkYmFja1BvcnRhbElkZWFBbmNob3IgPSBcIm9iZi1PdmVyYWxsRmVlZGJhY2tQb3J0YWxJZGVhQW5jaG9yXCI7XHJcbiAgICBJRHMuVG9hc3RDb250YWluZXIgPSBcIm9iZi1Ub2FzdENvbnRhaW5lclwiO1xyXG4gICAgSURzLlRvYXN0Q2FuY2VsID0gXCJvYmYtVG9hc3RDYW5jZWxcIjtcclxuICAgIElEcy5UUHJvbXB0Q29udGFpbmVyID0gXCJvYmYtVFByb21wdENvbnRhaW5lclwiO1xyXG4gICAgSURzLlRQcm9tcHRUaXRsZSA9IFwib2JmLVRQcm9tcHRUaXRsZVwiO1xyXG4gICAgSURzLlRQcm9tcHRUZXh0ID0gXCJvYmYtVFByb21wdFRleHRcIjtcclxuICAgIElEcy5URm9ybUNvbnRhaW5lciA9IFwib2JmLVRGb3JtQ29udGFpbmVyXCI7XHJcbiAgICBJRHMuVEZvcm1Db250YWluZXJMYWJlbCA9IFwib2JmLVRGb3JtQ29udGFpbmVyTGFiZWxcIjtcclxuICAgIElEcy5URm9ybVRpdGxlID0gXCJvYmYtVEZvcm1UaXRsZVwiO1xyXG4gICAgSURzLlRGb3JtUmF0aW5nID0gXCJvYmYtVEZvcm1SYXRpbmdcIjtcclxuICAgIElEcy5URm9ybVJhdGluZ1F1ZXN0aW9uID0gXCJvYmYtVEZvcm1SYXRpbmdRdWVzdGlvblwiO1xyXG4gICAgSURzLlRGb3JtQ29tbWVudFF1ZXN0aW9uID0gXCJvYmYtVEZvcm1Db21tZW50UXVlc3Rpb25cIjtcclxuICAgIElEcy5URm9ybUNvbW1lbnQgPSBcIm9iZi1URm9ybUNvbW1lbnRcIjtcclxuICAgIElEcy5URm9ybUVtYWlsVGV4dEJveCA9IFwib2JmLVRGb3JtRW1haWxUZXh0Qm94XCI7XHJcbiAgICBJRHMuVEZvcm1FbWFpbENoZWNrQm94ID0gXCJvYmYtVEZvcm1FbWFpbENoZWNrQm94XCI7XHJcbiAgICBJRHMuVEZvcm1FbWFpbExhYmVsID0gXCJvYmYtVEZvcm1FbWFpbExhYmVsXCI7XHJcbiAgICBJRHMuVEZvcm1TdWJtaXRCdXR0b24gPSBcIm9iZi1URm9ybVN1Ym1pdEJ1dHRvblwiO1xyXG4gICAgSURzLlRGb3JtQ2FuY2VsQnV0dG9uID0gXCJvYmYtVEZvcm1DYW5jZWxCdXR0b25cIjtcclxuICAgIElEcy5URm9ybVN1Ym1pdEJ1dHRvblNwaW5uZXIgPSBcIm9iZi1URm9ybVN1Ym1pdEJ1dHRvblNwaW5uZXJcIjtcclxuICAgIElEcy5URm9ybVN1Ym1pdEJ1dHRvbkNvbnRhaW5lciA9IFwib2JmLVRGb3JtU3VibWl0QnV0dG9uQ29udGFpbmVyXCI7XHJcbiAgICByZXR1cm4gSURzO1xyXG59KCkpO1xyXG5leHBvcnQgeyBJRHMgfTtcclxudmFyIEtleXMgPSAoZnVuY3Rpb24gKCkge1xyXG4gICAgZnVuY3Rpb24gS2V5cygpIHtcclxuICAgIH1cclxuICAgIEtleXMuRXNjID0gMjc7XHJcbiAgICBLZXlzLlRhYiA9IDk7XHJcbiAgICByZXR1cm4gS2V5cztcclxufSgpKTtcclxuZXhwb3J0IHsgS2V5cyB9O1xyXG52YXIgVGFncyA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBUYWdzKCkge1xyXG4gICAgfVxyXG4gICAgVGFncy5BbmNob3IgPSBcIkFcIjtcclxuICAgIFRhZ3MuQnV0dG9uID0gXCJidXR0b25cIjtcclxuICAgIFRhZ3MuRGVmcyA9IFwiZGVmc1wiO1xyXG4gICAgVGFncy5EaXYgPSBcImRpdlwiO1xyXG4gICAgVGFncy5GaWVsZFNldCA9IFwiZmllbGRzZXRcIjtcclxuICAgIFRhZ3MuRm9ybSA9IFwiZm9ybVwiO1xyXG4gICAgVGFncy5JbWcgPSBcImltZ1wiO1xyXG4gICAgVGFncy5JbnB1dCA9IFwiaW5wdXRcIjtcclxuICAgIFRhZ3MuTGFiZWwgPSBcImxhYmVsXCI7XHJcbiAgICBUYWdzLkxlZ2VuZCA9IFwibGVnZW5kXCI7XHJcbiAgICBUYWdzLk9wdGlvbiA9IFwib3B0aW9uXCI7XHJcbiAgICBUYWdzLlBvbHlnb24gPSBcInBvbHlnb25cIjtcclxuICAgIFRhZ3MuU2VsZWN0ID0gXCJzZWxlY3RcIjtcclxuICAgIFRhZ3MuU3BhbiA9IFwic3BhblwiO1xyXG4gICAgVGFncy5TdmcgPSBcInN2Z1wiO1xyXG4gICAgVGFncy5UZXh0QXJlYSA9IFwidGV4dGFyZWFcIjtcclxuICAgIFRhZ3MuVXNlID0gXCJ1c2VcIjtcclxuICAgIHJldHVybiBUYWdzO1xyXG59KCkpO1xyXG5leHBvcnQgeyBUYWdzIH07XHJcbnZhciBSb2xlcyA9IChmdW5jdGlvbiAoKSB7XHJcbiAgICBmdW5jdGlvbiBSb2xlcygpIHtcclxuICAgIH1cclxuICAgIFJvbGVzLkJ1dHRvbiA9IFwiQnV0dG9uXCI7XHJcbiAgICByZXR1cm4gUm9sZXM7XHJcbn0oKSk7XHJcbmV4cG9ydCB7IFJvbGVzIH07XHJcbnZhciBVcmxzID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFVybHMoKSB7XHJcbiAgICB9XHJcbiAgICBVcmxzLlByaXZhY3lTdGF0ZW1lbnRMaW5rID0gXCJodHRwczovL2dvLm1pY3Jvc29mdC5jb20vZndsaW5rLz9MaW5rSWQ9NTIxODM5XCI7XHJcbiAgICByZXR1cm4gVXJscztcclxufSgpKTtcclxuZXhwb3J0IHsgVXJscyB9O1xyXG52YXIgUHJvbXB0Q29uc3RhbnRzID0gKGZ1bmN0aW9uICgpIHtcclxuICAgIGZ1bmN0aW9uIFByb21wdENvbnN0YW50cygpIHtcclxuICAgIH1cclxuICAgIFByb21wdENvbnN0YW50cy5ObyA9IFwiMVwiO1xyXG4gICAgUHJvbXB0Q29uc3RhbnRzLlllcyA9IFwiMlwiO1xyXG4gICAgcmV0dXJuIFByb21wdENvbnN0YW50cztcclxufSgpKTtcclxuZXhwb3J0IHsgUHJvbXB0Q29uc3RhbnRzIH07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UI/UiConstants.ts\n"); /***/ }), /***/ "./scripts/app/UI/Utils.ts": /*!*********************************!*\ !*** ./scripts/app/UI/Utils.ts ***! \*********************************/ /*! exports provided: setElementVisibility, deleteElementById, addClassById, deleteClassById, replaceClassesById, setAttributeOnHtmlElement, addEventListenerHelper, removeEventListenerHelper, registerListener, registerListenerToElement, unregisterListener, getInternetExplorerVersion, isRightToLeft, getOrCreateDiv */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setElementVisibility\", function() { return setElementVisibility; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deleteElementById\", function() { return deleteElementById; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addClassById\", function() { return addClassById; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"deleteClassById\", function() { return deleteClassById; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"replaceClassesById\", function() { return replaceClassesById; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setAttributeOnHtmlElement\", function() { return setAttributeOnHtmlElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addEventListenerHelper\", function() { return addEventListenerHelper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeEventListenerHelper\", function() { return removeEventListenerHelper; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerListener\", function() { return registerListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"registerListenerToElement\", function() { return registerListenerToElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"unregisterListener\", function() { return unregisterListener; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getInternetExplorerVersion\", function() { return getInternetExplorerVersion; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isRightToLeft\", function() { return isRightToLeft; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getOrCreateDiv\", function() { return getOrCreateDiv; });\n/* harmony import */ var _UiConstants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UiConstants */ \"./scripts/app/UI/UiConstants.ts\");\nvar cov_13i50vt0d7=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Utils.ts\",hash=\"7ae9b988f848bc1ab8a44c6ee43b88b37933dd41\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Utils.ts\",statementMap:{\"0\":{start:{line:3,column:23},end:{line:3,column:61}},\"1\":{start:{line:4,column:23},end:{line:4,column:61}},\"2\":{start:{line:5,column:4},end:{line:5,column:55}},\"3\":{start:{line:8,column:18},end:{line:8,column:45}},\"4\":{start:{line:9,column:4},end:{line:11,column:5}},\"5\":{start:{line:10,column:8},end:{line:10,column:48}},\"6\":{start:{line:14,column:18},end:{line:14,column:45}},\"7\":{start:{line:15,column:4},end:{line:17,column:5}},\"8\":{start:{line:16,column:8},end:{line:16,column:15}},\"9\":{start:{line:18,column:4},end:{line:20,column:5}},\"10\":{start:{line:19,column:8},end:{line:19,column:63}},\"11\":{start:{line:23,column:18},end:{line:23,column:45}},\"12\":{start:{line:24,column:4},end:{line:26,column:5}},\"13\":{start:{line:25,column:8},end:{line:25,column:15}},\"14\":{start:{line:27,column:4},end:{line:27,column:101}},\"15\":{start:{line:28,column:4},end:{line:28,column:65}},\"16\":{start:{line:31,column:4},end:{line:31,column:38}},\"17\":{start:{line:32,column:4},end:{line:32,column:35}},\"18\":{start:{line:35,column:22},end:{line:35,column:49}},\"19\":{start:{line:36,column:4},end:{line:38,column:5}},\"20\":{start:{line:37,column:8},end:{line:37,column:56}},\"21\":{start:{line:41,column:4},end:{line:46,column:5}},\"22\":{start:{line:42,column:8},end:{line:42,column:55}},\"23\":{start:{line:44,column:9},end:{line:46,column:5}},\"24\":{start:{line:45,column:8},end:{line:45,column:50}},\"25\":{start:{line:49,column:4},end:{line:54,column:5}},\"26\":{start:{line:50,column:8},end:{line:50,column:58}},\"27\":{start:{line:52,column:9},end:{line:54,column:5}},\"28\":{start:{line:53,column:8},end:{line:53,column:50}},\"29\":{start:{line:57,column:18},end:{line:57,column:45}},\"30\":{start:{line:58,column:4},end:{line:60,column:5}},\"31\":{start:{line:59,column:8},end:{line:59,column:56}},\"32\":{start:{line:63,column:4},end:{line:65,column:5}},\"33\":{start:{line:64,column:8},end:{line:64,column:56}},\"34\":{start:{line:68,column:18},end:{line:68,column:45}},\"35\":{start:{line:69,column:4},end:{line:71,column:5}},\"36\":{start:{line:70,column:8},end:{line:70,column:59}},\"37\":{start:{line:74,column:13},end:{line:74,column:15}},\"38\":{start:{line:75,column:13},end:{line:75,column:39}},\"39\":{start:{line:76,column:4},end:{line:82,column:5}},\"40\":{start:{line:77,column:17},end:{line:77,column:61}},\"41\":{start:{line:78,column:8},end:{line:81,column:9}},\"42\":{start:{line:79,column:12},end:{line:79,column:39}},\"43\":{start:{line:80,column:12},end:{line:80,column:20}},\"44\":{start:{line:83,column:4},end:{line:83,column:14}},\"45\":{start:{line:86,column:4},end:{line:86,column:74}},\"46\":{start:{line:89,column:4},end:{line:89,column:57}},\"47\":{start:{line:89,column:35},end:{line:89,column:55}},\"48\":{start:{line:90,column:4},end:{line:90,column:69}},\"49\":{start:{line:90,column:41},end:{line:90,column:67}},\"50\":{start:{line:92,column:4},end:{line:94,column:5}},\"51\":{start:{line:93,column:8},end:{line:93,column:52}},\"52\":{start:{line:95,column:4},end:{line:106,column:5}},\"53\":{start:{line:96,column:8},end:{line:96,column:54}},\"54\":{start:{line:97,column:8},end:{line:97,column:30}},\"55\":{start:{line:98,column:8},end:{line:105,column:9}},\"56\":{start:{line:99,column:12},end:{line:104,column:13}},\"57\":{start:{line:100,column:16},end:{line:100,column:81}},\"58\":{start:{line:103,column:16},end:{line:103,column:54}},\"59\":{start:{line:107,column:4},end:{line:107,column:22}}},fnMap:{\"0\":{name:\"setElementVisibility\",decl:{start:{line:2,column:16},end:{line:2,column:36}},loc:{start:{line:2,column:46},end:{line:6,column:1}},line:2},\"1\":{name:\"deleteElementById\",decl:{start:{line:7,column:16},end:{line:7,column:33}},loc:{start:{line:7,column:38},end:{line:12,column:1}},line:7},\"2\":{name:\"addClassById\",decl:{start:{line:13,column:16},end:{line:13,column:28}},loc:{start:{line:13,column:43},end:{line:21,column:1}},line:13},\"3\":{name:\"deleteClassById\",decl:{start:{line:22,column:16},end:{line:22,column:31}},loc:{start:{line:22,column:46},end:{line:29,column:1}},line:22},\"4\":{name:\"replaceClassesById\",decl:{start:{line:30,column:16},end:{line:30,column:34}},loc:{start:{line:30,column:67},end:{line:33,column:1}},line:30},\"5\":{name:\"setAttributeOnHtmlElement\",decl:{start:{line:34,column:16},end:{line:34,column:41}},loc:{start:{line:34,column:69},end:{line:39,column:1}},line:34},\"6\":{name:\"addEventListenerHelper\",decl:{start:{line:40,column:16},end:{line:40,column:38}},loc:{start:{line:40,column:63},end:{line:47,column:1}},line:40},\"7\":{name:\"removeEventListenerHelper\",decl:{start:{line:48,column:16},end:{line:48,column:41}},loc:{start:{line:48,column:66},end:{line:55,column:1}},line:48},\"8\":{name:\"registerListener\",decl:{start:{line:56,column:16},end:{line:56,column:32}},loc:{start:{line:56,column:53},end:{line:61,column:1}},line:56},\"9\":{name:\"registerListenerToElement\",decl:{start:{line:62,column:16},end:{line:62,column:41}},loc:{start:{line:62,column:67},end:{line:66,column:1}},line:62},\"10\":{name:\"unregisterListener\",decl:{start:{line:67,column:16},end:{line:67,column:34}},loc:{start:{line:67,column:55},end:{line:72,column:1}},line:67},\"11\":{name:\"getInternetExplorerVersion\",decl:{start:{line:73,column:16},end:{line:73,column:42}},loc:{start:{line:73,column:45},end:{line:84,column:1}},line:73},\"12\":{name:\"isRightToLeft\",decl:{start:{line:85,column:16},end:{line:85,column:29}},loc:{start:{line:85,column:32},end:{line:87,column:1}},line:85},\"13\":{name:\"getOrCreateDiv\",decl:{start:{line:88,column:16},end:{line:88,column:30}},loc:{start:{line:88,column:72},end:{line:108,column:1}},line:88}},branchMap:{\"0\":{loc:{start:{line:3,column:23},end:{line:3,column:61}},type:\"cond-expr\",locations:[{start:{line:3,column:29},end:{line:3,column:43}},{start:{line:3,column:46},end:{line:3,column:61}}],line:3},\"1\":{loc:{start:{line:4,column:23},end:{line:4,column:61}},type:\"cond-expr\",locations:[{start:{line:4,column:29},end:{line:4,column:44}},{start:{line:4,column:47},end:{line:4,column:61}}],line:4},\"2\":{loc:{start:{line:9,column:4},end:{line:11,column:5}},type:\"if\",locations:[{start:{line:9,column:4},end:{line:11,column:5}},{start:{line:9,column:4},end:{line:11,column:5}}],line:9},\"3\":{loc:{start:{line:9,column:8},end:{line:9,column:53}},type:\"binary-expr\",locations:[{start:{line:9,column:8},end:{line:9,column:23}},{start:{line:9,column:27},end:{line:9,column:53}}],line:9},\"4\":{loc:{start:{line:15,column:4},end:{line:17,column:5}},type:\"if\",locations:[{start:{line:15,column:4},end:{line:17,column:5}},{start:{line:15,column:4},end:{line:17,column:5}}],line:15},\"5\":{loc:{start:{line:18,column:4},end:{line:20,column:5}},type:\"if\",locations:[{start:{line:18,column:4},end:{line:20,column:5}},{start:{line:18,column:4},end:{line:20,column:5}}],line:18},\"6\":{loc:{start:{line:24,column:4},end:{line:26,column:5}},type:\"if\",locations:[{start:{line:24,column:4},end:{line:26,column:5}},{start:{line:24,column:4},end:{line:26,column:5}}],line:24},\"7\":{loc:{start:{line:36,column:4},end:{line:38,column:5}},type:\"if\",locations:[{start:{line:36,column:4},end:{line:38,column:5}},{start:{line:36,column:4},end:{line:38,column:5}}],line:36},\"8\":{loc:{start:{line:41,column:4},end:{line:46,column:5}},type:\"if\",locations:[{start:{line:41,column:4},end:{line:46,column:5}},{start:{line:41,column:4},end:{line:46,column:5}}],line:41},\"9\":{loc:{start:{line:44,column:9},end:{line:46,column:5}},type:\"if\",locations:[{start:{line:44,column:9},end:{line:46,column:5}},{start:{line:44,column:9},end:{line:46,column:5}}],line:44},\"10\":{loc:{start:{line:49,column:4},end:{line:54,column:5}},type:\"if\",locations:[{start:{line:49,column:4},end:{line:54,column:5}},{start:{line:49,column:4},end:{line:54,column:5}}],line:49},\"11\":{loc:{start:{line:52,column:9},end:{line:54,column:5}},type:\"if\",locations:[{start:{line:52,column:9},end:{line:54,column:5}},{start:{line:52,column:9},end:{line:54,column:5}}],line:52},\"12\":{loc:{start:{line:58,column:4},end:{line:60,column:5}},type:\"if\",locations:[{start:{line:58,column:4},end:{line:60,column:5}},{start:{line:58,column:4},end:{line:60,column:5}}],line:58},\"13\":{loc:{start:{line:63,column:4},end:{line:65,column:5}},type:\"if\",locations:[{start:{line:63,column:4},end:{line:65,column:5}},{start:{line:63,column:4},end:{line:65,column:5}}],line:63},\"14\":{loc:{start:{line:69,column:4},end:{line:71,column:5}},type:\"if\",locations:[{start:{line:69,column:4},end:{line:71,column:5}},{start:{line:69,column:4},end:{line:71,column:5}}],line:69},\"15\":{loc:{start:{line:76,column:4},end:{line:82,column:5}},type:\"if\",locations:[{start:{line:76,column:4},end:{line:82,column:5}},{start:{line:76,column:4},end:{line:82,column:5}}],line:76},\"16\":{loc:{start:{line:78,column:8},end:{line:81,column:9}},type:\"if\",locations:[{start:{line:78,column:8},end:{line:81,column:9}},{start:{line:78,column:8},end:{line:81,column:9}}],line:78},\"17\":{loc:{start:{line:89,column:4},end:{line:89,column:57}},type:\"if\",locations:[{start:{line:89,column:4},end:{line:89,column:57}},{start:{line:89,column:4},end:{line:89,column:57}}],line:89},\"18\":{loc:{start:{line:90,column:4},end:{line:90,column:69}},type:\"if\",locations:[{start:{line:90,column:4},end:{line:90,column:69}},{start:{line:90,column:4},end:{line:90,column:69}}],line:90},\"19\":{loc:{start:{line:92,column:4},end:{line:94,column:5}},type:\"if\",locations:[{start:{line:92,column:4},end:{line:94,column:5}},{start:{line:92,column:4},end:{line:94,column:5}}],line:92},\"20\":{loc:{start:{line:95,column:4},end:{line:106,column:5}},type:\"if\",locations:[{start:{line:95,column:4},end:{line:106,column:5}},{start:{line:95,column:4},end:{line:106,column:5}}],line:95},\"21\":{loc:{start:{line:98,column:8},end:{line:105,column:9}},type:\"if\",locations:[{start:{line:98,column:8},end:{line:105,column:9}},{start:{line:98,column:8},end:{line:105,column:9}}],line:98},\"22\":{loc:{start:{line:99,column:12},end:{line:104,column:13}},type:\"if\",locations:[{start:{line:99,column:12},end:{line:104,column:13}},{start:{line:99,column:12},end:{line:104,column:13}}],line:99}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0],\"10\":[0,0],\"11\":[0,0],\"12\":[0,0],\"13\":[0,0],\"14\":[0,0],\"15\":[0,0],\"16\":[0,0],\"17\":[0,0],\"18\":[0,0],\"19\":[0,0],\"20\":[0,0],\"21\":[0,0],\"22\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Utils.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UI\\\\Utils.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/**\\r\\n * Utils.ts\\r\\n *\\r\\n * Module for utility functions\\r\\n */\\r\\n\\r\\nimport { Classes, Tags } from \\\"./UiConstants\\\";\\r\\n\\r\\n/**\\r\\n * Set HTML element visibility\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @param {any} vis The visibility to be set (true or false)\\r\\n * @return {void}\\r\\n */\\r\\nexport function setElementVisibility(id: string, vis: boolean): void {\\r\\n\\tconst oldClassName: string = vis ? Classes.Hidden : Classes.Visible;\\r\\n\\tconst newClassName: string = vis ? Classes.Visible : Classes.Hidden;\\r\\n\\r\\n\\treplaceClassesById(id, oldClassName, newClassName);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Delete HTML element by Id\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @return {void}\\r\\n */\\r\\nexport function deleteElementById(id: string): void {\\r\\n\\tconst element: HTMLElement = document.getElementById(id);\\r\\n\\tif (element != null && element.parentNode != null) {\\r\\n\\t\\telement.parentNode.removeChild(element);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Add a CSS class to an HTML element by Id\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @param {string} newClassName The name of CSS class to be added\\r\\n * @return {void}\\r\\n */\\r\\nexport function addClassById(id: string, newClass: string): void {\\r\\n\\tconst element: HTMLElement = document.getElementById(id);\\r\\n\\r\\n\\tif (!element) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\t// check is the class already exists, if not add it\\r\\n\\tif (!element.className.match(new RegExp(\\\"\\\\\\\\b\\\" + newClass + \\\"\\\\\\\\b\\\"))) {\\r\\n\\t\\t// we use className instead of classList to support IE9\\r\\n\\t\\telement.className = element.className + \\\" \\\" + newClass;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Delete a CSS class of an HTML element by Id\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @param {string} oldClassName The name of CSS class to be deleted\\r\\n * @return {void}\\r\\n */\\r\\nexport function deleteClassById(id: string, oldClass: string): void {\\r\\n\\tconst element: HTMLElement = document.getElementById(id);\\r\\n\\r\\n\\tif (!element) {\\r\\n\\t\\treturn;\\r\\n\\t}\\r\\n\\r\\n\\t// we use className instead of classList to support IE9\\r\\n\\t// get rid of any occurrences of the class we don\\\"t want\\r\\n\\telement.className = element.className.split(new RegExp(\\\"\\\\\\\\b\\\" + oldClass + \\\"\\\\\\\\b\\\", \\\"i\\\")).join(\\\" \\\");\\r\\n\\r\\n\\t// get rid of extra whitespaces\\r\\n\\telement.className = element.className.split(/\\\\s+/).join(\\\" \\\");\\r\\n}\\r\\n\\r\\n/**\\r\\n * Delete an CSS class and (or) add an CSS class to an HTML element by Id\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @param {string} oldClassName The name of CSS class to be deleted\\r\\n * @param {string} newClassName The name of CSS class to be added\\r\\n * @return {void}\\r\\n */\\r\\nexport function replaceClassesById(id: string, oldClassName?: string, newClassName?: string): void {\\r\\n\\tdeleteClassById(id, oldClassName);\\r\\n\\taddClassById(id, newClassName);\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set attribute on an HTML element\\r\\n * @param {string} id The Id of the HTML element\\r\\n * @param {string} attriName The attribute name\\r\\n * @param {string} attriValue The attribute value\\r\\n * @return {void}\\r\\n */\\r\\nexport function setAttributeOnHtmlElement(id: string, attriName: string, attriValue: string): void {\\r\\n\\tconst htmlElement: HTMLElement = document.getElementById(id);\\r\\n\\tif (htmlElement) {\\r\\n\\t\\thtmlElement.setAttribute(attriName, attriValue);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Add event listener helper function (wrapper) that deals with IE 8 compatability\\r\\n * @param object The object to add event listener to\\r\\n * @param type The event type\\r\\n * @param listener The listener function\\r\\n */\\r\\nexport function addEventListenerHelper(object: any, type: string, listener: (event: Event) => void): void {\\r\\n\\tif (object.addEventListener) {\\r\\n\\t\\tobject.addEventListener(type, listener, false);\\r\\n\\t} else if (object.attachEvent) {\\r\\n\\t\\tobject.attachEvent(\\\"on\\\" + type, listener);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Remove event listener helper function (wrapper) that deals with IE 8 compatability\\r\\n * @param object The object to remove event listener from\\r\\n * @param type The event type\\r\\n * @param listener The listener function\\r\\n */\\r\\nexport function removeEventListenerHelper(object: any, type: string, listener: (event: Event) => void): void {\\r\\n\\tif (object.removeEventListener) {\\r\\n\\t\\tobject.removeEventListener(type, listener, false);\\r\\n\\t} else if (object.detachEvent) {\\r\\n\\t\\tobject.detachEvent(\\\"on\\\" + type, listener);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Register event listener\\r\\n * @param id The Id of the HTML element\\r\\n * @param type The event type\\r\\n * @param listener The listener function\\r\\n */\\r\\nexport function registerListener(id: string, type: string, listener: (event: Event) => void): void {\\r\\n\\tconst element: HTMLElement = document.getElementById(id);\\r\\n\\tif (element) {\\r\\n\\t\\taddEventListenerHelper(element, type, listener);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Register event listener\\r\\n * @param element The HTML element\\r\\n * @param type The event type\\r\\n * @param listener The listener function\\r\\n */\\r\\nexport function registerListenerToElement(element: HTMLElement, type: string, listener: (event: Event) => void): void {\\r\\n\\tif (element) {\\r\\n\\t\\taddEventListenerHelper(element, type, listener);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Un-register event listener\\r\\n * @param id The Id of the HTML element\\r\\n * @param type The event type\\r\\n * @param listener The listener function\\r\\n */\\r\\nexport function unregisterListener(id: string, type: string, listener: (event: Event) => void): void {\\r\\n\\tconst element: HTMLElement = document.getElementById(id);\\r\\n\\tif (element) {\\r\\n\\t\\tremoveEventListenerHelper(element, type, listener);\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Returns the version of Internet Explorer or -1 for non-IE browser\\r\\n * @return {number} The IE version\\r\\n */\\r\\nexport function getInternetExplorerVersion(): number {\\r\\n\\tlet rv = -1;\\r\\n\\tconst ua = window.navigator.userAgent;\\r\\n\\r\\n\\t// since IE 11, 'MSIE' is not a keyword in its user agent string anymore\\r\\n\\t// determine whether the browser is IE or not, and the version of IE based on Trident keyword and its version\\r\\n\\tif (ua.indexOf(\\\"Trident\\\") > -1) {\\r\\n\\t\\tconst re = new RegExp(\\\"Trident/([0-9]{1,}[\\\\.0-9]{0,})\\\"); /* eslint-disable-line no-useless-escape */\\r\\n\\t\\tif (re.exec(ua) != null) {\\r\\n\\t\\t\\trv = parseFloat(RegExp.$1);\\r\\n\\t\\t\\trv += 4; // trident version + 4 is the IE version\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn rv;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Check if the current text direction is right to left\\r\\n */\\r\\nexport function isRightToLeft(): boolean {\\r\\n\\treturn getComputedStyle(document.documentElement).direction === \\\"rtl\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * Get the DIV by given ID. If the DIV does not exist, create one and append it to the body.\\r\\n * @param {string} divId The Id of the DIV\\r\\n * @param {boolean} appendToBody Whether to append the DIV to the body\\r\\n * @param {boolean} appendAsFirstChild Whether to append the DIV as the first child of the body, otherwise it appends as last child.\\r\\n * This parameter is only valid when appendToBody is true.\\r\\n * @return {HTMLElement} The Div HtmlELement\\r\\n */\\r\\nexport function getOrCreateDiv(divId: string, appendToBody = true, appendAsFirstChild = true): HTMLElement {\\r\\n\\tlet divElement;\\r\\n\\r\\n\\tif (divId) {\\r\\n\\t\\tdivElement = document.getElementById(divId);\\r\\n\\t}\\r\\n\\r\\n\\tif (!divElement) {\\r\\n\\t\\tdivElement = document.createElement(Tags.Div);\\r\\n\\t\\tdivElement.id = divId;\\r\\n\\t\\tif (appendToBody) {\\r\\n\\t\\t\\tif (appendAsFirstChild) {\\r\\n\\t\\t\\t\\tdocument.body.insertBefore(divElement, document.body.firstChild);\\r\\n\\t\\t\\t} else {\\r\\n\\t\\t\\t\\tdocument.body.appendChild(divElement);\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t}\\r\\n\\treturn divElement;\\r\\n}\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function setElementVisibility(id,vis){cov_13i50vt0d7.f[0]++;var oldClassName=(cov_13i50vt0d7.s[0]++,vis?(cov_13i50vt0d7.b[0][0]++,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Hidden):(cov_13i50vt0d7.b[0][1]++,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Visible));var newClassName=(cov_13i50vt0d7.s[1]++,vis?(cov_13i50vt0d7.b[1][0]++,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Visible):(cov_13i50vt0d7.b[1][1]++,_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Classes\"].Hidden));cov_13i50vt0d7.s[2]++;replaceClassesById(id,oldClassName,newClassName);}function deleteElementById(id){cov_13i50vt0d7.f[1]++;var element=(cov_13i50vt0d7.s[3]++,document.getElementById(id));cov_13i50vt0d7.s[4]++;if((cov_13i50vt0d7.b[3][0]++,element!=null)&&(cov_13i50vt0d7.b[3][1]++,element.parentNode!=null)){cov_13i50vt0d7.b[2][0]++;cov_13i50vt0d7.s[5]++;element.parentNode.removeChild(element);}else{cov_13i50vt0d7.b[2][1]++;}}function addClassById(id,newClass){cov_13i50vt0d7.f[2]++;var element=(cov_13i50vt0d7.s[6]++,document.getElementById(id));cov_13i50vt0d7.s[7]++;if(!element){cov_13i50vt0d7.b[4][0]++;cov_13i50vt0d7.s[8]++;return;}else{cov_13i50vt0d7.b[4][1]++;}cov_13i50vt0d7.s[9]++;if(!element.className.match(new RegExp(\"\\\\b\"+newClass+\"\\\\b\"))){cov_13i50vt0d7.b[5][0]++;cov_13i50vt0d7.s[10]++;element.className=element.className+\" \"+newClass;}else{cov_13i50vt0d7.b[5][1]++;}}function deleteClassById(id,oldClass){cov_13i50vt0d7.f[3]++;var element=(cov_13i50vt0d7.s[11]++,document.getElementById(id));cov_13i50vt0d7.s[12]++;if(!element){cov_13i50vt0d7.b[6][0]++;cov_13i50vt0d7.s[13]++;return;}else{cov_13i50vt0d7.b[6][1]++;}cov_13i50vt0d7.s[14]++;element.className=element.className.split(new RegExp(\"\\\\b\"+oldClass+\"\\\\b\",\"i\")).join(\" \");cov_13i50vt0d7.s[15]++;element.className=element.className.split(/\\s+/).join(\" \");}function replaceClassesById(id,oldClassName,newClassName){cov_13i50vt0d7.f[4]++;cov_13i50vt0d7.s[16]++;deleteClassById(id,oldClassName);cov_13i50vt0d7.s[17]++;addClassById(id,newClassName);}function setAttributeOnHtmlElement(id,attriName,attriValue){cov_13i50vt0d7.f[5]++;var htmlElement=(cov_13i50vt0d7.s[18]++,document.getElementById(id));cov_13i50vt0d7.s[19]++;if(htmlElement){cov_13i50vt0d7.b[7][0]++;cov_13i50vt0d7.s[20]++;htmlElement.setAttribute(attriName,attriValue);}else{cov_13i50vt0d7.b[7][1]++;}}function addEventListenerHelper(object,type,listener){cov_13i50vt0d7.f[6]++;cov_13i50vt0d7.s[21]++;if(object.addEventListener){cov_13i50vt0d7.b[8][0]++;cov_13i50vt0d7.s[22]++;object.addEventListener(type,listener,false);}else{cov_13i50vt0d7.b[8][1]++;cov_13i50vt0d7.s[23]++;if(object.attachEvent){cov_13i50vt0d7.b[9][0]++;cov_13i50vt0d7.s[24]++;object.attachEvent(\"on\"+type,listener);}else{cov_13i50vt0d7.b[9][1]++;}}}function removeEventListenerHelper(object,type,listener){cov_13i50vt0d7.f[7]++;cov_13i50vt0d7.s[25]++;if(object.removeEventListener){cov_13i50vt0d7.b[10][0]++;cov_13i50vt0d7.s[26]++;object.removeEventListener(type,listener,false);}else{cov_13i50vt0d7.b[10][1]++;cov_13i50vt0d7.s[27]++;if(object.detachEvent){cov_13i50vt0d7.b[11][0]++;cov_13i50vt0d7.s[28]++;object.detachEvent(\"on\"+type,listener);}else{cov_13i50vt0d7.b[11][1]++;}}}function registerListener(id,type,listener){cov_13i50vt0d7.f[8]++;var element=(cov_13i50vt0d7.s[29]++,document.getElementById(id));cov_13i50vt0d7.s[30]++;if(element){cov_13i50vt0d7.b[12][0]++;cov_13i50vt0d7.s[31]++;addEventListenerHelper(element,type,listener);}else{cov_13i50vt0d7.b[12][1]++;}}function registerListenerToElement(element,type,listener){cov_13i50vt0d7.f[9]++;cov_13i50vt0d7.s[32]++;if(element){cov_13i50vt0d7.b[13][0]++;cov_13i50vt0d7.s[33]++;addEventListenerHelper(element,type,listener);}else{cov_13i50vt0d7.b[13][1]++;}}function unregisterListener(id,type,listener){cov_13i50vt0d7.f[10]++;var element=(cov_13i50vt0d7.s[34]++,document.getElementById(id));cov_13i50vt0d7.s[35]++;if(element){cov_13i50vt0d7.b[14][0]++;cov_13i50vt0d7.s[36]++;removeEventListenerHelper(element,type,listener);}else{cov_13i50vt0d7.b[14][1]++;}}function getInternetExplorerVersion(){cov_13i50vt0d7.f[11]++;var rv=(cov_13i50vt0d7.s[37]++,-1);var ua=(cov_13i50vt0d7.s[38]++,window.navigator.userAgent);cov_13i50vt0d7.s[39]++;if(ua.indexOf(\"Trident\")>-1){cov_13i50vt0d7.b[15][0]++;var re=(cov_13i50vt0d7.s[40]++,new RegExp(\"Trident/([0-9]{1,}[\\.0-9]{0,})\"));cov_13i50vt0d7.s[41]++;if(re.exec(ua)!=null){cov_13i50vt0d7.b[16][0]++;cov_13i50vt0d7.s[42]++;rv=parseFloat(RegExp.$1);cov_13i50vt0d7.s[43]++;rv+=4;}else{cov_13i50vt0d7.b[16][1]++;}}else{cov_13i50vt0d7.b[15][1]++;}cov_13i50vt0d7.s[44]++;return rv;}function isRightToLeft(){cov_13i50vt0d7.f[12]++;cov_13i50vt0d7.s[45]++;return getComputedStyle(document.documentElement).direction===\"rtl\";}function getOrCreateDiv(divId,appendToBody,appendAsFirstChild){cov_13i50vt0d7.f[13]++;cov_13i50vt0d7.s[46]++;if(appendToBody===void 0){cov_13i50vt0d7.b[17][0]++;cov_13i50vt0d7.s[47]++;appendToBody=true;}else{cov_13i50vt0d7.b[17][1]++;}cov_13i50vt0d7.s[48]++;if(appendAsFirstChild===void 0){cov_13i50vt0d7.b[18][0]++;cov_13i50vt0d7.s[49]++;appendAsFirstChild=true;}else{cov_13i50vt0d7.b[18][1]++;}var divElement;cov_13i50vt0d7.s[50]++;if(divId){cov_13i50vt0d7.b[19][0]++;cov_13i50vt0d7.s[51]++;divElement=document.getElementById(divId);}else{cov_13i50vt0d7.b[19][1]++;}cov_13i50vt0d7.s[52]++;if(!divElement){cov_13i50vt0d7.b[20][0]++;cov_13i50vt0d7.s[53]++;divElement=document.createElement(_UiConstants__WEBPACK_IMPORTED_MODULE_0__[\"Tags\"].Div);cov_13i50vt0d7.s[54]++;divElement.id=divId;cov_13i50vt0d7.s[55]++;if(appendToBody){cov_13i50vt0d7.b[21][0]++;cov_13i50vt0d7.s[56]++;if(appendAsFirstChild){cov_13i50vt0d7.b[22][0]++;cov_13i50vt0d7.s[57]++;document.body.insertBefore(divElement,document.body.firstChild);}else{cov_13i50vt0d7.b[22][1]++;cov_13i50vt0d7.s[58]++;document.body.appendChild(divElement);}}else{cov_13i50vt0d7.b[21][1]++;}}else{cov_13i50vt0d7.b[20][1]++;}cov_13i50vt0d7.s[59]++;return divElement;}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSS9VdGlscy50cz9iYWY0Il0sIm5hbWVzIjpbInNldEVsZW1lbnRWaXNpYmlsaXR5IiwiaWQiLCJ2aXMiLCJvbGRDbGFzc05hbWUiLCJDbGFzc2VzIiwiSGlkZGVuIiwiVmlzaWJsZSIsIm5ld0NsYXNzTmFtZSIsInJlcGxhY2VDbGFzc2VzQnlJZCIsImRlbGV0ZUVsZW1lbnRCeUlkIiwiZWxlbWVudCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJhZGRDbGFzc0J5SWQiLCJuZXdDbGFzcyIsImNsYXNzTmFtZSIsIm1hdGNoIiwiUmVnRXhwIiwiZGVsZXRlQ2xhc3NCeUlkIiwib2xkQ2xhc3MiLCJzcGxpdCIsImpvaW4iLCJzZXRBdHRyaWJ1dGVPbkh0bWxFbGVtZW50IiwiYXR0cmlOYW1lIiwiYXR0cmlWYWx1ZSIsImh0bWxFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiYWRkRXZlbnRMaXN0ZW5lckhlbHBlciIsIm9iamVjdCIsInR5cGUiLCJsaXN0ZW5lciIsImFkZEV2ZW50TGlzdGVuZXIiLCJhdHRhY2hFdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXJIZWxwZXIiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiZGV0YWNoRXZlbnQiLCJyZWdpc3Rlckxpc3RlbmVyIiwicmVnaXN0ZXJMaXN0ZW5lclRvRWxlbWVudCIsInVucmVnaXN0ZXJMaXN0ZW5lciIsImdldEludGVybmV0RXhwbG9yZXJWZXJzaW9uIiwicnYiLCJ1YSIsIndpbmRvdyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImluZGV4T2YiLCJyZSIsImV4ZWMiLCJwYXJzZUZsb2F0IiwiJDEiLCJpc1JpZ2h0VG9MZWZ0IiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImRvY3VtZW50RWxlbWVudCIsImRpcmVjdGlvbiIsImdldE9yQ3JlYXRlRGl2IiwiZGl2SWQiLCJhcHBlbmRUb0JvZHkiLCJhcHBlbmRBc0ZpcnN0Q2hpbGQiLCJkaXZFbGVtZW50IiwiY3JlYXRlRWxlbWVudCIsIlRhZ3MiLCJEaXYiLCJib2R5IiwiaW5zZXJ0QmVmb3JlIiwiZmlyc3RDaGlsZCIsImFwcGVuZENoaWxkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O3U0c0JBQ08sUUFBU0EscUJBQVQsQ0FBOEJDLEVBQTlCLENBQWtDQyxHQUFsQyxDQUF1Qyx1QkFDMUMsR0FBSUMscUNBQWVELDhCQUFNRSxvREFBT0EsQ0FBQ0MsTUFBZCw0QkFBdUJELG9EQUFPQSxDQUFDRSxPQUEvQixDQUFmLENBQUosQ0FDQSxHQUFJQyxxQ0FBZUwsOEJBQU1FLG9EQUFPQSxDQUFDRSxPQUFkLDRCQUF3QkYsb0RBQU9BLENBQUNDLE1BQWhDLENBQWYsQ0FBSixDQUYwQyxzQkFHMUNHLG1CQUFtQlAsRUFBbkIsQ0FBdUJFLFlBQXZCLENBQXFDSSxZQUFyQyxFQUNILENBQ00sUUFBU0Usa0JBQVQsQ0FBMkJSLEVBQTNCLENBQStCLHVCQUNsQyxHQUFJUyxnQ0FBVUMsU0FBU0MsY0FBVCxDQUF3QlgsRUFBeEIsQ0FBVixDQUFKLENBRGtDLHNCQUVsQyxHQUFJLG1DQUFXLElBQVgsNkJBQW1CUyxRQUFRRyxVQUFSLEVBQXNCLElBQXpDLENBQUosQ0FBbUQsZ0RBQy9DSCxRQUFRRyxVQUFSLENBQW1CQyxXQUFuQixDQUErQkosT0FBL0IsRUFDSCxDQUZELCtCQUdILENBQ00sUUFBU0ssYUFBVCxDQUFzQmQsRUFBdEIsQ0FBMEJlLFFBQTFCLENBQW9DLHVCQUN2QyxHQUFJTixnQ0FBVUMsU0FBU0MsY0FBVCxDQUF3QlgsRUFBeEIsQ0FBVixDQUFKLENBRHVDLHNCQUV2QyxHQUFJLENBQUNTLE9BQUwsQ0FBYyxnREFDVixPQUNILENBRkQsK0JBRnVDLHNCQUt2QyxHQUFJLENBQUNBLFFBQVFPLFNBQVIsQ0FBa0JDLEtBQWxCLENBQXdCLEdBQUlDLE9BQUosQ0FBVyxNQUFRSCxRQUFSLENBQW1CLEtBQTlCLENBQXhCLENBQUwsQ0FBb0UsaURBQ2hFTixR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QixDQUFiLENBQ0gsQ0FGRCxnQ0FKb0UsdUJBT3BFLEdBQUksQ0FBQ0csVUFBTCxDQUFpQixrREFDYkEsV0FBYWpELFNBQVNrRCxhQUFULENBQXVCQyxpREFBSUEsQ0FBQ0MsR0FBNUIsQ0FBYixDQURhLHVCQUViSCxXQUFXM0QsRUFBWCxDQUFnQndELEtBQWhCLENBRmEsdUJBR2IsR0FBSUMsWUFBSixDQUFrQixrREFDZCxHQUFJQyxrQkFBSixDQUF3QixrREFDcEJoRCxTQUFTcUQsSUFBVCxDQUFjQyxZQUFkLENBQTJCTCxVQUEzQixDQUF1Q2pELFNBQVNxRCxJQUFULENBQWNFLFVBQXJELEVBQ0gsQ0FGRCxJQUdLLGtEQUNEdkQsU0FBU3FELElBQVQsQ0FBY0csV0FBZCxDQUEwQlAsVUFBMUIsRUFDSCxDQUNKLENBUEQsZ0NBUUgsQ0FYRCxnQ0FQb0UsdUJBbUJwRSxNQUFPQSxXQUFQLENBQ0giLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9VSS9VdGlscy50cy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXNzZXMsIFRhZ3MgfSBmcm9tIFwiLi9VaUNvbnN0YW50c1wiO1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0RWxlbWVudFZpc2liaWxpdHkoaWQsIHZpcykge1xyXG4gICAgdmFyIG9sZENsYXNzTmFtZSA9IHZpcyA/IENsYXNzZXMuSGlkZGVuIDogQ2xhc3Nlcy5WaXNpYmxlO1xyXG4gICAgdmFyIG5ld0NsYXNzTmFtZSA9IHZpcyA/IENsYXNzZXMuVmlzaWJsZSA6IENsYXNzZXMuSGlkZGVuO1xyXG4gICAgcmVwbGFjZUNsYXNzZXNCeUlkKGlkLCBvbGRDbGFzc05hbWUsIG5ld0NsYXNzTmFtZSk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGRlbGV0ZUVsZW1lbnRCeUlkKGlkKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcclxuICAgIGlmIChlbGVtZW50ICE9IG51bGwgJiYgZWxlbWVudC5wYXJlbnROb2RlICE9IG51bGwpIHtcclxuICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XHJcbiAgICB9XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENsYXNzQnlJZChpZCwgbmV3Q2xhc3MpIHtcclxuICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgaWYgKCFlbGVtZW50KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFlbGVtZW50LmNsYXNzTmFtZS5tYXRjaChuZXcgUmVnRXhwKFwiXFxcXGJcIiArIG5ld0NsYXNzICsgXCJcXFxcYlwiKSkpIHtcclxuICAgICAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lICsgXCIgXCIgKyBuZXdDbGFzcztcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlQ2xhc3NCeUlkKGlkLCBvbGRDbGFzcykge1xyXG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZiAoIWVsZW1lbnQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KG5ldyBSZWdFeHAoXCJcXFxcYlwiICsgb2xkQ2xhc3MgKyBcIlxcXFxiXCIsIFwiaVwiKSkuam9pbihcIiBcIik7XHJcbiAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnNwbGl0KC9cXHMrLykuam9pbihcIiBcIik7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VDbGFzc2VzQnlJZChpZCwgb2xkQ2xhc3NOYW1lLCBuZXdDbGFzc05hbWUpIHtcclxuICAgIGRlbGV0ZUNsYXNzQnlJZChpZCwgb2xkQ2xhc3NOYW1lKTtcclxuICAgIGFkZENsYXNzQnlJZChpZCwgbmV3Q2xhc3NOYW1lKTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gc2V0QXR0cmlidXRlT25IdG1sRWxlbWVudChpZCwgYXR0cmlOYW1lLCBhdHRyaVZhbHVlKSB7XHJcbiAgICB2YXIgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZiAoaHRtbEVsZW1lbnQpIHtcclxuICAgICAgICBodG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0cmlOYW1lLCBhdHRyaVZhbHVlKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gYWRkRXZlbnRMaXN0ZW5lckhlbHBlcihvYmplY3QsIHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgICBpZiAob2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIpIHtcclxuICAgICAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAob2JqZWN0LmF0dGFjaEV2ZW50KSB7XHJcbiAgICAgICAgb2JqZWN0LmF0dGFjaEV2ZW50KFwib25cIiArIHR5cGUsIGxpc3RlbmVyKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRXZlbnRMaXN0ZW5lckhlbHBlcihvYmplY3QsIHR5cGUsIGxpc3RlbmVyKSB7XHJcbiAgICBpZiAob2JqZWN0LnJlbW92ZUV2ZW50TGlzdGVuZXIpIHtcclxuICAgICAgICBvYmplY3QucmVtb3ZlRXZlbnRMaXN0ZW5lcih0eXBlLCBsaXN0ZW5lciwgZmFsc2UpO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAob2JqZWN0LmRldGFjaEV2ZW50KSB7XHJcbiAgICAgICAgb2JqZWN0LmRldGFjaEV2ZW50KFwib25cIiArIHR5cGUsIGxpc3RlbmVyKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJMaXN0ZW5lcihpZCwgdHlwZSwgbGlzdGVuZXIpIHtcclxuICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVySGVscGVyKGVsZW1lbnQsIHR5cGUsIGxpc3RlbmVyKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJMaXN0ZW5lclRvRWxlbWVudChlbGVtZW50LCB0eXBlLCBsaXN0ZW5lcikge1xyXG4gICAgaWYgKGVsZW1lbnQpIHtcclxuICAgICAgICBhZGRFdmVudExpc3RlbmVySGVscGVyKGVsZW1lbnQsIHR5cGUsIGxpc3RlbmVyKTtcclxuICAgIH1cclxufVxyXG5leHBvcnQgZnVuY3Rpb24gdW5yZWdpc3Rlckxpc3RlbmVyKGlkLCB0eXBlLCBsaXN0ZW5lcikge1xyXG4gICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgIHJlbW92ZUV2ZW50TGlzdGVuZXJIZWxwZXIoZWxlbWVudCwgdHlwZSwgbGlzdGVuZXIpO1xyXG4gICAgfVxyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm5ldEV4cGxvcmVyVmVyc2lvbigpIHtcclxuICAgIHZhciBydiA9IC0xO1xyXG4gICAgdmFyIHVhID0gd2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7XHJcbiAgICBpZiAodWEuaW5kZXhPZihcIlRyaWRlbnRcIikgPiAtMSkge1xyXG4gICAgICAgIHZhciByZSA9IG5ldyBSZWdFeHAoXCJUcmlkZW50LyhbMC05XXsxLH1bXFwuMC05XXswLH0pXCIpO1xyXG4gICAgICAgIGlmIChyZS5leGVjKHVhKSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJ2ID0gcGFyc2VGbG9hdChSZWdFeHAuJDEpO1xyXG4gICAgICAgICAgICBydiArPSA0O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBydjtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gaXNSaWdodFRvTGVmdCgpIHtcclxuICAgIHJldHVybiBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZGlyZWN0aW9uID09PSBcInJ0bFwiO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPckNyZWF0ZURpdihkaXZJZCwgYXBwZW5kVG9Cb2R5LCBhcHBlbmRBc0ZpcnN0Q2hpbGQpIHtcclxuICAgIGlmIChhcHBlbmRUb0JvZHkgPT09IHZvaWQgMCkgeyBhcHBlbmRUb0JvZHkgPSB0cnVlOyB9XHJcbiAgICBpZiAoYXBwZW5kQXNGaXJzdENoaWxkID09PSB2b2lkIDApIHsgYXBwZW5kQXNGaXJzdENoaWxkID0gdHJ1ZTsgfVxyXG4gICAgdmFyIGRpdkVsZW1lbnQ7XHJcbiAgICBpZiAoZGl2SWQpIHtcclxuICAgICAgICBkaXZFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZGl2SWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkaXZFbGVtZW50KSB7XHJcbiAgICAgICAgZGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoVGFncy5EaXYpO1xyXG4gICAgICAgIGRpdkVsZW1lbnQuaWQgPSBkaXZJZDtcclxuICAgICAgICBpZiAoYXBwZW5kVG9Cb2R5KSB7XHJcbiAgICAgICAgICAgIGlmIChhcHBlbmRBc0ZpcnN0Q2hpbGQpIHtcclxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuaW5zZXJ0QmVmb3JlKGRpdkVsZW1lbnQsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdkVsZW1lbnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRpdkVsZW1lbnQ7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/UI/Utils.ts\n"); /***/ }), /***/ "./scripts/app/UIStrings/UIStrings.ts": /*!********************************************!*\ !*** ./scripts/app/UIStrings/UIStrings.ts ***! \********************************************/ /*! exports provided: setUIStrings, getUIStrings */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setUIStrings\", function() { return setUIStrings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getUIStrings\", function() { return getUIStrings; });\nvar cov_dhkkifcst=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UIStrings\\\\UIStrings.ts\",hash=\"52c14c15789ca60e49117848c1468683b3129a83\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UIStrings\\\\UIStrings.ts\",statementMap:{\"0\":{start:{line:3,column:4},end:{line:3,column:21}},\"1\":{start:{line:6,column:4},end:{line:6,column:21}}},fnMap:{\"0\":{name:\"setUIStrings\",decl:{start:{line:2,column:16},end:{line:2,column:28}},loc:{start:{line:2,column:35},end:{line:4,column:1}},line:2},\"1\":{name:\"getUIStrings\",decl:{start:{line:5,column:16},end:{line:5,column:28}},loc:{start:{line:5,column:31},end:{line:7,column:1}},line:5}},branchMap:{},s:{\"0\":0,\"1\":0},f:{\"0\":0,\"1\":0},b:{},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UIStrings\\\\UIStrings.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\UIStrings\\\\UIStrings.ts\"],names:[],mappings:\"AAuGA,IAAI,SAAqB,CAAC;AAM1B,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC5C,SAAS,GAAG,IAAI,CAAC;AAClB,CAAC;AAMD,MAAM,UAAU,YAAY;IAC3B,OAAO,SAAS,CAAC;AAClB,CAAC\",sourcesContent:[\"/**\\r\\n * UIStrings.ts\\r\\n *\\r\\n * Module for the strings to display\\r\\n */\\r\\n\\r\\nexport interface IUIStrings {\\r\\n\\tFeedbackSubtitle: string;\\r\\n\\tPrivacyStatement: string;\\r\\n\\r\\n\\tForm: {\\r\\n\\t\\tCommentPlaceholder: string;\\r\\n\\t\\tCategoryPlaceholder: string;\\r\\n\\t\\tEmailPlaceholder: string;\\r\\n\\t\\tRatingLabel: string;\\r\\n\\t\\tScreenshotLabel: string;\\r\\n\\t\\tEmailCheckBoxLabel: string;\\r\\n\\t\\tSubmit: string;\\r\\n\\t\\tBasicFormTitle: string;\\r\\n\\t\\tCancel: string;\\r\\n\\t\\tScreenshotImgAltText: string;\\r\\n\\t\\tPrivacyLabel: string;\\r\\n\\t\\tPrivacyConsent: string;\\r\\n\\t};\\r\\n\\r\\n\\tSingleForm: {\\r\\n\\t\\tTitle: string;\\r\\n\\t};\\r\\n\\r\\n\\tSmileForm: {\\r\\n\\t\\tAnchor: string;\\r\\n\\t\\tTitle: string;\\r\\n\\t};\\r\\n\\r\\n\\tFrownForm: {\\r\\n\\t\\tAnchor: string;\\r\\n\\t\\tTitle: string;\\r\\n\\t};\\r\\n\\r\\n\\tIdeaForm: {\\r\\n\\t\\tAnchor: string;\\r\\n\\t\\tTitle: string;\\r\\n\\t};\\r\\n\\r\\n\\tBugForm: {\\r\\n\\t\\tAnchor: string;\\r\\n\\t\\tTitle: string;\\r\\n\\t};\\r\\n\\r\\n\\tThanksPanel: {\\r\\n\\t\\tTitle: string;\\r\\n\\t\\tAppreciateText: string;\\r\\n\\t\\tMyFeedbackDescription: string;\\r\\n\\t\\tMyFeedbackLinkText: string;\\r\\n\\t\\tFeedbackPortalDescription: string;\\r\\n\\t\\tFeedbackPortalLinkText: string;\\r\\n\\t\\tClose: string;\\r\\n\\t};\\r\\n\\r\\n\\tFloodgate: {\\r\\n\\t\\tForm: {\\r\\n\\t\\t\\tTitle: string;\\r\\n\\t\\t},\\r\\n\\t\\tNps: {\\r\\n\\t\\t\\tPrompt: {\\r\\n\\t\\t\\t\\tTitle: string;\\r\\n\\t\\t\\t\\tQuestion: string;\\r\\n\\t\\t\\t\\tYes: string;\\r\\n\\t\\t\\t\\tNo: string;\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\tComment: {\\r\\n\\t\\t\\t\\tQuestion: string;\\r\\n\\t\\t\\t};\\r\\n\\r\\n\\t\\t\\tRating: {\\r\\n\\t\\t\\t\\tQuestion: string;\\r\\n\\t\\t\\t\\tPoints11Value0: string;\\r\\n\\t\\t\\t\\tPoints11Value1: string;\\r\\n\\t\\t\\t\\tPoints11Value2: string;\\r\\n\\t\\t\\t\\tPoints11Value3: string;\\r\\n\\t\\t\\t\\tPoints11Value4: string;\\r\\n\\t\\t\\t\\tPoints11Value5: string;\\r\\n\\t\\t\\t\\tPoints11Value6: string;\\r\\n\\t\\t\\t\\tPoints11Value7: string;\\r\\n\\t\\t\\t\\tPoints11Value8: string;\\r\\n\\t\\t\\t\\tPoints11Value9: string;\\r\\n\\t\\t\\t\\tPoints11Value10: string;\\r\\n\\t\\t\\t\\tPoints5Value1: string;\\r\\n\\t\\t\\t\\tPoints5Value2: string;\\r\\n\\t\\t\\t\\tPoints5Value3: string;\\r\\n\\t\\t\\t\\tPoints5Value4: string;\\r\\n\\t\\t\\t\\tPoints5Value5: string;\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t};\\r\\n\\r\\n\\tCloseLabel: string;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Localized UI strings\\r\\n */\\r\\nlet uIStrings: IUIStrings;\\r\\n\\r\\n/**\\r\\n * Set UI strings\\r\\n * @param {string} data List of localized UI strings\\r\\n */\\r\\nexport function setUIStrings(data: IUIStrings) {\\r\\n\\tuIStrings = data;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Get UI strings\\r\\n * @returns the UIStrings\\r\\n */\\r\\nexport function getUIStrings(): IUIStrings {\\r\\n\\treturn uIStrings;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var uIStrings;function setUIStrings(data){cov_dhkkifcst.f[0]++;cov_dhkkifcst.s[0]++;uIStrings=data;}function getUIStrings(){cov_dhkkifcst.f[1]++;cov_dhkkifcst.s[1]++;return uIStrings;}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9VSVN0cmluZ3MvVUlTdHJpbmdzLnRzPzlkY2QiXSwibmFtZXMiOlsidUlTdHJpbmdzIiwic2V0VUlTdHJpbmdzIiwiZGF0YSIsImdldFVJU3RyaW5ncyJdLCJtYXBwaW5ncyI6Ijs7O2cxSEFBQSxHQUFJQSxVQUFKLENBQ08sUUFBU0MsYUFBVCxDQUFzQkMsSUFBdEIsQ0FBNEIsMkNBQy9CRixVQUFZRSxJQUFaLENBQ0gsQ0FDTSxRQUFTQyxhQUFULEVBQXdCLDJDQUMzQixNQUFPSCxVQUFQLENBQ0giLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9VSVN0cmluZ3MvVUlTdHJpbmdzLnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHVJU3RyaW5ncztcclxuZXhwb3J0IGZ1bmN0aW9uIHNldFVJU3RyaW5ncyhkYXRhKSB7XHJcbiAgICB1SVN0cmluZ3MgPSBkYXRhO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRVSVN0cmluZ3MoKSB7XHJcbiAgICByZXR1cm4gdUlTdHJpbmdzO1xyXG59XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/UIStrings/UIStrings.ts\n"); /***/ }), /***/ "./scripts/app/Utils.ts": /*!******************************!*\ !*** ./scripts/app/Utils.ts ***! \******************************/ /*! exports provided: guid, overrideValues, isNOU, isBoolean, isString, isInteger, expectObject, expectNumber, expectString, expectBoolean, expectGuid, expectArray, expectEnum, expectSimpleType, expectFunction, createTimeoutPromise, checkCssSelectorToBeSet, isTenantIdCommercial, ocpsBooleanToString, ocpsEnumToString, convertAutoDismissToTimeInMs */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"guid\", function() { return guid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"overrideValues\", function() { return overrideValues; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNOU\", function() { return isNOU; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isBoolean\", function() { return isBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isString\", function() { return isString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isInteger\", function() { return isInteger; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectObject\", function() { return expectObject; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectNumber\", function() { return expectNumber; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectString\", function() { return expectString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectBoolean\", function() { return expectBoolean; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectGuid\", function() { return expectGuid; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectArray\", function() { return expectArray; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectEnum\", function() { return expectEnum; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectSimpleType\", function() { return expectSimpleType; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"expectFunction\", function() { return expectFunction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createTimeoutPromise\", function() { return createTimeoutPromise; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"checkCssSelectorToBeSet\", function() { return checkCssSelectorToBeSet; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isTenantIdCommercial\", function() { return isTenantIdCommercial; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ocpsBooleanToString\", function() { return ocpsBooleanToString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ocpsEnumToString\", function() { return ocpsEnumToString; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"convertAutoDismissToTimeInMs\", function() { return convertAutoDismissToTimeInMs; });\n/* harmony import */ var _ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ms-ofb/officefloodgatecore */ \"../FloodgateCore/dist/index.js\");\n/* harmony import */ var _ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__);\nvar cov_2b954isrsv=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Utils.ts\",hash=\"106f658f7124ed5ebe90bc6f55221b1aab01c4d8\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Utils.ts\",statementMap:{\"0\":{start:{line:2,column:11},end:{line:2,column:21}},\"1\":{start:{line:2,column:40},end:{line:2,column:60}},\"2\":{start:{line:2,column:70},end:{line:2,column:81}},\"3\":{start:{line:2,column:95},end:{line:2,column:110}},\"4\":{start:{line:2,column:123},end:{line:2,column:137}},\"5\":{start:{line:2,column:150},end:{line:2,column:164}},\"6\":{start:{line:2,column:180},end:{line:2,column:197}},\"7\":{start:{line:5,column:4},end:{line:5,column:39}},\"8\":{start:{line:8,column:4},end:{line:10,column:36}},\"9\":{start:{line:13,column:4},end:{line:14,column:101}},\"10\":{start:{line:17,column:4},end:{line:19,column:5}},\"11\":{start:{line:18,column:8},end:{line:18,column:51}},\"12\":{start:{line:22,column:4},end:{line:24,column:5}},\"13\":{start:{line:23,column:8},end:{line:23,column:50}},\"14\":{start:{line:27,column:4},end:{line:29,column:5}},\"15\":{start:{line:28,column:8},end:{line:28,column:50}},\"16\":{start:{line:32,column:4},end:{line:34,column:5}},\"17\":{start:{line:33,column:8},end:{line:33,column:51}},\"18\":{start:{line:37,column:4},end:{line:39,column:5}},\"19\":{start:{line:38,column:8},end:{line:38,column:48}},\"20\":{start:{line:42,column:4},end:{line:44,column:5}},\"21\":{start:{line:43,column:8},end:{line:43,column:50}},\"22\":{start:{line:47,column:4},end:{line:49,column:5}},\"23\":{start:{line:48,column:8},end:{line:48,column:49}},\"24\":{start:{line:52,column:4},end:{line:54,column:5}},\"25\":{start:{line:53,column:8},end:{line:53,column:71}},\"26\":{start:{line:57,column:4},end:{line:59,column:5}},\"27\":{start:{line:58,column:8},end:{line:58,column:52}},\"28\":{start:{line:62,column:18},end:{line:67,column:6}},\"29\":{start:{line:63,column:17},end:{line:66,column:14}},\"30\":{start:{line:64,column:12},end:{line:64,column:29}},\"31\":{start:{line:65,column:12},end:{line:65,column:49}},\"32\":{start:{line:68,column:4},end:{line:68,column:44}},\"33\":{start:{line:71,column:4},end:{line:83,column:5}},\"34\":{start:{line:72,column:8},end:{line:80,column:9}},\"35\":{start:{line:73,column:36},end:{line:73,column:68}},\"36\":{start:{line:74,column:12},end:{line:79,column:13}},\"37\":{start:{line:75,column:34},end:{line:75,column:69}},\"38\":{start:{line:76,column:16},end:{line:78,column:17}},\"39\":{start:{line:77,column:20},end:{line:77,column:32}},\"40\":{start:{line:84,column:4},end:{line:84,column:17}},\"41\":{start:{line:87,column:4},end:{line:89,column:5}},\"42\":{start:{line:88,column:8},end:{line:88,column:21}},\"43\":{start:{line:90,column:24},end:{line:90,column:46}},\"44\":{start:{line:91,column:4},end:{line:95,column:5}},\"45\":{start:{line:94,column:8},end:{line:94,column:21}},\"46\":{start:{line:96,column:4},end:{line:96,column:16}},\"47\":{start:{line:99,column:4},end:{line:101,column:5}},\"48\":{start:{line:100,column:8},end:{line:100,column:32}},\"49\":{start:{line:102,column:4},end:{line:104,column:5}},\"50\":{start:{line:103,column:8},end:{line:103,column:25}},\"51\":{start:{line:105,column:4},end:{line:105,column:22}},\"52\":{start:{line:108,column:4},end:{line:110,column:5}},\"53\":{start:{line:109,column:8},end:{line:109,column:32}},\"54\":{start:{line:111,column:4},end:{line:118,column:5}},\"55\":{start:{line:113,column:12},end:{line:113,column:30}},\"56\":{start:{line:115,column:12},end:{line:115,column:29}},\"57\":{start:{line:117,column:12},end:{line:117,column:36}},\"58\":{start:{line:122,column:4},end:{line:150,column:5}},\"59\":{start:{line:124,column:12},end:{line:124,column:39}},\"60\":{start:{line:125,column:12},end:{line:125,column:18}},\"61\":{start:{line:127,column:12},end:{line:127,column:40}},\"62\":{start:{line:128,column:12},end:{line:128,column:18}},\"63\":{start:{line:130,column:12},end:{line:130,column:40}},\"64\":{start:{line:131,column:12},end:{line:131,column:18}},\"65\":{start:{line:133,column:12},end:{line:133,column:40}},\"66\":{start:{line:134,column:12},end:{line:134,column:18}},\"67\":{start:{line:136,column:12},end:{line:136,column:40}},\"68\":{start:{line:137,column:12},end:{line:137,column:18}},\"69\":{start:{line:139,column:12},end:{line:139,column:40}},\"70\":{start:{line:140,column:12},end:{line:140,column:18}},\"71\":{start:{line:142,column:12},end:{line:142,column:41}},\"72\":{start:{line:143,column:12},end:{line:143,column:18}},\"73\":{start:{line:145,column:12},end:{line:145,column:41}},\"74\":{start:{line:146,column:12},end:{line:146,column:18}},\"75\":{start:{line:148,column:12},end:{line:148,column:36}},\"76\":{start:{line:149,column:12},end:{line:149,column:18}},\"77\":{start:{line:151,column:4},end:{line:151,column:31}}},fnMap:{\"0\":{name:\"isNumber\",decl:{start:{line:4,column:9},end:{line:4,column:17}},loc:{start:{line:4,column:25},end:{line:6,column:1}},line:4},\"1\":{name:\"isInteger\",decl:{start:{line:7,column:16},end:{line:7,column:25}},loc:{start:{line:7,column:33},end:{line:11,column:1}},line:7},\"2\":{name:\"isGuid\",decl:{start:{line:12,column:9},end:{line:12,column:15}},loc:{start:{line:12,column:23},end:{line:15,column:1}},line:12},\"3\":{name:\"expectObject\",decl:{start:{line:16,column:16},end:{line:16,column:28}},loc:{start:{line:16,column:42},end:{line:20,column:1}},line:16},\"4\":{name:\"expectNumber\",decl:{start:{line:21,column:16},end:{line:21,column:28}},loc:{start:{line:21,column:42},end:{line:25,column:1}},line:21},\"5\":{name:\"expectString\",decl:{start:{line:26,column:16},end:{line:26,column:28}},loc:{start:{line:26,column:42},end:{line:30,column:1}},line:26},\"6\":{name:\"expectBoolean\",decl:{start:{line:31,column:16},end:{line:31,column:29}},loc:{start:{line:31,column:43},end:{line:35,column:1}},line:31},\"7\":{name:\"expectGuid\",decl:{start:{line:36,column:16},end:{line:36,column:26}},loc:{start:{line:36,column:40},end:{line:40,column:1}},line:36},\"8\":{name:\"expectArray\",decl:{start:{line:41,column:16},end:{line:41,column:27}},loc:{start:{line:41,column:41},end:{line:45,column:1}},line:41},\"9\":{name:\"expectEnum\",decl:{start:{line:46,column:16},end:{line:46,column:26}},loc:{start:{line:46,column:50},end:{line:50,column:1}},line:46},\"10\":{name:\"expectSimpleType\",decl:{start:{line:51,column:16},end:{line:51,column:32}},loc:{start:{line:51,column:46},end:{line:55,column:1}},line:51},\"11\":{name:\"expectFunction\",decl:{start:{line:56,column:16},end:{line:56,column:30}},loc:{start:{line:56,column:44},end:{line:60,column:1}},line:56},\"12\":{name:\"createTimeoutPromise\",decl:{start:{line:61,column:16},end:{line:61,column:36}},loc:{start:{line:61,column:50},end:{line:69,column:1}},line:61},\"13\":{name:\"(anonymous_13)\",decl:{start:{line:62,column:30},end:{line:62,column:31}},loc:{start:{line:62,column:57},end:{line:67,column:5}},line:62},\"14\":{name:\"(anonymous_14)\",decl:{start:{line:63,column:28},end:{line:63,column:29}},loc:{start:{line:63,column:40},end:{line:66,column:9}},line:63},\"15\":{name:\"checkCssSelectorToBeSet\",decl:{start:{line:70,column:16},end:{line:70,column:39}},loc:{start:{line:70,column:53},end:{line:85,column:1}},line:70},\"16\":{name:\"isTenantIdCommercial\",decl:{start:{line:86,column:16},end:{line:86,column:36}},loc:{start:{line:86,column:47},end:{line:97,column:1}},line:86},\"17\":{name:\"ocpsBooleanToString\",decl:{start:{line:98,column:16},end:{line:98,column:35}},loc:{start:{line:98,column:49},end:{line:106,column:1}},line:98},\"18\":{name:\"ocpsEnumToString\",decl:{start:{line:107,column:16},end:{line:107,column:32}},loc:{start:{line:107,column:46},end:{line:119,column:1}},line:107},\"19\":{name:\"convertAutoDismissToTimeInMs\",decl:{start:{line:120,column:16},end:{line:120,column:44}},loc:{start:{line:120,column:58},end:{line:152,column:1}},line:120}},branchMap:{\"0\":{loc:{start:{line:8,column:11},end:{line:10,column:35}},type:\"binary-expr\",locations:[{start:{line:8,column:11},end:{line:8,column:36}},{start:{line:9,column:8},end:{line:9,column:23}},{start:{line:10,column:8},end:{line:10,column:35}}],line:8},\"1\":{loc:{start:{line:13,column:12},end:{line:14,column:99}},type:\"binary-expr\",locations:[{start:{line:13,column:12},end:{line:13,column:27}},{start:{line:14,column:8},end:{line:14,column:99}}],line:13},\"2\":{loc:{start:{line:17,column:4},end:{line:19,column:5}},type:\"if\",locations:[{start:{line:17,column:4},end:{line:19,column:5}},{start:{line:17,column:4},end:{line:19,column:5}}],line:17},\"3\":{loc:{start:{line:22,column:4},end:{line:24,column:5}},type:\"if\",locations:[{start:{line:22,column:4},end:{line:24,column:5}},{start:{line:22,column:4},end:{line:24,column:5}}],line:22},\"4\":{loc:{start:{line:27,column:4},end:{line:29,column:5}},type:\"if\",locations:[{start:{line:27,column:4},end:{line:29,column:5}},{start:{line:27,column:4},end:{line:29,column:5}}],line:27},\"5\":{loc:{start:{line:32,column:4},end:{line:34,column:5}},type:\"if\",locations:[{start:{line:32,column:4},end:{line:34,column:5}},{start:{line:32,column:4},end:{line:34,column:5}}],line:32},\"6\":{loc:{start:{line:37,column:4},end:{line:39,column:5}},type:\"if\",locations:[{start:{line:37,column:4},end:{line:39,column:5}},{start:{line:37,column:4},end:{line:39,column:5}}],line:37},\"7\":{loc:{start:{line:42,column:4},end:{line:44,column:5}},type:\"if\",locations:[{start:{line:42,column:4},end:{line:44,column:5}},{start:{line:42,column:4},end:{line:44,column:5}}],line:42},\"8\":{loc:{start:{line:47,column:4},end:{line:49,column:5}},type:\"if\",locations:[{start:{line:47,column:4},end:{line:49,column:5}},{start:{line:47,column:4},end:{line:49,column:5}}],line:47},\"9\":{loc:{start:{line:47,column:8},end:{line:47,column:57}},type:\"binary-expr\",locations:[{start:{line:47,column:8},end:{line:47,column:24}},{start:{line:47,column:28},end:{line:47,column:57}}],line:47},\"10\":{loc:{start:{line:52,column:4},end:{line:54,column:5}},type:\"if\",locations:[{start:{line:52,column:4},end:{line:54,column:5}},{start:{line:52,column:4},end:{line:54,column:5}}],line:52},\"11\":{loc:{start:{line:52,column:8},end:{line:52,column:65}},type:\"binary-expr\",locations:[{start:{line:52,column:8},end:{line:52,column:24}},{start:{line:52,column:28},end:{line:52,column:44}},{start:{line:52,column:48},end:{line:52,column:65}}],line:52},\"12\":{loc:{start:{line:57,column:4},end:{line:59,column:5}},type:\"if\",locations:[{start:{line:57,column:4},end:{line:59,column:5}},{start:{line:57,column:4},end:{line:59,column:5}}],line:57},\"13\":{loc:{start:{line:57,column:8},end:{line:57,column:51}},type:\"binary-expr\",locations:[{start:{line:57,column:8},end:{line:57,column:20}},{start:{line:57,column:24},end:{line:57,column:51}}],line:57},\"14\":{loc:{start:{line:76,column:16},end:{line:78,column:17}},type:\"if\",locations:[{start:{line:76,column:16},end:{line:78,column:17}},{start:{line:76,column:16},end:{line:78,column:17}}],line:76},\"15\":{loc:{start:{line:76,column:20},end:{line:76,column:102}},type:\"binary-expr\",locations:[{start:{line:76,column:20},end:{line:76,column:52}},{start:{line:76,column:56},end:{line:76,column:102}}],line:76},\"16\":{loc:{start:{line:87,column:4},end:{line:89,column:5}},type:\"if\",locations:[{start:{line:87,column:4},end:{line:89,column:5}},{start:{line:87,column:4},end:{line:89,column:5}}],line:87},\"17\":{loc:{start:{line:87,column:8},end:{line:87,column:63}},type:\"binary-expr\",locations:[{start:{line:87,column:8},end:{line:87,column:23}},{start:{line:87,column:27},end:{line:87,column:42}},{start:{line:87,column:46},end:{line:87,column:63}}],line:87},\"18\":{loc:{start:{line:91,column:4},end:{line:95,column:5}},type:\"if\",locations:[{start:{line:91,column:4},end:{line:95,column:5}},{start:{line:91,column:4},end:{line:95,column:5}}],line:91},\"19\":{loc:{start:{line:91,column:8},end:{line:93,column:67}},type:\"binary-expr\",locations:[{start:{line:91,column:8},end:{line:91,column:64}},{start:{line:92,column:11},end:{line:92,column:67}},{start:{line:93,column:11},end:{line:93,column:67}}],line:91},\"20\":{loc:{start:{line:99,column:4},end:{line:101,column:5}},type:\"if\",locations:[{start:{line:99,column:4},end:{line:101,column:5}},{start:{line:99,column:4},end:{line:101,column:5}}],line:99},\"21\":{loc:{start:{line:102,column:4},end:{line:104,column:5}},type:\"if\",locations:[{start:{line:102,column:4},end:{line:104,column:5}},{start:{line:102,column:4},end:{line:104,column:5}}],line:102},\"22\":{loc:{start:{line:108,column:4},end:{line:110,column:5}},type:\"if\",locations:[{start:{line:108,column:4},end:{line:110,column:5}},{start:{line:108,column:4},end:{line:110,column:5}}],line:108},\"23\":{loc:{start:{line:111,column:4},end:{line:118,column:5}},type:\"switch\",locations:[{start:{line:112,column:8},end:{line:113,column:30}},{start:{line:114,column:8},end:{line:115,column:29}},{start:{line:116,column:8},end:{line:117,column:36}}],line:111},\"24\":{loc:{start:{line:122,column:4},end:{line:150,column:5}},type:\"switch\",locations:[{start:{line:123,column:8},end:{line:125,column:18}},{start:{line:126,column:8},end:{line:128,column:18}},{start:{line:129,column:8},end:{line:131,column:18}},{start:{line:132,column:8},end:{line:134,column:18}},{start:{line:135,column:8},end:{line:137,column:18}},{start:{line:138,column:8},end:{line:140,column:18}},{start:{line:141,column:8},end:{line:143,column:18}},{start:{line:144,column:8},end:{line:146,column:18}},{start:{line:147,column:8},end:{line:149,column:18}}],line:122}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0},b:{\"0\":[0,0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0],\"6\":[0,0],\"7\":[0,0],\"8\":[0,0],\"9\":[0,0],\"10\":[0,0],\"11\":[0,0,0],\"12\":[0,0],\"13\":[0,0],\"14\":[0,0],\"15\":[0,0],\"16\":[0,0],\"17\":[0,0,0],\"18\":[0,0],\"19\":[0,0,0],\"20\":[0,0],\"21\":[0,0],\"22\":[0,0],\"23\":[0,0,0],\"24\":[0,0,0,0,0,0,0,0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Utils.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Utils.ts\"],names:[],mappings:\"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\",sourcesContent:[\"/*\\r\\n * Utils.ts\\r\\n *\\r\\n * Module for utility functions\\r\\n */\\r\\n\\r\\nimport { Utils } from \\\"@ms-ofb/officefloodgatecore\\\";\\r\\nimport * as Constants from \\\"./Constants\\\";\\r\\nconst { guid, overrideValues, isNOU, isBoolean, isString, isObject, isEnumValue } = Utils;\\r\\nexport { guid, overrideValues, isNOU, isBoolean, isString }\\r\\n\\r\\n/**\\r\\n * Check if given value is a number\\r\\n * @param {any} value value\\r\\n */\\r\\nfunction isNumber(value: any): boolean {\\r\\n\\treturn (typeof value === \\\"number\\\");\\r\\n}\\r\\n\\r\\n/**\\r\\n * Check if given value is an integer\\r\\n * @param {any} value value\\r\\n */\\r\\nexport function isInteger(value: any): boolean {\\r\\n\\treturn typeof value === \\\"number\\\" &&\\r\\n\\t\\tisFinite(value) &&\\r\\n\\t\\tMath.floor(value) === value;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Check if value is a valid guid\\r\\n * @param {any} value value\\r\\n */\\r\\nfunction isGuid(value: any): boolean {\\r\\n\\treturn (isString(value) &&\\r\\n\\t\\t/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(value));\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not object\\r\\n */\\r\\nexport function expectObject(value: any, name: string): void {\\r\\n\\tif (!isObject(value)) {\\r\\n\\t\\tthrow name + \\\" is not an object: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not number\\r\\n */\\r\\nexport function expectNumber(value: any, name: string): void {\\r\\n\\tif (!isNumber(value)) {\\r\\n\\t\\tthrow name + \\\" is not a number: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not string\\r\\n */\\r\\nexport function expectString(value: any, name: string): void {\\r\\n\\tif (!isString(value)) {\\r\\n\\t\\tthrow name + \\\" is not a string: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not boolean\\r\\n */\\r\\nexport function expectBoolean(value: any, name: string): void {\\r\\n\\tif (!isBoolean(value)) {\\r\\n\\t\\tthrow name + \\\" is not a boolean: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not guid\\r\\n */\\r\\nexport function expectGuid(value: any, name: string): void {\\r\\n\\tif (!isGuid(value)) {\\r\\n\\t\\tthrow name + \\\" is not a guid: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not array\\r\\n */\\r\\nexport function expectArray(value: any, name: string): void {\\r\\n\\tif (!Array.isArray(value)) {\\r\\n\\t\\tthrow name + \\\" is not an array: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not valid enum\\r\\n * Note: this won't work with const enum\\r\\n */\\r\\nexport function expectEnum(value: any, enumType: any, name: string): void {\\r\\n\\tif (!isNumber(value) || !isEnumValue(value, enumType)) {\\r\\n\\t\\tthrow name + \\\" is not an enum: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Throw if not number or string or boolean\\r\\n */\\r\\nexport function expectSimpleType(value: any, name: string): void {\\r\\n\\tif (!isString(value) && !isNumber(value) && !isBoolean(value)) {\\r\\n\\t\\tthrow name + \\\" is not a string or number or boolean: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * throw if not a function\\r\\n */\\r\\nexport function expectFunction(value: any, name: string): void {\\r\\n\\tif (isNOU(value) && typeof value !== \\\"function\\\") {\\r\\n\\t\\tthrow name + \\\" is not a function: \\\" + value;\\r\\n\\t}\\r\\n}\\r\\n\\r\\n// Creates a promise that rejects in milliseconds and\\r\\n// returns the race between the created timeout promise and the passed in promise\\r\\nexport function createTimeoutPromise(ms: number, promise: Promise): Promise {\\r\\n\\t// Create a promise that rejects in milliseconds\\r\\n\\tconst timeout = new Promise((resolve, reject) => {\\r\\n\\t\\tconst id = setTimeout(() => {\\r\\n\\t\\t\\tclearTimeout(id);\\r\\n\\t\\t\\treject(\\\"Timed out in \\\" + ms + \\\"ms.\\\");\\r\\n\\t\\t}, ms);\\r\\n\\t});\\r\\n\\r\\n\\t// Returns a race between our timeout and the passed in promise\\r\\n\\treturn Promise.race([promise, timeout]) as Promise;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Checks to see if a passed CSS selector is set as a rule in one of the document's stylesheets.\\r\\n * \\r\\n * @param cssSelector : a Css selector string such as '#obf-TPromptTitle'\\r\\n */\\r\\nexport function checkCssSelectorToBeSet (cssSelector: string): boolean {\\r\\n\\r\\n\\ttry {\\r\\n\\t\\tfor (let sheetIndex = 0; sheetIndex < document.styleSheets.length; sheetIndex++) {\\r\\n\\t\\t\\tconst currentStyleSheet = document.styleSheets[sheetIndex];\\r\\n\\r\\n\\t\\t\\tfor (let rulesIndex = 0; rulesIndex < currentStyleSheet.rules.length; rulesIndex++) {\\r\\n\\t\\t\\t\\tconst currentRule = currentStyleSheet.rules[rulesIndex] as CSSStyleRule;\\r\\n\\r\\n\\t\\t\\t\\tif (!isNOU(currentRule.selectorText) && currentRule.selectorText.includes(cssSelector)) {\\r\\n\\t\\t\\t\\t\\treturn true;\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t}\\r\\n\\t\\t}\\r\\n\\t} catch (error) {\\r\\n\\t\\t/* eslint-disable-next-line no-empty */\\r\\n\\t}\\r\\n\\r\\n\\treturn false;\\r\\n}\\r\\n\\r\\nexport function isTenantIdCommercial (tenantId: string): boolean {\\r\\n\\r\\n\\t// if tenantId is not defined correctly -> consumer\\r\\n\\tif (isNOU(tenantId) || tenantId === \\\"\\\" || !isGuid(tenantId)) {\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\r\\n\\tconst lowerTenantId = tenantId.toLowerCase();\\r\\n\\r\\n\\t// if id is all zeros or one of the special consumer tenant ids -> consumer\\r\\n\\t// For further reference see how OCV treats these IDs: \\r\\n\\t// https://office.visualstudio.com/CLE/_git/OfficeCustomerVoice?path=%2FIngestion%2FIngestion.Floodgate%2FFloodgateDataExtractor.cs\\r\\n\\tif (lowerTenantId === \\\"00000000-0000-0000-0000-000000000000\\\"\\r\\n\\t\\t|| lowerTenantId === \\\"9188040d-6c67-4c5b-b112-36a304b66dad\\\"\\r\\n\\t\\t|| lowerTenantId === \\\"84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa\\\") {\\r\\n\\r\\n\\t\\treturn false;\\r\\n\\t}\\r\\n\\r\\n\\t// any other case -> commercial\\r\\n\\treturn true;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Convert the policy value from Office Control Policy Service (ocps) to string\\r\\n * @param policyValue \\r\\n * @returns string\\r\\n */\\r\\nexport function ocpsBooleanToString(policyValue?: boolean) {\\r\\n\\tif (policyValue === undefined) {\\r\\n\\t\\treturn \\\"Not Configured\\\";\\r\\n\\t}\\r\\n\\r\\n\\tif (policyValue) {\\r\\n\\t\\treturn \\\"Enabled\\\";\\r\\n\\t}\\r\\n\\r\\n\\treturn \\\"Disabled\\\";\\r\\n}\\r\\n\\r\\n/**\\r\\n * Convert the policy enum from Office Control Policy Service (ocps) to string\\r\\n * @param policyValue \\r\\n * @returns string\\r\\n */\\r\\nexport function ocpsEnumToString(policyValue?: Constants.OCPSValues) {\\r\\n\\tif (!policyValue) {\\r\\n\\t\\treturn \\\"Not Configured\\\";\\r\\n\\t}\\r\\n\\tswitch (policyValue) {\\r\\n\\t\\tcase Constants.OCPSValues.Disabled:\\r\\n\\t\\t\\treturn \\\"Disabled\\\";\\r\\n\\t\\tcase Constants.OCPSValues.Enabled:\\r\\n\\t\\t\\treturn \\\"Enabled\\\";\\r\\n\\t\\tdefault:\\r\\n\\t\\t\\treturn \\\"Not Configured\\\";\\r\\n\\t}\\r\\n}\\r\\n\\r\\n/**\\r\\n * Convert AutoDismiss enum to time in miliseconds\\r\\n * @return {number} time in miliseconds\\r\\n */\\r\\nexport function convertAutoDismissToTimeInMs(autoDismiss: Constants.AutoDismissValues): number {\\r\\n\\tlet autoDismissDuration: number;\\r\\n\\r\\n\\tswitch (autoDismiss) {\\r\\n\\t\\tcase (Constants.AutoDismissValues.SevenSeconds):\\r\\n\\t\\t\\tautoDismissDuration = 7000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.FourteenSeconds):\\r\\n\\t\\t\\tautoDismissDuration = 14000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.TwentyOneSeconds):\\r\\n\\t\\t\\tautoDismissDuration = 21000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.TwentyEightSeconds):\\r\\n\\t\\t\\tautoDismissDuration = 28000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.SixtySeconds):\\r\\n\\t\\t\\tautoDismissDuration = 60000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.NinetySeconds):\\r\\n\\t\\t\\tautoDismissDuration = 90000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.OneHundredAndTwentySeconds):\\r\\n\\t\\t\\tautoDismissDuration = 120000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tcase (Constants.AutoDismissValues.OneHundredAndFiftySeconds):\\r\\n\\t\\t\\tautoDismissDuration = 150000;\\r\\n\\t\\t\\tbreak;\\r\\n\\t\\tdefault:\\r\\n\\t\\t\\tautoDismissDuration = 0;\\r\\n\\t\\t\\tbreak;\\r\\n\\t}\\r\\n\\treturn autoDismissDuration;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var guid=(cov_2b954isrsv.s[0]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].guid),overrideValues=(cov_2b954isrsv.s[1]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].overrideValues),isNOU=(cov_2b954isrsv.s[2]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].isNOU),isBoolean=(cov_2b954isrsv.s[3]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].isBoolean),isString=(cov_2b954isrsv.s[4]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].isString),isObject=(cov_2b954isrsv.s[5]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].isObject),isEnumValue=(cov_2b954isrsv.s[6]++,_ms_ofb_officefloodgatecore__WEBPACK_IMPORTED_MODULE_0__[\"Utils\"].isEnumValue);function isNumber(value){cov_2b954isrsv.f[0]++;cov_2b954isrsv.s[7]++;return typeof value===\"number\";}function isInteger(value){cov_2b954isrsv.f[1]++;cov_2b954isrsv.s[8]++;return(cov_2b954isrsv.b[0][0]++,typeof value===\"number\")&&(cov_2b954isrsv.b[0][1]++,isFinite(value))&&(cov_2b954isrsv.b[0][2]++,Math.floor(value)===value);}function isGuid(value){cov_2b954isrsv.f[2]++;cov_2b954isrsv.s[9]++;return(cov_2b954isrsv.b[1][0]++,isString(value))&&(cov_2b954isrsv.b[1][1]++,/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/.test(value));}function expectObject(value,name){cov_2b954isrsv.f[3]++;cov_2b954isrsv.s[10]++;if(!isObject(value)){cov_2b954isrsv.b[2][0]++;cov_2b954isrsv.s[11]++;throw name+\" is not an object: \"+value;}else{cov_2b954isrsv.b[2][1]++;}}function expectNumber(value,name){cov_2b954isrsv.f[4]++;cov_2b954isrsv.s[12]++;if(!isNumber(value)){cov_2b954isrsv.b[3][0]++;cov_2b954isrsv.s[13]++;throw name+\" is not a number: \"+value;}else{cov_2b954isrsv.b[3][1]++;}}function expectString(value,name){cov_2b954isrsv.f[5]++;cov_2b954isrsv.s[14]++;if(!isString(value)){cov_2b954isrsv.b[4][0]++;cov_2b954isrsv.s[15]++;throw name+\" is not a string: \"+value;}else{cov_2b954isrsv.b[4][1]++;}}function expectBoolean(value,name){cov_2b954isrsv.f[6]++;cov_2b954isrsv.s[16]++;if(!isBoolean(value)){cov_2b954isrsv.b[5][0]++;cov_2b954isrsv.s[17]++;throw name+\" is not a boolean: \"+value;}else{cov_2b954isrsv.b[5][1]++;}}function expectGuid(value,name){cov_2b954isrsv.f[7]++;cov_2b954isrsv.s[18]++;if(!isGuid(value)){cov_2b954isrsv.b[6][0]++;cov_2b954isrsv.s[19]++;throw name+\" is not a guid: \"+value;}else{cov_2b954isrsv.b[6][1]++;}}function expectArray(value,name){cov_2b954isrsv.f[8]++;cov_2b954isrsv.s[20]++;if(!Array.isArray(value)){cov_2b954isrsv.b[7][0]++;cov_2b954isrsv.s[21]++;throw name+\" is not an array: \"+value;}else{cov_2b954isrsv.b[7][1]++;}}function expectEnum(value,enumType,name){cov_2b954isrsv.f[9]++;cov_2b954isrsv.s[22]++;if((cov_2b954isrsv.b[9][0]++,!isNumber(value))||(cov_2b954isrsv.b[9][1]++,!isEnumValue(value,enumType))){cov_2b954isrsv.b[8][0]++;cov_2b954isrsv.s[23]++;throw name+\" is not an enum: \"+value;}else{cov_2b954isrsv.b[8][1]++;}}function expectSimpleType(value,name){cov_2b954isrsv.f[10]++;cov_2b954isrsv.s[24]++;if((cov_2b954isrsv.b[11][0]++,!isString(value))&&(cov_2b954isrsv.b[11][1]++,!isNumber(value))&&(cov_2b954isrsv.b[11][2]++,!isBoolean(value))){cov_2b954isrsv.b[10][0]++;cov_2b954isrsv.s[25]++;throw name+\" is not a string or number or boolean: \"+value;}else{cov_2b954isrsv.b[10][1]++;}}function expectFunction(value,name){cov_2b954isrsv.f[11]++;cov_2b954isrsv.s[26]++;if((cov_2b954isrsv.b[13][0]++,isNOU(value))&&(cov_2b954isrsv.b[13][1]++,typeof value!==\"function\")){cov_2b954isrsv.b[12][0]++;cov_2b954isrsv.s[27]++;throw name+\" is not a function: \"+value;}else{cov_2b954isrsv.b[12][1]++;}}function createTimeoutPromise(ms,promise){cov_2b954isrsv.f[12]++;var timeout=(cov_2b954isrsv.s[28]++,new Promise(function(resolve,reject){cov_2b954isrsv.f[13]++;var id=(cov_2b954isrsv.s[29]++,setTimeout(function(){cov_2b954isrsv.f[14]++;cov_2b954isrsv.s[30]++;clearTimeout(id);cov_2b954isrsv.s[31]++;reject(\"Timed out in \"+ms+\"ms.\");},ms));}));cov_2b954isrsv.s[32]++;return Promise.race([promise,timeout]);}function checkCssSelectorToBeSet(cssSelector){cov_2b954isrsv.f[15]++;cov_2b954isrsv.s[33]++;try{cov_2b954isrsv.s[34]++;for(var sheetIndex=0;sheetIndex {\\r\\n\\treturn new Promise((resolve, reject) => {\\r\\n\\t\\tconst script: any = document.createElement(\\\"script\\\");\\r\\n\\t\\tscript.async = true;\\r\\n\\r\\n\\t\\tif (script.readyState) { // IE\\r\\n\\t\\t\\tscript.onreadystatechange = function() {\\r\\n\\t\\t\\t\\tif (script.readyState === \\\"loaded\\\" || script.readyState === \\\"complete\\\") {\\r\\n\\t\\t\\t\\t\\tscript.onreadystatechange = null;\\r\\n\\t\\t\\t\\t\\tresolve();\\r\\n\\t\\t\\t\\t}\\r\\n\\t\\t\\t};\\r\\n\\t\\t} else { // Others\\r\\n\\t\\t\\tscript.onload = function() {\\r\\n\\t\\t\\t\\tresolve();\\r\\n\\t\\t\\t};\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tscript.onerror = function() {\\r\\n\\t\\t\\treject();\\r\\n\\t\\t};\\r\\n\\r\\n\\t\\tscript.src = domUtilsTrustedTypePolicy?.createScriptURL(url) ?? url;\\r\\n\\r\\n\\t\\t// don't add if origin is not available or when containing \\\"null\\\". This is to mitigate possible\\r\\n\\t\\t// unexpected behavior with Chrome when a page hosting this SDK is being tested as a local file.\\r\\n\\t\\t// The behavior depends on Chrome.exe's --allow-file-access-from-files setting.\\r\\n\\t\\tif (pageOrigin && pageOrigin !== \\\"null\\\") {\\r\\n\\t\\t\\tscript.crossOrigin = \\\"anonymous\\\";\\r\\n\\t\\t}\\r\\n\\r\\n\\t\\tconst entry: HTMLScriptElement = document.getElementsByTagName(\\\"script\\\")[0];\\r\\n\\t\\tentry.parentNode.insertBefore(script, entry);\\r\\n\\t});\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function loadStylesheet(url){cov_1um791um16.f[0]++;var _a;var link=(cov_1um791um16.s[0]++,document.createElement(\"link\"));cov_1um791um16.s[1]++;link.rel=\"stylesheet\";cov_1um791um16.s[2]++;link.type=\"text/css\";cov_1um791um16.s[3]++;link.href=(cov_1um791um16.b[1][0]++,(_a=(cov_1um791um16.b[3][0]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"]===null)||(cov_1um791um16.b[3][1]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"]===void 0)?(cov_1um791um16.b[2][0]++,void 0):(cov_1um791um16.b[2][1]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"].createScriptURL(url).toString()))!==null)&&(cov_1um791um16.b[1][1]++,_a!==void 0)?(cov_1um791um16.b[0][0]++,_a):(cov_1um791um16.b[0][1]++,url);var entry=(cov_1um791um16.s[4]++,document.getElementsByTagName(\"script\")[0]);cov_1um791um16.s[5]++;entry.parentNode.insertBefore(link,entry);}function loadScript(url,pageOrigin){cov_1um791um16.f[1]++;cov_1um791um16.s[6]++;if(pageOrigin===void 0){cov_1um791um16.b[4][0]++;cov_1um791um16.s[7]++;pageOrigin=window.origin;}else{cov_1um791um16.b[4][1]++;}cov_1um791um16.s[8]++;return new Promise(function(resolve,reject){cov_1um791um16.f[2]++;var _a;var script=(cov_1um791um16.s[9]++,document.createElement(\"script\"));cov_1um791um16.s[10]++;script.async=true;cov_1um791um16.s[11]++;if(script.readyState){cov_1um791um16.b[5][0]++;cov_1um791um16.s[12]++;script.onreadystatechange=function(){cov_1um791um16.f[3]++;cov_1um791um16.s[13]++;if((cov_1um791um16.b[7][0]++,script.readyState===\"loaded\")||(cov_1um791um16.b[7][1]++,script.readyState===\"complete\")){cov_1um791um16.b[6][0]++;cov_1um791um16.s[14]++;script.onreadystatechange=null;cov_1um791um16.s[15]++;resolve();}else{cov_1um791um16.b[6][1]++;}};}else{cov_1um791um16.b[5][1]++;cov_1um791um16.s[16]++;script.onload=function(){cov_1um791um16.f[4]++;cov_1um791um16.s[17]++;resolve();};}cov_1um791um16.s[18]++;script.onerror=function(){cov_1um791um16.f[5]++;cov_1um791um16.s[19]++;reject();};cov_1um791um16.s[20]++;script.src=(cov_1um791um16.b[9][0]++,(_a=(cov_1um791um16.b[11][0]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"]===null)||(cov_1um791um16.b[11][1]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"]===void 0)?(cov_1um791um16.b[10][0]++,void 0):(cov_1um791um16.b[10][1]++,_TrustedTypesPolicyUtils__WEBPACK_IMPORTED_MODULE_0__[\"domUtilsTrustedTypePolicy\"].createScriptURL(url)))!==null)&&(cov_1um791um16.b[9][1]++,_a!==void 0)?(cov_1um791um16.b[8][0]++,_a):(cov_1um791um16.b[8][1]++,url);cov_1um791um16.s[21]++;if((cov_1um791um16.b[13][0]++,pageOrigin)&&(cov_1um791um16.b[13][1]++,pageOrigin!==\"null\")){cov_1um791um16.b[12][0]++;cov_1um791um16.s[22]++;script.crossOrigin=\"anonymous\";}else{cov_1um791um16.b[12][1]++;}var entry=(cov_1um791um16.s[23]++,document.getElementsByTagName(\"script\")[0]);cov_1um791um16.s[24]++;entry.parentNode.insertBefore(script,entry);});}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9XaW5kb3cvRG9tVXRpbHMudHM/ZWViMCJdLCJuYW1lcyI6WyJsb2FkU3R5bGVzaGVldCIsInVybCIsIl9hIiwibGluayIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInJlbCIsInR5cGUiLCJocmVmIiwiZG9tVXRpbHNUcnVzdGVkVHlwZVBvbGljeSIsImNyZWF0ZVNjcmlwdFVSTCIsInRvU3RyaW5nIiwiZW50cnkiLCJnZXRFbGVtZW50c0J5VGFnTmFtZSIsInBhcmVudE5vZGUiLCJpbnNlcnRCZWZvcmUiLCJsb2FkU2NyaXB0IiwicGFnZU9yaWdpbiIsIndpbmRvdyIsIm9yaWdpbiIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0Iiwic2NyaXB0IiwiYXN5bmMiLCJyZWFkeVN0YXRlIiwib25yZWFkeXN0YXRlY2hhbmdlIiwib25sb2FkIiwib25lcnJvciIsInNyYyIsImNyb3NzT3JpZ2luIl0sIm1hcHBpbmdzIjoiOzs7O21rVEFDTyxRQUFTQSxlQUFULENBQXdCQyxHQUF4QixDQUE2Qix1QkFDaEMsR0FBSUMsR0FBSixDQUNBLEdBQUlDLDZCQUFPQyxTQUFTQyxhQUFULENBQXVCLE1BQXZCLENBQVAsQ0FBSixDQUZnQyxzQkFHaENGLEtBQUtHLEdBQUwsQ0FBVyxZQUFYLENBSGdDLHNCQUloQ0gsS0FBS0ksSUFBTCxDQUFZLFVBQVosQ0FKZ0Msc0JBS2hDSixLQUFLSyxJQUFMLENBQVksMkJBQUNOLEdBQUssNEdBQXlCLEdBQUssSUFBOUIsNkJBQXNDTyxrRkFBeUJBLEdBQUssSUFBSyxFQUF6RSw0QkFBNkUsSUFBSyxFQUFsRiw0QkFBc0ZBLGtGQUF5QkEsQ0FBQ0MsZUFBMUIsQ0FBMENULEdBQTFDLEVBQStDVSxRQUEvQyxFQUF0RixDQUFOLElBQTJKLElBQTNKLDZCQUFtS1QsS0FBTyxJQUFLLEVBQS9LLDRCQUFtTEEsRUFBbkwsNEJBQXdMRCxHQUF4TCxDQUFaLENBQ0EsR0FBSVcsOEJBQVFSLFNBQVNTLG9CQUFULENBQThCLFFBQTlCLEVBQXdDLENBQXhDLENBQVIsQ0FBSixDQU5nQyxzQkFPaENELE1BQU1FLFVBQU4sQ0FBaUJDLFlBQWpCLENBQThCWixJQUE5QixDQUFvQ1MsS0FBcEMsRUFDSCxDQUNNLFFBQVNJLFdBQVQsQ0FBb0JmLEdBQXBCLENBQXlCZ0IsVUFBekIsQ0FBcUMsNkNBQ3hDLEdBQUlBLGFBQWUsSUFBSyxFQUF4QixDQUEyQixnREFBRUEsV0FBYUMsT0FBT0MsTUFBcEIsQ0FBNkIsQ0FBMUQsK0JBRHdDLHNCQUV4QyxNQUFPLElBQUlDLFFBQUosQ0FBWSxTQUFVQyxPQUFWLENBQW1CQyxNQUFuQixDQUEyQix1QkFDMUMsR0FBSXBCLEdBQUosQ0FDQSxHQUFJcUIsK0JBQVNuQixTQUFTQyxhQUFULENBQXVCLFFBQXZCLENBQVQsQ0FBSixDQUYwQyx1QkFHMUNrQixPQUFPQyxLQUFQLENBQWUsSUFBZixDQUgwQyx1QkFJMUMsR0FBSUQsT0FBT0UsVUFBWCxDQUF1QixpREFDbkJGLE9BQU9HLGtCQUFQLENBQTRCLFVBQVksOENBQ3BDLEdBQUksaUNBQU9ELFVBQVAsR0FBc0IsUUFBdEIsNkJBQWtDRixPQUFPRSxVQUFQLEdBQXNCLFVBQXhELENBQUosQ0FBd0UsaURBQ3BFRixPQUFPRyxrQkFBUCxDQUE0QixJQUE1QixDQURvRSx1QkFFcEVMLFVBQ0gsQ0FIRCwrQkFJSCxDQUxELENBTUgsQ0FQRCxJQVFLLGlEQUNERSxPQUFPSSxNQUFQLENBQWdCLFVBQVksOENBQ3hCTixVQUNILENBRkQsQ0FHSCxDQWhCeUMsdUJBaUIxQ0UsT0FBT0ssT0FBUCxDQUFpQixVQUFZLDhDQUN6Qk4sU0FDSCxDQUZELENBakIwQyx1QkFvQjFDQyxPQUFPTSxHQUFQLENBQWEsMkJBQUMzQixHQUFLLDZHQUF5QixHQUFLLElBQTlCLDhCQUFzQ08sa0ZBQXlCQSxHQUFLLElBQUssRUFBekUsNkJBQTZFLElBQUssRUFBbEYsNkJBQXNGQSxrRkFBeUJBLENBQUNDLGVBQTFCLENBQTBDVCxHQUExQyxDQUF0RixDQUFOLElBQWdKLElBQWhKLDZCQUF3SkMsS0FBTyxJQUFLLEVBQXBLLDRCQUF3S0EsRUFBeEssNEJBQTZLRCxHQUE3SyxDQUFiLENBcEIwQyx1QkFxQjFDLEdBQUksbUVBQWNnQixhQUFlLE1BQTdCLENBQUosQ0FBeUMsa0RBQ3JDTSxPQUFPTyxXQUFQLENBQXFCLFdBQXJCLENBQ0gsQ0FGRCxnQ0FHQSxHQUFJbEIsK0JBQVFSLFNBQVNTLG9CQUFULENBQThCLFFBQTlCLEVBQXdDLENBQXhDLENBQVIsQ0FBSixDQXhCMEMsdUJBeUIxQ0QsTUFBTUUsVUFBTixDQUFpQkMsWUFBakIsQ0FBOEJRLE1BQTlCLENBQXNDWCxLQUF0QyxFQUNILENBMUJNLENBQVAsQ0EyQkgiLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9XaW5kb3cvRG9tVXRpbHMudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkb21VdGlsc1RydXN0ZWRUeXBlUG9saWN5IH0gZnJvbSAnLi9UcnVzdGVkVHlwZXNQb2xpY3lVdGlscyc7XHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkU3R5bGVzaGVldCh1cmwpIHtcclxuICAgIHZhciBfYTtcclxuICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImxpbmtcIik7XHJcbiAgICBsaW5rLnJlbCA9IFwic3R5bGVzaGVldFwiO1xyXG4gICAgbGluay50eXBlID0gXCJ0ZXh0L2Nzc1wiO1xyXG4gICAgbGluay5ocmVmID0gKF9hID0gZG9tVXRpbHNUcnVzdGVkVHlwZVBvbGljeSA9PT0gbnVsbCB8fCBkb21VdGlsc1RydXN0ZWRUeXBlUG9saWN5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkb21VdGlsc1RydXN0ZWRUeXBlUG9saWN5LmNyZWF0ZVNjcmlwdFVSTCh1cmwpLnRvU3RyaW5nKCkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHVybDtcclxuICAgIHZhciBlbnRyeSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdO1xyXG4gICAgZW50cnkucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUobGluaywgZW50cnkpO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBsb2FkU2NyaXB0KHVybCwgcGFnZU9yaWdpbikge1xyXG4gICAgaWYgKHBhZ2VPcmlnaW4gPT09IHZvaWQgMCkgeyBwYWdlT3JpZ2luID0gd2luZG93Lm9yaWdpbjsgfVxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICB2YXIgX2E7XHJcbiAgICAgICAgdmFyIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzY3JpcHRcIik7XHJcbiAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcclxuICAgICAgICBpZiAoc2NyaXB0LnJlYWR5U3RhdGUpIHtcclxuICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIGlmIChzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJsb2FkZWRcIiB8fCBzY3JpcHQucmVhZHlTdGF0ZSA9PT0gXCJjb21wbGV0ZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHJlamVjdCgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgc2NyaXB0LnNyYyA9IChfYSA9IGRvbVV0aWxzVHJ1c3RlZFR5cGVQb2xpY3kgPT09IG51bGwgfHwgZG9tVXRpbHNUcnVzdGVkVHlwZVBvbGljeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZG9tVXRpbHNUcnVzdGVkVHlwZVBvbGljeS5jcmVhdGVTY3JpcHRVUkwodXJsKSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogdXJsO1xyXG4gICAgICAgIGlmIChwYWdlT3JpZ2luICYmIHBhZ2VPcmlnaW4gIT09IFwibnVsbFwiKSB7XHJcbiAgICAgICAgICAgIHNjcmlwdC5jcm9zc09yaWdpbiA9IFwiYW5vbnltb3VzXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBlbnRyeSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpWzBdO1xyXG4gICAgICAgIGVudHJ5LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHNjcmlwdCwgZW50cnkpO1xyXG4gICAgfSk7XHJcbn1cclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./scripts/app/Window/DomUtils.ts\n"); /***/ }), /***/ "./scripts/app/Window/TrustedTypesPolicyUtils.ts": /*!*******************************************************!*\ !*** ./scripts/app/Window/TrustedTypesPolicyUtils.ts ***! \*******************************************************/ /*! exports provided: domUtilsTrustedTypePolicy */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"domUtilsTrustedTypePolicy\", function() { return domUtilsTrustedTypePolicy; });\n/* harmony import */ var _Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../Configuration/Configuration */ \"./scripts/app/Configuration/Configuration.ts\");\n/* harmony import */ var _Logging_Logging__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../Logging/Logging */ \"./scripts/app/Logging/Logging.ts\");\nvar cov_gb1knhfnt=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\TrustedTypesPolicyUtils.ts\",hash=\"00ad2d6af6560d24f989c4e07d8ee89717c5d770\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\TrustedTypesPolicyUtils.ts\",statementMap:{\"0\":{start:{line:4,column:39},end:{line:26,column:2}},\"1\":{start:{line:6,column:8},end:{line:23,column:9}},\"2\":{start:{line:7,column:28},end:{line:7,column:52}},\"3\":{start:{line:8,column:33},end:{line:8,column:90}},\"4\":{start:{line:9,column:32},end:{line:9,column:72}},\"5\":{start:{line:10,column:31},end:{line:10,column:61}},\"6\":{start:{line:11,column:12},end:{line:21,column:13}},\"7\":{start:{line:12,column:16},end:{line:19,column:19}},\"8\":{start:{line:20,column:16},end:{line:20,column:45}},\"9\":{start:{line:22,column:12},end:{line:22,column:34}},\"10\":{start:{line:24,column:8},end:{line:24,column:31}},\"11\":{start:{line:27,column:19},end:{line:29,column:1}},\"12\":{start:{line:28,column:4},end:{line:28,column:47}}},fnMap:{\"0\":{name:\"(anonymous_0)\",decl:{start:{line:5,column:21},end:{line:5,column:22}},loc:{start:{line:5,column:48},end:{line:25,column:5}},line:5},\"1\":{name:\"(anonymous_1)\",decl:{start:{line:27,column:19},end:{line:27,column:20}},loc:{start:{line:27,column:34},end:{line:29,column:1}},line:27}},branchMap:{\"0\":{loc:{start:{line:4,column:39},end:{line:26,column:2}},type:\"cond-expr\",locations:[{start:{line:4,column:94},end:{line:4,column:100}},{start:{line:4,column:103},end:{line:26,column:2}}],line:4},\"1\":{loc:{start:{line:4,column:39},end:{line:4,column:91}},type:\"binary-expr\",locations:[{start:{line:4,column:39},end:{line:4,column:74}},{start:{line:4,column:78},end:{line:4,column:91}}],line:4},\"2\":{loc:{start:{line:6,column:8},end:{line:23,column:9}},type:\"if\",locations:[{start:{line:6,column:8},end:{line:23,column:9}},{start:{line:6,column:8},end:{line:23,column:9}}],line:6},\"3\":{loc:{start:{line:6,column:12},end:{line:6,column:85}},type:\"binary-expr\",locations:[{start:{line:6,column:12},end:{line:6,column:46}},{start:{line:6,column:50},end:{line:6,column:85}}],line:6},\"4\":{loc:{start:{line:11,column:12},end:{line:21,column:13}},type:\"if\",locations:[{start:{line:11,column:12},end:{line:21,column:13}},{start:{line:11,column:12},end:{line:21,column:13}}],line:11},\"5\":{loc:{start:{line:11,column:16},end:{line:11,column:137}},type:\"binary-expr\",locations:[{start:{line:11,column:16},end:{line:11,column:61}},{start:{line:11,column:65},end:{line:11,column:103}},{start:{line:11,column:107},end:{line:11,column:137}}],line:11}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0},f:{\"0\":0,\"1\":0},b:{\"0\":[0,0],\"1\":[0,0],\"2\":[0,0],\"3\":[0,0],\"4\":[0,0],\"5\":[0,0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\TrustedTypesPolicyUtils.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\TrustedTypesPolicyUtils.ts\"],names:[],mappings:\";AAAA,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAChE,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAwB9C,MAAM,CAAC,IAAM,yBAAyB,GAAG,MAAA,MAAM,CAAC,YAAY,0CAAE,YAAY,CAAC,2BAA2B,EAAE;IACpG,eAAe,EAAE,UAAC,eAAuB;QAErC,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3E,IAAM,SAAS,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;YAC3C,IAAM,cAAc,GAAG,aAAa,CAAC,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,cAAc,CAAC;YACjF,IAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/D,IAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,aAAa,KAAK,YAAY,EAAE;gBAC3H,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,KAElE;oBACI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,SAAS,EAAE,eAAe;wBAC1B,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,QAAQ;wBAC3C,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;wBACvC,YAAY,EAAE,SAAS,CAAC,MAAM;qBACjC,CAAC;iBACL,CAAC,CAAC;gBACP,OAAO,qBAAqB,CAAC;aAChC;YACD,OAAO,SAAS,CAAC,IAAI,CAAC;SACzB;QAGD,OAAO,eAAe,CAAC;IAC3B,CAAC;CACJ,CAAC,CAAC;AAEH,IAAM,YAAY,GAAG,UAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,CAAC,CAAA\",sourcesContent:[\"import * as Configuration from \\\"../Configuration/Configuration\\\";\\r\\nimport * as Logging from \\\"../Logging/Logging\\\";\\r\\n\\r\\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\\r\\ninterface TrustedScriptURL { }\\r\\n\\r\\ninterface TrustedTypePolicyFactory {\\r\\n createPolicy: (\\r\\n name: string,\\r\\n rules: {\\r\\n createScriptURL: (str: string) => TrustedScriptURL;\\r\\n }\\r\\n ) => TrustedTypePolicy;\\r\\n}\\r\\n\\r\\ninterface TrustedTypePolicy {\\r\\n createScriptURL: (str: string) => TrustedScriptURL;\\r\\n}\\r\\n\\r\\ndeclare global {\\r\\n interface Window {\\r\\n trustedTypes: TrustedTypePolicyFactory;\\r\\n }\\r\\n}\\r\\n\\r\\nexport const domUtilsTrustedTypePolicy = window.trustedTypes?.createPolicy(\\\"domUtilsTrustedTypePolicy\\\", {\\r\\n createScriptURL: (scriptUrlString: string) => {\\r\\n // If it is an absolute URL, we need to check if it is from the same origin.\\r\\n if (scriptUrlString.indexOf(\\\"://\\\") > 0 || scriptUrlString.indexOf(\\\"//\\\") === 0) {\\r\\n const scriptUrl = new URL(scriptUrlString);\\r\\n const trustedOrigins = Configuration.get().getCommonInitOptions().allowedDomains;\\r\\n const currentOrigin = getUrlDomain(document.location.hostname);\\r\\n const scriptOrigin = getUrlDomain(scriptUrl.origin);\\r\\n if (scriptUrl.origin !== document.location.origin && !trustedOrigins.includes(scriptOrigin) && currentOrigin !== scriptOrigin) {\\r\\n Logging.getLogger().logEvent(Logging.EventIds.TRUSTEDTYPES_URL_BLOCKED,\\r\\n Logging.LogLevel.Critical,\\r\\n {\\r\\n Data: JSON.stringify({\\r\\n scriptUrl: scriptUrlString,\\r\\n currentHostname: document.location.hostname,\\r\\n currentOrigin: document.location.origin,\\r\\n scriptOrigin: scriptUrl.origin,\\r\\n }),\\r\\n });\\r\\n return `about:blank#blocked`;\\r\\n }\\r\\n return scriptUrl.href;\\r\\n }\\r\\n\\r\\n // If it is a relative URL, we are sure it is from the same domain.\\r\\n return scriptUrlString;\\r\\n },\\r\\n});\\r\\n\\r\\nconst getUrlDomain = (url: string) => {\\r\\n return url.split('.').splice(-2).join('.');\\r\\n}\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var _a;var domUtilsTrustedTypePolicy=(cov_gb1knhfnt.s[0]++,(cov_gb1knhfnt.b[1][0]++,(_a=window.trustedTypes)===null)||(cov_gb1knhfnt.b[1][1]++,_a===void 0)?(cov_gb1knhfnt.b[0][0]++,void 0):(cov_gb1knhfnt.b[0][1]++,_a.createPolicy(\"domUtilsTrustedTypePolicy\",{createScriptURL:function(scriptUrlString){cov_gb1knhfnt.f[0]++;cov_gb1knhfnt.s[1]++;if((cov_gb1knhfnt.b[3][0]++,scriptUrlString.indexOf(\"://\")>0)||(cov_gb1knhfnt.b[3][1]++,scriptUrlString.indexOf(\"//\")===0)){cov_gb1knhfnt.b[2][0]++;var scriptUrl=(cov_gb1knhfnt.s[2]++,new URL(scriptUrlString));var trustedOrigins=(cov_gb1knhfnt.s[3]++,_Configuration_Configuration__WEBPACK_IMPORTED_MODULE_0__[\"get\"]().getCommonInitOptions().allowedDomains);var currentOrigin=(cov_gb1knhfnt.s[4]++,getUrlDomain(document.location.hostname));var scriptOrigin=(cov_gb1knhfnt.s[5]++,getUrlDomain(scriptUrl.origin));cov_gb1knhfnt.s[6]++;if((cov_gb1knhfnt.b[5][0]++,scriptUrl.origin!==document.location.origin)&&(cov_gb1knhfnt.b[5][1]++,!trustedOrigins.includes(scriptOrigin))&&(cov_gb1knhfnt.b[5][2]++,currentOrigin!==scriptOrigin)){cov_gb1knhfnt.b[4][0]++;cov_gb1knhfnt.s[7]++;_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"getLogger\"]().logEvent(_Logging_Logging__WEBPACK_IMPORTED_MODULE_1__[\"EventIds\"].TRUSTEDTYPES_URL_BLOCKED,1,{Data:JSON.stringify({scriptUrl:scriptUrlString,currentHostname:document.location.hostname,currentOrigin:document.location.origin,scriptOrigin:scriptUrl.origin})});cov_gb1knhfnt.s[8]++;return\"about:blank#blocked\";}else{cov_gb1knhfnt.b[4][1]++;}cov_gb1knhfnt.s[9]++;return scriptUrl.href;}else{cov_gb1knhfnt.b[2][1]++;}cov_gb1knhfnt.s[10]++;return scriptUrlString;}})));cov_gb1knhfnt.s[11]++;var getUrlDomain=function(url){cov_gb1knhfnt.f[1]++;cov_gb1knhfnt.s[12]++;return url.split('.').splice(-2).join('.');};//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9XaW5kb3cvVHJ1c3RlZFR5cGVzUG9saWN5VXRpbHMudHM/YjJhYyJdLCJuYW1lcyI6WyJfYSIsImRvbVV0aWxzVHJ1c3RlZFR5cGVQb2xpY3kiLCJ3aW5kb3ciLCJ0cnVzdGVkVHlwZXMiLCJjcmVhdGVQb2xpY3kiLCJjcmVhdGVTY3JpcHRVUkwiLCJzY3JpcHRVcmxTdHJpbmciLCJpbmRleE9mIiwic2NyaXB0VXJsIiwiVVJMIiwidHJ1c3RlZE9yaWdpbnMiLCJDb25maWd1cmF0aW9uIiwiZ2V0Q29tbW9uSW5pdE9wdGlvbnMiLCJhbGxvd2VkRG9tYWlucyIsImN1cnJlbnRPcmlnaW4iLCJnZXRVcmxEb21haW4iLCJkb2N1bWVudCIsImxvY2F0aW9uIiwiaG9zdG5hbWUiLCJzY3JpcHRPcmlnaW4iLCJvcmlnaW4iLCJpbmNsdWRlcyIsIkxvZ2dpbmciLCJsb2dFdmVudCIsIlRSVVNURURUWVBFU19VUkxfQkxPQ0tFRCIsIkRhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwiY3VycmVudEhvc3RuYW1lIiwiaHJlZiIsInVybCIsInNwbGl0Iiwic3BsaWNlIiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs2cU5BQUEsR0FBSUEsR0FBSixDQUdPLEdBQUlDLGlEQUE0QiwwQkFBQ0QsR0FBS0UsT0FBT0MsWUFBYixJQUErQixJQUEvQiw0QkFBdUNILEtBQU8sSUFBSyxFQUFuRCwyQkFBdUQsSUFBSyxFQUE1RCwyQkFBZ0VBLEdBQUdJLFlBQUgsQ0FBZ0IsMkJBQWhCLENBQTZDLENBQ2hKQyxnQkFBaUIsU0FBVUMsZUFBVixDQUEyQiwyQ0FDeEMsR0FBSSx5Q0FBZ0JDLE9BQWhCLENBQXdCLEtBQXhCLEVBQWlDLENBQWpDLDRCQUFzQ0QsZ0JBQWdCQyxPQUFoQixDQUF3QixJQUF4QixJQUFrQyxDQUF4RSxDQUFKLENBQStFLHlCQUMzRSxHQUFJQyxpQ0FBWSxHQUFJQyxJQUFKLENBQVFILGVBQVIsQ0FBWixDQUFKLENBQ0EsR0FBSUksc0NBQWlCQyxnRUFBQSxHQUFvQkMsb0JBQXBCLEdBQTJDQyxjQUE1RCxDQUFKLENBQ0EsR0FBSUMscUNBQWdCQyxhQUFhQyxTQUFTQyxRQUFULENBQWtCQyxRQUEvQixDQUFoQixDQUFKLENBQ0EsR0FBSUMsb0NBQWVKLGFBQWFQLFVBQVVZLE1BQXZCLENBQWYsQ0FBSixDQUoyRSxxQkFLM0UsR0FBSSxtQ0FBVUEsTUFBVixHQUFxQkosU0FBU0MsUUFBVCxDQUFrQkcsTUFBdkMsNEJBQWlELENBQUNWLGVBQWVXLFFBQWYsQ0FBd0JGLFlBQXhCLENBQWxELDRCQUEyRkwsZ0JBQWtCSyxZQUE3RyxDQUFKLENBQStILDhDQUMzSEcsMERBQUEsR0FBb0JDLFFBQXBCLENBQTZCRCx5REFBQSxDQUFpQkUsd0JBQTlDLENBQXdFLENBQXhFLENBQTJFLENBQ3ZFQyxLQUFNQyxLQUFLQyxTQUFMLENBQWUsQ0FDakJuQixVQUFXRixlQURNLENBRWpCc0IsZ0JBQWlCWixTQUFTQyxRQUFULENBQWtCQyxRQUZsQixDQUdqQkosY0FBZUUsU0FBU0MsUUFBVCxDQUFrQkcsTUFIaEIsQ0FJakJELGFBQWNYLFVBQVVZLE1BSlAsQ0FBZixDQURpRSxDQUEzRSxFQUQySCxxQkFTM0gsTUFBTyxxQkFBUCxDQUNILENBVkQsOEJBTDJFLHFCQWdCM0UsTUFBT1osV0FBVXFCLElBQWpCLENBQ0gsQ0FqQkQsOEJBRHdDLHNCQW1CeEMsTUFBT3ZCLGdCQUFQLENBQ0gsQ0FyQitJLENBQTdDLENBQWhFLENBQTVCLENBQUosQyxzQkF1QlAsR0FBSVMsY0FBZSxTQUFVZSxHQUFWLENBQWUsNENBQzlCLE1BQU9BLEtBQUlDLEtBQUosQ0FBVSxHQUFWLEVBQWVDLE1BQWYsQ0FBc0IsQ0FBQyxDQUF2QixFQUEwQkMsSUFBMUIsQ0FBK0IsR0FBL0IsQ0FBUCxDQUNILENBRkQiLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9XaW5kb3cvVHJ1c3RlZFR5cGVzUG9saWN5VXRpbHMudHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX2E7XHJcbmltcG9ydCAqIGFzIENvbmZpZ3VyYXRpb24gZnJvbSBcIi4uL0NvbmZpZ3VyYXRpb24vQ29uZmlndXJhdGlvblwiO1xyXG5pbXBvcnQgKiBhcyBMb2dnaW5nIGZyb20gXCIuLi9Mb2dnaW5nL0xvZ2dpbmdcIjtcclxuZXhwb3J0IHZhciBkb21VdGlsc1RydXN0ZWRUeXBlUG9saWN5ID0gKF9hID0gd2luZG93LnRydXN0ZWRUeXBlcykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNyZWF0ZVBvbGljeShcImRvbVV0aWxzVHJ1c3RlZFR5cGVQb2xpY3lcIiwge1xyXG4gICAgY3JlYXRlU2NyaXB0VVJMOiBmdW5jdGlvbiAoc2NyaXB0VXJsU3RyaW5nKSB7XHJcbiAgICAgICAgaWYgKHNjcmlwdFVybFN0cmluZy5pbmRleE9mKFwiOi8vXCIpID4gMCB8fCBzY3JpcHRVcmxTdHJpbmcuaW5kZXhPZihcIi8vXCIpID09PSAwKSB7XHJcbiAgICAgICAgICAgIHZhciBzY3JpcHRVcmwgPSBuZXcgVVJMKHNjcmlwdFVybFN0cmluZyk7XHJcbiAgICAgICAgICAgIHZhciB0cnVzdGVkT3JpZ2lucyA9IENvbmZpZ3VyYXRpb24uZ2V0KCkuZ2V0Q29tbW9uSW5pdE9wdGlvbnMoKS5hbGxvd2VkRG9tYWlucztcclxuICAgICAgICAgICAgdmFyIGN1cnJlbnRPcmlnaW4gPSBnZXRVcmxEb21haW4oZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUpO1xyXG4gICAgICAgICAgICB2YXIgc2NyaXB0T3JpZ2luID0gZ2V0VXJsRG9tYWluKHNjcmlwdFVybC5vcmlnaW4pO1xyXG4gICAgICAgICAgICBpZiAoc2NyaXB0VXJsLm9yaWdpbiAhPT0gZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luICYmICF0cnVzdGVkT3JpZ2lucy5pbmNsdWRlcyhzY3JpcHRPcmlnaW4pICYmIGN1cnJlbnRPcmlnaW4gIT09IHNjcmlwdE9yaWdpbikge1xyXG4gICAgICAgICAgICAgICAgTG9nZ2luZy5nZXRMb2dnZXIoKS5sb2dFdmVudChMb2dnaW5nLkV2ZW50SWRzLlRSVVNURURUWVBFU19VUkxfQkxPQ0tFRCwgMSwge1xyXG4gICAgICAgICAgICAgICAgICAgIERhdGE6IEpTT04uc3RyaW5naWZ5KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0VXJsOiBzY3JpcHRVcmxTdHJpbmcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRIb3N0bmFtZTogZG9jdW1lbnQubG9jYXRpb24uaG9zdG5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRPcmlnaW46IGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbixcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0T3JpZ2luOiBzY3JpcHRVcmwub3JpZ2luLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYm91dDpibGFuayNibG9ja2VkXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIHNjcmlwdFVybC5ocmVmO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gc2NyaXB0VXJsU3RyaW5nO1xyXG4gICAgfSxcclxufSk7XHJcbnZhciBnZXRVcmxEb21haW4gPSBmdW5jdGlvbiAodXJsKSB7XHJcbiAgICByZXR1cm4gdXJsLnNwbGl0KCcuJykuc3BsaWNlKC0yKS5qb2luKCcuJyk7XHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./scripts/app/Window/TrustedTypesPolicyUtils.ts\n"); /***/ }), /***/ "./scripts/app/Window/Window.ts": /*!**************************************!*\ !*** ./scripts/app/Window/Window.ts ***! \**************************************/ /*! exports provided: get, getGlobal, setProcessTelemetryEvent, setSendUserFact, setSetUiStrings, setSingleFeedback, setMultiFeedback, setFeedbackStatus, setCreateScreenshot, setIsFeedbackSurveyEnabledByAADC, setFloodgateCustomUXHandler, setFloodgateShowSurvey, setFloodgateShowFormSurvey, setFloodgateShowCustomSurvey, setFloodgateInitialize, setFloodgateStart, setFloodgateStop, setFloodgateGetEngine, getSettingIdMap, setStorageProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"get\", function() { return get; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getGlobal\", function() { return getGlobal; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setProcessTelemetryEvent\", function() { return setProcessTelemetryEvent; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSendUserFact\", function() { return setSendUserFact; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSetUiStrings\", function() { return setSetUiStrings; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setSingleFeedback\", function() { return setSingleFeedback; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setMultiFeedback\", function() { return setMultiFeedback; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFeedbackStatus\", function() { return setFeedbackStatus; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setCreateScreenshot\", function() { return setCreateScreenshot; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setIsFeedbackSurveyEnabledByAADC\", function() { return setIsFeedbackSurveyEnabledByAADC; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateCustomUXHandler\", function() { return setFloodgateCustomUXHandler; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateShowSurvey\", function() { return setFloodgateShowSurvey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateShowFormSurvey\", function() { return setFloodgateShowFormSurvey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateShowCustomSurvey\", function() { return setFloodgateShowCustomSurvey; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateInitialize\", function() { return setFloodgateInitialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateStart\", function() { return setFloodgateStart; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateStop\", function() { return setFloodgateStop; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFloodgateGetEngine\", function() { return setFloodgateGetEngine; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getSettingIdMap\", function() { return getSettingIdMap; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setStorageProvider\", function() { return setStorageProvider; });\nvar cov_6gd423zba=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\Window.ts\",hash=\"7277066f7c160b7311bd32590c852e6445ab1743\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\Window.ts\",statementMap:{\"0\":{start:{line:1,column:8},end:{line:1,column:14}},\"1\":{start:{line:2,column:28},end:{line:2,column:83}},\"2\":{start:{line:3,column:16},end:{line:3,column:87}},\"3\":{start:{line:4,column:24},end:{line:4,column:33}},\"4\":{start:{line:5,column:30},end:{line:5,column:39}},\"5\":{start:{line:7,column:4},end:{line:7,column:72}},\"6\":{start:{line:10,column:4},end:{line:10,column:54}},\"7\":{start:{line:13,column:4},end:{line:13,column:54}},\"8\":{start:{line:16,column:4},end:{line:16,column:58}},\"9\":{start:{line:19,column:4},end:{line:19,column:56}},\"10\":{start:{line:22,column:4},end:{line:22,column:64}},\"11\":{start:{line:25,column:4},end:{line:25,column:62}},\"12\":{start:{line:28,column:4},end:{line:28,column:88}},\"13\":{start:{line:31,column:4},end:{line:31,column:57}},\"14\":{start:{line:34,column:4},end:{line:34,column:47}},\"15\":{start:{line:37,column:4},end:{line:37,column:55}},\"16\":{start:{line:40,column:4},end:{line:40,column:59}},\"17\":{start:{line:43,column:4},end:{line:43,column:47}},\"18\":{start:{line:46,column:4},end:{line:46,column:37}},\"19\":{start:{line:49,column:4},end:{line:49,column:35}},\"20\":{start:{line:52,column:4},end:{line:52,column:45}},\"21\":{start:{line:55,column:4},end:{line:55,column:54}},\"22\":{start:{line:58,column:4},end:{line:58,column:54}}},fnMap:{\"0\":{name:\"get\",decl:{start:{line:4,column:16},end:{line:4,column:19}},loc:{start:{line:4,column:22},end:{line:4,column:35}},line:4},\"1\":{name:\"getGlobal\",decl:{start:{line:5,column:16},end:{line:5,column:25}},loc:{start:{line:5,column:28},end:{line:5,column:41}},line:5},\"2\":{name:\"setProcessTelemetryEvent\",decl:{start:{line:6,column:16},end:{line:6,column:40}},loc:{start:{line:6,column:64},end:{line:8,column:1}},line:6},\"3\":{name:\"setSendUserFact\",decl:{start:{line:9,column:16},end:{line:9,column:31}},loc:{start:{line:9,column:46},end:{line:11,column:1}},line:9},\"4\":{name:\"setSetUiStrings\",decl:{start:{line:12,column:16},end:{line:12,column:31}},loc:{start:{line:12,column:46},end:{line:14,column:1}},line:12},\"5\":{name:\"setSingleFeedback\",decl:{start:{line:15,column:16},end:{line:15,column:33}},loc:{start:{line:15,column:50},end:{line:17,column:1}},line:15},\"6\":{name:\"setMultiFeedback\",decl:{start:{line:18,column:16},end:{line:18,column:32}},loc:{start:{line:18,column:48},end:{line:20,column:1}},line:18},\"7\":{name:\"setFeedbackStatus\",decl:{start:{line:21,column:16},end:{line:21,column:33}},loc:{start:{line:21,column:53},end:{line:23,column:1}},line:21},\"8\":{name:\"setCreateScreenshot\",decl:{start:{line:24,column:16},end:{line:24,column:35}},loc:{start:{line:24,column:54},end:{line:26,column:1}},line:24},\"9\":{name:\"setIsFeedbackSurveyEnabledByAADC\",decl:{start:{line:27,column:16},end:{line:27,column:48}},loc:{start:{line:27,column:80},end:{line:29,column:1}},line:27},\"10\":{name:\"setFloodgateCustomUXHandler\",decl:{start:{line:30,column:16},end:{line:30,column:43}},loc:{start:{line:30,column:70},end:{line:32,column:1}},line:30},\"11\":{name:\"setFloodgateShowSurvey\",decl:{start:{line:33,column:16},end:{line:33,column:38}},loc:{start:{line:33,column:60},end:{line:35,column:1}},line:33},\"12\":{name:\"setFloodgateShowFormSurvey\",decl:{start:{line:36,column:16},end:{line:36,column:42}},loc:{start:{line:36,column:68},end:{line:38,column:1}},line:36},\"13\":{name:\"setFloodgateShowCustomSurvey\",decl:{start:{line:39,column:16},end:{line:39,column:44}},loc:{start:{line:39,column:72},end:{line:41,column:1}},line:39},\"14\":{name:\"setFloodgateInitialize\",decl:{start:{line:42,column:16},end:{line:42,column:38}},loc:{start:{line:42,column:60},end:{line:44,column:1}},line:42},\"15\":{name:\"setFloodgateStart\",decl:{start:{line:45,column:16},end:{line:45,column:33}},loc:{start:{line:45,column:50},end:{line:47,column:1}},line:45},\"16\":{name:\"setFloodgateStop\",decl:{start:{line:48,column:16},end:{line:48,column:32}},loc:{start:{line:48,column:48},end:{line:50,column:1}},line:48},\"17\":{name:\"setFloodgateGetEngine\",decl:{start:{line:51,column:16},end:{line:51,column:37}},loc:{start:{line:51,column:58},end:{line:53,column:1}},line:51},\"18\":{name:\"getSettingIdMap\",decl:{start:{line:54,column:16},end:{line:54,column:31}},loc:{start:{line:54,column:55},end:{line:56,column:1}},line:54},\"19\":{name:\"setStorageProvider\",decl:{start:{line:57,column:16},end:{line:57,column:34}},loc:{start:{line:57,column:55},end:{line:59,column:1}},line:57}},branchMap:{\"0\":{loc:{start:{line:2,column:54},end:{line:2,column:83}},type:\"binary-expr\",locations:[{start:{line:2,column:54},end:{line:2,column:77}},{start:{line:2,column:81},end:{line:2,column:83}}],line:2},\"1\":{loc:{start:{line:3,column:50},end:{line:3,column:87}},type:\"binary-expr\",locations:[{start:{line:3,column:50},end:{line:3,column:81}},{start:{line:3,column:85},end:{line:3,column:87}}],line:3}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0},f:{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0},b:{\"0\":[0,0],\"1\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\Window.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\Window\\\\Window.ts\"],names:[],mappings:\"AAiBA,IAAM,CAAC,GAAG,MAAa,CAAC;AACxB,IAAM,qBAAqB,GAAG,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,qBAAqB,IAAI,EAAE,CAAC;AACtF,IAAM,SAAS,GAAG,qBAAqB,CAAC,SAAS,GAAG,qBAAqB,CAAC,SAAS,IAAI,EAAE,CAAC;AAK1F,MAAM,UAAU,GAAG,KAAc,OAAO,CAAC,CAAC,CAAC,CAAC;AAK5C,MAAM,UAAU,SAAS,KAAc,OAAO,CAAC,CAAC,CAAC,CAAC;AAMlD,MAAM,UAAU,wBAAwB,CACpC,qBAA+D;IAC3D,qBAAqB,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;AAC5E,CAAC;AAMD,MAAM,UAAU,eAAe,CAC3B,YAA4C;IAC5C,qBAAqB,CAAC,YAAY,GAAG,YAAY,CAAC;AACtD,CAAC;AAMD,MAAM,UAAU,eAAe,CAAC,YAAiC;IAC7D,qBAAqB,CAAC,YAAY,GAAG,YAAY,CAAC;AACtD,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAC7B,cAAkG;IAClG,qBAAqB,CAAC,cAAc,GAAG,cAAc,CAAC;AAC1D,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAC5B,aAA2E;IAC3E,qBAAqB,CAAC,aAAa,GAAG,aAAa,CAAC;AACxD,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAC7B,iBAAuC;IACvC,qBAAqB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;AAChE,CAAC;AAMD,MAAM,UAAU,mBAAmB,CAC/B,gBAAsE;IACtE,qBAAqB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AAC9D,CAAC;AAMD,MAAM,UAAU,gCAAgC,CAC5C,6BAA4C;IAC5C,qBAAqB,CAAC,6BAA6B,GAAG,6BAA6B,CAAC;AACxF,CAAC;AAMD,MAAM,UAAU,2BAA2B,CAAC,wBAA0C;IAClF,SAAS,CAAC,eAAe,GAAG,wBAAwB,CAAC;AACzD,CAAC;AAMD,MAAM,UAAU,sBAAsB,CAClC,mBAAiH;IAEjH,SAAS,CAAC,UAAU,GAAG,mBAAmB,CAAC;AAC/C,CAAC;AAMD,MAAM,UAAU,0BAA0B,CACtC,uBAAuH;IAEvH,SAAS,CAAC,cAAc,GAAG,uBAAuB,CAAC;AACvD,CAAC;AAMD,MAAM,UAAU,4BAA4B,CAAC,yBAAkE;IAC3G,SAAS,CAAC,gBAAgB,GAAG,yBAAyB,CAAC;AAC3D,CAAC;AAMD,MAAM,UAAU,sBAAsB,CAAC,mBAAuC;IAC1E,SAAS,CAAC,UAAU,GAAG,mBAAmB,CAAC;AAC/C,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,cAAkC;IAChE,SAAS,CAAC,KAAK,GAAG,cAAc,CAAC;AACrC,CAAC;AAMD,MAAM,UAAU,gBAAgB,CAAC,aAAyB;IACtD,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;AACnC,CAAC;AAMD,MAAM,UAAU,qBAAqB,CAAC,kBAAyC;IAC3E,SAAS,CAAC,SAAS,GAAG,kBAAkB,CAAC;AAC7C,CAAC;AAMD,MAAM,UAAU,eAAe,CAAC,qBAAmD;IAC/E,SAAS,CAAC,eAAe,GAAG,qBAAqB,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,kBAAmD;IAClF,SAAS,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;AACtD,CAAC\",sourcesContent:[\"/**\\r\\n * Window.ts\\r\\n *\\r\\n * Module wrapping around the global window object\\r\\n */\\r\\n\\r\\nimport { IFloodgateSettingIdMap, IFloodgateStorageProvider, ISurveyForm } from \\\"@ms-ofb/floodgate-shared-typings\\\";\\r\\nimport * as Configuration from \\\"./../Configuration/Configuration\\\";\\r\\nimport { ILaunchOptionsInAppFeedback } from \\\"./../Configuration/ILaunchOptions\\\";\\r\\nimport ICustomSurvey from \\\"./../FloodgateCore/ICustomSurvey\\\";\\r\\nimport IUISurvey from \\\"./../FloodgateCore/UISurvey/IUISurvey\\\";\\r\\nimport { FloodgateEngine } from \\\"@ms-ofb/officefloodgatecore\\\";\\r\\nimport { FeedbackStatus } from \\\"./../Constants\\\";\\r\\nimport { IOverrideRenderCallback } from \\\"../IOverrideRenderCallback\\\";\\r\\nimport { ICustomUXHandler } from \\\"../ICustomUXHandler\\\";\\r\\nimport { TelemetryEvent } from \\\"@microsoft/oteljs\\\";\\r\\n\\r\\nconst w = window as any;\\r\\nconst officeBrowserFeedback = w.SvaFeedback = w.SvaFeedback || {};\\r\\nconst floodgate = officeBrowserFeedback.floodgate = officeBrowserFeedback.floodgate || {};\\r\\n\\r\\n/**\\r\\n * Get the IWindow object\\r\\n */\\r\\nexport function get(): IWindow { return w; }\\r\\n\\r\\n/**\\r\\n * Get the IWindow object\\r\\n */\\r\\nexport function getGlobal(): IWindow { return w; }\\r\\n\\r\\n/**\\r\\n * Set the processTelemetryEvent() method\\r\\n * @param processTelemetryEvent the method\\r\\n */\\r\\nexport function setProcessTelemetryEvent(\\r\\n processTelemetryEvent: (telemetryEvent: TelemetryEvent) => void) {\\r\\n officeBrowserFeedback.processTelemetryEvent = processTelemetryEvent;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the sendUserFact() method\\r\\n * @param sendUserFact the method\\r\\n */\\r\\nexport function setSendUserFact(\\r\\n sendUserFact: (userFactName: string) => void) {\\r\\n officeBrowserFeedback.sendUserFact = sendUserFact;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the setUiStrings() method\\r\\n * @param setUiStrings the method\\r\\n */\\r\\nexport function setSetUiStrings(setUiStrings: (data: any) => void) {\\r\\n officeBrowserFeedback.setUiStrings = setUiStrings;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the singleFeedback() method\\r\\n * @param singleFeedback the method\\r\\n */\\r\\nexport function setSingleFeedback(\\r\\n singleFeedback: (feedbackType: string, launchOptions: ILaunchOptionsInAppFeedback) => Promise) {\\r\\n officeBrowserFeedback.singleFeedback = singleFeedback;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the multiFeedback() method\\r\\n * @param multiFeedback the method\\r\\n */\\r\\nexport function setMultiFeedback(\\r\\n multiFeedback: (launchOptions: ILaunchOptionsInAppFeedback) => Promise) {\\r\\n officeBrowserFeedback.multiFeedback = multiFeedback;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the getFeedbackStatus() method\\r\\n * @param getFeedbackStatus the method\\r\\n */\\r\\nexport function setFeedbackStatus(\\r\\n getFeedbackStatus: () => FeedbackStatus) {\\r\\n officeBrowserFeedback.getFeedbackStatus = getFeedbackStatus;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the createScreenshot() method\\r\\n * @param createScreenshot the method\\r\\n */\\r\\nexport function setCreateScreenshot(\\r\\n createScreenshot: (domElement?: object, options?: any) => Promise) {\\r\\n officeBrowserFeedback.createScreenshot = createScreenshot;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the isFeedbackSurveyEnabledByAADC() method\\r\\n * @param isFeedbackSurveyEnabledByAADC the method\\r\\n */\\r\\nexport function setIsFeedbackSurveyEnabledByAADC(\\r\\n isFeedbackSurveyEnabledByAADC: () => boolean) {\\r\\n officeBrowserFeedback.isFeedbackSurveyEnabledByAADC = isFeedbackSurveyEnabledByAADC;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate customUXHandler interface\\r\\n * @param floodgateCustomUXHandler the interface\\r\\n */\\r\\nexport function setFloodgateCustomUXHandler(floodgateCustomUXHandler: ICustomUXHandler) {\\r\\n floodgate.customUXHandler = floodgateCustomUXHandler;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate showSurvey() method\\r\\n * @param floodgateShowSurvey the method\\r\\n */\\r\\nexport function setFloodgateShowSurvey(\\r\\n floodgateShowSurvey: (survey: IUISurvey, overrideUXRenderCallbackAsync?: IOverrideRenderCallback) => Promise\\r\\n) {\\r\\n floodgate.showSurvey = floodgateShowSurvey;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate showFormSurvey() method\\r\\n * @param floodgateShowFormSurvey the method\\r\\n */\\r\\nexport function setFloodgateShowFormSurvey(\\r\\n floodgateShowFormSurvey: (survey: ISurveyForm, overrideUXRenderCallbackAsync?: IOverrideRenderCallback) => Promise\\r\\n) {\\r\\n floodgate.showFormSurvey = floodgateShowFormSurvey;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate showCustomSurvey() method\\r\\n * @param floodgateShowCustomSurvey the method\\r\\n */\\r\\nexport function setFloodgateShowCustomSurvey(floodgateShowCustomSurvey: (survey: ICustomSurvey) => Promise) {\\r\\n floodgate.showCustomSurvey = floodgateShowCustomSurvey;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate initialize() method\\r\\n * @param floodgateInitialize the method\\r\\n */\\r\\nexport function setFloodgateInitialize(floodgateInitialize: () => Promise) {\\r\\n floodgate.initialize = floodgateInitialize;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate start() method\\r\\n * @param floodgateStart the method\\r\\n */\\r\\nexport function setFloodgateStart(floodgateStart: () => Promise) {\\r\\n floodgate.start = floodgateStart;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate stop() method\\r\\n * @param floodgateStop the method\\r\\n */\\r\\nexport function setFloodgateStop(floodgateStop: () => void) {\\r\\n floodgate.stop = floodgateStop;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate getEngine() method\\r\\n * @param floodgateGetEngine the method\\r\\n */\\r\\nexport function setFloodgateGetEngine(floodgateGetEngine: () => FloodgateEngine) {\\r\\n floodgate.getEngine = floodgateGetEngine;\\r\\n}\\r\\n\\r\\n/**\\r\\n * Set the floodgate getSettingIdMap() method\\r\\n * @param floodgateSettingIdMap the method\\r\\n */\\r\\nexport function getSettingIdMap(floodgateSettingIdMap: () => IFloodgateSettingIdMap) {\\r\\n floodgate.getSettingIdMap = floodgateSettingIdMap;\\r\\n}\\r\\n\\r\\nexport function setStorageProvider(getStorageProvider: () => IFloodgateStorageProvider) {\\r\\n floodgate.getStorageProvider = getStorageProvider;\\r\\n}\\r\\n\\r\\nexport interface IInitOptions extends Configuration.IInitOptionsCommon, Configuration.IInitOptionsInAppFeedback {\\r\\n}\\r\\n\\r\\nexport interface IFloodgate {\\r\\n initOptions: Configuration.IInitOptionsFloodgate;\\r\\n customUXHandler: ICustomUXHandler;\\r\\n showSurvey: (survey: IUISurvey, overrideUXRenderCallbackAsync?: IOverrideRenderCallback) => Promise;\\r\\n showFormSurvey: (survey: ISurveyForm, overrideUXRenderCallbackAsync?: IOverrideRenderCallback) => Promise;\\r\\n showCustomSurvey: (survey: ICustomSurvey) => Promise;\\r\\n initialize: () => Promise;\\r\\n start: () => Promise;\\r\\n stop: () => void;\\r\\n getEngine: () => FloodgateEngine;\\r\\n getStorageProvider: () => IFloodgateStorageProvider;\\r\\n}\\r\\n\\r\\nexport interface IWindow extends WindowLocalStorage {\\r\\n OfficeBrowserFeedback: {\\r\\n initOptions: IInitOptions;\\r\\n multiFeedback: (launchOptions: ILaunchOptionsInAppFeedback) => Promise;\\r\\n sdkVersion: string;\\r\\n processTelemetryEvent: (telemetryEvent: TelemetryEvent) => void;\\r\\n sendUserFact: ((userFactName: string) => void);\\r\\n singleFeedback: (feedbackType: string, launchOptions: ILaunchOptionsInAppFeedback) => Promise;\\r\\n setUiStrings: (data: any) => void;\\r\\n html2canvas: () => ((domElement?: object, options?: any) => Promise);\\r\\n createScreenshot: (domElement?: object, options?: any) => Promise;\\r\\n floodgate: IFloodgate;\\r\\n isFeedbackSurveyEnabledByAADC: () => boolean;\\r\\n getFeedbackStatus: () => FeedbackStatus;\\r\\n };\\r\\n}\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();var w=(cov_6gd423zba.s[0]++,window);var officeBrowserFeedback=(cov_6gd423zba.s[1]++,w.SvaFeedback=(cov_6gd423zba.b[0][0]++,w.SvaFeedback)||(cov_6gd423zba.b[0][1]++,{}));var floodgate=(cov_6gd423zba.s[2]++,officeBrowserFeedback.floodgate=(cov_6gd423zba.b[1][0]++,officeBrowserFeedback.floodgate)||(cov_6gd423zba.b[1][1]++,{}));function get(){cov_6gd423zba.f[0]++;cov_6gd423zba.s[3]++;return w;}function getGlobal(){cov_6gd423zba.f[1]++;cov_6gd423zba.s[4]++;return w;}function setProcessTelemetryEvent(processTelemetryEvent){cov_6gd423zba.f[2]++;cov_6gd423zba.s[5]++;officeBrowserFeedback.processTelemetryEvent=processTelemetryEvent;}function setSendUserFact(sendUserFact){cov_6gd423zba.f[3]++;cov_6gd423zba.s[6]++;officeBrowserFeedback.sendUserFact=sendUserFact;}function setSetUiStrings(setUiStrings){cov_6gd423zba.f[4]++;cov_6gd423zba.s[7]++;officeBrowserFeedback.setUiStrings=setUiStrings;}function setSingleFeedback(singleFeedback){cov_6gd423zba.f[5]++;cov_6gd423zba.s[8]++;officeBrowserFeedback.singleFeedback=singleFeedback;}function setMultiFeedback(multiFeedback){cov_6gd423zba.f[6]++;cov_6gd423zba.s[9]++;officeBrowserFeedback.multiFeedback=multiFeedback;}function setFeedbackStatus(getFeedbackStatus){cov_6gd423zba.f[7]++;cov_6gd423zba.s[10]++;officeBrowserFeedback.getFeedbackStatus=getFeedbackStatus;}function setCreateScreenshot(createScreenshot){cov_6gd423zba.f[8]++;cov_6gd423zba.s[11]++;officeBrowserFeedback.createScreenshot=createScreenshot;}function setIsFeedbackSurveyEnabledByAADC(isFeedbackSurveyEnabledByAADC){cov_6gd423zba.f[9]++;cov_6gd423zba.s[12]++;officeBrowserFeedback.isFeedbackSurveyEnabledByAADC=isFeedbackSurveyEnabledByAADC;}function setFloodgateCustomUXHandler(floodgateCustomUXHandler){cov_6gd423zba.f[10]++;cov_6gd423zba.s[13]++;floodgate.customUXHandler=floodgateCustomUXHandler;}function setFloodgateShowSurvey(floodgateShowSurvey){cov_6gd423zba.f[11]++;cov_6gd423zba.s[14]++;floodgate.showSurvey=floodgateShowSurvey;}function setFloodgateShowFormSurvey(floodgateShowFormSurvey){cov_6gd423zba.f[12]++;cov_6gd423zba.s[15]++;floodgate.showFormSurvey=floodgateShowFormSurvey;}function setFloodgateShowCustomSurvey(floodgateShowCustomSurvey){cov_6gd423zba.f[13]++;cov_6gd423zba.s[16]++;floodgate.showCustomSurvey=floodgateShowCustomSurvey;}function setFloodgateInitialize(floodgateInitialize){cov_6gd423zba.f[14]++;cov_6gd423zba.s[17]++;floodgate.initialize=floodgateInitialize;}function setFloodgateStart(floodgateStart){cov_6gd423zba.f[15]++;cov_6gd423zba.s[18]++;floodgate.start=floodgateStart;}function setFloodgateStop(floodgateStop){cov_6gd423zba.f[16]++;cov_6gd423zba.s[19]++;floodgate.stop=floodgateStop;}function setFloodgateGetEngine(floodgateGetEngine){cov_6gd423zba.f[17]++;cov_6gd423zba.s[20]++;floodgate.getEngine=floodgateGetEngine;}function getSettingIdMap(floodgateSettingIdMap){cov_6gd423zba.f[18]++;cov_6gd423zba.s[21]++;floodgate.getSettingIdMap=floodgateSettingIdMap;}function setStorageProvider(getStorageProvider){cov_6gd423zba.f[19]++;cov_6gd423zba.s[22]++;floodgate.getStorageProvider=getStorageProvider;}//# sourceURL=[module]\n//# sourceMappingURL=data:applicationhttps://www.microsoft.com/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vLi9zY3JpcHRzL2FwcC9XaW5kb3cvV2luZG93LnRzPzc1NzAiXSwibmFtZXMiOlsidyIsIndpbmRvdyIsIm9mZmljZUJyb3dzZXJGZWVkYmFjayIsIk9mZmljZUJyb3dzZXJGZWVkYmFjayIsImZsb29kZ2F0ZSIsImdldCIsImdldEdsb2JhbCIsInNldFByb2Nlc3NUZWxlbWV0cnlFdmVudCIsInByb2Nlc3NUZWxlbWV0cnlFdmVudCIsInNldFNlbmRVc2VyRmFjdCIsInNlbmRVc2VyRmFjdCIsInNldFNldFVpU3RyaW5ncyIsInNldFVpU3RyaW5ncyIsInNldFNpbmdsZUZlZWRiYWNrIiwic2luZ2xlRmVlZGJhY2siLCJzZXRNdWx0aUZlZWRiYWNrIiwibXVsdGlGZWVkYmFjayIsInNldEZlZWRiYWNrU3RhdHVzIiwiZ2V0RmVlZGJhY2tTdGF0dXMiLCJzZXRDcmVhdGVTY3JlZW5zaG90IiwiY3JlYXRlU2NyZWVuc2hvdCIsInNldElzRmVlZGJhY2tTdXJ2ZXlFbmFibGVkQnlBQURDIiwiaXNGZWVkYmFja1N1cnZleUVuYWJsZWRCeUFBREMiLCJzZXRGbG9vZGdhdGVDdXN0b21VWEhhbmRsZXIiLCJmbG9vZGdhdGVDdXN0b21VWEhhbmRsZXIiLCJjdXN0b21VWEhhbmRsZXIiLCJzZXRGbG9vZGdhdGVTaG93U3VydmV5IiwiZmxvb2RnYXRlU2hvd1N1cnZleSIsInNob3dTdXJ2ZXkiLCJzZXRGbG9vZGdhdGVTaG93Rm9ybVN1cnZleSIsImZsb29kZ2F0ZVNob3dGb3JtU3VydmV5Iiwic2hvd0Zvcm1TdXJ2ZXkiLCJzZXRGbG9vZGdhdGVTaG93Q3VzdG9tU3VydmV5IiwiZmxvb2RnYXRlU2hvd0N1c3RvbVN1cnZleSIsInNob3dDdXN0b21TdXJ2ZXkiLCJzZXRGbG9vZGdhdGVJbml0aWFsaXplIiwiZmxvb2RnYXRlSW5pdGlhbGl6ZSIsImluaXRpYWxpemUiLCJzZXRGbG9vZGdhdGVTdGFydCIsImZsb29kZ2F0ZVN0YXJ0Iiwic3RhcnQiLCJzZXRGbG9vZGdhdGVTdG9wIiwiZmxvb2RnYXRlU3RvcCIsInN0b3AiLCJzZXRGbG9vZGdhdGVHZXRFbmdpbmUiLCJmbG9vZGdhdGVHZXRFbmdpbmUiLCJnZXRFbmdpbmUiLCJnZXRTZXR0aW5nSWRNYXAiLCJmbG9vZGdhdGVTZXR0aW5nSWRNYXAiLCJzZXRTdG9yYWdlUHJvdmlkZXIiLCJnZXRTdG9yYWdlUHJvdmlkZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztpaGVBQUEsR0FBSUEseUJBQUlDLE1BQUosQ0FBSixDQUNBLEdBQUlDLDZDQUF3QkYsRUFBRUcscUJBQUYsQ0FBMEIsMkJBQUVBLHFCQUFGLDRCQUEyQixFQUEzQixDQUFsRCxDQUFKLENBQ0EsR0FBSUMsaUNBQVlGLHNCQUFzQkUsU0FBdEIsQ0FBa0MsK0NBQXNCQSxTQUF0Qiw0QkFBbUMsRUFBbkMsQ0FBOUMsQ0FBSixDQUNPLFFBQVNDLElBQVQsRUFBZSwyQ0FBRSxNQUFPTCxFQUFQLENBQVcsQ0FDNUIsUUFBU00sVUFBVCxFQUFxQiwyQ0FBRSxNQUFPTixFQUFQLENBQVcsQ0FDbEMsUUFBU08seUJBQVQsQ0FBa0NDLHFCQUFsQyxDQUF5RCwyQ0FDNUROLHNCQUFzQk0scUJBQXRCLENBQThDQSxxQkFBOUMsQ0FDSCxDQUNNLFFBQVNDLGdCQUFULENBQXlCQyxZQUF6QixDQUF1QywyQ0FDMUNSLHNCQUFzQlEsWUFBdEIsQ0FBcUNBLFlBQXJDLENBQ0gsQ0FDTSxRQUFTQyxnQkFBVCxDQUF5QkMsWUFBekIsQ0FBdUMsMkNBQzFDVixzQkFBc0JVLFlBQXRCLENBQXFDQSxZQUFyQyxDQUNILENBQ00sUUFBU0Msa0JBQVQsQ0FBMkJDLGNBQTNCLENBQTJDLDJDQUM5Q1osc0JBQXNCWSxjQUF0QixDQUF1Q0EsY0FBdkMsQ0FDSCxDQUNNLFFBQVNDLGlCQUFULENBQTBCQyxhQUExQixDQUF5QywyQ0FDNUNkLHNCQUFzQmMsYUFBdEIsQ0FBc0NBLGFBQXRDLENBQ0gsQ0FDTSxRQUFTQyxrQkFBVCxDQUEyQkMsaUJBQTNCLENBQThDLDRDQUNqRGhCLHNCQUFzQmdCLGlCQUF0QixDQUEwQ0EsaUJBQTFDLENBQ0gsQ0FDTSxRQUFTQyxvQkFBVCxDQUE2QkMsZ0JBQTdCLENBQStDLDRDQUNsRGxCLHNCQUFzQmtCLGdCQUF0QixDQUF5Q0EsZ0JBQXpDLENBQ0gsQ0FDTSxRQUFTQyxpQ0FBVCxDQUEwQ0MsNkJBQTFDLENBQXlFLDRDQUM1RXBCLHNCQUFzQm9CLDZCQUF0QixDQUFzREEsNkJBQXRELENBQ0gsQ0FDTSxRQUFTQyw0QkFBVCxDQUFxQ0Msd0JBQXJDLENBQStELDZDQUNsRXBCLFVBQVVxQixlQUFWLENBQTRCRCx3QkFBNUIsQ0FDSCxDQUNNLFFBQVNFLHVCQUFULENBQWdDQyxtQkFBaEMsQ0FBcUQsNkNBQ3hEdkIsVUFBVXdCLFVBQVYsQ0FBdUJELG1CQUF2QixDQUNILENBQ00sUUFBU0UsMkJBQVQsQ0FBb0NDLHVCQUFwQyxDQUE2RCw2Q0FDaEUxQixVQUFVMkIsY0FBVixDQUEyQkQsdUJBQTNCLENBQ0gsQ0FDTSxRQUFTRSw2QkFBVCxDQUFzQ0MseUJBQXRDLENBQWlFLDZDQUNwRTdCLFVBQVU4QixnQkFBVixDQUE2QkQseUJBQTdCLENBQ0gsQ0FDTSxRQUFTRSx1QkFBVCxDQUFnQ0MsbUJBQWhDLENBQXFELDZDQUN4RGhDLFVBQVVpQyxVQUFWLENBQXVCRCxtQkFBdkIsQ0FDSCxDQUNNLFFBQVNFLGtCQUFULENBQTJCQyxjQUEzQixDQUEyQyw2Q0FDOUNuQyxVQUFVb0MsS0FBVixDQUFrQkQsY0FBbEIsQ0FDSCxDQUNNLFFBQVNFLGlCQUFULENBQTBCQyxhQUExQixDQUF5Qyw2Q0FDNUN0QyxVQUFVdUMsSUFBVixDQUFpQkQsYUFBakIsQ0FDSCxDQUNNLFFBQVNFLHNCQUFULENBQStCQyxrQkFBL0IsQ0FBbUQsNkNBQ3REekMsVUFBVTBDLFNBQVYsQ0FBc0JELGtCQUF0QixDQUNILENBQ00sUUFBU0UsZ0JBQVQsQ0FBeUJDLHFCQUF6QixDQUFnRCw2Q0FDbkQ1QyxVQUFVMkMsZUFBVixDQUE0QkMscUJBQTVCLENBQ0gsQ0FDTSxRQUFTQyxtQkFBVCxDQUE0QkMsa0JBQTVCLENBQWdELDZDQUNuRDlDLFVBQVU4QyxrQkFBVixDQUErQkEsa0JBQS9CLENBQ0giLCJmaWxlIjoiLi9zY3JpcHRzL2FwcC9XaW5kb3cvV2luZG93LnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIHcgPSB3aW5kb3c7XHJcbnZhciBvZmZpY2VCcm93c2VyRmVlZGJhY2sgPSB3Lk9mZmljZUJyb3dzZXJGZWVkYmFjayA9IHcuT2ZmaWNlQnJvd3NlckZlZWRiYWNrIHx8IHt9O1xyXG52YXIgZmxvb2RnYXRlID0gb2ZmaWNlQnJvd3NlckZlZWRiYWNrLmZsb29kZ2F0ZSA9IG9mZmljZUJyb3dzZXJGZWVkYmFjay5mbG9vZGdhdGUgfHwge307XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXQoKSB7IHJldHVybiB3OyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRHbG9iYWwoKSB7IHJldHVybiB3OyB9XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRQcm9jZXNzVGVsZW1ldHJ5RXZlbnQocHJvY2Vzc1RlbGVtZXRyeUV2ZW50KSB7XHJcbiAgICBvZmZpY2VCcm93c2VyRmVlZGJhY2sucHJvY2Vzc1RlbGVtZXRyeUV2ZW50ID0gcHJvY2Vzc1RlbGVtZXRyeUV2ZW50O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRTZW5kVXNlckZhY3Qoc2VuZFVzZXJGYWN0KSB7XHJcbiAgICBvZmZpY2VCcm93c2VyRmVlZGJhY2suc2VuZFVzZXJGYWN0ID0gc2VuZFVzZXJGYWN0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRTZXRVaVN0cmluZ3Moc2V0VWlTdHJpbmdzKSB7XHJcbiAgICBvZmZpY2VCcm93c2VyRmVlZGJhY2suc2V0VWlTdHJpbmdzID0gc2V0VWlTdHJpbmdzO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRTaW5nbGVGZWVkYmFjayhzaW5nbGVGZWVkYmFjaykge1xyXG4gICAgb2ZmaWNlQnJvd3NlckZlZWRiYWNrLnNpbmdsZUZlZWRiYWNrID0gc2luZ2xlRmVlZGJhY2s7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHNldE11bHRpRmVlZGJhY2sobXVsdGlGZWVkYmFjaykge1xyXG4gICAgb2ZmaWNlQnJvd3NlckZlZWRiYWNrLm11bHRpRmVlZGJhY2sgPSBtdWx0aUZlZWRiYWNrO1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGZWVkYmFja1N0YXR1cyhnZXRGZWVkYmFja1N0YXR1cykge1xyXG4gICAgb2ZmaWNlQnJvd3NlckZlZWRiYWNrLmdldEZlZWRiYWNrU3RhdHVzID0gZ2V0RmVlZGJhY2tTdGF0dXM7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHNldENyZWF0ZVNjcmVlbnNob3QoY3JlYXRlU2NyZWVuc2hvdCkge1xyXG4gICAgb2ZmaWNlQnJvd3NlckZlZWRiYWNrLmNyZWF0ZVNjcmVlbnNob3QgPSBjcmVhdGVTY3JlZW5zaG90O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRJc0ZlZWRiYWNrU3VydmV5RW5hYmxlZEJ5QUFEQyhpc0ZlZWRiYWNrU3VydmV5RW5hYmxlZEJ5QUFEQykge1xyXG4gICAgb2ZmaWNlQnJvd3NlckZlZWRiYWNrLmlzRmVlZGJhY2tTdXJ2ZXlFbmFibGVkQnlBQURDID0gaXNGZWVkYmFja1N1cnZleUVuYWJsZWRCeUFBREM7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEZsb29kZ2F0ZUN1c3RvbVVYSGFuZGxlcihmbG9vZGdhdGVDdXN0b21VWEhhbmRsZXIpIHtcclxuICAgIGZsb29kZ2F0ZS5jdXN0b21VWEhhbmRsZXIgPSBmbG9vZGdhdGVDdXN0b21VWEhhbmRsZXI7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEZsb29kZ2F0ZVNob3dTdXJ2ZXkoZmxvb2RnYXRlU2hvd1N1cnZleSkge1xyXG4gICAgZmxvb2RnYXRlLnNob3dTdXJ2ZXkgPSBmbG9vZGdhdGVTaG93U3VydmV5O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGbG9vZGdhdGVTaG93Rm9ybVN1cnZleShmbG9vZGdhdGVTaG93Rm9ybVN1cnZleSkge1xyXG4gICAgZmxvb2RnYXRlLnNob3dGb3JtU3VydmV5ID0gZmxvb2RnYXRlU2hvd0Zvcm1TdXJ2ZXk7XHJcbn1cclxuZXhwb3J0IGZ1bmN0aW9uIHNldEZsb29kZ2F0ZVNob3dDdXN0b21TdXJ2ZXkoZmxvb2RnYXRlU2hvd0N1c3RvbVN1cnZleSkge1xyXG4gICAgZmxvb2RnYXRlLnNob3dDdXN0b21TdXJ2ZXkgPSBmbG9vZGdhdGVTaG93Q3VzdG9tU3VydmV5O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGbG9vZGdhdGVJbml0aWFsaXplKGZsb29kZ2F0ZUluaXRpYWxpemUpIHtcclxuICAgIGZsb29kZ2F0ZS5pbml0aWFsaXplID0gZmxvb2RnYXRlSW5pdGlhbGl6ZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Rmxvb2RnYXRlU3RhcnQoZmxvb2RnYXRlU3RhcnQpIHtcclxuICAgIGZsb29kZ2F0ZS5zdGFydCA9IGZsb29kZ2F0ZVN0YXJ0O1xyXG59XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRGbG9vZGdhdGVTdG9wKGZsb29kZ2F0ZVN0b3ApIHtcclxuICAgIGZsb29kZ2F0ZS5zdG9wID0gZmxvb2RnYXRlU3RvcDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gc2V0Rmxvb2RnYXRlR2V0RW5naW5lKGZsb29kZ2F0ZUdldEVuZ2luZSkge1xyXG4gICAgZmxvb2RnYXRlLmdldEVuZ2luZSA9IGZsb29kZ2F0ZUdldEVuZ2luZTtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2V0dGluZ0lkTWFwKGZsb29kZ2F0ZVNldHRpbmdJZE1hcCkge1xyXG4gICAgZmxvb2RnYXRlLmdldFNldHRpbmdJZE1hcCA9IGZsb29kZ2F0ZVNldHRpbmdJZE1hcDtcclxufVxyXG5leHBvcnQgZnVuY3Rpb24gc2V0U3RvcmFnZVByb3ZpZGVyKGdldFN0b3JhZ2VQcm92aWRlcikge1xyXG4gICAgZmxvb2RnYXRlLmdldFN0b3JhZ2VQcm92aWRlciA9IGdldFN0b3JhZ2VQcm92aWRlcjtcclxufVxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./scripts/app/Window/Window.ts\n"); /***/ }), /***/ "./scripts/app/WindowProperties.ts": /*!*****************************************!*\ !*** ./scripts/app/WindowProperties.ts ***! \*****************************************/ /*! exports provided: isNarrow */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"isNarrow\", function() { return isNarrow; });\nvar cov_1sy2uvkq=function(){var path=\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\WindowProperties.ts\",hash=\"14a3c5868c6bdb62cc70e284cb35f2be849a8c86\",Function=function(){}.constructor,global=new Function('return this')(),gcv=\"__coverage__\",coverageData={path:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\WindowProperties.ts\",statementMap:{\"0\":{start:{line:2,column:31},end:{line:2,column:34}},\"1\":{start:{line:3,column:4},end:{line:5,column:5}},\"2\":{start:{line:4,column:8},end:{line:4,column:56}},\"3\":{start:{line:6,column:4},end:{line:6,column:16}}},fnMap:{\"0\":{name:\"isNarrow\",decl:{start:{line:1,column:16},end:{line:1,column:24}},loc:{start:{line:1,column:27},end:{line:7,column:1}},line:1}},branchMap:{\"0\":{loc:{start:{line:3,column:4},end:{line:5,column:5}},type:\"if\",locations:[{start:{line:3,column:4},end:{line:5,column:5}},{start:{line:3,column:4},end:{line:5,column:5}}],line:3}},s:{\"0\":0,\"1\":0,\"2\":0,\"3\":0},f:{\"0\":0},b:{\"0\":[0,0]},inputSourceMap:{version:3,file:\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\WindowProperties.ts\",sourceRoot:\"\",sources:[\"D:\\\\a\\\\_work\\\\1\\\\s\\\\SDK\\\\scripts\\\\app\\\\WindowProperties.ts\"],names:[],mappings:\"AAUA,MAAM,UAAU,QAAQ;IACvB,IAAM,oBAAoB,GAAG,GAAG,CAAC;IAEjC,IAAI,MAAM,CAAC,UAAU,EAAE;QACtB,OAAO,MAAM,CAAC,UAAU,GAAG,oBAAoB,CAAC;KAChD;IAGD,OAAO,IAAI,CAAC;AACb,CAAC\",sourcesContent:[\"/**\\r\\n * WindowProperties.ts\\r\\n *\\r\\n * Module to track window properties.\\r\\n */\\r\\n\\r\\n/**\\r\\n * Is the window narrow?\\r\\n * @returns True if it is, false otherwise\\r\\n */\\r\\nexport function isNarrow(): boolean {\\r\\n\\tconst narrowScreenBoundary = 800;\\r\\n\\r\\n\\tif (window.innerWidth) {\\r\\n\\t\\treturn window.innerWidth < narrowScreenBoundary;\\r\\n\\t}\\r\\n\\r\\n\\t// if we can't find the width; go with narrow.\\r\\n\\treturn true;\\r\\n}\\r\\n\"]},_coverageSchema:\"332fd63041d2c1bcb487cc26dd0d5f7d97098a6c\"},coverage=global[gcv]||(global[gcv]={});if(coverage[path]&&coverage[path].hash===hash){return coverage[path];}coverageData.hash=hash;return coverage[path]=coverageData;}();function isNarrow(){cov_1sy2uvkq.f[0]++;var narrowScreenBoundary=(cov_1sy2uvkq.s[0]++,800);cov_1sy2uvkq.s[1]++;if(window.innerWidth){cov_1sy2uvkq.b[0][0]++;cov_1sy2uvkq.s[2]++;return window.innerWidth{var e,t,n={4572:(e,t,n)=>{"use strict";n(3867),n(5144),n(2793),n(8849),n(6368),n(6064),n(4689),n(4243),n(7977),n(869),n(3011),n(9901),n(8767),n(7452)},3867:(e,t,n)=>{n(7418),n(4239),n(968),n(1440),n(1098),n(5824),n(495),n(7967),n(3508),n(4918),n(5932),n(6974),n(5936),n(6953),n(9694),n(507),n(9548),n(2194),n(7665),n(9825),n(8486),n(6803),n(4996),n(2085),n(791),n(7525),n(8939),n(3701),n(2666),n(9377),n(2512),n(5354),n(6152),n(4077),n(6922),n(6960),n(6355),n(9120),n(3255),n(8072),n(4225),n(7747),n(1694),n(1288),n(631),n(8973),n(573),n(7528),n(1969),n(7046),n(1109),n(2648),n(3668),n(5171),n(5333),n(9815),n(3565),n(5424),n(6992),n(7926),n(5545),n(3112),n(9051),n(2759),n(926),n(7555),n(5717),n(6653),n(3252),n(5597),n(5162),n(8567),n(9375),n(3985),n(9140),n(34),n(3213),n(993),n(9583),n(9491),n(3439),n(6834),n(7191),n(7205),n(3547),n(4952),n(8153),n(1933),n(871),n(5312),n(2225),n(3994),n(1833),n(2514),n(5100),n(5402),n(3536),n(7073),n(3161),n(9429),n(6485),n(3436),n(8212),n(8254),n(6320),n(6489),n(533),n(637),n(2973),n(9714),n(7896),n(3277),n(2027),n(4242),n(7372),n(3315),n(870),n(6693),n(7644),n(9551),n(2282),n(7489),n(4669),n(7810),n(2791),n(3058),n(8992),n(1888),n(2729),n(5423),n(3154),n(7480),n(6019),n(6593),n(8592),n(6132),n(5307),n(5428),e.exports=n(3750)},2793:(e,t,n)=>{n(8158),e.exports=n(3750).Array.flatMap},5144:(e,t,n)=>{n(5172),e.exports=n(3750).Array.includes},3011:(e,t,n)=>{n(9682),e.exports=n(3750).Object.entries},7977:(e,t,n)=>{n(8430),e.exports=n(3750).Object.getOwnPropertyDescriptors},869:(e,t,n)=>{n(1970),e.exports=n(3750).Object.values},9901:(e,t,n)=>{"use strict";n(2973),n(9647),e.exports=n(3750).Promise.finally},6368:(e,t,n)=>{n(2117),e.exports=n(3750).String.padEnd},8849:(e,t,n)=>{n(1708),e.exports=n(3750).String.padStart},4689:(e,t,n)=>{n(5633),e.exports=n(3750).String.trimRight},6064:(e,t,n)=>{n(550),e.exports=n(3750).String.trimLeft},4243:(e,t,n)=>{n(6364),e.exports=n(96).f("asyncIterator")},4328:(e,t,n)=>{n(7484),e.exports=n(4462).global},7675:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},9348:(e,t,n)=>{var r=n(873);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},4462:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},108:(e,t,n)=>{var r=n(7675);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},9059:(e,t,n)=>{e.exports=!n(7704)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},2450:(e,t,n)=>{var r=n(873),o=n(9846).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},7615:(e,t,n)=>{var r=n(9846),o=n(4462),i=n(108),a=n(3821),l=n(5581),s="prototype",u=function(e,t,n){var c,f,d,h=e&u.F,p=e&u.G,g=e&u.S,m=e&u.P,v=e&u.B,b=e&u.W,y=p?o:o[t]||(o[t]={}),w=y[s],_=p?r:g?r[t]:(r[t]||{})[s];for(c in p&&(n=t),n)(f=!h&&_&&void 0!==_[c])&&l(y,c)||(d=f?_[c]:n[c],y[c]=p&&"function"!=typeof _[c]?n[c]:v&&f?i(d,r):b&&_[c]==d?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t[s]=e[s],t}(d):m&&"function"==typeof d?i(Function.call,d):d,m&&((y.virtual||(y.virtual={}))[c]=d,e&u.R&&w&&!w[c]&&a(w,c,d)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},7704:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},9846:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},5581:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},3821:(e,t,n)=>{var r=n(7487),o=n(8380);e.exports=n(9059)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},5772:(e,t,n)=>{e.exports=!n(9059)&&!n(7704)((function(){return 7!=Object.defineProperty(n(2450)("div"),"a",{get:function(){return 7}}).a}))},873:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},7487:(e,t,n)=>{var r=n(9348),o=n(5772),i=n(3563),a=Object.defineProperty;t.f=n(9059)?Object.defineProperty:function(e,t,n){if(r(e),t=i(t,!0),r(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},8380:e=>{e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},3563:(e,t,n)=>{var r=n(873);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},7484:(e,t,n)=>{var r=n(7615);r(r.G,{global:n(9846)})},1635:e=>{e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},410:(e,t,n)=>{var r=n(2153);e.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t);return+e}},6864:(e,t,n)=>{var r=n(2814)("unscopables"),o=Array.prototype;null==o[r]&&n(4005)(o,r,{}),e.exports=function(e){o[r][e]=!0}},308:(e,t,n)=>{"use strict";var r=n(5988)(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},5968:e=>{e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},3068:(e,t,n)=>{var r=n(5041);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},5454:(e,t,n)=>{"use strict";var r=n(3366),o=n(6213),i=n(4117);e.exports=[].copyWithin||function(e,t){var n=r(this),a=i(n.length),l=o(e,a),s=o(t,a),u=arguments.length>2?arguments[2]:void 0,c=Math.min((void 0===u?a:o(u,a))-s,a-l),f=1;for(s0;)s in n?n[l]=n[s]:delete n[l],l+=f,s+=f;return n}},4964:(e,t,n)=>{"use strict";var r=n(3366),o=n(6213),i=n(4117);e.exports=function(e){for(var t=r(this),n=i(t.length),a=arguments.length,l=o(a>1?arguments[1]:void 0,n),s=a>2?arguments[2]:void 0,u=void 0===s?n:o(s,n);u>l;)t[l++]=e;return t}},5120:(e,t,n)=>{var r=n(6173),o=n(4117),i=n(6213);e.exports=function(e){return function(t,n,a){var l,s=r(t),u=o(s.length),c=i(a,u);if(e&&n!=n){for(;u>c;)if((l=s[c++])!=l)return!0}else for(;u>c;c++)if((e||c in s)&&s[c]===n)return e||c||0;return!e&&-1}}},1307:(e,t,n)=>{var r=n(4772),o=n(5161),i=n(3366),a=n(4117),l=n(3900);e.exports=function(e,t){var n=1==e,s=2==e,u=3==e,c=4==e,f=6==e,d=5==e||f,h=t||l;return function(t,l,p){for(var g,m,v=i(t),b=o(v),y=r(l,p,3),w=a(b.length),_=0,k=n?h(t,w):s?h(t,0):void 0;w>_;_++)if((d||_ in b)&&(m=y(g=b[_],_,v),e))if(n)k[_]=m;else if(m)switch(e){case 3:return!0;case 5:return g;case 6:return _;case 2:k.push(g)}else if(c)return!1;return f?-1:u||c?c:k}}},5367:(e,t,n)=>{var r=n(1635),o=n(3366),i=n(5161),a=n(4117);e.exports=function(e,t,n,l,s){r(t);var u=o(e),c=i(u),f=a(u.length),d=s?f-1:0,h=s?-1:1;if(n<2)for(;;){if(d in c){l=c[d],d+=h;break}if(d+=h,s?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;s?d>=0:f>d;d+=h)d in c&&(l=t(l,c[d],d,u));return l}},350:(e,t,n)=>{var r=n(5041),o=n(3173),i=n(2814)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},3900:(e,t,n)=>{var r=n(350);e.exports=function(e,t){return new(r(e))(t)}},8090:(e,t,n)=>{"use strict";var r=n(1635),o=n(5041),i=n(1157),a=[].slice,l={};e.exports=Function.bind||function(e){var t=r(this),n=a.call(arguments,1),s=function(){var r=n.concat(a.call(arguments));return this instanceof s?function(e,t,n){if(!(t in l)){for(var r=[],o=0;o{var r=n(2153),o=n(2814)("toStringTag"),i="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:i?r(t):"Object"==(a=r(t))&&"function"==typeof t.callee?"Arguments":a}},2153:e=>{var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},1469:(e,t,n)=>{"use strict";var r=n(4727).f,o=n(3607),i=n(6601),a=n(4772),l=n(5968),s=n(6318),u=n(471),c=n(4690),f=n(9834),d=n(6875),h=n(324).fastKey,p=n(7200),g=d?"_s":"size",m=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var c=e((function(e,r){l(e,c,t,"_i"),e._t=t,e._i=o(null),e._f=void 0,e._l=void 0,e[g]=0,null!=r&&s(r,n,e[u],e)}));return i(c.prototype,{clear:function(){for(var e=p(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[g]=0},delete:function(e){var n=p(this,t),r=m(n,e);if(r){var o=r.n,i=r.p;delete n._i[r.i],r.r=!0,i&&(i.n=o),o&&(o.p=i),n._f==r&&(n._f=o),n._l==r&&(n._l=i),n[g]--}return!!r},forEach:function(e){p(this,t);for(var n,r=a(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(p(this,t),e)}}),d&&r(c.prototype,"size",{get:function(){return p(this,t)[g]}}),c},def:function(e,t,n){var r,o,i=m(e,t);return i?i.v=n:(e._l=i={i:o=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=i),r&&(r.n=i),e[g]++,"F"!==o&&(e._i[o]=i)),e},getEntry:m,setStrong:function(e,t,n){u(e,t,(function(e,n){this._t=p(e,t),this._k=n,this._l=void 0}),(function(){for(var e=this,t=e._k,n=e._l;n&&n.r;)n=n.p;return e._t&&(e._l=n=n?n.n:e._t._f)?c(0,"keys"==t?n.k:"values"==t?n.v:[n.k,n.v]):(e._t=void 0,c(1))}),n?"entries":"values",!n,!0),f(t)}}},114:(e,t,n)=>{"use strict";var r=n(6601),o=n(324).getWeak,i=n(3068),a=n(5041),l=n(5968),s=n(6318),u=n(1307),c=n(9701),f=n(7200),d=u(5),h=u(6),p=0,g=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},v=function(e,t){return d(e.a,(function(e){return e[0]===t}))};m.prototype={get:function(e){var t=v(this,e);if(t)return t[1]},has:function(e){return!!v(this,e)},set:function(e,t){var n=v(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,(function(t){return t[0]===e}));return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,i){var u=e((function(e,r){l(e,u,t,"_i"),e._t=t,e._i=p++,e._l=void 0,null!=r&&s(r,n,e[i],e)}));return r(u.prototype,{delete:function(e){if(!a(e))return!1;var n=o(e);return!0===n?g(f(this,t)).delete(e):n&&c(n,this._i)&&delete n[this._i]},has:function(e){if(!a(e))return!1;var n=o(e);return!0===n?g(f(this,t)).has(e):n&&c(n,this._i)}}),u},def:function(e,t,n){var r=o(i(t),!0);return!0===r?g(e).set(t,n):r[e._i]=n,e},ufstore:g}},8554:(e,t,n)=>{"use strict";var r=n(1790),o=n(6375),i=n(1043),a=n(6601),l=n(324),s=n(6318),u=n(5968),c=n(5041),f=n(4944),d=n(2539),h=n(7404),p=n(2232);e.exports=function(e,t,n,g,m,v){var b=r[e],y=b,w=m?"set":"add",_=y&&y.prototype,k={},x=function(e){var t=_[e];i(_,e,"delete"==e||"has"==e?function(e){return!(v&&!c(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return v&&!c(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof y&&(v||_.forEach&&!f((function(){(new y).entries().next()})))){var S=new y,C=S[w](v?{}:-0,1)!=S,E=f((function(){S.has(1)})),T=d((function(e){new y(e)})),B=!v&&f((function(){for(var e=new y,t=5;t--;)e[w](t,t);return!e.has(-0)}));T||((y=t((function(t,n){u(t,y,e);var r=p(new b,t,y);return null!=n&&s(n,m,r[w],r),r}))).prototype=_,_.constructor=y),(E||B)&&(x("delete"),x("has"),m&&x("get")),(B||C)&&x(w),v&&_.clear&&delete _.clear}else y=g.getConstructor(t,e,m,w),a(y.prototype,n),l.NEED=!0;return h(y,e),k[e]=y,o(o.G+o.W+o.F*(y!=b),k),v||g.setStrong(y,e,m),y}},3750:e=>{var t=e.exports={version:"2.6.12"};"number"==typeof __e&&(__e=t)},5299:(e,t,n)=>{"use strict";var r=n(4727),o=n(9700);e.exports=function(e,t,n){t in e?r.f(e,t,o(0,n)):e[t]=n}},4772:(e,t,n)=>{var r=n(1635);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},3505:(e,t,n)=>{"use strict";var r=n(4944),o=Date.prototype.getTime,i=Date.prototype.toISOString,a=function(e){return e>9?e:"0"+e};e.exports=r((function(){return"0385-07-25T07:06:39.999Z"!=i.call(new Date(-50000000000001))}))||!r((function(){i.call(new Date(NaN))}))?function(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var e=this,t=e.getUTCFullYear(),n=e.getUTCMilliseconds(),r=t<0?"-":t>9999?"+":"";return r+("00000"+Math.abs(t)).slice(r?-6:-4)+"-"+a(e.getUTCMonth()+1)+"-"+a(e.getUTCDate())+"T"+a(e.getUTCHours())+":"+a(e.getUTCMinutes())+":"+a(e.getUTCSeconds())+"."+(n>99?n:"0"+a(n))+"Z"}:i},9283:(e,t,n)=>{"use strict";var r=n(3068),o=n(3824),i="number";e.exports=function(e){if("string"!==e&&e!==i&&"default"!==e)throw TypeError("Incorrect hint");return o(r(this),e!=i)}},3496:e=>{e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},6875:(e,t,n)=>{e.exports=!n(4944)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},5498:(e,t,n)=>{var r=n(5041),o=n(1790).document,i=r(o)&&r(o.createElement);e.exports=function(e){return i?o.createElement(e):{}}},2980:e=>{e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},2121:(e,t,n)=>{var r=n(2663),o=n(4268),i=n(4313);e.exports=function(e){var t=r(e),n=o.f;if(n)for(var a,l=n(e),s=i.f,u=0;l.length>u;)s.call(e,a=l[u++])&&t.push(a);return t}},6375:(e,t,n)=>{var r=n(1790),o=n(3750),i=n(4005),a=n(1043),l=n(4772),s="prototype",u=function(e,t,n){var c,f,d,h,p=e&u.F,g=e&u.G,m=e&u.S,v=e&u.P,b=e&u.B,y=g?r:m?r[t]||(r[t]={}):(r[t]||{})[s],w=g?o:o[t]||(o[t]={}),_=w[s]||(w[s]={});for(c in g&&(n=t),n)d=((f=!p&&y&&void 0!==y[c])?y:n)[c],h=b&&f?l(d,r):v&&"function"==typeof d?l(Function.call,d):d,y&&a(y,c,d,e&u.U),w[c]!=d&&i(w,c,h),v&&_[c]!=d&&(_[c]=d)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},267:(e,t,n)=>{var r=n(2814)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},4944:e=>{e.exports=function(e){try{return!!e()}catch(e){return!0}}},2868:(e,t,n)=>{"use strict";n(3436);var r=n(1043),o=n(4005),i=n(4944),a=n(3496),l=n(2814),s=n(9064),u=l("species"),c=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),f=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var d=l(e),h=!i((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),p=h?!i((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[u]=function(){return n}),n[d](""),!t})):void 0;if(!h||!p||"replace"===e&&!c||"split"===e&&!f){var g=/./[d],m=n(a,d,""[e],(function(e,t,n,r,o){return t.exec===s?h&&!o?{done:!0,value:g.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),v=m[0],b=m[1];r(String.prototype,e,v),o(RegExp.prototype,d,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},270:(e,t,n)=>{"use strict";var r=n(3068);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},2826:(e,t,n)=>{"use strict";var r=n(3173),o=n(5041),i=n(4117),a=n(4772),l=n(2814)("isConcatSpreadable");e.exports=function e(t,n,s,u,c,f,d,h){for(var p,g,m=c,v=0,b=!!d&&a(d,h,3);v0)m=e(t,n,p,i(p.length),m,f-1)-1;else{if(m>=9007199254740991)throw TypeError();t[m]=p}m++}v++}return m}},6318:(e,t,n)=>{var r=n(4772),o=n(2496),i=n(284),a=n(3068),l=n(4117),s=n(3890),u={},c={},f=e.exports=function(e,t,n,f,d){var h,p,g,m,v=d?function(){return e}:s(e),b=r(n,f,t?2:1),y=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(i(v)){for(h=l(e.length);h>y;y++)if((m=t?b(a(p=e[y])[0],p[1]):b(e[y]))===u||m===c)return m}else for(g=v.call(e);!(p=g.next()).done;)if((m=o(g,b,p.value,t))===u||m===c)return m};f.BREAK=u,f.RETURN=c},8189:(e,t,n)=>{e.exports=n(7108)("native-function-to-string",Function.toString)},1790:e=>{var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},9701:e=>{var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},4005:(e,t,n)=>{var r=n(4727),o=n(9700);e.exports=n(6875)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},9460:(e,t,n)=>{var r=n(1790).document;e.exports=r&&r.documentElement},932:(e,t,n)=>{e.exports=!n(6875)&&!n(4944)((function(){return 7!=Object.defineProperty(n(5498)("div"),"a",{get:function(){return 7}}).a}))},2232:(e,t,n)=>{var r=n(5041),o=n(8186).set;e.exports=function(e,t,n){var i,a=t.constructor;return a!==n&&"function"==typeof a&&(i=a.prototype)!==n.prototype&&r(i)&&o&&o(e,i),e}},1157:e=>{e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},5161:(e,t,n)=>{var r=n(2153);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},284:(e,t,n)=>{var r=n(6594),o=n(2814)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},3173:(e,t,n)=>{var r=n(2153);e.exports=Array.isArray||function(e){return"Array"==r(e)}},1802:(e,t,n)=>{var r=n(5041),o=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&o(e)===e}},5041:e=>{e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},1531:(e,t,n)=>{var r=n(5041),o=n(2153),i=n(2814)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},2496:(e,t,n)=>{var r=n(3068);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(t){var i=e.return;throw void 0!==i&&r(i.call(e)),t}}},4968:(e,t,n)=>{"use strict";var r=n(3607),o=n(9700),i=n(7404),a={};n(4005)(a,n(2814)("iterator"),(function(){return this})),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},471:(e,t,n)=>{"use strict";var r=n(5446),o=n(6375),i=n(1043),a=n(4005),l=n(6594),s=n(4968),u=n(7404),c=n(9595),f=n(2814)("iterator"),d=!([].keys&&"next"in[].keys()),h="keys",p="values",g=function(){return this};e.exports=function(e,t,n,m,v,b,y){s(n,t,m);var w,_,k,x=function(e){if(!d&&e in T)return T[e];switch(e){case h:case p:return function(){return new n(this,e)}}return function(){return new n(this,e)}},S=t+" Iterator",C=v==p,E=!1,T=e.prototype,B=T[f]||T["@@iterator"]||v&&T[v],P=B||x(v),N=v?C?x("entries"):P:void 0,O="Array"==t&&T.entries||B;if(O&&(k=c(O.call(new e)))!==Object.prototype&&k.next&&(u(k,S,!0),r||"function"==typeof k[f]||a(k,f,g)),C&&B&&B.name!==p&&(E=!0,P=function(){return B.call(this)}),r&&!y||!d&&!E&&T[f]||a(T,f,P),l[t]=P,l[S]=g,v)if(w={values:C?P:x(p),keys:b?P:x(h),entries:N},y)for(_ in w)_ in T||i(T,_,w[_]);else o(o.P+o.F*(d||E),t,w);return w}},2539:(e,t,n)=>{var r=n(2814)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],a=i[r]();a.next=function(){return{done:n=!0}},i[r]=function(){return a},e(i)}catch(e){}return n}},4690:e=>{e.exports=function(e,t){return{value:t,done:!!e}}},6594:e=>{e.exports={}},5446:e=>{e.exports=!1},2631:e=>{var t=Math.expm1;e.exports=!t||t(10)>22025.465794806718||t(10)<22025.465794806718||-2e-17!=t(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:t},8946:(e,t,n)=>{var r=n(8941),o=Math.pow,i=o(2,-52),a=o(2,-23),l=o(2,127)*(2-a),s=o(2,-126);e.exports=Math.fround||function(e){var t,n,o=Math.abs(e),u=r(e);return ol||n!=n?u*(1/0):u*n}},3993:e=>{e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},8941:e=>{e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},324:(e,t,n)=>{var r=n(1415)("meta"),o=n(5041),i=n(9701),a=n(4727).f,l=0,s=Object.isExtensible||function(){return!0},u=!n(4944)((function(){return s(Object.preventExtensions({}))})),c=function(e){a(e,r,{value:{i:"O"+ ++l,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!s(e))return"F";if(!t)return"E";c(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!s(e))return!0;if(!t)return!1;c(e)}return e[r].w},onFreeze:function(e){return u&&f.NEED&&s(e)&&!i(e,r)&&c(e),e}}},6304:(e,t,n)=>{var r=n(1790),o=n(708).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,l=r.Promise,s="process"==n(2153)(a);e.exports=function(){var e,t,n,u=function(){var r,o;for(s&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(s)n=function(){a.nextTick(u)};else if(!i||r.navigator&&r.navigator.standalone)if(l&&l.resolve){var c=l.resolve(void 0);n=function(){c.then(u)}}else n=function(){o.call(r,u)};else{var f=!0,d=document.createTextNode("");new i(u).observe(d,{characterData:!0}),n=function(){d.data=f=!f}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},2074:(e,t,n)=>{"use strict";var r=n(1635);function o(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},5014:(e,t,n)=>{"use strict";var r=n(6875),o=n(2663),i=n(4268),a=n(4313),l=n(3366),s=n(5161),u=Object.assign;e.exports=!u||n(4944)((function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach((function(e){t[e]=e})),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r}))?function(e,t){for(var n=l(e),u=arguments.length,c=1,f=i.f,d=a.f;u>c;)for(var h,p=s(arguments[c++]),g=f?o(p).concat(f(p)):o(p),m=g.length,v=0;m>v;)h=g[v++],r&&!d.call(p,h)||(n[h]=p[h]);return n}:u},3607:(e,t,n)=>{var r=n(3068),o=n(9026),i=n(2980),a=n(3590)("IE_PROTO"),l=function(){},s="prototype",u=function(){var e,t=n(5498)("iframe"),r=i.length;for(t.style.display="none",n(9460).appendChild(t),t.src="http://approjects.co.za/?big=javascript:",(e=t.contentWindow.document).open(),e.write("