Last active
June 24, 2019 23:11
-
-
Save asaschachar/0cfe05bd709baf992f576f10bb70cf62 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
addEventListener('fetch', event => { | |
event.respondWith(handleRequest(event.request)) | |
}) | |
/** | |
* Fetch and log a request | |
* @param {Request} request | |
*/ | |
async function handleRequest(request) { | |
try { | |
console.log('Got request', request) | |
// 0. If Optimizely cookie exists, do a pass-through request | |
if (hasOptimizelyDecision(request)) { | |
const cookieString = request.headers.get('Cookie') || '' | |
const res = cookieString.match(/optimizely_bucket_map=(\S[^; ]*)/) | |
const cacheKey = request.url + res[1] | |
console.log('Cache Key:', cacheKey) | |
//request.url = request.url + `?${cacheKey}` | |
const response = await fetch(request, { cf: { cacheKey: cacheKey } }) | |
console.log('Got response', response) | |
console.log('Map response:', new Map(response.headers)) | |
return response | |
} else { | |
// 1. Load Optimizely | |
const datafile = await fetch('https://cdn.optimizely.com/datafiles/QMVJcUKEJZFg8pQ2jhAybK.json').then(r => r.json()) | |
console.log('Datafile:', datafile); | |
const optimizely = loadOptimizely(); | |
const client = optimizely.createInstance({ | |
datafile, | |
eventDispatcher: { | |
dispatchEvent: ({httpVerb, url, params}) => { | |
// TODO: Show how to relay events to send from browser or other server | |
console.log(`Intercepted ${httpVerb} ${url} request:`, params); | |
} | |
}, | |
clientEngine: 'javascript-sdk', | |
clientVersion: '0.1.0' | |
}); | |
console.log('Client: ', client) | |
// 2. Make Decision at Edge | |
// Use customer supplied ID or generate new. Either way, set to optimizelyEdgeDeciderId cookie. | |
const uId = getOrSetUserId(request); | |
const bucketString = bucketUser(datafile.experiments, uId, client) | |
console.log('UserId:', uId) | |
console.log('BucketString:', bucketString) | |
let today = new Date(); | |
let expireDate = new Date(); | |
expireDate.setDate(today.getDate() + 30); | |
// 3. Create the Optimizely Cookies | |
let optlyCookies = []; | |
optlyCookies.push(`optimizelyEdgeDeciderId=${uId}; Expires=${expireDate}; Path='/';`) | |
optlyCookies.push(`optimizely_bucket_map=${encode(bucketString)}; Expires=${expireDate}; Path='/';`) | |
// 4. Make the request to origin and use the response to add the cookies | |
const optlyBucketMap = `optimizely_bucket_map=${bucketString}` | |
let newRequest = new Request(request) | |
optlyCookies.forEach(oC => { newRequest.headers.append('Set-Cookie', oC); }); | |
let response = await fetch(request) | |
let newResponse = new Response(response.body, { | |
'status': response.status, | |
'statusText': response.statusText, | |
'headers': response.headers | |
}) | |
optlyCookies.forEach(oC => { newResponse.headers.append('Set-Cookie', oC); }); | |
return newResponse | |
} | |
} catch (err) { | |
// Display the error stack. | |
return new Response(err.stack || err) | |
} | |
} | |
function hasOptimizelyDecision(request) { | |
// Get cookie from the original request | |
const cookie = request.headers.get('Cookie') || ''; | |
const hasDecision = cookie.match(/optimizely_bucket_map=(\w+)/); | |
return !!hasDecision; | |
} | |
function getOrSetUserId(request) { | |
// Get cookie from the original request | |
const cookie = request.headers.get('Cookie'); | |
console.log('Cookies:', cookie) | |
let userId; | |
if (cookie) { | |
// Use the userId if there is one already | |
const hasUserId = cookie.match(/optimizelyEdgeDeciderId=(\w+)/); | |
if (hasUserId) { | |
const match = cookie.match(/optimizelyEdgeDeciderId=(\S[^; ]*)/) | |
const userId = match[1] | |
console.log('optimizelyEdgeDeciderId:', userId) | |
return userId; | |
} else { | |
console.log('User does not have optimizelyEdgeDeciderId set') | |
} | |
} | |
// Otherwise generate a random ID | |
return `oeu${Date.now()}r${Math.random()}`; | |
} | |
// Bucket user for all experiments in the datafile | |
function bucketUser(experiments, uId, client) { | |
const optimizelyDecisions = experiments.reduce((results, experiment) => { | |
const variation = client.activate(experiment.key, uId); | |
results[experiment.key] = variation; | |
return results | |
}, {}) | |
return JSON.stringify(optimizelyDecisions) | |
} | |
function loadOptimizely() { | |
// Load the Optimizely SDK from source to avoiding having to deal with UMD | |
let exports = {}; | |
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.optimizelyClient=t():e.optimizelyClient=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=84)}([function(e,t){var r=Array.isArray;e.exports=r},function(e,t){t.LOG_LEVEL={NOTSET:0,DEBUG:1,INFO:2,WARNING:3,ERROR:4},t.ERROR_MESSAGES={EXPERIMENT_KEY_NOT_IN_DATAFILE:"%s: Experiment key %s is not in datafile.",FEATURE_NOT_IN_DATAFILE:"%s: Feature key %s is not in datafile.",IMPROPERLY_FORMATTED_EXPERIMENT:"%s: Experiment key %s is improperly formatted.",INVALID_ATTRIBUTES:"%s: Provided attributes are in an invalid format.",INVALID_BUCKETING_ID:"%s: Unable to generate hash for bucketing ID %s: %s",INVALID_DATAFILE:"%s: Datafile is invalid - property %s: %s",INVALID_DATAFILE_MALFORMED:"%s: Datafile is invalid because it is malformed.",INVALID_JSON:"%s: JSON object is not valid.",INVALID_ERROR_HANDLER:'%s: Provided "errorHandler" is in an invalid format.',INVALID_EVENT_DISPATCHER:'%s: Provided "eventDispatcher" is in an invalid format.',INVALID_EVENT_KEY:"%s: Event key %s is not in datafile.",INVALID_EVENT_TAGS:"%s: Provided event tags are in an invalid format.",INVALID_EXPERIMENT_KEY:"%s: Experiment key %s is not in datafile.",INVALID_EXPERIMENT_ID:"%s: Experiment ID %s is not in datafile.",INVALID_GROUP_ID:"%s: Group ID %s is not in datafile.",INVALID_LOGGER:'%s: Provided "logger" is in an invalid format.',INVALID_ROLLOUT_ID:"%s: Invalid rollout ID %s attached to feature %s",INVALID_USER_ID:"%s: Provided user ID is in an invalid format.",INVALID_USER_PROFILE_SERVICE:"%s: Provided user profile service instance is in an invalid format: %s.",JSON_SCHEMA_EXPECTED:"%s: JSON schema expected.",NO_DATAFILE_SPECIFIED:"%s: No datafile specified. Cannot start optimizely.",NO_JSON_PROVIDED:"%s: No JSON object to validate against schema.",NO_VARIATION_FOR_EXPERIMENT_KEY:"%s: No variation key %s defined in datafile for experiment %s.",UNDEFINED_ATTRIBUTE:"%s: Provided attribute: %s has an undefined value.",UNABLE_TO_CAST_VALUE:"%s: Unable to cast value %s to type %s, returning null.",USER_NOT_IN_FORCED_VARIATION:"%s: User %s is not in the forced variation map. Cannot remove their forced variation.",USER_PROFILE_LOOKUP_ERROR:'%s: Error while looking up user profile for user ID "%s": %s.',USER_PROFILE_SAVE_ERROR:'%s: Error while saving user profile for user ID "%s": %s.',VARIABLE_KEY_NOT_IN_DATAFILE:'%s: Variable with key "%s" associated with feature with key "%s" is not in datafile.',VARIATION_ID_NOT_IN_DATAFILE:"%s: No variation ID %s defined in datafile for experiment %s.",VARIATION_ID_NOT_IN_DATAFILE_NO_EXPERIMENT:"%s: Variation ID %s is not in the datafile."},t.LOG_MESSAGES={ACTIVATE_USER:"%s: Activating user %s in experiment %s.",DISPATCH_CONVERSION_EVENT:"%s: Dispatching conversion event to URL %s with params %s.",DISPATCH_IMPRESSION_EVENT:"%s: Dispatching impression event to URL %s with params %s.",DEPRECATED_EVENT_VALUE:"%s: Event value is deprecated in %s call.",EVENT_NOT_ASSOCIATED_WITH_EXPERIMENTS:"%s: Event %s is not associated with any running experiments.",EXPERIMENT_NOT_RUNNING:"%s: Experiment %s is not running.",FEATURE_ENABLED_FOR_USER:"%s: Feature %s is enabled for user %s.",FEATURE_NOT_ENABLED_FOR_USER:"%s: Feature %s is not enabled for user %s.",FEATURE_HAS_NO_EXPERIMENTS:"%s: Feature %s is not attached to any experiments.",FAILED_TO_PARSE_VALUE:'%s: Failed to parse event value "%s" from event tags.',FAILED_TO_PARSE_REVENUE:'%s: Failed to parse revenue value "%s" from event tags.',FORCED_BUCKETING_FAILED:"%s: Variation key %s is not in datafile. Not activating user %s.",INVALID_OBJECT:"%s: Optimizely object is not valid. Failing %s.",INVALID_CLIENT_ENGINE:"%s: Invalid client engine passed: %s. Defaulting to node-sdk.",INVALID_VARIATION_ID:"%s: Bucketed into an invalid variation ID. Returning null.",NOTIFICATION_LISTENER_EXCEPTION:"%s: Notification listener for (%s) threw exception: %s",NO_ROLLOUT_EXISTS:"%s: There is no rollout of feature %s.",NOT_ACTIVATING_USER:"%s: Not activating user %s for experiment %s.",NOT_TRACKING_USER:"%s: Not tracking user %s.",NOT_TRACKING_USER_FOR_EXPERIMENT:"%s: Not tracking user %s for experiment %s.",PARSED_REVENUE_VALUE:'%s: Parsed revenue value "%s" from event tags.',PARSED_NUMERIC_VALUE:'%s: Parsed event value "%s" from event tags.',RETURNING_STORED_VARIATION:'%s: Returning previously activated variation "%s" of experiment "%s" for user "%s" from user profile.',ROLLOUT_HAS_NO_EXPERIMENTS:"%s: Rollout of feature %s has no experiments",SAVED_VARIATION:'%s: Saved variation "%s" of experiment "%s" for user "%s".',SAVED_VARIATION_NOT_FOUND:"%s: User %s was previously bucketed into variation with ID %s for experiment %s, but no matching variation was found.",SHOULD_NOT_DISPATCH_ACTIVATE:'%s: Experiment %s is in "Launched" state. Not activating user.',SHOULD_NOT_DISPATCH_TRACK:'%s: Experiment %s is in "Launched" state. Not tracking user for it.',SKIPPING_JSON_VALIDATION:"%s: Skipping JSON schema validation.",TRACK_EVENT:"%s: Tracking event %s for user %s.",USER_ASSIGNED_TO_VARIATION_BUCKET:"%s: Assigned variation bucket %s to user %s.",USER_ASSIGNED_TO_EXPERIMENT_BUCKET:"%s: Assigned experiment bucket %s to user %s.",USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP:"%s: User %s is in experiment %s of group %s.",USER_BUCKETED_INTO_TARGETING_RULE:"%s: User %s bucketed into targeting rule %s.",USER_IN_FEATURE_EXPERIMENT:"%s: User %s is in variation %s of experiment %s on the feature %s.",USER_IN_ROLLOUT:"%s: User %s is in rollout of feature %s.",USER_BUCKETED_INTO_EVERYONE_TARGETING_RULE:"%s: User %s bucketed into everyone targeting rule.",USER_NOT_BUCKETED_INTO_EVERYONE_TARGETING_RULE:"%s: User %s not bucketed into everyone targeting rule due to traffic allocation.",USER_NOT_BUCKETED_INTO_EXPERIMENT_IN_GROUP:"%s: User %s is not in experiment %s of group %s.",USER_NOT_BUCKETED_INTO_ANY_EXPERIMENT_IN_GROUP:"%s: User %s is not in any experiment of group %s.",USER_NOT_BUCKETED_INTO_TARGETING_RULE:"%s User %s not bucketed into targeting rule %s due to traffic allocation. Trying everyone rule.",USER_NOT_IN_FEATURE_EXPERIMENT:"%s: User %s is not in any experiment on the feature %s.",USER_NOT_IN_ROLLOUT:"%s: User %s is not in rollout of feature %s.",USER_FORCED_IN_VARIATION:"%s: User %s is forced in variation %s.",USER_MAPPED_TO_FORCED_VARIATION:"%s: Set variation %s for experiment %s and user %s in the forced variation map.",USER_DOESNT_MEET_CONDITIONS_FOR_TARGETING_RULE:"%s: User %s does not meet conditions for targeting rule %s.",USER_MEETS_CONDITIONS_FOR_TARGETING_RULE:"%s: User %s meets conditions for targeting rule %s.",USER_HAS_VARIATION:"%s: User %s is in variation %s of experiment %s.",USER_HAS_FORCED_VARIATION:"%s: Variation %s is mapped to experiment %s and user %s in the forced variation map.",USER_HAS_NO_VARIATION:"%s: User %s is in no variation of experiment %s.",USER_HAS_NO_FORCED_VARIATION:"%s: User %s is not in the forced variation map.",USER_HAS_NO_FORCED_VARIATION_FOR_EXPERIMENT:"%s: No experiment %s mapped to user %s in the forced variation map.",USER_NOT_IN_ANY_EXPERIMENT:"%s: User %s is not in any experiment of group %s.",USER_NOT_IN_EXPERIMENT:"%s: User %s does not meet conditions to be in experiment %s.",USER_RECEIVED_DEFAULT_VARIABLE_VALUE:'%s: User "%s" is not in any variation or rollout rule. Returning default value for variable "%s" of feature flag "%s".',USER_RECEIVED_VARIABLE_VALUE:'%s: Value for variable "%s" of feature flag "%s" is %s for user "%s"',VALID_DATAFILE:"%s: Datafile is valid.",VALID_USER_PROFILE_SERVICE:"%s: Valid user profile service provided.",VARIATION_REMOVED_FOR_USER:"%s: Variation mapped to experiment %s has been removed for user %s.",VARIABLE_REQUESTED_WITH_WRONG_TYPE:'%s: Requested variable type "%s", but variable is of type "%s". Use correct API to retrieve value. Returning None.'},t.RESERVED_EVENT_KEYWORDS={REVENUE:"revenue",VALUE:"value"},t.JAVASCRIPT_CLIENT_ENGINE="javascript-sdk",t.NEW_OPTIMIZELY_VERSION="2",t.NODE_CLIENT_ENGINE="node-sdk",t.NODE_CLIENT_VERSION="2.0.0-beta1",t.NOTIFICATION_TYPES={ACTIVATE:"ACTIVATE:experiment, user_id,attributes, variation, event",TRACK:"TRACK:event_key, user_id, attributes, event_tags, event"},t.DECISION_SOURCES={EXPERIMENT:"experiment",ROLLOUT:"rollout"},t.FEATURE_VARIABLE_TYPES={BOOLEAN:"boolean",DOUBLE:"double",INTEGER:"integer",STRING:"string"}},function(e,t){var r=function(){function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e,t){for(var r=[];t>0;r[--t]=e);return r.join("")}var n=function(){return n.cache.hasOwnProperty(arguments[0])||(n.cache[arguments[0]]=n.parse(arguments[0])),n.format.call(null,n.cache[arguments[0]],arguments)};return n.object_stringify=function(e,t,r,i){var o="";if(null!=e)switch(typeof e){case"function":return"[Function"+(e.name?": "+e.name:"")+"]";case"object":if(e instanceof Error)return"["+e.toString()+"]";if(t>=r)return"[Object]";if(i&&(i=i.slice(0),i.push(e)),null!=e.length){o+="[";var a=[];for(var s in e)i&&i.indexOf(e[s])>=0?a.push("[Circular]"):a.push(n.object_stringify(e[s],t+1,r,i));o+=a.join(", ")+"]"}else{if("getMonth"in e)return"Date("+e+")";o+="{";var a=[];for(var u in e)e.hasOwnProperty(u)&&(i&&i.indexOf(e[u])>=0?a.push(u+": [Circular]"):a.push(u+": "+n.object_stringify(e[u],t+1,r,i)));o+=a.join(", ")+"}"}return o;case"string":return'"'+e+'"'}return""+e},n.format=function(i,o){var a,s,u,c,f,l,p,E=1,_=i.length,g="",v=[];for(s=0;s<_;s++)if("string"===(g=e(i[s])))v.push(i[s]);else if("array"===g){if(c=i[s],c[2])for(a=o[E],u=0;u<c[2].length;u++){if(!a.hasOwnProperty(c[2][u]))throw new Error(r('[sprintf] property "%s" does not exist',c[2][u]));a=a[c[2][u]]}else a=c[1]?o[c[1]]:o[E++];if(/[^sO]/.test(c[8])&&"number"!=e(a))throw new Error(r('[sprintf] expecting number but found %s "'+a+'"',e(a)));switch(c[8]){case"b":a=a.toString(2);break;case"c":a=String.fromCharCode(a);break;case"d":a=parseInt(a,10);break;case"e":a=c[7]?a.toExponential(c[7]):a.toExponential();break;case"f":a=c[7]?parseFloat(a).toFixed(c[7]):parseFloat(a);break;case"O":a=n.object_stringify(a,0,parseInt(c[7])||5);break;case"o":a=a.toString(8);break;case"s":a=(a=String(a))&&c[7]?a.substring(0,c[7]):a;break;case"u":a=Math.abs(a);break;case"x":a=a.toString(16);break;case"X":a=a.toString(16).toUpperCase()}a=/[def]/.test(c[8])&&c[3]&&a>=0?"+"+a:a,l=c[4]?"0"==c[4]?"0":c[4].charAt(1):" ",p=c[6]-String(a).length,f=c[6]?t(l,p):"",v.push(c[5]?a+f:f+a)}return v.join("")},n.cache={},n.parse=function(e){for(var t=e,r=[],n=[],i=0;t;){if(null!==(r=/^[^\x25]+/.exec(t)))n.push(r[0]);else if(null!==(r=/^\x25{2}/.exec(t)))n.push("%");else{if(null===(r=/^\x25(?:([1-9]\d*)\$|\(([^\)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosOuxX])/.exec(t)))throw new Error("[sprintf] "+t);if(r[2]){i|=1;var o=[],a=r[2],s=[];if(null===(s=/^([a-z_][a-z_\d]*)/i.exec(a)))throw new Error("[sprintf] "+a);for(o.push(s[1]);""!==(a=a.substring(s[0].length));)if(null!==(s=/^\.([a-z_][a-z_\d]*)/i.exec(a)))o.push(s[1]);else{if(null===(s=/^\[(\d+)\]/.exec(a)))throw new Error("[sprintf] "+a);o.push(s[1])}r[2]=o}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push(r)}t=t.substring(r[0].length)}return n},n}(),n=function(e,t){var n=t.slice();return n.unshift(e),r.apply(null,n)};e.exports=r,r.sprintf=r,r.vsprintf=n},function(e,t,r){var n=r(59),i="object"==typeof self&&self&&self.Object===Object&&self,o=n||i||Function("return this")();e.exports=o},function(e,t,r){var n=r(206);e.exports={assign:r(186),assignIn:r(187),cloneDeep:r(188),currentTimestamp:function(){return Math.round((new Date).getTime())},isArray:r(0),isEmpty:r(194),keyBy:r(197),filter:r(190),forEach:r(191),forOwn:r(67),map:r(198),reduce:r(201),uuid:function(){return n.v4()},values:r(204)}},function(e,t,r){function n(e,t){var r=o(e,t);return i(r)?r:void 0}var i=r(113),o=r(146);e.exports=n},function(e,t,r){function n(e){return null!=e&&o(e.length)&&!i(e)}var i=r(68),o=r(39);e.exports=n},function(e,t){function r(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=r},function(e,t){function r(e){return null!=e&&"object"==typeof e}e.exports=r},function(e,t,r){function n(e){return a(e)?i(e):o(e)}var i=r(47),o=r(53),a=r(6);e.exports=n},function(e,t,r){function n(e,t,r,n){var a=!r;r||(r={});for(var s=-1,u=t.length;++s<u;){var c=t[s],f=n?n(r[c],e[c],c,r,e):void 0;void 0===f&&(f=e[c]),a?o(r,c,f):i(r,c,f)}return r}var i=r(30),o=r(31);e.exports=n},function(e,t,r){var n=r(3),i=n.Symbol;e.exports=i},function(e,t,r){var n=r(49),i=r(139),o=i(n);e.exports=o},function(e,t,r){function n(e){return null==e?void 0===e?u:s:c&&c in Object(e)?o(e):a(e)}var i=r(11),o=r(145),a=r(173),s="[object Null]",u="[object Undefined]",c=i?i.toStringTag:void 0;e.exports=n},function(e,t,r){var n=r(91),i=r(26),o=r(93),a=r(94),s=r(96),u=r(13),c=r(66),f=c(n),l=c(i),p=c(o),E=c(a),_=c(s),g=u;(n&&"[object DataView]"!=g(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=g(new i)||o&&"[object Promise]"!=g(o.resolve())||a&&"[object Set]"!=g(new a)||s&&"[object WeakMap]"!=g(new s))&&(g=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case f:return"[object DataView]";case l:return"[object Map]";case p:return"[object Promise]";case E:return"[object Set]";case _:return"[object WeakMap]"}return t}),e.exports=g},function(e,t){function r(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}var n=Object.prototype;e.exports=r},function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(159),o=r(160),a=r(161),s=r(162),u=r(163);n.prototype.clear=i,n.prototype.delete=o,n.prototype.get=a,n.prototype.has=s,n.prototype.set=u,e.exports=n},function(e,t,r){function n(e,t){for(var r=e.length;r--;)if(i(e[r][0],t))return r;return-1}var i=r(22);e.exports=n},function(e,t,r){function n(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?s(e)?o(e[0],e[1]):i(e):u(e)}var i=r(118),o=r(119),a=r(23),s=r(0),u=r(200);e.exports=n},function(e,t,r){function n(e,t){var r=e.__data__;return i(t)?r["string"==typeof t?"string":"hash"]:r.map}var i=r(157);e.exports=n},function(e,t,r){var n=r(5),i=n(Object,"create");e.exports=i},function(e,t,r){function n(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}var i=r(40),o=1/0;e.exports=n},function(e,t){function r(e,t){return e===t||e!==e&&t!==t}e.exports=r},function(e,t){function r(e){return e}e.exports=r},function(e,t,r){(function(e){var n=r(3),i=r(202),o="object"==typeof t&&t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===o,u=s?n.Buffer:void 0,c=u?u.isBuffer:void 0,f=c||i;e.exports=f}).call(t,r(43)(e))},function(e,t,r){var n=r(4),i=r(1),o=r(2),a="PROJECT_CONFIG",s=i.ERROR_MESSAGES,u=i.LOG_MESSAGES,c=i.LOG_LEVEL,f=i.FEATURE_VARIABLE_TYPES;e.exports={createProjectConfig:function(e){var t=n.cloneDeep(e);n.forEach(t.audiences,function(e){e.conditions=JSON.parse(e.conditions)}),t.attributeKeyMap=n.keyBy(t.attributes,"key"),t.eventKeyMap=n.keyBy(t.events,"key"),t.groupIdMap=n.keyBy(t.groups,"id");var r;return n.forEach(t.groupIdMap,function(e,i){r=n.cloneDeep(e.experiments),n.forEach(r,function(e){t.experiments.push(n.assignIn(e,{groupId:i}))})}),t.rolloutIdMap=n.keyBy(t.rollouts||[],"id"),n.forOwn(t.rolloutIdMap,function(e){n.forEach(e.experiments||[],function(e){t.experiments.push(n.cloneDeep(e)),e.variationKeyMap=n.keyBy(e.variations,"key")})}),t.experimentKeyMap=n.keyBy(t.experiments,"key"),t.experimentIdMap=n.keyBy(t.experiments,"id"),t.variationIdMap={},t.variationVariableUsageMap={},n.forEach(t.experiments,function(e){e.variationKeyMap=n.keyBy(e.variations,"key"),n.assignIn(t.variationIdMap,n.keyBy(e.variations,"id")),n.forOwn(e.variationKeyMap,function(e){e.variables&&(t.variationVariableUsageMap[e.id]=n.keyBy(e.variables,"id"))})}),t.forcedVariationMap={},t.featureKeyMap=n.keyBy(t.featureFlags||[],"key"),n.forOwn(t.featureKeyMap,function(e){e.variableKeyMap=n.keyBy(e.variables,"key"),n.forEach(e.experimentIds||[],function(r){var n=t.experimentIdMap[r];if(n.groupId)return e.groupId=n.groupId,!1})}),t},getExperimentId:function(e,t){var r=e.experimentKeyMap[t];if(n.isEmpty(r))throw new Error(o(s.INVALID_EXPERIMENT_KEY,a,t));return r.id},getLayerId:function(e,t){var r=e.experimentIdMap[t];if(n.isEmpty(r))throw new Error(o(s.INVALID_EXPERIMENT_ID,a,t));return r.layerId},getAttributeId:function(e,t){var r=e.attributeKeyMap[t];return r?r.id:null},getEventId:function(e,t){var r=e.eventKeyMap[t];return r?r.id:null},getExperimentStatus:function(e,t){var r=e.experimentKeyMap[t];if(n.isEmpty(r))throw new Error(o(s.INVALID_EXPERIMENT_KEY,a,t));return r.status},isActive:function(t,r){return"Running"===e.exports.getExperimentStatus(t,r)||"Launched"===e.exports.getExperimentStatus(t,r)},isRunning:function(t,r){return"Running"===e.exports.getExperimentStatus(t,r)},getAudiencesForExperiment:function(e,t){var r=e.experimentKeyMap[t];if(n.isEmpty(r))throw new Error(o(s.INVALID_EXPERIMENT_KEY,a,t));var i=r.audienceIds;return n.filter(e.audiences,function(e){return-1!==i.indexOf(e.id)})},getVariationKeyFromId:function(e,t){return e.variationIdMap.hasOwnProperty(t)?e.variationIdMap[t].key:null},getVariationIdFromExperimentAndVariationKey:function(e,t,r){var n=e.experimentKeyMap[t];return n.variationKeyMap.hasOwnProperty(r)?n.variationKeyMap[r].id:null},getExperimentFromKey:function(e,t){if(e.experimentKeyMap.hasOwnProperty(t)){var r=e.experimentKeyMap[t];if(r)return r}throw new Error(o(s.EXPERIMENT_KEY_NOT_IN_DATAFILE,a,t))},getExperimentIdsForEvent:function(e,t){var r=e.eventKeyMap[t];if(r)return r.experimentIds.length>0?r.experimentIds:null;throw new Error(o(s.INVALID_EVENT_KEY,a,t))},getTrafficAllocation:function(e,t){var r=e.experimentKeyMap[t];if(n.isEmpty(r))throw new Error(o(s.INVALID_EXPERIMENT_KEY,a,t));return r.trafficAllocation},removeForcedVariation:function(e,t,r,n,i){if(!t)throw new Error(o(s.INVALID_USER_ID,a));if(!e.forcedVariationMap.hasOwnProperty(t))throw new Error(o(s.USER_NOT_IN_FORCED_VARIATION,a,t));delete e.forcedVariationMap[t][r],i.log(c.DEBUG,o(u.VARIATION_REMOVED_FOR_USER,a,n,t))},setInForcedVariationMap:function(e,t,r,n,i){if(!t)throw new Error(o(s.INVALID_USER_ID,a));e.forcedVariationMap.hasOwnProperty(t)?e.forcedVariationMap[t][r]=n:(e.forcedVariationMap[t]={},e.forcedVariationMap[t][r]=n),i.log(c.DEBUG,o(u.USER_MAPPED_TO_FORCED_VARIATION,a,n,r,t))},getForcedVariation:function(e,t,r,n){var i=e.forcedVariationMap[r];if(!i)return n.log(c.DEBUG,o(u.USER_HAS_NO_FORCED_VARIATION,a,r)),null;var f;try{var l=this.getExperimentFromKey(e,t);if(!l.hasOwnProperty("id"))return n.log(c.ERROR,o(s.IMPROPERLY_FORMATTED_EXPERIMENT,a,t)),null;f=l.id}catch(e){return n.log(c.ERROR,e.message),null}var p=i[f];if(!p)return n.log(c.DEBUG,o(u.USER_HAS_NO_FORCED_VARIATION_FOR_EXPERIMENT,a,t,r)),null;var E=this.getVariationKeyFromId(e,p);return n.log(c.DEBUG,o(u.USER_HAS_FORCED_VARIATION,a,E,t,r)),E},setForcedVariation:function(e,t,r,n,i){var u;try{var f=this.getExperimentFromKey(e,t);if(!f.hasOwnProperty("id"))return i.log(c.ERROR,o(s.IMPROPERLY_FORMATTED_EXPERIMENT,a,t)),!1;u=f.id}catch(e){return i.log(c.ERROR,e.message),!1}if(!n)try{return this.removeForcedVariation(e,r,u,t,i),!0}catch(e){return i.log(c.ERROR,e.message),!1}var l=this.getVariationIdFromExperimentAndVariationKey(e,t,n);if(!l)return i.log(c.ERROR,o(s.NO_VARIATION_FOR_EXPERIMENT_KEY,a,n,t)),!1;try{return this.setInForcedVariationMap(e,r,u,l,i),!0}catch(e){return i.log(c.ERROR,e.message),!1}},getExperimentFromId:function(e,t,r){if(e.experimentIdMap.hasOwnProperty(t)){var n=e.experimentIdMap[t];if(n)return n}return r.log(c.ERROR,o(s.INVALID_EXPERIMENT_ID,a,t)),null},getFeatureFromKey:function(e,t,r){if(e.featureKeyMap.hasOwnProperty(t)){var n=e.featureKeyMap[t];if(n)return n}return r.log(c.ERROR,o(s.FEATURE_NOT_IN_DATAFILE,a,t)),null},getVariableForFeature:function(e,t,r,n){var i=e.featureKeyMap[t];if(!i)return n.log(c.ERROR,o(s.FEATURE_NOT_IN_DATAFILE,a,t)),null;var u=i.variableKeyMap[r];return u||(n.log(c.ERROR,o(s.VARIABLE_KEY_NOT_IN_DATAFILE,a,r,t)),null)},getVariableValueForVariation:function(e,t,r,n){if(!t||!r)return null;if(!e.variationVariableUsageMap.hasOwnProperty(r.id))return n.log(c.ERROR,o(s.VARIATION_ID_NOT_IN_DATAFILE_NO_EXPERIMENT,a,r.id)),null;var i=e.variationVariableUsageMap[r.id],u=i[t.id];return u?u.value:t.defaultValue},getTypeCastValue:function(e,t,r){var n;switch(t){case f.BOOLEAN:"true"!==e&&"false"!==e?(r.log(c.ERROR,o(s.UNABLE_TO_CAST_VALUE,a,e,t)),n=null):n="true"===e;break;case f.INTEGER:n=parseInt(e,10),isNaN(n)&&(r.log(c.ERROR,o(s.UNABLE_TO_CAST_VALUE,a,e,t)),n=null);break;case f.DOUBLE:n=parseFloat(e),isNaN(n)&&(r.log(c.ERROR,o(s.UNABLE_TO_CAST_VALUE,a,e,t)),n=null);break;default:n=e}return n}}},function(e,t,r){var n=r(5),i=r(3),o=n(i,"Map");e.exports=o},function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(164),o=r(165),a=r(166),s=r(167),u=r(168);n.prototype.clear=i,n.prototype.delete=o,n.prototype.get=a,n.prototype.has=s,n.prototype.set=u,e.exports=n},function(e,t,r){function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=r(16),o=r(180),a=r(181),s=r(182),u=r(183),c=r(184);n.prototype.clear=o,n.prototype.delete=a,n.prototype.get=s,n.prototype.has=u,n.prototype.set=c,e.exports=n},function(e,t){function r(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}e.exports=r},function(e,t,r){function n(e,t,r){var n=e[t];s.call(e,t)&&o(n,r)&&(void 0!==r||t in e)||i(e,t,r)}var i=r(31),o=r(22),a=Object.prototype,s=a.hasOwnProperty;e.exports=n},function(e,t,r){function n(e,t,r){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var i=r(57);e.exports=n},function(e,t){function r(e){return function(t){return e(t)}}e.exports=r},function(e,t,r){function n(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=r(44);e.exports=n},function(e,t,r){var n=r(46),i=r(69),o=Object.prototype,a=o.propertyIsEnumerable,s=Object.getOwnPropertySymbols,u=s?function(e){return null==e?[]:(e=Object(e),n(s(e),function(t){return a.call(e,t)}))}:i;e.exports=u},function(e,t){function r(e,t){var r=typeof e;return!!(t=null==t?n:t)&&("number"==r||"symbol"!=r&&i.test(e))&&e>-1&&e%1==0&&e<t}var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;e.exports=r},function(e,t,r){function n(e,t){if(i(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!o(e))||(s.test(e)||!a.test(e)||null!=t&&e in Object(t))}var i=r(0),o=r(40),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=n},function(e,t,r){(function(e){var n=r(59),i="object"==typeof t&&t&&!t.nodeType&&t,o=i&&"object"==typeof e&&e&&!e.nodeType&&e,a=o&&o.exports===i,s=a&&n.process,u=function(){try{return s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=u}).call(t,r(43)(e))},function(e,t,r){var n=r(109),i=r(8),o=Object.prototype,a=o.hasOwnProperty,s=o.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!s.call(e,"callee")};e.exports=u},function(e,t){function r(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}var n=9007199254740991;e.exports=r},function(e,t,r){function n(e){return"symbol"==typeof e||o(e)&&i(e)==a}var i=r(13),o=r(8),a="[object Symbol]";e.exports=n},function(e,t,r){var n=r(115),i=r(32),o=r(37),a=o&&o.isTypedArray,s=a?i(a):n;e.exports=s},function(e,t,r){function n(e){return a(e)?i(e,!0):o(e)}var i=r(47),o=r(116),a=r(6);e.exports=n},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,r){var n=r(3),i=n.Uint8Array;e.exports=i},function(e,t){function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}e.exports=r},function(e,t){function r(e,t){for(var r=-1,n=null==e?0:e.length,i=0,o=[];++r<n;){var a=e[r];t(a,r,e)&&(o[i++]=a)}return o}e.exports=r},function(e,t,r){function n(e,t){var r=a(e),n=!r&&o(e),f=!r&&!n&&s(e),p=!r&&!n&&!f&&c(e),E=r||n||f||p,_=E?i(e.length,String):[],g=_.length;for(var v in e)!t&&!l.call(e,v)||E&&("length"==v||f&&("offset"==v||"parent"==v)||p&&("buffer"==v||"byteLength"==v||"byteOffset"==v)||u(v,g))||_.push(v);return _}var i=r(125),o=r(38),a=r(0),s=r(24),u=r(35),c=r(41),f=Object.prototype,l=f.hasOwnProperty;e.exports=n},function(e,t){function r(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}e.exports=r},function(e,t,r){function n(e,t){return e&&i(e,t,o)}var i=r(107),o=r(9);e.exports=n},function(e,t,r){function n(e,t){t=i(t,e);for(var r=0,n=t.length;null!=e&&r<n;)e=e[o(t[r++])];return r&&r==n?e:void 0}var i=r(55),o=r(21);e.exports=n},function(e,t,r){function n(e,t,r){var n=t(e);return o(e)?n:i(n,r(e))}var i=r(48),o=r(0);e.exports=n},function(e,t,r){function n(e,t,r,a,s){return e===t||(null==e||null==t||!o(e)&&!o(t)?e!==e&&t!==t:i(e,t,r,a,n,s))}var i=r(110),o=r(8);e.exports=n},function(e,t,r){function n(e){if(!i(e))return o(e);var t=[];for(var r in Object(e))s.call(e,r)&&"constructor"!=r&&t.push(r);return t}var i=r(15),o=r(171),a=Object.prototype,s=a.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){return"function"==typeof e?e:i}var i=r(23);e.exports=n},function(e,t,r){function n(e,t){return i(e)?e:o(e,t)?[e]:a(s(e))}var i=r(0),o=r(36),a=r(185),s=r(203);e.exports=n},function(e,t,r){function n(e){return i(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,s=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(r[0],r[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var u=r[n];u&&e(t,u,n,a)}return t})}var i=r(123),o=r(156);e.exports=n},function(e,t,r){var n=r(5),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=i},function(e,t,r){function n(e,t,r,n,c,f){var l=r&s,p=e.length,E=t.length;if(p!=E&&!(l&&E>p))return!1;var _=f.get(e);if(_&&f.get(t))return _==t;var g=-1,v=!0,I=r&u?new i:void 0;for(f.set(e,t),f.set(t,e);++g<p;){var d=e[g],h=t[g];if(n)var O=l?n(h,d,g,t,e,f):n(d,h,g,e,t,f);if(void 0!==O){if(O)continue;v=!1;break}if(I){if(!o(t,function(e,t){if(!a(I,t)&&(d===e||c(d,e,r,n,f)))return I.push(t)})){v=!1;break}}else if(d!==h&&!c(d,h,r,n,f)){v=!1;break}}return f.delete(e),f.delete(t),v}var i=r(95),o=r(100),a=r(128),s=1,u=2;e.exports=n},function(e,t,r){(function(t){var r="object"==typeof t&&t&&t.Object===Object&&t;e.exports=r}).call(t,r(72))},function(e,t,r){function n(e){return i(e,a,o)}var i=r(51),o=r(34),a=r(9);e.exports=n},function(e,t,r){var n=r(65),i=n(Object.getPrototypeOf,Object);e.exports=i},function(e,t,r){var n=r(48),i=r(61),o=r(34),a=r(69),s=Object.getOwnPropertySymbols,u=s?function(e){for(var t=[];e;)n(t,o(e)),e=i(e);return t}:a;e.exports=u},function(e,t,r){function n(e){return e===e&&!i(e)}var i=r(7);e.exports=n},function(e,t){function r(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}e.exports=r},function(e,t){function r(e,t){return function(r){return e(t(r))}}e.exports=r},function(e,t){function r(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var n=Function.prototype,i=n.toString;e.exports=r},function(e,t,r){function n(e,t){return e&&i(e,o(t))}var i=r(49),o=r(54);e.exports=n},function(e,t,r){function n(e){if(!o(e))return!1;var t=i(e);return t==s||t==u||t==a||t==c}var i=r(13),o=r(7),a="[object AsyncFunction]",s="[object Function]",u="[object GeneratorFunction]",c="[object Proxy]";e.exports=n},function(e,t){function r(){return[]}e.exports=r},function(e,t){function r(e,t){var r=t||0,i=n;return i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+"-"+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]+i[e[r++]]}for(var n=[],i=0;i<256;++i)n[i]=(i+256).toString(16).substr(1);e.exports=r},function(e,t,r){(function(t){var r,n=t.crypto||t.msCrypto;if(n&&n.getRandomValues){var i=new Uint8Array(16);r=function(){return n.getRandomValues(i),i}}if(!r){var o=new Array(16);r=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),o[t]=e>>>((3&t)<<3)&255;return o}}e.exports=r}).call(t,r(72))},function(e,t){var r;r=function(){return this}();try{r=r||Function("return this")()||(0,eval)("this")}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){function n(e){var t=e.clientEngine;if(t!==s.NODE_CLIENT_ENGINE&&t!==s.JAVASCRIPT_CLIENT_ENGINE&&(e.logger.log(I.INFO,E(d.INVALID_CLIENT_ENGINE,h,t)),t=s.NODE_CLIENT_ENGINE),this.clientEngine=t,this.clientVersion=e.clientVersion||s.NODE_CLIENT_VERSION,this.errorHandler=e.errorHandler,this.eventDispatcher=e.eventDispatcher,this.isValidInstance=e.isValidInstance,this.logger=e.logger,e.datafile){if("string"==typeof e.datafile||e.datafile instanceof String)try{e.datafile=JSON.parse(e.datafile)}catch(e){return this.isValidInstance=!1,void this.logger.log(I.ERROR,E(v.INVALID_DATAFILE_MALFORMED,h))}if(!0===e.skipJSONValidation)this.configObj=l.createProjectConfig(e.datafile),this.logger.log(I.INFO,E(d.SKIPPING_JSON_VALIDATION,h));else try{e.jsonSchemaValidator.validate(p,e.datafile)&&(this.configObj=l.createProjectConfig(e.datafile),this.logger.log(I.INFO,E(d.VALID_DATAFILE,h)))}catch(e){this.isValidInstance=!1,this.logger.log(I.ERROR,e.message),this.errorHandler.handleError(e)}var r=null;if(e.userProfileService)try{g.validate(e.userProfileService)&&(r=e.userProfileService,this.logger.log(I.INFO,E(d.VALID_USER_PROFILE_SERVICE,h)))}catch(e){this.logger.log(I.WARNING,e.message)}this.decisionService=a.createDecisionService({configObj:this.configObj,userProfileService:r,logger:this.logger}),this.notificationCenter=f.createNotificationCenter({logger:this.logger})}else this.logger.log(I.ERROR,E(v.NO_DATAFILE_SPECIFIED,h)),this.errorHandler.handleError(new Error(E(v.NO_DATAFILE_SPECIFIED,h))),this.isValidInstance=!1}var i=r(4),o=r(86),a=r(81),s=r(1),u=r(82),c=r(88),f=r(83),l=r(25),p=r(85),E=r(2),_=r(89),g=r(90),v=s.ERROR_MESSAGES,I=s.LOG_LEVEL,d=s.LOG_MESSAGES,h="OPTIMIZELY",O=s.DECISION_SOURCES,R=s.FEATURE_VARIABLE_TYPES;n.prototype.activate=function(e,t,r){if(!this.isValidInstance)return this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,"activate")),null;try{var n=this.getVariation(e,t,r);if(null===n)return this.__notActivatingExperiment(e,t);if(!l.isRunning(this.configObj,e)){var i=E(d.SHOULD_NOT_DISPATCH_ACTIVATE,h,e);return this.logger.log(I.DEBUG,i),n}return r=this.__filterEmptyValues(r),this._sendImpressionEvent(e,n,t,r),n}catch(r){this.logger.log(I.ERROR,r.message);var o=E(d.NOT_ACTIVATING_USER,h,t,e);return this.logger.log(I.INFO,o),this.errorHandler.handleError(r),null}},n.prototype._sendImpressionEvent=function(e,t,r,n){var i=l.getVariationIdFromExperimentAndVariationKey(this.configObj,e,t),o=l.getExperimentId(this.configObj,e),a={attributes:n,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:this.configObj,experimentId:o,userId:r,variationId:i},c=u.getImpressionEvent(a),f=E(d.DISPATCH_IMPRESSION_EVENT,h,c.url,JSON.stringify(c.params));this.logger.log(I.DEBUG,f);var p=function(){var t=E(d.ACTIVATE_USER,h,r,e);this.logger.log(I.INFO,t)}.bind(this);this.__dispatchEvent(c,p);var _,g=this.configObj.experimentKeyMap[e];g&&g.variationKeyMap&&(_=g.variationKeyMap[t]),this.notificationCenter.sendNotifications(s.NOTIFICATION_TYPES.ACTIVATE,{experiment:g,userId:r,attributes:n,variation:_,logEvent:c})},n.prototype.track=function(e,t,r,n){if(!this.isValidInstance)return void this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,"track"));try{if(!this.__validateInputs(t,r,n))return;var i=this.__getValidExperimentsForEvent(e,t,r);if(!Object.keys(i).length)return void this.logger.log(I.WARNING,E(d.EVENT_NOT_ASSOCIATED_WITH_EXPERIMENTS,h,e));r=this.__filterEmptyValues(r),n=this.__filterEmptyValues(n);var o={attributes:r,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:this.configObj,eventKey:e,eventTags:n,experimentsToVariationMap:i,logger:this.logger,userId:t},a=u.getConversionEvent(o),c=E(d.DISPATCH_CONVERSION_EVENT,h,a.url,JSON.stringify(a.params));this.logger.log(I.DEBUG,c);var f=function(){var r=E(d.TRACK_EVENT,h,e,t);this.logger.log(I.INFO,r)}.bind(this);this.__dispatchEvent(a,f),this.notificationCenter.sendNotifications(s.NOTIFICATION_TYPES.TRACK,{eventKey:e,userId:t,attributes:r,eventTags:n,logEvent:a})}catch(e){this.logger.log(I.ERROR,e.message);var l=E(d.NOT_TRACKING_USER,h,t);this.logger.log(I.INFO,l),this.errorHandler.handleError(e)}},n.prototype.getVariation=function(e,t,r){if(!this.isValidInstance)return this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,"getVariation")),null;try{if(!this.__validateInputs(t,r))return null;var n=this.configObj.experimentKeyMap[e];if(i.isEmpty(n))throw new Error(E(v.INVALID_EXPERIMENT_KEY,h,e));return this.decisionService.getVariation(e,t,r)}catch(e){return this.logger.log(I.ERROR,e.message),this.errorHandler.handleError(e),null}},n.prototype.setForcedVariation=function(e,t,r){try{return l.setForcedVariation(this.configObj,e,t,r,this.logger)}catch(e){return this.logger.log(I.ERROR,e.message),this.errorHandler.handleError(e),!1}},n.prototype.getForcedVariation=function(e,t){try{return l.getForcedVariation(this.configObj,e,t,this.logger)}catch(e){return this.logger.log(I.ERROR,e.message),this.errorHandler.handleError(e),null}},n.prototype.__validateInputs=function(e,t,r){try{return _.validate(e),t&&o.validate(t),r&&c.validate(r),!0}catch(e){return this.logger.log(I.ERROR,e.message),this.errorHandler.handleError(e),!1}},n.prototype.__getValidExperimentsForEvent=function(e,t,r){var n={},o=l.getExperimentIdsForEvent(this.configObj,e);return o?n=i.reduce(o,function(e,n){var i=this.configObj.experimentIdMap[n].key,o=this.getVariation(i,t,r);if(o)if(l.isRunning(this.configObj,i)){var a=l.getVariationIdFromExperimentAndVariationKey(this.configObj,i,o);e[n]=a}else{var s=E(d.SHOULD_NOT_DISPATCH_TRACK,h,i);this.logger.log(I.DEBUG,s)}else{var u=E(d.NOT_TRACKING_USER_FOR_EXPERIMENT,h,t,i);this.logger.log(I.DEBUG,u)}return e}.bind(this),{}):n},n.prototype.__notActivatingExperiment=function(e,t){var r=E(d.NOT_ACTIVATING_USER,h,t,e);return this.logger.log(I.INFO,r),null},n.prototype.__dispatchEvent=function(e,t){var r=this.eventDispatcher.dispatchEvent(e,t);"object"!=typeof r||r.hasOwnProperty("uri")||r.then(function(){t()})},n.prototype.__filterEmptyValues=function(e){for(var t in e)!e.hasOwnProperty(t)||null!==e[t]&&void 0!==e[t]||delete e[t];return e},n.prototype.isFeatureEnabled=function(e,t,r){if(!this.isValidInstance)return this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,"isFeatureEnabled")),!1;var n=l.getFeatureFromKey(this.configObj,e,this.logger);if(!n)return!1;if(!this.__validateInputs(t,r))return!1;var i=this.decisionService.getVariationForFeature(n,t,r),o=i.variation;return o&&!0===o.featureEnabled?(this.logger.log(I.INFO,E(d.FEATURE_ENABLED_FOR_USER,h,e,t)),i.decisionSource===O.EXPERIMENT&&this._sendImpressionEvent(i.experiment.key,i.variation.key,t,r),!0):(this.logger.log(I.INFO,E(d.FEATURE_NOT_ENABLED_FOR_USER,h,e,t)),!1)},n.prototype.getEnabledFeatures=function(e,t){var r=[];return this.isValidInstance?(i.forOwn(this.configObj.featureKeyMap,function(n){this.isFeatureEnabled(n.key,e,t)&&r.push(n.key)}.bind(this)),r.sort()):(this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,"getEnabledFeatures")),r)},n.prototype._getFeatureVariableForType=function(e,t,r,n,i){if(!this.isValidInstance){var o="getFeatureVariable"+r.charAt(0).toUpperCase()+r.slice(1);return this.logger.log(I.ERROR,E(d.INVALID_OBJECT,h,o)),null}var a=l.getFeatureFromKey(this.configObj,e,this.logger);if(!a)return null;var s=l.getVariableForFeature(this.configObj,e,t,this.logger);if(!s)return null;if(s.type!==r)return this.logger.log(I.WARNING,E(d.VARIABLE_REQUESTED_WITH_WRONG_TYPE,h,r,s.type)),null;if(!this.__validateInputs(n,i))return null;var u,c=this.decisionService.getVariationForFeature(a,n,i);return null!==c.variation?(u=l.getVariableValueForVariation(this.configObj,s,c.variation,this.logger),this.logger.log(I.INFO,E(d.USER_RECEIVED_VARIABLE_VALUE,h,t,a.key,u,n))):(u=s.defaultValue,this.logger.log(I.INFO,E(d.USER_RECEIVED_DEFAULT_VARIABLE_VALUE,h,n,t,a.key))),l.getTypeCastValue(u,r,this.logger)},n.prototype.getFeatureVariableBoolean=function(e,t,r,n){return this._getFeatureVariableForType(e,t,R.BOOLEAN,r,n)},n.prototype.getFeatureVariableDouble=function(e,t,r,n){return this._getFeatureVariableForType(e,t,R.DOUBLE,r,n)},n.prototype.getFeatureVariableInteger=function(e,t,r,n){return this._getFeatureVariableForType(e,t,R.INTEGER,r,n)},n.prototype.getFeatureVariableString=function(e,t,r,n){return this._getFeatureVariableForType(e,t,R.STRING,r,n)},e.exports=n},function(e,t){e.exports={handleError:function(e){}}},function(e,t,r){var n=r(4);e.exports={dispatchEvent:function(e,t){var r=e.url,n=e.params;if("POST"===e.httpVerb){var o=new XMLHttpRequest;o.open("POST",r,!0),o.setRequestHeader("Content-Type","application/json"),o.onreadystatechange=function(){4===o.readyState&&t&&"function"==typeof t&&t(n)},o.send(JSON.stringify(n))}else{r+="?wxhr=true",n&&(r+="&"+i(n));var o=new XMLHttpRequest;o.open("GET",r,!0),o.onreadystatechange=function(){4===o.readyState&&t&&"function"==typeof t&&t()},o.send()}}};var i=function(e){return n.map(e,function(e,t){return encodeURIComponent(t)+"="+encodeURIComponent(e)}).join("&")}},function(e,t,r){function n(){}function i(e){e=s.assignIn({logLevel:u.LOG_LEVEL.ERROR,logToConsole:!0,prefix:"[OPTIMIZELY]"},e),this.setLogLevel(e.logLevel),this.logToConsole=e.logToConsole,this.prefix=e.prefix}function o(e){switch(e){case u.LOG_LEVEL.DEBUG:return"DEBUG";case u.LOG_LEVEL.INFO:return"INFO";case u.LOG_LEVEL.WARNING:return"WARNING";case u.LOG_LEVEL.ERROR:return"ERROR";default:return"NOTSET"}}function a(){return new Date}var s=r(4),u=r(1);n.prototype.log=function(){},i.prototype.log=function(e,t){this.__shouldLog(e)&&(this.prefix&&(t=this.prefix+" - "+this.logLevelName+" "+a()+" "+t),this.logToConsole&&this.__consoleLog(e,[t]))},i.prototype.setLogLevel=function(e){this.logLevel=s.values(u.LOG_LEVEL).indexOf(e)>-1?e:u.LOG_LEVEL.ERROR,this.logLevelName=o(this.logLevel),this.log("Setting log level to "+e)},i.prototype.__shouldLog=function(e){return e>=this.logLevel},i.prototype.__consoleLog=function(e,t){switch(e){case u.LOG_LEVEL.DEBUG:case u.LOG_LEVEL.INFO:console.log.apply(console,t);break;case u.LOG_LEVEL.WARNING:console.warn.apply(console,t);break;case u.LOG_LEVEL.ERROR:console.error.apply(console,t);break;default:console.log.apply(console,t)}},e.exports={createLogger:function(e){return new i(e)},createNoOpLogger:function(){return new n}}},function(e,t,r){var n=r(2),i=r(1).ERROR_MESSAGES;e.exports={validate:function(e){if(e.errorHandler&&"function"!=typeof e.errorHandler.handleError)throw new Error(n(i.INVALID_ERROR_HANDLER,"CONFIG_VALIDATOR"));if(e.eventDispatcher&&"function"!=typeof e.eventDispatcher.dispatchEvent)throw new Error(n(i.INVALID_EVENT_DISPATCHER,"CONFIG_VALIDATOR"));if(e.logger&&"function"!=typeof e.logger.log)throw new Error(n(i.INVALID_LOGGER,"CONFIG_VALIDATOR"));return!0}}},function(e,t,r){var n=r(80);e.exports={evaluate:function(e,t){if(!e||0===e.length)return!0;if(!t)return!1;for(var r=0;r<e.length;r++){var i=e[r],o=i.conditions;if(n.evaluate(o,t))return!0}return!1}}},function(e,t,r){var n=r(1),i=r(205),o=r(2),a=n.ERROR_MESSAGES,s=n.LOG_LEVEL,u=n.LOG_MESSAGES,c=Math.pow(2,32);e.exports={bucket:function(t){var r=t.experimentKeyMap[t.experimentKey],n=r.groupId;if(n){var i=t.groupIdMap[n];if(!i)throw new Error(o(a.INVALID_GROUP_ID,"BUCKETER",n));if("random"===i.policy){var c=e.exports.bucketUserIntoExperiment(i,t.bucketingId,t.userId,t.logger);if(null===c){var f=o(u.USER_NOT_IN_ANY_EXPERIMENT,"BUCKETER",t.userId,n);return t.logger.log(s.INFO,f),null}if(c!==t.experimentId){var l=o(u.USER_NOT_BUCKETED_INTO_EXPERIMENT_IN_GROUP,"BUCKETER",t.userId,t.experimentKey,n);return t.logger.log(s.INFO,l),null}var p=o(u.USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP,"BUCKETER",t.userId,t.experimentKey,n);t.logger.log(s.INFO,p)}}var E=o("%s%s",t.bucketingId,t.experimentId),_=e.exports._generateBucketValue(E),g=o(u.USER_ASSIGNED_TO_VARIATION_BUCKET,"BUCKETER",_,t.userId);t.logger.log(s.DEBUG,g);var v=e.exports._findBucket(_,t.trafficAllocationConfig);if(null===v){var I=o(u.USER_HAS_NO_VARIATION,"BUCKETER",t.userId,t.experimentKey);t.logger.log(s.DEBUG,I)}else{if(""===v||!t.variationIdMap.hasOwnProperty(v)){var d=o(u.INVALID_VARIATION_ID,"BUCKETER");return t.logger.log(s.WARNING,d),null}var h=t.variationIdMap[v].key,O=o(u.USER_HAS_VARIATION,"BUCKETER",t.userId,h,t.experimentKey);t.logger.log(s.INFO,O)}return v},bucketUserIntoExperiment:function(t,r,n,i){var a=o("%s%s",r,t.id),c=e.exports._generateBucketValue(a);i.log(s.DEBUG,o(u.USER_ASSIGNED_TO_EXPERIMENT_BUCKET,"BUCKETER",c,n));var f=t.trafficAllocation;return e.exports._findBucket(c,f)},_findBucket:function(e,t){for(var r=0;r<t.length;r++)if(e<t[r].endOfRange)return t[r].entityId;return null},_generateBucketValue:function(e){try{var t=i.v3(e,1),r=t/c;return parseInt(1e4*r,10)}catch(t){throw new Error(o(a.INVALID_BUCKETING_ID,"BUCKETER",e,t.message))}}}},function(e,t){function r(e,t){if(Array.isArray(e)){var r=e[0];if(-1===f.indexOf(r))return!1;var l=e.slice(1);switch(r){case s:return n(l,t);case c:return i(l,t);case u:return o(l,t)}}return a([e.name,e.value],t)}function n(e,t){for(var n,i=0;i<e.length;i++)if(n=e[i],!r(n,t))return!1;return!0}function i(e,t){return 1===e.length&&!r(e[0],t)}function o(e,t){for(var n=0;n<e.length;n++){if(r(e[n],t))return!0}return!1}function a(e,t){return!!t.hasOwnProperty(e[0])&&t[e[0]]===e[1]}var s="and",u="or",c="not",f=[s,u,c];e.exports={evaluate:r}},function(e,t,r){function n(e){this.configObj=e.configObj,this.userProfileService=e.userProfileService||null,this.logger=e.logger}var i=r(78),o=r(79),a=r(1),s=r(4),u=r(25),c=r(2),f="DECISION_SERVICE",l=a.ERROR_MESSAGES,p=a.LOG_LEVEL,E=a.LOG_MESSAGES,_=a.DECISION_SOURCES;n.prototype.getVariation=function(e,t,r){var n=t;if(s.isEmpty(r)||r.hasOwnProperty("$opt_bucketing_id")&&(n=r.$opt_bucketing_id,this.logger.log(p.DEBUG,c("Setting the bucketing ID to %s.",n))),!this.__checkIfExperimentIsActive(e,t))return null;var i=this.configObj.experimentKeyMap[e],a=u.getForcedVariation(this.configObj,e,t,this.logger);if(a)return a;var l=this.__getWhitelistedVariation(i,t);if(l)return l.key;var _=this.__getUserProfile(t);if(l=this.__getStoredVariation(i,_))return this.logger.log(p.INFO,c(E.RETURNING_STORED_VARIATION,f,l.key,e,t)),l.key;if(!this.__checkIfUserIsInAudience(e,t,r))return null;var g=this.__buildBucketerParams(e,n,t),v=o.bucket(g);return(l=this.configObj.variationIdMap[v])?(this.__saveUserProfile(_,i,l),l.key):null},n.prototype.__checkIfExperimentIsActive=function(e,t){if(!u.isActive(this.configObj,e)){var r=c(E.EXPERIMENT_NOT_RUNNING,f,e);return this.logger.log(p.INFO,r),!1}return!0},n.prototype.__getWhitelistedVariation=function(e,t){if(!s.isEmpty(e.forcedVariations)&&e.forcedVariations.hasOwnProperty(t)){var r=e.forcedVariations[t];if(e.variationKeyMap.hasOwnProperty(r)){var n=c(E.USER_FORCED_IN_VARIATION,f,t,r);return this.logger.log(p.INFO,n),e.variationKeyMap[r]}var i=c(E.FORCED_BUCKETING_FAILED,f,r,t);return this.logger.log(p.ERROR,i),null}return null},n.prototype.__checkIfUserIsInAudience=function(e,t,r){var n=u.getAudiencesForExperiment(this.configObj,e);if(!i.evaluate(n,r)){var o=c(E.USER_NOT_IN_EXPERIMENT,f,t,e);return this.logger.log(p.INFO,o),!1}return!0},n.prototype.__buildBucketerParams=function(e,t,r){var n={};return n.experimentKey=e,n.experimentId=u.getExperimentId(this.configObj,e),n.userId=r,n.trafficAllocationConfig=u.getTrafficAllocation(this.configObj,e),n.experimentKeyMap=this.configObj.experimentKeyMap,n.groupIdMap=this.configObj.groupIdMap,n.variationIdMap=this.configObj.variationIdMap,n.logger=this.logger,n.bucketingId=t,n},n.prototype.__getStoredVariation=function(e,t){if(!t||!t.experiment_bucket_map)return null;if(t.experiment_bucket_map.hasOwnProperty(e.id)){var r=t.experiment_bucket_map[e.id],n=r.variation_id;if(this.configObj.variationIdMap.hasOwnProperty(n))return this.configObj.variationIdMap[r.variation_id];this.logger.log(p.INFO,c(E.SAVED_VARIATION_NOT_FOUND,f,t.user_id,n,e.key))}return null},n.prototype.__getUserProfile=function(e){var t={user_id:e,experiment_bucket_map:{}};if(!this.userProfileService)return t;try{t=this.userProfileService.lookup(e)||t}catch(t){this.logger.log(p.ERROR,c(l.USER_PROFILE_LOOKUP_ERROR,f,e,t.message))}return t},n.prototype.__saveUserProfile=function(e,t,r){if(this.userProfileService)try{e.experiment_bucket_map[t.id]={variation_id:r.id},this.userProfileService.save(e),this.logger.log(p.INFO,c(E.SAVED_VARIATION,f,r.key,t.key,e.user_id))}catch(t){this.logger.log(p.ERROR,c(l.USER_PROFILE_SAVE_ERROR,f,e.user_id,t.message))}},n.prototype.getVariationForFeature=function(e,t,r){var n=this._getVariationForFeatureExperiment(e,t,r);if(null!==n.variation)return this.logger.log(p.DEBUG,c(E.USER_IN_FEATURE_EXPERIMENT,f,t,n.variation.key,n.experiment.key,e.key)),n;this.logger.log(p.DEBUG,c(E.USER_NOT_IN_FEATURE_EXPERIMENT,f,t,e.key));var i=this._getVariationForRollout(e,t,r);return null!==i.variation?(this.logger.log(p.DEBUG,c(E.USER_IN_ROLLOUT,f,t,e.key)),i):(this.logger.log(p.DEBUG,c(E.USER_NOT_IN_ROLLOUT,f,t,e.key)),{experiment:null,variation:null,decisionSource:null})},n.prototype._getVariationForFeatureExperiment=function(e,t,r){var n=null,i=null;if(e.hasOwnProperty("groupId")){var o=this.configObj.groupIdMap[e.groupId];o&&(n=this._getExperimentInGroup(o,t))&&(i=this.getVariation(n.key,t,r))}else e.experimentIds.length>0?(n=u.getExperimentFromId(this.configObj,e.experimentIds[0],this.logger))&&(i=this.getVariation(n.key,t,r)):this.logger.log(p.DEBUG,c(E.FEATURE_HAS_NO_EXPERIMENTS,f,e.key));var a=null;return null!==i&&null!==n&&(a=n.variationKeyMap[i]),{experiment:n,variation:a,decisionSource:_.EXPERIMENT}},n.prototype._getExperimentInGroup=function(e,t){var r=o.bucketUserIntoExperiment(e,t,t,this.logger);if(null!==r){this.logger.log(p.INFO,c(E.USER_BUCKETED_INTO_EXPERIMENT_IN_GROUP,f,t,r,e.id));var n=u.getExperimentFromId(this.configObj,r,this.logger);if(n)return n}return this.logger.log(p.INFO,c(E.USER_NOT_BUCKETED_INTO_ANY_EXPERIMENT_IN_GROUP,f,t,e.id)),null},n.prototype._getVariationForRollout=function(e,t,r){if(!e.rolloutId)return this.logger.log(p.DEBUG,c(E.NO_ROLLOUT_EXISTS,f,e.key)),{experiment:null,variation:null,decisionSource:_.ROLLOUT};var n=this.configObj.rolloutIdMap[e.rolloutId];if(!n)return this.logger.log(p.ERROR,c(l.INVALID_ROLLOUT_ID,f,e.rolloutId,e.key)),{experiment:null,variation:null,decisionSource:_.ROLLOUT};if(0===n.experiments.length)return this.logger.log(p.ERROR,c(E.ROLLOUT_HAS_NO_EXPERIMENTS,f,e.rolloutId)),{experiment:null,variation:null,decisionSource:_.ROLLOUT};var i,a,s,u,g,v=n.experiments.length-1;for(i=0;i<v;i++){a=this.configObj.experimentKeyMap[n.experiments[i].key];{if(this.__checkIfUserIsInAudience(a.key,t,r)){if(this.logger.log(p.DEBUG,c(E.USER_MEETS_CONDITIONS_FOR_TARGETING_RULE,f,t,i+1)),s=this.__buildBucketerParams(a.key,t,t),u=o.bucket(s),g=this.configObj.variationIdMap[u])return this.logger.log(p.DEBUG,c(E.USER_BUCKETED_INTO_TARGETING_RULE,f,t,i+1)),{experiment:a,variation:g,decisionSource:_.ROLLOUT};this.logger.log(p.DEBUG,c(E.USER_NOT_BUCKETED_INTO_TARGETING_RULE,f,t,i+1));break}this.logger.log(p.DEBUG,c(E.USER_DOESNT_MEET_CONDITIONS_FOR_TARGETING_RULE,f,t,i+1))}}var I=this.configObj.experimentKeyMap[n.experiments[v].key];if(this.__checkIfUserIsInAudience(I.key,t,r)){if(s=this.__buildBucketerParams(I.key,t,t),u=o.bucket(s),g=this.configObj.variationIdMap[u])return this.logger.log(p.DEBUG,c(E.USER_BUCKETED_INTO_EVERYONE_TARGETING_RULE,f,t)),{experiment:I,variation:g,decisionSource:_.ROLLOUT};this.logger.log(p.DEBUG,c(E.USER_NOT_BUCKETED_INTO_EVERYONE_TARGETING_RULE,f,t))}return{experiment:null,variation:null,decisionSource:_.ROLLOUT}},e.exports={createDecisionService:function(e){return new n(e)}}},function(e,t,r){function n(e){var t=e.attributes,r=e.configObj,n=r.anonymizeIP;null!==n&&void 0!==n||(n=!1);var i={snapshots:[],visitor_id:e.userId,attributes:[]},o={account_id:r.accountId,project_id:r.projectId,visitors:[i],revision:r.revision,client_name:e.clientEngine,client_version:e.clientVersion,anonymize_ip:n};return s.forOwn(t,function(r,n){var i=c.getAttributeId(e.configObj,n);if(i){var a={entity_id:i,key:n,type:l,value:t[n]};o.visitors[0].attributes.push(a)}}),o}function i(e,t,r){return{decisions:[{campaign_id:c.getLayerId(e,t),experiment_id:t,variation_id:r}],events:[{entity_id:c.getLayerId(e,t),timestamp:s.currentTimestamp(),key:f,uuid:s.uuid()}]}}function o(e,t,r,n,i){var o=[];return s.forOwn(n,function(n,f){var l={decisions:[{campaign_id:c.getLayerId(e,f),experiment_id:f,variation_id:n}],events:[]},p={entity_id:c.getEventId(e,t),timestamp:s.currentTimestamp(),uuid:s.uuid(),key:t};if(r){var E=u.getRevenueValue(r,i);E&&(p[a.RESERVED_EVENT_KEYWORDS.REVENUE]=E);var _=u.getEventValue(r,i);_&&(p[a.RESERVED_EVENT_KEYWORDS.VALUE]=_),p.tags=r}l.events=[p],o.push(l)}),o}var a=r(1),s=r(4),u=r(87),c=r(25),f="campaign_activated",l="custom",p="https://logx.optimizely.com/v1/events";e.exports={getImpressionEvent:function(e){var t={httpVerb:"POST"},r=n(e);t.url=p;var o=i(e.configObj,e.experimentId,e.variationId);return r.visitors[0].snapshots.push(o),t.params=r,t},getConversionEvent:function(e){var t={httpVerb:"POST"},r=n(e);t.url=p;var i=o(e.configObj,e.eventKey,e.eventTags,e.experimentsToVariationMap,e.logger);return r.visitors[0].snapshots=i,t.params=r,t}}},function(e,t,r){function n(e){this.logger=e.logger,this.__notificationListeners={},o.forOwn(i.NOTIFICATION_TYPES,function(e){this.__notificationListeners[e]=[]}.bind(this)),this.__listenerId=1}var i=r(1),o=r(4),a=r(2),s=i.LOG_LEVEL,u=i.LOG_MESSAGES;n.prototype.addNotificationListener=function(e,t){if(!(o.values(i.NOTIFICATION_TYPES).indexOf(e)>-1))return-1;this.__notificationListeners[e]||(this.__notificationListeners[e]=[]);var r=!1;if(o.forEach(this.__notificationListeners[e],function(e){if(e.callback===t)return r=!0,!1}),r)return-1;this.__notificationListeners[e].push({id:this.__listenerId,callback:t});var n=this.__listenerId;return this.__listenerId+=1,n},n.prototype.removeNotificationListener=function(e){var t,r;return o.forOwn(this.__notificationListeners,function(n,i){if(o.forEach(n,function(n,o){if(n.id===e)return t=o,r=i,!1}),void 0!==t&&void 0!==r)return!1}),void 0!==t&&void 0!==r&&(this.__notificationListeners[r].splice(t,1),!0)},n.prototype.clearAllNotificationListeners=function(){o.forOwn(i.NOTIFICATION_TYPES,function(e){this.__notificationListeners[e]=[]}.bind(this))},n.prototype.clearNotificationListeners=function(e){this.__notificationListeners[e]=[]},n.prototype.sendNotifications=function(e,t){o.forEach(this.__notificationListeners[e],function(r){var n=r.callback;try{n(t)}catch(t){this.logger.log(s.ERROR,a(u.NOTIFICATION_LISTENER_EXCEPTION,"NOTIFICATION_CENTER",e,t.message))}}.bind(this))},e.exports={createNotificationCenter:function(e){return new n(e)}}},function(e,t,r){var n=r(4),i=r(77),o=r(74),a=r(75),s=r(1),u=r(76),c=r(73);t.optimizelyClient={createInstance:function(e){var t="logLevel"in e?e.logLevel:s.LOG_LEVEL.INFO,r=u.createLogger({logLevel:s.LOG_LEVEL.INFO});if(e)try{i.validate(e),e.isValidInstance=!0}catch(t){var f="INDEX:"+t.message;e.logger?e.logger.log(s.LOG_LEVEL.ERROR,f):r.log(s.LOG_LEVEL.ERROR,f),e.isValidInstance=!1}return null==e.skipJSONValidation&&(e.skipJSONValidation=!0),e=n.assignIn({clientEngine:s.JAVASCRIPT_CLIENT_ENGINE,clientVersion:s.CLIENT_VERSION,errorHandler:o,eventDispatcher:a,logger:u.createLogger({logLevel:t})},e),new c(e)}}},function(e,t){e.exports={$schema:"http://json-schema.org/draft-04/schema#",type:"object",properties:{projectId:{type:"string",required:!0},accountId:{type:"string",required:!0},groups:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},policy:{type:"string",required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0}}},required:!0}}},required:!0},experiments:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0},status:{type:"string",required:!0},layerId:{type:"string",required:!0},variations:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},trafficAllocation:{type:"array",items:{type:"object",properties:{entityId:{type:"string",required:!0},endOfRange:{type:"integer",required:!0}}},required:!0},audienceIds:{type:"array",items:{type:"string"},required:!0},forcedVariations:{type:"object",required:!0}}},required:!0},events:{type:"array",items:{type:"object",properties:{key:{type:"string",required:!0},experimentIds:{type:"array",items:{type:"string",required:!0}},id:{type:"string",required:!0}}},required:!0},audiences:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},name:{type:"string",required:!0},conditions:{type:"string",required:!0}}},required:!0},attributes:{type:"array",items:{type:"object",properties:{id:{type:"string",required:!0},key:{type:"string",required:!0}}},required:!0},version:{type:"string",required:!0},revision:{type:"string",required:!0}}}},function(e,t,r){var n=r(2),i=r(67),o=r(1).ERROR_MESSAGES;e.exports={validate:function(e){if("object"!=typeof e||Array.isArray(e)||null===e)throw new Error(n(o.INVALID_ATTRIBUTES,"ATTRIBUTES_VALIDATOR"));return i(e,function(e,t){if(void 0===e)throw new Error(n(o.UNDEFINED_ATTRIBUTE,"ATTRIBUTES_VALIDATOR",t))}),!0}}},function(e,t,r){var n=r(1),i=r(2),o=n.LOG_LEVEL,a=n.LOG_MESSAGES,s=n.RESERVED_EVENT_KEYWORDS.REVENUE,u=n.RESERVED_EVENT_KEYWORDS.VALUE;e.exports={getRevenueValue:function(e,t){if(e&&e.hasOwnProperty(s)){var r=e[s],n=parseInt(r,10);return isNaN(n)?(t.log(o.INFO,i(a.FAILED_TO_PARSE_REVENUE,"EVENT_TAG_UTILS",r)),null):(t.log(o.INFO,i(a.PARSED_REVENUE_VALUE,"EVENT_TAG_UTILS",n)),n)}return null},getEventValue:function(e,t){if(e&&e.hasOwnProperty(u)){var r=e[u],n=parseFloat(r);return isNaN(n)?(t.log(o.INFO,i(a.FAILED_TO_PARSE_VALUE,"EVENT_TAG_UTILS",r)),null):(t.log(o.INFO,i(a.PARSED_NUMERIC_VALUE,"EVENT_TAG_UTILS",n)),n)}return null}}},function(e,t,r){var n=r(2),i=r(1).ERROR_MESSAGES;e.exports={validate:function(e){if("object"!=typeof e||Array.isArray(e)||null===e)throw new Error(n(i.INVALID_EVENT_TAGS,"EVENT_TAGS_VALIDATOR"));return!0}}},function(e,t,r){var n=r(1),i=r(2),o=n.ERROR_MESSAGES;e.exports={validate:function(e){if("string"!=typeof e||""===e)throw new Error(i(o.INVALID_USER_ID,"USER_ID_VALIDATOR"));return!0}}},function(e,t,r){var n=r(2),i=r(1).ERROR_MESSAGES;e.exports={validate:function(e){if("function"!=typeof e.lookup)throw new Error(n(i.INVALID_USER_PROFILE_SERVICE,"USER_PROFILE_SERVICE_VALIDATOR","Missing function 'lookup'"));if("function"!=typeof e.save)throw new Error(n(i.INVALID_USER_PROFILE_SERVICE,"USER_PROFILE_SERVICE_VALIDATOR","Missing function 'save'"));return!0}}},function(e,t,r){var n=r(5),i=r(3),o=n(i,"DataView");e.exports=o},function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=r(148),o=r(149),a=r(150),s=r(151),u=r(152);n.prototype.clear=i,n.prototype.delete=o,n.prototype.get=a,n.prototype.has=s,n.prototype.set=u,e.exports=n},function(e,t,r){var n=r(5),i=r(3),o=n(i,"Promise");e.exports=o},function(e,t,r){var n=r(5),i=r(3),o=n(i,"Set");e.exports=o},function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=r(27),o=r(175),a=r(176);n.prototype.add=n.prototype.push=o,n.prototype.has=a,e.exports=n},function(e,t,r){var n=r(5),i=r(3),o=n(i,"WeakMap");e.exports=o},function(e,t){function r(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}e.exports=r},function(e,t){function r(e,t,r,n){for(var i=-1,o=null==e?0:e.length;++i<o;){var a=e[i];t(n,a,r(a),e)}return n}e.exports=r},function(e,t){function r(e,t,r,n){var i=-1,o=null==e?0:e.length;for(n&&o&&(r=e[++i]);++i<o;)r=t(r,e[i],i,e);return r}e.exports=r},function(e,t){function r(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}e.exports=r},function(e,t,r){function n(e,t,r,n){return i(e,function(e,i,o){t(n,e,r(e),o)}),n}var i=r(12);e.exports=n},function(e,t,r){function n(e,t){return e&&i(t,o(t),e)}var i=r(10),o=r(9);e.exports=n},function(e,t,r){function n(e,t){return e&&i(t,o(t),e)}var i=r(10),o=r(42);e.exports=n},function(e,t,r){function n(e,t,r,D,j,F){var P,C=t&T,w=t&b,M=t&x;if(r&&(P=j?r(e,D,j,F):r(e)),void 0!==P)return P;if(!y(e))return e;var G=h(e);if(G){if(P=v(e),!C)return f(e,P)}else{var k=g(e),B=k==V||k==m;if(O(e))return c(e,C);if(k==L||k==S||B&&!j){if(P=w||B?{}:d(e),!C)return w?p(e,u(P,e)):l(e,s(P,e))}else{if(!U[k])return j?e:{};P=I(e,k,C)}}F||(F=new i);var K=F.get(e);if(K)return K;if(F.set(e,P),N(e))return e.forEach(function(i){P.add(n(i,t,r,i,e,F))}),P;if(R(e))return e.forEach(function(i,o){P.set(o,n(i,t,r,o,e,F))}),P;var X=M?w?_:E:w?keysIn:A,q=G?void 0:X(e);return o(q||e,function(i,o){q&&(o=i,i=e[o]),a(P,o,n(i,t,r,o,e,F))}),P}var i=r(28),o=r(45),a=r(30),s=r(102),u=r(103),c=r(129),f=r(134),l=r(135),p=r(136),E=r(60),_=r(143),g=r(14),v=r(153),I=r(154),d=r(155),h=r(0),O=r(24),R=r(195),y=r(7),N=r(196),A=r(9),T=1,b=2,x=4,S="[object Arguments]",V="[object Function]",m="[object GeneratorFunction]",L="[object Object]",U={};U[S]=U["[object Array]"]=U["[object ArrayBuffer]"]=U["[object DataView]"]=U["[object Boolean]"]=U["[object Date]"]=U["[object Float32Array]"]=U["[object Float64Array]"]=U["[object Int8Array]"]=U["[object Int16Array]"]=U["[object Int32Array]"]=U["[object Map]"]=U["[object Number]"]=U[L]=U["[object RegExp]"]=U["[object Set]"]=U["[object String]"]=U["[object Symbol]"]=U["[object Uint8Array]"]=U["[object Uint8ClampedArray]"]=U["[object Uint16Array]"]=U["[object Uint32Array]"]=!0,U["[object Error]"]=U[V]=U["[object WeakMap]"]=!1,e.exports=n},function(e,t,r){var n=r(7),i=Object.create,o=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();e.exports=o},function(e,t,r){function n(e,t){var r=[];return i(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}var i=r(12);e.exports=n},function(e,t,r){var n=r(140),i=n();e.exports=i},function(e,t){function r(e,t){return null!=e&&t in Object(e)}e.exports=r},function(e,t,r){function n(e){return o(e)&&i(e)==a}var i=r(13),o=r(8),a="[object Arguments]";e.exports=n},function(e,t,r){function n(e,t,r,n,v,d){var h=c(e),O=c(t),R=h?_:u(e),y=O?_:u(t);R=R==E?g:R,y=y==E?g:y;var N=R==g,A=y==g,T=R==y;if(T&&f(e)){if(!f(t))return!1;h=!0,N=!1}if(T&&!N)return d||(d=new i),h||l(e)?o(e,t,r,n,v,d):a(e,t,R,r,n,v,d);if(!(r&p)){var b=N&&I.call(e,"__wrapped__"),x=A&&I.call(t,"__wrapped__");if(b||x){var S=b?e.value():e,V=x?t.value():t;return d||(d=new i),v(S,V,r,n,d)}}return!!T&&(d||(d=new i),s(e,t,r,n,v,d))}var i=r(28),o=r(58),a=r(141),s=r(142),u=r(14),c=r(0),f=r(24),l=r(41),p=1,E="[object Arguments]",_="[object Array]",g="[object Object]",v=Object.prototype,I=v.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){return o(e)&&i(e)==a}var i=r(14),o=r(8),a="[object Map]";e.exports=n},function(e,t,r){function n(e,t,r,n){var u=r.length,c=u,f=!n;if(null==e)return!c;for(e=Object(e);u--;){var l=r[u];if(f&&l[2]?l[1]!==e[l[0]]:!(l[0]in e))return!1}for(;++u<c;){l=r[u];var p=l[0],E=e[p],_=l[1];if(f&&l[2]){if(void 0===E&&!(p in e))return!1}else{var g=new i;if(n)var v=n(E,_,p,e,t,g);if(!(void 0===v?o(_,E,a|s,n,g):v))return!1}}return!0}var i=r(28),o=r(52),a=1,s=2;e.exports=n},function(e,t,r){function n(e){return!(!a(e)||o(e))&&(i(e)?_:c).test(s(e))}var i=r(68),o=r(158),a=r(7),s=r(66),u=/[\\^$.*+?()[\]{}|]/g,c=/^\[object .+?Constructor\]$/,f=Function.prototype,l=Object.prototype,p=f.toString,E=l.hasOwnProperty,_=RegExp("^"+p.call(E).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=n},function(e,t,r){function n(e){return o(e)&&i(e)==a}var i=r(14),o=r(8),a="[object Set]";e.exports=n},function(e,t,r){function n(e){return a(e)&&o(e.length)&&!!s[i(e)]}var i=r(13),o=r(39),a=r(8),s={};s["[object Float32Array]"]=s["[object Float64Array]"]=s["[object Int8Array]"]=s["[object Int16Array]"]=s["[object Int32Array]"]=s["[object Uint8Array]"]=s["[object Uint8ClampedArray]"]=s["[object Uint16Array]"]=s["[object Uint32Array]"]=!0,s["[object Arguments]"]=s["[object Array]"]=s["[object ArrayBuffer]"]=s["[object Boolean]"]=s["[object DataView]"]=s["[object Date]"]=s["[object Error]"]=s["[object Function]"]=s["[object Map]"]=s["[object Number]"]=s["[object Object]"]=s["[object RegExp]"]=s["[object Set]"]=s["[object String]"]=s["[object WeakMap]"]=!1,e.exports=n},function(e,t,r){function n(e){if(!i(e))return a(e);var t=o(e),r=[];for(var n in e)("constructor"!=n||!t&&u.call(e,n))&&r.push(n);return r}var i=r(7),o=r(15),a=r(172),s=Object.prototype,u=s.hasOwnProperty;e.exports=n},function(e,t,r){function n(e,t){var r=-1,n=o(e)?Array(e.length):[];return i(e,function(e,i,o){n[++r]=t(e,i,o)}),n}var i=r(12),o=r(6);e.exports=n},function(e,t,r){function n(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||i(r,e,t)}}var i=r(112),o=r(144),a=r(64);e.exports=n},function(e,t,r){function n(e,t){return s(e)&&u(t)?c(f(e),t):function(r){var n=o(r,e);return void 0===n&&n===t?a(r,e):i(t,n,l|p)}}var i=r(52),o=r(192),a=r(193),s=r(36),u=r(63),c=r(64),f=r(21),l=1,p=2;e.exports=n},function(e,t){function r(e){return function(t){return null==t?void 0:t[e]}}e.exports=r},function(e,t,r){function n(e){return function(t){return i(t,e)}}var i=r(50);e.exports=n},function(e,t){function r(e,t,r,n,i){return i(e,function(e,i,o){r=n?(n=!1,e):t(r,e,i,o)}),r}e.exports=r},function(e,t,r){function n(e,t){return a(o(e,t,i),e+"")}var i=r(23),o=r(174),a=r(178);e.exports=n},function(e,t,r){var n=r(189),i=r(57),o=r(23),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:o;e.exports=a},function(e,t){function r(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}e.exports=r},function(e,t,r){function n(e){if("string"==typeof e)return e;if(a(e))return o(e,n)+"";if(s(e))return f?f.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=r(11),o=r(29),a=r(0),s=r(40),u=1/0,c=i?i.prototype:void 0,f=c?c.toString:void 0;e.exports=n},function(e,t,r){function n(e,t){return i(t,function(t){return e[t]})}var i=r(29);e.exports=n},function(e,t){function r(e,t){return e.has(t)}e.exports=r},function(e,t,r){(function(e){function n(e,t){if(t)return e.slice();var r=e.length,n=c?c(r):new e.constructor(r);return e.copy(n),n}var i=r(3),o="object"==typeof t&&t&&!t.nodeType&&t,a=o&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===o,u=s?i.Buffer:void 0,c=u?u.allocUnsafe:void 0;e.exports=n}).call(t,r(43)(e))},function(e,t,r){function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var i=r(33);e.exports=n},function(e,t){function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}var n=/\w*$/;e.exports=r},function(e,t,r){function n(e){return a?Object(a.call(e)):{}}var i=r(11),o=i?i.prototype:void 0,a=o?o.valueOf:void 0;e.exports=n},function(e,t,r){function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var i=r(33);e.exports=n},function(e,t){function r(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}e.exports=r},function(e,t,r){function n(e,t){return i(e,o(e),t)}var i=r(10),o=r(34);e.exports=n},function(e,t,r){function n(e,t){return i(e,o(e),t)}var i=r(10),o=r(62);e.exports=n},function(e,t,r){var n=r(3),i=n["__core-js_shared__"];e.exports=i},function(e,t,r){function n(e,t){return function(r,n){var u=s(r)?i:o,c=t?t():{};return u(r,e,a(n,2),c)}}var i=r(98),o=r(101),a=r(18),s=r(0);e.exports=n},function(e,t,r){function n(e,t){return function(r,n){if(null==r)return r;if(!i(r))return e(r,n);for(var o=r.length,a=t?o:-1,s=Object(r);(t?a--:++a<o)&&!1!==n(s[a],a,s););return r}}var i=r(6);e.exports=n},function(e,t){function r(e){return function(t,r,n){for(var i=-1,o=Object(t),a=n(t),s=a.length;s--;){var u=a[e?s:++i];if(!1===r(o[u],u,o))break}return t}}e.exports=r},function(e,t,r){function n(e,t,r,n,i,N,T){switch(r){case y:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case R:return!(e.byteLength!=t.byteLength||!N(new o(e),new o(t)));case p:case E:case v:return a(+e,+t);case _:return e.name==t.name&&e.message==t.message;case I:case h:return e==t+"";case g:var b=u;case d:var x=n&f;if(b||(b=c),e.size!=t.size&&!x)return!1;var S=T.get(e);if(S)return S==t;n|=l,T.set(e,t);var V=s(b(e),b(t),n,i,N,T);return T.delete(e),V;case O:if(A)return A.call(e)==A.call(t)}return!1}var i=r(11),o=r(44),a=r(22),s=r(58),u=r(169),c=r(177),f=1,l=2,p="[object Boolean]",E="[object Date]",_="[object Error]",g="[object Map]",v="[object Number]",I="[object RegExp]",d="[object Set]",h="[object String]",O="[object Symbol]",R="[object ArrayBuffer]",y="[object DataView]",N=i?i.prototype:void 0,A=N?N.valueOf:void 0;e.exports=n},function(e,t,r){function n(e,t,r,n,a,u){var c=r&o,f=i(e),l=f.length;if(l!=i(t).length&&!c)return!1;for(var p=l;p--;){var E=f[p];if(!(c?E in t:s.call(t,E)))return!1}var _=u.get(e);if(_&&u.get(t))return _==t;var g=!0;u.set(e,t),u.set(t,e);for(var v=c;++p<l;){E=f[p];var I=e[E],d=t[E];if(n)var h=c?n(d,I,E,t,e,u):n(I,d,E,e,t,u);if(!(void 0===h?I===d||a(I,d,r,n,u):h)){g=!1;break}v||(v="constructor"==E)}if(g&&!v){var O=e.constructor,R=t.constructor;O!=R&&"constructor"in e&&"constructor"in t&&!("function"==typeof O&&O instanceof O&&"function"==typeof R&&R instanceof R)&&(g=!1)}return u.delete(e),u.delete(t),g}var i=r(60),o=1,a=Object.prototype,s=a.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){return i(e,a,o)}var i=r(51),o=r(62),a=r(42);e.exports=n},function(e,t,r){function n(e){for(var t=o(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,i(a)]}return t}var i=r(63),o=r(9);e.exports=n},function(e,t,r){function n(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var i=s.call(e);return n&&(t?e[u]=r:delete e[u]),i}var i=r(11),o=Object.prototype,a=o.hasOwnProperty,s=o.toString,u=i?i.toStringTag:void 0;e.exports=n},function(e,t){function r(e,t){return null==e?void 0:e[t]}e.exports=r},function(e,t,r){function n(e,t,r){t=i(t,e);for(var n=-1,f=t.length,l=!1;++n<f;){var p=c(t[n]);if(!(l=null!=e&&r(e,p)))break;e=e[p]}return l||++n!=f?l:!!(f=null==e?0:e.length)&&u(f)&&s(p,f)&&(a(e)||o(e))}var i=r(55),o=r(38),a=r(0),s=r(35),u=r(39),c=r(21);e.exports=n},function(e,t,r){function n(){this.__data__=i?i(null):{},this.size=0}var i=r(20);e.exports=n},function(e,t){function r(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}e.exports=r},function(e,t,r){function n(e){var t=this.__data__;if(i){var r=t[e];return r===o?void 0:r}return s.call(t,e)?t[e]:void 0}var i=r(20),o="__lodash_hash_undefined__",a=Object.prototype,s=a.hasOwnProperty;e.exports=n},function(e,t,r){function n(e){var t=this.__data__;return i?void 0!==t[e]:a.call(t,e)}var i=r(20),o=Object.prototype,a=o.hasOwnProperty;e.exports=n},function(e,t,r){function n(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=i&&void 0===t?o:t,this}var i=r(20),o="__lodash_hash_undefined__";e.exports=n},function(e,t){function r(e){var t=e.length,r=new e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var n=Object.prototype,i=n.hasOwnProperty;e.exports=r},function(e,t,r){function n(e,t,r){var n=e.constructor;switch(t){case I:return i(e);case c:case f:return new n(+e);case d:return o(e,r);case h:case O:case R:case y:case N:case A:case T:case b:case x:return u(e,r);case l:return new n;case p:case g:return new n(e);case E:return a(e);case _:return new n;case v:return s(e)}}var i=r(33),o=r(130),a=r(131),s=r(132),u=r(133),c="[object Boolean]",f="[object Date]",l="[object Map]",p="[object Number]",E="[object RegExp]",_="[object Set]",g="[object String]",v="[object Symbol]",I="[object ArrayBuffer]",d="[object DataView]",h="[object Float32Array]",O="[object Float64Array]",R="[object Int8Array]",y="[object Int16Array]",N="[object Int32Array]",A="[object Uint8Array]",T="[object Uint8ClampedArray]",b="[object Uint16Array]",x="[object Uint32Array]";e.exports=n},function(e,t,r){function n(e){return"function"!=typeof e.constructor||a(e)?{}:i(o(e))}var i=r(105),o=r(61),a=r(15);e.exports=n},function(e,t,r){function n(e,t,r){if(!s(r))return!1;var n=typeof t;return!!("number"==n?o(r)&&a(t,r.length):"string"==n&&t in r)&&i(r[t],e)}var i=r(22),o=r(6),a=r(35),s=r(7);e.exports=n},function(e,t){function r(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}e.exports=r},function(e,t,r){function n(e){return!!o&&o in e}var i=r(137),o=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();e.exports=n},function(e,t){function r(){this.__data__=[],this.size=0}e.exports=r},function(e,t,r){function n(e){var t=this.__data__,r=i(t,e);return!(r<0)&&(r==t.length-1?t.pop():a.call(t,r,1),--this.size,!0)}var i=r(17),o=Array.prototype,a=o.splice;e.exports=n},function(e,t,r){function n(e){var t=this.__data__,r=i(t,e);return r<0?void 0:t[r][1]}var i=r(17);e.exports=n},function(e,t,r){function n(e){return i(this.__data__,e)>-1}var i=r(17);e.exports=n},function(e,t,r){function n(e,t){var r=this.__data__,n=i(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var i=r(17);e.exports=n},function(e,t,r){function n(){this.size=0,this.__data__={hash:new i,map:new(a||o),string:new i}}var i=r(92),o=r(16),a=r(26);e.exports=n},function(e,t,r){function n(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=r(19);e.exports=n},function(e,t,r){function n(e){return i(this,e).get(e)}var i=r(19);e.exports=n},function(e,t,r){function n(e){return i(this,e).has(e)}var i=r(19);e.exports=n},function(e,t,r){function n(e,t){var r=i(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var i=r(19);e.exports=n},function(e,t){function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}e.exports=r},function(e,t,r){function n(e){var t=i(e,function(e){return r.size===o&&r.clear(),e}),r=t.cache;return t}var i=r(199),o=500;e.exports=n},function(e,t,r){var n=r(65),i=n(Object.keys,Object);e.exports=i},function(e,t){function r(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}e.exports=r},function(e,t){function r(e){return i.call(e)}var n=Object.prototype,i=n.toString;e.exports=r},function(e,t,r){function n(e,t,r){return t=o(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,s=o(n.length-t,0),u=Array(s);++a<s;)u[a]=n[t+a];a=-1;for(var c=Array(t+1);++a<t;)c[a]=n[a];return c[t]=r(u),i(e,this,c)}}var i=r(97),o=Math.max;e.exports=n},function(e,t){function r(e){return this.__data__.set(e,n),this}var n="__lodash_hash_undefined__";e.exports=r},function(e,t){function r(e){return this.__data__.has(e)}e.exports=r},function(e,t){function r(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}e.exports=r},function(e,t,r){var n=r(124),i=r(179),o=i(n);e.exports=o},function(e,t){function r(e){var t=0,r=0;return function(){var a=o(),s=i-(a-r);if(r=a,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var n=800,i=16,o=Date.now;e.exports=r},function(e,t,r){function n(){this.__data__=new i,this.size=0}var i=r(16);e.exports=n},function(e,t){function r(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}e.exports=r},function(e,t){function r(e){return this.__data__.get(e)}e.exports=r},function(e,t){function r(e){return this.__data__.has(e)}e.exports=r},function(e,t,r){function n(e,t){var r=this.__data__;if(r instanceof i){var n=r.__data__;if(!o||n.length<s-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(n)}return r.set(e,t),this.size=r.size,this}var i=r(16),o=r(26),a=r(27),s=200;e.exports=n},function(e,t,r){var n=r(170),i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o=/\\(\\)?/g,a=n(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(i,function(e,r,n,i){t.push(n?i.replace(o,"$1"):r||e)}),t});e.exports=a},function(e,t,r){var n=r(30),i=r(10),o=r(56),a=r(6),s=r(15),u=r(9),c=Object.prototype,f=c.hasOwnProperty,l=o(function(e,t){if(s(t)||a(t))return void i(t,u(t),e);for(var r in t)f.call(t,r)&&n(e,r,t[r])});e.exports=l},function(e,t,r){var n=r(10),i=r(56),o=r(42),a=i(function(e,t){n(t,o(t),e)});e.exports=a},function(e,t,r){function n(e){return i(e,o|a)}var i=r(104),o=1,a=4;e.exports=n},function(e,t){function r(e){return function(){return e}}e.exports=r},function(e,t,r){function n(e,t){return(s(e)?i:o)(e,a(t,3))}var i=r(46),o=r(106),a=r(18),s=r(0);e.exports=n},function(e,t,r){function n(e,t){return(s(e)?i:o)(e,a(t))}var i=r(45),o=r(12),a=r(54),s=r(0);e.exports=n},function(e,t,r){function n(e,t,r){var n=null==e?void 0:i(e,t);return void 0===n?r:n}var i=r(50);e.exports=n},function(e,t,r){function n(e,t){return null!=e&&o(e,t,i)}var i=r(108),o=r(147);e.exports=n},function(e,t,r){function n(e){if(null==e)return!0;if(u(e)&&(s(e)||"string"==typeof e||"function"==typeof e.splice||c(e)||l(e)||a(e)))return!e.length;var t=o(e);if(t==p||t==E)return!e.size;if(f(e))return!i(e).length;for(var r in e)if(g.call(e,r))return!1;return!0}var i=r(53),o=r(14),a=r(38),s=r(0),u=r(6),c=r(24),f=r(15),l=r(41),p="[object Map]",E="[object Set]",_=Object.prototype,g=_.hasOwnProperty;e.exports=n},function(e,t,r){var n=r(111),i=r(32),o=r(37),a=o&&o.isMap,s=a?i(a):n;e.exports=s},function(e,t,r){var n=r(114),i=r(32),o=r(37),a=o&&o.isSet,s=a?i(a):n;e.exports=s},function(e,t,r){var n=r(31),i=r(138),o=i(function(e,t,r){n(e,r,t)});e.exports=o},function(e,t,r){function n(e,t){return(s(e)?i:a)(e,o(t,3))}var i=r(29),o=r(18),a=r(117),s=r(0);e.exports=n},function(e,t,r){function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(o);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],o=r.cache;if(o.has(i))return o.get(i);var a=e.apply(this,n);return r.cache=o.set(i,a)||o,a};return r.cache=new(n.Cache||i),r}var i=r(27),o="Expected a function";n.Cache=i,e.exports=n},function(e,t,r){function n(e){return a(e)?i(s(e)):o(e)}var i=r(120),o=r(121),a=r(36),s=r(21);e.exports=n},function(e,t,r){function n(e,t,r){var n=u(e)?i:s,c=arguments.length<3;return n(e,a(t,4),r,c,o)}var i=r(99),o=r(12),a=r(18),s=r(122),u=r(0);e.exports=n},function(e,t){function r(){return!1}e.exports=r},function(e,t,r){function n(e){return null==e?"":i(e)}var i=r(126);e.exports=n},function(e,t,r){function n(e){return null==e?[]:i(e,o(e))}var i=r(127),o=r(9);e.exports=n},function(e,t,r){!function(){function t(e,t){for(var r,n=e.length,i=t^n,o=0;n>=4;)r=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24,r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16),r^=r>>>24,r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)^r,n-=4,++o;switch(n){case 3:i^=(255&e.charCodeAt(o+2))<<16;case 2:i^=(255&e.charCodeAt(o+1))<<8;case 1:i^=255&e.charCodeAt(o),i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16)}return i^=i>>>13,i=1540483477*(65535&i)+((1540483477*(i>>>16)&65535)<<16),(i^=i>>>15)>>>0}function r(e,t){var r,n,i,o,a,s,u,c;for(r=3&e.length,n=e.length-r,i=t,a=3432918353,s=461845907,c=0;c<n;)u=255&e.charCodeAt(c)|(255&e.charCodeAt(++c))<<8|(255&e.charCodeAt(++c))<<16|(255&e.charCodeAt(++c))<<24,++c,u=(65535&u)*a+(((u>>>16)*a&65535)<<16)&4294967295,u=u<<15|u>>>17,u=(65535&u)*s+(((u>>>16)*s&65535)<<16)&4294967295,i^=u,i=i<<13|i>>>19,o=5*(65535&i)+((5*(i>>>16)&65535)<<16)&4294967295,i=27492+(65535&o)+((58964+(o>>>16)&65535)<<16);switch(u=0,r){case 3:u^=(255&e.charCodeAt(c+2))<<16;case 2:u^=(255&e.charCodeAt(c+1))<<8;case 1:u^=255&e.charCodeAt(c),u=(65535&u)*a+(((u>>>16)*a&65535)<<16)&4294967295,u=u<<15|u>>>17,u=(65535&u)*s+(((u>>>16)*s&65535)<<16)&4294967295,i^=u}return i^=e.length,i^=i>>>16,i=2246822507*(65535&i)+((2246822507*(i>>>16)&65535)<<16)&4294967295,i^=i>>>13,i=3266489909*(65535&i)+((3266489909*(i>>>16)&65535)<<16)&4294967295,(i^=i>>>16)>>>0}var n=r;n.v2=t,n.v3=r;e.exports=n}()},function(e,t,r){var n=r(207),i=r(208),o=i;o.v1=n,o.v4=i,e.exports=o},function(e,t,r){function n(e,t,r){var n=t&&r||0,i=t||[];e=e||{};var a=void 0!==e.clockseq?e.clockseq:u,l=void 0!==e.msecs?e.msecs:(new Date).getTime(),p=void 0!==e.nsecs?e.nsecs:f+1,E=l-c+(p-f)/1e4;if(E<0&&void 0===e.clockseq&&(a=a+1&16383),(E<0||l>c)&&void 0===e.nsecs&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");c=l,f=p,u=a,l+=122192928e5;var _=(1e4*(268435455&l)+p)%4294967296;i[n++]=_>>>24&255,i[n++]=_>>>16&255,i[n++]=_>>>8&255,i[n++]=255&_;var g=l/4294967296*1e4&268435455;i[n++]=g>>>8&255,i[n++]=255&g,i[n++]=g>>>24&15|16,i[n++]=g>>>16&255,i[n++]=a>>>8|128,i[n++]=255&a;for(var v=e.node||s,I=0;I<6;++I)i[n+I]=v[I];return t||o(i)}var i=r(71),o=r(70),a=i(),s=[1|a[0],a[1],a[2],a[3],a[4],a[5]],u=16383&(a[6]<<8|a[7]),c=0,f=0;e.exports=n},function(e,t,r){function n(e,t,r){var n=t&&r||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var a=e.random||(e.rng||i)();if(a[6]=15&a[6]|64,a[8]=63&a[8]|128,t)for(var s=0;s<16;++s)t[n+s]=a[s];return t||o(a)}var i=r(71),o=r(70);e.exports=n}])}); | |
return exports.optimizelyClient.optimizelyClient; | |
} | |
function encode(str) { | |
str = btoa(str); | |
return str | |
.replace(/=/g, "") | |
.replace(/\+/g, "-") | |
.replace(/\//g, "_"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment