/******/ (function(modules) { // webpackBootstrap
/******/ 	// install a JSONP callback for chunk loading
/******/ 	var parentJsonpFunction = window["webpackJsonp"];
/******/ 	window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) {
/******/ 		// add "moreModules" to the modules object,
/******/ 		// then flag all "chunkIds" as loaded and fire callback
/******/ 		var moduleId, chunkId, i = 0, callbacks = [];
/******/ 		for(;i < chunkIds.length; i++) {
/******/ 			chunkId = chunkIds[i];
/******/ 			if(installedChunks[chunkId])
/******/ 				callbacks.push.apply(callbacks, installedChunks[chunkId]);
/******/ 			installedChunks[chunkId] = 0;
/******/ 		}
/******/ 		for(moduleId in moreModules) {
/******/ 			modules[moduleId] = moreModules[moduleId];
/******/ 		}
/******/ 		if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);
/******/ 		while(callbacks.length)
/******/ 			callbacks.shift().call(null, __webpack_require__);
/******/ 		if(moreModules[0]) {
/******/ 			installedModules[0] = 0;
/******/ 			return __webpack_require__(0);
/******/ 		}
/******/ 	};

/******/ 	// The module cache
/******/ 	var installedModules = {};

/******/ 	// object to store loaded and loading chunks
/******/ 	// "0" means "already loaded"
/******/ 	// Array means "loading", array contains callbacks
/******/ 	var installedChunks = {
/******/ 		3:0
/******/ 	};

/******/ 	// 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] = {
/******/ 			exports: {},
/******/ 			id: moduleId,
/******/ 			loaded: false
/******/ 		};

/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);

/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;

/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}

/******/ 	// This file contains only the entry chunk.
/******/ 	// The chunk loading function for additional chunks
/******/ 	__webpack_require__.e = function requireEnsure(chunkId, callback) {
/******/ 		// "0" is the signal for "already loaded"
/******/ 		if(installedChunks[chunkId] === 0)
/******/ 			return callback.call(null, __webpack_require__);

/******/ 		// an array means "currently loading".
/******/ 		if(installedChunks[chunkId] !== undefined) {
/******/ 			installedChunks[chunkId].push(callback);
/******/ 		} else {
/******/ 			// start chunk loading
/******/ 			installedChunks[chunkId] = [callback];
/******/ 			var head = document.getElementsByTagName('head')[0];
/******/ 			var script = document.createElement('script');
/******/ 			script.type = 'text/javascript';
/******/ 			script.charset = 'utf-8';
/******/ 			script.async = true;

/******/ 			script.src = __webpack_require__.p + "" + chunkId + "." + ({"0":"account-detail","1":"answer-detail","2":"browse","4":"dynamic-form","5":"forum","6":"lynda-consent"}[chunkId]||chunkId) + ".js";
/******/ 			head.appendChild(script);
/******/ 		}
/******/ 	};

/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;

/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;

/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";

/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ function(module, exports, __webpack_require__) {

	__webpack_require__(104);

/***/ },
/* 1 */,
/* 2 */
/***/ function(module, exports) {

	module.exports = jQuery;

/***/ },
/* 3 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var fizzy     = __webpack_require__(4),
	      immediate = __webpack_require__(5).Utils.immediate,
	      TEMPLATES = __webpack_require__(6);

	  var cache = {};
	  var callbacks = {};

	  function addToCache(name, context) {
	    cache[name] = context;
	    notifyListeners(name);
	  }

	  for (var key in TEMPLATES) {
	    fizzy.on('after', TEMPLATES[key], addToCache);
	  }

	  function notifyListeners(name) {
	    if (callbacks[name]) {
	      immediate(function() {
	        callbacks[name].forEach(function(fn) {
	          fn(cache[name]);
	        });
	      });
	    }
	  }

	  module.exports = function(template, callback) {
	    if (cache[template]) {
	      immediate(function() {
	        callback(cache[template]);
	      });
	    } else {
	      if (callbacks[template]) {
	        callbacks[template].push(callback);
	      } else {
	        callbacks[template] = [callback];
	      }
	    }
	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 4 */
/***/ function(module, exports) {

	module.exports = fs;

/***/ },
/* 5 */
/***/ function(module, exports) {

	module.exports = Frampton;

/***/ },
/* 6 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = Object.freeze({

	    // PAGES
	    BROWSE: 'templates/pages/browse',
	    FORUM_HOME: 'templates/pages/forum_home',
	    ANSWER_DETAIL: 'templates/pages/answer_detail',
	    SEARCH_RESULTS: 'templates/pages/search_results',
	    ACCOUNT_DETAIL: 'templates/pages/account_detail',
	    ACCOUNT_OVERVIEW: 'templates/pages/account_overview',
	    DYNAMIC_FORM: 'templates/pages/dynamic_form',
	    FORUM_PROFILE: 'templates/pages/forum_profile',
	    FORUM_DETAIL: 'templates/pages/forum_question_detail',

	    // ROUTING PARTIALS
	    LOADING_MASK: 'templates/partials/routing/loading_mask',
	    ERROR_PAGE: 'templates/partials/routing/error_page',

	    // BROWSE PARTIALS
	    HOME: 'templates/partials/browse/home',
	    BROWSE_DETAIL: 'templates/partials/browse/answer_detail',

	    // TOPICS PARTIALS
	    TOPIC_GROUP: 'templates/partials/browse/topics/group',
	    TOPIC_ENTITY: 'templates/partials/browse/topics/entity',

	    // SAFETY CENTER PARTIALS
	    SAFETY_INDEX: 'templates/partials/browse/safety/index',
	    SAFETY_GROUP: 'templates/partials/browse/safety/group',
	    SAFETY_ENTITY: 'templates/partials/browse/safety/entity',

	    // MOBILE APPS PARTIALS
	    MOBILE_APPS_INDEX: 'templates/partials/browse/mobile-apps/index',
	    MOBILE_APPS_GROUP: 'templates/partials/browse/mobile-apps/group',
	    MOBILE_APPS_ENTITY: 'templates/partials/browse/mobile-apps/entity',

	    // ACOUNT DETAIL PARTIALS
	    REASON_MODAL: 'templates/partials/account/reason_modal',
	    THREAD_LIST: 'templates/partials/account/thread_list',
	    THREAD: 'templates/partials/account/thread',

	    // OPEN CASES PARTIALS
	    CASES_BANNER: 'templates/partials/open_cases/banner',
	    CASES_DETAIL: 'templates/partials/open_cases/detail',

	    // OTHER PARTIALS
	    FEEDBACK: 'templates/partials/feedback',
	    SEARCH: 'templates/partials/search',
	    MODAL_MASK: 'templates/partials/modal/mask',
	    RESULT_LIST: 'templates/partials/smart-assistant/result_list',
	    NOTIFICATION: 'templates/partials/notification',
	    IMAGE_MODAL: 'templates/partials/modal/image_modal',
	    ALERT_MODAL: 'templates/partials/modal/alert_modal',

	    // FORUM PARTIALS
	    FORUM_POST: 'templates/partials/forum/post/user_post',
	    UPVOTE_COUNT: 'templates/partials/forum/post/activity/upvote_count',
	    ACTION_MODAL: 'templates/partials/forum/modal/action_modal',
	    EDIT_QUESTION_MODAL: 'templates/partials/forum/modal/edit_question_modal',
	    EDIT_ANSWER_MODAL: 'templates/partials/forum/modal/edit_answer_modal',
	    REPORT_MODAL: 'templates/partials/forum/modal/report_modal',
	    LOCK_MODAL: 'templates/partials/forum/modal/lock_modal',
	    CONFIRMATION_MODAL: 'templates/partials/forum/modal/confirmation_modal',
	    CLOSE_QUESTION_MODAL: 'templates/partials/forum/modal/close_question_modal'
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 7 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = Object.freeze({

	    // PAGES
	    BROWSE: 'templates/pages/browse',
	    FORUM_HOME: 'templates/pages/forum_home',
	    ANSWER_DETAIL: 'templates/pages/answer_detail',
	    SEARCH_RESULTS: 'templates/pages/search_results',
	    ACCOUNT_DETAIL: 'templates/pages/account_detail',
	    ACCOUNT_OVERVIEW: 'templates/pages/account_overview',
	    DYNAMIC_FORM: 'templates/pages/dynamic_form',
	    FORUM_PROFILE: 'templates/pages/forum_profile',
	    FORUM_DETAIL: 'templates/pages/forum_question_detail',

	    // ROUTING PARTIALS
	    LOADING_MASK: 'templates/partials/routing/loading_mask',
	    ERROR_PAGE: 'templates/partials/routing/error_page',

	    // BROWSE PARTIALS
	    HOME: 'templates/partials/browse/home',
	    BROWSE_DETAIL: 'templates/partials/browse/answer_detail',

	    // TOPICS PARTIALS
	    TOPIC_GROUP: 'templates/partials/browse/topics/group',
	    TOPIC_ENTITY: 'templates/partials/browse/topics/entity',

	    // SAFETY CENTER PARTIALS
	    SAFETY_INDEX: 'templates/partials/browse/safety/index',
	    SAFETY_GROUP: 'templates/partials/browse/safety/group',
	    SAFETY_ENTITY: 'templates/partials/browse/safety/entity',

	    // MOBILE APPS PARTIALS
	    MOBILE_APPS_INDEX: 'templates/partials/browse/mobile-apps/index',
	    MOBILE_APPS_GROUP: 'templates/partials/browse/mobile-apps/group',
	    MOBILE_APPS_ENTITY: 'templates/partials/browse/mobile-apps/entity',

	    // ACOUNT DETAIL PARTIALS
	    REASON_MODAL: 'templates/partials/account/reason_modal',
	    THREAD_LIST: 'templates/partials/account/thread_list',
	    THREAD: 'templates/partials/account/thread',

	    // OPEN CASES PARTIALS
	    CASES_BANNER: 'templates/partials/open_cases/banner',
	    CASES_DETAIL: 'templates/partials/open_cases/detail',

	    // OTHER PARTIALS
	    FEEDBACK: 'templates/partials/feedback',
	    SEARCH: 'templates/partials/search',
	    MODAL_MASK: 'templates/partials/modal/mask',
	    RESULT_LIST: 'templates/partials/smart-assistant/result_list',
	    NOTIFICATION: 'templates/partials/notification',
	    IMAGE_MODAL: 'templates/partials/modal/image_modal',
	    ALERT_MODAL: 'templates/partials/modal/alert_modal',

	    // FORUM PARTIALS
	    FORUM_POST: 'templates/partials/forum/post/user_post',
	    UPVOTE_COUNT: 'templates/partials/forum/post/activity/upvote_count',
	    ACTION_MODAL: 'templates/partials/forum/modal/action_modal',
	    EDIT_QUESTION_MODAL: 'templates/partials/forum/modal/edit_question_modal',
	    EDIT_ANSWER_MODAL: 'templates/partials/forum/modal/edit_answer_modal',
	    REPORT_MODAL: 'templates/partials/forum/modal/report_modal',
	    LOCK_MODAL: 'templates/partials/forum/modal/lock_modal',
	    CONFIRMATION_MODAL: 'templates/partials/forum/modal/confirmation_modal',
	    CLOSE_QUESTION_MODAL: 'templates/partials/forum/modal/close_question_modal'
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 8 */,
/* 9 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = Object.freeze({

	    //PAGES
	    HOME: 'controllers.Home.index',
	    SEARCH: 'controllers.Answer.search',
	    THANK_YOU: 'controllers.DynamicForm.thankYou',

	    TOPIC: 'controllers.Topics.topic',
	    TOPIC_GROUP: 'controllers.Topics.topicGroup',

	    FORUM_HOME: 'controllers.Forum.index',
	    FORUM_QUESTION: 'controllers.Forum.questionDetail',

	    SAFETY_INDEX: 'controllers.Safety.index',
	    SAFETY_TOPIC_GROUP: 'controllers.Safety.topicGroup',
	    SAFETY_ENTITY: 'controllers.Safety.entity',
	    SAFETY_REPORT_PROBLEM: 'controllers.Safety.report',

	    MOBILE_APPS_INDEX: 'controllers.MobileApps.index',
	    MOBILE_APPS_TOPIC_GROUP: 'controllers.MobileApps.topicGroup',
	    MOBILE_APPS_ENTITY: 'controllers.MobileApps.entity',

	    LYNDA_ASK: 'controllers.DynamicForm.form',

	    //APIS
	    OPEN_CASES: 'controllers.api.Client.getOpenCases',
	    SEARCH_API: 'controllers.api.Answer.search',

	    // SMART ASSISTANT
	    SMART_ASSIST: 'controllers.api.SmartAssistant.get',
	    SMART_HELPFUL: 'controllers.api.SmartAssistant.helpful',
	    SMART_UNHELPFUL: 'controllers.api.SmartAssistant.unhelpful',
	    SMART_IGNORED: 'controllers.api.SmartAssistant.ignored',

	    // BROWSE FLOW API
	    SUGGESTED_API: 'controllers.api.Topics.suggested',
	    TOPICS_POPULAR_API: 'controllers.api.Topics.popular',
	    TOPICS_GROUP_API: 'controllers.api.Topics.topicGroup',
	    TOPICS_API: 'controllers.api.Topics.topic',
	    TOPICS_ENTITY_API: 'controllers.api.Topics.entity',

	    // SAFETY API
	    SAFETY_API: 'controllers.api.Safety.index',
	    SAFETY_REPORT_PROBLEM_API: 'controllers.api.Safety.report',
	    SAFETY_TOPIC_GROUP_API: 'controllers.api.Safety.topicGroup',
	    SAFETY_TOPIC_API: 'controllers.api.Safety.topic',
	    SAFETY_ENTITY_API: 'controllers.api.Safety.entity',

	    // MOBILE APPS API
	    MOBILE_APPS_API: 'controllers.api.MobileApps.index',
	    MOBILE_APPS_TOPIC_GROUP_API: 'controllers.api.MobileApps.topicGroup',
	    MOBILE_APPS_TOPIC_API: 'controllers.api.MobileApps.topic',
	    MOBILE_APPS_ENTITY_API: 'controllers.api.MobileApps.entity',

	    // ANSWER APIS
	    ANSWER_API: 'controllers.api.Answer.detail',
	    RATE_API: 'controllers.api.Answer.rate',
	    FEEDBACK_API: 'controllers.api.Answer.feedback',

	    // TICKET APIS
	    CLOSE_TICKET_API: 'controllers.api.Ticket.close',
	    REOPEN_TICKET_API: 'controllers.api.Ticket.reopen',
	    ADD_COMMENT_API: 'controllers.api.Ticket.comment',
	    FORM_SUBMIT: 'controllers.api.Ticket.create',

	    // OTHER APIS
	    SURVEY_API: 'controllers.api.Survey.submit',
	    SURVEY_PROGRESS: 'controllers.api.Survey.progress',
	    ATTACHMENT_UPLOAD_API: 'controllers.api.Attachments.upload',
	    GEOLOCATION_API: 'controllers.api.Geolocation.getLocale',
	    CHAT_INTERACTION: 'controllers.api.Chat.interaction',
	    CHAT_SESSION_PROGRESS: 'controllers.api.Chat.sessionProgress',

	    // TRACKING
	    GENERIC_VIEW: 'controllers.api.Tracking.genericView',
	    ENTITY_VIEW: 'controllers.api.Tracking.entityView',
	    HOME_VIEW: 'controllers.api.Tracking.homeView',
	    LYNDA_CONSENT: 'controllers.api.Tracking.lyndaConsentAction',

	    //FORUM API
	    NODE_OP: 'controllers.api.Forum.nodeOperation',
	    FORUM_COMMENT: 'controllers.api.Forum.comment',
	    FORUM_ANSWER: 'controllers.api.Forum.answer',
	    FORUM_ASK: 'controllers.api.Forum.ask',
	    GET_FORUM_NODE: 'controllers.api.Forum.getNode'
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 10 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(11), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _dust, _frampton) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _dust2 = _interopRequireDefault(_dust);

	  var _Fr = _interopRequireDefault(_frampton);

	  var warn = _Fr['default'].Utils.warn;
	  var cache = _dust2['default'].i18n.cache['templates/shared/static_strings'];

	  module.exports = {
	    get: function get(name) {
	      var value = cache[name];
	      if (value) {
	        return value;
	      } else {
	        warn('Value for ' + name + ' not found in i18n cache');
	        return '';
	      }
	    }
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 11 */
/***/ function(module, exports) {

	module.exports = dust;

/***/ },
/* 12 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(13), __webpack_require__(14), __webpack_require__(5), __webpack_require__(15)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _play, _environment, _frampton, _javascriptsConfigPageKeys) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _play2 = _interopRequireDefault(_play);

	  var _ENV = _interopRequireDefault(_environment);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _pagekeys = _interopRequireDefault(_javascriptsConfigPageKeys);

	  var curry = _Fr['default'].Utils.curry;
	  var isString = _Fr['default'].Utils.isString;

	  function urlBuilder(controller) {
	    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	      args[_key - 1] = arguments[_key];
	    }

	    // All routes have the hc_product as first argument
	    args.unshift(_ENV['default'].HC_PRODUCT);

	    var config = args.reduce(function (acc, next, index) {
	      acc['arg' + index] = next;
	      return acc;
	    }, { alias: controller });

	    return _play2['default'].url(config);
	  }

	  var withPageKey = function withPageKey() {
	    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
	      args[_key2] = arguments[_key2];
	    }

	    return appendPageKey(urlBuilder.apply(null, args), args[0]);
	  };

	  //+ appendPageKey :: String -> String
	  var appendPageKey = function appendPageKey(url, controller) {

	    var keyForController = isString(controller) ? _pagekeys['default'][controller] : null;

	    var pageKey = keyForController || _ENV['default'].GLOBAL.pageKey || _ENV['default'].INITIAL_PAGE_DATA.DATA.pageKey || "";

	    if (pageKey) {
	      return _play2['default'].addQueryParameter(url, 'page_key', pageKey);
	    } else {
	      return url;
	    }
	  };

	  var appendReferer = function appendReferer(url) {
	    if (_ENV['default'].GLOBAL.referralUrl) {
	      return _play2['default'].addQueryParameter(url, 'referer', _ENV['default'].GLOBAL.referralUrl);
	    } else {
	      return url;
	    }
	  };

	  var appendPath = function appendPath(url) {
	    if (_ENV['default'].GLOBAL.path) {
	      return _play2['default'].addQueryParameter(url, 'path', _ENV['default'].GLOBAL.path);
	    } else {
	      return url;
	    }
	  };

	  //+ csrf :: String -> String
	  var csrf = function csrf(url) {
	    return _play2['default'].addCsrfTokenToUrl(url);
	  };

	  //+ formattedUrl :: String -> String
	  var formattedUrl = function formattedUrl(url) {
	    return appendReferer(appendPath(url));
	  };

	  //+ toRequestUrl0 :: String -> String
	  var toRequestUrl0 = function toRequestUrl0(controller) {
	    return formattedUrl(csrf(withPageKey.call(null, controller)));
	  };

	  //+ toRequestUrl :: String -> Object -> String
	  var toRequestUrl = curry(function (controller, args) {
	    return formattedUrl(csrf(withPageKey.apply(null, arguments)));
	  });

	  //+ toGetRequestUrl :: String -> Object -> String
	  var toGetRequestUrl = curry(function (controller, args) {
	    return formattedUrl(withPageKey.apply(null, arguments));
	  });

	  //+ toGetRequestUrl0 :: String -> Object -> String
	  var toGetRequestUrl0 = function toGetRequestUrl0(controller) {
	    return formattedUrl(withPageKey.call(null, controller));
	  };

	  //+ toBaseUrl :: String -> String
	  var toBaseUrl = curry(function (controller, args) {
	    return urlBuilder.apply(null, arguments);
	  });

	  //+ toBaseUrl0 :: String -> String
	  var toBaseUrl0 = function toBaseUrl0(controller) {
	    return urlBuilder.call(null, controller);
	  };

	  //+ localizedUrl :: String -> String
	  var localizedUrl = function localizedUrl(url) {
	    return _play2['default'].addQueryParameter(url, 'lang', _ENV['default'].GLOBAL.locale.code);
	  };

	  module.exports = {

	    localizedUrl: localizedUrl,

	    toGetRequestUrl: toGetRequestUrl,

	    toGetRequestUrl0: toGetRequestUrl0,

	    toRequestUrl0: toRequestUrl0,

	    toRequestUrl: toRequestUrl,

	    toBaseUrl: toBaseUrl,

	    toBaseUrl0: toBaseUrl0,

	    csrf: csrf

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 13 */
/***/ function(module, exports) {

	module.exports = play;

/***/ },
/* 14 */
/***/ function(module, exports) {

	module.exports = __HC.ENV;

/***/ },
/* 15 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(9)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsConfigRoutes) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var PAGE_KEYS = {};

	  PAGE_KEYS[_ROUTES['default'].TOPICS_HOME] = 'hc_home';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_GROUP_API] = 'hc_browse_topic_group';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_API] = 'hc_browse_topic';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_ENTITY_API] = 'hc_browse_entity';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_API] = 'hc_safety';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_TOPIC_GROUP_API] = 'hc_safety_topic_group';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_TOPIC_API] = 'hc_safety_topic';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_ENTITY_API] = 'hc_safety_entity';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_REPORT_PROBLEM_API] = 'hc_search_entity';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_API] = 'hc_mobile_apps';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_TOPIC_GROUP_API] = 'hc_mobile_apps_topic_group';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_TOPIC_API] = 'hc_mobile_apps_topic';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_ENTITY_API] = 'hc_mobile_apps_entity';
	  PAGE_KEYS[_ROUTES['default'].SUGGESTED_API] = 'hc_suggested_entity';

	  module.exports = Object.freeze(PAGE_KEYS);
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 16 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  module.exports = loading_button;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var CLASSES = {
	    PROCESSING: 'processing'
	  };

	  var SELECTORS = {
	    PROCESSING_ICON: '.processing-icon'
	  };

	  var $spinner = _$['default']('<span class="processing-icon" />');

	  var buttonProcessing = function buttonProcessing($button) {
	    $button.attr({
	      disabled: true
	    }).addClass(CLASSES.PROCESSING).append($spinner);
	  };

	  var buttonComplete = function buttonComplete($button) {
	    $button.attr({
	      disabled: false
	    }).removeClass(CLASSES.PROCESSING).find(SELECTORS.PROCESSING_ICON).remove();
	  };

	  function loading_button($element) {

	    return {

	      button: $element,

	      processing: function processing() {
	        buttonProcessing($element);
	      },

	      complete: function complete() {
	        buttonComplete($element);
	      }
	    };
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 17 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $          = __webpack_require__(2),
	      $body      = __webpack_require__(18),
	      render     = __webpack_require__(19),
	      onEvent    = __webpack_require__(5).Events.onEvent,
	      stepper    = __webpack_require__(5).Signal.stepper,
	      describe   = __webpack_require__(5).Motion.describe,
	      makeSticky = __webpack_require__(20),
	      TEMPLATES  = __webpack_require__(22);

	  var DEFAULT_CONFIG = {

	    SELECTORS : {
	      DISMISS              : '.js-notification-dismiss',
	      COPY                 : '.js-notification-copy',
	      NOTIFICATION_WRAPPER : '#js-notification-wrapper',
	      NOTIFICATION         : '.js-notification',
	      FOCUSED_ITEM         : ':focus'
	    },

	    CLASSES : {
	      VISIBLE : 'notification-open',
	      HIDDEN  : 'notification-closed'
	    }

	  };

	  function toRenderedNotification(data) {
	    var notification = {
	      body : data.body,
	      notificationType : data.notificationType
	    };
	    return render(TEMPLATES.NOTIFICATION, notification);
	  }

	  function Notification(options) {

	    // Once a newNotification event has been triggered,
	    // set up the DOM elements to listen for their events.
	    var CONFIG = $.extend({}, DEFAULT_CONFIG, (options || {}));

	    var $notificationWrapper = $(CONFIG.SELECTORS.NOTIFICATION_WRAPPER);

	    // make the notification sticky
	    makeSticky($notificationWrapper);

	    // Since Notifications can be added to the page,
	    // set up the body to listen for the newNotification event
	    // to get things started.
	    var notificationAdded = onEvent('newNotification', $body);

	    notificationAdded.next(function(evt) {

	      $notificationWrapper.html(toRenderedNotification(evt));

	      var $root        = $(CONFIG.SELECTORS.NOTIFICATION);
	      var $closeButton = $root.find(CONFIG.SELECTORS.DISMISS);
	      var $copy        = $root.find(CONFIG.SELECTORS.COPY);
	      var copyHeight   = $copy.outerHeight(); // need to apply a fixed height value to transition height through css

	      // STREAMS
	      var closeClicks = onEvent('click', $closeButton[0]);

	      // TRANSITIONS
	      var closeTransition = describe($root[0], CONFIG.CLASSES.HIDDEN, { height: '0px' });
	      var openTransition = describe($root[0], CONFIG.CLASSES.VISIBLE, { height: copyHeight });

	      // Attach an event to hide the notification
	      closeClicks.next(function() {
	        $root.css('height', $copy.outerHeight());
	        closeTransition.run(function() {
	          // if the user is still focused on the dismiss button when it gets removed,
	          // move focus to the wrapper that isn't removed so focus doesn't return to the top of the page
	          if( $(CONFIG.SELECTORS.FOCUSED_ITEM).get(0) === $closeButton.get(0) ) {
	            $notificationWrapper.trigger('focus');
	          }
	          $root.remove();
	          if (evt.closeCallback) { evt.closeCallback(); }
	        });
	      });

	      // Show the notification
	      openTransition.run(function() {
	        $root.css('height', 'auto');
	      });
	    });
	  }

	  Notification.SUCCESS = 'success';
	  Notification.ATTENTION = 'attention';
	  Notification.WARNING = 'warning';
	  Notification.NOTICE = 'notice';

	  Notification.EVENTS = {};
	  Notification.EVENTS.NEW = 'newNotification';

	  Notification.trigger = function Notification_trigger(type, message, callback) {
	    var evt = $.Event(Notification.EVENTS.NEW);
	    evt.body = message;
	    evt.notificationType = type;
	    evt.closeCallback = callback;
	    $body.trigger(evt);
	  };

	  module.exports = Notification;

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 18 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default']('body');
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 19 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var dust  = __webpack_require__(11),
	      ENV   = __webpack_require__(14),
	      curry = __webpack_require__(5).Utils.curry;

	  //+ render :: String -> Object -> String
	  module.exports = curry(function(template, data) {
	    var output = '';
	    if (!data.global) {
	      data.global = ENV.GLOBAL;
	    }
	    dust.render(template, data, function(err, html) {
	      if (err) throw new Error(err);
	      output = html;
	    });
	    return output;
	  });

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 20 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;// sticky elements operate in the following way:
	// - if they are within the viewport, they appear as `position: static` and in the natural DOM flow
	// - if they are NOT within the viewport, they appear as `position: fixed` and stuck to the top of the viewport
	!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $       = __webpack_require__(2),
	      onEvent = __webpack_require__(5).Events.onEvent,
	      not     = __webpack_require__(5).Utils.not,
	      _window = __webpack_require__(21)._window;

	  var CONFIG = {
	    CLASSES : {
	      STICKY : 'sticky'
	    }
	  };

	  module.exports = function sticky($el) {

	    var $spacer = $('<div />');

	    // grab the position where the element is rendered naturally
	    var defaultTop = $el.position().top;

	    var isAtTop = function() {
	      return _window.scrollTop() >= defaultTop;
	    };

	    var isSticky = function() {
	      return $el.hasClass(CONFIG.CLASSES.STICKY);
	    };

	    var windowScroll = onEvent('scroll', _window);

	    var stickToTop = windowScroll.filter(not(isSticky)).filter(isAtTop);
	    var unstick = windowScroll.filter(isSticky).filter(not(isAtTop));

	    stickToTop.next(function() {
	      // add a spacer equal to height so that the change to fixed doesn't cause a page jump
	      $spacer.height($el.height());

	      $el
	        .addClass(CONFIG.CLASSES.STICKY)
	        .before($spacer);
	    });

	    unstick.next(function() {
	      $el
	        .removeClass(CONFIG.CLASSES.STICKY)
	        .prev($spacer)
	          .remove();
	    });
	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 21 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _jquery, _frampton) {
	  'use strict';

	  exports.__esModule = true;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var apply = _Fr['default'].Utils.apply;

	  var listeners = {
	    mobile: [],
	    tablet: [],
	    desktop: [],
	    resize: []
	  };

	  var doc = document.documentElement;

	  // mama-bear break point from our grid.
	  var TABLET_WIDTH = 767;
	  // papa-bear break point from our grid.
	  var DESKTOP_WIDTH = 1023;

	  var isMobile = checkMobile();
	  var isDesktop = checkDesktop();
	  var isTablet = checkTablet();

	  var size = 0;

	  var _window = _$['default'](window);

	  function addListener(name, callback) {
	    if (size === 0) {
	      _window.on('resize', resizeHandler);
	    }
	    if (listeners[name] && listeners[name].indexOf(callback) < 0) {

	      if (name === 'mobile' || name === 'desktop' || name === 'tablet') {
	        listeners[name].push(callback);
	        size++;
	      }

	      if (name === 'mobile' && checkMobile()) {
	        callback();
	      } else if (name === 'tablet' && checkTablet()) {
	        callback();
	      } else if (name === 'desktop' && checkDesktop()) {
	        callback();
	      }
	    }
	  }

	  function removeListener(name, callback) {
	    listeners[name] = listeners[name].filter(function (arr) {
	      return arr.indexOf(callback) < 0;
	    });
	  }

	  function resizeHandler() {
	    listeners.resize.forEach(apply);
	    if (checkMobile() && !isMobile) {
	      listeners.mobile.forEach(apply);
	      isMobile = true;
	      isTablet = false;
	      isDesktop = false;
	    } else if (checkTablet() && !isTablet) {
	      listeners.tablet.forEach(apply);
	      isMobile = false;
	      isTablet = true;
	      isDesktop = false;
	    } else if (checkDesktop() && !isDesktop) {
	      listeners.desktop.forEach(apply);
	      isMobile = false;
	      isTablet = false;
	      isDesktop = true;
	    }
	  }

	  //+ checkoutMobile :: Boolean
	  function checkMobile() {
	    return window.innerWidth < TABLET_WIDTH;
	  }

	  //+ checkDesktop :: Boolean
	  function checkDesktop() {
	    return window.innerWidth > DESKTOP_WIDTH;
	  }

	  //+ checkTablet :: Boolean
	  function checkTablet() {
	    return window.innerWidth < DESKTOP_WIDTH && window.innerWidth > TABLET_WIDTH;
	  }

	  function scrollTop() {
	    return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
	  }

	  exports.addListener = addListener;
	  exports.removeListener = removeListener;
	  exports.checkMobile = checkMobile;
	  exports.checkDesktop = checkDesktop;
	  exports.checkTablet = checkTablet;
	  exports.scrollTop = scrollTop;
	  exports._window = _window;
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 22 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = Object.freeze({

	    // PAGES
	    BROWSE: 'templates/pages/browse',
	    FORUM_HOME: 'templates/pages/forum_home',
	    ANSWER_DETAIL: 'templates/pages/answer_detail',
	    SEARCH_RESULTS: 'templates/pages/search_results',
	    ACCOUNT_DETAIL: 'templates/pages/account_detail',
	    ACCOUNT_OVERVIEW: 'templates/pages/account_overview',
	    DYNAMIC_FORM: 'templates/pages/dynamic_form',
	    FORUM_PROFILE: 'templates/pages/forum_profile',
	    FORUM_DETAIL: 'templates/pages/forum_question_detail',

	    // ROUTING PARTIALS
	    LOADING_MASK: 'templates/partials/routing/loading_mask',
	    ERROR_PAGE: 'templates/partials/routing/error_page',

	    // BROWSE PARTIALS
	    HOME: 'templates/partials/browse/home',
	    BROWSE_DETAIL: 'templates/partials/browse/answer_detail',

	    // TOPICS PARTIALS
	    TOPIC_GROUP: 'templates/partials/browse/topics/group',
	    TOPIC_ENTITY: 'templates/partials/browse/topics/entity',

	    // SAFETY CENTER PARTIALS
	    SAFETY_INDEX: 'templates/partials/browse/safety/index',
	    SAFETY_GROUP: 'templates/partials/browse/safety/group',
	    SAFETY_ENTITY: 'templates/partials/browse/safety/entity',

	    // MOBILE APPS PARTIALS
	    MOBILE_APPS_INDEX: 'templates/partials/browse/mobile-apps/index',
	    MOBILE_APPS_GROUP: 'templates/partials/browse/mobile-apps/group',
	    MOBILE_APPS_ENTITY: 'templates/partials/browse/mobile-apps/entity',

	    // ACOUNT DETAIL PARTIALS
	    REASON_MODAL: 'templates/partials/account/reason_modal',
	    THREAD_LIST: 'templates/partials/account/thread_list',
	    THREAD: 'templates/partials/account/thread',

	    // OPEN CASES PARTIALS
	    CASES_BANNER: 'templates/partials/open_cases/banner',
	    CASES_DETAIL: 'templates/partials/open_cases/detail',

	    // OTHER PARTIALS
	    FEEDBACK: 'templates/partials/feedback',
	    SEARCH: 'templates/partials/search',
	    MODAL_MASK: 'templates/partials/modal/mask',
	    RESULT_LIST: 'templates/partials/smart-assistant/result_list',
	    NOTIFICATION: 'templates/partials/notification',
	    IMAGE_MODAL: 'templates/partials/modal/image_modal',
	    ALERT_MODAL: 'templates/partials/modal/alert_modal',

	    // FORUM PARTIALS
	    FORUM_POST: 'templates/partials/forum/post/user_post',
	    UPVOTE_COUNT: 'templates/partials/forum/post/activity/upvote_count',
	    ACTION_MODAL: 'templates/partials/forum/modal/action_modal',
	    EDIT_QUESTION_MODAL: 'templates/partials/forum/modal/edit_question_modal',
	    EDIT_ANSWER_MODAL: 'templates/partials/forum/modal/edit_answer_modal',
	    REPORT_MODAL: 'templates/partials/forum/modal/report_modal',
	    LOCK_MODAL: 'templates/partials/forum/modal/lock_modal',
	    CONFIRMATION_MODAL: 'templates/partials/forum/modal/confirmation_modal',
	    CLOSE_QUESTION_MODAL: 'templates/partials/forum/modal/close_question_modal'
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 23 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(14), __webpack_require__(5), __webpack_require__(22), __webpack_require__(24), __webpack_require__(19), __webpack_require__(25), __webpack_require__(27)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _jquery, _environment, _frampton, _javascriptsConfigTemplates, _javascriptsCommonUtilsTemplatesLoader, _javascriptsCommonUtilsHtmlRender, _javascriptsCommonUtilsIoCached, _javascriptsCommonModulesOpenCasesConfig) {
	  'use strict';

	  exports.__esModule = true;
	  exports.invalidate = invalidate;
	  exports['default'] = open_cases;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _ENV = _interopRequireDefault(_environment);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _TEMPLATES = _interopRequireDefault(_javascriptsConfigTemplates);

	  var _loader = _interopRequireDefault(_javascriptsCommonUtilsTemplatesLoader);

	  var _render = _interopRequireDefault(_javascriptsCommonUtilsHtmlRender);

	  var warn = _Fr['default'].Utils.warn;

	  function invalidate() {
	    _javascriptsCommonUtilsIoCached.remove(_javascriptsCommonModulesOpenCasesConfig.openCasesUrl);
	  }

	  function open_cases() {

	    // Deferred loading of open case count
	    var $openTicketLabel = _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.OPEN_CASES);
	    var openTicketRequest = _javascriptsCommonUtilsIoCached.get(_javascriptsCommonModulesOpenCasesConfig.openCasesUrl);
	    var openCases = null;
	    var casesLoaded = false;
	    var templateLoaded = false;

	    function showOpenCasesDetail() {
	      if (templateLoaded && casesLoaded) {

	        // Display banner on mobile dynaform with case count
	        _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.CASES_WRAPPER).each(function () {
	          if (openCases && openCases.count > 0) {
	            _$['default'](this).html(_render['default'](_TEMPLATES['default'].CASES_BANNER, {
	              hc_product: _ENV['default'].HC_PRODUCT,
	              openCases: openCases.count
	            }));
	          }
	        });

	        // Display sidebar widget on dynaform with case details
	        _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.CASES_DETAIL).each(function () {
	          if (openCases && openCases.cases) {
	            _$['default'](this).html(_render['default'](_TEMPLATES['default'].CASES_DETAIL, {
	              hc_product: _ENV['default'].HC_PRODUCT,
	              openCases: openCases.cases
	            }));
	          }
	        });
	      }
	    }

	    openTicketRequest.run({
	      reject: function reject(err) {
	        warn('error loading open cases: ', err);
	      },
	      resolve: function resolve(res) {
	        var count = 0;
	        casesLoaded = true;
	        openCases = res.data;
	        count = openCases ? openCases.count : 0;

	        showOpenCasesDetail();
	        if (count && count > 0) {
	          $openTicketLabel.text(count);
	        }
	      }
	    });

	    _loader['default'](_TEMPLATES['default'].DYNAMIC_FORM, function (context) {
	      templateLoaded = true;
	      showOpenCasesDetail();
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 24 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var fizzy     = __webpack_require__(4),
	      immediate = __webpack_require__(5).Utils.immediate,
	      TEMPLATES = __webpack_require__(22);

	  var cache = {};
	  var callbacks = {};

	  function addToCache(name, context) {
	    cache[name] = context;
	    notifyListeners(name);
	  }

	  for (var key in TEMPLATES) {
	    fizzy.on('after', TEMPLATES[key], addToCache);
	  }

	  function notifyListeners(name) {
	    if (callbacks[name]) {
	      immediate(function() {
	        callbacks[name].forEach(function(fn) {
	          fn(cache[name]);
	        });
	      });
	    }
	  }

	  module.exports = function(template, callback) {
	    if (cache[template]) {
	      immediate(function() {
	        callback(cache[template]);
	      });
	    } else {
	      if (callbacks[template]) {
	        callbacks[template].push(callback);
	      } else {
	        callbacks[template] = [callback];
	      }
	    }
	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 25 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(5), __webpack_require__(12), __webpack_require__(26)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _frampton, _formattersUrl, _storage) {
	  'use strict';

	  exports.__esModule = true;
	  exports.enqueue = enqueue;
	  exports.remove = remove;
	  exports.get = get;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var immediate = _Fr['default'].Utils.immediate;
	  var isObject = _Fr['default'].Utils.isObject;
	  var contains = _Fr['default'].List.contains;
	  var Task = _Fr['default'].Data.Task.create;
	  var httpGet = _Fr['default'].IO.Http.get;

	  var queue = [];
	  var isFetching = false;

	  function fetch(requestUrl, cacheKey, fn) {
	    isFetching = true;
	    httpGet(requestUrl).run({
	      reject: function reject() {},
	      resolve: function resolve(res) {
	        isFetching = false;
	        if (res.status === 'success' && isObject(res.data)) {
	          fn(res);
	          immediate(function () {
	            _storage.set(cacheKey, res);
	          });
	        } else {
	          fn({
	            status: 'error',
	            progress: 1,
	            complete: true,
	            data: 'Received a non-JSON response'
	          });
	        }
	      }
	    });
	  }

	  function fetchNext() {
	    if (queue.length > 0 && !isFetching) {
	      fetch(queue.shift(), function (res) {
	        fetchNext();
	      });
	    }
	  }

	  function enqueue(url) {
	    var urlStr = _formattersUrl.localizedUrl(url);
	    if (!_storage.get(urlStr) && !contains(queue, urlStr)) {
	      queue.push(urlStr);
	      fetchNext();
	    }
	  }

	  function remove(requestUrl) {
	    var baseUrl = requestUrl.split('?')[0];
	    var cacheKey = _formattersUrl.localizedUrl(baseUrl);
	    _storage.remove(cacheKey);
	  }

	  //+ get :: Task Response

	  function get(requestUrl) {
	    return Task(function (sinks) {
	      var baseUrl = requestUrl.split('?')[0];
	      var cacheKey = _formattersUrl.localizedUrl(baseUrl);
	      var value = _storage.get(cacheKey);
	      if (value) {
	        immediate(function () {
	          sinks.resolve(value);
	        });
	      } else {
	        fetch(requestUrl, cacheKey, sinks.resolve);
	      }
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 26 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(5), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _frampton, _environment) {
	  'use strict';

	  exports.__esModule = true;
	  exports.get = get;
	  exports.set = set;
	  exports.remove = remove;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ENV = _interopRequireDefault(_environment);

	  var immediate = _Fr['default'].Utils.immediate;
	  var log = _Fr['default'].Utils.log;
	  var SESSION_ID = _ENV['default'].GLOBAL.sessionId;
	  var store = {};
	  var local = window.localStorage;

	  function getFromLocal(key) {
	    var data = local.getItem(key);
	    if (data) {
	      data = JSON.parse(data);
	      if (data.session && data.session === SESSION_ID) {
	        store[key] = data.value;
	        return data.value;
	      } else if (data.session) {
	        store[key] = null;
	        local.removeItem(key);
	      }
	    }
	    return null;
	  }

	  function get(key) {
	    return store[key] || getFromLocal(key) || null;
	  }

	  function set(key, value) {
	    store[key] = value;
	    immediate(function () {
	      try {
	        local.setItem(key, JSON.stringify({
	          value: value,
	          session: SESSION_ID
	        }));
	      } catch (e) {
	        log('error: ', e);
	      }
	    });
	  }

	  function remove(key) {

	    if (store[key]) {
	      store[key] = null;
	    }

	    if (local.getItem(key)) {
	      local.removeItem(key);
	    }
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 27 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(9), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _javascriptsConfigRoutes, _javascriptsCommonUtilsFormattersUrl) {
	  'use strict';

	  exports.__esModule = true;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var SELECTORS = {
	    OPEN_CASES: '.js-open-cases',
	    CASES_WRAPPER: '.js-open-cases-wrapper',
	    CASES_DETAIL: '.js-open-cases-detail'
	  };

	  exports.SELECTORS = SELECTORS;
	  var openCasesUrl = _javascriptsCommonUtilsFormattersUrl.toGetRequestUrl0(_ROUTES['default'].OPEN_CASES);
	  exports.openCasesUrl = openCasesUrl;
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 28 */,
/* 29 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(18), __webpack_require__(30), __webpack_require__(31), __webpack_require__(19), __webpack_require__(33)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsBody, _javascriptsCommonExportsHtml, _javascriptsCommonUtilsUiTrapFocus, _javascriptsCommonUtilsHtmlRender, _javascriptsCommonModulesModalConfig) {
	  'use strict';

	  module.exports = create_modal;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _$body = _interopRequireDefault(_javascriptsCommonExportsBody);

	  var _$html = _interopRequireDefault(_javascriptsCommonExportsHtml);

	  var _trapFocus = _interopRequireDefault(_javascriptsCommonUtilsUiTrapFocus);

	  var _render = _interopRequireDefault(_javascriptsCommonUtilsHtmlRender);

	  var apply = _Fr['default'].Utils.apply;
	  var noop = _Fr['default'].Utils.noop;
	  var not = _Fr['default'].Utils.not;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var selectorContains = _Fr['default'].Events.selectorContains;
	  var keyCode = _Fr['default'].Keyboard.keyCode;
	  var isEsc = _Fr['default'].Keyboard.isEsc;
	  var describe = _Fr['default'].Motion.describe;
	  var when = _Fr['default'].Motion.when;

	  var $mask = null;
	  var $modal = null;
	  var openModal = null;
	  var destroyManager = null;
	  var removeEvents = [];
	  var trapFunc = null;

	  //+ isCloseButton :: DomEvent -> Boolean
	  var isCloseButton = selectorContains(_javascriptsCommonModulesModalConfig.SELECTORS.CLOSE_MODAL);

	  //+ isModal :: DomEvent -> Boolean
	  var isModal = selectorContains(_javascriptsCommonModulesModalConfig.SELECTORS.MODAL);

	  //+ notModal :: DomEvent -> Boolean
	  var notModal = not(isModal);

	  function create_modal(options) {

	    if (openModal) {
	      openModal();
	      openModal = null;
	    }

	    $mask = _$['default'](_render['default'](_javascriptsCommonModulesModalConfig.TEMPLATES.MASK, {}));
	    $modal = _$['default'](_render['default'](options.template, options));
	    trapFunc = _trapFocus['default']($modal[0], {});

	    _$body['default'].append($mask);
	    $mask.append($modal);
	    _$html['default'].addClass(_javascriptsCommonModulesModalConfig.CLASSES.NO_SCROLL);

	    var openTransition = when(describe($mask[0], _javascriptsCommonModulesModalConfig.CLASSES.MASK_OPEN), describe($modal[0], _javascriptsCommonModulesModalConfig.CLASSES.MODAL_OPEN));

	    var closeTransition = openTransition.reverse();

	    openTransition.run();

	    //+ clicks :: EventStream DomEvent
	    var clicks = onEvent('click', $mask[0]);

	    //+ escapes :: EventStream DomEvent
	    var escapes = onEvent('keyup', document).map(keyCode).filter(isEsc);

	    //+ maskClicks :: EventStream DomEvent
	    var maskClicks = clicks.filter(notModal);

	    //+ closeClicks :: EventStream DomEvent
	    var closeClicks = clicks.filter(isCloseButton);

	    //+ closeModal :: EventStream DomEvent
	    var closeModal = maskClicks.merge(closeClicks).merge(escapes);

	    // Calls to subscribe return a function to unsubscribe.
	    removeEvents.push(closeModal.next(close_modal));

	    // HELPERS FOR CLOSING MODAL
	    function close_start() {
	      destroyManager();
	      removeEvents.forEach(apply);
	      removeEvents = [];
	      trapFunc();

	      // Set focus back to the last element in main content that had focus.
	      _$['default'](options.targetElement).focus();
	    }

	    function close_finish() {
	      $modal.remove();
	      $mask.remove();
	      _$html['default'].removeClass(_javascriptsCommonModulesModalConfig.CLASSES.NO_SCROLL);
	      // cleanup on aisle 5.
	      $modal = null;
	      $mask = null;
	      clicks = null;
	      maskClicks = null;
	      closeClicks = null;
	      closeModal = null;
	      openTransition = null;
	      closeTransition = null;
	      openModal = null;
	    }

	    // CLOSE MODAL WITH ANIMATION
	    function close_modal() {
	      close_start();

	      // Dismiss the UI for the modal.
	      closeTransition.run(close_finish);
	    }

	    // KILL MODAL IMMEDIATELY (WITHOUT ANIMATION)
	    function destroy_modal() {
	      close_start();
	      close_finish();
	    }

	    destroyManager = options.onRender($modal, options) || noop;

	    openModal = destroy_modal;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 30 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default']('html');
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 31 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(32)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsDocument) {
	  'use strict';

	  module.exports = trapFocus;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _$document = _interopRequireDefault(_javascriptsCommonExportsDocument);

	  var not = _Fr['default'].Utils.not;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var containsEvent = _Fr['default'].Events.contains;
	  var preventDefault = _Fr['default'].Events.preventDefault;

	  var CONFIG = {
	    SELECTORS: {
	      RESET: '.js-modal-reset'
	    }
	  };

	  function trapFocus(el) {

	    var $root = _$['default'](el),
	        $reset = $root.find(CONFIG.SELECTORS.RESET);

	    //+ isRoot :: DomEvent -> Boolean
	    var isRoot = containsEvent($root[0]);

	    //+ notRoot :: DomEvent -> Boolean
	    var notRoot = not(isRoot);

	    $root.attr('tabindex', -1);
	    $reset.attr('tabindex', 0);
	    $root.trigger('focus');

	    //+ resetFocus :: EventStream DomEvent
	    var resetFocus = onEvent('focus', $reset);

	    //+ focusin :: EventStream DomEvent
	    var focusin = onEvent('focusin', _$document['default']).filter(notRoot).map(preventDefault);

	    //+ trap :: Stream DomEvent
	    var trap = resetFocus.merge(focusin);

	    var unsub = trap.next(function trap_focus(evt) {
	      $root.trigger('focus');
	    });

	    return function destroy() {
	      unsub();
	    };
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 32 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default'](window.document);
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 33 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {

	    SELECTORS: {
	      MODAL: '.js-modal',
	      MASK: '.js-mask',
	      CLOSE_MODAL: '.js-dialog-close'
	    },

	    CLASSES: {
	      NO_SCROLL: 'no-scroll',
	      MASK_OPEN: 'open',
	      MODAL_OPEN: 'open'
	    },

	    TEMPLATES: {
	      MASK: 'templates/partials/modal/mask'
	    }

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 34 */,
/* 35 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  "use strict";

	  module.exports = attachment_value;

	  function attachment_value(model) {
	    var value = model.attachments.map(function (next) {
	      return {
	        filename: next.fileName,
	        uuid: next.uuid
	      };
	    });
	    return JSON.stringify(value);
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 36 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var warn = _Fr['default'].Utils.warn;

	  var store = {
	    CLEAR_ATTACHMENTS: []
	  };

	  module.exports = {

	    on: function on(name, fn) {
	      if (!store[name]) {
	        warn('Unrecognized event name: ' + name);
	      }

	      if (store[name].indexOf(fn) === -1) {
	        store[name].push(fn);
	      }
	    },

	    off: function off(name, fn) {
	      var listeners = store[name];
	      if (listeners) {
	        store[name] = listeners.filter(function (next) {
	          return next !== fn;
	        });
	      } else {
	        warn('Unrecognized event name: ' + name);
	      }
	    },

	    trigger: function trigger(name) {
	      for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	        args[_key - 1] = arguments[_key];
	      }

	      var listeners = store[name];
	      if (listeners) {
	        listeners.forEach(function (fn) {
	          fn.apply(null, args);
	        });
	      } else {
	        warn('Unrecognized event name: ' + name);
	      }
	    }
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 37 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5), __webpack_require__(38), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton, _javascriptsAttachmentsAttachmentList, _javascriptsAttachmentsConfigSelectors) {
	  'use strict';

	  module.exports = create_attachment;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _AttachmentList = _interopRequireDefault(_javascriptsAttachmentsAttachmentList);

	  var _SELECTORS = _interopRequireDefault(_javascriptsAttachmentsConfigSelectors);

	  var App = _Fr['default'].App.app;

	  function create_attachment(element) {
	    return App({
	      init: function init() {
	        return _AttachmentList['default'].init(element);
	      },
	      update: _AttachmentList['default'].update,
	      inputs: [_AttachmentList['default'].inputs],
	      view: _AttachmentList['default'].view,
	      rootElement: element.querySelector(_SELECTORS['default'].PREVIEW_PANEL)
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 38 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5), __webpack_require__(40), __webpack_require__(36), __webpack_require__(41), __webpack_require__(39), __webpack_require__(55), __webpack_require__(56), __webpack_require__(49), __webpack_require__(57), __webpack_require__(58)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton, _javascriptsCommonUtilsLocalId, _javascriptsCommonMessaging, _javascriptsAttachmentsAttachment, _javascriptsAttachmentsUtilsIsDuplicate, _javascriptsAttachmentsUtilsAttachmentForId, _javascriptsAttachmentsUtilsToFiles, _javascriptsAttachmentsConfigErrors, _javascriptsAttachmentsConfigSelectors, _javascriptsAttachmentsTasksShowError) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _localId = _interopRequireDefault(_javascriptsCommonUtilsLocalId);

	  var _messenger = _interopRequireDefault(_javascriptsCommonMessaging);

	  // SUB MODULES

	  var _Attachment = _interopRequireDefault(_javascriptsAttachmentsAttachment);

	  // UTILS

	  var _isDuplicate = _interopRequireDefault(_javascriptsAttachmentsUtilsIsDuplicate);

	  var _attachmentForId = _interopRequireDefault(_javascriptsAttachmentsUtilsAttachmentForId);

	  var _toFiles = _interopRequireDefault(_javascriptsAttachmentsUtilsToFiles);

	  // CONFIG

	  var _ERRORS = _interopRequireDefault(_javascriptsAttachmentsConfigErrors);

	  var _SELECTORS = _interopRequireDefault(_javascriptsAttachmentsConfigSelectors);

	  // TASKS

	  var _showErrorMessage = _interopRequireDefault(_javascriptsAttachmentsTasksShowError);

	  var Record = _Fr['default'].Data.Record.create;
	  var Union = _Fr['default'].Data.Union.create;
	  var Never = _Fr['default'].Data.Task.never;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var onSelector = _Fr['default'].Events.onSelector;
	  var get = _Fr['default'].Utils.get;
	  var isSomething = _Fr['default'].Utils.isSomething;
	  var last = _Fr['default'].List.last;
	  var append = _Fr['default'].List.append;
	  var replace = _Fr['default'].List.replace;
	  var merge = _Fr['default'].Signal.merge;
	  var div = _Fr['default'].DOM.Html.div;

	  // STATE

	  var State = Record({
	    id: 0,
	    element: null,
	    loading: false,
	    attachments: []
	  });

	  //+ init :: DomNode -> [State, Task Action]
	  var init = function init(element) {
	    var initialModel = State({
	      id: _localId['default'](),
	      element: element
	    });
	    return [initialModel, Never()];
	  };

	  // ACTIONS

	  var Action = Union({
	    Clear: [],
	    Insert: [File],
	    Remove: [Number],
	    Modify: [Number, _Attachment['default'].Action]
	  });

	  // UPDATE

	  //+ update :: Action -> State -> [State, Task Action]
	  var update = function update(action, state) {

	    return Action.match({

	      Clear: function Clear() {
	        var newState = state({
	          attachments: []
	        });
	        return [newState, Never()];
	      },

	      Insert: function Insert(file) {
	        if (_isDuplicate['default'](file, state.attachments)) {
	          return [state, _showErrorMessage['default'](_ERRORS['default'].DUPLICATE_FILE, state.element)];
	        } else {
	          var _Attachment$init = _Attachment['default'].init(file);

	          var newAttachment = _Attachment$init[0];
	          var newTask = _Attachment$init[1];

	          var newState = state({
	            attachments: append(state.attachments.map(function (next) {
	              return next({ expanded: false });
	            }), newAttachment)
	          });
	          return [newState, newTask.map(Action.Modify(newAttachment.id))];
	        }
	      },

	      Remove: function Remove(id, action) {
	        var attachments = state.attachments;
	        var updated = attachments.filter(function (next) {
	          return next.id !== id;
	        });
	        var lastItem = last(updated);
	        if (lastItem) {
	          updated = updated.map(function (next) {
	            if (next.id === lastItem.id) {
	              return lastItem({
	                expanded: true
	              });
	            } else {
	              return next;
	            }
	          });
	        }
	        var newState = state({
	          attachments: updated
	        });
	        return [newState, Never()];
	      },

	      Modify: function Modify(id, action) {
	        var list = state.attachments;
	        var toUpdate = _attachmentForId['default'](id, list);

	        var _Attachment$update = _Attachment['default'].update(action, toUpdate);

	        var newAttachment = _Attachment$update[0];
	        var newTask = _Attachment$update[1];

	        var updatedAttachments = replace(toUpdate, newAttachment, list);
	        var loadingState = updatedAttachments.some(function (next) {
	          return next.loading;
	        });
	        var newState = state({
	          loading: loadingState,
	          attachments: updatedAttachments
	        });
	        return [newState, newTask.map(Action.Modify(id))];
	      }

	    }, action);
	  };

	  // INPUTS

	  var fileInputs = onSelector('change', _SELECTORS['default'].FILE_INPUT).map(_toFiles['default']).map(get(0)).filter(isSomething).map(Action.Insert);

	  var globalMessages = onEvent('CLEAR_ATTACHMENTS', _messenger['default']).map(Action.Clear);

	  // VIEW

	  function removeEntry(messages, id) {
	    var called = false;
	    return function () {
	      if (!called) {
	        called = true;
	        messages(Action.Remove(id));
	      }
	    };
	  }

	  var attachmentList = function attachmentList(messages, state) {
	    return state.attachments.reduce(function (acc, attachment) {
	      acc.push(_Attachment['default'].view(removeEntry(messages, attachment.id), attachment));
	      return acc;
	    }, []);
	  };

	  var view = function view(messages, state) {

	    var attributes = {
	      key: state.id,
	      'class': 'attachments-preview-panel'
	    };

	    if (state.attachments.length > 0) {
	      attributes.transition = {
	        'class': 'attachments-preview-panel-open'
	      };
	    }

	    return div(attributes, attachmentList(messages, state));
	  };

	  // EXPORTS

	  module.exports = {
	    State: State,
	    Action: Action,
	    init: init,
	    update: update,
	    view: view,
	    inputs: merge([fileInputs, globalMessages])
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 39 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  "use strict";

	  module.exports = function (file, list) {
	    var len = list.length;
	    for (var i = 0; i < len; i++) {
	      if (list[i].fileName === file.name) {
	        return true;
	      }
	    }
	    return false;
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 40 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  "use strict";

	  var id = 0;

	  module.exports = function () {
	    return id++;
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 41 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5), __webpack_require__(40), __webpack_require__(43), __webpack_require__(44), __webpack_require__(45), __webpack_require__(42), __webpack_require__(47), __webpack_require__(48), __webpack_require__(46), __webpack_require__(52), __webpack_require__(53), __webpack_require__(54)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton, _javascriptsCommonUtilsLocalId, _javascriptsCommonUtilsFormattersFile, _javascriptsCommonUtilsHtmlSvg, _javascriptsAttachmentsUtilsToFileType, _javascriptsAttachmentsTasksDelay, _javascriptsAttachmentsTasksUploadFile, _javascriptsAttachmentsTasksReadFile, _javascriptsAttachmentsConfigFiles, _javascriptsAttachmentsTransitionsInsert, _javascriptsAttachmentsTransitionsRemove, _javascriptsAttachmentsTransitionsShrink) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _localId = _interopRequireDefault(_javascriptsCommonUtilsLocalId);

	  var _svg = _interopRequireDefault(_javascriptsCommonUtilsHtmlSvg);

	  // UTILS

	  var _toFileType = _interopRequireDefault(_javascriptsAttachmentsUtilsToFileType);

	  // TASKS

	  var _delay = _interopRequireDefault(_javascriptsAttachmentsTasksDelay);

	  var _uploadFile = _interopRequireDefault(_javascriptsAttachmentsTasksUploadFile);

	  var _readFile = _interopRequireDefault(_javascriptsAttachmentsTasksReadFile);

	  // CONFIG

	  var _FILES = _interopRequireDefault(_javascriptsAttachmentsConfigFiles);

	  // TRANSITIONS

	  var _insertTransition = _interopRequireDefault(_javascriptsAttachmentsTransitionsInsert);

	  var _removeTransition = _interopRequireDefault(_javascriptsAttachmentsTransitionsRemove);

	  var _shrinkTransition = _interopRequireDefault(_javascriptsAttachmentsTransitionsShrink);

	  var Record = _Fr['default'].Data.Record.create;
	  var Never = _Fr['default'].Data.Task.never;
	  var Union = _Fr['default'].Data.Union.create;
	  var get = _Fr['default'].Utils.get;
	  var _Fr$DOM$Html = _Fr['default'].DOM.Html;
	  var div = _Fr$DOM$Html.div;
	  var span = _Fr$DOM$Html.span;
	  var text = _Fr$DOM$Html.text;
	  var button = _Fr$DOM$Html.button;

	  // ACTIONS

	  var Action = Union({
	    ReadComplete: [Object],
	    LoadComplete: [Object],
	    UpdateProgress: [Object],
	    DisplayError: [String],
	    UploadFile: [],
	    Discard: []
	  });

	  // STATE

	  var State = Record({
	    id: 0,
	    progress: 0,
	    showing: false,
	    expanded: true,
	    loading: true,
	    error: null,
	    file: null,
	    dataUrl: null,
	    fileName: null,
	    fileSize: null,
	    fileType: null,
	    uuid: null,
	    isImage: false,
	    discarded: false
	  });

	  //+ init :: File -> [State, Task Action]
	  var init = function init(file) {

	    var fileType = _toFileType['default'](file.name);
	    var initialState = State({
	      id: _localId['default'](),
	      file: file,
	      fileName: file.name,
	      fileSize: file.size,
	      fileType: fileType,
	      isImage: fileType === _FILES['default'].TYPE.IMAGE
	    });

	    var initialTask = _readFile['default'](file).map(Action.ReadComplete).recover(Action.DisplayError);

	    return [initialState, initialTask];
	  };

	  // UPDATE

	  //+ update :: Action -> State -> [State, Task Action]
	  var update = function update(action, state) {

	    return Action.match({

	      ReadComplete: function ReadComplete(res) {
	        var newState = state({
	          dataUrl: res.data,
	          showing: true
	        });
	        var newTask = _uploadFile['default'](state.file).map(Action.LoadComplete).progress(Action.UpdateProgress).recover(Action.DisplayError);

	        return [newState, newTask];
	      },

	      Discard: function Discard() {
	        var newState = state({
	          discarded: true
	        });
	        return [newState, Never()];
	      },

	      UploadFile: function UploadFile() {
	        var newTask = _uploadFile['default'](state.file).map(Action.LoadComplete).progress(Action.UpdateProgress).recover(Action.DisplayError);

	        return [state, newTask];
	      },

	      LoadComplete: function LoadComplete(res) {
	        var uuid = get('data.files.0.uuid', res);
	        var newState = state({
	          loading: false,
	          uuid: uuid
	        });
	        return [newState, Never()];
	      },

	      UpdateProgress: function UpdateProgress(res) {
	        var newState = state({
	          progress: res.progress
	        });
	        return [newState, Never()];
	      },

	      DisplayError: function DisplayError(msg) {
	        var newState = state({
	          error: msg,
	          showing: true
	        });
	        return [newState, _delay['default'](Action.Discard, 4000)];
	      }

	    }, action);
	  };

	  // VIEW

	  var previewWrapper = function previewWrapper(state) {
	    var style = {};
	    var children = [];
	    if (state.isImage && state.dataUrl) {
	      style = { 'background-image': 'url(' + state.dataUrl + ')' };
	    } else {
	      children = [_svg['default']('document-icon', 'large')];
	    }

	    return div({ key: state.id, 'class': 'attachment-preview-wrapper', style: style }, children);
	  };

	  var progressBar = function progressBar(state) {
	    var progress = state.progress * 100 + '%';
	    var classes = 'attachment-progress-bar';
	    if (!state.loading) {
	      classes += ' attachment-progress-bar-hide';
	    }
	    return div({ 'class': classes, key: state.id }, [div({ 'class': 'inner-bar', key: state.id, style: { width: progress } })]);
	  };

	  var attachmentPreview = function attachmentPreview(remove, state) {

	    var attributes = {
	      key: state.id,
	      'class': 'attachment-preview attachment-preview-expanded',
	      transitionIn: _insertTransition['default'],
	      transitionOut: _removeTransition['default']
	    };

	    if (!state.expanded) {
	      attributes.transition = _shrinkTransition['default'];
	    }

	    return div(attributes, [previewWrapper(state), div({ 'class': 'attachment-close-panel', key: state.id }, [button({ key: state.id, 'class': 'attachment-discard', type: 'button', onClick: remove }, [_svg['default']('cancel-icon', 'small')])]), span({ 'class': 'attachment-desc attachment-desc-filename', key: state.id }, [text(state.fileName)]), span({ 'class': 'attachment-desc attachment-desc-filesize', key: state.id }, [text(_javascriptsCommonUtilsFormattersFile.fileSize(state.fileSize))]), progressBar(state)]);
	  };

	  var attachmentError = function attachmentError(state) {
	    return div({ 'class': 'attachment-preview attachment-preview-expanded', key: state.id }, [div({ 'class': 'attachment-preview-wrapper', key: state.id }, [div({ 'class': 'attachment-preview-img-wrapper', key: state.id }, [_svg['default']('warning-circle-icon', 'large', 'svg-icon-error')])]), span({ 'class': 'attachment-desc attachment-desc-error', key: state.id }, [text(state.error)])]);
	  };

	  var view = function view(remove, state) {
	    if (state.error) {
	      return attachmentError(state);
	    } else {
	      return attachmentPreview(remove, state);
	    }
	  };

	  // EXPORTS

	  module.exports = {
	    State: State,
	    Action: Action,
	    init: init,
	    update: update,
	    view: view
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 42 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton) {
	  'use strict';

	  module.exports = delay;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var Task = _Fr['default'].Data.Task.create;

	  function delay(fn, time) {
	    return Task(function (sinks) {
	      setTimeout(function () {
	        sinks.resolve(fn());
	      }, time);
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 43 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(10)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsCommonExportsI18nCache) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _i18n_cache = _interopRequireDefault(_javascriptsCommonExportsI18nCache);

	  //+ fileError :: Event -> String
	  var fileError = function fileError(e) {

	    switch (e.target.error.code) {

	      case e.target.error.NOT_FOUND_ERR:
	        return _i18n_cache['default'].get('i18n_attachments_file_not_found');

	      case e.target.error.NOT_READABLE_ERR:
	        return _i18n_cache['default'].get('i18n_attachments_file_not_readable');

	      case e.target.error.ABORT_ERR:
	        return _i18n_cache['default'].get('i18n_attachments_file_aborted');

	      case e.target.error.SECURITY_ERR:
	        return _i18n_cache['default'].get('i18n_attachments_file_locked');

	      case e.target.error.ENCODING_ERR:
	        return _i18n_cache['default'].get('i18n_attachments_error_encoding');

	      default:
	        return _i18n_cache['default'].get('i18n_attachments_read_error');
	    }
	  };

	  //+ fileSize :: Number -> String
	  var fileSize = function fileSize(bytes) {
	    var sizeSufix = 'KB';
	    var sizeKb = bytes / 1024;
	    sizeKb = sizeKb.toFixed(2);
	    if (sizeKb > 1024) {
	      sizeKb = sizeKb / 1024;
	      sizeKb = sizeKb.toFixed(2);
	      sizeSufix = 'MB';
	    }
	    return sizeKb + ' ' + sizeSufix;
	  };

	  module.exports = {
	    fileError: fileError,
	    fileSize: fileSize
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 44 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton) {
	  'use strict';

	  module.exports = make_svg;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var node = _Fr['default'].DOM.Html.node;

	  // <svg class="svg-icon {classes}" {attributes|mk|s}><use xlink:href="#{icon}" data-size="{size}" data-color="{color}"></use></svg>

	  function make_svg(icon, size, color, classes) {
	    color = color || '';
	    classes = ('svg-icon ' + (classes || '')).trim();
	    return node('li-icon', { 'class': classes, type: icon, size: size, color: color });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 45 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(46)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsAttachmentsConfigFiles) {
	  'use strict';

	  module.exports = to_file_type;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _FILES = _interopRequireDefault(_javascriptsAttachmentsConfigFiles);

	  var imageExtensions = /(\.|\/)(gif|jpe?g|png)$/i;
	  var documentExtensions = /(\.|\/)(txt|pdf|doc|docx|xls|xlsx|rtf|pptx?|odt|ods|odp|odm|oth)$/i;

	  //+ toFileType :: String -> String

	  function to_file_type(fileName) {

	    if (fileName.search(imageExtensions) !== -1) {
	      return _FILES['default'].TYPE.IMAGE;
	    } else if (fileName.search(documentExtensions) !== -1) {
	      return _FILES['default'].TYPE.DOCUMENT;
	    }

	    return _FILES['default'].TYPE.NOT_SUPPORTED;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 46 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  "use strict";

	  module.exports = {

	    TYPE: {
	      NOT_SUPPORTED: 0,
	      IMAGE: 1,
	      DOCUMENT: 2
	    },

	    // We'll be Base64 encoding attachments. Base64 will increase file size by 25%, so we
	    // can only accept 75% of the 5MB limit
	    MAX_SIZE: 5 * 1024 * 1024 * 0.75
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 47 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5), __webpack_require__(9), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton, _javascriptsConfigRoutes, _javascriptsCommonUtilsFormattersUrl) {
	  'use strict';

	  module.exports = upload_file;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var uploadFile = _Fr['default'].IO.Http.upload;
	  var fileUrl = _javascriptsCommonUtilsFormattersUrl.toRequestUrl0(_ROUTES['default'].ATTACHMENT_UPLOAD_API);

	  function upload_file(file) {
	    return uploadFile(fileUrl, file);
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 48 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(5), __webpack_require__(49), __webpack_require__(50), __webpack_require__(51)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _frampton, _javascriptsAttachmentsConfigErrors, _javascriptsAttachmentsUtilsIsValidType, _javascriptsAttachmentsUtilsIsValidSize) {
	  'use strict';

	  module.exports = read_file;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ERRORS = _interopRequireDefault(_javascriptsAttachmentsConfigErrors);

	  // UTILS

	  var _isValidType = _interopRequireDefault(_javascriptsAttachmentsUtilsIsValidType);

	  var _isValidSize = _interopRequireDefault(_javascriptsAttachmentsUtilsIsValidSize);

	  var Task = _Fr['default'].Data.Task.create;
	  var readFile = _Fr['default'].IO.File.dataUrl;

	  function read_file(file) {
	    return Task(function (sinks) {
	      if (!_isValidType['default'](file)) {
	        sinks.reject(_ERRORS['default'].NOT_SUPPORTED);
	      } else if (!_isValidSize['default'](file)) {
	        sinks.reject(_ERRORS['default'].MAX_SIZE_EXCEEDED);
	      } else {
	        readFile(file).run(sinks);
	      }
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 49 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(10)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsCommonExportsI18nCache) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _i18n_cache = _interopRequireDefault(_javascriptsCommonExportsI18nCache);

	  module.exports = {
	    ERROR_IN_FILE: _i18n_cache['default'].get('i18n_dynamic_forms_attachments_error_in_file'),
	    DUPLICATE_FILE: _i18n_cache['default'].get('i18n_attachments_duplicate_file'),
	    CANT_UPLOAD: _i18n_cache['default'].get('i18n_attachments_error_upload'),
	    NOT_SUPPORTED: _i18n_cache['default'].get('i18n_attachments_error_file_not_supported'),
	    MAX_SIZE_EXCEEDED: _i18n_cache['default'].get('i18n_attachments_error_file_size_exceeded')
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 50 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(46), __webpack_require__(45)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsAttachmentsConfigFiles, _javascriptsAttachmentsUtilsToFileType) {
	  'use strict';

	  module.exports = is_valid_type;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _FILES = _interopRequireDefault(_javascriptsAttachmentsConfigFiles);

	  var _toFileType = _interopRequireDefault(_javascriptsAttachmentsUtilsToFileType);

	  //+ isValidType :: FileAttachment -> Boolean

	  function is_valid_type(file) {
	    var fileType = _toFileType['default'](file.name);
	    return fileType !== _FILES['default'].TYPE.NOT_SUPPORTED;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 51 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(46)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsAttachmentsConfigFiles) {
	  'use strict';

	  module.exports = is_valid_size;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _FILES = _interopRequireDefault(_javascriptsAttachmentsConfigFiles);

	  //+ isValidSize :: FileAttachment -> Boolean

	  function is_valid_size(file) {
	    return file.size <= _FILES['default'].MAX_SIZE;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 52 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {
	    'class': 'attachment-preview-in'
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 53 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {
	    'class': 'attachment-preview-out'
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 54 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {
	    'class': {
	      add: ['attachment-preview-shrunk'],
	      remove: ['attachment-preview-expanded']
	    }
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 55 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  "use strict";

	  module.exports = attachment_for_id;

	  function attachment_for_id(id, xs) {
	    var len = xs.length;
	    for (var i = 0; i < len; i++) {
	      if (xs[i].id === id) {
	        return xs[i];
	      }
	    }
	    return null;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 56 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  //+ toFiles :: jQuery -> FileList
	  "use strict";

	  module.exports = to_files;

	  function to_files(evt) {
	    return evt.target.files;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 57 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {
	    PREVIEW_PANEL: '.js-preview-panel',
	    PREVIEW: '.js-attachment-preview',
	    DISCARD_BUTTON: '.js-attachment-discard',
	    DESCRIPTION_MSG: '.js-attachment-desc',
	    ERROR_MESSAGE: '.js-error-message',
	    FILE_INPUT: 'input[type=file]',
	    FILE_INPUT_LABEL: '.js-field-label',
	    PROGRESS_BAR: '.js-progress-bar',
	    PROGRESS_WRAPPER: '.js-progress-wrapper',
	    IS_ACTIVE: '.is-active',
	    FOCUS: ':focus'
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 58 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(59), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsAttachmentsConfigClasses, _javascriptsAttachmentsConfigSelectors) {
	  'use strict';

	  module.exports = show_error;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _CLASSES = _interopRequireDefault(_javascriptsAttachmentsConfigClasses);

	  var _SELECTORS = _interopRequireDefault(_javascriptsAttachmentsConfigSelectors);

	  var Task = _Fr['default'].Data.Task.create;
	  var describe = _Fr['default'].Motion.describe;

	  function show_error(msg, element) {
	    return Task(function (_) {
	      var $errorLabel = _$['default'](element).find(_SELECTORS['default'].ERROR_MESSAGE);
	      if ($errorLabel.length > 0) {

	        // INIT TRANSITIONS
	        var showTransition = describe($errorLabel[0], _CLASSES['default'].SHOW_ERROR);
	        var dismissTransition = describe($errorLabel[0], _CLASSES['default'].DISMISS_ERROR);

	        // UPDATE TEXT
	        $errorLabel.text(msg);

	        // TRANSITION INTO VIEW
	        showTransition.chain(dismissTransition).run(function () {
	          $errorLabel.empty();
	          $errorLabel.removeClass(_CLASSES['default'].SHOW_ERROR + ' ' + _CLASSES['default'].DISMISS_ERROR);
	        });
	      }
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 59 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {
	    DISCARD_BUTTON: 'attachment-discard',
	    PREVIEW: 'attachment-preview',
	    PREVIEW_ERROR: 'attachment-preview-error',
	    PREVIEW_SLIDE_IN: 'attachment-preview-in',
	    PREVIEW_SLIDE_OUT: 'attachment-preview-out',
	    PREVIEW_SHRUNK: 'attachment-preview-shrunk',
	    CONTAINER_OPEN: 'attachments-preview-panel-open',
	    PREVIEW_IMG_WRAPPER: 'attachment-preview-img-wrapper',
	    DESCRIPTION: 'attachment-desc',
	    DESCRIPTION_SLIDE_IN: 'attachment-desc-in',
	    PROGRESS_HIDE: 'attachment-progress-bar-hide',
	    PROGRESS_SUCCESS: 'inner-bar-show-success',
	    PROGRESS_DONE: 'inner-bar-done-uploading',
	    PROGRESS_ERROR: 'inner-bar-show-error',
	    ANIMATING: 'animating',
	    HAS_FOCUS: 'has-focus',
	    IS_ACTIVE: 'is-active',
	    SHOW_ERROR: 'show-error',
	    DISMISS_ERROR: 'dismiss-error'
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 60 */,
/* 61 */,
/* 62 */,
/* 63 */,
/* 64 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = Object.freeze({

	    //PAGES
	    HOME: 'controllers.Home.index',
	    SEARCH: 'controllers.Answer.search',
	    THANK_YOU: 'controllers.DynamicForm.thankYou',

	    TOPIC: 'controllers.Topics.topic',
	    TOPIC_GROUP: 'controllers.Topics.topicGroup',

	    FORUM_HOME: 'controllers.Forum.index',
	    FORUM_QUESTION: 'controllers.Forum.questionDetail',

	    SAFETY_INDEX: 'controllers.Safety.index',
	    SAFETY_TOPIC_GROUP: 'controllers.Safety.topicGroup',
	    SAFETY_ENTITY: 'controllers.Safety.entity',
	    SAFETY_REPORT_PROBLEM: 'controllers.Safety.report',

	    MOBILE_APPS_INDEX: 'controllers.MobileApps.index',
	    MOBILE_APPS_TOPIC_GROUP: 'controllers.MobileApps.topicGroup',
	    MOBILE_APPS_ENTITY: 'controllers.MobileApps.entity',

	    LYNDA_ASK: 'controllers.DynamicForm.form',

	    //APIS
	    OPEN_CASES: 'controllers.api.Client.getOpenCases',
	    SEARCH_API: 'controllers.api.Answer.search',

	    // SMART ASSISTANT
	    SMART_ASSIST: 'controllers.api.SmartAssistant.get',
	    SMART_HELPFUL: 'controllers.api.SmartAssistant.helpful',
	    SMART_UNHELPFUL: 'controllers.api.SmartAssistant.unhelpful',
	    SMART_IGNORED: 'controllers.api.SmartAssistant.ignored',

	    // BROWSE FLOW API
	    SUGGESTED_API: 'controllers.api.Topics.suggested',
	    TOPICS_POPULAR_API: 'controllers.api.Topics.popular',
	    TOPICS_GROUP_API: 'controllers.api.Topics.topicGroup',
	    TOPICS_API: 'controllers.api.Topics.topic',
	    TOPICS_ENTITY_API: 'controllers.api.Topics.entity',

	    // SAFETY API
	    SAFETY_API: 'controllers.api.Safety.index',
	    SAFETY_REPORT_PROBLEM_API: 'controllers.api.Safety.report',
	    SAFETY_TOPIC_GROUP_API: 'controllers.api.Safety.topicGroup',
	    SAFETY_TOPIC_API: 'controllers.api.Safety.topic',
	    SAFETY_ENTITY_API: 'controllers.api.Safety.entity',

	    // MOBILE APPS API
	    MOBILE_APPS_API: 'controllers.api.MobileApps.index',
	    MOBILE_APPS_TOPIC_GROUP_API: 'controllers.api.MobileApps.topicGroup',
	    MOBILE_APPS_TOPIC_API: 'controllers.api.MobileApps.topic',
	    MOBILE_APPS_ENTITY_API: 'controllers.api.MobileApps.entity',

	    // ANSWER APIS
	    ANSWER_API: 'controllers.api.Answer.detail',
	    RATE_API: 'controllers.api.Answer.rate',
	    FEEDBACK_API: 'controllers.api.Answer.feedback',

	    // TICKET APIS
	    CLOSE_TICKET_API: 'controllers.api.Ticket.close',
	    REOPEN_TICKET_API: 'controllers.api.Ticket.reopen',
	    ADD_COMMENT_API: 'controllers.api.Ticket.comment',
	    FORM_SUBMIT: 'controllers.api.Ticket.create',

	    // OTHER APIS
	    SURVEY_API: 'controllers.api.Survey.submit',
	    SURVEY_PROGRESS: 'controllers.api.Survey.progress',
	    ATTACHMENT_UPLOAD_API: 'controllers.api.Attachments.upload',
	    GEOLOCATION_API: 'controllers.api.Geolocation.getLocale',
	    CHAT_INTERACTION: 'controllers.api.Chat.interaction',
	    CHAT_SESSION_PROGRESS: 'controllers.api.Chat.sessionProgress',

	    // TRACKING
	    GENERIC_VIEW: 'controllers.api.Tracking.genericView',
	    ENTITY_VIEW: 'controllers.api.Tracking.entityView',
	    HOME_VIEW: 'controllers.api.Tracking.homeView',
	    LYNDA_CONSENT: 'controllers.api.Tracking.lyndaConsentAction',

	    //FORUM API
	    NODE_OP: 'controllers.api.Forum.nodeOperation',
	    FORUM_COMMENT: 'controllers.api.Forum.comment',
	    FORUM_ANSWER: 'controllers.api.Forum.answer',
	    FORUM_ASK: 'controllers.api.Forum.ask',
	    GET_FORUM_NODE: 'controllers.api.Forum.getNode'
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 65 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(11), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _dust, _frampton) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _dust2 = _interopRequireDefault(_dust);

	  var _Fr = _interopRequireDefault(_frampton);

	  var warn = _Fr['default'].Utils.warn;
	  var cache = _dust2['default'].i18n.cache['templates/shared/static_strings'];

	  module.exports = {
	    get: function get(name) {
	      var value = cache[name];
	      if (value) {
	        return value;
	      } else {
	        warn('Value for ' + name + ' not found in i18n cache');
	        return '';
	      }
	    }
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 66 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(13), __webpack_require__(14), __webpack_require__(5), __webpack_require__(67)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _play, _environment, _frampton, _javascriptsConfigPageKeys) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _play2 = _interopRequireDefault(_play);

	  var _ENV = _interopRequireDefault(_environment);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _pagekeys = _interopRequireDefault(_javascriptsConfigPageKeys);

	  var curry = _Fr['default'].Utils.curry;
	  var isString = _Fr['default'].Utils.isString;

	  function urlBuilder(controller) {
	    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
	      args[_key - 1] = arguments[_key];
	    }

	    // All routes have the hc_product as first argument
	    args.unshift(_ENV['default'].HC_PRODUCT);

	    var config = args.reduce(function (acc, next, index) {
	      acc['arg' + index] = next;
	      return acc;
	    }, { alias: controller });

	    return _play2['default'].url(config);
	  }

	  var withPageKey = function withPageKey() {
	    for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
	      args[_key2] = arguments[_key2];
	    }

	    return appendPageKey(urlBuilder.apply(null, args), args[0]);
	  };

	  //+ appendPageKey :: String -> String
	  var appendPageKey = function appendPageKey(url, controller) {

	    var keyForController = isString(controller) ? _pagekeys['default'][controller] : null;

	    var pageKey = keyForController || _ENV['default'].GLOBAL.pageKey || _ENV['default'].INITIAL_PAGE_DATA.DATA.pageKey || "";

	    if (pageKey) {
	      return _play2['default'].addQueryParameter(url, 'page_key', pageKey);
	    } else {
	      return url;
	    }
	  };

	  var appendReferer = function appendReferer(url) {
	    if (_ENV['default'].GLOBAL.referralUrl) {
	      return _play2['default'].addQueryParameter(url, 'referer', _ENV['default'].GLOBAL.referralUrl);
	    } else {
	      return url;
	    }
	  };

	  var appendPath = function appendPath(url) {
	    if (_ENV['default'].GLOBAL.path) {
	      return _play2['default'].addQueryParameter(url, 'path', _ENV['default'].GLOBAL.path);
	    } else {
	      return url;
	    }
	  };

	  //+ csrf :: String -> String
	  var csrf = function csrf(url) {
	    return _play2['default'].addCsrfTokenToUrl(url);
	  };

	  //+ formattedUrl :: String -> String
	  var formattedUrl = function formattedUrl(url) {
	    return appendReferer(appendPath(url));
	  };

	  //+ toRequestUrl0 :: String -> String
	  var toRequestUrl0 = function toRequestUrl0(controller) {
	    return formattedUrl(csrf(withPageKey.call(null, controller)));
	  };

	  //+ toRequestUrl :: String -> Object -> String
	  var toRequestUrl = curry(function (controller, args) {
	    return formattedUrl(csrf(withPageKey.apply(null, arguments)));
	  });

	  //+ toGetRequestUrl :: String -> Object -> String
	  var toGetRequestUrl = curry(function (controller, args) {
	    return formattedUrl(withPageKey.apply(null, arguments));
	  });

	  //+ toGetRequestUrl0 :: String -> Object -> String
	  var toGetRequestUrl0 = function toGetRequestUrl0(controller) {
	    return formattedUrl(withPageKey.call(null, controller));
	  };

	  //+ toBaseUrl :: String -> String
	  var toBaseUrl = curry(function (controller, args) {
	    return urlBuilder.apply(null, arguments);
	  });

	  //+ toBaseUrl0 :: String -> String
	  var toBaseUrl0 = function toBaseUrl0(controller) {
	    return urlBuilder.call(null, controller);
	  };

	  //+ localizedUrl :: String -> String
	  var localizedUrl = function localizedUrl(url) {
	    return _play2['default'].addQueryParameter(url, 'lang', _ENV['default'].GLOBAL.locale.code);
	  };

	  module.exports = {

	    localizedUrl: localizedUrl,

	    toGetRequestUrl: toGetRequestUrl,

	    toGetRequestUrl0: toGetRequestUrl0,

	    toRequestUrl0: toRequestUrl0,

	    toRequestUrl: toRequestUrl,

	    toBaseUrl: toBaseUrl,

	    toBaseUrl0: toBaseUrl0,

	    csrf: csrf

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 67 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(64)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsConfigRoutes) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var PAGE_KEYS = {};

	  PAGE_KEYS[_ROUTES['default'].TOPICS_HOME] = 'hc_home';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_GROUP_API] = 'hc_browse_topic_group';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_API] = 'hc_browse_topic';
	  PAGE_KEYS[_ROUTES['default'].TOPICS_ENTITY_API] = 'hc_browse_entity';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_API] = 'hc_safety';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_TOPIC_GROUP_API] = 'hc_safety_topic_group';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_TOPIC_API] = 'hc_safety_topic';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_ENTITY_API] = 'hc_safety_entity';
	  PAGE_KEYS[_ROUTES['default'].SAFETY_REPORT_PROBLEM_API] = 'hc_search_entity';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_API] = 'hc_mobile_apps';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_TOPIC_GROUP_API] = 'hc_mobile_apps_topic_group';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_TOPIC_API] = 'hc_mobile_apps_topic';
	  PAGE_KEYS[_ROUTES['default'].MOBILE_APPS_ENTITY_API] = 'hc_mobile_apps_entity';
	  PAGE_KEYS[_ROUTES['default'].SUGGESTED_API] = 'hc_suggested_entity';

	  module.exports = Object.freeze(PAGE_KEYS);
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 68 */,
/* 69 */,
/* 70 */,
/* 71 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $ = __webpack_require__(2);

	  var DEFAULT_CONFIG = {

	    SELECTORS : {
	      COLLAPSIBLE : '.collapsible',
	      HEADER      : 'div:first-child'
	    },

	    CLASSES : {
	      HEADER_WRAPPER : 'collapsible-header-wrapper',
	      HEADER         : 'collapsible-header',
	      CONTENT        : 'collapsible-content'
	    },

	    ATTRIBUTES : {
	      ID_PREFIX : 'collapsible-content-'
	    }

	  };

	  module.exports = function draw_collapsible($element, options) {

	    var CONFIG = $.extend({}, DEFAULT_CONFIG, (options || {}));

	    // HELPER FUNCTIONS
	    var formatHeader = function($element, index) {

	      var headerAttributes  = {
	            'class'         : CONFIG.CLASSES.HEADER_WRAPPER
	          },
	          buttonAttributes  = {
	            'aria-expanded' : 'false',
	            'aria-controls' : CONFIG.ATTRIBUTES.ID_PREFIX + index,
	            'class'         : CONFIG.CLASSES.HEADER
	          },
	          $newHeader        = $('<h3 />'),
	          $headerTrigger    = $('<button />'),
	          content           = $element.text();

	      return (
	        $newHeader
	          .attr(headerAttributes)
	          .append(
	            $headerTrigger
	              .attr(buttonAttributes)
	              .text(content)
	            )
	      );
	    };

	    var formatContent = function(content, index) {

	      var contentAttributes = {
	            'id'            : CONFIG.ATTRIBUTES.ID_PREFIX + index,
	            'class'         : CONFIG.CLASSES.CONTENT,
	            'aria-hidden'   : 'true'
	          },
	          $contentWrapper   = $('<div />');

	      return (
	        $contentWrapper
	          .attr(contentAttributes)
	          .html(content)
	      );
	    };

	    // STATIC ELEMENTS
	    var $collapsible = $element.find(CONFIG.SELECTORS.COLLAPSIBLE);

	    // update the markup around the collapsibles to make it easier to target content to hide/show
	    $collapsible.each(function(index) {

	      var $this               = $(this),
	          content             = $this.html(),
	          $collapsibleHeader  = $(content).filter(CONFIG.SELECTORS.HEADER),
	          $newHeader          = formatHeader($collapsibleHeader, index),
	          $collapsibleContent = formatContent(content, index),
	          $headerToRemove     = $collapsibleContent.find(CONFIG.SELECTORS.HEADER); // the content includes the header, so that needs to be plucked

	      $headerToRemove.remove(); // pluck the duplicate header

	      $this.empty(); // empty out the .collapsible element
	      $this.append($newHeader); // add the header back in
	      $this.append($collapsibleContent); // add the content (minus duplicat header) back in
	    });

	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 72 */,
/* 73 */,
/* 74 */,
/* 75 */,
/* 76 */,
/* 77 */,
/* 78 */,
/* 79 */,
/* 80 */,
/* 81 */,
/* 82 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $         = __webpack_require__(2),
	      render    = __webpack_require__(19),
	      TEMPLATES = __webpack_require__(22);

	  var loadingMask = null;

	  module.exports = function loading_mask() {

	    if (!loadingMask) {
	      loadingMask = $(render(TEMPLATES.LOADING_MASK, {}))[0];
	    }

	    return loadingMask;
	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 83 */,
/* 84 */,
/* 85 */,
/* 86 */,
/* 87 */,
/* 88 */,
/* 89 */,
/* 90 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $            = __webpack_require__(2),
	      log          = __webpack_require__(5).Utils.log,
	      toRequestUrl = __webpack_require__(12).toRequestUrl0,
	      ROUTES       = __webpack_require__(9);

	  module.exports = function(answerId, pageKey) {
	    try {
	      $.post(toRequestUrl(ROUTES.ENTITY_VIEW), {
	        answerId : answerId,
	        pageKey : pageKey
	      });
	    } catch(e) {
	      log('error: track entity: ', e);
	    }
	  };

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 91 */,
/* 92 */,
/* 93 */,
/* 94 */,
/* 95 */,
/* 96 */,
/* 97 */,
/* 98 */,
/* 99 */,
/* 100 */,
/* 101 */,
/* 102 */,
/* 103 */,
/* 104 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(13), __webpack_require__(14), __webpack_require__(5), __webpack_require__(110), __webpack_require__(111), __webpack_require__(117), __webpack_require__(118), __webpack_require__(119), __webpack_require__(105), __webpack_require__(120), __webpack_require__(122), __webpack_require__(124), __webpack_require__(125), __webpack_require__(127), __webpack_require__(128), __webpack_require__(129), __webpack_require__(130), __webpack_require__(134)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _jquery, _play, _environment, _frampton, _javascriptsCommonUtilsIoLoadScript, _javascriptsCommonModulesMobileDrawerLoad, _javascriptsCommonModulesAccordion, _javascriptsCommonModulesA11yHeader, _javascriptsCommonModulesNotification, _javascriptsCommonModulesOpenCasesMain, _javascriptsCommonModulesSurveyMain, _javascriptsCommonModulesSearchMain, _javascriptsCommonModulesDropdownConfig, _javascriptsCommonModulesDropdownMain, _javascriptsCommonModulesMobileLanguageSwitcher, _javascriptsCommonModulesMobileProductMenu, _javascriptsCommonUtilsIoPrepareCache, _javascriptsCommonModulesLyndaNotification, _javascriptsCommonModulesChatMain) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _play2 = _interopRequireDefault(_play);

	  var _ENV = _interopRequireDefault(_environment);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _loadScript = _interopRequireDefault(_javascriptsCommonUtilsIoLoadScript);

	  var _MobileDrawer = _interopRequireDefault(_javascriptsCommonModulesMobileDrawerLoad);

	  var _Accordion = _interopRequireDefault(_javascriptsCommonModulesAccordion);

	  var _A11yHeader = _interopRequireDefault(_javascriptsCommonModulesA11yHeader);

	  var _Notification = _interopRequireDefault(_javascriptsCommonModulesNotification);

	  var _OpenCases = _interopRequireDefault(_javascriptsCommonModulesOpenCasesMain);

	  var _Survey = _interopRequireDefault(_javascriptsCommonModulesSurveyMain);

	  var _searchBar = _interopRequireDefault(_javascriptsCommonModulesSearchMain);

	  var _mobileLangSwitcher = _interopRequireDefault(_javascriptsCommonModulesMobileLanguageSwitcher);

	  var _mobileProductMenu = _interopRequireDefault(_javascriptsCommonModulesMobileProductMenu);

	  var _prepareCache = _interopRequireDefault(_javascriptsCommonUtilsIoPrepareCache);

	  var _lyndaNotify = _interopRequireDefault(_javascriptsCommonModulesLyndaNotification);

	  var _Chat = _interopRequireDefault(_javascriptsCommonModulesChatMain);

	  _Fr['default'].ENV.MODE = _play2['default'].pageContext.isProd ? 'prod' : 'dev';

	  // Wait for jQuery document ready
	  _$['default'](function () {

	    var SELECTORS = {
	      A11Y: '.js-a11y-header',
	      SURVEY: '.js-survey'
	    };

	    // Ensure the current state of the cache
	    _prepareCache['default']();

	    // Instantiate global JS services
	    _A11yHeader['default'](_$['default'](SELECTORS.A11Y)[0]);
	    _Notification['default']();
	    _MobileDrawer['default']();
	    _Chat['default']();

	    // Instantiate the search bar
	    _searchBar['default']();

	    // Instantiate dropdowns
	    _javascriptsCommonModulesDropdownMain.start(_javascriptsCommonModulesDropdownConfig.SELECTORS.DROPDOWN);

	    // Intantiate mobile fallbacks
	    _mobileProductMenu['default']();
	    _mobileLangSwitcher['default']();

	    _$['default'](SELECTORS.SURVEY).each(function () {
	      _Survey['default'](_$['default'](this));
	    });

	    if (!_ENV['default'].USER.isGuest) {
	      _OpenCases['default']();
	    }

	    // Initialize accordions.
	    _Accordion['default']();

	    // Lynda notification banner
	    // Alerts user's that we have used their LI account cookie to sign them in
	    // If a user is on Lynda, signed in, and hasn't closed the notification before, then show the notification
	    if (_ENV['default'].HC_PRODUCT === "lynda" && !_ENV['default'].USER.isGuest && !_$['default'].cookie('hc_lynda_notification')) {
	      _lyndaNotify['default']();
	    }
	  });
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 105 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(14), __webpack_require__(5), __webpack_require__(6), __webpack_require__(3), __webpack_require__(106), __webpack_require__(107), __webpack_require__(109)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _jquery, _environment, _frampton, _javascriptsConfigTemplates, _javascriptsCommonUtilsTemplatesLoader, _javascriptsCommonUtilsHtmlRender, _javascriptsCommonUtilsIoCached, _javascriptsCommonModulesOpenCasesConfig) {
	  'use strict';

	  exports.__esModule = true;
	  exports.invalidate = invalidate;
	  exports['default'] = open_cases;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _ENV = _interopRequireDefault(_environment);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _TEMPLATES = _interopRequireDefault(_javascriptsConfigTemplates);

	  var _loader = _interopRequireDefault(_javascriptsCommonUtilsTemplatesLoader);

	  var _render = _interopRequireDefault(_javascriptsCommonUtilsHtmlRender);

	  var warn = _Fr['default'].Utils.warn;

	  function invalidate() {
	    _javascriptsCommonUtilsIoCached.remove(_javascriptsCommonModulesOpenCasesConfig.openCasesUrl);
	  }

	  function open_cases() {

	    // Deferred loading of open case count
	    var $openTicketLabel = _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.OPEN_CASES);
	    var openTicketRequest = _javascriptsCommonUtilsIoCached.get(_javascriptsCommonModulesOpenCasesConfig.openCasesUrl);
	    var openCases = null;
	    var casesLoaded = false;
	    var templateLoaded = false;

	    function showOpenCasesDetail() {
	      if (templateLoaded && casesLoaded) {

	        // Display banner on mobile dynaform with case count
	        _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.CASES_WRAPPER).each(function () {
	          if (openCases && openCases.count > 0) {
	            _$['default'](this).html(_render['default'](_TEMPLATES['default'].CASES_BANNER, {
	              hc_product: _ENV['default'].HC_PRODUCT,
	              openCases: openCases.count
	            }));
	          }
	        });

	        // Display sidebar widget on dynaform with case details
	        _$['default'](_javascriptsCommonModulesOpenCasesConfig.SELECTORS.CASES_DETAIL).each(function () {
	          if (openCases && openCases.cases) {
	            _$['default'](this).html(_render['default'](_TEMPLATES['default'].CASES_DETAIL, {
	              hc_product: _ENV['default'].HC_PRODUCT,
	              openCases: openCases.cases
	            }));
	          }
	        });
	      }
	    }

	    openTicketRequest.run({
	      reject: function reject(err) {
	        warn('error loading open cases: ', err);
	      },
	      resolve: function resolve(res) {
	        var count = 0;
	        casesLoaded = true;
	        openCases = res.data;
	        count = openCases ? openCases.count : 0;

	        showOpenCasesDetail();
	        if (count && count > 0) {
	          $openTicketLabel.text(count);
	        }
	      }
	    });

	    _loader['default'](_TEMPLATES['default'].DYNAMIC_FORM, function (context) {
	      templateLoaded = true;
	      showOpenCasesDetail();
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 106 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var dust  = __webpack_require__(11),
	      ENV   = __webpack_require__(14),
	      curry = __webpack_require__(5).Utils.curry;

	  //+ render :: String -> Object -> String
	  module.exports = curry(function(template, data) {
	    var output = '';
	    if (!data.global) {
	      data.global = ENV.GLOBAL;
	    }
	    dust.render(template, data, function(err, html) {
	      if (err) throw new Error(err);
	      output = html;
	    });
	    return output;
	  });

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 107 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(5), __webpack_require__(66), __webpack_require__(108)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _frampton, _formattersUrl, _storage) {
	  'use strict';

	  exports.__esModule = true;
	  exports.enqueue = enqueue;
	  exports.remove = remove;
	  exports.get = get;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var immediate = _Fr['default'].Utils.immediate;
	  var isObject = _Fr['default'].Utils.isObject;
	  var contains = _Fr['default'].List.contains;
	  var Task = _Fr['default'].Data.Task.create;
	  var httpGet = _Fr['default'].IO.Http.get;

	  var queue = [];
	  var isFetching = false;

	  function fetch(requestUrl, cacheKey, fn) {
	    isFetching = true;
	    httpGet(requestUrl).run({
	      reject: function reject() {},
	      resolve: function resolve(res) {
	        isFetching = false;
	        if (res.status === 'success' && isObject(res.data)) {
	          fn(res);
	          immediate(function () {
	            _storage.set(cacheKey, res);
	          });
	        } else {
	          fn({
	            status: 'error',
	            progress: 1,
	            complete: true,
	            data: 'Received a non-JSON response'
	          });
	        }
	      }
	    });
	  }

	  function fetchNext() {
	    if (queue.length > 0 && !isFetching) {
	      fetch(queue.shift(), function (res) {
	        fetchNext();
	      });
	    }
	  }

	  function enqueue(url) {
	    var urlStr = _formattersUrl.localizedUrl(url);
	    if (!_storage.get(urlStr) && !contains(queue, urlStr)) {
	      queue.push(urlStr);
	      fetchNext();
	    }
	  }

	  function remove(requestUrl) {
	    var baseUrl = requestUrl.split('?')[0];
	    var cacheKey = _formattersUrl.localizedUrl(baseUrl);
	    _storage.remove(cacheKey);
	  }

	  //+ get :: Task Response

	  function get(requestUrl) {
	    return Task(function (sinks) {
	      var baseUrl = requestUrl.split('?')[0];
	      var cacheKey = _formattersUrl.localizedUrl(baseUrl);
	      var value = _storage.get(cacheKey);
	      if (value) {
	        immediate(function () {
	          sinks.resolve(value);
	        });
	      } else {
	        fetch(requestUrl, cacheKey, sinks.resolve);
	      }
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 108 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(5), __webpack_require__(14)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _frampton, _environment) {
	  'use strict';

	  exports.__esModule = true;
	  exports.get = get;
	  exports.set = set;
	  exports.remove = remove;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ENV = _interopRequireDefault(_environment);

	  var immediate = _Fr['default'].Utils.immediate;
	  var log = _Fr['default'].Utils.log;
	  var SESSION_ID = _ENV['default'].GLOBAL.sessionId;
	  var store = {};
	  var local = window.localStorage;

	  function getFromLocal(key) {
	    var data = local.getItem(key);
	    if (data) {
	      data = JSON.parse(data);
	      if (data.session && data.session === SESSION_ID) {
	        store[key] = data.value;
	        return data.value;
	      } else if (data.session) {
	        store[key] = null;
	        local.removeItem(key);
	      }
	    }
	    return null;
	  }

	  function get(key) {
	    return store[key] || getFromLocal(key) || null;
	  }

	  function set(key, value) {
	    store[key] = value;
	    immediate(function () {
	      try {
	        local.setItem(key, JSON.stringify({
	          value: value,
	          session: SESSION_ID
	        }));
	      } catch (e) {
	        log('error: ', e);
	      }
	    });
	  }

	  function remove(key) {

	    if (store[key]) {
	      store[key] = null;
	    }

	    if (local.getItem(key)) {
	      local.removeItem(key);
	    }
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 109 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(64), __webpack_require__(66)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _javascriptsConfigRoutes, _javascriptsCommonUtilsFormattersUrl) {
	  'use strict';

	  exports.__esModule = true;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var SELECTORS = {
	    OPEN_CASES: '.js-open-cases',
	    CASES_WRAPPER: '.js-open-cases-wrapper',
	    CASES_DETAIL: '.js-open-cases-detail'
	  };

	  exports.SELECTORS = SELECTORS;
	  var openCasesUrl = _javascriptsCommonUtilsFormattersUrl.toGetRequestUrl0(_ROUTES['default'].OPEN_CASES);
	  exports.openCasesUrl = openCasesUrl;
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 110 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var queue = [];

	  module.exports = function (src) {

	    queue.push(src);

	    window.addEventListener('load', function () {
	      queue.forEach(function (url) {
	        _$['default'].get(url).then(function (res) {
	          var newScript = document.createElement('script');
	          newScript.innerHtml = res;
	          document.body.appendChild(newScript);
	        });
	      });
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 111 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(112), __webpack_require__(113)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsCommonWindow, _javascriptsCommonModulesMobileDrawerMain) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Drawer = _interopRequireDefault(_javascriptsCommonModulesMobileDrawerMain);

	  module.exports = function () {

	    var destroyDrawer;

	    _javascriptsCommonWindow.addListener('mobile', function () {
	      destroyDrawer = _Drawer['default']();
	    });

	    _javascriptsCommonWindow.addListener('desktop', function () {
	      if (destroyDrawer) {
	        destroyDrawer();
	        destroyDrawer = null;
	      }
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 112 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(2), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _jquery, _frampton) {
	  'use strict';

	  exports.__esModule = true;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var apply = _Fr['default'].Utils.apply;

	  var listeners = {
	    mobile: [],
	    tablet: [],
	    desktop: [],
	    resize: []
	  };

	  var doc = document.documentElement;

	  // mama-bear break point from our grid.
	  var TABLET_WIDTH = 767;
	  // papa-bear break point from our grid.
	  var DESKTOP_WIDTH = 1023;

	  var isMobile = checkMobile();
	  var isDesktop = checkDesktop();
	  var isTablet = checkTablet();

	  var size = 0;

	  var _window = _$['default'](window);

	  function addListener(name, callback) {
	    if (size === 0) {
	      _window.on('resize', resizeHandler);
	    }
	    if (listeners[name] && listeners[name].indexOf(callback) < 0) {

	      if (name === 'mobile' || name === 'desktop' || name === 'tablet') {
	        listeners[name].push(callback);
	        size++;
	      }

	      if (name === 'mobile' && checkMobile()) {
	        callback();
	      } else if (name === 'tablet' && checkTablet()) {
	        callback();
	      } else if (name === 'desktop' && checkDesktop()) {
	        callback();
	      }
	    }
	  }

	  function removeListener(name, callback) {
	    listeners[name] = listeners[name].filter(function (arr) {
	      return arr.indexOf(callback) < 0;
	    });
	  }

	  function resizeHandler() {
	    listeners.resize.forEach(apply);
	    if (checkMobile() && !isMobile) {
	      listeners.mobile.forEach(apply);
	      isMobile = true;
	      isTablet = false;
	      isDesktop = false;
	    } else if (checkTablet() && !isTablet) {
	      listeners.tablet.forEach(apply);
	      isMobile = false;
	      isTablet = true;
	      isDesktop = false;
	    } else if (checkDesktop() && !isDesktop) {
	      listeners.desktop.forEach(apply);
	      isMobile = false;
	      isTablet = false;
	      isDesktop = true;
	    }
	  }

	  //+ checkoutMobile :: Boolean
	  function checkMobile() {
	    return window.innerWidth < TABLET_WIDTH;
	  }

	  //+ checkDesktop :: Boolean
	  function checkDesktop() {
	    return window.innerWidth > DESKTOP_WIDTH;
	  }

	  //+ checkTablet :: Boolean
	  function checkTablet() {
	    return window.innerWidth < DESKTOP_WIDTH && window.innerWidth > TABLET_WIDTH;
	  }

	  function scrollTop() {
	    return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);
	  }

	  exports.addListener = addListener;
	  exports.removeListener = removeListener;
	  exports.checkMobile = checkMobile;
	  exports.checkDesktop = checkDesktop;
	  exports.checkTablet = checkTablet;
	  exports.scrollTop = scrollTop;
	  exports._window = _window;
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 113 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(114), __webpack_require__(115)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsBody, _javascriptsCommonUtilsUiTrapFocus) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _$body = _interopRequireDefault(_javascriptsCommonExportsBody);

	  var _trapFocus = _interopRequireDefault(_javascriptsCommonUtilsUiTrapFocus);

	  var not = _Fr['default'].Utils.not;
	  var apply = _Fr['default'].Utils.apply;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var containsEvent = _Fr['default'].Events.contains;
	  var Keyboard = _Fr['default'].Keyboard;
	  var isEscKey = _Fr['default'].Keyboard.isEsc;
	  var describe = _Fr['default'].Motion.describe;
	  var keyboard = Keyboard();

	  var DEFAULT_CONFIG = {

	    SELECTORS: {
	      DRAWER_MASK: '.js-mobile-drawer-mask',
	      DRAWER: '.js-mobile-drawer',
	      MENU_BUTTON: '.js-mobile-menu-button',
	      CLOSE: '.js-close-button'
	    },

	    CLASSES: {
	      OPEN: 'drawer-open',
	      SHOW_MASK: 'show-mask',
	      NO_SCROLL: 'no-scroll',
	      CLOSING: 'closing'
	    }

	  };

	  module.exports = function (el, options) {

	    var CONFIG = _$['default'].extend({}, DEFAULT_CONFIG, options || {});

	    var $menuButton = _$['default'](CONFIG.SELECTORS.MENU_BUTTON);
	    var $drawerMask = _$['default'](CONFIG.SELECTORS.DRAWER_MASK);
	    var $drawer = _$['default'](CONFIG.SELECTORS.DRAWER);
	    var $close = $drawer.find(CONFIG.SELECTORS.CLOSE);
	    var openTransition = describe($drawer[0], CONFIG.CLASSES.OPEN);
	    var closeTransition = openTransition.reverse();

	    // Trap focus to the drawer when open
	    _trapFocus['default']($drawer[0], {});

	    // queue of events we'll need to remove when modal is destroyed.
	    var removeEvents = [];

	    // INSTANCE HELPERS
	    var afterClose = function afterClose() {
	      $drawer.removeClass(CONFIG.CLASSES.CLOSING);
	      _$body['default'].removeClass(CONFIG.CLASSES.NO_SCROLL);
	      $drawerMask.removeClass(CONFIG.CLASSES.SHOW_MASK);
	      $menuButton.attr('aria-expanded', 'false');
	      $drawerMask.attr('aria-hidden', 'true');
	      $menuButton.trigger('focus');
	    };

	    var afterOpen = function afterOpen() {
	      $drawer.addClass(CONFIG.CLASSES.CLOSING);
	      $menuButton.attr('aria-expanded', 'true');
	      $drawerMask.attr('aria-hidden', 'false');
	      $drawerMask.trigger('focus');
	    };

	    var closeDrawer = function closeDrawer() {
	      closeTransition.run(afterClose);
	    };

	    var openDrawer = function openDrawer(evt) {
	      $drawerMask.addClass(CONFIG.CLASSES.SHOW_MASK);
	      _$body['default'].addClass(CONFIG.CLASSES.NO_SCROLL);
	      openTransition.run(afterOpen);
	    };

	    // STREAMS

	    //+ menuClick :: EventStream DomEvent
	    var menuClick = onEvent('click', $menuButton[0]);

	    //+ escapes :: EventStream DomEvent
	    var escapes = keyboard.codes.filter(isEscKey);

	    //+ maskClick :: EventStream DomEvent
	    var maskClick = onEvent('click', $drawerMask[0]).filter(not(containsEvent($drawer[0])));

	    //+ close :: EventStream DomEvent
	    var close = onEvent('click', $close[0]);

	    //+ closeClicks :: Merged EventStream DomEvent
	    var closeClicks = close.merge(maskClick).merge(escapes);

	    // Open the drawer
	    removeEvents.push(closeClicks.next(closeDrawer));

	    // Close the drawer
	    removeEvents.push(menuClick.next(openDrawer));

	    return function destroy_drawer() {
	      removeEvents.forEach(apply);
	      removeEvents = [];
	    };
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 114 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default']('body');
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 115 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(116)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsDocument) {
	  'use strict';

	  module.exports = trapFocus;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _$document = _interopRequireDefault(_javascriptsCommonExportsDocument);

	  var not = _Fr['default'].Utils.not;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var containsEvent = _Fr['default'].Events.contains;
	  var preventDefault = _Fr['default'].Events.preventDefault;

	  var CONFIG = {
	    SELECTORS: {
	      RESET: '.js-modal-reset'
	    }
	  };

	  function trapFocus(el) {

	    var $root = _$['default'](el),
	        $reset = $root.find(CONFIG.SELECTORS.RESET);

	    //+ isRoot :: DomEvent -> Boolean
	    var isRoot = containsEvent($root[0]);

	    //+ notRoot :: DomEvent -> Boolean
	    var notRoot = not(isRoot);

	    $root.attr('tabindex', -1);
	    $reset.attr('tabindex', 0);
	    $root.trigger('focus');

	    //+ resetFocus :: EventStream DomEvent
	    var resetFocus = onEvent('focus', $reset);

	    //+ focusin :: EventStream DomEvent
	    var focusin = onEvent('focusin', _$document['default']).filter(notRoot).map(preventDefault);

	    //+ trap :: Stream DomEvent
	    var trap = resetFocus.merge(focusin);

	    var unsub = trap.next(function trap_focus(evt) {
	      $root.trigger('focus');
	    });

	    return function destroy() {
	      unsub();
	    };
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 116 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default'](window.document);
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 117 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $           = __webpack_require__(2),
	      eventTarget = __webpack_require__(5).Events.eventTarget,
	      onSelector  = __webpack_require__(5).Events.onSelector,
	      not         = __webpack_require__(5).Utils.not,
	      prepare     = __webpack_require__(5).Motion.prepare,
	      describe    = __webpack_require__(5).Motion.describe;

	  var DEFAULT_CONFIG = {

	    SELECTORS : {
	      ACCORDION                 : '.js-accordion',
	      ACCORDION_ITEM            : '.js-accordion-item',
	      ACCORDION_ITEM_OPEN       : '.anim-accordion-open',
	      ACCORDION_HEADER          : '.js-accordion-header',
	      ACCORDION_CONTENT_WRAPPER : '.js-accordion-content-wrapper',
	      ACCORDION_CONTENT         : '.js-accordion-content',
	      ACCORDION_CLOSE           : '.js-accordion-close'
	    },

	    CLASSES : {
	      OPEN         : 'anim-accordion-open',
	      SHOW_CONTENT : 'show-content',
	      IS_EXPANDED  : 'is-expanded'
	    }

	  };

	  function Accordion(options) {


	    // CONFIG

	    var CONFIG       = $.extend({}, DEFAULT_CONFIG, (options || {}));


	    // UTILS

	    var getHeight = function($element) {
	      return $element.find(CONFIG.SELECTORS.ACCORDION_CONTENT).outerHeight(true);
	    };

	    var toParent = function(target) {
	      return $(target).parents(CONFIG.SELECTORS.ACCORDION_ITEM);
	    };

	    var getOpenAccordion = function($target) {
	      var $root = $target.parents(CONFIG.SELECTORS.ACCORDION);
	      return $root.find(CONFIG.SELECTORS.ACCORDION_ITEM_OPEN);
	    };

	    var closeAccordions = function($element) {

	      var $open = getOpenAccordion($element);
	      var $currentContent = $open.find(CONFIG.SELECTORS.ACCORDION_CONTENT_WRAPPER);
	      var $currentHeader = $open.find(CONFIG.SELECTORS.ACCORDION_HEADER);
	      var currentElement = $currentContent[0];

	      if (currentElement) {

	        prepare(currentElement, {
	          height : getHeight($currentContent)
	        });

	        describe(currentElement, {
	          height : 0
	        }).run(function() {
	          $open.removeClass(CONFIG.CLASSES.SHOW_CONTENT);
	        });

	        $open.removeClass(CONFIG.CLASSES.OPEN);
	        $open.removeClass(CONFIG.CLASSES.IS_EXPANDED);

	        // Aria labels
	        $currentHeader.attr('aria-expanded', false);
	        $currentContent.attr('aria-hidden', true);
	      }
	    };

	    var openAccordion = function($parent) {

	      var $currentContent = $parent.find(CONFIG.SELECTORS.ACCORDION_CONTENT_WRAPPER);
	      var $currentHeader = $parent.find(CONFIG.SELECTORS.ACCORDION_HEADER);

	      $parent.addClass(CONFIG.CLASSES.SHOW_CONTENT);
	      $parent.addClass(CONFIG.CLASSES.OPEN);

	      if ($currentContent.length > 0) {
	        describe($currentContent[0], {
	          height : getHeight($currentContent)
	        }).run(function() {
	          // Aria labels
	          $currentHeader.attr('aria-expanded', true);
	          $currentContent.attr('aria-hidden', false);
	          $currentContent.css({
	            height : 'auto'
	          });
	        });
	      }
	    };

	    var accordionIsOpen = function($parent) {
	      return $parent.hasClass(CONFIG.CLASSES.OPEN);
	    };


	    // EVENTS

	    var headerClick = onSelector('click', CONFIG.SELECTORS.ACCORDION_HEADER)
	      .map(eventTarget)
	      .map(toParent);

	    var closeClick = onSelector('click', CONFIG.SELECTORS.ACCORDION_CLOSE)
	      .map(eventTarget)
	      .map($);

	    var closeStream = headerClick
	      .filter(accordionIsOpen)
	      .merge(closeClick);

	    var openStream = headerClick
	      .filter(not(accordionIsOpen));


	    // SIDE EFFECTS

	    closeStream.next(function($el) {
	      closeAccordions($el);
	    });

	    openStream.next(function($el) {
	      closeAccordions($el);
	      openAccordion($el);
	    });
	  }

	  module.exports = Accordion;

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 118 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(18), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _javascriptsCommonExportsBody, _frampton) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _$body = _interopRequireDefault(_javascriptsCommonExportsBody);

	  var _Fr = _interopRequireDefault(_frampton);

	  var onEvent = _Fr['default'].Events.onEvent;
	  var eventTarget = _Fr['default'].Events.eventTarget;
	  var preventDefault = _Fr['default'].Events.preventDefault;
	  var describe = _Fr['default'].Motion.describe;

	  var DEFAULT_CONFIG = {

	    SELECTORS: {
	      SKIP_CONTENT: '.js-content-link',
	      CLOSE_BUTTON: '.js-dismiss'
	    },

	    CLASSES: {
	      HIDDEN: 'a11y-hidden',
	      VISIBLE: 'a11y-header-visible',
	      HEADER: 'a11y-header'
	    }

	  };

	  module.exports = function (el, options) {

	    var CONFIG = _$['default'].extend({}, DEFAULT_CONFIG, options || {});

	    var $root = _$['default'](el),
	        $closeButton = $root.find(CONFIG.SELECTORS.CLOSE_BUTTON),
	        $skipContent = $root.find(CONFIG.SELECTORS.SKIP_CONTENT),
	        showTransition = describe(_$body['default'][0], CONFIG.CLASSES.VISIBLE),
	        hideTransition = showTransition.reverse();

	    // STREAMS
	    var focuses = onEvent('focusin', $root),
	        blurs = onEvent('focusout', $root),
	        closeClicks = onEvent('click', $closeButton),
	        skipClicks = onEvent('click', $skipContent);

	    // TRANSFORMED STREAMS
	    var showHeader = focuses.map(true);

	    var hideHeader = blurs.map(false).merge(focuses).debounce(2000).filter(false).merge(closeClicks);

	    var skipToContent = skipClicks.map(preventDefault).map(eventTarget);

	    showHeader.next(function () {
	      showTransition.run();
	    });

	    hideHeader.next(function () {
	      hideTransition.run();
	    });

	    skipToContent.next(function (target) {
	      var el = _$['default'](target).attr('href');
	      _$['default'](el).trigger('focus');
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 119 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $          = __webpack_require__(2),
	      $body      = __webpack_require__(18),
	      render     = __webpack_require__(19),
	      onEvent    = __webpack_require__(5).Events.onEvent,
	      stepper    = __webpack_require__(5).Signal.stepper,
	      describe   = __webpack_require__(5).Motion.describe,
	      makeSticky = __webpack_require__(20),
	      TEMPLATES  = __webpack_require__(6);

	  var DEFAULT_CONFIG = {

	    SELECTORS : {
	      DISMISS              : '.js-notification-dismiss',
	      COPY                 : '.js-notification-copy',
	      NOTIFICATION_WRAPPER : '#js-notification-wrapper',
	      NOTIFICATION         : '.js-notification',
	      FOCUSED_ITEM         : ':focus'
	    },

	    CLASSES : {
	      VISIBLE : 'notification-open',
	      HIDDEN  : 'notification-closed'
	    }

	  };

	  function toRenderedNotification(data) {
	    var notification = {
	      body : data.body,
	      notificationType : data.notificationType
	    };
	    return render(TEMPLATES.NOTIFICATION, notification);
	  }

	  function Notification(options) {

	    // Once a newNotification event has been triggered,
	    // set up the DOM elements to listen for their events.
	    var CONFIG = $.extend({}, DEFAULT_CONFIG, (options || {}));

	    var $notificationWrapper = $(CONFIG.SELECTORS.NOTIFICATION_WRAPPER);

	    // make the notification sticky
	    makeSticky($notificationWrapper);

	    // Since Notifications can be added to the page,
	    // set up the body to listen for the newNotification event
	    // to get things started.
	    var notificationAdded = onEvent('newNotification', $body);

	    notificationAdded.next(function(evt) {

	      $notificationWrapper.html(toRenderedNotification(evt));

	      var $root        = $(CONFIG.SELECTORS.NOTIFICATION);
	      var $closeButton = $root.find(CONFIG.SELECTORS.DISMISS);
	      var $copy        = $root.find(CONFIG.SELECTORS.COPY);
	      var copyHeight   = $copy.outerHeight(); // need to apply a fixed height value to transition height through css

	      // STREAMS
	      var closeClicks = onEvent('click', $closeButton[0]);

	      // TRANSITIONS
	      var closeTransition = describe($root[0], CONFIG.CLASSES.HIDDEN, { height: '0px' });
	      var openTransition = describe($root[0], CONFIG.CLASSES.VISIBLE, { height: copyHeight });

	      // Attach an event to hide the notification
	      closeClicks.next(function() {
	        $root.css('height', $copy.outerHeight());
	        closeTransition.run(function() {
	          // if the user is still focused on the dismiss button when it gets removed,
	          // move focus to the wrapper that isn't removed so focus doesn't return to the top of the page
	          if( $(CONFIG.SELECTORS.FOCUSED_ITEM).get(0) === $closeButton.get(0) ) {
	            $notificationWrapper.trigger('focus');
	          }
	          $root.remove();
	          if (evt.closeCallback) { evt.closeCallback(); }
	        });
	      });

	      // Show the notification
	      openTransition.run(function() {
	        $root.css('height', 'auto');
	      });
	    });
	  }

	  Notification.SUCCESS = 'success';
	  Notification.ATTENTION = 'attention';
	  Notification.WARNING = 'warning';
	  Notification.NOTICE = 'notice';

	  Notification.EVENTS = {};
	  Notification.EVENTS.NEW = 'newNotification';

	  Notification.trigger = function Notification_trigger(type, message, callback) {
	    var evt = $.Event(Notification.EVENTS.NEW);
	    evt.body = message;
	    evt.notificationType = type;
	    evt.closeCallback = callback;
	    $body.trigger(evt);
	  };

	  module.exports = Notification;

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 120 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(64), __webpack_require__(106), __webpack_require__(66), __webpack_require__(121)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsConfigRoutes, _javascriptsCommonUtilsHtmlRender, _javascriptsCommonUtilsFormattersUrl, _javascriptsCommonModulesSurveyConfig) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var _render = _interopRequireDefault(_javascriptsCommonUtilsHtmlRender);

	  var _CONFIG = _interopRequireDefault(_javascriptsCommonModulesSurveyConfig);

	  var log = _Fr['default'].Utils.log;
	  var not = _Fr['default'].Utils.not;
	  var isSomething = _Fr['default'].Utils.isSomething;
	  var onSelector = _Fr['default'].Events.onSelector;
	  var preventDefault = _Fr['default'].Events.preventDefault;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var keyCode = _Fr['default'].Keyboard.keyCode;
	  var isEsc = _Fr['default'].Keyboard.isEsc;
	  var transition = _Fr['default'].Motion.describe;

	  module.exports = function ($element) {

	    // ELEMENTS

	    var $formContainer = $element.find(_CONFIG['default'].SELECTORS.FORM_CONTAINER);
	    var $form = $element.find(_CONFIG['default'].SELECTORS.FORM);
	    var $questionContainer = $element.find(_CONFIG['default'].SELECTORS.QUESTION_CONTAINER);
	    var $questions = $element.find(_CONFIG['default'].SELECTORS.QUESTIONS);
	    var $fields = $element.find(_CONFIG['default'].SELECTORS.FIELDS);
	    var $progress = $element.find(_CONFIG['default'].SELECTORS.PROGRESS);
	    var $next = $element.find(_CONFIG['default'].SELECTORS.NEXT);
	    var $prev = $element.find(_CONFIG['default'].SELECTORS.PREV);
	    var $submit = $element.find(_CONFIG['default'].SELECTORS.SUBMIT);
	    var $complete = $element.find(_CONFIG['default'].SELECTORS.COMPLETE);
	    var $reset = $element.find(_CONFIG['default'].SELECTORS.RESET);

	    // A11Y
	    // Set up trap focus for accessibly enforcing form validation

	    $reset.attr('tabindex', 0);
	    $fields.attr('tabindex', -1);

	    // TRANSITIONS

	    var closeTransition = transition($element[0], _CONFIG['default'].CLASSES.MINIMIZED + ' ' + _CONFIG['default'].CLASSES.NOT_STARTED);

	    var openTransition = closeTransition.reverse();

	    var dismissTransition = transition($element[0], _CONFIG['default'].CLASSES.REMOVE);

	    var completeTransition = transition($complete[0], _CONFIG['default'].CLASSES.SHOWN);

	    var removeTransition = completeTransition.chain(dismissTransition.delay(4000));

	    // STATE

	    var state = Object.seal({
	      index: 0,
	      visible: false,
	      previousSlide: {
	        element: null
	      },
	      currentSlide: {
	        valid: false,
	        $element: $element.find(_CONFIG['default'].SELECTORS.CURRENT_FIELD)
	      }
	    });

	    var toIndex = function toIndex(val) {

	      state.index = state.index + val;

	      // these scenarios shouldn't happen, but justin case..
	      if (state.index < 0) {
	        state.index = 0;
	      } else if (state.index > 3) {
	        state.index = 3;
	      }

	      return state.index;
	    };

	    // EVENTS

	    var triggerClick = onSelector('click', _CONFIG['default'].SELECTORS.TRIGGER);
	    var dismissClick = onSelector('click', _CONFIG['default'].SELECTORS.DISMISS);
	    var formSubmit = onSelector('submit', _CONFIG['default'].SELECTORS.FORM);
	    var nextClick = onSelector('click', _CONFIG['default'].SELECTORS.NEXT);
	    var prevClick = onSelector('click', _CONFIG['default'].SELECTORS.PREV);
	    var fieldFocus = onSelector('focus', _CONFIG['default'].SELECTORS.FIELDS);
	    var formScroll = onSelector('scroll', _CONFIG['default'].SELECTORS.FORM);
	    var resetFocus = onSelector('focus', _CONFIG['default'].SELECTORS.RESET);
	    var selection = onSelector('change', _CONFIG['default'].SELECTORS.ITEM);
	    var keyPress = onEvent('keyup', $element);

	    var surveyComplete = formSubmit.map(preventDefault).filter(isValid);

	    var fieldIndex = fieldFocus.map(toEventIndex).filter(isSomething);

	    var invalidIndex = resetFocus.map(preventDefault).filter(not(currentValid));

	    var validIndex = nextClick.merge(resetFocus).filter(currentValid).map(1).merge(prevClick.map(-1)).map(toIndex).merge(fieldIndex);

	    var updateProgress = validIndex.map(toTemplateData).map(_render['default'](_CONFIG['default'].TEMPLATES.PROGRESS));

	    // When a new field recieves focus we need to reset scroll to
	    var scrollIntoView = formScroll.merge(fieldFocus);

	    var escKeyPress = keyPress.map(keyCode).filter(isEsc);

	    var dismissSurvey = dismissClick.map(true).merge(escKeyPress);

	    var writeCookie = dismissSurvey.merge(formSubmit);

	    // SIDE EFFECTS

	    triggerClick.next(function () {
	      if (state.visible) {
	        state.visible = true;
	        recordProgress(state, 'OPEN');
	        closeTransition.run(function () {
	          $formContainer.attr('aria-hidden', 'true');
	          $element.removeClass(_CONFIG['default'].CLASSES.MINIMIZED + ' ' + _CONFIG['default'].CLASSES.IN_PROGRESS);
	        });
	      } else {
	        state.visible = false;
	        recordProgress(state, 'OPEN');
	        $formContainer.attr('aria-hidden', 'false');
	        openTransition.run(function () {
	          $element.addClass(_CONFIG['default'].CLASSES.IN_PROGRESS);
	        });
	      }
	    });

	    dismissSurvey.next(function () {
	      recordProgress(state, 'CLOSE');
	      dismissTransition.run(function (evt) {
	        $element.remove();
	      });
	    });

	    // When a selection is made, validate the current form
	    selection.next(function (evt) {
	      state.currentSlide.valid = state.currentSlide.$element.find(':checked').length > 0;
	      if (state.currentSlide.valid) {
	        $next.attr('disabled', false);
	      } else {
	        $next.attr('disabled', true);
	      }
	    });

	    invalidIndex.next(function (evt) {
	      state.currentSlide.$element.focus();
	    });

	    validIndex.next(function (index) {

	      // the function in which we update the current slide
	      updateCurrentSlide(state);

	      // the function in which we transition the fields
	      transitionToSlide(state);

	      // the function in which we show/hide controls as needed
	      updateButtons(state);
	    });

	    updateProgress.next(function (html) {
	      $progress.html(html);
	    });

	    // the form will scroll as you tab through it, to move the focused item into view
	    // setting the scroll value back to 0 because we're transitioning the focused element into view ourselves
	    scrollIntoView.next(function () {
	      $form.scrollLeft(0);
	    });

	    surveyComplete.next(function () {

	      var payload = $form.serialize();

	      // Record the submit event, yay tacking.
	      recordProgress(state, 'SUBMIT');

	      // Do we really care to give an error if this fails? No.
	      // No need to wait to update the UI.
	      _$['default'].post(_javascriptsCommonUtilsFormattersUrl.toRequestUrl0(_ROUTES['default'].SURVEY_API), payload).done(function (res) {
	        log('survey success: ', res);
	      }).fail(function (err) {
	        log('survey error: ', err);
	      });

	      $element.removeClass(_CONFIG['default'].CLASSES.IN_PROGRESS).addClass(_CONFIG['default'].CLASSES.COMPLETED);

	      $questions.attr('aria-hidden', 'true');

	      $complete.removeClass(_CONFIG['default'].CLASSES.HIDDEN).attr('aria-hidden', 'false').trigger('focus');

	      removeTransition.run(function () {
	        $element.remove();
	      });
	    });

	    // Create a cookie
	    // config.options: expires<int>, path<string>, domain<string>, secure<bool>
	    writeCookie.next(function () {
	      _$['default'].cookie(_CONFIG['default'].COOKIE.NAME, _CONFIG['default'].COOKIE.VALUE, {
	        path: _CONFIG['default'].COOKIE.PATH,
	        expires: _CONFIG['default'].COOKIE.EXPIRES
	      });
	    });

	    // UTILS

	    function currentValid() {
	      return state.currentSlide.valid;
	    }

	    function isValid() {
	      return state.index === _CONFIG['default'].SLIDES - 1;
	    }

	    function updateCurrentSlide(state) {

	      // get the current slide
	      var action = state.index > currentIndex(state) ? 'NEXT' : 'PREVIOUS';
	      recordProgress(state, action);

	      state.previousSlide.$element = state.currentSlide.$element;
	      state.previousSlide.$element.addClass(_CONFIG['default'].CLASSES.PREVIOUS);
	      state.currentSlide.$element = $fields.eq(state.index);
	      state.currentSlide.valid = state.currentSlide.$element.find(':checked').length > 0;
	      state.currentSlide.$element.addClass(_CONFIG['default'].CLASSES.CURRENT);
	      state.previousSlide.$element.removeClass(_CONFIG['default'].CLASSES.CURRENT);
	      state.currentSlide.$element.focus();
	    }

	    function updateButtons(state) {

	      $next.attr('disabled', !state.currentSlide.valid);

	      switch (state.index) {

	        // first slide
	        case 0:
	          $prev.addClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $next.removeClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $submit.addClass(_CONFIG['default'].CLASSES.HIDDEN);
	          break;

	        // last slide
	        case 3:
	          $prev.removeClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $next.addClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $submit.removeClass(_CONFIG['default'].CLASSES.HIDDEN);
	          break;

	        // all other slides
	        default:
	          $prev.removeClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $next.removeClass(_CONFIG['default'].CLASSES.HIDDEN);
	          $submit.addClass(_CONFIG['default'].CLASSES.HIDDEN);
	          break;
	      }
	    }

	    function transitionToSlide(state) {
	      var transitionAmount = '-' + state.index / _CONFIG['default'].SLIDES * 100 + '%';
	      transition($questionContainer[0], {
	        'transform': 'translateX(' + transitionAmount + ')'
	      }).run(function () {
	        state.previousSlide.$element.removeClass(_CONFIG['default'].CLASSES.CURRENT);
	      });
	    }
	  };

	  function currentIndex(state) {
	    return state.currentSlide.$element.index();
	  }

	  function toTemplateData(index) {
	    return {
	      currentQuestion: index + 1,
	      totalQuestions: _CONFIG['default'].SLIDES
	    };
	  }

	  function toEventIndex(evt) {
	    return _$['default'](evt.currentTarget).data('index');
	  }

	  function recordProgress(state, action) {
	    var $currentSlide = state.currentSlide.$element;
	    var payload = {
	      value: $currentSlide.find('textarea').val() || $currentSlide.find(':checked').val() || '',
	      name: $currentSlide.attr('data-id'),
	      index: $currentSlide.index(),
	      action: action
	    };
	    _$['default'].post(_javascriptsCommonUtilsFormattersUrl.toRequestUrl0(_ROUTES['default'].SURVEY_PROGRESS), payload);
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 121 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {

	    TEMPLATES: {
	      PROGRESS: 'templates/partials/survey/survey_progress'
	    },

	    SELECTORS: {
	      TRIGGER: '.js-survey-trigger',
	      DISMISS: '.js-survey-dismiss',
	      FORM_CONTAINER: '.js-survey-form-container',
	      FORM: '.js-survey-form',
	      RESET: '.js-survey-reset',
	      QUESTION_CONTAINER: '.js-question-container',
	      QUESTIONS: '.js-survey-questions',
	      FIELDS: '.js-field',
	      ITEM: '.js-field li',
	      CURRENT_FIELD: '.js-field.current',
	      PROGRESS: '.js-survey-progress',
	      PAGINATION: '.js-survey-pagination .js-btn',
	      NEXT: '.js-btn-next',
	      PREV: '.js-btn-prev',
	      SUBMIT: 'input[type=submit]',
	      COMPLETE: '.js-survey-complete'
	    },

	    CLASSES: {
	      CURRENT: 'current',
	      PREVIOUS: 'previous',
	      HIDDEN: 'hidden',
	      NOT_STARTED: 'is-not-started',
	      IN_PROGRESS: 'is-in-progress',
	      COMPLETED: 'is-complete',
	      SHOWN: 'is-shown',
	      REMOVE: 'remove',
	      MINIMIZED: 'is-minimized'
	    },

	    SLIDES: 4,

	    COOKIE: {
	      NAME: 'hc_survey',
	      VALUE: 'true',
	      OPTIONS: {
	        EXPIRES: 30,
	        PATH: '/'
	      }
	    }

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 122 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(3), __webpack_require__(6), __webpack_require__(123)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _javascriptsCommonUtilsTemplatesLoader, _javascriptsConfigTemplates, _javascriptsCommonModulesSearchSearchAssistant) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _loader = _interopRequireDefault(_javascriptsCommonUtilsTemplatesLoader);

	  var _TEMPLATES = _interopRequireDefault(_javascriptsConfigTemplates);

	  var _SearchAssistant = _interopRequireDefault(_javascriptsCommonModulesSearchSearchAssistant);

	  var SELECTORS = {
	    TOP_BAR_SEARCH_ASSIST: '.js-top-bar .js-search-assist',
	    HERO_SEARCH_ASSIST: '.js-hero-image .js-search-assist',
	    RESULTS_SEARCH_ASSIST: '.js-search-results-content .js-search-assist'
	  };

	  module.exports = function () {

	    $(SELECTORS.TOP_BAR_SEARCH_ASSIST).each(function () {
	      _SearchAssistant['default']($(this));
	    });

	    function startHeroSearch(context) {
	      _SearchAssistant['default']($(SELECTORS.HERO_SEARCH_ASSIST));
	    }

	    function startResultsSearch(context) {
	      _SearchAssistant['default']($(SELECTORS.RESULTS_SEARCH_ASSIST));
	    }

	    _loader['default'](_TEMPLATES['default'].BROWSE, startHeroSearch);
	    _loader['default'](_TEMPLATES['default'].SEARCH_RESULTS, startResultsSearch);
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 123 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(64), __webpack_require__(66)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsConfigRoutes, _javascriptsCommonUtilsFormattersUrl) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var onEvent = _Fr['default'].Events.onEvent;
	  var eventValue = _Fr['default'].Events.eventValue;
	  var preventDefault = _Fr['default'].Events.preventDefault;

	  var DEFAULT_CONFIG = {

	    SELECTORS: {
	      INPUT: '.js-search-assist-input',
	      SUBMIT: '.js-submit-button'
	    }

	  };

	  module.exports = function ($element, options) {

	    var CONFIG = _$['default'].extend({}, DEFAULT_CONFIG, options || {});

	    // STATIC UI ELEMENTS
	    var $input = $element.find(CONFIG.SELECTORS.INPUT);
	    var $submit = $element.find(CONFIG.SELECTORS.SUBMIT);

	    // BASE EVENT STREAMS
	    var formSubmits = onEvent('submit', $element[0]);

	    var inputs = onEvent('input', $input[0]).map(eventValue);

	    // TRANSFORMED STREAMS

	    //+ querySubmit :: EventStream String
	    var querySubmit = formSubmits.map(preventDefault).sample(inputs);

	    // SIDE EFFECTS
	    inputs.value(function (val) {
	      $submit.prop('disabled', val.trim().length === 0);
	    });

	    querySubmit.next(function (query) {
	      window.location.href = _javascriptsCommonUtilsFormattersUrl.toBaseUrl(_ROUTES['default'].SEARCH, query, 1);
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 124 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {

	    SELECTORS: {
	      DROPDOWN: '.js-dropdown',
	      HOVER_DROPDOWN: '.js-hover-dropdown',
	      TRIGGER: '.js-trigger',
	      MAIN: '#a11y-main',
	      CLOSE_BUTTON: '.js-close-dropdown',
	      ACTIVE: '.active'
	    },

	    ACTIVE_CLASS: 'active',

	    HOVER_DELAY: {
	      EXIT: 300
	    }

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 125 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, __webpack_require__(5), __webpack_require__(126)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, _frampton, _javascriptsCommonModulesDropdownConfig) {
	  'use strict';

	  exports.__esModule = true;
	  exports.start = start;
	  exports.open = open;
	  exports.close = close;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _Fr = _interopRequireDefault(_frampton);

	  var warn = _Fr['default'].Utils.warn;
	  var isSomething = _Fr['default'].Utils.isSomething;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var onSelector = _Fr['default'].Events.onSelector;
	  var eventContains = _Fr['default'].Events.contains;
	  var hasSelector = _Fr['default'].Events.hasSelector;
	  var eventTarget = _Fr['default'].Events.eventTarget;
	  var not = _Fr['default'].Utils.not;
	  var preventDefault = _Fr['default'].Events.preventDefault;
	  var closest = _Fr['default'].Style.closest;
	  var addClass = _Fr['default'].Style.addClass;
	  var removeClass = _Fr['default'].Style.removeClass;

	  var state = {
	    current: null
	  };

	  var closeDropdown = function closeDropdown() {
	    if (state.current !== null) {
	      removeClass(state.current, _javascriptsCommonModulesDropdownConfig.ACTIVE_CLASS);
	      state.current = null;
	    }
	  };

	  var openDropdown = function openDropdown(element) {
	    closeDropdown();
	    state.current = element;
	    addClass(element, _javascriptsCommonModulesDropdownConfig.ACTIVE_CLASS);
	  };

	  var hoverDropdownIsOpen = function hoverDropdownIsOpen(evt) {
	    if ($(_javascriptsCommonModulesDropdownConfig.SELECTORS.HOVER_DROPDOWN + _javascriptsCommonModulesDropdownConfig.SELECTORS.ACTIVE).length) {
	      return true;
	    } else {
	      return false;
	    }
	  };

	  var isHoverDropdown = function isHoverDropdown(evt) {
	    return hasSelector(_javascriptsCommonModulesDropdownConfig.SELECTORS.HOVER_DROPDOWN + ', ' + _javascriptsCommonModulesDropdownConfig.SELECTORS.HOVER_DROPDOWN + ' ' + _javascriptsCommonModulesDropdownConfig.SELECTORS.TRIGGER, evt);
	  };

	  var initDropdown = function initDropdown(selector) {

	    var trigger = selector + ' ' + _javascriptsCommonModulesDropdownConfig.SELECTORS.TRIGGER;
	    var clicks = onSelector('click', trigger).map(preventDefault);
	    var mouseOver = documentHover.filter(isHoverDropdown);

	    clicks.merge(mouseOver).map(eventTarget).map(closest(_javascriptsCommonModulesDropdownConfig.SELECTORS.DROPDOWN)).filter(isSomething).next(function (current) {
	      if (state.current === current) {
	        closeDropdown();
	      } else {
	        openDropdown(current);
	      }
	    });
	  };

	  var focusNotFromMain = function focusNotFromMain(evt) {
	    return hasSelector(_javascriptsCommonModulesDropdownConfig.SELECTORS.MAIN, evt);
	  };

	  var shouldCloseDropdown = function shouldCloseDropdown(evt) {
	    return state.current && !eventContains(state.current, evt) || hasSelector(_javascriptsCommonModulesDropdownConfig.SELECTORS.CLOSE_BUTTON, evt);
	  };

	  var documentFocus = onEvent('focus', document.body).filter(focusNotFromMain);
	  var documentClick = onEvent('click', document.body);
	  var documentHover = onEvent('mouseover', document.body);

	  var leaveDropdown = documentHover.filter(not(isHoverDropdown)).filter(hoverDropdownIsOpen).debounce(_javascriptsCommonModulesDropdownConfig.HOVER_DELAY.EXIT);

	  documentFocus.merge(documentClick).merge(leaveDropdown).filter(shouldCloseDropdown).next(function (evt) {
	    closeDropdown(state.current);
	  });

	  function start(selector) {
	    if (selector[0] === '.' || selector[0] === '#') {
	      initDropdown(selector);
	    } else {
	      warn('start dropdown expecting selector to be class or id');
	    }
	  }

	  function open(selector) {
	    var el = document.querySelector(selector);
	    if (el !== null) {
	      openDropdown(el);
	    }
	  }

	  function close() {
	    closeDropdown();
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 126 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {

	    SELECTORS: {
	      DROPDOWN: '.js-dropdown',
	      HOVER_DROPDOWN: '.js-hover-dropdown',
	      TRIGGER: '.js-trigger',
	      MAIN: '#a11y-main',
	      CLOSE_BUTTON: '.js-close-dropdown',
	      ACTIVE: '.active'
	    },

	    ACTIVE_CLASS: 'active',

	    HOVER_DELAY: {
	      EXIT: 300
	    }

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 127 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = function () {

	    /* Mobile Language Switcher */
	    var $mobileLanguageSwitcher = _$['default']('.js-mobile-language-switcher'),
	        $mobileLanguageSwitcherWrapper = $mobileLanguageSwitcher.closest('.js-drawer-footer-language-switcher');

	    $mobileLanguageSwitcherWrapper.on('focusin', function () {
	      _$['default'](this).addClass('is-focused');
	    }).on('focusout', function () {
	      _$['default'](this).removeClass('is-focused');
	    });

	    $mobileLanguageSwitcher.on('change', function (e) {
	      _$['default'](this).closest('form').trigger('submit');
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 128 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = function () {

	    /* Mobile Product Switcher */
	    var $mobileProductSwitcher = _$['default']('.js-mobile-product-switcher'),
	        $mobileProductSwitcherForm = $mobileProductSwitcher.closest('.js-mobile-product-switcher-form'),
	        $mobileProductSwitcherIcon = $mobileProductSwitcherForm.prev('.js-product-button');

	    $mobileProductSwitcherForm.on('focusin', function () {
	      $mobileProductSwitcherIcon.addClass('is-focused');
	    }).on('focusout', function () {
	      $mobileProductSwitcherIcon.removeClass('is-focused');
	    });

	    $mobileProductSwitcher.on('change', function (e) {
	      window.location.replace(_$['default'](this).val());
	    });
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 129 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  module.exports = prepare_cache;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  function prepare_cache() {
	    if (_$['default'].cookie('hc-use-cache') === 'false') {
	      window.localStorage.clear();
	    }
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 130 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(65), __webpack_require__(119), __webpack_require__(6), __webpack_require__(14), __webpack_require__(131)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsI18nCache, _javascriptsCommonModulesNotification, _javascriptsConfigTemplates, _environment, _javascriptsCommonModulesModalMain) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _i18n_cache = _interopRequireDefault(_javascriptsCommonExportsI18nCache);

	  var _Notification = _interopRequireDefault(_javascriptsCommonModulesNotification);

	  var _TEMPLATES = _interopRequireDefault(_javascriptsConfigTemplates);

	  var _ENV = _interopRequireDefault(_environment);

	  var _createModal = _interopRequireDefault(_javascriptsCommonModulesModalMain);

	  var onSelector = _Fr['default'].Events.onSelector;
	  var preventDefault = _Fr['default'].Events.preventDefault;

	  module.exports = function () {

	    // Helper functions
	    function setCookie() {
	      // Set cookie so user won't see banner again after closing it
	      _$['default'].cookie('hc_lynda_notification', true);
	    }

	    function openModal() {
	      _createModal['default']({
	        title: "Learn more",
	        template: _TEMPLATES['default'].ALERT_MODAL,
	        onRender: function onRender() {},
	        body: _i18n_cache['default'].get('i18n_lynda_alert'),
	        global: _ENV['default'].GLOBAL
	      });
	    }

	    // Trigger notification
	    _Notification['default'].trigger(_Notification['default'].NOTICE, _i18n_cache['default'].get('i18n_lynda_notification'), setCookie);

	    // Link click event stream
	    onSelector('click', '.js-lynda-learn-more').map(preventDefault).next(openModal);
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 131 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(114), __webpack_require__(132), __webpack_require__(115), __webpack_require__(106), __webpack_require__(133)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsCommonExportsBody, _javascriptsCommonExportsHtml, _javascriptsCommonUtilsUiTrapFocus, _javascriptsCommonUtilsHtmlRender, _javascriptsCommonModulesModalConfig) {
	  'use strict';

	  module.exports = create_modal;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _$body = _interopRequireDefault(_javascriptsCommonExportsBody);

	  var _$html = _interopRequireDefault(_javascriptsCommonExportsHtml);

	  var _trapFocus = _interopRequireDefault(_javascriptsCommonUtilsUiTrapFocus);

	  var _render = _interopRequireDefault(_javascriptsCommonUtilsHtmlRender);

	  var apply = _Fr['default'].Utils.apply;
	  var noop = _Fr['default'].Utils.noop;
	  var not = _Fr['default'].Utils.not;
	  var onEvent = _Fr['default'].Events.onEvent;
	  var selectorContains = _Fr['default'].Events.selectorContains;
	  var keyCode = _Fr['default'].Keyboard.keyCode;
	  var isEsc = _Fr['default'].Keyboard.isEsc;
	  var describe = _Fr['default'].Motion.describe;
	  var when = _Fr['default'].Motion.when;

	  var $mask = null;
	  var $modal = null;
	  var openModal = null;
	  var destroyManager = null;
	  var removeEvents = [];
	  var trapFunc = null;

	  //+ isCloseButton :: DomEvent -> Boolean
	  var isCloseButton = selectorContains(_javascriptsCommonModulesModalConfig.SELECTORS.CLOSE_MODAL);

	  //+ isModal :: DomEvent -> Boolean
	  var isModal = selectorContains(_javascriptsCommonModulesModalConfig.SELECTORS.MODAL);

	  //+ notModal :: DomEvent -> Boolean
	  var notModal = not(isModal);

	  function create_modal(options) {

	    if (openModal) {
	      openModal();
	      openModal = null;
	    }

	    $mask = _$['default'](_render['default'](_javascriptsCommonModulesModalConfig.TEMPLATES.MASK, {}));
	    $modal = _$['default'](_render['default'](options.template, options));
	    trapFunc = _trapFocus['default']($modal[0], {});

	    _$body['default'].append($mask);
	    $mask.append($modal);
	    _$html['default'].addClass(_javascriptsCommonModulesModalConfig.CLASSES.NO_SCROLL);

	    var openTransition = when(describe($mask[0], _javascriptsCommonModulesModalConfig.CLASSES.MASK_OPEN), describe($modal[0], _javascriptsCommonModulesModalConfig.CLASSES.MODAL_OPEN));

	    var closeTransition = openTransition.reverse();

	    openTransition.run();

	    //+ clicks :: EventStream DomEvent
	    var clicks = onEvent('click', $mask[0]);

	    //+ escapes :: EventStream DomEvent
	    var escapes = onEvent('keyup', document).map(keyCode).filter(isEsc);

	    //+ maskClicks :: EventStream DomEvent
	    var maskClicks = clicks.filter(notModal);

	    //+ closeClicks :: EventStream DomEvent
	    var closeClicks = clicks.filter(isCloseButton);

	    //+ closeModal :: EventStream DomEvent
	    var closeModal = maskClicks.merge(closeClicks).merge(escapes);

	    // Calls to subscribe return a function to unsubscribe.
	    removeEvents.push(closeModal.next(close_modal));

	    // HELPERS FOR CLOSING MODAL
	    function close_start() {
	      destroyManager();
	      removeEvents.forEach(apply);
	      removeEvents = [];
	      trapFunc();

	      // Set focus back to the last element in main content that had focus.
	      _$['default'](options.targetElement).focus();
	    }

	    function close_finish() {
	      $modal.remove();
	      $mask.remove();
	      _$html['default'].removeClass(_javascriptsCommonModulesModalConfig.CLASSES.NO_SCROLL);
	      // cleanup on aisle 5.
	      $modal = null;
	      $mask = null;
	      clicks = null;
	      maskClicks = null;
	      closeClicks = null;
	      closeModal = null;
	      openTransition = null;
	      closeTransition = null;
	      openModal = null;
	    }

	    // CLOSE MODAL WITH ANIMATION
	    function close_modal() {
	      close_start();

	      // Dismiss the UI for the modal.
	      closeTransition.run(close_finish);
	    }

	    // KILL MODAL IMMEDIATELY (WITHOUT ANIMATION)
	    function destroy_modal() {
	      close_start();
	      close_finish();
	    }

	    destroyManager = options.onRender($modal, options) || noop;

	    openModal = destroy_modal;
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 132 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  module.exports = _$['default']('html');
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 133 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module) {
	  'use strict';

	  module.exports = {

	    SELECTORS: {
	      MODAL: '.js-modal',
	      MASK: '.js-mask',
	      CLOSE_MODAL: '.js-dialog-close'
	    },

	    CLASSES: {
	      NO_SCROLL: 'no-scroll',
	      MASK_OPEN: 'open',
	      MODAL_OPEN: 'open'
	    },

	    TEMPLATES: {
	      MASK: 'templates/partials/modal/mask'
	    }

	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 134 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(14), __webpack_require__(135), __webpack_require__(136)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _environment, _javascriptsCommonModulesChatRntChatMain, _javascriptsCommonModulesChatSalesforceLiveAgent) {
	  'use strict';

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _ENV = _interopRequireDefault(_environment);

	  var _rntChat = _interopRequireDefault(_javascriptsCommonModulesChatRntChatMain);

	  var _sfChat = _interopRequireDefault(_javascriptsCommonModulesChatSalesforceLiveAgent);

	  var chatSource = _ENV['default'].GLOBAL.chat.chatSource;
	  var rntChatConfig = _ENV['default'].GLOBAL.chat.chatConfigRNT || false;
	  var sfChatConfig = _ENV['default'].GLOBAL.chat.chatConfigSF || false;

	  module.exports = function () {
	    switch (chatSource) {
	      case "RNT":
	        if (rntChatConfig.enabled) {
	          _rntChat['default'](rntChatConfig);
	        }
	        break;
	      case "SFDC":
	        if (sfChatConfig.enabled) {
	          _sfChat['default'](sfChatConfig, _ENV['default'].USER);
	        }
	        break;
	      default:
	        break;
	    }
	  };
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 135 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports, module, __webpack_require__(2), __webpack_require__(5), __webpack_require__(9), __webpack_require__(12)], __WEBPACK_AMD_DEFINE_RESULT__ = function (exports, module, _jquery, _frampton, _javascriptsConfigRoutes, _javascriptsCommonUtilsFormattersUrl) {
	  'use strict';

	  module.exports = rnt_chat;

	  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }

	  var _$ = _interopRequireDefault(_jquery);

	  var _Fr = _interopRequireDefault(_frampton);

	  var _ROUTES = _interopRequireDefault(_javascriptsConfigRoutes);

	  var warn = _Fr['default'].Utils.warn;

	  function rnt_chat(chatConfig) {

	    var chatAvailableUrl = chatConfig.chatAvailableURL;
	    var chatNowUrl = chatConfig.chatNowURL;
	    var chatWindowWidth = chatConfig.chatWidth;
	    var chatWindowHeight = chatConfig.chatHeight;

	    // Check for agent availability
	    _$['default'].ajax({
	      dataType: "jsonp",
	      url: chatAvailableUrl,
	      timeout: 15000,
	      success: function success(res) {

	        // If agents are available, show the chat window
	        if (res.availableAgentSessions > 0) {
	          _$['default']("#rntChatOnLine").show();
	        } else {
	          _$['default']("#rntChatOffLine").show();
	          _$['default']("#onlineButton").hide();
	        }

	        _$['default'].post(_javascriptsCommonUtilsFormattersUrl.toRequestUrl0(_ROUTES['default'].CHAT_INTERACTION), { queueId: res.queueId, availableAgentSessions: res.availableAgentSessions, expectedWaitDuration: res.expectedWaitSeconds });
	      },
	      error: function error(xhr, status, err) {

	        // abort the request
	        xhr.abort();

	        // show offline button
	        _$['default']("#rntChatOffLine").show();
	        _$['default']("#onlineButton").hide();

	        // logs error in dev mode
	        warn('error: loading rnt chat: ', err);
	      }
	    });

	    _$['default']("#rntChatOnLine").click(function (event) {
	      event.preventDefault();
	      window.open(chatNowUrl, "chat_window", "width=" + chatWindowWidth + ",height=" + chatWindowHeight + "");
	      _$['default'].post(_javascriptsCommonUtilsFormattersUrl.toRequestUrl0(_ROUTES['default'].CHAT_SESSION_PROGRESS), { action: "INITIALIZE" });
	    });
	  }
	}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ },
/* 136 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $         = __webpack_require__(2),
	      $body     = __webpack_require__(18),
	      $document = __webpack_require__(32),
	      development = __webpack_require__(137),
	      geoData   = __webpack_require__(138);

	  var SELECTORS = {
	      CHAT_LINK      : '.chat-link',
	      ONLINE_BUTTON  : '#onlineButton',
	      OFFLINE_BUTTON : '#offlineButton'
	  };

	  var DEFAULT_CONFIG = {

	    CHAT_DEFAULTS : {
	      CHAT_WIDTH : 350,
	      CHAT_HEIGHT : 500,
	      BUTTON_ID : '573600000008OnK',
	      BUSINESS_UNIT : 'LHS',
	      DEPLOYMENT_ID : '572g00000008OOm',
	      ORG_ID : '00Dg0000003MUE3',
	      CHAT_URL : 'https://d.la4-c1-was.salesforceliveagent.com/chat',
	      REGION_MAPPING : {
	        'Americas' : {'button':'573g00000008OVY'},
	        'LATAM' : {'button':'573m00000008OIL'},
	        'APAC' : {'button':'573m00000008OIj'},
	        'EMEA' : {'button':'573m00000008OIy'}
	      },
	      LANGUAGE : 'en_US',
	      CATEGORY : 'Hiring Solutions'
	    }

	  };

	  var liveagent = null;

	  function liveAgent(chatConfig, user) {

	    var chat = chatConfig;

	    var options = {
	      BUTTON_ID     : chat.buttonId,
	      BUSINESS_UNIT : chat.businessUnit,
	      DEPLOYMENT_ID : chat.deploymentId,
	      ORG_ID        : chat.orgId,
	      CHAT_URL      : chat.chatUrl,
	      FIRST_NAME    : user.firstName,
	      LAST_NAME     : user.lastName,
	      FULL_NAME     : user.fullName,
	      MEMBER_EMAIL  : user.email,
	      LANGUAGE      : 'en_US',
	      CATEGORY      : chat.category1
	    };


	    var onlineButton   = document.getElementById('onlineButton'),
	        $onlineButton  = $(SELECTORS.ONLINE_BUTTON),
	        offlineButton  = document.getElementById('offlineButton'),
	        $offlineButton = $(SELECTORS.OFFLINE_BUTTON);

	    function initDeployment(config) {

	      function startChat() {
	        liveagent.startChat(config.BUTTON_ID);
	      }

	      if (!window._laq) {
	        window._laq = [];
	      }

	      // Pushes buttons to the SalesForce API. One element for the online state
	      // and one for the offline state.
	      window._laq.push(function() {
	        liveagent.showWhenOffline(config.BUTTON_ID, offlineButton);
	        liveagent.showWhenOnline(config.BUTTON_ID, onlineButton);
	      });

	      $onlineButton.find(SELECTORS.CHAT_LINK).on('click', startChat);

	      liveagent.addCustomDetail('country', config.COUNTRY);
	      liveagent.addCustomDetail('region', config.REGION);
	      liveagent.addCustomDetail('businessUnit', config.BUSINESS_UNIT);
	      liveagent.addCustomDetail('language', config.LANGUAGE);
	      liveagent.addCustomDetail('category1', config.CATEGORY);
	      liveagent.addCustomDetail('FullName', config.FULL_NAME);
	      liveagent.addCustomDetail('FirstName', config.FIRST_NAME);
	      liveagent.addCustomDetail('LastName', config.LAST_NAME);
	      liveagent.addCustomDetail('Email', config.MEMBER_EMAIL);

	      liveagent.enableLogging();

	      liveagent.init(config.CHAT_URL, config.DEPLOYMENT_ID, config.ORG_ID);
	    }

	    function getValueFromRegion(regionMapping, item, region) {
	      var result = null;

	      try {
	        result = regionMapping[region][item];
	      } catch(e) {}

	      return result;
	    }

	    function init(geoData) {
	      var config = $.extend({}, DEFAULT_CONFIG.CHAT_DEFAULTS, options);
	      config.REGION = geoData.country_code;
	      config.COUNTRY = geoData.region;

	      liveagent = window.liveagent;
	      liveagent.setChatWindowWidth(config.CHAT_WIDTH);
	      liveagent.setChatWindowHeight(config.CHAT_HEIGHT);

	      if (config.REGION) {
	        initDeployment(config);
	      }
	    }

	    //Initialize after getting geographical data
	    if (onlineButton && offlineButton) {
	      geoData(init);
	    }

	  }

	  module.exports = liveAgent;

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));


/***/ },
/* 137 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;/* jshint ignore:start */
	!(__WEBPACK_AMD_DEFINE_RESULT__ = function() {

	(function(){function k(){}function s(){}function ha(a){k.prototype.init.call(this,a,k.TYPE.STANDARD)}function ia(a){l[a]||(l[a]=new ha(a));return l[a]}function R(a,b){k.prototype.init.call(this,b+"_"+a,k.TYPE.AGENT)}function K(a,b){var c=b+"_"+a;l[c]||(l[c]=new R(a,b));return l[c]}function S(a,b){s.prototype.init.call(this,a,b)}function T(a,b){s.prototype.init.call(this,a,b)}function h(a){k.prototype.init.call(this,a,k.TYPE.INVITE);this.active=!1;this.filterLogic=null;this.rules={};this.autoRejectTimeout=
	this.inviteTimeout=this.inviteDelay=this.ruleTree=null}function t(a){l[a]||(l[a]=new h(a));return l[a]}function z(a,b,c,e,d,g,B,x){s.prototype.init.call(this,a,b);this.hasInviteAfterAccept=g;this.hasInviteAfterReject=B;this.rejectTime=x;null!==f.getCssAnimation(b)||"Custom"==c?this.renderer=new h.RENDERER[c].renderClass(a,b,h.START_POSITION[e],h.END_POSITION[d]):this.renderer=new h.RENDERER.Appear.renderClass(a,b,h.START_POSITION[e],h.END_POSITION[d])}function C(a){return t(a)?t(a).getTracker():null}
	function r(){}function I(a,b,c,e){r.prototype.init.call(this,a,b,c,e)}function J(a,b,c,e){r.prototype.init.call(this,a,b,null,e)}function L(a,b,c,e){r.prototype.init.call(this,a,b,null,e)}function D(a,b,c,e){D.prototype.init.call(this,a,b,null,null)}function m(){}function M(a,b,c,e,d){m.prototype.init.call(this,a,b,c,e,d)}function N(a,b,c,e,d){m.prototype.init.call(this,a,b,c,e,d)}function U(a,b,c,e,d){m.prototype.init.call(this,a,b,c,e,d)}function E(a){ja++;if(1E3<ja)throw Error("Error processing rule filter logic, preventing recursion");
	for(var b=0,c=0,e=0;e<a.length;e++)"("==a.charAt(e)?c++:")"==a.charAt(e)&&c--,","==a.charAt(e)&&1==c&&(b=e);if(0==a.indexOf("AND("))return c=E(a.substring(4,b)),a=E(a.substring(b+1,a.length-1)),new V(c,a);if(0==a.indexOf("OR("))return c=E(a.substring(3,b)),a=E(a.substring(b+1,a.length-1)),new W(c,a);if(0==a.indexOf("NOT("))return c=E(a.substring(4,a.length-1)),new X(c);if(!isNaN(parseInt(a,10)))return new Y(parseInt(a,10));throw Error("Encountered unexpected character in filter logic");}function y(){}
	function Y(a){this.ruleId=a;y.prototype.init.call(this,null,null)}function V(a,b){y.prototype.init.call(this,a,b)}function W(a,b){y.prototype.init.call(this,a,b)}function X(a){y.prototype.init.call(this,a,null)}function xa(a,b,c,e){var d=document.createElement("div");d.id="liveagent_invite_button_"+a;var g=document.createElement("img");g.style.cursor="pointer";g.style.position="absolute";g.style.right="-20px";g.style.top="-20px";g.src=p.contentServerUrl+"/images/x.png";f.addEventListener(g,"click",
	function(){n.rejectChat(a)});d.appendChild(g);g=document.createElement("img");g.style.cursor="pointer";g.style.clear="right";g.src=b;g.width=c;g.height=e;f.addEventListener(g,"click",function(){n.startChat(a)});d.appendChild(g);document.body.appendChild(d);return d}function ka(a,b,c){"undefined"==typeof c&&(c=!0);this.getLabel=function(){return a};this.getValue=function(){return b};this.getDisplayToAgent=function(){return c};var e=new Z;this.getMapper=function(){return e};this.doKnowledgeSearch=!1;
	this.getDoKnowledgeSearch=function(){return this.doKnowledgeSearch};this.setDoKnowledgeSearch=function(){this.doKnowledgeSearch=!0}}function Z(){var a=[],b=[];this.getEntityMaps=function(){return a};this.getTranscriptFields=function(){return b}}function la(a,b,c,e,d){this.getEntityName=function(){return a};this.getFieldName=function(){return b};this.getFastFill=function(){return c};this.getAutoQuery=function(){return e};this.getExactMatch=function(){return d}}function ma(a){this.saveToTranscript=
	"";this.showOnCreate=!1;this.linkToEntityField=this.linkToEntityName="";var b=new na;this.getEntityName=function(){return a};this.getSaveTranscript=function(){return this.saveTranscript};this.getShowOnCreate=function(){return this.showOnCreate};this.getLinkToEntityName=function(){return this.linkToEntityName};this.getLinkToEntityField=function(){return this.linkToEntityField};this.getEntityMapper=function(){return b};this.setSaveTranscript=function(a){this.saveTranscript=a};this.setShowOnCreate=function(a){this.showOnCreate=
	a};this.setLinkToEntityName=function(a){this.linkToEntityName=a};this.setLinkToEntityField=function(a){this.linkToEntityField=a}}function na(){var a=[];this.getEntityFieldsMaps=function(){return a}}function oa(a,b,c,e,d){this.getFieldName=function(){return a};this.getLabel=function(){return b};this.getDoFind=function(){return c};this.getIsExactMatch=function(){return e};this.getDoCreate=function(){return d}}function O(){if(!pa){pa=!0;f.log("DOM is ready. Setting up environment.");null==u.getOref()&&
	u.setOref(document.referrer);null==u.getVisitCount()&&u.setVisitCount(1);if(window._laq)for(var a=0;a<window._laq.length;a++)window._laq[a].call(window);q.connection.setCallback("liveagent._.handlePing");qa()}}function qa(){var a=[],b={};$&&(b.chatted=1);v?(b.sid=v,f.log("Reusing existing session.")):(a.push(new q.Noun("VisitorId")),f.log("Requesting new session."));a.push(new q.Noun("Settings",{buttonIds:"["+ra()+"]",updateBreadcrumb:1}));q.connection.send(a,b)}function sa(a,b){b.endpointUrl&&a.setEndpoint(b.endpointUrl);
	b.prechatUrl&&a.setPrechat(b.prechatUrl);b.language&&a.setLanguage(b.language);a.setOnlineState(b.isAvailable)}function ya(){if(q.connection.isRunning())if(null==v)qa();else{f.log("Pinging server to keep presence");P=null;var a={};a.sid=v;$&&(a.chatted=1);a.r=(new Date).getMilliseconds();var b=[new q.Noun("Availability",{ids:"["+ra()+"]"})];q.connection.send(b,a)}}function aa(){f.log("Disconnecting from Live Agent");q.connection.setIsRunning(!1);for(var a in l)l.hasOwnProperty(a)&&l[a].setOnlineState(!1)}
	function ra(){var a=[],b={},c;for(c in l)l.hasOwnProperty(c)&&l[c].getType()==k.TYPE.STANDARD&&(b[c]=l[c]);for(var e in b)a.push(e);var b={},d;for(d in l)l.hasOwnProperty(d)&&l[d].getType()==k.TYPE.AGENT&&(b[d]=l[d]);for(e in b)a.push(e);d={};for(var g in l)l.hasOwnProperty(g)&&l[g].getType()==k.TYPE.INVITE&&(d[g]=l[g]);for(e in d)a.push(e);e="";for(g=0;g<a.length;g++)e+=a[g],g<a.length-1&&(e+=",");return e}function ta(a,b,c,e){document.cookie="liveagent_chatted\x3d1;path\x3d/;";$=!0;var d;d="deployment_id\x3d"+
	p.deploymentId;d=d+"\x26org_id\x3d"+p.orgId;d+="\x26button_id\x3d";d+=a;c&&(d+="\x26agent_id\x3d",d+=c);e&&(d+="\x26do_fallback\x3d1");d+="\x26session_id\x3d";d+=v;a=c?l[c+"_"+a].getEndpoint(d):l[a].getEndpoint(d);c="height\x3d"+p.chatWindowHeight;c=c+",width\x3d"+p.chatWindowWidth;c+=",menubar\x3dno";c+=",toolbar\x3dno";c+=",location\x3dno";c+=",personalbar\x3dno";window.open("",b,c);za(b,a)}function za(a,b){function c(a,b,c){var d=document.createElement("input");d.name=b;d.value=c;a.appendChild(d)}
	var e=u.getVisitCount();null==e&&(e="0");var d=document.createElement("form");d.style.display="none";c(d,"deploymentId",p.deploymentId);c(d,"orgId",p.orgId);c(d,"vc",e);c(d,"sid",v);c(d,"ptid",u.getPermanentId());c(d,"det",f.jsonEncode(ua));c(d,"oref",u.getOref());c(d,"pages",f.jsonEncode(A.getPages()));c(d,"sessionStart",(new Date).getTime()-A.getSessionStart());c(d,"ent",f.jsonEncode(va));ba&&c(d,"visitorName",ba);d.method="POST";d.action=b;d.target=a;document.body.appendChild(d);d.submit()}function ca(a){a?
	f.log("Server Warning: "+a):f.log("Server sent an anoymous warning.")}function wa(a){a?f.log("Server Error: "+a):f.log("Server responded with an error.");aa()}if(!window.liveAgentDeployment){window.liveAgentDeployment=!0;var n={};window.liveagent&&(n=window.liveagent);window.liveagent=n;var f={getCookie:function(a){var b=document.cookie,c=b.indexOf(a+"\x3d");if(-1==c)return null;c+=(a+"\x3d").length;a=b.indexOf(";",c);-1==a&&(a=b.length);return b.substring(c,a)},setCookie:function(a,b,c){a=a+"\x3d"+
	b+";";c&&(c=new Date,c.setFullYear(c.getFullYear()+10),a+="expires\x3d"+c.toGMTString()+";");document.cookie=a+"path\x3d/;"},addEventListener:function(a,b,c){if(a.addEventListener)a.addEventListener(b,c,!1);else if(a.attachEvent)a.attachEvent("on"+b,c,!1);else throw Error("Could not add event listener");},log:function(a){},logGroupStart:function(a){},logGroupEnd:function(){},getLanguage:function(){return"undefined"!=typeof window.navigator.language?window.navigator.language:"undefined"!=typeof window.navigator.userLanguage?window.navigator.userLanguage:""},arrayHasItem:function(a,b){if(Array.prototype.indexOf)return-1<a.indexOf(b);for(var c=0;c<a.length;c++)if(a[c]==b)return!0},jsonEncode:function(a,b,c){function e(a){g.lastIndex=0;return g.test(a)?'"'+a.replace(g,
	function(a){var b=f[a];return"string"===typeof b?b:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+a+'"'}function d(a,b){var c,g,f,B,x=w,m,h=b[a];h&&("object"===typeof h&&"function"===typeof h.toJSON)&&(h=h.toJSON(a));"function"===typeof l&&(h=l.call(b,a,h));switch(typeof h){case "string":return e(h);case "number":return isFinite(h)?String(h):"null";case "boolean":case "null":return String(h);case "object":if(!h)return"null";w+=k;m=[];if("[object Array]"===Object.prototype.toString.apply(h)){B=
	h.length;for(c=0;c<B;c+=1)m[c]=d(c,h)||"null";f=0===m.length?"[]":w?"[\n"+w+m.join(",\n"+w)+"\n"+x+"]":"["+m.join(",")+"]";w=x;return f}if(l&&"object"===typeof l){B=l.length;for(c=0;c<B;c+=1)"string"===typeof l[c]&&(g=l[c],(f=d(g,h))&&m.push(e(g)+(w?": ":":")+f))}else for(g in h)Object.prototype.hasOwnProperty.call(Object(h),g)&&(f=d(g,h))&&m.push(e(g)+(w?": ":":")+f);f=0===m.length?"{}":w?"{\n"+w+m.join(",\n"+w)+"\n"+x+"}":"{"+m.join(",")+"}";w=x;return f}}if("undefined"!==typeof window.JSON)return window.JSON.stringify(a,
	b,c);if(void 0===a||null===a)return"null";var g=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,f={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},x,w="",k="",l=b;if("number"===typeof c)for(x=0;x<c;x+=1)k+=" ";else"string"===typeof c&&(k=c);if(b&&"function"!==typeof b&&("object"!==typeof b||"number"!==typeof b.length))throw Error("Error during JSON.stringify");return d("",{"":a})},jsonDecode:function(a){a=
	String(a);if("undefined"!==typeof window.JSON)return window.JSON.parse(a);var b=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;b.lastIndex=0;b.test(a)&&(a=a.replace(b,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)}));if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return eval("("+
	a+")");throw Error("Error during JSON.parse");},getCssAnimation:function(a){var b=["Webkit","Moz","O","ms","Khtml"];if(void 0!==a.style.animationName)return"";for(var c=0;c<b.length;c++)if(void 0!==a.style[b[c]+"AnimationName"])return b[c].toLowerCase();return null}},u={getVisitCount:function(){var a=parseInt(f.getCookie("liveagent_vc"),10);return isNaN(a)?null:a},getOref:function(){return f.getCookie("liveagent_oref")},getPermanentId:function(){var a=f.getCookie("liveagent_ptid");return null!=a?
	a:""},setVisitCount:function(a){f.setCookie("liveagent_vc",a,!0)},setOref:function(a){return f.setCookie("liveagent_oref",a,!0)},setPermanentId:function(a){f.setCookie("liveagent_ptid",a,!0)}},A=new function(){function a(){return window.localStorage?window.localStorage:window.sessionStorage}function b(){var a=document.createElement("div");a.style.display="none";document.body.appendChild(a);a.id="liveagent_userdata_provider";a.addBehavior("#default#userData");a.load("liveagent");return{getItem:function(b){return a.getAttribute(b)},
	setItem:function(b,c){a.setAttribute(b,c);a.save("liveagent")},removeItem:function(b){a.removeAttribute(b);a.save("liveagent")}}}function c(){var a={};return{getItem:function(b){return a[b]},setItem:function(b,c){a[b]=c},removeItem:function(b){delete a[b]}}}function e(){g.setItem(d.SESSION_ID,v);g.setItem(d.PAGE_COUNT,"0");g.setItem(d.SESSION_START,(new Date).getTime().toString())}var d={SESSION_ID:"liveAgentSid",PAGE_COUNT:"liveAgentPc",SESSION_START:"liveAgentStart",PAGE:"liveAgentPage_",PAGE_TIME:"liveAgentPageTime_"};
	a.isSupported=function(){try{return window.localStorage||window.sessionStorage}catch(a){return!1}};b.isSupported=function(){return document.createElement("div").addBehavior};var g;g=a.isSupported()?a():b.isSupported()?b():c();this.init=function(){if(g.getItem(d.SESSION_ID)){if(g.getItem(d.SESSION_ID)!=v){g.removeItem(d.SESSION_START);for(var a=g.getItem(d.PAGE_COUNT),b=25>a?0:a-25;b<a;b++)g.removeItem(d.PAGE+b),g.removeItem(d.PAGE_TIME+b);e()}}else e();a=parseInt(g.getItem(d.PAGE_COUNT),10);25<=a&&
	(g.removeItem(d.PAGE+(a-25)),g.removeItem(d.PAGE_TIME+(a-25)));g.setItem(d.PAGE_COUNT,(a+1).toString());g.setItem(d.PAGE+a.toString(),window.location.href);g.setItem(d.PAGE_TIME+a.toString(),(new Date).getTime())};this.getPageCount=function(){return parseInt(g.getItem(d.PAGE_COUNT),10)};this.getSessionStart=function(){return g.getItem(d.SESSION_START)};this.getPages=function(){for(var a=[],b=this.getPageCount(),c=25>b?0:b-25;c<b;c++)a.unshift({location:g.getItem(d.PAGE+c.toString()),time:((new Date).getTime()-
	parseInt(g.getItem(d.PAGE_TIME+c.toString()),10)).toString()});return a};this.getCurrentPage=function(){return g.getItem(d.PAGE+(this.getPageCount()-1).toString())};this.clear=function(){g.clear()}};k.TYPE={STANDARD:"STANDARD",INVITE:"INVITE",AGENT:"AGENT"};k.EVENT={BUTTON_AVAILABLE:"BUTTON_AVAILABLE",BUTTON_UNAVAILABLE:"BUTTON_UNAVAILABLE",BUTTON_ACCEPTED:"BUTTON_ACCEPTED",BUTTON_REJECTED:"BUTTON_REJECTED"};k.prototype.init=function(a,b){this.buttonId=a;this.type=b;this.onlineState=null;this.trackers=
	[];this.language=this.prechat=this.endpoint=null};k.prototype.getType=function(){return this.type};k.prototype.getOnlineState=function(){return this.onlineState};k.prototype.setOnlineState=function(a){this.onlineState=a;for(var b=0;b<this.trackers.length;b++)this.trackers[b].setState(a)};k.prototype.addTracker=function(a){this.trackers.push(a)};k.prototype.setPrechat=function(a){this.prechat=a};k.prototype.setEndpoint=function(a){this.endpoint=a};k.prototype.getEndpoint=function(a){function b(){return(null!=
	this.endpoint?this.endpoint:p.contentServerUrl+p.chatPage)+"?language\x3d"+(this.language?this.language:"")+"#"+a}var c=null,c=null==this.prechat?b.call(this):this.prechat+"?endpoint\x3d"+encodeURIComponent(b.call(this));return p.contentServerUrl+p.prechatHandler+"?endpoint\x3d"+encodeURIComponent(c)};k.prototype.setLanguage=function(a){this.language=a};k.prototype.startChat=function(a){return this.dispatchEvent(k.EVENT.BUTTON_ACCEPTED)?(ta(this.buttonId,a),!0):!1};k.prototype.rejectChat=function(){return this.dispatchEvent(k.EVENT.BUTTON_REJECTED)?
	!0:!1};k.prototype.dispatchEvent=function(a){return da.hasOwnProperty(this.buttonId)?!1===da[this.buttonId].call(this,a)?!1:!0:!0};s.prototype.init=function(a,b){this.buttonId=a;this.element=b};s.prototype.getId=function(){return this.buttonId};s.prototype.setState=function(a){f.log("Setting state for button "+this.buttonId+" to "+(a?"online":"offline"));return l[this.buttonId].dispatchEvent(a?k.EVENT.BUTTON_AVAILABLE:k.EVENT.BUTTON_UNAVAILABLE)?!0:!1};ha.prototype=new k;R.prototype=new k;R.prototype.startChat=
	function(a,b){if(this.dispatchEvent(k.EVENT.BUTTON_ACCEPTED)){var c=this.buttonId.split("_");ta(c[1],a,c[0],b);return!0}return!1};S.prototype=new s;S.prototype.setState=function(a){s.prototype.setState.call(this,a)&&(this.element.style.display=a?"":"none")};T.prototype=new s;T.prototype.setState=function(a){s.prototype.setState.call(this,a)&&(this.element.style.display=a?"none":"")};var ea=!1,F=null,fa={},G={};h.prototype=new k;h.RENDERER={Slide:{renderClass:I},Fade:{renderClass:J},Appear:{renderClass:L},
	Custom:{renderClass:D}};h.START_POSITION={TopLeft:{xPercent:0,xPosition:-1,xOffset:-1,yPercent:0,yPosition:-1,yOffset:-1},TopLeftTop:{xPercent:0,xPosition:0,xOffset:1,yPercent:0,yPosition:-1,yOffset:-1},Top:{xPercent:0.5,xPosition:-0.5,xOffset:0,yPercent:0,yPosition:-1,yOffset:-1},TopRightTop:{xPercent:1,xPosition:-1,xOffset:-1,yPercent:0,yPosition:-1,yOffset:-1},TopRight:{xPercent:1,xPosition:0,xOffset:1,yPercent:0,yPosition:-1,yOffset:-1},TopRightRight:{xPercent:1,xPosition:0,xOffset:1,yPercent:0,
	yPosition:0,yOffset:1},Right:{xPercent:1,xPosition:0,xOffset:1,yPercent:0.5,yPosition:-0.5,yOffset:0},BottomRightRight:{xPercent:1,xPosition:0,xOffset:1,yPercent:1,yPosition:-1,yOffset:-1},BottomRight:{xPercent:1,xPosition:0,xOffset:1,yPercent:1,yPosition:0,yOffset:1},BottomRightBottom:{xPercent:1,xPosition:-1,xOffset:-1,yPercent:1,yPosition:0,yOffset:1},Bottom:{xPercent:0.5,xPosition:-0.5,xOffset:0,yPercent:1,yPosition:0,yOffset:1},BottomLeftBottom:{xPercent:0,xPosition:0,xOffset:1,yPercent:1,yPosition:0,
	yOffset:1},BottomLeft:{xPercent:0,xPosition:-1,xOffset:-1,yPercent:1,yPosition:0,yOffset:1},BottomLeftLeft:{xPercent:0,xPosition:-1,xOffset:-1,yPercent:1,yPosition:-1,yOffset:-1},Left:{xPercent:0,xPosition:-1,xOffset:-1,yPercent:0.5,yPosition:-0.5,yOffset:0},TopLeftLeft:{xPercent:0,xPosition:-1,xOffset:-1,yPercent:0,yPosition:0,yOffset:1}};h.END_POSITION={TopLeft:{xPercent:0,xOffset:1,yPercent:0,yOffset:1},Top:{xPercent:0.5,xOffset:0,yPercent:0,yOffset:1},TopRight:{xPercent:1,xOffset:-1,yPercent:0,
	yOffset:1},Left:{xPercent:0,xOffset:1,yPercent:0.5,yOffset:0},Center:{xPercent:0.5,xOffset:0,yPercent:0.5,yOffset:0},Right:{xPercent:1,xOffset:-1,yPercent:0.5,yOffset:0},BottomLeft:{xPercent:0,xOffset:1,yPercent:1,yOffset:-1},Bottom:{xPercent:0.5,xOffset:0,yPercent:1,yOffset:-1},BottomRight:{xPercent:1,xOffset:-1,yPercent:1,yOffset:-1}};h.prototype.setRules=function(a,b){if(a&&b){for(var c in a){var e=a[c],d=null;switch(e.type){case m.TYPE.NUMBER_OF_PAGE_VIEWS:d=new M(e.order,this.buttonId,A.getPageCount(),
	e.operator,parseInt(e.value,10));break;case m.TYPE.URL_MATCH:d=new M(e.order,this.buttonId,A.getCurrentPage(),e.operator,e.value);break;case m.TYPE.SECONDS_ON_PAGE:d=new N(e.order,this.buttonId,(new Date).getTime(),e.operator,1E3*parseInt(e.value,10));break;case m.TYPE.SECONDS_ON_SITE:d=new N(e.order,this.buttonId,parseInt(A.getSessionStart(),10),e.operator,1E3*parseInt(e.value,10));break;case m.TYPE.CUSTOM_VARIABLE:d=new U(e.order,this.buttonId,e.name,e.operator,e.value),G.hasOwnProperty(e.name)||
	(G[e.name]=[]),G[e.name].push(this.buttonId)}null!=d&&this.addRule(d)}this.filterLogic=b;this.ruleTree=E(b)}};h.prototype.setOnlineState=function(a){!a&&null!==this.inviteTimeout&&(clearTimeout(this.inviteTimeout),this.inviteTimeout=null);!a&&null!==this.autoRejectTimeout&&(clearTimeout(this.autoRejectTimeout),this.autoRejectTimeout=null);k.prototype.setOnlineState.call(this,a)};h.prototype.isActive=function(){return this.active};h.prototype.setActive=function(a){this.active=a};h.prototype.addTracker=
	function(a){this.trackers=[];k.prototype.addTracker.call(this,a)};h.prototype.getTracker=function(){if(1!=this.trackers.length)throw Error("InviteButtons should have exactly 1 tracker");return this.trackers[0]};h.prototype.startChat=function(a){return this.active&&k.prototype.startChat.call(this,a)?(this.getTracker().accept(),!0):!1};h.prototype.rejectChat=function(){return this.active&&k.prototype.rejectChat.call(this)?(this.getTracker().reject(),!0):!1};h.prototype.trigger=function(){if(f.getCookie("liveagent_invite_rejected_"+
	this.buttonId))return!1;var a=!0;null!=this.ruleTree&&(f.logGroupStart("Invite "+this.buttonId+" Rule Evaluation"),f.log("Filter Logic: "+this.filterLogic),a=this.ruleTree.evaluate(this),f.logGroupEnd());if(!a&&null!=this.inviteDelay){var b=this;this.inviteTimeout=window.setTimeout(function(){b.setOnlineState(!0)},this.inviteDelay);this.inviteDelay=null}return a};h.prototype.addRule=function(a){this.rules[a.getId()]=a};h.prototype.getRule=function(a){return this.rules[a]};h.prototype.getInviteDelay=
	function(){return this.inviteDelay};h.prototype.setInviteDelay=function(a){f.log("Setting invite delay to: "+a);this.inviteDelay=a};h.prototype.setAutoRejectTimeout=function(a){this.autoRejectTimeout=a};z.prototype=new s;z.prototype.setState=function(a){a&&!ea&&t(this.buttonId).trigger()&&s.prototype.setState.call(this,!0)?(ea=!0,F=this.buttonId,this.renderer.render()):!a&&(t(this.buttonId).isActive()&&s.prototype.setState.call(this,!1))&&(ea=!1,this.remove(!0))};z.prototype.renderFinish=function(){t(this.buttonId).setActive(!0);
	if(-1!=this.rejectTime){var a=this.buttonId;t(this.buttonId).setAutoRejectTimeout(window.setTimeout(function(){t(a).rejectChat()},1E3*this.rejectTime))}this.renderer.renderFinish()};z.prototype.accept=function(){this.hasInviteAfterAccept||f.setCookie("liveagent_invite_rejected_"+this.buttonId,!0,!1);this.remove(!1)};z.prototype.reject=function(){this.hasInviteAfterReject||f.setCookie("liveagent_invite_rejected_"+this.buttonId,!0,!1);this.remove(!0)};z.prototype.remove=function(a){t(this.buttonId).setActive(!1);
	this.renderer.remove(a)};z.prototype.removeFinish=function(){this.renderer.remove(!1)};r.prototype.init=function(a,b,c,e){window.innerWidth?this.realWidth=window.innerWidth:document.documentElement&&document.documentElement.clientWidth?this.realWidth=document.documentElement.clientWidth:document.body&&(this.realWidth=document.body.clientWidth);window.innerHeight?this.realHeight=window.innerHeight:document.documentElement&&document.documentElement.clientHeight?this.realHeight=document.documentElement.clientHeight:
	document.body&&(this.realHeight=document.body.clientHeight);this.offset=25;this.buttonId=a;this.animationPrefix=f.getCssAnimation(b);this.element=b;this.element.style.position=null!==this.animationPrefix?"fixed":"absolute";this.element.style.left="-1000px";this.element.style.top="-1000px";this.element.style.zIndex="10000";this.element.style.display="";this.width=this.element.offsetWidth;this.height=this.element.offsetHeight;this.startPosition=c;this.endPosition=e};r.prototype.render=function(){this.element.style.display=
	""};r.prototype.renderFinish=function(){};r.prototype.remove=function(a){this.element.style.left="-1000px";this.element.style.top="-1000px"};r.prototype.addRenderListeners=function(){var a=this.buttonId,b="AnimationIteration",c="AnimationEnd";""==this.animationPrefix?(b=b.toLowerCase(),c=c.toLowerCase()):(b=this.animationPrefix+b,c=this.animationPrefix+c);f.addEventListener(this.element,b,function(){C(a).renderFinish()});f.addEventListener(this.element,c,function(){C(a).removeFinish()})};I.prototype=
	new r;I.prototype.render=function(){r.prototype.addRenderListeners.call(this);var a=this.width*this.startPosition.xPosition+this.offset*this.startPosition.xOffset,b=this.height*this.startPosition.yPosition+this.offset*this.startPosition.yOffset,c=-1*this.width*this.endPosition.xPercent+this.offset*this.endPosition.xOffset,e=-1*this.height*this.endPosition.yPercent+this.offset*this.endPosition.yOffset,d="";""!==this.animationPrefix&&(d="-"+this.animationPrefix+"-");var g=document.createElement("style");
	g.innerHTML="@"+d+"keyframes slide"+this.buttonId+"{from { margin-left: "+a+"px; margin-top: "+b+"px; left: "+100*this.startPosition.xPercent+"%; top: "+100*this.startPosition.yPercent+"%; }to { margin-left: "+c+"px; margin-top: "+e+"px; left: "+100*this.endPosition.xPercent+"%; top: "+100*this.endPosition.yPercent+"%; }}";document.getElementsByTagName("head")[0].appendChild(g);this.element.style[d+"animation-name"]="slide"+this.buttonId;this.element.style[d+"animation-duration"]="1s";this.element.style[d+
	"animation-iteration-count"]="2";this.element.style[d+"animation-direction"]="alternate";this.element.style[d+"animation-timing-function"]="ease-in-out";this.element.style.setProperty(d+"animation-name","slide"+this.buttonId,"");this.element.style.setProperty(d+"animation-duration","1s","");this.element.style.setProperty(d+"animation-iteration-count","2","");this.element.style.setProperty(d+"animation-direction","alternate","");this.element.style.setProperty(d+"animation-timing-function","ease-in-out",
	"");r.prototype.render.call(this)};I.prototype.renderFinish=function(){var a="";""!==this.animationPrefix&&(a="-"+this.animationPrefix+"-");this.element.style[a+"animation-play-state"]="paused";this.element.style.setProperty(a+"animation-play-state","paused","")};I.prototype.remove=function(a){var b="";""!==this.animationPrefix&&(b="-"+this.animationPrefix+"-");a?(this.element.style[b+"animation-play-state"]="running",this.element.style.setProperty(b+"animation-play-state","running","")):(this.element.style[b+
	"animation-name"]="",this.element.style.setProperty(b+"animation-name","",""),r.prototype.remove.call(this,a))};J.prototype=new r;J.prototype.render=function(){r.prototype.addRenderListeners.call(this);var a="";""!==this.animationPrefix&&(a="-"+this.animationPrefix+"-");var b=document.createElement("style");b.innerHTML="@"+a+"keyframes fade"+this.buttonId+"{from { opacity: 0; }to { opacity: 1; }}";document.getElementsByTagName("head")[0].appendChild(b);this.element.style[a+"animation-name"]="fade"+
	this.buttonId;this.element.style[a+"animation-duration"]="1s";this.element.style[a+"animation-iteration-count"]="2";this.element.style[a+"animation-direction"]="alternate";this.element.style[a+"animation-timing-function"]="ease-in-out";this.element.style.setProperty(a+"animation-name","fade"+this.buttonId,"");this.element.style.setProperty(a+"animation-duration","1s","");this.element.style.setProperty(a+"animation-iteration-count","2","");this.element.style.setProperty(a+"animation-direction","alternate",
	"");this.element.style.setProperty(a+"animation-timing-function","ease-in-out","");this.element.style.marginLeft=-1*this.width*this.endPosition.xPercent+this.offset*this.endPosition.xOffset+"px";this.element.style.left=100*this.endPosition.xPercent+"%";this.element.style.marginTop=-1*this.height*this.endPosition.yPercent+this.offset*this.endPosition.yOffset+"px";this.element.style.top=100*this.endPosition.yPercent+"%";r.prototype.render.call(this)};J.prototype.renderFinish=function(){var a="";""!==
	this.animationPrefix&&(a="-"+this.animationPrefix+"-");this.element.style[a+"animation-play-state"]="paused";this.element.style.setProperty(a+"animation-play-state","paused","")};J.prototype.remove=function(a){var b="";""!==this.animationPrefix&&(b="-"+this.animationPrefix+"-");a?(this.element.style[b+"animation-play-state"]="running",this.element.style.setProperty(b+"animation-play-state","running",""),this.element.style.opacity=0):(this.element.style[b+"animation-name"]="",this.element.style.setProperty(b+
	"animation-name","",""),r.prototype.remove.call(this,a))};L.prototype=new r;L.prototype.render=function(){this.element.style.marginLeft=-1*this.width*this.endPosition.xPercent+this.offset*this.endPosition.xOffset+"px";this.element.style.left=100*this.endPosition.xPercent+"%";this.element.style.marginTop=-1*this.height*this.endPosition.yPercent+this.offset*this.endPosition.yOffset+"px";this.element.style.top=100*this.endPosition.yPercent+"%";r.prototype.render.call(this);C(this.buttonId).renderFinish()};
	L.prototype.remove=function(a){a?C(this.buttonId).removeFinish():r.prototype.remove.call(this,a)};D.prototype=new r;D.prototype.render=function(){C(this.buttonId).renderFinish()};D.prototype.renderFinish=function(){};D.prototype.remove=function(a){a&&C(this.buttonId).removeFinish()};m.TYPE={NUMBER_OF_PAGE_VIEWS:"NUMBER_OF_PAGE_VIEWS",URL_MATCH:"URL_MATCH",SECONDS_ON_PAGE:"SECONDS_ON_PAGE",SECONDS_ON_SITE:"SECONDS_ON_SITE",CUSTOM_VARIABLE:"CUSTOM_VARIABLE"};m.OPERATOR={EQUALS:"EQUALS",NOT_EQUAL:"NOT_EQUAL",
	START_WITH:"START_WITH",CONTAINS:"CONTAINS",NOT_CONTAIN:"NOT_CONTAIN",LESS_THAN:"LESS_THAN",GREATER_THAN:"GREATER_THAN",LESS_OR_EQUAL:"LESS_OR_EQUAL",GREATER_OR_EQUAL:"GREATER_OR_EQUAL"};m.prototype.init=function(a,b,c,e,d){this.ruleId=a;this.buttonId=b;this.compareFrom=c;this.operator=e;this.compareTo=d};m.prototype.getId=function(){return this.ruleId};m.prototype.evaluate=function(a,b){switch(this.operator){case m.OPERATOR.EQUALS:return f.log("Evaluate: "+a+" \x3d\x3d "+b),a==b;case m.OPERATOR.NOT_EQUAL:return f.log("Evaluate: "+
	a+" !\x3d "+b),a!=b;case m.OPERATOR.START_WITH:return f.log("Evaluate: "+a+" indexOf "+b+" \x3d\x3d 0"),0==a.indexOf(b);case m.OPERATOR.CONTAINS:return f.log("Evaluate: "+a+" indexOf "+b+" !\x3d -1"),-1!=a.indexOf(b);case m.OPERATOR.NOT_CONTAIN:return f.log("Evaluate: "+a+" indexOf "+b+" \x3d\x3d -1"),-1==a.indexOf(b);case m.OPERATOR.LESS_THAN:return f.log("Evaluate: "+parseFloat(a)+" \x3c "+parseFloat(b)),parseFloat(a)<parseFloat(b);case m.OPERATOR.GREATER_THAN:return f.log("Evaluate: "+parseFloat(a)+
	" \x3e "+parseFloat(b)),parseFloat(a)>parseFloat(b);case m.OPERATOR.LESS_OR_EQUAL:return f.log("Evaluate: "+parseFloat(a)+" \x3c\x3d "+parseFloat(b)),parseFloat(a)<=parseFloat(b);case m.OPERATOR.GREATER_OR_EQUAL:return f.log("Evaluate: "+parseFloat(a)+" \x3e\x3d "+parseFloat(b)),parseFloat(a)>=parseFloat(b)}};M.prototype=new m;M.prototype.evaluate=function(){f.log("Evaluating StandardInviteRule");return m.prototype.evaluate.call(this,this.compareFrom,this.compareTo)};N.prototype=new m;N.prototype.evaluate=
	function(){f.log("Evaluating TimerInviteRule");var a=(new Date).getTime()-this.compareFrom,b=m.prototype.evaluate.call(this,a,this.compareTo);!b&&a<=this.compareTo&&(a=this.compareTo-a,(null==t(this.buttonId).getInviteDelay()||a<t(this.buttonId).getInviteDelay())&&t(this.buttonId).setInviteDelay(a));return b};U.prototype=new m;U.prototype.evaluate=function(){if(fa.hasOwnProperty(this.compareFrom))return f.log("Evaluating CustomInviteRule"),m.prototype.evaluate.call(this,fa[this.compareFrom].toString(),
	this.compareTo);f.log("CustomInviteRule evaluation failed due to missing custom variable");return!1};var ja=0;y.prototype.init=function(a,b){this.left=a;this.right=b};y.prototype.evaluate=function(a){return!1};Y.prototype=new y;Y.prototype.evaluate=function(a){f.log("Evaluating Atom Node: "+this.ruleId);return a.getRule(this.ruleId).evaluate()};V.prototype=new y;V.prototype.evaluate=function(a){f.logGroupStart("Evaluating And Node");a=this.left.evaluate(a)&&this.right.evaluate(a);f.logGroupEnd();
	return a};W.prototype=new y;W.prototype.evaluate=function(a){f.logGroupStart("Evaluating Or Node");a=this.left.evaluate(a)||this.right.evaluate(a);f.logGroupEnd();return a};X.prototype=new y;X.prototype.evaluate=function(a){f.logGroupStart("Evaluating Not Node");a=!this.left.evaluate(a);f.logGroupEnd();return a};ka.prototype.toJSON=function(){return{label:this.getLabel(),value:this.getValue(),displayToAgent:this.getDisplayToAgent(),entityMaps:this.getMapper().getEntityMaps(),transcriptFields:this.getMapper().getTranscriptFields(),
	doKnowledgeSearch:this.getDoKnowledgeSearch()}};Z.prototype.map=function(a,b,c,e,d){"undefined"==typeof c&&(c=!0);"undefined"==typeof e&&(e=!0);"undefined"==typeof d&&(d=!0);this.getEntityMaps().push(new la(a,b,c,e,d))};Z.prototype.saveToTranscript=function(a){this.getTranscriptFields().push(a)};la.prototype.toJSON=function(){return{entityName:this.getEntityName(),fieldName:this.getFieldName(),fastFill:this.getFastFill(),autoQuery:this.getAutoQuery(),exactMatch:this.getExactMatch()}};var H={};n._=
	H;H.handlePing=function(a){q.connection.handlePing(a)};H.error=function(a){a?f.log("Server Error: "+a):f.log("Server responded with an error.");aa()};H.warning=function(a){a?f.log("Server Warning: "+a):f.log("Server sent an anoymous warning.")};H.setNewPtid=function(a){u.setPermanentId(a)};H.clearStorage=function(){A.clear()};n.init=function(a,b,c){if("string"!=typeof a||"string"!=typeof b||"string"!=typeof c)throw Error("The parameters to init must be strings");p.url=a;p.deploymentId=b;p.orgId=c;
	f.log("System Initialized. Waiting for the DOM to be ready");"complete"===document.readyState?setTimeout(O,1):document.addEventListener?(document.addEventListener("DOMContentLoaded",O,!1),window.addEventListener("load",O,!1)):window.attachEvent?window.attachEvent("onload",O):f.log("No available event model. Exiting.")};n.getSid=function(){return v};n.enableLogging=function(){Q=!0};n.setLocation=function(a){};n.setChatWindowWidth=function(a){p.chatWindowWidth=a};n.setChatWindowHeight=function(a){p.chatWindowHeight=
	a};n.disconnect=function(){aa()};n.startChat=function(a,b,c){(b?K(a,b):l[a]).startChat("liveagent"+Math.round(1E5*Math.random())+(new Date).getTime(),c)};n.startChatWithWindow=function(a,b,c,e){(c?K(a,c):l[a]).startChat(b,e)};n.rejectChat=function(a){l[a].rejectChat()};n.showWhenOnline=function(a,b,c){if(q.connection.isRunning())throw Error("You cannot add a button after page initialization.");a=c?K(a,c):ia(a);a.addTracker(new S(a.buttonId,b))};n.showWhenOffline=function(a,b,c){if(q.connection.isRunning())throw Error("You cannot add a button after page initialization.");
	a=c?K(a,c):ia(a);a.addTracker(new T(a.buttonId,b))};n.addCustomDetail=function(a,b,c){if(q.connection.isRunning())throw Error("You cannot add a detail after page initialization.");if("undefined"==typeof a||"undefined"==typeof b||null===a||null===b)throw Error("CustomDetail contains null value");var e=new ka(a,b,c);ua.push(e);var d={map:function(a,b,c,f,h){if("undefined"==typeof a||null===a||"undefined"==typeof b||null===b||null===c||null===f||null===h)throw Error("CustomDetail.map contains null value");
	e.getMapper().map(a,b,c,f,h);return d},saveToTranscript:function(a){if("undefined"==typeof a||null===a)throw Error("CustomDetail.saveToTranscript contains null value");e.getMapper().saveToTranscript(a);return d},doKnowledgeSearch:function(){e.setDoKnowledgeSearch();return d}};return d};n.setName=function(a){if(q.connection.isRunning())throw Error("You cannot set the name after page initialization.");ba=a};n.addButtonEventHandler=function(a,b){"function"==typeof b&&(da[a]=b)};n.BUTTON_EVENT=k.EVENT;
	n.setCustomVariable=function(a,b){fa[a]=b;if(G.hasOwnProperty(a))for(var c=0;c<G[a].length;c++){var e=t(G[a][c]);e.getOnlineState()&&e.setOnlineState(!0)}};n.findOrCreate=function(a){if(q.connection.isRunning())throw Error("You cannot find or create after page initialization.");var b=new ma(a);va.push(b);var c={map:function(a,d,g,f,h){b.getEntityMapper().map(a,d,g,f,h);return c},saveToTranscript:function(a){b.setSaveTranscript(a);return c},showOnCreate:function(){b.setShowOnCreate(!0);return c},linkToEntity:function(a,
	d){if(ga.hasOwnProperty(a)&&ga[a]==b.getEntityName())return ca("Warning: Recursive links detected, skip link "+b.getEntityName()+" to "+a),c;b.setLinkToEntityName(a);b.setLinkToEntityField(d);ga[b.getEntityName()]=a;return c}};return c};var q={VisitorMessage:{ERROR:"Error",WARNING:"Warning"},SystemMessage:{ASYNC_RESULT:"AsyncResult",SWITCH_SERVER:"SwitchServer"}};(function(){var a=null,b=!1,c=null,e=null,d={};(function(){d.send=function(b,f){if(null!==c)d.onError.call(window,"Did not handle response before sending another message");
	else{"undefined"==typeof f&&(f={});var h="Visitor",k="",l=!1;1<b.length?(h="System",k="MultiNoun",f.nouns="",l=!0):k=b[0].getName();h=p.url+"/rest/"+h+"/"+k+".jsonp?";for(k=0;k<b.length;k++){l&&(f.nouns+=b[k].getName()+",");f[b[k].getName()+".prefix"]="Visitor";for(var m in b[k].getData())b[k].getData().hasOwnProperty(m)&&(f[b[k].getName()+"."+m]=b[k].getData()[m])}l&&(f.nouns=f.nouns.substr(0,f.nouns.length-1));for(var n in f)f.hasOwnProperty(n)&&(h+=n+"\x3d"+f[n]+"\x26");h+="callback\x3d"+a;h+=
	"\x26deployment_id\x3d"+p.deploymentId;h+="\x26org_id\x3d"+p.orgId;h+="\x26version\x3d31";l=document.createElement("script");l.type="text/javascript";l.src=h;c=document.body.appendChild(l);e=window.setTimeout(function(){d.onError.call(window,"Server failed to respond.")},p.pingTimeout)}};d.handlePing=function(a){e&&(clearTimeout(e),e=null);b=!0;a=a.messages;for(var f=0;f<a.length;f++)d.messageHandler.call(window,a[f].type,a[f].message);d.onSuccess.call(window);null!==c&&(document.body.removeChild(c),
	c=null)};d.messageHandler=function(a,b){};d.onSuccess=function(){};d.onError=function(a){};d.isRunning=function(){return b};d.setIsRunning=function(a){b=a};d.setCallback=function(b){a=b}})();q.connection=d;q.Noun=function(a,b){this.getName=function(){return a};this.getData=function(){return b}}})();ma.prototype.toJSON=function(){return{entityName:this.getEntityName(),saveToTranscript:this.getSaveTranscript(),showOnCreate:this.getShowOnCreate(),linkToEntityName:this.getLinkToEntityName(),linkToEntityField:this.getLinkToEntityField(),
	entityFieldsMaps:this.getEntityMapper().getEntityFieldsMaps()}};na.prototype.map=function(a,b,c,e,d){"undefined"==typeof c&&(c=!0);"undefined"==typeof e&&(e=!0);"undefined"==typeof d&&(d=!0);this.getEntityFieldsMaps().push(new oa(a,b,c,e,d))};oa.prototype.toJSON=function(){return{fieldName:this.getFieldName(),label:this.getLabel(),doFind:this.getDoFind(),isExactMatch:this.getIsExactMatch(),doCreate:this.getDoCreate()}};var v=f.getCookie("liveagent_sid"),$=f.getCookie("liveagent_chatted"),pa=!1,Q=
	!1,l={},ua=[],va=[],ba=null,da={},P=null,ga={},p={url:null,deploymentId:null,orgId:null,pingRate:null,pingTimeout:5E3,chatWindowWidth:482,chatWindowHeight:350,contentServerUrl:null,chatPage:"/s/chat",prechatHandler:"/s/prechatVisitor"};q.connection.messageHandler=function(a,b){switch(a){case "VisitorId":b.sessionId&&(f.log("Received new session ID"),v=b.sessionId,document.cookie="liveagent_sid\x3d"+encodeURIComponent(v)+";path\x3d/;",null!=u.getVisitCount()&&u.setVisitCount(u.getVisitCount()+1),u.getPermanentId()||
	u.setPermanentId(v));break;case "Settings":A.init();f.log("Ping rate set to "+b.pingRate+"ms");p.pingRate=b.pingRate;p.contentServerUrl=b.contentServerUrl;for(var c=0;c<b.buttons.length;c++)switch(b.buttons[c].type){case "ToAgent":case "Standard":var e=b.buttons[c],d=l[e.id];d&&sa(d,e);break;case "Invite":var e=b.buttons[c],g=null,g=e.inviteImageUrl?xa(e.id,e.inviteImageUrl,e.inviteImageWidth,e.inviteImageHeight):document.getElementById("liveagent_invite_button_"+e.id);null==g?ca("Warning: Button "+
	e.id+" disabled because HTML element was not found"):(d=t(e.id),d.addTracker(new z(e.id,g,e.inviteRenderer,e.inviteStartPosition,e.inviteEndPosition,e.hasInviteAfterAccept,e.hasInviteAfterReject,e.inviteRejectTime)),g=f.jsonDecode(e.inviteRules),d.setRules(g.rules,g.filter),sa(d,e))}break;case "Availability":c={};for(e=0;e<b.results.length;e++)(d=l[b.results[e].id])&&(c[b.results[e].id]={button:d,isAvailable:b.results[e].isAvailable});null!=F&&c.hasOwnProperty(F)&&(c[F].button.setOnlineState(c[F].isAvailable),
	delete c[F]);for(g in c)c.hasOwnProperty(g)&&c[g].button.setOnlineState(c[g].isAvailable);break;case q.VisitorMessage.WARNING:ca(b.text);break;case q.VisitorMessage.ERROR:wa(b.text);break;case q.SystemMessage.SWITCH_SERVER:c=b.newUrl;if("string"===typeof c)p.url=c,f.log("Received updated LiveAgent server url: "+c+"! Consider updating this site's deployment code.");else throw Error("Trying to set invalid LiveAgent server url: "+c);v=null}};q.connection.onSuccess=function(){null!==P&&clearTimeout(P);
	P=window.setTimeout(ya,p.pingRate)};q.connection.onError=function(a){wa(a)}}})();

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
	/* jshint ignore:end */


/***/ },
/* 138 */
/***/ function(module, exports, __webpack_require__) {

	var __WEBPACK_AMD_DEFINE_RESULT__;!(__WEBPACK_AMD_DEFINE_RESULT__ = function(require, exports, module) {

	  'use strict';

	  var $            = __webpack_require__(2),
	      ROUTES       = __webpack_require__(9),
	      toRequestUrl = __webpack_require__(12).toRequestUrl0;

	  // Called on document load to grab the geodata info
	  function getGeoData(callback) {

	    var cachedGeoData = null;

	    // Get geo info if in local storage & determine if cache is not expired
	    if (localStorage && localStorage.getItem('lnGeoInfo')) {
	      // Read geodata localstorage into JSON object
	      cachedGeoData = JSON.parse(localStorage.getItem('lnGeoInfo'));

	      var expirationDate = new Date(cachedGeoData.date),
	      today = new Date();

	      // If cached info is expired, set cachedGeoData to null
	      if (expirationDate < today)
	        cachedGeoData = null;
	    }

	    if (cachedGeoData) {
	      var data = {country_code : cachedGeoData.country_code, region : cachedGeoData.region };
	      // Send data to callback
	      callback(data);
	    }
	    else { // Geo info not in local storage or local storage not supported
	      var url = toRequestUrl(ROUTES.GEOLOCATION_API);

	      $.getJSON(url, function(data) {
	         cacheGeoData(data);
	         callback(data);
	      })
	      .error(function() {
	        // If geodata query fails, default to US-Americas and dont cache value
	        var geoData = {"country_code" : "US", "region" : "Americas"};
	        callback(geoData);
	      });
	    }
	  }

	  // Write geodata to local storage to prevent unnecesary call to geo info endpoint
	  function cacheGeoData(data) {

	    if (localStorage){
	      var now =  new Date(),
	      tomorrow = new Date(now.getTime() + 24 * 60 * 60 * 1000),
	      geoObject = {country_code: data.country_code, region: data.region, date: tomorrow};
	      localStorage.setItem("lnGeoInfo", JSON.stringify(geoObject));
	    }
	  }

	   module.exports = getGeoData;

	}.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));

/***/ }
/******/ ]);