PageSourceSearch

https://cap-com.org/sites/default/files/js/js_6PoV_2tbr0vfDtfi406N…SRmwoI4u1MIa7hS-GkjZpEhnaFRNNcz1__p3H-WdOLo

js cap-com.org collected 2026-10-02 05:51:45 UTC 1,378,794 bytes, 40,095 lines download raw bytes

vendor: 4,711 bytes, lines 1-7
1/* @license GPL-2.0-or-later https://git.drupalcode.org/project/once/-/raw/v1.0.1/LICENSE.md */
2/*! @drupal/once - v1.0.1 - 2021-06-12 */
3var once=function(){"use strict";var n=/[\11\12\14\15\40]+/,e="data-once",t=document;function r(n,t,r){return n[t+"Attribute"](e,r)}function o(e){if("string"!=typeof e)throw new TypeError("once ID must be a string");if(""===e||n.test(e))throw new RangeError("once ID must not be empty or contain spaces");return'[data-once~="'+e+'"]'}function u(n){if(!(n instanceof Element))throw new TypeError("The element must be an instance of Element");return!0}function i(n,e){void 0===e&&(e=t);var r=n;if(null===n)r=[];else{if(!n)throw new TypeError("Selector must not be empty");"string"!=typeof n||e!==t&&!u(e)?n instanceof Element&&(r=[n]):r=e.querySelectorAll(n)}return Array.prototype.slice.call(r)}function c(n,e,t){return e.filter((function(e){var r=u(e)&&e.matches(n);return r&&t&&t(e),r}))}function f(e,t){var o=t.add,u=t.remove,i=[];r(e,"has")&&r(e,"get").trim().split(n).forEach((function(n){i.indexOf(n)<0&&n!==u&&i.push(n)})),o&&i.push(o);var c=i.join(" ");r(e,""===c?"remove":"set",c)}function a(n,e,t){return c(":not("+o(n)+")",i(e,t),(function(e){return f(e,{add:n})}))}return a.remove=function(n,e,t){return c(o(n),i(e,t),(function(e){return f(e,{remove:n})}))},a.filter=function(n,e,t){return c(o(n),i(e,t))},a.find=function(n,e){return i(n?o(n):"[data-once]",e)},a}();
4
5;
6/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
7window.drupalTranslations={"strings":{"":{"An AJAX HTTP error occurred.":"Une erreur HTTP AJAX s\u0027est produite.","HTTP Result Code: !status":"Code de statut HTTP : !status","An AJAX HTTP request terminated abnormally.":"Une requ\u00eate HTTP AJAX s\u0027est termin\u00e9e anormalement.","Debugging information follows.":"Informations de d\u00e9bogage ci-dessous.","Path: !uri":"Chemin : !uri","StatusText: !statusText":"StatusText: !statusText","ResponseText: !responseText":"ResponseText : !responseText","ReadyState: !readyState":"ReadyState : !readyState","CustomMessage: !customMessage":"Message personnalis\u00e9 : !customMessage","Please wait...":"Veuillez patienter...","The response failed verification so will not be processed.":"La v\u00e9rification de la r\u00e9ponse \u00e0 \u00e9chou\u00e9e, elle ne sera pas trait\u00e9e.","The callback URL is not local and not trusted: !url":"L\u0027URL de retour n\u0027est pas locale et n\u0027est pas de confiance : !url","Changed":"Modifi\u00e9","Processing...":"En cours de traitement...","An error occurred during the execution of the Ajax response: !error":"Une erreur est survenue durant l\u0027ex\u00e9cution la r\u00e9ponse Ajax: !error","Hide":"Masquer","Show":"Afficher","List additional actions":"Lister les actions suppl\u00e9mentaires","New revision":"Nouvelle version","No revision":"Aucune version","Needs to be updated":"N\u00e9cessite une mise \u00e0 jour","Does not need to be updated":"Ne n\u00e9cessite aucune mise \u00e0 jour","Flag other translations as outdated":"Marquer les autres traductions comme p\u00e9rim\u00e9es","Do not flag other translations as outdated":"Ne pas marquer les autres traductions comme p\u00e9rim\u00e9es","Edit":"Modifier","Edit machine name":"Modifier le nom machine","Status message":"Message d\u0027\u00e9tat","Error message":"Message d\u0027erreur","Warning message":"Message d\u0027avertissement","Re-order rows by numerical weight instead of dragging.":"R\u00e9-ordonner les lignes avec des poids num\u00e9riques plut\u00f4t qu\u0027en les d\u00e9pla\u00e7ant.","Show row weights":"Afficher le poids des lignes","Hide row weights":"Cacher le poids des lignes","Drag to re-order":"Cliquer-d\u00e9poser pour r\u00e9-organiser","You have unsaved changes.":"Vous avez des changements non enregistr\u00e9s.","Show all columns":"Montrer toutes les colonnes","Hide lower priority columns":"Cacher les colonnes de plus faible priorit\u00e9","Show table cells that were hidden to make the table fit within a small screen.":"Montrer les cellules de tableau qui ont \u00e9t\u00e9 cach\u00e9es pour que le tableau rentre dans un petit \u00e9cran.","Select all rows in this table":"S\u00e9lectionner toutes les lignes du tableau","Deselect all rows in this table":"D\u00e9s\u00e9lectionner toutes les lignes du tableau","(active tab)":"(onglet actif)","Not restricted":"Non restreint","Restricted to certain pages":"R\u00e9serv\u00e9 \u00e0 certaines pages","The block cannot be placed in this region.":"Le bloc ne peut pas \u00eatre plac\u00e9 dans cette r\u00e9gion.","Open":"Ouvert","Close":"Fermer","@action @title configuration options":"options de configuration @action @title","Tabbing is no longer constrained by the C
7ontextual module.":"La tabulation n\u0027est plus contrainte par le module Contextual.","Tabbing is constrained to a set of @contextualsCount and the edit mode toggle.":"La tabulation est contrainte par un ensemble de @contextualsCount et l\u0027activation\/d\u00e9saction du mode d\u0027\u00e9dition.","Press the esc key to exit.":"Pressez la touche Echap pour quitter.","@count contextual link\u0003@count contextual links":"@count lien contextuel\u0003@count liens contextuels","Changing the text format to %text_format will permanently remove content that is not allowed in that text format.\u003Cbr\u003E\u003Cbr\u003ESave your changes before switching the text format to avoid losing data.":"Basculer le format de texte en %text_format retirera d\u00e9finitivement le contenu qui n\u0027est pas autoris\u00e9 dans ce format de texte.\u003Cbr\u003E\u003Cbr\u003EPour \u00e9viter de perdre des donn\u00e9es, enregistrez vos changements avant de basculer le format de texte.","Change text format?":"Changer le format de texte ?","Continue":"Continuer","Cancel":"Annuler","The selected file %filename cannot be uploaded. Only files with the following extensions are allowed: %extensions.":"Le fichier s\u00e9lectionn\u00e9 %filename ne peut pas \u00eatre transf\u00e9r\u00e9. Seuls les fichiers avec les extensions suivantes sont autoris\u00e9s : %extensions.","Enabled":"Activ\u00e9","Disabled":"D\u00e9sactiv\u00e9","Based on the text editor configuration, these tags have automatically been added: \u003Cstrong\u003E@tag-list\u003C\/strong\u003E.":"Bas\u00e9 sur la configuration de l\u0027\u00e9diteur de texte, ces balises ont automatiquement \u00e9t\u00e9 ajout\u00e9es : \u003Cstrong\u003E@tag-list\u003C\/strong\u003E.","Hide description":"Masquer la description","Show description":"Afficher la description","Changes made in this table will not be saved until the form is submitted.":"Les changements effectu\u00e9s dans ce tableau ne seront pris en compte que lorsque la configuration aura \u00e9t\u00e9 enregistr\u00e9e.","Done":"Termin\u00e9","Prev":"Pr\u00e9c.","Next":"Suivant","Today":"Aujourd\u0027hui","Jan":"jan","Feb":"f\u00e9v","Mar":"Mar","Apr":"avr","May":"mai","Jun":"juin","Jul":"Juil","Aug":"Ao\u00fb","Sep":"Sep","Oct":"oct","Nov":"nov","Dec":"d\u00e9c","Sunday":"Dimanche","Monday":"Lundi","Tuesday":"Mardi","Wednesday":"Mercredi","Thursday":"Jeudi","Friday":"Vendredi","Saturday":"Samedi","Sun":"dim","Mon":"lun","Tue":"mar","Wed":"mer","Thu":"jeu","Fri":"ven","Sat":"sam","Su":"Di","Mo":"Lu","Tu":"Ma","We":"Me","Th":"Je","Fr":"Ve","Sa":"Sa","mm\/dd\/yy":"dd\/mm\/yy","By @name on @date":"Par @name le @date","By @name":"Par @name","Authored on @date":"R\u00e9dig\u00e9 le @date","Not published":"Non publi\u00e9","Not in menu":"Pas dans le menu","Requires a title":"Titre obligatoire","Don\u0027t display post information":"Ne pas afficher les informations de la contribution","Not promoted":"Non promu","Leave preview?":"Quitter l\u0027aper\u00e7u ?","Leave preview":"Quitter l\u0027aper\u00e7u","CTRL+Left click will prevent this dialog from showing and proceed to the clicked link.":"CTRL + clic gauche emp\u00eachera cette fen\u00eatre de dialogue de s\u0027ouvrir et ouvrira le lien cliqu\u00e9.","Alias: @alias":"Alias : @alias","No alias":"Aucun alias","!modules modules are available in the modified list.":"Les modules !modules sont disponibles dans la liste modifi\u00e9e.","Hide summary":"Masquer le r\u00e9sum\u00e9","Edit summary":"Modifier le r\u00e9sum\u00e9","Home":"Accueil","The toolbar cannot be set to a horizontal orientation when it is locked.":"La barre d\u0027outils ne peut \u00eatre orient\u00e9e horizontalement lorsqu\u0027elle est verrouill\u00e9e.","Horizontal orientation":"Orientation horizontale","Vertical orientation":"Orientation verticale","Extend":"Extension","Collapse":"Replier","@label":"@label","Tray orientation changed to @orientation.":"L\u0027orientation du sous-menu est maintenant @orientation.","closed":"ferm\u00e9","opened":"ouvert","Tray \u0022@tray\u0022 @action.":"Sous-menu \u0022@tray\u0022 @action.","Tray @action.":"Sous-menu @action.","This permission is inherited from the authenticated user role."
7:"Ce droit est h\u00e9rit\u00e9e du r\u00f4le de l\u0027utilisateur authentifi\u00e9.","Add":"Ajouter","Remove group":"Supprimer le groupe","Apply (all displays)":"Appliquer (tous les affichages)","Revert to default":"R\u00e9tablir par d\u00e9faut","Apply (this display)":"Appliquer (cet affichage)","Change order":"Changer l\u0027ordre","Move in any direction":"D\u00e9placer dans n\u0027importe quelle direction","No items selected":"Aucun \u00e9l\u00e9ment s\u00e9lectionn\u00e9","Hide selected":"Masquer la s\u00e9lection","All pages with exceptions":"Toutes les pages avec exceptions","Excepted: @roles":"Except\u00e9 : @roles","Not customizable":"Non personnalisable","On by default with opt out":"Activ\u00e9 par d\u00e9faut avec le refus du suivi","Off by default with opt in":"D\u00e9sactiv\u00e9 par d\u00e9faut avec l\u0027acceptation du suivi","Outbound links":"Liens sortants","Mailto links":"Liens mailto","Downloads":"T\u00e9l\u00e9chargements","Colorbox":"Colorbox","URL fragments":"Fragments d\u0027URL","Not tracked":"Non suivi","@items enabled":"@items activ\u00e9(s)","Site search":"Recherche du site","AdSe
7nse ads":"Annonces AdSense","Display features":"Fonctions d\u0027affichage","A single domain":"Un seul domaine","One domain with multiple subdomains":"Un domaine avec plusieurs sous-domaines","Multiple top-level domains":"Plusieurs domaines de premier niveau","Anonymize IP":"Rendre l\u0027IP anonyme","No privacy":"Pas de confidentialit\u00e9","Content limited to @limit characters, remaining: \u003Cstrong\u003E@remaining\u003C\/strong\u003E":"Contenu limit\u00e9 \u00e0 @limit caract\u00e8res, restant : \u003Cstrong\u003E@remaining\u003C\/strong\u003E","Automatic alias":"Alias automatique","Priority":"Priorit\u00e9","Change frequency":"Fr\u00e9quence de changement","Include images":"Inclure les images","Insert this token into your form":"Ins\u00e9rer ce jeton (\u003Cem\u003Etoken\u003C\/em\u003E) dans votre formulaire","First click a text field to insert your tokens into.":"Cliquez d\u0027abord sur un champ de texte pour ins\u00e9rer vos jetons (\u003Cem\u003Etokens\u003C\/em\u003E) dans celui -ci.","Collapse all":"Tout replier","Expand all":"Tout d\u00e9plier","All details have been expanded.":"Tous les d\u00e9tails ont \u00e9t\u00e9 d\u00e9pli\u00e9s.","All details have been collapsed.":"Tous les d\u00e9tails ont \u00e9t\u00e9 repli\u00e9s.","File upload in progress. Uploaded file may be lost.":"Transfert de fichier en cours. Le fichier transf\u00e9r\u00e9 peut \u00eatre perdu.","item":"\u00e9l\u00e9ment","items":"\u00e9l\u00e9ments","Please avoid using the reserved word \u0027@key\u0027 as the element\u0027s key.":"Veuillez \u00e9viter d\u0027utiliser le mot r\u00e9serv\u00e9 \u0022@key\u0022 comme cl\u00e9 de l\u0027\u00e9l\u00e9ment."},"Long month name":{"January":"janvier","February":"f\u00e9vrier","March":"mars","April":"avril","May":"mai","June":"juin","July":"juillet","August":"ao\u00fbt","September":"septembre","October":"octobre","November":"novembre","December":"d\u00e9cembre"}},"pluralFormula":{"0":0,"1":0,"default":1}};;
8(function(){const settingsElement=document.querySelector('head > script[type="application/json"][data-drupal-selector="drupal-settings-json"], body > script[type="application/json"][data-drupal-selector="drupal-settings-json"]');window.drupalSettings={};if(settingsElement!==null)window.drupalSettings=JSON.parse(settingsElement.textContent);})();;
9window.Drupal={behaviors:{},locale:{}};(function(Drupal,drupalSettings,drupalTranslations,console,Proxy,Reflect){Drupal.throwError=function(error){setTimeout(()=>{throw error;},0);};Drupal.attachBehaviors=function(context,settings){context=context||document;settings=settings||drupalSettings;const behaviors=Drupal.behaviors;Object.keys(behaviors||{}).forEach((i)=>{if(typeof behaviors[i].attach==='function')try{behaviors[i].attach(context,settings);}catch(e){Drupal.throwError(e);}});};Drupal.detachBehaviors=function(context,settings,trigger){context=context||document;settings=settings||drupalSettings;trigger=trigger||'unload';const behaviors=Drupal.behaviors;Object.keys(behaviors||{}).forEach((i)=>{if(typeof behaviors[i].detach==='function')try{behaviors[i].detach(context,settings,trigger);}catch(e){Drupal.throwError(e);}});};Drupal.checkPlain=function(str){str=str.toString().replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;').replace(/'/g,'&#39;');return str;};Drupal.formatString=function(str,args){const processedArgs={};Object.keys(args||{}).forEach((key)=>{switch(key.charAt(0)){case '@':processedArgs[key]=Drupal.checkPlain(args[key]);break;case '!':processedArgs[key]=args[key];break;default:processedArgs[key]=Drupal.theme('placeholder',args[key]);break;}});return Drupal.stringReplace(str,processedArgs,null);};Drupal.stringReplace=function(str,args,keys){if(str.length===0)return str;if(!Array.isArray(keys)){keys=Object.keys(args||{});keys.sort((a,b)=>a.length-b.length);}if(keys.length===0)return str;const key=keys.pop();const fragments=str.split(key);if(keys.length){for(let i=0;i<fragments.length;i++)fragments[i]=Drupal.stringReplace(fragments[i],args,keys.slice(0));}return fragments.join(args[key]);};Drupal.t=function(str,args,options){options=options||{};options.context=options.context||'';if(drupalTranslations?.strings?.[options.context]?.[str])str=drupalTranslations.strings[options.context][str];if(args)str=Drupal.formatString(str,args);return str;};Drupal.url=function(path){return drupalSettings.path.baseUrl+drupalSettings.path.pathPrefix+path;};Drupal.url.toAbsolute=function(url){const urlParsingNode=document.createElement('a');urlParsingNode.setAttribute('href',url);return urlParsingNode.href;};Drupal.url.isLocal=function(url){let absoluteUrl=Drupal.url.toAbsolute(url);let {protocol}=window.location;if(protocol==='http:'&&absoluteUrl.startsWith('https:'))protocol='https:';let baseUrl=`${protocol}//${window.location.host}${drupalSettings.path.baseUrl.slice(0,-1)}`;try{absoluteUrl=decodeURIComponent(absoluteUrl);}catch(e){}try{baseUrl=decodeURIComponent(baseUrl);}catch(e){}return absoluteUrl===baseUrl||absoluteUrl.startsWith(`${baseUrl}/`);};Drupal.formatPlural=function(count,singular,plural,args,options){args=args||{};args['@count']=count;const pluralDelimiter=drupalSettings.pluralDelimiter;const translations=Drupal.t(singular+pluralDelimiter+plural,args,options).split(pluralDelimiter);let index=0;
9if(drupalTranslations?.pluralFormula)index=count in drupalTranslations.pluralFormula?drupalTranslations.pluralFormula[count]:drupalTranslations.pluralFormula.default;else{if(args['@count']!==1)index=1;}return translations[index];};Drupal.encodePath=function(item){return window.encodeURIComponent(item).replace(/%2F/g,'/');};Drupal.deprecationError=({message})=>{if(drupalSettings.suppressDeprecationErrors===false&&console?.warn)console.warn(`[Deprecation] ${message}`);};Drupal.deprecatedProperty=({target,deprecatedProperty,message})=>{if(!Proxy||!Reflect)return target;return new Proxy(target,{get:(target,key,...rest)=>{if(key===deprecatedProperty)Drupal.deprecationError({message});return Reflect.get(target,key,...rest);}});};Drupal.theme=function(func,...args){if(typeof Drupal.theme?.[func]==='function')return Drupal.theme[func](...args);Drupal.throwError(new TypeError(`Drupal.theme.${func} must be function type.`));};Drupal.theme.placeholder=function(str){return `<em class="placeholder">${Drupal.checkPlain(str)}</em>`;};Drupal.elementIsVisible=function(elem){return !!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length);};Drupal.elementIsHidden=function(elem){return !Drupal.elementIsVisible(elem);};})(Drupal,window.drupalSettings,window.drupalTranslations,window.console,window.Proxy,window.Reflect);;
10if(window.jQuery)jQuery.noConflict();document.documentElement.className+=' js';(function(Drupal,drupalSettings){const domReady=(callback)=>{const listener=()=>{callback();document.removeEventListener('DOMContentLoaded',listener);};if(document.readyState!=='loading')setTimeout(callback,0);else document.addEventListener('DOMContentLoaded',listener);};domReady(()=>{Drupal.attachBehaviors(document,drupalSettings);});})(Drupal,window.drupalSettings);;
11/* @license MIT https://raw.githubusercontent.com/focus-trap/tabbable/v6.3.0/LICENSE */
12/*!
13* tabbable 6.3.0
14* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
15*/
16!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):(t="undefined"!=typeof globalThis?globalThis:t||self,function(){var n=t.tabbable,o=t.tabbable={};e(o),o.noConflict=function(){return t.tabbable=n,o}}())}(this,(function(t){"use strict";var e=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],n=e.join(","),o="undefined"==typeof Element,r=o?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,i=!o&&Element.prototype.getRootNode?function(t){var e;return null==t||null===(e=t.getRootNode)||void 0===e?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},a=function(t,e){var n;void 0===e&&(e=!0);var o=null==t||null===(n=t.getAttribute)||void 0===n?void 0:n.call(t,"inert");return""===o||"true"===o||e&&t&&a(t.parentNode)},l=function(t,e,o){if(a(t))return[];var i=Array.prototype.slice.apply(t.querySelectorAll(n));return e&&r.call(t,n)&&i.unshift(t),i=i.filter(o)},u=function(t,e,o){for(var i=[],l=Array.from(t);l.length;){var c=l.shift();if(!a(c,!1))if("SLOT"===c.tagName){var d=c.assignedElements(),f=d.length?d:c.children,s=u(f,!0,o);o.flatten?i.push.apply(i,s):i.push({scopeParent:c,candidates:s})}else{r.call(c,n)&&o.filter(c)&&(e||!t.includes(c))&&i.push(c);var p=c.shadowRoot||"function"==typeof o.getShadowRoot&&o.getShadowRoot(c),h=!a(p,!1)&&(!o.shadowRootFilter||o.shadowRootFilter(c));if(p&&h){var v=u(!0===p?c.children:p.children,!0,o);o.flatten?i.push.apply(i,v):i.push({scopeParent:c,candidates:v})}else l.unshift.apply(l,c.children)}}return i},c=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},d=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||function(t){var e,n=null==t||null===(e=t.getAttribute)||void 0===e?void 0:e.call(t,"contenteditable");return""===n||"true"===n}(t))&&!c(t)?0:t.tabIndex},f=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},s=function(t){return"INPUT"===t.tagName},p=function(t){return function(t){return s(t)&&"radio"===t.type}(t)&&!function(t){if(!t.name)return!0;var e,n=t.form||i(t),o=function(t){return n.querySelectorAll('input[type="radio"][name="'+t+'"]')};if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)e=o(window.CSS.escape(t.name));else try{e=o(t.name)}catch(t){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",t.message),!1}var r=function(t,e){for(var n=0;n<t.length;n++)if(t[n].checked&&t[n].form===e)return t[n]}(e,t.form);return!r||r===t}(t)},h=function(t){var e=t.getBoundingClientRect(),n=e.width,o=e.height;return 0===n&&0===o},v=function(t,e){var n=e.displayCheck,o=e.getShadowRoot;if("full-native"===n&&"checkVisibility"in t)return!t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if("hidden"===getComputedStyle(t).visibility)return!0;var a=r.call(t,"details>summary:first-of-type")?t.parentElement:t;if(r.call(a,"details:not([open]) *"))return!0;
16if(n&&"full"!==n&&"full-native"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return h(t)}else{if("function"==typeof o){for(var l=t;t;){var u=t.parentElement,c=i(t);if(u&&!u.shadowRoot&&!0===o(u))return h(t);t=t.assignedSlot?t.assignedSlot:u||c===t.ownerDocument?u:c.host}t=l}if(function(t){var e,n,o,r,a=t&&i(t),l=null===(e=a)||void 0===e?void 0:e.host,u=!1;if(a&&a!==t)for(u=!!(null!==(n=l)&&void 0!==n&&null!==(o=n.ownerDocument)&&void 0!==o&&o.contains(l)||null!=t&&null!==(r=t.ownerDocument)&&void 0!==r&&r.contains(t));!u&&l;){var c,d,f;u=!(null===(d=l=null===(c=a=i(l))||void 0===c?void 0:c.host)||void 0===d||null===(f=d.ownerDocument)||void 0===f||!f.contains(l))}return u}(t))return!t.getClientRects().length;if("legacy-full"!==n)return!0}return!1},b=function(t,e){return!(e.disabled||a(e)||function(t){return s(t)&&"hidden"===t.type}(e)||v(e,t)||function(t){return"DETAILS"===t.tagName&&Array.prototype.slice.apply(t.children).some((function(t){return"SUMMARY"===t.tagName}))}(e)||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var n=0;n<e.children.length;n++){var o=e.children.item(n);if("LEGEND"===o.tagName)return!!r.call(e,"fieldset[disabled] *")||!o.contains(t)}return!0}e=e.parentElement}return!1}(e))},y=function(t,e){return!(p(e)||d(e)<0||!b(t,e))},m=function(t){var e=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(e)||e>=0)},g=function(t){var e=[],n=[];return t.forEach((function(t,o){var r=!!t.scopeParent,i=r?t.scopeParent:t,a=function(t,e){var n=d(t);return n<0&&e&&!c(t)?0:n}(i,r),l=r?g(t.candidates):i;0===a?r?e.push.apply(e,l):e.push(i):n.push({documentOrder:o,tabIndex:a,item:t,isScope:r,content:l})})),n.sort(f).reduce((function(t,e){return e.isScope?t.push.apply(t,e.content):t.push(e.content),t}),[]).concat(e)},w=e.concat("iframe").join(",");t.focusable=function(t,e){return(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:b.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):l(t,e.includeContainer,b.bind(null,e))},t.getTabIndex=d,t.isFocusable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,w)&&b(e,t)},t.isTabbable=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return!1!==r.call(t,n)&&y(e,t)},t.tabbable=function(t,e){var n;return n=(e=e||{}).getShadowRoot?u([t],e.includeContainer,{filter:y.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:m}):l(t,e.includeContainer,y.bind(null,e)),g(n)}}));
17
18;
19/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
20var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(e,t){"object"===("undefined"==typeof exports?"undefined":_typeof(exports))&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.LazyLoad=t()}(this,function(){"use strict";var e={elements_selector:"img",container:document,threshold:300,data_src:"src",data_srcset:"srcset",class_loading:"loading",class_loaded:"loaded",class_error:"error",callback_load:null,callback_error:null,callback_set:null},t=function(e,t){return e.getAttribute("data-"+t)},n=function(e,t,n){return e.setAttribute("data-"+t,n)},r=function(e){return e.filter(function(e){return!t(e,"was-processed")})},s=function(e,t){var n=new e(t),r=new CustomEvent("LazyLoad::Initialized",{detail:{instance:n}});window.dispatchEvent(r)},o=function(e,n){var r=n.data_srcset,s=e.parentElement;if("PICTURE"===s.tagName)for(var o,a=0;o=s.children[a];a+=1)if("SOURCE"===o.tagName){var i=t(o,r);i&&o.setAttribute("srcset",i)}},a=function(e,n){var r=n.data_src,s=n.data_srcset,a=e.tagName,i=t(e,r);if("IMG"===a){o(e,n);var c=t(e,s);return c&&e.setAttribute("srcset",c),void(i&&e.setAttribute("src",i))}"IFRAME"!==a?i&&(e.style.backgroundImage='url("'+i+'")'):i&&e.setAttribute("src",i)},i=!!document.body.classList,c=function(e,t){i?e.classList.add(t):e.className+=(e.className?" ":"")+t},l=function(e,t){i?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},u=function(e,t){e&&e(t)}
20,f=function(e,t,n){e.removeEventListener("load",t),e.removeEventListener("error",n)},d=function(e,t){var n=function n(s){_(s,!0,t),f(e,n,r)},r=function r(s){_(s,!1,t),f(e,n,r)};e.addEventListener("load",n),e.addEventListener("error",r)},_=function(e,t,n){var r=e.target;l(r,n.class_loading),c(r,t?n.class_loaded:n.class_error),u(t?n.callback_load:n.callback_error,r)},v=function(e,t){["IMG","IFRAME"].indexOf(e.tagName)>-1&&(d(e,t),c(e,t.class_loading)),a(e,t),n(e,"was-processed",!0),u(t.callback_set,e)},m=function(t,n){this._settings=_extends({},e,t),this._setObserver(),this.update(n)};m.prototype={_setObserver:function(){var e=this;if("IntersectionObserver"in window){var t=this._settings;this._observer=new IntersectionObserver(function(n){n.forEach(function(n){if(n.intersectionRatio>0){var r=n.target;v(r,t),e._observer.unobserve(r)}}),e._elements=r(e._elements)},{root:t.container===document?null:t.container,rootMargin:t.threshold+"px"})}},update:function(e){var t=this,n=this._settings,s=e||n.container.querySelectorAll(n.elements_selector);this._elements=r(Array.prototype.slice.call(s)),this._observer?this._elements.forEach(function(e){t._observer.observe(e)}):(this._elements.forEach(function(e){v(e,n)}),this._elements=r(this._elements))},destroy:function(){var e=this;this._observer&&(r(this._elements).forEach(function(t){e._observer.unobserve(t)}),this._observer=null),this._elements=null,this._settings=null}};var b=window.lazyLoadOptions;return b&&function(e,t){if(t.length)for(var n,r=0;n=t[r];r+=1)s(e,n);else s(e,t)}(m,b),m});;
21Drupal.behaviors.capcom_lazy_load={attach:function(context,settings){var myLazyLoad=new LazyLoad();}};;
22Drupal.behaviors.capcomHeaderModal={attach:function(context,settings){var modal_config={wprOpenClass:'is-open',modalOpenClass:'is-visible',bodyClass:'has-modal-opened'};function openModal(modal,contentId,contentUrl){modal.classList.add(modal_config.wprOpenClass);modal.querySelector('.cpcModal').classList.add(modal_config.modalOpenClass);var modalOpen=new Event('modal-open');document.getElementsByTagName('body')[0].dispatchEvent(modalOpen);var animationEnd=new Event('modal-anim-end');animationEnd.contentUrl=contentUrl;animationEnd.contentId=contentId;window.setTimeout(function(){document.getElementsByTagName('body')[0].dispatchEvent(animationEnd);},300);}function closeModal(modal){if(modal){modal.classList.remove(modal_config.wprOpenClass);modal.querySelector('.cpcModal').classList.remove(modal_config.modalOpenClass);}document.getElementsByTagName('body')[0].classList.remove(modal_config.bodyClass);var content=body.querySelectorAll('[data-modal-content]');content.forEach(function(element){element.classList.remove('is-visible');});}var body=document.getElementsByTagName('body')[0];body.addEventListener("modal-anim-end",function(e){this.classList.add(modal_config.bodyClass);},false);body.addEventListener("modal-anim-end",function(e){if(null!==e.contentUrl&&null!==e.contentId){var xhr=new XMLHttpRequest();xhr.onreadystatechange=function(e){if(xhr.readyState===4&&xhr.status===200)body.querySelector('[data-modal-content='+e.contentId+']').innerHTML=xhr.responseText;};xhr.open('GET',e.contentUrl,true);xhr.setRequestHeader('Content-type','text/html');xhr.send();}if(null!==e.contentId){var content=body.querySelector('[data-modal-content='+e.contentId+']');content.classList.add('is-visible');}},false);function registerModal(){var modalLinks=document.querySelectorAll('[data-modal-link]');modalLinks.forEach(function(element){element.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();var contentUrl=this.getAttribute('data-modal-content-url');var contentId=this.getAttribute('data-modal-content-id');var relatedModalAttr=this.getAttribute('data-modal-link');var relatedModal=document.querySelector('[data-modal="'+relatedModalAttr+'"]');if(relatedModal.classList.contains(modal_config.wprOpenClass))closeModal(relatedModal);else openModal(relatedModal,contentId,contentUrl);});});}document.addEventListener('keyup',function(e){if(27===e.keyCode)closeModal(document.querySelector('[data-modal]'));});document.addEventListener('capcomTunnelLoaded',function(e){registerModal();});registerModal();}};;
23/*! smooth-scroll v12.1.5 | (c) 2017 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */
24!(function(e,t){"function"==typeof define&&define.amd?define([],(function(){return t(e)})):"object"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(e){"use strict";var t="querySelector"in document&&"addEventListener"in e&&"requestAnimationFrame"in e&&"closest"in e.Element.prototype,n={ignore:"[data-scroll-ignore]",header:null,speed:500,offset:0,easing:"easeInOutCubic",customEasing:null,before:function(){},after:function(){}},o=function(){for(var e={},t=0,n=arguments.length;t<n;t++){var o=arguments[t];!(function(t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(o)}return e},a=function(t){return parseInt(e.getComputedStyle(t).height,10)},r=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r="",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");t>=1&&t<=31||127==t||0===a&&t>=48&&t<=57||1===a&&t>=48&&t<=57&&45===i?r+="\\"+t.toString(16)+" ":r+=t>=128||45===t||95===t||t>=48&&t<=57||t>=65&&t<=90||t>=97&&t<=122?n.charAt(a):"\\"+n.charAt(a)}return"#"+r},i=function(e,t){var n;return"easeInQuad"===e.easing&&(n=t*t),"easeOutQuad"===e.easing&&(n=t*(2-t)),"easeInOutQuad"===e.easing&&(n=t<.5?2*t*t:(4-2*t)*t-1),"easeInCubic"===e.easing&&(n=t*t*t),"easeOutCubic"===e.easing&&(n=--t*t*t+1),"easeInOutCubic"===e.easing&&(n=t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1),"easeInQuart"===e.easing&&(n=t*t*t*t),"easeOutQuart"===e.easing&&(n=1- --t*t*t*t),"easeInOutQuart"===e.easing&&(n=t<.5?8*t*t*t*t:1-8*--t*t*t*t),"easeInQuint"===e.easing&&(n=t*t*t*t*t),"easeOutQuint"===e.easing&&(n=1+--t*t*t*t*t),"easeInOutQuint"===e.easing&&(n=t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t),e.customEasing&&(n=e.customEasing(t)),n||t},u=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},c=function(e,t,n){var o=0;if(e.offsetParent)do{o+=e.offsetTop,e=e.offsetParent}while(e);return o=Math.max(o-t-n,0)},s=function(e){return e?a(e)+e.offsetTop:0},l=function(t,n,o){o||(t.focus(),document.activeElement.id!==t.id&&(t.setAttribute("tabindex","-1"),t.focu
24s(),t.style.outline="none"),e.scrollTo(0,n))},f=function(t){return!!("matchMedia"in e&&e.matchMedia("(prefers-reduced-motion)").matches)};return function(a,d){var m,h,g,p,v,b,y,S={};S.cancelScroll=function(){cancelAnimationFrame(y)},S.animateScroll=function(t,a,r){var f=o(m||n,r||{}),d="[object Number]"===Object.prototype.toString.call(t),h=d||!t.tagName?null:t;if(d||h){var g=e.pageYOffset;f.header&&!p&&(p=document.querySelector(f.header)),v||(v=s(p));var b,y,E,I=d?t:c(h,v,parseInt("function"==typeof f.offset?f.offset():f.offset,10)),O=I-g,A=u(),C=0,w=function(n,o){var r=e.pageYOffset;if(n==o||r==o||(g<o&&e.innerHeight+r)>=A)return S.cancelScroll(),l(t,o,d),f.after(t,a),b=null,!0},Q=function(t){b||(b=t),C+=t-b,y=C/parseInt(f.speed,10),y=y>1?1:y,E=g+O*i(f,y),e.scrollTo(0,Math.floor(E)),w(E,I)||(e.requestAnimationFrame(Q),b=t)};0===e.pageYOffset&&e.scrollTo(0,0),f.before(t,a),S.cancelScroll(),e.requestAnimationFrame(Q)}};var E=function(e){h&&(h.id=h.getAttribute("data-scroll-id"),S.animateScroll(h,g),h=null,g=null)},I=function(t){if(!f()&&0===t.button&&!t.metaKey&&!t.ctrlKey&&(g=t.target.closest(a))&&"a"===g.tagName.toLowerCase()&&!t.target.closest(m.ignore)&&g.hostname===e.location.hostname&&g.pathname===e.location.pathname&&/#/.test(g.href)){var n;try{n=r(decodeURIComponent(g.hash))}catch(e){n=r(g.hash)}if("#"===n){t.preventDefault(),h=document.body;var o=h.id?h.id:"smooth-scroll-top";return h.setAttribute("data-scroll-id",o),h.id="",void(e.location.hash.substring(1)===o?E():e.location.hash=o)}h=document.querySelector(n),h&&(h.setAttribute("data-scroll-id",h.id),h.id="",g.hash===e.location.hash&&(t.preventDefault(),E()))}},O=function(e){b||(b=setTimeout((function(){b=null,v=s(p)}),66))};return S.destroy=function(){m&&(document.removeEventListener("click",I,!1),e.removeEventListener("resize",O,!1),S.cancelScroll(),m=null,h=null,g=null,p=null,v=null,b=null,y=null)},S.init=function(a){t&&(S.destroy(),m=o(n,a||{}),p=m.header?document.querySelector(m.header):null,v=s(p),document.addEventListener("click",I,!1),e.addEventListener("hashchange",E,!1),p&&e.addEventListener("resize",O,!1))},S.init(d),S}}));;
25Drupal.behaviors.capcom_smooth_scroll={attach:function(context,settings){var scroll=new SmoothScroll('a[href*="#"]');document.addEventListener('newStateLoad',function(e){var tunnelScroll=new SmoothScroll();var selector=e.detail.destination;tunnelScroll.animateScroll(document.querySelector(selector));});}};;
26!function(){"use strict";function a(a){var c=l(b,a||{});this.create(c),this.add()}var b={ellipsis:"…",debounce:0,responsive:!0,className:".clamp",lines:2,portrait:null,break_word:!0},c=0,d=window.innerWidth,e=!!window.requestAnimationFrame,f=function(){return c+=1},g=function(a,b){a.setAttribute("data-ellipsis-id",b)},h=function(a){return a.getAttribute("data-ellipsis-id")},i=function(a,b){var c=f();g(b,c),a[c]=a[c]||{},a[c].element=b,a[c].innerHTML=b.innerHTML},j=function(a,b){return a?a[h(b)]:null},k=function(a){return Object.keys(a).map(function(b,c){return a[b].element})},l=function(a,b){var c={};for(var d in a)c[d]=a[d];for(var e in b)c[e]=b[e];return c};a.prototype={conf:{},prop:{},lines:{},temp:null,listener:null,create:function(a){if(this.conf=a,this.lines={get current(){return a.portrait&&window.innerHeight>window.innerWidth?a.portrait:a.lines}},this.conf.responsive){this.temp={};var b,c=this.conf.debounce;if(e&&!c){this._isScheduled=!1;var f=this;b=function(a){window.innerWidth!=d&&(d=window.innerWidth,f._isScheduled||(f._isScheduled=!0,window.requestAnimationFrame(function(){f._isScheduled=!1,f.add(k(f.temp))})))}}else{c=c||16;var g;b=function(a){window.innerWidth!=d&&(d=window.innerWidth,clearTimeout(g),g=setTimeout(function(){this.add(k(this.temp))}.bind(this),c))}}this.listener=b.bind(this),window.addEventListener("resize",this.listener,!1),window.removeEventListener("beforeunload",this.listener,!1)}},destroy:function(){this.listener&&window.removeEventListener("resize",this.listener,!1)},createProp:function(a){this.prop={get height(){var b=a.getBoundingClientRect();return parseInt(b.bottom-b.top,10)},get lineheight(){var b=getComputedStyle(a).getPropertyValue("line-height");return String("normal|initial|inherit").indexOf(b)>-1&&(b=parseInt(getComputedStyle(a).getPropertyValue("font-size"),10)+2),parseInt(b,10)}}}
26,add:function(a){if(!a&&this.conf.className&&(a=document.querySelectorAll(this.conf.className)),a)if(a.length)for(var b=0;b<a.length;b++)this.addElement(a[b]);else void 0===a.length&&this.addElement(a)},addElement:function(a){if(this.conf.responsive){var b=j(this.temp,a);b?a.innerHTML!==b.innerHTML&&(a.innerHTML=b.innerHTML):i(this.temp,a)}this.createProp(a),this.isNotCorrect()&&(a.childNodes.length&&a.childNodes.length>1?this.handleChildren(a):a.childNodes.length&&1===a.childNodes.length&&3===a.childNodes[0].nodeType&&this.simpleText(a))},breakWord:function(a,b,c){var d=a.split(" ");if(d.pop(),c&&d.pop(),!b)return d[d.length-1]&&(d[d.length-1]=d[d.length-1].replace(/(,$)/g,"").replace(/(\.$)/g,"")),d.push(this.conf.ellipsis),d.join(" ");if(d[d.length-1])return d[d.length-1]=d[d.length-1].replace(/(,$)/g,"").replace(/(\.$)/g,""),d.push(this.conf.ellipsis),[d.join(" "),b];if(!d[d.length-1]&&b){var e=" "+b.trim().replace(/(,$)/g,"").replace(/(\.$)/g,"")+" ";return d.push(this.conf.ellipsis),[d.join(" "),e]}},simpleText:function(a){for(var b=a.childNodes[0].nodeValue;this.prop.height>this.prop.lineheight*this.lines.current;)a.childNodes[0].nodeValue=b.slice(0,-1),b=a.childNodes[0].nodeValue;this.conf.break_word?(a.childNodes[0].nodeValue=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()&&(a.childNodes[0].nodeValue=" "+a.childNodes[0].nodeValue.slice(0,-(this.conf.ellipsis.length+1)).trim().slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis)):(a.childNodes[0].nodeValue=this.breakWord(a.childNodes[0].nodeValue),this.isNotCorrect()&&(a.childNodes[0].nodeValue=this.breakWord(a.childNodes[0].nodeValue,null,!0)))},isNotCorrect:function(){return this.prop.height>this.prop.lineheight*this.lines.current},processBreak:function(a,b,c){var d=this.breakWord(a.innerText||a.nodeValue,b.innerText||b.nodeValue,c);a.innerText?a.innerText=d[0]:a.nodeValue=d[0],b.innerText?b.innerText=d[1]:b.nodeValue=d[1]},handleChildren:function(a){for(var b,c=a.childNodes,d=c.length-1;d>=0;d--){var e;if(8!==c[d].nodeType){if(3===c[d].nodeType?(e=c[d].nodeValue,c[d].nodeValue=""):(e=getComputedStyle(c[d]).getPropertyValue("display"),c[d].style.display="none"),this.prop.height<=this.prop.lineheight*this.lines.current){if(3===c[d].nodeType){for(c[d].nodeValue=e,b=c[d].nodeValue;this.prop.height>this.prop.lineheight*this.lines.current;)c[d].nodeValue=b.slice(0,-1),b=c[d].nodeValue;if(this.conf.break_word){if(c[d].nodeValue=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()){if(c[d].nodeValue=" "+c[d].nodeValue.slice(0,-this.conf.ellipsis.length).trim().slice(0,-this.conf.ellipsis.length),!(c[d].nodeValue.length>1))continue;c[d].nodeValue=c[d].nodeValue.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis}}else{if(!c[d].innerText&&!c[d].nodeValue)continue;if(this.processBreak(c[d],c[d-1]),this.isNotCorrect()&&(this.processBreak(c[d],c[d-1],!0),this.isNotCorrect())){a.removeChild(c[d]);continue}}}else{for(c[d].style.display=e,b=c[d].innerText;this.prop.height>this.prop.lineheight*this.lines.current;)c[d].innerText=b.slice(0,-1),b=c[d].innerText;if(this.conf.break_word){if(c[d].innerText=b.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis,this.isNotCorrect()){if(c[d].innerText=" "+c[d].innerText.slice(0,-this.conf.ellipsis.length).trim().slice(0,-this.conf.ellipsis.length),!(c[d].innerText.length>1))continue;c[d].innerText=c[d].innerText.slice(0,-this.conf.ellipsis.length)+this.conf.ellipsis}}else{if(!c[d].innerText&&!c[d].nodeValue)continue;if(this.processBreak(c[d],c[d-1]),this.isNotCorrect()&&(this.processBreak(c[d],c[d-1],!0),this.isNotCorrect())){a.removeChild(c[d]);continue}}}break}a.removeChild(c[d])}}}};var m=function(b){return new a(b)};"function"==typeof define&&define.amd&&define("ellipsis",[],function(){return m}),self.Ellipsis=m}();;
27(function(Drupal,once){'use strict';Drupal.behaviors.ellipsis={attach:function(context){if(typeof Ellipsis!=='function')return;const ellipsis=Ellipsis({lines:2});const elements=once('ellipsis','[data-ellipsis]',context);for(let i=0;i<elements.length;i++){const element=elements[i];let target=element;if(element.childNodes.length===1&&element.childNodes[0].nodeType===1)target=element.childNodes[0];ellipsis.add(target);}}};})(Drupal,once);;
28/******/ (function(modules) { // webpackBootstrap
29/******/ 	// The module cache
30/******/ 	var installedModules = {};
31/******/
32/******/ 	// The require function
33/******/ 	function __webpack_require__(moduleId) {
34/******/
35/******/ 		// Check if module is in cache
36/******/ 		if(installedModules[moduleId]) {
37/******/ 			return installedModules[moduleId].exports;
38/******/ 		}
39/******/ 		// Create a new module (and put it into the cache)
40/******/ 		var module = installedModules[moduleId] = {
41/******/ 			i: moduleId,
42/******/ 			l: false,
43/******/ 			exports: {}
44/******/ 		};
45/******/
46/******/ 		// Execute the module function
47/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
48/******/
49/******/ 		// Flag the module as loaded
vendor: 6,671 bytes, lines 50-236
50/******/ 		module.l = true;
51/******/
52/******/ 		// Return the exports of the module
53/******/ 		return module.exports;
54/******/ 	}
55/******/
56/******/
57/******/ 	// expose the modules object (__webpack_modules__)
58/******/ 	__webpack_require__.m = modules;
59/******/
60/******/ 	// expose the module cache
61/******/ 	__webpack_require__.c = installedModules;
62/******/
63/******/ 	// define getter function for harmony exports
64/******/ 	__webpack_require__.d = function(exports, name, getter) {
65/******/ 		if(!__webpack_require__.o(exports, name)) {
66/******/ 			Object.defineProperty(exports, name, {
67/******/ 				configurable: false,
68/******/ 				enumerable: true,
69/******/ 				get: getter
70/******/ 			});
71/******/ 		}
72/******/ 	};
73/******/
74/******/ 	// getDefaultExport function for compatibility with non-harmony modules
75/******/ 	__webpack_require__.n = function(module) {
76/******/ 		var getter = module && module.__esModule ?
77/******/ 			function getDefault() { return module['default']; } :
78/******/ 			function getModuleExports() { return module; };
79/******/ 		__webpack_require__.d(getter, 'a', getter);
80/******/ 		return getter;
81/******/ 	};
82/******/
83/******/ 	// Object.prototype.hasOwnProperty.call
84/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
85/******/
86/******/ 	// __webpack_public_path__
87/******/ 	__webpack_require__.p = "";
88/******/
89/******/ 	// Load entry module and return exports
90/******/ 	return __webpack_require__(__webpack_require__.s = 227);
91/******/ })
92/************************************************************************/
93/******/ ([
94/* 0 */
95/***/ (function(module, exports, __webpack_require__) {
96
97var global = __webpack_require__(5);
98var core = __webpack_require__(18);
99var hide = __webpack_require__(20);
100var redefine = __webpack_require__(19);
101var ctx = __webpack_require__(30);
102var PROTOTYPE = 'prototype';
103
104var $export = function (type, name, source) {
105  var IS_FORCED = type & $export.F;
106  var IS_GLOBAL = type & $export.G;
107  var IS_STATIC = type & $export.S;
108  var IS_PROTO = type & $export.P;
109  var IS_BIND = type & $export.B;
110  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
111  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
112  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
113  var key, own, out, exp;
114  if (IS_GLOBAL) source = name;
115  for (key in source) {
116    // contains in native
117    own = !IS_FORCED && target && target[key] !== undefined;
118    // export native or passed
119    out = (own ? target : source)[key];
120    // bind timers to global for call from export context
121    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
122    // extend global
123    if (target) redefine(target, key, out, type & $export.U);
124    // export
125    if (exports[key] != out) hide(exports, key, exp);
126    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
127  }
128};
129global.core = core;
130// type bitmap
131$export.F = 1;   // forced
132$export.G = 2;   // global
133$export.S = 4;   // static
134$export.P = 8;   // proto
135$export.B = 16;  // bind
136$export.W = 32;  // wrap
137$export.U = 64;  // safe
138$export.R = 128; // real proto method for `library`
139module.exports = $export;
140
141
142/***/ }),
143/* 1 */
144/***/ (function(module, exports) {
145
146// shim for using process in browser
147var process = module.exports = {};
148
149// cached from whatever global is present so that test runners that stub it
150// don't break things.  But we need to wrap it in a try catch in case it is
151// wrapped in strict mode code which doesn't define any globals.  It's inside a
152// function because try/catches deoptimize in certain engines.
153
154var cachedSetTimeout;
155var cachedClearTimeout;
156
157function defaultSetTimout() {
158    throw new Error('setTimeout has not been defined');
159}
160function defaultClearTimeout () {
161    throw new Error('clearTimeout has not been defined');
162}
163(function () {
164    try {
165        if (typeof setTimeout === 'function') {
166            cachedSetTimeout = setTimeout;
167        } else {
168            cachedSetTimeout = defaultSetTimout;
169        }
170    } catch (e) {
171        cachedSetTimeout = defaultSetTimout;
172    }
173    try {
174        if (typeof clearTimeout === 'function') {
175            cachedClearTimeout = clearTimeout;
176        } else {
177            cachedClearTimeout = defaultClearTimeout;
178        }
179    } catch (e) {
180        cachedClearTimeout = defaultClearTimeout;
181    }
182} ())
183function runTimeout(fun) {
184    if (cachedSetTimeout === setTimeout) {
185        //normal enviroments in sane situations
186        return setTimeout(fun, 0);
187    }
188    // if setTimeout wasn't available but was latter defined
189    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
190        cachedSetTimeout = setTimeout;
191        return setTimeout(fun, 0);
192    }
193    try {
194        // when when somebody has screwed with setTimeout but no I.E. maddness
195        return cachedSetTimeout(fun, 0);
196    } catch(e){
197        try {
198            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
199            return cachedSetTimeout.call(null, fun, 0);
200        } catch(e){
201            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
202            return cachedSetTimeout.call(this, fun, 0);
203        }
204    }
205
206
207}
208function runClearTimeout(marker) {
209    if (cachedClearTimeout === clearTimeout) {
210        //normal enviroments in sane situations
211        return clearTimeout(marker);
212    }
213    // if clearTimeout wasn't available but was latter defined
214    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
215        cachedClearTimeout = clearTimeout;
216        return clearTimeout(marker);
217    }
218    try {
219        // when when somebody has screwed with setTimeout but no I.E. maddness
220        return cachedClearTimeout(marker);
221    } catch (e){
222        try {
223            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
224            return cachedClearTimeout.call(null, marker);
225        } catch (e){
226            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
227            // Some versions of I.E. have different rules for clearTimeout vs setTimeout
228            return cachedClearTimeout.call(this, marker);
229        }
230    }
231
232
233
234}
235var queue = [];
236var draining = false;
vendor: 5,420 bytes, lines 237-443
237var currentQueue;
238var queueIndex = -1;
239
240function cleanUpNextTick() {
241    if (!draining || !currentQueue) {
242        return;
243    }
244    draining = false;
245    if (currentQueue.length) {
246        queue = currentQueue.concat(queue);
247    } else {
248        queueIndex = -1;
249    }
250    if (queue.length) {
251        drainQueue();
252    }
253}
254
255function drainQueue() {
256    if (draining) {
257        return;
258    }
259    var timeout = runTimeout(cleanUpNextTick);
260    draining = true;
261
262    var len = queue.length;
263    while(len) {
264        currentQueue = queue;
265        queue = [];
266        while (++queueIndex < len) {
267            if (currentQueue) {
268                currentQueue[queueIndex].run();
269            }
270        }
271        queueIndex = -1;
272        len = queue.length;
273    }
274    currentQueue = null;
275    draining = false;
276    runClearTimeout(timeout);
277}
278
279process.nextTick = function (fun) {
280    var args = new Array(arguments.length - 1);
281    if (arguments.length > 1) {
282        for (var i = 1; i < arguments.length; i++) {
283            args[i - 1] = arguments[i];
284        }
285    }
286    queue.push(new Item(fun, args));
287    if (queue.length === 1 && !draining) {
288        runTimeout(drainQueue);
289    }
290};
291
292// v8 likes predictible objects
293function Item(fun, array) {
294    this.fun = fun;
295    this.array = array;
296}
297Item.prototype.run = function () {
298    this.fun.apply(null, this.array);
299};
300process.title = 'browser';
301process.browser = true;
302process.env = {};
303process.argv = [];
304process.version = ''; // empty string to avoid regexp issues
305process.versions = {};
306
307function noop() {}
308
309process.on = noop;
310process.addListener = noop;
311process.once = noop;
312process.off = noop;
313process.removeListener = noop;
314process.removeAllListeners = noop;
315process.emit = noop;
316process.prependListener = noop;
317process.prependOnceListener = noop;
318
319process.listeners = function (name) { return [] }
320
321process.binding = function (name) {
322    throw new Error('process.binding is not supported');
323};
324
325process.cwd = function () { return '/' };
326process.chdir = function (dir) {
327    throw new Error('process.chdir is not supported');
328};
329process.umask = function() { return 0; };
330
331
332/***/ }),
333/* 2 */
334/***/ (function(module, exports, __webpack_require__) {
335
336"use strict";
337/* WEBPACK VAR INJECTION */(function(process) {/**
338 * Copyright (c) 2013-present, Facebook, Inc.
339 *
340 * This source code is licensed under the MIT license found in the
341 * LICENSE file in the root directory of this source tree.
342 *
343 */
344
345
346
347/**
348 * Use invariant() to assert state which your program assumes to be true.
349 *
350 * Provide sprintf-style format (only %s is supported) and arguments
351 * to provide information about what broke and what you were
352 * expecting.
353 *
354 * The invariant message will be stripped in production, but the invariant
355 * will remain to ensure logic does not differ in production.
356 */
357
358var validateFormat = function validateFormat(format) {};
359
360if (process.env.NODE_ENV !== 'production') {
361  validateFormat = function validateFormat(format) {
362    if (format === undefined) {
363      throw new Error('invariant requires an error message argument');
364    }
365  };
366}
367
368function invariant(condition, format, a, b, c, d, e, f) {
369  validateFormat(format);
370
371  if (!condition) {
372    var error;
373    if (format === undefined) {
374      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
375    } else {
376      var args = [a, b, c, d, e, f];
377      var argIndex = 0;
378      error = new Error(format.replace(/%s/g, function () {
379        return args[argIndex++];
380      }));
381      error.name = 'Invariant Violation';
382    }
383
384    error.framesToPop = 1; // we don't care about invariant's own frame
385    throw error;
386  }
387}
388
389module.exports = invariant;
390/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
391
392/***/ }),
393/* 3 */
394/***/ (function(module, exports, __webpack_require__) {
395
396"use strict";
397/* WEBPACK VAR INJECTION */(function(process) {/**
398 * Copyright (c) 2014-present, Facebook, Inc.
399 *
400 * This source code is licensed under the MIT license found in the
401 * LICENSE file in the root directory of this source tree.
402 *
403 */
404
405
406
407var emptyFunction = __webpack_require__(38);
408
409/**
410 * Similar to invariant but only logs a warning if the condition is not met.
411 * This can be used to log issues in development environments in critical
412 * paths. Removing the logging code for production environments will keep the
413 * same logic and follow the same code paths.
414 */
415
416var warning = emptyFunction;
417
418if (process.env.NODE_ENV !== 'production') {
419  var printWarning = function printWarning(format) {
420    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
421      args[_key - 1] = arguments[_key];
422    }
423
424    var argIndex = 0;
425    var message = 'Warning: ' + format.replace(/%s/g, function () {
426      return args[argIndex++];
427    });
428    if (typeof console !== 'undefined') {
429      console.error(message);
430    }
431    try {
432      // --- Welcome to debugging React ---
433      // This error was thrown as a convenience so that you can use this stack
434      // to find the callsite that caused this warning to fire.
435      throw new Error(message);
436    } catch (x) {}
437  };
438
439  warning = function warning(condition, format) {
440    if (format === undefined) {
441      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
442    }
443
444    if (format.indexOf('Failed Composite propType: ') === 0) {
445      return; // Ignore CompositeComponent proptype check.
446    }
447
448    if (!condition) {
449      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
450        args[_key2 - 2] = arguments[_key2];
451      }
452
453      printWarning.apply(undefined, [format].concat(args));
454    }
455  };
456}
457
458module.exports = warning;
459/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
460
461/***/ }),
462/* 4 */
463/***/ (function(module, exports, __webpack_require__) {
464
465var isObject = __webpack_require__(7);
466module.exports = function (it) {
467  if (!isObject(it)) throw TypeError(it + ' is not an object!');
468  return it;
469};
470
471
472/***/ }),
473/* 5 */
474/***/ (function(module, exports) {
475
476// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
477var global = module.exports = typeof window != 'undefined' && window.Math == Math
478  ? window : typeof self != 'undefined' && self.Math == Math ? self
479  // eslint-disable-next-line no-new-func
480  : Function('return this')();
481if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
482
483
484/***/ }),
485/* 6 */
486/***/ (function(module, exports) {
487
488module.exports = function (exec) {
489  try {
490    return !!exec();
491  } catch (e) {
492    return true;
493  }
494};
495
496
497/***/ }),
498/* 7 */
499/***/ (function(module, exports) {
500
501module.exports = function (it) {
502  return typeof it === 'object' ? it !== null : typeof it === 'function';
503};
504
505
506/***/ }),
507/* 8 */
508/***/ (function(module, exports, __webpack_require__) {
509
510"use strict";
511/**
512 * Copyright (c) 2013-present, Facebook, Inc.
513 *
514 * This source code is licensed under the MIT license found in the
515 * LICENSE file in the root directory of this source tree.
516 *
517 * 
518 */
519
520
521/**
522 * WARNING: DO NOT manually require this module.
523 * This is a replacement for `invariant(...)` used by the error code system
524 * and will _only_ be required by the corresponding babel pass.
525 * It always throws.
526 */
527
528function reactProdInvariant(code) {
529  var argCount = arguments.length - 1;
530
531  var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
532
533  for (var argIdx = 0; argIdx < argCount; argIdx++) {
534    message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
535  }
536
537  message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
538
539  var error = new Error(message);
540  error.name = 'Invariant Violation';
541  error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
542
543  throw error;
544}
545
546module.exports = reactProdInvariant;
547
548/***/ }),
549/* 9 */
550/***/ (function(module, exports, __webpack_require__) {
551
552var store = __webpack_require__(82)('wks');
553var uid = __webpack_require__(49);
554var Symbol = __webpack_require__(5).Symbol;
555var USE_SYMBOL = typeof Symbol == 'function';
556
557var $exports = module.exports = function (name) {
558  return store[name] || (store[name] =
559    USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
560};
561
562$exports.store = store;
563
564
565/***/ }),
566/* 10 */
567/***/ (function(module, exports, __webpack_require__) {
568
569"use strict";
570/*
571object-assign
572(c) Sindre Sorhus
573@license MIT
vendor: 4,696 bytes, lines 574-754
574*/
575
576
577/* eslint-disable no-unused-vars */
578var getOwnPropertySymbols = Object.getOwnPropertySymbols;
579var hasOwnProperty = Object.prototype.hasOwnProperty;
580var propIsEnumerable = Object.prototype.propertyIsEnumerable;
581
582function toObject(val) {
583	if (val === null || val === undefined) {
584		throw new TypeError('Object.assign cannot be called with null or undefined');
585	}
586
587	return Object(val);
588}
589
590function shouldUseNative() {
591	try {
592		if (!Object.assign) {
593			return false;
594		}
595
596		// Detect buggy property enumeration order in older V8 versions.
597
598		// https://bugs.chromium.org/p/v8/issues/detail?id=4118
599		var test1 = new String('abc');  // eslint-disable-line no-new-wrappers
600		test1[5] = 'de';
601		if (Object.getOwnPropertyNames(test1)[0] === '5') {
602			return false;
603		}
604
605		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
606		var test2 = {};
607		for (var i = 0; i < 10; i++) {
608			test2['_' + String.fromCharCode(i)] = i;
609		}
610		var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
611			return test2[n];
612		});
613		if (order2.join('') !== '0123456789') {
614			return false;
615		}
616
617		// https://bugs.chromium.org/p/v8/issues/detail?id=3056
618		var test3 = {};
619		'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
620			test3[letter] = letter;
621		});
622		if (Object.keys(Object.assign({}, test3)).join('') !==
623				'abcdefghijklmnopqrst') {
624			return false;
625		}
626
627		return true;
628	} catch (err) {
629		// We don't expect any of the above to throw, but better to be safe.
630		return false;
631	}
632}
633
634module.exports = shouldUseNative() ? Object.assign : function (target, source) {
635	var from;
636	var to = toObject(target);
637	var symbols;
638
639	for (var s = 1; s < arguments.length; s++) {
640		from = Object(arguments[s]);
641
642		for (var key in from) {
643			if (hasOwnProperty.call(from, key)) {
644				to[key] = from[key];
645			}
646		}
647
648		if (getOwnPropertySymbols) {
649			symbols = getOwnPropertySymbols(from);
650			for (var i = 0; i < symbols.length; i++) {
651				if (propIsEnumerable.call(from, symbols[i])) {
652					to[symbols[i]] = from[symbols[i]];
653				}
654			}
655		}
656	}
657
658	return to;
659};
660
661
662/***/ }),
663/* 11 */
664/***/ (function(module, exports, __webpack_require__) {
665
666var anObject = __webpack_require__(4);
667var IE8_DOM_DEFINE = __webpack_require__(156);
668var toPrimitive = __webpack_require__(33);
669var dP = Object.defineProperty;
670
671exports.f = __webpack_require__(12) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
672  anObject(O);
673  P = toPrimitive(P, true);
674  anObject(Attributes);
675  if (IE8_DOM_DEFINE) try {
676    return dP(O, P, Attributes);
677  } catch (e) { /* empty */ }
678  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
679  if ('value' in Attributes) O[P] = Attributes.value;
680  return O;
681};
682
683
684/***/ }),
685/* 12 */
686/***/ (function(module, exports, __webpack_require__) {
687
688// Thank's IE8 for his funny defineProperty
689module.exports = !__webpack_require__(6)(function () {
690  return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
691});
692
693
694/***/ }),
695/* 13 */
696/***/ (function(module, exports, __webpack_require__) {
697
698// 7.1.15 ToLength
699var toInteger = __webpack_require__(34);
700var min = Math.min;
701module.exports = function (it) {
702  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
703};
704
705
706/***/ }),
707/* 14 */
708/***/ (function(module, exports, __webpack_require__) {
709
710"use strict";
711/* WEBPACK VAR INJECTION */(function(process) {/**
712 * Copyright (c) 2013-present, Facebook, Inc.
713 *
714 * This source code is licensed under the MIT license found in the
715 * LICENSE file in the root directory of this source tree.
716 *
717 */
718
719
720
721var _prodInvariant = __webpack_require__(8);
722
723var DOMProperty = __webpack_require__(47);
724var ReactDOMComponentFlags = __webpack_require__(195);
725
726var invariant = __webpack_require__(2);
727
728var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
729var Flags = ReactDOMComponentFlags;
730
731var internalInstanceKey = '__reactInternalInstance$' + Math.random().toString(36).slice(2);
732
733/**
734 * Check if a given node should be cached.
735 */
736function shouldPrecacheNode(node, nodeID) {
737  return node.nodeType === 1 && node.getAttribute(ATTR_NAME) === String(nodeID) || node.nodeType === 8 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === 8 && node.nodeValue === ' react-empty: ' + nodeID + ' ';
738}
739
740/**
741 * Drill down (through composites and empty components) until we get a host or
742 * host text component.
743 *
744 * This is pretty polymorphic but unavoidable with the current structure we have
745 * for `_renderedChildren`.
746 */
747function getRenderedHostOrTextFromComponent(component) {
748  var rendered;
749  while (rendered = component._renderedComponent) {
750    component = rendered;
751  }
752  return component;
753}
754
755/**
756 * Populate `_hostNode` on the rendered host/text component with the given
757 * DOM node. The passed `inst` can be a composite.
758 */
759function precacheNode(inst, node) {
760  var hostInst = getRenderedHostOrTextFromComponent(inst);
761  hostInst._hostNode = node;
762  node[internalInstanceKey] = hostInst;
763}
764
765function uncacheNode(inst) {
766  var node = inst._hostNode;
767  if (node) {
768    delete node[internalInstanceKey];
769    inst._hostNode = null;
770  }
771}
772
773/**
774 * Populate `_hostNode` on each child of `inst`, assuming that the children
775 * match up with the DOM (element) children of `node`.
776 *
777 * We cache entire levels at once to avoid an n^2 problem where we access the
778 * children of a node sequentially and have to walk from the start to our target
779 * node every time.
780 *
781 * Since we update `_renderedChildren` and the actual DOM at (slightly)
782 * different times, we could race here and see a newer `_renderedChildren` than
783 * the DOM nodes we see. To avoid this, ReactMultiChild calls
784 * `prepareToManageChildren` before we change `_renderedChildren`, at which
785 * time the container's child nodes are always cached (until it unmounts).
786 */
787function precacheChildNodes(inst, node) {
788  if (inst._flags & Flags.hasCachedChildNodes) {
789    return;
790  }
791  var children = inst._renderedChildren;
792  var childNode = node.firstChild;
793  outer: for (var name in children) {
794    if (!children.hasOwnProperty(name)) {
795      continue;
796    }
797    var childInst = children[name];
798    var childID = getRenderedHostOrTextFromComponent(childInst)._domID;
799    if (childID === 0) {
800      // We're currently unmounting this child in ReactMultiChild; skip it.
801      continue;
802    }
803    // We assume the child nodes are in the same order as the child instances.
804    for (; childNode !== null; childNode = childNode.nextSibling) {
805      if (shouldPrecacheNode(childNode, childID)) {
806        precacheNode(childInst, childNode);
807        continue outer;
808      }
809    }
810    // We reached the end of the DOM children without finding an ID match.
811     true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unable to find element with ID %s.', childID) : _prodInvariant('32', childID) : void 0;
812  }
813  inst._flags |= Flags.hasCachedChildNodes;
814}
815
816/**
817 * Given a DOM node, return the closest ReactDOMComponent or
818 * ReactDOMTextComponent instance ancestor.
819 */
820function getClosestInstanceFromNode(node) {
821  if (node[internalInstanceKey]) {
822    return node[internalInstanceKey];
823  }
824
825  // Walk up the tree until we find an ancestor whose instance we have cached.
826  var parents = [];
827  while (!node[internalInstanceKey]) {
828    parents.push(node);
829    if (node.parentNode) {
830      node = node.parentNode;
831    } else {
832      // Top of the tree. This node must not be part of a React tree (or is
833      // unmounted, potentially).
834      return null;
835    }
836  }
837
838  var closest;
839  var inst;
840  for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {
841    closest = inst;
842    if (parents.length) {
843      precacheChildNodes(inst, node);
844    }
845  }
846
847  return closest;
848}
849
850/**
851 * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent
852 * instance, or null if the node was not rendered by this React.
853 */
854function getInstanceFromNode(node) {
855  var inst = getClosestInstanceFromNode(node);
856  if (inst != null && inst._hostNode === node) {
857    return inst;
858  } else {
859    return null;
860  }
861}
862
863/**
864 * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding
865 * DOM node.
866 */
867function getNodeFromInstance(inst) {
868  // Without this first invariant, passing a non-DOM-component triggers the next
869  // invariant for a missing parent, which is super confusing.
870  !(inst._hostNode !== undefined) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;
871
872  if (inst._hostNode) {
873    return inst._hostNode;
874  }
875
876  // Walk up the tree until we find an ancestor whose DOM node we have cached.
877  var parents = [];
878  while (!inst._hostNode) {
879    parents.push(inst);
880    !inst._hostParent ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React DOM tree root should always have a node reference.') 
880: _prodInvariant('34') : void 0;
881    inst = inst._hostParent;
882  }
883
884  // Now parents contains each ancestor that does *not* have a cached native
885  // node, and `inst` is the deepest ancestor that does.
886  for (; parents.length; inst = parents.pop()) {
887    precacheChildNodes(inst, inst._hostNode);
888  }
889
890  return inst._hostNode;
891}
892
893var ReactDOMComponentTree = {
894  getClosestInstanceFromNode: getClosestInstanceFromNode,
895  getInstanceFromNode: getInstanceFromNode,
896  getNodeFromInstance: getNodeFromInstance,
897  precacheChildNodes: precacheChildNodes,
898  precacheNode: precacheNode,
899  uncacheNode: uncacheNode
900};
901
902module.exports = ReactDOMComponentTree;
903/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
904
905/***/ }),
906/* 15 */
907/***/ (function(module, exports, __webpack_require__) {
908
909// 7.1.13 ToObject(argument)
910var defined = __webpack_require__(35);
911module.exports = function (it) {
912  return Object(defined(it));
913};
914
915
916/***/ }),
917/* 16 */
918/***/ (function(module, exports, __webpack_require__) {
919
920"use strict";
921/**
922 * Copyright (c) 2013-present, Facebook, Inc.
923 *
924 * This source code is licensed under the MIT license found in the
925 * LICENSE file in the root directory of this source tree.
926 *
927 */
928
929
930
931var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
932
933/**
934 * Simple, lightweight module assisting with the detection and context of
935 * Worker. Helps avoid circular dependencies and allows code to reason about
936 * whether or not they are in a Worker, even if they never include the main
937 * `ReactWorker` dependency.
938 */
939var ExecutionEnvironment = {
940
941  canUseDOM: canUseDOM,
942
943  canUseWorkers: typeof Worker !== 'undefined',
944
945  canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),
946
947  canUseViewport: canUseDOM && !!window.screen,
948
949  isInWorker: !canUseDOM // For now, this is true - might change in the future.
950
951};
952
953module.exports = ExecutionEnvironment;
954
955/***/ }),
956/* 17 */
957/***/ (function(module, exports) {
958
959module.exports = function (it) {
960  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
961  return it;
962};
963
964
965/***/ }),
966/* 18 */
967/***/ (function(module, exports) {
968
969var core = module.exports = { version: '2.5.7' };
970if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
971
972
973/***/ }),
974/* 19 */
975/***/ (function(module, exports, __webpack_require__) {
976
977var global = __webpack_require__(5);
978var hide = __webpack_require__(20);
979var has = __webpack_require__(24);
980var SRC = __webpack_require__(49)('src');
981var TO_STRING = 'toString';
982var $toString = Function[TO_STRING];
983var TPL = ('' + $toString).split(TO_STRING);
984
985__webpack_require__(18).inspectSource = function (it) {
986  return $toString.call(it);
987};
988
989(module.exports = function (O, key, val, safe) {
990  var isFunction = typeof val == 'function';
991  if (isFunction) has(val, 'name') || hide(val, 'name', key);
992  if (O[key] === val) return;
993  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
994  if (O === global) {
995    O[key] = val;
996  } else if (!safe) {
997    delete O[key];
998    hide(O, key, val);
999  } else if (O[key]) {
1000    O[key] = val;
1001  } else {
1002    hide(O, key, val);
1003  }
1004// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
1005})(Function.prototype, TO_STRING, function toString() {
1006  return typeof this == 'function' && this[SRC] || $toString.call(this);
1007});
1008
1009
1010/***/ }),
1011/* 20 */
1012/***/ (function(module, exports, __webpack_require__) {
1013
1014var dP = __webpack_require__(11);
1015var createDesc = __webpack_require__(50);
1016module.exports = __webpack_require__(12) ? function (object, key, value) {
1017  return dP.f(object, key, createDesc(1, value));
1018} : function (object, key, value) {
1019  object[key] = value;
1020  return object;
1021};
1022
1023
1024/***/ }),
1025/* 21 */
1026/***/ (function(module, exports, __webpack_require__) {
1027
1028var $export = __webpack_require__(0);
1029var fails = __webpack_require__(6);
1030var defined = __webpack_require__(35);
1031var quot = /"/g;
1032// B.2.3.2.1 CreateHTML(string, tag, attribute, value)
1033var createHTML = function (string, tag, attribute, value) {
1034  var S = String(defined(string));
1035  var p1 = '<' + tag;
1036  if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '&quot;') + '"';
1037  return p1 + '>
1037' + S + '</' + tag + '>';
1038};
1039module.exports = function (NAME, exec) {
1040  var O = {};
1041  O[NAME] = exec(createHTML);
1042  $export($export.P + $export.F * fails(function () {
1043    var test = ''[NAME]('"');
1044    return test !== test.toLowerCase() || test.split('"').length > 3;
1045  }), 'String', O);
1046};
1047
1048
1049/***/ }),
1050/* 22 */
1051/***/ (function(module, exports, __webpack_require__) {
1052
1053"use strict";
1054/* WEBPACK VAR INJECTION */(function(process) {/**
1055 * Copyright (c) 2016-present, Facebook, Inc.
1056 *
1057 * This source code is licensed under the MIT license found in the
1058 * LICENSE file in the root directory of this source tree.
1059 *
1060 * 
1061 */
1062
1063
1064
1065var _prodInvariant = __webpack_require__(67);
1066
1067var ReactCurrentOwner = __webpack_require__(39);
1068
1069var invariant = __webpack_require__(2);
1070var warning = __webpack_require__(3);
1071
1072function isNative(fn) {
1073  // Based on isNative() from Lodash
1074  var funcToString = Function.prototype.toString;
1075  var hasOwnProperty = Object.prototype.hasOwnProperty;
1076  var reIsNative = RegExp('^' + funcToString
1077  // Take an example native function source for comparison
1078  .call(hasOwnProperty
1079  // Strip regex characters so we can use it for regex
1080  ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'
1081  // Remove hasOwnProperty from the template to make it generic
1082  ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
1083  try {
1084    var source = funcToString.call(fn);
1085    return reIsNative.test(source);
1086  } catch (err) {
1087    return false;
1088  }
1089}
1090
1091var canUseCollections =
1092// Array.from
1093typeof Array.from === 'function' &&
1094// Map
1095typeof Map === 'function' && isNative(Map) &&
1096// Map.prototype.keys
1097Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&
1098// Set
1099typeof Set === 'function' && isNative(Set) &&
1100// Set.prototype.keys
1101Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);
1102
1103var setItem;
1104var getItem;
1105var removeItem;
1106var getItemIDs;
1107var addRoot;
1108var removeRoot;
1109var getRootIDs;
1110
1111if (canUseCollections) {
1112  var itemMap = new Map();
1113  var rootIDSet = new Set();
1114
1115  setItem = function (id, item) {
1116    itemMap.set(id, item);
1117  };
1118  getItem = function (id) {
1119    return itemMap.get(id);
1120  };
1121  removeItem = function (id) {
1122    itemMap['delete'](id);
1123  };
1124  getItemIDs = function () {
1125    return Array.from(itemMap.keys());
1126  };
1127
1128  addRoot = function (id) {
1129    rootIDSet.add(id);
1130  };
1131  removeRoot = function (id) {
1132    rootIDSet['delete'](id);
1133  };
1134  getRootIDs = function () {
1135    return Array.from(rootIDSet.keys());
1136  };
1137} else {
1138  var itemByKey = {};
1139  var rootByKey = {};
1140
1141  // Use non-numeric keys to prevent V8 performance issues:
1142  // https://github.com/facebook/react/pull/7232
1143  var getKeyFromID = function (id) {
1144    return '.' + id;
1145  };
1146  var getIDFromKey = function (key) {
1147    return parseInt(key.substr(1), 10);
1148  };
1149
1150  setItem = function (id, item) {
1151    var key = getKeyFromID(id);
1152    itemByKey[key] = item;
1153  };
1154  getItem = function (id) {
1155    var key = getKeyFromID(id);
1156    return itemByKey[key];
1157  };
1158  removeItem = function (id) {
1159    var key = getKeyFromID(id);
1160    delete itemByKey[key];
1161  };
1162  getItemIDs = function () {
1163    return Object.keys(itemByKey).map(getIDFromKey);
1164  };
1165
1166  addRoot = function (id) {
1167    var key = getKeyFromID(id);
1168    rootByKey[key] = true;
1169  };
1170  removeRoot = function (id) {
1171    var key = getKeyFromID(id);
1172    delete rootByKey[key];
1173  };
1174  getRootIDs = function () {
1175    return Object.keys(rootByKey).map(getIDFromKey);
1176  };
1177}
1178
1179var unmountedIDs = [];
1180
1181function purgeDeep(id) {
1182  var item = getItem(id);
1183  if (item) {
1184    var childIDs = item.childIDs;
1185
1186    removeItem(id);
1187    childIDs.forEach(purgeDeep);
1188  }
1189}
1190
1191function describeComponentFrame(name, source, ownerName) {
1192  return '\n    in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');
1193}
1194
1195function getDisplayName(element) {
1196  if (element == null) {
1197    return '#empty';
1198  } else if (typeof element === 'string' || typeof element === 'number') {
1199    return '#text';
1200  } else if (typeof element.type === 'string') {
1201    return element.type;
1202  } else {
1203    return element.type.displayName || element.type.name || 'Unknown';
1204  }
1205}
1206
1207function describeID(id) {
1208  var name = ReactComponentTreeHook.getDisplayName(id);
1209  var element = ReactComponentTreeHook.getElement(id);
1210  var ownerID = ReactComponentTreeHook.getOwnerID(id);
1211  var ownerName;
1212  if (ownerID) {
1213    ownerName = ReactComponentTreeHook.getDisplayName(ownerID);
1214  }
1215  process.env.NODE_ENV !== 'production' ? warning(element, 'ReactComponentTreeHook: Missing React element for debugID %s when ' + 'building stack', id) : void 0;
1216  return describeComponentFrame(name, element && element._source, ownerName);
1217}
1218
1219var ReactComponentTreeHook = {
1220  onSetChildren: function (id, nextChildIDs) {
1221    var item = getItem(id);
1222    !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;
1223    item.childIDs = nextChildIDs;
1224
1225    for (var i = 0; i < nextChildIDs.length; i++) {
1226      var nextChildID = nextChildIDs[i];
1227      var nextChild = getItem(nextChildID);
1228      !nextChild ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected hook events to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('140') : void 0;
1229      !(nextChild.childIDs != null || typeof nextChild.element !== 'object' || nextChild.element == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onSetChildren() to fire for a container child before its parent includes it in onSetChildren().') : _prodInvariant('141') : void 0;
1230      !nextChild.isMounted ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onMountComponent() to fire for the child before its parent includes it in onSetChildren().') : _prodInvariant('71') : void 0;
1231      if (nextChild.parentID == null) {
1232        nextChild.parentID = id;
1233        // TODO: This shouldn't be necessary but mounting a new root during in
1234        // componentWillMount currently causes not-yet-mounted components to
1235        // be purged from our tree data so their parent id is missing.
1236      }
1237      !(nextChild.parentID === id) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected onBeforeMountComponent() parent and onSetChildren() to be consistent (%s has parents %s and %s).', nextChildID, nextChild.parentID, id) : _prodInvariant('142', nextChildID, nextChild.parentID, id) : void 0;
1238    }
1239  },
1240  onBeforeMountComponent: function (id, element, parentID) {
1241    var item = {
1242      element: element,
1243      parentID: parentID,
1244      text: null,
1245      childIDs: [],
1246      isMounted: false,
1247      updateCount: 0
1248    };
1249    setItem(id, item);
1250  },
1251  onBeforeUpdateComponent: function (id, element) {
1252    var item = getItem(id);
1253    if (!item || !item.isMounted) {
1254      // We may end up here as a result of setState() in componentWillUnmount().
1255      // In this case, ignore the element.
1256      return;
1257    }
1258    item.element = element;
1259  },
1260  onMountComponent: function (id) {
1261    var item = getItem(id);
1262    !item ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Item must have been set') : _prodInvariant('144') : void 0;
1263    item.isMounted = true;
1264    var isRoot = item.parentID === 0;
1265    if (isRoot) {
1266      addRoot(id);
1267    }
1268  },
1269  onUpdateComponent: function (id) {
1270    var item = getItem(id);
1271    if (!item || !item.isMounted) {
1272      // We may end up here as a result of setState() in componentWillUnmount().
1273      // In this case, ignore the element.
1274      return;
1275    }
1276    item.updateCount++;
1277  },
1278  onUnmountComponent: function (id) {
1279    var item = getItem(id);
1280    if (item) {
1281      // We need to check if it exists.
1282      // `item` might not exist if it is inside an error boundary, and a sibling
1283      // error boundary child threw while mounting. Then this instance never
1284      // got a chance to mount, but it still gets an unmounting event during
1285      // the error boundary cleanup.
1286      item.isMounted = false;
1287      var isRoot = item.parentID === 0;
1288      if (isRoot) {
1289        removeRoot(id);
1290      }
1291    }
1292    unmountedIDs.push(id);
1293  },
1294  purgeUnmountedComponents: function () {
1295    if (ReactComponentTreeHook._preventPurging) {
1296      // Should only be used for testing.
1297      return;
1298    }
1299
1300    for (var i = 0; i < unmountedIDs.length; i++) {
1301      var id = unmountedIDs[i];
1302      purgeDeep(id);
1303    }
1304    unmountedIDs.length = 0;
1305  },
1306  isMounted: function (id) {
1307    var item = getItem(id);
1308    return item ? item.isMounted : false;
1309  },
1310  getCurrentStackAddendum: function (topElement) {
1311    var info = '';
1312    if (topElement) {
1313      var name = getDisplayName(topElement);
1314      var owner = topElement._owner;
1315      info += describeComponentFrame(name, topElement._source, owner && owner.getName());
1316    }
1317
1318    var currentOwner = ReactCurrentOwner.current;
1319    var id = currentOwner && currentOwner._debugID;
1320
1321    info += ReactComponentTreeHook.getStackAddendumByID(id);
1322    return info;
1323  },
1324  getStackAddendumByID: function (id) {
1325    var info = '';
1326    while (id) {
1327      info += describeID(id);
1328      id = ReactComponentTreeHook.getParentID(id);
1329    }
1330    return info;
1331  },
1332  getChildIDs: function (id) {
1333    var item = getItem(id);
1334    return item ? item.childIDs : [];
1335  },
1336  getDisplayName: function (id) {
1337    var element = ReactComponentTreeHook.getElement(id);
1338    if (!element) {
1339      return null;
1340    }
1341    return getDisplayName(element);
1342  },
1343  getElement: function (id) {
1344    var item = getItem(id);
1345    return item ? item.element : null;
1346  },
1347  getOwnerID: function (id) {
1348    var element = ReactComponentTreeHook.getElement(id);
1349    if (!element || !element._owner) {
1350      return null;
1351    }
1352    return element._owner._debugID;
1353  },
1354  getParentID: function (id) {
1355    var item = getItem(id);
1356    return item ? item.parentID : null;
1357  },
1358  getSource: function (id) {
1359    var item = getItem(id);
1360    var element = item ? item.element : null;
1361    var source = element != null ? element._source : null;
1362    return source;
1363  },
1364  getText: function (id) {
1365    var element = ReactComponentTreeHook.getElement(id);
1366    if (typeof element === 'string') {
1367      return element;
1368    } else if (typeof element === 'number') {
1369      return '' + element;
1370    } else {
1371      return null;
1372    }
1373  },
1374  getUpdateCount: function (id) {
1375    var item = getItem(id);
1376    return item ? item.updateCount : 0;
1377  },
1378
1379
1380  getRootIDs: getRootIDs,
1381  getRegisteredIDs: getItemIDs,
1382
1383  pushNonStandardWarningStack: function (isCreatingElement, currentSource) {
1384    if (typeof console.reactStack !== 'function') {
1385      return;
1386    }
1387
1388    var stack = [];
1389    var currentOwner = ReactCurrentOwner.current;
1390    var id = currentOwner && currentOwner._debugID;
1391
1392    try {
1393      if (isCreatingElement) {
1394        stack.push({
1395          name: id ? ReactComponentTreeHook.getDisplayName(id) : null,
1396          fileName: currentSource ? currentSource.fileName : null,
1397          lineNumber: currentSource ? currentSource.lineNumber : null
1398        });
1399      }
1400
1401      while (id) {
1402        var element = ReactComponentTreeHook.getElement(id);
1403        var parentID = ReactComponentTreeHook.getParentID(id);
1404        var ownerID = ReactComponentTreeHook.getOwnerID(id);
1405        var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;
1406        var source = element && element._source;
1407        stack.push({
1408          name: ownerName,
1409          fileName: source ? source.fileName : null,
1410          lineNumber: source ? source.lineNumber : null
1411        });
1412        id = parentID;
1413      }
1414    } catch (err) {
1415      // Internal state is messed up.
1416      // Stop building the stack (it's just a nice to have).
1417    }
1418
1419    console.reactStack(stack);
1420  },
1421  popNonStandardWarningStack: function () {
1422    if (typeof console.reactStackEnd !== 'function') {
1423      return;
1424    }
1425    console.reactStackEnd();
1426  }
1427};
1428
1429module.exports = ReactComponentTreeHook;
1430/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
1431
1432/***/ }),
1433/* 23 */
vendor: 4,537 bytes, lines 1434-1616
1434/***/ (function(module, exports) {
1435
1436var toString = {}.toString;
1437
1438module.exports = Array.isArray || function (arr) {
1439  return toString.call(arr) == '[object Array]';
1440};
1441
1442
1443/***/ }),
1444/* 24 */
1445/***/ (function(module, exports) {
1446
1447var hasOwnProperty = {}.hasOwnProperty;
1448module.exports = function (it, key) {
1449  return hasOwnProperty.call(it, key);
1450};
1451
1452
1453/***/ }),
1454/* 25 */
1455/***/ (function(module, exports, __webpack_require__) {
1456
1457// to indexed object, toObject with fallback for non-array-like ES3 strings
1458var IObject = __webpack_require__(74);
1459var defined = __webpack_require__(35);
1460module.exports = function (it) {
1461  return IObject(defined(it));
1462};
1463
1464
1465/***/ }),
1466/* 26 */
1467/***/ (function(module, exports, __webpack_require__) {
1468
1469// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
1470var has = __webpack_require__(24);
1471var toObject = __webpack_require__(15);
1472var IE_PROTO = __webpack_require__(111)('IE_PROTO');
1473var ObjectProto = Object.prototype;
1474
1475module.exports = Object.getPrototypeOf || function (O) {
1476  O = toObject(O);
1477  if (has(O, IE_PROTO)) return O[IE_PROTO];
1478  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
1479    return O.constructor.prototype;
1480  } return O instanceof Object ? ObjectProto : null;
1481};
1482
1483
1484/***/ }),
1485/* 27 */
1486/***/ (function(module, exports, __webpack_require__) {
1487
1488var pIE = __webpack_require__(75);
1489var createDesc = __webpack_require__(50);
1490var toIObject = __webpack_require__(25);
1491var toPrimitive = __webpack_require__(33);
1492var has = __webpack_require__(24);
1493var IE8_DOM_DEFINE = __webpack_require__(156);
1494var gOPD = Object.getOwnPropertyDescriptor;
1495
1496exports.f = __webpack_require__(12) ? gOPD : function getOwnPropertyDescriptor(O, P) {
1497  O = toIObject(O);
1498  P = toPrimitive(P, true);
1499  if (IE8_DOM_DEFINE) try {
1500    return gOPD(O, P);
1501  } catch (e) { /* empty */ }
1502  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
1503};
1504
1505
1506/***/ }),
1507/* 28 */
1508/***/ (function(module, exports, __webpack_require__) {
1509
1510"use strict";
1511/* WEBPACK VAR INJECTION */(function(process) {/**
1512 * Copyright (c) 2016-present, Facebook, Inc.
1513 *
1514 * This source code is licensed under the MIT license found in the
1515 * LICENSE file in the root directory of this source tree.
1516 *
1517 * 
1518 */
1519
1520
1521
1522// Trust the developer to only use ReactInstrumentation with a __DEV__ check
1523
1524var debugTool = null;
1525
1526if (process.env.NODE_ENV !== 'production') {
1527  var ReactDebugTool = __webpack_require__(459);
1528  debugTool = ReactDebugTool;
1529}
1530
1531module.exports = { debugTool: debugTool };
1532/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
1533
1534/***/ }),
1535/* 29 */
1536/***/ (function(module, exports) {
1537
1538var toString = {}.toString;
1539
1540module.exports = function (it) {
1541  return toString.call(it).slice(8, -1);
1542};
1543
1544
1545/***/ }),
1546/* 30 */
1547/***/ (function(module, exports, __webpack_require__) {
1548
1549// optional / simple context binding
1550var aFunction = __webpack_require__(17);
1551module.exports = function (fn, that, length) {
1552  aFunction(fn);
1553  if (that === undefined) return fn;
1554  switch (length) {
1555    case 1: return function (a) {
1556      return fn.call(that, a);
1557    };
1558    case 2: return function (a, b) {
1559      return fn.call(that, a, b);
1560    };
1561    case 3: return function (a, b, c) {
1562      return fn.call(that, a, b, c);
1563    };
1564  }
1565  return function (/* ...args */) {
1566    return fn.apply(that, arguments);
1567  };
1568};
1569
1570
1571/***/ }),
1572/* 31 */
1573/***/ (function(module, exports, __webpack_require__) {
1574
1575"use strict";
1576
1577var fails = __webpack_require__(6);
1578
1579module.exports = function (method, arg) {
1580  return !!method && fails(function () {
1581    // eslint-disable-next-line no-useless-call
1582    arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
1583  });
1584};
1585
1586
1587/***/ }),
1588/* 32 */
1589/***/ (function(module, exports, __webpack_require__) {
1590
1591"use strict";
1592
1593
1594module.exports = __webpack_require__(66);
1595
1596
1597/***/ }),
1598/* 33 */
1599/***/ (function(module, exports, __webpack_require__) {
1600
1601// 7.1.1 ToPrimitive(input [, PreferredType])
1602var isObject = __webpack_require__(7);
1603// instead of the ES6 spec version, we didn't implement @@toPrimitive case
1604// and the second argument - flag - preferred type is a string
1605module.exports = function (it, S) {
1606  if (!isObject(it)) return it;
1607  var fn, val;
1608  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1609  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
1610  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1611  throw TypeError("Can't convert object to primitive value");
1612};
1613
1614
1615/***/ }),
1616/* 34 */
vendor: 4,875 bytes, lines 1617-1807
1617/***/ (function(module, exports) {
1618
1619// 7.1.4 ToInteger
1620var ceil = Math.ceil;
1621var floor = Math.floor;
1622module.exports = function (it) {
1623  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1624};
1625
1626
1627/***/ }),
1628/* 35 */
1629/***/ (function(module, exports) {
1630
1631// 7.2.1 RequireObjectCoercible(argument)
1632module.exports = function (it) {
1633  if (it == undefined) throw TypeError("Can't call method on  " + it);
1634  return it;
1635};
1636
1637
1638/***/ }),
1639/* 36 */
1640/***/ (function(module, exports, __webpack_require__) {
1641
1642// most Object methods by ES6 should accept primitives
1643var $export = __webpack_require__(0);
1644var core = __webpack_require__(18);
1645var fails = __webpack_require__(6);
1646module.exports = function (KEY, exec) {
1647  var fn = (core.Object || {})[KEY] || Object[KEY];
1648  var exp = {};
1649  exp[KEY] = exec(fn);
1650  $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
1651};
1652
1653
1654/***/ }),
1655/* 37 */
1656/***/ (function(module, exports, __webpack_require__) {
1657
1658// 0 -> Array#forEach
1659// 1 -> Array#map
1660// 2 -> Array#filter
1661// 3 -> Array#some
1662// 4 -> Array#every
1663// 5 -> Array#find
1664// 6 -> Array#findIndex
1665var ctx = __webpack_require__(30);
1666var IObject = __webpack_require__(74);
1667var toObject = __webpack_require__(15);
1668var toLength = __webpack_require__(13);
1669var asc = __webpack_require__(130);
1670module.exports = function (TYPE, $create) {
1671  var IS_MAP = TYPE == 1;
1672  var IS_FILTER = TYPE == 2;
1673  var IS_SOME = TYPE == 3;
1674  var IS_EVERY = TYPE == 4;
1675  var IS_FIND_INDEX = TYPE == 6;
1676  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
1677  var create = $create || asc;
1678  return function ($this, callbackfn, that) {
1679    var O = toObject($this);
1680    var self = IObject(O);
1681    var f = ctx(callbackfn, that, 3);
1682    var length = toLength(self.length);
1683    var index = 0;
1684    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
1685    var val, res;
1686    for (;length > index; index++) if (NO_HOLES || index in self) {
1687      val = self[index];
1688      res = f(val, index, O);
1689      if (TYPE) {
1690        if (IS_MAP) result[index] = res;   // map
1691        else if (res) switch (TYPE) {
1692          case 3: return true;             // some
1693          case 5: return val;              // find
1694          case 6: return index;            // findIndex
1695          case 2: result.push(val);        // filter
1696        } else if (IS_EVERY) return false; // every
1697      }
1698    }
1699    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
1700  };
1701};
1702
1703
1704/***/ }),
1705/* 38 */
1706/***/ (function(module, exports, __webpack_require__) {
1707
1708"use strict";
1709
1710
1711/**
1712 * Copyright (c) 2013-present, Facebook, Inc.
1713 *
1714 * This source code is licensed under the MIT license found in the
1715 * LICENSE file in the root directory of this source tree.
1716 *
1717 * 
1718 */
1719
1720function makeEmptyFunction(arg) {
1721  return function () {
1722    return arg;
1723  };
1724}
1725
1726/**
1727 * This function accepts and discards inputs; it has no side effects. This is
1728 * primarily useful idiomatically for overridable function endpoints which
1729 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
1730 */
1731var emptyFunction = function emptyFunction() {};
1732
1733emptyFunction.thatReturns = makeEmptyFunction;
1734emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
1735emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
1736emptyFunction.thatReturnsNull = makeEmptyFunction(null);
1737emptyFunction.thatReturnsThis = function () {
1738  return this;
1739};
1740emptyFunction.thatReturnsArgument = function (arg) {
1741  return arg;
1742};
1743
1744module.exports = emptyFunction;
1745
1746/***/ }),
1747/* 39 */
1748/***/ (function(module, exports, __webpack_require__) {
1749
1750"use strict";
1751/**
1752 * Copyright (c) 2013-present, Facebook, Inc.
1753 *
1754 * This source code is licensed under the MIT license found in the
1755 * LICENSE file in the root directory of this source tree.
1756 *
1757 * 
1758 */
1759
1760
1761
1762/**
1763 * Keeps track of the current owner.
1764 *
1765 * The current owner is the component who should own any components that are
1766 * currently being constructed.
1767 */
1768var ReactCurrentOwner = {
1769  /**
1770   * @internal
1771   * @type {ReactComponent}
1772   */
1773  current: null
1774};
1775
1776module.exports = ReactCurrentOwner;
1777
1778/***/ }),
1779/* 40 */
1780/***/ (function(module, exports, __webpack_require__) {
1781
1782"use strict";
1783/* WEBPACK VAR INJECTION */(function(process) {/**
1784 * Copyright (c) 2013-present, Facebook, Inc.
1785 *
1786 * This source code is licensed under the MIT license found in the
1787 * LICENSE file in the root directory of this source tree.
1788 *
1789 */
1790
1791
1792
1793var _prodInvariant = __webpack_require__(8),
1794    _assign = __webpack_require__(10);
1795
1796var CallbackQueue = __webpack_require__(199);
1797var PooledClass = __webpack_require__(60);
1798var ReactFeatureFlags = __webpack_require__(200);
1799var ReactReconciler = __webpack_require__(68);
1800var Transaction = __webpack_require__(100);
1801
1802var invariant = __webpack_require__(2);
1803
1804var dirtyComponents = [];
1805var updateBatchNumber = 0;
1806var asapCallbackQueue = CallbackQueue.getPooled();
1807var asapEnqueued = false;
1808
1809var batchingStrategy = null;
1810
1811function ensureInjected() {
1812  !(ReactUpdates.ReactReconcileTransaction && batchingStrategy) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must inject a reconcile transaction class and batching strategy') : _prodInvariant('123') : void 0;
1813}
1814
1815var NESTED_UPDATES = {
1816  initialize: function () {
1817    this.dirtyComponentsLength = dirtyComponents.length;
1818  },
1819  close: function () {
1820    if (this.dirtyComponentsLength !== dirtyComponents.length) {
1821      // Additional updates were enqueued by componentDidUpdate handlers or
1822      // similar; before our own UPDATE_QUEUEING wrapper closes, we want to run
1823      // these new updates so that if A's componentDidUpdate calls setState on
1824      // B, B will update before the callback A's updater provided when calling
1825      // setState.
1826      dirtyComponents.splice(0, this.dirtyComponentsLength);
1827      flushBatchedUpdates();
1828    } else {
1829      dirtyComponents.length = 0;
1830    }
1831  }
1832};
1833
1834var UPDATE_QUEUEING = {
1835  initialize: function () {
1836    this.callbackQueue.reset();
1837  },
1838  close: function () {
1839    this.callbackQueue.notifyAll();
1840  }
1841};
1842
1843var TRANSACTION_WRAPPERS = [NESTED_UPDATES, UPDATE_QUEUEING];
1844
1845function ReactUpdatesFlushTransaction() {
1846  this.reinitializeTransaction();
1847  this.dirtyComponentsLength = null;
1848  this.callbackQueue = CallbackQueue.getPooled();
1849  this.reconcileTransaction = ReactUpdates.ReactReconcileTransaction.getPooled(
1850  /* useCreateElement */true);
1851}
1852
1853_assign(ReactUpdatesFlushTransaction.prototype, Transaction, {
1854  getTransactionWrappers: function () {
1855    return TRANSACTION_WRAPPERS;
1856  },
1857
1858  destructor: function () {
1859    this.dirtyComponentsLength = null;
1860    CallbackQueue.release(this.callbackQueue);
1861    this.callbackQueue = null;
1862    ReactUpdates.ReactReconcileTransaction.release(this.reconcileTransaction);
1863    this.reconcileTransaction = null;
1864  },
1865
1866  perform: function (method, scope, a) {
1867    // Essentially calls `this.reconcileTransaction.perform(method, scope, a)`
1868    // with this transaction's wrappers around it.
1869    return Transaction.perform.call(this, this.reconcileTransaction.perform, this.reconcileTransaction, method, scope, a);
1870  }
1871});
1872
1873PooledClass.addPoolingTo(ReactUpdatesFlushTransaction);
1874
1875function batchedUpdates(callback, a, b, c, d, e) {
1876  ensureInjected();
1877  return batchingStrategy.batchedUpdates(callback, a, b, c, d, e);
1878}
1879
1880/**
1881 * Array comparator for ReactComponents by mount ordering.
1882 *
1883 * @param {ReactComponent} c1 first component you're comparing
1884 * @param {ReactComponent} c2 second component you're comparing
1885 * @return {number} Return value usable by Array.prototype.sort().
1886 */
1887function mountOrderComparator(c1, c2) {
1888  return c1._mountOrder - c2._mountOrder;
1889}
1890
1891function runBatchedUpdates(transaction) {
1892  var len = transaction.dirtyComponentsLength;
1893  !(len === dirtyComponents.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected flush transaction\'s stored dirty-components length (%s) to match dirty-components array length (%s).', len, dirtyComponents.length) : _prodInvariant('124', len, dirtyComponents.length) : void 0;
1894
1895  // Since reconciling a component higher in the owner hierarchy usually (not
1896  // always -- see shouldComponentUpdate()) will reconcile children, reconcile
1897  // them before their children by sorting the array.
1898  dirtyComponents.sort(mountOrderComparator);
1899
1900  // Any updates enqueued while reconciling must be performed after this entire
1901  // batch. Otherwise, if dirtyComponents is [A, B] where A has children B and
1902  // C, B could update twice in a single batch if C's render enqueues an update
1903  // to B (since B would have already updated, we should skip it, and the only
1904  // way we can know to do so is by checking the batch counter).
1905  updateBatchNumber++;
1906
1907  for (var i = 0; i < len; i++) {
1908    // If a component is unmounted before pending changes apply, it will still
1909    // be here, but we assume that it has cleared its _pendingCallbacks and
1910    // that performUpdateIfNecessary is a noop.
1911    var component = dirtyComponents[i];
1912
1913    // If performUpdateIfNecessary happens to enqueue any new updates, we
1914    // shouldn't execute the callbacks until the next render happens, so
1915    // stash the callbacks first
1916    var callbacks = component._pendingCallbacks;
1917    component._pendingCallbacks = null;
1918
1919    var markerName;
1920    if (ReactFeatureFlags.logTopLevelRenders) {
1921      var namedComponent = component;
1922      // Duck type TopLevelWrapper. This is probably always true.
1923      if (component._currentElement.type.isReactTopLevelWrapper) {
1924        namedComponent = component._renderedComponent;
1925      }
1926      markerName = 'React update: ' + namedComponent.getName();
1927      console.time(markerName);
1928    }
1929
1930    ReactReconciler.performUpdateIfNecessary(component, transaction.reconcileTransaction, updateBatchNumber);
1931
1932    if (markerName) {
1933      console.timeEnd(markerName);
1934    }
1935
1936    if (callbacks) {
1937      for (var j = 0; j < callbacks.length; j++) {
1938        transaction.callbackQueue.enqueue(callbacks[j], component.getPublicInstance());
1939      }
1940    }
1941  }
1942}
1943
1944var flushBatchedUpdates = function () {
1945  // ReactUpdatesFlushTransaction's wrappers will clear the dirtyComponents
1946  // array and perform any updates enqueued by mount-ready handlers (i.e.,
1947  // componentDidUpdate) but we need to check here too in order to catch
1948  // updates enqueued by setState callbacks and asap calls.
1949  while (dirtyComponents.length || asapEnqueued) {
1950    if (dirtyComponents.length) {
1951      var transaction = ReactUpdatesFlushTransaction.getPooled();
1952      transaction.perform(runBatchedUpdates, null, transaction);
1953      ReactUpdatesFlushTransaction.release(transaction);
1954    }
1955
1956    if (asapEnqueued) {
1957      asapEnqueued = false;
1958      var queue = asapCallbackQueue;
1959      asapCallbackQueue = CallbackQueue.getPooled();
1960      queue.notifyAll();
1961      CallbackQueue.release(queue);
1962    }
1963  }
1964};
1965
1966/**
1967 * Mark a component as needing a rerender, adding an optional callback to a
1968 * list of functions which will be executed once the rerender occurs.
1969 */
1970function enqueueUpdate(component) {
1971  ensureInjected();
1972
1973  // Various parts of our code (such as ReactCompositeComponent's
1974  // _renderValidatedComponent) assume that calls to render aren't nested;
1975  // verify that that's the case. (This is called by each top-level update
1976  // function, like setState, forceUpdate, etc.; creation and
1977  // destruction of top-level components is guarded in ReactMount.)
1978
1979  if (!batchingStrategy.isBatchingUpdates) {
1980    batchingStrategy.batchedUpdates(enqueueUpdate, component);
1981    return;
1982  }
1983
1984  dirtyComponents.push(component);
1985  if (component._updateBatchNumber == null) {
1986    component._updateBatchNumber = updateBatchNumber + 1;
1987  }
1988}
1989
1990/**
1991 * Enqueue a callback to be run at the end of the current batching cycle. Throws
1992 * if no updates are currently being performed.
1993 */
1994function asap(callback, context) {
1995  invariant(batchingStrategy.isBatchingUpdates, "ReactUpdates.asap: Can't enqueue an asap callback in a context where" + 'updates are not being batched.');
1996  asapCallbackQueue.enqueue(callback, context);
1997  asapEnqueued = true;
1998}
1999
2000var ReactUpdatesInjection = {
2001  injectReconcileTransaction: function (ReconcileTransaction) {
2002    !ReconcileTransaction ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a reconcile transaction class') : _prodInvariant('126') : void 0;
2003    ReactUpdates.ReactReconcileTransaction = ReconcileTransaction;
2004  },
2005
2006  injectBatchingStrategy: function (_batchingStrategy) {
2007    !_batchingStrategy ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batching strategy') : _prodInvariant('127') : void 0;
2008    !(typeof _batchingStrategy.batchedUpdates === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide a batchedUpdates() function') : _prodInvariant('128') : void 0;
2009    !(typeof _batchingStrategy.isBatchingUpdates === 'boolean') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactUpdates: must provide an isBatchingUpdates boolean attribute') : _prodInvariant('129') : void 0;
2010    batchingStrategy = _batchingStrategy;
2011  }
2012};
2013
2014var ReactUpdates = {
2015  /**
2016   * React references `ReactReconcileTransaction` using this property in order
2017   * to allow dependency injection.
2018   *
2019   * @internal
2020   */
2021  ReactReconcileTransaction: null,
2022
2023  batchedUpdates: batchedUpdates,
2024  enqueueUpdate: enqueueUpdate,
2025  flushBatchedUpdates: flushBatchedUpdates,
2026  injection: ReactUpdatesInjection,
2027  asap: asap
2028};
2029
2030module.exports = ReactUpdates;
2031/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
2032
2033/***/ }),
2034/* 41 */
2035/***/ (function(module, exports, __webpack_require__) {
2036
2037"use strict";
2038
2039if (__webpack_require__(12)) {
2040  var LIBRARY = __webpack_require__(44);
2041  var global = __webpack_require__(5);
2042  var fails = __webpack_require__(6);
2043  var $export = __webpack_require__(0);
2044  var $typed = __webpack_require__(93);
2045  var $buffer = __webpack_require__(135);
2046  var ctx = __webpack_require__(30);
2047  var anInstance = __webpack_require__(55);
2048  var propertyDesc = __webpack_require__(50);
2049  var hide = __webpack_require__(20);
2050  var redefineAll = __webpack_require__(54);
2051  var toInteger = __webpack_require__(34);
2052  var toLength = __webpack_require__(13);
2053  var toIndex = __webpack_require__(180);
2054  var toAbsoluteIndex = __webpack_require__(53);
2055  var toPrimitive = __webpack_require__(33);
2056  var has = __webpack_require__(24);
2057  var classof = __webpack_require__(73);
2058  var isObject = __webpack_require__(7);
2059  var toObject = __webpack_require__(15);
2060  var isArrayIter = __webpack_require__(117);
2061  var create = __webpack_require__(51);
2062  var getPrototypeOf = __webpack_require__(26);
2063  var gOPN = __webpack_require__(58).f;
2064  var getIterFn = __webpack_require__(118);
2065  var uid = __webpack_require__(49);
2066  var wks = __webpack_require__(9);
2067  var createArrayMethod = __webpack_require__(37);
2068  var createArrayIncludes = __webpack_require__(83);
2069  var speciesConstructor = __webpack_require__(91);
2070  var ArrayIterators = __webpack_require__(115);
2071  var Iterators = __webpack_require__(61);
2072  var $iterDetect = __webpack_require__(85);
2073  var setSpecies = __webpack_require__(57);
2074  var arrayFill = __webpack_require__(131);
2075  var arrayCopyWithin = __webpack_require__(174);
2076  var $DP = __webpack_require__(11);
2077  var $GOPD = __webpack_require__(27
vendor: 8,586 bytes, lines 2077-2305
2077);
2078  var dP = $DP.f;
2079  var gOPD = $GOPD.f;
2080  var RangeError = global.RangeError;
2081  var TypeError = global.TypeError;
2082  var Uint8Array = global.Uint8Array;
2083  var ARRAY_BUFFER = 'ArrayBuffer';
2084  var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;
2085  var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';
2086  var PROTOTYPE = 'prototype';
2087  var ArrayProto = Array[PROTOTYPE];
2088  var $ArrayBuffer = $buffer.ArrayBuffer;
2089  var $DataView = $buffer.DataView;
2090  var arrayForEach = createArrayMethod(0);
2091  var arrayFilter = createArrayMethod(2);
2092  var arraySome = createArrayMethod(3);
2093  var arrayEvery = createArrayMethod(4);
2094  var arrayFind = createArrayMethod(5);
2095  var arrayFindIndex = createArrayMethod(6);
2096  var arrayIncludes = createArrayIncludes(true);
2097  var arrayIndexOf = createArrayIncludes(false);
2098  var arrayValues = ArrayIterators.values;
2099  var arrayKeys = ArrayIterators.keys;
2100  var arrayEntries = ArrayIterators.entries;
2101  var arrayLastIndexOf = ArrayProto.lastIndexOf;
2102  var arrayReduce = ArrayProto.reduce;
2103  var arrayReduceRight = ArrayProto.reduceRight;
2104  var arrayJoin = ArrayProto.join;
2105  var arraySort = ArrayProto.sort;
2106  var arraySlice = ArrayProto.slice;
2107  var arrayToString = ArrayProto.toString;
2108  var arrayToLocaleString = ArrayProto.toLocaleString;
2109  var ITERATOR = wks('iterator');
2110  var TAG = wks('toStringTag');
2111  var TYPED_CONSTRUCTOR = uid('typed_constructor');
2112  var DEF_CONSTRUCTOR = uid('def_constructor');
2113  var ALL_CONSTRUCTORS = $typed.CONSTR;
2114  var TYPED_ARRAY = $typed.TYPED;
2115  var VIEW = $typed.VIEW;
2116  var WRONG_LENGTH = 'Wrong length!';
2117
2118  var $map = createArrayMethod(1, function (O, length) {
2119    return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
2120  });
2121
2122  var LITTLE_ENDIAN = fails(function () {
2123    // eslint-disable-next-line no-undef
2124    return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;
2125  });
2126
2127  var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {
2128    new Uint8Array(1).set({});
2129  });
2130
2131  var toOffset = function (it, BYTES) {
2132    var offset = toInteger(it);
2133    if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
2134    return offset;
2135  };
2136
2137  var validate = function (it) {
2138    if (isObject(it) && TYPED_ARRAY in it) return it;
2139    throw TypeError(it + ' is not a typed array!');
2140  };
2141
2142  var allocate = function (C, length) {
2143    if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
2144      throw TypeError('It is not a typed array constructor!');
2145    } return new C(length);
2146  };
2147
2148  var speciesFromList = function (O, list) {
2149    return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
2150  };
2151
2152  var fromList = function (C, list) {
2153    var index = 0;
2154    var length = list.length;
2155    var result = allocate(C, length);
2156    while (length > index) result[index] = list[index++];
2157    return result;
2158  };
2159
2160  var addGetter = function (it, key, internal) {
2161    dP(it, key, { get: function () { return this._d[internal]; } });
2162  };
2163
2164  var $from = function from(source /* , mapfn, thisArg */) {
2165    var O = toObject(source);
2166    var aLen = arguments.length;
2167    var mapfn = aLen > 1 ? arguments[1] : undefined;
2168    var mapping = mapfn !== undefined;
2169    var iterFn = getIterFn(O);
2170    var i, length, values, result, step, iterator;
2171    if (iterFn != undefined && !isArrayIter(iterFn)) {
2172      for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
2173        values.push(step.value);
2174      } O = values;
2175    }
2176    if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
2177    for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
2178      result[i] = mapping ? mapfn(O[i], i) : O[i];
2179    }
2180    return result;
2181  };
2182
2183  var $of = function of(/* ...items */) {
2184    var index = 0;
2185    var length = arguments.length;
2186    var result = allocate(this, length);
2187    while (length > index) result[index] = arguments[index++];
2188    return result;
2189  };
2190
2191  // iOS Safari 6.x fails here
2192  var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });
2193
2194  var $toLocaleString = function toLocaleString() {
2195    return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);
2196  };
2197
2198  var proto = {
2199    copyWithin: function copyWithin(target, start /* , end */) {
2200      return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);
2201    },
2202    every: function every(callbackfn /* , thisArg */) {
2203      return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
2204    },
2205    fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars
2206      return arrayFill.apply(validate(this), arguments);
2207    },
2208    filter: function filter(callbackfn /* , thisArg */) {
2209      return speciesFromList(this, arrayFilter(validate(this), callbackfn,
2210        arguments.length > 1 ? arguments[1] : undefined));
2211    },
2212    find: function find(predicate /* , thisArg */) {
2213      return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
2214    },
2215    findIndex: function findIndex(predicate /* , thisArg */) {
2216      return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);
2217    },
2218    forEach: function forEach(callbackfn /* , thisArg */) {
2219      arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
2220    },
2221    indexOf: function indexOf(searchElement /* , fromIndex */) {
2222      return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
2223    },
2224    includes: function includes(searchElement /* , fromIndex */) {
2225      return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);
2226    },
2227    join: function join(separator) { // eslint-disable-line no-unused-vars
2228      return arrayJoin.apply(validate(this), arguments);
2229    },
2230    lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars
2231      return arrayLastIndexOf.apply(validate(this), arguments);
2232    },
2233    map: function map(mapfn /* , thisArg */) {
2234      return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);
2235    },
2236    reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
2237      return arrayReduce.apply(validate(this), arguments);
2238    },
2239    reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars
2240      return arrayReduceRight.apply(validate(this), arguments);
2241    },
2242    reverse: function reverse() {
2243      var that = this;
2244      var length = validate(that).length;
2245      var middle = Math.floor(length / 2);
2246      var index = 0;
2247      var value;
2248      while (index < middle) {
2249        value = that[index];
2250        that[index++] = that[--length];
2251        that[length] = value;
2252      } return that;
2253    },
2254    some: function some(callbackfn /* , thisArg */) {
2255      return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);
2256    },
2257    sort: function sort(comparefn) {
2258      return arraySort.call(validate(this), comparefn);
2259    },
2260    subarray: function subarray(begin, end) {
2261      var O = validate(this);
2262      var length = O.length;
2263      var $begin = toAbsoluteIndex(begin, length);
2264      return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
2265        O.buffer,
2266        O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
2267        toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
2268      );
2269    }
2270  };
2271
2272  var $slice = function slice(start, end) {
2273    return speciesFromList(this, arraySlice.call(validate(this), start, end));
2274  };
2275
2276  var $set = function set(arrayLike /* , offset */) {
2277    validate(this);
2278    var offset = toOffset(arguments[1], 1);
2279    var length = this.length;
2280    var src = toObject(arrayLike);
2281    var len = toLength(src.length);
2282    var index = 0;
2283    if (len + offset > length) throw RangeError(WRONG_LENGTH);
2284    while (index < len) this[offset + index] = src[index++];
2285  };
2286
2287  var $iterators = {
2288    entries: function entries() {
2289      return arrayEntries.call(validate(this));
2290    },
2291    keys: function keys() {
2292      return arrayKeys.call(validate(this));
2293    },
2294    values: function values() {
2295      return arrayValues.call(validate(this));
2296    }
2297  };
2298
2299  var isTAIndex = function (target, key) {
2300    return isObject(target)
2301      && target[TYPED_ARRAY]
2302      && typeof key != 'symbol'
2303      && key in target
2304      && String(+key) == String(key);
2305  };
vendor: 7,985 bytes, lines 2306-2517
2306  var $getDesc = function getOwnPropertyDescriptor(target, key) {
2307    return isTAIndex(target, key = toPrimitive(key, true))
2308      ? propertyDesc(2, target[key])
2309      : gOPD(target, key);
2310  };
2311  var $setDesc = function defineProperty(target, key, desc) {
2312    if (isTAIndex(target, key = toPrimitive(key, true))
2313      && isObject(desc)
2314      && has(desc, 'value')
2315      && !has(desc, 'get')
2316      && !has(desc, 'set')
2317      // TODO: add validation descriptor w/o calling accessors
2318      && !desc.configurable
2319      && (!has(desc, 'writable') || desc.writable)
2320      && (!has(desc, 'enumerable') || desc.enumerable)
2321    ) {
2322      target[key] = desc.value;
2323      return target;
2324    } return dP(target, key, desc);
2325  };
2326
2327  if (!ALL_CONSTRUCTORS) {
2328    $GOPD.f = $getDesc;
2329    $DP.f = $setDesc;
2330  }
2331
2332  $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {
2333    getOwnPropertyDescriptor: $getDesc,
2334    defineProperty: $setDesc
2335  });
2336
2337  if (fails(function () { arrayToString.call({}); })) {
2338    arrayToString = arrayToLocaleString = function toString() {
2339      return arrayJoin.call(this);
2340    };
2341  }
2342
2343  var $TypedArrayPrototype$ = redefineAll({}, proto);
2344  redefineAll($TypedArrayPrototype$, $iterators);
2345  hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
2346  redefineAll($TypedArrayPrototype$, {
2347    slice: $slice,
2348    set: $set,
2349    constructor: function () { /* noop */ },
2350    toString: arrayToString,
2351    toLocaleString: $toLocaleString
2352  });
2353  addGetter($TypedArrayPrototype$, 'buffer', 'b');
2354  addGetter($TypedArrayPrototype$, 'byteOffset', 'o');
2355  addGetter($TypedArrayPrototype$, 'byteLength', 'l');
2356  addGetter($TypedArrayPrototype$, 'length', 'e');
2357  dP($TypedArrayPrototype$, TAG, {
2358    get: function () { return this[TYPED_ARRAY]; }
2359  });
2360
2361  // eslint-disable-next-line max-statements
2362  module.exports = function (KEY, BYTES, wrapper, CLAMPED) {
2363    CLAMPED = !!CLAMPED;
2364    var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';
2365    var GETTER = 'get' + KEY;
2366    var SETTER = 'set' + KEY;
2367    var TypedArray = global[NAME];
2368    var Base = TypedArray || {};
2369    var TAC = TypedArray && getPrototypeOf(TypedArray);
2370    var FORCED = !TypedArray || !$typed.ABV;
2371    var O = {};
2372    var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];
2373    var getter = function (that, index) {
2374      var data = that._d;
2375      return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);
2376    };
2377    var setter = function (that, index, value) {
2378      var data = that._d;
2379      if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;
2380      data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);
2381    };
2382    var addElement = function (that, index) {
2383      dP(that, index, {
2384        get: function () {
2385          return getter(this, index);
2386        },
2387        set: function (value) {
2388          return setter(this, index, value);
2389        },
2390        enumerable: true
2391      });
2392    };
2393    if (FORCED) {
2394      TypedArray = wrapper(function (that, data, $offset, $length) {
2395        anInstance(that, TypedArray, NAME, '_d');
2396        var index = 0;
2397        var offset = 0;
2398        var buffer, byteLength, length, klass;
2399        if (!isObject(data)) {
2400          length = toIndex(data);
2401          byteLength = length * BYTES;
2402          buffer = new $ArrayBuffer(byteLength);
2403        } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
2404          buffer = data;
2405          offset = toOffset($offset, BYTES);
2406          var $len = data.byteLength;
2407          if ($length === undefined) {
2408            if ($len % BYTES) throw RangeError(WRONG_LENGTH);
2409            byteLength = $len - offset;
2410            if (byteLength < 0) throw RangeError(WRONG_LENGTH);
2411          } else {
2412            byteLength = toLength($length) * BYTES;
2413            if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
2414          }
2415          length = byteLength / BYTES;
2416        } else if (TYPED_ARRAY in data) {
2417          return fromList(TypedArray, data);
2418        } else {
2419          return $from.call(TypedArray, data);
2420        }
2421        hide(that, '_d', {
2422          b: buffer,
2423          o: offset,
2424          l: byteLength,
2425          e: length,
2426          v: new $DataView(buffer)
2427        });
2428        while (index < length) addElement(that, index++);
2429      });
2430      TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
2431      hide(TypedArrayPrototype, 'constructor', TypedArray);
2432    } else if (!fails(function () {
2433      TypedArray(1);
2434    }) || !fails(function () {
2435      new TypedArray(-1); // eslint-disable-line no-new
2436    }) || !$iterDetect(function (iter) {
2437      new TypedArray(); // eslint-disable-line no-new
2438      new TypedArray(null); // eslint-disable-line no-new
2439      new TypedArray(1.5); // eslint-disable-line no-new
2440      new TypedArray(iter); // eslint-disable-line no-new
2441    }, true)) {
2442      TypedArray = wrapper(function (that, data, $offset, $length) {
2443        anInstance(that, TypedArray, NAME);
2444        var klass;
2445        // `ws` module bug, temporarily remove validation length for Uint8Array
2446        // https://github.com/websockets/ws/pull/645
2447        if (!isObject(data)) return new Base(toIndex(data));
2448        if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
2449          return $length !== undefined
2450            ? new Base(data, toOffset($offset, BYTES), $length)
2451            : $offset !== undefined
2452              ? new Base(data, toOffset($offset, BYTES))
2453              : new Base(data);
2454        }
2455        if (TYPED_ARRAY in data) return fromList(TypedArray, data);
2456        return $from.call(TypedArray, data);
2457      });
2458      arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
2459        if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
2460      });
2461      TypedArray[PROTOTYPE] = TypedArrayPrototype;
2462      if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
2463    }
2464    var $nativeIterator = TypedArrayPrototype[ITERATOR];
2465    var CORRECT_ITER_NAME = !!$nativeIterator
2466      && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
2467    var $iterator = $iterators.values;
2468    hide(TypedArray, TYPED_CONSTRUCTOR, true);
2469    hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
2470    hide(TypedArrayPrototype, VIEW, true);
2471    hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
2472
2473    if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
2474      dP(TypedArrayPrototype, TAG, {
2475        get: function () { return NAME; }
2476      });
2477    }
2478
2479    O[NAME] = TypedArray;
2480
2481    $export($export.G + $export.W + $export.F * (TypedArray != Base), O);
2482
2483    $export($export.S, NAME, {
2484      BYTES_PER_ELEMENT: BYTES
2485    });
2486
2487    $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {
2488      from: $from,
2489      of: $of
2490    });
2491
2492    if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
2493
2494    $export($export.P, NAME, proto);
2495
2496    setSpecies(NAME);
2497
2498    $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
2499
2500    $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
2501
2502    if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
2503
2504    $export($export.P + $export.F * fails(function () {
2505      new TypedArray(1).slice();
2506    }), NAME, { slice: $slice });
2507
2508    $export($export.P + $export.F * (fails(function () {
2509      return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();
2510    }) || !fails(function () {
2511      TypedArrayPrototype.toLocaleString.call([1, 2]);
2512    })), NAME, { toLocaleString: $toLocaleString });
2513
2514    Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
2515    if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
2516  };
2517} else module.exports = function () { /* empty */ };
vendor: 2,425 bytes, lines 2518-2599
2518
2519
2520/***/ }),
2521/* 42 */
2522/***/ (function(module, exports, __webpack_require__) {
2523
2524var Map = __webpack_require__(116);
2525var $export = __webpack_require__(0);
2526var shared = __webpack_require__(82)('metadata');
2527var store = shared.store || (shared.store = new (__webpack_require__(178))());
2528
2529var getOrCreateMetadataMap = function (target, targetKey, create) {
2530  var targetMetadata = store.get(target);
2531  if (!targetMetadata) {
2532    if (!create) return undefined;
2533    store.set(target, targetMetadata = new Map());
2534  }
2535  var keyMetadata = targetMetadata.get(targetKey);
2536  if (!keyMetadata) {
2537    if (!create) return undefined;
2538    targetMetadata.set(targetKey, keyMetadata = new Map());
2539  } return keyMetadata;
2540};
2541var ordinaryHasOwnMetadata = function (MetadataKey, O, P) {
2542  var metadataMap = getOrCreateMetadataMap(O, P, false);
2543  return metadataMap === undefined ? false : metadataMap.has(MetadataKey);
2544};
2545var ordinaryGetOwnMetadata = function (MetadataKey, O, P) {
2546  var metadataMap = getOrCreateMetadataMap(O, P, false);
2547  return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);
2548};
2549var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {
2550  getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);
2551};
2552var ordinaryOwnMetadataKeys = function (target, targetKey) {
2553  var metadataMap = getOrCreateMetadataMap(target, targetKey, false);
2554  var keys = [];
2555  if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });
2556  return keys;
2557};
2558var toMetaKey = function (it) {
2559  return it === undefined || typeof it == 'symbol' ? it : String(it);
2560};
2561var exp = function (O) {
2562  $export($export.S, 'Reflect', O);
2563};
2564
2565module.exports = {
2566  store: store,
2567  map: getOrCreateMetadataMap,
2568  has: ordinaryHasOwnMetadata,
2569  get: ordinaryGetOwnMetadata,
2570  set: ordinaryDefineOwnMetadata,
2571  keys: ordinaryOwnMetadataKeys,
2572  key: toMetaKey,
2573  exp: exp
2574};
2575
2576
2577/***/ }),
2578/* 43 */
2579/***/ (function(module, exports, __webpack_require__) {
2580
2581"use strict";
2582/* WEBPACK VAR INJECTION */(function(process) {/**
2583 * Copyright (c) 2013-present, Facebook, Inc.
2584 *
2585 * This source code is licensed under the MIT license found in the
2586 * LICENSE file in the root directory of this source tree.
2587 *
2588 */
2589
2590
2591
2592var _assign = __webpack_require__(10);
2593
2594var PooledClass = __webpack_require__(60);
2595
2596var emptyFunction = __webpack_require__(38);
2597var warning = __webpack_require__(3);
2598
2599var didWarnForAddedNewProperty = false;
2600var isProxySupported = typeof Proxy === 'function';
2601
2602var shouldBeReleasedProperties = ['dispatchConfig', '_targetInst', 'nativeEvent', 'isDefaultPrevented', 'isPropagationStopped', '_dispatchListeners', '_dispatchInstances'];
2603
2604/**
2605 * @interface Event
2606 * @see http://www.w3.org/TR/DOM-Level-3-Events/
2607 */
2608var EventInterface = {
2609  type: null,
2610  target: null,
2611  // currentTarget is set when dispatching; no use in copying it here
2612  currentTarget: emptyFunction.thatReturnsNull,
2613  eventPhase: null,
2614  bubbles: null,
2615  cancelable: null,
2616  timeStamp: function (event) {
2617    return event.timeStamp || Date.now();
2618  },
2619  defaultPrevented: null,
2620  isTrusted: null
2621};
2622
2623/**
2624 * Synthetic events are dispatched by event plugins, typically in response to a
2625 * top-level event delegation handler.
2626 *
2627 * These systems should generally use pooling to reduce the frequency of garbage
2628 * collection. The system should check `isPersistent` to determine whether the
2629 * event should be released into the pool after being dispatched. Users that
2630 * need a persisted event should invoke `persist`.
2631 *
2632 * Synthetic events (and subclasses) implement the DOM Level 3 Events API by
2633 * normalizing browser quirks. Subclasses do not necessarily have to implement a
2634 * DOM interface; custom application-specific events can also subclass this.
2635 *
2636 * @param {object} dispatchConfig Configuration used to dispatch this event.
2637 * @param {*} targetInst Marker identifying the event target.
2638 * @param {object} nativeEvent Native browser event.
2639 * @param {DOMEventTarget} nativeEventTarget Target node.
2640 */
2641function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {
2642  if (process.env.NODE_ENV !== 'production') {
2643    // these have a getter/setter for warnings
2644    delete this.nativeEvent;
2645    delete this.preventDefault;
2646    delete this.stopPropagation;
2647  }
2648
2649  this.dispatchConfig = dispatchConfig;
2650  this._targetInst = targetInst;
2651  this.nativeEvent = nativeEvent;
2652
2653  var Interface = this.constructor.Interface;
2654  for (var propName in Interface) {
2655    if (!Interface.hasOwnProperty(propName)) {
2656      continue;
2657    }
2658    if (process.env.NODE_ENV !== 'production') {
2659      delete this[propName]; // this has a getter/setter for warnings
2660    }
2661    var normalize = Interface[propName];
2662    if (normalize) {
2663      this[propName] = normalize(nativeEvent);
2664    } else {
2665      if (propName === 'target') {
2666        this.target = nativeEventTarget;
2667      } else {
2668        this[propName] = nativeEvent[propName];
2669      }
2670    }
2671  }
2672
2673  var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;
2674  if (defaultPrevented) {
2675    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
2676  } else {
2677    this.isDefaultPrevented = emptyFunction.thatReturnsFalse;
2678  }
2679  this.isPropagationStopped = emptyFunction.thatReturnsFalse;
2680  return this;
2681}
2682
2683_assign(SyntheticEvent.prototype, {
2684  preventDefault: function () {
2685    this.defaultPrevented = true;
2686    var event = this.nativeEvent;
2687    if (!event) {
2688      return;
2689    }
2690
2691    if (event.preventDefault) {
2692      event.preventDefault();
2693      // eslint-disable-next-line valid-typeof
2694    } else if (typeof event.returnValue !== 'unknown') {
2695      event.returnValue = false;
2696    }
2697    this.isDefaultPrevented = emptyFunction.thatReturnsTrue;
2698  },
2699
2700  stopPropagation: function () {
2701    var event = this.nativeEvent;
2702    if (!event) {
2703      return;
2704    }
2705
2706    if (event.stopPropagation) {
2707      event.stopPropagation();
2708      // eslint-disable-next-line valid-typeof
2709    } else if (typeof event.cancelBubble !== 'unknown') {
2710      // The ChangeEventPlugin registers a "propertychange" event for
2711      // IE. This event does not support bubbling or cancelling, and
2712      // any references to cancelBubble throw "Member not found".  A
2713      // typeof check of "unknown" circumvents this issue (and is also
2714      // IE specific).
2715      event.cancelBubble = true;
2716    }
2717
2718    this.isPropagationStopped = emptyFunction.thatReturnsTrue;
2719  },
2720
2721  /**
2722   * We release all dispatched `SyntheticEvent`s after each event loop, adding
2723   * them back into the pool. This allows a way to hold onto a reference that
2724   * won't be added back into the pool.
2725   */
2726  persist: function () {
2727    this.isPersistent = emptyFunction.thatReturnsTrue;
2728  },
2729
2730  /**
2731   * Checks if this event should be released back into the pool.
2732   *
2733   * @return {boolean} True if this should not be released, false otherwise.
2734   */
2735  isPersistent: emptyFunction.thatReturnsFalse,
2736
2737  /**
2738   * `PooledClass` looks for `destructor` on each instance it releases.
2739   */
2740  destructor: function () {
2741    var Interface = this.constructor.Interface;
2742    for (var propName in Interface) {
2743      if (process.env.NODE_ENV !== 'production') {
2744        Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));
2745      } else {
2746        this[propName] = null;
2747      }
2748    }
2749    for (var i = 0; i < shouldBeReleasedProperties.length; i++) {
2750      this[shouldBeReleasedProperties[i]] = null;
2751    }
2752    if (process.env.NODE_ENV !== 'production') {
2753      Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));
2754      Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', emptyFunction));
2755      Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', emptyFunction));
2756    }
2757  }
2758});
2759
2760SyntheticEvent.Interface = EventInterface;
2761
2762/**
2763 * Helper to reduce boilerplate when creating subclasses.
2764 *
2765 * @param {function} Class
2766 * @param {?object} Interface
2767 */
2768SyntheticEvent.augmentClass = function (Class, Interface) {
2769  var Super = this;
2770
2771  var E = function () {};
2772  E.prototype = Super.prototype;
2773  var prototype = new E();
2774
2775  _assign(prototype, Class.prototype);
2776  Class.prototype = prototype;
2777  Class.prototype.constructor = Class;
2778
2779  Class.Interface = _assign({}, Super.Interface, Interface);
2780  Class.augmentClass = Super.augmentClass;
2781
2782  PooledClass.addPoolingTo(Class, PooledClass.fourArgumentPooler);
2783};
2784
2785/** Proxying after everything set on SyntheticEvent
2786  * to resolve Proxy issue on some WebKit browsers
2787  * in which some Event properties are set to undefined (GH#10010)
2788  */
2789if (process.env.NODE_ENV !== 'production') {
2790  if (isProxySupported) {
2791    /*eslint-disable no-func-assign */
2792    SyntheticEvent = new Proxy(SyntheticEvent, {
2793      construct: function (target, args) {
2794        return this.apply(target, Object.create(target.prototype), args);
2795      },
2796      apply: function (constructor, that, args) {
2797        return new Proxy(constructor.apply(that, args), {
2798          set: function (target, prop, value) {
2799            if (prop !== 'isPersistent' && !target.constructor.Interface.hasOwnProperty(prop) && shouldBeReleasedProperties.indexOf(prop) === -1) {
2800              process.env.NODE_ENV !== 'production' ? warning(didWarnForAddedNewProperty || target.isPersistent
2800(), "This synthetic event is reused for performance reasons. If you're " + "seeing this, you're adding a new property in the synthetic event object. " + 'The property is never released. See ' + 'https://fb.me/react-event-pooling for more information.') : void 0;
2801              didWarnForAddedNewProperty = true;
2802            }
2803            target[prop] = value;
2804            return true;
2805          }
2806        });
2807      }
2808    });
2809    /*eslint-enable no-func-assign */
2810  }
2811}
2812
2813PooledClass.addPoolingTo(SyntheticEvent, PooledClass.fourArgumentPooler);
2814
2815module.exports = SyntheticEvent;
2816
2817/**
2818  * Helper to nullify syntheticEvent instance properties when destructing
2819  *
2820  * @param {object} SyntheticEvent
2821  * @param {String} propName
2822  * @return {object} defineProperty object
2823  */
2824function getPooledWarningPropertyDefinition(propName, getVal) {
2825  var isFunction = typeof getVal === 'function';
2826  return {
2827    configurable: true,
2828    set: set,
2829    get: get
2830  };
2831
2832  function set(val) {
2833    var action = isFunction ? 'setting the method' : 'setting the property';
2834    warn(action, 'This is effectively a no-op');
2835    return val;
2836  }
2837
2838  function get() {
2839    var action = isFunction ? 'accessing the method' : 'accessing the property';
2840    var result = isFunction ? 'This is a no-op function' : 'This is set to null';
2841    warn(action, result);
2842    return getVal;
2843  }
2844
2845  function warn(action, result) {
2846    var warningCondition = false;
2847    process.env.NODE_ENV !== 'production' ? warning(warningCondition, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
2848  }
2849}
2850/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
2851
2852/***/ }),
2853/* 44 */
2854/***/ (function(module, exports) {
2855
2856module.exports = false;
2857
2858
2859/***/ }),
2860/* 45 */
2861/***/ (function(module, exports, __webpack_require__) {
2862
2863// 22.1.3.31 Array.prototype[@@unscopables]
2864var UNSCOPABLES = __webpack_require__(9)('unscopables');
2865var ArrayProto = Array.prototype;
2866if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(20)(ArrayProto, UNSCOPABLES, {});
2867module.exports = function (key) {
2868  ArrayProto[UNSCOPABLES][key] = true;
2869};
2870
2871
2872/***/ }),
2873/* 46 */
2874/***/ (function(module, exports, __webpack_require__) {
2875
2876var META = __webpack_require__(49)('meta');
2877var isObject = __webpack_require__(7);
2878var has = __webpack_require__(24);
2879var setDesc = __webpack_require__(11).f;
2880var id = 0;
2881var isExtensible = Object.isExtensible || function () {
2882  return true;
2883};
2884var FREEZE = !__webpack_require__(6)(function () {
2885  return isExtensible(Object.preventExtensions({}));
2886});
2887var setMeta = function (it) {
2888  setDesc(it, META, { value: {
2889    i: 'O' + ++id, // object ID
2890    w: {}          // weak collections IDs
2891  } });
2892};
2893var fastKey = function (it, create) {
2894  // return primitive with prefix
2895  if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
2896  if (!has(it, META)) {
2897    // can't set metadata to uncaught frozen object
2898    if (!isExtensible(it)) return 'F';
2899    // not necessary to add metadata
2900    if (!create) return 'E';
2901    // add missing metadata
2902    setMeta(it);
2903  // return object ID
2904  } return it[META].i;
2905};
2906var getWeak = function (it, create) {
2907  if (!has(it, META)) {
2908    // can't set metadata to uncaught frozen object
2909    if (!isExtensible(it)) return true;
2910    // not necessary to add metadata
2911    if (!create) return false;
2912    // add missing metadata
2913    setMeta(it);
2914  // return hash weak collections IDs
2915  } return it[META].w;
2916};
2917// add metadata on freeze-family methods calling
2918var onFreeze = function (it) {
2919  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
2920  return it;
2921};
2922var meta = module.exports = {
2923  KEY: META,
2924  NEED: false,
2925  fastKey: fastKey,
2926  getWeak: getWeak,
2927  onFreeze: onFreeze
2928};
2929
2930
2931/***/ }),
2932/* 47 */
2933/***/ (function(module, exports, __webpack_require__) {
2934
2935"use strict";
2936/* WEBPACK VAR INJECTION */(function(process) {/**
2937 * Copyright (c) 2013-present, Facebook, Inc.
2938 *
2939 * This source code is licensed under the MIT license found in the
2940 * LICENSE file in the root directory of this source tree.
2941 *
2942 */
2943
2944
2945
2946var _prodInvariant = __webpack_require__(8);
2947
2948var invariant = __webpack_require__(2);
2949
2950function checkMask(value, bitmask) {
2951  return (value & bitmask) === bitmask;
2952}
2953
2954var DOMPropertyInjection = {
2955  /**
2956   * Mapping from normalized, camelcased property names to a configuration that
2957   * specifies how the associated DOM property should be accessed or rendered.
2958   */
2959  MUST_USE_PROPERTY: 0x1,
2960  HAS_BOOLEAN_VALUE: 0x4,
2961  HAS_NUMERIC_VALUE: 0x8,
2962  HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,
2963  HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,
2964
2965  /**
2966   * Inject some specialized knowledge about the DOM. This takes a config object
2967   * with the following properties:
2968   *
2969   * isCustomAttribute: function that given an attribute name will return true
2970   * if it can be inserted into the DOM verbatim. Useful for data-* or aria-*
2971   * attributes where it's impossible to enumerate all of the possible
2972   * attribute names,
2973   *
2974   * Properties: object mapping DOM property name to one of the
2975   * DOMPropertyInjection constants or null. If your attribute isn't in here,
2976   * it won't get written to the DOM.
2977   *
2978   * DOMAttributeNames: object mapping React attribute name to the DOM
2979   * attribute name. Attribute names not specified use the **lowercase**
2980   * normalized name.
2981   *
2982   * DOMAttributeNamespaces: object mapping React attribute name to the DOM
2983   * attribute namespace URL. (Attribute names not specified use no namespace.)
2984   *
2985   * DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.
2986   * Property names not specified use the normalized name.
2987   *
2988   * DOMMutationMethods: Properties that require special mutation methods. If
2989   * `value` is undefined, the mutation method should unset the property.
2990   *
2991   * @param {object} domPropertyConfig the config as described above.
2992   */
2993  injectDOMPropertyConfig: function (domPropertyConfig) {
2994    var Injection = DOMPropertyInjection;
2995    var Properties = domPropertyConfig.Properties || {};
2996    var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};
2997    var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};
2998    var DOMPropertyNames = domPropertyConfig.DOMPropertyNames || {};
2999    var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};
3000
3001    if (domPropertyConfig.isCustomAttribute) {
3002      DOMProperty._isCustomAttributeFunctions.push(domPropertyConfig.isCustomAttribute);
3003    }
3004
3005    for (var propName in Properties) {
3006      !!DOMProperty.properties.hasOwnProperty(propName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : _prodInvariant('48', propName) : void 0;
3007
3008      var lowerCased = propName.toLowerCase();
3009      var propConfig = Properties[propName];
3010
3011      var propertyInfo = {
3012        attributeName: lowerCased,
3013        attributeNamespace: null,
3014        propertyName: propName,
3015        mutationMethod: null,
3016
3017        mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),
3018        hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),
3019        hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),
3020        hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),
3021        hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE)
3022      };
3023      !(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : _prodInvariant('50', propName) : void 0;
3024
3025      if (process.env.NODE_ENV !== 'production') {
3026        DOMProperty.getPossibleStandardName[lowerCased] = propName;
3027      }
3028
3029      if (DOMAttributeNames.hasOwnProperty(propName)) {
3030        var attributeName = DOMAttributeNames[propName];
3031        propertyInfo.attributeName = attributeName;
3032        if (process.env.NODE_ENV !== 'production') {
3033          DOMProperty.getPossibleStandardName[attributeName] = propName;
3034        }
3035      }
3036
3037      if (DOMAttributeNamespaces.hasOwnProperty(propName)) {
3038        propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];
3039      }
3040
3041      if (DOMPropertyNames.hasOwnProperty(propName)) {
3042        propertyInfo.propertyName = DOMPropertyNames[propName];
3043      }
3044
3045      if (DOMMutationMethods.hasOwnProperty(propName)) {
3046        propertyInfo.mutationMethod = DOMMutationMethods[propName];
3047      }
3048
3049      DOMProperty.properties[propName] = propertyInfo;
3050    }
3051  }
3052};
3053
3054/* eslint-disable max-len */
3055var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u
3055037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
3056/* eslint-enable max-len */
3057
3058/**
3059 * DOMProperty exports lookup objects that can be used like functions:
3060 *
3061 *   > DOMProperty.isValid['id']
3062 *   true
3063 *   > DOMProperty.isValid['foobar']
3064 *   undefined
3065 *
3066 * Although this may be confusing, it performs better in general.
3067 *
3068 * @see http://jsperf.com/key-exists
3069 * @see http://jsperf.com/key-missing
3070 */
3071var DOMProperty = {
3072  ID_ATTRIBUTE_NAME: 'data-reactid',
3073  ROOT_ATTRIBUTE_NAME: 'data-reactroot',
3074
3075  ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,
3076  ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040',
3077
3078  /**
3079   * Map from property "standard name" to an object with info about how to set
3080   * the property in the DOM. Each object contains:
3081   *
3082   * attributeName:
3083   *   Used when rendering markup or with `*Attribute()`.
3084   * attributeNamespace
3085   * propertyName:
3086   *   Used on DOM node instances. (This includes properties that mutate due to
3087   *   external factors.)
3088   * mutationMethod:
3089   *   If non-null, used instead of the property or `setAttribute()` after
3090   *   initial render.
3091   * mustUseProperty:
3092   *   Whether the property must be accessed and mutated as an object property.
3093   * hasBooleanValue:
3094   *   Whether the property should be removed when set to a falsey value.
3095   * hasNumericValue:
3096   *   Whether the property must be numeric or parse as a numeric and should be
3097   *   removed when set to a falsey value.
3098   * hasPositiveNumericValue:
3099   *   Whether the property must be positive numeric or parse as a positive
3100   *   numeric and should be removed when set to a falsey value.
3101   * hasOverloadedBooleanValue:
3102   *   Whether the property can be used as a flag as well as with a value.
3103   *   Removed when strictly equal to false; present without a value when
3104   *   strictly equal to true; present with a value otherwise.
3105   */
3106  properties: {},
3107
3108  /**
3109   * Mapping from lowercase property names to the properly cased version, used
3110   * to warn in the case of missing properties. Available only in __DEV__.
3111   *
3112   * autofocus is predefined, because adding it to the property whitelist
3113   * causes unintended side effects.
3114   *
3115   * @type {Object}
3116   */
3117  getPossibleStandardName: process.env.NODE_ENV !== 'production' ? { autofocus: 'autoFocus' } : null,
3118
3119  /**
3120   * All of the isCustomAttribute() functions that have been injected.
3121   */
3122  _isCustomAttributeFunctions: [],
3123
3124  /**
3125   * Checks whether a property name is a custom attribute.
3126   * @method
3127   */
3128  isCustomAttribute: function (attributeName) {
3129    for (var i = 0; i < DOMProperty._isCustomAttributeFunctions.length; i++) {
3130      var isCustomAttributeFn = DOMProperty._isCustomAttributeFunctions[i];
3131      if (isCustomAttributeFn(attributeName)) {
3132        return true;
3133      }
3134    }
3135    return false;
3136  },
3137
3138  injection: DOMPropertyInjection
3139};
3140
3141module.exports = DOMProperty;
3142/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
3143
3144/***/ }),
3145/* 48 */
3146/***/ (function(module, exports) {
3147
3148module.exports = function clone(obj) {
3149  return JSON.parse(JSON.stringify(obj));
3150};
3151
3152
3153/***/ }),
3154/* 49 */
3155/***/ (function(module, exports) {
3156
3157var id = 0;
3158var px = Math.random();
3159module.exports = function (key) {
3160  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
3161};
3162
3163
3164/***/ }),
3165/* 50 */
3166/***/ (function(module, exports) {
3167
3168module.exports = function (bitmap, value) {
3169  return {
3170    enumerable: !(bitmap & 1),
3171    configurable: !(bitmap & 2),
3172    writable: !(bitmap & 4),
3173    value: value
3174  };
3175};
3176
3177
3178/***/ }),
3179/* 51 */
3180/***/ (function(module, exports, __webpack_require__) {
3181
3182// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
3183var anObject = __webpack_require__(4);
3184var dPs = __webpack_require__(157);
3185var enumBugKeys = __webpack_require__(112);
3186var IE_PROTO = __webpack_require__(111)('IE_PROTO');
3187var Empty = function () { /* empty */ };
3188var PROTOTYPE = 'prototype';
3189
3190// Create object with fake `null` prototype: use iframe Object with cleared prototype
3191var createDict = function () {
vendor: 5,282 bytes, lines 3192-3376
3192  // Thrash, waste and sodomy: IE GC bug
3193  var iframe = __webpack_require__(106)('iframe');
3194  var i = enumBugKeys.length;
3195  var lt = '<';
3196  var gt = '>';
3197  var iframeDocument;
3198  iframe.style.display = 'none';
3199  __webpack_require__(113).appendChild(iframe);
3200  iframe.src = 'javascript:'; // eslint-disable-line no-script-url
3201  // createDict = iframe.contentWindow.Object;
3202  // html.removeChild(iframe);
3203  iframeDocument = iframe.contentWindow.document;
3204  iframeDocument.open();
3205  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
3206  iframeDocument.close();
3207  createDict = iframeDocument.F;
3208  while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
3209  return createDict();
3210};
3211
3212module.exports = Object.create || function create(O, Properties) {
3213  var result;
3214  if (O !== null) {
3215    Empty[PROTOTYPE] = anObject(O);
3216    result = new Empty();
3217    Empty[PROTOTYPE] = null;
3218    // add "__proto__" for Object.getPrototypeOf polyfill
3219    result[IE_PROTO] = O;
3220  } else result = createDict();
3221  return Properties === undefined ? result : dPs(result, Properties);
3222};
3223
3224
3225/***/ }),
3226/* 52 */
3227/***/ (function(module, exports, __webpack_require__) {
3228
3229// 19.1.2.14 / 15.2.3.14 Object.keys(O)
3230var $keys = __webpack_require__(158);
3231var enumBugKeys = __webpack_require__(112);
3232
3233module.exports = Object.keys || function keys(O) {
3234  return $keys(O, enumBugKeys);
3235};
3236
3237
3238/***/ }),
3239/* 53 */
3240/***/ (function(module, exports, __webpack_require__) {
3241
3242var toInteger = __webpack_require__(34);
3243var max = Math.max;
3244var min = Math.min;
3245module.exports = function (index, length) {
3246  index = toInteger(index);
3247  return index < 0 ? max(index + length, 0) : min(index, length);
3248};
3249
3250
3251/***/ }),
3252/* 54 */
3253/***/ (function(module, exports, __webpack_require__) {
3254
3255var redefine = __webpack_require__(19);
3256module.exports = function (target, src, safe) {
3257  for (var key in src) redefine(target, key, src[key], safe);
3258  return target;
3259};
3260
3261
3262/***/ }),
3263/* 55 */
3264/***/ (function(module, exports) {
3265
3266module.exports = function (it, Constructor, name, forbiddenField) {
3267  if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
3268    throw TypeError(name + ': incorrect invocation!');
3269  } return it;
3270};
3271
3272
3273/***/ }),
3274/* 56 */
3275/***/ (function(module, exports, __webpack_require__) {
3276
3277var ctx = __webpack_require__(30);
3278var call = __webpack_require__(161);
3279var isArrayIter = __webpack_require__(117);
3280var anObject = __webpack_require__(4);
3281var toLength = __webpack_require__(13);
3282var getIterFn = __webpack_require__(118);
3283var BREAK = {};
3284var RETURN = {};
3285var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
3286  var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
3287  var f = ctx(fn, that, entries ? 2 : 1);
3288  var index = 0;
3289  var length, step, iterator, result;
3290  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
3291  // fast case for arrays with default iterator
3292  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
3293    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
3294    if (result === BREAK || result === RETURN) return result;
3295  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
3296    result = call(iterator, f, step.value, entries);
3297    if (result === BREAK || result === RETURN) return result;
3298  }
3299};
3300exports.BREAK = BREAK;
3301exports.RETURN = RETURN;
3302
3303
3304/***/ }),
3305/* 57 */
3306/***/ (function(module, exports, __webpack_require__) {
3307
3308"use strict";
3309
3310var global = __webpack_require__(5);
3311var dP = __webpack_require__(11);
3312var DESCRIPTORS = __webpack_require__(12);
3313var SPECIES = __webpack_require__(9)('species');
3314
3315module.exports = function (KEY) {
3316  var C = global[KEY];
3317  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
3318    configurable: true,
3319    get: function () { return this; }
3320  });
3321};
3322
3323
3324/***/ }),
3325/* 58 */
3326/***/ (function(module, exports, __webpack_require__) {
3327
3328// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
3329var $keys = __webpack_require__(158);
3330var hiddenKeys = __webpack_require__(112).concat('length', 'prototype');
3331
3332exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
3333  return $keys(O, hiddenKeys);
3334};
3335
3336
3337/***/ }),
3338/* 59 */
3339/***/ (function(module, exports, __webpack_require__) {
3340
3341"use strict";
3342/* WEBPACK VAR INJECTION */(function(process) {/**
3343 * Copyright (c) 2014-present, Facebook, Inc.
3344 *
3345 * This source code is licensed under the MIT license found in the
3346 * LICENSE file in the root directory of this source tree.
3347 *
3348 */
3349
3350
3351
3352var _assign = __webpack_require__(10);
3353
3354var ReactCurrentOwner = __webpack_require__(39);
3355
3356var warning = __webpack_require__(3);
3357var canDefineProperty = __webpack_require__(97);
3358var hasOwnProperty = Object.prototype.hasOwnProperty;
3359
3360var REACT_ELEMENT_TYPE = __webpack_require__(190);
3361
3362var RESERVED_PROPS = {
3363  key: true,
3364  ref: true,
3365  __self: true,
3366  __source: true
3367};
3368
3369var specialPropKeyWarningShown, specialPropRefWarningShown;
3370
3371function hasValidRef(config) {
3372  if (process.env.NODE_ENV !== 'production') {
3373    if (hasOwnProperty.call(config, 'ref')) {
3374      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
3375      if (getter && getter.isReactWarning) {
3376        return false;
3377      }
3378    }
3379  }
3380  return config.ref !== undefined;
3381}
3382
3383function hasValidKey(config) {
3384  if (process.env.NODE_ENV !== 'production') {
3385    if (hasOwnProperty.call(config, 'key')) {
3386      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
3387      if (getter && getter.isReactWarning) {
3388        return false;
3389      }
3390    }
3391  }
3392  return config.key !== undefined;
3393}
3394
3395function defineKeyPropWarningGetter(props, displayName) {
3396  var warnAboutAccessingKey = function () {
3397    if (!specialPropKeyWarningShown) {
3398      specialPropKeyWarningShown = true;
3399      process.env.NODE_ENV !== 'production' ? warning(false, '%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
3400    }
3401  };
3402  warnAboutAccessingKey.isReactWarning = true;
3403  Object.defineProperty(props, 'key', {
3404    get: warnAboutAccessingKey,
3405    configurable: true
3406  });
3407}
3408
3409function defineRefPropWarningGetter(props, displayName) {
3410  var warnAboutAccessingRef = function () {
3411    if (!specialPropRefWarningShown) {
3412      specialPropRefWarningShown = true;
3413      process.env.NODE_ENV !== 'production' ? warning(false, '%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://fb.me/react-special-props)', displayName) : void 0;
3414    }
3415  };
3416  warnAboutAccessingRef.isReactWarning = true;
3417  Object.defineProperty(props, 'ref', {
3418    get: warnAboutAccessingRef,
3419    configurable: true
3420  });
3421}
3422
3423/**
3424 * Factory method to create a new React element. This no longer adheres to
3425 * the class pattern, so do not use new to call it. Also, no instanceof check
3426 * will work. Instead test $$typeof field against Symbol.for('react.element') to check
3427 * if something is a React Element.
3428 *
3429 * @param {*} type
3430 * @param {*} key
3431 * @param {string|object} ref
3432 * @param {*} self A *temporary* helper to detect places where `this` is
3433 * different from the `owner` when React.createElement is called, so that we
3434 * can warn. We want to get rid of owner and replace string `ref`s with arrow
3435 * functions, and as long as `this` and owner are the same, there will be no
3436 * change in behavior.
3437 * @param {*} source An annotation object (added by a transpiler or otherwise)
3438 * indicating filename, line number, and/or other information.
3439 * @param {*} owner
3440 * @param {*} props
3441 * @internal
3442 */
3443var ReactElement = function (type, key, ref, self, source, owner, props) {
3444  var element = {
3445    // This tag allow us to uniquely identify this as a React Element
3446    $$typeof: REACT_ELEMENT_TYPE,
3447
3448    // Built-in properties that belong on the element
3449    type: type,
3450    key: key,
3451    ref: ref,
3452    props: props,
3453
3454    // Record the component responsible for creating this element.
3455    _owner: owner
3456  };
3457
3458  if (process.env.NODE_ENV !== 'production') {
3459    // The validation flag is currently mutative. We put it on
3460    // an external backing store so that we can freeze the whole object.
3461    // This can be replaced with a WeakMap once they are implemented in
3462    // commonly used development environments.
3463    element._store = {};
3464
3465    // To make comparing ReactElements easier for testing purposes, we make
3466    // the validation flag non-enumerable (where possible, which should
3467    // include every environment we run tests in), so the test framework
3468    // ignores it.
3469    if (canDefineProperty) {
3470      Object.defineProperty(element._store, 'validated', {
3471        configurable: false,
3472        enumerable: false,
3473        writable: true,
3474        value: false
3475      });
3476      // self and source are DEV only properties.
3477      Object.defineProperty(element, '_self', {
3478        configurable: false,
3479        enumerable: false,
3480        writable: false,
3481        value: self
3482      });
3483      // Two elements created in two different places should be considered
3484      // equal for testing purposes and therefore we hide it from enumeration.
3485      Object.defineProperty(element, '_source', {
3486        configurable: false,
3487        enumerable: false,
3488        writable: false,
3489        value: source
3490      });
3491    } else {
3492      element._store.validated = false;
3493      element._self = self;
3494      element._source = source;
3495    }
3496    if (Object.freeze) {
3497      Object.freeze(element.props);
3498      Object.freeze(element);
3499    }
3500  }
3501
3502  return element;
3503};
3504
3505/**
3506 * Create and return a new ReactElement of the given type.
3507 * See https://facebook.github.io/react/docs/top-level-api.html#react.createelement
3508 */
3509ReactElement.createElement = function (type, config, children) {
3510  var propName;
3511
3512  // Reserved names are extracted
3513  var props = {};
3514
3515  var key = null;
3516  var ref = null;
3517  var self = null;
3518  var source = null;
3519
3520  if (config != null) {
3521    if (hasValidRef(config)) {
3522      ref = config.ref;
3523    }
3524    if (hasValidKey(config)) {
3525      key = '' + config.key;
3526    }
3527
3528    self = config.__self === undefined ? null : config.__self;
3529    source = config.__source === undefined ? null : config.__source;
3530    // Remaining properties are added to a new props object
3531    for (propName in config) {
3532      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
3533        props[propName] = config[propName];
3534      }
3535    }
3536  }
3537
3538  // Children can be more than one argument, and those are transferred onto
3539  // the newly allocated props object.
3540  var childrenLength = arguments.length - 2;
3541  if (childrenLength === 1) {
3542    props.children = children;
3543  } else if (childrenLength > 1) {
3544    var childArray = Array(childrenLength);
3545    for (var i = 0; i < childrenLength; i++) {
3546      childArray[i] = arguments[i + 2];
3547    }
3548    if (process.env.NODE_ENV !== 'production') {
3549      if (Object.freeze) {
3550        Object.freeze(childArray);
3551      }
3552    }
3553    props.children = childArray;
3554  }
3555
3556  // Resolve default props
3557  if (type && type.defaultProps) {
3558    var defaultProps = type.defaultProps;
3559    for (propName in defaultProps) {
3560      if (props[propName] === undefined) {
3561        props[propName] = defaultProps[propName];
3562      }
3563    }
3564  }
3565  if (process.env.NODE_ENV !== 'production') {
3566    if (key || ref) {
3567      if (typeof props.$$typeof === 'undefined' || props.$$typeof !== REACT_ELEMENT_TYPE) {
3568        var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
3569        if (key) {
3570          defineKeyPropWarningGetter(props, displayName);
3571        }
3572        if (ref) {
3573          defineRefPropWarningGetter(props, displayName);
3574        }
3575      }
3576    }
3577  }
3578  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
3579};
3580
3581/**
3582 * Return a function that produces ReactElements of a given type.
3583 * See https://facebook.github.io/react/docs/top-level-api.html#react.createfactory
3584 */
3585ReactElement.createFactory = function (type) {
3586  var factory = ReactElement.createElement.bind(null, type);
3587  // Expose the type on the factory and the prototype so that it can be
3588  // easily accessed on elements. E.g. `<Foo />.type === Foo`.
3589  // This should not be named `constructor` since this may not be the function
3590  // that created the element, and it may not even be a constructor.
3591  // Legacy hook TODO: Warn if this is accessed
3592  factory.type = type;
3593  return factory;
3594};
3595
3596ReactElement.cloneAndReplaceKey = function (oldElement, newKey) {
3597  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
3598
3599  return newElement;
3600};
3601
3602/**
3603 * Clone and return a new ReactElement using element as the starting point.
3604 * See https://facebook.github.io/react/docs/top-level-api.html#react.cloneelement
3605 */
3606ReactElement.cloneElement = function (element, config, children) {
3607  var propName;
3608
3609  // Original props are copied
3610  var props = _assign({}, element.props);
3611
3612  // Reserved names are extracted
3613  var key = element.key;
3614  var ref = element.ref;
3615  // Self is preserved since the owner is preserved.
3616  var self = element._self;
3617  // Source is preserved since cloneElement is unlikely to be targeted by a
3618  // transpiler, and the original source is probably a better indicator of the
3619  // true owner.
3620  var source = element._source;
3621
3622  // Owner will be preserved, unless ref is overridden
3623  var owner = element._owner;
3624
3625  if (config != null) {
3626    if (hasValidRef(config)) {
3627      // Silently steal the ref from the parent.
3628      ref = config.ref;
3629      owner = ReactCurrentOwner.current;
3630    }
3631    if (hasValidKey(config)) {
3632      key = '' + config.key;
3633    }
3634
3635    // Remaining properties override existing props
3636    var defaultProps;
3637    if (element.type && element.type.defaultProps) {
3638      defaultProps = element.type.defaultProps;
3639    }
3640    for (propName in config) {
3641      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
3642        if (config[propName] === undefined && defaultProps !== undefined) {
3643          // Resolve default props
3644          props[propName] = defaultProps[propName];
3645        } else {
3646          props[propName] = config[propName];
3647        }
3648      }
3649    }
3650  }
3651
3652  // Children can be more than one argument, and those are transferred onto
3653  // the newly allocated props object.
3654  var childrenLength = arguments.length - 2;
3655  if (childrenLength === 1) {
3656    props.children = children;
3657  } else if (childrenLength > 1) {
3658    var childArray = Array(childrenLength);
3659    for (var i = 0; i < childrenLength; i++) {
3660      childArray[i] = arguments[i + 2];
3661    }
3662    props.children = childArray;
3663  }
3664
3665  return ReactElement(element.type, key, ref, self, source, owner, props);
3666};
3667
3668/**
3669 * Verifies the object is a ReactElement.
3670 * See https://facebook.github.io/react/docs/top-level-api.html#react.isvali
3670delement
3671 * @param {?object} object
3672 * @return {boolean} True if `object` is a valid component.
3673 * @final
3674 */
3675ReactElement.isValidElement = function (object) {
3676  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
3677};
3678
3679module.exports = ReactElement;
3680/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
3681
3682/***/ }),
3683/* 60 */
3684/***/ (function(module, exports, __webpack_require__) {
3685
3686"use strict";
3687/* WEBPACK VAR INJECTION */(function(process) {/**
3688 * Copyright (c) 2013-present, Facebook, Inc.
3689 *
3690 * This source code is licensed under the MIT license found in the
3691 * LICENSE file in the root directory of this source tree.
3692 *
3693 * 
3694 */
3695
3696
3697
3698var _prodInvariant = __webpack_require__(8);
3699
3700var invariant = __webpack_require__(2);
3701
3702/**
3703 * Static poolers. Several custom versions for each potential number of
3704 * arguments. A completely generic pooler is easy to implement, but would
3705 * require accessing the `arguments` object. In each of these, `this` refers to
3706 * the Class itself, not an instance. If any others are needed, simply add them
3707 * here, or in their own files.
3708 */
3709var oneArgumentPooler = function (copyFieldsFrom) {
3710  var Klass = this;
3711  if (Klass.instancePool.length) {
3712    var instance = Klass.instancePool.pop();
3713    Klass.call(instance, copyFieldsFrom);
3714    return instance;
3715  } else {
3716    return new Klass(copyFieldsFrom);
3717  }
3718};
3719
3720var twoArgumentPooler = function (a1, a2) {
3721  var Klass = this;
3722  if (Klass.instancePool.length) {
3723    var instance = Klass.instancePool.pop();
3724    Klass.call(instance, a1, a2);
3725    return instance;
3726  } else {
3727    return new Klass(a1, a2);
3728  }
3729};
3730
3731var threeArgumentPooler = function (a1, a2, a3) {
3732  var Klass = this;
3733  if (Klass.instancePool.length) {
3734    var instance = Klass.instancePool.pop();
3735    Klass.call(instance, a1, a2, a3);
3736    return instance;
3737  } else {
3738    return new Klass(a1, a2, a3);
3739  }
3740};
3741
3742var fourArgumentPooler = function (a1, a2, a3, a4) {
3743  var Klass = this;
3744  if (Klass.instancePool.length) {
3745    var instance = Klass.instancePool.pop();
3746    Klass.call(instance, a1, a2, a3, a4);
3747    return instance;
3748  } else {
3749    return new Klass(a1, a2, a3, a4);
3750  }
3751};
3752
3753var standardReleaser = function (instance) {
3754  var Klass = this;
3755  !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;
3756  instance.destructor();
3757  if (Klass.instancePool.length < Klass.poolSize) {
3758    Klass.instancePool.push(instance);
3759  }
3760};
3761
3762var DEFAULT_POOL_SIZE = 10;
3763var DEFAULT_POOLER = oneArgumentPooler;
3764
3765/**
3766 * Augments `CopyConstructor` to be a poolable class, augmenting only the class
3767 * itself (statically) not adding any prototypical fields. Any CopyConstructor
3768 * you give this may have a `poolSize` property, and will look for a
3769 * prototypical `destructor` on instances.
3770 *
3771 * @param {Function} CopyConstructor Constructor that can be used to reset.
3772 * @param {Function} pooler Customizable pooler.
3773 */
3774var addPoolingTo = function (CopyConstructor, pooler) {
3775  // Casting as any so that flow ignores the actual implementation and trusts
3776  // it to match the type we declared
3777  var NewKlass = CopyConstructor;
3778  NewKlass.instancePool = [];
3779  NewKlass.getPooled = pooler || DEFAULT_POOLER;
3780  if (!NewKlass.poolSize) {
3781    NewKlass.poolSize = DEFAULT_POOL_SIZE;
3782  }
3783  NewKlass.release = standardReleaser;
3784  return NewKlass;
3785};
3786
3787var PooledClass = {
3788  addPoolingTo: addPoolingTo,
3789  oneArgumentPooler: oneArgumentPooler,
3790  twoArgumentPooler: twoArgumentPooler,
3791  threeArgumentPooler: threeArgumentPooler,
3792  fourArgumentPooler: fourArgumentPooler
3793};
3794
3795module.exports = PooledClass;
3796/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
3797
3798/***/ }),
3799/* 61 */
3800/***/ (function(module, exports) {
3801
3802module.exports = {};
3803
3804
3805/***/ }),
3806/* 62 */
3807/***/ (function(module, exports, __webpack_require__) {
3808
3809var def = __webpack_require__(11).f;
3810var has = __webpack_require__(24);
3811var TAG = __webpack_require__(9)('toStringTag');
3812
3813module.exports = function (it, tag, stat) {
3814  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
3815};
3816
3817
3818/***/ }),
3819/* 63 */
3820/***/ (function(module, exports, __webpack_require__) {
3821
3822var isObject = __webpack_require__(7);
3823module.exports = function (it, TYPE) {
3824  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
3825  return it;
3826};
3827
3828
3829/***/ }),
3830/* 64 */
3831/***/ (function(module, exports) {
3832
3833var g;
3834
3835// This works in non-strict mode
3836g = (function() {
3837	return this;
3838})();
3839
3840try {
3841	// This works if eval is allowed (see CSP)
3842	g = g || Function("return this")() || (1,eval)("this");
3843} catch(e) {
3844	// This works if the window reference is available
3845	if(typeof window === "object")
3846		g = window;
3847}
3848
3849// g can still be undefined, but nothing to do about it...
3850// We return undefined, instead of nothing here, so it's
3851// easier to handle this case. if(!global) { ...}
3852
3853module.exports = g;
3854
3855
3856/***/ }),
3857/* 65 */
3858/***/ (function(module, exports, __webpack_require__) {
3859
3860var $export = __webpack_require__(0);
3861var defined = __webpack_require__(35);
3862var fails = __webpack_require__(6);
3863var spaces = __webpack_require__(123);
3864var space = '[' + spaces + ']';
3865var non = '\u200b\u0085';
3866var ltrim = RegExp('^' + space + space + '*');
3867var rtrim = RegExp(space + space + '*$');
3868
3869var exporter = function (KEY, exec, ALIAS) {
3870  var exp = {};
3871  var FORCE = fails(function () {
3872    return !!spaces[KEY]() || non[KEY]() != non;
3873  });
3874  var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];
3875  if (ALIAS) exp[ALIAS] = fn;
3876  $export($export.P + $export.F * FORCE, 'String', exp);
3877};
3878
3879// 1 -> String#trimLeft
3880// 2 -> String#trimRight
3881// 3 -> String#trim
3882var trim = exporter.trim = function (string, TYPE) {
3883  string = String(defined(string));
3884  if (TYPE & 1) string = string.replace(ltrim, '');
3885  if (TYPE & 2) string = string.replace(rtrim, '');
3886  return string;
3887};
3888
3889module.exports = exporter;
3890
3891
3892/***/ }),
3893/* 66 */
3894/***/ (function(module, exports, __webpack_require__) {
3895
3896"use strict";
3897/* WEBPACK VAR INJECTION */(function(process) {/**
3898 * Copyright (c) 2013-present, Facebook, Inc.
3899 *
3900 * This source code is licensed under the MIT license found in the
3901 * LICENSE file in the root directory of this source tree.
3902 *
3903 */
3904
3905
3906
3907var _assign = __webpack_require__(10);
3908
3909var ReactBaseClasses = __webpack_require__(188);
3910var ReactChildren = __webpack_require__(433);
3911var ReactDOMFactories = __webpack_require__(437);
3912var ReactElement = __webpack_require__(59);
3913var ReactPropTypes = __webpack_require__(441);
3914var ReactVersion = __webpack_require__(444);
3915
3916var createReactClass = __webpack_require__(445);
3917var onlyChild = __webpack_require__(447);
3918
3919var createElement = ReactElement.createElement;
3920var createFactory = ReactElement.createFactory;
3921var cloneElement = ReactElement.cloneElement;
3922
3923if (process.env.NODE_ENV !== 'production') {
3924  var lowPriorityWarning = __webpack_require__(136);
3925  var canDefineProperty = __webpack_require__(97);
3926  var ReactElementValidator = __webpack_require__(192);
3927  var didWarnPropTypesDeprecated = false;
3928  createElement = ReactElementValidator.createElement;
3929  createFactory = ReactElementValidator.createFactory;
3930  cloneElement = ReactElementValidator.cloneElement;
3931}
3932
3933var __spread = _assign;
3934var createMixin = function (mixin) {
3935  return mixin;
3936};
3937
3938if (process.env.NODE_ENV !== 'production') {
3939  var warnedForSpread = false;
3940  var warnedForCreateMixin = false;
3941  __spread = function () {
3942    lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');
3943    warnedForSpread = true;
3944    return _assign.apply(null, arguments);
3945  };
3946
3947  createMixin = function (mixin) {
3948    lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');
3949    warnedForCreateMixin = true;
3950    return mixin;
3951  };
3952}
3953
3954var React = {
3955  // Modern
3956
3957  Children: {
3958    map: ReactChildren.map,
3959    forEach: ReactChildren.forEach,
3960    count: ReactChildren.count,
3961    toArray: ReactChildren.toArray,
3962    only: onlyChild
3963  },
3964
3965  Component: ReactBaseClasses.Component,
3966  PureComponent: ReactBaseClasses.PureComponent,
3967
3968  createElement: createElement,
3969  cloneElement: cloneElement,
3970  isValidElement: ReactElement.isValidElement,
3971
3972  // Classic
3973
3974  PropTypes: ReactPropTypes,
3975  createClass: createReactClass,
3976  createFactory: createFactory,
3977  createMixin: createMixin,
3978
3979  // This looks DOM specific but these are actually isomorphic helpers
3980  // since they are just generating DOM strings.
3981  DOM: ReactDOMFactories,
3982
3983  version: ReactVersion,
3984
3985  // Deprecated hook for JSX spread, don't use this for anything.
3986  __spread: __spread
3987};
3988
3989if (process.env.NODE_ENV !== 'production') {
3990  var warnedForCreateClass = false;
3991  if (canDefineProperty) {
3992    Object.defineProperty(React, 'PropTypes', {
3993      get: function () {
3994        lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in  React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');
3995        didWarnPropTypesDeprecated = true;
3996        return ReactPropTypes;
3997      }
3998    });
3999
4000    Object.defineProperty(React, 'createClass', {
4001      get: function () {
4002        lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');
4003        warnedForCreateClass = true;
4004        return createReactClass;
4005      }
4006    });
4007  }
4008
4009  // React.DOM factories are deprecated. Wrap these methods so that
4010  // invocations of the React.DOM namespace and alert users to switch
4011  // to the `react-dom-factories` package.
4012  React.DOM = {};
4013  var warnedForFactories = false;
4014  Object.keys(ReactDOMFactories).forEach(function (factory) {
4015    React.DOM[factory] = function () {
4016      if (!warnedForFactories) {
4017        lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);
4018        warnedForFactories = true;
4019      }
4020      return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);
4021    };
4022  });
4023}
4024
4025module.exports = React;
4026/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
4027
4028/***/ }),
4029/* 67 */
4030/***/ (function(module, exports, __webpack_require__) {
4031
4032"use strict";
4033/**
4034 * Copyright (c) 2013-present, Facebook, Inc.
4035 *
4036 * This source code is licensed under the MIT license found in the
4037 * LICENSE file in the root directory of this source tree.
4038 *
4039 * 
4040 */
4041
4042
4043/**
4044 * WARNING: DO NOT manually require this module.
4045 * This is a replacement for `invariant(...)` used by the error code system
4046 * and will _only_ be required by the corresponding babel pass.
4047 * It always throws.
4048 */
4049
4050function reactProdInvariant(code) {
4051  var argCount = arguments.length - 1;
4052
4053  var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
4054
4055  for (var argIdx = 0; argIdx < argCount; argIdx++) {
4056    message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
4057  }
4058
4059  message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
4060
4061  var error = new Error(message);
4062  error.name = 'Invariant Violation';
4063  error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
4064
4065  throw error;
4066}
4067
4068module.exports = reactProdInvariant;
4069
4070/***/ }),
4071/* 68 */
4072/***/ (function(module, exports, __webpack_require__) {
4073
4074"use strict";
4075/* WEBPACK VAR INJECTION */(function(process) {/**
4076 * Copyright (c) 2013-present, Facebook, Inc.
4077 *
4078 * This source code is licensed under the MIT license found in the
4079 * LICENSE file in the root directory of this source tree.
4080 *
4081 */
4082
4083
4084
4085var ReactRef = __webpack_require__(457);
4086var ReactInstrumentation = __webpack_require__(28);
4087
4088var warning = __webpack_require__(3);
4089
4090/**
4091 * Helper to call ReactRef.attachRefs with this composite component, split out
4092 * to avoid allocations in the transaction mount-ready queue.
4093 */
4094function attachRefs() {
4095  ReactRef.attachRefs(this, this._currentElement);
4096}
4097
4098var ReactReconciler = {
4099  /**
4100   * Initializes the component, renders markup, and registers event listeners.
4101   *
4102   * @param {ReactComponent} internalInstance
4103   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
4104   * @param {?object} the containing host component instance
4105   * @param {?object} info about the host container
4106   * @return {?string} Rendered markup to be inserted into the DOM.
4107   * @final
4108   * @internal
4109   */
4110  mountComponent: function (internalInstance, transaction, hostParent, hostContainerInfo, context, parentDebugID) // 0 in production and for roots
4111  {
4112    if (process.env.NODE_ENV !== 'production') {
4113      if (internalInstance._debugID !== 0) {
4114        ReactInstrumentation.debugTool.onBeforeMountComponent(internalInstance._debugID, internalInstance._currentElement, parentDebugID);
4115      }
4116    }
4117    var markup = internalInstance.mountComponent(transaction, hostParent, hostContainerInfo, context, parentDebugID);
4118    if (internalInstance._currentElement && internalInstance._currentElement.ref != null) {
4119      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
4120    }
4121    if (process.env.NODE_ENV !== 'production') {
4122      if (internalInstance._debugID !== 0) {
4123        ReactInstrumentation.debugTool.onMountComponent(internalInstance._debugID);
4124      }
4125    }
4126    return markup;
4127  },
4128
4129  /**
4130   * Returns a value that can be passed to
4131   * ReactComponentEnvironment.replaceNodeWithMarkup.
4132   */
4133  getHostNode: function (internalInstance) {
4134    return internalInstance.getHostNode();
4135  },
4136
4137  /**
4138   * Releases any resources allocated by `mountComponent`.
4139   *
4140   * @final
4141   * @internal
4142   */
4143  unmountComponent: function (internalInstance, safely) {
4144    if (process.env.NODE_ENV !== 'production') {
4145      if (internalInstance._debugID !== 0) {
4146        ReactInstrumentation.debugTool.onBeforeUnmountComponent(internalInstance._debugID);
4147      }
4148    }
4149    ReactRef.detachRefs(internalInstance, internalInstance._currentElement);
4150    internalInstance.unmountComponent(safely);
4151    if (process.env.NODE_ENV !== 'production') {
4152      if (internalInstance._debugID !== 0) {
4153        ReactInstrumentation.debugTool.onUnmountComponent(internalInstance._debugID);
4154      }
4155    }
4156  },
4157
4158  /**
4159   * Update a component using a new element.
4160   *
4161   * @param {ReactComponent} internalInstance
4162   * @param {ReactElement} nextElement
4163   * @param {ReactReconcileTransaction} transaction
4164   * @param {object} context
4165   * @internal
4166   */
4167  receiveComponent: function (internalInstance, nextElement, transaction, context) {
4168    var prevElement = internalInstance._currentElement;
4169
4170    if (nextElement === prevElement && context === internalInstance._context) {
4171      // Since elements are immutable after the owner is rendered,
4172      // we can do a cheap identity compare here to determine if this is a
4173      // superfluous reconcile. It's possible for state to be mutable but such
4174      // change should trigger an update of the owner which would recreate
4175      // the element. We explicitly check for the existence of an owner since
4176      // it's possible for an element created outside a composite to be
4177      // deeply mutated and reused.
4178
4179      // TODO: Bailing out early is just a perf optimization right?
4180      // TODO: Removing the return statement should affect correctness?
4181      return;
4182    }
4183
4184    if (process.env.NODE_ENV !== 'production') {
4185      if (internalInstance._debugID !== 0) {
4186        ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, nextElement);
4187      }
4188    }
4189
4190    var refsChanged = ReactRef.shouldUpdateRefs(prevElement, nextElement);
4191
4192    if (refsChanged) {
4193      ReactRef.detachRefs(internalInstance, prevElement);
4194    }
4195
4196    internalInstance.receiveComponent(nextElement, transaction, context);
4197
4198    if (refsChanged && internalInstance._currentElement && internalInstance._currentElement.ref != null) {
4199      transaction.getReactMountReady().enqueue(attachRefs, internalInstance);
4200    }
4201
4202    if (process.env.NODE_ENV !== 'production') {
4203      if (internalInstance._debugID !== 0) {
4204        ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);
4205      }
4206    }
4207  },
4208
4209  /**
4210   * Flush any dirty changes in a component.
4211   *
4212   * @param {ReactComponent} internalInstance
4213   * @param {ReactReconcileTransaction} transaction
4214   * @internal
4215   */
4216  performUpdateIfNecessary: function (internalInstance, transaction, updateBatchNumber) {
4217    if (internalInstance._updateBatchNumber !== updateBatchNumber) {
4218      // The component's enqueued batch number should always be the current
4219      // batch or the following one.
4220      process.env.NODE_ENV !== 'production' ? warning(internalInstance._updateBatchNumber == null || internalInstance._updateBatchNumber === updateBatchNumber + 1, 'performUpdateIfNecessary: Unexpected batch number (current %s, ' + 'pending 
4220%s)', updateBatchNumber, internalInstance._updateBatchNumber) : void 0;
4221      return;
4222    }
4223    if (process.env.NODE_ENV !== 'production') {
4224      if (internalInstance._debugID !== 0) {
4225        ReactInstrumentation.debugTool.onBeforeUpdateComponent(internalInstance._debugID, internalInstance._currentElement);
4226      }
4227    }
4228    internalInstance.performUpdateIfNecessary(transaction);
4229    if (process.env.NODE_ENV !== 'production') {
4230      if (internalInstance._debugID !== 0) {
4231        ReactInstrumentation.debugTool.onUpdateComponent(internalInstance._debugID);
4232      }
4233    }
4234  }
4235};
4236
4237module.exports = ReactReconciler;
4238/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
4239
4240/***/ }),
4241/* 69 */
4242/***/ (function(module, exports, __webpack_require__) {
4243
4244"use strict";
4245/**
4246 * Copyright (c) 2015-present, Facebook, Inc.
4247 *
4248 * This source code is licensed under the MIT license found in the
4249 * LICENSE file in the root directory of this source tree.
4250 *
4251 */
4252
4253
4254
4255var DOMNamespaces = __webpack_require__(143);
4256var setInnerHTML = __webpack_require__(102);
4257
4258var createMicrosoftUnsafeLocalFunction = __webpack_require__(144);
4259var setTextContent = __webpack_require__(204);
4260
4261var ELEMENT_NODE_TYPE = 1;
4262var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
4263
4264/**
4265 * In IE (8-11) and Edge, appending nodes with no children is dramatically
4266 * faster than appending a full subtree, so we essentially queue up the
4267 * .appendChild calls here and apply them so each node is added to its parent
4268 * before any children are added.
4269 *
4270 * In other browsers, doing so is slower or neutral compared to the other order
4271 * (in Firefox, twice as slow) so we only do this inversion in IE.
4272 *
4273 * See https://github.com/spicyj/innerhtml-vs-createelement-vs-clonenode.
4274 */
4275var enableLazy = typeof document !== 'undefined' && typeof document.documentMode === 'number' || typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' && /\bEdge\/\d/.test(navigator.userAgent);
4276
4277function insertTreeChildren(tree) {
4278  if (!enableLazy) {
4279    return;
4280  }
4281  var node = tree.node;
4282  var children = tree.children;
4283  if (children.length) {
4284    for (var i = 0; i < children.length; i++) {
4285      insertTreeBefore(node, children[i], null);
4286    }
4287  } else if (tree.html != null) {
4288    setInnerHTML(node, tree.html);
4289  } else if (tree.text != null) {
4290    setTextContent(node, tree.text);
4291  }
4292}
4293
4294var insertTreeBefore = createMicrosoftUnsafeLocalFunction(function (parentNode, tree, referenceNode) {
4295  // DocumentFragments aren't actually part of the DOM after insertion so
4296  // appending children won't update the DOM. We need to ensure the fragment
4297  // is properly populated first, breaking out of our lazy approach for just
4298  // this level. Also, some <object> plugins (like Flash Player) will read
4299  // <param> nodes immediately upon insertion into the DOM, so <object>
4300  // must also be populated prior to insertion into the DOM.
4301  if (tree.node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE || tree.node.nodeType === ELEMENT_NODE_TYPE && tree.node.nodeName.toLowerCase() === 'object' && (tree.node.namespaceURI == null || tree.node.namespaceURI === DOMNamespaces.html)) {
4302    insertTreeChildren(tree);
4303    parentNode.insertBefore(tree.node, referenceNode);
4304  } else {
4305    parentNode.insertBefore(tree.node, referenceNode);
4306    insertTreeChildren(tree);
4307  }
4308});
4309
4310function replaceChildWithTree(oldNode, newTree) {
4311  oldNode.parentNode.replaceChild(newTree.node, oldNode);
4312  insertTreeChildren(newTree);
4313}
4314
4315function queueChild(parentTree, childTree) {
4316  if (enableLazy) {
4317    parentTree.children.push(childTree);
4318  } else {
4319    parentTree.node.appendChild(childTree.node);
4320  }
4321}
4322
4323function queueHTML(tree, html) {
4324  if (enableLazy) {
4325    tree.html = html;
4326  } else {
4327    setInnerHTML(tree.node, html);
4328  }
4329}
4330
4331function queueText(tree, text) {
4332  if (enableLazy) {
4333    tree.text = text;
4334  } else {
4335    setTextContent(tree.node, text);
4336  }
4337}
4338
4339function toString() {
4340  return this.node.nodeName;
4341}
4342
4343function DOMLazyTree(node) {
4344  return {
4345    node: node,
4346    children: [],
4347    html: null,
4348    text: null,
4349    toString: toString
4350  };
4351}
4352
4353DOMLazyTree.insertTreeBefore = insertTreeBefore;
4354DOMLazyTree.replaceChildWithTree = replaceChildWithTree;
4355DOMLazyTree.queueChild = queueChild;
4356DOMLazyTree.queueHTML = queueHTML;
4357DOMLazyTree.queueText = queueText;
4358
4359module.exports = DOMLazyTree;
4360
4361/***/ }),
4362/* 70 */
4363/***/ (function(module, exports, __webpack_require__) {
4364
4365"use strict";
4366
4367
4368// This file hosts our error definitions
4369// We use custom error "types" so that we can act on them when we need it
4370// e.g.: if error instanceof errors.UnparsableJSON then..
4371
4372var inherits = __webpack_require__(80);
4373
4374function AlgoliaSearchError(message, extraProperties) {
4375  var forEach = __webpack_require__(71);
4376
4377  var error = this;
4378
4379  // try to get a stacktrace
4380  if (typeof Error.captureStackTrace === 'function') {
4381    Error.captureStackTrace(this, this.constructor);
4382  } else {
4383    error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';
4384  }
4385
4386  this.name = 'AlgoliaSearchError';
4387  this.message = message || 'Unknown error';
4388
4389  if (extraProperties) {
4390    forEach(extraProperties, function addToErrorObject(value, key) {
4391      error[key] = value;
4392    });
4393  }
4394}
4395
4396inherits(AlgoliaSearchError, Error);
4397
4398function createCustomError(name, message) {
4399  function AlgoliaSearchCustomError() {
4400    var args = Array.prototype.slice.call(arguments, 0);
4401
4402    // custom message not set, use default
4403    if (typeof args[0] !== 'string') {
4404      args.unshift(message);
4405    }
4406
4407    AlgoliaSearchError.apply(this, args);
4408    this.name = 'AlgoliaSearch' + name + 'Error';
4409  }
4410
4411  inherits(AlgoliaSearchCustomError, AlgoliaSearchError);
4412
4413  return AlgoliaSearchCustomError;
4414}
4415
4416// late exports to let various fn defs and inherits take place
4417module.exports = {
4418  AlgoliaSearchError: AlgoliaSearchError,
4419  UnparsableJSON: createCustomError(
4420    'UnparsableJSON',
4421    'Could not parse the incoming response as JSON, see err.more for details'
4422  ),
4423  RequestTimeout: createCustomError(
4424    'RequestTimeout',
4425    'Request timedout before getting a response'
4426  ),
4427  Network: createCustomError(
4428    'Network',
4429    'Network issue, see err.more for details'
4430  ),
4431  JSONPScriptFail: createCustomError(
4432    'JSONPScriptFail',
4433    '<script> was loaded but did not call our provided callback'
4434  ),
4435  JSONPScriptError: createCustomError(
4436    'JSONPScriptError',
4437    '<script> unable to load due to an `error` event on it'
4438  ),
4439  Unknown: createCustomError(
4440    'Unknown',
4441    'Unknown error occured'
4442  )
4443};
4444
4445
4446/***/ }),
4447/* 71 */
4448/***/ (function(module, exports) {
4449
4450
4451var hasOwn = Object.prototype.hasOwnProperty;
4452var toString = Object.prototype.toString;
4453
4454module.exports = function forEach (obj, fn, ctx) {
4455    if (toString.call(fn) !== '[object Function]') {
4456        throw new TypeError('iterator must be a function');
4457    }
4458    var l = obj.length;
4459    if (l === +l) {
4460        for (var i = 0; i < l; i++) {
4461            fn.call(ctx, obj[i], i, obj);
4462        }
4463    } else {
4464        for (var k in obj) {
4465            if (hasOwn.call(obj, k)) {
4466                fn.call(ctx, obj[k], k, obj);
4467            }
4468        }
4469    }
4470};
4471
4472
4473
4474/***/ }),
4475/* 72 */
4476/***/ (function(module, exports, __webpack_require__) {
4477
4478var foreach = __webpack_require__(71);
4479
4480module.exports = function map(arr, fn) {
4481  var newArr = [];
4482  foreach(arr, function(item, itemIndex) {
4483    newArr.push(fn(item, itemIndex, arr));
4484  });
4485  return newArr;
4486};
4487
4488
4489/***/ }),
4490/* 73 */
4491/***/ (function(module, exports, __webpack_require__) {
4492
4493// getting tag from 19.1.3.6 Object.prototype.toString()
4494var cof = __webpack_require__(29);
4495var TAG = __webpack_require__(9)('toStringTag');
4496// ES3 wrong here
4497var ARG = cof(function () { return arguments; }()) == 'Arguments';
4498
4499// fallback for IE11 Script Access Denied error
4500var tryGet = function (it, key) {
4501  try {
4502    return it[key];
4503  } catch (e) { /* empty */ }
4504};
4505
4506module.exports = function (it) {
4507  var O, T, B;
4508  return it === undefined ? 'Undefined' : it === null ? 'Null'
4509    // @@toStringTag case
4510    : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
4511    // builtinTag case
4512    : ARG ? cof(O)
4513    // ES3 arguments fallback
4514    : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
4515};
4516
4517
4518/***/ }),
4519/* 74 */
4520/***/ (function(module, exports, __webpack_require__) {
4521
4522// fallback for non-array-like ES3 and non-enumerable old V8 strings
4523var cof = __webpack_require__(29);
4524// eslint-disable-next-line no-prototype-builtins
4525module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
4526  return cof(it) == 'String' ? it.split('') : Object(it);
4527};
4528
4529
4530/***/ }),
4531/* 75 */
4532/***/ (function(module, exports) {
4533
4534exports.f = {}.propertyIsEnumerable;
4535
4536
4537/***/ }),
4538/* 76 */
4539/***/ (function(module, exports, __webpack_require__) {
4540
4541"use strict";
4542/* WEBPACK VAR INJECTION */(function(process) {/**
4543 * Copyright (c) 2013-present, Facebook, Inc.
4544 *
4545 * This source code is licensed under the MIT license found in the
4546 * LICENSE file in the root directory of this source tree.
4547 *
4548 */
4549
4550
4551
4552var EventPluginHub = __webpack_require__(77);
4553var EventPluginUtils = __webpack_require__(137);
4554
4555var accumulateInto = __webpack_require__(196);
4556var forEachAccumulated = __webpack_require__(197);
4557var warning = __webpack_require__(3);
4558
4559var getListener = EventPluginHub.getListener;
4560
4561/**
4562 * Some event types have a notion of different registration names for different
4563 * "phases" of propagation. This finds listeners by a given phase.
4564 */
4565function listenerAtPhase(inst, event, propagationPhase) {
4566  var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];
4567  return getListener(inst, registrationName);
4568}
4569
4570/**
4571 * Tags a `SyntheticEvent` with dispatched listeners. Creating this function
4572 * here, allows us to not have to bind or create functions for each event.
4573 * Mutating the event's members allows us to not have to create a wrapping
4574 * "dispatch" object that pairs the event with the listener.
4575 */
4576function accumulateDirectionalDispatches(inst, phase, event) {
4577  if (process.env.NODE_ENV !== 'production') {
4578    process.env.NODE_ENV !== 'production' ? warning(inst, 'Dispatching inst must not be null') : void 0;
4579  }
4580  var listener = listenerAtPhase(inst, event, phase);
4581  if (listener) {
4582    event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
4583    event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
4584  }
4585}
4586
4587/**
4588 * Collect dispatches (must be entirely collected before dispatching - see unit
4589 * tests). Lazily allocate the array to conserve memory.  We must loop through
4590 * each event and perform the traversal for each one. We cannot perform a
4591 * single traversal for the entire collection of events because each event may
4592 * have a different target.
4593 */
4594function accumulateTwoPhaseDispatchesSingle(event) {
4595  if (event && event.dispatchConfig.phasedRegistrationNames) {
4596    EventPluginUtils.traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);
4597  }
4598}
4599
4600/**
4601 * Same as `accumulateTwoPhaseDispatchesSingle`, but skips over the targetID.
4602 */
4603function accumulateTwoPhaseDispatchesSingleSkipTarget(event) {
4604  if (event && event.dispatchConfig.phasedRegistrationNames) {
4605    var targetInst = event._targetInst;
4606    var parentInst = targetInst ? EventPluginUtils.getParentInstance(targetInst) : null;
4607    EventPluginUtils.traverseTwoPhase(parentInst, accumulateDirectionalDispatches, event);
4608  }
4609}
4610
4611/**
4612 * Accumulates without regard to direction, does not look for phased
4613 * registration names. Same as `accumulateDirectDispatchesSingle` but without
4614 * requiring that the `dispatchMarker` be the same as the dispatched ID.
4615 */
4616function accumulateDispatches(inst, ignoredDirection, event) {
4617  if (event && event.dispatchConfig.registrationName) {
4618    var registrationName = event.dispatchConfig.registrationName;
4619    var listener = getListener(inst, registrationName);
4620    if (listener) {
4621      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
4622      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
4623    }
4624  }
4625}
4626
4627/**
4628 * Accumulates dispatches on an `SyntheticEvent`, but only for the
4629 * `dispatchMarker`.
4630 * @param {SyntheticEvent} event
4631 */
4632function accumulateDirectDispatchesSingle(event) {
4633  if (event && event.dispatchConfig.registrationName) {
4634    accumulateDispatches(event._targetInst, null, event);
4635  }
4636}
4637
4638function accumulateTwoPhaseDispatches(events) {
4639  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);
4640}
4641
4642function accumulateTwoPhaseDispatchesSkipTarget(events) {
4643  forEachAccumulated(events, accumulateTwoPhaseDispatchesSingleSkipTarget);
4644}
4645
4646function accumulateEnterLeaveDispatches(leave, enter, from, to) {
4647  EventPluginUtils.traverseEnterLeave(from, to, accumulateDispatches, leave, enter);
4648}
4649
4650function accumulateDirectDispatches(events) {
4651  forEachAccumulated(events, accumulateDirectDispatchesSingle);
4652}
4653
4654/**
4655 * A small set of propagation patterns, each of which will accept a small amount
4656 * of information, and generate a set of "dispatch ready event objects" - which
4657 * are sets of events that have already been annotated with a set of dispatched
4658 * listener functions/ids. The API is designed this way to discourage these
4659 * propagation strategies from actually executing the dispatches, since we
4660 * always want to collect the entire set of dispatches before executing event a
4661 * single one.
4662 *
4663 * @constructor EventPropagators
4664 */
4665var EventPropagators = {
4666  accumulateTwoPhaseDispatches: accumulateTwoPhaseDispatches,
4667  accumulateTwoPhaseDispatchesSkipTarget: accumulateTwoPhaseDispatchesSkipTarget,
4668  accumulateDirectDispatches: accumulateDirectDispatches,
4669  accumulateEnterLeaveDispatches: accumulateEnterLeaveDispatches
4670};
4671
4672module.exports = EventPropagators;
4673/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
4674
4675/***/ }),
4676/* 77 */
4677/***/ (function(module, exports, __webpack_require__) {
4678
4679"use strict";
4680/* WEBPACK VAR INJECTION */(function(process) {/**
4681 * Copyright (c) 2013-present, Facebook, Inc.
4682 *
4683 * This source code is licensed under the MIT license found in the
4684 * LICENSE file in the root directory of this source tree.
4685 *
4686 */
4687
4688
4689
4690var _prodInvariant = __webpack_require__(8);
4691
4692var EventPluginRegistry = __webpack_require__(99);
4693var EventPluginUtils = __webpack_require__(137);
4694var ReactErrorUtils = __webpack_require__(138);
4695
4696var accumulateInto = __webpack_require__(196);
4697var forEachAccumulated = __webpack_require__(197);
4698var invariant = __webpack_require__(2);
4699
4700/**
4701 * Internal store for event listeners
4702 */
4703var listenerBank = {};
4704
4705/**
4706 * Internal queue of events that have accumulated their dispatches and are
4707 * waiting to have their dispatches executed.
4708 */
4709var eventQueue = null;
4710
4711/**
4712 * Dispatches an event and releases it back into the pool, unless persistent.
4713 *
4714 * @param {?object} event Synthetic event to be dispatched.
4715 * @param {boolean} simulated If the event is simulated (changes exn behavior)
4716 * @private
4717 */
4718var executeDispatchesAndRelease = function (event, simulated) {
4719  if (event) {
4720    EventPluginUtils.executeDispatchesInOrder(event, simulated);
4721
4722    if (!event.isPersistent()) {
4723      event.constructor.release(event);
4724    }
4725  }
4726};
4727var executeDispatchesAndReleaseSimulated = function (e) {
4728  return executeDispatchesAndRelease(e, true);
4729};
4730var executeDispatchesAndReleaseTopLevel = function (e) {
4731  return executeDispatchesAndRelease(e, false);
4732};
4733
4734var getDictionaryKey = function (inst) {
4735  // Prevents V8 performance issue:
4736  // https://github.com/facebook/react/pull/7232
4737  return '.' + inst._rootNodeID;
4738};
4739
4740function isInteractive(tag) {
4741  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
4742}
4743
4744function shouldPreventMouseEvent(name, type, props) {
4745  switch (name) {
4746    case 'onClick':
4747    case 'onClickCapture':
4748    case 'onDoubleClick':
4749    case 'onDoubleClickCapture':
4750    case 'onMouseDown':
4751    case 'onMouseDownCapture':
4752    case 'onMouseMove':
4753    case 'onMouseMoveCapture':
4754    case 'onMouseUp':
4755    case 'onMouseUpCapture':
4756      return !!(props.disabled && isInteractive(type));
4757    default:
4758      return false;
4759  }
4760}
4761
4762/**
4763 * This is a unified interface for event plugins to be installed and configured.
4764 *
4765 * Event plugins can implement the following properties:
4766 *
4767 *   `extractEvents` {function(string, DOMEventTarget, string, object): *}
4768 *     Required. When a top-level event is fired, this method is expected to
4769 *     extract synthetic events that will in turn be queued and dispatched.
4770 *
4771 *   `eventTypes` {object}
4772 *     Optional, plugins that fire events must publish a mapping of registration
4773 *     names that are used to register listeners. Values of this mapping must
4774 *     be objects that contain `registrationName` or `phasedRegistrationNames`.
4775 *
4776 *   `executeDispatch` {function(object, function, string)}
4777 *     Optional, allows plugins to override how an event gets dispatched. By
4778 *     default, the listener is simply invoked.
4779 *
4780 * Each plugin that is injected into `EventsPluginHub` is immediately operable.
4781 *
4782 * @public
4783 */
4784var EventPluginHub = {
4785  /**
4786   * Methods for injecting dependencies.
4787   */
4788  injection: {
4789    /**
4790     * @param {array} InjectedEventPluginOrder
4791     * @public
4792     */
4793    injectEventPluginOrder: EventPluginRegistry.injectEventPluginOrder,
4794
4795    /**
4796     * @param {object} injectedNamesToPlugins Map from names to plugin modules.
4797     */
4798    injectEventPluginsByName: EventPluginRegistry.injectEventPluginsByName
4799  },
4800
4801  /**
4802   * Stores `listener` at `listenerBank[registrationName][key]`. Is idempotent.
4803   *
4804   * @param {object} inst The instance, which is the source of events.
4805   * @param {string} registrationName Name of listener (e.g. `onClick`).
4806   * @param {function} listener The callback to store.
4807   */
4808  putListener: function (inst, registrationName, listener) {
4809    !(typeof listener === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s listener to be a function, instead got type %s', registrationName, typeof listener) : _prodInvariant('94', registrationName, typeof listener) : void 0;
4810
4811    var key = getDictionaryKey(inst);
4812    var bankForRegistrationName = listenerBank[registrationName] || (listenerBank[registrationName] = {});
4813    bankForRegistrationName[key] = listener;
4814
4815    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
4816    if (PluginModule && PluginModule.didPutListener) {
4817      PluginModule.didPutListener(inst, registrationName, listener);
4818    }
4819  },
4820
4821  /**
4822   * @param {object} inst The instance, which is the source of events.
4823   * @param {string} registrationName Name of listener (e.g. `onClick`).
4824   * @return {?function} The stored callback.
4825   */
4826  getListener: function (inst, registrationName) {
4827    // TODO: shouldPreventMouseEvent is DOM-specific and definitely should not
4828    // live here; needs to be moved to a better place soon
4829    var bankForRegistrationName = listenerBank[registrationName];
4830    if (shouldPreventMouseEvent(registrationName, inst._currentElement.type, inst._currentElement.props)) {
4831      return null;
4832    }
4833    var key = getDictionaryKey(inst);
4834    return bankForRegistrationName && bankForRegistrationName[key];
4835  },
4836
4837  /**
4838   * Deletes a listener from the registration bank.
4839   *
4840   * @param {object} inst The instance, which is the source of events.
4841   * @param {string} registrationName Name of listener (e.g. `onClick`).
4842   */
4843  deleteListener: function (inst, registrationName) {
4844    var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
4845    if (PluginModule && PluginModule.willDeleteListener) {
4846      PluginModule.willDeleteListener(inst, registrationName);
4847    }
4848
4849    var bankForRegistrationName = listenerBank[registrationName];
4850    // TODO: This should never be null -- when is it?
4851    if (bankForRegistrationName) {
4852      var key = getDictionaryKey(inst);
4853      delete bankForRegistrationName[key];
4854    }
4855  },
4856
4857  /**
4858   * Deletes all listeners for the DOM element with the supplied ID.
4859   *
4860   * @param {object} inst The instance, which is the source of events.
4861   */
4862  deleteAllListeners: function (inst) {
4863    var key = getDictionaryKey(inst);
4864    for (var registrationName in listenerBank) {
4865      if (!listenerBank.hasOwnProperty(registrationName)) {
4866        continue;
4867      }
4868
4869      if (!listenerBank[registrationName][key]) {
4870        continue;
4871      }
4872
4873      var PluginModule = EventPluginRegistry.registrationNameModules[registrationName];
4874      if (PluginModule && PluginModule.willDeleteListener) {
4875        PluginModule.willDeleteListener(inst, registrationName);
4876      }
4877
4878      delete listenerBank[registrationName][key];
4879    }
4880  },
4881
4882  /**
4883   * Allows registered plugins an opportunity to extract events from top-level
4884   * native browser events.
4885   *
4886   * @return {*} An accumulation of synthetic events.
4887   * @internal
4888   */
4889  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
4890    var events;
4891    var plugins = EventPluginRegistry.plugins;
4892    for (var i = 0; i < plugins.length; i++) {
4893      // Not every plugin in the ordering may be loaded at runtime.
4894      var possiblePlugin = plugins[i];
4895      if (possiblePlugin) {
4896        var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
4897        if (extractedEvents) {
4898          events = accumulateInto(events, extractedEvents);
4899        }
4900      }
4901    }
4902    return events;
4903  },
4904
4905  /**
4906   * Enqueues a synthetic event that should be dispatched when
4907   * `processEventQueue` is invoked.
4908   *
4909   * @param {*} events An accumulation of synthetic events.
4910   * @internal
4911   */
4912  enqueueEvents: function (events) {
4913    if (events) {
4914      eventQueue = accumulateInto(eventQueue, events);
4915    }
4916  },
4917
4918  /**
4919   * Dispatches all synthetic events on the event queue.
4920   *
4921   * @internal
4922   */
4923  processEventQueue: function (simulated) {
4924    // Set `eventQueue` to null before processing it so that we can tell if more
4925    // events get enqueued while processing.
4926    var processingEventQueue = eventQueue;
4927    eventQueue = null;
4928    if (simulated) {
4929      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseSimulated);
4930    } else {
4931      forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);
4932    }
4933    !!eventQueue ? process.env.NODE_ENV !== 'production' ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : _prodInvariant('95') : void 0;
4934    // This would be a good time to rethrow if any of the event handlers threw.
4935    ReactErrorUtils.rethrowCaughtError();
4936  },
4937
4938  /**
4939   * These are needed for tests only. Do not use!
4940   */
4941  __purge: function () {
4942    listenerBank = {};
4943  },
4944
4945  __getListenerBank: function () {
4946    return listenerBank;
4947  }
4948};
4949
4950module.exports = EventPluginHub;
4951/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
4952
4953/***/ }),
4954/* 78 */
4955/***/ (function(module, exports, __webpack_require__) {
4956
4957"use strict";
4958/**
4959 * Copyright (c) 2013-present, Facebook, Inc.
4960 *
4961 * This source code is licensed under the MIT license found in the
4962 * LICENSE file in the root directory of this source tree.
4963 *
4964 */
4965
4966
4967
4968var SyntheticEvent = __webpack_require__(43);
4969
4970var getEventTarget = __webpack_require__(139);
4971
4972/**
4973 * @interface UIEvent
4974 * @see http://www.w3.org/TR/DOM-Level-3-Events/
4975 */
4976var UIEventInterface = {
4977  view: function (event) {
4978    if (event.view) {
4979      return event.view;
4980    }
4981
4982    var target = getEventTarget(event);
4983    if (target.window === target) {
4984      // target is a window object
4985      return target;
4986    }
4987
4988    var doc = target.ownerDocument;
4989    // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
4990    if (doc) {
4991      return doc.defaultView || doc.parentWindow;
4992    } else {
4993      return window;
4994    }
4995  },
4996  detail: function (event) {
4997    return event.detail || 0;
4998  }
4999};
5000
5001/**
5002 * @param {object} dispatchConfig Configuration used to dispatch this event.
5003 * @param {string} dispatchMarker Marker identifying the event target.
5004 * @param {object} nativeEvent Native browser event.
5005 * @extends {SyntheticEvent}
5006 */
5007function SyntheticUIEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
5008  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
5009}
5010
5011SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface);
5012
5013module.exports = SyntheticUIEvent;
5014
5015/***/ }),
5016/* 79 */
5017/***/ (function(module, exports, __webpack_require__) {
5018
5019"use strict";
5020/**
5021 * Copyright (c) 2013-present, Facebook, Inc.
5022 *
5023 * This source code is licensed under the MIT license found in the
5024 * LICENSE file in the root directory of this source tree.
5025 *
5026 */
5027
5028
5029
5030/**
5031 * `ReactInstanceMap` maintains a mapping from a public facing stateful
5032 * instance (key) and the internal representation (value). This allows public
5033 * methods to accept the user facing instance as an argument and map them back
5034 * to internal methods.
5035 */
5036
5037// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
5038
5039var ReactInstanceMap = {
5040  /**
5041   * This API should be called `delete` but we'd have to make sure to always
5042   * transform these to strings for IE support. When this transform is fully
5043   * supported we can rename it.
5044   */
5045  remove: function (key) {
5046    key._reactInternalInstance = undefined;
5047  },
5048
5049  get: function (key) {
5050    return key._reactInternalInstance;
5051  },
5052
5053  has: function (key) {
5054    return key._reactInternalInstance !== undefined;
5055  },
5056
5057  set: function (key, value) {
5058    key._reactInternalInstance = value;
5059  }
5060};
5061
5062module.exports = ReactInstanceMap;
5063
5064/***/ }),
5065/* 80 */
5066/***/ (function(module, exports) {
5067
5068if (typeof Object.create === 'function') {
5069  // implementation from standard node.js 'util' module
5070  module.exports = function inherits(ctor, superCtor) {
5071    ctor.super_ = superCtor
5072    ctor.prototype = Object.create(superCtor.prototype, {
5073      constructor: {
5074        value: ctor,
5075        enumerable: false,
5076        writable: true,
5077        configurable: true
5078      }
5079    });
5080  };
5081} else {
5082  // old school shim for old browsers
5083  module.exports = function inherits(ctor, superCtor) {
5084    ctor.super_ = superCtor
5085    var TempCtor = function () {}
5086    TempCtor.prototype = superCtor.prototype
5087    ctor.prototype = new TempCtor()
5088    ctor.prototype.constructor = ctor
5089  }
5090}
5091
5092
5093/***/ }),
5094/* 81 */
5095/***/ (function(module, exports, __webpack_require__) {
5096
5097/* WEBPACK VAR INJECTION */(function(process) {/**
5098 * This is the web browser implementation of `debug()`.
5099 *
5100 * Expose `debug()` as the module.
5101 */
5102
5103exports = module.exports = __webpack_require__(545);
5104exports.log = log;
5105exports.formatArgs = formatArgs;
5106exports.save = save;
5107exports.load = load;
5108exports.useColors = useColors;
5109exports.storage = 'undefined' != typeof chrome
5110               && 'undefined' != typeof chrome.storage
5111                  ? chrome.storage.local
5112                  : localstorage();
5113
5114/**
5115 * Colors.
5116 */
5117
5118exports.colors = [
5119  'lightseagreen',
5120  'forestgreen',
5121  'goldenrod',
5122  'dodgerblue',
5123  'darkorchid',
5124  'crimson'
5125];
5126
5127/**
5128 * Currently only WebKit-based Web Inspectors, Firefox >= v31,
5129 * and the Firebug extension (any Firefox version) are known
5130 * to support "%c" CSS customizations.
5131 *
5132 * TODO: add a `localStorage` variable to explicitly enable/disable colors
5133 */
5134
5135function useColors() {
5136  // NB: In an Electron preload script, document will be defined but not fully
vendor: 4,544 bytes, lines 5137-5309
5137  // initialized. Since we know we're in Chrome, we'll just detect this case
5138  // explicitly
5139  if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
5140    return true;
5141  }
5142
5143  // is webkit? http://stackoverflow.com/a/16459606/376773
5144  // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
5145  return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
5146    // is firebug? http://stackoverflow.com/a/398120/376773
5147    (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
5148    // is firefox >= v31?
5149    // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
5150    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
5151    // double check webkit in userAgent just in case we are in a worker
5152    (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
5153}
5154
5155/**
5156 * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
5157 */
5158
5159exports.formatters.j = function(v) {
5160  try {
5161    return JSON.stringify(v);
5162  } catch (err) {
5163    return '[UnexpectedJSONParseError]: ' + err.message;
5164  }
5165};
5166
5167
5168/**
5169 * Colorize log arguments if enabled.
5170 *
5171 * @api public
5172 */
5173
5174function formatArgs(args) {
5175  var useColors = this.useColors;
5176
5177  args[0] = (useColors ? '%c' : '')
5178    + this.namespace
5179    + (useColors ? ' %c' : ' ')
5180    + args[0]
5181    + (useColors ? '%c ' : ' ')
5182    + '+' + exports.humanize(this.diff);
5183
5184  if (!useColors) return;
5185
5186  var c = 'color: ' + this.color;
5187  args.splice(1, 0, c, 'color: inherit')
5188
5189  // the final "%c" is somewhat tricky, because there could be other
5190  // arguments passed either before or after the %c, so we need to
5191  // figure out the correct index to insert the CSS into
5192  var index = 0;
5193  var lastC = 0;
5194  args[0].replace(/%[a-zA-Z%]/g, function(match) {
5195    if ('%%' === match) return;
5196    index++;
5197    if ('%c' === match) {
5198      // we only are interested in the *last* %c
5199      // (the user may have provided their own)
5200      lastC = index;
5201    }
5202  });
5203
5204  args.splice(lastC, 0, c);
5205}
5206
5207/**
5208 * Invokes `console.log()` when available.
5209 * No-op when `console.log` is not a "function".
5210 *
5211 * @api public
5212 */
5213
5214function log() {
5215  // this hackery is required for IE8/9, where
5216  // the `console.log` function doesn't have 'apply'
5217  return 'object' === typeof console
5218    && console.log
5219    && Function.prototype.apply.call(console.log, console, arguments);
5220}
5221
5222/**
5223 * Save `namespaces`.
5224 *
5225 * @param {String} namespaces
5226 * @api private
5227 */
5228
5229function save(namespaces) {
5230  try {
5231    if (null == namespaces) {
5232      exports.storage.removeItem('debug');
5233    } else {
5234      exports.storage.debug = namespaces;
5235    }
5236  } catch(e) {}
5237}
5238
5239/**
5240 * Load `namespaces`.
5241 *
5242 * @return {String} returns the previously persisted debug modes
5243 * @api private
5244 */
5245
5246function load() {
5247  var r;
5248  try {
5249    r = exports.storage.debug;
5250  } catch(e) {}
5251
5252  // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
5253  if (!r && typeof process !== 'undefined' && 'env' in process) {
5254    r = process.env.DEBUG;
5255  }
5256
5257  return r;
5258}
5259
5260/**
5261 * Enable namespaces listed in `localStorage.debug` initially.
5262 */
5263
5264exports.enable(load());
5265
5266/**
5267 * Localstorage attempts to return the localstorage.
5268 *
5269 * This is necessary because safari throws
5270 * when a user disables cookies/localstorage
5271 * and you attempt to access it.
5272 *
5273 * @return {LocalStorage}
5274 * @api private
5275 */
5276
5277function localstorage() {
5278  try {
5279    return window.localStorage;
5280  } catch (e) {}
5281}
5282
5283/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
5284
5285/***/ }),
5286/* 82 */
5287/***/ (function(module, exports, __webpack_require__) {
5288
5289var core = __webpack_require__(18);
5290var global = __webpack_require__(5);
5291var SHARED = '__core-js_shared__';
5292var store = global[SHARED] || (global[SHARED] = {});
5293
5294(module.exports = function (key, value) {
5295  return store[key] || (store[key] = value !== undefined ? value : {});
5296})('versions', []).push({
5297  version: core.version,
5298  mode: __webpack_require__(44) ? 'pure' : 'global',
5299  copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
5300});
5301
5302
5303/***/ }),
5304/* 83 */
5305/***/ (function(module, exports, __webpack_require__) {
5306
5307// false -> Array#indexOf
5308// true  -> Array#includes
5309var toIObject = __webpack_require__(25);
vendor: 4,353 bytes, lines 5310-5429
5310var toLength = __webpack_require__(13);
5311var toAbsoluteIndex = __webpack_require__(53);
5312module.exports = function (IS_INCLUDES) {
5313  return function ($this, el, fromIndex) {
5314    var O = toIObject($this);
5315    var length = toLength(O.length);
5316    var index = toAbsoluteIndex(fromIndex, length);
5317    var value;
5318    // Array#includes uses SameValueZero equality algorithm
5319    // eslint-disable-next-line no-self-compare
5320    if (IS_INCLUDES && el != el) while (length > index) {
5321      value = O[index++];
5322      // eslint-disable-next-line no-self-compare
5323      if (value != value) return true;
5324    // Array#indexOf ignores holes, Array#includes - not
5325    } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
5326      if (O[index] === el) return IS_INCLUDES || index || 0;
5327    } return !IS_INCLUDES && -1;
5328  };
5329};
5330
5331
5332/***/ }),
5333/* 84 */
5334/***/ (function(module, exports, __webpack_require__) {
5335
5336"use strict";
5337
5338var global = __webpack_require__(5);
5339var $export = __webpack_require__(0);
5340var redefine = __webpack_require__(19);
5341var redefineAll = __webpack_require__(54);
5342var meta = __webpack_require__(46);
5343var forOf = __webpack_require__(56);
5344var anInstance = __webpack_require__(55);
5345var isObject = __webpack_require__(7);
5346var fails = __webpack_require__(6);
5347var $iterDetect = __webpack_require__(85);
5348var setToStringTag = __webpack_require__(62);
5349var inheritIfRequired = __webpack_require__(119);
5350
5351module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
5352  var Base = global[NAME];
5353  var C = Base;
5354  var ADDER = IS_MAP ? 'set' : 'add';
5355  var proto = C && C.prototype;
5356  var O = {};
5357  var fixMethod = function (KEY) {
5358    var fn = proto[KEY];
5359    redefine(proto, KEY,
5360      KEY == 'delete' ? function (a) {
5361        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
5362      } : KEY == 'has' ? function has(a) {
5363        return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
5364      } : KEY == 'get' ? function get(a) {
5365        return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
5366      } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
5367        : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
5368    );
5369  };
5370  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
5371    new C().entries().next();
5372  }))) {
5373    // create collection constructor
5374    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
5375    redefineAll(C.prototype, methods);
5376    meta.NEED = true;
5377  } else {
5378    var instance = new C();
5379    // early implementations not supports chaining
5380    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
5381    // V8 ~  Chromium 40- weak-collections throws on primitives, but should return false
5382    var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });
5383    // most early implementations doesn't supports iterables, most modern - not close it correctly
5384    var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
5385    // for early implementations -0 and +0 not the same
5386    var BUGGY_ZERO = !IS_WEAK && fails(function () {
5387      // V8 ~ Chromium 42- fails only with 5+ elements
5388      var $instance = new C();
5389      var index = 5;
5390      while (index--) $instance[ADDER](index, index);
5391      return !$instance.has(-0);
5392    });
5393    if (!ACCEPT_ITERABLES) {
5394      C = wrapper(function (target, iterable) {
5395        anInstance(target, C, NAME);
5396        var that = inheritIfRequired(new Base(), target, C);
5397        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
5398        return that;
5399      });
5400      C.prototype = proto;
5401      proto.constructor = C;
5402    }
5403    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
5404      fixMethod('delete');
5405      fixMethod('has');
5406      IS_MAP && fixMethod('get');
5407    }
5408    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
5409    // weak collections should not contains .clear method
5410    if (IS_WEAK && proto.clear) delete proto.clear;
5411  }
5412
5413  setToStringTag(C, NAME);
5414
5415  O[NAME] = C;
5416  $export($export.G + $export.W + $export.F * (C != Base), O);
5417
5418  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
5419
5420  return C;
5421};
5422
5423
5424/***/ }),
5425/* 85 */
5426/***/ (function(module, exports, __webpack_require__) {
5427
5428var ITERATOR = __webpack_require__(9)('iterator');
5429var SAFE_CLOSING = false;
vendor: 4,751 bytes, lines 5430-5620
5430
5431try {
5432  var riter = [7][ITERATOR]();
5433  riter['return'] = function () { SAFE_CLOSING = true; };
5434  // eslint-disable-next-line no-throw-literal
5435  Array.from(riter, function () { throw 2; });
5436} catch (e) { /* empty */ }
5437
5438module.exports = function (exec, skipClosing) {
5439  if (!skipClosing && !SAFE_CLOSING) return false;
5440  var safe = false;
5441  try {
5442    var arr = [7];
5443    var iter = arr[ITERATOR]();
5444    iter.next = function () { return { done: safe = true }; };
5445    arr[ITERATOR] = function () { return iter; };
5446    exec(arr);
5447  } catch (e) { /* empty */ }
5448  return safe;
5449};
5450
5451
5452/***/ }),
5453/* 86 */
5454/***/ (function(module, exports) {
5455
5456exports.f = Object.getOwnPropertySymbols;
5457
5458
5459/***/ }),
5460/* 87 */
5461/***/ (function(module, exports, __webpack_require__) {
5462
5463// 7.2.2 IsArray(argument)
5464var cof = __webpack_require__(29);
5465module.exports = Array.isArray || function isArray(arg) {
5466  return cof(arg) == 'Array';
5467};
5468
5469
5470/***/ }),
5471/* 88 */
5472/***/ (function(module, exports, __webpack_require__) {
5473
5474// 7.2.8 IsRegExp(argument)
5475var isObject = __webpack_require__(7);
5476var cof = __webpack_require__(29);
5477var MATCH = __webpack_require__(9)('match');
5478module.exports = function (it) {
5479  var isRegExp;
5480  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
5481};
5482
5483
5484/***/ }),
5485/* 89 */
5486/***/ (function(module, exports, __webpack_require__) {
5487
5488"use strict";
5489
5490// 21.2.5.3 get RegExp.prototype.flags
5491var anObject = __webpack_require__(4);
5492module.exports = function () {
5493  var that = anObject(this);
5494  var result = '';
5495  if (that.global) result += 'g';
5496  if (that.ignoreCase) result += 'i';
5497  if (that.multiline) result += 'm';
5498  if (that.unicode) result += 'u';
5499  if (that.sticky) result += 'y';
5500  return result;
5501};
5502
5503
5504/***/ }),
5505/* 90 */
5506/***/ (function(module, exports, __webpack_require__) {
5507
5508"use strict";
5509
5510var hide = __webpack_require__(20);
5511var redefine = __webpack_require__(19);
5512var fails = __webpack_require__(6);
5513var defined = __webpack_require__(35);
5514var wks = __webpack_require__(9);
5515
5516module.exports = function (KEY, length, exec) {
5517  var SYMBOL = wks(KEY);
5518  var fns = exec(defined, SYMBOL, ''[KEY]);
5519  var strfn = fns[0];
5520  var rxfn = fns[1];
5521  if (fails(function () {
5522    var O = {};
5523    O[SYMBOL] = function () { return 7; };
5524    return ''[KEY](O) != 7;
5525  })) {
5526    redefine(String.prototype, KEY, strfn);
5527    hide(RegExp.prototype, SYMBOL, length == 2
5528      // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
5529      // 21.2.5.11 RegExp.prototype[@@split](string, limit)
5530      ? function (string, arg) { return rxfn.call(string, this, arg); }
5531      // 21.2.5.6 RegExp.prototype[@@match](string)
5532      // 21.2.5.9 RegExp.prototype[@@search](string)
5533      : function (string) { return rxfn.call(string, this); }
5534    );
5535  }
5536};
5537
5538
5539/***/ }),
5540/* 91 */
5541/***/ (function(module, exports, __webpack_require__) {
5542
5543// 7.3.20 SpeciesConstructor(O, defaultConstructor)
5544var anObject = __webpack_require__(4);
5545var aFunction = __webpack_require__(17);
5546var SPECIES = __webpack_require__(9)('species');
5547module.exports = function (O, D) {
5548  var C = anObject(O).constructor;
5549  var S;
5550  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
5551};
5552
5553
5554/***/ }),
5555/* 92 */
5556/***/ (function(module, exports, __webpack_require__) {
5557
5558var global = __webpack_require__(5);
5559var navigator = global.navigator;
5560
5561module.exports = navigator && navigator.userAgent || '';
5562
5563
5564/***/ }),
5565/* 93 */
5566/***/ (function(module, exports, __webpack_require__) {
5567
5568var global = __webpack_require__(5);
5569var hide = __webpack_require__(20);
5570var uid = __webpack_require__(49);
5571var TYPED = uid('typed_array');
5572var VIEW = uid('view');
5573var ABV = !!(global.ArrayBuffer && global.DataView);
5574var CONSTR = ABV;
5575var i = 0;
5576var l = 9;
5577var Typed;
5578
5579var TypedArrayConstructors = (
5580  'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'
5581).split(',');
5582
5583while (i < l) {
5584  if (Typed = global[TypedArrayConstructors[i++]]) {
5585    hide(Typed.prototype, TYPED, true);
5586    hide(Typed.prototype, VIEW, true);
5587  } else CONSTR = false;
5588}
5589
5590module.exports = {
5591  ABV: ABV,
5592  CONSTR: CONSTR,
5593  TYPED: TYPED,
5594  VIEW: VIEW
5595};
5596
5597
5598/***/ }),
5599/* 94 */
5600/***/ (function(module, exports, __webpack_require__) {
5601
5602"use strict";
5603
5604// Forced replacement prototype accessors methods
5605module.exports = __webpack_require__(44) || !__webpack_require__(6)(function () {
5606  var K = Math.random();
5607  // In FF throws only define methods
5608  // eslint-disable-next-line no-undef, no-useless-call
5609  __defineSetter__.call(null, K, function () { /* empty */ });
5610  delete __webpack_require__(5)[K];
5611});
5612
5613
5614/***/ }),
5615/* 95 */
5616/***/ (function(module, exports, __webpack_require__) {
5617
5618"use strict";
5619
5620// https://tc39.github.io/proposal-setmap-offrom/
5621var $export = __webpack_require__(0);
5622
5623module.exports = function (COLLECTION) {
5624  $export($export.S, COLLECTION, { of: function of() {
5625    var length = arguments.length;
5626    var A = new Array(length);
5627    while (length--) A[length] = arguments[length];
5628    return new this(A);
5629  } });
5630};
5631
5632
5633/***/ }),
5634/* 96 */
5635/***/ (function(module, exports, __webpack_require__) {
5636
5637"use strict";
5638
5639// https://tc39.github.io/proposal-setmap-offrom/
5640var $export = __webpack_require__(0);
5641var aFunction = __webpack_require__(17);
5642var ctx = __webpack_require__(30);
5643var forOf = __webpack_require__(56);
5644
5645module.exports = function (COLLECTION) {
5646  $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {
5647    var mapFn = arguments[1];
5648    var mapping, A, n, cb;
5649    aFunction(this);
5650    mapping = mapFn !== undefined;
5651    if (mapping) aFunction(mapFn);
5652    if (source == undefined) return new this();
5653    A = [];
5654    if (mapping) {
5655      n = 0;
5656      cb = ctx(mapFn, arguments[2], 2);
5657      forOf(source, false, function (nextItem) {
5658        A.push(cb(nextItem, n++));
5659      });
5660    } else {
5661      forOf(source, false, A.push, A);
5662    }
5663    return new this(A);
5664  } });
5665};
5666
5667
5668/***/ }),
5669/* 97 */
5670/***/ (function(module, exports, __webpack_require__) {
5671
5672"use strict";
5673/* WEBPACK VAR INJECTION */(function(process) {/**
5674 * Copyright (c) 2013-present, Facebook, Inc.
5675 *
5676 * This source code is licensed under the MIT license found in the
5677 * LICENSE file in the root directory of this source tree.
5678 *
5679 * 
5680 */
5681
5682
5683
5684var canDefineProperty = false;
5685if (process.env.NODE_ENV !== 'production') {
5686  try {
5687    // $FlowFixMe https://github.com/facebook/flow/issues/285
5688    Object.defineProperty({}, 'x', { get: function () {} });
5689    canDefineProperty = true;
5690  } catch (x) {
5691    // IE will fail on defineProperty
5692  }
5693}
5694
5695module.exports = canDefineProperty;
5696/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
5697
5698/***/ }),
5699/* 98 */
5700/***/ (function(module, exports, __webpack_require__) {
5701
5702"use strict";
5703/* WEBPACK VAR INJECTION */(function(process) {/**
5704 * Copyright (c) 2013-present, Facebook, Inc.
5705 *
5706 * This source code is licensed under the MIT license found in the
5707 * LICENSE file in the root directory of this source tree.
5708 *
5709 */
5710
5711
5712
5713var emptyObject = {};
5714
5715if (process.env.NODE_ENV !== 'production') {
5716  Object.freeze(emptyObject);
5717}
5718
5719module.exports = emptyObject;
5720/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
5721
5722/***/ }),
5723/* 99 */
5724/***/ (function(module, exports, __webpack_require__) {
5725
5726"use strict";
5727/* WEBPACK VAR INJECTION */(function(process) {/**
5728 * Copyright (c) 2013-present, Facebook, Inc.
5729 *
5730 * This source code is licensed under the MIT license found in the
5731 * LICENSE file in the root directory of this source tree.
5732 *
5733 * 
5734 */
5735
5736
5737
5738var _prodInvariant = __webpack_require__(8);
5739
5740var invariant = __webpack_require__(2);
5741
5742/**
5743 * Injectable ordering of event plugins.
5744 */
5745var eventPluginOrder = null;
5746
5747/**
5748 * Injectable mapping from names to event plugin modules.
5749 */
5750var namesToPlugins = {};
5751
5752/**
5753 * Recomputes the plugin list using the injected plugins and plugin ordering.
5754 *
5755 * @private
5756 */
5757function recomputePluginOrdering() {
5758  if (!eventPluginOrder) {
5759    // Wait until an `eventPluginOrder` is injected.
5760    return;
5761  }
5762  for (var pluginName in namesToPlugins) {
5763    var pluginModule = namesToPlugins[pluginName];
5764    var pluginIndex = eventPluginOrder.indexOf(pluginName);
5765    !(pluginIndex > -1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : _prodInvariant('96', pluginName) : void 0;
5766    if (EventPluginRegistry.plugins[pluginIndex]) {
5767      continue;
5768    }
5769    !pluginModule.extractEvents ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : _prodInvariant('97', pluginName) : void 0;
5770    EventPluginRegistry.plugins[pluginIndex] = pluginModule;
5771    var publishedEvents = pluginModule.eventTypes;
5772    for (var eventName in publishedEvents) {
5773      !publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : _prodInvariant('98', eventName, pluginName) : void 0;
5774    }
5775  }
5776}
5777
5778/**
5779 * Publishes an event so that it can be dispatched by the supplied plugin.
5780 *
5781 * @param {object} dispatchConfig Dispatch configuration for the event.
5782 * @param {object} PluginModule Plugin publishing the event.
5783 * @return {boolean} True if the event was successfully published.
5784 * @private
5785 */
5786function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
5787  !!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : _prodInvariant('99', eventName) : void 0;
5788  EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;
5789
5790  var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
5791  if (phasedRegistrationNames) {
5792    for (var phaseName in phasedRegistrationNames) {
5793      if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
5794        var phasedRegistrationName = phasedRegistrationNames[phaseName];
5795        publishRegistrationName(phasedRegistrationName, pluginModule, eventName);
5796      }
5797    }
5798    return true;
5799  } else if (dispatchConfig.registrationName) {
5800    publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);
5801    return true;
5802  }
5803  return false;
5804}
5805
5806/**
5807 * Publishes a registration name that is used to identify dispatched events and
5808 * can be used with `EventPluginHub.putListener` to register listeners.
5809 *
5810 * @param {string} registrationName Registration name to add.
5811 * @param {object} PluginModule Plugin publishing the event.
5812 * @private
5813 */
5814function publishRegistrationName(registrationName, pluginModule, eventName) {
5815  !!EventPluginRegistry.registrationNameModules[registrationName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : _prodInvariant('100', registrationName) : void 0;
5816  EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;
5817  EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;
5818
5819  if (process.env.NODE_ENV !== 'production') {
5820    var lowerCasedName = registrationName.toLowerCase();
5821    EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;
5822
5823    if (registrationName === 'onDoubleClick') {
5824      EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;
5825    }
5826  }
5827}
5828
5829/**
5830 * Registers plugins so that they can extract and dispatch events.
5831 *
5832 * @see {EventPluginHub}
5833 */
5834var EventPluginRegistry = {
5835  /**
5836   * Ordered list of injected plugins.
5837   */
5838  plugins: [],
5839
5840  /**
5841   * Mapping from event name to dispatch config
5842   */
5843  eventNameDispatchConfigs: {},
5844
5845  /**
5846   * Mapping from registration name to plugin module
5847   */
5848  registrationNameModules: {},
5849
5850  /**
5851   * Mapping from registration name to event name
5852   */
5853  registrationNameDependencies: {},
5854
5855  /**
5856   * Mapping from lowercase registration names to the properly cased version,
5857   * used to warn in the case of missing event handlers. Available
5858   * only in __DEV__.
5859   * @type {Object}
5860   */
5861  possibleRegistrationNames: process.env.NODE_ENV !== 'production' ? {} : null,
5862  // Trust the developer to only use possibleRegistrationNames in __DEV__
5863
5864  /**
5865   * Injects an ordering of plugins (by plugin name). This allows the ordering
5866   * to be decoupled from injection of the actual plugins so that ordering is
5867   * always deterministic regardless of packaging, on-the-fly injection, etc.
5868   *
5869   * @param {array} InjectedEventPluginOrder
5870   * @internal
5871   * @see {EventPluginHub.injection.injectEventPluginOrder}
5872   */
5873  injectEventPluginOrder: function (injectedEventPluginOrder) {
5874    !!eventPluginOrder ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : _prodInvariant('101') : void 0;
5875    // Clone the ordering so it cannot be dynamically mutated.
5876    eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);
5877    recomputePluginOrdering();
5878  },
5879
5880  /**
5881   * Injects plugins to be used by `EventPluginHub`. The plugin names must be
5882   * in the ordering injected by `injectEventPluginOrder`.
5883   *
5884   * Plugins can be injected as part of page initialization or on-the-fly.
5885   *
5886   * @param {object} injectedNamesToPlugins Map from names to plugin modules.
5887   * @internal
5888   * @see {EventPluginHub.injection.injectEventPluginsByName}
5889   */
5890  injectEventPluginsByName: function (injectedNamesToPlugins) {
5891    var isOrderingDirty = false;
5892    for (var pluginName in injectedNamesToPlugins) {
5893      if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
5894        continue;
5895      }
5896      var pluginModule = injectedNamesToPlugins[pluginName];
5897      if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {
5898        !!namesToPlugins[pluginName] ? process.env.NODE_ENV !== 'production' ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : _prodInvariant('102', pluginName) : void 0;
5899        namesToPlugins[pluginName] = pluginModule;
5900        isOrderingDirty = true;
5901      }
5902    }
5903    if (isOrderingDirty) {
5904      recomputePluginOrdering();
5905    }
5906  },
5907
5908  /**
5909   * Looks up the plugin for the supplied event.
5910   *
5911   * @param {object} event A synthetic event.
5912   * @return {?object} The plugin that created the supplied event.
5913   * @internal
5914   */
5915  getPluginModuleForEvent: function (event) {
5916    var dispatchConfig = event.dispatchConfig;
5917    if (dispatchConfig.registrationName) {
5918      return EventPluginRegistry.registrationNameModules[dispatchConfig.registrationName] || null;
5919    }
5920    if (dispatchConfig.phasedRegistrationNames !== undefined) {
5921      // pulling phasedRegistrationNames out of dispatchConfig helps Flow see
5922      // that it is not undefined.
5923      var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
5924
5925      for (var phase in phasedRegistrationNames) {
5926        if (!phasedRegistrationNames.hasOwnProperty(phase)) {
5927          continue;
5928        }
5929        var pluginModule = EventPluginRegistry.registrationNameModules[phasedRegistrationNames[phase]];
5930        if (pluginModule) {
5931          return pluginModule;
5932        }
5933      }
5934    }
5935    return null;
5936  },
5937
5938  /**
5939   * Exposed for unit testing.
5940   * @private
5941   */
5942  _resetEventPlugins: function () {
5943    eventPluginOrder = null;
5944    for (var pluginName in namesToPlugins) {
5945      if (namesToPlugins.hasOwnProperty(pluginName)) {
5946        delete namesToPlugins[pluginName];
5947      }
5948    }
5949    EventPluginRegistry.plugins.length = 0;
5950
5951    var eventNameDispatchConfigs = EventPluginRegistry.eventNameDispatchConfigs;
5952    for (var eventName in eventNameDispatchConfigs) {
5953      if (eventNameDispatchConfigs.hasOwnProperty(eventName)) {
5954        delete eventNameDispatchConfigs[eventName];
5955      }
5956    }
5957
5958    var registrationNameModules = EventPluginRegistry.registrationNameModules;
5959    for (var registrationName in registrationNameModules) {
5960      if (registrationNameModules.hasOwnProperty(registrationName)) {
5961        delete registrationNameModules[registrationName];
5962      }
5963    }
5964
5965    if (process.env.NODE_ENV !== 'production') {
5966      var possibleRegistrationNames = EventPluginRegistry.possibleRegistrationNames;
5967      for (var lowerCasedName in possibleRegistrationNames) {
5968        if (possibleRegistrationNames.hasOwnProperty(lowerCasedName)) {
5969          delete possibleRegistrationNames[lowerCasedName];
5970        }
5971      }
5972    }
5973  }
5974};
5975
5976module.exports = EventPluginRegistry;
5977/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
5978
5979/***/ }),
5980/* 100 */
5981/***/ (function(module, exports, __webpack_require__) {
5982
5983"use strict";
5984/* WEBPACK VAR INJECTION */(function(process) {/**
5985 * Copyright (c) 2013-present, Facebook, Inc.
5986 *
5987 * This source code is licensed under the MIT license found in the
5988 * LICENSE file in the root directory of this source tree.
5989 *
5990 * 
5991 */
5992
5993
5994
5995var _prodInvariant = __webpack_require__(8);
5996
5997var invariant = __webpack_require__(2);
5998
5999var OBSERVED_ERROR = {};
6000
6001/**
6002 * `Transaction` creates a black box that is able to wrap any method such that
6003 * certain invariants are maintained before and after the method is invoked
6004 * (Even if an exception is thrown while invoking the wrapped method). Whoever
6005 * instantiates a transaction can provide enforcers of the invariants at
6006 * creation time. The `Transaction` class itself will supply one additional
6007 * automatic invariant for you - the invariant that any transaction instance
6008 * should not be run while it is already being run. You would typically create a
6009 * single instance of a `Transaction` for reuse multiple times, that potentially
6010 * is used to wrap several different methods. Wrappers are extremely simple -
6011 * they only require implementing two methods.
6012 *
6013 * <pre>
6014 *                       wrappers (injected at creation time)
6015 *                                      +        +
6016 *                                      |        |
6017 *                    +-----------------|--------|--------------+
6018 *                    |                 v        |              |
6019 *                    |      +---------------+   |              |
6020 *                    |   +--|    wrapper1   |---|----+         |
6021 *                    |   |  +---------------+   v    |         |
6022 *                    |   |          +-------------+  |         |
6023 *                    |   |     +----|   wrapper2  |--------+   |
6024 *                    |   |     |    +-------------+  |     |   |
6025 *                    |   |     |                     |     |   |
6026 *                    |   v     v                     v     v   | wrapper
6027 *                    | +---+ +---+   +---------+   +---+ +---+ | invariants
6028 * perform(anyMethod) | |   | |   |   |         |   |   | |   | | maintained
6029 * +----------------->|-|---|-|---|-->|anyMethod|---|---|-|---|-|-------->
6030 *                    | |   | |   |   |         |   |   | |   | |
6031 *                    | |   | |   |   |         |   |   | |   | |
6032 *                    | |   | |   |   |         |   |   | |   | |
6033 *                    | +---+ +---+   +---------+   +---+ +---+ |
6034 *                    |  initialize                    close    |
6035 *                    +-----------------------------------------+
6036 * </pre>
6037 *
6038 * Use cases:
6039 * - Preserving the input selection ranges before/after reconciliation.
6040 *   Restoring selection even in the event of an unexpected error.
6041 * - Deactivating events while rearranging the DOM, preventing blurs/focuses,
6042 *   while guaranteeing that afterwards, the event system is reactivated.
6043 * - Flushing a queue of collected DOM mutations to the main UI thread after a
6044 *   reconciliation takes place in a worker thread.
6045 * - Invoking any collected `componentDidUpdate` callbacks after rendering new
6046 *   content.
6047 * - (Future use case): Wrapping particular flushes of the `ReactWorker` queue
6048 *   to preserve the `scrollTop` (an automatic scroll aware DOM).
6049 * - (Future use case): Layout calculations before and after DOM updates.
6050 *
6051 * Transactional plugin API:
6052 * - A module that has an `initialize` method that returns any precomputation.
6053 * - and a `close` method that accepts the precomputation. `close` is invoked
6054 *   when the wrapped process is completed, or has failed.
6055 *
6056 * @param {Array<TransactionalWrapper>} transactionWrapper Wrapper modules
6057 * that implement `initialize` and `close`.
6058 * @return {Transaction} Single transaction for reuse in thread.
6059 *
6060 * @class Transaction
6061 */
6062var TransactionImpl = {
6063  /**
6064   * Sets up this instance so that it is prepared for collecting metrics. Does
6065   * so such that this setup method may be used on an instance that is already
6066   * initialized, in a way that does not consume additional memory upon reuse.
6067   * That can be useful if you decide to make your subclass of this mixin a
6068   * "PooledClass".
6069   */
6070  reinitializeTransaction: function () {
6071    this.transactionWrappers = this.getTransactionWrappers();
6072    if (this.wrapperInitData) {
6073      this.wrapperInitData.length = 0;
6074    } else {
6075      this.wrapperInitData = [];
6076    }
6077    this._isInTransaction = false;
6078  },
6079
6080  _isInTransaction: false,
6081
6082  /**
6083   * @abstract
6084   * @return {Array<TransactionWrapper>} Array of transaction wrappers.
6085   */
6086  getTransactionWrappers: null,
6087
6088  isInTransaction: function () {
6089    return !!this._isInTransaction;
6090  },
6091
6092  /* eslint-disable space-before-function-paren */
6093
6094  /**
6095   * Executes the function within a safety window. Use this for the top level
6096   * methods that result in large amounts of computation/mutations that would
6097   * need to be safety checked. The optional arguments helps prevent the need
6098   * to bind in many cases.
6099   *
6100   * @param {function} method Member of scope to call.
6101   * @param {Object} scope Scope to invoke from.
6102   * @param {Object?=} a Argument to pass to the method.
6103   * @param {Object?=} b Argument to pass to the method.
6104   * @param {Object?=} c Argument to pass to the method.
6105   * @param {Object?=} d Argument to pass to the method.
6106   * @param {Object?=} e Argument to pass to the method.
6107   * @param {Object?=} f Argument to pass to the method.
6108   *
6109   * @return {*} Return value from `method`.
6110   */
6111  perform: function (method, scope, a, b, c, d, e, f) {
6112    /* eslint-enable space-before-function-paren */
6113    !!this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction.') : _prodInvariant('27') : void 0;
6114    var errorThrown;
6115    var ret;
6116    try {
6117      this._isInTransaction = true;
6118      // Catching errors makes debugging more difficult, so we start with
6119      // errorThrown set to true before setting it to false after calling
6120      // close -- if it's still set to true in the finally block, it means
6121      // one of these calls threw.
6122      errorThrown = true;
6123      this.initializeAll(0);
6124      ret = method.call(scope, a, b, c, d, e, f);
6125      errorThrown = false;
6126    } finally {
6127      try {
6128        if (errorThrown) {
6129          // If `method` throws, prefer to show that stack trace over any thrown
6130          // by invoking `closeAll`.
6131          try {
6132            this.closeAll(0);
6133          } catch (err) {}
6134        } else {
6135          // Since `method` didn't throw, we don't want to silence the exception
6136          // here.
6137          this.closeAll(0);
6138        }
6139      } finally {
6140        this._isInTransaction = false;
6141      }
6142    }
6143    return ret;
6144  },
6145
6146  initializeAll: function (startIndex) {
6147    var transactionWrappers = this.transactionWrappers;
6148    for (var i = startIndex; i < transactionWrappers.length; i++) {
6149      var wrapper = transactionWrappers[i];
6150      try {
6151        // Catching errors makes debugging more difficult, so we start with the
6152        // OBSERVED_ERROR state before overwriting it with the real return value
6153        // of initialize -- if it's still set to OBSERVED_ERROR in the finally
6154        // block, it means wrapper.initialize threw.
6155        this.wrapperInitData[i] = OBSERVED_ERROR;
6156        this.wrapperInitData[i] = wrapper.initialize ? wrapper.initialize.call(this) : null;
6157      } finally {
6158        if (this.wrapperInitData[i] === OBSERVED_ERROR) {
6159          // The initializer for wrapper i threw an error; initialize the
6160          // remaining wrappers but silence any exceptions from them to ensure
6161          // that the first error is the one to bubble up.
6162          try {
6163            this.initializeAll(i + 1);
6164          } catch (err) {}
6165        }
6166      }
6167    }
6168  },
6169
6170  /**
6171   * Invokes each of `this.transactionWrappers.close[i]` functions, passing into
6172   * them the respective return values of `this.transactionWrappers.init[i]`
6173   * (`close`rs that correspond to initializers that failed will not be
6174   * invoked).
6175   */
6176  closeAll: function (startIndex) {
6177    !this.isInTransaction() ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Transaction.closeAll(): Cannot close transaction when none are open.') : _prodInvariant('28') : void 0;
6178    var transactionWrappers = this.transactionWrappers;
6179    for (var i = startIndex; i < transactionWrappers.length; i++) {
6180      var wrapper = transactionWrappers[i];
6181      var initData = this.wrapperInitData[i];
6182      var errorThrown;
6183      try {
6184        // Catching errors makes debugging more difficult, so we start with
6185        // errorThrown set to true before setting it to false after calling
6186        // close -- if it's still set to true in the finally block, it means
6187        // wrapper.close threw.
6188        errorThrown = true;
6189        if (initData !== OBSERVED_ERROR && wrapper.close) {
6190          wrapper.close.call(this, initData);
6191        }
6192        errorThrown = false;
6193      } finally {
6194        if (errorThrown) {
6195          // The closer for wrapper i threw an error; close the remaining
6196          // wrappers but silence any exceptions from them to ensure that the
6197          // first error is the one to bubble up.
6198          try {
6199            this.closeAll(i + 1);
6200          } catch (e) {}
6201        }
6202      }
6203    }
6204    this.wrapperInitData.length = 0;
6205  }
6206};
6207
6208module.exports = TransactionImpl;
6209/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
6210
6211/***/ }),
6212/* 101 */
6213/***/ (function(module, exports, __webpack_require__) {
6214
6215"use strict";
6216/**
6217 * Copyright (c) 2013-present, Facebook, Inc.
6218 *
6219 * This source code is licensed under the MIT license found in the
6220 * LICENSE file in the root directory of this source tree.
6221 *
6222 */
6223
6224
6225
6226var SyntheticUIEvent = __webpack_require__(78);
6227var ViewportMetrics = __webpack_require__(203);
6228
6229var getEventModifierState = __webpack_require__(141);
6230
6231/**
6232 * @interface MouseEvent
6233 * @see http://www.w3.org/TR/DOM-Level-3-Events/
6234 */
6235var MouseEventInterface = {
6236  screenX: null,
6237  screenY: null,
6238  clientX: null,
6239  clientY: null,
6240  ctrlKey: null,
6241  shiftKey: null,
6242  altKey: null,
6243  metaKey: null,
6244  getModifierState: getEventModifierState,
6245  button: function (event) {
6246    // Webkit, Firefox, IE9+
6247    // which:  1 2 3
6248    // button: 0 1 2 (standard)
6249    var button = event.button;
6250    if ('which' in event) {
6251      return button;
6252    }
6253    // IE<9
6254    // which:  undefined
6255    // button: 0 0 0
6256    // button: 1 4 2 (onmouseup)
6257    return button === 2 ? 2 : button === 4 ? 1 : 0;
6258  },
6259  buttons: null,
6260  relatedTarget: function (event) {
6261    return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);
6262  },
6263  // "Proprietary" Interface.
6264  pageX: function (event) {
6265    return 'pageX' in event ? event.pageX : event.clientX + ViewportMetrics.currentScrollLeft;
6266  },
6267  pageY: function (event) {
6268    return 'pageY' in event ? event.pageY : event.clientY + ViewportMetrics.currentScrollTop;
6269  }
6270};
6271
6272/**
6273 * @param {object} dispatchConfig Configuration used to dispatch this event.
6274 * @param {string} dispatchMarker Marker identifying the event target.
6275 * @param {object} nativeEvent Native browser event.
6276 * @extends {SyntheticUIEvent}
6277 */
6278function SyntheticMouseEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
6279  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
6280}
6281
6282SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface);
6283
6284module.exports = SyntheticMouseEvent;
6285
6286/***/ }),
6287/* 102 */
6288/***/ (function(module, exports, __webpack_require__) {
6289
6290"use strict";
6291/**
6292 * Copyright (c) 2013-present, Facebook, Inc.
6293 *
6294 * This source code is licensed under the MIT license found in the
6295 * LICENSE file in the root directory of this source tree.
6296 *
6297 */
6298
6299
6300
6301var ExecutionEnvironment = __webpack_require__(16);
6302var DOMNamespaces = __webpack_require__(143);
6303
6304var WHITESPACE_TEST = /^[ \r\n\t\f]/;
6305var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/;
6306
6307var createMicrosoftUnsafeLocalFunction = __webpack_require__(144);
6308
6309// SVG temp container for IE lacking innerHTML
6310var reusableSVGContainer;
6311
6312/**
6313 * Set the innerHTML property of a node, ensuring that whitespace is preserved
6314 * even in IE8.
6315 *
6316 * @param {DOMElement} node
6317 * @param {string} html
6318 * @internal
6319 */
6320var setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {
6321  // IE does not have innerHTML for SVG nodes, so instead we inject the
6322  // new markup in a temp node and then move the child nodes across into
6323  // the target node
6324  if (node.namespaceURI === DOMNamespaces.svg && !('innerHTML' in node)) {
6325    reusableSVGContainer = reusableSVGContainer || document.createElement('div');
6326    reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';
6327    var svgNode = reusableSVGContainer.firstChild;
6328    while (svgNode.firstChild) {
6329      node.appendChild(svgNode.firstChild);
6330    }
6331  } else {
6332    node.innerHTML = html;
6333  }
6334});
6335
6336if (ExecutionEnvironment.canUseDOM) {
6337  // IE8: When updating a just created node with innerHTML only leading
6338  // whitespace is removed. When updating an existing node with innerHTML
6339  // whitespace in root TextNodes is also collapsed.
6340  // @see quirksmode.org/bugreports/archives/2004/11/innerhtml_and_t.html
6341
6342  // Feature detection; only IE8 is known to behave improperly like this.
6343  var testElement = document.createElement('div');
6344  testElement.innerHTML = ' ';
6345  if (testElement.innerHTML === '') {
6346    setInnerHTML = function (node, html) {
6347      // Magic theory: IE8 supposedly differentiates between added and updated
6348      // nodes when processing innerHTML, innerHTML on updated nodes suffers
6349      // from worse whitespace behavior. Re-adding a node like this triggers
6350      // the initial and more favorable whitespace behavior.
6351      // TODO: What to do on a detached node?
6352      if (node.parentNode) {
6353        node.parentNode.replaceChild(node, node);
6354      }
6355
6356      // We also implement a workaround for non-visible tags disappearing into
6357      // thin air on IE8, this only happens if there is no visible text
6358      // in-front of the non-visible tags. Piggyback on the whitespace fix
6359      // and simply check if any non-visible tags appear in the source.
6360      if (WHITESPACE_TEST.test(html) || html[0] === '<' && NONVISIBLE_TEST.test(html)) {
6361        // Recover leading whitespace by temporarily prepending any character.
6362        // \uFEFF has the potential advantage of being zero-width/invisible.
6363        // UglifyJS drops U+FEFF chars when parsing, so use String.fromCharCode
6364        // in hopes that this is preserved even if "\uFEFF" is transformed to
6365        // the actual Unicode character (by Babel, for example).
6366        // https://github.com/mishoo/UglifyJS2/blob/v2.4.20/lib/parse.js#L216
6367        node.innerHTML = String.fromCharCode(0xfeff) + html;
6368
6369        // deleteData leaves an empty `TextNode` which offsets the index of all
6370        // children. Definitely want to avoid this.
6371        var textNode = node.firstChild;
6372        if (textNode.data.length === 1) {
6373          node.removeChild(textNode);
6374        } else {
6375          textNode.deleteData(0, 1);
6376        }
6377      } else {
6378        node.innerHTML = html;
6379      }
6380    };
6381  }
6382  testElement = null;
6383}
6384
6385module.exports = setInnerHTML;
6386
6387/***/ }),
6388/* 103 */
6389/***/ (function(module, exports, __webpack_require__) {
6390
6391"use strict";
6392/**
6393 * Copyright (c) 2016-present, Facebook, Inc.
6394 *
6395 * This source code is licensed under the MIT license found in the
6396 * LICENSE file in the root directory of this source tree.
6397 *
6398 * Based on the escape-html library, which is used under the MIT License below:
6399 *
6400 * Copyright (c) 2012-2013 TJ Holowaychuk
6401 * Copyright (c) 2015 Andreas Lubbe
6402 * Copyright (c) 2015 Tiancheng "Timothy" Gu
6403 *
6404 * Permission is hereby granted, free of charge, to any person obtaining
6405 * a copy of this software and associated documentation files (the
6406 * 'Software'), to deal in the Software without restriction, including
6407 * without limitation the rights to use, copy, modify, merge, publish,
6408 * distribute, sublicense, and/or sell copies of the Software, and to
6409 * permit persons to whom the Software is furnished to do so, subject to
6410 * the following conditions:
6411 *
6412 * The above copyright notice and this permission notice shall be
6413 * included in all copies or substantial portions of the Software.
6414 *
6415 * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
6416 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
6417 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
6418 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
6419 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
6420 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
6421 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
6422 *
6423 */
6424
6425
6426
6427// code copied and modified from escape-html
6428/**
6429 * Module variables.
6430 * @private
6431 */
6432
6433var matchHtmlRegExp = /["'&<>]/;
6434
6435/**
6436 * Escape special characters in the given string of html.
6437 *
6438 * @param  {string} string The string to escape for inserting into HTML
6439 * @return {string}
6440 * @public
6441 */
6442
6443function escapeHtml(string) {
6444  var str = '' + string;
6445  var match = matchHtmlRegExp.exec(str);
6446
6447  if (!match) {
6448    return str;
6449  }
6450
6451  var escape;
6452  var html = '';
6453  var index = 0;
6454  var lastIndex = 0;
6455
6456  for (index = match.index; index < str.length; index++) {
6457    switch (str.charCodeAt(index)) {
6458      case 34:
6459        // "
6460        escape = '&quot;';
6461        break;
6462      case 38:
6463        // &
6464        escape = '&amp;';
6465        break;
6466      case 39:
6467        // '
6468        escape = '&#x27;'; // modified from escape-html; used to be '&#39'
6469        break;
6470      case 60:
6471        // <
6472        escape = '&lt;';
6473        break;
6474      case 62:
6475        // >
6476        escape = '&gt;';
6477        break;
6478      default:
6479        continue;
6480    }
6481
6482    if (lastIndex !== index) {
6483      html += str.substring(lastIndex, index);
6484    }
6485
6486    lastIndex = index + 1;
6487    html += escape;
6488  }
6489
6490  return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
6491}
6492// end code copied and modified from escape-html
6493
6494/**
6495 * Escapes text to prevent scripting attacks.
6496 *
6497 * @param {*} text Text value to escape.
6498 * @return {string} An escaped string.
6499 */
6500function escapeTextContentForBrowser(text) {
6501  if (typeof text === 'boolean' || typeof text === 'number') {
6502    // this shortcircuit helps perf for types that we know will never have
6503    // special characters, especially given that this function is used often
6504    // for numeric dom ids.
6505    return '' + text;
6506  }
6507  return escapeHtml(text);
6508}
6509
6510module.exports = escapeTextContentForBrowser;
6511
6512/***/ }),
6513/* 104 */
6514/***/ (function(module, exports, __webpack_require__) {
6515
6516"use strict";
6517/**
6518 * Copyright (c) 2013-present, Facebook, Inc.
6519 *
6520 * This source code is licensed under the MIT license found in the
6521 * LICENSE file in the root directory of this source tree.
6522 *
6523 */
6524
6525
6526
6527var _assign = __webpack_require__(10);
6528
6529var EventPluginRegistry = __webpack_require__(99);
6530var ReactEventEmitterMixin = __webpack_require__(483);
6531var ViewportMetrics = __webpack_require__(203);
6532
6533var getVendorPrefixedEventName = __webpack_require__(484);
6534var isEventSupported = __webpack_require__(140);
6535
6536/**
6537 * Summary of `ReactBrowserEventEmitter` event handling:
6538 *
6539 *  - Top-level delegation is used to trap most native browser events. This
6540 *    may only occur in the main thread and is the responsibility of
6541 *    ReactEventListener, which is injected and can therefore support pluggable
6542 *    event sources. This is the only work that occurs in the main thread.
6543 *
6544 *  - We normalize and de-duplicate events to account for browser quirks. This
6545 *    may be done in the worker thread.
6546 *
6547 *  - Forward these native events (with the associated top-level type used to
6548 *    trap it) to `EventPluginHub`, which in turn will ask plugins if they want
6549 *    to extract any synthetic events.
6550 *
6551 *  - The `EventPluginHub` will then process each event by annotating them with
6552 *    "dispatches", a sequence of listeners and IDs that care about that event.
6553 *
6554 *  - The `EventPluginHub` then dispatches the events.
6555 *
6556 * Overview of React and the event system:
6557 *
6558 * +------------+    .
6559 * |    DOM     |    .
6560 * +------------+    .
6561 *       |           .
6562 *       v           .
6563 * +------------+    .
6564 * | ReactEvent |    .
6565 * |  Listener  |    .
6566 * +------------+    .                         +-----------+
6567 *       |           .               +--------+|SimpleEvent|
6568 *       |           .               |         |Plugin     |
6569 * +-----|------+    .               v         +-----------+
6570 * |     |      |    .    +--------------+                    +------------+
6571 * |     +-----------.--->|EventPluginHub|                    |    Event   |
6572 * |            |    .    |              |     +-----------+  | Propagators|
6573 * | ReactEvent |    .    |              |     |TapEvent   |  |------------|
6574 * |  Emitter   |    .    |              |<---+|Plugin     |  |other plugin|
6575 * |            |    .    |              |     +-----------+  |  utilities |
6576 * |     +-----------.--->|              |                    +------------+
6577 * |     |      |    .    +--------------+
6578 * +-----|------+    .                ^        +-----------+
6579 *       |           .                |        |Enter/Leave|
6580 *       +           .                +-------+|Plugin     |
6581 * +-------------+   .                         +-----------+
6582 * | application |   .
6583 * |-------------|   .
6584 * |             |   .
6585 * |             |   .
6586 * +-------------+   .
6587 *                   .
6588 *    React Core     .  General Purpose Event Plugin System
6589 */
6590
6591var hasEventPageXY;
6592var alreadyListeningTo = {};
6593var isMonitoringScrollValue = false;
6594var reactTopListenersCounter = 0;
6595
6596// For events like 'submit' which don't consistently bubble (which we trap at a
6597// lower node than `document`), binding at `document` would cause duplicate
6598// events so we don't include them here
6599var topEventMapping = {
6600  topAbort: 'abort',
6601  topAnimationEnd: getVendorPrefixedEventName('animationend') || 'animationend',
6602  topAnimationIteration: getVendorPrefixedEventName('animationiteration') || 'animationiteration',
6603  topAnimationStart: getVendorPrefixedEventName('animationstart') || 'animationstart',
6604  topBlur: 'blur',
6605  topCanPlay: 'canplay',
6606  topCanPlayThrough: 'canplaythrough',
6607  topChange: 'change',
6608  topClick: 'click',
6609  topCompositionEnd: 'compositionend',
6610  topCompositionStart: 'compositionstart',
6611  topCompositionUpdate: 'compositionupdate',
6612  topContextMenu: 'contextmenu',
6613  topCopy: 'copy',
6614  topCut: 'cut',
6615  topDoubleClick: 'dblclick',
6616  topDrag: 'drag',
6617  topDragEnd: 'dragend',
6618  topDragEnter: 'dragenter',
6619  topDragExit: 'dragexit',
6620  topDragLeave: 'dragleave',
6621  topDragOver: 'dragover',
6622  topDragStart: 'dragstart',
6623  topDrop: 'drop',
6624  topDurationChange: 'durationchange',
6625  topEmptied: 'emptied',
6626  topEncrypted: 'encrypted',
6627  topEnded: 'ended',
6628  topError: 'error',
6629  topFocus: 'focus',
6630  topInput: 'input',
6631  topKeyDown: 'keydown',
6632  topKeyPress: 'keypress',
6633  topKeyUp: 'keyup',
6634  topLoadedData: 'loadeddata',
6635  topLoadedMetadata: 'loadedmetadata',
6636  topLoadStart: 'loadstart',
6637  topMouseDown: 'mousedown',
6638  topMouseMove: 'mousemove',
6639  topMouseOut: 'mouseout',
6640  topMouseOver: 'mouseover',
6641  topMouseUp: 'mouseup',
6642  topPaste: 'paste',
6643  topPause: 'pause',
6644  topPlay: 'play',
6645  topPlaying: 'playing',
6646  topProgress: 'progress',
6647  topRateChange: 'ratechange',
6648  topScroll: 'scroll',
6649  topSeeked: 'seeked',
6650  topSeeking: 'seeking',
6651  topSelectionChange: 'selectionchange',
6652  topStalled: 'stalled',
6653  topSuspend: 'suspend',
6654  topTextInput: 'textInput',
6655  topTimeUpdate: 'timeupdate',
6656  topTouchCancel: 'touchcancel',
6657  topTouchEnd: 'touchend',
6658  topTouchMove: 'touchmove',
6659  topTouchStart: 'touchstart',
6660  topTransitionEnd: getVendorPrefixedEventName('transitionend') || 'transitionend',
6661  topVolumeChange: 'volumechange',
6662  topWaiting: 'waiting',
6663  topWheel: 'wheel'
6664};
6665
6666/**
6667 * To ensure no conflicts with other potential React instances on the page
6668 */
6669var topListenersIDKey = '_reactListenersID' + String(Math.random()).slice(2);
6670
6671function getListeningForDocument(mountAt) {
6672  // In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
6673  // directly.
6674  if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
6675    mountAt[topListenersIDKey] = reactTopListenersCounter++;
6676    alreadyListeningTo[mountAt[topListenersIDKey]] = {};
6677  }
6678  return alreadyListeningTo[mountAt[topListenersIDKey]];
6679}
6680
6681/**
6682 * `ReactBrowserEventEmitter` is used to attach top-level event listeners. For
6683 * example:
6684 *
6685 *   EventPluginHub.putListener('myID', 'onClick', myFunction);
6686 *
6687 * This would allocate a "registration" of `('onClick', myFunction)` on 'myID'.
6688 *
6689 * @internal
6690 */
6691var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, {
6692  /**
6693   * Injectable event backend
6694   */
6695  ReactEventListener: null,
6696
6697  injection: {
6698    /**
6699     * @param {object} ReactEventListener
6700     */
6701    injectReactEventListener: function (ReactEventListener) {
6702      ReactEventListener.setHandleTopLevel(ReactBrowserEventEmitter.handleTopLevel);
6703      ReactBrowserEventEmitter.ReactEventListener = ReactEventListener;
6704    }
6705  },
6706
6707  /**
6708   * Sets whether or not any created callbacks should be enabled.
6709   *
6710   * @param {boolean} enabled True if callbacks should be enabled.
6711   */
6712  setEnabled: function (enabled) {
6713    if (ReactBrowserEventEmitter.ReactEventListener) {
6714      ReactBrowserEventEmitter.ReactEventListener.setEnabled(enabled);
6715    }
6716  },
6717
6718  /**
6719   * @return {boolean} True if callbacks are enabled.
6720   */
6721  isEnabled: function () {
6722    return !!(ReactBrowserEventEmitter.ReactEventListener && ReactBrowserEventEmitter.ReactEventListener.isEnabled());
6723  },
6724
6725  /**
6726   * We listen for bubbled touch events on the document object.
6727   *
6728   * Firefox v8.01 (and possibly others) exhibited strange behavior when
6729   * mounting `onmousemove` events at some node that was not the document
6730   * element. The symptoms were that if your mouse is not moving over something
6731   * contained within that mount point (for example on the background) the
6732   * top-level listeners for `onmousemove` won't be called. However, if you
6733   * register the `mousemove` on the document object, then it will of course
6734   * catch all `mousemove`s. This along with iOS quirks, justifies restricting
6735   * top-level listeners to the document object only, at least for these
6736   * movement types of events and possibly all events.
6737   *
6738   * @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
6739   *
6740   * Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but
6741   * they bubble to document.
6742   *
6743   * @param {string} registrationName Name of listener (e.g. `onClick`).
6744   * @param {object} contentDocumentHandle Document which owns the container
6745   */
6746  listenTo: function (registrationName, contentDocumentHandle) {
6747    var mountAt = contentDocumentHandle;
6748    var isListening = getListeningForDocument(mountAt);
6749    var dependencies = EventPluginRegistry.registrationNameDependencies[registrationName];
6750
6751    for (var i = 0; i < dependencies.length; i++) {
6752      var dependency = dependencies[i];
6753      if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
6754        if (dependency === 'topWheel') {
6755          if (isEventSupported('wheel')) {
6756            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'wheel', mountAt);
6757          } else if (isEventSupported('mousewheel')) {
6758            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'mousewheel', mountAt);
6759          } else {
6760            // Firefox needs to capture a different mouse scroll event.
6761            // @see http://www.quirksmode.org/dom/events/tests/scroll.html
6762            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);
6763          }
6764        } else if (dependency === 'topScroll') {
6765          if (isEventSupported('scroll', true)) {
6766            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topScroll', 'scroll', mountAt);
6767          } else {
6768            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topScroll', 'scroll', ReactBrowserEventEmitter.ReactEventListener.WINDOW_HANDLE);
6769          }
6770        } else if (dependency === 'topFocus' || dependency === 'topBlur') {
6771          if (isEventSupported('focus', true)) {
6772            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topFocus', 'focus', mountAt);
6773            ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent('topBlur', 'blur', mountAt);
6774          } else if (isEventSupported('focusin')) {
6775            // IE has `focusin` and `focusout` events which bubble.
6776            // @see http://www.quirksmode.org/blog/archives/2008/04/delegating_the.html
6777            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topFocus', 'focusin', mountAt);
6778            ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent('topBlur', 'focusout', mountAt);
6779          }
6780
6781          // to make sure blur and focus event listeners are only attached once
6782          isListening.topBlur = true;
6783          isListening.topFocus = true;
6784        } else if (topEventMapping.hasOwnProperty(dependency)) {
6785          ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(dependency, topEventMapping[dependency], mountAt);
6786        }
6787
6788        isListening[dependency] = true;
6789      }
6790    }
6791  },
6792
6793  trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {
6794    return ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(topLevelType, handlerBaseName, handle);
6795  },
6796
6797  trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {
6798    return ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(topLevelType, handlerBaseName, handle);
6799  },
6800
6801  /**
6802   * Protect against document.createEvent() returning null
6803   * Some popup blocker extensions appear to do this:
6804   * https://github.com/facebook/react/issues/6887
6805   */
6806  supportsEventPageXY: function () {
6807    if (!document.createEvent) {
6808      return false;
6809    }
6810    var ev = document.createEvent('MouseEvent');
6811    return ev != null && 'pageX' in ev;
6812  },
6813
6814  /**
6815   * Listens to window scroll and resize events. We cache scroll values so that
6816   * application code can access them without triggering reflows.
6817   *
6818   * ViewportMetrics is only used by SyntheticMouse/TouchEvent and only when
6819   * pageX/pageY isn't supported (legacy browsers).
6820   *
6821   * NOTE: Scroll events do not bubble.
6822   *
6823   * @see http://www.quirksmode.org/dom/events/scroll.html
6824   */
6825  ensureScrollValueMonitoring: function () {
6826    if (hasEventPageXY === undefined) {
6827      hasEventPageXY = ReactBrowserEventEmitter.supportsEventPageXY();
6828    }
6829    if (!hasEventPageXY && !isMonitoringScrollValue) {
6830      var refresh = ViewportMetrics.refreshScrollValues;
6831      ReactBrowserEventEmitter.ReactEventListener.monitorScrollValue(refresh);
6832      isMonitoringScrollValue = true;
6833    }
6834  }
6835});
6836
6837module.exports = ReactBrowserEventEmitter;
6838
6839/***/ }),
6840/* 105 */
6841/***/ (function(module, exports, __webpack_require__) {
6842
6843"use strict";
6844
6845// 19.1.3.6 Object.prototype.toString()
6846var classof = __webpack_require__(73);
6847var test = {};
6848test[__webpack_require__(9)('toStringTag')] = 'z';
6849if (test + '' != '[object z]') {
6850  __webpack_require__(19)(Object.prototype, 'toString', function toString() {
6851    return '[object ' + classof(this) + ']';
6852  }, true);
6853}
6854
6855
6856/***/ }),
6857/* 106 */
6858/***/ (function(module, exports, __webpack_require__) {
6859
6860var isObject = __webpack_require__(7);
6861var document = __webpack_require__(5).document;
6862// typeof document.createElement is 'object' in old IE
6863var is = isObject(document) && isObject(document.createElement);
6864module.exports = function (it) {
6865  return is ? document.createElement(it) : {};
6866};
6867
6868
6869/***/ }),
6870/* 107 */
6871/***/ (function(module, exports, __webpack_require__) {
6872
6873"use strict";
6874
6875var $at = __webpack_require__(108)(true);
6876
6877// 21.1.3.27 String.prototype[@@iterator]()
6878__webpack_require__(109)(String, 'String', function (iterated) {
6879  this._t = String(iterated); // target
6880  this._i = 0;                // next index
6881// 21.1.5.2.1 %StringIteratorPrototype%.next()
6882}, function () {
6883  var O = this._t;
6884  var index = this._i;
6885  var point;
6886  if (index >= O.length) return { value: undefined, done: true };
6887  point = $at(O, index);
6888  this._i += point.length;
6889  return { value: point, done: false };
6890});
6891
6892
6893/***/ }),
6894/* 108 */
6895/***/ (function(module, exports, __webpack_require__) {
6896
6897var toInteger = __webpack_require__(34);
6898var defined = __webpack_require__(35);
6899// true  -> String#at
6900// false ->
vendor: 4,166 bytes, lines 6900-7018
6900 String#codePointAt
6901module.exports = function (TO_STRING) {
6902  return function (that, pos) {
6903    var s = String(defined(that));
6904    var i = toInteger(pos);
6905    var l = s.length;
6906    var a, b;
6907    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
6908    a = s.charCodeAt(i);
6909    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
6910      ? TO_STRING ? s.charAt(i) : a
6911      : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
6912  };
6913};
6914
6915
6916/***/ }),
6917/* 109 */
6918/***/ (function(module, exports, __webpack_require__) {
6919
6920"use strict";
6921
6922var LIBRARY = __webpack_require__(44);
6923var $export = __webpack_require__(0);
6924var redefine = __webpack_require__(19);
6925var hide = __webpack_require__(20);
6926var Iterators = __webpack_require__(61);
6927var $iterCreate = __webpack_require__(110);
6928var setToStringTag = __webpack_require__(62);
6929var getPrototypeOf = __webpack_require__(26);
6930var ITERATOR = __webpack_require__(9)('iterator');
6931var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
6932var FF_ITERATOR = '@@iterator';
6933var KEYS = 'keys';
6934var VALUES = 'values';
6935
6936var returnThis = function () { return this; };
6937
6938module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
6939  $iterCreate(Constructor, NAME, next);
6940  var getMethod = function (kind) {
6941    if (!BUGGY && kind in proto) return proto[kind];
6942    switch (kind) {
6943      case KEYS: return function keys() { return new Constructor(this, kind); };
6944      case VALUES: return function values() { return new Constructor(this, kind); };
6945    } return function entries() { return new Constructor(this, kind); };
6946  };
6947  var TAG = NAME + ' Iterator';
6948  var DEF_VALUES = DEFAULT == VALUES;
6949  var VALUES_BUG = false;
6950  var proto = Base.prototype;
6951  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
6952  var $default = $native || getMethod(DEFAULT);
6953  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
6954  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
6955  var methods, key, IteratorPrototype;
6956  // Fix native
6957  if ($anyNative) {
6958    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
6959    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
6960      // Set @@toStringTag to native iterators
6961      setToStringTag(IteratorPrototype, TAG, true);
6962      // fix for some old engines
6963      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
6964    }
6965  }
6966  // fix Array#{values, @@iterator}.name in V8 / FF
6967  if (DEF_VALUES && $native && $native.name !== VALUES) {
6968    VALUES_BUG = true;
6969    $default = function values() { return $native.call(this); };
6970  }
6971  // Define iterator
6972  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
6973    hide(proto, ITERATOR, $default);
6974  }
6975  // Plug for library
6976  Iterators[NAME] = $default;
6977  Iterators[TAG] = returnThis;
6978  if (DEFAULT) {
6979    methods = {
6980      values: DEF_VALUES ? $default : getMethod(VALUES),
6981      keys: IS_SET ? $default : getMethod(KEYS),
6982      entries: $entries
6983    };
6984    if (FORCED) for (key in methods) {
6985      if (!(key in proto)) redefine(proto, key, methods[key]);
6986    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
6987  }
6988  return methods;
6989};
6990
6991
6992/***/ }),
6993/* 110 */
6994/***/ (function(module, exports, __webpack_require__) {
6995
6996"use strict";
6997
6998var create = __webpack_require__(51);
6999var descriptor = __webpack_require__(50);
7000var setToStringTag = __webpack_require__(62);
7001var IteratorPrototype = {};
7002
7003// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
7004__webpack_require__(20)(IteratorPrototype, __webpack_require__(9)('iterator'), function () { return this; });
7005
7006module.exports = function (Constructor, NAME, next) {
7007  Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
7008  setToStringTag(Constructor, NAME + ' Iterator');
7009};
7010
7011
7012/***/ }),
7013/* 111 */
7014/***/ (function(module, exports, __webpack_require__) {
7015
7016var shared = __webpack_require__(82)('keys');
7017var uid = __webpack_require__(49);
7018module.exports = function (key) {
vendor: 18,751 bytes, lines 7019-7697
7019  return shared[key] || (shared[key] = uid(key));
7020};
7021
7022
7023/***/ }),
7024/* 112 */
7025/***/ (function(module, exports) {
7026
7027// IE 8- don't enum bug keys
7028module.exports = (
7029  'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
7030).split(',');
7031
7032
7033/***/ }),
7034/* 113 */
7035/***/ (function(module, exports, __webpack_require__) {
7036
7037var document = __webpack_require__(5).document;
7038module.exports = document && document.documentElement;
7039
7040
7041/***/ }),
7042/* 114 */
7043/***/ (function(module, exports, __webpack_require__) {
7044
7045var $iterators = __webpack_require__(115);
7046var getKeys = __webpack_require__(52);
7047var redefine = __webpack_require__(19);
7048var global = __webpack_require__(5);
7049var hide = __webpack_require__(20);
7050var Iterators = __webpack_require__(61);
7051var wks = __webpack_require__(9);
7052var ITERATOR = wks('iterator');
7053var TO_STRING_TAG = wks('toStringTag');
7054var ArrayValues = Iterators.Array;
7055
7056var DOMIterables = {
7057  CSSRuleList: true, // TODO: Not spec compliant, should be false.
7058  CSSStyleDeclaration: false,
7059  CSSValueList: false,
7060  ClientRectList: false,
7061  DOMRectList: false,
7062  DOMStringList: false,
7063  DOMTokenList: true,
7064  DataTransferItemList: false,
7065  FileList: false,
7066  HTMLAllCollection: false,
7067  HTMLCollection: false,
7068  HTMLFormElement: false,
7069  HTMLSelectElement: false,
7070  MediaList: true, // TODO: Not spec compliant, should be false.
7071  MimeTypeArray: false,
7072  NamedNodeMap: false,
7073  NodeList: true,
7074  PaintRequestList: false,
7075  Plugin: false,
7076  PluginArray: false,
7077  SVGLengthList: false,
7078  SVGNumberList: false,
7079  SVGPathSegList: false,
7080  SVGPointList: false,
7081  SVGStringList: false,
7082  SVGTransformList: false,
7083  SourceBufferList: false,
7084  StyleSheetList: true, // TODO: Not spec compliant, should be false.
7085  TextTrackCueList: false,
7086  TextTrackList: false,
7087  TouchList: false
7088};
7089
7090for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
7091  var NAME = collections[i];
7092  var explicit = DOMIterables[NAME];
7093  var Collection = global[NAME];
7094  var proto = Collection && Collection.prototype;
7095  var key;
7096  if (proto) {
7097    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
7098    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
7099    Iterators[NAME] = ArrayValues;
7100    if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
7101  }
7102}
7103
7104
7105/***/ }),
7106/* 115 */
7107/***/ (function(module, exports, __webpack_require__) {
7108
7109"use strict";
7110
7111var addToUnscopables = __webpack_require__(45);
7112var step = __webpack_require__(159);
7113var Iterators = __webpack_require__(61);
7114var toIObject = __webpack_require__(25);
7115
7116// 22.1.3.4 Array.prototype.entries()
7117// 22.1.3.13 Array.prototype.keys()
7118// 22.1.3.29 Array.prototype.values()
7119// 22.1.3.30 Array.prototype[@@iterator]()
7120module.exports = __webpack_require__(109)(Array, 'Array', function (iterated, kind) {
7121  this._t = toIObject(iterated); // target
7122  this._i = 0;                   // next index
7123  this._k = kind;                // kind
7124// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
7125}, function () {
7126  var O = this._t;
7127  var kind = this._k;
7128  var index = this._i++;
7129  if (!O || index >= O.length) {
7130    this._t = undefined;
7131    return step(1);
7132  }
7133  if (kind == 'keys') return step(0, index);
7134  if (kind == 'values') return step(0, O[index]);
7135  return step(0, [index, O[index]]);
7136}, 'values');
7137
7138// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
7139Iterators.Arguments = Iterators.Array;
7140
7141addToUnscopables('keys');
7142addToUnscopables('values');
7143addToUnscopables('entries');
7144
7145
7146/***/ }),
7147/* 116 */
7148/***/ (function(module, exports, __webpack_require__) {
7149
7150"use strict";
7151
7152var strong = __webpack_require__(160);
7153var validate = __webpack_require__(63);
7154var MAP = 'Map';
7155
7156// 23.1 Map Objects
7157module.exports = __webpack_require__(84)(MAP, function (get) {
7158  return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
7159}, {
7160  // 23.1.3.6 Map.prototype.get(key)
7161  get: function get(key) {
7162    var entry = strong.getEntry(validate(this, MAP), key);
7163    return entry && entry.v;
7164  },
7165  // 23.1.3.9 Map.prototype.set(key, value)
7166  set: function set(key, value) {
7167    return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
7168  }
7169}, strong, true);
7170
7171
7172/***/ }),
7173/* 117 */
7174/***/ (function(module, exports, __webpack_require__) {
7175
7176// check on default Array iterator
7177var Iterators = __webpack_require__(61);
7178var ITERATOR = __webpack_require__(9)('iterator');
7179var ArrayProto = Array.prototype;
7180
7181module.exports = function (it) {
7182  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
7183};
7184
7185
7186/***/ }),
7187/* 118 */
7188/***/ (function(module, exports, __webpack_require__) {
7189
7190var classof = __webpack_require__(73);
7191var ITERATOR = __webpack_require__(9)('iterator');
7192var Iterators = __webpack_require__(61);
7193module.exports = __webpack_require__(18).getIteratorMethod = function (it) {
7194  if (it != undefined) return it[ITERATOR]
7195    || it['@@iterator']
7196    || Iterators[classof(it)];
7197};
7198
7199
7200/***/ }),
7201/* 119 */
7202/***/ (function(module, exports, __webpack_require__) {
7203
7204var isObject = __webpack_require__(7);
7205var setPrototypeOf = __webpack_require__(120).set;
7206module.exports = function (that, target, C) {
7207  var S = target.constructor;
7208  var P;
7209  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
7210    setPrototypeOf(that, P);
7211  } return that;
7212};
7213
7214
7215/***/ }),
7216/* 120 */
7217/***/ (function(module, exports, __webpack_require__) {
7218
7219// Works with __proto__ only. Old v8 can't work with null proto objects.
7220/* eslint-disable no-proto */
7221var isObject = __webpack_require__(7);
7222var anObject = __webpack_require__(4);
7223var check = function (O, proto) {
7224  anObject(O);
7225  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
7226};
7227module.exports = {
7228  set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
7229    function (test, buggy, set) {
7230      try {
7231        set = __webpack_require__(30)(Function.call, __webpack_require__(27).f(Object.prototype, '__proto__').set, 2);
7232        set(test, []);
7233        buggy = !(test instanceof Array);
7234      } catch (e) { buggy = true; }
7235      return function setPrototypeOf(O, proto) {
7236        check(O, proto);
7237        if (buggy) O.__proto__ = proto;
7238        else set(O, proto);
7239        return O;
7240      };
7241    }({}, false) : undefined),
7242  check: check
7243};
7244
7245
7246/***/ }),
7247/* 121 */
7248/***/ (function(module, exports, __webpack_require__) {
7249
7250"use strict";
7251
7252var strong = __webpack_require__(160);
7253var validate = __webpack_require__(63);
7254var SET = 'Set';
7255
7256// 23.2 Set Objects
7257module.exports = __webpack_require__(84)(SET, function (get) {
7258  return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
7259}, {
7260  // 23.2.3.1 Set.prototype.add(value)
7261  add: function add(value) {
7262    return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
7263  }
7264}, strong);
7265
7266
7267/***/ }),
7268/* 122 */
7269/***/ (function(module, exports, __webpack_require__) {
7270
7271var global = __webpack_require__(5);
7272var core = __webpack_require__(18);
7273var LIBRARY = __webpack_require__(44);
7274var wksExt = __webpack_require__(162);
7275var defineProperty = __webpack_require__(11).f;
7276module.exports = function (name) {
7277  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
7278  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
7279};
7280
7281
7282/***/ }),
7283/* 123 */
7284/***/ (function(module, exports) {
7285
7286module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' +
7287  '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF';
7288
7289
7290/***/ }),
7291/* 124 */
7292/***/ (function(module, exports, __webpack_require__) {
7293
7294"use strict";
7295
7296var toInteger = __webpack_require__(34);
7297var defined = __webpack_require__(35);
7298
7299module.exports = function repeat(count) {
7300  var str = String(defined(this));
7301  var res = '';
7302  var n = toInteger(count);
7303  if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
7304  for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
7305  return res;
7306};
7307
7308
7309/***/ }),
7310/* 125 */
7311/***/ (function(module, exports) {
7312
7313// 20.2.2.28 Math.sign(x)
7314module.exports = Math.sign || function sign(x) {
7315  // eslint-disable-next-line no-self-compare
7316  return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
7317};
7318
7319
7320/***/ }),
7321/* 126 */
7322/***/ (function(module, exports) {
7323
7324// 20.2.2.14 Math.expm1(x)
7325var $expm1 = Math.expm1;
7326module.exports = (!$expm1
7327  // Old FF bug
7328  || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168
7329  // Tor Browser bug
7330  || $expm1(-2e-17) != -2e-17
7331) ? function expm1(x) {
7332  return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
7333} : $expm1;
7334
7335
7336/***/ }),
7337/* 127 */
7338/***/ (function(module, exports, __webpack_require__) {
7339
7340// helper for String#{startsWith, endsWith, includes}
7341var isRegExp = __webpack_require__(88);
7342var defined = __webpack_require__(35);
7343
7344module.exports = function (that, searchString, NAME) {
7345  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
7346  return String(defined(that));
7347};
7348
7349
7350/***/ }),
7351/* 128 */
7352/***/ (function(module, exports, __webpack_require__) {
7353
7354var MATCH = __webpack_require__(9)('match');
7355module.exports = function (KEY) {
7356  var re = /./;
7357  try {
7358    '/./'[KEY](re);
7359  } catch (e) {
7360    try {
7361      re[MATCH] = false;
7362      return !'/./'[KEY](re);
7363    } catch (f) { /* empty */ }
7364  } return true;
7365};
7366
7367
7368/***/ }),
7369/* 129 */
7370/***/ (function(module, exports, __webpack_require__) {
7371
7372"use strict";
7373
7374var $defineProperty = __webpack_require__(11);
7375var createDesc = __webpack_require__(50);
7376
7377module.exports = function (object, index, value) {
7378  if (index in object) $defineProperty.f(object, index, createDesc(0, value));
7379  else object[index] = value;
7380};
7381
7382
7383/***/ }),
7384/* 130 */
7385/***/ (function(module, exports, __webpack_require__) {
7386
7387// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
7388var speciesConstructor = __webpack_require__(323);
7389
7390module.exports = function (original, length) {
7391  return new (speciesConstructor(original))(length);
7392};
7393
7394
7395/***/ }),
7396/* 131 */
7397/***/ (function(module, exports, __webpack_require__) {
7398
7399"use strict";
7400// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
7401
7402var toObject = __webpack_require__(15);
7403var toAbsoluteIndex = __webpack_require__(53);
7404var toLength = __webpack_require__(13);
7405module.exports = function fill(value /* , start = 0, end = @length */) {
7406  var O = toObject(this);
7407  var length = toLength(O.length);
7408  var aLen = arguments.length;
7409  var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
7410  var end = aLen > 2 ? arguments[2] : undefined;
7411  var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
7412  while (endPos > index) O[index++] = value;
7413  return O;
7414};
7415
7416
7417/***/ }),
7418/* 132 */
7419/***/ (function(module, exports, __webpack_require__) {
7420
7421var ctx = __webpack_require__(30);
7422var invoke = __webpack_require__(166);
7423var html = __webpack_require__(113);
7424var cel = __webpack_require__(106);
7425var global = __webpack_require__(5);
7426var process = global.process;
7427var setTask = global.setImmediate;
7428var clearTask = global.clearImmediate;
7429var MessageChannel = global.MessageChannel;
7430var Dispatch = global.Dispatch;
7431var counter = 0;
7432var queue = {};
7433var ONREADYSTATECHANGE = 'onreadystatechange';
7434var defer, channel, port;
7435var run = function () {
7436  var id = +this;
7437  // eslint-disable-next-line no-prototype-builtins
7438  if (queue.hasOwnProperty(id)) {
7439    var fn = queue[id];
7440    delete queue[id];
7441    fn();
7442  }
7443};
7444var listener = function (event) {
7445  run.call(event.data);
7446};
7447// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
7448if (!setTask || !clearTask) {
7449  setTask = function setImmediate(fn) {
7450    var args = [];
7451    var i = 1;
7452    while (arguments.length > i) args.push(arguments[i++]);
7453    queue[++counter] = function () {
7454      // eslint-disable-next-line no-new-func
7455      invoke(typeof fn == 'function' ? fn : Function(fn), args);
7456    };
7457    defer(counter);
7458    return counter;
7459  };
7460  clearTask = function clearImmediate(id) {
7461    delete queue[id];
7462  };
7463  // Node.js 0.8-
7464  if (__webpack_require__(29)(process) == 'process') {
7465    defer = function (id) {
7466      process.nextTick(ctx(run, id, 1));
7467    };
7468  // Sphere (JS game engine) Dispatch API
7469  } else if (Dispatch && Dispatch.now) {
7470    defer = function (id) {
7471      Dispatch.now(ctx(run, id, 1));
7472    };
7473  // Browsers with MessageChannel, includes WebWorkers
7474  } else if (MessageChannel) {
7475    channel = new MessageChannel();
7476    port = channel.port2;
7477    channel.port1.onmessage = listener;
7478    defer = ctx(port.postMessage, port, 1);
7479  // Browsers with postMessage, skip WebWorkers
7480  // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
7481  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
7482    defer = function (id) {
7483      global.postMessage(id + '', '*');
7484    };
7485    global.addEventListener('message', listener, false);
7486  // IE8-
7487  } else if (ONREADYSTATECHANGE in cel('script')) {
7488    defer = function (id) {
7489      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
7490        html.removeChild(this);
7491        run.call(id);
7492      };
7493    };
7494  // Rest old browsers
7495  } else {
7496    defer = function (id) {
7497      setTimeout(ctx(run, id, 1), 0);
7498    };
7499  }
7500}
7501module.exports = {
7502  set: setTask,
7503  clear: clearTask
7504};
7505
7506
7507/***/ }),
7508/* 133 */
7509/***/ (function(module, exports, __webpack_require__) {
7510
7511var global = __webpack_require__(5);
7512var macrotask = __webpack_require__(132).set;
7513var Observer = global.MutationObserver || global.WebKitMutationObserver;
7514var process = global.process;
7515var Promise = global.Promise;
7516var isNode = __webpack_require__(29)(process) == 'process';
7517
7518module.exports = function () {
7519  var head, last, notify;
7520
7521  var flush = function () {
7522    var parent, fn;
7523    if (isNode && (parent = process.domain)) parent.exit();
7524    while (head) {
7525      fn = head.fn;
7526      head = head.next;
7527      try {
7528        fn();
7529      } catch (e) {
7530        if (head) notify();
7531        else last = undefined;
7532        throw e;
7533      }
7534    } last = undefined;
7535    if (parent) parent.enter();
7536  };
7537
7538  // Node.js
7539  if (isNode) {
7540    notify = function () {
7541      process.nextTick(flush);
7542    };
7543  // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
7544  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
7545    var toggle = true;
7546    var node = document.createTextNode('');
7547    new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
7548    notify = function () {
7549      node.data = toggle = !toggle;
7550    };
7551  // environments with maybe non-completely correct, but existent Promise
7552  } else if (Promise && Promise.resolve) {
7553    // Promise.resolve without an argument throws an error in LG WebOS 2
7554    var promise = Promise.resolve(undefined);
7555    notify = function () {
7556      promise.then(flush);
7557    };
7558  // for other environments - macrotask based on:
7559  // - setImmediate
7560  // - MessageChannel
7561  // - window.postMessag
7562  // - onreadystatechange
7563  // - setTimeout
7564  } else {
7565    notify = function () {
7566      // strange IE + webpack dev server bug - use .call(global)
7567      macrotask.call(global, flush);
7568    };
7569  }
7570
7571  return function (fn) {
7572    var task = { fn: fn, next: undefined };
7573    if (last) last.next = task;
7574    if (!head) {
7575      head = task;
7576      notify();
7577    } last = task;
7578  };
7579};
7580
7581
7582/***/ }),
7583/* 134 */
7584/***/ (function(module, exports, __webpack_require__) {
7585
7586"use strict";
7587
7588// 25.4.1.5 NewPromiseCapability(C)
7589var aFunction = __webpack_require__(17);
7590
7591function PromiseCapability(C) {
7592  var resolve, reject;
7593  this.promise = new C(function ($$resolve, $$reject) {
7594    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
7595    resolve = $$resolve;
7596    reject = $$reject;
7597  });
7598  this.resolve = aFunction(resolve);
7599  this.reject = aFunction(reject);
7600}
7601
7602module.exports.f = function (C) {
7603  return new PromiseCapability(C);
7604};
7605
7606
7607/***/ }),
7608/* 135 */
7609/***/ (function(module, exports, __webpack_require__) {
7610
7611"use strict";
7612
7613var global = __webpack_require__(5);
7614var DESCRIPTORS = __webpack_require__(12);
7615var LIBRARY = __webpack_require__(44);
7616var $typed = __webpack_require__(93);
7617var hide = __webpack_require__(20);
7618var redefineAll = __webpack_require__(54);
7619var fails = __webpack_require__(6);
7620var anInstance = __webpack_require__(55);
7621var toInteger = __webpack_require__(34);
7622var toLength = __webpack_require__(13);
7623var toIndex = __webpack_require__(180);
7624var gOPN = __webpack_require__(58).f;
7625var dP = __webpack_require__(11).f;
7626var arrayFill = __webpack_require__(131);
7627var setToStringTag = __webpack_require__(62);
7628var ARRAY_BUFFER = 'ArrayBuffer';
7629var DATA_VIEW = 'DataView';
7630var PROTOTYPE = 'prototype';
7631var WRONG_LENGTH = 'Wrong length!';
7632var WRONG_INDEX = 'Wrong index!';
7633var $ArrayBuffer = global[ARRAY_BUFFER];
7634var $DataView = global[DATA_VIEW];
7635var Math = global.Math;
7636var RangeError = global.RangeError;
7637// eslint-disable-next-line no-shadow-restricted-names
7638var Infinity = global.Infinity;
7639var BaseBuffer = $ArrayBuffer;
7640var abs = Math.abs;
7641var pow = Math.pow;
7642var floor = Math.floor;
7643var log = Math.log;
7644var LN2 = Math.LN2;
7645var BUFFER = 'buffer';
7646var BYTE_LENGTH = 'byteLength';
7647var BYTE_OFFSET = 'byteOffset';
7648var $BUFFER = DESCRIPTORS ? '_b' : BUFFER;
7649var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;
7650var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;
7651
7652// IEEE754 conversions based on https://github.com/feross/ieee754
7653function packIEEE754(value, mLen, nBytes) {
7654  var buffer = new Array(nBytes);
7655  var eLen = nBytes * 8 - mLen - 1;
7656  var eMax = (1 << eLen) - 1;
7657  var eBias = eMax >> 1;
7658  var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;
7659  var i = 0;
7660  var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;
7661  var e, m, c;
7662  value = abs(value);
7663  // eslint-disable-next-line no-self-compare
7664  if (value != value || value === Infinity) {
7665    // eslint-disable-next-line no-self-compare
7666    m = value != value ? 1 : 0;
7667    e = eMax;
7668  } else {
7669    e = floor(log(value) / LN2);
7670    if (value * (c = pow(2, -e)) < 1) {
7671      e--;
7672      c *= 2;
7673    }
7674    if (e + eBias >= 1) {
7675      value += rt / c;
7676    } else {
7677      value += rt * pow(2, 1 - eBias);
7678    }
7679    if (value * c >= 2) {
7680      e++;
7681      c /= 2;
7682    }
7683    if (e + eBias >= eMax) {
7684      m = 0;
7685      e = eMax;
7686    } else if (e + eBias >= 1) {
7687      m = (value * c - 1) * pow(2, mLen);
7688      e = e + eBias;
7689    } else {
7690      m = value * pow(2, eBias - 1) * pow(2, mLen);
7691      e = 0;
7692    }
7693  }
7694  for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);
7695  e = e << mLen | m;
7696  eLen += mLen;
7697  for (; eLen > 0;
vendor: 11,388 bytes, lines 7697-8024
7697 buffer[i++] = e & 255, e /= 256, eLen -= 8);
7698  buffer[--i] |= s * 128;
7699  return buffer;
7700}
7701function unpackIEEE754(buffer, mLen, nBytes) {
7702  var eLen = nBytes * 8 - mLen - 1;
7703  var eMax = (1 << eLen) - 1;
7704  var eBias = eMax >> 1;
7705  var nBits = eLen - 7;
7706  var i = nBytes - 1;
7707  var s = buffer[i--];
7708  var e = s & 127;
7709  var m;
7710  s >>= 7;
7711  for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);
7712  m = e & (1 << -nBits) - 1;
7713  e >>= -nBits;
7714  nBits += mLen;
7715  for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);
7716  if (e === 0) {
7717    e = 1 - eBias;
7718  } else if (e === eMax) {
7719    return m ? NaN : s ? -Infinity : Infinity;
7720  } else {
7721    m = m + pow(2, mLen);
7722    e = e - eBias;
7723  } return (s ? -1 : 1) * m * pow(2, e - mLen);
7724}
7725
7726function unpackI32(bytes) {
7727  return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];
7728}
7729function packI8(it) {
7730  return [it & 0xff];
7731}
7732function packI16(it) {
7733  return [it & 0xff, it >> 8 & 0xff];
7734}
7735function packI32(it) {
7736  return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];
7737}
7738function packF64(it) {
7739  return packIEEE754(it, 52, 8);
7740}
7741function packF32(it) {
7742  return packIEEE754(it, 23, 4);
7743}
7744
7745function addGetter(C, key, internal) {
7746  dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });
7747}
7748
7749function get(view, bytes, index, isLittleEndian) {
7750  var numIndex = +index;
7751  var intIndex = toIndex(numIndex);
7752  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
7753  var store = view[$BUFFER]._b;
7754  var start = intIndex + view[$OFFSET];
7755  var pack = store.slice(start, start + bytes);
7756  return isLittleEndian ? pack : pack.reverse();
7757}
7758function set(view, bytes, index, conversion, value, isLittleEndian) {
7759  var numIndex = +index;
7760  var intIndex = toIndex(numIndex);
7761  if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
7762  var store = view[$BUFFER]._b;
7763  var start = intIndex + view[$OFFSET];
7764  var pack = conversion(+value);
7765  for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
7766}
7767
7768if (!$typed.ABV) {
7769  $ArrayBuffer = function ArrayBuffer(length) {
7770    anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
7771    var byteLength = toIndex(length);
7772    this._b = arrayFill.call(new Array(byteLength), 0);
7773    this[$LENGTH] = byteLength;
7774  };
7775
7776  $DataView = function DataView(buffer, byteOffset, byteLength) {
7777    anInstance(this, $DataView, DATA_VIEW);
7778    anInstance(buffer, $ArrayBuffer, DATA_VIEW);
7779    var bufferLength = buffer[$LENGTH];
7780    var offset = toInteger(byteOffset);
7781    if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
7782    byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
7783    if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
7784    this[$BUFFER] = buffer;
7785    this[$OFFSET] = offset;
7786    this[$LENGTH] = byteLength;
7787  };
7788
7789  if (DESCRIPTORS) {
7790    addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
7791    addGetter($DataView, BUFFER, '_b');
7792    addGetter($DataView, BYTE_LENGTH, '_l');
7793    addGetter($DataView, BYTE_OFFSET, '_o');
7794  }
7795
7796  redefineAll($DataView[PROTOTYPE], {
7797    getInt8: function getInt8(byteOffset) {
7798      return get(this, 1, byteOffset)[0] << 24 >> 24;
7799    },
7800    getUint8: function getUint8(byteOffset) {
7801      return get(this, 1, byteOffset)[0];
7802    },
7803    getInt16: function getInt16(byteOffset /* , littleEndian */) {
7804      var bytes = get(this, 2, byteOffset, arguments[1]);
7805      return (bytes[1] << 8 | bytes[0]) << 16 >> 16;
7806    },
7807    getUint16: function getUint16(byteOffset /* , littleEndian */) {
7808      var bytes = get(this, 2, byteOffset, arguments[1]);
7809      return bytes[1] << 8 | bytes[0];
7810    },
7811    getInt32: function getInt32(byteOffset /* , littleEndian */) {
7812      return unpackI32(get(this, 4, byteOffset, arguments[1]));
7813    },
7814    getUint32: function getUint32(byteOffset /* , littleEndian */) {
7815      return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;
7816    },
7817    getFloat32: function getFloat32(byteOffset /* , littleEndian */) {
7818      return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);
7819    },
7820    getFloat64: function getFloat64(byteOffset /* , littleEndian */) {
7821      return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);
7822    },
7823    setInt8: function setInt8(byteOffset, value) {
7824      set(this, 1, byteOffset, packI8, value);
7825    },
7826    setUint8: function setUint8(byteOffset, value) {
7827      set(this, 1, byteOffset, packI8, value);
7828    },
7829    setInt16: function setInt16(byteOffset, value /* , littleEndian */) {
7830      set(this, 2, byteOffset, packI16, value, arguments[2]);
7831    },
7832    setUint16: function setUint16(byteOffset, value /* , littleEndian */) {
7833      set(this, 2, byteOffset, packI16, value, arguments[2]);
7834    },
7835    setInt32: function setInt32(byteOffset, value /* , littleEndian */) {
7836      set(this, 4, byteOffset, packI32, value, arguments[2]);
7837    },
7838    setUint32: function setUint32(byteOffset, value /* , littleEndian */) {
7839      set(this, 4, byteOffset, packI32, value, arguments[2]);
7840    },
7841    setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {
7842      set(this, 4, byteOffset, packF32, value, arguments[2]);
7843    },
7844    setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {
7845      set(this, 8, byteOffset, packF64, value, arguments[2]);
7846    }
7847  });
7848} else {
7849  if (!fails(function () {
7850    $ArrayBuffer(1);
7851  }) || !fails(function () {
7852    new $ArrayBuffer(-1); // eslint-disable-line no-new
7853  }) || fails(function () {
7854    new $ArrayBuffer(); // eslint-disable-line no-new
7855    new $ArrayBuffer(1.5); // eslint-disable-line no-new
7856    new $ArrayBuffer(NaN); // eslint-disable-line no-new
7857    return $ArrayBuffer.name != ARRAY_BUFFER;
7858  })) {
7859    $ArrayBuffer = function ArrayBuffer(length) {
7860      anInstance(this, $ArrayBuffer);
7861      return new BaseBuffer(toIndex(length));
7862    };
7863    var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
7864    for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
7865      if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
7866    }
7867    if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
7868  }
7869  // iOS Safari 7.x bug
7870  var view = new $DataView(new $ArrayBuffer(2));
7871  var $setInt8 = $DataView[PROTOTYPE].setInt8;
7872  view.setInt8(0, 2147483648);
7873  view.setInt8(1, 2147483649);
7874  if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {
7875    setInt8: function setInt8(byteOffset, value) {
7876      $setInt8.call(this, byteOffset, value << 24 >> 24);
7877    },
7878    setUint8: function setUint8(byteOffset, value) {
7879      $setInt8.call(this, byteOffset, value << 24 >> 24);
7880    }
7881  }, true);
7882}
7883setToStringTag($ArrayBuffer, ARRAY_BUFFER);
7884setToStringTag($DataView, DATA_VIEW);
7885hide($DataView[PROTOTYPE], $typed.VIEW, true);
7886exports[ARRAY_BUFFER] = $ArrayBuffer;
7887exports[DATA_VIEW] = $DataView;
7888
7889
7890/***/ }),
7891/* 136 */
7892/***/ (function(module, exports, __webpack_require__) {
7893
7894"use strict";
7895/* WEBPACK VAR INJECTION */(function(process) {/**
7896 * Copyright (c) 2014-present, Facebook, Inc.
7897 *
7898 * This source code is licensed under the MIT license found in the
7899 * LICENSE file in the root directory of this source tree.
7900 *
7901 */
7902
7903
7904
7905/**
7906 * Forked from fbjs/warning:
7907 * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
7908 *
7909 * Only change is we use console.warn instead of console.error,
7910 * and do nothing when 'console' is not supported.
7911 * This really simplifies the code.
7912 * ---
7913 * Similar to invariant but only logs a warning if the condition is not met.
7914 * This can be used to log issues in development environments in critical
7915 * paths. Removing the logging code for production environments will keep the
7916 * same logic and follow the same code paths.
7917 */
7918
7919var lowPriorityWarning = function () {};
7920
7921if (process.env.NODE_ENV !== 'production') {
7922  var printWarning = function (format) {
7923    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
7924      args[_key - 1] = arguments[_key];
7925    }
7926
7927    var argIndex = 0;
7928    var message = 'Warning: ' + format.replace(/%s/g, function () {
7929      return args[argIndex++];
7930    });
7931    if (typeof console !== 'undefined') {
7932      console.warn(message);
7933    }
7934    try {
7935      // --- Welcome to debugging React ---
7936      // This error was thrown as a convenience so that you can use this stack
7937      // to find the callsite that caused this warning to fire.
7938      throw new Error(message);
7939    } catch (x) {}
7940  };
7941
7942  lowPriorityWarning = function (condition, format) {
7943    if (format === undefined) {
7944      throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
7945    }
7946    if (!condition) {
7947      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
7948        args[_key2 - 2] = arguments[_key2];
7949      }
7950
7951      printWarning.apply(undefined, [format].concat(args));
7952    }
7953  };
7954}
7955
7956module.exports = lowPriorityWarning;
7957/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
7958
7959/***/ }),
7960/* 137 */
7961/***/ (function(module, exports, __webpack_require__) {
7962
7963"use strict";
7964/* WEBPACK VAR INJECTION */(function(process) {/**
7965 * Copyright (c) 2013-present, Facebook, Inc.
7966 *
7967 * This source code is licensed under the MIT license found in the
7968 * LICENSE file in the root directory of this source tree.
7969 *
7970 */
7971
7972
7973
7974var _prodInvariant = __webpack_require__(8);
7975
7976var ReactErrorUtils = __webpack_require__(138);
7977
7978var invariant = __webpack_require__(2);
7979var warning = __webpack_require__(3);
7980
7981/**
7982 * Injected dependencies:
7983 */
7984
7985/**
7986 * - `ComponentTree`: [required] Module that can convert between React instances
7987 *   and actual node references.
7988 */
7989var ComponentTree;
7990var TreeTraversal;
7991var injection = {
7992  injectComponentTree: function (Injected) {
7993    ComponentTree = Injected;
7994    if (process.env.NODE_ENV !== 'production') {
7995      process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;
7996    }
7997  },
7998  injectTreeTraversal: function (Injected) {
7999    TreeTraversal = Injected;
8000    if (process.env.NODE_ENV !== 'production') {
8001      process.env.NODE_ENV !== 'production' ? warning(Injected && Injected.isAncestor && Injected.getLowestCommonAncestor, 'EventPluginUtils.injection.injectTreeTraversal(...): Injected ' + 'module is missing isAncestor or getLowestCommonAncestor.') : void 0;
8002    }
8003  }
8004};
8005
8006function isEndish(topLevelType) {
8007  return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';
8008}
8009
8010function isMoveish(topLevelType) {
8011  return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';
8012}
8013function isStartish(topLevelType) {
8014  return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';
8015}
8016
8017var validateEventDispatches;
8018if (process.env.NODE_ENV !== 'production') {
8019  validateEventDispatches = function (event) {
8020    var dispatchListeners = event._dispatchListeners;
8021    var dispatchInstances = event._dispatchInstances;
8022
8023    var listenersIsArr = Array.isArray(dispatchListeners);
8024    var listenersLen = listenersIsArr ? dispatchListeners.length : dis
8024patchListeners ? 1 : 0;
8025
8026    var instancesIsArr = Array.isArray(dispatchInstances);
8027    var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;
8028
8029    process.env.NODE_ENV !== 'production' ? warning(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.') : void 0;
8030  };
8031}
8032
8033/**
8034 * Dispatch the event to the listener.
8035 * @param {SyntheticEvent} event SyntheticEvent to handle
8036 * @param {boolean} simulated If the event is simulated (changes exn behavior)
8037 * @param {function} listener Application-level callback
8038 * @param {*} inst Internal component instance
8039 */
8040function executeDispatch(event, simulated, listener, inst) {
8041  var type = event.type || 'unknown-event';
8042  event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);
8043  if (simulated) {
8044    ReactErrorUtils.invokeGuardedCallbackWithCatch(type, listener, event);
8045  } else {
8046    ReactErrorUtils.invokeGuardedCallback(type, listener, event);
8047  }
8048  event.currentTarget = null;
8049}
8050
8051/**
8052 * Standard/simple iteration through an event's collected dispatches.
8053 */
8054function executeDispatchesInOrder(event, simulated) {
8055  var dispatchListeners = event._dispatchListeners;
8056  var dispatchInstances = event._dispatchInstances;
8057  if (process.env.NODE_ENV !== 'production') {
8058    validateEventDispatches(event);
8059  }
8060  if (Array.isArray(dispatchListeners)) {
8061    for (var i = 0; i < dispatchListeners.length; i++) {
8062      if (event.isPropagationStopped()) {
8063        break;
8064      }
8065      // Listeners and Instances are two parallel arrays that are always in sync.
8066      executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);
8067    }
8068  } else if (dispatchListeners) {
8069    executeDispatch(event, simulated, dispatchListeners, dispatchInstances);
8070  }
8071  event._dispatchListeners = null;
8072  event._dispatchInstances = null;
8073}
8074
8075/**
8076 * Standard/simple iteration through an event's collected dispatches, but stops
8077 * at the first dispatch execution returning true, and returns that id.
8078 *
8079 * @return {?string} id of the first dispatch execution who's listener returns
8080 * true, or null if no listener returned true.
8081 */
8082function executeDispatchesInOrderStopAtTrueImpl(event) {
8083  var dispatchListeners = event._dispatchListeners;
8084  var dispatchInstances = event._dispatchInstances;
8085  if (process.env.NODE_ENV !== 'production') {
8086    validateEventDispatches(event);
8087  }
8088  if (Array.isArray(dispatchListeners)) {
8089    for (var i = 0; i < dispatchListeners.length; i++) {
8090      if (event.isPropagationStopped()) {
8091        break;
8092      }
8093      // Listeners and Instances are two parallel arrays that are always in sync.
8094      if (dispatchListeners[i](event, dispatchInstances[i])) {
8095        return dispatchInstances[i];
8096      }
8097    }
8098  } else if (dispatchListeners) {
8099    if (dispatchListeners(event, dispatchInstances)) {
8100      return dispatchInstances;
8101    }
8102  }
8103  return null;
8104}
8105
8106/**
8107 * @see executeDispatchesInOrderStopAtTrueImpl
8108 */
8109function executeDispatchesInOrderStopAtTrue(event) {
8110  var ret = executeDispatchesInOrderStopAtTrueImpl(event);
8111  event._dispatchInstances = null;
8112  event._dispatchListeners = null;
8113  return ret;
8114}
8115
8116/**
8117 * Execution of a "direct" dispatch - there must be at most one dispatch
8118 * accumulated on the event or it is considered an error. It doesn't really make
8119 * sense for an event with multiple dispatches (bubbled) to keep track of the
8120 * return values at each dispatch execution, but it does tend to make sense when
8121 * dealing with "direct" dispatches.
8122 *
8123 * @return {*} The return value of executing the single dispatch.
8124 */
8125function executeDirectDispatch(event) {
8126  if (process.env.NODE_ENV !== 'production') {
8127    validateEventDispatches(event);
8128  }
8129  var dispatchListener = event._dispatchListeners;
8130  var dispatchInstance = event._dispatchInstances;
8131  !!Array.isArray(dispatchListener) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : _prodInvariant('103') : void 0;
8132  event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;
8133  var res = dispatchListener ? dispatchListener(event) : null;
8134  event.currentTarget = null;
8135  event._dispatchListeners = null;
8136  event._dispatchInstances = null;
8137  return res;
8138}
8139
8140/**
8141 * @param {SyntheticEvent} event
8142 * @return {boolean} True iff number of dispatches accumulated is greater than 0.
8143 */
8144function hasDispatches(event) {
8145  return !!event._dispatchListeners;
8146}
8147
8148/**
8149 * General utilities that are useful in creating custom Event Plugins.
8150 */
8151var EventPluginUtils = {
8152  isEndish: isEndish,
8153  isMoveish: isMoveish,
8154  isStartish: isStartish,
8155
8156  executeDirectDispatch: executeDirectDispatch,
8157  executeDispatchesInOrder: executeDispatchesInOrder,
8158  executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,
8159  hasDispatches: hasDispatches,
8160
8161  getInstanceFromNode: function (node) {
8162    return ComponentTree.getInstanceFromNode(node);
8163  },
8164  getNodeFromInstance: function (node) {
8165    return ComponentTree.getNodeFromInstance(node);
8166  },
8167  isAncestor: function (a, b) {
8168    return TreeTraversal.isAncestor(a, b);
8169  },
8170  getLowestCommonAncestor: function (a, b) {
8171    return TreeTraversal.getLowestCommonAncestor(a, b);
8172  },
8173  getParentInstance: function (inst) {
8174    return TreeTraversal.getParentInstance(inst);
8175  },
8176  traverseTwoPhase: function (target, fn, arg) {
8177    return TreeTraversal.traverseTwoPhase(target, fn, arg);
8178  },
8179  traverseEnterLeave: function (from, to, fn, argFrom, argTo) {
8180    return TreeTraversal.traverseEnterLeave(from, to, fn, argFrom, argTo);
8181  },
8182
8183  injection: injection
8184};
8185
8186module.exports = EventPluginUtils;
8187/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
8188
8189/***/ }),
8190/* 138 */
8191/***/ (function(module, exports, __webpack_require__) {
8192
8193"use strict";
8194/* WEBPACK VAR INJECTION */(function(process) {/**
8195 * Copyright (c) 2013-present, Facebook, Inc.
8196 *
8197 * This source code is licensed under the MIT license found in the
8198 * LICENSE file in the root directory of this source tree.
8199 *
8200 * 
8201 */
8202
8203
8204
8205var caughtError = null;
8206
8207/**
8208 * Call a function while guarding against errors that happens within it.
8209 *
8210 * @param {String} name of the guard to use for logging or debugging
8211 * @param {Function} func The function to invoke
8212 * @param {*} a First argument
8213 * @param {*} b Second argument
8214 */
8215function invokeGuardedCallback(name, func, a) {
8216  try {
8217    func(a);
8218  } catch (x) {
8219    if (caughtError === null) {
8220      caughtError = x;
8221    }
8222  }
8223}
8224
8225var ReactErrorUtils = {
8226  invokeGuardedCallback: invokeGuardedCallback,
8227
8228  /**
8229   * Invoked by ReactTestUtils.Simulate so that any errors thrown by the event
8230   * handler are sure to be rethrown by rethrowCaughtError.
8231   */
8232  invokeGuardedCallbackWithCatch: invokeGuardedCallback,
8233
8234  /**
8235   * During execution of guarded functions we will capture the first error which
8236   * we will rethrow to be handled by the top level error handler.
8237   */
8238  rethrowCaughtError: function () {
8239    if (caughtError) {
8240      var error = caughtError;
8241      caughtError = null;
8242      throw error;
8243    }
8244  }
8245};
8246
8247if (process.env.NODE_ENV !== 'production') {
8248  /**
8249   * To help development we can get better devtools integration by simulating a
8250   * real browser event.
8251   */
8252  if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
8253    var fakeNode = document.createElement('react');
8254    ReactErrorUtils.invokeGuardedCallback = function (name, func, a) {
8255      var boundFunc = function () {
8256        func(a);
8257      };
8258      var evtType = 'react-' + name;
8259      fakeNode.addEventListener(evtType, boundFunc, false);
8260      var evt = document.createEvent('Event');
8261      evt.initEvent(evtType, false, false);
8262      fakeNode.dispatchEvent(evt);
8263      fakeNode.removeEventListener(evtType, boundFunc, false);
8264    };
8265  }
8266}
8267
8268module.exports = ReactErrorUtils;
8269/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
8270
8271/***/ }),
8272/* 139 */
8273/***/ (function(module, exports, __webpack_require__) {
8274
8275"use strict";
8276/**
8277 * Copyright (c) 2013-present, Facebook, Inc.
8278 *
8279 * This source code is licensed under the MIT license found in the
8280 * LICENSE file in the root directory of this source tree.
8281 *
8282 */
8283
8284
8285
8286/**
8287 * Gets the target node from a native browser event by accounting for
8288 * inconsistencies in browser DOM APIs.
8289 *
8290 * @param {object} nativeEvent Native browser event.
8291 * @return {DOMEventTarget} Target node.
8292 */
8293
8294function getEventTarget(nativeEvent) {
8295  var target = nativeEvent.target || nativeEvent.srcElement || window;
8296
8297  // Normalize SVG <use> element events #4963
8298  if (target.correspondingUseElement) {
8299    target = target.correspondingUseElement;
8300  }
8301
8302  // Safari may fire events on text nodes (Node.TEXT_NODE is 3).
8303  // @see http://www.quirksmode.org/js/events_properties.html
8304  return target.nodeType === 3 ? target.parentNode : target;
8305}
8306
8307module.exports = getEventTarget;
8308
8309/***/ }),
8310/* 140 */
8311/***/ (function(module, exports, __webpack_require__) {
8312
8313"use strict";
8314/**
8315 * Copyright (c) 2013-present, Facebook, Inc.
8316 *
8317 * This source code is licensed under the MIT license found in the
8318 * LICENSE file in the root directory of this source tree.
8319 *
8320 */
8321
8322
8323
8324var ExecutionEnvironment = __webpack_require__(16);
8325
8326var useHasFeature;
8327if (ExecutionEnvironment.canUseDOM) {
8328  useHasFeature = document.implementation && document.implementation.hasFeature &&
8329  // always returns true in newer browsers as per the standard.
8330  // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
8331  document.implementation.hasFeature('', '') !== true;
8332}
8333
8334/**
8335 * Checks if an event is supported in the current execution environment.
8336 *
8337 * NOTE: This will not work correctly for non-generic events such as `change`,
8338 * `reset`, `load`, `error`, and `select`.
8339 *
8340 * Borrows from Modernizr.
8341 *
8342 * @param {string} eventNameSuffix Event name, e.g. "click".
8343 * @param {?boolean} capture Check if the capture phase is supported.
8344 * @return {boolean} True if the event is supported.
8345 * @internal
8346 * @license Modernizr 3.0.0pre (Custom Build) | MIT
8347 */
8348function isEventSupported(eventNameSuffix, capture) {
8349  if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {
8350    return false;
8351  }
8352
8353  var eventName = 'on' + eventNameSuffix;
8354  var isSupported = eventName in document;
8355
8356  if (!isSupported) {
8357    var element = document.createElement('div');
8358    element.setAttribute(eventName, 'return;');
8359    isSupported = typeof element[eventName] === 'function';
8360  }
8361
8362  if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {
8363    // This is the only way to test support for the `wheel` event in IE9+.
8364    isSupported = document.implementation.hasFeature('Events.wheel', '3.0');
8365  }
8366
8367  return isSupported;
8368}
8369
8370module.exports = isEventSupported;
8371
8372/***/ }),
8373/* 141 */
8374/***/ (function(module, exports, __webpack_require__) {
8375
8376"use strict";
8377/**
8378 * Copyright (c) 2013-present, Facebook, Inc.
8379 *
8380 * This source code is licensed under the MIT license found in the
8381 * LICENSE file in the root directory of this source tree.
8382 *
8383 */
8384
8385
8386
8387/**
8388 * Translation from modifier key to the associated property in the event.
8389 * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers
8390 */
8391
8392var modifierKeyToProp = {
8393  Alt: 'altKey',
8394  Control: 'ctrlKey',
8395  Meta: 'metaKey',
8396  Shift: 'shiftKey'
8397};
8398
8399// IE8 does not implement getModifierState so we simply map it to the only
8400// modifier keys exposed by the event itself, does not support Lock-keys.
8401// Currently, all major browsers except Chrome seems to support Lock-keys.
8402function modifierStateGetter(keyArg) {
8403  var syntheticEvent = this;
8404  var nativeEvent = syntheticEvent.nativeEvent;
8405  if (nativeEvent.getModifierState) {
8406    return nativeEvent.getModifierState(keyArg);
8407  }
8408  var keyProp = modifierKeyToProp[keyArg];
8409  return keyProp ? !!nativeEvent[keyProp] : false;
8410}
8411
8412function getEventModifierState(nativeEvent) {
8413  return modifierStateGetter;
8414}
8415
8416module.exports = getEventModifierState;
8417
8418/***/ }),
8419/* 142 */
8420/***/ (function(module, exports, __webpack_require__) {
8421
8422"use strict";
8423/* WEBPACK VAR INJECTION */(function(process) {/**
8424 * Copyright (c) 2013-present, Facebook, Inc.
8425 *
8426 * This source code is licensed under the MIT license found in the
8427 * LICENSE file in the root directory of this source tree.
8428 *
8429 */
8430
8431
8432
8433var DOMLazyTree = __webpack_require__(69);
8434var Danger = __webpack_require__(468);
8435var ReactDOMComponentTree = __webpack_require__(14);
8436var ReactInstrumentation = __webpack_require__(28);
8437
8438var createMicrosoftUnsafeLocalFunction = __webpack_require__(144);
8439var setInnerHTML = __webpack_require__(102);
8440var setTextContent = __webpack_require__(204);
8441
8442function getNodeAfter(parentNode, node) {
8443  // Special case for text components, which return [open, close] comments
8444  // from getHostNode.
8445  if (Array.isArray(node)) {
8446    node = node[1];
8447  }
8448  return node ? node.nextSibling : parentNode.firstChild;
8449}
8450
8451/**
8452 * Inserts `childNode` as a child of `parentNode` at the `index`.
8453 *
8454 * @param {DOMElement} parentNode Parent node in which to insert.
8455 * @param {DOMElement} childNode Child node to insert.
8456 * @param {number} index Index at which to insert the child.
8457 * @internal
8458 */
8459var insertChildAt = createMicrosoftUnsafeLocalFunction(function (parentNode, childNode, referenceNode) {
8460  // We rely exclusively on `insertBefore(node, null)` instead of also using
8461  // `appendChild(node)`. (Using `undefined` is not allowed by all browsers so
8462  // we are careful to use `null`.)
8463  parentNode.insertBefore(childNode, referenceNode);
8464});
8465
8466function insertLazyTreeChildAt(parentNode, childTree, referenceNode) {
8467  DOMLazyTree.insertTreeBefore(parentNode, childTree, referenceNode);
8468}
8469
8470function moveChild(parentNode, childNode, referenceNode) {
8471  if (Array.isArray(childNode)) {
8472    moveDelimitedText(parentNode, childNode[0], childNode[1], referenceNode);
8473  } else {
8474    insertChildAt(parentNode, childNode, referenceNode);
8475  }
8476}
8477
8478function removeChild(parentNode, childNode) {
8479  if (Array.isArray(childNode)) {
8480    var closingComment = childNode[1];
8481    childNode = childNode[0];
8482    removeDelimitedText(parentNode, childNode, closingComment);
8483    parentNode.removeChild(closingComment);
8484  }
8485  parentNode.removeChild(childNode);
8486}
8487
8488function moveDelimitedText(parentNode, openingComment, closingComment, referenceNode) {
8489  var node = openingComment;
8490  while (true) {
8491    var nextNode = node.nextSibling;
8492    insertChildAt(parentNode, node, referenceNode);
8493    if (node === closingComment) {
8494      break;
8495    }
8496    node = nextNode;
8497  }
8498}
8499
8500function removeDelimitedText(parentNode, startNode, closingComment) {
8501  while (true) {
8502    var node = startNode.nextSibling;
8503    if (node === closingComment) {
8504      // The closing comment is removed by ReactMultiChild.
8505      break;
8506    } else {
8507      parentNode.removeChild(node);
8508    }
8509  }
8510}
8511
8512function replaceDelimitedText(openingComment, closingComment, stringText) {
8513  var parentNode = openingComment.parentNode;
8514  var nodeAfterComment = openingComment.nextSibling;
8515  if (nodeAfterComment === closingComment) {
8516    // There are no text nodes between the opening and closing comments; insert
8517    // a new one if stringText isn't empty.
8518    if (stringText) {
8519      insertChildAt(parentNode, document.createTextNode(stringText), nodeAfterComment);
8520    }
8521  } else {
8522    if (stringText) {
8523      // Set the text content of the first node after the opening comment, and
8524      // remove all following nodes up until the closing comment.
8525      setTextContent(nodeAfterComment, stringText);
8526      removeDelimitedText(parentNode, nodeAfterComment, closingComment);
8527    } else {
8528      removeDelimitedText(parentNode, openingComment, closingComment);
8529    }
8530  }
8531
8532  if (process.env.NODE_ENV !== 'production') {
8533    ReactInstrumentation.debugTool.onHostOperation({
8534      instanceID: ReactDOMComponentTree.getInstanceFromNode(openingComment)._debugID,
8535      type: 'replace text',
8536      payload: stringText
8537    });
8538  }
8539}
8540
8541var dangerouslyReplaceNodeWithMarkup = Danger.dangerouslyReplaceNodeWithMarkup;
8542if (process.env.NODE_ENV !== 'production') {
8543  dangerouslyReplaceNodeWithMarkup = function (oldChild, markup, prevInstance) {
8544    Danger.dangerouslyReplaceNodeWithMarkup(oldChild, markup);
8545    if (prevInstance._debugID !== 0) {
8546      ReactInstrumentation.debugTool.onHostOperation({
8547        instanceID: prevInstance._debugID,
8548        type: 'replace with',
8549        payload: markup.toString()
8550      });
8551    } else {
8552      var nextInstance = ReactDOMComponentTree.getInstanceFromNode(markup.node);
8553      if (nextInstance._debugID !== 0) {
8554        ReactInstrumentation.debugTool.onHostOperation({
8555          instanceID: nextInstance._debugID,
8556          type: 'mount',
8557          payload: markup.toString()
8558        });
8559      }
8560    }
8561  };
8562}
8563
8564/**
8565 * Operations for updating with DOM children.
8566 */
8567var DOMChildrenOperations = {
8568  dangerouslyReplaceNodeWithMarkup: dangerouslyReplaceNodeWithMarkup,
8569
8570  replaceDelimitedText: replaceDelimitedText,
8571
8572  /**
8573   * Updates a component's children by processing a series of updates. The
8574   * update configurations are each expected to have a `parentNode` property.
8575   *
8576   * @param {array<object>} updates List of update configurations.
8577   * @internal
8578   */
8579  processUpdates: function (parentNode, updates) {
8580    if (process.env.NODE_ENV !== 'production') {
8581      var parentNodeDebugID = ReactDOMComponentTree.getInstanceFromNode(parentNode)._debugID;
8582    }
8583
8584    for (var k = 0; k < updates.length; k++) {
8585      var update = updates[k];
8586      switch (update.type) {
8587        case 'INSERT_MARKUP':
8588          insertLazyTreeChildAt(parentNode, update.content, getNodeAfter(parentNode, update.afterNode));
8589          if (process.env.NODE_ENV !== 'production') {
8590            ReactInstrumentation.debugTool.onHostOperation({
8591              instanceID: parentNodeDebugID,
8592              type: 'insert child',
8593              payload: {
8594                toIndex: update.toIndex,
8595                content: update.content.toString()
8596              }
8597            });
8598          }
8599          break;
8600        case 'MOVE_EXISTING':
8601          moveChild(parentNode, update.fromNode, getNodeAfter(parentNode, update.afterNode));
8602          if (process.env.NODE_ENV !== 'production') {
8603            ReactInstrumentation.debugTool.onHostOperation({
8604              instanceID: parentNodeDebugID,
8605              type: 'move child',
8606              payload: { fromIndex: update.fromIndex, toIndex: update.toIndex }
8607            });
8608          }
8609          break;
8610        case 'SET_MARKUP':
8611          setInnerHTML(parentNode, update.content);
8612          if (process.env.NODE_ENV !== 'production') {
8613            ReactInstrumentation.debugTool.onHostOperation({
8614              instanceID: parentNodeDebugID,
8615              type: 'replace children',
8616              payload: update.content.toString()
8617            });
8618          }
8619          break;
8620        case 'TEXT_CONTENT':
8621          setTextContent(parentNode, update.content);
8622          if (process.env.NODE_ENV !== 'production') {
8623            ReactInstrumentation.debugTool.onHostOperation({
8624              instanceID: parentNodeDebugID,
8625              type: 'replace text',
8626              payload: update.content.toString()
8627            });
8628          }
8629          break;
8630        case 'REMOVE_NODE':
8631          removeChild(parentNode, update.fromNode);
8632          if (process.env.NODE_ENV !== 'production') {
8633            ReactInstrumentation.debugTool.onHostOperation({
8634              instanceID: parentNodeDebugID,
8635              type: 'remove child',
8636              payload: { fromIndex: update.fromIndex }
8637            });
8638          }
8639          break;
8640      }
8641    }
8642  }
8643};
8644
8645module.exports = DOMChildrenOperations;
8646/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
8647
8648/***/ }),
8649/* 143 */
8650/***/ (function(module, exports, __webpack_require__) {
8651
8652"use strict";
8653/**
8654 * Copyright (c) 2013-present, Facebook, Inc.
8655 *
8656 * This source code is licensed under the MIT license found in the
8657 * LICENSE file in the root directory of this source tree.
8658 *
8659 */
8660
8661
8662
8663var DOMNamespaces = {
8664  html: 'http://www.w3.org/1999/xhtml',
8665  mathml: 'http://www.w3.org/1998/Math/MathML',
8666  svg: 'http://www.w3.org/2000/svg'
8667};
8668
8669module.exports = DOMNamespaces;
8670
8671/***/ }),
8672/* 144 */
8673/***/ (function(module, exports, __webpack_require__) {
8674
8675"use strict";
8676/**
8677 * Copyright (c) 2013-present, Facebook, Inc.
8678 *
8679 * This source code is licensed under the MIT license found in the
8680 * LICENSE file in the root directory of this source tree.
8681 *
8682 */
8683
8684/* globals MSApp */
8685
8686
8687
8688/**
8689 * Create a function which has 'unsafe' privileges (required by windows8 apps)
8690 */
8691
8692var createMicrosoftUnsafeLocalFunction = function (func) {
8693  if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
8694    return function (arg0, arg1, arg2, arg3) {
8695      MSApp.execUnsafeLocalFunction(function () {
8696        return func(arg0, arg1, arg2, arg3);
8697      });
8698    };
8699  } else {
8700    return func;
8701  }
8702};
8703
8704module.exports = createMicrosoftUnsafeLocalFunction;
8705
8706/***/ }),
8707/* 145 */
8708/***/ (function(module, exports, __webpack_require__) {
8709
8710"use strict";
8711/* WEBPACK VAR INJECTION */(function(process) {/**
8712 * Copyright (c) 2013-present, Facebook, Inc.
8713 *
8714 * This source code is licensed under the MIT license found in the
8715 * LICENSE file in the root directory of this source tree.
8716 *
8717 */
8718
8719
8720
8721var _prodInvariant = __webpack_require__(8);
8722
8723var ReactPropTypesSecret = __webpack_require__(208);
8724var propTypesFactory = __webpack_require__(193);
8725
8726var React = __webpack_require__(66);
8727var PropTypes = propTypesFactory(React.isValidElement);
8728
8729var invariant = __webpack_require__(2);
8730var warning = __webpack_require__(3);
8731
8732var hasReadOnlyValue = {
8733  button: true,
8734  checkbox: true,
8735  image: true,
8736  hidden: true,
8737  radio: true,
8738  reset: true,
8739  submit: true
8740};
8741
8742function _assertSingleLink(inputProps) {
8743  !(inputProps.checkedLink == null || inputProps.valueLink == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don\'t want to use valueLink and vice versa.') : _prodInvariant('87') : void 0;
8744}
8745function _assertValueLink(inputProps) {
8746  _assertSingleLink(inputProps);
8747  !(inputProps.value == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don\'t want to use valueLink.') : _prodInvariant('88') : void 0;
8748}
8749
8750function _assertCheckedLink(inputProps) {
8751  _assertSingleLink(inputProps);
8752  !(inputProps.checked == null && inputProps.onChange == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don\'t want to use checkedLink') : _prodInvariant('89') : void 0;
8753}
8754
8755var propTypes = {
8756  value: function (props, propName, componentName) {
8757    if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {
8758      return null;
8759    }
8760    return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
8761  },
8762  checked: function (props, propName, componentName) {
8763    if (!props[propName] || props.onChange || props.readOnly || props.disabled) {
8764      return null;
8765    }
8766    return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
8767  },
8768  onChange: PropTypes.func
8769};
8770
8771var loggedTypeFailures = {};
8772function getDeclarationErrorAddendum(owner) {
8773  if (owner) {
8774    var name = owner.getName();
8775    if (name) {
8776      return ' Check the render method of `' + name + '`.';
8777    }
8778  }
8779  return '';
8780}
8781
8782/**
8783 * Provide a linked `value` attribute for controlled forms. You should not use
8784 * this outside of the ReactDOM controlled form components.
8785 */
8786var LinkedValueUtils = {
8787  checkPropTypes: function (tagName, props, owner) {
8788    for (var propName in propTypes) {
8789      if (propTypes.hasOwnProperty(propName)) {
8790        var error = propTypes[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);
8791      }
8792      if (error instanceof Error && !(error.message in loggedTypeFailures)) {
8793        // Only monitor this failure once because there tends to be a lot of the
8794        // same error.
8795        loggedTypeFailures[error.message] = true;
8796
8797        var addendum = getDeclarationErrorAddendum(owner);
8798        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed form propType: %s%s', error.message, addendum) : void 0;
8799      }
8800    }
8801  },
8802
8803  /**
8804   * @param {object} inputProps Props for form component
8805   * @return {*} current value of the input either from value prop or link.
8806   */
8807  getValue: function (inputProps) {
8808    if (inputProps.valueLink) {
8809      _assertValueLink(inputProps);
8810      return inputProps.valueLink.value;
8811    }
8812    return inputProps.value;
8813  },
8814
8815  /**
8816   * @param {object} inputProps Props for form component
8817   * @return {*} current checked status of the input either from checked prop
8818   *             or link.
8819   */
8820  getChecked: function (inputProps) {
8821    if (inputProps.checkedLink) {
8822      _assertCheckedLink(inputProps);
8823      return inputProps.checkedLink.value;
8824    }
8825    return inputProps.checked;
8826  },
8827
8828  /**
8829   * @param {object} inputProps Props for form component
8830   * @param {SyntheticEvent} event change event to handle
8831   */
8832  executeOnChange: function (inputProps, event) {
8833    if (inputProps.valueLink) {
8834      _assertValueLink(inputProps);
8835      return inputProps.valueLink.requestChange(event.target.value);
8836    } else if (inputProps.checkedLink) {
8837      _assertCheckedLink(inputProps);
8838      return inputProps.checkedLink.requestChange(event.target.checked);
8839    } else if (inputProps.onChange) {
8840      return inputProps.onChange.call(undefined, event);
8841    }
8842  }
8843};
8844
8845module.exports = LinkedValueUtils;
8846/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
8847
8848/***/ }),
8849/* 146 */
8850/***/ (function(module, exports, __webpack_require__) {
8851
8852"use strict";
8853/* WEBPACK VAR INJECTION */(function(process) {/**
8854 * Copyright (c) 2014-present, Facebook, Inc.
8855 *
8856 * This source code is licensed under the MIT license found in the
8857 * LICENSE file in the root directory of this source tree.
8858 *
8859 * 
8860 */
8861
8862
8863
8864var _prodInvariant = __webpack_require__(8);
8865
8866var invariant = __webpack_require__(2);
8867
8868var injected = false;
8869
8870var ReactComponentEnvironment = {
8871  /**
8872   * Optionally injectable hook for swapping out mount images in the middle of
8873   * the tree.
8874   */
8875  replaceNodeWithMarkup: null,
8876
8877  /**
8878   * Optionally injectable hook for processing a queue of child updates. Will
8879   * later move into MultiChildComponents.
8880   */
8881  processChildrenUpdates: null,
8882
8883  injection: {
8884    injectEnvironment: function (environment) {
8885      !!injected ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactCompositeComponent: injectEnvironment() can only be called once.') : _prodInvariant('104') : void 0;
8886      ReactComponentEnvironment.replaceNodeWithMarkup = environment.replaceNodeWithMarkup;
8887      ReactComponentEnvironment.processChildrenUpdates = environment.processChildrenUpdates;
8888      injected = true;
8889    }
8890  }
8891};
8892
8893module.exports = ReactComponentEnvironment;
8894/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
8895
8896/***/ }),
8897/* 147 */
8898/***/ (function(module, exports, __webpack_require__) {
8899
8900"use strict";
8901/**
8902 * Copyright (c) 2013-present, Facebook, Inc.
8903 *
8904 * This source code is licensed under the MIT license found in the
8905 * LICENSE file in the root directory of this source tree.
8906 *
8907 * @typechecks
8908 * 
8909 */
8910
8911/*eslint-disable no-self-compare */
8912
8913
8914
8915var hasOwnProperty = Object.prototype.hasOwnProperty;
8916
8917/**
8918 * inlined Object.is polyfill to avoid requiring consumers ship their own
8919 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
8920 */
8921function is(x, y) {
8922  // SameValue algorithm
8923  if (x === y) {
8924    // Steps 1-5, 7-10
8925    // Steps 6.b-6.e: +0 != -0
8926    // Added the nonzero y check to make Flow happy, but it is redundant
8927    return x !== 0 || y !== 0 || 1 / x === 1 / y;
8928  } else {
8929    // Step 6.a: NaN == NaN
8930    return x !== x && y !== y;
8931  }
8932}
8933
8934/**
8935 * Performs equality by iterating through keys on an object and returning false
8936 * when any key has values which are not strictly equal between the arguments.
8937 * Returns true when the values of all keys are strictly equal.
8938 */
8939function shallowEqual(objA, objB) {
8940  if (is(objA, objB)) {
8941    return true;
8942  }
8943
8944  if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
8945    return false;
8946  }
8947
8948  var keysA = Object.keys(objA);
8949  var keysB = Object.keys(objB);
8950
8951  if (keysA.length !== keysB.length) {
8952    return false;
8953  }
8954
8955  // Test for A's keys different from B.
8956  for (var i = 0; i < keysA.length; i++) {
8957    if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
8958      return false;
8959    }
8960  }
8961
8962  return true;
8963}
8964
8965module.exports = shallowEqual;
8966
8967/***/ }),
8968/* 148 */
8969/***/ (function(module, exports, __webpack_require__) {
8970
8971"use strict";
8972/**
8973 * Copyright (c) 2013-present, Facebook, Inc.
8974 *
8975 * This source code is licensed under the MIT license found in the
8976 * LICENSE file in the root directory of this source tree.
8977 *
8978 */
8979
8980
8981
8982/**
8983 * Given a `prevElement` and `nextElement`, determines if the existing
8984 * instance should be updated as opposed to being destroyed or replaced by a new
8985 * instance. Both arguments are elements. This ensures that this logic can
8986 * operate on stateless trees without any backing instance.
8987 *
8988 * @param {?object} prevElement
8989 * @param {?object} nextElement
8990 * @return {boolean} True if the existing instance should be updated.
8991 * @protected
8992 */
8993
8994function shouldUpdateReactComponent(prevElement, nextElement) {
8995  var prevEmpty = prevElement === null || prevElement === false;
8996  var nextEmpty = nextElement === null || nextElement === false;
8997  if (prevEmpty || nextEmpty) {
8998    return prevEmpty === nextEmpty;
8999  }
9000
9001  var prevType = typeof prevElement;
9002  var nextType = typeof nextElement;
9003  if (prevType === 'string' || prevType === 'number') {
9004    return nextType === 'string' || nextType === 'number';
9005  } else {
9006    return nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key;
9007  }
9008}
9009
9010module.exports = shouldUpdateReactComponent;
9011
9012/***/ }),
9013/* 149 */
9014/***/ (function(module, exports, __webpack_require__) {
9015
9016"use strict";
9017/**
9018 * Copyright (c) 2013-present, Facebook, Inc.
9019 *
9020 * This source code is licensed under the MIT license found in the
9021 * LICENSE file in the root directory of this source tree.
9022 *
9023 * 
9024 */
9025
9026
9027
9028/**
9029 * Escape and wrap key so it is safe to use as a reactid
9030 *
9031 * @param {string} key to be escaped.
9032 * @return {string} the escaped key.
9033 */
9034
9035function escape(key) {
9036  var escapeRegex = /[=:]/g;
9037  var escaperLookup = {
9038    '=': '=0',
9039    ':': '=2'
9040  };
9041  var escapedString = ('' + key).replace(escapeRegex, function (match) {
9042    return escaperLookup[match];
9043  });
9044
9045  return '$' + escapedString;
9046}
9047
9048/**
9049 * Unescape and unwrap key for human-readable display
9050 *
9051 * @param {string} key to unescape.
9052 * @return {string} the unescaped key.
9053 */
9054function unescape(key) {
9055  var unescapeRegex = /(=0|=2)/g;
9056  var unescaperLookup = {
9057    '=0': '=',
9058    '=2': ':'
9059  };
9060  var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);
9061
9062  return ('' + keySubstring).replace(unescapeRegex, function (match) {
9063    return unescaperLookup[match];
9064  });
9065}
9066
9067var KeyEscapeUtils = {
9068  escape: escape,
9069  unescape: unescape
9070};
9071
9072module.exports = KeyEscapeUtils;
9073
9074/***/ }),
9075/* 150 */
9076/***/ (function(module, exports, __webpack_require__) {
9077
9078"use strict";
9079/* WEBPACK VAR INJECTION */(function(process) {/**
9080 * Copyright (c) 2015-present, Facebook, Inc.
9081 *
9082 * This source code is licensed under the MIT license found in the
9083 * LICENSE file in the root directory of this source tree.
9084 *
9085 */
9086
9087
9088
9089var _prodInvariant = __webpack_require__(8);
9090
9091var ReactCurrentOwner = __webpack_require__(39);
9092var ReactInstanceMap = __webpack_require__(79);
9093var ReactInstrumentation = __webpack_require__(28);
9094var ReactUpdates = __webpack_require__(40);
9095
9096var invariant = __webpack_require__(2);
9097var warning = __webpack_require__(3);
9098
9099function enqueueUpdate(internalInstance) {
9100  ReactUpdates.enqueueUpdate(internalInstance);
9101}
9102
9103function formatUnexpectedArgument(arg) {
9104  var type = typeof arg;
9105  if (type !== 'object') {
9106    return type;
9107  }
9108  var displayName = arg.constructor && arg.constructor.name || type;
9109  var keys = Object.keys(arg);
9110  if (keys.length > 0 && keys.length < 20) {
9111    return displayName + ' (keys: ' + keys.join(', ') + ')';
9112  }
9113  return displayName;
9114}
9115
9116function getInternalInstanceReadyForUpdate(publicInstance, callerName) {
9117  var internalInstance = ReactInstanceMap.get(publicInstance);
9118  if (!internalInstance) {
9119    if (process.env.NODE_ENV !== 'production') {
9120      var ctor = publicInstance.constructor;
9121      // Only warn when we have a callerName. Otherwise we should be silent.
9122      // We're probably calling from enqueueCallback. We don't want to warn
9123      // there because we already warned for the corresponding lifecycle method.
9124      process.env.NODE_ENV !== 'production' ? warning(!callerName, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, ctor && (ctor.displayName || ctor.name) || 'ReactClass') : void 0;
9125    }
9126    return null;
9127  }
9128
9129  if (process.env.NODE_ENV !== 'production') {
9130    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '%s(...): Cannot update during an existing state transition (such as ' + "within `render` or another component's constructor). Render methods " + 'should be a pure function of props and state; constructor ' + 'side-effects are an anti-pattern, but can be moved to ' + '`componentWillMount`.', callerName) : void 0;
9131  }
9132
9133  return internalInstance;
9134}
9135
9136/**
9137 * ReactUpdateQueue allows for state updates to be scheduled into a later
9138 * reconciliation step.
9139 */
9140var ReactUpdateQueue = {
9141  /**
9142   * Checks whether or not this composite component is mounted.
9143   * @param {ReactClass} publicInstance The instance we want to test.
9144   * @return {boolean} True if mounted, false otherwise.
9145   * @protected
9146   * @final
9147   */
9148  isMounted: function (publicInstance) {
9149    if (process.env.NODE_ENV !== 'production') {
9150      var owner = ReactCurrentOwner.current;
9151      if (owner !== null) {
9152        process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A c
9152omponent') : void 0;
9153        owner._warnedAboutRefsInRender = true;
9154      }
9155    }
9156    var internalInstance = ReactInstanceMap.get(publicInstance);
9157    if (internalInstance) {
9158      // During componentWillMount and render this will still be null but after
9159      // that will always render to something. At least for now. So we can use
9160      // this hack.
9161      return !!internalInstance._renderedComponent;
9162    } else {
9163      return false;
9164    }
9165  },
9166
9167  /**
9168   * Enqueue a callback that will be executed after all the pending updates
9169   * have processed.
9170   *
9171   * @param {ReactClass} publicInstance The instance to use as `this` context.
9172   * @param {?function} callback Called after state is updated.
9173   * @param {string} callerName Name of the calling function in the public API.
9174   * @internal
9175   */
9176  enqueueCallback: function (publicInstance, callback, callerName) {
9177    ReactUpdateQueue.validateCallback(callback, callerName);
9178    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance);
9179
9180    // Previously we would throw an error if we didn't have an internal
9181    // instance. Since we want to make it a no-op instead, we mirror the same
9182    // behavior we have in other enqueue* methods.
9183    // We also need to ignore callbacks in componentWillMount. See
9184    // enqueueUpdates.
9185    if (!internalInstance) {
9186      return null;
9187    }
9188
9189    if (internalInstance._pendingCallbacks) {
9190      internalInstance._pendingCallbacks.push(callback);
9191    } else {
9192      internalInstance._pendingCallbacks = [callback];
9193    }
9194    // TODO: The callback here is ignored when setState is called from
9195    // componentWillMount. Either fix it or disallow doing so completely in
9196    // favor of getInitialState. Alternatively, we can disallow
9197    // componentWillMount during server-side rendering.
9198    enqueueUpdate(internalInstance);
9199  },
9200
9201  enqueueCallbackInternal: function (internalInstance, callback) {
9202    if (internalInstance._pendingCallbacks) {
9203      internalInstance._pendingCallbacks.push(callback);
9204    } else {
9205      internalInstance._pendingCallbacks = [callback];
9206    }
9207    enqueueUpdate(internalInstance);
9208  },
9209
9210  /**
9211   * Forces an update. This should only be invoked when it is known with
9212   * certainty that we are **not** in a DOM transaction.
9213   *
9214   * You may want to call this when you know that some deeper aspect of the
9215   * component's state has changed but `setState` was not called.
9216   *
9217   * This will not invoke `shouldComponentUpdate`, but it will invoke
9218   * `componentWillUpdate` and `componentDidUpdate`.
9219   *
9220   * @param {ReactClass} publicInstance The instance that should rerender.
9221   * @internal
9222   */
9223  enqueueForceUpdate: function (publicInstance) {
9224    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'forceUpdate');
9225
9226    if (!internalInstance) {
9227      return;
9228    }
9229
9230    internalInstance._pendingForceUpdate = true;
9231
9232    enqueueUpdate(internalInstance);
9233  },
9234
9235  /**
9236   * Replaces all of the state. Always use this or `setState` to mutate state.
9237   * You should treat `this.state` as immutable.
9238   *
9239   * There is no guarantee that `this.state` will be immediately updated, so
9240   * accessing `this.state` after calling this method may return the old value.
9241   *
9242   * @param {ReactClass} publicInstance The instance that should rerender.
9243   * @param {object} completeState Next state.
9244   * @internal
9245   */
9246  enqueueReplaceState: function (publicInstance, completeState, callback) {
9247    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'replaceState');
9248
9249    if (!internalInstance) {
9250      return;
9251    }
9252
9253    internalInstance._pendingStateQueue = [completeState];
9254    internalInstance._pendingReplaceState = true;
9255
9256    // Future-proof 15.5
9257    if (callback !== undefined && callback !== null) {
9258      ReactUpdateQueue.validateCallback(callback, 'replaceState');
9259      if (internalInstance._pendingCallbacks) {
9260        internalInstance._pendingCallbacks.push(callback);
9261      } else {
9262        internalInstance._pendingCallbacks = [callback];
9263      }
9264    }
9265
9266    enqueueUpdate(internalInstance);
9267  },
9268
9269  /**
9270   * Sets a subset of the state. This only exists because _pendingState is
9271   * internal. This provides a merging strategy that is not available to deep
9272   * properties which is confusing. TODO: Expose pendingState or don't use it
9273   * during the merge.
9274   *
9275   * @param {ReactClass} publicInstance The instance that should rerender.
9276   * @param {object} partialState Next partial state to be merged with state.
9277   * @internal
9278   */
9279  enqueueSetState: function (publicInstance, partialState) {
9280    if (process.env.NODE_ENV !== 'production') {
9281      ReactInstrumentation.debugTool.onSetState();
9282      process.env.NODE_ENV !== 'production' ? warning(partialState != null, 'setState(...): You passed an undefined or null state object; ' + 'instead, use forceUpdate().') : void 0;
9283    }
9284
9285    var internalInstance = getInternalInstanceReadyForUpdate(publicInstance, 'setState');
9286
9287    if (!internalInstance) {
9288      return;
9289    }
9290
9291    var queue = internalInstance._pendingStateQueue || (internalInstance._pendingStateQueue = []);
9292    queue.push(partialState);
9293
9294    enqueueUpdate(internalInstance);
9295  },
9296
9297  enqueueElementInternal: function (internalInstance, nextElement, nextContext) {
9298    internalInstance._pendingElement = nextElement;
9299    // TODO: introduce _pendingContext instead of setting it directly.
9300    internalInstance._context = nextContext;
9301    enqueueUpdate(internalInstance);
9302  },
9303
9304  validateCallback: function (callback, callerName) {
9305    !(!callback || typeof callback === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.', callerName, formatUnexpectedArgument(callback)) : _prodInvariant('122', callerName, formatUnexpectedArgument(callback)) : void 0;
9306  }
9307};
9308
9309module.exports = ReactUpdateQueue;
9310/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
9311
9312/***/ }),
9313/* 151 */
9314/***/ (function(module, exports, __webpack_require__) {
9315
9316"use strict";
9317/* WEBPACK VAR INJECTION */(function(process) {/**
9318 * Copyright (c) 2015-present, Facebook, Inc.
9319 *
9320 * This source code is licensed under the MIT license found in the
9321 * LICENSE file in the root directory of this source tree.
9322 *
9323 */
9324
9325
9326
9327var _assign = __webpack_require__(10);
9328
9329var emptyFunction = __webpack_require__(38);
9330var warning = __webpack_require__(3);
9331
9332var validateDOMNesting = emptyFunction;
9333
9334if (process.env.NODE_ENV !== 'production') {
9335  // This validation code was written based on the HTML5 parsing spec:
9336  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
9337  //
9338  // Note: this does not catch all invalid nesting, nor does it try to (as it's
9339  // not clear what practical benefit doing so provides); instead, we warn only
9340  // for cases where the parser will give a parse tree differing from what React
9341  // intended. For example, <b><div></div></b>
vendor: 6,717 bytes, lines 9341-9497
9341 is invalid but we don't warn
9342  // because it still parses correctly; we do warn for other cases like nested
9343  // <p> tags where the beginning of the second element implicitly closes the
9344  // first, causing a confusing mess.
9345
9346  // https://html.spec.whatwg.org/multipage/syntax.html#special
9347  var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp'];
9348
9349  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope
9350  var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template',
9351
9352  // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point
9353  // TODO: Distinguish by namespace here -- for <title>, including it here
9354  // errs on the side of fewer warnings
9355  'foreignObject', 'desc', 'title'];
9356
9357  // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope
9358  var buttonScopeTags = inScopeTags.concat(['button']);
9359
9360  // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags
9361  var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];
9362
9363  var emptyAncestorInfo = {
9364    current: null,
9365
9366    formTag: null,
9367    aTagInScope: null,
9368    buttonTagInScope: null,
9369    nobrTagInScope: null,
9370    pTagInButtonScope: null,
9371
9372    listItemTagAutoclosing: null,
9373    dlItemTagAutoclosing: null
9374  };
9375
9376  var updatedAncestorInfo = function (oldInfo, tag, instance) {
9377    var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);
9378    var info = { tag: tag, instance: instance };
9379
9380    if (inScopeTags.indexOf(tag) !== -1) {
9381      ancestorInfo.aTagInScope = null;
9382      ancestorInfo.buttonTagInScope = null;
9383      ancestorInfo.nobrTagInScope = null;
9384    }
9385    if (buttonScopeTags.indexOf(tag) !== -1) {
9386      ancestorInfo.pTagInButtonScope = null;
9387    }
9388
9389    // See rules for 'li', 'dd', 'dt' start tags in
9390    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody
9391    if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {
9392      ancestorInfo.listItemTagAutoclosing = null;
9393      ancestorInfo.dlItemTagAutoclosing = null;
9394    }
9395
9396    ancestorInfo.current = info;
9397
9398    if (tag === 'form') {
9399      ancestorInfo.formTag = info;
9400    }
9401    if (tag === 'a') {
9402      ancestorInfo.aTagInScope = info;
9403    }
9404    if (tag === 'button') {
9405      ancestorInfo.buttonTagInScope = info;
9406    }
9407    if (tag === 'nobr') {
9408      ancestorInfo.nobrTagInScope = info;
9409    }
9410    if (tag === 'p') {
9411      ancestorInfo.pTagInButtonScope = info;
9412    }
9413    if (tag === 'li') {
9414      ancestorInfo.listItemTagAutoclosing = info;
9415    }
9416    if (tag === 'dd' || tag === 'dt') {
9417      ancestorInfo.dlItemTagAutoclosing = info;
9418    }
9419
9420    return ancestorInfo;
9421  };
9422
9423  /**
9424   * Returns whether
9425   */
9426  var isTagValidWithParent = function (tag, parentTag) {
9427    // First, let's check if we're in an unusual parsing mode...
9428    switch (parentTag) {
9429      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect
9430      case 'select':
9431        return tag === 'option' || tag === 'optgroup' || tag === '#text';
9432      case 'optgroup':
9433        return tag === 'option' || tag === '#text';
9434      // Strictly speaking, seeing an <option> doesn't mean we're in a <select>
9435      // but
9436      case 'option':
9437        return tag === '#text';
9438      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd
9439      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption
9440      // No special behavior since these rules fall back to "in body" mode for
9441      // all except special table nodes which cause bad parsing behavior anyway.
9442
9443      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr
9444      case 'tr':
9445        return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';
9446      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody
9447      case 'tbody':
9448      case 'thead':
9449      case 'tfoot':
9450        return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';
9451      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup
9452      case 'colgroup':
9453        return tag === 'col' || tag === 'template';
9454      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable
9455      case 'table':
9456        return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';
9457      // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead
9458      case 'head':
9459        return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';
9460      // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element
9461      case 'html':
9462        return tag === 'head' || tag === 'body';
9463      case '#document':
9464        return tag === 'html';
9465    }
9466
9467    // Probably in the "in body" parsing mode, so we outlaw only tag combos
9468    // where the parsing rules cause implicit opens or closes to be added.
9469    // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody
9470    switch (tag) {
9471      case 'h1':
9472      case 'h2':
9473      case 'h3':
9474      case 'h4':
9475      case 'h5':
9476      case 'h6':
9477        return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';
9478
9479      case 'rp':
9480      case 'rt':
9481        return impliedEndTags.indexOf(parentTag) === -1;
9482
9483      case 'body':
9484      case 'caption':
9485      case 'col':
9486      case 'colgroup':
9487      case 'frame':
9488      case 'head':
9489      case 'html':
9490      case 'tbody':
9491      case 'td':
9492      case 'tfoot':
9493      case 'th':
9494      case 'thead':
9495      case 'tr':
9496        // These tags are only valid with a few parents that have special child
9497        // parsing rules -- if we're down here, then none of those matched and
9498        // so we allow it only if we don't know what the parent is, as all other
9499        // cases are invalid.
9500        return parentTag == null;
9501    }
9502
9503    return true;
9504  };
9505
9506  /**
9507   * Returns whether
9508   */
9509  var findInvalidAncestorForTag = function (tag, ancestorInfo) {
9510    switch (tag) {
9511      case 'address':
9512      case 'article':
9513      case 'aside':
9514      case 'blockquote':
9515      case 'center':
9516      case 'details':
9517      case 'dialog':
9518      case 'dir':
9519      case 'div':
9520      case 'dl':
9521      case 'fieldset':
9522      case 'figcaption':
9523      case 'figure':
9524      case 'footer':
9525      case 'header':
9526      case 'hgroup':
9527      case 'main':
9528      case 'menu':
9529      case 'nav':
9530      case 'ol':
9531      case 'p':
9532      case 'section':
9533      case 'summary':
9534      case 'ul':
9535      case 'pre':
9536      case 'listing':
9537      case 'table':
9538      case 'hr':
9539      case 'xmp':
9540      case 'h1':
9541      case 'h2':
9542      case 'h3':
9543      case 'h4':
9544      case 'h5':
9545      case 'h6':
9546        return ancestorInfo.pTagInButtonScope;
9547
9548      case 'form':
9549        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;
9550
9551      case 'li':
9552        return ancestorInfo.listItemTagAutoclosing;
9553
9554      case 'dd':
9555      case 'dt':
9556        return ancestorInfo.dlItemTagAutoclosing;
9557
9558      case 'button':
9559        return ancestorInfo.buttonTagInScope;
9560
9561      case 'a':
9562        // Spec says something about storing a list of markers, but it sounds
9563        // equivalent to this check.
9564        return ancestorInfo.aTagInScope;
9565
9566      case 'nobr':
9567        return ancestorInfo.nobrTagInScope;
9568    }
9569
9570    return null;
9571  };
9572
9573  /**
9574   * Given a ReactCompositeComponent instance, return a list of its recursive
9575   * owners, starting at the root and ending with the instance itself.
9576   */
9577  var findOwnerStack = function (instance) {
9578    if (!instance) {
9579      return [];
9580    }
9581
9582    var stack = [];
9583    do {
9584      stack.push(instance);
9585    } while (instance = instance._currentElement._owner);
9586    stack.reverse();
9587    return stack;
9588  };
9589
9590  var didWarn = {};
9591
9592  validateDOMNesting = function (childTag, childText, childInstance, ancestorInfo) {
9593    ancestorInfo = ancestorInfo || emptyAncestorInfo;
9594    var parentInfo = ancestorInfo.current;
9595    var parentTag = parentInfo && parentInfo.tag;
9596
9597    if (childText != null) {
9598      process.env.NODE_ENV !== 'production' ? warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null') : void 0;
9599      childTag = '#text';
9600    }
9601
9602    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;
9603    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);
9604    var problematic = invalidParent || invalidAncestor;
9605
9606    if (problematic) {
9607      var ancestorTag = problematic.tag;
9608      var ancestorInstance = problematic.instance;
9609
9610      var childOwner = childInstance && childInstance._currentElement._owner;
9611      var ancestorOwner = ancestorInstance && ancestorInstance._currentElement._owner;
9612
9613      var childOwners = findOwnerStack(childOwner);
9614      var ancestorOwners = findOwnerStack(ancestorOwner);
9615
9616      var minStackLen = Math.min(childOwners.length, ancestorOwners.length);
9617      var i;
9618
9619      var deepestCommon = -1;
9620      for (i = 0; i < minStackLen; i++) {
9621        if (childOwners[i] === ancestorOwners[i]) {
9622          deepestCommon = i;
9623        } else {
9624          break;
9625        }
9626      }
9627
9628      var UNKNOWN = '(unknown)';
9629      var childOwnerNames = childOwners.slice(deepestCommon + 1).map(function (inst) {
9630        return inst.getName() || UNKNOWN;
9631      });
9632      var ancestorOwnerNames = ancestorOwners.slice(deepestCommon + 1).map(function (inst) {
9633        return inst.getName() || UNKNOWN;
9634      });
9635      var ownerInfo = [].concat(
9636      // If the parent and child instances have a common owner ancestor, start
9637      // with that -- otherwise we just start with the parent's owners.
9638      deepestCommon !== -1 ? childOwners[deepestCommon].getName() || UNKNOWN : [], ancestorOwnerNames, ancestorTag,
9639      // If we're warning about an invalid (non-parent) ancestry, add '...'
9640      invalidAncestor ? ['...'] : [], childOwnerNames, childTag).join(' > ');
9641
9642      var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + ownerInfo;
9643      if (didWarn[warnKey]) {
9644        return;
9645      }
9646      didWarn[warnKey] = true;
9647
9648      var tagDisplayName = childTag;
9649      var whitespaceInfo = '';
9650      if (childTag === '#text') {
9651        if (/\S/.test(childText)) {
9652          tagDisplayName = 'Text nodes';
9653        } else {
9654          tagDisplayName = 'Whitespace text nodes';
9655          whitespaceInfo = " Make sure you don't have any extra whitespace between tags on " + 'each line of your source code.';
9656        }
9657      } else {
9658        tagDisplayName = '<' + childTag + '>';
9659      }
9660
9661      if (invalidParent) {
9662        var info = '';
9663        if (ancestorTag === 'table' && childTag === 'tr') {
9664          info += ' Add a <tbody> to your code to match the DOM tree generated by ' + 'the browser.';
9665        }
9666        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a child of <%s>.%s ' + 'See %s.%s', tagDisplayName, ancestorTag, whitespaceInfo, ownerInfo, info) : void 0;
9667      } else {
9668        process.env.NODE_ENV !== 'production' ? warning(false, 'validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>. See %s.', tagDisplayName, ancestorTag, ownerInfo) : void 0;
9669      }
9670    }
9671  };
9672
9673  validateDOMNesting.updatedAncestorInfo = updatedAncestorInfo;
9674
9675  // For testing
9676  validateDOMNesting.isTagValidInContext = function (tag, ancestorInfo) {
9677    ancestorInfo = ancestorInfo || emptyAncestorInfo;
9678    var parentInfo = ancestorInfo.current;
9679    var parentTag = parentInfo && parentInfo.tag;
9680    return isTagValidWithParent(tag, parentTag) && !findInvalidAncestorForTag(tag, ancestorInfo);
9681  };
9682}
9683
9684module.exports = validateDOMNesting;
9685/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
9686
9687/***/ }),
9688/* 152 */
9689/***/ (function(module, exports, __webpack_require__) {
9690
9691"use strict";
9692/**
9693 * Copyright (c) 2013-present, Facebook, Inc.
9694 *
9695 * This source code is licensed under the MIT license found in the
9696 * LICENSE file in the root directory of this source tree.
9697 *
9698 */
9699
9700
9701
9702/**
9703 * `charCode` represents the actual "character code" and is safe to use with
9704 * `String.fromCharCode`. As such, only keys that correspond to printable
9705 * characters produce a valid `charCode`, the only exception to this is Enter.
9706 * The Tab-key is considered non-printable and does not have a `charCode`,
9707 * presumably because it does not produce a tab-character in browsers.
9708 *
9709 * @param {object} nativeEvent Native browser event.
9710 * @return {number} Normalized `charCode` property.
9711 */
9712
9713function getEventCharCode(nativeEvent) {
9714  var charCode;
9715  var keyCode = nativeEvent.keyCode;
9716
9717  if ('charCode' in nativeEvent) {
9718    charCode = nativeEvent.charCode;
9719
9720    // FF does not set `charCode` for the Enter-key, check against `keyCode`.
9721    if (charCode === 0 && keyCode === 13) {
9722      charCode = 13;
9723    }
9724  } else {
vendor: 8,566 bytes, lines 9725-10022
9725    // IE8 does not implement `charCode`, but `keyCode` has the correct value.
9726    charCode = keyCode;
9727  }
9728
9729  // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
9730  // Must not discard the (non-)printable Enter-key.
9731  if (charCode >= 32 || charCode === 13) {
9732    return charCode;
9733  }
9734
9735  return 0;
9736}
9737
9738module.exports = getEventCharCode;
9739
9740/***/ }),
9741/* 153 */
9742/***/ (function(module, exports, __webpack_require__) {
9743
9744"use strict";
9745
9746
9747var AlgoliaSearch = __webpack_require__(537);
9748var createAlgoliasearch = __webpack_require__(548);
9749
9750module.exports = createAlgoliasearch(AlgoliaSearch);
9751
9752
9753/***/ }),
9754/* 154 */
9755/***/ (function(module, exports) {
9756
9757module.exports = function deprecate(fn, message) {
9758  var warned = false;
9759
9760  function deprecated() {
9761    if (!warned) {
9762      /* eslint no-console:0 */
9763      console.warn(message);
9764      warned = true;
9765    }
9766
9767    return fn.apply(this, arguments);
9768  }
9769
9770  return deprecated;
9771};
9772
9773
9774/***/ }),
9775/* 155 */
9776/***/ (function(module, exports) {
9777
9778module.exports = function deprecatedMessage(previousUsage, newUsage) {
9779  var githubAnchorLink = previousUsage.toLowerCase()
9780    .replace(/[\.\(\)]/g, '');
9781
9782  return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage +
9783    '`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#' + githubAnchorLink;
9784};
9785
9786
9787/***/ }),
9788/* 156 */
9789/***/ (function(module, exports, __webpack_require__) {
9790
9791module.exports = !__webpack_require__(12) && !__webpack_require__(6)(function () {
9792  return Object.defineProperty(__webpack_require__(106)('div'), 'a', { get: function () { return 7; } }).a != 7;
9793});
9794
9795
9796/***/ }),
9797/* 157 */
9798/***/ (function(module, exports, __webpack_require__) {
9799
9800var dP = __webpack_require__(11);
9801var anObject = __webpack_require__(4);
9802var getKeys = __webpack_require__(52);
9803
9804module.exports = __webpack_require__(12) ? Object.defineProperties : function defineProperties(O, Properties) {
9805  anObject(O);
9806  var keys = getKeys(Properties);
9807  var length = keys.length;
9808  var i = 0;
9809  var P;
9810  while (length > i) dP.f(O, P = keys[i++], Properties[P]);
9811  return O;
9812};
9813
9814
9815/***/ }),
9816/* 158 */
9817/***/ (function(module, exports, __webpack_require__) {
9818
9819var has = __webpack_require__(24);
9820var toIObject = __webpack_require__(25);
9821var arrayIndexOf = __webpack_require__(83)(false);
9822var IE_PROTO = __webpack_require__(111)('IE_PROTO');
9823
9824module.exports = function (object, names) {
9825  var O = toIObject(object);
9826  var i = 0;
9827  var result = [];
9828  var key;
9829  for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
9830  // Don't enum bug & hidden keys
9831  while (names.length > i) if (has(O, key = names[i++])) {
9832    ~arrayIndexOf(result, key) || result.push(key);
9833  }
9834  return result;
9835};
9836
9837
9838/***/ }),
9839/* 159 */
9840/***/ (function(module, exports) {
9841
9842module.exports = function (done, value) {
9843  return { value: value, done: !!done };
9844};
9845
9846
9847/***/ }),
9848/* 160 */
9849/***/ (function(module, exports, __webpack_require__) {
9850
9851"use strict";
9852
9853var dP = __webpack_require__(11).f;
9854var create = __webpack_require__(51);
9855var redefineAll = __webpack_require__(54);
9856var ctx = __webpack_require__(30);
9857var anInstance = __webpack_require__(55);
9858var forOf = __webpack_require__(56);
9859var $iterDefine = __webpack_require__(109);
9860var step = __webpack_require__(159);
9861var setSpecies = __webpack_require__(57);
9862var DESCRIPTORS = __webpack_require__(12);
9863var fastKey = __webpack_require__(46).fastKey;
9864var validate = __webpack_require__(63);
9865var SIZE = DESCRIPTORS ? '_s' : 'size';
9866
9867var getEntry = function (that, key) {
9868  // fast case
9869  var index = fastKey(key);
9870  var entry;
9871  if (index !== 'F') return that._i[index];
9872  // frozen object case
9873  for (entry = that._f; entry; entry = entry.n) {
9874    if (entry.k == key) return entry;
9875  }
9876};
9877
9878module.exports = {
9879  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
9880    var C = wrapper(function (that, iterable) {
9881      anInstance(that, C, NAME, '_i');
9882      that._t = NAME;         // collection type
9883      that._i = create(null); // index
9884      that._f = undefined;    // first entry
9885      that._l = undefined;    // last entry
9886      that[SIZE] = 0;         // size
9887      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
9888    });
9889    redefineAll(C.prototype, {
9890      // 23.1.3.1 Map.prototype.clear()
9891      // 23.2.3.2 Set.prototype.clear()
9892      clear: function clear() {
9893        for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
9894          entry.r = true;
9895          if (entry.p) entry.p = entry.p.n = undefined;
9896          delete data[entry.i];
9897        }
9898        that._f = that._l = undefined;
9899        that[SIZE] = 0;
9900      },
9901      // 23.1.3.3 Map.prototype.delete(key)
9902      // 23.2.3.4 Set.prototype.delete(value)
9903      'delete': function (key) {
9904        var that = validate(this, NAME);
9905        var entry = getEntry(that, key);
9906        if (entry) {
9907          var next = entry.n;
9908          var prev = entry.p;
9909          delete that._i[entry.i];
9910          entry.r = true;
9911          if (prev) prev.n = next;
9912          if (next) next.p = prev;
9913          if (that._f == entry) that._f = next;
9914          if (that._l == entry) that._l = prev;
9915          that[SIZE]--;
9916        } return !!entry;
9917      },
9918      // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
9919      // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
9920      forEach: function forEach(callbackfn /* , that = undefined */) {
9921        validate(this, NAME);
9922        var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
9923        var entry;
9924        while (entry = entry ? entry.n : this._f) {
9925          f(entry.v, entry.k, this);
9926          // revert to the last existing entry
9927          while (entry && entry.r) entry = entry.p;
9928        }
9929      },
9930      // 23.1.3.7 Map.prototype.has(key)
9931      // 23.2.3.7 Set.prototype.has(value)
9932      has: function has(key) {
9933        return !!getEntry(validate(this, NAME), key);
9934      }
9935    });
9936    if (DESCRIPTORS) dP(C.prototype, 'size', {
9937      get: function () {
9938        return validate(this, NAME)[SIZE];
9939      }
9940    });
9941    return C;
9942  },
9943  def: function (that, key, value) {
9944    var entry = getEntry(that, key);
9945    var prev, index;
9946    // change existing entry
9947    if (entry) {
9948      entry.v = value;
9949    // create new entry
9950    } else {
9951      that._l = entry = {
9952        i: index = fastKey(key, true), // <- index
9953        k: key,                        // <- key
9954        v: value,                      // <- value
9955        p: prev = that._l,             // <- previous entry
9956        n: undefined,                  // <- next entry
9957        r: false                       // <- removed
9958      };
9959      if (!that._f) that._f = entry;
9960      if (prev) prev.n = entry;
9961      that[SIZE]++;
9962      // add to index
9963      if (index !== 'F') that._i[index] = entry;
9964    } return that;
9965  },
9966  getEntry: getEntry,
9967  setStrong: function (C, NAME, IS_MAP) {
9968    // add .keys, .values, .entries, [@@iterator]
9969    // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
9970    $iterDefine(C, NAME, function (iterated, kind) {
9971      this._t = validate(iterated, NAME); // target
9972      this._k = kind;                     // kind
9973      this._l = undefined;                // previous
9974    }, function () {
9975      var that = this;
9976      var kind = that._k;
9977      var entry = that._l;
9978      // revert to the last existing entry
9979      while (entry && entry.r) entry = entry.p;
9980      // get next entry
9981      if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
9982        // or finish the iteration
9983        that._t = undefined;
9984        return step(1);
9985      }
9986      // return step by kind
9987      if (kind == 'keys') return step(0, entry.k);
9988      if (kind == 'values') return step(0, entry.v);
9989      return step(0, [entry.k, entry.v]);
9990    }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
9991
9992    // add [@@species], 23.1.2.2, 23.2.2.2
9993    setSpecies(NAME);
9994  }
9995};
9996
9997
9998/***/ }),
9999/* 161 */
10000/***/ (function(module, exports, __webpack_require__) {
10001
10002// call something on iterator step with safe closing on error
10003var anObject = __webpack_require__(4);
10004module.exports = function (iterator, fn, value, entries) {
10005  try {
10006    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
10007  // 7.4.6 IteratorClose(iterator, completion)
10008  } catch (e) {
10009    var ret = iterator['return'];
10010    if (ret !== undefined) anObject(ret.call(iterator));
10011    throw e;
10012  }
10013};
10014
10015
10016/***/ }),
10017/* 162 */
10018/***/ (function(module, exports, __webpack_require__) {
10019
10020exports.f = __webpack_require__(9);
10021
10022
vendor: 5,155 bytes, lines 10023-10196
10023/***/ }),
10024/* 163 */
10025/***/ (function(module, exports, __webpack_require__) {
10026
10027// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
10028var toIObject = __webpack_require__(25);
10029var gOPN = __webpack_require__(58).f;
10030var toString = {}.toString;
10031
10032var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
10033  ? Object.getOwnPropertyNames(window) : [];
10034
10035var getWindowNames = function (it) {
10036  try {
10037    return gOPN(it);
10038  } catch (e) {
10039    return windowNames.slice();
10040  }
10041};
10042
10043module.exports.f = function getOwnPropertyNames(it) {
10044  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
10045};
10046
10047
10048/***/ }),
10049/* 164 */
10050/***/ (function(module, exports, __webpack_require__) {
10051
10052"use strict";
10053
10054// 19.1.2.1 Object.assign(target, source, ...)
10055var getKeys = __webpack_require__(52);
10056var gOPS = __webpack_require__(86);
10057var pIE = __webpack_require__(75);
10058var toObject = __webpack_require__(15);
10059var IObject = __webpack_require__(74);
10060var $assign = Object.assign;
10061
10062// should work with symbols and should have deterministic property order (V8 bug)
10063module.exports = !$assign || __webpack_require__(6)(function () {
10064  var A = {};
10065  var B = {};
10066  // eslint-disable-next-line no-undef
10067  var S = Symbol();
10068  var K = 'abcdefghijklmnopqrst';
10069  A[S] = 7;
10070  K.split('').forEach(function (k) { B[k] = k; });
10071  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
10072}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
10073  var T = toObject(target);
10074  var aLen = arguments.length;
10075  var index = 1;
10076  var getSymbols = gOPS.f;
10077  var isEnum = pIE.f;
10078  while (aLen > index) {
10079    var S = IObject(arguments[index++]);
10080    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
10081    var length = keys.length;
10082    var j = 0;
10083    var key;
10084    while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
10085  } return T;
10086} : $assign;
10087
10088
10089/***/ }),
10090/* 165 */
10091/***/ (function(module, exports, __webpack_require__) {
10092
10093"use strict";
10094
10095var aFunction = __webpack_require__(17);
10096var isObject = __webpack_require__(7);
10097var invoke = __webpack_require__(166);
10098var arraySlice = [].slice;
10099var factories = {};
10100
10101var construct = function (F, len, args) {
10102  if (!(len in factories)) {
10103    for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
10104    // eslint-disable-next-line no-new-func
10105    factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
10106  } return factories[len](F, args);
10107};
10108
10109module.exports = Function.bind || function bind(that /* , ...args */) {
10110  var fn = aFunction(this);
10111  var partArgs = arraySlice.call(arguments, 1);
10112  var bound = function (/* args... */) {
10113    var args = partArgs.concat(arraySlice.call(arguments));
10114    return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
10115  };
10116  if (isObject(fn.prototype)) bound.prototype = fn.prototype;
10117  return bound;
10118};
10119
10120
10121/***/ }),
10122/* 166 */
10123/***/ (function(module, exports) {
10124
10125// fast apply, http://jsperf.lnkit.com/fast-apply/5
10126module.exports = function (fn, args, that) {
10127  var un = that === undefined;
10128  switch (args.length) {
10129    case 0: return un ? fn()
10130                      : fn.call(that);
10131    case 1: return un ? fn(args[0])
10132                      : fn.call(that, args[0]);
10133    case 2: return un ? fn(args[0], args[1])
10134                      : fn.call(that, args[0], args[1]);
10135    case 3: return un ? fn(args[0], args[1], args[2])
10136                      : fn.call(that, args[0], args[1], args[2]);
10137    case 4: return un ? fn(args[0], args[1], args[2], args[3])
10138                      : fn.call(that, args[0], args[1], args[2], args[3]);
10139  } return fn.apply(that, args);
10140};
10141
10142
10143/***/ }),
10144/* 167 */
10145/***/ (function(module, exports, __webpack_require__) {
10146
10147var $parseInt = __webpack_require__(5).parseInt;
10148var $trim = __webpack_require__(65).trim;
10149var ws = __webpack_require__(123);
10150var hex = /^[-+]?0[xX]/;
10151
10152module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {
10153  var string = $trim(String(str), 3);
10154  return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));
10155} : $parseInt;
10156
10157
10158/***/ }),
10159/* 168 */
10160/***/ (function(module, exports, __webpack_require__) {
10161
10162var $parseFloat = __webpack_require__(5).parseFloat;
10163var $trim = __webpack_require__(65).trim;
10164
10165module.exports = 1 / $parseFloat(__webpack_require__(123) + '-0') !== -Infinity ? function parseFloat(str) {
10166  var string = $trim(String(str), 3);
10167  var result = $parseFloat(string);
10168  return result === 0 && string.charAt(0) == '-' ? -0 : result;
10169} : $parseFloat;
10170
10171
10172/***/ }),
10173/* 169 */
10174/***/ (function(module, exports, __webpack_require__) {
10175
10176var cof = __webpack_require__(29);
10177module.exports = function (it, msg) {
10178  if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);
10179  return +it;
10180};
10181
10182
10183/***/ }),
10184/* 170 */
10185/***/ (function(module, exports, __webpack_require__) {
10186
10187// 20.1.2.3 Number.isInteger(number)
10188var isObject = __webpack_require__(7);
10189var floor = Math.floor;
10190module.exports = function isInteger(it) {
10191  return !isObject(it) && isFinite(it) && floor(it) === it;
10192};
10193
10194
10195/***/ }),
10196/* 171 */
vendor: 1,980 bytes, lines 10197-10272
10197/***/ (function(module, exports) {
10198
10199// 20.2.2.20 Math.log1p(x)
10200module.exports = Math.log1p || function log1p(x) {
10201  return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
10202};
10203
10204
10205/***/ }),
10206/* 172 */
10207/***/ (function(module, exports, __webpack_require__) {
10208
10209// 20.2.2.16 Math.fround(x)
10210var sign = __webpack_require__(125);
10211var pow = Math.pow;
10212var EPSILON = pow(2, -52);
10213var EPSILON32 = pow(2, -23);
10214var MAX32 = pow(2, 127) * (2 - EPSILON32);
10215var MIN32 = pow(2, -126);
10216
10217var roundTiesToEven = function (n) {
10218  return n + 1 / EPSILON - 1 / EPSILON;
10219};
10220
10221module.exports = Math.fround || function fround(x) {
10222  var $abs = Math.abs(x);
10223  var $sign = sign(x);
10224  var a, result;
10225  if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
10226  a = (1 + EPSILON32 / EPSILON) * $abs;
10227  result = a - (a - $abs);
10228  // eslint-disable-next-line no-self-compare
10229  if (result > MAX32 || result != result) return $sign * Infinity;
10230  return $sign * result;
10231};
10232
10233
10234/***/ }),
10235/* 173 */
10236/***/ (function(module, exports, __webpack_require__) {
10237
10238var aFunction = __webpack_require__(17);
10239var toObject = __webpack_require__(15);
10240var IObject = __webpack_require__(74);
10241var toLength = __webpack_require__(13);
10242
10243module.exports = function (that, callbackfn, aLen, memo, isRight) {
10244  aFunction(callbackfn);
10245  var O = toObject(that);
10246  var self = IObject(O);
10247  var length = toLength(O.length);
10248  var index = isRight ? length - 1 : 0;
10249  var i = isRight ? -1 : 1;
10250  if (aLen < 2) for (;;) {
10251    if (index in self) {
10252      memo = self[index];
10253      index += i;
10254      break;
10255    }
10256    index += i;
10257    if (isRight ? index < 0 : length <= index) {
10258      throw TypeError('Reduce of empty array with no initial value');
10259    }
10260  }
10261  for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
10262    memo = callbackfn(memo, self[index], index, O);
10263  }
10264  return memo;
10265};
10266
10267
10268/***/ }),
10269/* 174 */
10270/***/ (function(module, exports, __webpack_require__) {
10271
10272"use strict";
vendor: 4,379 bytes, lines 10273-10427
10273// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
10274
10275var toObject = __webpack_require__(15);
10276var toAbsoluteIndex = __webpack_require__(53);
10277var toLength = __webpack_require__(13);
10278
10279module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
10280  var O = toObject(this);
10281  var len = toLength(O.length);
10282  var to = toAbsoluteIndex(target, len);
10283  var from = toAbsoluteIndex(start, len);
10284  var end = arguments.length > 2 ? arguments[2] : undefined;
10285  var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
10286  var inc = 1;
10287  if (from < to && to < from + count) {
10288    inc = -1;
10289    from += count - 1;
10290    to += count - 1;
10291  }
10292  while (count-- > 0) {
10293    if (from in O) O[to] = O[from];
10294    else delete O[to];
10295    to += inc;
10296    from += inc;
10297  } return O;
10298};
10299
10300
10301/***/ }),
10302/* 175 */
10303/***/ (function(module, exports, __webpack_require__) {
10304
10305// 21.2.5.3 get RegExp.prototype.flags()
10306if (__webpack_require__(12) && /./g.flags != 'g') __webpack_require__(11).f(RegExp.prototype, 'flags', {
10307  configurable: true,
10308  get: __webpack_require__(89)
10309});
10310
10311
10312/***/ }),
10313/* 176 */
10314/***/ (function(module, exports) {
10315
10316module.exports = function (exec) {
10317  try {
10318    return { e: false, v: exec() };
10319  } catch (e) {
10320    return { e: true, v: e };
10321  }
10322};
10323
10324
10325/***/ }),
10326/* 177 */
10327/***/ (function(module, exports, __webpack_require__) {
10328
10329var anObject = __webpack_require__(4);
10330var isObject = __webpack_require__(7);
10331var newPromiseCapability = __webpack_require__(134);
10332
10333module.exports = function (C, x) {
10334  anObject(C);
10335  if (isObject(x) && x.constructor === C) return x;
10336  var promiseCapability = newPromiseCapability.f(C);
10337  var resolve = promiseCapability.resolve;
10338  resolve(x);
10339  return promiseCapability.promise;
10340};
10341
10342
10343/***/ }),
10344/* 178 */
10345/***/ (function(module, exports, __webpack_require__) {
10346
10347"use strict";
10348
10349var each = __webpack_require__(37)(0);
10350var redefine = __webpack_require__(19);
10351var meta = __webpack_require__(46);
10352var assign = __webpack_require__(164);
10353var weak = __webpack_require__(179);
10354var isObject = __webpack_require__(7);
10355var fails = __webpack_require__(6);
10356var validate = __webpack_require__(63);
10357var WEAK_MAP = 'WeakMap';
10358var getWeak = meta.getWeak;
10359var isExtensible = Object.isExtensible;
10360var uncaughtFrozenStore = weak.ufstore;
10361var tmp = {};
10362var InternalMap;
10363
10364var wrapper = function (get) {
10365  return function WeakMap() {
10366    return get(this, arguments.length > 0 ? arguments[0] : undefined);
10367  };
10368};
10369
10370var methods = {
10371  // 23.3.3.3 WeakMap.prototype.get(key)
10372  get: function get(key) {
10373    if (isObject(key)) {
10374      var data = getWeak(key);
10375      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
10376      return data ? data[this._i] : undefined;
10377    }
10378  },
10379  // 23.3.3.5 WeakMap.prototype.set(key, value)
10380  set: function set(key, value) {
10381    return weak.def(validate(this, WEAK_MAP), key, value);
10382  }
10383};
10384
10385// 23.3 WeakMap Objects
10386var $WeakMap = module.exports = __webpack_require__(84)(WEAK_MAP, wrapper, methods, weak, true, true);
10387
10388// IE11 WeakMap frozen keys fix
10389if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
10390  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
10391  assign(InternalMap.prototype, methods);
10392  meta.NEED = true;
10393  each(['delete', 'has', 'get', 'set'], function (key) {
10394    var proto = $WeakMap.prototype;
10395    var method = proto[key];
10396    redefine(proto, key, function (a, b) {
10397      // store frozen objects on internal weakmap shim
10398      if (isObject(a) && !isExtensible(a)) {
10399        if (!this._f) this._f = new InternalMap();
10400        var result = this._f[key](a, b);
10401        return key == 'set' ? this : result;
10402      // store all the rest on native weakmap
10403      } return method.call(this, a, b);
10404    });
10405  });
10406}
10407
10408
10409/***/ }),
10410/* 179 */
10411/***/ (function(module, exports, __webpack_require__) {
10412
10413"use strict";
10414
10415var redefineAll = __webpack_require__(54);
10416var getWeak = __webpack_require__(46).getWeak;
10417var anObject = __webpack_require__(4);
10418var isObject = __webpack_require__(7);
10419var anInstance = __webpack_require__(55);
10420var forOf = __webpack_require__(56);
10421var createArrayMethod = __webpack_require__(37);
10422var $has = __webpack_require__(24);
10423var validate = __webpack_require__(63);
10424var arrayFind = createArrayMethod(5);
10425var arrayFindIndex = createArrayMethod(6);
10426var id = 0;
10427
vendor: 4,716 bytes, lines 10428-10583
10428// fallback for uncaught frozen keys
10429var uncaughtFrozenStore = function (that) {
10430  return that._l || (that._l = new UncaughtFrozenStore());
10431};
10432var UncaughtFrozenStore = function () {
10433  this.a = [];
10434};
10435var findUncaughtFrozen = function (store, key) {
10436  return arrayFind(store.a, function (it) {
10437    return it[0] === key;
10438  });
10439};
10440UncaughtFrozenStore.prototype = {
10441  get: function (key) {
10442    var entry = findUncaughtFrozen(this, key);
10443    if (entry) return entry[1];
10444  },
10445  has: function (key) {
10446    return !!findUncaughtFrozen(this, key);
10447  },
10448  set: function (key, value) {
10449    var entry = findUncaughtFrozen(this, key);
10450    if (entry) entry[1] = value;
10451    else this.a.push([key, value]);
10452  },
10453  'delete': function (key) {
10454    var index = arrayFindIndex(this.a, function (it) {
10455      return it[0] === key;
10456    });
10457    if (~index) this.a.splice(index, 1);
10458    return !!~index;
10459  }
10460};
10461
10462module.exports = {
10463  getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
10464    var C = wrapper(function (that, iterable) {
10465      anInstance(that, C, NAME, '_i');
10466      that._t = NAME;      // collection type
10467      that._i = id++;      // collection id
10468      that._l = undefined; // leak store for uncaught frozen objects
10469      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
10470    });
10471    redefineAll(C.prototype, {
10472      // 23.3.3.2 WeakMap.prototype.delete(key)
10473      // 23.4.3.3 WeakSet.prototype.delete(value)
10474      'delete': function (key) {
10475        if (!isObject(key)) return false;
10476        var data = getWeak(key);
10477        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
10478        return data && $has(data, this._i) && delete data[this._i];
10479      },
10480      // 23.3.3.4 WeakMap.prototype.has(key)
10481      // 23.4.3.4 WeakSet.prototype.has(value)
10482      has: function has(key) {
10483        if (!isObject(key)) return false;
10484        var data = getWeak(key);
10485        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
10486        return data && $has(data, this._i);
10487      }
10488    });
10489    return C;
10490  },
10491  def: function (that, key, value) {
10492    var data = getWeak(anObject(key), true);
10493    if (data === true) uncaughtFrozenStore(that).set(key, value);
10494    else data[that._i] = value;
10495    return that;
10496  },
10497  ufstore: uncaughtFrozenStore
10498};
10499
10500
10501/***/ }),
10502/* 180 */
10503/***/ (function(module, exports, __webpack_require__) {
10504
10505// https://tc39.github.io/ecma262/#sec-toindex
10506var toInteger = __webpack_require__(34);
10507var toLength = __webpack_require__(13);
10508module.exports = function (it) {
10509  if (it === undefined) return 0;
10510  var number = toInteger(it);
10511  var length = toLength(number);
10512  if (number !== length) throw RangeError('Wrong length!');
10513  return length;
10514};
10515
10516
10517/***/ }),
10518/* 181 */
10519/***/ (function(module, exports, __webpack_require__) {
10520
10521// all object keys, includes non-enumerable and symbols
10522var gOPN = __webpack_require__(58);
10523var gOPS = __webpack_require__(86);
10524var anObject = __webpack_require__(4);
10525var Reflect = __webpack_require__(5).Reflect;
10526module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {
10527  var keys = gOPN.f(anObject(it));
10528  var getSymbols = gOPS.f;
10529  return getSymbols ? keys.concat(getSymbols(it)) : keys;
10530};
10531
10532
10533/***/ }),
10534/* 182 */
10535/***/ (function(module, exports, __webpack_require__) {
10536
10537"use strict";
10538
10539// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray
10540var isArray = __webpack_require__(87);
10541var isObject = __webpack_require__(7);
10542var toLength = __webpack_require__(13);
10543var ctx = __webpack_require__(30);
10544var IS_CONCAT_SPREADABLE = __webpack_require__(9)('isConcatSpreadable');
10545
10546function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {
10547  var targetIndex = start;
10548  var sourceIndex = 0;
10549  var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;
10550  var element, spreadable;
10551
10552  while (sourceIndex < sourceLen) {
10553    if (sourceIndex in source) {
10554      element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];
10555
10556      spreadable = false;
10557      if (isObject(element)) {
10558        spreadable = element[IS_CONCAT_SPREADABLE];
10559        spreadable = spreadable !== undefined ? !!spreadable : isArray(element);
10560      }
10561
10562      if (spreadable && depth > 0) {
10563        targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;
10564      } else {
10565        if (targetIndex >= 0x1fffffffffffff) throw TypeError();
10566        target[targetIndex] = element;
10567      }
10568
10569      targetIndex++;
10570    }
10571    sourceIndex++;
10572  }
10573  return targetIndex;
10574}
10575
10576module.exports = flattenIntoArray;
10577
10578
10579/***/ }),
10580/* 183 */
10581/***/ (function(module, exports, __webpack_require__) {
10582
10583// https://github.com/tc39/proposal-string-pad-start-end
10584var toLength = __webpack_require__(13);
10585var repeat = __webpack_require__(124);
10586var defined = __webpack_require__(35);
10587
10588module.exports = function (that, maxLength, fillString, left) {
10589  var S = String(defined(that));
10590  var stringLength = S.length;
10591  var fillStr = fillString === undefined ? ' ' : String(fillString);
10592  var intMaxLength = toLength(maxLength);
10593  if (intMaxLength <= stringLength || fillStr == '') return S;
10594  var fillLen = intMaxLength - stringLength;
10595  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
10596  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
10597  return left ? stringFiller + S : S + stringFiller;
10598};
10599
10600
10601/***/ }),
10602/* 184 */
10603/***/ (function(module, exports, __webpack_require__) {
10604
10605var getKeys = __webpack_require__(52);
10606var toIObject = __webpack_require__(25);
10607var isEnum = __webpack_require__(75).f;
10608module.exports = function (isEntries) {
10609  return function (it) {
10610    var O = toIObject(it);
10611    var keys = getKeys(O);
10612    var length = keys.length;
10613    var i = 0;
10614    var result = [];
10615    var key;
10616    while (length > i) if (isEnum.call(O, key = keys[i++])) {
10617      result.push(isEntries ? [key, O[key]] : O[key]);
10618    } return result;
10619  };
10620};
10621
10622
10623/***/ }),
10624/* 185 */
10625/***/ (function(module, exports, __webpack_require__) {
10626
10627// https://github.com/DavidBruant/Map-Set.prototype.toJSON
10628var classof = __webpack_require__(73);
10629var from = __webpack_require__(186);
10630module.exports = function (NAME) {
10631  return function toJSON() {
10632    if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic");
10633    return from(this);
10634  };
10635};
10636
10637
10638/***/ }),
10639/* 186 */
10640/***/ (function(module, exports, __webpack_require__) {
10641
10642var forOf = __webpack_require__(56);
10643
10644module.exports = function (iter, ITERATOR) {
10645  var result = [];
10646  forOf(iter, false, result.push, result, ITERATOR);
10647  return result;
10648};
10649
10650
10651/***/ }),
10652/* 187 */
10653/***/ (function(module, exports) {
10654
10655// https://rwaldron.github.io/proposal-math-extensions/
10656module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {
10657  if (
10658    arguments.length === 0
10659      // eslint-disable-next-line no-self-compare
10660      || x != x
10661      // eslint-disable-next-line no-self-compare
10662      || inLow != inLow
10663      // eslint-disable-next-line no-self-compare
10664      || inHigh != inHigh
10665      // eslint-disable-next-line no-self-compare
10666      || outLow != outLow
10667      // eslint-disable-next-line no-self-compare
10668      || outHigh != outHigh
10669  ) return NaN;
10670  if (x === Infinity || x === -Infinity) return x;
10671  return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;
10672};
10673
10674
10675/***/ }),
10676/* 188 */
10677/***/ (function(module, exports, __webpack_require__) {
10678
10679"use strict";
10680/* WEBPACK VAR INJECTION */(function(process) {/**
10681 * Copyright (c) 2013-present, Facebook, Inc.
10682 *
10683 * This source code is licensed under the MIT license found in the
10684 * LICENSE file in the root directory of this source tree.
10685 *
10686 */
10687
10688
10689
10690var _prodInvariant = __webpack_require__(67),
10691    _assign = __webpack_require__(10);
10692
10693var ReactNoopUpdateQueue = __webpack_require__(189);
10694
10695var canDefineProperty = __webpack_require__(97);
10696var emptyObject = __webpack_require__(98);
10697var invariant = __webpack_require__(2);
10698var lowPriorityWarning = __webpack_require__(136);
10699
10700/**
10701 * Base class helpers for the updating state of a component.
10702 */
10703function ReactComponent(props, context, updater) {
10704  this.props = props;
10705  this.context = context;
10706  this.refs = emptyObject;
10707  // We initialize the default updater but the real one gets injected by the
10708  // renderer.
10709  this.updater = updater || ReactNoopUpdateQueue;
10710}
10711
10712ReactComponent.prototype.isReactComponent = {};
10713
10714/**
10715 * Sets a subset of the state. Always use this to mutate
10716 * state. You should treat `this.state` as immutable.
10717 *
10718 * There is no guarantee that `this.state` will be immediately updated, so
10719 * accessing `this.state` after calling this method may return the old value.
10720 *
10721 * There is no guarantee that calls to `setState` will run synchronously,
10722 * as they may eventually be batched together.  You can provide an optional
10723 * callback that will be executed when the call to setState is actually
10724 * completed.
10725 *
10726 * When a function is provided to setState, it will be called at some point in
10727 * the future (not synchronously). It will be called with the up to date
10728 * component arguments (state, props, context). These values can be different
10729 * from this.* because your function may be called after receiveProps but before
10730 * shouldComponentUpdate, and this new state, props, and context will not yet be
10731 * assigned to this.
10732 *
10733 * @param {object|function} partialState Next partial state or function to
10734 *        produce next partial state to be merged with current state.
10735 * @param {?function} callback Called after state is updated.
10736 * @final
10737 * @protected
10738 */
10739ReactComponent.prototype.setState = function (partialState, callback) {
10740  !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
10741  this.updater.enqueueSetState(this, partialState);
10742  if (callback) {
10743    this.updater.enqueueCallback(this, callback, 'setState');
10744  }
10745};
10746
10747/**
10748 * Forces an update. This should only be invoked when it is known with
10749 * certainty that we are **not** in a DOM transaction.
10750 *
10751 * You may want to call this when you know that some deeper aspect of the
10752 * component's state has changed but `setState` was not called.
10753 *
10754 * This will not invoke `shouldComponentUpdate`, but it will invoke
10755 * `componentWillUpdate` and `componentDidUpdate`.
10756 *
10757 * @param {?function} callback Called after update is complete.
10758 * @final
10759 * @protected
10760 */
10761ReactComponent.prototype.forceUpdate = function (callback) {
10762  this.updater.enqueueForceUpdate(this);
10763  if (callback) {
10764    this.updater.enqueueCallback(this, callback, 'forceUpdate');
10765  }
10766};
10767
10768/**
10769 * Deprecated APIs. These APIs used to exist on classic React classes but since
10770 * we would like to deprecate them, we're not going to move them over to this
10771 * modern base class. Instead, we define a getter that warns if it's accessed.
10772 */
10773if (process.env.NODE_ENV !== 'production') {
10774  var deprecatedAPIs = {
10775    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
10776    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
10777  };
10778  var defineDeprecationWarning = function (methodName, info) {
10779    if (canDefineProperty) {
10780      Object.defineProperty(ReactComponent.prototype, methodName, {
10781        get: function () {
10782          lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
10783          return undefined;
10784        }
10785      });
10786    }
10787  };
10788  for (var fnName in deprecatedAPIs) {
10789    if (deprecatedAPIs.hasOwnProperty(fnName)) {
10790      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
10791    }
10792  }
10793}
10794
10795/**
10796 * Base class helpers for the updating state of a component.
10797 */
10798function ReactPureComponent(props, context, updater) {
10799  // Duplicated from ReactComponent.
10800  this.props = props;
10801  this.context = context;
10802  this.refs = emptyObject;
10803  // We initialize the default updater but the real one gets injected by the
10804  // renderer.
10805  this.updater = updater || ReactNoopUpdateQueue;
10806}
10807
10808function ComponentDummy() {}
10809ComponentDummy.prototype = ReactComponent.prototype;
10810ReactPureComponent.prototype = new ComponentDummy();
10811ReactPureComponent.prototype.constructor = ReactPureComponent;
10812// Avoid an extra prototype jump for these methods.
10813_assign(ReactPureComponent.prototype, ReactComponent.prototype);
10814ReactPureComponent.prototype.isPureReactComponent = true;
10815
10816module.exports = {
10817  Component: ReactComponent,
10818  PureComponent: ReactPureComponent
10819};
10820/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
10821
10822/***/ }),
10823/* 189 */
10824/***/ (function(module, exports, __webpack_require__) {
10825
10826"use strict";
10827/* WEBPACK VAR INJECTION */(function(process) {/**
10828 * Copyright (c) 2015-present, Facebook, Inc.
10829 *
10830 * This source code is licensed under the MIT license found in the
10831 * LICENSE file in the root directory of this source tree.
10832 *
10833 */
10834
10835
10836
10837var warning = __webpack_require__(3);
10838
10839function warnNoop(publicInstance, callerName) {
10840  if (process.env.NODE_ENV !== 'production') {
10841    var constructor = publicInstance.constructor;
10842    process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounted or mounting component. ' + 'This usually means you called %s() on an unmounted component. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
10843  }
10844}
10845
10846/**
10847 * This is the abstract API for an update queue.
10848 */
10849var ReactNoopUpdateQueue = {
10850  /**
10851   * Checks whether or not this composite component is mounted.
10852   * @param {ReactClass} publicInstance The instance we want to test.
10853   * @return {boolean} True if mounted, false otherwise.
10854   * @protected
10855   * @final
10856   */
10857  isMounted: function (publicInstance) {
10858    return false;
10859  },
10860
10861  /**
10862   * Enqueue a callback that will be executed after all the pending updates
10863   * have processed.
10864   *
10865   * @param {ReactClass} publicInstance The instance to use as `this` context.
10866   * @param {?function} callback Called after state is updated.
10867   * @internal
10868   */
10869  enqueueCallback: function (publicInstance, callback) {},
10870
10871  /**
10872   * Forces an update. This should only be invoked when it is known with
10873   * certainty that we are **not** in a DOM transaction.
10874   *
10875   * You may want to call this when you know that some deeper aspect of the
10876   * component's state has changed but `setState` was not called.
10877   *
10878   * This will not invoke `shouldComponentUpdate`, but it will invoke
10879   * `componentWillUpdate` and `componentDidUpdate`.
10880   *
10881   * @param {ReactClass} publicInstance The instance that should rerender.
10882   * @internal
10883   */
10884  enqueueForceUpdate: function (publicInstance) {
10885    warnNoop(publicInstance, 'forceUpdate');
10886  },
10887
10888  /**
10889   * Replaces all of the state. Always use this or `setState` to mutate state.
10890   * You should treat `this.state` as immutable.
10891   *
10892   * There is no guarantee that `this.state` will be immediately updated, so
10893   * accessing `this.state` after calling this method may return the old value.
10894   *
10895   * @param {ReactClass} publicInstance The instance that should rerender.
10896   * @param {object} completeState Next state.
10897   * @internal
10898   */
10899  enqueueReplaceState: function (publicInstance, completeState) {
10900    warnNoop(publicInstance, 'replaceState');
10901  },
10902
10903  /**
10904   * Sets a subset of the state. This only exists because _pendingState is
10905   * internal. This provides a merging strategy that is not available to deep
10906   * properties which is confusing. TODO: Expose pendingState or don't use it
10907   * during the merge.
10908   *
10909   * @param {ReactClass} publicInstance The instance that should rerender.
10910   * @param {object} partialState Next partial state to be merged with state.
10911   * @internal
10912   */
10913  enqueueSetState: function (publicInstance, partialState) {
10914    warnNoop(publicInstance, 'setState');
10915  }
10916};
10917
10918module.exports = ReactNoopUpdateQueue;
10919/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
10920
10921/***/ }),
10922/* 190 */
10923/***/ (function(module, exports, __webpack_require__) {
10924
10925"use strict";
10926/**
10927 * Copyright (c) 2014-present, Facebook, Inc.
10928 *
10929 * This source code is licensed under the MIT license found in the
10930 * LICENSE file in the root directory of this source tree.
10931 *
10932 * 
10933 */
10934
10935
10936
10937// The Symbol used to tag the ReactElement type. If there is no native Symbol
10938// nor polyfill, then a plain number is used for performance.
10939
10940var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
10941
10942module.exports = REACT_ELEMENT_TYPE;
10943
10944/***/ }),
10945/* 191 */
10946/***/ (function(module, exports, __webpack_require__) {
10947
10948"use strict";
10949/**
10950 * Copyright (c) 2013-present, Facebook, Inc.
10951 *
10952 * This source code is licensed under the MIT license found in the
10953 * LICENSE file in the root directory of this source tree.
10954 *
10955 * 
10956 */
10957
10958
10959
10960/* global Symbol */
10961
10962var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
10963var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
10964
10965/**
10966 * Returns the iterator method function contained on the iterable object.
10967 *
10968 * Be sure to invoke the function with the iterable as context:
10969 *
10970 *     var iteratorFn = getIteratorFn(myIterable);
10971 *     if (iteratorFn) {
10972 *       var iterator = iteratorFn.call(myIterable);
10973 *       ...
10974 *     }
10975 *
10976 * @param {?object} maybeIterable
10977 * @return {?function}
10978 */
10979function getIteratorFn(maybeIterable) {
10980  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
10981  if (typeof iteratorFn === 'function') {
10982    return iteratorFn;
10983  }
10984}
10985
10986module.exports = getIteratorFn;
10987
10988/***/ }),
10989/* 192 */
10990/***/ (function(module, exports, __webpack_require__) {
10991
10992"use strict";
10993/* WEBPACK VAR INJECTION */(function(process) {/**
10994 * Copyright (c) 2014-present, Facebook, Inc.
10995 *
10996 * This source code is licensed under the MIT license found in the
10997 * LICENSE file in the root directory of this source tree.
10998 *
10999 */
11000
11001/**
11002 * ReactElementValidator provides a wrapper around a element factory
11003 * which validates the props passed to the element. This is intended to be
11004 * used only in DEV and could be replaced by a static type checker for languages
11005 * that support it.
11006 */
11007
11008
11009
11010var ReactCurrentOwner = __webpack_require__(39);
11011var ReactComponentTreeHook = __webpack_require__(22);
11012var ReactElement = __webpack_require__(59);
11013
11014var checkReactTypeSpec = __webpack_require__(438);
11015
11016var canDefineProperty = __webpack_require__(97);
11017var getIteratorFn = __webpack_require__(191);
11018var warning = __webpack_require__(3);
11019var lowPriorityWarning = __webpack_require__(136);
11020
11021function getDeclarationErrorAddendum() {
11022  if (ReactCurrentOwner.current) {
11023    var name = ReactCurrentOwner.current.getName();
11024    if (name) {
11025      return ' Check the render method of `' + name + '`.';
11026    }
11027  }
11028  return '';
11029}
11030
11031function getSourceInfoErrorAddendum(elementProps) {
11032  if (elementProps !== null && elementProps !== undefined && elementProps.__source !== undefined) {
11033    var source = elementProps.__source;
11034    var fileName = source.fileName.replace(/^.*[\\\/]/, '');
11035    var lineNumber = source.lineNumber;
11036    return ' Check your code at ' + fileName + ':' + lineNumber + '.';
11037  }
11038  return '';
11039}
11040
11041/**
11042 * Warn if there's no key explicitly set on dynamic arrays of children or
11043 * object keys are not valid. This allows us to keep track of children between
11044 * updates.
11045 */
11046var ownerHasKeyUseWarning = {};
11047
11048function getCurrentComponentErrorInfo(parentType) {
11049  var info = getDeclarationErrorAddendum();
11050
11051  if (!info) {
11052    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
11053    if (parentName) {
11054      info = ' Check the top-level render call using <' + parentName + '>.';
11055    }
11056  }
11057  return info;
11058}
11059
11060/**
11061 * Warn if the element doesn't have an explicit key assigned to it.
11062 * This element is in an array. The array could grow and shrink or be
11063 * reordered. All children that haven't already been validated are required to
11064 * have a "key" property assigned to it. Error statuses are cached so a warning
11065 * will only be shown once.
11066 *
11067 * @internal
11068 * @param {ReactElement} element Element that requires a key.
11069 * @param {*} parentType element's parent's type.
11070 */
11071function validateExplicitKey(element, parentType) {
11072  if (!element._store || element._store.validated || element.key != null) {
11073    return;
11074  }
11075  element._store.validated = true;
11076
11077  var memoizer = ownerHasKeyUseWarning.uniqueKey || (ownerHasKeyUseWarning.uniqueKey = {});
11078
11079  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
11080  if (memoizer[currentComponentErrorInfo]) {
11081    return;
11082  }
11083  memoizer[currentComponentErrorInfo] = true;
11084
11085  // Usually the current owner is the offender, but if it accepts children as a
11086  // property, it may be the creator of the child that's responsible for
11087  // assigning it a key.
11088  var childOwner = '';
11089  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
11090    // Give the component that originally created this child.
11091    childOwner = ' It was passed a child from ' + element._owner.getName() + '.';
11092  }
11093
11094  process.env.NODE_ENV !== 'production' ? warning(false, 'Each child in an array or iterator should have a unique "key" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.%s', currentComponentErrorInfo, childOwner, ReactComponentTreeHook.getCurrentStackAddendum(element)) : void 0;
11095}
11096
11097/**
11098 * Ensure that every element either is passed in a static location, in an
11099 * array with an explicit keys property defined, or in an object literal
11100 * with valid key property.
11101 *
11102 * @internal
11103 * @param {ReactNode} node Statically passed child of any type.
11104 * @param {*} parentType node's parent's type.
11105 */
11106function validateChildKeys(node, parentType) {
11107  if (typeof node !== 'object') {
11108    return;
11109  }
11110  if (Array.isArray(node)) {
11111    for (var i = 0; i < node.length; i++) {
11112      var child = node[i];
11113      if (ReactElement.isValidElement(child)) {
11114        validateExplicitKey(child, parentType);
11115      }
11116    }
11117  } else if (ReactElement.isValidElement(node)) {
11118    // This element was passed in a valid location.
11119    if (node._store) {
11120      node._store.validated = true;
11121    }
11122  } else if (node) {
11123    var iteratorFn = getIteratorFn(node);
11124    // Entry iterators provide implicit keys.
11125    if (iteratorFn) {
11126      if (iteratorFn !== node.entries) {
11127        var iterator = iteratorFn.call(node);
11128        var step;
11129        while (!(step = iterator.next()).done) {
11130          if (ReactElement.isValidElement(step.value)) {
11131            validateExplicitKey(step.value, parentType);
11132          }
11133        }
11134      }
11135    }
11136  }
11137}
11138
11139/**
11140 * Given an element, validate that its props follow the propTypes definition,
11141 * provided by the type.
11142 *
11143 * @param {ReactElement} element
11144 */
11145function validatePropTypes(element) {
11146  var componentClass = element.type;
11147  if (typeof componentClass !== 'function') {
11148    return;
11149  }
11150  var name = componentClass.displayName || componentClass.name;
11151  if (componentClass.propTypes) {
11152    checkReactTypeSpec(componentClass.propTypes, element.props, 'prop', name, element, null);
11153  }
11154  if (typeof componentClass.getDefaultProps === 'function') {
11155    process.env.NODE_ENV !== 'production' ? warning(componentClass.getDefaultProps.isReactClassApproved, 'getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.') : void 0;
11156  }
11157}
11158
11159var ReactElementValidator = {
11160  createElement: function (type, props, children) {
11161    var validType = typeof type === 'string' || typeof type === 'function';
11162    // We warn in this case but don't throw. We expect the element creation to
11163    // succeed and there will likely be errors in render.
11164    if (!validType) {
11165      if (typeof type !== 'function' && typeof type !== 'string') {
11166        var info = '';
11167        if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
11168          info += ' You likely forgot to export your component from the file ' + "it's defined in.";
11169        }
11170
11171        var sourceInfo = getSourceInfoErrorAddendum(props);
11172        if (sourceInfo) {
11173          info += sourceInfo;
11174        } else {
11175          info += getDeclarationErrorAddendum();
11176        }
11177
11178        info += ReactComponentTreeHook.getCurrentStackAddendum();
11179
11180        var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;
11181        ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);
11182        process.env.NODE_ENV !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;
11183        ReactComponentTreeHook.popNonStandardWarningStack();
11184      }
11185    }
11186
11187    var element = ReactElement.createElement.apply(this, arguments);
11188
11189    // The result can be nullish if a mock or a custom function is used.
11190    // TODO: Drop this when these are no longer allowed as the type argument.
11191    if (element == null) {
11192      return element;
11193    }
11194
11195    // Skip key warning if the type isn't valid since our key validation logic
11196    // doesn't expect a non-string/function type and can throw confusing errors.
11197    // We don't want exception behavior to differ between dev and prod.
11198    // (Rendering will throw with a helpful message and as soon as the type is
11199    // fixed, the key warnings will appear.)
11200    if (validType) {
11201      for (var i = 2; i < arguments.length; i++) {
11202        validateChildKeys(arguments[i], type);
11203      }
11204    }
11205
11206    validatePropTypes(element);
11207
11208    return element;
11209  },
11210
11211  createFactory: function (type) {
11212    var validatedFactory = ReactElementValidator.createElement.bind(null, type);
11213    // Legacy hook TODO: Warn if this is accessed
11214    validatedFactory.type = type;
11215
11216    if (process.env.NODE_ENV !== 'production') {
11217      if (canDefineProperty) {
11218        Object.defineProperty(validatedFactory, 'type', {
11219          enumerable: false,
11220          get: function () {
11221            lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
11222            Object.defineProperty(this, 'type', {
11223              value: type
11224            });
11225            return type;
11226          }
11227        });
11228      }
11229    }
11230
11231    return validatedFactory;
11232  },
11233
11234  cloneElement: function (element, props, children) {
11235    var newElement = ReactElement.cloneElement.apply(this, arguments);
11236    for (var i = 2; i < arguments.length; i++) {
11237      validateChildKeys(arguments[i], newElement.type);
11238    }
11239    validatePropTypes(newElement);
11240    return newElement;
11241  }
11242};
11243
11244module.exports = ReactElementValidator;
11245/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
11246
11247/***/ }),
11248/* 193 */
11249/***/ (function(module, exports, __webpack_require__) {
11250
11251"use strict";
11252/**
11253 * Copyright (c) 2013-present, Facebook, Inc.
11254 *
11255 * This source code is licensed under the MIT license found in the
11256 * LICENSE file in the root directory of this source tree.
11257 */
11258
11259
11260
11261// React 15.5 references this module, and assumes PropTypes are still callable in production.
11262// Therefore we re-export development-only version with all the PropTypes checks here.
11263// However if one is migrating to the `prop-types` npm library, they will go through the
11264// `index.js` entry point, and it will branch depending on the environment.
11265var factory = __webpack_require__(442);
11266module.exports = function(isValidElement) {
11267  // It is still allowed in 15.5.
11268  var throwOnDirectAccess = false;
11269  return factory(isValidElement, throwOnDirectAccess);
11270};
11271
11272
11273/***/ }),
11274/* 194 */
11275/***/ (function(module, exports, __webpack_require__) {
11276
11277"use strict";
11278/**
11279 * Copyright (c) 2013-present, Facebook, Inc.
11280 *
11281 * This source code is licensed under the MIT license found in the
11282 * LICENSE file in the root directory of this source tree.
11283 */
11284
11285
11286
11287var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
11288
11289module.exports = ReactPropTypesSecret;
11290
11291
11292/***/ }),
11293/* 195 */
11294/***/ (function(module, exports, __webpack_require__) {
11295
11296"use strict";
11297/**
11298 * Copyright (c) 2015-present, Facebook, Inc.
11299 *
11300 * This source code is licensed under the MIT license found in the
11301 * LICENSE file in the root directory of this source tree.
11302 *
11303 */
11304
11305
11306
11307var ReactDOMComponentFlags = {
11308  hasCachedChildNodes: 1 << 0
11309};
11310
11311module.exports = ReactDOMComponentFlags;
11312
11313/***/ }),
11314/* 196 */
11315/***/ (function(module, exports, __webpack_require__) {
11316
11317"use strict";
11318/* WEBPACK VAR INJECTION */(function(process) {/**
11319 * Copyright (c) 2014-present, Facebook, Inc.
11320 *
11321 * This source code is licensed under the MIT license found in the
11322 * LICENSE file in the root directory of this source tree.
11323 *
11324 * 
11325 */
11326
11327
11328
11329var _prodInvariant = __webpack_require__(8);
11330
11331var invariant = __webpack_require__(2);
11332
11333/**
11334 * Accumulates items that must not be null or undefined into the first one. This
11335 * is used to conserve memory by avoiding array allocations, and thus sacrifices
11336 * API cleanness. Since `current` can be null before being passed in and not
11337 * null after this function, make sure to assign it back to `current`:
11338 *
11339 * `a = accumulateInto(a, b);`
11340 *
11341 * This API should be sparingly used. Try `accumulate` for something cleaner.
11342 *
11343 * @return {*|array<*>} An accumulation of items.
11344 */
11345
11346function accumulateInto(current, next) {
11347  !(next != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : _prodInvariant('30') : void 0;
11348
11349  if (current == null) {
11350    return next;
11351  }
11352
11353  // Both are not empty. Warning: Never call x.concat(y) when you are not
11354  // certain that x is an Array (x could be a string with concat method).
11355  if (Array.isArray(current)) {
11356    if (Array.isArray(next)) {
11357      current.push.apply(current, next);
11358      return current;
11359    }
11360    current.push(next);
11361    return current;
11362  }
11363
11364  if (Array.isArray(next)) {
11365    // A bit too dangerous to mutate `next`.
11366    return [current].concat(next);
11367  }
11368
11369  return [current, next];
11370}
11371
11372module.exports = accumulateInto;
11373/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
11374
11375/***/ }),
11376/* 197 */
11377/***/ (function(module, exports, __webpack_require__) {
11378
11379"use strict";
11380/**
11381 * Copyright (c) 2013-present, Facebook, Inc.
11382 *
11383 * This source code is licensed under the MIT license found in the
11384 * LICENSE file in the root directory of this source tree.
11385 *
11386 * 
11387 */
11388
11389
11390
11391/**
11392 * @param {array} arr an "accumulation" of items which is either an Array or
11393 * a single item. Useful when paired with the `accumulate` module. This is a
11394 * simple utility that allows us to reason about a collection of items, but
11395 * handling the case when there is exactly one item (and we do not need to
11396 * allocate an array).
11397 */
11398
11399function forEachAccumulated(arr, cb, scope) {
11400  if (Array.isArray(arr)) {
11401    arr.forEach(cb, scope);
11402  } else if (arr) {
11403    cb.call(scope, arr);
11404  }
11405}
11406
11407module.exports = forEachAccumulated;
11408
11409/***/ }),
11410/* 198 */
11411/***/ (function(module, exports, __webpack_require__) {
11412
11413"use strict";
11414/**
11415 * Copyright (c) 2013-present, Facebook, Inc.
11416 *
11417 * This source code is licensed under the MIT license found in the
11418 * LICENSE file in the root directory of this source tree.
11419 *
11420 */
11421
11422
11423
11424var ExecutionEnvironment = __webpack_require__(16);
11425
11426var contentKey = null;
11427
11428/**
11429 * Gets the key used to access text content on a DOM node.
11430 *
11431 * @return {?string} Key used to access text content.
11432 * @internal
11433 */
11434function getTextContentAccessor() {
11435  if (!contentKey && ExecutionEnvironment.canUseDOM) {
11436    // Prefer textContent to innerText because many browsers support both but
11437    // SVG <text> elements don't support innerText even when <div> does.
11438    contentKey = 'textContent' in document.documentElement ? 'textContent' : 'innerText';
11439  }
11440  return contentKey;
11441}
11442
11443module.exports = getTextContentAccessor;
11444
11445/***/ }),
11446/* 199 */
11447/***/ (function(module, exports, __webpack_require__) {
11448
11449"use strict";
11450/* WEBPACK VAR INJECTION */(function(process) {/**
11451 * Copyright (c) 2013-present, Facebook, Inc.
11452 *
11453 * This source code is licensed under the MIT license found in the
11454 * LICENSE file in the root directory of this source tree.
11455 *
11456 * 
11457 */
11458
11459
11460
11461var _prodInvariant = __webpack_require__(8);
11462
11463function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11464
11465var PooledClass = __webpack_require__(60);
11466
11467var invariant = __webpack_require__(2);
11468
11469/**
11470 * A specialized pseudo-event module to help keep track of components waiting to
11471 * be notified when their DOM representations are available for use.
11472 *
11473 * This implements `PooledClass`, so you should never need to instantiate this.
11474 * Instead, use `CallbackQueue.getPooled()`.
11475 *
11476 * @class ReactMountReady
11477 * @implements PooledClass
11478 * @internal
11479 */
11480
11481var CallbackQueue = function () {
11482  function CallbackQueue(arg) {
11483    _classCallCheck(this, CallbackQueue);
11484
11485    this._callbacks = null;
11486    this._contexts = null;
11487    this._arg = arg;
11488  }
11489
11490  /**
11491   * Enqueues a callback to be invoked when `notifyAll` is invoked.
11492   *
11493   * @param {function} callback Invoked when `notifyAll` is invoked.
11494   * @param {?object} context Context to call `callback` with.
11495   * @internal
11496   */
11497
11498
11499  CallbackQueue.prototype.enqueue = function enqueue(callback, context) {
11500    this._callbacks = this._callbacks || [];
11501    this._callbacks.push(callback);
11502    this._contexts = this._contexts || [];
11503    this._contexts.push(context);
11504  };
11505
11506  /**
11507   * Invokes all enqueued callbacks and clears the queue. This is invoked after
11508   * the DOM representation of a component has been created or updated.
11509   *
11510   * @internal
11511   */
11512
11513
11514  CallbackQueue.prototype.notifyAll = function notifyAll() {
11515    var callbacks = this._callbacks;
11516    var contexts = this._contexts;
11517    var arg = this._arg;
11518    if (callbacks && contexts) {
11519      !(callbacks.length === contexts.length) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Mismatched list of contexts in callback queue') : _prodInvariant('24') : void 0;
11520      this._callbacks = null;
11521      this._contexts = null;
11522      for (var i = 0; i < callbacks.length; i++) {
11523        callbacks[i].call(contexts[i], arg);
11524      }
11525      callbacks.length = 0;
11526      contexts.length = 0;
11527    }
11528  };
11529
11530  CallbackQueue.prototype.checkpoint = function checkpoint() {
11531    return this._callbacks ? this._callbacks.length : 0;
11532  };
11533
11534  CallbackQueue.prototype.rollback = function rollback(len) {
11535    if (this._callbacks && this._contexts) {
11536      this._callbacks.length = len;
11537      this._contexts.length = len;
11538    }
11539  };
11540
11541  /**
11542   * Resets the internal queue.
11543   *
11544   * @internal
11545   */
11546
11547
11548  CallbackQueue.prototype.reset = function reset() {
11549    this._callbacks = null;
11550    this._contexts = null;
11551  };
11552
11553  /**
11554   * `PooledClass` looks for this.
11555   */
11556
11557
11558  CallbackQueue.prototype.destructor = function destructor() {
11559    this.reset();
11560  };
11561
11562  return CallbackQueue;
11563}();
11564
11565module.exports = PooledClass.addPoolingTo(CallbackQueue);
11566/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
11567
11568/***/ }),
11569/* 200 */
11570/***/ (function(module, exports, __webpack_require__) {
11571
11572"use strict";
11573/**
11574 * Copyright (c) 2013-present, Facebook, Inc.
11575 *
11576 * This source code is licensed under the MIT license found in the
11577 * LICENSE file in the root directory of this source tree.
11578 *
11579 * 
11580 */
11581
11582
11583
11584var ReactFeatureFlags = {
11585  // When true, call console.time() before and .timeEnd() after each top-level
11586  // render (both initial renders and updates). Useful when looking at prod-mode
11587  // timeline profiles in Chrome, for example.
11588  logTopLevelRenders: false
11589};
11590
11591module.exports = ReactFeatureFlags;
11592
11593/***/ }),
11594/* 201 */
11595/***/ (function(module, exports, __webpack_require__) {
11596
11597"use strict";
11598/**
11599 * Copyright (c) 2013-present, Facebook, Inc.
11600 *
11601 * This source code is licensed under the MIT license found in the
11602 * LICENSE file in the root directory of this source tree.
11603 *
11604 */
11605
11606
11607
11608var ReactDOMComponentTree = __webpack_require__(14);
11609
11610function isCheckable(elem) {
11611  var type = elem.type;
11612  var nodeName = elem.nodeName;
11613  return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
11614}
11615
11616function getTracker(inst) {
11617  return inst._wrapperState.valueTracker;
11618}
11619
11620function attachTracker(inst, tracker) {
11621  inst._wrapperState.valueTracker = tracker;
11622}
11623
11624function detachTracker(inst) {
11625  inst._wrapperState.valueTracker = null;
11626}
11627
11628function getValueFromNode(node) {
11629  var value;
11630  if (node) {
11631    value = isCheckable(node) ? '' + node.checked : node.value;
11632  }
11633  return value;
11634}
11635
11636var inputValueTracking = {
11637  // exposed for testing
11638  _getTrackerFromNode: function (node) {
11639    return getTracker(ReactDOMComponentTree.getInstanceFromNode(node));
11640  },
11641
11642
11643  track: function (inst) {
11644    if (getTracker(inst)) {
11645      return;
11646    }
11647
11648    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
11649    var valueField = isCheckable(node) ? 'checked' : 'value';
11650    var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
11651
11652    var currentValue = '' + node[valueField];
11653
11654    // if someone has already defined a value or Safari, then bail
11655    // and don't track value will cause over reporting of changes,
11656    // but it's better then a hard failure
11657    // (needed for certain tests that spyOn input values and Safari)
11658    if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
11659      return;
11660    }
11661
11662    Object.defineProperty(node, valueField, {
11663      enumerable: descriptor.enumerable,
11664      configurable: true,
11665      get: function () {
11666        return descriptor.get.call(this);
11667      },
11668      set: function (value) {
11669        currentValue = '' + value;
11670        descriptor.set.call(this, value);
11671      }
11672    });
11673
11674    attachTracker(inst, {
11675      getValue: function () {
11676        return currentValue;
11677      },
11678      setValue: function (value) {
11679        currentValue = '' + value;
11680      },
11681      stopTracking: function () {
11682        detachTracker(inst);
11683        delete node[valueField];
11684      }
11685    });
11686  },
11687
11688  updateValueIfChanged: function (inst) {
11689    if (!inst) {
11690      return false;
11691    }
11692    var tracker = getTracker(inst);
11693
11694    if (!tracker) {
11695      inputValueTracking.track(inst);
11696      return true;
11697    }
11698
11699    var lastValue = tracker.getValue();
11700    var nextValue = getValueFromNode(ReactDOMComponentTree.getNodeFromInstance(inst));
11701
11702    if (nextValue !== lastValue) {
11703      tracker.setValue(nextValue);
11704      return true;
11705    }
11706
11707    return false;
11708  },
11709  stopTracking: function (inst) {
11710    var tracker = getTracker(inst);
11711    if (tracker) {
11712      tracker.stopTracking();
11713    }
11714  }
11715};
11716
11717module.exports = inputValueTracking;
11718
11719/***/ }),
11720/* 202 */
11721/***/ (function(module, exports, __webpack_require__) {
11722
11723"use strict";
11724/**
11725 * Copyright (c) 2013-present, Facebook, Inc.
11726 *
11727 * This source code is licensed under the MIT license found in the
11728 * LICENSE file in the root directory of this source tree.
11729 *
11730 * 
11731 */
11732
11733
11734
11735/**
11736 * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
11737 */
11738
11739var supportedInputTypes = {
11740  color: true,
11741  date: true,
11742  datetime: true,
11743  'datetime-local': true,
11744  email: true,
11745  month: true,
11746  number: true,
11747  password: true,
11748  range: true,
11749  search: true,
11750  tel: true,
11751  text: true,
11752  time: true,
11753  url: true,
11754  week: true
11755};
11756
11757function isTextInputElement(elem) {
11758  var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
11759
11760  if (nodeName === 'input') {
11761    return !!supportedInputTypes[elem.type];
11762  }
11763
11764  if (nodeName === 'textarea') {
11765    return true;
11766  }
11767
11768  return false;
11769}
11770
11771module.exports = isTextInputElement;
11772
11773/***/ }),
11774/* 203 */
11775/***/ (function(module, exports, __webpack_require__) {
11776
11777"use strict";
11778/**
11779 * Copyright (c) 2013-present, Facebook, Inc.
11780 *
11781 * This source code is licensed under the MIT license found in the
11782 * LICENSE file in the root directory of this source tree.
11783 *
11784 */
11785
11786
11787
11788var ViewportMetrics = {
11789  currentScrollLeft: 0,
11790
11791  currentScrollTop: 0,
11792
11793  refreshScrollValues: function (scrollPosition) {
11794    ViewportMetrics.currentScrollLeft = scrollPosition.x;
11795    ViewportMetrics.currentScrollTop = scrollPosition.y;
11796  }
11797};
11798
11799module.exports = ViewportMetrics;
11800
11801/***/ }),
11802/* 204 */
11803/***/ (function(module, exports, __webpack_require__) {
11804
11805"use strict";
11806/**
11807 * Copyright (c) 2013-present, Facebook, Inc.
11808 *
11809 * This source code is licensed under the MIT license found in the
11810 * LICENSE file in the root directory of this source tree.
11811 *
11812 */
11813
11814
11815
11816var ExecutionEnvironment = __webpack_require__(16);
11817var escapeTextContentForBrowser = __webpack_require__(103);
11818var setInnerHTML = __webpack_require__(102);
11819
11820/**
11821 * Set the textContent property of a node, ensuring that whitespace is preserved
11822 * even in IE8. innerText is a poor substitute for textContent and, among many
11823 * issues, inserts <br> instead of the literal newline chars. innerHTML behaves
11824 * as it should.
11825 *
11826 * @param {DOMElement} node
11827 * @param {string} text
11828 * @internal
11829 */
11830var setTextContent = function (node, text) {
11831  if (text) {
11832    var firstChild = node.firstChild;
11833
11834    if (firstChild && firstChild === node.lastChild && firstChild.nodeType === 3) {
11835      firstChild.nodeValue = text;
11836      return;
11837    }
11838  }
11839  node.textContent = text;
11840};
11841
11842if (ExecutionEnvironment.canUseDOM) {
11843  if (!('textContent' in document.documentElement)) {
11844    setTextContent = function (node, text) {
11845      if (node.nodeType === 3) {
11846        node.nodeValue = text;
11847        return;
11848      }
11849      setInnerHTML(node, escapeTextContentForBrowser(text));
11850    };
11851  }
11852}
11853
11854module.exports = setTextContent;
11855
11856/***/ }),
11857/* 205 */
11858/***/ (function(module, exports, __webpack_require__) {
11859
11860"use strict";
11861/**
11862 * Copyright (c) 2013-present, Facebook, Inc.
11863 *
11864 * This source code is licensed under the MIT license found in the
11865 * LICENSE file in the root directory of this source tree.
11866 *
11867 */
11868
11869
11870
11871/**
11872 * @param {DOMElement} node input/textarea to focus
11873 */
11874
11875function focusNode(node) {
11876  // IE8 can throw "Can't move focus to the control because it is invisible,
11877  // not enabled, or of a type that does not accept the focus." for all kinds of
11878  // reasons that are too expensive and fragile to test.
11879  try {
11880    node.focus();
11881  } catch (e) {}
11882}
11883
11884module.exports = focusNode;
11885
11886/***/ }),
11887/* 206 */
11888/***/ (function(module, exports, __webpack_require__) {
11889
11890"use strict";
11891/**
11892 * Copyright (c) 2013-present, Facebook, Inc.
11893 *
11894 * This source code is licensed under the MIT license found in the
11895 * LICENSE file in the root directory of this source tree.
11896 *
11897 */
11898
11899
11900
11901/**
11902 * CSS properties which accept numbers but are not in units of "px".
11903 */
11904
11905var isUnitlessNumber = {
11906  animationIterationCount: true,
11907  borderImageOutset: true,
11908  borderImageSlice: true,
11909  borderImageWidth: true,
11910  boxFlex: true,
11911  boxFlexGroup: true,
11912  boxOrdinalGroup: true,
11913  columnCount: true,
11914  columns: true,
11915  flex: true,
11916  flexGrow: true,
11917  flexPositive: true,
11918  flexShrink: true,
11919  flexNegative: true,
11920  flexOrder: true,
11921  gridRow: true,
11922  gridRowEnd: true,
11923  gridRowSpan: true,
11924  gridRowStart: true,
11925  gridColumn: true,
11926  gridColumnEnd: true,
11927  gridColumnSpan: true,
11928  gridColumnStart: true,
11929  fontWeight: true,
11930  lineClamp: true,
11931  lineHeight: true,
11932  opacity: true,
11933  order: true,
11934  orphans: true,
11935  tabSize: true,
11936  widows: true,
11937  zIndex: true,
11938  zoom: true,
11939
11940  // SVG-related properties
11941  fillOpacity: true,
11942  floodOpacity: true,
11943  stopOpacity: true,
11944  strokeDasharray: true,
11945  strokeDashoffset: true,
11946  strokeMiterlimit: true,
11947  strokeOpacity: true,
11948  strokeWidth: true
11949};
11950
11951/**
11952 * @param {string}
11952 prefix vendor-specific prefix, eg: Webkit
11953 * @param {string} key style name, eg: transitionDuration
11954 * @return {string} style name prefixed with `prefix`, properly camelCased, eg:
11955 * WebkitTransitionDuration
11956 */
11957function prefixKey(prefix, key) {
11958  return prefix + key.charAt(0).toUpperCase() + key.substring(1);
11959}
11960
11961/**
11962 * Support style names that may come passed in prefixed by adding permutations
11963 * of vendor prefixes.
11964 */
11965var prefixes = ['Webkit', 'ms', 'Moz', 'O'];
11966
11967// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
11968// infinite loop, because it iterates over the newly added props too.
11969Object.keys(isUnitlessNumber).forEach(function (prop) {
11970  prefixes.forEach(function (prefix) {
11971    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
11972  });
11973});
11974
11975/**
11976 * Most style properties can be unset by doing .style[prop] = '' but IE8
11977 * doesn't like doing that with shorthand properties so for the properties that
11978 * IE8 breaks on, which are listed here, we instead unset each of the
11979 * individual properties. See http://bugs.jquery.com/ticket/12385.
11980 * The 4-value 'clock' properties like margin, padding, border-width seem to
11981 * behave without any problems. Curiously, list-style works too without any
11982 * special prodding.
11983 */
11984var shorthandPropertyExpansions = {
11985  background: {
11986    backgroundAttachment: true,
11987    backgroundColor: true,
11988    backgroundImage: true,
11989    backgroundPositionX: true,
11990    backgroundPositionY: true,
11991    backgroundRepeat: true
11992  },
11993  backgroundPosition: {
11994    backgroundPositionX: true,
11995    backgroundPositionY: true
11996  },
11997  border: {
11998    borderWidth: true,
11999    borderStyle: true,
12000    borderColor: true
12001  },
12002  borderBottom: {
12003    borderBottomWidth: true,
12004    borderBottomStyle: true,
12005    borderBottomColor: true
12006  },
12007  borderLeft: {
12008    borderLeftWidth: true,
12009    borderLeftStyle: true,
12010    borderLeftColor: true
12011  },
12012  borderRight: {
12013    borderRightWidth: true,
12014    borderRightStyle: true,
12015    borderRightColor: true
12016  },
12017  borderTop: {
12018    borderTopWidth: true,
12019    borderTopStyle: true,
12020    borderTopColor: true
12021  },
12022  font: {
12023    fontStyle: true,
12024    fontVariant: true,
12025    fontWeight: true,
12026    fontSize: true,
12027    lineHeight: true,
12028    fontFamily: true
12029  },
12030  outline: {
12031    outlineWidth: true,
12032    outlineStyle: true,
12033    outlineColor: true
12034  }
12035};
12036
12037var CSSProperty = {
12038  isUnitlessNumber: isUnitlessNumber,
12039  shorthandPropertyExpansions: shorthandPropertyExpansions
12040};
12041
12042module.exports = CSSProperty;
12043
12044/***/ }),
12045/* 207 */
12046/***/ (function(module, exports, __webpack_require__) {
12047
12048"use strict";
12049/* WEBPACK VAR INJECTION */(function(process) {/**
12050 * Copyright (c) 2013-present, Facebook, Inc.
12051 *
12052 * This source code is licensed under the MIT license found in the
12053 * LICENSE file in the root directory of this source tree.
12054 *
12055 */
12056
12057
12058
12059var DOMProperty = __webpack_require__(47);
12060var ReactDOMComponentTree = __webpack_require__(14);
12061var ReactInstrumentation = __webpack_require__(28);
12062
12063var quoteAttributeValueForBrowser = __webpack_require__(482);
12064var warning = __webpack_require__(3);
12065
12066var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
12067var illegalAttributeNameCache = {};
12068var validatedAttributeNameCache = {};
12069
12070function isAttributeNameSafe(attributeName) {
12071  if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {
12072    return true;
12073  }
12074  if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {
12075    return false;
12076  }
12077  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
12078    validatedAttributeNameCache[attributeName] = true;
12079    return true;
12080  }
12081  illegalAttributeNameCache[attributeName] = true;
12082  process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid attribute name: `%s`', attributeName) : void 0;
12083  return false;
12084}
12085
12086function shouldIgnoreValue(propertyInfo, value) {
12087  return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;
12088}
12089
12090/**
12091 * Operations for dealing with DOM properties.
12092 */
12093var DOMPropertyOperations = {
12094  /**
12095   * Creates markup for the ID property.
12096   *
12097   * @param {string} id Unescaped ID.
12098   * @return {string} Markup string.
12099   */
12100  createMarkupForID: function (id) {
12101    return DOMProperty.ID_ATTRIBUTE_NAME + '=' + quoteAttributeValueForBrowser(id);
12102  },
12103
12104  setAttributeForID: function (node, id) {
12105    node.setAttribute(DOMProperty.ID_ATTRIBUTE_NAME, id);
12106  },
12107
12108  createMarkupForRoot: function () {
12109    return DOMProperty.ROOT_ATTRIBUTE_NAME + '=""';
12110  },
12111
12112  setAttributeForRoot: function (node) {
12113    node.setAttribute(DOMProperty.ROOT_ATTRIBUTE_NAME, '');
12114  },
12115
12116  /**
12117   * Creates markup for a property.
12118   *
12119   * @param {string} name
12120   * @param {*} value
12121   * @return {?string}
12121 Markup string, or null if the property was invalid.
12122   */
12123  createMarkupForProperty: function (name, value) {
12124    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
12125    if (propertyInfo) {
12126      if (shouldIgnoreValue(propertyInfo, value)) {
12127        return '';
12128      }
12129      var attributeName = propertyInfo.attributeName;
12130      if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
12131        return attributeName + '=""';
12132      }
12133      return attributeName + '=' + quoteAttributeValueForBrowser(value);
12134    } else if (DOMProperty.isCustomAttribute(name)) {
12135      if (value == null) {
12136        return '';
12137      }
12138      return name + '=' + quoteAttributeValueForBrowser(value);
12139    }
12140    return null;
12141  },
12142
12143  /**
12144   * Creates markup for a custom property.
12145   *
12146   * @param {string} name
12147   * @param {*} value
12148   * @return {string} Markup string, or empty string if the property was invalid.
12149   */
12150  createMarkupForCustomAttribute: function (name, value) {
12151    if (!isAttributeNameSafe(name) || value == null) {
12152      return '';
12153    }
12154    return name + '=' + quoteAttributeValueForBrowser(value);
12155  },
12156
12157  /**
12158   * Sets the value for a property on a node.
12159   *
12160   * @param {DOMElement} node
12161   * @param {string} name
12162   * @param {*} value
12163   */
12164  setValueForProperty: function (node, name, value) {
12165    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
12166    if (propertyInfo) {
12167      var mutationMethod = propertyInfo.mutationMethod;
12168      if (mutationMethod) {
12169        mutationMethod(node, value);
12170      } else if (shouldIgnoreValue(propertyInfo, value)) {
12171        this.deleteValueForProperty(node, name);
12172        return;
12173      } else if (propertyInfo.mustUseProperty) {
12174        // Contrary to `setAttribute`, object properties are properly
12175        // `toString`ed by IE8/9.
12176        node[propertyInfo.propertyName] = value;
12177      } else {
12178        var attributeName = propertyInfo.attributeName;
12179        var namespace = propertyInfo.attributeNamespace;
12180        // `setAttribute` with objects becomes only `[object]` in IE8/9,
12181        // ('' + value) makes it output the correct toString()-value.
12182        if (namespace) {
12183          node.setAttributeNS(namespace, attributeName, '' + value);
12184        } else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
12185          node.setAttribute(attributeName, '');
12186        } else {
12187          node.setAttribute(attributeName, '' + value);
12188        }
12189      }
12190    } else if (DOMProperty.isCustomAttribute(name)) {
12191      DOMPropertyOperations.setValueForAttribute(node, name, value);
12192      return;
12193    }
12194
12195    if (process.env.NODE_ENV !== 'production') {
12196      var payload = {};
12197      payload[name] = value;
12198      ReactInstrumentation.debugTool.onHostOperation({
12199        instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
12200        type: 'update attribute',
12201        payload: payload
12202      });
12203    }
12204  },
12205
12206  setValueForAttribute: function (node, name, value) {
12207    if (!isAttributeNameSafe(name)) {
12208      return;
12209    }
12210    if (value == null) {
12211      node.removeAttribute(name);
12212    } else {
12213      node.setAttribute(name, '' + value);
12214    }
12215
12216    if (process.env.NODE_ENV !== 'production') {
12217      var payload = {};
12218      payload[name] = value;
12219      ReactInstrumentation.debugTool.onHostOperation({
12220        instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
12221        type: 'update attribute',
12222        payload: payload
12223      });
12224    }
12225  },
12226
12227  /**
12228   * Deletes an attributes from a node.
12229   *
12230   * @param {DOMElement} node
12231   * @param {string} name
12232   */
12233  deleteValueForAttribute: function (node, name) {
12234    node.removeAttribute(name);
12235    if (process.env.NODE_ENV !== 'production') {
12236      ReactInstrumentation.debugTool.onHostOperation({
12237        instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
12238        type: 'remove attribute',
12239        payload: name
12240      });
12241    }
12242  },
12243
12244  /**
12245   * Deletes the value for a property on a node.
12246   *
12247   * @param {DOMElement} node
12248   * @param {string} name
12249   */
12250  deleteValueForProperty: function (node, name) {
12251    var propertyInfo = DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
12252    if (propertyInfo) {
12253      var mutationMethod = propertyInfo.mutationMethod;
12254      if (mutationMethod) {
12255        mutationMethod(node, undefined);
12256      } else if (propertyInfo.mustUseProperty) {
12257        var propName = propertyInfo.propertyName;
12258        if (propertyInfo.hasBooleanValue) {
12259          node[propName] = false;
12260        } else {
12261          node[propName] = '';
12262        }
12263      } else {
12264        node.removeAttribute(propertyInfo.attributeName);
12265      }
12266    } else if (DOMProperty.isCustomAttribute(name)) {
12267      node.removeAttribute(name);
12268    }
12269
12270    if (process.env.NODE_ENV !== 'production') {
12271      ReactInstrumentation.debugTool.onHostOperation({
12272        instanceID: ReactDOMComponentTree.getInstanceFromNode(node)._debugID,
12273        type: 'remove attribute',
12274        payload: name
12275      });
12276    }
12277  }
12278};
12279
12280module.exports = DOMPropertyOperations;
12281/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12282
12283/***/ }),
12284/* 208 */
12285/***/ (function(module, exports, __webpack_require__) {
12286
12287"use strict";
12288/**
12289 * Copyright (c) 2013-present, Facebook, Inc.
12290 *
12291 * This source code is licensed under the MIT license found in the
12292 * LICENSE file in the root directory of this source tree.
12293 *
12294 * 
12295 */
12296
12297
12298
12299var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
12300
12301module.exports = ReactPropTypesSecret;
12302
12303/***/ }),
12304/* 209 */
12305/***/ (function(module, exports, __webpack_require__) {
12306
12307"use strict";
12308/* WEBPACK VAR INJECTION */(function(process) {/**
12309 * Copyright (c) 2013-present, Facebook, Inc.
12310 *
12311 * This source code is licensed under the MIT license found in the
12312 * LICENSE file in the root directory of this source tree.
12313 *
12314 */
12315
12316
12317
12318var _assign = __webpack_require__(10);
12319
12320var LinkedValueUtils = __webpack_require__(145);
12321var ReactDOMComponentTree = __webpack_require__(14);
12322var ReactUpdates = __webpack_require__(40);
12323
12324var warning = __webpack_require__(3);
12325
12326var didWarnValueLink = false;
12327var didWarnValueDefaultValue = false;
12328
12329function updateOptionsIfPendingUpdateAndMounted() {
12330  if (this._rootNodeID && this._wrapperState.pendingUpdate) {
12331    this._wrapperState.pendingUpdate = false;
12332
12333    var props = this._currentElement.props;
12334    var value = LinkedValueUtils.getValue(props);
12335
12336    if (value != null) {
12337      updateOptions(this, Boolean(props.multiple), value);
12338    }
12339  }
12340}
12341
12342function getDeclarationErrorAddendum(owner) {
12343  if (owner) {
12344    var name = owner.getName();
12345    if (name) {
12346      return ' Check the render method of `' + name + '`.';
12347    }
12348  }
12349  return '';
12350}
12351
12352var valuePropNames = ['value', 'defaultValue'];
12353
12354/**
12355 * Validation function for `value` and `defaultValue`.
12356 * @private
12357 */
12358function checkSelectPropTypes(inst, props) {
12359  var owner = inst._currentElement._owner;
12360  LinkedValueUtils.checkPropTypes('select', props, owner);
12361
12362  if (props.valueLink !== undefined && !didWarnValueLink) {
12363    process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `select` is deprecated; set `value` and `onChange` instead.') : void 0;
12364    didWarnValueLink = true;
12365  }
12366
12367  for (var i = 0; i < valuePropNames.length; i++) {
12368    var propName = valuePropNames[i];
12369    if (props[propName] == null) {
12370      continue;
12371    }
12372    var isArray = Array.isArray(props[propName]);
12373    if (props.multiple && !isArray) {
12374      process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
12375    } else if (!props.multiple && isArray) {
12376      process.env.NODE_ENV !== 'production' ? warning(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum(owner)) : void 0;
12377    }
12378  }
12379}
12380
12381/**
12382 * @param {ReactDOMComponent} inst
12383 * @param {boolean} multiple
12384 * @param {*} propValue A stringable (with `multiple`, a list of stringables).
12385 * @private
12386 */
12387function updateOptions(inst, multiple, propValue) {
12388  var selectedValue, i;
12389  var options = ReactDOMComponentTree.getNodeFromInstance(inst).options;
12390
12391  if (multiple) {
12392    selectedValue = {};
12393    for (i = 0; i < propValue.length; i++) {
12394      selectedValue['' + propValue[i]] = true;
12395    }
12396    for (i = 0; i < options.length; i++) {
12397      var selected = selectedValue.hasOwnProperty(options[i].value);
12398      if (options[i].selected !== selected) {
12399        options[i].selected = selected;
12400      }
12401    }
12402  } else {
12403    // Do not set `select.value` as exact behavior isn't consistent across all
12404    // browsers for all cases.
12405    selectedValue = '' + propValue;
12406    for (i = 0; i < options.length; i++) {
12407      if (options[i].value === selectedValue) {
12408        options[i].selected = true;
12409        return;
12410      }
12411    }
12412    if (options.length) {
12413      options[0].selected = true;
12414    }
12415  }
12416}
12417
12418/**
12419 * Implements a <select> host component that allows optionally setting the
12420 * props `value` and `defaultValue`. If `multiple` is false, the prop must be a
12421 * stringable. If `multiple` is true, the prop must be an array of str
12421ingables.
12422 *
12423 * If `value` is not supplied (or null/undefined), user actions that change the
12424 * selected option will trigger updates to the rendered options.
12425 *
12426 * If it is supplied (and not null/undefined), the rendered options will not
12427 * update in response to user actions. Instead, the `value` prop must change in
12428 * order for the rendered options to update.
12429 *
12430 * If `defaultValue` is provided, any options with the supplied values will be
12431 * selected.
12432 */
12433var ReactDOMSelect = {
12434  getHostProps: function (inst, props) {
12435    return _assign({}, props, {
12436      onChange: inst._wrapperState.onChange,
12437      value: undefined
12438    });
12439  },
12440
12441  mountWrapper: function (inst, props) {
12442    if (process.env.NODE_ENV !== 'production') {
12443      checkSelectPropTypes(inst, props);
12444    }
12445
12446    var value = LinkedValueUtils.getValue(props);
12447    inst._wrapperState = {
12448      pendingUpdate: false,
12449      initialValue: value != null ? value : props.defaultValue,
12450      listeners: null,
12451      onChange: _handleChange.bind(inst),
12452      wasMultiple: Boolean(props.multiple)
12453    };
12454
12455    if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {
12456      process.env.NODE_ENV !== 'production' ? warning(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;
12457      didWarnValueDefaultValue = true;
12458    }
12459  },
12460
12461  getSelectValueContext: function (inst) {
12462    // ReactDOMOption looks at this initial value so the initial generated
12463    // markup has correct `selected` attributes
12464    return inst._wrapperState.initialValue;
12465  },
12466
12467  postUpdateWrapper: function (inst) {
12468    var props = inst._currentElement.props;
12469
12470    // After the initial mount, we control selected-ness manually so don't pass
12471    // this value down
12472    inst._wrapperState.initialValue = undefined;
12473
12474    var wasMultiple = inst._wrapperState.wasMultiple;
12475    inst._wrapperState.wasMultiple = Boolean(props.multiple);
12476
12477    var value = LinkedValueUtils.getValue(props);
12478    if (value != null) {
12479      inst._wrapperState.pendingUpdate = false;
12480      updateOptions(inst, Boolean(props.multiple), value);
12481    } else if (wasMultiple !== Boolean(props.multiple)) {
12482      // For simplicity, reapply `defaultValue` if `multiple` is toggled.
12483      if (props.defaultValue != null) {
12484        updateOptions(inst, Boolean(props.multiple), props.defaultValue);
12485      } else {
12486        // Revert the select back to its default unselected state.
12487        updateOptions(inst, Boolean(props.multiple), props.multiple ? [] : '');
12488      }
12489    }
12490  }
12491};
12492
12493function _handleChange(event) {
12494  var props = this._currentElement.props;
12495  var returnValue = LinkedValueUtils.executeOnChange(props, event);
12496
12497  if (this._rootNodeID) {
12498    this._wrapperState.pendingUpdate = true;
12499  }
12500  ReactUpdates.asap(updateOptionsIfPendingUpdateAndMounted, this);
12501  return returnValue;
12502}
12503
12504module.exports = ReactDOMSelect;
12505/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12506
12507/***/ }),
12508/* 210 */
12509/***/ (function(module, exports, __webpack_require__) {
12510
12511"use strict";
12512/* WEBPACK VAR INJECTION */(function(process) {/**
12513 * Copyright (c) 2013-present, Facebook, Inc.
12514 *
12515 * This source code is licensed under the MIT license found in the
12516 * LICENSE file in the root directory of this source tree.
12517 *
12518 */
12519
12520
12521
12522var _prodInvariant = __webpack_require__(8),
12523    _assign = __webpack_require__(10);
12524
12525var ReactCompositeComponent = __webpack_require__(490);
12526var ReactEmptyComponent = __webpack_require__(212);
12527var ReactHostComponent = __webpack_require__(213);
12528
12529var getNextDebugID = __webpack_require__(493);
12530var invariant = __webpack_require__(2);
12531var warning = __webpack_require__(3);
12532
12533// To avoid a cyclic dependency, we create the final class in this module
12534var ReactCompositeComponentWrapper = function (element) {
12535  this.construct(element);
12536};
12537
12538function getDeclarationErrorAddendum(owner) {
12539  if (owner) {
12540    var name = owner.getName();
12541    if (name) {
12542      return ' Check the render method of `' + name + '`.';
12543    }
12544  }
12545  return '';
12546}
12547
12548/**
12549 * Check if the type reference is a known internal type. I.e. not a user
12550 * provided composite type.
12551 *
12552 * @param {function} type
12553 * @return {boolean} Returns true if this is a valid internal type.
12554 */
12555function isInternalComponentType(type) {
12556  return typeof type === 'function' && typeof type.prototype !== 'undefined' && typeof type.prototype.mountComponent === 'function' && typeof type.prototype.receiveComponent === 'function';
12557}
12558
12559/**
12560 * Given a ReactNode, create an instance that will actually be mounted.
12561 *
12562 * @param {ReactNode} node
12563 * @param {boolean} shouldHaveDebugID
12564 * @return {object} A new instance of the element's constructor.
12565 * @protected
12566 */
12567function instantiateReactComponent(node, shouldHaveDebugID) {
12568  var instance;
12569
12570  if (node === null || node === false) {
12571    instance = ReactEmptyComponent.create(instantiateReactComponent);
12572  } else if (typeof node === 'object') {
12573    var element = node;
12574    var type = element.type;
12575    if (typeof type !== 'function' && typeof type !== 'string') {
12576      var info = '';
12577      if (process.env.NODE_ENV !== 'production') {
12578        if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
12579          info += ' You likely forgot to export your component from the file ' + "it's defined in.";
12580        }
12581      }
12582      info += getDeclarationErrorAddendum(element._owner);
12583       true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element type is invali
12583d: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', type == null ? type : typeof type, info) : _prodInvariant('130', type == null ? type : typeof type, info) : void 0;
12584    }
12585
12586    // Special case string values
12587    if (typeof element.type === 'string') {
12588      instance = ReactHostComponent.createInternalComponent(element);
12589    } else if (isInternalComponentType(element.type)) {
12590      // This is temporarily available for custom components that are not string
12591      // representations. I.e. ART. Once those are updated to use the string
12592      // representation, we can drop this code path.
12593      instance = new element.type(element);
12594
12595      // We renamed this. Allow the old name for compat. :(
12596      if (!instance.getHostNode) {
12597        instance.getHostNode = instance.getNativeNode;
12598      }
12599    } else {
12600      instance = new ReactCompositeComponentWrapper(element);
12601    }
12602  } else if (typeof node === 'string' || typeof node === 'number') {
12603    instance = ReactHostComponent.createInstanceForText(node);
12604  } else {
12605     true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Encountered invalid React node of type %s', typeof node) : _prodInvariant('131', typeof node) : void 0;
12606  }
12607
12608  if (process.env.NODE_ENV !== 'production') {
12609    process.env.NODE_ENV !== 'production' ? warning(typeof instance.mountComponent === 'function' && typeof instance.receiveComponent === 'function' && typeof instance.getHostNode === 'function' && typeof instance.unmountComponent === 'function', 'Only React Components can be mounted.') : void 0;
12610  }
12611
12612  // These two fields are used by the DOM and ART diffing algorithms
12613  // respectively. Instead of using expandos on components, we should be
12614  // storing the state needed by the diffing algorithms elsewhere.
12615  instance._mountIndex = 0;
12616  instance._mountImage = null;
12617
12618  if (process.env.NODE_ENV !== 'production') {
12619    instance._debugID = shouldHaveDebugID ? getNextDebugID() : 0;
12620  }
12621
12622  // Internal instances should fully constructed at this point, so they should
12623  // not get any new fields added to them at this point.
12624  if (process.env.NODE_ENV !== 'production') {
12625    if (Object.preventExtensions) {
12626      Object.preventExtensions(instance);
12627    }
12628  }
12629
12630  return instance;
12631}
12632
12633_assign(ReactCompositeComponentWrapper.prototype, ReactCompositeComponent, {
12634  _instantiateReactComponent: instantiateReactComponent
12635});
12636
12637module.exports = instantiateReactComponent;
12638/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12639
12640/***/ }),
12641/* 211 */
12642/***/ (function(module, exports, __webpack_require__) {
12643
12644"use strict";
12645/* WEBPACK VAR INJECTION */(function(process) {/**
12646 * Copyright (c) 2013-present, Facebook, Inc.
12647 *
12648 * This source code is licensed under the MIT license found in the
12649 * LICENSE file in the root directory of this source tree.
12650 *
12651 * 
12652 */
12653
12654
12655
12656var _prodInvariant = __webpack_require__(8);
12657
12658var React = __webpack_require__(66);
12659
12660var invariant = __webpack_require__(2);
12661
12662var ReactNodeTypes = {
12663  HOST: 0,
12664  COMPOSITE: 1,
12665  EMPTY: 2,
12666
12667  getType: function (node) {
12668    if (node === null || node === false) {
12669      return ReactNodeTypes.EMPTY;
12670    } else if (React.isValidElement(node)) {
12671      if (typeof node.type === 'function') {
12672        return ReactNodeTypes.COMPOSITE;
12673      } else {
12674        return ReactNodeTypes.HOST;
12675      }
12676    }
12677     true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Unexpected node: %s', node) : _prodInvariant('26', node) : void 0;
12678  }
12679};
12680
12681module.exports = ReactNodeTypes;
12682/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12683
12684/***/ }),
12685/* 212 */
12686/***/ (function(module, exports, __webpack_require__) {
12687
12688"use strict";
12689/**
12690 * Copyright (c) 2014-present, Facebook, Inc.
12691 *
12692 * This source code is licensed under the MIT license found in the
12693 * LICENSE file in the root directory of this source tree.
12694 *
12695 */
12696
12697
12698
12699var emptyComponentFactory;
12700
12701var ReactEmptyComponentInjection = {
12702  injectEmptyComponentFactory: function (factory) {
12703    emptyComponentFactory = factory;
12704  }
12705};
12706
12707var ReactEmptyComponent = {
12708  create: function (instantiate) {
12709    return emptyComponentFactory(instantiate);
12710  }
12711};
12712
12713ReactEmptyComponent.injection = ReactEmptyComponentInjection;
12714
12715module.exports = ReactEmptyComponent;
12716
12717/***/ }),
12718/* 213 */
12719/***/ (function(module, exports, __webpack_require__) {
12720
12721"use strict";
12722/* WEBPACK VAR INJECTION */(function(process) {/**
12723 * Copyright (c) 2014-present, Facebook, Inc.
12724 *
12725 * This source code is licensed under the MIT license found in the
12726 * LICENSE file in the root directory of this source tree.
12727 *
12728 */
12729
12730
12731
12732var _prodInvariant = __webpack_require__(8);
12733
12734var invariant = __webpack_require__(2);
12735
12736var genericComponentClass = null;
12737var textComponentClass = null;
12738
12739var ReactHostComponentInjection = {
12740  // This accepts a class that receives the tag string. This is a catch all
12741  // that can render any kind of tag.
12742  injectGenericComponentClass: function (componentClass) {
12743    genericComponentClass = componentClass;
12744  },
12745  // This accepts a text component class that takes the text str
12745ing to be
12746  // rendered as props.
12747  injectTextComponentClass: function (componentClass) {
12748    textComponentClass = componentClass;
12749  }
12750};
12751
12752/**
12753 * Get a host internal component class for a specific tag.
12754 *
12755 * @param {ReactElement} element The element to create.
12756 * @return {function} The internal class constructor function.
12757 */
12758function createInternalComponent(element) {
12759  !genericComponentClass ? process.env.NODE_ENV !== 'production' ? invariant(false, 'There is no registered component for the tag %s', element.type) : _prodInvariant('111', element.type) : void 0;
12760  return new genericComponentClass(element);
12761}
12762
12763/**
12764 * @param {ReactText} text
12765 * @return {ReactComponent}
12766 */
12767function createInstanceForText(text) {
12768  return new textComponentClass(text);
12769}
12770
12771/**
12772 * @param {ReactComponent} component
12773 * @return {boolean}
12774 */
12775function isTextComponent(component) {
12776  return component instanceof textComponentClass;
12777}
12778
12779var ReactHostComponent = {
12780  createInternalComponent: createInternalComponent,
12781  createInstanceForText: createInstanceForText,
12782  isTextComponent: isTextComponent,
12783  injection: ReactHostComponentInjection
12784};
12785
12786module.exports = ReactHostComponent;
12787/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12788
12789/***/ }),
12790/* 214 */
12791/***/ (function(module, exports, __webpack_require__) {
12792
12793"use strict";
12794/* WEBPACK VAR INJECTION */(function(process) {/**
12795 * Copyright (c) 2013-present, Facebook, Inc.
12796 *
12797 * This source code is licensed under the MIT license found in the
12798 * LICENSE file in the root directory of this source tree.
12799 *
12800 */
12801
12802
12803
12804var _prodInvariant = __webpack_require__(8);
12805
12806var ReactCurrentOwner = __webpack_require__(39);
12807var REACT_ELEMENT_TYPE = __webpack_require__(494);
12808
12809var getIteratorFn = __webpack_require__(495);
12810var invariant = __webpack_require__(2);
12811var KeyEscapeUtils = __webpack_require__(149);
12812var warning = __webpack_require__(3);
12813
12814var SEPARATOR = '.';
12815var SUBSEPARATOR = ':';
12816
12817/**
12818 * This is inlined from ReactElement since this file is shared between
12819 * isomorphic and renderers. We could extract this to a
12820 *
12821 */
12822
12823/**
12824 * TODO: Test that a single child and an array with one item have the same key
12825 * pattern.
12826 */
12827
12828var didWarnAboutMaps = false;
12829
12830/**
12831 * Generate a key string that identifies a component within a set.
12832 *
12833 * @param {*} component A component that could contain a manual key.
12834 * @param {number} index Index that is used if a manual key is not provided.
12835 * @return {string}
12836 */
12837function getComponentKey(component, index) {
12838  // Do some typechecking here since we call this blindly. We want to ensure
12839  // that we don't block potential future ES APIs.
12840  if (component && typeof component === 'object' && component.key != null) {
12841    // Explicit key
12842    return KeyEscapeUtils.escape(component.key);
12843  }
12844  // Implicit key determined by the index in the set
12845  return index.toString(36);
12846}
12847
12848/**
12849 * @param {?*} children Children tree container.
12850 * @param {!string} nameSoFar Name of the key path so far.
12851 * @param {!function} callback Callback to invoke with each child found.
12852 * @param {?*} traverseContext Used to pass information throughout the traversal
12853 * process.
12854 * @return {!number} The number of children in this subtree.
12855 */
12856function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {
12857  var type = typeof children;
12858
12859  if (type === 'undefined' || type === 'boolean') {
12860    // All of the above are perceived as null.
12861    children = null;
12862  }
12863
12864  if (children === null || type === 'string' || type === 'number' ||
12865  // The following is inlined from ReactElement. This means we can optimize
12866  // some checks. React Fiber also inlines this logic for similar purposes.
12867  type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {
12868    callback(traverseContext, children,
12869    // If it's the only child, treat the name as if it was wrapped in an array
12870    // so that it's consistent if the number of children grows.
12871    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);
12872    return 1;
12873  }
12874
12875  var child;
12876  var nextName;
12877  var subtreeCount = 0; // Count of children found in the current subtree.
12878  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
12879
12880  if (Array.isArray(children)) {
12881    for (var i = 0; i < children.length; i++) {
12882      child = children[i];
12883      nextName = nextNamePrefix + getComponentKey(child, i);
12884      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
12885    }
12886  } else {
12887    var iteratorFn = getIteratorFn(children);
12888    if (iteratorFn) {
12889      var iterator = iteratorFn.call(children);
12890      var step;
12891      if (iteratorFn !== children.entries) {
12892        var ii = 0;
12893        while (!(step = iterator.next()).done) {
12894          child = step.value;
12895          nextName = nextNamePrefix + getComponentKey(child, ii++);
12896          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
12897        }
12898      } else {
12899        if (process.env.NODE_ENV !== 'production') {
12900          var mapsAsChildrenAddendum = '';
12901          if (ReactCurrentOwner.current) {
12902            var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();
12903            if (mapsAsChildrenOwnerName) {
12904              mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';
12905            }
12906          }
12907          process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;
12908          didWarnAboutMaps = true;
12909        }
12910        // Iterator will provide entry [k,v] tuples rather than values.
12911        while (!(step = iterator.next()).done) {
12912          var entry = step.value;
12913          if (entry) {
12914            child = entry[1];
12915            nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);
12916            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
12917          }
12918        }
12919      }
12920    } else if (type === 'object') {
12921      var addendum = '';
12922      if (process.env.NODE_ENV !== 'production') {
12923        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
12924        if (children._isReactElement) {
12925          addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.';
12926        }
12927        if (ReactCurrentOwner.current) {
12928          var name = ReactCurrentOwner.current.getName();
12929          if (name) {
12930            addendum += ' Check the render method of `' + name + '`.';
12931          }
12932        }
12933      }
12934      var childrenString = String(children);
12935       true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;
12936    }
12937  }
12938
12939  return subtreeCount;
12940}
12941
12942/**
12943 * Traverses children that are typically specified as `props.children`, but
12944 * might also be specified through attributes:
12945 *
12946 * - `traverseAllChildren(this.props.children, ...)`
12947 * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
12948 *
12949 * The `traverseContext` is an optional argument that is passed through the
12950 * entire traversal. It can be used to store accumulations or anything else that
12951 * the callback might find relevant.
12952 *
12953 * @param {?*} children Children tree object.
12954 * @param {!function} callback To invoke upon traversing each child.
12955 * @param {?*} traverseContext Context for traversal.
12956 * @return {!number} The number of children in this subtree.
12957 */
12958function traverseAllChildren(children, callback, traverseContext) {
12959  if (children == null) {
12960    return 0;
12961  }
12962
12963  return traverseAllChildrenImpl(children, '', callback, traverseContext);
12964}
12965
12966module.exports = traverseAllChildren;
12967/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
12968
12969/***/ }),
12970/* 215 */
12971/***/ (function(module, exports, __webpack_require__) {
12972
12973"use strict";
12974/* WEBPACK VAR INJECTION */(function(process) {
12975
12976/**
12977 * Copyright (c) 2013-present, Facebook, Inc.
12978 *
12979 * This source code is licensed under the MIT license found in the
12980 * LICENSE file in the root directory of this source tree.
12981 *
12982 * @typechecks
12983 */
12984
12985var emptyFunction = __webpack_require__(38);
12986
12987/**
12988 * Upstream version of event listener. Does not take into account specific
12989 * nature of platform.
12990 */
12991var EventListener = {
12992  /**
12993   * Listen to DOM events during the bubble phase.
12994   *
12995   * @param {DOMEventTarget} target DOM element to register listener on.
12996   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
12997   * @param {function} callback Callback function.
12998   * @return {object} Object with a `remove` method.
12999   */
13000  listen: function listen(target, eventType, callback) {
13001    if (target.addEventListener) {
13002      target.addEventListener(eventType, callback, false);
13003      return {
13004        remove: function remove() {
13005          target.removeEventListener(eventType, callback, false);
13006        }
13007      };
13008    } else if (target.attachEvent) {
13009      target.attachEvent('on' + eventType, callback);
13010      return {
13011        remove: function remove() {
13012          target.detachEvent('on' + eventType, callback);
13013        }
13014      };
13015    }
13016  },
13017
13018  /**
13019   * Listen to DOM events during the capture phase.
13020   *
13021   * @param {DOMEventTarget} target DOM element to register listener on.
13022   * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
13023   * @param {function} callback Callback function.
13024   * @return {object} Object with a `remove` method.
13025   */
13026  capture: function capture(target, eventType, callback) {
13027    if (target.addEventListener) {
13028      target.addEventListener(eventType, callback, true);
13029      return {
13030        remove: function remove() {
13031          target.removeEventListener(eventType, callback, true);
13032        }
13033      };
13034    } else {
13035      if (process.env.NODE_ENV !== 'production') {
13036        console.error('Attempted to listen to events during the capture phase on a ' + 'browser that does not support the capture phase. Your application ' + 'will not receive some events.');
13037      }
13038      return {
13039        remove: emptyFunction
13040      };
13041    }
13042  },
13043
13044  registerDefault: function registerDefault() {}
13045};
13046
13047module.exports = EventListener;
13048/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
13049
13050/***/ }),
13051/* 216 */
13052/***/ (function(module, exports, __webpack_require__) {
13053
13054"use strict";
13055/**
13056 * Copyright (c) 2013-present, Facebook, Inc.
13057 *
13058 * This source code is licensed under the MIT license found in the
13059 * LICENSE file in the root directory of this source tree.
13060 *
13061 */
13062
13063
13064
13065var ReactDOMSelection = __webpack_require__(507);
13066
13067var containsNode = __webpack_require__(509);
13068var focusNode = __webpack_require__(205);
13069var getActiveElement = __webpack_require__(217);
13070
13071function isInDocument(node) {
13072  return containsNode(document.documentElement, node);
13073}
13074
13075/**
13076 * @ReactInputSelection: React input selection module. Based on Selection.js,
13077 * but modified to be suitable for react and has a couple of bug fixes (doesn't
13078 * assume buttons have range selections allowed).
13079 * Input selection module for React.
13080 */
13081var ReactInputSelection = {
13082  hasSelectionCapabilities: function (elem) {
13083    var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
13084    return nodeName && (nodeName === 'input' && elem.type === 'text' || nodeName === 'textarea' || elem.contentEditable === 'true');
13085  },
13086
13087  getSelectionInformation: function () {
13088    var focusedElem = getActiveElement();
13089    return {
13090      focusedElem: focusedElem,
13091      selectionRange: ReactInputSelection.hasSelectionCapabilities(focusedElem) ? ReactInputSelection.getSelection(focusedElem) : null
13092    };
13093  },
13094
13095  /**
13096   * @restoreSelection: If any selection information was potentially lost,
13097   * restore it. This is useful when performing operations that could remove dom
13098   * nodes and place them back in, resulting in focus being lost.
13099   */
13100  restoreSelection: function (priorSelectionInformation) {
13101    var curFocusedElem = getActiveElement();
13102    var priorFocusedElem = priorSelectionInformation.focusedElem;
13103    var priorSelectionRange = priorSelectionInformation.selectionRange;
13104    if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {
13105      if (ReactInputSelection.hasSelectionCapabilities(priorFocusedElem)) {
13106        ReactInputSelection.setSelection(priorFocusedElem, priorSelectionRange);
13107      }
13108      focusNode(priorFocusedElem);
13109    }
13110  },
13111
13112  /**
13113   * @getSelection: Gets the selection bounds of a focused textarea, input or
13114   * contentEditable node.
13115   * -@input: Look up selection bounds of this input
13116   * -@return {start: selectionStart, end: selectionEnd}
13117   */
13118  getSelection: function (input) {
13119    var selection;
13120
13121    if ('selectionStart' in input) {
13122      // Modern browser with input or textarea.
13123      selection = {
13124        start: input.selectionStart,
13125        end: input.selectionEnd
13126      };
13127    } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {
13128      // IE8 input.
13129      var range = document.selection.createRange();
13130      // There can only be one selection per document in IE, so it must
13131      // be in our element.
13132      if (range.parentElement() === input) {
13133        selection = {
13134          start: -range.moveStart('character', -input.value.length),
13135          end: -range.moveEnd('character', -input.value.length)
13136        };
13137      }
13138    } else {
13139      // Content editable or old IE textarea.
13140      selection = ReactDOMSelection.getOffsets(input);
13141    }
13142
13143    return selection || { start: 0, end: 0 };
13144  },
13145
13146  /**
13147   * @setSelection: Sets the selection bounds of a textarea or input and focuses
13148   * the input.
13149   * -@input     Set selection bounds of this input or textarea
13150   * -@offsets   Object of same form that is returned from get*
13151   */
13152  setSelection: function (input, offsets) {
13153    var start = offsets.start;
13154    var end = offsets.end;
13155    if (end === undefined) {
13156      end = start;
13157    }
13158
13159    if ('selectionStart' in input) {
13160      input.selectionStart = start;
13161      input.selectionEnd = Math.min(end, input.value.length);
13162    } else if (document.selection && input.nodeName && input.nodeName.toLowerCase() === 'input') {
13163      var range = input.createTextRange();
13164      range.collapse(true);
13165      range.moveStart('character', start);
13166      range.moveEnd('character', end - start);
13167      range.select();
13168    } else {
13169      ReactDOMSelection.setOffsets(input, offsets);
13170    }
13171  }
13172};
13173
13174module.exports = ReactInputSelection;
13175
13176/***/ }),
13177/* 217 */
13178/***/ (function(module, exports, __webpack_require__) {
13179
13180"use strict";
13181
13182
13183/**
13184 * Copyright (c) 2013-present, Facebook, Inc.
13185 *
13186 * This source code is licensed under the MIT license found in the
13187 * LICENSE file in the root directory of this source tree.
13188 *
13189 * @typechecks
13190 */
13191
13192/* eslint-disable fb-www/typeof-undefined */
13193
13194/**
13195 * Same as document.activeElement but wraps in a try-catch block. In IE it is
13196 * not safe to call document.activeElement if there is nothing focused.
13197 *
13198 * The activeElement will be null only if the document or document body is not
13199 * yet defined.
13200 *
13201 * @param {?DOMDocument} doc Defaults to current document.
13202 * @return {?DOMElement}
13203 */
13204function getActiveElement(doc) /*?DOMElement*/{
13205  doc = doc || (typeof document !== 'undefined' ? document : undefined);
13206  if (typeof doc === 'undefined') {
13207    return null;
13208  }
13209  try {
13210    return doc.activeElement || doc.body;
13211  } catch (e) {
13212    return doc.body;
13213  }
13214}
13215
13216module.exports = getActiveElement;
13217
13218/***/ }),
13219/* 218 */
13220/***/ (function(module, exports, __webpack_require__) {
13221
13222"use strict";
13223/* WEBPACK VAR INJECTION */(function(process) {/**
13224 * Copyright (c) 2013-present, Facebook, Inc.
13225 *
13226 * This source code is licensed under the MIT license found in the
13227 * LICENSE file in the root directory of this source tree.
13228 *
13229 */
13230
13231
13232
13233var _prodInvariant = __webpack_require__(8);
13234
13235var DOMLazyTree = __webpack_require__(69);
13236var DOMProperty = __webpack_require__(47);
13237var React = __webpack_require__(66);
13238var ReactBrowserEventEmitter = __webpack_require__(104);
13239var ReactCurrentOwner = __webpack_require__(39);
13240var ReactDOMComponentTree = __webpack_require__(14);
13241var ReactDOMContainerInfo = __webpack_require__(524);
13242var ReactDOMFeatureFlags = __webpack_require__(525);
13243var ReactFeatureFlags = __webpack_require__(200);
13244var ReactInstanceMap = __webpack_require__(79);
13245var ReactInstrumentation = __webpack_require__(28);
13246var ReactMarkupChecksum = __webpack_require__(526);
13247var ReactReconciler = __webpack_require__(68);
13248var ReactUpdateQueue = __webpack_require__(150);
13249var ReactUpdates = __webpack_require__(40);
13250
13251var emptyObject = __webpack_require__(98);
13252var instantiateReactComponent = __webpack_require__(210);
13253var invariant = __webpack_require__(2);
13254var setInnerHTML = __webpack_require__(102);
13255var shouldUpdateReactComponent = __webpack_require__(148);
13256var warning = __webpack_require__(3);
13257
13258var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME;
13259var ROOT_ATTR_NAME = DOMProperty.ROOT_ATTRIBUTE_NAME;
13260
13261var ELEMENT_NODE_TYPE = 1;
13262var DOC_NODE_TYPE = 9;
13263var DOCUMENT_FRAGMENT_NODE_TYPE = 11;
13264
13265var instancesByReactRootID = {};
13266
13267/**
13268 * Finds the index of the first character
13269 * that's not common between the two given strings.
13270 *
13271 * @return {number} the index of the character where the strings diverge
13272 */
13273function firstDifferenceIndex(string1, string2) {
13274  var minLen = Math.min(string1.length, string2.length);
13275  for (var i = 0; i < minLen; i++) {
13276    if (string1.charAt(i) !== string2.charAt(i)) {
13277      return i;
13278    }
13279  }
13280  return string1.length === string2.length ? -1 : minLen;
13281}
13282
13283/**
13284 * @param {DOMElement|DOMDocument} container DOM element that may contain
13285 * a React component
13286 * @return {?*} DOM element that may have the reactRoot ID, or null.
13287 */
13288function getReactRootElementInContainer(container) {
13289  if (!container) {
13290    return null;
13291  }
13292
13293  if (container.nodeType === DOC_NODE_TYPE) {
13294    return container.documentElement;
13295  } else {
13296    return container.firstChild;
13297  }
13298}
13299
13300function internalGetID(node) {
13301  // If node is something like a window, document, or text node, none of
13302  // which support attributes or a .getAttribute method, gracefully return
13303  // the empty string, as if the attribute were missing.
13304  return node.getAttribute && node.getAttribute(ATTR_NAME) || '';
13305}
13306
13307/**
13308 * Mounts this component and inserts it into the DOM.
13309 *
13310 * @param {ReactComponent} componentInstance The instance to mount.
13311 * @param {DOMElement} container DOM element to mount into.
13312 * @param {ReactReconcileTransaction} transaction
13313 * @param {boolean} shouldReuseMarkup If true, do not insert markup
13314 */
13315function mountComponentIntoNode(wrapperInstance, container, transaction, shouldReuseMarkup, context) {
13316  var markerName;
13317  if (ReactFeatureFlags.logTopLevelRenders) {
13318    var wrappedElement = wrapperInstance._currentElement.props.child;
13319    var type = wrappedElement.type;
13320    markerName = 'React mount: ' + (typeof type === 'string' ? type : type.displayName || type.name);
13321    console.time(markerName);
13322  }
13323
13324  var markup = ReactReconciler.mountComponent(wrapperInstance, transaction, null, ReactDOMContainerInfo(wrapperInstance, container), context, 0 /* parentDebugID */
13325  );
13326
13327  if (markerName) {
13328    console.timeEnd(markerName);
13329  }
13330
13331  wrapperInstance._renderedComponent._topLevelWrapper = wrapperInstance;
13332  ReactMount._mountImageIntoNode(markup, container, wrapperInstance, shouldReuseMarkup, transaction);
13333}
13334
13335/**
13336 * Batched mount.
13337 *
13338 * @param {ReactComponent} componentInstance The instance to mount.
13339 * @param {DOMElement} container DOM element to mount into.
13340 * @param {boolean} shouldReuseMarkup If true, do not insert markup
13341 */
13342function batchedMountComponentIntoNode(componentInstance, container, shouldReuseMarkup, context) {
13343  var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(
13344  /* useCreateElement */
13345  !shouldReuseMarkup && ReactDOMFeatureFlags.useCreateElement);
13346  transaction.perform(mountComponentIntoNode, null, componentInstance, container, transaction, shouldReuseMarkup, context);
13347  ReactUpdates.ReactReconcileTransaction.release(transaction);
13348}
13349
13350/**
13351 * Unmounts a component and removes it from the DOM.
13352 *
13353 * @param {ReactComponent} instance React component instance.
13354 * @param {DOMElement} container DOM element to unmount from.
13355 * @final
13356 * @internal
13357 * @see {ReactMount.unmountComponentAtNode}
13358 */
13359function unmountComponentFromNode(instance, container, safely) {
13360  if (process.env.NODE_ENV !== 'production') {
13361    ReactInstrumentation.debugTool.onBeginFlush();
13362  }
13363  ReactReconciler.unmountComponent(instance, safely);
13364  if (process.env.NODE_ENV !== 'production') {
13365    ReactInstrumentation.debugTool.onEndFlush();
13366  }
13367
13368  if (container.nodeType === DOC_NODE_TYPE) {
13369    container = container.documentElement;
13370  }
13371
13372  // http://jsperf.com/emptying-a-node
13373  while (container.lastChild) {
13374    container.removeChild(container.lastChild);
13375  }
13376}
13377
13378/**
13379 * True if the supplied DOM node has a direct React-rendered child that is
13380 * not a React root element. Useful for warning in `render`,
13381 * `unmountComponentAtNode`, etc.
13382 *
13383 * @param {?DOMElement} node The candidate DOM node.
13384 * @return {boolean} True if the DOM element contains a direct child that was
13385 * rendered by React but is not a root element.
13386 * @internal
13387 */
13388function hasNonRootReactChild(container) {
13389  var rootEl = getReactRootElementInContainer(container);
13390  if (rootEl) {
13391    var inst = ReactDOMComponentTree.getInstanceFromNode(rootEl);
13392    return !!(inst && inst._hostParent);
13393  }
13394}
13395
13396/**
13397 * True if the supplied DOM node is a React DOM element and
13398 * it has been rendered by another copy of React.
13399 *
13400 * @param {?DOMElement} node The candidate DOM node.
13401 * @return {boolean} True if the DOM has been rendered by another copy of React
13402 * @internal
13403 */
13404function nodeIsRenderedByOtherInstance(container) {
13405  var rootEl = getReactRootElementInContainer(container);
13406  return !!(rootEl && isReactNode(rootEl) && !ReactDOMComponentTree.getInstanceFromNode(rootEl));
13407}
13408
13409/**
13410 * True if the supplied DOM node is a valid node element.
13411 *
13412 * @param {?DOMElement} node The candidate DOM node.
13413 * @return {boolean} True if the DOM is a valid DOM node.
13414 * @internal
13415 */
13416function isValidContainer(node) {
13417  return !!(node && (node.nodeType === ELEMENT_NODE_TYPE || node.nodeType === DOC_NODE_TYPE || node.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE));
13418}
13419
13420/**
13421 * True if the supplied DOM node is a valid React node element.
13422 *
13423 * @param {?DOMElement} node The candidate DOM node.
13424 * @return {boolean} True if the DOM is a valid React DOM node.
13425 * @internal
13426 */
13427function isReactNode(node) {
13428  return isValidContainer(node) && (node.hasAttribute(ROOT_ATTR_NAME) || node.hasAttribute(ATTR_NAME));
13429}
13430
13431function getHostRootInstanceInContainer(container) {
13432  var rootEl = getReactRootElementInContainer(container);
13433  var prevHostInstance = rootEl && ReactDOMComponentTree.getInstanceFromNode(rootEl);
13434  return prevHostInstance && !prevHostInstance._hostParent ? prevHostInstance : null;
13435}
13436
13437function getTopLevelWrapperInContainer(container) {
13438  var root = getHostRootInstanceInContainer(container);
13439  return root ? root._hostContainerInfo._topLevelWrapper : null;
13440}
13441
13442/**
13443 * Temporary (?) hack so that we can store all top-level pending updates on
13444 * composites instead of having to worry about different types of components
13445 * here.
13446 */
13447var topLevelRootCounter = 1;
13448var TopLevelWrapper = function () {
13449  this.rootID = topLevelRootCounter++;
13450};
13451TopLevelWrapper.prototype.isReactComponent = {};
13452if (process.env.NODE_ENV !== 'production') {
13453  TopLevelWrapper.displayName = 'TopLevelWrapper';
13454}
13455TopLevelWrapper.prototype.render = function () {
13456  return this.props.child;
13457};
13458TopLevelWrapper.isReactTopLevelWrapper = true;
13459
13460/**
13461 * Mounting is the process of initializing a React component by creating its
13462 * representative DOM elements and inserting them into a supplied `container`.
13463 * Any prior content inside `container` is destroyed in the process.
13464 *
13465 *   ReactMount.render(
13466 *     component,
13467 *     document.getElementById('container')
13468 *   );
13469 *
13470 *   <div id="container">                   <-- Supplied `container`.
13471 *     <div data-reactid=".3">              <-- Rendered reactRoot of React
13472 *       // ...                                 component.
13473 *     </div>
13474 *   </div>
13475 *
13476 * Inside of `container`, the first element rendered is the "reactRoot".
13477 */
13478var ReactMount = {
13479  TopLevelWrapper: TopLevelWrapper,
13480
13481  /**
13482   * Used by devtools. The keys are not important.
13483   */
13484  _instancesByReactRootID: instancesByReactRootID,
13485
13486  /**
13487   * This is a hook provided to support rendering React components while
13488   * ensuring that the apparent scroll position of its `container` does not
13489   * change.
13490   *
13491   * @param {DOMElement} container The `container` being rendered into.
13492   * @param {function} renderCallback This must be called once to do the render.
13493   */
13494  scrollMonitor: function (container, renderCallback) {
13495    renderCallback();
13496  },
13497
13498  /**
13499   * Take a component that's already mounted into the DOM and replace its props
13500   * @param {ReactComponent} prevComponent component instance already in the DOM
13501   * @param {ReactElement} nextElement component instance to render
13502   * @param {DOMElement} container container to render into
13503   * @param {?function} callback function triggered on completion
13504   */
13505  _updateRootComponent: function (prevComponent, nextElement, nextContext, container, callback) {
13506    ReactMount.scrollMonitor(container, function () {
13507      ReactUpdateQueue.enqueueElementInternal(prevComponent, nextElement, nextContext);
13508      if (callback) {
13509        ReactUpdateQueue.enqueueCallbackInternal(prevComponent, callback);
13510      }
13511    });
13512
13513    return prevComponent;
13514  },
13515
13516  /**
13517   * Render a new component into the DOM. Hooked by hooks!
13518   *
13519   * @param {ReactElement} nextElement element to render
13520   * @param {DOMElement} container container to render into
13521   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion
13522   * @return {ReactComponent} nextComponent
13523   */
13524  _renderNewRootComponent: function (nextElement, container, shouldReuseMarkup, context) {
13525    // Various parts of our code (such as ReactCompositeComponent's
13526    // _renderValidatedComponent) assume that calls to render aren't nested;
13527    // verify that that's the case.
13528    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
13529
13530    !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : _prodInvariant('37') : void 0;
13531
13532    ReactBrowserEventEmitter.ensureScrollValueMonitoring();
13533    var componentInstance = instantiateReactComponent(nextElement, false);
13534
13535    // The initial render is synchronous but any updates that happen during
13536    // rendering, in componentWillMount or componentDidMount, will be batched
13537    // according to the current batching strategy.
13538
13539    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);
13540
13541    var wrapperID = componentInstance._instance.rootID;
13542    instancesByReactRootID[wrapperID] = componentInstance;
13543
13544    return componentInstance;
13545  },
13546
13547  /**
13548   * Renders a React component into the DOM in the supplied `container`.
13549   *
13550   * If the React component was previously rendered into `container`, this will
13551   * perform an update on it and only mutate the DOM as necessary to reflect the
13552   * latest React component.
13553   *
13554   * @param {ReactComponent} parentComponent The conceptual parent of this render tree.
13555   * @param {ReactElement} nextElement Component element to render.
13556   * @param {DOMElement} container DOM element to render into.
13557   * @param {?function} callback function triggered on completion
13558   * @return {ReactComponent} Component instance rendered in `container`.
13559   */
13560  renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {
13561    !(parentComponent != null && ReactInstanceMap.has(parentComponent)) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'parentComponent must be a valid React Component') : _prodInvariant('38') : void 0;
13562    return ReactMount._renderSubtreeIntoContainer(parentComponent, nextElement, container, callback);
13563  },
13564
13565  _renderSubtreeIntoContainer: function (parentComponent, nextElement, container, callback) {
13566    ReactUpdateQueue.validateCallback(callback, 'ReactDOM.render');
13567    !React.isValidElement(nextElement) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOM.render(): Invalid component element.%s', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or <div />." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : // Check if it quacks like an element
13568    nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : _prodInvariant('39', typeof nextElement === 'string' ? " Instead of passing a string like 'div', pass " + "React.createElement('div') or <div />." : typeof nextElement === 'function' ? ' Instead of passing a class like Foo, pass ' + 'React.createElement(Foo) or <Foo />.' : nextElement != null && nextElement.props !== undefined ? ' This may be caused by unintentionally loading two independent ' + 'copies of React.' : '') : void 0;
13569
13570    process.env.NODE_ENV !== 'production' ? warning(!container || !container.tagName || container.tagName.toUpperCase() !== 'BODY', 'render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.') : void 0;
13571
13572    var nextWrappedElement = React.createElement(TopLevelWrapper, {
13573      child: nextElement
13574    });
13575
13576    var nextContext;
13577    if (parentComponent) {
13578      var parentInst = ReactInstanceMap.get(parentComponent);
13579      nextContext = parentInst._processChildContext(parentInst._context);
13580    } else {
13581      nextContext = emptyObject;
13582    }
13583
13584    var prevComponent = getTopLevelWrapperInContainer(container);
13585
13586    if (prevComponent) {
13587      var prevWrappedElement = prevComponent._currentElement;
13588      var prevElement = prevWrappedElement.props.child;
13589      if (shouldUpdateReactComponent(prevElement, nextElement)) {
13590        var publicInst = prevComponent._renderedComponent.getPublicInstance();
13591        var updatedCallback = callback && function () {
13592          callback.call(publicInst);
13593        };
13594        ReactMount._updateRootComponent(prevComponent, nextWrappedElement, nextContext, container, updatedCallback);
13595        return publicInst;
13596      } else {
13597        ReactMount.unmountComponentAtNode(container);
13598      }
13599    }
13600
13601    var reactRootElement = getReactRootElementInContainer(container);
13602    var containerHasReactMarkup = reactRootElement && !!internalGetID(reactRootElement);
13603    var containerHasNonRootReactChild = hasNonRootReactChild(container);
13604
13605    if (process.env.NODE_ENV !== 'production') {
13606      process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, 'render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.') : void 0;
13607
13608      if (!containerHasReactMarkup || reactRootElement.nextSibling) {
13609        var rootElementSibling = reactRootElement;
13610        while (rootElementSibling) {
13611          if (internalGetID(rootElementSibling)) {
13612            process.env.NODE_ENV !== 'production' ? warning(false, 'render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.') : void 0;
13613            break;
13614          }
13615          rootElementSibling = rootElementSibling.nextSibling;
13616        }
13617      }
13618    }
13619
13620    var shouldReuseMarkup = containerHasReactMarkup && !prevComponent && !containerHasNonRootReactChild;
13621    var component = ReactMount._renderNewRootComponent(nextWrappedElement, container, shouldReuseMarkup, nextContext)._renderedComponent.getPublicInstance();
13622    if (callback) {
13623      callback.call(component);
13624    }
13625    return component;
13626  },
13627
13628  /**
13629   * Renders a React component into the DOM in the supplied `container`.
13630   * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.render
13631   *
13632   * If the React component was previously rendered into `container`, this will
13633   * perform an update on it and only mutate the DOM as necessary to reflect the
13634   * latest React component.
13635   *
13636   * @param {ReactElement} nextElement Component element to render.
13637   * @param {DOMElement} container DOM element to render into.
13638   * @param {?function} callback function triggered on completion
13639   * @return {ReactComponent} Component instance rendered in `container`.
13640   */
13641  render: function (nextElement, container, callback) {
13642    return ReactMount._renderSubtreeIntoContainer(null, nextElement, container, callback);
13643  },
13644
13645  /**
13646   * Unmounts and destroys the React component rendered in the `container`.
13647   * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.unmountcomponentatnode
13648   *
13649   * @param {DOMElement} container DOM element containing a React component.
13650   * @return {boolean} True if a component was found in and unmounted from
13651   *                   `container`
13652   */
13653  unmountComponentAtNode: function (container) {
13654    // Various parts of our code (such as ReactCompositeComponent's
13655    // _renderValidatedComponent) assume that calls to render aren't nested;
13656    // verify that that's the case. (Strictly speaking, unmounting won't 
13656cause a
13657    // render but we still don't expect to be in a render call here.)
13658    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, 'unmountComponentAtNode(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from render ' + 'is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
13659
13660    !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'unmountComponentAtNode(...): Target container is not a DOM element.') : _prodInvariant('40') : void 0;
13661
13662    if (process.env.NODE_ENV !== 'production') {
13663      process.env.NODE_ENV !== 'production' ? warning(!nodeIsRenderedByOtherInstance(container), "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by another copy of React.') : void 0;
13664    }
13665
13666    var prevComponent = getTopLevelWrapperInContainer(container);
13667    if (!prevComponent) {
13668      // Check if the node being unmounted was rendered by React, but isn't a
13669      // root node.
13670      var containerHasNonRootReactChild = hasNonRootReactChild(container);
13671
13672      // Check if the container itself is a React root node.
13673      var isContainerReactRoot = container.nodeType === 1 && container.hasAttribute(ROOT_ATTR_NAME);
13674
13675      if (process.env.NODE_ENV !== 'production') {
13676        process.env.NODE_ENV !== 'production' ? warning(!containerHasNonRootReactChild, "unmountComponentAtNode(): The node you're attempting to unmount " + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.') : void 0;
13677      }
13678
13679      return false;
13680    }
13681    delete instancesByReactRootID[prevComponent._instance.rootID];
13682    ReactUpdates.batchedUpdates(unmountComponentFromNode, prevComponent, container, false);
13683    return true;
13684  },
13685
13686  _mountImageIntoNode: function (markup, container, instance, shouldReuseMarkup, transaction) {
13687    !isValidContainer(container) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'mountComponentIntoNode(...): Target container is not valid.') : _prodInvariant('41') : void 0;
13688
13689    if (shouldReuseMarkup) {
13690      var rootElement = getReactRootElementInContainer(container);
13691      if (ReactMarkupChecksum.canReuseMarkup(markup, rootElement)) {
13692        ReactDOMComponentTree.precacheNode(instance, rootElement);
13693        return;
13694      } else {
13695        var checksum = rootElement.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);
13696        rootElement.removeAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);
13697
13698        var rootMarkup = rootElement.outerHTML;
13699        rootElement.setAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME, checksum);
13700
13701        var normalizedMarkup = markup;
13702        if (process.env.NODE_ENV !== 'production') {
13703          // because rootMarkup is retrieved from the DOM, various normalizations
13704          // will have occurred which will not be present in `markup`. Here,
13705          // insert markup into a <div> or <iframe> depending on the container
13706          // type to perform the same normalizations before comparing.
13707          var normalizer;
13708          if (container.nodeType === ELEMENT_NODE_TYPE) {
13709            normalizer = document.createElement('div');
13710            normalizer.innerHTML = markup;
13711            normalizedMarkup = normalizer.innerHTML;
13712          } else {
13713            normalizer = document.createElement('iframe');
13714            document.body.appendChild(normalizer);
13715            normalizer.contentDocument.write(markup);
13716            normalizedMarkup = normalizer.contentDocument.documentElement.outerHTML;
13717            document.body.removeChild(normalizer);
13718          }
13719        }
13720
13721        var diffIndex = firstDifferenceIndex(normalizedMarkup, rootMarkup);
13722        var difference = ' (client) ' + normalizedMarkup.substring(diffIndex - 20, diffIndex + 20) + '\n (server) ' + rootMarkup.substring(diffIndex - 20, diffIndex + 20);
13723
13724        !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\'re trying to render a component to the document using server rendering but the checksum was invali
13724d. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s', difference) : _prodInvariant('42', difference) : void 0;
13725
13726        if (process.env.NODE_ENV !== 'production') {
13727          process.env.NODE_ENV !== 'production' ? warning(false, 'React attempted to reuse markup in a container but the ' + 'checksum was invalid. This generally means that you are ' + 'using server rendering and the markup generated on the ' + 'server was not what the client was expecting. React injected ' + 'new markup to compensate which works but you have lost many ' + 'of the benefits of server rendering. Instead, figure out ' + 'why the markup being generated is different on the client ' + 'or server:\n%s', difference) : void 0;
13728        }
13729      }
13730    }
13731
13732    !(container.nodeType !== DOC_NODE_TYPE) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'You\'re trying to render a component to the document but you didn\'t use server rendering. We can\'t do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('43') : void 0;
13733
13734    if (transaction.useCreateElement) {
13735      while (container.lastChild) {
13736        container.removeChild(container.lastChild);
13737      }
13738      DOMLazyTree.insertTreeBefore(container, markup, null);
13739    } else {
13740      setInnerHTML(container, markup);
13741      ReactDOMComponentTree.precacheNode(instance, container.firstChild);
13742    }
13743
13744    if (process.env.NODE_ENV !== 'production') {
13745      var hostNode = ReactDOMComponentTree.getInstanceFromNode(container.firstChild);
13746      if (hostNode._debugID !== 0) {
13747        ReactInstrumentation.debugTool.onHostOperation({
13748          instanceID: hostNode._debugID,
13749          type: 'mount',
13750          payload: markup.toString()
13751        });
13752      }
13753    }
13754  }
13755};
13756
13757module.exports = ReactMount;
13758/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
13759
13760/***/ }),
13761/* 219 */
13762/***/ (function(module, exports, __webpack_require__) {
13763
13764"use strict";
13765/**
13766 * Copyright (c) 2013-present, Facebook, Inc.
13767 *
13768 * This source code is licensed under the MIT license found in the
13769 * LICENSE file in the root directory of this source tree.
13770 *
13771 */
13772
13773
13774
13775var ReactNodeTypes = __webpack_require__(211);
13776
13777function getHostComponentFromComposite(inst) {
13778  var type;
13779
13780  while ((type = inst._renderedNodeType) === ReactNodeTypes.COMPOSITE) {
13781    inst = inst._renderedComponent;
13782  }
13783
13784  if (type === ReactNodeTypes.HOST) {
13785    return inst._renderedComponent;
13786  } else if (type === ReactNodeTypes.EMPTY) {
13787    return null;
13788  }
13789}
13790
13791module.exports = getHostComponentFromComposite;
13792
13793/***/ }),
13794/* 220 */
13795/***/ (function(module, exports, __webpack_require__) {
13796
13797var buildSearchMethod = __webpack_require__(221);
13798var deprecate = __webpack_require__(154);
13799var deprecatedMessage = __webpack_require__(155);
13800
13801module.exports = IndexCore;
13802
13803/*
13804* Index class constructor.
13805* You should not use this method directly but use initIndex() function
13806*/
13807function IndexCore(algoliasearch, indexName) {
13808  this.indexName = indexName;
13809  this.as = algoliasearch;
13810  this.typeAheadArgs = null;
13811  this.typeAheadValueOption = null;
13812
13813  // make sure every index instance has it's own cache
13814  this.cache = {};
13815}
13816
13817/*
13818* Clear all queries in cache
13819*/
13820IndexCore.prototype.clearCache = function() {
13821  this.cache = {};
13822};
13823
13824/*
13825* Search inside the index using XMLHttpRequest request (Using a POST query to
13826* minimize number of OPTIONS queries: Cross-Origin Resource Sharing).
13827*
13828* @param {string} [query] the full text query
13829* @param {object} [args] (optional) if set, contains an object with query parameters:
13830* - page: (integer) Pagination parameter used to select the page to retrieve.
13831*                   Page is zero-based and defaults to 0. Thus,
13832*                   to retrieve the 10th page you need to set page=9
13833* - hitsPerPage: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20.
13834* - attributesToRetrieve: a string that contains the list of object attributes
13835* you want to retrieve (let you minimize the answer size).
13836*   Attributes are separated with a comma (for example "name,address").
13837*   You can also use an array (for example ["name","address"]).
13838*   By default, all attributes are retrieved. You can also use '*' to retrieve all
13839*   values when an attributesToRetrieve setting is specified for your index.
13840* - attributesToHighlight: a string that contains the list of attributes you
13841*   want to highlight according to the query.
13842*   Attributes are separated by a comma. You can also use an array (for example ["name","address"]).
13843*   If an attribute has no match for the query, the raw value is returned.
13844*   By default all indexed text attributes are highlighted.
13845*   You can use `*` if you want to highlight all textual attributes.
13846*   Numerical attributes are not highlighted.
13847*   A matchLevel is returned for each highlighted attribute and can contain:
13848*      - full: if all the query terms were found in the attribute,
13849*      - partial: if only some of the query terms were found,
13850*      - none: if none of the query terms were found.
13851* - attributesToSnippet: a string that contains the list of attributes to snippet alongside
13852* the number of words to return (syntax is `attributeName:nbWords`).
13853*    Attributes are separated by a comma (Example: attributesToSnippet=name:10,content:10).
13854*    You can also use an array (Example: attributesToSnippet: ['name:10','content:10']).
13855*    By default no snippet is computed.
13856* - minWordSizefor1Typo: the minimum number of characters in a query word to accept one typo in this word.
13857* Defaults to 3.
13858* - minWordSizefor2Typos: the minimum number of characters in a query word
13859* to accept two typos in this word. Defaults to 7.
13860* - getRankingInfo: if set to 1, the result hits will contain ranking
13861* information in _rankingInfo attribute.
13862* - aroundLatLng: search for entries around a given
13863* latitude/longitude (specified as two floats separated by a comma).
13864*   For example aroundLatLng=47.316669,5.016670).
13865*   You can specify the maximum distance in meters with the aroundRadius parameter (in meters)
13866*   and the precision for ranking with aroundPrecision
13867*   (for example if you set aroundPrecision=100, two objects that are distant of
13868*   less than 100m will be considered as identical for "geo" ranking parameter).
13869*   At indexing, you should specify geoloc of an object with the _geoloc attribute
13870*   (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}})
13871* - insideBoundingBox: search entries inside a given area defined by the two extreme points
13872* of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng).
13873*   For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201).
13874*   At indexing, you should specify geoloc of an object with the _geoloc attribute
13875*   (in the form {"_geoloc":{"lat":48.853409, "lng":2.348800}})
13876* - numericFilters: a string that contains the list of numeric filters you want to
13877* apply separated by a comma.
13878*   The syntax of one filter is `attributeName` followed by `operand` followed by `value`.
13879*   Supported operands are `<`, `<=`, `=`, `>` and `>=`.
13880*   You can have multiple conditions on one attribute like for example numericFilters=price>100,price<1000.
13881*   You can also use an array (for example numericFilters: ["price>100","price<1000"]).
13882* - tagFilters: filter the query by a set of tags. You can AND tags by separating them by commas.
13883*   To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3).
13884*   You can also use an array, for example tagFilters: ["tag1",["tag2","tag3"]]
13885*   means tag1 AND (tag2 OR tag3).
13886*   At indexing, tags should be added in the _tags** attribute
13887*   of objects (for example {"_tags":["tag1","tag2"]}).
13888* - facetFilters: filter the query by a list of facets.
13889*   Facets are separated by commas and each facet is encoded as `attributeName:value`.
13890*   For example: `facetFilters=category:Book,author:John%20Doe`.
13891*   You can also use an array (for example `["category:Book","author:John%20Doe"]`).
13892* - facets: List of object attributes that you want to use for faceting.
13893*   Comma separated list: `"category,author"` or array `['category','author']`
13894*   Only attributes that have been added in **attributesForFaceting** index setting
13895*   can be used in this parameter.
13896*   You can also use `*` to perform faceting on all attributes specified in **attributesForFaceting**.
13897* - queryType: select how the query words are interpreted, it can be one of the following value:
13898*    - prefixAll: all query words are interpreted as prefixes,
13899*    - prefixLast: only the last word is interpreted as a prefix (default behavior),
13900*    - prefixNone: no query word is interpreted as a prefix. This option is not recommended.
13901* - optionalWords: a string that contains the list of words that should
13902* be considered as optional when found in the query.
13903*   Comma separated and array are accepted.
13904* - distinct: If set to 1, enable the distinct feature (disabled by default)
13905* if the attributeForDistinct index setting is set.
13906*   This feature is similar to the SQL "distinct" keyword: when enabled
13907*   in a query with the distinct=1 parameter,
13908*   all hits containing a duplicate value for the attributeForDistinct attribute are removed from results.
13909*   For example, if the chosen attribute is show_name and several hits have
13910*   the same value for show_name, then only the best
13911*   one is kept and others are removed.
13912* - restrictSearchableAttributes: List of attributes you want to use for
13913* textual search (must be a subset of the attributesToIndex index setting)
13914* either comma separated or as an array
13915* @param {function} [callback] the result callback called with two arguments:
13916*  error: null or Error('message'). If false, the content contains the error.
13917*  content: the server answer that contains the list of results.
13918*/
13919IndexCore.prototype.search = buildSearchMethod('query');
13920
13921/*
13922* -- BETA --
13923* Search a record similar to the query inside the index using XMLHttpRequest request (Using a POST query to
13924* minimize number of OPTIONS queries: Cross-Origin Resource Sharing).
13925*
13926* @param {string} [query] the similar query
13927* @param {object} [args] (optional) if set, contains an object with query parameters.
13928*   All search parameters are supported (see search function), restrictSearchableAttributes and facetFilters
13929*   are the two most useful to restrict the similar results and get more relevant content
13930*/
13931IndexCore.prototype.similarSearch = buildSearchMethod('similarQuery');
13932
13933/*
13934* Browse index content. The response content will have a `cursor` property that you can use
13935* to browse subsequent pages for this query. Use `index.browseFrom(cursor)` when you want.
13936*
13937* @param {string} query - The full text query
13938* @param {Object} [queryParameters] - Any search query parameter
13939* @param {Function} [callback] - The result callback called with two arguments
13940*   error: null or Error('message')
13941*   content: the server answer with the browse result
13942* @return {Promise|undefined} Returns a promise if no callback given
13943* @example
13944* index.browse('cool songs', {
13945*   tagFilters: 'public,comments',
13946*   hitsPerPage: 500
13947* }, callback);
13948* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}
13949*/
13950IndexCore.prototype.browse = function(query, queryParameters, callback) {
13951  var merge = __webpack_require__(222);
13952
13953  var indexObj = this;
13954
13955  var page;
13956  var hitsPerPage;
13957
13958  // we check variadic calls that are not the one defined
13959  // .browse()/.browse(fn)
13960  // => page = 0
13961  if (arguments.length === 0 || arguments.length === 1 && typeof arguments[0] === 'function') {
13962    page = 0;
13963    callback = arguments[0];
13964    query = undefined;
13965  } else if (typeof arguments[0] === 'number') {
vendor: 7,170 bytes, lines 13966-14200
13966    // .browse(2)/.browse(2, 10)/.browse(2, fn)/.browse(2, 10, fn)
13967    page = arguments[0];
13968    if (typeof arguments[1] === 'number') {
13969      hitsPerPage = arguments[1];
13970    } else if (typeof arguments[1] === 'function') {
13971      callback = arguments[1];
13972      hitsPerPage = undefined;
13973    }
13974    query = undefined;
13975    queryParameters = undefined;
13976  } else if (typeof arguments[0] === 'object') {
13977    // .browse(queryParameters)/.browse(queryParameters, cb)
13978    if (typeof arguments[1] === 'function') {
13979      callback = arguments[1];
13980    }
13981    queryParameters = arguments[0];
13982    query = undefined;
13983  } else if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') {
13984    // .browse(query, cb)
13985    callback = arguments[1];
13986    queryParameters = undefined;
13987  }
13988
13989  // otherwise it's a .browse(query)/.browse(query, queryParameters)/.browse(query, queryParameters, cb)
13990
13991  // get search query parameters combining various possible calls
13992  // to .browse();
13993  queryParameters = merge({}, queryParameters || {}, {
13994    page: page,
13995    hitsPerPage: hitsPerPage,
13996    query: query
13997  });
13998
13999  var params = this.as._getSearchParams(queryParameters, '');
14000
14001  return this.as._jsonRequest({
14002    method: 'POST',
14003    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/browse',
14004    body: {params: params},
14005    hostType: 'read',
14006    callback: callback
14007  });
14008};
14009
14010/*
14011* Continue browsing from a previous position (cursor), obtained via a call to `.browse()`.
14012*
14013* @param {string} query - The full text query
14014* @param {Object} [queryParameters] - Any search query parameter
14015* @param {Function} [callback] - The result callback called with two arguments
14016*   error: null or Error('message')
14017*   content: the server answer with the browse result
14018* @return {Promise|undefined} Returns a promise if no callback given
14019* @example
14020* index.browseFrom('14lkfsakl32', callback);
14021* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}
14022*/
14023IndexCore.prototype.browseFrom = function(cursor, callback) {
14024  return this.as._jsonRequest({
14025    method: 'POST',
14026    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/browse',
14027    body: {cursor: cursor},
14028    hostType: 'read',
14029    callback: callback
14030  });
14031};
14032
14033/*
14034* Search for facet values
14035* https://www.algolia.com/doc/rest-api/search#search-for-facet-values
14036*
14037* @param {string} params.facetName Facet name, name of the attribute to search for values in.
14038* Must be declared as a facet
14039* @param {string} params.facetQuery Query for the facet search
14040* @param {string} [params.*] Any search parameter of Algolia,
14041* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters
14042* Pagination is not supported. The page and hitsPerPage parameters will be ignored.
14043* @param callback (optional)
14044*/
14045IndexCore.prototype.searchForFacetValues = function(params, callback) {
14046  var clone = __webpack_require__(48);
14047  var omit = __webpack_require__(223);
14048  var usage = 'Usage: index.searchForFacetValues({facetName, facetQuery, ...params}[, callback])';
14049
14050  if (params.facetName === undefined || params.facetQuery === undefined) {
14051    throw new Error(usage);
14052  }
14053
14054  var facetName = params.facetName;
14055  var filteredParams = omit(clone(params), function(keyName) {
14056    return keyName === 'facetName';
14057  });
14058  var searchParameters = this.as._getSearchParams(filteredParams, '');
14059
14060  return this.as._jsonRequest({
14061    method: 'POST',
14062    url: '/1/indexes/' +
14063      encodeURIComponent(this.indexName) + '/facets/' + encodeURIComponent(facetName) + '/query',
14064    hostType: 'read',
14065    body: {params: searchParameters},
14066    callback: callback
14067  });
14068};
14069
14070IndexCore.prototype.searchFacet = deprecate(function(params, callback) {
14071  return this.searchForFacetValues(params, callback);
14072}, deprecatedMessage(
14073  'index.searchFacet(params[, callback])',
14074  'index.searchForFacetValues(params[, callback])'
14075));
14076
14077IndexCore.prototype._search = function(params, url, callback, additionalUA) {
14078  return this.as._jsonRequest({
14079    cache: this.cache,
14080    method: 'POST',
14081    url: url || '/1/indexes/' + encodeURIComponent(this.indexName) + '/query',
14082    body: {params: params},
14083    hostType: 'read',
14084    fallback: {
14085      method: 'GET',
14086      url: '/1/indexes/' + encodeURIComponent(this.indexName),
14087      body: {params: params}
14088    },
14089    callback: callback,
14090    additionalUA: additionalUA
14091  });
14092};
14093
14094/*
14095* Get an object from this index
14096*
14097* @param objectID the unique identifier of the object to retrieve
14098* @param attrs (optional) if set, contains the array of attribute names to retrieve
14099* @param callback (optional) the result callback called with two arguments
14100*  error: null or Error('message')
14101*  content: the object to retrieve or the error message if a failure occured
14102*/
14103IndexCore.prototype.getObject = function(objectID, attrs, callback) {
14104  var indexObj = this;
14105
14106  if (arguments.length === 1 || typeof attrs === 'function') {
14107    callback = attrs;
14108    attrs = undefined;
14109  }
14110
14111  var params = '';
14112  if (attrs !== undefined) {
14113    params = '?attributes=';
14114    for (var i = 0; i < attrs.length; ++i) {
14115      if (i !== 0) {
14116        params += ',';
14117      }
14118      params += attrs[i];
14119    }
14120  }
14121
14122  return this.as._jsonRequest({
14123    method: 'GET',
14124    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID) + params,
14125    hostType: 'read',
14126    callback: callback
14127  });
14128};
14129
14130/*
14131* Get several objects from this index
14132*
14133* @param objectIDs the array of unique identifier of objects to retrieve
14134*/
14135IndexCore.prototype.getObjects = function(objectIDs, attributesToRetrieve, callback) {
14136  var isArray = __webpack_require__(23);
14137  var map = __webpack_require__(72);
14138
14139  var usage = 'Usage: index.getObjects(arrayOfObjectIDs[, callback])';
14140
14141  if (!isArray(objectIDs)) {
14142    throw new Error(usage);
14143  }
14144
14145  var indexObj = this;
14146
14147  if (arguments.length === 1 || typeof attributesToRetrieve === 'function') {
14148    callback = attributesToRetrieve;
14149    attributesToRetrieve = undefined;
14150  }
14151
14152  var body = {
14153    requests: map(objectIDs, function prepareRequest(objectID) {
14154      var request = {
14155        indexName: indexObj.indexName,
14156        objectID: objectID
14157      };
14158
14159      if (attributesToRetrieve) {
14160        request.attributesToRetrieve = attributesToRetrieve.join(',');
14161      }
14162
14163      return request;
14164    })
14165  };
14166
14167  return this.as._jsonRequest({
14168    method: 'POST',
14169    url: '/1/indexes/*/objects',
14170    hostType: 'read',
14171    body: body,
14172    callback: callback
14173  });
14174};
14175
14176IndexCore.prototype.as = null;
14177IndexCore.prototype.indexName = null;
14178IndexCore.prototype.typeAheadArgs = null;
14179IndexCore.prototype.typeAheadValueOption = null;
14180
14181
14182/***/ }),
14183/* 221 */
14184/***/ (function(module, exports, __webpack_require__) {
14185
14186module.exports = buildSearchMethod;
14187
14188var errors = __webpack_require__(70);
14189
14190/**
14191 * Creates a search method to be used in clients
14192 * @param {string} queryParam the name of the attribute used for the query
14193 * @param {string} url the url
14194 * @return {function} the search method
14195 */
14196function buildSearchMethod(queryParam, url) {
14197  /**
14198   * The search method. Prepares the data and send the query to Algolia.
14199   * @param {string} query the string used for query search
14200   * @param {object}
14200 args additional parameters to send with the search
14201   * @param {function} [callback] the callback to be called with the client gets the answer
14202   * @return {undefined|Promise} If the callback is not provided then this methods returns a Promise
14203   */
14204  return function search(query, args, callback) {
14205    // warn V2 users on how to search
14206    if (typeof query === 'function' && typeof args === 'object' ||
14207      typeof callback === 'object') {
14208      // .search(query, params, cb)
14209      // .search(cb, params)
14210      throw new errors.AlgoliaSearchError('index.search usage is index.search(query, params, cb)');
14211    }
14212
14213    // Normalizing the function signature
14214    if (arguments.length === 0 || typeof query === 'function') {
14215      // Usage : .search(), .search(cb)
14216      callback = query;
14217      query = '';
14218    } else if (arguments.length === 1 || typeof args === 'function') {
14219      // Usage : .search(query/args), .search(query, cb)
14220      callback = args;
14221      args = undefined;
14222    }
14223    // At this point we have 3 arguments with values
14224
14225    // Usage : .search(args) // careful: typeof null === 'object'
14226    if (typeof query === 'object' && query !== null) {
14227      args = query;
14228      query = undefined;
14229    } else if (query === undefined || query === null) { // .search(undefined/null)
14230      query = '';
14231    }
14232
14233    var params = '';
14234
14235    if (query !== undefined) {
14236      params += queryParam + '=' + encodeURIComponent(query);
14237    }
14238
14239    var additionalUA;
14240    if (args !== undefined) {
14241      if (args.additionalUA) {
14242        additionalUA = args.additionalUA;
14243        delete args.additionalUA;
14244      }
14245      // `_getSearchParams` will augment params, do not be fooled by the = versus += from previous if
14246      params = this.as._getSearchParams(args, params);
14247    }
14248
14249
14250    return this._search(params, url, callback, additionalUA);
14251  };
14252}
14253
14254
14255/***/ }),
14256/* 222 */
14257/***/ (function(module, exports, __webpack_require__) {
14258
14259var foreach = __webpack_require__(71);
14260
14261module.exports = function merge(destination/* , sources */) {
14262  var sources = Array.prototype.slice.call(arguments);
14263
14264  foreach(sources, function(source) {
14265    for (var keyName in source) {
14266      if (source.hasOwnProperty(keyName)) {
14267        if (typeof destination[keyName] === 'object' && typeof source[keyName] === 'object') {
14268          destination[keyName] = merge({}, destination[keyName], source[keyName]);
14269        } else if (source[keyName] !== undefined) {
14270          destination[keyName] = source[keyName];
14271        }
14272      }
14273    }
14274  });
14275
14276  return destination;
14277};
14278
14279
14280/***/ }),
14281/* 223 */
14282/***/ (function(module, exports, __webpack_require__) {
14283
14284module.exports = function omit(obj, test) {
14285  var keys = __webpack_require__(539);
14286  var foreach = __webpack_require__(71);
14287
14288  var filtered = {};
14289
14290  foreach(keys(obj), function doFilter(keyName) {
14291    if (test(keyName) !== true) {
14292      filtered[keyName] = obj[keyName];
14293    }
14294  });
14295
14296  return filtered;
14297};
14298
14299
14300/***/ }),
14301/* 224 */
14302/***/ (function(module, exports) {
14303
14304// Parse cloud does not supports setTimeout
14305// We do not store a setTimeout reference in the client everytime
14306// We only fallback to a fake setTimeout when not available
14307// setTimeout cannot be override globally sadly
14308module.exports = function exitPromise(fn, _setTimeout) {
14309  _setTimeout(fn, 0);
14310};
14311
14312
14313/***/ }),
14314/* 225 */
14315/***/ (function(module, exports, __webpack_require__) {
14316
14317"use strict";
14318
14319
14320Object.defineProperty(exports, "__esModule", {
14321    value: true
14322});
14323var settings = drupalSettings.capcom_header.algolia_api_data;
14324var indexName = exports.indexName = settings.index_name;
14325var appId = exports.appId = settings.app_id;
14326var apiKey = exports.apiKey = settings.api_key;
14327var benchmarkIndexName = exports.benchmarkIndexName = getBenchmarkIndexName(drupalSettings);
14328
14329function getBenchmarkIndexName(drupalSettings) {
14330    var indexName = null;
14331    try {
14332        indexName = drupalSettings.capcom_benchmark.algolia_api_data.index_name;
14333    } catch (e) {}
14334
14335    return indexName;
14336}
14337
14338/***/ }),
14339/* 226 */
14340/***/ (function(module, exports, __webpack_require__) {
14341
14342"use strict";
14343
14344
14345Object.defineProperty(exports, "__esModule", {
14346  value: true
14347});
14348var renderAlgoliaHightligthed = exports.renderAlgoliaHightligthed = function renderAlgoliaHightligthed(item, key) {
14349  return {
14350    __html: item._highlightResult[key].value
14351  };
14352};
14353
14354/***/ }),
14355/* 227 */
14356/***/ (function(module, exports, __webpack_require__) {
14357
14358"use strict";
14359
14360
14361__webpack_require__(228);
14362
14363__webpack_require__(229);
14364
14365__webpack_require__(230);
14366
14367__webpack_require__(233);
14368
14369__webpack_require__(432);
14370
14371var _react = __webpack_require__(32);
14372
14373var _react2 = _interopRequireDefault(_react);
14374
14375var _reactDom = __webpack_require__(448);
14376
14377var _reactDom2 = _interopRequireDefault(_reactDom);
14378
14379var _SubHeader = __webpack_require__(534);
14380
14381var _SubHeader2 = _interopRequireDefault(_SubHeader);
14382
14383var _BenchmarkSearchPage = __webpack_require__(557);
14384
14385var _BenchmarkSearchPage2 = _interopRequireDefault(_BenchmarkSearchPage);
14386
14387var _Attendee = __webpack_require__(565);
14388
14389var _Attendee2 = _interopRequireDefault(_Attendee);
14390
14391function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14392
14393var menuItems = document.querySelectorAll('[data-header-role=menu-item]');
14394var searchInput = document.querySelector('[data-header-role=search-input]');
14395var subHeaderWrapper = document.querySelector('[data-header-role=sub-header-wrapper]');
14396var subHeaderItems = document.querySelectorAll('[data-header-role=sub-header-item]');
14397var subHeaderClose = document.querySelector('[data-header-role=sub-header-close]');
14398var blurContainer = document.querySelector('[data-header-role=blur-container]');
14399var mobileNavButton = document.querySelector('[data-mobile-nav-role=button]');
14400var mobileNavWrapper = document.querySelector('[data-mobile-nav-role=wrapper]');
14401var body = document.querySelector('body');
14402var benchmarkSearch = document.querySelector('[data-role=benchmark-search]');
14403var attendee = document.querySelector('[data-role=attendee]');
14404
14405menuItems.forEach(function (element) {
14406    element.addEventListener('click', function (e) {
14407        e.preventDefault();
14408        var self = element;
14409        var event = new CustomEvent('CapComMenuItemClick', {
14410            'detail': {
14411                itemId: self.dataset.headerItemId
14412            }
14413        });
14414        subHeaderWrapper.dispatchEvent(event);
14415    });
14416});
14417
14418mobileNavButton.addEventListener('click', function (e) {
14419    var eventName = 'CapComMobileNavOpen';
14420    if (mobileNavButton.classList.contains('is-open')) {
14421        eventName = 'CapComMobileNavClose';
14422    }
14423    var event = new CustomEvent(eventName);
14424    document.dispatchEvent(event);
14425});
14426
14427['keyup', 'change', 'search'].forEach(function (eventName) {
14428    searchInput.addEventListener(eventName, function (e) {
14429        e.preventDefault();
14430        var event = new CustomEvent('CapComSearch', {
14431            'detail': {
14432                search: searchInput.value
14433            }
14434        });
14435        subHeaderWrapper.dispatchEvent(event);
14436    });
14437});
14438
14439document.addEventListener('CapComMenuOpen', function (e) {
14440    subHeaderWrapper.classList.add('is-visible');
14441    body.classList.remove('has-nav-opened');
14442    mobileNavWrapper.classList.add('is-SubNav-open');
14443    blurContainer.classList.add('has-modal-opened');
14444    window.setTimeout(function () {
14445        var element = document.querySelector('[data-header-role=blur-container].has-modal-opened');
14446        if (element) {
14447            element.classList.add('is-blurred');
14448        }
14449    }, 500);
14450});
14451
14452document.addEventListener('CapComMenuClose', function (e) {
14453    subHeaderWrapper.classList.remove('is-visible');
14454    blurContainer.classList.remove('is-blurred');
14455    blurContainer.classList.remove('has-modal-opened');
14456    body.classList.remove('has-nav-opened');
14457    mobileNavWrapper.classList.remove('is-SubNav-open');
14458});
14459
14460document.addEventListener('CapComMobileNavOpen', function (e) {
14461    mobileNavButton.classList.add('is-open');
14462    mobileNavButton.classList.remove('is-closed');
14463    body.classList.add('has-nav-opened');
14464});
14465
14466document.addEventListener('CapComMobileNavClose', function (e) {
14467    mobileNavButton.classList.add('is-closed');
14468    mobileNavButton.classList.remove('is-open');
14469    body.classList.remove('has-nav-opened');
14470});
14471
14472_reactDom2.default.render(_react2.default.createElement(_SubHeader2.default, { initialChildren: subHeaderItems, close: subHeaderClose }), subHeaderWrapper);
14473if (benchmarkSearch) {
14474    _reactDom2.default.render(_react2.default.createElement(_BenchmarkSearchPage2.default, null), document.querySelector('[data-role=benchmark-search]'));
14475}
14476if (attendee) {
14477    _reactDom2.default.render(_react2.default.createElement(_Attendee2.default, { eventParam: attendee.getAttribute('data-event-code') ? attendee.getAttribute('data-event-code') : attendee.getAttribute('data-event-id') }), attendee);
14478}
14479
14480/***/ }),
14481/* 228 */
14482/***/ (function(module, exports, __webpack_require__) {
14483
14484__webpack_require__(105);
14485__webpack_require__(107);
14486__webpack_require__(114);
14487__webpack_require__(116);
14488module.exports = __webpack_require__(18).Map;
14489
14490
14491/***/ }),
14492/* 229 */
14493/***/ (function(module, exports, __webpack_require__) {
14494
14495__webpack_require__(105);
14496__webpack_require__(107);
14497__webpack_require__(114);
14498__webpack_require__(121);
14499module.exports = __webpack_require__(18).Set;
14500
14501
14502/***/ }),
14503/* 230 */
14504/***/ (function(module, exports, __webpack_require__) {
14505
14506__webpack_require__(231).polyfill()
14507
14508
14509/***/ }),
14510/* 231 */
14511/***/ (function(module, exports, __webpack_require__) {
14512
14513/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(232)
14514  , root = typeof window === 'undefined' ? global : window
14515  , vendors = ['moz', 'webkit']
14516  , suffix = 'AnimationFrame'
14517  , raf = root['request' + suffix]
14518  , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]
14519
14520for(var i = 0; !raf && i < vendors.length; i++) {
14521  raf = root[vendors[i] + 'Request' + suffix]
14522  caf = root[vendors[i] + 'Cancel' + suffix]
14523      || root[vendors[i] + 'CancelRequest' + suffix]
14524}
14525
14526// Some versions of FF have rAF but not cAF
14527if(!raf || !caf) {
14528  var last = 0
14529    , id = 0
14530    , queue = []
14531    , frameDuration = 1000 / 60
14532
14533  raf = function(callback) {
14534    if(queue.length === 0) {
14535      var _now = now()
14536        , next = Math.max(0, frameDuration - (_now - last))
14537      last = next + _now
14538      setTimeout(function() {
14539        var cp = queue.slice(0)
14540        // Clear queue here to prevent
14541        // callbacks from appending listeners
14542        // to the current frame's queue
14543        queue.length = 0
14544        for(var i = 0; i < cp.length; i++) {
14545          if(!cp[i].cancelled) {
14546            try{
14547              cp[i].callback(last)
14548            } catch(e) {
14549              setTimeout(function() { throw e }, 0)
14550            }
14551          }
14552        }
14553      }, Math.round(next))
14554    }
14555    queue.push({
14556      handle: ++id,
14557      callback: callback,
14558      cancelled: false
14559    })
14560    return id
14561  }
14562
14563  caf = function(handle) {
14564    for(var i = 0; i < queue.length; i++) {
14565      if(queue[i].handle === handle) {
14566        queue[i].cancelled = true
14567      }
14568    }
14569  }
14570}
14571
14572module.exports = function(fn) {
14573  // Wrap in a new function to prevent
14574  // `cancel` potentially being assigned
14575  // to the native rAF function
14576  return raf.call(root, fn)
14577}
14578module.exports.cancel = function() {
14579  caf.apply(root, arguments)
14580}
14581module.exports.polyfill = function(object) {
14582  if (!object) {
14583    object = root;
14584  }
14585  object.requestAnimationFrame = raf
14586  object.cancelAnimationFrame = caf
14587}
14588
14589/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64)))
14590
14591/***/ }),
14592/* 232 */
14593/***/ (function(module, exports, __webpack_require__) {
14594
14595/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.12.2
14596(function() {
14597  var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;
14598
14599  if ((typeof performance !== "undefined" && performance !== null) && performance.now) {
14600    module.exports = function() {
14601      return performance.now();
14602    };
14603  } else if ((typeof process !== "undefined" && process !== null) && process.hrtime) {
14604    module.exports = function() {
14605      return (getNanoSeconds() - nodeLoadTime) / 1e6;
14606    };
14607    hrtime = process.hrtime;
14608    getNanoSeconds = function() {
14609      var hr;
14610      hr = hrtime();
14611      return hr[0] * 1e9 + hr[1];
14612    };
14613    moduleLoadTime = getNanoSeconds();
14614    upTime = process.uptime() * 1e9;
14615    nodeLoadTime = moduleLoadTime - upTime;
14616  } else if (Date.now) {
14617    module.exports = function() {
14618      return Date.now() - loadTime;
14619    };
14620    loadTime = Date.now();
14621  } else {
14622    module.exports = function() {
14623      return new Date().getTime() - loadTime;
14624    };
14625    loadTime = new Date().getTime();
14626  }
14627
14628}).call(this);
14629
14630
14631/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
14632
14633/***/ }),
14634/* 233 */
14635/***/ (function(module, exports, __webpack_require__) {
14636
14637"use strict";
14638/* WEBPACK VAR INJECTION */(function(global) {
14639
14640__webpack_require__(234);
14641
14642__webpack_require__(428);
14643
14644__webpack_require__(429);
14645
14646if (global._babelPolyfill) {
14647  throw new Error("only one instance of babel-polyfill is allowed");
14648}
14649global._babelPolyfill = true;
14650
14651var DEFINE_PROPERTY = "defineProperty";
14652function define(O, key, value) {
14653  O[key] || Object[DEFINE_PROPERTY](O, key, {
14654    writable: true,
14655    configurable: true,
14656    value: value
14657  });
14658}
14659
14660define(String.prototype, "padLeft", "".padStart);
14661define(String.prototype, "padRight", "".padEnd);
14662
14663"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) {
14664  [][key] && define(Array, key, Function.call.bind([][key]));
14665});
14666/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64)))
14667
14668/***/ }),
14669/* 234 */
14670/***/ (function(module, exports, __webpack_require__) {
14671
14672__webpack_require__(235);
14673__webpack_require__(237);
14674__webpack_require__(238);
14675__webpack_require__(239);
14676__webpack_require__(240);
14677__webpack_require__(241);
14678__webpack_require__(242);
14679__webpack_require__(243);
14680__webpack_require__(244);
14681__webpack_require__(245);
14682__webpack_require__(246);
14683__webpack_require__(247);
14684__webpack_require__(248);
14685__webpack_require__(249);
14686__webpack_require__(250);
14687__webpack_require__(251);
14688__webpack_require__(253);
14689__webpack_require__(105);
14690__webpack_require__(254);
14691__webpack_require__(255);
14692__webpack_require__(256);
14693__webpack_require__(257);
14694__webpack_require__(258);
14695__webpack_require__(259);
14696__webpack_require__(260);
14697__webpack_require__(261);
14698__webpack_require__(262);
14699__webpack_require__(263);
14700__webpack_require__(264);
14701__webpack_require__(265);
14702__webpack_require__(266);
14703__webpack_require__(267);
14704__webpack_require__(268);
14705__webpack_require__(269);
14706__webpack_require__(270);
14707__webpack_require__(271);
14708__webpack_require__(272);
14709__webpack_require__(273);
14710__webpack_require__(274);
14711__webpack_require__(275);
14712__webpack_require__(276);
14713__webpack_require__(277);
14714__webpack_require__(278);
14715__webpack_require__(279);
14716__webpack_require__(280);
14717__webpack_require__(281);
14718__webpack_require__(282);
14719__webpack_require__(283);
14720__webpack_require__(284);
14721__webpack_require__(285);
14722__webpack_require__(286);
14723__webpack_require__(287);
14724__webpack_require__(288);
14725__webpack_require__(289);
14726__webpack_require__(290);
14727__webpack_require__(107);
14728__webpack_require__(291);
14729__webpack_require__(292);
14730__webpack_require__(293);
14731__webpack_require__(294);
14732__webpack_require__(295);
14733__webpack_require__(296);
14734__webpack_require__(297);
14735__webpack_require__(298);
14736__webpack_require__(299);
14737__webpack_require__(300);
14738__webpack_require__(301);
14739__webpack_require__(302);
14740__webpack_require__(303);
14741__webpack_require__(304);
14742__webpack_require__(305);
14743__webpack_require__(306);
14744__webpack_require__(307);
14745__webpack_require__(308);
14746__webpack_require__(309);
14747__webpack_require__(310);
14748__webpack_require__(311);
14749__webpack_require__(313);
14750__webpack_require__(314);
14751__webpack_require__(316);
14752__webpack_require__(317);
14753__webpack_require__(318);
14754__webpack_require__(319);
14755__webpack_require__(320);
14756__webpack_require__(321);
14757__webpack_require__(322);
14758__webpack_require__(324);
14759__webpack_require__(325);
14760__webpack_require__(326);
14761__webpack_require__(327);
14762__webpack_require__(328);
14763__webpack_require__(329);
14764__webpack_require__(330);
14765__webpack_require__(331);
14766__webpack_require__(332);
14767__webpack_require__(333);
14768__webpack_require__(334);
14769__webpack_require__(335);
14770__webpack_require__(336);
14771__webpack_require__(115);
14772__webpack_require__(337);
14773__webpack_require__(338);
14774__webpack_require__(175);
14775__webpack_require__(339);
14776__webpack_require__(340);
14777__webpack_require__(341);
14778__webpack_require__(342);
14779__webpack_require__(343);
14780__webpack_require__(116);
14781__webpack_require__(121);
14782__webpack_require__(178);
14783__webpack_require__(344);
14784__webpack_require__(345);
14785__webpack_require__(346);
14786__webpack_require__(347);
14787__webpack_require__(348);
14788__webpack_require__(349);
14789__webpack_require__(350);
14790__webpack_require__(351);
14791__webpack_require__(352);
14792__webpack_require__(353);
14793__webpack_require__(354);
14794__webpack_require__(355);
14795__webpack_require__(356);
14796__webpack_require__(357);
14797__webpack_require__(358);
14798__webpack_require__(359);
14799__webpack_require__(360);
14800__webpack_require__(361);
14801__webpack_require__(362);
14802__webpack_require__(363);
14803__webpack_require__(364);
14804__webpack_require__(365);
14805__webpack_require__(366);
14806__webpack_require__(367);
14807__webpack_require__(368);
14808__webpack_require__(369);
14809__webpack_require__(370);
14810__webpack_require__(371);
14811__webpack_require__(372);
14812__webpack_require__(373);
14813__webpack_require__(374);
14814__webpack_require__(375);
14815__webpack_require__(376);
14816__webpack_require__(377);
14817__webpack_require__(378);
14818__webpack_require__(379);
14819__webpack_require__(380);
14820__webpack_require__(381);
14821__webpack_require__(382);
14822__webpack_require__(383);
14823__webpack_require__(384);
14824__webpack_require__(385);
14825__webpack_require__(386);
14826__webpack_require__(387);
14827__webpack_require__(388);
14828__webpack_require__(389);
14829__webpack_require__(390);
14830__webpack_require__(391);
14831__webpack_require__(392);
14832__webpack_require__(393);
14833__webpack_require__(394);
14834__webpack_require__(395);
14835__webpack_require__(396);
14836__webpack_require__(397);
14837__webpack_require__(398);
14838__webpack_require__(399);
14839__webpack_require__(400);
14840__webpack_require__(401);
14841__webpack_require__(402);
14842__webpack_require__(403);
14843__webpack_require__(404);
14844__webpack_require__(405);
14845__webpack_require__(406);
14846__webpack_require__(407);
14847__webpack_require__(408);
14848__webpack_require__(409);
14849__webpack_require__(410);
14850__webpack_require__(411);
14851__webpack_require__(412);
14852__webpack_require__(413);
14853__webpack_require__(414);
14854__webpack_require__(415);
14855__webpack_require__(416);
14856__webpack_require__(417);
14857__webpack_require__(418);
14858__webpack_require__(419);
14859__webpack_require__(420);
14860__webpack_require__(421);
14861__webpack_require__(422);
14862__webpack_require__(423);
14863__webpack_require__(424);
14864__webpack_require__(425);
14865__webpack_require__(426);
14866__webpack_require__(427);
14867__webpack_require__(114);
14868module.exports = __webpack_require__(18);
14869
14870
14871/***/ }),
14872/* 235 */
14873/***/ (function(module, exports, __webpack_require__) {
14874
14875"use strict";
14876
14877// ECMAScript 6 symbols shim
14878var global = __webpack_require__(5);
14879var has = __webpack_require__(24);
14880var DESCRIPTORS = __webpack_require__(12);
14881var $export = __webpack_require__(0);
14882var redefine = __webpack_require__(19);
14883var META = __webpack_require__(46).KEY;
14884var $fails = __webpack_require__(6);
14885var shared = __webpack_require__(82);
14886var setToStringTag = __webpack_require__(62);
14887var uid = __webpack_require__(49);
14888var wks = __webpack_require__(9);
14889var wksExt = __webpack_require__(162);
14890var wksDefine = __webpack_require__(122);
14891var enumKeys = __webpack_require__(236);
14892var isArray = __webpack_require__(87);
14893var anObject = __webpack_require__(4);
14894var isObject = __webpack_require__(7);
14895var toIObject = __webpack_require__(25);
14896var toPrimitive = __webpack_require__(33);
14897var createDesc = __webpack_require__(50);
14898var _create = __webpack_require__(51);
14899var gOPNExt = __webpack_require__(163);
14900var $GOPD = __webpack_require__(27);
14901var $DP = __webpack_require__(11);
14902var $keys = __webpack_require__(52);
14903var gOPD = $GOPD.f;
14904var dP = $DP.f;
14905var gOPN = gOPNExt.f;
14906var $Symbol = global.Symbol;
14907var $JSON = global.JSON;
14908var _stringify = $JSON && $JSON.stringify;
14909var PROTOTYPE = 'prototype';
14910var HIDDEN = wks('_hidden');
14911var TO_PRIMITIVE = wks('toPrimitive');
14912var isEnum = {}.propertyIsEnumerable;
14913var SymbolRegistry = shared('symbol-registry');
14914var AllSymbols = shared('symbols');
vendor: 8,622 bytes, lines 14915-15154
14915var OPSymbols = shared('op-symbols');
14916var ObjectProto = Object[PROTOTYPE];
14917var USE_NATIVE = typeof $Symbol == 'function';
14918var QObject = global.QObject;
14919// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
14920var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
14921
14922// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
14923var setSymbolDesc = DESCRIPTORS && $fails(function () {
14924  return _create(dP({}, 'a', {
14925    get: function () { return dP(this, 'a', { value: 7 }).a; }
14926  })).a != 7;
14927}) ? function (it, key, D) {
14928  var protoDesc = gOPD(ObjectProto, key);
14929  if (protoDesc) delete ObjectProto[key];
14930  dP(it, key, D);
14931  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
14932} : dP;
14933
14934var wrap = function (tag) {
14935  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
14936  sym._k = tag;
14937  return sym;
14938};
14939
14940var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
14941  return typeof it == 'symbol';
14942} : function (it) {
14943  return it instanceof $Symbol;
14944};
14945
14946var $defineProperty = function defineProperty(it, key, D) {
14947  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
14948  anObject(it);
14949  key = toPrimitive(key, true);
14950  anObject(D);
14951  if (has(AllSymbols, key)) {
14952    if (!D.enumerable) {
14953      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
14954      it[HIDDEN][key] = true;
14955    } else {
14956      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
14957      D = _create(D, { enumerable: createDesc(0, false) });
14958    } return setSymbolDesc(it, key, D);
14959  } return dP(it, key, D);
14960};
14961var $defineProperties = function defineProperties(it, P) {
14962  anObject(it);
14963  var keys = enumKeys(P = toIObject(P));
14964  var i = 0;
14965  var l = keys.length;
14966  var key;
14967  while (l > i) $defineProperty(it, key = keys[i++], P[key]);
14968  return it;
14969};
14970var $create = function create(it, P) {
14971  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
14972};
14973var $propertyIsEnumerable = function propertyIsEnumerable(key) {
14974  var E = isEnum.call(this, key = toPrimitive(key, true));
14975  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
14976  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
14977};
14978var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
14979  it = toIObject(it);
14980  key = toPrimitive(key, true);
14981  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
14982  var D = gOPD(it, key);
14983  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
14984  return D;
14985};
14986var $getOwnPropertyNames = function getOwnPropertyNames(it) {
14987  var names = gOPN(toIObject(it));
14988  var result = [];
14989  var i = 0;
14990  var key;
14991  while (names.length > i) {
14992    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
14993  } return result;
14994};
14995var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
14996  var IS_OP = it === ObjectProto;
14997  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
14998  var result = [];
14999  var i = 0;
15000  var key;
15001  while (names.length > i) {
15002    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
15003  } return result;
15004};
15005
15006// 19.4.1.1 Symbol([description])
15007if (!USE_NATIVE) {
15008  $Symbol = function Symbol() {
15009    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
15010    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
15011    var $set = function (value) {
15012      if (this === ObjectProto) $set.call(OPSymbols, value);
15013      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
15014      setSymbolDesc(this, tag, createDesc(1, value));
15015    };
15016    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
15017    return wrap(tag);
15018  };
15019  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
15020    return this._k;
15021  });
15022
15023  $GOPD.f = $getOwnPropertyDescriptor;
15024  $DP.f = $defineProperty;
15025  __webpack_require__(58).f = gOPNExt.f = $getOwnPropertyNames;
15026  __webpack_require__(75).f = $propertyIsEnumerable;
15027  __webpack_require__(86).f = $getOwnPropertySymbols;
15028
15029  if (DESCRIPTORS && !__webpack_require__(44)) {
15030    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
15031  }
15032
15033  wksExt.f = function (name) {
15034    return wrap(wks(name));
15035  };
15036}
15037
15038$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
15039
15040for (var es6Symbols = (
15041  // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
15042  'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
15043).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
15044
15045for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
15046
15047$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
15048  // 19.4.2.1 Symbol.for(key)
15049  'for': function (key) {
15050    return has(SymbolRegistry, key += '')
15051      ? SymbolRegistry[key]
15052      : SymbolRegistry[key] = $Symbol(key);
15053  },
15054  // 19.4.2.5 Symbol.keyFor(sym)
15055  keyFor: function keyFor(sym) {
15056    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
15057    for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
15058  },
15059  useSetter: function () { setter = true; },
15060  useSimple: function () { setter = false; }
15061});
15062
15063$export($export.S + $export.F * !USE_NATIVE, 'Object', {
15064  // 19.1.2.2 Object.create(O [, Properties])
15065  create: $create,
15066  // 19.1.2.4 Object.defineProperty(O, P, Attributes)
15067  defineProperty: $defineProperty,
15068  // 19.1.2.3 Object.defineProperties(O, Properties)
15069  defineProperties: $defineProperties,
15070  // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
15071  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
15072  // 19.1.2.7 Object.getOwnPropertyNames(O)
15073  getOwnPropertyNames: $getOwnPropertyNames,
15074  // 19.1.2.8 Object.getOwnPropertySymbols(O)
15075  getOwnPropertySymbols: $getOwnPropertySymbols
15076});
15077
15078// 24.3.2 JSON.stringify(value [, replacer [, space]])
15079$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
15080  var S = $Symbol();
15081  // MS Edge converts symbol values to JSON as {}
15082  // WebKit converts symbol values to JSON as null
15083  // V8 throws on boxed symbols
15084  return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
15085})), 'JSON', {
15086  stringify: function stringify(it) {
15087    var args = [it];
15088    var i = 1;
15089    var replacer, $replacer;
15090    while (arguments.length > i) args.push(arguments[i++]);
15091    $replacer = replacer = args[1];
15092    if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
15093    if (!isArray(replacer)) replacer = function (key, value) {
15094      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
15095      if (!isSymbol(value)) return value;
15096    };
15097    args[1] = replacer;
15098    return _stringify.apply($JSON, args);
15099  }
15100});
15101
15102// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
15103$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(20)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
15104// 19.4.3.5 Symbol.prototype[@@toStringTag]
15105setToStringTag($Symbol, 'Symbol');
15106// 20.2.1.9 Math[@@toStringTag]
15107setToStringTag(Math, 'Math', true);
15108// 24.3.3 JSON[@@toStringTag]
15109setToStringTag(global.JSON, 'JSON', true);
15110
15111
15112/***/ }),
15113/* 236 */
15114/***/ (function(module, exports, __webpack_require__) {
15115
15116// all enumerable object keys, includes symbols
15117var getKeys = __webpack_require__(52);
15118var gOPS = __webpack_require__(86);
15119var pIE = __webpack_require__(75);
15120module.exports = function (it) {
15121  var result = getKeys(it);
15122  var getSymbols = gOPS.f;
15123  if (getSymbols) {
15124    var symbols = getSymbols(it);
15125    var isEnum = pIE.f;
15126    var i = 0;
15127    var key;
15128    while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
15129  } return result;
15130};
15131
15132
15133/***/ }),
15134/* 237 */
15135/***/ (function(module, exports, __webpack_require__) {
15136
15137var $export = __webpack_require__(0);
15138// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
15139$export($export.S, 'Object', { create: __webpack_require__(51) });
15140
15141
15142/***/ }),
15143/* 238 */
15144/***/ (function(module, exports, __webpack_require__) {
15145
15146var $export = __webpack_require__(0);
15147// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
15148$export($export.S + $export.F * !__webpack_require__(12), 'Object', { defineProperty: __webpack_require__(11).f });
15149
15150
15151/***/ }),
15152/* 239 */
15153/***/ (function(module, exports, __webpack_require__) {
15154
vendor: 45,181 bytes, lines 15155-16897
15155var $export = __webpack_require__(0);
15156// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)
15157$export($export.S + $export.F * !__webpack_require__(12), 'Object', { defineProperties: __webpack_require__(157) });
15158
15159
15160/***/ }),
15161/* 240 */
15162/***/ (function(module, exports, __webpack_require__) {
15163
15164// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
15165var toIObject = __webpack_require__(25);
15166var $getOwnPropertyDescriptor = __webpack_require__(27).f;
15167
15168__webpack_require__(36)('getOwnPropertyDescriptor', function () {
15169  return function getOwnPropertyDescriptor(it, key) {
15170    return $getOwnPropertyDescriptor(toIObject(it), key);
15171  };
15172});
15173
15174
15175/***/ }),
15176/* 241 */
15177/***/ (function(module, exports, __webpack_require__) {
15178
15179// 19.1.2.9 Object.getPrototypeOf(O)
15180var toObject = __webpack_require__(15);
15181var $getPrototypeOf = __webpack_require__(26);
15182
15183__webpack_require__(36)('getPrototypeOf', function () {
15184  return function getPrototypeOf(it) {
15185    return $getPrototypeOf(toObject(it));
15186  };
15187});
15188
15189
15190/***/ }),
15191/* 242 */
15192/***/ (function(module, exports, __webpack_require__) {
15193
15194// 19.1.2.14 Object.keys(O)
15195var toObject = __webpack_require__(15);
15196var $keys = __webpack_require__(52);
15197
15198__webpack_require__(36)('keys', function () {
15199  return function keys(it) {
15200    return $keys(toObject(it));
15201  };
15202});
15203
15204
15205/***/ }),
15206/* 243 */
15207/***/ (function(module, exports, __webpack_require__) {
15208
15209// 19.1.2.7 Object.getOwnPropertyNames(O)
15210__webpack_require__(36)('getOwnPropertyNames', function () {
15211  return __webpack_require__(163).f;
15212});
15213
15214
15215/***/ }),
15216/* 244 */
15217/***/ (function(module, exports, __webpack_require__) {
15218
15219// 19.1.2.5 Object.freeze(O)
15220var isObject = __webpack_require__(7);
15221var meta = __webpack_require__(46).onFreeze;
15222
15223__webpack_require__(36)('freeze', function ($freeze) {
15224  return function freeze(it) {
15225    return $freeze && isObject(it) ? $freeze(meta(it)) : it;
15226  };
15227});
15228
15229
15230/***/ }),
15231/* 245 */
15232/***/ (function(module, exports, __webpack_require__) {
15233
15234// 19.1.2.17 Object.seal(O)
15235var isObject = __webpack_require__(7);
15236var meta = __webpack_require__(46).onFreeze;
15237
15238__webpack_require__(36)('seal', function ($seal) {
15239  return function seal(it) {
15240    return $seal && isObject(it) ? $seal(meta(it)) : it;
15241  };
15242});
15243
15244
15245/***/ }),
15246/* 246 */
15247/***/ (function(module, exports, __webpack_require__) {
15248
15249// 19.1.2.15 Object.preventExtensions(O)
15250var isObject = __webpack_require__(7);
15251var meta = __webpack_require__(46).onFreeze;
15252
15253__webpack_require__(36)('preventExtensions', function ($preventExtensions) {
15254  return function preventExtensions(it) {
15255    return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;
15256  };
15257});
15258
15259
15260/***/ }),
15261/* 247 */
15262/***/ (function(module, exports, __webpack_require__) {
15263
15264// 19.1.2.12 Object.isFrozen(O)
15265var isObject = __webpack_require__(7);
15266
15267__webpack_require__(36)('isFrozen', function ($isFrozen) {
15268  return function isFrozen(it) {
15269    return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
15270  };
15271});
15272
15273
15274/***/ }),
15275/* 248 */
15276/***/ (function(module, exports, __webpack_require__) {
15277
15278// 19.1.2.13 Object.isSealed(O)
15279var isObject = __webpack_require__(7);
15280
15281__webpack_require__(36)('isSealed', function ($isSealed) {
15282  return function isSealed(it) {
15283    return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
15284  };
15285});
15286
15287
15288/***/ }),
15289/* 249 */
15290/***/ (function(module, exports, __webpack_require__) {
15291
15292// 19.1.2.11 Object.isExtensible(O)
15293var isObject = __webpack_require__(7);
15294
15295__webpack_require__(36)('isExtensible', function ($isExtensible) {
15296  return function isExtensible(it) {
15297    return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
15298  };
15299});
15300
15301
15302/***/ }),
15303/* 250 */
15304/***/ (function(module, exports, __webpack_require__) {
15305
15306// 19.1.3.1 Object.assign(target, source)
15307var $export = __webpack_require__(0);
15308
15309$export($export.S + $export.F, 'Object', { assign: __webpack_require__(164) });
15310
15311
15312/***/ }),
15313/* 251 */
15314/***/ (function(module, exports, __webpack_require__) {
15315
15316// 19.1.3.10 Object.is(value1, value2)
15317var $export = __webpack_require__(0);
15318$export($export.S, 'Object', { is: __webpack_require__(252) });
15319
15320
15321/***/ }),
15322/* 252 */
15323/***/ (function(module, exports) {
15324
15325// 7.2.9 SameValue(x, y)
15326module.exports = Object.is || function is(x, y) {
15327  // eslint-disable-next-line no-self-compare
15328  return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
15329};
15330
15331
15332/***/ }),
15333/* 253 */
15334/***/ (function(module, exports, __webpack_require__) {
15335
15336// 19.1.3.19 Object.setPrototypeOf(O, proto)
15337var $export = __webpack_require__(0);
15338$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(120).set });
15339
15340
15341/***/ }),
15342/* 254 */
15343/***/ (function(module, exports, __webpack_require__) {
15344
15345// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
15346var $export = __webpack_require__(0);
15347
15348$export($export.P, 'Function', { bind: __webpack_require__(165) });
15349
15350
15351/***/ }),
15352/* 255 */
15353/***/ (function(module, exports, __webpack_require__) {
15354
15355var dP = __webpack_require__(11).f;
15356var FProto = Function.prototype;
15357var nameRE = /^\s*function ([^ (]*)/;
15358var NAME = 'name';
15359
15360// 19.2.4.2 name
15361NAME in FProto || __webpack_require__(12) && dP(FProto, NAME, {
15362  configurable: true,
15363  get: function () {
15364    try {
15365      return ('' + this).match(nameRE)[1];
15366    } catch (e) {
15367      return '';
15368    }
15369  }
15370});
15371
15372
15373/***/ }),
15374/* 256 */
15375/***/ (function(module, exports, __webpack_require__) {
15376
15377"use strict";
15378
15379var isObject = __webpack_require__(7);
15380var getPrototypeOf = __webpack_require__(26);
15381var HAS_INSTANCE = __webpack_require__(9)('hasInstance');
15382var FunctionProto = Function.prototype;
15383// 19.2.3.6 Function.prototype[@@hasInstance](V)
15384if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(11).f(FunctionProto, HAS_INSTANCE, { value: function (O) {
15385  if (typeof this != 'function' || !isObject(O)) return false;
15386  if (!isObject(this.prototype)) return O instanceof this;
15387  // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:
15388  while (O = getPrototypeOf(O)) if (this.prototype === O) return true;
15389  return false;
15390} });
15391
15392
15393/***/ }),
15394/* 257 */
15395/***/ (function(module, exports, __webpack_require__) {
15396
15397var $export = __webpack_require__(0);
15398var $parseInt = __webpack_require__(167);
15399// 18.2.5 parseInt(string, radix)
15400$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });
15401
15402
15403/***/ }),
15404/* 258 */
15405/***/ (function(module, exports, __webpack_require__) {
15406
15407var $export = __webpack_require__(0);
15408var $parseFloat = __webpack_require__(168);
15409// 18.2.4 parseFloat(string)
15410$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });
15411
15412
15413/***/ }),
15414/* 259 */
15415/***/ (function(module, exports, __webpack_require__) {
15416
15417"use strict";
15418
15419var global = __webpack_require__(5);
15420var has = __webpack_require__(24);
15421var cof = __webpack_require__(29);
15422var inheritIfRequired = __webpack_require__(119);
15423var toPrimitive = __webpack_require__(33);
15424var fails = __webpack_require__(6);
15425var gOPN = __webpack_require__(58).f;
15426var gOPD = __webpack_require__(27).f;
15427var dP = __webpack_require__(11).f;
15428var $trim = __webpack_require__(65).trim;
15429var NUMBER = 'Number';
15430var $Number = global[NUMBER];
15431var Base = $Number;
15432var proto = $Number.prototype;
15433// Opera ~12 has broken Object#toString
15434var BROKEN_COF = cof(__webpack_require__(51)(proto)) == NUMBER;
15435var TRIM = 'trim' in String.prototype;
15436
15437// 7.1.3 ToNumber(argument)
15438var toNumber = function (argument) {
15439  var it = toPrimitive(argument, false);
15440  if (typeof it == 'string' && it.length > 2) {
15441    it = TRIM ? it.trim() : $trim(it, 3);
15442    var first = it.charCodeAt(0);
15443    var third, radix, maxCode;
15444    if (first === 43 || first === 45) {
15445      third = it.charCodeAt(2);
15446      if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix
15447    } else if (first === 48) {
15448      switch (it.charCodeAt(1)) {
15449        case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i
15450        case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i
15451        default: return +it;
15452      }
15453      for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {
15454        code = digits.charCodeAt(i);
15455        // parseInt parses a string to a first unavailable symbol
15456        // but ToNumber should return NaN if a string contains unavailable symbols
15457        if (code < 48 || code > maxCode) return NaN;
15458      } return parseInt(digits, radix);
15459    }
15460  } return +it;
15461};
15462
15463if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {
15464  $Number = function Number(value) {
15465    var it = arguments.length < 1 ? 0 : value;
15466    var that = this;
15467    return that instanceof $Number
15468      // check on 1..constructor(foo) case
15469      && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)
15470        ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);
15471  };
15472  for (var keys = __webpack_require__(12) ? gOPN(Base) : (
15473    // ES3:
15474    'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +
15475    // ES6 (in case, if modules with ES6 Number statics required before):
15476    'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +
15477    'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'
15478  ).split(','), j = 0, key; keys.length > j; j++) {
15479    if (has(Base, key = keys[j]) && !has($Number, key)) {
15480      dP($Number, key, gOPD(Base, key));
15481    }
15482  }
15483  $Number.prototype = proto;
15484  proto.constructor = $Number;
15485  __webpack_require__(19)(global, NUMBER, $Number);
15486}
15487
15488
15489/***/ }),
15490/* 260 */
15491/***/ (function(module, exports, __webpack_require__) {
15492
15493"use strict";
15494
15495var $export = __webpack_require__(0);
15496var toInteger = __webpack_require__(34);
15497var aNumberValue = __webpack_require__(169);
15498var repeat = __webpack_require__(124);
15499var $toFixed = 1.0.toFixed;
15500var floor = Math.floor;
15501var data = [0, 0, 0, 0, 0, 0];
15502var ERROR = 'Number.toFixed: incorrect invocation!';
15503var ZERO = '0';
15504
15505var multiply = function (n, c) {
15506  var i = -1;
15507  var c2 = c;
15508  while (++i < 6) {
15509    c2 += n * data[i];
15510    data[i] = c2 % 1e7;
15511    c2 = floor(c2 / 1e7);
15512  }
15513};
15514var divide = function (n) {
15515  var i = 6;
15516  var c = 0;
15517  while (--i >= 0) {
15518    c += data[i];
15519    data[i] = floor(c / n);
15520    c = (c % n) * 1e7;
15521  }
15522};
15523var numToString = function () {
15524  var i = 6;
15525  var s = '';
15526  while (--i >= 0) {
15527    if (s !== '' || i === 0 || data[i] !== 0) {
15528      var t = String(data[i]);
15529      s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;
15530    }
15531  } return s;
15532};
15533var pow = function (x, n, acc) {
15534  return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);
15535};
15536var log = function (x) {
15537  var n = 0;
15538  var x2 = x;
15539  while (x2 >= 4096) {
15540    n += 12;
15541    x2 /= 4096;
15542  }
15543  while (x2 >= 2) {
15544    n += 1;
15545    x2 /= 2;
15546  } return n;
15547};
15548
15549$export($export.P + $export.F * (!!$toFixed && (
15550  0.00008.toFixed(3) !== '0.000' ||
15551  0.9.toFixed(0) !== '1' ||
15552  1.255.toFixed(2) !== '1.25' ||
15553  1000000000000000128.0.toFixed(0) !== '1000000000000000128'
15554) || !__webpack_require__(6)(function () {
15555  // V8 ~ Android 4.3-
15556  $toFixed.call({});
15557})), 'Number', {
15558  toFixed: function toFixed(fractionDigits) {
15559    var x = aNumberValue(this, ERROR);
15560    var f = toInteger(fractionDigits);
15561    var s = '';
15562    var m = ZERO;
15563    var e, z, j, k;
15564    if (f < 0 || f > 20) throw RangeError(ERROR);
15565    // eslint-disable-next-line no-self-compare
15566    if (x != x) return 'NaN';
15567    if (x <= -1e21 || x >= 1e21) return String(x);
15568    if (x < 0) {
15569      s = '-';
15570      x = -x;
15571    }
15572    if (x > 1e-21) {
15573      e = log(x * pow(2, 69, 1)) - 69;
15574      z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);
15575      z *= 0x10000000000000;
15576      e = 52 - e;
15577      if (e > 0) {
15578        multiply(0, z);
15579        j = f;
15580        while (j >= 7) {
15581          multiply(1e7, 0);
15582          j -= 7;
15583        }
15584        multiply(pow(10, j, 1), 0);
15585        j = e - 1;
15586        while (j >= 23) {
15587          divide(1 << 23);
15588          j -= 23;
15589        }
15590        divide(1 << j);
15591        multiply(1, 1);
15592        divide(2);
15593        m = numToString();
15594      } else {
15595        multiply(0, z);
15596        multiply(1 << -e, 0);
15597        m = numToString() + repeat.call(ZERO, f);
15598      }
15599    }
15600    if (f > 0) {
15601      k = m.length;
15602      m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));
15603    } else {
15604      m = s + m;
15605    } return m;
15606  }
15607});
15608
15609
15610/***/ }),
15611/* 261 */
15612/***/ (function(module, exports, __webpack_require__) {
15613
15614"use strict";
15615
15616var $export = __webpack_require__(0);
15617var $fails = __webpack_require__(6);
15618var aNumberValue = __webpack_require__(169);
15619var $toPrecision = 1.0.toPrecision;
15620
15621$export($export.P + $export.F * ($fails(function () {
15622  // IE7-
15623  return $toPrecision.call(1, undefined) !== '1';
15624}) || !$fails(function () {
15625  // V8 ~ Android 4.3-
15626  $toPrecision.call({});
15627})), 'Number', {
15628  toPrecision: function toPrecision(precision) {
15629    var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');
15630    return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);
15631  }
15632});
15633
15634
15635/***/ }),
15636/* 262 */
15637/***/ (function(module, exports, __webpack_require__) {
15638
15639// 20.1.2.1 Number.EPSILON
15640var $export = __webpack_require__(0);
15641
15642$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });
15643
15644
15645/***/ }),
15646/* 263 */
15647/***/ (function(module, exports, __webpack_require__) {
15648
15649// 20.1.2.2 Number.isFinite(number)
15650var $export = __webpack_require__(0);
15651var _isFinite = __webpack_require__(5).isFinite;
15652
15653$export($export.S, 'Number', {
15654  isFinite: function isFinite(it) {
15655    return typeof it == 'number' && _isFinite(it);
15656  }
15657});
15658
15659
15660/***/ }),
15661/* 264 */
15662/***/ (function(module, exports, __webpack_require__) {
15663
15664// 20.1.2.3 Number.isInteger(number)
15665var $export = __webpack_require__(0);
15666
15667$export($export.S, 'Number', { isInteger: __webpack_require__(170) });
15668
15669
15670/***/ }),
15671/* 265 */
15672/***/ (function(module, exports, __webpack_require__) {
15673
15674// 20.1.2.4 Number.isNaN(number)
15675var $export = __webpack_require__(0);
15676
15677$export($export.S, 'Number', {
15678  isNaN: function isNaN(number) {
15679    // eslint-disable-next-line no-self-compare
15680    return number != number;
15681  }
15682});
15683
15684
15685/***/ }),
15686/* 266 */
15687/***/ (function(module, exports, __webpack_require__) {
15688
15689// 20.1.2.5 Number.isSafeInteger(number)
15690var $export = __webpack_require__(0);
15691var isInteger = __webpack_require__(170);
15692var abs = Math.abs;
15693
15694$export($export.S, 'Number', {
15695  isSafeInteger: function isSafeInteger(number) {
15696    return isInteger(number) && abs(number) <= 0x1fffffffffffff;
15697  }
15698});
15699
15700
15701/***/ }),
15702/* 267 */
15703/***/ (function(module, exports, __webpack_require__) {
15704
15705// 20.1.2.6 Number.MAX_SAFE_INTEGER
15706var $export = __webpack_require__(0);
15707
15708$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
15709
15710
15711/***/ }),
15712/* 268 */
15713/***/ (function(module, exports, __webpack_require__) {
15714
15715// 20.1.2.10 Number.MIN_SAFE_INTEGER
15716var $export = __webpack_require__(0);
15717
15718$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
15719
15720
15721/***/ }),
15722/* 269 */
15723/***/ (function(module, exports, __webpack_require__) {
15724
15725var $export = __webpack_require__(0);
15726var $parseFloat = __webpack_require__(168);
15727// 20.1.2.12 Number.parseFloat(string)
15728$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });
15729
15730
15731/***/ }),
15732/* 270 */
15733/***/ (function(module, exports, __webpack_require__) {
15734
15735var $export = __webpack_require__(0);
15736var $parseInt = __webpack_require__(167);
15737// 20.1.2.13 Number.parseInt(string, radix)
15738$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });
15739
15740
15741/***/ }),
15742/* 271 */
15743/***/ (function(module, exports, __webpack_require__) {
15744
15745// 20.2.2.3 Math.acosh(x)
15746var $export = __webpack_require__(0);
15747var log1p = __webpack_require__(171);
15748var sqrt = Math.sqrt;
15749var $acosh = Math.acosh;
15750
15751$export($export.S + $export.F * !($acosh
15752  // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
15753  && Math.floor($acosh(Number.MAX_VALUE)) == 710
15754  // Tor Browser bug: Math.acosh(Infinity) -> NaN
15755  && $acosh(Infinity) == Infinity
15756), 'Math', {
15757  acosh: function acosh(x) {
15758    return (x = +x) < 1 ? NaN : x > 94906265.62425156
15759      ? Math.log(x) + Math.LN2
15760      : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
15761  }
15762});
15763
15764
15765/***/ }),
15766/* 272 */
15767/***/ (function(module, exports, __webpack_require__) {
15768
15769// 20.2.2.5 Math.asinh(x)
15770var $export = __webpack_require__(0);
15771var $asinh = Math.asinh;
15772
15773function asinh(x) {
15774  return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));
15775}
15776
15777// Tor Browser bug: Math.asinh(0) -> -0
15778$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
15779
15780
15781/***/ }),
15782/* 273 */
15783/***/ (function(module, exports, __webpack_require__) {
15784
15785// 20.2.2.7 Math.atanh(x)
15786var $export = __webpack_require__(0);
15787var $atanh = Math.atanh;
15788
15789// Tor Browser bug: Math.atanh(-0) -> 0
15790$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
15791  atanh: function atanh(x) {
15792    return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
15793  }
15794});
15795
15796
15797/***/ }),
15798/* 274 */
15799/***/ (function(module, exports, __webpack_require__) {
15800
15801// 20.2.2.9 Math.cbrt(x)
15802var $export = __webpack_require__(0);
15803var sign = __webpack_require__(125);
15804
15805$export($export.S, 'Math', {
15806  cbrt: function cbrt(x) {
15807    return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
15808  }
15809});
15810
15811
15812/***/ }),
15813/* 275 */
15814/***/ (function(module, exports, __webpack_require__) {
15815
15816// 20.2.2.11 Math.clz32(x)
15817var $export = __webpack_require__(0);
15818
15819$export($export.S, 'Math', {
15820  clz32: function clz32(x) {
15821    return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
15822  }
15823});
15824
15825
15826/***/ }),
15827/* 276 */
15828/***/ (function(module, exports, __webpack_require__) {
15829
15830// 20.2.2.12 Math.cosh(x)
15831var $export = __webpack_require__(0);
15832var exp = Math.exp;
15833
15834$export($export.S, 'Math', {
15835  cosh: function cosh(x) {
15836    return (exp(x = +x) + exp(-x)) / 2;
15837  }
15838});
15839
15840
15841/***/ }),
15842/* 277 */
15843/***/ (function(module, exports, __webpack_require__) {
15844
15845// 20.2.2.14 Math.expm1(x)
15846var $export = __webpack_require__(0);
15847var $expm1 = __webpack_require__(126);
15848
15849$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });
15850
15851
15852/***/ }),
15853/* 278 */
15854/***/ (function(module, exports, __webpack_require__) {
15855
15856// 20.2.2.16 Math.fround(x)
15857var $export = __webpack_require__(0);
15858
15859$export($export.S, 'Math', { fround: __webpack_require__(172) });
15860
15861
15862/***/ }),
15863/* 279 */
15864/***/ (function(module, exports, __webpack_require__) {
15865
15866// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
15867var $export = __webpack_require__(0);
15868var abs = Math.abs;
15869
15870$export($export.S, 'Math', {
15871  hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
15872    var sum = 0;
15873    var i = 0;
15874    var aLen = arguments.length;
15875    var larg = 0;
15876    var arg, div;
15877    while (i < aLen) {
15878      arg = abs(arguments[i++]);
15879      if (larg < arg) {
15880        div = larg / arg;
15881        sum = sum * div * div + 1;
15882        larg = arg;
15883      } else if (arg > 0) {
15884        div = arg / larg;
15885        sum += div * div;
15886      } else sum += arg;
15887    }
15888    return larg === Infinity ? Infinity : larg * Math.sqrt(sum);
15889  }
15890});
15891
15892
15893/***/ }),
15894/* 280 */
15895/***/ (function(module, exports, __webpack_require__) {
15896
15897// 20.2.2.18 Math.imul(x, y)
15898var $export = __webpack_require__(0);
15899var $imul = Math.imul;
15900
15901// some WebKit versions fails with big numbers, some has wrong arity
15902$export($export.S + $export.F * __webpack_require__(6)(function () {
15903  return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
15904}), 'Math', {
15905  imul: function imul(x, y) {
15906    var UINT16 = 0xffff;
15907    var xn = +x;
15908    var yn = +y;
15909    var xl = UINT16 & xn;
15910    var yl = UINT16 & yn;
15911    return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);
15912  }
15913});
15914
15915
15916/***/ }),
15917/* 281 */
15918/***/ (function(module, exports, __webpack_require__) {
15919
15920// 20.2.2.21 Math.log10(x)
15921var $export = __webpack_require__(0);
15922
15923$export($export.S, 'Math', {
15924  log10: function log10(x) {
15925    return Math.log(x) * Math.LOG10E;
15926  }
15927});
15928
15929
15930/***/ }),
15931/* 282 */
15932/***/ (function(module, exports, __webpack_require__) {
15933
15934// 20.2.2.20 Math.log1p(x)
15935var $export = __webpack_require__(0);
15936
15937$export($export.S, 'Math', { log1p: __webpack_require__(171) });
15938
15939
15940/***/ }),
15941/* 283 */
15942/***/ (function(module, exports, __webpack_require__) {
15943
15944// 20.2.2.22 Math.log2(x)
15945var $export = __webpack_require__(0);
15946
15947$export($export.S, 'Math', {
15948  log2: function log2(x) {
15949    return Math.log(x) / Math.LN2;
15950  }
15951});
15952
15953
15954/***/ }),
15955/* 284 */
15956/***/ (function(module, exports, __webpack_require__) {
15957
15958// 20.2.2.28 Math.sign(x)
15959var $export = __webpack_require__(0);
15960
15961$export($export.S, 'Math', { sign: __webpack_require__(125) });
15962
15963
15964/***/ }),
15965/* 285 */
15966/***/ (function(module, exports, __webpack_require__) {
15967
15968// 20.2.2.30 Math.sinh(x)
15969var $export = __webpack_require__(0);
15970var expm1 = __webpack_require__(126);
15971var exp = Math.exp;
15972
15973// V8 near Chromium 38 has a problem with very small numbers
15974$export($export.S + $export.F * __webpack_require__(6)(function () {
15975  return !Math.sinh(-2e-17) != -2e-17;
15976}), 'Math', {
15977  sinh: function sinh(x) {
15978    return Math.abs(x = +x) < 1
15979      ? (expm1(x) - expm1(-x)) / 2
15980      : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);
15981  }
15982});
15983
15984
15985/***/ }),
15986/* 286 */
15987/***/ (function(module, exports, __webpack_require__) {
15988
15989// 20.2.2.33 Math.tanh(x)
15990var $export = __webpack_require__(0);
15991var expm1 = __webpack_require__(126);
15992var exp = Math.exp;
15993
15994$export($export.S, 'Math', {
15995  tanh: function tanh(x) {
15996    var a = expm1(x = +x);
15997    var b = expm1(-x);
15998    return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));
15999  }
16000});
16001
16002
16003/***/ }),
16004/* 287 */
16005/***/ (function(module, exports, __webpack_require__) {
16006
16007// 20.2.2.34 Math.trunc(x)
16008var $export = __webpack_require__(0);
16009
16010$export($export.S, 'Math', {
16011  trunc: function trunc(it) {
16012    return (it > 0 ? Math.floor : Math.ceil)(it);
16013  }
16014});
16015
16016
16017/***/ }),
16018/* 288 */
16019/***/ (function(module, exports, __webpack_require__) {
16020
16021var $export = __webpack_require__(0);
16022var toAbsoluteIndex = __webpack_require__(53);
16023var fromCharCode = String.fromCharCode;
16024var $fromCodePoint = String.fromCodePoint;
16025
16026// length should be 1, old FF problem
16027$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
16028  // 21.1.2.2 String.fromCodePoint(...codePoints)
16029  fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
16030    var res = [];
16031    var aLen = arguments.length;
16032    var i = 0;
16033    var code;
16034    while (aLen > i) {
16035      code = +arguments[i++];
16036      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
16037      res.push(code < 0x10000
16038        ? fromCharCode(code)
16039        : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
16040      );
16041    } return res.join('');
16042  }
16043});
16044
16045
16046/***/ }),
16047/* 289 */
16048/***/ (function(module, exports, __webpack_require__) {
16049
16050var $export = __webpack_require__(0);
16051var toIObject = __webpack_require__(25);
16052var toLength = __webpack_require__(13);
16053
16054$export($export.S, 'String', {
16055  // 21.1.2.4 String.raw(callSite, ...substitutions)
16056  raw: function raw(callSite) {
16057    var tpl = toIObject(callSite.raw);
16058    var len = toLength(tpl.length);
16059    var aLen = arguments.length;
16060    var res = [];
16061    var i = 0;
16062    while (len > i) {
16063      res.push(String(tpl[i++]));
16064      if (i < aLen) res.push(String(arguments[i]));
16065    } return res.join('');
16066  }
16067});
16068
16069
16070/***/ }),
16071/* 290 */
16072/***/ (function(module, exports, __webpack_require__) {
16073
16074"use strict";
16075
16076// 21.1.3.25 String.prototype.trim()
16077__webpack_require__(65)('trim', function ($trim) {
16078  return function trim() {
16079    return $trim(this, 3);
16080  };
16081});
16082
16083
16084/***/ }),
16085/* 291 */
16086/***/ (function(module, exports, __webpack_require__) {
16087
16088"use strict";
16089
16090var $export = __webpack_require__(0);
16091var $at = __webpack_require__(108)(false);
16092$export($export.P, 'String', {
16093  // 21.1.3.3 String.prototype.codePointAt(pos)
16094  codePointAt: function codePointAt(pos) {
16095    return $at(this, pos);
16096  }
16097});
16098
16099
16100/***/ }),
16101/* 292 */
16102/***/ (function(module, exports, __webpack_require__) {
16103
16104"use strict";
16105// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])
16106
16107var $export = __webpack_require__(0);
16108var toLength = __webpack_require__(13);
16109var context = __webpack_require__(127);
16110var ENDS_WITH = 'endsWith';
16111var $endsWith = ''[ENDS_WITH];
16112
16113$export($export.P + $export.F * __webpack_require__(128)(ENDS_WITH), 'String', {
16114  endsWith: function endsWith(searchString /* , endPosition = @length */) {
16115    var that = context(this, searchString, ENDS_WITH);
16116    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
16117    var len = toLength(that.length);
16118    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
16119    var search = String(searchString);
16120    return $endsWith
16121      ? $endsWith.call(that, search, end)
16122      : that.slice(end - search.length, end) === search;
16123  }
16124});
16125
16126
16127/***/ }),
16128/* 293 */
16129/***/ (function(module, exports, __webpack_require__) {
16130
16131"use strict";
16132// 21.1.3.7 String.prototype.includes(searchString, position = 0)
16133
16134var $export = __webpack_require__(0);
16135var context = __webpack_require__(127);
16136var INCLUDES = 'includes';
16137
16138$export($export.P + $export.F * __webpack_require__(128)(INCLUDES), 'String', {
16139  includes: function includes(searchString /* , position = 0 */) {
16140    return !!~context(this, searchString, INCLUDES)
16141      .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
16142  }
16143});
16144
16145
16146/***/ }),
16147/* 294 */
16148/***/ (function(module, exports, __webpack_require__) {
16149
16150var $export = __webpack_require__(0);
16151
16152$export($export.P, 'String', {
16153  // 21.1.3.13 String.prototype.repeat(count)
16154  repeat: __webpack_require__(124)
16155});
16156
16157
16158/***/ }),
16159/* 295 */
16160/***/ (function(module, exports, __webpack_require__) {
16161
16162"use strict";
16163// 21.1.3.18 String.prototype.startsWith(searchString [, position ])
16164
16165var $export = __webpack_require__(0);
16166var toLength = __webpack_require__(13);
16167var context = __webpack_require__(127);
16168var STARTS_WITH = 'startsWith';
16169var $startsWith = ''[STARTS_WITH];
16170
16171$export($export.P + $export.F * __webpack_require__(128)(STARTS_WITH), 'String', {
16172  startsWith: function startsWith(searchString /* , position = 0 */) {
16173    var that = context(this, searchString, STARTS_WITH);
16174    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
16175    var search = String(searchString);
16176    return $startsWith
16177      ? $startsWith.call(that, search, index)
16178      : that.slice(index, index + search.length) === search;
16179  }
16180});
16181
16182
16183/***/ }),
16184/* 296 */
16185/***/ (function(module, exports, __webpack_require__) {
16186
16187"use strict";
16188
16189// B.2.3.2 String.prototype.anchor(name)
16190__webpack_require__(21)('anchor', function (createHTML) {
16191  return function anchor(name) {
16192    return createHTML(this, 'a', 'name', name);
16193  };
16194});
16195
16196
16197/***/ }),
16198/* 297 */
16199/***/ (function(module, exports, __webpack_require__) {
16200
16201"use strict";
16202
16203// B.2.3.3 String.prototype.big()
16204__webpack_require__(21)('big', function (createHTML) {
16205  return function big() {
16206    return createHTML(this, 'big', '', '');
16207  };
16208});
16209
16210
16211/***/ }),
16212/* 298 */
16213/***/ (function(module, exports, __webpack_require__) {
16214
16215"use strict";
16216
16217// B.2.3.4 String.prototype.blink()
16218__webpack_require__(21)('blink', function (createHTML) {
16219  return function blink() {
16220    return createHTML(this, 'blink', '', '');
16221  };
16222});
16223
16224
16225/***/ }),
16226/* 299 */
16227/***/ (function(module, exports, __webpack_require__) {
16228
16229"use strict";
16230
16231// B.2.3.5 String.prototype.bold()
16232__webpack_require__(21)('bold', function (createHTML) {
16233  return function bold() {
16234    return createHTML(this, 'b', '', '');
16235  };
16236});
16237
16238
16239/***/ }),
16240/* 300 */
16241/***/ (function(module, exports, __webpack_require__) {
16242
16243"use strict";
16244
16245// B.2.3.6 String.prototype.fixed()
16246__webpack_require__(21)('fixed', function (createHTML) {
16247  return function fixed() {
16248    return createHTML(this, 'tt', '', '');
16249  };
16250});
16251
16252
16253/***/ }),
16254/* 301 */
16255/***/ (function(module, exports, __webpack_require__) {
16256
16257"use strict";
16258
16259// B.2.3.7 String.prototype.fontcolor(color)
16260__webpack_require__(21)('fontcolor', function (createHTML) {
16261  return function fontcolor(color) {
16262    return createHTML(this, 'font', 'color', color);
16263  };
16264});
16265
16266
16267/***/ }),
16268/* 302 */
16269/***/ (function(module, exports, __webpack_require__) {
16270
16271"use strict";
16272
16273// B.2.3.8 String.prototype.fontsize(size)
16274__webpack_require__(21)('fontsize', function (createHTML) {
16275  return function fontsize(size) {
16276    return createHTML(this, 'font', 'size', size);
16277  };
16278});
16279
16280
16281/***/ }),
16282/* 303 */
16283/***/ (function(module, exports, __webpack_require__) {
16284
16285"use strict";
16286
16287// B.2.3.9 String.prototype.italics()
16288__webpack_require__(21)('italics', function (createHTML) {
16289  return function italics() {
16290    return createHTML(this, 'i', '', '');
16291  };
16292});
16293
16294
16295/***/ }),
16296/* 304 */
16297/***/ (function(module, exports, __webpack_require__) {
16298
16299"use strict";
16300
16301// B.2.3.10 String.prototype.link(url)
16302__webpack_require__(21)('link', function (createHTML) {
16303  return function link(url) {
16304    return createHTML(this, 'a', 'href', url);
16305  };
16306});
16307
16308
16309/***/ }),
16310/* 305 */
16311/***/ (function(module, exports, __webpack_require__) {
16312
16313"use strict";
16314
16315// B.2.3.11 String.prototype.small()
16316__webpack_require__(21)('small', function (createHTML) {
16317  return function small() {
16318    return createHTML(this, 'small', '', '');
16319  };
16320});
16321
16322
16323/***/ }),
16324/* 306 */
16325/***/ (function(module, exports, __webpack_require__) {
16326
16327"use strict";
16328
16329// B.2.3.12 String.prototype.strike()
16330__webpack_require__(21)('strike', function (createHTML) {
16331  return function strike() {
16332    return createHTML(this, 'strike', '', '');
16333  };
16334});
16335
16336
16337/***/ }),
16338/* 307 */
16339/***/ (function(module, exports, __webpack_require__) {
16340
16341"use strict";
16342
16343// B.2.3.13 String.prototype.sub()
16344__webpack_require__(21)('sub', function (createHTML) {
16345  return function sub() {
16346    return createHTML(this, 'sub', '', '');
16347  };
16348});
16349
16350
16351/***/ }),
16352/* 308 */
16353/***/ (function(module, exports, __webpack_require__) {
16354
16355"use strict";
16356
16357// B.2.3.14 String.prototype.sup()
16358__webpack_require__(21)('sup', function (createHTML) {
16359  return function sup() {
16360    return createHTML(this, 'sup', '', '');
16361  };
16362});
16363
16364
16365/***/ }),
16366/* 309 */
16367/***/ (function(module, exports, __webpack_require__) {
16368
16369// 20.3.3.1 / 15.9.4.4 Date.now()
16370var $export = __webpack_require__(0);
16371
16372$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });
16373
16374
16375/***/ }),
16376/* 310 */
16377/***/ (function(module, exports, __webpack_require__) {
16378
16379"use strict";
16380
16381var $export = __webpack_require__(0);
16382var toObject = __webpack_require__(15);
16383var toPrimitive = __webpack_require__(33);
16384
16385$export($export.P + $export.F * __webpack_require__(6)(function () {
16386  return new Date(NaN).toJSON() !== null
16387    || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;
16388}), 'Date', {
16389  // eslint-disable-next-line no-unused-vars
16390  toJSON: function toJSON(key) {
16391    var O = toObject(this);
16392    var pv = toPrimitive(O);
16393    return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();
16394  }
16395});
16396
16397
16398/***/ }),
16399/* 311 */
16400/***/ (function(module, exports, __webpack_require__) {
16401
16402// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
16403var $export = __webpack_require__(0);
16404var toISOString = __webpack_require__(312);
16405
16406// PhantomJS / old WebKit has a broken implementations
16407$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {
16408  toISOString: toISOString
16409});
16410
16411
16412/***/ }),
16413/* 312 */
16414/***/ (function(module, exports, __webpack_require__) {
16415
16416"use strict";
16417
16418// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()
16419var fails = __webpack_require__(6);
16420var getTime = Date.prototype.getTime;
16421var $toISOString = Date.prototype.toISOString;
16422
16423var lz = function (num) {
16424  return num > 9 ? num : '0' + num;
16425};
16426
16427// PhantomJS / old WebKit has a broken implementations
16428module.exports = (fails(function () {
16429  return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';
16430}) || !fails(function () {
16431  $toISOString.call(new Date(NaN));
16432})) ? function toISOString() {
16433  if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');
16434  var d = this;
16435  var y = d.getUTCFullYear();
16436  var m = d.getUTCMilliseconds();
16437  var s = y < 0 ? '-' : y > 9999 ? '+' : '';
16438  return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +
16439    '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +
16440    'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +
16441    ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';
16442} : $toISOString;
16443
16444
16445/***/ }),
16446/* 313 */
16447/***/ (function(module, exports, __webpack_require__) {
16448
16449var DateProto = Date.prototype;
16450var INVALID_DATE = 'Invalid Date';
16451var TO_STRING = 'toString';
16452var $toString = DateProto[TO_STRING];
16453var getTime = DateProto.getTime;
16454if (new Date(NaN) + '' != INVALID_DATE) {
16455  __webpack_require__(19)(DateProto, TO_STRING, function toString() {
16456    var value = getTime.call(this);
16457    // eslint-disable-next-line no-self-compare
16458    return value === value ? $toString.call(this) : INVALID_DATE;
16459  });
16460}
16461
16462
16463/***/ }),
16464/* 314 */
16465/***/ (function(module, exports, __webpack_require__) {
16466
16467var TO_PRIMITIVE = __webpack_require__(9)('toPrimitive');
16468var proto = Date.prototype;
16469
16470if (!(TO_PRIMITIVE in proto)) __webpack_require__(20)(proto, TO_PRIMITIVE, __webpack_require__(315));
16471
16472
16473/***/ }),
16474/* 315 */
16475/***/ (function(module, exports, __webpack_require__) {
16476
16477"use strict";
16478
16479var anObject = __webpack_require__(4);
16480var toPrimitive = __webpack_require__(33);
16481var NUMBER = 'number';
16482
16483module.exports = function (hint) {
16484  if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');
16485  return toPrimitive(anObject(this), hint != NUMBER);
16486};
16487
16488
16489/***/ }),
16490/* 316 */
16491/***/ (function(module, exports, __webpack_require__) {
16492
16493// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
16494var $export = __webpack_require__(0);
16495
16496$export($export.S, 'Array', { isArray: __webpack_require__(87) });
16497
16498
16499/***/ }),
16500/* 317 */
16501/***/ (function(module, exports, __webpack_require__) {
16502
16503"use strict";
16504
16505var ctx = __webpack_require__(30);
16506var $export = __webpack_require__(0);
16507var toObject = __webpack_require__(15);
16508var call = __webpack_require__(161);
16509var isArrayIter = __webpack_require__(117);
16510var toLength = __webpack_require__(13);
16511var createProperty = __webpack_require__(129);
16512var getIterFn = __webpack_require__(118);
16513
16514$export($export.S + $export.F * !__webpack_require__(85)(function (iter) { Array.from(iter); }), 'Array', {
16515  // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
16516  from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
16517    var O = toObject(arrayLike);
16518    var C = typeof this == 'function' ? this : Array;
16519    var aLen = arguments.length;
16520    var mapfn = aLen > 1 ? arguments[1] : undefined;
16521    var mapping = mapfn !== undefined;
16522    var index = 0;
16523    var iterFn = getIterFn(O);
16524    var length, result, step, iterator;
16525    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
16526    // if object isn't iterable or it's array with default iterator - use simple case
16527    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
16528      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
16529        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
16530      }
16531    } else {
16532      length = toLength(O.length);
16533      for (result = new C(length); length > index; index++) {
16534        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
16535      }
16536    }
16537    result.length = index;
16538    return result;
16539  }
16540});
16541
16542
16543/***/ }),
16544/* 318 */
16545/***/ (function(module, exports, __webpack_require__) {
16546
16547"use strict";
16548
16549var $export = __webpack_require__(0);
16550var createProperty = __webpack_require__(129);
16551
16552// WebKit Array.of isn't generic
16553$export($export.S + $export.F * __webpack_require__(6)(function () {
16554  function F() { /* empty */ }
16555  return !(Array.of.call(F) instanceof F);
16556}), 'Array', {
16557  // 22.1.2.3 Array.of( ...items)
16558  of: function of(/* ...args */) {
16559    var index = 0;
16560    var aLen = arguments.length;
16561    var result = new (typeof this == 'function' ? this : Array)(aLen);
16562    while (aLen > index) createProperty(result, index, arguments[index++]);
16563    result.length = aLen;
16564    return result;
16565  }
16566});
16567
16568
16569/***/ }),
16570/* 319 */
16571/***/ (function(module, exports, __webpack_require__) {
16572
16573"use strict";
16574
16575// 22.1.3.13 Array.prototype.join(separator)
16576var $export = __webpack_require__(0);
16577var toIObject = __webpack_require__(25);
16578var arrayJoin = [].join;
16579
16580// fallback for not array-like strings
16581$export($export.P + $export.F * (__webpack_require__(74) != Object || !__webpack_require__(31)(arrayJoin)), 'Array', {
16582  join: function join(separator) {
16583    return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);
16584  }
16585});
16586
16587
16588/***/ }),
16589/* 320 */
16590/***/ (function(module, exports, __webpack_require__) {
16591
16592"use strict";
16593
16594var $export = __webpack_require__(0);
16595var html = __webpack_require__(113);
16596var cof = __webpack_require__(29);
16597var toAbsoluteIndex = __webpack_require__(53);
16598var toLength = __webpack_require__(13);
16599var arraySlice = [].slice;
16600
16601// fallback for not array-like ES3 strings and DOM objects
16602$export($export.P + $export.F * __webpack_require__(6)(function () {
16603  if (html) arraySlice.call(html);
16604}), 'Array', {
16605  slice: function slice(begin, end) {
16606    var len = toLength(this.length);
16607    var klass = cof(this);
16608    end = end === undefined ? len : end;
16609    if (klass == 'Array') return arraySlice.call(this, begin, end);
16610    var start = toAbsoluteIndex(begin, len);
16611    var upTo = toAbsoluteIndex(end, len);
16612    var size = toLength(upTo - start);
16613    var cloned = new Array(size);
16614    var i = 0;
16615    for (; i < size; i++) cloned[i] = klass == 'String'
16616      ? this.charAt(start + i)
16617      : this[start + i];
16618    return cloned;
16619  }
16620});
16621
16622
16623/***/ }),
16624/* 321 */
16625/***/ (function(module, exports, __webpack_require__) {
16626
16627"use strict";
16628
16629var $export = __webpack_require__(0);
16630var aFunction = __webpack_require__(17);
16631var toObject = __webpack_require__(15);
16632var fails = __webpack_require__(6);
16633var $sort = [].sort;
16634var test = [1, 2, 3];
16635
16636$export($export.P + $export.F * (fails(function () {
16637  // IE8-
16638  test.sort(undefined);
16639}) || !fails(function () {
16640  // V8 bug
16641  test.sort(null);
16642  // Old WebKit
16643}) || !__webpack_require__(31)($sort)), 'Array', {
16644  // 22.1.3.25 Array.prototype.sort(comparefn)
16645  sort: function sort(comparefn) {
16646    return comparefn === undefined
16647      ? $sort.call(toObject(this))
16648      : $sort.call(toObject(this), aFunction(comparefn));
16649  }
16650});
16651
16652
16653/***/ }),
16654/* 322 */
16655/***/ (function(module, exports, __webpack_require__) {
16656
16657"use strict";
16658
16659var $export = __webpack_require__(0);
16660var $forEach = __webpack_require__(37)(0);
16661var STRICT = __webpack_require__(31)([].forEach, true);
16662
16663$export($export.P + $export.F * !STRICT, 'Array', {
16664  // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
16665  forEach: function forEach(callbackfn /* , thisArg */) {
16666    return $forEach(this, callbackfn, arguments[1]);
16667  }
16668});
16669
16670
16671/***/ }),
16672/* 323 */
16673/***/ (function(module, exports, __webpack_require__) {
16674
16675var isObject = __webpack_require__(7);
16676var isArray = __webpack_require__(87);
16677var SPECIES = __webpack_require__(9)('species');
16678
16679module.exports = function (original) {
16680  var C;
16681  if (isArray(original)) {
16682    C = original.constructor;
16683    // cross-realm fallback
16684    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
16685    if (isObject(C)) {
16686      C = C[SPECIES];
16687      if (C === null) C = undefined;
16688    }
16689  } return C === undefined ? Array : C;
16690};
16691
16692
16693/***/ }),
16694/* 324 */
16695/***/ (function(module, exports, __webpack_require__) {
16696
16697"use strict";
16698
16699var $export = __webpack_require__(0);
16700var $map = __webpack_require__(37)(1);
16701
16702$export($export.P + $export.F * !__webpack_require__(31)([].map, true), 'Array', {
16703  // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
16704  map: function map(callbackfn /* , thisArg */) {
16705    return $map(this, callbackfn, arguments[1]);
16706  }
16707});
16708
16709
16710/***/ }),
16711/* 325 */
16712/***/ (function(module, exports, __webpack_require__) {
16713
16714"use strict";
16715
16716var $export = __webpack_require__(0);
16717var $filter = __webpack_require__(37)(2);
16718
16719$export($export.P + $export.F * !__webpack_require__(31)([].filter, true), 'Array', {
16720  // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
16721  filter: function filter(callbackfn /* , thisArg */) {
16722    return $filter(this, callbackfn, arguments[1]);
16723  }
16724});
16725
16726
16727/***/ }),
16728/* 326 */
16729/***/ (function(module, exports, __webpack_require__) {
16730
16731"use strict";
16732
16733var $export = __webpack_require__(0);
16734var $some = __webpack_require__(37)(3);
16735
16736$export($export.P + $export.F * !__webpack_require__(31)([].some, true), 'Array', {
16737  // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])
16738  some: function some(callbackfn /* , thisArg */) {
16739    return $some(this, callbackfn, arguments[1]);
16740  }
16741});
16742
16743
16744/***/ }),
16745/* 327 */
16746/***/ (function(module, exports, __webpack_require__) {
16747
16748"use strict";
16749
16750var $export = __webpack_require__(0);
16751var $every = __webpack_require__(37)(4);
16752
16753$export($export.P + $export.F * !__webpack_require__(31)([].every, true), 'Array', {
16754  // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])
16755  every: function every(callbackfn /* , thisArg */) {
16756    return $every(this, callbackfn, arguments[1]);
16757  }
16758});
16759
16760
16761/***/ }),
16762/* 328 */
16763/***/ (function(module, exports, __webpack_require__) {
16764
16765"use strict";
16766
16767var $export = __webpack_require__(0);
16768var $reduce = __webpack_require__(173);
16769
16770$export($export.P + $export.F * !__webpack_require__(31)([].reduce, true), 'Array', {
16771  // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
16772  reduce: function reduce(callbackfn /* , initialValue */) {
16773    return $reduce(this, callbackfn, arguments.length, arguments[1], false);
16774  }
16775});
16776
16777
16778/***/ }),
16779/* 329 */
16780/***/ (function(module, exports, __webpack_require__) {
16781
16782"use strict";
16783
16784var $export = __webpack_require__(0);
16785var $reduce = __webpack_require__(173);
16786
16787$export($export.P + $export.F * !__webpack_require__(31)([].reduceRight, true), 'Array', {
16788  // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])
16789  reduceRight: function reduceRight(callbackfn /* , initialValue */) {
16790    return $reduce(this, callbackfn, arguments.length, arguments[1], true);
16791  }
16792});
16793
16794
16795/***/ }),
16796/* 330 */
16797/***/ (function(module, exports, __webpack_require__) {
16798
16799"use strict";
16800
16801var $export = __webpack_require__(0);
16802var $indexOf = __webpack_require__(83)(false);
16803var $native = [].indexOf;
16804var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
16805
16806$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(31)($native)), 'Array', {
16807  // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
16808  indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
16809    return NEGATIVE_ZERO
16810      // convert -0 to +0
16811      ? $native.apply(this, arguments) || 0
16812      : $indexOf(this, searchElement, arguments[1]);
16813  }
16814});
16815
16816
16817/***/ }),
16818/* 331 */
16819/***/ (function(module, exports, __webpack_require__) {
16820
16821"use strict";
16822
16823var $export = __webpack_require__(0);
16824var toIObject = __webpack_require__(25);
16825var toInteger = __webpack_require__(34);
16826var toLength = __webpack_require__(13);
16827var $native = [].lastIndexOf;
16828var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;
16829
16830$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(31)($native)), 'Array', {
16831  // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])
16832  lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {
16833    // convert -0 to +0
16834    if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;
16835    var O = toIObject(this);
16836    var length = toLength(O.length);
16837    var index = length - 1;
16838    if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));
16839    if (index < 0) index = length + index;
16840    for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;
16841    return -1;
16842  }
16843});
16844
16845
16846/***/ }),
16847/* 332 */
16848/***/ (function(module, exports, __webpack_require__) {
16849
16850// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
16851var $export = __webpack_require__(0);
16852
16853$export($export.P, 'Array', { copyWithin: __webpack_require__(174) });
16854
16855__webpack_require__(45)('copyWithin');
16856
16857
16858/***/ }),
16859/* 333 */
16860/***/ (function(module, exports, __webpack_require__) {
16861
16862// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
16863var $export = __webpack_require__(0);
16864
16865$export($export.P, 'Array', { fill: __webpack_require__(131) });
16866
16867__webpack_require__(45)('fill');
16868
16869
16870/***/ }),
16871/* 334 */
16872/***/ (function(module, exports, __webpack_require__) {
16873
16874"use strict";
16875
16876// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
16877var $export = __webpack_require__(0);
16878var $find = __webpack_require__(37)(5);
16879var KEY = 'find';
16880var forced = true;
16881// Shouldn't skip holes
16882if (KEY in []) Array(1)[KEY](function () { forced = false; });
16883$export($export.P + $export.F * forced, 'Array', {
16884  find: function find(callbackfn /* , that = undefined */) {
16885    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
16886  }
16887});
16888__webpack_require__(45)(KEY);
16889
16890
16891/***/ }),
16892/* 335 */
16893/***/ (function(module, exports, __webpack_require__) {
16894
16895"use strict";
16896
16897// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
vendor: 8,385 bytes, lines 16898-17136
16898var $export = __webpack_require__(0);
16899var $find = __webpack_require__(37)(6);
16900var KEY = 'findIndex';
16901var forced = true;
16902// Shouldn't skip holes
16903if (KEY in []) Array(1)[KEY](function () { forced = false; });
16904$export($export.P + $export.F * forced, 'Array', {
16905  findIndex: function findIndex(callbackfn /* , that = undefined */) {
16906    return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
16907  }
16908});
16909__webpack_require__(45)(KEY);
16910
16911
16912/***/ }),
16913/* 336 */
16914/***/ (function(module, exports, __webpack_require__) {
16915
16916__webpack_require__(57)('Array');
16917
16918
16919/***/ }),
16920/* 337 */
16921/***/ (function(module, exports, __webpack_require__) {
16922
16923var global = __webpack_require__(5);
16924var inheritIfRequired = __webpack_require__(119);
16925var dP = __webpack_require__(11).f;
16926var gOPN = __webpack_require__(58).f;
16927var isRegExp = __webpack_require__(88);
16928var $flags = __webpack_require__(89);
16929var $RegExp = global.RegExp;
16930var Base = $RegExp;
16931var proto = $RegExp.prototype;
16932var re1 = /a/g;
16933var re2 = /a/g;
16934// "new" creates a new object, old webkit buggy here
16935var CORRECT_NEW = new $RegExp(re1) !== re1;
16936
16937if (__webpack_require__(12) && (!CORRECT_NEW || __webpack_require__(6)(function () {
16938  re2[__webpack_require__(9)('match')] = false;
16939  // RegExp constructor can alter flags and IsRegExp works correct with @@match
16940  return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';
16941}))) {
16942  $RegExp = function RegExp(p, f) {
16943    var tiRE = this instanceof $RegExp;
16944    var piRE = isRegExp(p);
16945    var fiU = f === undefined;
16946    return !tiRE && piRE && p.constructor === $RegExp && fiU ? p
16947      : inheritIfRequired(CORRECT_NEW
16948        ? new Base(piRE && !fiU ? p.source : p, f)
16949        : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)
16950      , tiRE ? this : proto, $RegExp);
16951  };
16952  var proxy = function (key) {
16953    key in $RegExp || dP($RegExp, key, {
16954      configurable: true,
16955      get: function () { return Base[key]; },
16956      set: function (it) { Base[key] = it; }
16957    });
16958  };
16959  for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);
16960  proto.constructor = $RegExp;
16961  $RegExp.prototype = proto;
16962  __webpack_require__(19)(global, 'RegExp', $RegExp);
16963}
16964
16965__webpack_require__(57)('RegExp');
16966
16967
16968/***/ }),
16969/* 338 */
16970/***/ (function(module, exports, __webpack_require__) {
16971
16972"use strict";
16973
16974__webpack_require__(175);
16975var anObject = __webpack_require__(4);
16976var $flags = __webpack_require__(89);
16977var DESCRIPTORS = __webpack_require__(12);
16978var TO_STRING = 'toString';
16979var $toString = /./[TO_STRING];
16980
16981var define = function (fn) {
16982  __webpack_require__(19)(RegExp.prototype, TO_STRING, fn, true);
16983};
16984
16985// 21.2.5.14 RegExp.prototype.toString()
16986if (__webpack_require__(6)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
16987  define(function toString() {
16988    var R = anObject(this);
16989    return '/'.concat(R.source, '/',
16990      'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);
16991  });
16992// FF44- RegExp#toString has a wrong name
16993} else if ($toString.name != TO_STRING) {
16994  define(function toString() {
16995    return $toString.call(this);
16996  });
16997}
16998
16999
17000/***/ }),
17001/* 339 */
17002/***/ (function(module, exports, __webpack_require__) {
17003
17004// @@match logic
17005__webpack_require__(90)('match', 1, function (defined, MATCH, $match) {
17006  // 21.1.3.11 String.prototype.match(regexp)
17007  return [function match(regexp) {
17008    'use strict';
17009    var O = defined(this);
17010    var fn = regexp == undefined ? undefined : regexp[MATCH];
17011    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
17012  }, $match];
17013});
17014
17015
17016/***/ }),
17017/* 340 */
17018/***/ (function(module, exports, __webpack_require__) {
17019
17020// @@replace logic
17021__webpack_require__(90)('replace', 2, function (defined, REPLACE, $replace) {
17022  // 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
17023  return [function replace(searchValue, replaceValue) {
17024    'use strict';
17025    var O = defined(this);
17026    var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
17027    return fn !== undefined
17028      ? fn.call(searchValue, O, replaceValue)
17029      : $replace.call(String(O), searchValue, replaceValue);
17030  }, $replace];
17031});
17032
17033
17034/***/ }),
17035/* 341 */
17036/***/ (function(module, exports, __webpack_require__) {
17037
17038// @@search logic
17039__webpack_require__(90)('search', 1, function (defined, SEARCH, $search) {
17040  // 21.1.3.15 String.prototype.search(regexp)
17041  return [function search(regexp) {
17042    'use strict';
17043    var O = defined(this);
17044    var fn = regexp == undefined ? undefined : regexp[SEARCH];
17045    return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));
17046  }, $search];
17047});
17048
17049
17050/***/ }),
17051/* 342 */
17052/***/ (function(module, exports, __webpack_require__) {
17053
17054// @@split logic
17055__webpack_require__(90)('split', 2, function (defined, SPLIT, $split) {
17056  'use strict';
17057  var isRegExp = __webpack_require__(88);
17058  var _split = $split;
17059  var $push = [].push;
17060  var $SPLIT = 'split';
17061  var LENGTH = 'length';
17062  var LAST_INDEX = 'lastIndex';
17063  if (
17064    'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
17065    'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
17066    'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
17067    '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
17068    '.'[$SPLIT](/()()/)[LENGTH] > 1 ||
17069    ''[$SPLIT](/.?/)[LENGTH]
17070  ) {
17071    var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group
17072    // based on es5-shim implementation, need to rework it
17073    $split = function (separator, limit) {
17074      var string = String(this);
17075      if (separator === undefined && limit === 0) return [];
17076      // If `separator` is not a regex, use native split
17077      if (!isRegExp(separator)) return _split.call(string, separator, limit);
17078      var output = [];
17079      var flags = (separator.ignoreCase ? 'i' : '') +
17080                  (separator.multiline ? 'm' : '') +
17081                  (separator.unicode ? 'u' : '') +
17082                  (separator.sticky ? 'y' : '');
17083      var lastLastIndex = 0;
17084      var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;
17085      // Make `global` and avoid `lastIndex` issues by working with a copy
17086      var separatorCopy = new RegExp(separator.source, flags + 'g');
17087      var separator2, match, lastIndex, lastLength, i;
17088      // Doesn't need flags gy, but they don't hurt
17089      if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags);
17090      while (match = separatorCopy.exec(string)) {
17091        // `separatorCopy.lastIndex` is not reliable cross-browser
17092        lastIndex = match.index + match[0][LENGTH];
17093        if (lastIndex > lastLastIndex) {
17094          output.push(string.slice(lastLastIndex, match.index));
17095          // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG
17096          // eslint-disable-next-line no-loop-func
17097          if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () {
17098            for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined;
17099          });
17100          if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
17101          lastLength = match[0][LENGTH];
17102          lastLastIndex = lastIndex;
17103          if (output[LENGTH] >= splitLimit) break;
17104        }
17105        if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop
17106      }
17107      if (lastLastIndex === string[LENGTH]) {
17108        if (lastLength || !separatorCopy.test('')) output.push('');
17109      } else output.push(string.slice(lastLastIndex));
17110      return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
17111    };
17112  // Chakra, V8
17113  } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
17114    $split = function (separator, limit) {
17115      return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit);
17116    };
17117  }
17118  // 21.1.3.17 String.prototype.split(separator, limit)
17119  return [function split(separator, limit) {
17120    var O = defined(this);
17121    var fn = separator == undefined ? undefined : separator[SPLIT];
17122    return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit);
17123  }, $split];
17124});
17125
17126
17127/***/ }),
17128/* 343 */
17129/***/ (function(module, exports, __webpack_require__) {
17130
17131"use strict";
17132
17133var LIBRARY = __webpack_require__(44);
17134var global = __webpack_require__(5);
17135var ctx = __webpack_require__(30);
17136var classof = __webpack_require__(73);
vendor: 25,100 bytes, lines 17137-17964
17137var $export = __webpack_require__(0);
17138var isObject = __webpack_require__(7);
17139var aFunction = __webpack_require__(17);
17140var anInstance = __webpack_require__(55);
17141var forOf = __webpack_require__(56);
17142var speciesConstructor = __webpack_require__(91);
17143var task = __webpack_require__(132).set;
17144var microtask = __webpack_require__(133)();
17145var newPromiseCapabilityModule = __webpack_require__(134);
17146var perform = __webpack_require__(176);
17147var userAgent = __webpack_require__(92);
17148var promiseResolve = __webpack_require__(177);
17149var PROMISE = 'Promise';
17150var TypeError = global.TypeError;
17151var process = global.process;
17152var versions = process && process.versions;
17153var v8 = versions && versions.v8 || '';
17154var $Promise = global[PROMISE];
17155var isNode = classof(process) == 'process';
17156var empty = function () { /* empty */ };
17157var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
17158var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
17159
17160var USE_NATIVE = !!function () {
17161  try {
17162    // correct subclassing with @@species support
17163    var promise = $Promise.resolve(1);
17164    var FakePromise = (promise.constructor = {})[__webpack_require__(9)('species')] = function (exec) {
17165      exec(empty, empty);
17166    };
17167    // unhandled rejections tracking support, NodeJS Promise without it fails @@species test
17168    return (isNode || typeof PromiseRejectionEvent == 'function')
17169      && promise.then(empty) instanceof FakePromise
17170      // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
17171      // https://bugs.chromium.org/p/chromium/issues/detail?id=830565
17172      // we can't detect it synchronously, so just check versions
17173      && v8.indexOf('6.6') !== 0
17174      && userAgent.indexOf('Chrome/66') === -1;
17175  } catch (e) { /* empty */ }
17176}();
17177
17178// helpers
17179var isThenable = function (it) {
17180  var then;
17181  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
17182};
17183var notify = function (promise, isReject) {
17184  if (promise._n) return;
17185  promise._n = true;
17186  var chain = promise._c;
17187  microtask(function () {
17188    var value = promise._v;
17189    var ok = promise._s == 1;
17190    var i = 0;
17191    var run = function (reaction) {
17192      var handler = ok ? reaction.ok : reaction.fail;
17193      var resolve = reaction.resolve;
17194      var reject = reaction.reject;
17195      var domain = reaction.domain;
17196      var result, then, exited;
17197      try {
17198        if (handler) {
17199          if (!ok) {
17200            if (promise._h == 2) onHandleUnhandled(promise);
17201            promise._h = 1;
17202          }
17203          if (handler === true) result = value;
17204          else {
17205            if (domain) domain.enter();
17206            result = handler(value); // may throw
17207            if (domain) {
17208              domain.exit();
17209              exited = true;
17210            }
17211          }
17212          if (result === reaction.promise) {
17213            reject(TypeError('Promise-chain cycle'));
17214          } else if (then = isThenable(result)) {
17215            then.call(result, resolve, reject);
17216          } else resolve(result);
17217        } else reject(value);
17218      } catch (e) {
17219        if (domain && !exited) domain.exit();
17220        reject(e);
17221      }
17222    };
17223    while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
17224    promise._c = [];
17225    promise._n = false;
17226    if (isReject && !promise._h) onUnhandled(promise);
17227  });
17228};
17229var onUnhandled = function (promise) {
17230  task.call(global, function () {
17231    var value = promise._v;
17232    var unhandled = isUnhandled(promise);
17233    var result, handler, console;
17234    if (unhandled) {
17235      result = perform(function () {
17236        if (isNode) {
17237          process.emit('unhandledRejection', value, promise);
17238        } else if (handler = global.onunhandledrejection) {
17239          handler({ promise: promise, reason: value });
17240        } else if ((console = global.console) && console.error) {
17241          console.error('Unhandled promise rejection', value);
17242        }
17243      });
17244      // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
17245      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
17246    } promise._a = undefined;
17247    if (unhandled && result.e) throw result.v;
17248  });
17249};
17250var isUnhandled = function (promise) {
17251  return promise._h !== 1 && (promise._a || promise._c).length === 0;
17252};
17253var onHandleUnhandled = function (promise) {
17254  task.call(global, function () {
17255    var handler;
17256    if (isNode) {
17257      process.emit('rejectionHandled', promise);
17258    } else if (handler = global.onrejectionhandled) {
17259      handler({ promise: promise, reason: promise._v });
17260    }
17261  });
17262};
17263var $reject = function (value) {
17264  var promise = this;
17265  if (promise._d) return;
17266  promise._d = true;
17267  promise = promise._w || promise; // unwrap
17268  promise._v = value;
17269  promise._s = 2;
17270  if (!promise._a) promise._a = promise._c.slice();
17271  notify(promise, true);
17272};
17273var $resolve = function (value) {
17274  var promise = this;
17275  var then;
17276  if (promise._d) return;
17277  promise._d = true;
17278  promise = promise._w || promise; // unwrap
17279  try {
17280    if (promise === value) throw TypeError("Promise can't be resolved itself");
17281    if (then = isThenable(value)) {
17282      microtask(function () {
17283        var wrapper = { _w: promise, _d: false }; // wrap
17284        try {
17285          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
17286        } catch (e) {
17287          $reject.call(wrapper, e);
17288        }
17289      });
17290    } else {
17291      promise._v = value;
17292      promise._s = 1;
17293      notify(promise, false);
17294    }
17295  } catch (e) {
17296    $reject.call({ _w: promise, _d: false }, e); // wrap
17297  }
17298};
17299
17300// constructor polyfill
17301if (!USE_NATIVE) {
17302  // 25.4.3.1 Promise(executor)
17303  $Promise = function Promise(executor) {
17304    anInstance(this, $Promise, PROMISE, '_h');
17305    aFunction(executor);
17306    Internal.call(this);
17307    try {
17308      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
17309    } catch (err) {
17310      $reject.call(this, err);
17311    }
17312  };
17313  // eslint-disable-next-line no-unused-vars
17314  Internal = function Promise(executor) {
17315    this._c = [];             // <- awaiting reactions
17316    this._a = undefined;      // <- checked in isUnhandled reactions
17317    this._s = 0;              // <- state
17318    this._d = false;          // <- done
17319    this._v = undefined;      // <- value
17320    this._h = 0;              // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
17321    this._n = false;          // <- notify
17322  };
17323  Internal.prototype = __webpack_require__(54)($Promise.prototype, {
17324    // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
17325    then: function then(onFulfilled, onRejected) {
17326      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
17327      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
17328      reaction.fail = typeof onRejected == 'function' && onRejected;
17329      reaction.domain = isNode ? process.domain : undefined;
17330      this._c.push(reaction);
17331      if (this._a) this._a.push(reaction);
17332      if (this._s) notify(this, false);
17333      return reaction.promise;
17334    },
17335    // 25.4.5.1 Promise.prototype.catch(onRejected)
17336    'catch': function (onRejected) {
17337      return this.then(undefined, onRejected);
17338    }
17339  });
17340  OwnPromiseCapability = function () {
17341    var promise = new Internal();
17342    this.promise = promise;
17343    this.resolve = ctx($resolve, promise, 1);
17344    this.reject = ctx($reject, promise, 1);
17345  };
17346  newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
17347    return C === $Promise || C === Wrapper
17348      ? new OwnPromiseCapability(C)
17349      : newGenericPromiseCapability(C);
17350  };
17351}
17352
17353$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });
17354__webpack_require__(62)($Promise, PROMISE);
17355__webpack_require__(57)(PROMISE);
17356Wrapper = __webpack_require__(18)[PROMISE];
17357
17358// statics
17359$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
17360  // 25.4.4.5 Promise.reject(r)
17361  reject: function reject(r) {
17362    var capability = newPromiseCapability(this);
17363    var $$reject = capability.reject;
17364    $$reject(r);
17365    return capability.promise;
17366  }
17367});
17368$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
17369  // 25.4.4.6 Promise.resolve(x)
17370  resolve: function resolve(x) {
17371    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
17372  }
17373});
17374$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(85)(function (iter) {
17375  $Promise.all(iter)['catch'](empty);
17376})), PROMISE, {
17377  // 25.4.4.1 Promise.all(iterable)
17378  all: function all(iterable) {
17379    var C = this;
17380    var capability = newPromiseCapability(C);
17381    var resolve = capability.resolve;
17382    var reject = capability.reject;
17383    var result = perform(function () {
17384      var values = [];
17385      var index = 0;
17386      var remaining = 1;
17387      forOf(iterable, false, function (promise) {
17388        var $index = index++;
17389        var alreadyCalled = false;
17390        values.push(undefined);
17391        remaining++;
17392        C.resolve(promise).then(function (value) {
17393          if (alreadyCalled) return;
17394          alreadyCalled = true;
17395          values[$index] = value;
17396          --remaining || resolve(values);
17397        }, reject);
17398      });
17399      --remaining || resolve(values);
17400    });
17401    if (result.e) reject(result.v);
17402    return capability.promise;
17403  },
17404  // 25.4.4.4 Promise.race(iterable)
17405  race: function race(iterable) {
17406    var C = this;
17407    var capability = newPromiseCapability(C);
17408    var reject = capability.reject;
17409    var result = perform(function () {
17410      forOf(iterable, false, function (promise) {
17411        C.resolve(promise).then(capability.resolve, reject);
17412      });
17413    });
17414    if (result.e) reject(result.v);
17415    return capability.promise;
17416  }
17417});
17418
17419
17420/***/ }),
17421/* 344 */
17422/***/ (function(module, exports, __webpack_require__) {
17423
17424"use strict";
17425
17426var weak = __webpack_require__(179);
17427var validate = __webpack_require__(63);
17428var WEAK_SET = 'WeakSet';
17429
17430// 23.4 WeakSet Objects
17431__webpack_require__(84)(WEAK_SET, function (get) {
17432  return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
17433}, {
17434  // 23.4.3.1 WeakSet.prototype.add(value)
17435  add: function add(value) {
17436    return weak.def(validate(this, WEAK_SET), value, true);
17437  }
17438}, weak, false, true);
17439
17440
17441/***/ }),
17442/* 345 */
17443/***/ (function(module, exports, __webpack_require__) {
17444
17445"use strict";
17446
17447var $export = __webpack_require__(0);
17448var $typed = __webpack_require__(93);
17449var buffer = __webpack_require__(135);
17450var anObject = __webpack_require__(4);
17451var toAbsoluteIndex = __webpack_require__(53);
17452var toLength = __webpack_require__(13);
17453var isObject = __webpack_require__(7);
17454var ArrayBuffer = __webpack_require__(5).ArrayBuffer;
17455var speciesConstructor = __webpack_require__(91);
17456var $ArrayBuffer = buffer.ArrayBuffer;
17457var $DataView = buffer.DataView;
17458var $isView = $typed.ABV && ArrayBuffer.isView;
17459var $slice = $ArrayBuffer.prototype.slice;
17460var VIEW = $typed.VIEW;
17461var ARRAY_BUFFER = 'ArrayBuffer';
17462
17463$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
17464
17465$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {
17466  // 24.1.3.1 ArrayBuffer.isView(arg)
17467  isView: function isView(it) {
17468    return $isView && $isView(it) || isObject(it) && VIEW in it;
17469  }
17470});
17471
17472$export($export.P + $export.U + $export.F * __webpack_require__(6)(function () {
17473  return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
17474}), ARRAY_BUFFER, {
17475  // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
17476  slice: function slice(start, end) {
17477    if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
17478    var len = anObject(this).byteLength;
17479    var first = toAbsoluteIndex(start, len);
17480    var fin = toAbsoluteIndex(end === undefined ? len : end, len);
17481    var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));
17482    var viewS = new $DataView(this);
17483    var viewT = new $DataView(result);
17484    var index = 0;
17485    while (first < fin) {
17486      viewT.setUint8(index++, viewS.getUint8(first++));
17487    } return result;
17488  }
17489});
17490
17491__webpack_require__(57)(ARRAY_BUFFER);
17492
17493
17494/***/ }),
17495/* 346 */
17496/***/ (function(module, exports, __webpack_require__) {
17497
17498var $export = __webpack_require__(0);
17499$export($export.G + $export.W + $export.F * !__webpack_require__(93).ABV, {
17500  DataView: __webpack_require__(135).DataView
17501});
17502
17503
17504/***/ }),
17505/* 347 */
17506/***/ (function(module, exports, __webpack_require__) {
17507
17508__webpack_require__(41)('Int8', 1, function (init) {
17509  return function Int8Array(data, byteOffset, length) {
17510    return init(this, data, byteOffset, length);
17511  };
17512});
17513
17514
17515/***/ }),
17516/* 348 */
17517/***/ (function(module, exports, __webpack_require__) {
17518
17519__webpack_require__(41)('Uint8', 1, function (init) {
17520  return function Uint8Array(data, byteOffset, length) {
17521    return init(this, data, byteOffset, length);
17522  };
17523});
17524
17525
17526/***/ }),
17527/* 349 */
17528/***/ (function(module, exports, __webpack_require__) {
17529
17530__webpack_require__(41)('Uint8', 1, function (init) {
17531  return function Uint8ClampedArray(data, byteOffset, length) {
17532    return init(this, data, byteOffset, length);
17533  };
17534}, true);
17535
17536
17537/***/ }),
17538/* 350 */
17539/***/ (function(module, exports, __webpack_require__) {
17540
17541__webpack_require__(41)('Int16', 2, function (init) {
17542  return function Int16Array(data, byteOffset, length) {
17543    return init(this, data, byteOffset, length);
17544  };
17545});
17546
17547
17548/***/ }),
17549/* 351 */
17550/***/ (function(module, exports, __webpack_require__) {
17551
17552__webpack_require__(41)('Uint16', 2, function (init) {
17553  return function Uint16Array(data, byteOffset, length) {
17554    return init(this, data, byteOffset, length);
17555  };
17556});
17557
17558
17559/***/ }),
17560/* 352 */
17561/***/ (function(module, exports, __webpack_require__) {
17562
17563__webpack_require__(41)('Int32', 4, function (init) {
17564  return function Int32Array(data, byteOffset, length) {
17565    return init(this, data, byteOffset, length);
17566  };
17567});
17568
17569
17570/***/ }),
17571/* 353 */
17572/***/ (function(module, exports, __webpack_require__) {
17573
17574__webpack_require__(41)('Uint32', 4, function (init) {
17575  return function Uint32Array(data, byteOffset, length) {
17576    return init(this, data, byteOffset, length);
17577  };
17578});
17579
17580
17581/***/ }),
17582/* 354 */
17583/***/ (function(module, exports, __webpack_require__) {
17584
17585__webpack_require__(41)('Float32', 4, function (init) {
17586  return function Float32Array(data, byteOffset, length) {
17587    return init(this, data, byteOffset, length);
17588  };
17589});
17590
17591
17592/***/ }),
17593/* 355 */
17594/***/ (function(module, exports, __webpack_require__) {
17595
17596__webpack_require__(41)('Float64', 8, function (init) {
17597  return function Float64Array(data, byteOffset, length) {
17598    return init(this, data, byteOffset, length);
17599  };
17600});
17601
17602
17603/***/ }),
17604/* 356 */
17605/***/ (function(module, exports, __webpack_require__) {
17606
17607// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
17608var $export = __webpack_require__(0);
17609var aFunction = __webpack_require__(17);
17610var anObject = __webpack_require__(4);
17611var rApply = (__webpack_require__(5).Reflect || {}).apply;
17612var fApply = Function.apply;
17613// MS Edge argumentsList argument is optional
17614$export($export.S + $export.F * !__webpack_require__(6)(function () {
17615  rApply(function () { /* empty */ });
17616}), 'Reflect', {
17617  apply: function apply(target, thisArgument, argumentsList) {
17618    var T = aFunction(target);
17619    var L = anObject(argumentsList);
17620    return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
17621  }
17622});
17623
17624
17625/***/ }),
17626/* 357 */
17627/***/ (function(module, exports, __webpack_require__) {
17628
17629// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
17630var $export = __webpack_require__(0);
17631var create = __webpack_require__(51);
17632var aFunction = __webpack_require__(17);
17633var anObject = __webpack_require__(4);
17634var isObject = __webpack_require__(7);
17635var fails = __webpack_require__(6);
17636var bind = __webpack_require__(165);
17637var rConstruct = (__webpack_require__(5).Reflect || {}).construct;
17638
17639// MS Edge supports only 2 arguments and argumentsList argument is optional
17640// FF Nightly sets third argument as `new.target`, but does not create `this` from it
17641var NEW_TARGET_BUG = fails(function () {
17642  function F() { /* empty */ }
17643  return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
17644});
17645var ARGS_BUG = !fails(function () {
17646  rConstruct(function () { /* empty */ });
17647});
17648
17649$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
17650  construct: function construct(Target, args /* , newTarget */) {
17651    aFunction(Target);
17652    anObject(args);
17653    var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
17654    if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
17655    if (Target == newTarget) {
17656      // w/o altered newTarget, optimization for 0-4 arguments
17657      switch (args.length) {
17658        case 0: return new Target();
17659        case 1: return new Target(args[0]);
17660        case 2: return new Target(args[0], args[1]);
17661        case 3: return new Target(args[0], args[1], args[2]);
17662        case 4: return new Target(args[0], args[1], args[2], args[3]);
17663      }
17664      // w/o altered newTarget, lot of arguments case
17665      var $args = [null];
17666      $args.push.apply($args, args);
17667      return new (bind.apply(Target, $args))();
17668    }
17669    // with altered newTarget, not support built-in constructors
17670    var proto = newTarget.prototype;
17671    var instance = create(isObject(proto) ? proto : Object.prototype);
17672    var result = Function.apply.call(Target, instance, args);
17673    return isObject(result) ? result : instance;
17674  }
17675});
17676
17677
17678/***/ }),
17679/* 358 */
17680/***/ (function(module, exports, __webpack_require__) {
17681
17682// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)
17683var dP = __webpack_require__(11);
17684var $export = __webpack_require__(0);
17685var anObject = __webpack_require__(4);
17686var toPrimitive = __webpack_require__(33);
17687
17688// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
17689$export($export.S + $export.F * __webpack_require__(6)(function () {
17690  // eslint-disable-next-line no-undef
17691  Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });
17692}), 'Reflect', {
17693  defineProperty: function defineProperty(target, propertyKey, attributes) {
17694    anObject(target);
17695    propertyKey = toPrimitive(propertyKey, true);
17696    anObject(attributes);
17697    try {
17698      dP.f(target, propertyKey, attributes);
17699      return true;
17700    } catch (e) {
17701      return false;
17702    }
17703  }
17704});
17705
17706
17707/***/ }),
17708/* 359 */
17709/***/ (function(module, exports, __webpack_require__) {
17710
17711// 26.1.4 Reflect.deleteProperty(target, propertyKey)
17712var $export = __webpack_require__(0);
17713var gOPD = __webpack_require__(27).f;
17714var anObject = __webpack_require__(4);
17715
17716$export($export.S, 'Reflect', {
17717  deleteProperty: function deleteProperty(target, propertyKey) {
17718    var desc = gOPD(anObject(target), propertyKey);
17719    return desc && !desc.configurable ? false : delete target[propertyKey];
17720  }
17721});
17722
17723
17724/***/ }),
17725/* 360 */
17726/***/ (function(module, exports, __webpack_require__) {
17727
17728"use strict";
17729
17730// 26.1.5 Reflect.enumerate(target)
17731var $export = __webpack_require__(0);
17732var anObject = __webpack_require__(4);
17733var Enumerate = function (iterated) {
17734  this._t = anObject(iterated); // target
17735  this._i = 0;                  // next index
17736  var keys = this._k = [];      // keys
17737  var key;
17738  for (key in iterated) keys.push(key);
17739};
17740__webpack_require__(110)(Enumerate, 'Object', function () {
17741  var that = this;
17742  var keys = that._k;
17743  var key;
17744  do {
17745    if (that._i >= keys.length) return { value: undefined, done: true };
17746  } while (!((key = keys[that._i++]) in that._t));
17747  return { value: key, done: false };
17748});
17749
17750$export($export.S, 'Reflect', {
17751  enumerate: function enumerate(target) {
17752    return new Enumerate(target);
17753  }
17754});
17755
17756
17757/***/ }),
17758/* 361 */
17759/***/ (function(module, exports, __webpack_require__) {
17760
17761// 26.1.6 Reflect.get(target, propertyKey [, receiver])
17762var gOPD = __webpack_require__(27);
17763var getPrototypeOf = __webpack_require__(26);
17764var has = __webpack_require__(24);
17765var $export = __webpack_require__(0);
17766var isObject = __webpack_require__(7);
17767var anObject = __webpack_require__(4);
17768
17769function get(target, propertyKey /* , receiver */) {
17770  var receiver = arguments.length < 3 ? target : arguments[2];
17771  var desc, proto;
17772  if (anObject(target) === receiver) return target[propertyKey];
17773  if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')
17774    ? desc.value
17775    : desc.get !== undefined
17776      ? desc.get.call(receiver)
17777      : undefined;
17778  if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);
17779}
17780
17781$export($export.S, 'Reflect', { get: get });
17782
17783
17784/***/ }),
17785/* 362 */
17786/***/ (function(module, exports, __webpack_require__) {
17787
17788// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
17789var gOPD = __webpack_require__(27);
17790var $export = __webpack_require__(0);
17791var anObject = __webpack_require__(4);
17792
17793$export($export.S, 'Reflect', {
17794  getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
17795    return gOPD.f(anObject(target), propertyKey);
17796  }
17797});
17798
17799
17800/***/ }),
17801/* 363 */
17802/***/ (function(module, exports, __webpack_require__) {
17803
17804// 26.1.8 Reflect.getPrototypeOf(target)
17805var $export = __webpack_require__(0);
17806var getProto = __webpack_require__(26);
17807var anObject = __webpack_require__(4);
17808
17809$export($export.S, 'Reflect', {
17810  getPrototypeOf: function getPrototypeOf(target) {
17811    return getProto(anObject(target));
17812  }
17813});
17814
17815
17816/***/ }),
17817/* 364 */
17818/***/ (function(module, exports, __webpack_require__) {
17819
17820// 26.1.9 Reflect.has(target, propertyKey)
17821var $export = __webpack_require__(0);
17822
17823$export($export.S, 'Reflect', {
17824  has: function has(target, propertyKey) {
17825    return propertyKey in target;
17826  }
17827});
17828
17829
17830/***/ }),
17831/* 365 */
17832/***/ (function(module, exports, __webpack_require__) {
17833
17834// 26.1.10 Reflect.isExtensible(target)
17835var $export = __webpack_require__(0);
17836var anObject = __webpack_require__(4);
17837var $isExtensible = Object.isExtensible;
17838
17839$export($export.S, 'Reflect', {
17840  isExtensible: function isExtensible(target) {
17841    anObject(target);
17842    return $isExtensible ? $isExtensible(target) : true;
17843  }
17844});
17845
17846
17847/***/ }),
17848/* 366 */
17849/***/ (function(module, exports, __webpack_require__) {
17850
17851// 26.1.11 Reflect.ownKeys(target)
17852var $export = __webpack_require__(0);
17853
17854$export($export.S, 'Reflect', { ownKeys: __webpack_require__(181) });
17855
17856
17857/***/ }),
17858/* 367 */
17859/***/ (function(module, exports, __webpack_require__) {
17860
17861// 26.1.12 Reflect.preventExtensions(target)
17862var $export = __webpack_require__(0);
17863var anObject = __webpack_require__(4);
17864var $preventExtensions = Object.preventExtensions;
17865
17866$export($export.S, 'Reflect', {
17867  preventExtensions: function preventExtensions(target) {
17868    anObject(target);
17869    try {
17870      if ($preventExtensions) $preventExtensions(target);
17871      return true;
17872    } catch (e) {
17873      return false;
17874    }
17875  }
17876});
17877
17878
17879/***/ }),
17880/* 368 */
17881/***/ (function(module, exports, __webpack_require__) {
17882
17883// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])
17884var dP = __webpack_require__(11);
17885var gOPD = __webpack_require__(27);
17886var getPrototypeOf = __webpack_require__(26);
17887var has = __webpack_require__(24);
17888var $export = __webpack_require__(0);
17889var createDesc = __webpack_require__(50);
17890var anObject = __webpack_require__(4);
17891var isObject = __webpack_require__(7);
17892
17893function set(target, propertyKey, V /* , receiver */) {
17894  var receiver = arguments.length < 4 ? target : arguments[3];
17895  var ownDesc = gOPD.f(anObject(target), propertyKey);
17896  var existingDescriptor, proto;
17897  if (!ownDesc) {
17898    if (isObject(proto = getPrototypeOf(target))) {
17899      return set(proto, propertyKey, V, receiver);
17900    }
17901    ownDesc = createDesc(0);
17902  }
17903  if (has(ownDesc, 'value')) {
17904    if (ownDesc.writable === false || !isObject(receiver)) return false;
17905    if (existingDescriptor = gOPD.f(receiver, propertyKey)) {
17906      if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;
17907      existingDescriptor.value = V;
17908      dP.f(receiver, propertyKey, existingDescriptor);
17909    } else dP.f(receiver, propertyKey, createDesc(0, V));
17910    return true;
17911  }
17912  return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
17913}
17914
17915$export($export.S, 'Reflect', { set: set });
17916
17917
17918/***/ }),
17919/* 369 */
17920/***/ (function(module, exports, __webpack_require__) {
17921
17922// 26.1.14 Reflect.setPrototypeOf(target, proto)
17923var $export = __webpack_require__(0);
17924var setProto = __webpack_require__(120);
17925
17926if (setProto) $export($export.S, 'Reflect', {
17927  setPrototypeOf: function setPrototypeOf(target, proto) {
17928    setProto.check(target, proto);
17929    try {
17930      setProto.set(target, proto);
17931      return true;
17932    } catch (e) {
17933      return false;
17934    }
17935  }
17936});
17937
17938
17939/***/ }),
17940/* 370 */
17941/***/ (function(module, exports, __webpack_require__) {
17942
17943"use strict";
17944
17945// https://github.com/tc39/Array.prototype.includes
17946var $export = __webpack_require__(0);
17947var $includes = __webpack_require__(83)(true);
17948
17949$export($export.P, 'Array', {
17950  includes: function includes(el /* , fromIndex = 0 */) {
17951    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
17952  }
17953});
17954
17955__webpack_require__(45)('includes');
17956
17957
17958/***/ }),
17959/* 371 */
17960/***/ (function(module, exports, __webpack_require__) {
17961
17962"use strict";
17963
17964// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap
vendor: 9,191 bytes, lines 17965-18309
17965var $export = __webpack_require__(0);
17966var flattenIntoArray = __webpack_require__(182);
17967var toObject = __webpack_require__(15);
17968var toLength = __webpack_require__(13);
17969var aFunction = __webpack_require__(17);
17970var arraySpeciesCreate = __webpack_require__(130);
17971
17972$export($export.P, 'Array', {
17973  flatMap: function flatMap(callbackfn /* , thisArg */) {
17974    var O = toObject(this);
17975    var sourceLen, A;
17976    aFunction(callbackfn);
17977    sourceLen = toLength(O.length);
17978    A = arraySpeciesCreate(O, 0);
17979    flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);
17980    return A;
17981  }
17982});
17983
17984__webpack_require__(45)('flatMap');
17985
17986
17987/***/ }),
17988/* 372 */
17989/***/ (function(module, exports, __webpack_require__) {
17990
17991"use strict";
17992
17993// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten
17994var $export = __webpack_require__(0);
17995var flattenIntoArray = __webpack_require__(182);
17996var toObject = __webpack_require__(15);
17997var toLength = __webpack_require__(13);
17998var toInteger = __webpack_require__(34);
17999var arraySpeciesCreate = __webpack_require__(130);
18000
18001$export($export.P, 'Array', {
18002  flatten: function flatten(/* depthArg = 1 */) {
18003    var depthArg = arguments[0];
18004    var O = toObject(this);
18005    var sourceLen = toLength(O.length);
18006    var A = arraySpeciesCreate(O, 0);
18007    flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));
18008    return A;
18009  }
18010});
18011
18012__webpack_require__(45)('flatten');
18013
18014
18015/***/ }),
18016/* 373 */
18017/***/ (function(module, exports, __webpack_require__) {
18018
18019"use strict";
18020
18021// https://github.com/mathiasbynens/String.prototype.at
18022var $export = __webpack_require__(0);
18023var $at = __webpack_require__(108)(true);
18024
18025$export($export.P, 'String', {
18026  at: function at(pos) {
18027    return $at(this, pos);
18028  }
18029});
18030
18031
18032/***/ }),
18033/* 374 */
18034/***/ (function(module, exports, __webpack_require__) {
18035
18036"use strict";
18037
18038// https://github.com/tc39/proposal-string-pad-start-end
18039var $export = __webpack_require__(0);
18040var $pad = __webpack_require__(183);
18041var userAgent = __webpack_require__(92);
18042
18043// https://github.com/zloirock/core-js/issues/280
18044$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
18045  padStart: function padStart(maxLength /* , fillString = ' ' */) {
18046    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
18047  }
18048});
18049
18050
18051/***/ }),
18052/* 375 */
18053/***/ (function(module, exports, __webpack_require__) {
18054
18055"use strict";
18056
18057// https://github.com/tc39/proposal-string-pad-start-end
18058var $export = __webpack_require__(0);
18059var $pad = __webpack_require__(183);
18060var userAgent = __webpack_require__(92);
18061
18062// https://github.com/zloirock/core-js/issues/280
18063$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
18064  padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
18065    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
18066  }
18067});
18068
18069
18070/***/ }),
18071/* 376 */
18072/***/ (function(module, exports, __webpack_require__) {
18073
18074"use strict";
18075
18076// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
18077__webpack_require__(65)('trimLeft', function ($trim) {
18078  return function trimLeft() {
18079    return $trim(this, 1);
18080  };
18081}, 'trimStart');
18082
18083
18084/***/ }),
18085/* 377 */
18086/***/ (function(module, exports, __webpack_require__) {
18087
18088"use strict";
18089
18090// https://github.com/sebmarkbage/ecmascript-string-left-right-trim
18091__webpack_require__(65)('trimRight', function ($trim) {
18092  return function trimRight() {
18093    return $trim(this, 2);
18094  };
18095}, 'trimEnd');
18096
18097
18098/***/ }),
18099/* 378 */
18100/***/ (function(module, exports, __webpack_require__) {
18101
18102"use strict";
18103
18104// https://tc39.github.io/String.prototype.matchAll/
18105var $export = __webpack_require__(0);
18106var defined = __webpack_require__(35);
18107var toLength = __webpack_require__(13);
18108var isRegExp = __webpack_require__(88);
18109var getFlags = __webpack_require__(89);
18110var RegExpProto = RegExp.prototype;
18111
18112var $RegExpStringIterator = function (regexp, string) {
18113  this._r = regexp;
18114  this._s = string;
18115};
18116
18117__webpack_require__(110)($RegExpStringIterator, 'RegExp String', function next() {
18118  var match = this._r.exec(this._s);
18119  return { value: match, done: match === null };
18120});
18121
18122$export($export.P, 'String', {
18123  matchAll: function matchAll(regexp) {
18124    defined(this);
18125    if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');
18126    var S = String(this);
18127    var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);
18128    var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);
18129    rx.lastIndex = toLength(regexp.lastIndex);
18130    return new $RegExpStringIterator(rx, S);
18131  }
18132});
18133
18134
18135/***/ }),
18136/* 379 */
18137/***/ (function(module, exports, __webpack_require__) {
18138
18139__webpack_require__(122)('asyncIterator');
18140
18141
18142/***/ }),
18143/* 380 */
18144/***/ (function(module, exports, __webpack_require__) {
18145
18146__webpack_require__(122)('observable');
18147
18148
18149/***/ }),
18150/* 381 */
18151/***/ (function(module, exports, __webpack_require__) {
18152
18153// https://github.com/tc39/proposal-object-getownpropertydescriptors
18154var $export = __webpack_require__(0);
18155var ownKeys = __webpack_require__(181);
18156var toIObject = __webpack_require__(25);
18157var gOPD = __webpack_require__(27);
18158var createProperty = __webpack_require__(129);
18159
18160$export($export.S, 'Object', {
18161  getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
18162    var O = toIObject(object);
18163    var getDesc = gOPD.f;
18164    var keys = ownKeys(O);
18165    var result = {};
18166    var i = 0;
18167    var key, desc;
18168    while (keys.length > i) {
18169      desc = getDesc(O, key = keys[i++]);
18170      if (desc !== undefined) createProperty(result, key, desc);
18171    }
18172    return result;
18173  }
18174});
18175
18176
18177/***/ }),
18178/* 382 */
18179/***/ (function(module, exports, __webpack_require__) {
18180
18181// https://github.com/tc39/proposal-object-values-entries
18182var $export = __webpack_require__(0);
18183var $values = __webpack_require__(184)(false);
18184
18185$export($export.S, 'Object', {
18186  values: function values(it) {
18187    return $values(it);
18188  }
18189});
18190
18191
18192/***/ }),
18193/* 383 */
18194/***/ (function(module, exports, __webpack_require__) {
18195
18196// https://github.com/tc39/proposal-object-values-entries
18197var $export = __webpack_require__(0);
18198var $entries = __webpack_require__(184)(true);
18199
18200$export($export.S, 'Object', {
18201  entries: function entries(it) {
18202    return $entries(it);
18203  }
18204});
18205
18206
18207/***/ }),
18208/* 384 */
18209/***/ (function(module, exports, __webpack_require__) {
18210
18211"use strict";
18212
18213var $export = __webpack_require__(0);
18214var toObject = __webpack_require__(15);
18215var aFunction = __webpack_require__(17);
18216var $defineProperty = __webpack_require__(11);
18217
18218// B.2.2.2 Object.prototype.__defineGetter__(P, getter)
18219__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', {
18220  __defineGetter__: function __defineGetter__(P, getter) {
18221    $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });
18222  }
18223});
18224
18225
18226/***/ }),
18227/* 385 */
18228/***/ (function(module, exports, __webpack_require__) {
18229
18230"use strict";
18231
18232var $export = __webpack_require__(0);
18233var toObject = __webpack_require__(15);
18234var aFunction = __webpack_require__(17);
18235var $defineProperty = __webpack_require__(11);
18236
18237// B.2.2.3 Object.prototype.__defineSetter__(P, setter)
18238__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', {
18239  __defineSetter__: function __defineSetter__(P, setter) {
18240    $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });
18241  }
18242});
18243
18244
18245/***/ }),
18246/* 386 */
18247/***/ (function(module, exports, __webpack_require__) {
18248
18249"use strict";
18250
18251var $export = __webpack_require__(0);
18252var toObject = __webpack_require__(15);
18253var toPrimitive = __webpack_require__(33);
18254var getPrototypeOf = __webpack_require__(26);
18255var getOwnPropertyDescriptor = __webpack_require__(27).f;
18256
18257// B.2.2.4 Object.prototype.__lookupGetter__(P)
18258__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', {
18259  __lookupGetter__: function __lookupGetter__(P) {
18260    var O = toObject(this);
18261    var K = toPrimitive(P, true);
18262    var D;
18263    do {
18264      if (D = getOwnPropertyDescriptor(O, K)) return D.get;
18265    } while (O = getPrototypeOf(O));
18266  }
18267});
18268
18269
18270/***/ }),
18271/* 387 */
18272/***/ (function(module, exports, __webpack_require__) {
18273
18274"use strict";
18275
18276var $export = __webpack_require__(0);
18277var toObject = __webpack_require__(15);
18278var toPrimitive = __webpack_require__(33);
18279var getPrototypeOf = __webpack_require__(26);
18280var getOwnPropertyDescriptor = __webpack_require__(27).f;
18281
18282// B.2.2.5 Object.prototype.__lookupSetter__(P)
18283__webpack_require__(12) && $export($export.P + __webpack_require__(94), 'Object', {
18284  __lookupSetter__: function __lookupSetter__(P) {
18285    var O = toObject(this);
18286    var K = toPrimitive(P, true);
18287    var D;
18288    do {
18289      if (D = getOwnPropertyDescriptor(O, K)) return D.set;
18290    } while (O = getPrototypeOf(O));
18291  }
18292});
18293
18294
18295/***/ }),
18296/* 388 */
18297/***/ (function(module, exports, __webpack_require__) {
18298
18299// https://github.com/DavidBruant/Map-Set.prototype.toJSON
18300var $export = __webpack_require__(0);
18301
18302$export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(185)('Map') });
18303
18304
18305/***/ }),
18306/* 389 */
18307/***/ (function(module, exports, __webpack_require__) {
18308
18309// https://github.com/DavidBruant/Map-Set.prototype.toJSON
18310var $export = __webpack_require__(0);
18311
18312$export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(185)('Set') });
18313
18314
18315/***/ }),
18316/* 390 */
18317/***/ (function(module, exports, __webpack_require__) {
18318
18319// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of
18320__webpack_require__(95)('Map');
18321
18322
18323/***/ }),
18324/* 391 */
18325/***/ (function(module, exports, __webpack_require__) {
18326
18327// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of
18328__webpack_require__(95)('Set');
18329
18330
18331/***/ }),
18332/* 392 */
18333/***/ (function(module, exports, __webpack_require__) {
18334
18335// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of
18336__webpack_require__(95)('WeakMap');
18337
18338
18339/***/ }),
18340/* 393 */
18341/***/ (function(module, exports, __webpack_require__) {
18342
18343// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of
18344__webpack_require__(95)('WeakSet');
18345
18346
18347/***/ }),
18348/* 394 */
18349/***/ (function(module, exports, __webpack_require__) {
18350
18351// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from
18352__webpack_require__(96)('Map');
18353
18354
18355/***/ }),
18356/* 395 */
18357/***/ (function(module, exports, __webpack_require__) {
18358
18359// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from
18360__webpack_require__(96)('Set');
18361
18362
18363/***/ }),
18364/* 396 */
18365/***/ (function(module, exports, __webpack_require__) {
18366
18367// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from
18368__webpack_require__(96)('WeakMap');
18369
18370
18371/***/ }),
18372/* 397 */
18373/***/ (function(module, exports, __webpack_require__) {
18374
18375// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from
18376__webpack_require__(96)('WeakSet');
18377
18378
18379/***/ }),
18380/* 398 */
18381/***/ (function(module, exports, __webpack_require__) {
18382
18383// https://github.com/tc39/proposal-global
18384var $export = __webpack_require__(0);
18385
18386$export($export.G, { global: __webpack_require__(5) });
18387
18388
18389/***/ }),
18390/* 399 */
18391/***/ (function(module, exports, __webpack_require__) {
18392
18393// https://github.com/tc39/proposal-global
18394var $export = __webpack_require__(0);
18395
18396$export($export.S, 'System', { global: __webpack_require__(5) });
18397
18398
18399/***/ }),
18400/* 400 */
18401/***/ (function(module, exports, __webpack_require__) {
18402
18403// https://github.com/ljharb/proposal-is-error
18404var $export = __webpack_require__(0);
18405var cof = __webpack_require__(29);
18406
18407$export($export.S, 'Error', {
18408  isError: function isError(it) {
18409    return cof(it) === 'Error';
18410  }
18411});
18412
18413
18414/***/ }),
18415/* 401 */
18416/***/ (function(module, exports, __webpack_require__) {
18417
18418// https://rwaldron.github.io/proposal-math-extensions/
18419var $export = __webpack_require__(0);
18420
18421$export($export.S, 'Math', {
18422  clamp: function clamp(x, lower, upper) {
18423    return Math.min(upper, Math.max(lower, x));
18424  }
18425});
18426
18427
18428/***/ }),
18429/* 402 */
18430/***/ (function(module, exports, __webpack_require__) {
18431
18432// https://rwaldron.github.io/proposal-math-extensions/
18433var $export = __webpack_require__(0);
18434
18435$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });
18436
18437
18438/***/ }),
18439/* 403 */
18440/***/ (function(module, exports, __webpack_require__) {
18441
18442// https://rwaldron.github.io/proposal-math-extensions/
18443var $export = __webpack_require__(0);
18444var RAD_PER_DEG = 180 / Math.PI;
18445
18446$export($export.S, 'Math', {
18447  degrees: function degrees(radians) {
18448    return radians * RAD_PER_DEG;
18449  }
18450});
18451
18452
18453/***/ }),
18454/* 404 */
18455/***/ (function(module, exports, __webpack_require__) {
18456
18457// https://rwaldron.github.io/proposal-math-extensions/
18458var $export = __webpack_require__(0);
18459var scale = __webpack_require__(187);
18460var fround = __webpack_require__(172);
18461
18462$export($export.S, 'Math', {
18463  fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {
18464    return fround(scale(x, inLow, inHigh, outLow, outHigh));
18465  }
18466});
18467
18468
18469/***/ }),
18470/* 405 */
18471/***/ (function(module, exports, __webpack_require__) {
18472
18473// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
18474var $export = __webpack_require__(0);
18475
18476$export($export.S, 'Math', {
18477  iaddh: function iaddh(x0, x1, y0, y1) {
18478    var $x0 = x0 >>> 0;
18479    var $x1 = x1 >>> 0;
vendor: 12,356 bytes, lines 18480-18903
18480    var $y0 = y0 >>> 0;
18481    return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;
18482  }
18483});
18484
18485
18486/***/ }),
18487/* 406 */
18488/***/ (function(module, exports, __webpack_require__) {
18489
18490// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
18491var $export = __webpack_require__(0);
18492
18493$export($export.S, 'Math', {
18494  isubh: function isubh(x0, x1, y0, y1) {
18495    var $x0 = x0 >>> 0;
18496    var $x1 = x1 >>> 0;
18497    var $y0 = y0 >>> 0;
18498    return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;
18499  }
18500});
18501
18502
18503/***/ }),
18504/* 407 */
18505/***/ (function(module, exports, __webpack_require__) {
18506
18507// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
18508var $export = __webpack_require__(0);
18509
18510$export($export.S, 'Math', {
18511  imulh: function imulh(u, v) {
18512    var UINT16 = 0xffff;
18513    var $u = +u;
18514    var $v = +v;
18515    var u0 = $u & UINT16;
18516    var v0 = $v & UINT16;
18517    var u1 = $u >> 16;
18518    var v1 = $v >> 16;
18519    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
18520    return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);
18521  }
18522});
18523
18524
18525/***/ }),
18526/* 408 */
18527/***/ (function(module, exports, __webpack_require__) {
18528
18529// https://rwaldron.github.io/proposal-math-extensions/
18530var $export = __webpack_require__(0);
18531
18532$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });
18533
18534
18535/***/ }),
18536/* 409 */
18537/***/ (function(module, exports, __webpack_require__) {
18538
18539// https://rwaldron.github.io/proposal-math-extensions/
18540var $export = __webpack_require__(0);
18541var DEG_PER_RAD = Math.PI / 180;
18542
18543$export($export.S, 'Math', {
18544  radians: function radians(degrees) {
18545    return degrees * DEG_PER_RAD;
18546  }
18547});
18548
18549
18550/***/ }),
18551/* 410 */
18552/***/ (function(module, exports, __webpack_require__) {
18553
18554// https://rwaldron.github.io/proposal-math-extensions/
18555var $export = __webpack_require__(0);
18556
18557$export($export.S, 'Math', { scale: __webpack_require__(187) });
18558
18559
18560/***/ }),
18561/* 411 */
18562/***/ (function(module, exports, __webpack_require__) {
18563
18564// https://gist.github.com/BrendanEich/4294d5c212a6d2254703
18565var $export = __webpack_require__(0);
18566
18567$export($export.S, 'Math', {
18568  umulh: function umulh(u, v) {
18569    var UINT16 = 0xffff;
18570    var $u = +u;
18571    var $v = +v;
18572    var u0 = $u & UINT16;
18573    var v0 = $v & UINT16;
18574    var u1 = $u >>> 16;
18575    var v1 = $v >>> 16;
18576    var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);
18577    return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);
18578  }
18579});
18580
18581
18582/***/ }),
18583/* 412 */
18584/***/ (function(module, exports, __webpack_require__) {
18585
18586// http://jfbastien.github.io/papers/Math.signbit.html
18587var $export = __webpack_require__(0);
18588
18589$export($export.S, 'Math', { signbit: function signbit(x) {
18590  // eslint-disable-next-line no-self-compare
18591  return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;
18592} });
18593
18594
18595/***/ }),
18596/* 413 */
18597/***/ (function(module, exports, __webpack_require__) {
18598
18599"use strict";
18600// https://github.com/tc39/proposal-promise-finally
18601
18602var $export = __webpack_require__(0);
18603var core = __webpack_require__(18);
18604var global = __webpack_require__(5);
18605var speciesConstructor = __webpack_require__(91);
18606var promiseResolve = __webpack_require__(177);
18607
18608$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {
18609  var C = speciesConstructor(this, core.Promise || global.Promise);
18610  var isFunction = typeof onFinally == 'function';
18611  return this.then(
18612    isFunction ? function (x) {
18613      return promiseResolve(C, onFinally()).then(function () { return x; });
18614    } : onFinally,
18615    isFunction ? function (e) {
18616      return promiseResolve(C, onFinally()).then(function () { throw e; });
18617    } : onFinally
18618  );
18619} });
18620
18621
18622/***/ }),
18623/* 414 */
18624/***/ (function(module, exports, __webpack_require__) {
18625
18626"use strict";
18627
18628// https://github.com/tc39/proposal-promise-try
18629var $export = __webpack_require__(0);
18630var newPromiseCapability = __webpack_require__(134);
18631var perform = __webpack_require__(176);
18632
18633$export($export.S, 'Promise', { 'try': function (callbackfn) {
18634  var promiseCapability = newPromiseCapability.f(this);
18635  var result = perform(callbackfn);
18636  (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
18637  return promiseCapability.promise;
18638} });
18639
18640
18641/***/ }),
18642/* 415 */
18643/***/ (function(module, exports, __webpack_require__) {
18644
18645var metadata = __webpack_require__(42);
18646var anObject = __webpack_require__(4);
18647var toMetaKey = metadata.key;
18648var ordinaryDefineOwnMetadata = metadata.set;
18649
18650metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {
18651  ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));
18652} });
18653
18654
18655/***/ }),
18656/* 416 */
18657/***/ (function(module, exports, __webpack_require__) {
18658
18659var metadata = __webpack_require__(42);
18660var anObject = __webpack_require__(4);
18661var toMetaKey = metadata.key;
18662var getOrCreateMetadataMap = metadata.map;
18663var store = metadata.store;
18664
18665metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {
18666  var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);
18667  var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);
18668  if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;
18669  if (metadataMap.size) return true;
18670  var targetMetadata = store.get(target);
18671  targetMetadata['delete'](targetKey);
18672  return !!targetMetadata.size || store['delete'](target);
18673} });
18674
18675
18676/***/ }),
18677/* 417 */
18678/***/ (function(module, exports, __webpack_require__) {
18679
18680var metadata = __webpack_require__(42);
18681var anObject = __webpack_require__(4);
18682var getPrototypeOf = __webpack_require__(26);
18683var ordinaryHasOwnMetadata = metadata.has;
18684var ordinaryGetOwnMetadata = metadata.get;
18685var toMetaKey = metadata.key;
18686
18687var ordinaryGetMetadata = function (MetadataKey, O, P) {
18688  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
18689  if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);
18690  var parent = getPrototypeOf(O);
18691  return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;
18692};
18693
18694metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {
18695  return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
18696} });
18697
18698
18699/***/ }),
18700/* 418 */
18701/***/ (function(module, exports, __webpack_require__) {
18702
18703var Set = __webpack_require__(121);
18704var from = __webpack_require__(186);
18705var metadata = __webpack_require__(42);
18706var anObject = __webpack_require__(4);
18707var getPrototypeOf = __webpack_require__(26);
18708var ordinaryOwnMetadataKeys = metadata.keys;
18709var toMetaKey = metadata.key;
18710
18711var ordinaryMetadataKeys = function (O, P) {
18712  var oKeys = ordinaryOwnMetadataKeys(O, P);
18713  var parent = getPrototypeOf(O);
18714  if (parent === null) return oKeys;
18715  var pKeys = ordinaryMetadataKeys(parent, P);
18716  return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;
18717};
18718
18719metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {
18720  return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
18721} });
18722
18723
18724/***/ }),
18725/* 419 */
18726/***/ (function(module, exports, __webpack_require__) {
18727
18728var metadata = __webpack_require__(42);
18729var anObject = __webpack_require__(4);
18730var ordinaryGetOwnMetadata = metadata.get;
18731var toMetaKey = metadata.key;
18732
18733metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {
18734  return ordinaryGetOwnMetadata(metadataKey, anObject(target)
18735    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
18736} });
18737
18738
18739/***/ }),
18740/* 420 */
18741/***/ (function(module, exports, __webpack_require__) {
18742
18743var metadata = __webpack_require__(42);
18744var anObject = __webpack_require__(4);
18745var ordinaryOwnMetadataKeys = metadata.keys;
18746var toMetaKey = metadata.key;
18747
18748metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {
18749  return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));
18750} });
18751
18752
18753/***/ }),
18754/* 421 */
18755/***/ (function(module, exports, __webpack_require__) {
18756
18757var metadata = __webpack_require__(42);
18758var anObject = __webpack_require__(4);
18759var getPrototypeOf = __webpack_require__(26);
18760var ordinaryHasOwnMetadata = metadata.has;
18761var toMetaKey = metadata.key;
18762
18763var ordinaryHasMetadata = function (MetadataKey, O, P) {
18764  var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);
18765  if (hasOwn) return true;
18766  var parent = getPrototypeOf(O);
18767  return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;
18768};
18769
18770metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {
18771  return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
18772} });
18773
18774
18775/***/ }),
18776/* 422 */
18777/***/ (function(module, exports, __webpack_require__) {
18778
18779var metadata = __webpack_require__(42);
18780var anObject = __webpack_require__(4);
18781var ordinaryHasOwnMetadata = metadata.has;
18782var toMetaKey = metadata.key;
18783
18784metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {
18785  return ordinaryHasOwnMetadata(metadataKey, anObject(target)
18786    , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));
18787} });
18788
18789
18790/***/ }),
18791/* 423 */
18792/***/ (function(module, exports, __webpack_require__) {
18793
18794var $metadata = __webpack_require__(42);
18795var anObject = __webpack_require__(4);
18796var aFunction = __webpack_require__(17);
18797var toMetaKey = $metadata.key;
18798var ordinaryDefineOwnMetadata = $metadata.set;
18799
18800$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {
18801  return function decorator(target, targetKey) {
18802    ordinaryDefineOwnMetadata(
18803      metadataKey, metadataValue,
18804      (targetKey !== undefined ? anObject : aFunction)(target),
18805      toMetaKey(targetKey)
18806    );
18807  };
18808} });
18809
18810
18811/***/ }),
18812/* 424 */
18813/***/ (function(module, exports, __webpack_require__) {
18814
18815// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask
18816var $export = __webpack_require__(0);
18817var microtask = __webpack_require__(133)();
18818var process = __webpack_require__(5).process;
18819var isNode = __webpack_require__(29)(process) == 'process';
18820
18821$export($export.G, {
18822  asap: function asap(fn) {
18823    var domain = isNode && process.domain;
18824    microtask(domain ? domain.bind(fn) : fn);
18825  }
18826});
18827
18828
18829/***/ }),
18830/* 425 */
18831/***/ (function(module, exports, __webpack_require__) {
18832
18833"use strict";
18834
18835// https://github.com/zenparsing/es-observable
18836var $export = __webpack_require__(0);
18837var global = __webpack_require__(5);
18838var core = __webpack_require__(18);
18839var microtask = __webpack_require__(133)();
18840var OBSERVABLE = __webpack_require__(9)('observable');
18841var aFunction = __webpack_require__(17);
18842var anObject = __webpack_require__(4);
18843var anInstance = __webpack_require__(55);
18844var redefineAll = __webpack_require__(54);
18845var hide = __webpack_require__(20);
18846var forOf = __webpack_require__(56);
18847var RETURN = forOf.RETURN;
18848
18849var getMethod = function (fn) {
18850  return fn == null ? undefined : aFunction(fn);
18851};
18852
18853var cleanupSubscription = function (subscription) {
18854  var cleanup = subscription._c;
18855  if (cleanup) {
18856    subscription._c = undefined;
18857    cleanup();
18858  }
18859};
18860
18861var subscriptionClosed = function (subscription) {
18862  return subscription._o === undefined;
18863};
18864
18865var closeSubscription = function (subscription) {
18866  if (!subscriptionClosed(subscription)) {
18867    subscription._o = undefined;
18868    cleanupSubscription(subscription);
18869  }
18870};
18871
18872var Subscription = function (observer, subscriber) {
18873  anObject(observer);
18874  this._c = undefined;
18875  this._o = observer;
18876  observer = new SubscriptionObserver(this);
18877  try {
18878    var cleanup = subscriber(observer);
18879    var subscription = cleanup;
18880    if (cleanup != null) {
18881      if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };
18882      else aFunction(cleanup);
18883      this._c = cleanup;
18884    }
18885  } catch (e) {
18886    observer.error(e);
18887    return;
18888  } if (subscriptionClosed(this)) cleanupSubscription(this);
18889};
18890
18891Subscription.prototype = redefineAll({}, {
18892  unsubscribe: function unsubscribe() { closeSubscription(this); }
18893});
18894
18895var SubscriptionObserver = function (subscription) {
18896  this._s = subscription;
18897};
18898
18899SubscriptionObserver.prototype = redefineAll({}, {
18900  next: function next(value) {
18901    var subscription = this._s;
18902    if (!subscriptionClosed(subscription)) {
18903      var observer = subscription._o;
vendor: 4,445 bytes, lines 18904-19064
18904      try {
18905        var m = getMethod(observer.next);
18906        if (m) return m.call(observer, value);
18907      } catch (e) {
18908        try {
18909          closeSubscription(subscription);
18910        } finally {
18911          throw e;
18912        }
18913      }
18914    }
18915  },
18916  error: function error(value) {
18917    var subscription = this._s;
18918    if (subscriptionClosed(subscription)) throw value;
18919    var observer = subscription._o;
18920    subscription._o = undefined;
18921    try {
18922      var m = getMethod(observer.error);
18923      if (!m) throw value;
18924      value = m.call(observer, value);
18925    } catch (e) {
18926      try {
18927        cleanupSubscription(subscription);
18928      } finally {
18929        throw e;
18930      }
18931    } cleanupSubscription(subscription);
18932    return value;
18933  },
18934  complete: function complete(value) {
18935    var subscription = this._s;
18936    if (!subscriptionClosed(subscription)) {
18937      var observer = subscription._o;
18938      subscription._o = undefined;
18939      try {
18940        var m = getMethod(observer.complete);
18941        value = m ? m.call(observer, value) : undefined;
18942      } catch (e) {
18943        try {
18944          cleanupSubscription(subscription);
18945        } finally {
18946          throw e;
18947        }
18948      } cleanupSubscription(subscription);
18949      return value;
18950    }
18951  }
18952});
18953
18954var $Observable = function Observable(subscriber) {
18955  anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);
18956};
18957
18958redefineAll($Observable.prototype, {
18959  subscribe: function subscribe(observer) {
18960    return new Subscription(observer, this._f);
18961  },
18962  forEach: function forEach(fn) {
18963    var that = this;
18964    return new (core.Promise || global.Promise)(function (resolve, reject) {
18965      aFunction(fn);
18966      var subscription = that.subscribe({
18967        next: function (value) {
18968          try {
18969            return fn(value);
18970          } catch (e) {
18971            reject(e);
18972            subscription.unsubscribe();
18973          }
18974        },
18975        error: reject,
18976        complete: resolve
18977      });
18978    });
18979  }
18980});
18981
18982redefineAll($Observable, {
18983  from: function from(x) {
18984    var C = typeof this === 'function' ? this : $Observable;
18985    var method = getMethod(anObject(x)[OBSERVABLE]);
18986    if (method) {
18987      var observable = anObject(method.call(x));
18988      return observable.constructor === C ? observable : new C(function (observer) {
18989        return observable.subscribe(observer);
18990      });
18991    }
18992    return new C(function (observer) {
18993      var done = false;
18994      microtask(function () {
18995        if (!done) {
18996          try {
18997            if (forOf(x, false, function (it) {
18998              observer.next(it);
18999              if (done) return RETURN;
19000            }) === RETURN) return;
19001          } catch (e) {
19002            if (done) throw e;
19003            observer.error(e);
19004            return;
19005          } observer.complete();
19006        }
19007      });
19008      return function () { done = true; };
19009    });
19010  },
19011  of: function of() {
19012    for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];
19013    return new (typeof this === 'function' ? this : $Observable)(function (observer) {
19014      var done = false;
19015      microtask(function () {
19016        if (!done) {
19017          for (var j = 0; j < items.length; ++j) {
19018            observer.next(items[j]);
19019            if (done) return;
19020          } observer.complete();
19021        }
19022      });
19023      return function () { done = true; };
19024    });
19025  }
19026});
19027
19028hide($Observable.prototype, OBSERVABLE, function () { return this; });
19029
19030$export($export.G, { Observable: $Observable });
19031
19032__webpack_require__(57)('Observable');
19033
19034
19035/***/ }),
19036/* 426 */
19037/***/ (function(module, exports, __webpack_require__) {
19038
19039// ie9- setTimeout & setInterval additional parameters fix
19040var global = __webpack_require__(5);
19041var $export = __webpack_require__(0);
19042var userAgent = __webpack_require__(92);
19043var slice = [].slice;
19044var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
19045var wrap = function (set) {
19046  return function (fn, time /* , ...args */) {
19047    var boundArgs = arguments.length > 2;
19048    var args = boundArgs ? slice.call(arguments, 2) : false;
19049    return set(boundArgs ? function () {
19050      // eslint-disable-next-line no-new-func
19051      (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);
19052    } : fn, time);
19053  };
19054};
19055$export($export.G + $export.B + $export.F * MSIE, {
19056  setTimeout: wrap(global.setTimeout),
19057  setInterval: wrap(global.setInterval)
19058});
19059
19060
19061/***/ }),
19062/* 427 */
19063/***/ (function(module, exports, __webpack_require__) {
19064
19065var $export = __webpack_require__(0);
19066var $task = __webpack_require__(132);
19067$export($export.G + $export.B, {
19068  setImmediate: $task.set,
19069  clearImmediate: $task.clear
19070});
19071
19072
19073/***/ }),
19074/* 428
vendor: 13,739 bytes, lines 19074-19428
19074 */
19075/***/ (function(module, exports, __webpack_require__) {
19076
19077/* WEBPACK VAR INJECTION */(function(global) {/**
19078 * Copyright (c) 2014, Facebook, Inc.
19079 * All rights reserved.
19080 *
19081 * This source code is licensed under the BSD-style license found in the
19082 * https://raw.github.com/facebook/regenerator/master/LICENSE file. An
19083 * additional grant of patent rights can be found in the PATENTS file in
19084 * the same directory.
19085 */
19086
19087!(function(global) {
19088  "use strict";
19089
19090  var Op = Object.prototype;
19091  var hasOwn = Op.hasOwnProperty;
19092  var undefined; // More compressible than void 0.
19093  var $Symbol = typeof Symbol === "function" ? Symbol : {};
19094  var iteratorSymbol = $Symbol.iterator || "@@iterator";
19095  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
19096  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
19097
19098  var inModule = typeof module === "object";
19099  var runtime = global.regeneratorRuntime;
19100  if (runtime) {
19101    if (inModule) {
19102      // If regeneratorRuntime is defined globally and we're in a module,
19103      // make the exports object identical to regeneratorRuntime.
19104      module.exports = runtime;
19105    }
19106    // Don't bother evaluating the rest of this file if the runtime was
19107    // already defined globally.
19108    return;
19109  }
19110
19111  // Define the runtime globally (as expected by generated code) as either
19112  // module.exports (if we're in a module) or a new, empty object.
19113  runtime = global.regeneratorRuntime = inModule ? module.exports : {};
19114
19115  function wrap(innerFn, outerFn, self, tryLocsList) {
19116    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
19117    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
19118    var generator = Object.create(protoGenerator.prototype);
19119    var context = new Context(tryLocsList || []);
19120
19121    // The ._invoke method unifies the implementations of the .next,
19122    // .throw, and .return methods.
19123    generator._invoke = makeInvokeMethod(innerFn, self, context);
19124
19125    return generator;
19126  }
19127  runtime.wrap = wrap;
19128
19129  // Try/catch helper to minimize deoptimizations. Returns a completion
19130  // record like context.tryEntries[i].completion. This interface could
19131  // have been (and was previously) designed to take a closure to be
19132  // invoked without arguments, but in all the cases we care about we
19133  // already have an existing method we want to call, so there's no need
19134  // to create a new function object. We can even get away with assuming
19135  // the method takes exactly one argument, since that happens to be true
19136  // in every case, so we don't have to touch the arguments object. The
19137  // only additional allocation required is the completion record, which
19138  // has a stable shape and so hopefully should be cheap to allocate.
19139  function tryCatch(fn, obj, arg) {
19140    try {
19141      return { type: "normal", arg: fn.call(obj, arg) };
19142    } catch (err) {
19143      return { type: "throw", arg: err };
19144    }
19145  }
19146
19147  var GenStateSuspendedStart = "suspendedStart";
19148  var GenStateSuspendedYield = "suspendedYield";
19149  var GenStateExecuting = "executing";
19150  var GenStateCompleted = "completed";
19151
19152  // Returning this object from the innerFn has the same effect as
19153  // breaking out of the dispatch switch statement.
19154  var ContinueSentinel = {};
19155
19156  // Dummy constructor functions that we use as the .constructor and
19157  // .constructor.prototype properties for functions that return Generator
19158  // objects. For full spec compliance, you may wish to configure your
19159  // minifier not to mangle the names of these two functions.
19160  function Generator() {}
19161  function GeneratorFunction() {}
19162  function GeneratorFunctionPrototype() {}
19163
19164  // This is a polyfill for %IteratorPrototype% for environments that
19165  // don't natively support it.
19166  var IteratorPrototype = {};
19167  IteratorPrototype[iteratorSymbol] = function () {
19168    return this;
19169  };
19170
19171  var getProto = Object.getPrototypeOf;
19172  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
19173  if (NativeIteratorPrototype &&
19174      NativeIteratorPrototype !== Op &&
19175      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
19176    // This environment has a native %IteratorPrototype%; use it instead
19177    // of the polyfill.
19178    IteratorPrototype = NativeIteratorPrototype;
19179  }
19180
19181  var Gp = GeneratorFunctionPrototype.prototype =
19182    Generator.prototype = Object.create(IteratorPrototype);
19183  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
19184  GeneratorFunctionPrototype.constructor = GeneratorFunction;
19185  GeneratorFunctionPrototype[toStringTagSymbol] =
19186    GeneratorFunction.displayName = "GeneratorFunction";
19187
19188  // Helper for defining the .next, .throw, and .return methods of the
19189  // Iterator interface in terms of a single ._invoke method.
19190  function defineIteratorMethods(prototype) {
19191    ["next", "throw", "return"].forEach(function(method) {
19192      prototype[method] = function(arg) {
19193        return this._invoke(method, arg);
19194      };
19195    });
19196  }
19197
19198  runtime.isGeneratorFunction = function(genFun) {
19199    var ctor = typeof genFun === "function" && genFun.constructor;
19200    return ctor
19201      ? ctor === GeneratorFunction ||
19202        // For the native GeneratorFunction constructor, the best we can
19203        // do is to check its .name property.
19204        (ctor.displayName || ctor.name) === "GeneratorFunction"
19205      : false;
19206  };
19207
19208  runtime.mark = function(genFun) {
19209    if (Object.setPrototypeOf) {
19210      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
19211    } else {
19212      genFun.__proto__ = GeneratorFunctionPrototype;
19213      if (!(toStringTagSymbol in genFun)) {
19214        genFun[toStringTagSymbol] = "GeneratorFunction";
19215      }
19216    }
19217    genFun.prototype = Object.create(Gp);
19218    return genFun;
19219  };
19220
19221  // Within the body of any async function, `await x` is transformed to
19222  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
19223  // `hasOwn.call(value, "__await")` to determine if the yielded value is
19224  // meant to be awaited.
19225  runtime.awrap = function(arg) {
19226    return { __await: arg };
19227  };
19228
19229  function AsyncIterator(generator) {
19230    function invoke(method, arg, resolve, reject) {
19231      var record = tryCatch(generator[method], generator, arg);
19232      if (record.type === "throw") {
19233        reject(record.arg);
19234      } else {
19235        var result = record.arg;
19236        var value = result.value;
19237        if (value &&
19238            typeof value === "object" &&
19239            hasOwn.call(value, "__await")) {
19240          return Promise.resolve(value.__await).then(function(value) {
19241            invoke("next", value, resolve, reject);
19242          }, function(err) {
19243            invoke("throw", err, resolve, reject);
19244          });
19245        }
19246
19247        return Promise.resolve(value).then(function(unwrapped) {
19248          // When a yielded Promise is resolved, its final value becomes
19249          // the .value of the Promise<{value,done}> result for the
19250          // current iteration. If the Promise is rejected, however, the
19251          // result for this iteration will be rejected with the same
19252          // reason. Note that rejections of yielded Promises are not
19253          // thrown back into the generator function, as is the case
19254          // when an awaited Promise is rejected. This difference in
19255          // behavior between yield and await is important, because it
19256          // allows the consumer to decide what to do with the yielded
19257          // rejection (swallow it and continue, manually .throw it back
19258          // into the generator, abandon iteration, whatever). With
19259          // await, by contrast, there is no opportunity to examine the
19260          // rejection reason outside the generator function, so the
19261          // only option is to throw it from the await expression, and
19262          // let the generator function handle the exception.
19263          result.value = unwrapped;
19264          resolve(result);
19265        }, reject);
19266      }
19267    }
19268
19269    if (typeof global.process === "object" && global.process.domain) {
19270      invoke = global.process.domain.bind(invoke);
19271    }
19272
19273    var previousPromise;
19274
19275    function enqueue(method, arg) {
19276      function callInvokeWithMethodAndArg() {
19277        return new Promise(function(resolve, reject) {
19278          invoke(method, arg, resolve, reject);
19279        });
19280      }
19281
19282      return previousPromise =
19283        // If enqueue has been called before, then we want to wait until
19284        // all previous Promises have been resolved before calling invoke,
19285        // so that results are always delivered in the correct order. If
19286        // enqueue has not been called before, then it is important to
19287        // call invoke immediately, without waiting on a callback to fire,
19288        // so that the async generator function has the opportunity to do
19289        // any necessary setup in a predictable way. This predictability
19290        // is why the Promise constructor synchronously invokes its
19291        // executor callback, and why async functions synchronously
19292        // execute code before the first await. Since we implement simple
19293        // async functions in terms of async generators, it is especially
19294        // important to get this right, even though it requires care.
19295        previousPromise ? previousPromise.then(
19296          callInvokeWithMethodAndArg,
19297          // Avoid propagating failures to Promises returned by later
19298          // invocations of the iterator.
19299          callInvokeWithMethodAndArg
19300        ) : callInvokeWithMethodAndArg();
19301    }
19302
19303    // Define the unified helper method that is used to implement .next,
19304    // .throw, and .return (see defineIteratorMethods).
19305    this._invoke = enqueue;
19306  }
19307
19308  defineIteratorMethods(AsyncIterator.prototype);
19309  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
19310    return this;
19311  };
19312  runtime.AsyncIterator = AsyncIterator;
19313
19314  // Note that simple async functions are implemented on top of
19315  // AsyncIterator objects; they just return a Promise for the value of
19316  // the final result produced by the iterator.
19317  runtime.async = function(innerFn, outerFn, self, tryLocsList) {
19318    var iter = new AsyncIterator(
19319      wrap(innerFn, outerFn, self, tryLocsList)
19320    );
19321
19322    return runtime.isGeneratorFunction(outerFn)
19323      ? iter // If outerFn is a generator, return the full iterator.
19324      : iter.next().then(function(result) {
19325          return result.done ? result.value : iter.next();
19326        });
19327  };
19328
19329  function makeInvokeMethod(innerFn, self, context) {
19330    var state = GenStateSuspendedStart;
19331
19332    return function invoke(method, arg) {
19333      if (state === GenStateExecuting) {
19334        throw new Error("Generator is already running");
19335      }
19336
19337      if (state === GenStateCompleted) {
19338        if (method === "throw") {
19339          throw arg;
19340        }
19341
19342        // Be forgiving, per 25.3.3.3.3 of the spec:
19343        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
19344        return doneResult();
19345      }
19346
19347      context.method = method;
19348      context.arg = arg;
19349
19350      while (true) {
19351        var delegate = context.delegate;
19352        if (delegate) {
19353          var delegateResult = maybeInvokeDelegate(delegate, context);
19354          if (delegateResult) {
19355            if (delegateResult === ContinueSentinel) continue;
19356            return delegateResult;
19357          }
19358        }
19359
19360        if (context.method === "next") {
19361          // Setting context._sent for legacy support of Babel's
19362          // function.sent implementation.
19363          context.sent = context._sent = context.arg;
19364
19365        } else if (context.method === "throw") {
19366          if (state === GenStateSuspendedStart) {
19367            state = GenStateCompleted;
19368            throw context.arg;
19369          }
19370
19371          context.dispatchException(context.arg);
19372
19373        } else if (context.method === "return") {
19374          context.abrupt("return", context.arg);
19375        }
19376
19377        state = GenStateExecuting;
19378
19379        var record = tryCatch(innerFn, self, context);
19380        if (record.type === "normal") {
19381          // If an exception is thrown from innerFn, we leave state ===
19382          // GenStateExecuting and loop back for another invocation.
19383          state = context.done
19384            ? GenStateCompleted
19385            : GenStateSuspendedYield;
19386
19387          if (record.arg === ContinueSentinel) {
19388            continue;
19389          }
19390
19391          return {
19392            value: record.arg,
19393            done: context.done
19394          };
19395
19396        } else if (record.type === "throw") {
19397          state = GenStateCompleted;
19398          // Dispatch the exception by looping back around to the
19399          // context.dispatchException(context.arg) call above.
19400          context.method = "throw";
19401          context.arg = record.arg;
19402        }
19403      }
19404    };
19405  }
19406
19407  // Call delegate.iterator[context.method](context.arg) and handle the
19408  // result, either by returning a { value, done } result from the
19409  // delegate iterator, or by modifying context.method and context.arg,
19410  // setting context.delegate to null, and returning the ContinueSentinel.
19411  function maybeInvokeDelegate(delegate, context) {
19412    var method = delegate.iterator[context.method];
19413    if (method === undefined) {
19414      // A .throw or .return when the delegate iterator has no .throw
19415      // method always terminates the yield* loop.
19416      context.delegate = null;
19417
19418      if (context.method === "throw") {
19419        if (delegate.iterator.return) {
19420          // If the delegate iterator has a return method, give it a
19421          // chance to clean up.
19422          context.method = "return";
19423          context.arg = undefined;
19424          maybeInvokeDelegate(delegate, context);
19425
19426          if (context.method === "throw") {
19427            // If maybeInvokeDelegate(context) changed context.method from
19428            // "return" to "throw", let that override the TypeError below.
vendor: 10,473 bytes, lines 19429-19806
19429            return ContinueSentinel;
19430          }
19431        }
19432
19433        context.method = "throw";
19434        context.arg = new TypeError(
19435          "The iterator does not provide a 'throw' method");
19436      }
19437
19438      return ContinueSentinel;
19439    }
19440
19441    var record = tryCatch(method, delegate.iterator, context.arg);
19442
19443    if (record.type === "throw") {
19444      context.method = "throw";
19445      context.arg = record.arg;
19446      context.delegate = null;
19447      return ContinueSentinel;
19448    }
19449
19450    var info = record.arg;
19451
19452    if (! info) {
19453      context.method = "throw";
19454      context.arg = new TypeError("iterator result is not an object");
19455      context.delegate = null;
19456      return ContinueSentinel;
19457    }
19458
19459    if (info.done) {
19460      // Assign the result of the finished delegate to the temporary
19461      // variable specified by delegate.resultName (see delegateYield).
19462      context[delegate.resultName] = info.value;
19463
19464      // Resume execution at the desired location (see delegateYield).
19465      context.next = delegate.nextLoc;
19466
19467      // If context.method was "throw" but the delegate handled the
19468      // exception, let the outer generator proceed normally. If
19469      // context.method was "next", forget context.arg since it has been
19470      // "consumed" by the delegate iterator. If context.method was
19471      // "return", allow the original .return call to continue in the
19472      // outer generator.
19473      if (context.method !== "return") {
19474        context.method = "next";
19475        context.arg = undefined;
19476      }
19477
19478    } else {
19479      // Re-yield the result returned by the delegate method.
19480      return info;
19481    }
19482
19483    // The delegate iterator is finished, so forget it and continue with
19484    // the outer generator.
19485    context.delegate = null;
19486    return ContinueSentinel;
19487  }
19488
19489  // Define Generator.prototype.{next,throw,return} in terms of the
19490  // unified ._invoke helper method.
19491  defineIteratorMethods(Gp);
19492
19493  Gp[toStringTagSymbol] = "Generator";
19494
19495  // A Generator should always return itself as the iterator object when the
19496  // @@iterator function is called on it. Some browsers' implementations of the
19497  // iterator prototype chain incorrectly implement this, causing the Generator
19498  // object to not be returned from this call. This ensures that doesn't happen.
19499  // See https://github.com/facebook/regenerator/issues/274 for more details.
19500  Gp[iteratorSymbol] = function() {
19501    return this;
19502  };
19503
19504  Gp.toString = function() {
19505    return "[object Generator]";
19506  };
19507
19508  function pushTryEntry(locs) {
19509    var entry = { tryLoc: locs[0] };
19510
19511    if (1 in locs) {
19512      entry.catchLoc = locs[1];
19513    }
19514
19515    if (2 in locs) {
19516      entry.finallyLoc = locs[2];
19517      entry.afterLoc = locs[3];
19518    }
19519
19520    this.tryEntries.push(entry);
19521  }
19522
19523  function resetTryEntry(entry) {
19524    var record = entry.completion || {};
19525    record.type = "normal";
19526    delete record.arg;
19527    entry.completion = record;
19528  }
19529
19530  function Context(tryLocsList) {
19531    // The root entry object (effectively a try statement without a catch
19532    // or a finally block) gives us a place to store values thrown from
19533    // locations where there is no enclosing try statement.
19534    this.tryEntries = [{ tryLoc: "root" }];
19535    tryLocsList.forEach(pushTryEntry, this);
19536    this.reset(true);
19537  }
19538
19539  runtime.keys = function(object) {
19540    var keys = [];
19541    for (var key in object) {
19542      keys.push(key);
19543    }
19544    keys.reverse();
19545
19546    // Rather than returning an object with a next method, we keep
19547    // things simple and return the next function itself.
19548    return function next() {
19549      while (keys.length) {
19550        var key = keys.pop();
19551        if (key in object) {
19552          next.value = key;
19553          next.done = false;
19554          return next;
19555        }
19556      }
19557
19558      // To avoid creating an additional object, we just hang the .value
19559      // and .done properties off the next function object itself. This
19560      // also ensures that the minifier will not anonymize the function.
19561      next.done = true;
19562      return next;
19563    };
19564  };
19565
19566  function values(iterable) {
19567    if (iterable) {
19568      var iteratorMethod = iterable[iteratorSymbol];
19569      if (iteratorMethod) {
19570        return iteratorMethod.call(iterable);
19571      }
19572
19573      if (typeof iterable.next === "function") {
19574        return iterable;
19575      }
19576
19577      if (!isNaN(iterable.length)) {
19578        var i = -1, next = function next() {
19579          while (++i < iterable.length) {
19580            if (hasOwn.call(iterable, i)) {
19581              next.value = iterable[i];
19582              next.done = false;
19583              return next;
19584            }
19585          }
19586
19587          next.value = undefined;
19588          next.done = true;
19589
19590          return next;
19591        };
19592
19593        return next.next = next;
19594      }
19595    }
19596
19597    // Return an iterator with no values.
19598    return { next: doneResult };
19599  }
19600  runtime.values = values;
19601
19602  function doneResult() {
19603    return { value: undefined, done: true };
19604  }
19605
19606  Context.prototype = {
19607    constructor: Context,
19608
19609    reset: function(skipTempReset) {
19610      this.prev = 0;
19611      this.next = 0;
19612      // Resetting context._sent for legacy support of Babel's
19613      // function.sent implementation.
19614      this.sent = this._sent = undefined;
19615      this.done = false;
19616      this.delegate = null;
19617
19618      this.method = "next";
19619      this.arg = undefined;
19620
19621      this.tryEntries.forEach(resetTryEntry);
19622
19623      if (!skipTempReset) {
19624        for (var name in this) {
19625          // Not sure about the optimal order of these conditions:
19626          if (name.charAt(0) === "t" &&
19627              hasOwn.call(this, name) &&
19628              !isNaN(+name.slice(1))) {
19629            this[name] = undefined;
19630          }
19631        }
19632      }
19633    },
19634
19635    stop: function() {
19636      this.done = true;
19637
19638      var rootEntry = this.tryEntries[0];
19639      var rootRecord = rootEntry.completion;
19640      if (rootRecord.type === "throw") {
19641        throw rootRecord.arg;
19642      }
19643
19644      return this.rval;
19645    },
19646
19647    dispatchException: function(exception) {
19648      if (this.done) {
19649        throw exception;
19650      }
19651
19652      var context = this;
19653      function handle(loc, caught) {
19654        record.type = "throw";
19655        record.arg = exception;
19656        context.next = loc;
19657
19658        if (caught) {
19659          // If the dispatched exception was caught by a catch block,
19660          // then let that catch block handle the exception normally.
19661          context.method = "next";
19662          context.arg = undefined;
19663        }
19664
19665        return !! caught;
19666      }
19667
19668      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
19669        var entry = this.tryEntries[i];
19670        var record = entry.completion;
19671
19672        if (entry.tryLoc === "root") {
19673          // Exception thrown outside of any try block that could handle
19674          // it, so set the completion value of the entire function to
19675          // throw the exception.
19676          return handle("end");
19677        }
19678
19679        if (entry.tryLoc <= this.prev) {
19680          var hasCatch = hasOwn.call(entry, "catchLoc");
19681          var hasFinally = hasOwn.call(entry, "finallyLoc");
19682
19683          if (hasCatch && hasFinally) {
19684            if (this.prev < entry.catchLoc) {
19685              return handle(entry.catchLoc, true);
19686            } else if (this.prev < entry.finallyLoc) {
19687              return handle(entry.finallyLoc);
19688            }
19689
19690          } else if (hasCatch) {
19691            if (this.prev < entry.catchLoc) {
19692              return handle(entry.catchLoc, true);
19693            }
19694
19695          } else if (hasFinally) {
19696            if (this.prev < entry.finallyLoc) {
19697              return handle(entry.finallyLoc);
19698            }
19699
19700          } else {
19701            throw new Error("try statement without catch or finally");
19702          }
19703        }
19704      }
19705    },
19706
19707    abrupt: function(type, arg) {
19708      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
19709        var entry = this.tryEntries[i];
19710        if (entry.tryLoc <= this.prev &&
19711            hasOwn.call(entry, "finallyLoc") &&
19712            this.prev < entry.finallyLoc) {
19713          var finallyEntry = entry;
19714          break;
19715        }
19716      }
19717
19718      if (finallyEntry &&
19719          (type === "break" ||
19720           type === "continue") &&
19721          finallyEntry.tryLoc <= arg &&
19722          arg <= finallyEntry.finallyLoc) {
19723        // Ignore the finally entry if control is not jumping to a
19724        // location outside the try/catch block.
19725        finallyEntry = null;
19726      }
19727
19728      var record = finallyEntry ? finallyEntry.completion : {};
19729      record.type = type;
19730      record.arg = arg;
19731
19732      if (finallyEntry) {
19733        this.method = "next";
19734        this.next = finallyEntry.finallyLoc;
19735        return ContinueSentinel;
19736      }
19737
19738      return this.complete(record);
19739    },
19740
19741    complete: function(record, afterLoc) {
19742      if (record.type === "throw") {
19743        throw record.arg;
19744      }
19745
19746      if (record.type === "break" ||
19747          record.type === "continue") {
19748        this.next = record.arg;
19749      } else if (record.type === "return") {
19750        this.rval = this.arg = record.arg;
19751        this.method = "return";
19752        this.next = "end";
19753      } else if (record.type === "normal" && afterLoc) {
19754        this.next = afterLoc;
19755      }
19756
19757      return ContinueSentinel;
19758    },
19759
19760    finish: function(finallyLoc) {
19761      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
19762        var entry = this.tryEntries[i];
19763        if (entry.finallyLoc === finallyLoc) {
19764          this.complete(entry.completion, entry.afterLoc);
19765          resetTryEntry(entry);
19766          return ContinueSentinel;
19767        }
19768      }
19769    },
19770
19771    "catch": function(tryLoc) {
19772      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
19773        var entry = this.tryEntries[i];
19774        if (entry.tryLoc === tryLoc) {
19775          var record = entry.completion;
19776          if (record.type === "throw") {
19777            var thrown = record.arg;
19778            resetTryEntry(entry);
19779          }
19780          return thrown;
19781        }
19782      }
19783
19784      // The context.catch method must only be called with a location
19785      // argument that corresponds to a known catch block.
19786      throw new Error("illegal catch attempt");
19787    },
19788
19789    delegateYield: function(iterable, resultName, nextLoc) {
19790      this.delegate = {
19791        iterator: values(iterable),
19792        resultName: resultName,
19793        nextLoc: nextLoc
19794      };
19795
19796      if (this.method === "next") {
19797        // Deliberately forget the last sent value so that we don't
19798        // accidentally pass it on to the delegate.
19799        this.arg = undefined;
19800      }
19801
19802      return ContinueSentinel;
19803    }
19804  };
19805})(
19806  // 
19806Among the various tricks for obtaining a reference to the global
19807  // object, this seems to be the most reliable technique that does not
19808  // use indirect eval (which violates Content Security Policy).
19809  typeof global === "object" ? global :
19810  typeof window === "object" ? window :
19811  typeof self === "object" ? self : this
19812);
19813
19814/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64)))
19815
19816/***/ }),
19817/* 429 */
19818/***/ (function(module, exports, __webpack_require__) {
19819
19820__webpack_require__(430);
19821module.exports = __webpack_require__(18).RegExp.escape;
19822
19823
19824/***/ }),
19825/* 430 */
19826/***/ (function(module, exports, __webpack_require__) {
19827
19828// https://github.com/benjamingr/RexExp.escape
19829var $export = __webpack_require__(0);
19830var $re = __webpack_require__(431)(/[\\^$*+?.()|[\]{}]/g, '\\$&');
19831
19832$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });
19833
19834
19835/***/ }),
19836/* 431 */
19837/***/ (function(module, exports) {
19838
19839module.exports = function (regExp, replace) {
19840  var replacer = replace === Object(replace) ? function (part) {
19841    return replace[part];
19842  } : replace;
19843  return function (it) {
19844    return String(it).replace(regExp, replacer);
19845  };
19846};
19847
19848
19849/***/ }),
19850/* 432 */
19851/***/ (function(module, exports, __webpack_require__) {
19852
19853"use strict";
19854
19855
19856if (window.NodeList && !NodeList.prototype.forEach) {
19857    NodeList.prototype.forEach = Array.prototype.forEach;
19858}
19859
19860// =========
19861
19862var isIE = navigator.userAgent.indexOf("MSIE") != -1 || /Trident.*rv[ :]*11\./.test(navigator.userAgent);
19863
19864if (isIE) {
19865    var j = document.createElement('script');
19866    j.src = "https://cdnjs.cloudflare.com/ajax/libs/flexibility/2.0.1/flexibility.js";
19867    j.onload = function () {
19868        document.querySelectorAll('.cpcLayout').forEach(function (element) {
19869            element.setAttribute('data-style', 'display: flex;');
19870        });
19871
19872        flexibility(document.documentElement);
19873    };
19874    document.getElementsByTagName('head')[0].appendChild(j);
19875}
19876
19877// =======
19878
19879/**
19880 * Add dataset support to elements
19881 * No globals, no overriding prototype with non-standard methods, 
19882 *   handles CamelCase properly, attempts to use standard 
19883 *   Object.defineProperty() (and Function bind()) methods, 
19884 *   falls back to native implementation when existing
19885 * Inspired by http://code.eligrey.com/html5/dataset/ 
19886 *   (via https://github.com/adalgiso/html5-dataset/blob/master/html5-dataset.js )
19887 * Depends on Function.bind and Object.defineProperty/Object.getOwnPropertyDescriptor (polyfills below)
19888 * All code below is Licensed under the X11/MIT License
19889*/
19890
19891// Inspired by https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind#Compatibility
19892if (!Function.prototype.bind) {
19893    Function.prototype.bind = function (oThis) {
19894        'use strict';
19895
19896        if (typeof this !== "function") {
19897            // closest thing possible to the ECMAScript 5 internal IsCallable function
19898            throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
19899        }
19900
19901        var aArgs = Array.prototype.slice.call(arguments, 1),
19902            fToBind = this,
19903            FNOP = function FNOP() {},
19904            fBound = function fBound() {
19905            return fToBind.apply(this instanceof FNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
19906        };
19907
19908        FNOP.prototype = this.prototype;
19909        fBound.prototype = new FNOP();
19910
19911        return fBound;
19912    };
19913}
19914
19915/*
19916 * Xccessors Standard: Cross-browser ECMAScript 5 accessors
19917 * http://purl.eligrey.com/github/Xccessors
19918 * 
19919 * 2010-06-21
19920 * 
19921 * By Eli Grey, http://eligrey.com
19922 * 
19923 * A shim that partially implements Object.defineProperty,
19924 * Object.getOwnPropertyDescriptor, and Object.defineProperties in browsers that have
19925 * legacy __(define|lookup)[GS]etter__ support.
19926 * 
19927 * Licensed under the X11/MIT License
19928 *   See LICENSE.md
19929*/
19930
19931// Removed a few JSLint options as Notepad++ JSLint validator complaining and 
19932//   made comply with JSLint; also moved 'use strict' inside function
19933/*jslint white: true, undef: true, plusplus: true,
19934  bitwise: true, regexp: true, newcap: true, maxlen: 90 */
19935
19936/*! @source http://purl.eligrey.com/github/Xccessors/blob/master/xccessors-standard.js*/
19937
19938(function () {
19939    'use strict';
19940
19941    var ObjectProto = Object.prototype,
19942        defineGetter = ObjectProto.__defineGetter__,
19943        defineSetter = ObjectProto.__defineSetter__,
19944        lookupGetter = ObjectProto.__lookupGetter__,
19945        lookupSetter = ObjectProto.__lookupSetter__,
19946        hasOwnProp = ObjectProto.hasOwnProperty;
19947
19948    if (defineGetter && defineSetter && lookupGetter && lookupSetter) {
19949
19950        if (!Object.defineProperty) {
19951            Object.defineProperty = function (obj, prop, descriptor) {
19952                if (arguments.length < 3) {
19953                    // all arguments required
19954                    throw new TypeError("Arguments not optional");
19955                }
19956
19957                prop += ""; // convert prop to string
19958
19959                if (hasOwnProp.call(descriptor, "value")) {
19960                    if (!lookupGetter.call(obj, prop) && !lookupSetter.call(obj, prop)) {
19961                        // data property defined and no pre-existing accessors
19962                        obj[prop] = descriptor.value;
19963                    }
19964
19965                    if (hasOwnProp.call(descriptor, "get") || hasOwnProp.call(descriptor, "set")) {
19966                        // descriptor has a value prop but accessor already exists
19967                        throw new TypeError("Cannot specify an accessor and a value");
19968                    }
19969                }
19970
19971                // can't switch off these features in ECMAScript 3
19972                // so throw a TypeError if any are false
19973                if (!(descriptor.writable && descriptor.enumerable && descriptor.configurable)) {
19974                    throw new TypeError("This implementation of Object.defineProperty does not support" + " false for configurable, enumerable, or writable.");
19975                }
19976
19977                if (descriptor.get) {
19978                    defineGetter.call(obj, prop, descriptor.get);
19979                }
19980                if (descriptor.set) {
19981                    defineSetter.call(obj, prop, descriptor.set);
19982                }
19983
19984                return obj;
19985            };
19986        }
19987
19988        if (!Object.getOwnPropertyDescriptor) {
19989            Object.getOwnPropertyDescriptor = function (obj, prop) {
19990                if (arguments.length < 2) {
19991                    // all arguments required
19992                    throw new TypeError("Arguments not optional.");
19993                }
19994
19995                prop += ""; // convert prop to string
19996
19997                var descriptor = {
19998                    configurable: true,
19999                    enumerable: true,
20000                    writable: true
20001                },
20002                    getter = lookupGetter.call(obj, prop),
20003                    setter = lookupSetter.call(obj, prop);
20004
20005                if (!hasOwnProp.call(obj, prop)) {
20006                    // property doesn't exist or is inherited
20007                    return descriptor;
20008                }
20009                if (!getter && !setter) {
20010                    // not an accessor so return prop
20011                    descriptor.value = obj[prop];
20012                    return descriptor;
20013                }
20014
20015                // there is an accessor, remove descriptor.writable;
20016                // populate descriptor.get and descriptor.set (IE's behavior)
20017                delete descriptor.writable;
20018                descriptor.get = descriptor.set = undefined;
20019
20020                if (getter) {
20021                    descriptor.get = getter;
20022                }
20023                if (setter) {
20024                    descriptor.set = setter;
20025                }
20026
20027                return descriptor;
20028            };
20029        }
20030
20031        if (!Object.defineProperties) {
20032            Object.defineProperties = function (obj, props) {
20033                var prop;
20034                for (prop in props) {
20035                    if (hasOwnProp.call(props, prop)) {
20036                        Object.defineProperty(obj, prop, props[prop]);
20037                    }
20038                }
20039            };
20040        }
20041    }
20042})();
20043
20044// Begin dataset code
20045
20046if (!document.documentElement.dataset && (
20047// FF is empty while IE gives empty object
20048!Object.getOwnPropertyDescriptor(Element.prototype, 'dataset') || !Object.getOwnPropertyDescriptor(Element.prototype, 'dataset').get)) {
20049    var propDescriptor = {
20050        enumerable: true,
20051        get: function get() {
20052            'use strict';
20053
20054            var i,
20055                that = this,
20056                HTML5_DOMStringMap,
20057                attrVal,
20058                attrName,
20059                propName,
20060                attribute,
20061                attributes = this.attributes,
20062                attsLength = attributes.length,
20063                toUpperCase = function toUpperCase(n0) {
20064                return n0.charAt(1).toUpperCase();
20065            },
20066                getter = function getter() {
20067                return this;
20068            },
20069                setter = function setter(attrName, value) {
20070                return typeof value !== 'undefined' ? this.setAttribute(attrName, value) : this.removeAttribute(attrName);
20071            };
20072            try {
20073                // Simulate DOMStringMap w/accessor support
20074                // Test setting accessor on normal object
20075                ({}).__defineGetter__('test', function () {});
20076                HTML5_DOMStringMap = {};
20077            } catch (e1) {
20078                // Use a DOM object for IE8
20079                HTML5_DOMStringMap = document.createElement('div');
20080            }
20081            for (i = 0; i < attsLength; i++) {
20082                attribute = attributes[i];
20083                // Fix: This test really should allow any XML Name without 
20084                //         colons (and non-uppercase for XHTML)
20085                if (attribute && attribute.name && /^data-\w[\w\-]*$/.test(attribute.name)) {
20086                    attrVal = attribute.value;
20087                    attrName = attribute.name;
20088                    // Change to CamelCase
20089                    propName = attrName.substr(5).replace(/-./g, toUpperCase);
20090                    try {
20091                        Object.defineProperty(HTML5_DOMStringMap, propName, {
20092                            enumerable: this.enumerable,
20093                            get: getter.bind(attrVal || ''),
20094                            set: setter.bind(that, attrName)
20095                        });
20096                    } catch (e2) {
20097                        // if accessors are not working
20098                        HTML5_DOMStringMap[propName] = attrVal;
20099                    }
20100                }
20101            }
20102            return HTML5_DOMStringMap;
20103        }
20104    };
20105    try {
20106        // FF enumerates over element's dataset, but not 
20107        //   Element.prototype.dataset; IE9 iterates over both
20108        Object.defineProperty(Element.prototype, 'dataset', propDescriptor);
20109    } catch (e) {
20110        propDescriptor.enumerable = false; // IE8 does not allow setting to true
20111        Object.defineProperty(Element.prototype, 'dataset', propDescriptor);
20112    }
20113}
20114
20115/***/ }),
20116/* 433 */
20117/***/ (function(module, exports, __webpack_require__) {
20118
20119"use strict";
20120/**
20121 * Copyright (c) 2013-present, Facebook, Inc.
20122 *
20123 * This source code is licensed under the MIT license found in the
20124 * LICENSE file in the root directory of this source tree.
20125 *
20126 */
20127
20128
20129
20130var PooledClass = __webpack_require__(434);
20131var ReactElement = __webpack_require__(59);
20132
20133var emptyFunction = __webpack_require__(38);
20134var traverseAllChildren = __webpack_require__(435);
20135
20136var twoArgumentPooler = PooledClass.twoArgumentPooler;
20137var fourArgumentPooler = PooledClass.fourArgumentPooler;
20138
20139var userProvidedKeyEscapeRegex = /\/+/g;
20140function escapeUserProvidedKey(text) {
20141  return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');
20142}
20143
20144/**
20145 * PooledClass representing the bookkeeping associated with performing a child
20146 * traversal. Allows avoiding binding callbacks.
20147 *
20148 * @constructor ForEachBookKeeping
20149 * @param {!function} forEachFunction Function to perform traversal with.
20150 * @param {?*} forEachContext Context to perform context with.
20151 */
20152function ForEachBookKeeping(forEachFunction, forEachContext) {
20153  this.func = forEachFunction;
20154  this.context = forEachContext;
20155  this.count = 0;
20156}
20157ForEachBookKeeping.prototype.destructor = function () {
20158  this.func = null;
20159  this.context = null;
20160  this.count = 0;
20161};
20162PooledClass.addPoolingTo(ForEachBookKeeping, twoArgumentPooler);
20163
20164function forEachSingleChild(bookKeeping, child, name) {
20165  var func = bookKeeping.func,
20166      context = bookKeeping.context;
20167
20168  func.call(context, child, bookKeeping.count++);
20169}
20170
20171/**
20172 * Iterates through children that are typically specified as `props.children`.
20173 *
20174 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.foreach
20175 *
20176 * The provided forEachFunc(child, index) will be called for each
20177 * leaf child.
20178 *
20179 * @param {?*} children Children tree container.
20180 * @param {function(*, int)} forEachFunc
20181 * @param {*} forEachContext Context for forEachContext.
20182 */
20183function forEachChildren(children, forEachFunc, forEachContext) {
20184  if (children == null) {
20185    return children;
20186  }
20187  var traverseContext = ForEachBookKeeping.getPooled(forEachFunc, forEachContext);
20188  traverseAllChildren(children, forEachSingleChild, traverseContext);
20189  ForEachBookKeeping.release(traverseContext);
20190}
20191
20192/**
20193 * PooledClass representing the bookkeeping associated with performing a child
20194 * mapping. Allows avoiding binding callbacks.
20195 *
20196 * @constructor MapBookKeeping
20197 * @param {!*} mapResult Object containing the ordered map of results.
20198 * @param {!function} mapFunction Function to perform mapping with.
20199 * @param {?*} mapContext Context to perform mapping with.
20200 */
20201function MapBookKeeping(mapResult, keyPrefix, mapFunction, mapContext) {
20202  this.result = mapResult;
20203  this.keyPrefix = keyPrefix;
20204  this.func = mapFunction;
20205  this.context = mapContext;
20206  this.count = 0;
20207}
20208MapBookKeeping.prototype.destructor = function () {
20209  this.result = null;
20210  this.keyPrefix = null;
20211  this.func = null;
20212  this.context = null;
20213  this.count = 0;
20214};
20215PooledClass.addPoolingTo(MapBookKeeping, fourArgumentPooler);
20216
20217function mapSingleChildIntoContext(bookKeeping, child, childKey) {
20218  var result = bookKeeping.result,
20219      keyPrefix = bookKeeping.keyPrefix,
20220      func = bookKeeping.func,
20221      context = bookKeeping.context;
20222
20223
20224  var mappedChild = func.call(context, child, bookKeeping.count++);
20225  if (Array.isArray(mappedChild)) {
20226    mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, emptyFunction.thatReturnsArgument);
20227  } else if (mappedChild != null) {
20228    if (ReactElement.isValidElement(mappedChild)) {
20229      mappedChild = ReactElement.cloneAndReplaceKey(mappedChild,
20230      // Keep both the (mapped) and old keys if they differ, just as
20231      // traverseAllChildren used to do for objects as children
20232      keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);
20233    }
20234    result.push(mappedChild);
20235  }
20236}
20237
20238function mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {
20239  var escapedPrefix = '';
20240  if (prefix != null) {
20241    escapedPrefix = escapeUserProvidedKey(prefix) + '/';
20242  }
20243  var traverseContext = MapBookKeeping.getPooled(array, escapedPrefix, func, context);
20244  traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);
20245  MapBookKeeping.release(traverseContext);
20246}
20247
20248/**
20249 * Maps children that are typically specified as `props.children`.
20250 *
20251 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.map
20252 *
20253 * The provided mapFunction(child, key, index) will be called for each
20254 * leaf child.
20255 *
20256 * @param {?*} children Children tree container.
20257 * @param {function(*, int)} func The map function.
20258 * @param {*} context Context for mapFunction.
20259 * @return {object} Object containing the ordered map of results.
20260 */
20261function mapChildren(children, func, context) {
20262  if (children == null) {
20263    return children;
20264  }
20265  var result = [];
20266  mapIntoWithKeyPrefixInternal(children, result, null, func, context);
20267  return result;
20268}
20269
20270function forEachSingleChildDummy(traverseContext, child, name) {
20271  return null;
20272}
20273
20274/**
20275 * Count the number of children that are typically specified as
20276 * `props.children`.
20277 *
20278 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.count
20279 *
20280 * @param {?*} children Children tree container.
20281 * @return {number} The number of children.
20282 */
20283function countChildren(children, context) {
20284  return traverseAllChildren(children, forEachSingleChildDummy, null);
20285}
20286
20287/**
20288 * Flatten a children object (typically specified as `props.children`) and
20289 * return an array with appropriately re-keyed children.
20290 *
20291 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.toarray
20292 */
20293function toArray(children) {
20294  var result = [];
20295  mapIntoWithKeyPrefixInternal(children, result, null, emptyFunction.thatReturnsArgument);
20296  return result;
20297}
20298
20299var ReactChildren = {
20300  forEach: forEachChildren,
20301  map: mapChildren,
20302  mapIntoWithKeyPrefixInternal: mapIntoWithKeyPrefixInternal,
20303  count: countChildren,
20304  toArray: toArray
20305};
20306
20307module.exports = ReactChildren;
20308
20309/***/ }),
20310/* 434 */
20311/***/ (function(module, exports, __webpack_require__) {
20312
20313"use strict";
20314/* WEBPACK VAR INJECTION */(function(process) {/**
20315 * Copyright (c) 2013-present, Facebook, Inc.
20316 *
20317 * This source code is licensed under the MIT license found in the
20318 * LICENSE file in the root directory of this source tree.
20319 *
20320 * 
20321 */
20322
20323
20324
20325var _prodInvariant = __webpack_require__(67);
20326
20327var invariant = __webpack_require__(2);
20328
20329/**
20330 * Static poolers. Several custom versions for each potential number of
20331 * arguments. A completely generic pooler is easy to implement, but would
20332 * require accessing the `arguments` object. In each of these, `this` refers to
20333 * the Class itself, not an instance. If any others are needed, simply add them
20334 * here, or in their own files.
20335 */
20336var oneArgumentPooler = function (copyFieldsFrom) {
20337  var Klass = this;
20338  if (Klass.instancePool.length) {
20339    var instance = Klass.instancePool.pop();
20340    Klass.call(instance, copyFieldsFrom);
20341    return instance;
20342  } else {
20343    return new Klass(copyFieldsFrom);
20344  }
20345};
20346
20347var twoArgumentPooler = function (a1, a2) {
20348  var Klass = this;
20349  if (Klass.instancePool.length) {
20350    var instance = Klass.instancePool.pop();
20351    Klass.call(instance, a1, a2);
20352    return instance;
20353  } else {
20354    return new Klass(a1, a2);
20355  }
20356};
20357
20358var threeArgumentPooler = function (a1, a2, a3) {
20359  var Klass = this;
20360  if (Klass.instancePool.length) {
20361    var instance = Klass.instancePool.pop();
20362    Klass.call(instance, a1, a2, a3);
20363    return instance;
20364  } else {
20365    return new Klass(a1, a2, a3);
20366  }
20367};
20368
20369var fourArgumentPooler = function (a1, a2, a3, a4) {
20370  var Klass = this;
20371  if (Klass.instancePool.length) {
20372    var instance = Klass.instancePool.pop();
20373    Klass.call(instance, a1, a2, a3, a4);
20374    return instance;
20375  } else {
20376    return new Klass(a1, a2, a3, a4);
20377  }
20378};
20379
20380var standardReleaser = function (instance) {
20381  var Klass = this;
20382  !(instance instanceof Klass) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Trying to release an instance into a pool of a different type.') : _prodInvariant('25') : void 0;
20383  instance.destructor();
20384  if (Klass.instancePool.length < Klass.poolSize) {
20385    Klass.instancePool.push(instance);
20386  }
20387};
20388
20389var DEFAULT_POOL_SIZE = 10;
20390var DEFAULT_POOLER = oneArgumentPooler;
20391
20392/**
20393 * Augments `CopyConstructor` to be a poolable class, augmenting only the class
20394 * itself (statically) not adding any prototypical fields. Any CopyConstructor
20395 * you give this may have a `poolSize` property, and will look for a
20396 * prototypical `destructor` on instances.
20397 *
20398 * @param {Function} CopyConstructor Constructor that can be used to reset.
20399 * @param {Function} pooler Customizable pooler.
20400 */
20401var addPoolingTo = function (CopyConstructor, pooler) {
20402  // Casting as any so that flow ignores the actual implementation and trusts
20403  // it to match the type we declared
20404  var NewKlass = CopyConstructor;
20405  NewKlass.instancePool = [];
20406  NewKlass.getPooled = pooler || DEFAULT_POOLER;
20407  if (!NewKlass.poolSize) {
20408    NewKlass.poolSize = DEFAULT_POOL_SIZE;
20409  }
20410  NewKlass.release = standardReleaser;
20411  return NewKlass;
20412};
20413
20414var PooledClass = {
20415  addPoolingTo: addPoolingTo,
20416  oneArgumentPooler: oneArgumentPooler,
20417  twoArgumentPooler: twoArgumentPooler,
20418  threeArgumentPooler: threeArgumentPooler,
20419  fourArgumentPooler: fourArgumentPooler
20420};
20421
20422module.exports = PooledClass;
20423/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
20424
20425/***/ }),
20426/* 435 */
20427/***/ (function(module, exports, __webpack_require__) {
20428
20429"use strict";
20430/* WEBPACK VAR INJECTION */(function(process) {/**
20431 * Copyright (c) 2013-present, Facebook, Inc.
20432 *
20433 * This source code is licensed under the MIT license found in the
20434 * LICENSE file in the root directory of this source tree.
20435 *
20436 */
20437
20438
20439
20440var _prodInvariant = __webpack_require__(67);
20441
20442var ReactCurrentOwner = __webpack_require__(39);
20443var REACT_ELEMENT_TYPE = __webpack_require__(190);
20444
20445var getIteratorFn = __webpack_require__(191);
20446var invariant = __webpack_require__(2);
20447var KeyEscapeUtils = __webpack_require__(436);
20448var warning = __webpack_require__(3);
20449
20450var SEPARATOR = '.';
20451var SUBSEPARATOR = ':';
20452
20453/**
20454 * This is inlined from ReactElement since this file is shared between
20455 * isomorphic and renderers. We could extract this to a
20456 *
20457 */
20458
20459/**
20460 * TODO: Test that a single child and an array with one item have the same key
20461 * pattern.
20462 */
20463
20464var didWarnAboutMaps = false;
20465
20466/**
20467 * Generate a key string that identifies a component within a set.
20468 *
20469 * @param {*} component A component that could contain a manual key.
20470 * @param {number} index Index that is used if a manual key is not provided.
20471 * @return {string}
20472 */
20473function getComponentKey(component, index) {
20474  // Do some typechecking here since we call this blindly. We want to ensure
20475  // that we don't block potential future ES APIs.
20476  if (component && typeof component === 'object' && component.key != null) {
20477    // Explicit key
20478    return KeyEscapeUtils.escape(component.key);
20479  }
20480  // Implicit key determined by the index in the set
20481  return index.toString(36);
20482}
20483
20484/**
20485 * @param {?*} children Children tree container.
20486 * @param {!string} nameSoFar Name of the key path so far.
20487 * @param {!function} callback Callback to invoke with each child found.
20488 * @param {?*} traverseContext Used to pass information throughout the traversal
20489 * process.
20490 * @return {!number} The number of children in this subtree.
20491 */
20492function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {
20493  var type = typeof children;
20494
20495  if (type === 'undefined' || type === 'boolean') {
20496    // All of the above are perceived as null.
20497    children = null;
20498  }
20499
20500  if (children === null || type === 'string' || type === 'number' ||
20501  // The following is inlined from ReactElement. This means we can optimize
20502  // some checks. React Fiber also inlines this logic for similar purposes.
20503  type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {
20504    callback(traverseContext, children,
20505    // If it's the only child, treat the name as if it was wrapped in an array
20506    // so that it's consistent if the number of children grows.
20507    nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);
20508    return 1;
20509  }
20510
20511  var child;
20512  var nextName;
20513  var subtreeCount = 0; // Count of children found in the current subtree.
20514  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
20515
20516  if (Array.isArray(children)) {
20517    for (var i = 0; i < children.length; i++) {
20518      child = children[i];
20519      nextName = nextNamePrefix + getComponentKey(child, i);
20520      subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
20521    }
20522  } else {
20523    var iteratorFn = getIteratorFn(children);
20524    if (iteratorFn) {
20525      var iterator = iteratorFn.call(children);
20526      var step;
20527      if (iteratorFn !== children.entries) {
20528        var ii = 0;
20529        while (!(step = iterator.next()).done) {
20530          child = step.value;
20531          nextName = nextNamePrefix + getComponentKey(child, ii++);
20532          subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
20533        }
20534      } else {
20535        if (process.env.NODE_ENV !== 'production') {
20536          var mapsAsChildrenAddendum = '';
20537          if (ReactCurrentOwner.current) {
20538            var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();
20539            if (mapsAsChildrenOwnerName) {
20540              mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';
20541            }
20542          }
20543          process.env.NODE_ENV !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;
20544          didWarnAboutMaps = true;
20545        }
20546        // Iterator will provide entry [k,v] tuples rather than values.
20547        while (!(step = iterator.next()).done) {
20548          var entry = step.value;
20549          if (entry) {
20550            child = entry[1];
20551            nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);
20552            subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
20553          }
20554        }
20555      }
20556    } else if (type === 'object') {
20557      var addendum = '';
20558      if (process.env.NODE_ENV !== 'production') {
20559        addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
20560        if (children._isReactElement) {
20561          addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.';
20562        }
20563        if (ReactCurrentOwner.current) {
20564          var name = ReactCurrentOwner.current.getName();
20565          if (name) {
20566            addendum += ' Check the render method of `' + name + '`.';
20567          }
20568        }
20569      }
20570      var childrenString = String(children);
20571       true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;
20572    }
20573  }
20574
20575  return subtreeCount;
20576}
20577
20578/**
20579 * Traverses children that are typically specified as `props.children`, but
20580 * might also be specified through attributes:
20581 *
20582 * - `traverseAllChildren(this.props.children, ...)`
20583 * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
20584 *
20585 * The `traverseContext` is an optional argument that is passed through the
20586 * entire traversal. It can be used to store accumulations or anything else that
20587 * the callback might find relevant.
20588 *
20589 * @param {?*} children Children tree object.
20590 * @param {!function} callback To invoke upon traversing each child.
20591 * @param {?*} traverseContext Context for traversal.
20592 * @return {!number} The number of children in this subtree.
20593 */
20594function traverseAllChildren(children, callback, traverseContext) {
20595  if (children == null) {
20596    return 0;
20597  }
20598
20599  return traverseAllChildrenImpl(children, '', callback, traverseContext);
20600}
20601
20602module.exports = traverseAllChildren;
20603/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
20604
20605/***/ }),
20606/* 436 */
20607/***/ (function(module, exports, __webpack_require__) {
20608
20609"use strict";
20610/**
20611 * Copyright (c) 2013-present, Facebook, Inc.
20612 *
20613 * This source code is licensed under the MIT license found in the
20614 * LICENSE file in the root directory of this source tree.
20615 *
20616 * 
20617 */
20618
20619
20620
20621/**
20622 * Escape and wrap key so it is safe to use as a reactid
20623 *
20624 * @param {string} key to be escaped.
20625 * @return {string} the escaped key.
20626 */
20627
20628function escape(key) {
20629  var escapeRegex = /[=:]/g;
20630  var escaperLookup = {
20631    '=': '=0',
20632    ':': '=2'
20633  };
20634  var escapedString = ('' + key).replace(escapeRegex, function (match) {
20635    return escaperLookup[match];
20636  });
20637
20638  return '$' + escapedString;
20639}
20640
20641/**
20642 * Unescape and unwrap key for human-readable display
20643 *
20644 * @param {string} key to unescape.
20645 * @return {string} the unescaped key.
20646 */
20647function unescape(key) {
20648  var unescapeRegex = /(=0|=2)/g;
20649  var unescaperLookup = {
20650    '=0': '=',
20651    '=2': ':'
20652  };
20653  var keySubstring = key[0] === '.' && key[1] === '$' ? key.substring(2) : key.substring(1);
20654
20655  return ('' + keySubstring).replace(unescapeRegex, function (match) {
20656    return unescaperLookup[match];
20657  });
20658}
20659
20660var KeyEscapeUtils = {
20661  escape: escape,
20662  unescape: unescape
20663};
20664
20665module.exports = KeyEscapeUtils;
20666
20667/***/ }),
20668/* 437 */
20669/***/ (function(module, exports, __webpack_require__) {
20670
20671"use strict";
20672/* WEBPACK VAR INJECTION */(function(process) {/**
20673 * Copyright (c) 2013-present, Facebook, Inc.
20674 *
20675 * This source code is licensed under the MIT license found in the
20676 * LICENSE file in the root directory of this source tree.
20677 *
20678 */
20679
20680
20681
20682var ReactElement = __webpack_require__(59);
20683
20684/**
20685 * Create a factory that creates HTML tag elements.
20686 *
20687 * @private
20688 */
20689var createDOMFactory = ReactElement.createFactory;
20690if (process.env.NODE_ENV !== 'production') {
20691  var ReactElementValidator = __webpack_require__(192);
20692  createDOMFactory = ReactElementValidator.createFactory;
20693}
20694
20695/**
20696 * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
20697 *
20698 * @public
20699 */
20700var ReactDOMFactories = {
20701  a: createDOMFactory('a'),
20702  abbr: createDOMFactory('abbr'),
20703  address: createDOMFactory('address'),
20704  area: createDOMFactory('area'),
20705  article: createDOMFactory('article'),
20706  aside: createDOMFactory('aside'),
20707  audio: createDOMFactory('audio'),
20708  b: createDOMFactory('b'),
20709  base: createDOMFactory('base'),
20710  bdi: createDOMFactory('bdi'),
20711  bdo: createDOMFactory('bdo'),
20712  big: createDOMFactory('big'),
20713  blockquote: createDOMFactory('blockquote'),
20714  body: createDOMFactory('body'),
20715  br: createDOMFactory('br'),
20716  button: createDOMFactory('button'),
20717  canvas: createDOMFactory('canvas'),
20718  caption: createDOMFactory('caption'),
20719  cite: createDOMFactory('cite'),
20720  code: createDOMFactory('code'),
20721  col: createDOMFactory('col'),
20722  colgroup: createDOMFactory('colgroup'),
20723  data: createDOMFactory('data'),
20724  datalist: createDOMFactory('datalist'),
20725  dd: createDOMFactory('dd'),
20726  del: createDOMFactory('del'),
20727  details: createDOMFactory('details'),
20728  dfn: createDOMFactory('dfn'),
20729  dialog: createDOMFactory('dialog'),
20730  div: createDOMFactory('div'),
20731  dl: createDOMFactory('dl'),
20732  dt: createDOMFactory('dt'),
20733  em: createDOMFactory('em'),
20734  embed: createDOMFactory('embed'),
20735  fieldset: createDOMFactory('fieldset'),
20736  figcaption: createDOMFactory('figcaption'),
20737  figure: createDOMFactory('figure'),
20738  footer: createDOMFactory('footer'),
20739  form: createDOMFactory('form'),
20740  h1: createDOMFactory('h1'),
20741  h2: createDOMFactory('h2'),
20742  h3: createDOMFactory('h3'),
20743  h4: createDOMFactory('h4'),
20744  h5: createDOMFactory('h5'),
20745  h6: createDOMFactory('h6'),
20746  head: createDOMFactory('head'),
20747  header: createDOMFactory('header'),
20748  hgroup: createDOMFactory('hgroup'),
20749  hr: createDOMFactory('hr'),
20750  html: createDOMFactory('html'),
20751  i: createDOMFactory('i'),
20752  iframe: createDOMFactory('iframe'),
20753  img: createDOMFactory('img'),
20754  input: createDOMFactory('input'),
20755  ins: createDOMFactory('ins'),
20756  kbd: createDOMFactory('kbd'),
20757  keygen: createDOMFactory('keygen'),
20758  label: createDOMFactory('label'),
20759  legend: createDOMFactory('legend'),
20760  li: createDOMFactory('li'),
20761  link: createDOMFactory('link'),
20762  main: createDOMFactory('main'),
20763  map: createDOMFactory('map'),
20764  mark: createDOMFactory('mark'),
20765  menu: createDOMFactory('menu'),
20766  menuitem: createDOMFactory('menuitem'),
20767  meta: createDOMFactory('meta'),
20768  meter: createDOMFactory('meter'),
20769  nav: createDOMFactory('nav'),
20770  noscript: createDOMFactory('noscript'),
20771  object: createDOMFactory('object'),
20772  ol: createDOMFactory('ol'),
20773  optgroup: createDOMFactory('optgroup'),
20774  option: createDOMFactory('option'),
20775  output: createDOMFactory('output'),
20776  p: createDOMFactory('p'),
20777  param: createDOMFactory('param'),
20778  picture: createDOMFactory('picture'),
20779  pre: createDOMFactory('pre'),
20780  progress: createDOMFactory('progress'),
20781  q: createDOMFactory('q'),
20782  rp: createDOMFactory('rp'),
20783  rt: createDOMFactory('rt'),
20784  ruby: createDOMFactory('ruby'),
20785  s: createDOMFactory('s'),
20786  samp: createDOMFactory('samp'),
20787  script: createDOMFactory('script'),
20788  section: createDOMFactory('section'),
20789  select: createDOMFactory('select'),
20790  small: createDOMFactory('small'),
20791  source: createDOMFactory('source'),
20792  span: createDOMFactory('span'),
20793  strong: createDOMFactory('strong'),
20794  style: createDOMFactory('style'),
20795  sub: createDOMFactory('sub'),
20796  summary: createDOMFactory('summary'),
20797  sup: createDOMFactory('sup'),
20798  table: createDOMFactory('table'),
20799  tbody: createDOMFactory('tbody'),
20800  td: createDOMFactory('td'),
20801  textarea: createDOMFactory('textarea'),
20802  tfoot: createDOMFactory('tfoot'),
20803  th: createDOMFactory('th'),
20804  thead: createDOMFactory('thead'),
20805  time: createDOMFactory('time'),
20806  title: createDOMFactory('title'),
20807  tr: createDOMFactory('tr'),
20808  track: createDOMFactory('track'),
20809  u: createDOMFactory('u'),
20810  ul: createDOMFactory('ul'),
20811  'var': createDOMFactory('var'),
20812  video: createDOMFactory('video'),
20813  wbr: createDOMFactory('wbr'),
20814
20815  // SVG
20816  circle: createDOMFactory('circle'),
20817  clipPath: createDOMFactory('clipPath'),
20818  defs: createDOMFactory('defs'),
20819  ellipse: createDOMFactory('ellipse'),
20820  g: createDOMFactory('g'),
20821  image: createDOMFactory('image'),
20822  line: createDOMFactory('line'),
20823  linearGradient: createDOMFactory('linearGradient'),
20824  mask: createDOMFactory('mask'),
20825  path: createDOMFactory('path'),
20826  pattern: createDOMFactory('pattern'),
20827  polygon: createDOMFactory('polygon'),
20828  polyline: createDOMFactory('polyline'),
20829  radialGradient: createDOMFactory('radialGradient'),
20830  rect: createDOMFactory('rect'),
20831  stop: createDOMFactory('stop'),
20832  svg: createDOMFactory('svg'),
20833  text: createDOMFactory('text'),
20834  tspan: createDOMFactory('tspan')
20835};
20836
20837module.exports = ReactDOMFactories;
20838/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
20839
20840/***/ }),
20841/* 438 */
20842/***/ (function(module, exports, __webpack_require__) {
20843
20844"use strict";
20845/* WEBPACK VAR INJECTION */(function(process) {/**
20846 * Copyright (c) 2013-present, Facebook, Inc.
20847 *
20848 * This source code is licensed under the MIT license found in the
20849 * LICENSE file in the root directory of this source tree.
20850 *
20851 */
20852
20853
20854
20855var _prodInvariant = __webpack_require__(67);
20856
20857var ReactPropTypeLocationNames = __webpack_require__(439);
20858var ReactPropTypesSecret = __webpack_require__(440);
20859
20860var invariant = __webpack_require__(2);
20861var warning = __webpack_require__(3);
20862
20863var ReactComponentTreeHook;
20864
20865if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {
20866  // Temporary hack.
20867  // Inline requires don't work well with Jest:
20868  // https://github.com/facebook/react/issues/7240
20869  // Remove the inline requires when we don't need them anymore:
20870  // https://github.com/facebook/react/pull/7178
20871  ReactComponentTreeHook = __webpack_require__(22);
20872}
20873
20874var loggedTypeFailures = {};
20875
20876/**
20877 * Assert that the values match with the type specs.
20878 * Error messages are memorized and will only be shown once.
20879 *
20880 * @param {object} typeSpecs Map of name to a ReactPropType
20881 * @param {object} values Runtime values that need to be type-checked
20882 * @param {string} location e.g. "prop", "context", "child context"
20883 * @param {string} componentName Name of the component for error messages.
20884 * @param {?object} element The React element that is being type-checked
20885 * @param {?number} debugID The React component instance that is being type-checked
20886 * @private
20887 */
20888function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {
20889  for (var typeSpecName in typeSpecs) {
20890    if (typeSpecs.hasOwnProperty(typeSpecName)) {
20891      var error;
20892      // Prop type validation may throw. In case they do, we don't want to
20893      // fail the render phase where it didn't fail before. So we log it.
20894      // After these have been cleaned up, we'll let them throw.
vendor: 13,065 bytes, lines 20895-21254
20895      try {
20896        // This is intentionally an invariant that gets caught. It's the same
20897        // behavior as without this statement except with a better message.
20898        !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0;
20899        error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
20900      } catch (ex) {
20901        error = ex;
20902      }
20903      process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0;
20904      if (error instanceof Error && !(error.message in loggedTypeFailures)) {
20905        // Only monitor this failure once because there tends to be a lot of the
20906        // same error.
20907        loggedTypeFailures[error.message] = true;
20908
20909        var componentStackInfo = '';
20910
20911        if (process.env.NODE_ENV !== 'production') {
20912          if (!ReactComponentTreeHook) {
20913            ReactComponentTreeHook = __webpack_require__(22);
20914          }
20915          if (debugID !== null) {
20916            componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);
20917          } else if (element !== null) {
20918            componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);
20919          }
20920        }
20921
20922        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;
20923      }
20924    }
20925  }
20926}
20927
20928module.exports = checkReactTypeSpec;
20929/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
20930
20931/***/ }),
20932/* 439 */
20933/***/ (function(module, exports, __webpack_require__) {
20934
20935"use strict";
20936/* WEBPACK VAR INJECTION */(function(process) {/**
20937 * Copyright (c) 2013-present, Facebook, Inc.
20938 *
20939 * This source code is licensed under the MIT license found in the
20940 * LICENSE file in the root directory of this source tree.
20941 *
20942 * 
20943 */
20944
20945
20946
20947var ReactPropTypeLocationNames = {};
20948
20949if (process.env.NODE_ENV !== 'production') {
20950  ReactPropTypeLocationNames = {
20951    prop: 'prop',
20952    context: 'context',
20953    childContext: 'child context'
20954  };
20955}
20956
20957module.exports = ReactPropTypeLocationNames;
20958/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
20959
20960/***/ }),
20961/* 440 */
20962/***/ (function(module, exports, __webpack_require__) {
20963
20964"use strict";
20965/**
20966 * Copyright (c) 2013-present, Facebook, Inc.
20967 *
20968 * This source code is licensed under the MIT license found in the
20969 * LICENSE file in the root directory of this source tree.
20970 *
20971 * 
20972 */
20973
20974
20975
20976var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
20977
20978module.exports = ReactPropTypesSecret;
20979
20980/***/ }),
20981/* 441 */
20982/***/ (function(module, exports, __webpack_require__) {
20983
20984"use strict";
20985/**
20986 * Copyright (c) 2013-present, Facebook, Inc.
20987 *
20988 * This source code is licensed under the MIT license found in the
20989 * LICENSE file in the root directory of this source tree.
20990 *
20991 */
20992
20993
20994
20995var _require = __webpack_require__(59),
20996    isValidElement = _require.isValidElement;
20997
20998var factory = __webpack_require__(193);
20999
21000module.exports = factory(isValidElement);
21001
21002/***/ }),
21003/* 442 */
21004/***/ (function(module, exports, __webpack_require__) {
21005
21006"use strict";
21007/* WEBPACK VAR INJECTION */(function(process) {/**
21008 * Copyright (c) 2013-present, Facebook, Inc.
21009 *
21010 * This source code is licensed under the MIT license found in the
21011 * LICENSE file in the root directory of this source tree.
21012 */
21013
21014
21015
21016var assign = __webpack_require__(10);
21017
21018var ReactPropTypesSecret = __webpack_require__(194);
21019var checkPropTypes = __webpack_require__(443);
21020
21021var printWarning = function() {};
21022
21023if (process.env.NODE_ENV !== 'production') {
21024  printWarning = function(text) {
21025    var message = 'Warning: ' + text;
21026    if (typeof console !== 'undefined') {
21027      console.error(message);
21028    }
21029    try {
21030      // --- Welcome to debugging React ---
21031      // This error was thrown as a convenience so that you can use this stack
21032      // to find the callsite that caused this warning to fire.
21033      throw new Error(message);
21034    } catch (x) {}
21035  };
21036}
21037
21038function emptyFunctionThatReturnsNull() {
21039  return null;
21040}
21041
21042module.exports = function(isValidElement, throwOnDirectAccess) {
21043  /* global Symbol */
21044  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
21045  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
21046
21047  /**
21048   * Returns the iterator method function contained on the iterable object.
21049   *
21050   * Be sure to invoke the function with the iterable as context:
21051   *
21052   *     var iteratorFn = getIteratorFn(myIterable);
21053   *     if (iteratorFn) {
21054   *       var iterator = iteratorFn.call(myIterable);
21055   *       ...
21056   *     }
21057   *
21058   * @param {?object} maybeIterable
21059   * @return {?function}
21060   */
21061  function getIteratorFn(maybeIterable) {
21062    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
21063    if (typeof iteratorFn === 'function') {
21064      return iteratorFn;
21065    }
21066  }
21067
21068  /**
21069   * Collection of methods that allow declaration and validation of props that are
21070   * supplied to React components. Example usage:
21071   *
21072   *   var Props = require('ReactPropTypes');
21073   *   var MyArticle = React.createClass({
21074   *     propTypes: {
21075   *       // An optional string prop named "description".
21076   *       description: Props.string,
21077   *
21078   *       // A required enum prop named "category".
21079   *       category: Props.oneOf(['News','Photos']).isRequired,
21080   *
21081   *       // A prop named "dialog" that requires an instance of Dialog.
21082   *       dialog: Props.instanceOf(Dialog).isRequired
21083   *     },
21084   *     render: function() { ... }
21085   *   });
21086   *
21087   * A more formal specification of how these methods are used:
21088   *
21089   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
21090   *   decl := ReactPropTypes.{type}(.isRequired)?
21091   *
21092   * Each and every declaration produces a function with the same signature. This
21093   * allows the creation of custom validation functions. For example:
21094   *
21095   *  var MyLink = React.createClass({
21096   *    propTypes: {
21097   *      // An optional string or URI prop named "href".
21098   *      href: function(props, propName, componentName) {
21099   *        var propValue = props[propName];
21100   *        if (propValue != null && typeof propValue !== 'string' &&
21101   *            !(propValue instanceof URI)) {
21102   *          return new Error(
21103   *            'Expected a string or an URI for ' + propName + ' in ' +
21104   *            componentName
21105   *          );
21106   *        }
21107   *      }
21108   *    },
21109   *    render: function() {...}
21110   *  });
21111   *
21112   * @internal
21113   */
21114
21115  var ANONYMOUS = '<<anonymous>>';
21116
21117  // Important!
21118  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
21119  var ReactPropTypes = {
21120    array: createPrimitiveTypeChecker('array'),
21121    bool: createPrimitiveTypeChecker('boolean'),
21122    func: createPrimitiveTypeChecker('function'),
21123    number: createPrimitiveTypeChecker('number'),
21124    object: createPrimitiveTypeChecker('object'),
21125    string: createPrimitiveTypeChecker('string'),
21126    symbol: createPrimitiveTypeChecker('symbol'),
21127
21128    any: createAnyTypeChecker(),
21129    arrayOf: createArrayOfTypeChecker,
21130    element: createElementTypeChecker(),
21131    instanceOf: createInstanceTypeChecker,
21132    node: createNodeChecker(),
21133    objectOf: createObjectOfTypeChecker,
21134    oneOf: createEnumTypeChecker,
21135    oneOfType: createUnionTypeChecker,
21136    shape: createShapeTypeChecker,
21137    exact: createStrictShapeTypeChecker,
21138  };
21139
21140  /**
21141   * inlined Object.is polyfill to avoid requiring consumers ship their own
21142   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
21143   */
21144  /*eslint-disable no-self-compare*/
21145  function is(x, y) {
21146    // SameValue algorithm
21147    if (x === y) {
21148      // Steps 1-5, 7-10
21149      // Steps 6.b-6.e: +0 != -0
21150      return x !== 0 || 1 / x === 1 / y;
21151    } else {
21152      // Step 6.a: NaN == NaN
21153      return x !== x && y !== y;
21154    }
21155  }
21156  /*eslint-enable no-self-compare*/
21157
21158  /**
21159   * We use an Error-like object for backward compatibility as people may call
21160   * PropTypes directly and inspect their output. However, we don't use real
21161   * Errors anymore. We don't inspect their stack anyway, and creating them
21162   * is prohibitively expensive if they are created too often, such as what
21163   * happens in oneOfType() for any type before the one that matched.
21164   */
21165  function PropTypeError(message) {
21166    this.message = message;
21167    this.stack = '';
21168  }
21169  // Make `instanceof Error` still work for returned errors.
21170  PropTypeError.prototype = Error.prototype;
21171
21172  function createChainableTypeChecker(validate) {
21173    if (process.env.NODE_ENV !== 'production') {
21174      var manualPropTypeCallCache = {};
21175      var manualPropTypeWarningCount = 0;
21176    }
21177    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
21178      componentName = componentName || ANONYMOUS;
21179      propFullName = propFullName || propName;
21180
21181      if (secret !== ReactPropTypesSecret) {
21182        if (throwOnDirectAccess) {
21183          // New behavior only for users of `prop-types` package
21184          var err = new Error(
21185            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
21186            'Use `PropTypes.checkPropTypes()` to call them. ' +
21187            'Read more at http://fb.me/use-check-prop-types'
21188          );
21189          err.name = 'Invariant Violation';
21190          throw err;
21191        } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
21192          // Old behavior for people using React.PropTypes
21193          var cacheKey = componentName + ':' + propName;
21194          if (
21195            !manualPropTypeCallCache[cacheKey] &&
21196            // Avoid spamming the console because they are often not actionable except for lib authors
21197            manualPropTypeWarningCount < 3
21198          ) {
21199            printWarning(
21200              'You are manually calling a React.PropTypes validation ' +
21201              'function for the `' + propFullName + '` prop on `' + componentName  + '`. This is deprecated ' +
21202              'and will throw in the standalone `prop-types` package. ' +
21203              'You may be seeing this warning due to a third-party PropTypes ' +
21204              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'
21205            );
21206            manualPropTypeCallCache[cacheKey] = true;
21207            manualPropTypeWarningCount++;
21208          }
21209        }
21210      }
21211      if (props[propName] == null) {
21212        if (isRequired) {
21213          if (props[propName] === null) {
21214            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
21215          }
21216          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
21217        }
21218        return null;
21219      } else {
21220        return validate(props, propName, componentName, location, propFullName);
21221      }
21222    }
21223
21224    var chainedCheckType = checkType.bind(null, false);
21225    chainedCheckType.isRequired = checkType.bind(null, true);
21226
21227    return chainedCheckType;
21228  }
21229
21230  function createPrimitiveTypeChecker(expectedType) {
21231    function validate(props, propName, componentName, location, propFullName, secret) {
21232      var propValue = props[propName];
21233      var propType = getPropType(propValue);
21234      if (propType !== expectedType) {
21235        // `propValue` being instance of, say, date/regexp, pass the 'object'
21236        // check, but we can offer a more precise error message here rather than
21237        // 'of type `object`'.
21238        var preciseType = getPreciseType(propValue);
21239
21240        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
21241      }
21242      return null;
21243    }
21244    return createChainableTypeChecker(validate);
21245  }
21246
21247  function createAnyTypeChecker() {
21248    return createChainableTypeChecker(emptyFunctionThatReturnsNull);
21249  }
21250
21251  function createArrayOfTypeChecker(typeChecker) {
21252    function validate(props, propName, componentName, location, propFullName) {
21253      if (typeof typeChecker !== 'function') {
21254        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invali
vendor: 3,861 bytes, lines 21254-21341
21254d PropType notation inside arrayOf.');
21255      }
21256      var propValue = props[propName];
21257      if (!Array.isArray(propValue)) {
21258        var propType = getPropType(propValue);
21259        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
21260      }
21261      for (var i = 0; i < propValue.length; i++) {
21262        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
21263        if (error instanceof Error) {
21264          return error;
21265        }
21266      }
21267      return null;
21268    }
21269    return createChainableTypeChecker(validate);
21270  }
21271
21272  function createElementTypeChecker() {
21273    function validate(props, propName, componentName, location, propFullName) {
21274      var propValue = props[propName];
21275      if (!isValidElement(propValue)) {
21276        var propType = getPropType(propValue);
21277        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
21278      }
21279      return null;
21280    }
21281    return createChainableTypeChecker(validate);
21282  }
21283
21284  function createInstanceTypeChecker(expectedClass) {
21285    function validate(props, propName, componentName, location, propFullName) {
21286      if (!(props[propName] instanceof expectedClass)) {
21287        var expectedClassName = expectedClass.name || ANONYMOUS;
21288        var actualClassName = getClassName(props[propName]);
21289        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
21290      }
21291      return null;
21292    }
21293    return createChainableTypeChecker(validate);
21294  }
21295
21296  function createEnumTypeChecker(expectedValues) {
21297    if (!Array.isArray(expectedValues)) {
21298      process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
21299      return emptyFunctionThatReturnsNull;
21300    }
21301
21302    function validate(props, propName, componentName, location, propFullName) {
21303      var propValue = props[propName];
21304      for (var i = 0; i < expectedValues.length; i++) {
21305        if (is(propValue, expectedValues[i])) {
21306          return null;
21307        }
21308      }
21309
21310      var valuesString = JSON.stringify(expectedValues);
21311      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
21312    }
21313    return createChainableTypeChecker(validate);
21314  }
21315
21316  function createObjectOfTypeChecker(typeChecker) {
21317    function validate(props, propName, componentName, location, propFullName) {
21318      if (typeof typeChecker !== 'function') {
21319        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
21320      }
21321      var propValue = props[propName];
21322      var propType = getPropType(propValue);
21323      if (propType !== 'object') {
21324        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
21325      }
21326      for (var key in propValue) {
21327        if (propValue.hasOwnProperty(key)) {
21328          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
21329          if (error instanceof Error) {
21330            return error;
21331          }
21332        }
21333      }
21334      return null;
21335    }
21336    return createChainableTypeChecker(validate);
21337  }
21338
21339  function createUnionTypeChecker(arrayOfTypeCheckers) {
21340    if (!Array.isArray(arrayOfTypeCheckers)) {
21341      process.env.NODE_ENV !== 'production'
vendor: 7,132 bytes, lines 21341-21562
21341 ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
21342      return emptyFunctionThatReturnsNull;
21343    }
21344
21345    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
21346      var checker = arrayOfTypeCheckers[i];
21347      if (typeof checker !== 'function') {
21348        printWarning(
21349          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
21350          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'
21351        );
21352        return emptyFunctionThatReturnsNull;
21353      }
21354    }
21355
21356    function validate(props, propName, componentName, location, propFullName) {
21357      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
21358        var checker = arrayOfTypeCheckers[i];
21359        if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
21360          return null;
21361        }
21362      }
21363
21364      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
21365    }
21366    return createChainableTypeChecker(validate);
21367  }
21368
21369  function createNodeChecker() {
21370    function validate(props, propName, componentName, location, propFullName) {
21371      if (!isNode(props[propName])) {
21372        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
21373      }
21374      return null;
21375    }
21376    return createChainableTypeChecker(validate);
21377  }
21378
21379  function createShapeTypeChecker(shapeTypes) {
21380    function validate(props, propName, componentName, location, propFullName) {
21381      var propValue = props[propName];
21382      var propType = getPropType(propValue);
21383      if (propType !== 'object') {
21384        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
21385      }
21386      for (var key in shapeTypes) {
21387        var checker = shapeTypes[key];
21388        if (!checker) {
21389          continue;
21390        }
21391        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
21392        if (error) {
21393          return error;
21394        }
21395      }
21396      return null;
21397    }
21398    return createChainableTypeChecker(validate);
21399  }
21400
21401  function createStrictShapeTypeChecker(shapeTypes) {
21402    function validate(props, propName, componentName, location, propFullName) {
21403      var propValue = props[propName];
21404      var propType = getPropType(propValue);
21405      if (propType !== 'object') {
21406        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
21407      }
21408      // We need to check all keys in case some are required but missing from
21409      // props.
21410      var allKeys = assign({}, props[propName], shapeTypes);
21411      for (var key in allKeys) {
21412        var checker = shapeTypes[key];
21413        if (!checker) {
21414          return new PropTypeError(
21415            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
21416            '\nBad object: ' + JSON.stringify(props[propName], null, '  ') +
21417            '\nValid keys: ' +  JSON.stringify(Object.keys(shapeTypes), null, '  ')
21418          );
21419        }
21420        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
21421        if (error) {
21422          return error;
21423        }
21424      }
21425      return null;
21426    }
21427
21428    return createChainableTypeChecker(validate);
21429  }
21430
21431  function isNode(propValue) {
21432    switch (typeof propValue) {
21433      case 'number':
21434      case 'string':
21435      case 'undefined':
21436        return true;
21437      case 'boolean':
21438        return !propValue;
21439      case 'object':
21440        if (Array.isArray(propValue)) {
21441          return propValue.every(isNode);
21442        }
21443        if (propValue === null || isValidElement(propValue)) {
21444          return true;
21445        }
21446
21447        var iteratorFn = getIteratorFn(propValue);
21448        if (iteratorFn) {
21449          var iterator = iteratorFn.call(propValue);
21450          var step;
21451          if (iteratorFn !== propValue.entries) {
21452            while (!(step = iterator.next()).done) {
21453              if (!isNode(step.value)) {
21454                return false;
21455              }
21456            }
21457          } else {
21458            // Iterator will provide entry [k,v] tuples rather than values.
21459            while (!(step = iterator.next()).done) {
21460              var entry = step.value;
21461              if (entry) {
21462                if (!isNode(entry[1])) {
21463                  return false;
21464                }
21465              }
21466            }
21467          }
21468        } else {
21469          return false;
21470        }
21471
21472        return true;
21473      default:
21474        return false;
21475    }
21476  }
21477
21478  function isSymbol(propType, propValue) {
21479    // Native Symbol.
21480    if (propType === 'symbol') {
21481      return true;
21482    }
21483
21484    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
21485    if (propValue['@@toStringTag'] === 'Symbol') {
21486      return true;
21487    }
21488
21489    // Fallback for non-spec compliant Symbols which are polyfilled.
21490    if (typeof Symbol === 'function' && propValue instanceof Symbol) {
21491      return true;
21492    }
21493
21494    return false;
21495  }
21496
21497  // Equivalent of `typeof` but with special handling for array and regexp.
21498  function getPropType(propValue) {
21499    var propType = typeof propValue;
21500    if (Array.isArray(propValue)) {
21501      return 'array';
21502    }
21503    if (propValue instanceof RegExp) {
21504      // Old webkits (at least until Android 4.0) return 'function' rather than
21505      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
21506      // passes PropTypes.object.
21507      return 'object';
21508    }
21509    if (isSymbol(propType, propValue)) {
21510      return 'symbol';
21511    }
21512    return propType;
21513  }
21514
21515  // This handles more types than `getPropType`. Only used for error messages.
21516  // See `createPrimitiveTypeChecker`.
21517  function getPreciseType(propValue) {
21518    if (typeof propValue === 'undefined' || propValue === null) {
21519      return '' + propValue;
21520    }
21521    var propType = getPropType(propValue);
21522    if (propType === 'object') {
21523      if (propValue instanceof Date) {
21524        return 'date';
21525      } else if (propValue instanceof RegExp) {
21526        return 'regexp';
21527      }
21528    }
21529    return propType;
21530  }
21531
21532  // Returns a string that is postfixed to a warning about an invalid type.
21533  // For example, "undefined" or "of type array"
21534  function getPostfixForTypeWarning(value) {
21535    var type = getPreciseType(value);
21536    switch (type) {
21537      case 'array':
21538      case 'object':
21539        return 'an ' + type;
21540      case 'boolean':
21541      case 'date':
21542      case 'regexp':
21543        return 'a ' + type;
21544      default:
21545        return type;
21546    }
21547  }
21548
21549  // Returns class name of the object, if any.
21550  function getClassName(propValue) {
21551    if (!propValue.constructor || !propValue.constructor.name) {
21552      return ANONYMOUS;
21553    }
21554    return propValue.constructor.name;
21555  }
21556
21557  ReactPropTypes.checkPropTypes = checkPropTypes;
21558  ReactPropTypes.PropTypes = ReactPropTypes;
21559
21560  return ReactPropTypes;
21561};
21562
21563/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
21564
21565/***/ }),
21566/* 443 */
21567/***/ (function(module, exports, __webpack_require__) {
21568
21569"use strict";
21570/* WEBPACK VAR INJECTION */(function(process) {/**
21571 * Copyright (c) 2013-present, Facebook, Inc.
21572 *
21573 * This source code is licensed under the MIT license found in the
21574 * LICENSE file in the root directory of this source tree.
21575 */
21576
21577
21578
21579var printWarning = function() {};
21580
21581if (process.env.NODE_ENV !== 'production') {
21582  var ReactPropTypesSecret = __webpack_require__(194);
21583  var loggedTypeFailures = {};
21584
21585  printWarning = function(text) {
21586    var message = 'Warning: ' + text;
21587    if (typeof console !== 'undefined') {
21588      console.error(message);
21589    }
21590    try {
21591      // --- Welcome to debugging React ---
21592      // This error was thrown as a convenience so that you can use this stack
21593      // to find the callsite that caused this warning to fire.
21594      throw new Error(message);
21595    } catch (x) {}
21596  };
21597}
21598
21599/**
21600 * Assert that the values match with the type specs.
21601 * Error messages are memorized and will only be shown once.
21602 *
21603 * @param {object} typeSpecs Map of name to a ReactPropType
21604 * @param {object} values Runtime values that need to be type-checked
21605 * @param {string} location e.g. "prop", "context", "child context"
21606 * @param {string} componentName Name of the component for error messages.
21607 * @param {?Function} getStack Returns the component stack.
21608 * @private
21609 */
21610function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
21611  if (process.env.NODE_ENV !== 'production') {
21612    for (var typeSpecName in typeSpecs) {
21613      if (typeSpecs.hasOwnProperty(typeSpecName)) {
21614        var error;
21615        // Prop type validation may throw. In case they do, we don't want to
21616        // fail the render phase where it didn't fail before. So we log it.
21617        // After these have been cleaned up, we'll let them throw.
21618        try {
21619          // This is intentionally an invariant that gets caught. It's the same
21620          // behavior as without this statement except with a better message.
21621          if (typeof typeSpecs[typeSpecName] !== 'function') {
21622            var err = Error(
21623              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
21624              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
21625            );
21626            err.name = 'Invariant Violation';
21627            throw err;
21628          }
21629          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
21630        } catch (ex) {
21631          error = ex;
21632        }
21633        if (error && !(error instanceof Error)) {
21634          printWarning(
21635            (componentName || 'React class') + ': type specification of ' +
21636            location + ' `' + typeSpecName + '` is invalid; the type checker ' +
21637            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
21638            'You may have forgotten to pass an argument to the type checker ' +
21639            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
21640            'shape all require an argument).'
21641          )
21642
21643        }
21644        if (error instanceof Error && !(error.message in loggedTypeFailures)) {
21645          // Only monitor this failure once because there tends to be a lot of the
21646          // same error.
21647          loggedTypeFailures[error.message] = true;
21648
21649          var stack = getStack ? getStack() : '';
21650
21651          printWarning(
21652            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
21653          );
21654        }
21655      }
21656    }
21657  }
21658}
21659
21660module.exports = checkPropTypes;
21661
21662/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
21663
21664/***/ }),
21665/* 444 */
21666/***/ (function(module, exports, __webpack_require__) {
21667
21668"use strict";
21669/**
21670 * Copyright (c) 2013-present, Facebook, Inc.
21671 *
21672 * This source code is licensed under the MIT license found in the
21673 * LICENSE file in the root directory of this source tree.
21674 *
21675 */
21676
21677
21678
21679module.exports = '15.6.2';
21680
21681/***/ }),
21682/* 445 */
21683/***/ (function(module, exports, __webpack_require__) {
21684
21685"use strict";
21686/**
21687 * Copyright (c) 2013-present, Facebook, Inc.
21688 *
21689 * This source code is licensed under the MIT license found in the
21690 * LICENSE file in the root directory of this source tree.
21691 *
21692 */
21693
21694
21695
21696var _require = __webpack_require__(188),
21697    Component = _require.Component;
21698
21699var _require2 = __webpack_require__(59),
21700    isValidElement = _require2.isValidElement;
21701
21702var ReactNoopUpdateQueue = __webpack_require__(189);
21703var factory = __webpack_require__(446);
21704
21705module.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);
21706
21707/***/ }),
21708/* 446 */
21709/***/ (function(module, exports, __webpack_require__) {
21710
21711"use strict";
21712/* WEBPACK VAR INJECTION */(function(process) {/**
21713 * Copyright (c) 2013-present, Facebook, Inc.
21714 *
21715 * This source code is licensed under the MIT license found in the
21716 * LICENSE file in the root directory of this source tree.
21717 *
21718 */
21719
21720
21721
21722var _assign = __webpack_require__(10);
21723
21724var emptyObject = __webpack_require__(98);
21725var _invariant = __webpack_require__(2);
21726
21727if (process.env.NODE_ENV !== 'production') {
21728  var warning = __webpack_require__(3);
21729}
21730
21731var MIXINS_KEY = 'mixins';
21732
21733// Helper function to allow the creation of anonymous functions which do not
21734// have .name set to the name of the variable being assigned to.
21735function identity(fn) {
21736  return fn;
21737}
21738
21739var ReactPropTypeLocationNames;
21740if (process.env.NODE_ENV !== 'production') {
21741  ReactPropTypeLocationNames = {
21742    prop: 'prop',
21743    context: 'context',
21744    childContext: 'child context'
21745  };
21746} else {
21747  ReactPropTypeLocationNames = {};
21748}
21749
21750function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
21751  /**
21752   * Policies that describe methods in `ReactClassInterface`.
21753   */
21754
21755  var injectedMixins = [];
21756
21757  /**
21758   * Composite components are higher-level components that compose other composite
21759   * or host components.
21760   *
21761   * To create a new type of `ReactClass`, pass a specification of
21762   * your new class to `React.createClass`. The only requirement of your class
21763   * specification is that you implement a `render` method.
21764   *
21765   *   var MyComponent = React.createClass({
21766   *     render: function() {
21767   *       return <div>Hello World</div>;
21768   *     }
21769   *   });
21770   *
21771   * The class specification supports a specific protocol of methods that have
21772   * special meaning (e.g. `render`). See `ReactClassInterface` for
21773   * more the comprehensive protocol. Any other properties and methods in the
21774   * class specification will be available on the prototype.
21775   *
21776   * @interface ReactClassInterface
21777   * @internal
21778   */
21779  var ReactClassInterface = {
21780    /**
21781     * An array of Mixin objects to include when defining your component.
21782     *
21783     * @type {array}
21784     * @optional
21785     */
21786    mixins: 'DEFINE_MANY',
21787
21788    /**
21789     * An object containing properties and methods that should be defined on
21790     * the component's constructor instead of its prototype (static methods).
21791     *
21792     * @type {object}
21793     * @optional
21794     */
21795    statics: 'DEFINE_MANY',
21796
21797    /**
21798     * Definition of prop types for this component.
21799     *
21800     * @type {object}
21801     * @optional
21802     */
21803    propTypes: 'DEFINE_MANY',
21804
21805    /**
21806     * Definition of context types for this component.
21807     *
21808     * @type {object}
21809     * @optional
21810     */
21811    contextTypes: 'DEFINE_MANY',
21812
21813    /**
21814     * Definition of context types this component sets for its children.
21815     *
21816     * @type {object}
21817     * @optional
21818     */
21819    childContextTypes: 'DEFINE_MANY',
21820
21821    // ==== Definition methods ====
21822
21823    /**
21824     * Invoked when the component is mounted. Values in the mapping will be set on
21825     * `this.props` if that prop is not specified (i.e. using an `in` check).
21826     *
21827     * This method is invoked before `getInitialState` and therefore cannot rely
21828     * on `this.state` or use `this.setState`.
21829     *
21830     * @return {object}
21831     * @optional
21832     */
21833    getDefaultProps: 'DEFINE_MANY_MERGED',
21834
21835    /**
21836     * Invoked once before the component is mounted. The return value will be used
21837     * as the initial value of `this.state`.
21838     *
21839     *   getInitialState: function() {
21840     *     return {
21841     *       isOn: false,
21842     *       fooBaz: new BazFoo()
21843     *     }
21844     *   }
21845     *
21846     * @return {object}
21847     * @optional
21848     */
21849    getInitialState: 'DEFINE_MANY_MERGED',
21850
21851    /**
21852     * @return {object}
21853     * @optional
21854     */
21855    getChildContext: 'DEFINE_MANY_MERGED',
21856
21857    /**
21858     * Uses props from `this.props` and state from `this.state` to render the
21859     * structure of the component.
21860     *
21861     * No guarantees are made about when or how often this method is invoked, so
21862     * it must not have side effects.
21863     *
21864     *   render: function() {
21865     *     var name = this.props.name;
21866     *     return <div>Hello, {name}!</div>;
21867     *   }
21868     *
21869     * @return {ReactComponent}
21870     * @required
21871     */
21872    render: 'DEFINE_ONCE',
21873
21874    // ==== Delegate methods ====
21875
21876    /**
21877     * Invoked when the component is initially created and about to be mounted.
21878     * This may have side effects, but any external subscriptions or data created
21879     * by this method must be cleaned up in `componentWillUnmount`.
21880     *
21881     * @optional
21882     */
21883    componentWillMount: 'DEFINE_MANY',
21884
21885    /**
21886     * Invoked when the component has been mounted and has a DOM representation.
21887     * However, there is no guarantee that the DOM node is in the document.
21888     *
21889     * Use this as an opportunity to operate on the DOM when the component has
21890     * been mounted (initialized and rendered) for the first time.
21891     *
21892     * @param {DOMElement} rootNode DOM element representing the component.
21893     * @optional
21894     */
21895    componentDidMount: 'DEFINE_MANY',
21896
21897    /**
21898     * Invoked before the component receives new props.
21899     *
21900     * Use this as an opportunity to react to a prop transition by updating the
21901     * state using `this.setState`. Current props are accessed via `this.props`.
21902     *
21903     *   componentWillReceiveProps: function(nextProps, nextContext) {
21904     *     this.setState({
21905     *       likesIncreasing: nextProps.likeCount > this.props.likeCount
21906     *     });
21907     *   }
21908     *
21909     * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
21910     * transition may cause a state change, but the opposite is not true. If you
21911     * need it, you are probably looking for `componentWillUpdate`.
21912     *
21913     * @param {object} nextProps
21914     * @optional
21915     */
21916    componentWillReceiveProps: 'DEFINE_MANY',
21917
21918    /**
21919     * Invoked while deciding if the component should be updated as a result of
21920     * receiving new props, state and/or context.
21921     *
21922     * Use this as an opportunity to `return false` when you're certain that the
21923     * transition to the new props/state/context will not require a component
21924     * update.
21925     *
21926     *   shouldComponentUpdate: function(nextProps, nextState, nextContext) {
21927     *     return !equal(nextProps, this.props) ||
21928     *       !equal(nextState, this.state) ||
21929     *       !equal(nextContext, this.context);
21930     *   }
21931     *
21932     * @param {object} nextProps
21933     * @param {?object} nextState
21934     * @param {?object} nextContext
21935     * @return {boolean} True if the component should update.
21936     * @optional
21937     */
21938    shouldComponentUpdate: 'DEFINE_ONCE',
21939
21940    /**
21941     * Invoked when the component is about to update due to a transition from
21942     * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
21943     * and `nextContext`.
21944     *
21945     * Use this as an opportunity to perform preparation before an update occurs.
21946     *
21947     * NOTE: You **cannot** use `this.setState()` in this method.
21948     *
21949     * @param {object} nextProps
21950     * @param {?object} nextState
21951     * @param {?object} nextContext
21952     * @param {ReactReconcileTransaction} transaction
21953     * @optional
21954     */
21955    componentWillUpdate: 'DEFINE_MANY',
21956
21957    /**
21958     * Invoked when the component's DOM representation has been updated.
21959     *
21960     * Use this as an opportunity to operate on the DOM when the component has
21961     * been updated.
21962     *
21963     * @param {object} prevProps
21964     * @param {?object} prevState
21965     * @param {?object} prevContext
21966     * @param {DOMElement} rootNode DOM element representing the component.
21967     * @optional
21968     */
21969    componentDidUpdate: 'DEFINE_MANY',
21970
21971    /**
21972     * Invoked when the component is about to be removed from its parent and have
21973     * its DOM representation destroyed.
21974     *
21975     * Use this as an opportunity to deallocate any external resources.
21976     *
21977     * NOTE: There is no `componentDidUnmount` since your component will have been
21978     * destroyed by that point.
21979     *
21980     * @optional
21981     */
21982    componentWillUnmount: 'DEFINE_MANY',
21983
21984    /**
21985     * Replacement for (deprecated) `componentWillMount`.
21986     *
21987     * @optional
21988     */
21989    UNSAFE_componentWillMount: 'DEFINE_MANY',
21990
21991    /**
21992     * Replacement for (deprecated) `componentWillReceiveProps`.
21993     *
21994     * @optional
21995     */
21996    UNSAFE_componentWillReceiveProps: 'DEFINE_MANY',
21997
21998    /**
21999     * Replacement for (deprecated) `componentWillUpdate`.
22000     *
22001     * @optional
22002     */
22003    UNSAFE_componentWillUpdate: 'DEFINE_MANY',
22004
22005    // ==== Advanced methods ====
22006
22007    /**
22008     * Updates the component's currently mounted DOM representation.
22009     *
22010     * By default, this implements React's rendering and reconciliation algorithm.
22011     * Sophisticated clients may wish to override this.
22012     *
22013     * @param {ReactReconcileTransaction} transaction
22014     * @internal
22015     * @overridable
22016     */
22017    updateComponent: 'OVERRIDE_BASE'
22018  };
22019
22020  /**
22021   * Similar to ReactClassInterface but for static methods.
22022   */
22023  var ReactClassStaticInterface = {
22024    /**
22025     * This method is invoked after a component is instantiated and when it
22026     * receives new props. Return an object to update state in response to
22027     * prop changes. Return null to indicate no change to state.
22028     *
22029     * If an object is returned, its keys will be merged into the existing state.
22030     *
22031     * @return {object || null}
22032     * @optional
22033     */
22034    getDerivedStateFromProps: 'DEFINE_MANY_MERGED'
22035  };
22036
22037  /**
22038   * Mapping from class specification keys to special processing functions.
22039   *
22040   * Although these are declared like instance properties in the specification
22041   * when defining classes using `React.createClass`, they are actually static
22042   * and are accessible on the constructor instead of the prototype. Despite
22043   * being static, they must be defined outside of the "statics" key under
22044   * which all other static methods are defined.
22045   */
22046  var RESERVED_SPEC_KEYS = {
22047    displayName: function(Constructor, displayName) {
22048      Constructor.displayName = displayName;
22049    },
22050    mixins: function(Constructor, mixins) {
22051      if (mixins) {
22052        for (var i = 0; i < mixins.length; i++) {
22053          mixSpecIntoComponent(Constructor, mixins[i]);
22054        }
22055      }
22056    },
22057    childContextTypes: function(Constructor, childContextTypes) {
22058      if (process.env.NODE_ENV !== 'production') {
22059        validateTypeDef(Constructor, childContextTypes, 'childContext');
22060      }
22061      Constructor.childContextTypes = _assign(
22062        {},
22063        Constructor.childContextTypes,
22064        childContextTypes
22065      );
22066    },
22067    contextTypes: function(Constructor, contextTypes) {
22068      if (process.env.NODE_ENV !== 'production') {
22069        validateTypeDef(Constructor, contextTypes, 'context');
22070      }
22071      Constructor.contextTypes = _assign(
22072        {},
22073        Constructor.contextTypes,
22074        contextTypes
22075      );
22076    },
22077    /**
22078     * Special case getDefaultProps which should move into statics but requires
22079     * automatic merging.
22080     */
22081    getDefaultProps: function(Constructor, getDefaultProps) {
22082      if (Constructor.getDefaultProps) {
22083        Constructor.getDefaultProps = createMergedResultFunction(
22084          Constructor.getDefaultProps,
22085          getDefaultProps
22086        );
22087      } else {
22088        Constructor.getDefaultProps = getDefaultProps;
22089      }
22090    },
22091    propTypes: function(Constructor, propTypes) {
22092      if (process.env.NODE_ENV !== 'production') {
22093        validateTypeDef(Constructor, propTypes, 'prop');
22094      }
22095      Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
22096    },
22097    statics: function(Constructor, statics) {
22098      mixStaticSpecIntoComponent(Constructor, statics);
22099    },
22100    autobind: function() {}
22101  };
22102
22103  function validateTypeDef(Constructor, typeDef, location) {
22104    for (var propName in typeDef) {
22105      if (typeDef.hasOwnProperty(propName)) {
22106        // use a warning instead of an _invariant so components
22107        // don't show up in prod but only in __DEV__
22108        if (process.env.NODE_ENV !== 'production') {
22109          warning(
22110            typeof typeDef[propName] === 'function',
vendor: 15,933 bytes, lines 22111-22584
22111            '%s: %s type `%s` is invalid; it must be a function, usually from ' +
22112              'React.PropTypes.',
22113            Constructor.displayName || 'ReactClass',
22114            ReactPropTypeLocationNames[location],
22115            propName
22116          );
22117        }
22118      }
22119    }
22120  }
22121
22122  function validateMethodOverride(isAlreadyDefined, name) {
22123    var specPolicy = ReactClassInterface.hasOwnProperty(name)
22124      ? ReactClassInterface[name]
22125      : null;
22126
22127    // Disallow overriding of base class methods unless explicitly allowed.
22128    if (ReactClassMixin.hasOwnProperty(name)) {
22129      _invariant(
22130        specPolicy === 'OVERRIDE_BASE',
22131        'ReactClassInterface: You are attempting to override ' +
22132          '`%s` from your class specification. Ensure that your method names ' +
22133          'do not overlap with React methods.',
22134        name
22135      );
22136    }
22137
22138    // Disallow defining methods more than once unless explicitly allowed.
22139    if (isAlreadyDefined) {
22140      _invariant(
22141        specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
22142        'ReactClassInterface: You are attempting to define ' +
22143          '`%s` on your component more than once. This conflict may be due ' +
22144          'to a mixin.',
22145        name
22146      );
22147    }
22148  }
22149
22150  /**
22151   * Mixin helper which handles policy validation and reserved
22152   * specification keys when building React classes.
22153   */
22154  function mixSpecIntoComponent(Constructor, spec) {
22155    if (!spec) {
22156      if (process.env.NODE_ENV !== 'production') {
22157        var typeofSpec = typeof spec;
22158        var isMixinValid = typeofSpec === 'object' && spec !== null;
22159
22160        if (process.env.NODE_ENV !== 'production') {
22161          warning(
22162            isMixinValid,
22163            "%s: You're attempting to include a mixin that is either null " +
22164              'or not an object. Check the mixins included by the component, ' +
22165              'as well as any mixins they include themselves. ' +
22166              'Expected object but got %s.',
22167            Constructor.displayName || 'ReactClass',
22168            spec === null ? null : typeofSpec
22169          );
22170        }
22171      }
22172
22173      return;
22174    }
22175
22176    _invariant(
22177      typeof spec !== 'function',
22178      "ReactClass: You're attempting to " +
22179        'use a component class or function as a mixin. Instead, just use a ' +
22180        'regular object.'
22181    );
22182    _invariant(
22183      !isValidElement(spec),
22184      "ReactClass: You're attempting to " +
22185        'use a component as a mixin. Instead, just use a regular object.'
22186    );
22187
22188    var proto = Constructor.prototype;
22189    var autoBindPairs = proto.__reactAutoBindPairs;
22190
22191    // By handling mixins before any other properties, we ensure the same
22192    // chaining order is applied to methods with DEFINE_MANY policy, whether
22193    // mixins are listed before or after these methods in the spec.
22194    if (spec.hasOwnProperty(MIXINS_KEY)) {
22195      RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
22196    }
22197
22198    for (var name in spec) {
22199      if (!spec.hasOwnProperty(name)) {
22200        continue;
22201      }
22202
22203      if (name === MIXINS_KEY) {
22204        // We have already handled mixins in a special case above.
22205        continue;
22206      }
22207
22208      var property = spec[name];
22209      var isAlreadyDefined = proto.hasOwnProperty(name);
22210      validateMethodOverride(isAlreadyDefined, name);
22211
22212      if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
22213        RESERVED_SPEC_KEYS[name](Constructor, property);
22214      } else {
22215        // Setup methods on prototype:
22216        // The following member methods should not be automatically bound:
22217        // 1. Expected ReactClass methods (in the "interface").
22218        // 2. Overridden methods (that were mixed in).
22219        var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
22220        var isFunction = typeof property === 'function';
22221        var shouldAutoBind =
22222          isFunction &&
22223          !isReactClassMethod &&
22224          !isAlreadyDefined &&
22225          spec.autobind !== false;
22226
22227        if (shouldAutoBind) {
22228          autoBindPairs.push(name, property);
22229          proto[name] = property;
22230        } else {
22231          if (isAlreadyDefined) {
22232            var specPolicy = ReactClassInterface[name];
22233
22234            // These cases should already be caught by validateMethodOverride.
22235            _invariant(
22236              isReactClassMethod &&
22237                (specPolicy === 'DEFINE_MANY_MERGED' ||
22238                  specPolicy === 'DEFINE_MANY'),
22239              'ReactClass: Unexpected spec policy %s for key %s ' +
22240                'when mixing in component specs.',
22241              specPolicy,
22242              name
22243            );
22244
22245            // For methods which are defined more than once, call the existing
22246            // methods before calling the new property, merging if appropriate.
22247            if (specPolicy === 'DEFINE_MANY_MERGED') {
22248              proto[name] = createMergedResultFunction(proto[name], property);
22249            } else if (specPolicy === 'DEFINE_MANY') {
22250              proto[name] = createChainedFunction(proto[name], property);
22251            }
22252          } else {
22253            proto[name] = property;
22254            if (process.env.NODE_ENV !== 'production') {
22255              // Add verbose displayName to the function, which helps when looking
22256              // at profiling tools.
22257              if (typeof property === 'function' && spec.displayName) {
22258                proto[name].displayName = spec.displayName + '_' + name;
22259              }
22260            }
22261          }
22262        }
22263      }
22264    }
22265  }
22266
22267  function mixStaticSpecIntoComponent(Constructor, statics) {
22268    if (!statics) {
22269      return;
22270    }
22271
22272    for (var name in statics) {
22273      var property = statics[name];
22274      if (!statics.hasOwnProperty(name)) {
22275        continue;
22276      }
22277
22278      var isReserved = name in RESERVED_SPEC_KEYS;
22279      _invariant(
22280        !isReserved,
22281        'ReactClass: You are attempting to define a reserved ' +
22282          'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
22283          'as an instance property instead; it will still be accessible on the ' +
22284          'constructor.',
22285        name
22286      );
22287
22288      var isAlreadyDefined = name in Constructor;
22289      if (isAlreadyDefined) {
22290        var specPolicy = ReactClassStaticInterface.hasOwnProperty(name)
22291          ? ReactClassStaticInterface[name]
22292          : null;
22293
22294        _invariant(
22295          specPolicy === 'DEFINE_MANY_MERGED',
22296          'ReactClass: You are attempting to define ' +
22297            '`%s` on your component more than once. This conflict may be ' +
22298            'due to a mixin.',
22299          name
22300        );
22301
22302        Constructor[name] = createMergedResultFunction(Constructor[name], property);
22303
22304        return;
22305      }
22306
22307      Constructor[name] = property;
22308    }
22309  }
22310
22311  /**
22312   * Merge two objects, but throw if both contain the same key.
22313   *
22314   * @param {object} one The first object, which is mutated.
22315   * @param {object} two The second object
22316   * @return {object} one after it has been mutated to contain everything in two.
22317   */
22318  function mergeIntoWithNoDuplicateKeys(one, two) {
22319    _invariant(
22320      one && two && typeof one === 'object' && typeof two === 'object',
22321      'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
22322    );
22323
22324    for (var key in two) {
22325      if (two.hasOwnProperty(key)) {
22326        _invariant(
22327          one[key] === undefined,
22328          'mergeIntoWithNoDuplicateKeys(): ' +
22329            'Tried to merge two objects with the same key: `%s`. This conflict ' +
22330            'may be due to a mixin; in particular, this may be caused by two ' +
22331            'getInitialState() or getDefaultProps() methods returning objects ' +
22332            'with clashing keys.',
22333          key
22334        );
22335        one[key] = two[key];
22336      }
22337    }
22338    return one;
22339  }
22340
22341  /**
22342   * Creates a function that invokes two functions and merges their return values.
22343   *
22344   * @param {function} one Function to invoke first.
22345   * @param {function} two Function to invoke second.
22346   * @return {function} Function that invokes the two argument functions.
22347   * @private
22348   */
22349  function createMergedResultFunction(one, two) {
22350    return function mergedResult() {
22351      var a = one.apply(this, arguments);
22352      var b = two.apply(this, arguments);
22353      if (a == null) {
22354        return b;
22355      } else if (b == null) {
22356        return a;
22357      }
22358      var c = {};
22359      mergeIntoWithNoDuplicateKeys(c, a);
22360      mergeIntoWithNoDuplicateKeys(c, b);
22361      return c;
22362    };
22363  }
22364
22365  /**
22366   * Creates a function that invokes two functions and ignores their return vales.
22367   *
22368   * @param {function} one Function to invoke first.
22369   * @param {function} two Function to invoke second.
22370   * @return {function} Function that invokes the two argument functions.
22371   * @private
22372   */
22373  function createChainedFunction(one, two) {
22374    return function chainedFunction() {
22375      one.apply(this, arguments);
22376      two.apply(this, arguments);
22377    };
22378  }
22379
22380  /**
22381   * Binds a method to the component.
22382   *
22383   * @param {object} component Component whose method is going to be bound.
22384   * @param {function} method Method to be bound.
22385   * @return {function} The bound method.
22386   */
22387  function bindAutoBindMethod(component, method) {
22388    var boundMethod = method.bind(component);
22389    if (process.env.NODE_ENV !== 'production') {
22390      boundMethod.__reactBoundContext = component;
22391      boundMethod.__reactBoundMethod = method;
22392      boundMethod.__reactBoundArguments = null;
22393      var componentName = component.constructor.displayName;
22394      var _bind = boundMethod.bind;
22395      boundMethod.bind = function(newThis) {
22396        for (
22397          var _len = arguments.length,
22398            args = Array(_len > 1 ? _len - 1 : 0),
22399            _key = 1;
22400          _key < _len;
22401          _key++
22402        ) {
22403          args[_key - 1] = arguments[_key];
22404        }
22405
22406        // User is trying to bind() an autobound method; we effectively will
22407        // ignore the value of "this" that the user is trying to use, so
22408        // let's warn.
22409        if (newThis !== component && newThis !== null) {
22410          if (process.env.NODE_ENV !== 'production') {
22411            warning(
22412              false,
22413              'bind(): React component methods may only be bound to the ' +
22414                'component instance. See %s',
22415              componentName
22416            );
22417          }
22418        } else if (!args.length) {
22419          if (process.env.NODE_ENV !== 'production') {
22420            warning(
22421              false,
22422              'bind(): You are binding a component method to the component. ' +
22423                'React does this for you automatically in a high-performance ' +
22424                'way, so you can safely remove this call. See %s',
22425              componentName
22426            );
22427          }
22428          return boundMethod;
22429        }
22430        var reboundMethod = _bind.apply(boundMethod, arguments);
22431        reboundMethod.__reactBoundContext = component;
22432        reboundMethod.__reactBoundMethod = method;
22433        reboundMethod.__reactBoundArguments = args;
22434        return reboundMethod;
22435      };
22436    }
22437    return boundMethod;
22438  }
22439
22440  /**
22441   * Binds all auto-bound methods in a component.
22442   *
22443   * @param {object} component Component whose method is going to be bound.
22444   */
22445  function bindAutoBindMethods(component) {
22446    var pairs = component.__reactAutoBindPairs;
22447    for (var i = 0; i < pairs.length; i += 2) {
22448      var autoBindKey = pairs[i];
22449      var method = pairs[i + 1];
22450      component[autoBindKey] = bindAutoBindMethod(component, method);
22451    }
22452  }
22453
22454  var IsMountedPreMixin = {
22455    componentDidMount: function() {
22456      this.__isMounted = true;
22457    }
22458  };
22459
22460  var IsMountedPostMixin = {
22461    componentWillUnmount: function() {
22462      this.__isMounted = false;
22463    }
22464  };
22465
22466  /**
22467   * Add more to the ReactClass base class. These are all legacy features and
22468   * therefore not already part of the modern ReactComponent.
22469   */
22470  var ReactClassMixin = {
22471    /**
22472     * TODO: This will be deprecated because state should always keep a consistent
22473     * type signature and the only use case for this, is to avoid that.
22474     */
22475    replaceState: function(newState, callback) {
22476      this.updater.enqueueReplaceState(this, newState, callback);
22477    },
22478
22479    /**
22480     * Checks whether or not this composite component is mounted.
22481     * @return {boolean} True if mounted, false otherwise.
22482     * @protected
22483     * @final
22484     */
22485    isMounted: function() {
22486      if (process.env.NODE_ENV !== 'production') {
22487        warning(
22488          this.__didWarnIsMounted,
22489          '%s: isMounted is deprecated. Instead, make sure to clean up ' +
22490            'subscriptions and pending requests in componentWillUnmount to ' +
22491            'prevent memory leaks.',
22492          (this.constructor && this.constructor.displayName) ||
22493            this.name ||
22494            'Component'
22495        );
22496        this.__didWarnIsMounted = true;
22497      }
22498      return !!this.__isMounted;
22499    }
22500  };
22501
22502  var ReactClassComponent = function() {};
22503  _assign(
22504    ReactClassComponent.prototype,
22505    ReactComponent.prototype,
22506    ReactClassMixin
22507  );
22508
22509  /**
22510   * Creates a composite component class given a class specification.
22511   * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
22512   *
22513   * @param {object} spec Class specification (which must define `render`).
22514   * @return {function} Component constructor function.
22515   * @public
22516   */
22517  function createClass(spec) {
22518    // To keep our warnings more understandable, we'll use a little hack here to
22519    // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
22520    // unnecessarily identify a class without displayName as 'Constructor'.
22521    var Constructor = identity(function(props, context, updater) {
22522      // This constructor gets overridden by mocks. The argument is used
22523      // by mocks to assert on what gets mounted.
22524
22525      if (process.env.NODE_ENV !== 'production') {
22526        warning(
22527          this instanceof Constructor,
22528          'Something is calling a React component directly. Use a factory or ' +
22529            'JSX instead. See: https://fb.me/react-legacyfactory'
22530        );
22531      }
22532
22533      // Wire up auto-binding
22534      if (this.__reactAutoBindPairs.length) {
22535        bindAutoBindMethods(this);
22536      }
22537
22538      this.props = props;
22539      this.context = context;
22540      this.refs = emptyObject;
22541      this.updater = updater || ReactNoopUpdateQueue;
22542
22543      this.state = null;
22544
22545      // ReactClasses doesn't have constructors. Instead, they use the
22546      // getInitialState and componentWillMount methods for initialization.
22547
22548      var initialState = this.getInitialState ? this.getInitialState() : null;
22549      if (process.env.NODE_ENV !== 'production') {
22550        // We allow auto-mocks to proceed as if they're returning null.
22551        if (
22552          initialState === undefined &&
22553          this.getInitialState._isMockFunction
22554        ) {
22555          // This is probably bad practice. Consider warning here and
22556          // deprecating this convenience.
22557          initialState = null;
22558        }
22559      }
22560      _invariant(
22561        typeof initialState === 'object' && !Array.isArray(initialState),
22562        '%s.getInitialState(): must return an object or null',
22563        Constructor.displayName || 'ReactCompositeComponent'
22564      );
22565
22566      this.state = initialState;
22567    });
22568    Constructor.prototype = new ReactClassComponent();
22569    Constructor.prototype.constructor = Constructor;
22570    Constructor.prototype.__reactAutoBindPairs = [];
22571
22572    injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
22573
22574    mixSpecIntoComponent(Constructor, IsMountedPreMixin);
22575    mixSpecIntoComponent(Constructor, spec);
22576    mixSpecIntoComponent(Constructor, IsMountedPostMixin);
22577
22578    // Initialize the defaultProps property after all mixins have been merged.
22579    if (Constructor.getDefaultProps) {
22580      Constructor.defaultProps = Constructor.getDefaultProps();
22581    }
22582
22583    if (process.env.NODE_ENV !== 'production') {
22584      // This is a tag to indicate that the use of these method n
22584ames is ok,
22585      // since it's used with createClass. If it's not, then it's likely a
22586      // mistake so we'll warn you to use the static property, property
22587      // initializer or constructor respectively.
22588      if (Constructor.getDefaultProps) {
22589        Constructor.getDefaultProps.isReactClassApproved = {};
22590      }
22591      if (Constructor.prototype.getInitialState) {
22592        Constructor.prototype.getInitialState.isReactClassApproved = {};
22593      }
22594    }
22595
22596    _invariant(
22597      Constructor.prototype.render,
22598      'createClass(...): Class specification must implement a `render` method.'
22599    );
22600
22601    if (process.env.NODE_ENV !== 'production') {
22602      warning(
22603        !Constructor.prototype.componentShouldUpdate,
22604        '%s has a method called ' +
22605          'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
22606          'The name is phrased as a question because the function is ' +
22607          'expected to return a value.',
22608        spec.displayName || 'A component'
22609      );
22610      warning(
22611        !Constructor.prototype.componentWillRecieveProps,
22612        '%s has a method called ' +
22613          'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
22614        spec.displayName || 'A component'
22615      );
22616      warning(
22617        !Constructor.prototype.UNSAFE_componentWillRecieveProps,
22618        '%s has a method called UNSAFE_componentWillRecieveProps(). ' +
22619          'Did you mean UNSAFE_componentWillReceiveProps()?',
22620        spec.displayName || 'A component'
22621      );
22622    }
22623
22624    // Reduce time spent doing lookups by setting these on the prototype.
22625    for (var methodName in ReactClassInterface) {
22626      if (!Constructor.prototype[methodName]) {
22627        Constructor.prototype[methodName] = null;
22628      }
22629    }
22630
22631    return Constructor;
22632  }
22633
22634  return createClass;
22635}
22636
22637module.exports = factory;
22638
22639/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
22640
22641/***/ }),
22642/* 447 */
22643/***/ (function(module, exports, __webpack_require__) {
22644
22645"use strict";
22646/* WEBPACK VAR INJECTION */(function(process) {/**
22647 * Copyright (c) 2013-present, Facebook, Inc.
22648 *
22649 * This source code is licensed under the MIT license found in the
22650 * LICENSE file in the root directory of this source tree.
22651 *
22652 */
22653
22654
22655var _prodInvariant = __webpack_require__(67);
22656
22657var ReactElement = __webpack_require__(59);
22658
22659var invariant = __webpack_require__(2);
22660
22661/**
22662 * Returns the first child in a collection of children and verifies that there
22663 * is only one child in the collection.
22664 *
22665 * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only
22666 *
22667 * The current implementation of this function assumes that a single child gets
22668 * passed without a wrapper, but the purpose of this helper function is to
22669 * abstract away the particular structure of children.
22670 *
22671 * @param {?object} children Child collection structure.
22672 * @return {ReactElement} The first and only `ReactElement` contained in the
22673 * structure.
22674 */
22675function onlyChild(children) {
22676  !ReactElement.isValidElement(children) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;
22677  return children;
22678}
22679
22680module.exports = onlyChild;
22681/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
22682
22683/***/ }),
22684/* 448 */
22685/***/ (function(module, exports, __webpack_require__) {
22686
22687"use strict";
22688
22689
22690module.exports = __webpack_require__(449);
22691
22692
22693/***/ }),
22694/* 449 */
22695/***/ (function(module, exports, __webpack_require__) {
22696
22697"use strict";
22698/* WEBPACK VAR INJECTION */(function(process) {/**
22699 * Copyright (c) 2013-present, Facebook, Inc.
22700 *
22701 * This source code is licensed under the MIT license found in the
22702 * LICENSE file in the root directory of this source tree.
22703 *
22704 */
22705
22706/* globals __REACT_DEVTOOLS_GLOBAL_HOOK__*/
22707
22708
22709
22710var ReactDOMComponentTree = __webpack_require__(14);
22711var ReactDefaultInjection = __webpack_require__(450);
22712var ReactMount = __webpack_require__(218);
22713var ReactReconciler = __webpack_require__(68);
22714var ReactUpdates = __webpack_require__(40);
22715var ReactVersion = __webpack_require__(528);
22716
22717var findDOMNode = __webpack_require__(529);
22718var getHostComponentFromComposite = __webpack_require__(219);
22719var renderSubtreeIntoContainer = __webpack_require__(530);
22720var warning = __webpack_require__(3);
22721
22722ReactDefaultInjection.inject();
22723
22724var ReactDOM = {
22725  findDOMNode: findDOMNode,
22726  render: ReactMount.render,
22727  unmountComponentAtNode: ReactMount.unmountComponentAtNode,
22728  version: ReactVersion,
22729
22730  /* eslint-disable camelcase */
22731  unstable_batchedUpdates: ReactUpdates.batchedUpdates,
22732  unstable_renderSubtreeIntoContainer: renderSubtreeIntoContainer
22733  /* eslint-enable camelcase */
22734};
22735
22736// Inject the runtime into a devtools global hook regardless of browser.
22737// Allows for debugging when the hook is injected on the page.
22738if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') {
22739  __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({
22740    ComponentTree: {
22741      getClosestInstanceFromNode: ReactDOMComponentTree.getClosestInstanceFromNode,
22742      getNodeFromInstance: function (inst) {
22743        // inst is an internal instance (but could be a composite)
22744        if (inst._renderedComponent) {
22745          inst = getHostComponentFromComposite(inst);
22746        }
22747        if (inst) {
22748          return ReactDOMComponentTree.getNodeFromInstance(inst);
22749        } else {
22750          return null;
22751        }
22752      }
22753    },
22754    Mount: ReactMount,
22755    Reconciler: ReactReconciler
22756  });
22757}
22758
22759if (process.env.NODE_ENV !== 'production') {
22760  var ExecutionEnvironment = __webpack_require__(16);
22761  if (ExecutionEnvironment.canUseDOM && window.top === window.self) {
22762    // First check if devtools is not installed
22763    if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {
22764      // If we're in Chrome or Firefox, provide a download link if not installed.
22765      if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {
22766        // Firefox does not have the issue with devtools loaded over file://
22767        var showFileUrlMessage = window.location.protocol.indexOf('http') === -1 && navigator.userAgent.indexOf('Firefox') === -1;
22768        console.debug('Download the React DevTools ' + (showFileUrlMessage ? 'and use an HTTP server (instead of a file: URL) ' : '') + 'for a better development experience: ' + 'https://fb.me/react-devtools');
22769      }
22770    }
22771
22772    var testFunc = function testFn() {};
22773    process.env.NODE_ENV !== 'production' ? warning((testFunc.name || testFunc.toString()).indexOf('testFn') !== -1, "It looks like you're using a minified copy of the development build " + 'of React. When deploying React apps to production, make sure to use ' + 'the production build which skips development warnings and is faster. ' + 'See https://fb.me/react-minification for more details.') : void 0;
22774
22775    // If we're in IE8, check to see if we are in compatibility mode and provide
22776    // information on preventing compatibility mode
22777    var ieCompatibilityMode = document.documentMode && document.documentMode < 8;
22778
22779    process.env.NODE_ENV !== 'production' ? warning(!ieCompatibilityMode, 'Internet Explorer is running in compatibility mode; please add the ' + 'following tag to your HTML to prevent this from happening: ' + '<meta http-equiv="X-UA-Compatible" content="IE=edge" />') : void 0;
22780
22781    var expectedFeatures = [
22782    // shims
22783    Array.isArray, Array.prototype.every, Array.prototype.forEach, Array.prototype.indexOf, Array.prototype.map, Date.now, Function.prototype.bind, Object.keys, String.prototype.trim];
22784
22785    for (var i = 0; i < expectedFeatures.length; i++) {
22786      if (!expectedFeatures[i]) {
22787        process.env.NODE_ENV !== 'production' ? warning(false, 'One or more ES5 shims expected by React are not available: ' + 'https://fb.me/react-warning-polyfills') : void 0;
22788        break;
22789      }
22790    }
22791  }
22792}
22793
22794if (process.env.NODE_ENV !== 'production') {
22795  var ReactInstrumentation = __webpack_require__(28);
22796  var ReactDOMUnknownPropertyHook = __webpack_require__(531);
22797  var ReactDOMNullInputValuePropHook = __webpack_require__(532);
22798  var ReactDOMInvalidARIAHook = __webpack_require__(533);
22799
22800  ReactInstrumentation.debugTool.addHook(ReactDOMUnknownPropertyHook);
22801  ReactInstrumentation.debugTool.addHook(ReactDOMNullInputValuePropHook);
22802  ReactInstrumentation.debugTool.addHook(ReactDOMInvalidARIAHook);
22803}
22804
22805module.exports = ReactDOM;
22806/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
22807
22808/***/ }),
22809/* 450 */
22810/***/ (function(module, exports, __webpack_require__) {
22811
22812"use strict";
22813/**
22814 * Copyright (c) 2013-present, Facebook, Inc.
22815 *
22816 * This source code is licensed under the MIT license found in the
22817 * LICENSE file in the root directory of this source tree.
22818 *
22819 */
22820
22821
22822
22823var ARIADOMPropertyConfig = __webpack_require__(451);
22824var BeforeInputEventPlugin = __webpack_require__(452);
22825var ChangeEventPlugin = __webpack_require__(456);
22826var DefaultEventPluginOrder = __webpack_require__(464);
22827var EnterLeaveEventPlugin = __webpack_require__(465);
22828var HTMLDOMPropertyConfig = __webpack_require__(466);
22829var ReactComponentBrowserEnvironment = __webpack_require__(467);
22830var ReactDOMComponent = __webpack_require__(473);
22831var ReactDOMComponentTree = __webpack_require__(14);
22832var ReactDOMEmptyComponent = __webpack_require__(499);
22833var ReactDOMTreeTraversal = __webpack_require__(500);
22834var ReactDOMTextComponent = __webpack_require__(501);
22835var ReactDefaultBatchingStrategy = __webpack_require__(502);
22836var ReactEventListener = __webpack_require__(503);
22837var ReactInjection = __webpack_require__(505);
22838var ReactReconcileTransaction = __webpack_require__(506);
22839var SVGDOMPropertyConfig = __webpack_require__(512);
22840var SelectEventPlugin = __webpack_require__(513);
22841var SimpleEventPlugin = __webpack_require__(514);
22842
22843var alreadyInjected = false;
22844
22845function inject() {
22846  if (alreadyInjected) {
22847    // TODO: This is currently true because these injections are shared between
22848    // the client and the server package. They should be built independently
22849    // and not share any injection state. Then this problem will be solved.
22850    return;
22851  }
22852  alreadyInjected = true;
22853
22854  ReactInjection.EventEmitter.injectReactEventListener(ReactEventListener);
22855
22856  /**
22857   * Inject modules for resolving DOM hierarchy and plugin ordering.
22858   */
22859  ReactInjection.EventPluginHub.injectEventPluginOrder(DefaultEventPluginOrder);
22860  ReactInjection.EventPluginUtils.injectComponentTree(ReactDOMComponentTree);
22861  ReactInjection.EventPluginUtils.injectTreeTraversal(ReactDOMTreeTraversal);
22862
22863  /**
22864   * Some important event plugins included by default (without having to require
22865   * them).
22866   */
22867  ReactInjection.EventPluginHub.injectEventPluginsByName({
22868    SimpleEventPlugin: SimpleEventPlugin,
22869    EnterLeaveEventPlugin: EnterLeaveEventPlugin,
22870    ChangeEventPlugin: ChangeEventPlugin,
22871    SelectEventPlugin: SelectEventPlugin,
22872    BeforeInputEventPlugin: BeforeInputEventPlugin
22873  });
22874
22875  ReactInjection.HostComponent.injectGenericComponentClass(ReactDOMComponent);
22876
22877  ReactInjection.HostComponent.injectTextComponentClass(ReactDOMTextComponent);
22878
22879  ReactInjection.DOMProperty.injectDOMPropertyConfig(ARIADOMPropertyConfig);
22880  ReactInjection.DOMProperty.injectDOMPropertyConfig(HTMLDOMPropertyConfig);
22881  ReactInjection.DOMProperty.injectDOMPropertyConfig(SVGDOMPropertyConfig);
22882
22883  ReactInjection.EmptyComponent.injectEmptyComponentFactory(function (instantiate) {
22884    return new ReactDOMEmptyComponent(instantiate);
22885  });
22886
22887  ReactInjection.Updates.injectReconcileTransaction(ReactReconcileTransaction);
22888  ReactInjection.Updates.injectBatchingStrategy(ReactDefaultBatchingStrategy);
22889
22890  ReactInjection.Component.injectEnvironment(ReactComponentBrowserEnvironment);
22891}
22892
22893module.exports = {
22894  inject: inject
22895};
22896
22897/***/ }),
22898/* 451 */
22899/***/ (function(module, exports, __webpack_require__) {
22900
22901"use strict";
22902/**
22903 * Copyright (c) 2013-present, Facebook, Inc.
22904 *
22905 * This source code is licensed under the MIT license found in the
22906 * LICENSE file in the root directory of this source tree.
22907 *
22908 */
22909
22910
22911
22912var ARIADOMPropertyConfig = {
22913  Properties: {
22914    // Global States and Properties
22915    'aria-current': 0, // state
22916    'aria-details': 0,
22917    'aria-disabled': 0, // state
22918    'aria-hidden': 0, // state
22919    'aria-invalid': 0, // state
22920    'aria-keyshortcuts': 0,
22921    'aria-label': 0,
22922    'aria-roledescription': 0,
22923    // Widget Attributes
22924    'aria-autocomplete': 0,
22925    'aria-checked': 0,
22926    'aria-expanded': 0,
22927    'aria-haspopup': 0,
22928    'aria-level': 0,
22929    'aria-modal': 0,
22930    'aria-multiline': 0,
22931    'aria-multiselectable': 0,
22932    'aria-orientation': 0,
22933    'aria-placeholder': 0,
22934    'aria-pressed': 0,
22935    'aria-readonly': 0,
22936    'aria-required': 0,
22937    'aria-selected': 0,
22938    'aria-sort': 0,
22939    'aria-valuemax': 0,
22940    'aria-valuemin': 0,
22941    'aria-valuenow': 0,
22942    'aria-valuetext': 0,
22943    // Live Region Attributes
22944    'aria-atomic': 0,
22945    'aria-busy': 0,
22946    'aria-live': 0,
22947    'aria-relevant': 0,
22948    // Drag-and-Drop Attributes
22949    'aria-dropeffect': 0,
22950    'aria-grabbed': 0,
22951    // Relationship Attributes
22952    'aria-activedescendant': 0,
22953    'aria-colcount': 0,
22954    'aria-colindex': 0,
22955    'aria-colspan': 0,
22956    'aria-controls': 0,
22957    'aria-describedby': 0,
22958    'aria-errormessage': 0,
22959    'aria-flowto': 0,
22960    'aria-labelledby': 0,
22961    'aria-owns': 0,
22962    'aria-posinset': 0,
22963    'aria-rowcount': 0,
22964    'aria-rowindex': 0,
22965    'aria-rowspan': 0,
22966    'aria-setsize': 0
22967  },
22968  DOMAttributeNames: {},
22969  DOMPropertyNames: {}
22970};
22971
22972module.exports = ARIADOMPropertyConfig;
22973
22974/***/ }),
22975/* 452 */
22976/***/ (function(module, exports, __webpack_require__) {
22977
22978"use strict";
22979/**
22980 * Copyright (c) 2013-present, Facebook, Inc.
22981 *
22982 * This source code is licensed under the MIT license found in the
22983 * LICENSE file in the root directory of this source tree.
22984 *
22985 */
22986
22987
22988
22989var EventPropagators = __webpack_require__(76);
22990var ExecutionEnvironment = __webpack_require__(16);
22991var FallbackCompositionState = __webpack_require__(453);
22992var SyntheticCompositionEvent = __webpack_require__(454);
22993var SyntheticInputEvent = __webpack_require__(455);
22994
22995var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
22996var START_KEYCODE = 229;
22997
22998var canUseCompositionEvent = ExecutionEnvironment.canUseDOM && 'CompositionEvent' in window;
22999
23000var documentMode = null;
23001if (ExecutionEnvironment.canUseDOM && 'documentMode' in document) {
23002  documentMode = document.documentMode;
23003}
23004
23005// Webkit offers a very useful `textInput` event that can be used to
23006// directly represent `beforeInput`. The IE `textinput` event is not as
23007// useful, so we don't use it.
23008var canUseTextInputEvent = ExecutionEnvironment.canUseDOM && 'TextEvent' in window && !documentMode && !isPresto();
23009
23010// In IE9+, we have access to composition events, but the data supplied
23011// by the native compositionend event may be incorrect. Japanese ideographic
23012// spaces, for instance (\u3000) are not recorded correctly.
23013var useFallbackCompositionData = ExecutionEnvironment.canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);
23014
23015/**
23016 * Opera <= 12 includes TextEvent in window, but does not fire
23017 * text input events. Rely on keypress instead.
23018 */
23019function isPresto() {
23020  var opera = window.opera;
23021  return typeof opera === 'object' && typeof opera.version === 'function' && parseInt(opera.version(), 10) <= 12;
23022}
23023
23024var SPACEBAR_CODE = 32;
23025var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);
23026
23027// Events and their corresponding property names.
23028var eventTypes = {
23029  beforeInput: {
23030    phasedRegistrationNames: {
23031      bubbled: 'onBeforeInput',
23032      captured: 'onBeforeInputCapture'
23033    },
23034    dependencies: ['topCompositionEnd', 'topKeyPress', 'topTextInput', 'topPaste']
23035  },
23036  compositionEnd: {
23037    phasedRegistrationNames: {
23038      bubbled: 'onCompositionEnd',
23039      captured: 'onCompositionEndCapture'
23040    },
23041    dependencies: ['topBlur', 'topCompositionEnd', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
23042  },
23043  compositionStart: {
23044    phasedRegistrationNames: {
23045      bubbled: 'onCompositionStart',
23046      captured: 'onCompositionStartCapture'
23047    },
23048    dependencies: ['topBlur', 'topCompositionStart', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
23049  },
23050  compositionUpdate: {
23051    phasedRegistrationNames: {
23052      bubbled: 'onCompositionUpdate',
23053      captured: 'onCompositionUpdateCapture'
23054    },
23055    dependencies: ['topBlur', 'topCompositionUpdate', 'topKeyDown', 'topKeyPress', 'topKeyUp', 'topMouseDown']
23056  }
23057};
23058
23059// Track whether we've ever handled a keypress on the space key.
23060var hasSpaceKeypress = false;
23061
23062/**
23063 * Return whether a native keypress event is assumed to be a command.
23064 * This is required because Firefox fires `keypress` events for key commands
23065 * (cut, copy, select-all, etc.) even though no character is inserted.
23066 */
23067function isKeypressCommand(nativeEvent) {
23068  return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
23069  // ctrlKey && altKey is equivalent to AltGr, and is not a command.
23070  !(nativeEvent.ctrlKey && nativeEvent.altKey);
23071}
23072
23073/**
23074 * Translate native top level events into event types.
23075 *
23076 * @param {string} topLevelType
23077 * @return {object}
23078 */
23079function getCompositionEventType(topLevelType) {
23080  switch (topLevelType) {
23081    case 'topCompositionStart':
23082      return eventTypes.compositionStart;
23083    case 'topCompositionEnd':
23084      return eventTypes.compositionEnd;
23085    case 'topCompositionUpdate':
23086      return eventTypes.compositionUpdate;
23087  }
23088}
23089
23090/**
23091 * Does our fallback best-guess model think this event signifies that
23092 * composition has begun?
23093 *
23094 * @param {string} topLevelType
23095 * @param {object} nativeEvent
23096 * @return {boolean}
23097 */
23098function isFallbackCompositionStart(topLevelType, nativeEvent) {
23099  return topLevelType === 'topKeyDown' && nativeEvent.keyCode === START_KEYCODE;
23100}
23101
23102/**
23103 * Does our fallback mode think that this event is the end of composition?
23104 *
23105 * @param {string} topLevelType
23106 * @param {object} nativeEvent
23107 * @return {boolean}
23108 */
23109function isFallbackCompositionEnd(topLevelType, nativeEvent) {
23110  switch (topLevelType) {
23111    case 'topKeyUp':
23112      // Command keys insert or clear IME input.
23113      return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
23114    case 'topKeyDown':
23115      // Expect IME keyCode on each keydown. If we get any other
23116      // code we must have exited earlier.
23117      return nativeEvent.keyCode !== START_KEYCODE;
23118    case 'topKeyPress':
23119    case 'topMouseDown':
23120    case 'topBlur':
23121      // Events are not possible without cancelling IME.
23122      return true;
23123    default:
23124      return false;
23125  }
23126}
23127
23128/**
23129 * Google Input Tools provides composition data via a CustomEvent,
23130 * with the `data` property populated in the `detail` object. If this
23131 * is available on the event object, use it. If not, this is a plain
23132 * composition event and we have nothing special to extract.
23133 *
23134 * @param {object} nativeEvent
23135 * @return {?string}
23136 */
23137function getDataFromCustomEvent(nativeEvent) {
23138  var detail = nativeEvent.detail;
23139  if (typeof detail === 'object' && 'data' in detail) {
23140    return detail.data;
23141  }
23142  return null;
23143}
23144
23145// Track the current IME composition fallback object, if any.
23146var currentComposition = null;
23147
23148/**
23149 * @return {?object} A SyntheticCompositionEvent.
23150 */
23151function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
23152  var eventType;
23153  var fallbackData;
23154
23155  if (canUseCompositionEvent) {
23156    eventType = getCompositionEventType(topLevelType);
23157  } else if (!currentComposition) {
23158    if (isFallbackCompositionStart(topLevelType, nativeEvent)) {
23159      eventType = eventTypes.compositionStart;
23160    }
23161  } else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {
23162    eventType = eventTypes.compositionEnd;
23163  }
23164
23165  if (!eventType) {
23166    return null;
23167  }
23168
23169  if (useFallbackCompositionData) {
23170    // The current composition is stored statically and must not be
23171    // overwritten while composition continues.
23172    if (!currentComposition && eventType === eventTypes.compositionStart) {
23173      currentComposition = FallbackCompositionState.getPooled(nativeEventTarget);
23174    } else if (eventType === eventTypes.compositionEnd) {
23175      if (currentComposition) {
23176        fallbackData = currentComposition.getData();
23177      }
23178    }
23179  }
23180
23181  var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);
23182
23183  if (fallbackData) {
23184    // Inject data generated from fallback path into the synthetic event.
23185    // This matches the property of native CompositionEventInterface.
23186    event.data = fallbackData;
23187  } else {
23188    var customData = getDataFromCustomEvent(nativeEvent);
23189    if (customData !== null) {
23190      event.data = customData;
23191    }
23192  }
23193
23194  EventPropagators.accumulateTwoPhaseDispatches(event);
23195  return event;
23196}
23197
23198/**
23199 * @param {string} topLevelType Record from `EventConstants`.
23200 * @param {object} nativeEvent Native browser event.
23201 * @return {?string} The string corresponding to this `beforeInput` event.
23202 */
23203function getNativeBeforeInputChars(topLevelType, nativeEvent) {
23204  switch (topLevelType) {
23205    case 'topCompositionEnd':
23206      return getDataFromCustomEvent(nativeEvent);
23207    case 'topKeyPress':
23208      /**
23209       * If native `textInput` events are available, our goal is to make
23210       * use of them. However, there is a special case: the spacebar key.
23211       * In Webkit, preventing default on a spacebar `textInput` event
23212       * cancels character insertion, but it *also* causes the browser
23213       * to fall back to its default spacebar behavior of scrolling the
23214       * page.
23215       *
23216       * Tracking at:
23217       * https://code.google.com/p/chromium/issues/detail?id=355103
23218       *
23219       * To avoid this issue, use the keypress event as if no `textInput`
23220       * event is available.
23221       */
23222      var which = nativeEvent.which;
23223      if (which !== SPACEBAR_CODE) {
23224        return null;
23225      }
23226
23227      hasSpaceKeypress = true;
23228      return SPACEBAR_CHAR;
23229
23230    case 'topTextInput':
23231      // Record the characters to be added to the DOM.
23232      var chars = nativeEvent.data;
23233
23234      // If it's a spacebar character, assume that we have already handled
23235      // it at the keypress level and bail immediately. Android Chrome
23236      // doesn't give us keycodes, so we need to blacklist it.
23237      if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
23238        return null;
23239      }
23240
23241      return chars;
23242
23243    default:
23244      // For other native event types, do nothing.
23245      return null;
23246  }
23247}
23248
23249/**
23250 * For browsers that do not provide the `textInput` event, extract the
23251 * appropriate string to use for SyntheticInputEvent.
23252 *
23253 * @param {string} topLevelType Record from `EventConstants`.
23254 * @param {object} nativeEvent Native browser event.
23255 * @return {?string} The fallback string for this `beforeInput` event.
23256 */
23257function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
23258  // If we are currently composing (IME) and using a fallback to do so,
23259  // try to extract the composed characters from the fallback object.
23260  // If composition event is available, we extract a string only at
23261  // compositionevent, otherwise extract it at fallback events.
23262  if (currentComposition) {
23263    if (topLevelType === 'topCompositionEnd' || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {
23264      var chars = currentComposition.getData();
23265      FallbackCompositionState.release(currentComposition);
23266      currentComposition = null;
23267      return chars;
23268    }
23269    return null;
23270  }
23271
23272  switch (topLevelType) {
23273    case 'topPaste':
23274      // If a paste event occurs after a keypress, throw out the input
23275      // chars. Paste events should not lead to BeforeInput events.
23276      return null;
23277    case 'topKeyPress':
23278      /**
23279       * As of v27, Firefox may fire keypress events even when no character
23280       * will be inserted. A few possibilities:
23281       *
23282       * - `which` is `0`. Arrow keys, Esc key, etc.
23283       *
23284       * - `which` is the pressed key code, but no char is available.
23285       *   Ex: 'AltGr + d` in Polish. There is no modified character for
23286       *   this key combination and no character is inserted into the
23287       *   document, but FF fires the keypress for char code `100` anyway.
23288       *   No `input` event will occur.
23289       *
23290       * - `which` is the pressed key code, but a command combination is
23291       *   being used. Ex: `Cmd+C`. No character is inserted, and no
23292       *   `input` event will occur.
23293       */
23294      if (nativeEvent.which && !isKeypressCommand(nativeEvent)) {
23295        return String.fromCharCode(nativeEvent.which);
23296      }
23297      return null;
23298    case 'topCompositionEnd':
23299      return useFallbackCompositionData ? null : nativeEvent.data;
23300    default:
23301      return null;
23302  }
23303}
23304
23305/**
23306 * Extract a SyntheticInputEvent for `beforeInput`, based on either native
23307 * `textInput` or fallback behavior.
23308 *
23309 * @return {?object} A SyntheticInputEvent.
23310 */
23311function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
23312  var chars;
23313
23314  if (canUseTextInputEvent) {
23315    chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
23316  } else {
23317    chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
23318  }
23319
23320  // If no characters are being inserted, no BeforeInput event should
23321  // be fired.
23322  if (!chars) {
23323    return null;
23324  }
23325
23326  var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);
23327
23328  event.data = chars;
23329  EventPropagators.accumulateTwoPhaseDispatches(event);
23330  return event;
23331}
23332
23333/**
23334 * Create an `onBeforeInput` event to match
23335 * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
23336 *
23337 * This event plugin is based on the native `textInput` event
23338 * available in Chrome, Safari, Opera, and IE. This event fires after
23339 * `onKeyPress` and `onCompositionEnd`, but before `onInput`.
23340 *
23341 * `beforeInput` is spec'd but not implemented in any browsers, and
23342 * the `input` event does not provide any useful information about what has
23343 * actually been added, contrary to the spec. Thus, `textInput` is the best
23344 * available event to identify the characters that have actually been inserted
23345 * into the target node.
23346 *
23347 * This plugin is also responsible for emitting `composition` events, thus
23348 * allowing us to share composition fallback code for both `beforeInput` and
23349 * `composition` event types.
23350 */
23351var BeforeInputEventPlugin = {
23352  eventTypes: eventTypes,
23353
23354  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
23355    return [extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget), extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget)];
23356  }
23357};
23358
23359module.exports = BeforeInputEventPlugin;
23360
23361/***/ }),
23362/* 453 */
23363/***/ (function(module, exports, __webpack_require__) {
23364
23365"use strict";
23366/**
23367 * Copyright (c) 2013-present, Facebook, Inc.
23368 *
23369 * This source code is licensed under the MIT license found in the
23370 * LICENSE file in the root directory of this source tree.
23371 *
23372 */
23373
23374
23375
23376var _assign = __webpack_require__(10);
23377
23378var PooledClass = __webpack_require__(60);
23379
23380var getTextContentAccessor = __webpack_require__(198);
23381
23382/**
23383 * This helper class stores information about text content of a target node,
23384 * allowing comparison of content before and after a given event.
23385 *
23386 * Identify the node where selection currently begins, then observe
23387 * both its text content and its current position in the DOM. Since the
23388 * browser may natively replace the target node during composition, we can
23389 * use its position to find its replacement.
23390 *
23391 * @param {DOMEventTarget} root
23392 */
23393function FallbackCompositionState(root) {
23394  this._root = root;
23395  this._startText = this.getText();
23396  this._fallbackText = null;
23397}
23398
23399_assign(FallbackCompositionState.prototype, {
23400  destructor: function () {
23401    this._root = null;
23402    this._startText = null;
23403    this._fallbackText = null;
23404  },
23405
23406  /**
23407   * Get current text of input.
23408   *
23409   * @return {string}
23410   */
23411  getText: function () {
23412    if ('value' in this._root) {
23413      return this._root.value;
23414    }
23415    return this._root[getTextContentAccessor()];
23416  },
23417
23418  /**
23419   * Determine the differing substring between the initially stored
23420   * text content and the current content.
23421   *
23422   * @return {string}
23423   */
23424  getData: function () {
23425    if (this._fallbackText) {
23426      return this._fallbackText;
23427    }
23428
23429    var start;
23430    var startValue = this._startText;
23431    var startLength = startValue.length;
23432    var end;
23433    var endValue = this.getText();
23434    var endLength = endValue.length;
23435
23436    for (start = 0; start < startLength; start++) {
23437      if (startValue[start] !== endValue[start]) {
23438        break;
23439      }
23440    }
23441
23442    var minEnd = startLength - start;
23443    for (end = 1; end <= minEnd; end++) {
23444      if (startValue[startLength - end] !== endValue[endLength - end]) {
23445        break;
23446      }
23447    }
23448
23449    var sliceTail = end > 1 ? 1 - end : undefined;
23450    this._fallbackText = endValue.slice(start, sliceTail);
23451    return this._fallbackText;
23452  }
23453});
23454
23455PooledClass.addPoolingTo(FallbackCompositionState);
23456
23457module.exports = FallbackCompositionState;
23458
23459/***/ }),
23460/* 454 */
23461/***/ (function(module, exports, __webpack_require__) {
23462
23463"use strict";
23464/**
23465 * Copyright (c) 2013-present, Facebook, Inc.
23466 *
23467 * This source code is licensed under the MIT license found in the
23468 * LICENSE file in the root directory of this source tree.
23469 *
23470 */
23471
23472
23473
23474var SyntheticEvent = __webpack_require__(43);
23475
23476/**
23477 * @interface Event
23478 * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents
23479 */
23480var CompositionEventInterface = {
23481  data: null
23482};
23483
23484/**
23485 * @param {object} dispatchConfig Configuration used to dispatch this event.
23486 * @param {string} dispatchMarker Marker identifying the event target.
23487 * @param {object} nativeEvent Native browser event.
23488 * @extends {SyntheticUIEvent}
23489 */
23490function SyntheticCompositionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
23491  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
23492}
23493
23494SyntheticEvent.augmentClass(SyntheticCompositionEvent, CompositionEventInterface);
23495
23496module.exports = SyntheticCompositionEvent;
23497
23498/***/ }),
23499/* 455 */
23500/***/ (function(module, exports, __webpack_require__) {
23501
23502"use strict";
23503/**
23504 * Copyright (c) 2013-present, Facebook, Inc.
23505 *
23506 * This source code is licensed under the MIT license found in the
23507 * LICENSE file in the root directory of this source tree.
23508 *
23509 */
23510
23511
23512
23513var SyntheticEvent = __webpack_require__(43);
23514
23515/**
23516 * @interface Event
23517 * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105
23518 *      /#events-inputevents
23519 */
23520var InputEventInterface = {
23521  data: null
23522};
23523
23524/**
23525 * @param {object} dispatchConfig Configuration used to dispatch this event.
23526 * @param {string} dispatchMarker Marker identifying the event target.
23527 * @param {object} nativeEvent Native browser event.
23528 * @extends {SyntheticUIEvent}
23529 */
23530function SyntheticInputEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
23531  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
23532}
23533
23534SyntheticEvent.augmentClass(SyntheticInputEvent, InputEventInterface);
23535
23536module.exports = SyntheticInputEvent;
23537
23538/***/ }),
23539/* 456 */
23540/***/ (function(module, exports, __webpack_require__) {
23541
23542"use strict";
23543/**
23544 * Copyright (c) 2013-present, Facebook, Inc.
23545 *
23546 * This source code is licensed under the MIT license found in the
23547 * LICENSE file in the root directory of this source tree.
23548 *
23549 */
23550
23551
23552
23553var EventPluginHub = __webpack_require__(77);
23554var EventPropagators = __webpack_require__(76);
23555var ExecutionEnvironment = __webpack_require__(16);
23556var ReactDOMComponentTree = __webpack_require__(14);
23557var ReactUpdates = __webpack_require__(40);
23558var SyntheticEvent = __webpack_require__(43);
23559
23560var inputValueTracking = __webpack_require__(201);
23561var getEventTarget = __webpack_require__(139);
23562var isEventSupported = __webpack_require__(140);
23563var isTextInputElement = __webpack_require__(202);
23564
23565var eventTypes = {
23566  change: {
23567    phasedRegistrationNames: {
23568      bubbled: 'onChange',
23569      captured: 'onChangeCapture'
23570    },
23571    dependencies: ['topBlur', 'topChange', 'topClick', 'topFocus', 'topInput', 'topKeyDown', 'topKeyUp', 'topSelectionChange']
23572  }
23573};
23574
23575function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
23576  var event = SyntheticEvent.getPooled(eventTypes.change, inst, nativeEvent, target);
23577  event.type = 'change';
23578  EventPropagators.accumulateTwoPhaseDispatches(event);
23579  return event;
23580}
23581/**
23582 * For IE shims
23583 */
23584var activeElement = null;
23585var activeElementInst = null;
23586
23587/**
23588 * SECTION: handle `change` event
23589 */
23590function shouldUseChangeEvent(elem) {
23591  var nodeName = elem.nodeName && elem.nodeName.toLowerCase();
23592  return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';
23593}
23594
23595var doesChangeEventBubble = false;
23596if (ExecutionEnvironment.canUseDOM) {
23597  // See `handleChange` comment below
23598  doesChangeEventBubble = isEventSupported('change') && (!document.documentMode || document.documentMode > 8);
23599}
23600
23601function manualDispatchChangeEvent(nativeEvent) {
23602  var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));
23603
23604  // If change and propertychange bubbled, we'd just bind to it like all the
23605  // other events and have it go through ReactBrowserEventEmitter. Since it
23606  // doesn't, we manually listen for the events and so we have to enqueue and
23607  // process the abstract event manually.
23608  //
23609  // Batching is necessary here in order to ensure that all event handlers run
23610  // before the next rerender (including event handlers attached to ancestor
23611  // elements instead of directly on the input). Without this, controlled
23612  // components don't work properly in conjunction with event bubbling because
23613  // the component is rerendered and the value reverted before all the event
23614  // handlers can run. See https://github.com/facebook/react/issues/708.
23615  ReactUpdates.batchedUpdates(runEventInBatch, event);
23616}
23617
23618function runEventInBatch(event) {
23619  EventPluginHub.enqueueEvents(event);
23620  EventPluginHub.processEventQueue(false);
23621}
23622
23623function startWatchingForChangeEventIE8(target, targetInst) {
23624  activeElement = target;
23625  activeElementInst = targetInst;
23626  activeElement.attachEvent('onchange', manualDispatchChangeEvent);
23627}
23628
23629function stopWatchingForChangeEventIE8() {
23630  if (!activeElement) {
23631    return;
23632  }
23633  activeElement.detachEvent('onchange', manualDispatchChangeEvent);
23634  activeElement = null;
23635  activeElementInst = null;
23636}
23637
23638function getInstIfValueChanged(targetInst, nativeEvent) {
23639  var updated = inputValueTracking.updateValueIfChanged(targetInst);
23640  var simulated = nativeEvent.simulated === true && ChangeEventPlugin._allowSimulatedPassThrough;
23641
23642  if (updated || simulated) {
23643    return targetInst;
23644  }
23645}
23646
23647function getTargetInstForChangeEvent(topLevelType, targetInst) {
23648  if (topLevelType === 'topChange') {
23649    return targetInst;
23650  }
23651}
23652
23653function handleEventsForChangeEventIE8(topLevelType, target, targetInst) {
23654  if (topLevelType === 'topFocus') {
23655    // stopWatching() should be a noop here but we call it just in case we
23656    // missed a blur event somehow.
23657    stopWatchingForChangeEventIE8();
23658    startWatchingForChangeEventIE8(target, targetInst);
23659  } else if (topLevelType === 'topBlur') {
23660    stopWatchingForChangeEventIE8();
23661  }
23662}
23663
23664/**
23665 * SECTION: handle `input` event
23666 */
23667var isInputEventSupported = false;
23668if (ExecutionEnvironment.canUseDOM) {
23669  // IE9 claims to support the input event but fails to trigger it when
23670  // deleting text, so we ignore its input events.
23671
23672  isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);
23673}
23674
23675/**
23676 * (For IE <=9) Starts tracking propertychange events on the passed-in element
23677 * and override the value property so that we can distinguish user events from
23678 * value changes in JS.
23679 */
23680function startWatchingForValueChange(target, targetInst) {
23681  activeElement = target;
23682  activeElementInst = targetInst;
23683  activeElement.attachEvent('onpropertychange', handlePropertyChange);
23684}
23685
23686/**
23687 * (For IE <=9) Removes the event listeners from the currently-tracked element,
23688 * if any exists.
23689 */
23690function stopWatchingForValueChange() {
23691  if (!activeElement) {
23692    return;
23693  }
23694  activeElement.detachEvent('onpropertychange', handlePropertyChange);
23695
23696  activeElement = null;
23697  activeElementInst = null;
23698}
23699
23700/**
23701 * (For IE <=9) Handles a propertychange event, sending a `change` event if
23702 * the value of the active element has changed.
23703 */
23704function handlePropertyChange(nativeEvent) {
23705  if (nativeEvent.propertyName !== 'value') {
23706    return;
23707  }
23708  if (getInstIfValueChanged(activeElementInst, nativeEvent)) {
23709    manualDispatchChangeEvent(nativeEvent);
23710  }
23711}
23712
23713function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
23714  if (topLevelType === 'topFocus') {
23715    // In IE8, we can capture almost all .value changes by adding a
23716    // propertychange handler and looking for events with propertyName
23717    // equal to 'value'
23718    // In IE9, propertychange fires for most input events but is buggy and
23719    // doesn't fire when text is deleted, but conveniently, selectionchange
23720    // appears to fire in all of the remaining cases so we catch those and
23721    // forward the event if the value has changed
23722    // In either case, we don't want to call the event handler if the value
23723    // is changed from JS so we redefine a setter for `.value` that updates
23724    // our activeElementValue variable, allowing us to ignore those changes
23725    //
23726    // stopWatching() should be a noop here but we call it just in case we
23727    // missed a blur event somehow.
23728    stopWatchingForValueChange();
23729    startWatchingForValueChange(target, targetInst);
23730  } else if (topLevelType === 'topBlur') {
23731    stopWatchingForValueChange();
23732  }
23733}
23734
23735// For IE8 and IE9.
23736function getTargetInstForInputEventPolyfill(topLevelType, targetInst, nativeEvent) {
23737  if (topLevelType === 'topSelectionChange' || topLevelType === 'topKeyUp' || topLevelType === 'topKeyDown') {
23738    // On the selectionchange event, the target is just document which isn't
23739    // helpful for us so just check activeElement instead.
23740    //
23741    // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
23742    // propertychange on the first input event after setting `value` from a
23743    // script and fires only keydown, keypress, keyup. Catching keyup usually
23744    // gets it and catching keydown lets us fire an event for the first
23745    // keystroke if user does a key repeat (it'll be a little delayed: right
23746    // before the second keystroke). Other input methods (e.g., paste) seem to
23747    // fire selectionchange normally.
23748    return getInstIfValueChanged(activeElementInst, nativeEvent);
23749  }
23750}
23751
23752/**
23753 * SECTION: handle `click` event
23754 */
23755function shouldUseClickEvent(elem) {
23756  // Use the `click` event to detect changes to checkbox and radio inputs.
23757  // This approach works across all browsers, whereas `change` does not fire
23758  // until `blur` in IE8.
23759  var nodeName = elem.nodeName;
23760  return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
23761}
23762
23763function getTargetInstForClickEvent(topLevelType, targetInst, nativeEvent) {
23764  if (topLevelType === 'topClick') {
23765    return getInstIfValueChanged(targetInst, nativeEvent);
23766  }
23767}
23768
23769function getTargetInstForInputOrChangeEvent(topLevelType, targetInst, nativeEvent) {
23770  if (topLevelType === 'topInput' || topLevelType === 'topChange') {
23771    return getInstIfValueChanged(targetInst, nativeEvent);
23772  }
23773}
23774
23775function handleControlledInputBlur(inst, node) {
23776  // TODO: In IE, inst is occasionally null. Why?
23777  if (inst == null) {
23778    return;
23779  }
23780
23781  // Fiber and ReactDOM keep wrapper state in separate places
23782  var state = inst._wrapperState || node._wrapperState;
23783
23784  if (!state || !state.controlled || node.type !== 'number') {
23785    return;
23786  }
23787
23788  // If controlled, assign the value attribute to the current value on blur
23789  var value = '' + node.value;
23790  if (node.getAttribute('value') !== value) {
23791    node.setAttribute('value', value);
23792  }
23793}
23794
23795/**
23796 * This plugin creates an `onChange` event that normalizes change events
23797 * across form elements. This event fires at a time when it's possible to
23798 * change the element's value without seeing a flicker.
23799 *
23800 * Supported elements are:
23801 * - input (see `isTextInputElement`)
23802 * - textarea
23803 * - select
23804 */
23805var ChangeEventPlugin = {
23806  eventTypes: eventTypes,
23807
23808  _allowSimulatedPassThrough: true,
23809  _isInputEventSupported: isInputEventSupported,
23810
23811  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
23812    var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;
23813
23814    var getTargetInstFunc, handleEventFunc;
23815    if (shouldUseChangeEvent(targetNode)) {
23816      if (doesChangeEventBubble) {
23817        getTargetInstFunc = getTargetInstForChangeEvent;
23818      } else {
23819        handleEventFunc = handleEventsForChangeEventIE8;
23820      }
23821    } else if (isTextInputElement(targetNode)) {
23822      if (isInputEventSupported) {
23823        getTargetInstFunc = getTargetInstForInputOrChangeEvent;
23824      } else {
23825        getTargetInstFunc = getTargetInstForInputEventPolyfill;
23826        handleEventFunc = handleEventsForInputEventPolyfill;
23827      }
23828    } else if (shouldUseClickEvent(targetNode)) {
23829      getTargetInstFunc = getTargetInstForClickEvent;
23830    }
23831
23832    if (getTargetInstFunc) {
23833      var inst = getTargetInstFunc(topLevelType, targetInst, nativeEvent);
23834      if (inst) {
23835        var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);
23836        return event;
23837      }
23838    }
23839
23840    if (handleEventFunc) {
23841      handleEventFunc(topLevelType, targetNode, targetInst);
23842    }
23843
23844    // When blurring, set the value attribute for number inputs
23845    if (topLevelType === 'topBlur') {
23846      handleControlledInputBlur(targetInst, targetNode);
23847    }
23848  }
23849};
23850
23851module.exports = ChangeEventPlugin;
23852
23853/***/ }),
23854/* 457 */
23855/***/ (function(module, exports, __webpack_require__) {
23856
23857"use strict";
23858/**
23859 * Copyright (c) 2013-present, Facebook, Inc.
23860 *
23861 * This source code is licensed under the MIT license found in the
23862 * LICENSE file in the root directory of this source tree.
23863 *
23864 * 
23865 */
23866
23867
23868
23869var ReactOwner = __webpack_require__(458);
23870
23871var ReactRef = {};
23872
23873function attachRef(ref, component, owner) {
23874  if (typeof ref === 'function') {
23875    ref(component.getPublicInstance());
23876  } else {
23877    // Legacy ref
23878    ReactOwner.addComponentAsRefTo(component, ref, owner);
23879  }
23880}
23881
23882function detachRef(ref, component, owner) {
23883  if (typeof ref === 'function') {
23884    ref(null);
23885  } else {
23886    // Legacy ref
23887    ReactOwner.removeComponentAsRefFrom(component, ref, owner);
23888  }
23889}
23890
23891ReactRef.attachRefs = function (instance, element) {
23892  if (element === null || typeof element !== 'object') {
23893    return;
23894  }
23895  var ref = element.ref;
23896  if (ref != null) {
23897    attachRef(ref, instance, element._owner);
23898  }
23899};
23900
23901ReactRef.shouldUpdateRefs = function (prevElement, nextElement) {
23902  // If either the owner or a `ref` has changed, make sure the newest owner
23903  // has stored a reference to `this`, and the previous owner (if different)
23904  // has forgotten the reference to `this`. We use the element instead
23905  // of the public this.props because the post processing cannot determine
23906  // a ref. The ref conceptually lives on the element.
23907
23908  // TODO: Should this even be possible? The owner cannot change because
23909  // it's forbidden by shouldUpdateReactComponent. The ref can change
23910  // if you swap the keys of but not the refs. Reconsider where this check
23911  // is made. It probably belongs where the key checking and
23912  // instantiateReactComponent is done.
23913
23914  var prevRef = null;
23915  var prevOwner = null;
23916  if (prevElement !== null && typeof prevElement === 'object') {
23917    prevRef = prevElement.ref;
23918    prevOwner = prevElement._owner;
23919  }
23920
23921  var nextRef = null;
23922  var nextOwner = null;
23923  if (nextElement !== null && typeof nextElement === 'object') {
23924    nextRef = nextElement.ref;
23925    nextOwner = nextElement._owner;
23926  }
23927
23928  return prevRef !== nextRef ||
23929  // If owner changes but we have an unchanged function ref, don't update refs
23930  typeof nextRef === 'string' && nextOwner !== prevOwner;
23931};
23932
23933ReactRef.detachRefs = function (instance, element) {
23934  if (element === null || typeof element !== 'object') {
23935    return;
23936  }
23937  var ref = element.ref;
23938  if (ref != null) {
23939    detachRef(ref, instance, element._owner);
23940  }
23941};
23942
23943module.exports = ReactRef;
23944
23945/***/ }),
23946/* 458 */
23947/***/ (function(module, exports, __webpack_require__) {
23948
23949"use strict";
23950/* WEBPACK VAR INJECTION */(function(process) {/**
23951 * Copyright (c) 2013-present, Facebook, Inc.
23952 *
23953 * This source code is licensed under the MIT license found in the
23954 * LICENSE file in the root directory of this source tree.
23955 *
23956 * 
23957 */
23958
23959
23960
23961var _prodInvariant = __webpack_require__(8);
23962
23963var invariant = __webpack_require__(2);
23964
23965/**
23966 * @param {?object} object
23967 * @return {boolean} True if `object` is a valid owner.
23968 * @final
23969 */
23970function isValidOwner(object) {
23971  return !!(object && typeof object.attachRef === 'function' && typeof object.detachRef === 'function');
23972}
23973
23974/**
23975 * ReactOwners are capable of storing references to owned components.
23976 *
23977 * All components are capable of //being// referenced by owner components, but
23978 * only ReactOwner components are capable of //referencing// owned components.
23979 * The named reference is known as a "ref".
23980 *
23981 * Refs are available when mounted and updated during reconciliation.
23982 *
23983 *   var MyComponent = React.createClass({
23984 *     render: function() {
23985 *       return (
23986 *         <div onClick={this.handleClick}>
23987 *           <CustomComponent ref="custom" />
23988 *         </div>
23989 *       );
23990 *     },
23991 *     handleClick: function() {
23992 *       this.refs.custom.handleClick();
23993 *     },
23994 *     componentDidMount: function() {
23995 *       this.refs.custom.initialize();
23996 *     }
23997 *   });
23998 *
23999 * Refs should rarely be used. When refs are used, they should only be done to
24000 * control data that is not handled by React's data flow.
24001 *
24002 * @class ReactOwner
24003 */
24004var ReactOwner = {
24005  /**
24006   * Adds a component by ref to an owner component.
24007   *
24008   * @param {ReactComponent} component Component to reference.
24009   * @param {string} ref Name by which to refer to the component.
24010   * @param {ReactOwner} owner Component on which to record the ref.
24011   * @final
24012   * @internal
24013   */
24014  addComponentAsRefTo: function (component, ref, owner) {
24015    !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('119') : void 0;
24016    owner.attachRef(ref, component);
24017  },
24018
24019  /**
24020   * Removes a component by ref from an owner component.
24021   *
24022   * @param {ReactComponent} component Component to dereference.
24023   * @param {string} ref Name of the ref to remove.
24024   * @param {ReactOwner} owner Component on which the ref is recorded.
24025   * @final
24026   * @internal
24027   */
24028  removeComponentAsRefFrom: function (component, ref, owner) {
24029    !isValidOwner(owner) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component\'s `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner).') : _prodInvariant('12
240290') : void 0;
24030    var ownerPublicInstance = owner.getPublicInstance();
24031    // Check that `component`'s owner is still alive and that `component` is still the current ref
24032    // because we do not want to detach the ref if another component stole it.
24033    if (ownerPublicInstance && ownerPublicInstance.refs[ref] === component.getPublicInstance()) {
24034      owner.detachRef(ref);
24035    }
24036  }
24037};
24038
24039module.exports = ReactOwner;
24040/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24041
24042/***/ }),
24043/* 459 */
24044/***/ (function(module, exports, __webpack_require__) {
24045
24046"use strict";
24047/* WEBPACK VAR INJECTION */(function(process) {/**
24048 * Copyright (c) 2016-present, Facebook, Inc.
24049 *
24050 * This source code is licensed under the MIT license found in the
24051 * LICENSE file in the root directory of this source tree.
24052 *
24053 * 
24054 */
24055
24056
24057
24058var ReactInvalidSetStateWarningHook = __webpack_require__(460);
24059var ReactHostOperationHistoryHook = __webpack_require__(461);
24060var ReactComponentTreeHook = __webpack_require__(22);
24061var ExecutionEnvironment = __webpack_require__(16);
24062
24063var performanceNow = __webpack_require__(462);
24064var warning = __webpack_require__(3);
24065
24066var hooks = [];
24067var didHookThrowForEvent = {};
24068
24069function callHook(event, fn, context, arg1, arg2, arg3, arg4, arg5) {
24070  try {
24071    fn.call(context, arg1, arg2, arg3, arg4, arg5);
24072  } catch (e) {
24073    process.env.NODE_ENV !== 'production' ? warning(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack) : void 0;
24074    didHookThrowForEvent[event] = true;
24075  }
24076}
24077
24078function emitEvent(event, arg1, arg2, arg3, arg4, arg5) {
24079  for (var i = 0; i < hooks.length; i++) {
24080    var hook = hooks[i];
24081    var fn = hook[event];
24082    if (fn) {
24083      callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5);
24084    }
24085  }
24086}
24087
24088var isProfiling = false;
24089var flushHistory = [];
24090var lifeCycleTimerStack = [];
24091var currentFlushNesting = 0;
24092var currentFlushMeasurements = [];
24093var currentFlushStartTime = 0;
24094var currentTimerDebugID = null;
24095var currentTimerStartTime = 0;
24096var currentTimerNestedFlushDuration = 0;
24097var currentTimerType = null;
24098
24099var lifeCycleTimerHasWarned = false;
24100
24101function clearHistory() {
24102  ReactComponentTreeHook.purgeUnmountedComponents();
24103  ReactHostOperationHistoryHook.clearHistory();
24104}
24105
24106function getTreeSnapshot(registeredIDs) {
24107  return registeredIDs.reduce(function (tree, id) {
24108    var ownerID = ReactComponentTreeHook.getOwnerID(id);
24109    var parentID = ReactComponentTreeHook.getParentID(id);
24110    tree[id] = {
24111      displayName: ReactComponentTreeHook.getDisplayName(id),
24112      text: ReactComponentTreeHook.getText(id),
24113      updateCount: ReactComponentTreeHook.getUpdateCount(id),
24114      childIDs: ReactComponentTreeHook.getChildIDs(id),
24115      // Text nodes don't have owners but this is close enough.
24116      ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0,
24117      parentID: parentID
24118    };
24119    return tree;
24120  }, {});
24121}
24122
24123function resetMeasurements() {
24124  var previousStartTime = currentFlushStartTime;
24125  var previousMeasurements = currentFlushMeasurements;
24126  var previousOperations = ReactHostOperationHistoryHook.getHistory();
24127
24128  if (currentFlushNesting === 0) {
24129    currentFlushStartTime = 0;
24130    currentFlushMeasurements = [];
24131    clearHistory();
24132    return;
24133  }
24134
24135  if (previousMeasurements.length || previousOperations.length) {
24136    var registeredIDs = ReactComponentTreeHook.getRegisteredIDs();
24137    flushHistory.push({
24138      duration: performanceNow() - previousStartTime,
24139      measurements: previousMeasurements || [],
24140      operations: previousOperations || [],
24141      treeSnapshot: getTreeSnapshot(registeredIDs)
24142    });
24143  }
24144
24145  clearHistory();
24146  currentFlushStartTime = performanceNow();
24147  currentFlushMeasurements = [];
24148}
24149
24150function checkDebugID(debugID) {
24151  var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
24152
24153  if (allowRoot && debugID === 0) {
24154    return;
24155  }
24156  if (!debugID) {
24157    process.env.NODE_ENV !== 'production' ? warning(false, 'ReactDebugTool: debugID may not be empty.') : void 0;
24158  }
24159}
24160
24161function beginLifeCycleTimer(debugID, timerType) {
24162  if (currentFlushNesting === 0) {
24163    return;
24164  }
24165  if (currentTimerType && !lifeCycleTimerHasWarned) {
24166    process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'Did not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0;
24167    lifeCycleTimerHasWarned = true;
24168  }
24169  currentTimerStartTime = performanceNow();
24170  currentTimerNestedFlushDuration = 0;
24171  currentTimerDebugID = debugID;
24172  currentTimerType = timerType;
24173}
24174
24175function endLifeCycleTimer(debugID, timerType) {
24176  if (currentFlushNesting === 0) {
24177    return;
24178  }
24179  if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {
24180    process.env.NODE_ENV !== 'production' ? warning(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another') : void 0;
24181    lifeCycleTimerHasWarned = true;
24182  }
24183  if (isProfiling) {
24184    currentFlushMeasurements.push({
24185      timerType: timerType,
24186      instanceID: debugID,
24187      duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration
24188    });
24189  }
24190  currentTimerStartTime = 0;
24191  currentTimerNestedFlushDuration = 0;
24192  currentTimerDebugID = null;
24193  currentTimerType = null;
24194}
24195
24196function pauseCurrentLifeCycleTimer() {
24197  var currentTimer = {
24198    startTime: currentTimerStartTime,
24199    nestedFlushStartTime: performanceNow(),
24200    debugID: currentTimerDebugID,
24201    timerType: currentTimerType
24202  };
24203  lifeCycleTimerStack.push(currentTimer);
24204  currentTimerStartTime = 0;
24205  currentTimerNestedFlushDuration = 0;
24206  currentTimerDebugID = null;
24207  currentTimerType = null;
24208}
24209
24210function resumeCurrentLifeCycleTimer() {
24211  var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),
24212      startTime = _lifeCycleTimerStack$.startTime,
24213      nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,
24214      debugID = _lifeCycleTimerStack$.debugID,
24215      timerType = _lifeCycleTimerStack$.timerType;
24216
24217  var nestedFlushDuration = performanceNow() - nestedFlushStartTime;
24218  currentTimerStartTime = startTime;
24219  currentTimerNestedFlushDuration += nestedFlushDuration;
24220  currentTimerDebugID = debugID;
24221  currentTimerType = timerType;
24222}
24223
24224var lastMarkTimeStamp = 0;
24225var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';
24226
24227function shouldMark(debugID) {
24228  if (!isProfiling || !canUsePerformanceMeasure) {
24229    return false;
24230  }
24231  var element = ReactComponentTreeHook.getElement(debugID);
24232  if (element == null || typeof element !== 'object') {
24233    return false;
24234  }
24235  var isHostElement = typeof element.type === 'string';
24236  if (isHostElement) {
24237    return false;
24238  }
24239  return true;
24240}
24241
24242function markBegin(debugID, markType) {
24243  if (!shouldMark(debugID)) {
24244    return;
24245  }
24246
24247  var markName = debugID + '::' + markType;
24248  lastMarkTimeStamp = performanceNow();
24249  performance.mark(markName);
24250}
24251
24252function markEnd(debugID, markType) {
24253  if (!shouldMark(debugID)) {
24254    return;
24255  }
24256
24257  var markName = debugID + '::' + markType;
24258  var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';
24259
24260  // Chrome has an issue of dropping markers recorded too fast:
24261  // https://bugs.chromium.org/p/chromium/issues/detail?id=640652
24262  // To work around this, we will not report very small measurements.
24263  // I determined the magic number by tweaking it back and forth.
24264  // 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe.
24265  // When the bug is fixed, we can `measure()` unconditionally if we want to.
24266  var timeStamp = performanceNow();
24267  if (timeStamp - lastMarkTimeStamp > 0.1) {
24268    var measurementName = displayName + ' [' + markType + ']';
24269    performance.measure(measurementName, markName);
24270  }
24271
24272  performance.clearMarks(markName);
24273  if (measurementName) {
24274    performance.clearMeasures(measurementName);
24275  }
24276}
24277
24278var ReactDebugTool = {
24279  addHook: function (hook) {
24280    hooks.push(hook);
24281  },
24282  removeHook: function (hook) {
24283    for (var i = 0; i < hooks.length; i++) {
24284      if (hooks[i] === hook) {
24285        hooks.splice(i, 1);
24286        i--;
24287      }
24288    }
24289  },
24290  isProfiling: function () {
24291    return isProfiling;
24292  },
24293  beginProfiling: function () {
24294    if (isProfiling) {
24295      return;
24296    }
24297
24298    isProfiling = true;
24299    flushHistory.length = 0;
24300    resetMeasurements();
24301    ReactDebugTool.addHook(ReactHostOperationHistoryHook);
24302  },
24303  endProfiling: function () {
24304    if (!isProfiling) {
24305      return;
24306    }
24307
24308    isProfiling = false;
24309    resetMeasurements();
24310    ReactDebugTool.removeHook(ReactHostOperationHistoryHook);
24311  },
24312  getFlushHistory: function () {
24313    return flushHistory;
24314  },
24315  onBeginFlush: function () {
24316    currentFlushNesting++;
24317    resetMeasurements();
24318    pauseCurrentLifeCycleTimer();
24319    emitEvent('onBeginFlush');
24320  },
24321  onEndFlush: function () {
24322    resetMeasurements();
24323    currentFlushNesting--;
24324    resumeCurrentLifeCycleTimer();
24325    emitEvent('onEndFlush');
24326  },
24327  onBeginLifeCycleTimer: function (debugID, timerType) {
24328    checkDebugID(debugID);
24329    emitEvent('onBeginLifeCycleTimer', debugID, timerType);
24330    markBegin(debugID, timerType);
24331    beginLifeCycleTimer(debugID, timerType);
24332  },
24333  onEndLifeCycleTimer: function (debugID, timerType) {
24334    checkDebugID(debugID);
24335    endLifeCycleTimer(debugID, timerType);
24336    markEnd(debugID, timerType);
24337    emitEvent('onEndLifeCycleTimer', debugID, timerType);
24338  },
24339  onBeginProcessingChildContext: function () {
24340    emitEvent('onBeginProcessingChildContext');
24341  },
24342  onEndProcessingChildContext: function () {
24343    emitEvent('onEndProcessingChildContext');
24344  },
24345  onHostOperation: function (operation) {
24346    checkDebugID(operation.instanceID);
24347    emitEvent('onHostOperation', operation);
24348  },
24349  onSetState: function () {
24350    emitEvent('onSetState');
24351  },
24352  onSetChildren: function (debugID, childDebugIDs) {
24353    checkDebugID(debugID);
24354    childDebugIDs.forEach(checkDebugID);
24355    emitEvent('onSetChildren', debugID, childDebugIDs);
24356  },
24357  onBeforeMountComponent: function (debugID, element, parentDebugID) {
24358    checkDebugID(debugID);
24359    checkDebugID(parentDebugID, true);
24360    emitEvent('onBeforeMountComponent', debugID, element, parentDebugID);
24361    markBegin(debugID, 'mount');
24362  },
24363  onMountComponent: function (debugID) {
24364    checkDebugID(debugID);
24365    markEnd(debugID, 'mount');
24366    emitEvent('onMountComponent', debugID);
24367  },
24368  onBeforeUpdateComponent: function (debugID, element) {
24369    checkDebugID(debugID);
24370    emitEvent('onBeforeUpdateComponent', debugID, element);
24371    markBegin(debugID, 'update');
24372  },
24373  onUpdateComponent: function (debugID) {
24374    checkDebugID(debugID);
24375    markEnd(debugID, 'update');
24376    emitEvent('onUpdateComponent', debugID);
24377  },
24378  onBeforeUnmountComponent: function (debugID) {
24379    checkDebugID(debugID);
24380    emitEvent('onBeforeUnmountComponent', debugID);
24381    markBegin(debugID, 'unmount');
24382  },
24383  onUnmountComponent: function (debugID) {
24384    checkDebugID(debugID);
24385    markEnd(debugID, 'unmount');
24386    emitEvent('onUnmountComponent', debugID);
24387  },
24388  onTestEvent: function () {
24389    emitEvent('onTestEvent');
24390  }
24391};
24392
24393// TODO remove these when RN/www gets updated
24394ReactDebugTool.addDevtool = ReactDebugTool.addHook;
24395ReactDebugTool.removeDevtool = ReactDebugTool.removeHook;
24396
24397ReactDebugTool.addHook(ReactInvalidSetStateWarningHook);
24398ReactDebugTool.addHook(ReactComponentTreeHook);
24399var url = ExecutionEnvironment.canUseDOM && window.location.href || '';
24400if (/[?&]react_perf\b/.test(url)) {
24401  ReactDebugTool.beginProfiling();
24402}
24403
24404module.exports = ReactDebugTool;
24405/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24406
24407/***/ }),
24408/* 460 */
24409/***/ (function(module, exports, __webpack_require__) {
24410
24411"use strict";
24412/* WEBPACK VAR INJECTION */(function(process) {/**
24413 * Copyright (c) 2016-present, Facebook, Inc.
24414 *
24415 * This source code is licensed under the MIT license found in the
24416 * LICENSE file in the root directory of this source tree.
24417 *
24418 * 
24419 */
24420
24421
24422
24423var warning = __webpack_require__(3);
24424
24425if (process.env.NODE_ENV !== 'production') {
24426  var processingChildContext = false;
24427
24428  var warnInvalidSetState = function () {
24429    process.env.NODE_ENV !== 'production' ? warning(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()') : void 0;
24430  };
24431}
24432
24433var ReactInvalidSetStateWarningHook = {
24434  onBeginProcessingChildContext: function () {
24435    processingChildContext = true;
24436  },
24437  onEndProcessingChildContext: function () {
24438    processingChildContext = false;
24439  },
24440  onSetState: function () {
24441    warnInvalidSetState();
24442  }
24443};
24444
24445module.exports = ReactInvalidSetStateWarningHook;
24446/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24447
24448/***/ }),
24449/* 461 */
24450/***/ (function(module, exports, __webpack_require__) {
24451
24452"use strict";
24453/**
24454 * Copyright (c) 2016-present, Facebook, Inc.
24455 *
24456 * This source code is licensed under the MIT license found in the
24457 * LICENSE file in the root directory of this source tree.
24458 *
24459 * 
24460 */
24461
24462
24463
24464var history = [];
24465
24466var ReactHostOperationHistoryHook = {
24467  onHostOperation: function (operation) {
24468    history.push(operation);
24469  },
24470  clearHistory: function () {
24471    if (ReactHostOperationHistoryHook._preventClearing) {
24472      // Should only be used for tests.
24473      return;
24474    }
24475
24476    history = [];
24477  },
24478  getHistory: function () {
24479    return history;
24480  }
24481};
24482
24483module.exports = ReactHostOperationHistoryHook;
24484
24485/***/ }),
24486/* 462 */
24487/***/ (function(module, exports, __webpack_require__) {
24488
24489"use strict";
24490
24491
24492/**
24493 * Copyright (c) 2013-present, Facebook, Inc.
24494 *
24495 * This source code is licensed under the MIT license found in the
24496 * LICENSE file in the root directory of this source tree.
24497 *
24498 * @typechecks
24499 */
24500
24501var performance = __webpack_require__(463);
24502
24503var performanceNow;
24504
24505/**
24506 * Detect if we can use `window.performance.now()` and gracefully fallback to
24507 * `Date.now()` if it doesn't exist. We need to support Firefox < 15 for now
24508 * because of Facebook's testing infrastructure.
24509 */
24510if (performance.now) {
24511  performanceNow = function performanceNow() {
24512    return performance.now();
24513  };
24514} else {
24515  performanceNow = function performanceNow() {
24516    return Date.now();
24517  };
24518}
24519
24520module.exports = performanceNow;
24521
24522/***/ }),
24523/* 463 */
24524/***/ (function(module, exports, __webpack_require__) {
24525
24526"use strict";
24527/**
24528 * Copyright (c) 2013-present, Facebook, Inc.
24529 *
24530 * This source code is licensed under the MIT license found in the
24531 * LICENSE file in the root directory of this source tree.
24532 *
24533 * @typechecks
24534 */
24535
24536
24537
24538var ExecutionEnvironment = __webpack_require__(16);
24539
24540var performance;
24541
24542if (ExecutionEnvironment.canUseDOM) {
24543  performance = window.performance || window.msPerformance || window.webkitPerformance;
24544}
24545
24546module.exports = performance || {};
24547
24548/***/ }),
24549/* 464 */
24550/***/ (function(module, exports, __webpack_require__) {
24551
24552"use strict";
24553/**
24554 * Copyright (c) 2013-present, Facebook, Inc.
24555 *
24556 * This source code is licensed under the MIT license found in the
24557 * LICENSE file in the root directory of this source tree.
24558 *
24559 */
24560
24561
24562
24563/**
24564 * Module that is injectable into `EventPluginHub`, that specifies a
24565 * deterministic ordering of `EventPlugin`s. A convenient way to reason about
24566 * plugins, without having to package every one of them. This is better than
24567 * having plugins be ordered in the same order that they are injected because
24568 * that ordering would be influenced by the packaging order.
24569 * `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that
24570 * preventing default on events is convenient in `SimpleEventPlugin` handlers.
24571 */
24572
24573var DefaultEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'TapEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];
24574
24575module.exports = DefaultEventPluginOrder;
24576
24577/***/ }),
24578/* 465 */
24579/***/ (function(module, exports, __webpack_require__) {
24580
24581"use strict";
24582/**
24583 * Copyright (c) 2013-present, Facebook, Inc.
24584 *
24585 * This source code is licensed under the MIT license found in the
24586 * LICENSE file in the root directory of this source tree.
24587 *
24588 */
24589
24590
24591
24592var EventPropagators = __webpack_require__(76);
24593var ReactDOMComponentTree = __webpack_require__(14);
24594var SyntheticMouseEvent = __webpack_require__(101);
24595
24596var eventTypes = {
24597  mouseEnter: {
24598    registrationName: 'onMouseEnter',
24599    dependencies: ['topMouseOut', 'topMouseOver']
24600  },
24601  mouseLeave: {
24602    registrationName: 'onMouseLeave',
24603    dependencies: ['topMouseOut', 'topMouseOver']
24604  }
24605};
24606
24607var EnterLeaveEventPlugin = {
24608  eventTypes: eventTypes,
24609
24610  /**
24611   * For almost every interaction we care about, there will be both a top-level
24612   * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that
24613   * we do not extract duplicate events. However, moving the mouse into the
24614   * browser from outside will not fire a `mouseout` event. In this case, we use
24615   * the `mouseover` top-level event.
24616   */
24617  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
24618    if (topLevelType === 'topMouseOver' && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {
24619      return null;
24620    }
24621    if (topLevelType !== 'topMouseOut' && topLevelType !== 'topMouseOver') {
24622      // Must not be a mouse in or mouse out - ignoring.
24623      return null;
24624    }
24625
24626    var win;
24627    if (nativeEventTarget.window === nativeEventTarget) {
24628      // `nativeEventTarget` is probably a window object.
24629      win = nativeEventTarget;
24630    } else {
24631      // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
24632      var doc = nativeEventTarget.ownerDocument;
24633      if (doc) {
24634        win = doc.defaultView || doc.parentWindow;
24635      } else {
24636        win = window;
24637      }
24638    }
24639
24640    var from;
24641    var to;
24642    if (topLevelType === 'topMouseOut') {
24643      from = targetInst;
24644      var related = nativeEvent.relatedTarget || nativeEvent.toElement;
24645      to = related ? ReactDOMComponentTree.getClosestInstanceFromNode(related) : null;
24646    } else {
24647      // Moving to a node from outside the window.
24648      from = null;
24649      to = targetInst;
24650    }
24651
24652    if (from === to) {
24653      // Nothing pertains to our managed components.
24654      return null;
24655    }
24656
24657    var fromNode = from == null ? win : ReactDOMComponentTree.getNodeFromInstance(from);
24658    var toNode = to == null ? win : ReactDOMComponentTree.getNodeFromInstance(to);
24659
24660    var leave = SyntheticMouseEvent.getPooled(eventTypes.mouseLeave, from, nativeEvent, nativeEventTarget);
24661    leave.type = 'mouseleave';
24662    leave.target = fromNode;
24663    leave.relatedTarget = toNode;
24664
24665    var enter = SyntheticMouseEvent.getPooled(eventTypes.mouseEnter, to, nativeEvent, nativeEventTarget);
24666    enter.type = 'mouseenter';
24667    enter.target = toNode;
24668    enter.relatedTarget = fromNode;
24669
24670    EventPropagators.accumulateEnterLeaveDispatches(leave, enter, from, to);
24671
24672    return [leave, enter];
24673  }
24674};
24675
24676module.exports = EnterLeaveEventPlugin;
24677
24678/***/ }),
24679/* 466 */
24680/***/ (function(module, exports, __webpack_require__) {
24681
24682"use strict";
24683/**
24684 * Copyright (c) 2013-present, Facebook, Inc.
24685 *
24686 * This source code is licensed under the MIT license found in the
24687 * LICENSE file in the root directory of this source tree.
24688 *
24689 */
24690
24691
24692
24693var DOMProperty = __webpack_require__(47);
24694
24695var MUST_USE_PROPERTY = DOMProperty.injection.MUST_USE_PROPERTY;
24696var HAS_BOOLEAN_VALUE = DOMProperty.injection.HAS_BOOLEAN_VALUE;
24697var HAS_NUMERIC_VALUE = DOMProperty.injection.HAS_NUMERIC_VALUE;
24698var HAS_POSITIVE_NUMERIC_VALUE = DOMProperty.injection.HAS_POSITIVE_NUMERIC_VALUE;
24699var HAS_OVERLOADED_BOOLEAN_VALUE = DOMProperty.injection.HAS_OVERLOADED_BOOLEAN_VALUE;
24700
24701var HTMLDOMPropertyConfig = {
24702  isCustomAttribute: RegExp.prototype.test.bind(new RegExp('^(data|aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$')),
24703  Properties: {
24704    /**
24705     * Standard Properties
24706     */
24707    accept: 0,
24708    acceptCharset: 0,
24709    accessKey: 0,
24710    action: 0,
24711    allowFullScreen: HAS_BOOLEAN_VALUE,
24712    allowTransparency: 0,
24713    alt: 0,
24714    // specifies target context for links with `preload` type
24715    as: 0,
24716    async: HAS_BOOLEAN_VALUE,
24717    autoComplete: 0,
24718    // autoFocus is polyfilled/normalized by AutoFocusUtils
24719    // autoFocus: HAS_BOOLEAN_VALUE,
24720    autoPlay: HAS_BOOLEAN_VALUE,
24721    capture: HAS_BOOLEAN_VALUE,
24722    cellPadding: 0,
24723    cellSpacing: 0,
24724    charSet: 0,
24725    challenge: 0,
24726    checked: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
24727    cite: 0,
24728    classID: 0,
24729    className: 0,
24730    cols: HAS_POSITIVE_NUMERIC_VALUE,
24731    colSpan: 0,
24732    content: 0,
24733    contentEditable: 0,
24734    contextMenu: 0,
24735    controls: HAS_BOOLEAN_VALUE,
24736    controlsList: 0,
24737    coords: 0,
24738    crossOrigin: 0,
24739    data: 0, // For `<object />` acts as `src`.
24740    dateTime: 0,
24741    'default': HAS_BOOLEAN_VALUE,
24742    defer: HAS_BOOLEAN_VALUE,
24743    dir: 0,
24744    disabled: HAS_BOOLEAN_VALUE,
24745    download: HAS_OVERLOADED_BOOLEAN_VALUE,
24746    draggable: 0,
24747    encType: 0,
24748    form: 0,
24749    formAction: 0,
24750    formEncType: 0,
24751    formMethod: 0,
24752    formNoValidate: HAS_BOOLEAN_VALUE,
24753    formTarget: 0,
24754    frameBorder: 0,
24755    headers: 0,
24756    height: 0,
24757    hidden: HAS_BOOLEAN_VALUE,
24758    high: 0,
24759    href: 0,
24760    hrefLang: 0,
24761    htmlFor: 0,
24762    httpEquiv: 0,
24763    icon: 0,
24764    id: 0,
24765    inputMode: 0,
24766    integrity: 0,
24767    is: 0,
24768    keyParams: 0,
24769    keyType: 0,
24770    kind: 0,
24771    label: 0,
24772    lang: 0,
24773    list: 0,
24774    loop: HAS_BOOLEAN_VALUE,
24775    low: 0,
24776    manifest: 0,
24777    marginHeight: 0,
24778    marginWidth: 0,
24779    max: 0,
24780    maxLength: 0,
24781    media: 0,
24782    mediaGroup: 0,
24783    method: 0,
24784    min: 0,
24785    minLength: 0,
24786    // Caution; `option.selected` is not updated if `select.multiple` is
24787    // disabled with `removeAttribute`.
24788    multiple: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
24789    muted: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
24790    name: 0,
24791    nonce: 0,
24792    noValidate: HAS_BOOLEAN_VALUE,
24793    open: HAS_BOOLEAN_VALUE,
24794    optimum: 0,
24795    pattern: 0,
24796    placeholder: 0,
24797    playsInline: HAS_BOOLEAN_VALUE,
24798    poster: 0,
24799    preload: 0,
24800    profile: 0,
24801    radioGroup: 0,
24802    readOnly: HAS_BOOLEAN_VALUE,
24803    referrerPolicy: 0,
24804    rel: 0,
24805    required: HAS_BOOLEAN_VALUE,
24806    reversed: HAS_BOOLEAN_VALUE,
24807    role: 0,
24808    rows: HAS_POSITIVE_NUMERIC_VALUE,
24809    rowSpan: HAS_NUMERIC_VALUE,
24810    sandbox: 0,
24811    scope: 0,
24812    scoped: HAS_BOOLEAN_VALUE,
24813    scrolling: 0,
24814    seamless: HAS_BOOLEAN_VALUE,
24815    selected: MUST_USE_PROPERTY | HAS_BOOLEAN_VALUE,
24816    shape: 0,
24817    size: HAS_POSITIVE_NUMERIC_VALUE,
24818    sizes: 0,
24819    span: HAS_POSITIVE_NUMERIC_VALUE,
24820    spellCheck: 0,
24821    src: 0,
24822    srcDoc: 0,
24823    srcLang: 0,
24824    srcSet: 0,
24825    start: HAS_NUMERIC_VALUE,
24826    step: 0,
24827    style: 0,
24828    summary: 0,
24829    tabIndex: 0,
24830    target: 0,
24831    title: 0,
24832    // Setting .type throws on non-<input> tags
24833    type: 0,
24834    useMap: 0,
24835    value: 0,
24836    width: 0,
24837    wmode: 0,
24838    wrap: 0,
24839
24840    /**
24841     * RDFa Properties
24842     */
24843    about: 0,
24844    datatype: 0,
24845    inlist: 0,
24846    prefix: 0,
24847    // property is also supported for OpenGraph in meta tags.
24848    property: 0,
24849    resource: 0,
24850    'typeof': 0,
24851    vocab: 0,
24852
24853    /**
24854     * Non-standard Properties
24855     */
24856    // autoCapitalize and autoCorrect are supported in Mobile Safari for
24857    // keyboard hints.
24858    autoCapitalize: 0,
24859    autoCorrect: 0,
24860    // autoSave allows WebKit/Blink to persist values of input fields on page reloads
24861    autoSave: 0,
24862    // color is for Safari mask-icon link
24863    color: 0,
24864    // itemProp, itemScope, itemType are for
24865    // Microdata support. See http://schema.org/docs/gs.html
24866    itemProp: 0,
24867    itemScope: HAS_BOOLEAN_VALUE,
24868    itemType: 0,
24869    // itemID and itemRef are for Microdata support as well but
24870    // only specified in the WHATWG spec document. See
24871    // https://html.spec.whatwg.org/multipage/microdata.html#microdata-dom-api
24872    itemID: 0,
24873    itemRef: 0,
24874    // results show looking glass icon and recent searches on input
24875    // search fields in WebKit/Blink
24876    results: 0,
24877    // IE-only attribute that specifies security restrictions on an iframe
24878    // as an alternative to the sandbox attribute on IE<10
24879    security: 0,
24880    // IE-only attribute that controls focus behavior
24881    unselectable: 0
24882  },
24883  DOMAttributeNames: {
24884    acceptCharset: 'accept-charset',
24885    className: 'class',
24886    htmlFor: 'for',
24887    httpEquiv: 'http-equiv'
24888  },
24889  DOMPropertyNames: {},
24890  DOMMutationMethods: {
24891    value: function (node, value) {
24892      if (value == null) {
24893        return node.removeAttribute('value');
24894      }
24895
24896      // Number inputs get special treatment due to some edge cases in
24897      // Chrome. Let everything else assign the value attribute as normal.
24898      // https://github.com/facebook/react/issues/7253#issuecomment-236074326
24899      if (node.type !== 'number' || node.hasAttribute('value') === false) {
24900        node.setAttribute('value', '' + value);
24901      } else if (node.validity && !node.validity.badInput && node.ownerDocument.activeElement !== node) {
24902        // Don't assign an attribute if validation reports bad
24903        // input. Chrome will clear the value. Additionally, don't
24904        // operate on inputs that have focus, otherwise Chrome might
24905        // strip off trailing decimal places and cause the user's
24906        // cursor position to jump to the beginning of the input.
24907        //
24908        // In ReactDOMInput, we have an onBlur event that will trigger
24909        // this function again when focus is lost.
24910        node.setAttribute('value', '' + value);
24911      }
24912    }
24913  }
24914};
24915
24916module.exports = HTMLDOMPropertyConfig;
24917
24918/***/ }),
24919/* 467 */
24920/***/ (function(module, exports, __webpack_require__) {
24921
24922"use strict";
24923/**
24924 * Copyright (c) 2013-present, Facebook, Inc.
24925 *
24926 * This source code is licensed under the MIT license found in the
24927 * LICENSE file in the root directory of this source tree.
24928 *
24929 */
24930
24931
24932
24933var DOMChildrenOperations = __webpack_require__(142);
24934var ReactDOMIDOperations = __webpack_require__(472);
24935
24936/**
24937 * Abstracts away all functionality of the reconciler that requires knowledge of
24938 * the browser context. TODO: These callers should be refactored to avoid the
24939 * need for this injection.
24940 */
24941var ReactComponentBrowserEnvironment = {
24942  processChildrenUpdates: ReactDOMIDOperations.dangerouslyProcessChildrenUpdates,
24943
24944  replaceNodeWithMarkup: DOMChildrenOperations.dangerouslyReplaceNodeWithMarkup
24945};
24946
24947module.exports = ReactComponentBrowserEnvironment;
24948
24949/***/ }),
24950/* 468 */
24951/***/ (function(module, exports, __webpack_require__) {
24952
24953"use strict";
24954/* WEBPACK VAR INJECTION */(function(process) {/**
24955 * Copyright (c) 2013-present, Facebook, Inc.
24956 *
24957 * This source code is licensed under the MIT license found in the
24958 * LICENSE file in the root directory of this source tree.
24959 *
24960 */
24961
24962
24963
24964var _prodInvariant = __webpack_require__(8);
24965
24966var DOMLazyTree = __webpack_require__(69);
24967var ExecutionEnvironment = __webpack_require__(16);
24968
24969var createNodesFromMarkup = __webpack_require__(469);
24970var emptyFunction = __webpack_require__(38);
24971var invariant = __webpack_require__(2);
24972
24973var Danger = {
24974  /**
24975   * Replaces a node with a string of markup at its current position within its
24976   * parent. The markup must render into a single root node.
24977   *
24978   * @param {DOMElement} oldChild Child node to replace.
24979   * @param {string} markup Markup to render in place of the child node.
24980   * @internal
24981   */
24982  dangerouslyReplaceNodeWithMarkup: function (oldChild, markup) {
24983    !ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering.') : _prodInvariant('56') : void 0;
24984    !markup ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Missing markup.') : _prodInvariant('57') : void 0;
24985    !(oldChild.nodeName !== 'HTML') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString().') : _prodInvariant('58') : void 0;
24986
24987    if (typeof markup === 'string') {
24988      var newChild = createNodesFromMarkup(markup, emptyFunction)[0];
24989      oldChild.parentNode.replaceChild(newChild, oldChild);
24990    } else {
24991      DOMLazyTree.replaceChildWithTree(oldChild, markup);
24992    }
24993  }
24994};
24995
24996module.exports = Danger;
24997/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
24998
24999/***/ }),
25000/* 469 */
25001/***/ (function(module, exports, __webpack_require__) {
25002
25003"use strict";
25004/* WEBPACK VAR INJECTION */(function(process) {
25005
25006/**
25007 * Copyright (c) 2013-present, Facebook, Inc.
25008 *
25009 * This source code is licensed under the MIT license found in the
25010 * LICENSE file in the root directory of this source tree.
25011 *
25012 * @typechecks
25013 */
25014
25015/*eslint-disable fb-www/unsafe-html*/
25016
25017var ExecutionEnvironment = __webpack_require__(16);
25018
25019var createArrayFromMixed = __webpack_require__(470);
25020var getMarkupWrap = __webpack_require__(471);
25021var invariant = __webpack_require__(2);
25022
25023/**
25024 * Dummy container used to render all markup.
25025 */
25026var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
25027
25028/**
25029 * Pattern used by `getNodeName`.
25030 */
25031var nodeNamePattern = /^\s*<(\w+)/;
25032
25033/**
25034 * Extracts the `nodeName` of the first element in a string of markup.
25035 *
25036 * @param {string} markup String of markup.
25037 * @return {?string} Node name of the supplied markup.
25038 */
25039function getNodeName(markup) {
25040  var nodeNameMatch = markup.match(nodeNamePattern);
25041  return nodeNameMatch && nodeNameMatch[1].toLowerCase();
25042}
25043
25044/**
25045 * Creates an array containing the nodes rendered from the supplied markup. The
25046 * optionally supplied `handleScript` function will be invoked once for each
25047 * <script> element that is rendered. If no `handleScript` function is supplied,
25048 * an exception is thrown if any <script> elements are rendered.
25049 *
25050 * @param {string} markup A string of valid HTML markup.
25051 * @param {?function} handleScript Invoked once for each rendered <script>.
25052 * @return {array<DOMElement|DOMTextNode>} An array of rendered nodes.
25053 */
25054function createNodesFromMarkup(markup, handleScript) {
25055  var node = dummyNode;
25056  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup dummy not initialized') : invariant(false) : void 0;
25057  var nodeName = getNodeName(markup);
25058
25059  var wrap = nodeName && getMarkupWrap(nodeName);
25060  if (wrap) {
25061    node.innerHTML = wrap[1] + markup + wrap[2];
25062
25063    var wrapDepth = wrap[0];
25064    while (wrapDepth--) {
25065      node = node.lastChild;
25066    }
25067  } else {
25068    node.innerHTML = markup;
25069  }
25070
25071  var scripts = node.getElementsByTagName('script');
25072  if (scripts.length) {
25073    !handleScript ? process.env.NODE_ENV !== 'production' ? invariant(false, 'createNodesFromMarkup(...): Unexpected <script> element rendered.') : invariant(false) : void 0;
25074    createArrayFromMixed(scripts).forEach(handleScript);
25075  }
25076
25077  var nodes = Array.from(node.childNodes);
25078  while (node.lastChild) {
25079    node.removeChild(node.lastChild);
25080  }
25081  return nodes;
25082}
25083
25084module.exports = createNodesFromMarkup;
25085/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
25086
25087/***/ }),
25088/* 470 */
25089/***/ (function(module, exports, __webpack_require__) {
25090
25091"use strict";
25092/* WEBPACK VAR INJECTION */(function(process) {
25093
25094/**
25095 * Copyright (c) 2013-present, Facebook, Inc.
25096 *
25097 * This source code is licensed under the MIT license found in the
25098 * LICENSE file in the root directory of this source tree.
25099 *
25100 * @typechecks
25101 */
25102
25103var invariant = __webpack_require__(2);
25104
25105/**
25106 * Convert array-like objects to arrays.
25107 *
25108 * This API assumes the caller knows the contents of the data type. For less
25109 * well defined inputs use createArrayFromMixed.
25110 *
25111 * @param {object|function|filelist} obj
25112 * @return {array}
25113 */
25114function toArray(obj) {
25115  var length = obj.length;
25116
25117  // Some browsers builtin objects can report typeof 'function' (e.g. NodeList
25118  // in old versions of Safari).
25119  !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0;
25120
25121  !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0;
25122
25123  !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0;
25124
25125  !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0;
25126
25127  // Old IE doesn't give collections access to hasOwnProperty. Assume inputs
25128  // without method will throw during the slice call and skip straight to the
25129  // fallback.
25130  if (obj.hasOwnProperty) {
25131    try {
25132      return Array.prototype.slice.call(obj);
25133    } catch (e) {
25134      // IE < 9 does not support Array#slice on collections objects
25135    }
25136  }
25137
25138  // Fall back to copying key by key. This assumes all keys have a value,
25139  // so will not preserve sparsely populated inputs.
25140  var ret = Array(length);
25141  for (var ii = 0; ii < length; ii++) {
25142    ret[ii] = obj[ii];
25143  }
25144  return ret;
25145}
25146
25147/**
25148 * Perform a heuristic test to determine if an object is "array-like".
25149 *
25150 *   A monk asked Joshu, a Zen master, "Has a dog Buddha nature?"
25151 *   Joshu replied: "Mu."
25152 *
25153 * This function determines if its argument has "array nature": it returns
25154 * true if the argument is an actual array, an `arguments' object, or an
25155 * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()).
25156 *
25157 * It will return false for other array-like objects like Filelist.
25158 *
25159 * @param {*} obj
25160 * @return {boolean}
25161 */
25162function hasArrayNature(obj) {
25163  return (
25164    // not null/false
25165    !!obj && (
25166    // arrays are objects, NodeLists are functions in Safari
25167    typeof obj == 'object' || typeof obj == 'function') &&
25168    // quacks like an array
25169    'length' in obj &&
25170    // not window
25171    !('setInterval' in obj) &&
25172    // no DOM node should be considered an array-like
25173    // a 'select' element has 'length' and 'item' properties on IE8
25174    typeof obj.nodeType != 'number' && (
25175    // a real array
25176    Array.isArray(obj) ||
25177    // arguments
25178    'callee' in obj ||
25179    // HTMLCollection/NodeList
25180    'item' in obj)
25181  );
25182}
25183
25184/**
25185 * Ensure that the argument is an array by wrapping it in an array if it is not.
25186 * Creates a copy of the argument if it is already an array.
25187 *
25188 * This is mostly useful idiomatically:
25189 *
25190 *   var createArrayFromMixed = require('createArrayFromMixed');
25191 *
25192 *   function takesOneOrMoreThings(things) {
25193 *     things = createArrayFromMixed(things);
25194 *     ...
25195 *   }
25196 *
25197 * This allows you to treat `things' as an array, but accept scalars in the API.
25198 *
25199 * If you need to convert an array-like object, like `arguments`, into an array
25200 * use toArray instead.
25201 *
25202 * @param {*} obj
25203 * @return {array}
25204 */
25205function createArrayFromMixed(obj) {
25206  if (!hasArrayNature(obj)) {
25207    return [obj];
25208  } else if (Array.isArray(obj)) {
25209    return obj.slice();
25210  } else {
25211    return toArray(obj);
25212  }
25213}
25214
25215module.exports = createArrayFromMixed;
25216/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
25217
25218/***/ }),
25219/* 471 */
25220/***/ (function(module, exports, __webpack_require__) {
25221
25222"use strict";
25223/* WEBPACK VAR INJECTION */(function(process) {
25224
25225/**
25226 * Copyright (c) 2013-present, Facebook, Inc.
25227 *
25228 * This source code is licensed under the MIT license found in the
25229 * LICENSE file in the root directory of this source tree.
25230 *
25231 */
25232
25233/*eslint-disable fb-www/unsafe-html */
25234
25235var ExecutionEnvironment = __webpack_require__(16);
25236
25237var invariant = __webpack_require__(2);
25238
25239/**
25240 * Dummy container used to detect which wraps are necessary.
25241 */
25242var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null;
25243
25244/**
25245 * Some browsers cannot use `innerHTML` to render certain elements standalone,
25246 * so we wrap them, render the wrapped nodes, then extract the desired node.
25247 *
25248 * In IE8, certain elements cannot render alone, so wrap all elements ('*').
25249 */
25250
25251var shouldWrap = {};
25252
25253var selectWrap = [1, '<select multiple="true">', '</select>'];
25254var tableWrap = [1, '<table>', '</table>'];
25255var trWrap = [3, '<table><tbody><tr>', '</tr></tbody></table>'];
25256
25257var svgWrap = [1, '<svg xmlns="http://www.w3.org/2000/svg">', '</svg>'];
25258
25259var markupWrap = {
25260  '*': [1, '?<div>', '</div>'],
25261
25262  'area': [1, '<map>', '</map>'],
25263  'col': [2, '<table><tbody></tbody><colgroup>', '</colgroup></table>'],
25264  'legend': [1, '<fieldset>', '</fieldset>'],
25265  'param': [1, '<object>', '</object>'],
25266  'tr': [2, '<table><tbody>', '</tbody></table>'],
25267
25268  'optgroup': selectWrap,
25269  'option': selectWrap,
25270
25271  'caption': tableWrap,
25272  'colgroup': tableWrap,
25273  'tbody': tableWrap,
25274  'tfoot': tableWrap,
25275  'thead': tableWrap,
25276
25277  'td': trWrap,
25278  'th': trWrap
25279};
25280
25281// Initialize the SVG elements since we know they'll always need to be wrapped
25282// consistently. If they are created inside a <div> they will be initialized in
25283// the wrong namespace (and will not display).
25284var svgElements = ['circle', 'clipPath', 'defs', 'ellipse', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'text', 'tspan'];
25285svgElements.forEach(function (nodeName) {
25286  markupWrap[nodeName] = svgWrap;
25287  shouldWrap[nodeName] = true;
25288});
25289
25290/**
25291 * Gets the markup wrap configuration for the supplied `nodeName`.
25292 *
25293 * NOTE: This lazily detects which wraps are necessary for the current browser.
25294 *
25295 * @param {string} nodeName Lowercase `nodeName`.
25296 * @return {?array} Markup wrap configuration, if applicable.
25297 */
25298function getMarkupWrap(nodeName) {
25299  !!!dummyNode ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Markup wrapping node not initialized') : invariant(false) : void 0;
25300  if (!markupWrap.hasOwnProperty(nodeName)) {
25301    nodeName = '*';
25302  }
25303  if (!shouldWrap.hasOwnProperty(nodeName)) {
25304    if (nodeName === '*') {
25305      dummyNode.innerHTML = '<link />';
25306    } else {
25307      dummyNode.innerHTML = '<' + nodeName + '></' + nodeName + '>';
25308    }
25309    shouldWrap[nodeName] = !dummyNode.firstChild;
25310  }
25311  return shouldWrap[nodeName] ? markupWrap[nodeName] : null;
25312}
25313
25314module.exports = getMarkupWrap;
25315/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
25316
25317/***/ }),
25318/* 472 */
25319/***/ (function(module, exports, __webpack_require__) {
25320
25321"use strict";
25322/**
25323 * Copyright (c) 2013-present, Facebook, Inc.
25324 *
25325 * This source code is licensed under the MIT license found in the
25326 * LICENSE file in the root directory of this source tree.
25327 *
25328 */
25329
25330
25331
25332var DOMChildrenOperations = __webpack_require__(142);
25333var ReactDOMComponentTree = __webpack_require__(14);
25334
25335/**
25336 * Operations used to process updates to DOM nodes.
25337 */
25338var ReactDOMIDOperations = {
25339  /**
25340   * Updates a component's children by processing a series of updates.
25341   *
25342   * @param {array<object>} updates List of update configurations.
25343   * @internal
25344   */
25345  dangerouslyProcessChildrenUpdates: function (parentInst, updates) {
25346    var node = ReactDOMComponentTree.getNodeFromInstance(parentInst);
25347    DOMChildrenOperations.processUpdates(node, updates);
25348  }
25349};
25350
25351module.exports = ReactDOMIDOperations;
25352
25353/***/ }),
25354/* 473 */
25355/***/ (function(module, exports, __webpack_require__) {
25356
25357"use strict";
25358/* WEBPACK VAR INJECTION */(function(process) {/**
25359 * Copyright (c) 2013-present, Facebook, Inc.
25360 *
25361 * This source code is licensed under the MIT license found in the
25362 * LICENSE file in the root directory of this source tree.
25363 *
25364 */
25365
25366/* global hasOwnProperty:true */
25367
25368
25369
25370var _prodInvariant = __webpack_require__(8),
25371    _assign = __webpack_require__(10);
25372
25373var AutoFocusUtils = __webpack_require__(474);
25374var CSSPropertyOperations = __webpack_require__(475);
25375var DOMLazyTree = __webpack_require__(69);
25376var DOMNamespaces = __webpack_require__(143);
25377var DOMProperty = __webpack_require__(47);
25378var DOMPropertyOperations = __webpack_require__(207);
25379var EventPluginHub = __webpack_require__(77);
25380var EventPluginRegistry = __webpack_require__(99);
25381var ReactBrowserEventEmitter = __webpack_require__(104);
25382var ReactDOMComponentFlags = __webpack_require__(195);
25383var ReactDOMComponentTree = __webpack_require__(14);
25384var ReactDOMInput = __webpack_require__(485);
25385var ReactDOMOption = __webpack_require__(486);
25386var ReactDOMSelect = __webpack_require__(209);
25387var ReactDOMTextarea = __webpack_require__(487);
25388var ReactInstrumentation = __webpack_require__(28);
25389var ReactMultiChild = __webpack_require__(488);
25390var ReactServerRenderingTransaction = __webpack_require__(497);
25391
25392var emptyFunction = __webpack_require__(38);
25393var escapeTextContentForBrowser = __webpack_require__(103);
25394var invariant = __webpack_require__(2);
25395var isEventSupported = __webpack_require__(140);
25396var shallowEqual = __webpack_require__(147);
25397var inputValueTracking = __webpack_require__(201);
25398var validateDOMNesting = __webpack_require__(151);
25399var warning = __webpack_require__(3);
25400
25401var Flags = ReactDOMComponentFlags;
25402var deleteListener = EventPluginHub.deleteListener;
25403var getNode = ReactDOMComponentTree.getNodeFromInstance;
25404var listenTo = ReactBrowserEventEmitter.listenTo;
25405var registrationNameModules = EventPluginRegistry.registrationNameModules;
25406
25407// For quickly matching children type, to test if can be treated as content.
25408var CONTENT_TYPES = { string: true, number: true };
25409
25410var STYLE = 'style';
25411var HTML = '__html';
25412var RESERVED_PROPS = {
25413  children: null,
25414  dangerouslySetInnerHTML: null,
25415  suppressContentEditableWarning: null
25416};
25417
25418// Node type for document fragments (Node.DOCUMENT_FRAGMENT_NODE).
25419var DOC_FRAGMENT_TYPE = 11;
25420
25421function getDeclarationErrorAddendum(internalInstance) {
25422  if (internalInstance) {
25423    var owner = internalInstance._currentElement._owner || null;
25424    if (owner) {
25425      var name = owner.getName();
25426      if (name) {
25427        return ' This DOM node was rendered by `' + name + '`.';
25428      }
25429    }
25430  }
25431  return '';
25432}
25433
25434function friendlyStringify(obj) {
25435  if (typeof obj === 'object') {
25436    if (Array.isArray(obj)) {
25437      return '[' + obj.map(friendlyStringify).join(', ') + ']';
25438    } else {
25439      var pairs = [];
25440      for (var key in obj) {
25441        if (Object.prototype.hasOwnProperty.call(obj, key)) {
25442          var keyEscaped = /^[a-z$_][\w$_]*$/i.test(key) ? key : JSON.stringify(key);
25443          pairs.push(keyEscaped + ': ' + friendlyStringify(obj[key]));
25444        }
25445      }
25446      return '{' + pairs.join(', ') + '}';
25447    }
25448  } else if (typeof obj === 'string') {
25449    return JSON.stringify(obj);
25450  } else if (typeof obj === 'function') {
25451    return '[function object]';
25452  }
25453  // Differs from JSON.stringify in that undefined because undefined and that
25454  // inf and nan don't become null
25455  return String(obj);
25456}
25457
25458var styleMutationWarning = {};
25459
25460function checkAndWarnForMutatedStyle(style1, style2, component) {
25461  if (style1 == null || style2 == null) {
25462    return;
25463  }
25464  if (shallowEqual(style1, style2)) {
25465    return;
25466  }
25467
25468  var componentName = component._tag;
25469  var owner = component._currentElement._owner;
25470  var ownerName;
25471  if (owner) {
25472    ownerName = owner.getName();
25473  }
25474
25475  var hash = ownerName + '|' + componentName;
25476
25477  if (styleMutationWarning.hasOwnProperty(hash)) {
25478    return;
25479  }
25480
25481  styleMutationWarning[hash] = true;
25482
25483  process.env.NODE_ENV !== 'production' ? warning(false, '`%s` was passed a style object that has previously been mutated. ' + 'Mutating `style` is deprecated. Consider cloning it beforehand. Check ' + 'the `render` %s. Previous style: %s. Mutated style: %s.', componentName, owner ? 'of `' + ownerName + '`' : 'using <' + componentName + '>', friendlyStringify(style1), friendlyStringify(style2)) : void 0;
25484}
25485
25486/**
25487 * @param {object} component
25488 * @param {?object} props
25489 */
25490function assertValidProps(component, props) {
25491  if (!props) {
25492    return;
25493  }
25494  // Note the use of `==` which checks for null or undefined.
25495  if (voidElementTags[component._tag]) {
25496    !(props.children == null && props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : _prodInvariant('137', component._tag, component._currentElement._owner ? ' Check the render method of ' + component._currentElement._owner.getName() + '.' : '') : void 0;
25497  }
25498  if (props.dangerouslySetInnerHTML != null) {
25499    !(props.children == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : _prodInvariant('60') : void 0;
25500    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : _prodInvariant('61') : void 0;
25501  }
25502  if (process.env.NODE_ENV !== 'production') {
25503    process.env.NODE_ENV !== 'production' ? warning(props.innerHTML == null, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.') : void 0;
25504    process.env.NODE_ENV !== 'production' ? warning(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;
25505    process.env.NODE_ENV !== 'production' ? warning(props.onFocusIn == null && props.onFocusOut == null, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.') : void 0;
25506  }
25507  !(props.style == null || typeof props.style === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', getDeclarationErrorAddendum(component)) : _prodInvariant('62', getDeclarationErrorAddendum(component)) : void 0;
25508}
25509
25510function enqueuePutListener(inst, registrationName, listener, transaction) {
25511  if (transaction instanceof ReactServerRenderingTransaction) {
25512    return;
25513  }
25514  if (process.env.NODE_ENV !== 'production') {
25515    // IE8 has no API for event capturing and the `onScroll` event doesn't
25516    // bubble.
25517    process.env.NODE_ENV !== 'production' ? warning(registrationName !== 'onScroll' || isEventSupported('scroll', true), "This browser doesn't support the `onScroll` event") : void 0;
25518  }
25519  var containerInfo = inst._hostContainerInfo;
25520  var isDocumentFragment = containerInfo._node && containerInfo._node.nodeType === DOC_FRAGMENT_TYPE;
25521  var doc = isDocumentFragment ? containerInfo._node : containerInfo._ownerDocument;
25522  listenTo(registrationName, doc);
25523  transaction.getReactMountReady().enqueue(putListener, {
25524    inst: inst,
25525    registrationName: registrationName,
25526    listener: listener
25527  });
25528}
25529
25530function putListener() {
25531  var listenerToPut = this;
25532  EventPluginHub.putListener(listenerToPut.inst, listenerToPut.registrationName, listenerToPut.listener);
25533}
25534
25535function inputPostMount() {
25536  var inst = this;
25537  ReactDOMInput.postMountWrapper(inst);
25538}
25539
25540function textareaPostMount() {
25541  var inst = this;
25542  ReactDOMTextarea.postMountWrapper(inst);
25543}
25544
25545function optionPostMount() {
25546  var inst = this;
25547  ReactDOMOption.postMountWrapper(inst);
25548}
25549
25550var setAndValidateContentChildDev = emptyFunction;
25551if (process.env.NODE_ENV !== 'production') {
25552  setAndValidateContentChildDev = function (content) {
25553    var hasExistingContent = this._contentDebugID != null;
25554    var debugID = this._debugID;
25555    // This ID represents the inlined child that has no backing instance:
25556    var contentDebugID = -debugID;
25557
25558    if (content == null) {
25559      if (hasExistingContent) {
25560        ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);
25561      }
25562      this._contentDebugID = null;
25563      return;
25564    }
25565
25566    validateDOMNesting(null, String(content), this, this._ancestorInfo);
25567    this._contentDebugID = contentDebugID;
25568    if (hasExistingContent) {
25569      ReactInstrumentation.debugTool.onBeforeUpdateComponent(contentDebugID, content);
25570      ReactInstrumentation.debugTool.onUpdateComponent(contentDebugID);
25571    } else {
25572      ReactInstrumentation.debugTool.onBeforeMountComponent(contentDebugID, content, debugID);
25573      ReactInstrumentation.debugTool.onMountComponent(contentDebugID);
25574      ReactInstrumentation.debugTool.onSetChildren(debugID, [contentDebugID]);
25575    }
25576  };
25577}
25578
25579// There are so many media events, it makes sense to just
25580// maintain a list rather than create a `trapBubbledEvent` for each
25581var mediaEvents = {
25582  topAbort: 'abort',
25583  topCanPlay: 'canplay',
25584  topCanPlayThrough: 'canplaythrough',
25585  topDurationChange: 'durationchange',
25586  topEmptied: 'emptied',
25587  topEncrypted: 'encrypted',
25588  topEnded: 'ended',
25589  topError: 'error',
25590  topLoadedData: 'loadeddata',
25591  topLoadedMetadata: 'loadedmetadata',
25592  topLoadStart: 'loadstart',
25593  topPause: 'pause',
25594  topPlay: 'play',
25595  topPlaying: 'playing',
25596  topProgress: 'progress',
25597  topRateChange: 'ratechange',
25598  topSeeked: 'seeked',
25599  topSeeking: 'seeking',
25600  topStalled: 'stalled',
25601  topSuspend: 'suspend',
25602  topTimeUpdate: 'timeupdate',
25603  topVolumeChange: 'volumechange',
25604  topWaiting: 'waiting'
25605};
25606
25607function trackInputValue() {
25608  inputValueTracking.track(this);
25609}
25610
25611function trapBubbledEventsLocal() {
25612  var inst = this;
25613  // If a component renders to null or if another component fatals and causes
25614  // the state of the tree to be corrupted, `node` here can be null.
25615  !inst._rootNodeID ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Must be mounted to trap events') : _prodInvariant('63') : void 0;
25616  var node = getNode(inst);
25617  !node ? process.env.NODE_ENV !== 'production' ? invariant(false, 'trapBubbledEvent(...): Requires node to be rendered.') : _prodInvariant('64') : void 0;
25618
25619  switch (inst._tag) {
25620    case 'iframe':
25621    case 'object':
25622      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];
25623      break;
25624    case 'video':
25625    case 'audio':
25626      inst._wrapperState.listeners = [];
25627      // Create listener for each media event
25628      for (var event in mediaEvents) {
25629        if (mediaEvents.hasOwnProperty(event)) {
25630          inst._wrapperState.listeners.push(ReactBrowserEventEmitter.trapBubbledEvent(event, mediaEvents[event], node));
25631        }
25632      }
25633      break;
25634    case 'source':
25635      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node)];
25636      break;
25637    case 'img':
25638      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topError', 'error', node), ReactBrowserEventEmitter.trapBubbledEvent('topLoad', 'load', node)];
25639      break;
25640    case 'form':
25641      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topReset', 'reset', node), ReactBrowserEventEmitter.trapBubbledEvent('topSubmit', 'submit', node)];
25642      break;
25643    case 'input':
25644    case 'select':
25645    case 'textarea':
25646      inst._wrapperState.listeners = [ReactBrowserEventEmitter.trapBubbledEvent('topInvalid', 'invalid', node)];
25647      break;
25648  }
25649}
25650
25651function postUpdateSelectWrapper() {
25652  ReactDOMSelect.postUpdateWrapper(this);
25653}
25654
25655// For HTML, certain tags should omit their close tag. We keep a whitelist for
25656// those special-case tags.
25657
25658var omittedCloseTags = {
25659  area: true,
25660  base: true,
25661  br: true,
25662  col: true,
25663  embed: true,
25664  hr: true,
25665  img: true,
25666  input: true,
25667  keygen: true,
25668  link: true,
25669  meta: true,
25670  param: true,
25671  source: true,
25672  track: true,
25673  wbr: true
25674  // NOTE: menuitem's close tag should be omitted, but that causes problems.
25675};
25676
25677var newlineEatingTags = {
25678  listing: true,
25679  pre: true,
25680  textarea: true
25681};
25682
25683// For HTML, certain tags cannot have children. This has the same purpose as
25684// `omittedCloseTags` except that `menuitem` should still have its closing tag.
25685
25686var voidElementTags = _assign({
25687  menuitem: true
25688}, omittedCloseTags);
25689
25690// We accept any tag to be rendered but since this gets injected into arbitrary
25691// HTML, we want to make sure that it's a safe tag.
25692// http://www.w3.org/TR/REC-xml/#NT-Name
25693
25694var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/; // Simplified subset
25695var validatedTagCache = {};
25696var hasOwnProperty = {}.hasOwnProperty;
25697
25698function validateDangerousTag(tag) {
25699  if (!hasOwnProperty.call(validatedTagCache, tag)) {
25700    !VALID_TAG_REGEX.test(tag) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Invalid tag: %s', tag) : _prodInvariant('65', tag) : void 0;
25701    validatedTagCache[tag] = true;
25702  }
25703}
25704
25705function isCustomComponent(tagName, props) {
25706  return tagName.indexOf('-') >= 0 || props.is != null;
25707}
25708
25709var globalIdCounter = 1;
25710
25711/**
25712 * Creates a new React class that is idempotent and capable of containing other
25713 * React components. It accepts event listeners and DOM properties that are
25714 * valid according to `DOMProperty`.
25715 *
25716 *  - Event listeners: `onClick`, `onMouseDown`, etc.
25717 *  - DOM properties: `className`, `name`, `title`, etc.
25718 *
25719 * The `style` property functions differently from the DOM API. It accepts an
25720 * object mapping of style properties to values.
25721 *
25722 * @constructor ReactDOMComponent
25723 * @extends ReactMultiChild
25724 */
25725function ReactDOMComponent(element) {
25726  var tag = element.type;
25727  validateDangerousTag(tag);
25728  this._currentElement = element;
25729  this._tag = tag.toLowerCase();
25730  this._namespaceURI = null;
25731  this._renderedChildren = null;
25732  this._previousStyle = null;
25733  this._previousStyleCopy = null;
25734  this._hostNode = null;
25735  this._hostParent = null;
25736  this._rootNodeID = 0;
25737  this._domID = 0;
25738  this._hostContainerInfo = null;
25739  this._wrapperState = null;
25740  this._topLevelWrapper = null;
25741  this._flags = 0;
25742  if (process.env.NODE_ENV !== 'production') {
25743    this._ancestorInfo = null;
25744    setAndValidateContentChildDev.call(this, null);
25745  }
25746}
25747
25748ReactDOMComponent.displayName = 'ReactDOMComponent';
25749
25750ReactDOMComponent.Mixin = {
25751  /**
25752   * Generates root tag markup then recurses. This method has side effects and
25753   * is not idempotent.
25754   *
25755   * @internal
25756   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
25757   * @param {?ReactDOMComponent} the parent component instance
25758   * @param {?object} info about the host container
25759   * @param {object} context
25760   * @return {string} The computed markup.
25761   */
25762  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
25763    this._rootNodeID = globalIdCounter++;
25764    this._domID = hostContainerInfo._idCounter++;
25765    this._hostParent = hostParent;
25766    this._hostContainerInfo = hostContainerInfo;
25767
25768    var props = this._currentElement.props;
25769
25770    switch (this._tag) {
25771      case 'audio':
25772      case 'form':
25773      case 'iframe':
25774      case 'img':
25775      case 'link':
25776      case 'object':
25777      case 'source':
25778      case 'video':
25779        this._wrapperState = {
25780          listeners: null
25781        };
25782        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
25783        break;
25784      case 'input':
25785        ReactDOMInput.mountWrapper(this, props, hostParent);
25786        props = ReactDOMInput.getHostProps(this, props);
25787        transaction.getReactMountReady().enqueue(trackInputValue, this);
25788        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
25789        break;
25790      case 'option':
25791        ReactDOMOption.mountWrapper(this, props, hostParent);
25792        props = ReactDOMOption.getHostProps(this, props);
25793        break;
25794      case 'select':
25795        ReactDOMSelect.mountWrapper(this, props, hostParent);
25796        props = ReactDOMSelect.getHostProps(this, props);
25797        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
25798        break;
25799      case 'textarea':
25800        ReactDOMTextarea.mountWrapper(this, props, hostParent);
25801        props = ReactDOMTextarea.getHostProps(this, props);
25802        transaction.getReactMountReady().enqueue(trackInputValue, this);
25803        transaction.getReactMountReady().enqueue(trapBubbledEventsLocal, this);
25804        break;
25805    }
25806
25807    assertValidProps(this, props);
25808
25809    // We create tags in the namespace of their parent container, except HTML
25810    // tags get no namespace.
25811    var namespaceURI;
25812    var parentTag;
25813    if (hostParent != null) {
25814      namespaceURI = hostParent._namespaceURI;
25815      parentTag = hostParent._tag;
25816    } else if (hostContainerInfo._tag) {
25817      namespaceURI = hostContainerInfo._namespaceURI;
25818      parentTag = hostContainerInfo._tag;
25819    }
25820    if (namespaceURI == null || namespaceURI === DOMNamespaces.svg && parentTag === 'foreignobject') {
25821      namespaceURI = DOMNamespaces.html;
25822    }
25823    if (namespaceURI === DOMNamespaces.html) {
25824      if (this._tag === 'svg') {
25825        namespaceURI = DOMNamespaces.svg;
25826      } else if (this._tag === 'math') {
25827        namespaceURI = DOMNamespaces.mathml;
25828      }
25829    }
25830    this._namespaceURI = namespaceURI;
25831
25832    if (process.env.NODE_ENV !== 'production') {
25833      var parentInfo;
25834      if (hostParent != null) {
25835        parentInfo = hostParent._ancestorInfo;
25836      } else if (hostContainerInfo._tag) {
25837        parentInfo = hostContainerInfo._ancestorInfo;
25838      }
25839      if (parentInfo) {
25840        // parentInfo should always be present except for the top-level
25841        // component when server rendering
25842        validateDOMNesting(this._tag, null, this, parentInfo);
25843      }
25844      this._ancestorInfo = validateDOMNesting.updatedAncestorInfo(p
25844arentInfo, this._tag, this);
25845    }
25846
25847    var mountImage;
25848    if (transaction.useCreateElement) {
25849      var ownerDocument = hostContainerInfo._ownerDocument;
25850      var el;
25851      if (namespaceURI === DOMNamespaces.html) {
25852        if (this._tag === 'script') {
25853          // Create the script via .innerHTML so its "parser-inserted" flag is
25854          // set to true and it does not execute
25855          var div = ownerDocument.createElement('div');
25856          var type = this._currentElement.type;
25857          div.innerHTML = '<' + type + '></' + type + '>';
25858          el = div.removeChild(div.firstChild);
25859        } else if (props.is) {
25860          el = ownerDocument.createElement(this._currentElement.type, props.is);
25861        } else {
25862          // Separate else branch instead of using `props.is || undefined` above becuase of a Firefox bug.
25863          // See discussion in https://github.com/facebook/react/pull/6896
25864          // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240
25865          el = ownerDocument.createElement(this._currentElement.type);
25866        }
25867      } else {
25868        el = ownerDocument.createElementNS(namespaceURI, this._currentElement.type);
25869      }
25870      ReactDOMComponentTree.precacheNode(this, el);
25871      this._flags |= Flags.hasCachedChildNodes;
25872      if (!this._hostParent) {
25873        DOMPropertyOperations.setAttributeForRoot(el);
25874      }
25875      this._updateDOMProperties(null, props, transaction);
25876      var lazyTree = DOMLazyTree(el);
25877      this._createInitialChildren(transaction, props, context, lazyTree);
25878      mountImage = lazyTree;
25879    } else {
25880      var tagOpen = this._createOpenTagMarkupAndPutListeners(transaction, props);
25881      var tagContent = this._createContentMarkup(transaction, props, context);
25882      if (!tagContent && omittedCloseTags[this._tag]) {
25883        mountImage = tagOpen + '/>';
25884      } else {
25885        mountImage = tagOpen + '>' + tagContent + '</' + this._currentElement.type + '>';
25886      }
25887    }
25888
25889    switch (this._tag) {
25890      case 'input':
25891        transaction.getReactMountReady().enqueue(inputPostMount, this);
25892        if (props.autoFocus) {
25893          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);
25894        }
25895        break;
25896      case 'textarea':
25897        transaction.getReactMountReady().enqueue(textareaPostMount, this);
25898        if (props.autoFocus) {
25899          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);
25900        }
25901        break;
25902      case 'select':
25903        if (props.autoFocus) {
25904          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);
25905        }
25906        break;
25907      case 'button':
25908        if (props.autoFocus) {
25909          transaction.getReactMountReady().enqueue(AutoFocusUtils.focusDOMComponent, this);
25910        }
25911        break;
25912      case 'option':
25913        transaction.getReactMountReady().enqueue(optionPostMount, this);
25914        break;
25915    }
25916
25917    return mountImage;
25918  },
25919
25920  /**
25921   * Creates markup for the open tag and all attributes.
25922   *
25923   * This method has side effects because events get registered.
25924   *
25925   * Iterating over object properties is faster than iterating over arrays.
25926   * @see http://jsperf.com/obj-vs-arr-iteration
25927   *
25928   * @private
25929   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
25930   * @param {object} props
25931   * @return {string} Markup of opening tag.
25932   */
25933  _createOpenTagMarkupAndPutListeners: function (transaction, props) {
25934    var ret = '<' + this._currentElement.type;
25935
25936    for (var propKey in props) {
25937      if (!props.hasOwnProperty(propKey)) {
25938        continue;
25939      }
25940      var propValue = props[propKey];
25941      if (propValue == null) {
25942        continue;
25943      }
25944      if (registrationNameModules.hasOwnProperty(propKey)) {
25945        if (propValue) {
25946          enqueuePutListener(this, propKey, propValue, transaction);
25947        }
25948      } else {
25949        if (propKey === STYLE) {
25950          if (propValue) {
25951            if (process.env.NODE_ENV !== 'production') {
25952              // See `_updateDOMProperties`. style block
25953              this._previousStyle = propValue;
25954            }
25955            propValue = this._previousStyleCopy = _assign({}, props.style);
25956          }
25957          propValue = CSSPropertyOperations.createMarkupForStyles(propValue, this);
25958        }
25959        var markup = null;
25960        if (this._tag != null && isCustomComponent(this._tag, props)) {
25961          if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
25962            markup = DOMPropertyOperations.createMarkupForCustomAttribute(propKey, propValue);
25963          }
25964        } else {
25965          markup = DOMPropertyOperations.createMarkupForProperty(propKey, propValue);
25966        }
25967        if (markup) {
25968          ret += ' ' + markup;
25969        }
25970      }
25971    }
25972
25973    // For static pages, no need to put React ID and checksum. Saves lots of
25974    // bytes.
25975    if (transaction.renderToStaticMarkup) {
25976      return ret;
25977    }
25978
25979    if (!this._hostParent) {
25980      ret += ' ' + DOMPropertyOperations.createMarkupForRoot();
25981    }
25982    ret += ' ' + DOMPropertyOperations.createMarkupForID(this._domID);
25983    return ret;
25984  },
25985
25986  /**
25987   * Creates markup for the content between the tags.
25988   *
25989   * @private
25990   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
25991   * @param {object} props
25992   * @param {object} context
25993   * @return {string} Content markup.
25994   */
25995  _createContentMarkup: function (transaction, props, context) {
25996    var ret = '';
25997
25998    // Intentional use of != to avoid catching zero/false.
25999    var innerHTML = props.dangerouslySetInnerHTML;
26000    if (innerHTML != null) {
26001      if (innerHTML.__html != null) {
26002        ret = innerHTML.__html;
26003      }
26004    } else {
26005      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;
26006      var childrenToUse = contentToUse != null ? null : props.children;
26007      if (contentToUse != null) {
26008        // TODO: Validate that text is allowed as a child of this node
26009        ret = escapeTextContentForBrowser(contentToUse);
26010        if (process.env.NODE_ENV !== 'production') {
26011          setAndValidateContentChildDev.call(this, contentToUse);
26012        }
26013      } else if (childrenToUse != null) {
26014        var mountImages = this.mountChildren(childrenToUse, transaction, context);
26015        ret = mountImages.join('');
26016      }
26017    }
26018    if (newlineEatingTags[this._tag] && ret.charAt(0) === '\n') {
26019      // text/html ignores the first character in these tags if it's a newline
26020      // Prefer to break application/xml over text/html (for now) by adding
26021      // a newline specifically to get eaten by the parser. (Alternately for
26022      // textareas, replacing "^\n" with "\r\n" doesn't get eaten, and the first
26023      // \r is normalized out by HTMLTextAreaElement#value.)
26024      // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>
26025      // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>
26026      // See: <http://www.w3.org/TR/html5/syntax.html#newlines>
26027      // See: Parsing of "textarea" "listing" and "pre" elements
26028      //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>
26029      return '\n' + ret;
26030    } else {
26031      return ret;
26032    }
26033  },
26034
26035  _createInitialChildren: function (transaction, props, context, lazyTree) {
26036    // Intentional use of != to avoid catching zero/false.
26037    var innerHTML = props.dangerouslySetInnerHTML;
26038    if (innerHTML != null) {
26039      if (innerHTML.__html != null) {
26040        DOMLazyTree.queueHTML(lazyTree, innerHTML.__html);
26041      }
26042    } else {
26043      var contentToUse = CONTENT_TYPES[typeof props.children] ? props.children : null;
26044      var childrenToUse = contentToUse != null ? null : props.children;
26045      // TODO: Validate that text is allowed as a child of this node
26046      if (contentToUse != null) {
26047        // Avoid setting textContent when the text is empty. In IE11 setting
26048        // textContent on a text area will cause the placeholder to not
26049        // show within the textarea until it has been focused and blurred again.
26050        // https://github.com/facebook/react/issues/6731#issuecomment-254874553
26051        if (contentToUse !== '') {
26052          if (process.env.NODE_ENV !== 'production') {
26053            setAndValidateContentChildDev.call(this, contentToUse);
26054          }
26055          DOMLazyTree.queueText(lazyTree, contentToUse);
26056        }
26057      } else if (childrenToUse != null) {
26058        var mountImages = this.mountChildren(childrenToUse, transaction, context);
26059        for (var i = 0; i < mountImages.length; i++) {
26060          DOMLazyTree.queueChild(lazyTree, mountImages[i]);
26061        }
26062      }
26063    }
26064  },
26065
26066  /**
26067   * Receives a next element and updates the component.
26068   *
26069   * @internal
26070   * @param {ReactElement} nextElement
26071   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
26072   * @param {object} context
26073   */
26074  receiveComponent: function (nextElement, transaction, context) {
26075    var prevElement = this._currentElement;
26076    this._currentElement = nextElement;
26077    this.updateComponent(transaction, prevElement, nextElement, context);
26078  },
26079
26080  /**
26081   * Updates a DOM component after it has already been allocated and
26082   * attached to the DOM. Reconciles the root DOM node, then recurses.
26083   *
26084   * @param {ReactReconcileTransaction} transaction
26085   * @param {ReactElement} prevElement
26086   * @param {ReactElement} nextElement
26087   * @internal
26088   * @overridable
26089   */
26090  updateComponent: function (transaction, prevElement, nextElement, context) {
26091    var lastProps = prevElement.props;
26092    var nextProps = this._currentElement.props;
26093
26094    switch (this._tag) {
26095      case 'input':
26096        lastProps = ReactDOMInput.getHostProps(this, lastProps);
26097        nextProps = ReactDOMInput.getHostProps(this, nextProps);
26098        break;
26099      case 'option':
26100        lastProps = ReactDOMOption.getHostProps(this, lastProps);
26101        nextProps = ReactDOMOption.getHostProps(this, nextProps);
26102        break;
26103      case 'select':
26104        lastProps = ReactDOMSelect.getHostProps(this, lastProps);
26105        nextProps = ReactDOMSelect.getHostProps(this, nextProps);
26106        break;
26107      case 'textarea':
26108        lastProps = ReactDOMTextarea.getHostProps(this, lastProps);
26109        nextProps = ReactDOMTextarea.getHostProps(this, nextProps);
26110        break;
26111    }
26112
26113    assertValidProps(this, nextProps);
26114    this._updateDOMProperties(lastProps, nextProps, transaction);
26115    this._updateDOMChildren(lastProps, nextProps, transaction, context);
26116
26117    switch (this._tag) {
26118      case 'input':
26119        // Update the wrapper around inputs *after* updating props. This has to
26120        // happen after `_updateDOMProperties`. Otherwise HTML5 input validations
26121        // raise warnings and prevent the new value from being assigned.
26122        ReactDOMInput.updateWrapper(this);
26123
26124        // We also check that we haven't missed a value update, such as a
26125        // Radio group shifting the checked value to another named radio input.
26126        inputValueTracking.updateValueIfChanged(this);
26127        break;
26128      case 'textarea':
26129        ReactDOMTextarea.updateWrapper(this);
26130        break;
26131      case 'select':
26132        // <select> value update needs to occur after <option> children
26133        // reconciliation
26134        transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);
26135        break;
26136    }
26137  },
26138
26139  /**
26140   * Reconciles the properties by detecting differences in property values and
26141   * updating the DOM as necessary. This function is probably the single most
26142   * critical path for performance optimization.
26143   *
26144   * TODO: Benchmark whether checking for changed values in memory actually
26145   *       improves performance (especially statically positioned elements).
26146   * TODO: Benchmark the effects of putting this at the top since 99% of props
26147   *       do not change for a given reconciliation.
26148   * TODO: Benchmark areas that can be improved with caching.
26149   *
26150   * @private
26151   * @param {object} lastProps
26152   * @param {object} nextProps
26153   * @param {?DOMElement} node
26154   */
26155  _updateDOMProperties: function (lastProps, nextProps, transaction) {
26156    var propKey;
26157    var styleName;
26158    var styleUpdates;
26159    for (propKey in lastProps) {
26160      if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {
26161        continue;
26162      }
26163      if (propKey === STYLE) {
26164        var lastStyle = this._previousStyleCopy;
26165        for (styleName in lastStyle) {
26166          if (lastStyle.hasOwnProperty(styleName)) {
26167            styleUpdates = styleUpdates || {};
26168            styleUpdates[styleName] = '';
26169          }
26170        }
26171        this._previousStyleCopy = null;
26172      } else if (registrationNameModules.hasOwnProperty(propKey)) {
26173        if (lastProps[propKey]) {
26174          // Only call deleteListener if there was a listener previously or
26175          // else willDeleteListener gets called when there wasn't actually a
26176          // listener (e.g., onClick={null})
26177          deleteListener(this, propKey);
26178        }
26179      } else if (isCustomComponent(this._tag, lastProps)) {
26180        if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
26181          DOMPropertyOperations.deleteValueForAttribute(getNode(this), propKey);
26182        }
26183      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {
26184        DOMPropertyOperations.deleteValueForProperty(getNode(this), propKey);
26185      }
26186    }
26187    for (propKey in nextProps) {
26188      var nextProp = nextProps[propKey];
26189      var lastProp = propKey === STYLE ? this._previousStyleCopy : lastProps != null ? lastProps[propKey] : undefined;
26190      if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {
26191        continue;
26192      }
26193      if (propKey === STYLE) {
26194        if (nextProp) {
26195          if (process.env.NODE_ENV !== 'production') {
26196            checkAndWarnForMutatedStyle(this._previousStyleCopy, this._previousStyle, this);
26197            this._previousStyle = nextProp;
26198          }
26199          nextProp = this._previousStyleCopy = _assign({}, nextProp);
26200        } else {
26201          this._previousStyleCopy = null;
26202        }
26203        if (lastProp) {
26204          // Unset styles on `lastProp` but not on `nextProp`.
26205          for (styleName in lastProp) {
26206            if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {
26207              styleUpdates = styleUpdates || {};
26208              styleUpdates[styleName] = '';
26209            }
26210          }
26211          // Update styles that changed since `lastProp`.
26212          for (styleName in nextProp) {
26213            if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {
26214              styleUpdates = styleUpdates || {};
26215              styleUpdates[styleName] = nextProp[styleName];
26216            }
26217          }
26218        } else {
26219          // Relies on `updateStylesByID` not mutating `styleUpdates`.
26220          styleUpdates = nextProp;
26221        }
26222      } else if (registrationNameModules.hasOwnProperty(propKey)) {
26223        if (nextProp) {
26224          enqueuePutListener(this, propKey, nextProp, transaction);
26225        } else if (lastProp) {
26226          deleteListener(this, propKey);
26227        }
26228      } else if (isCustomComponent(this._tag, nextProps)) {
26229        if (!RESERVED_PROPS.hasOwnProperty(propKey)) {
26230          DOMPropertyOperations.setValueForAttribute(getNode(this), propKey, nextProp);
26231        }
26232      } else if (DOMProperty.properties[propKey] || DOMProperty.isCustomAttribute(propKey)) {
26233        var node = getNode(this);
26234        // If we're updating to null or undefined, we should remove the property
26235        // from the DOM node instead of inadvertently setting to a string. This
26236        // brings us in line with the same behavior we have on initial render.
26237        if (nextProp != null) {
26238          DOMPropertyOperations.setValueForProperty(node, propKey, nextProp);
26239        } else {
26240          DOMPropertyOperations.deleteValueForProperty(node, propKey);
26241        }
26242      }
26243    }
26244    if (styleUpdates) {
26245      CSSPropertyOperations.setValueForStyles(getNode(this), styleUpdates, this);
26246    }
26247  },
26248
26249  /**
26250   * Reconciles the children with the various properties that affect the
26251   * children content.
26252   *
26253   * @param {object} lastProps
26254   * @param {object} nextProps
26255   * @param {ReactReconcileTransaction} transaction
26256   * @param {object} context
26257   */
26258  _updateDOMChildren: function (lastProps, nextProps, transaction, context) {
26259    var lastContent = CONTENT_TYPES[typeof lastProps.children] ? lastProps.children : null;
26260    var nextContent = CONTENT_TYPES[typeof nextProps.children] ? nextProps.children : null;
26261
26262    var lastHtml = lastProps.dangerouslySetInnerHTML && lastProps.dangerouslySetInnerHTML.__html;
26263    var nextHtml = nextProps.dangerouslySetInnerHTML && nextProps.dangerouslySetInnerHTML.__html;
26264
26265    // Note the use of `!=` which checks for null or undefined.
26266    var lastChildren = lastContent != null ? null : lastProps.children;
26267    var nextChildren = nextContent != null ? null : nextProps.children;
26268
26269    // If we're switching from children to content/html or vice versa, remove
26270    // the old content
26271    var lastHasContentOrHtml = lastContent != null || lastHtml != null;
26272    var nextHasContentOrHtml = nextContent != null || nextHtml != null;
26273    if (lastChildren != null && nextChildren == null) {
26274      this.updateChildren(null, transaction, context);
26275    } else if (lastHasContentOrHtml && !nextHasContentOrHtml) {
26276      this.updateTextContent('');
26277      if (process.env.NODE_ENV !== 'production') {
26278        ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);
26279      }
26280    }
26281
26282    if (nextContent != null) {
26283      if (lastContent !== nextContent) {
26284        this.updateTextContent('' + nextContent);
26285        if (process.env.NODE_ENV !== 'production') {
26286          setAndValidateContentChildDev.call(this, nextContent);
26287        }
26288      }
26289    } else if (nextHtml != null) {
26290      if (lastHtml !== nextHtml) {
26291        this.updateMarkup('' + nextHtml);
26292      }
26293      if (process.env.NODE_ENV !== 'production') {
26294        ReactInstrumentation.debugTool.onSetChildren(this._debugID, []);
26295      }
26296    } else if (nextChildren != null) {
26297      if (process.env.NODE_ENV !== 'production') {
26298        setAndValidateContentChildDev.call(this, null);
26299      }
26300
26301      this.updateChildren(nextChildren, transaction, context);
26302    }
26303  },
26304
26305  getHostNode: function () {
26306    return getNode(this);
26307  },
26308
26309  /**
26310   * Destroys all event registrations for this instance. Does not remove from
26311   * the DOM. That must be done by the parent.
26312   *
26313   * @internal
26314   */
26315  unmountComponent: function (safely) {
26316    switch (this._tag) {
26317      case 'audio':
26318      case 'form':
26319      case 'iframe':
26320      case 'img':
26321      case 'link':
26322      case 'object':
26323      case 'source':
26324      case 'video':
26325        var listeners = this._wrapperState.listeners;
26326        if (listeners) {
26327          for (var i = 0; i < listeners.length; i++) {
26328            listeners[i].remove();
26329          }
26330        }
26331        break;
26332      case 'input':
26333      case 'textarea':
26334        inputValueTracking.stopTracking(this);
26335        break;
26336      case 'html':
26337      case 'head':
26338      case 'body':
26339        /**
26340         * Components like <html> <head> and <body> can't be removed or added
26341         * easily in a cross-browser way, however it's valuable to be able to
26342         * take advantage of React's reconciliation for styling and <title>
26343         * management. So we just document it and throw in dangerous cases.
26344         */
26345         true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.', this._tag) : _prodInvariant('66', this._tag) : void 0;
26346        break;
26347    }
26348
26349    this.unmountChildren(safely);
26350    ReactDOMComponentTree.uncacheNode(this);
26351    EventPluginHub.deleteAllListeners(this);
26352    this._rootNodeID = 0;
26353    this._domID = 0;
26354    this._wrapperState = null;
26355
26356    if (process.env.NODE_ENV !== 'production') {
26357      setAndValidateContentChildDev.call(this, null);
26358    }
26359  },
26360
26361  getPublicInstance: function () {
26362    return getNode(this);
26363  }
26364};
26365
26366_assign(ReactDOMComponent.prototype, ReactDOMComponent.Mixin, ReactMultiChild.Mixin);
26367
26368module.exports = ReactDOMComponent;
26369/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
26370
26371/***/ }),
26372/* 474 */
26373/***/ (function(module, exports, __webpack_require__) {
26374
26375"use strict";
26376/**
26377 * Copyright (c) 2013-present, Facebook, Inc.
26378 *
26379 * This source code is licensed under the MIT license found in the
26380 * LICENSE file in the root directory of this source tree.
26381 *
26382 */
26383
26384
26385
26386var ReactDOMComponentTree = __webpack_require__(14);
26387
26388var focusNode = __webpack_require__(205);
26389
26390var AutoFocusUtils = {
26391  focusDOMComponent: function () {
26392    focusNode(ReactDOMComponentTree.getNodeFromInstance(this));
26393  }
26394};
26395
26396module.exports = AutoFocusUtils;
26397
26398/***/ }),
26399/* 475 */
26400/***/ (function(module, exports, __webpack_require__) {
26401
26402"use strict";
26403/* WEBPACK VAR INJECTION */(function(process) {/**
26404 * Copyright (c) 2013-present, Facebook, Inc.
26405 *
26406 * This source code is licensed under the MIT license found in the
26407 * LICENSE file in the root directory of this source tree.
26408 *
26409 */
26410
26411
26412
26413var CSSProperty = __webpack_require__(206);
26414var ExecutionEnvironment = __webpack_require__(16);
26415var ReactInstrumentation = __webpack_require__(28);
26416
26417var camelizeStyleName = __webpack_require__(476);
26418var dangerousStyleValue = __webpack_require__(478);
26419var hyphenateStyleName = __webpack_require__(479);
26420var memoizeStringOnly = __webpack_require__(481);
26421var warning = __webpack_require__(3);
26422
26423var processStyleName = memoizeStringOnly(function (styleName) {
26424  return hyphenateStyleName(styleName);
26425});
26426
26427var hasShorthandPropertyBug = false;
26428var styleFloatAccessor = 'cssFloat';
26429if (ExecutionEnvironment.canUseDOM) {
26430  var tempStyle = document.createElement('div').style;
26431  try {
26432    // IE8 throws "Invalid argument." if resetting shorthand style properties.
26433    tempStyle.font = '';
26434  } catch (e) {
26435    hasShorthandPropertyBug = true;
26436  }
26437  // IE8 only supports accessing cssFloat (standard) as styleFloat
26438  if (document.documentElement.style.cssFloat === undefined) {
26439    styleFloatAccessor = 'styleFloat';
26440  }
26441}
26442
26443if (process.env.NODE_ENV !== 'production') {
26444  // 'msTransform' is correct, but the other prefixes should be capitalized
26445  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;
26446
26447  // style values shouldn't contain a semicolon
26448  var badStyleValueWithSemicolonPattern = /;\s*$/;
26449
26450  var warnedStyleNames = {};
26451  var warnedStyleValues = {};
26452  var warnedForNaNValue = false;
26453
26454  var warnHyphenatedStyleName = function (name, owner) {
26455    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
26456      return;
26457    }
26458
26459    warnedStyleNames[name] = true;
26460    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName(name), checkRenderMessage(owner)) : void 0;
26461  };
26462
26463  var warnBadVendoredStyleName = function (name, owner) {
26464    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
26465      return;
26466    }
26467
26468    warnedStyleNames[name] = true;
26469    process.env.NODE_ENV !== 'production' ? warning(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner)) : void 0;
26470  };
26471
26472  var warnStyleValueWithSemicolon = function (name, value, owner) {
26473    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {
26474      return;
26475    }
26476
26477    warnedStyleValues[value] = true;
26478    process.env.NODE_ENV !== 'production' ? warning(false, "Style property values shouldn't contain a semicolon.%s " + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, '')) : void 0;
26479  };
26480
26481  var warnStyleValueIsNaN = function (name, value, owner) {
26482    if (warnedForNaNValue) {
26483      return;
26484    }
26485
26486    warnedForNaNValue = true;
26487    process.env.NODE_ENV !== 'production' ? warning(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner)) : void 0;
26488  };
26489
26490  var checkRenderMessage = function (owner) {
26491    if (owner) {
26492      var name = owner.getName();
26493      if (name) {
26494        return ' Check the render method of `' + name + '`.';
26495      }
26496    }
26497    return '';
26498  };
26499
26500  /**
26501   * @param {string} name
26502   * @param {*} value
26503   * @param {ReactDOMComponent} component
26504   */
26505  var warnValidStyle = function (name, value, component) {
26506    var owner;
26507    if (component) {
26508      owner = component._currentElement._owner;
26509    }
26510    if (name.indexOf('-') > -1) {
26511      warnHyphenatedStyleName(name, owner);
26512    } else if (badVendoredStyleNamePattern.test(name)) {
26513      warnBadVendoredStyleName(name, owner);
26514    } else if (badStyleValueWithSemicolonPattern.test(value)) {
26515      warnStyleValueWithSemicolon(name, value, owner);
26516    }
26517
26518    if (typeof value === 'number' && isNaN(value)) {
26519      warnStyleValueIsNaN(name, value, owner);
26520    }
26521  };
26522}
26523
26524/**
26525 * Operations for dealing with CSS properties.
26526 */
26527var CSSPropertyOperations = {
26528  /**
26529   * Serializes a mapping of style properties for use as inline styles:
26530   *
26531   *   > createMarkupForStyles({width: '200px', height: 0})
26532   *   "width:200px;height:0;"
26533   *
26534   * Undefined values are ignored so that declarative programming is easier.
26535   * The result should be HTML-escaped before insertion into the DOM.
26536   *
26537   * @param {object} styles
26538   * @param {ReactDOMComponent} component
26539   * @return {?string}
26540   */
26541  createMarkupForStyles: function (styles, component) {
26542    var serialized = '';
26543    for (var styleName in styles) {
26544      if (!styles.hasOwnProperty(styleName)) {
26545        continue;
26546      }
26547      var isCustomProperty = styleName.indexOf('--') === 0;
26548      var styleValue = styles[styleName];
26549      if (process.env.NODE_ENV !== 'production') {
26550        if (!isCustomProperty) {
26551          warnValidStyle(styleName, styleValue, component);
26552        }
26553      }
26554      if (styleValue != null) {
26555        serialized += processStyleName(styleName) + ':';
26556        serialized += dangerousStyleValue(styleName, styleValue, component, isCustomProperty) + ';';
26557      }
26558    }
26559    return serialized || null;
26560  },
26561
26562  /**
26563   * Sets the value for multiple styles on a node.  If a value is specified as
26564   * '' (empty string), the corresponding style property will be unset.
26565   *
26566   * @param {DOMElement} node
26567   * @param {object} styles
26568   * @param {ReactDOMComponent} component
26569   */
26570  setValueForStyles: function (node, styles, component) {
26571    if (process.env.NODE_ENV !== 'production') {
26572      ReactInstrumentation.debugTool.onHostOperation({
26573        instanceID: component._debugID,
26574        type: 'update styles',
26575        payload: styles
26576      });
26577    }
26578
26579    var style = node.style;
26580    for (var styleName in styles) {
26581      if (!styles.hasOwnProperty(styleName)) {
26582        continue;
26583      }
26584      var isCustomProperty = styleName.indexOf('--') === 0;
26585      if (process.env.NODE_ENV !== 'production') {
26586        if (!isCustomProperty) {
26587          warnValidStyle(styleName, styles[styleName], component);
26588        }
26589      }
26590      var styleValue = dangerousStyleValue(styleName, styles[styleName], component, isCustomProperty);
26591      if (styleName === 'float' || styleName === 'cssFloat') {
26592        styleName = styleFloatAccessor;
26593      }
26594      if (isCustomProperty) {
26595        style.setProperty(styleName, styleValue);
26596      } else if (styleValue) {
26597        style[styleName] = styleValue;
26598      } else {
26599        var expansion = hasShorthandPropertyBug && CSSProperty.shorthandPropertyExpansions[styleName];
26600        if (expansion) {
26601          // Shorthand property that IE8 won't like unsetting, so unset each
26602          // component to placate it
26603          for (var individualStyleName in expansion) {
26604            style[individualStyleName] = '';
26605          }
26606        } else {
26607          style[styleName] = '';
26608        }
26609      }
26610    }
26611  }
26612};
26613
26614module.exports = CSSPropertyOperations;
26615/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
26616
26617/***/ }),
26618/* 476 */
26619/***/ (function(module, exports, __webpack_require__) {
26620
26621"use strict";
26622/**
26623 * Copyright (c) 2013-present, Facebook, Inc.
26624 *
26625 * This source code is licensed under the MIT license found in the
26626 * LICENSE file in the root directory of this source tree.
26627 *
26628 * @typechecks
26629 */
26630
26631
26632
26633var camelize = __webpack_require__(477);
26634
26635var msPattern = /^-ms-/;
26636
26637/**
26638 * Camelcases a hyphenated CSS property name, for example:
26639 *
26640 *   > camelizeStyleName('background-color')
26641 *   < "backgroundColor"
26642 *   > camelizeStyleName('-moz-transition')
26643 *   < "MozTransition"
26644 *   > camelizeStyleName('-ms-transition')
26645 *   < "msTransition"
26646 *
26647 * As Andi Smith suggests
26648 * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix
26649 * is converted to lowercase `ms`.
26650 *
26651 * @param {string} string
26652 * @return {string}
26653 */
26654function camelizeStyleName(string) {
26655  return camelize(string.replace(msPattern, 'ms-'));
26656}
26657
26658module.exports = camelizeStyleName;
26659
26660/***/ }),
26661/* 477 */
26662/***/ (function(module, exports, __webpack_require__) {
26663
26664"use strict";
26665
26666
26667/**
26668 * Copyright (c) 2013-present, Facebook, Inc.
26669 *
26670 * This source code is licensed under the MIT license found in the
26671 * LICENSE file in the root directory of this source tree.
26672 *
26673 * @typechecks
26674 */
26675
26676var _hyphenPattern = /-(.)/g;
26677
26678/**
26679 * Camelcases a hyphenated string, for example:
26680 *
26681 *   > camelize('background-color')
26682 *   < "backgroundColor"
26683 *
26684 * @param {string} string
26685 * @return {string}
26686 */
26687function camelize(string) {
26688  return string.replace(_hyphenPattern, function (_, character) {
26689    return character.toUpperCase();
26690  });
26691}
26692
26693module.exports = camelize;
26694
26695/***/ }),
26696/* 478 */
26697/***/ (function(module, exports, __webpack_require__) {
26698
26699"use strict";
26700/* WEBPACK VAR INJECTION */(function(process) {/**
26701 * Copyright (c) 2013-present, Facebook, Inc.
26702 *
26703 * This source code is licensed under the MIT license found in the
26704 * LICENSE file in the root directory of this source tree.
26705 *
26706 */
26707
26708
26709
26710var CSSProperty = __webpack_require__(206);
26711var warning = __webpack_require__(3);
26712
26713var isUnitlessNumber = CSSProperty.isUnitlessNumber;
26714var styleWarnings = {};
26715
26716/**
26717 * Convert a value into the proper css writable value. The style name `name`
26718 * should be logical (no hyphens), as specified
26719 * in `CSSProperty.isUnitlessNumber`.
26720 *
26721 * @param {string} name CSS property name such as `topMargin`.
26722 * @param {*} value CSS property value such as `10px`.
26723 * @param {ReactDOMComponent} component
26724 * @return {string} Normalized style value with dimensions applied.
26725 */
26726function dangerousStyleValue(name, value, component, isCustomProperty) {
26727  // Note that we've removed escapeTextForBrowser() calls here since the
26728  // whole string will be escaped when the attribute is injected into
26729  // the markup. If you provide unsafe user data here they can inject
26730  // arbitrary CSS which may be problematic (I couldn't repro this):
26731  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
26732  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/
26733  // This is not an XSS hole but instead a potential CSS injection issue
26734  // which has lead to a greater discussion about how we're going to
26735  // trust URLs moving forward. See #2115901
26736
26737  var isEmpty = value == null || typeof value === 'boolean' || value === '';
26738  if (isEmpty) {
26739    return '';
26740  }
26741
26742  var isNonNumeric = isNaN(value);
26743  if (isCustomProperty || isNonNumeric || value === 0 || isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name]) {
26744    return '' + value; // cast to string
26745  }
26746
26747  if (typeof value === 'string') {
26748    if (process.env.NODE_ENV !== 'production') {
26749      // Allow '0' to pass through without warning. 0 is already special and
26750      // doesn't require units, so we don't need to warn about it.
26751      if (component && value !== '0') {
26752        var owner = component._currentElement._owner;
26753        var ownerName = owner ? owner.getName() : null;
26754        if (ownerName && !styleWarnings[ownerName]) {
26755          styleWarnings[ownerName] = {};
26756        }
26757        var warned = false;
26758        if (ownerName) {
26759          var warnings = styleWarnings[ownerName];
26760          warned = warnings[name];
26761          if (!warned) {
26762            warnings[name] = true;
26763          }
26764        }
26765        if (!warned) {
26766          process.env.NODE_ENV !== 'production' ? warning(false, 'a `%s` tag (owner: `%s`) was passed a numeric string value ' + 'for CSS property `%s` (value: `%s`) which will be treated ' + 'as a unitless number in a future version of React.', component._currentElement.type, ownerName || 'unknown', name, value) : void 0;
26767        }
26768      }
26769    }
26770    value = value.trim();
26771  }
26772  return value + 'px';
26773}
26774
26775module.exports = dangerousStyleValue;
26776/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
26777
26778/***/ }),
26779/* 479 */
26780/***/ (function(module, exports, __webpack_require__) {
26781
26782"use strict";
26783/**
26784 * Copyright (c) 2013-present, Facebook, Inc.
26785 *
26786 * This source code is licensed under the MIT license found in the
26787 * LICENSE file in the root directory of this source tree.
26788 *
26789 * @typechecks
26790 */
26791
26792
26793
26794var hyphenate = __webpack_require__(480);
26795
26796var msPattern = /^ms-/;
26797
26798/**
26799 * Hyphenates a camelcased CSS property name, for example:
26800 *
26801 *   > hyphenateStyleName('backgroundColor')
26802 *   < "background-color"
26803 *   > hyphenateStyleName('MozTransition')
26804 *   < "-moz-transition"
26805 *   > hyphenateStyleName('msTransition')
26806 *   < "-ms-transition"
26807 *
26808 * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix
26809 * is converted to `-ms-`.
26810 *
26811 * @param {string} string
26812 * @return {string}
26813 */
26814function hyphenateStyleName(string) {
26815  return hyphenate(string).replace(msPattern, '-ms-');
26816}
26817
26818module.exports = hyphenateStyleName;
26819
26820/***/ }),
26821/* 480 */
26822/***/ (function(module, exports, __webpack_require__) {
26823
26824"use strict";
26825
26826
26827/**
26828 * Copyright (c) 2013-present, Facebook, Inc.
26829 *
26830 * This source code is licensed under the MIT license found in the
26831 * LICENSE file in the root directory of this source tree.
26832 *
26833 * @typechecks
26834 */
26835
26836var _uppercasePattern = /([A-Z])/g;
26837
26838/**
26839 * Hyphenates a camelcased string, for example:
26840 *
26841 *   > hyphenate('backgroundColor')
26842 *   < "background-color"
26843 *
26844 * For CSS style names, use `hyphenateStyleName` instead which w
26844orks properly
26845 * with all vendor prefixes, including `ms`.
26846 *
26847 * @param {string} string
26848 * @return {string}
26849 */
26850function hyphenate(string) {
26851  return string.replace(_uppercasePattern, '-$1').toLowerCase();
26852}
26853
26854module.exports = hyphenate;
26855
26856/***/ }),
26857/* 481 */
26858/***/ (function(module, exports, __webpack_require__) {
26859
26860"use strict";
26861/**
26862 * Copyright (c) 2013-present, Facebook, Inc.
26863 *
26864 * This source code is licensed under the MIT license found in the
26865 * LICENSE file in the root directory of this source tree.
26866 *
26867 * 
26868 * @typechecks static-only
26869 */
26870
26871
26872
26873/**
26874 * Memoizes the return value of a function that accepts one string argument.
26875 */
26876
26877function memoizeStringOnly(callback) {
26878  var cache = {};
26879  return function (string) {
26880    if (!cache.hasOwnProperty(string)) {
26881      cache[string] = callback.call(this, string);
26882    }
26883    return cache[string];
26884  };
26885}
26886
26887module.exports = memoizeStringOnly;
26888
26889/***/ }),
26890/* 482 */
26891/***/ (function(module, exports, __webpack_require__) {
26892
26893"use strict";
26894/**
26895 * Copyright (c) 2013-present, Facebook, Inc.
26896 *
26897 * This source code is licensed under the MIT license found in the
26898 * LICENSE file in the root directory of this source tree.
26899 *
26900 */
26901
26902
26903
26904var escapeTextContentForBrowser = __webpack_require__(103);
26905
26906/**
26907 * Escapes attribute value to prevent scripting attacks.
26908 *
26909 * @param {*} value Value to escape.
26910 * @return {string} An escaped string.
26911 */
26912function quoteAttributeValueForBrowser(value) {
26913  return '"' + escapeTextContentForBrowser(value) + '"';
26914}
26915
26916module.exports = quoteAttributeValueForBrowser;
26917
26918/***/ }),
26919/* 483 */
26920/***/ (function(module, exports, __webpack_require__) {
26921
26922"use strict";
26923/**
26924 * Copyright (c) 2013-present, Facebook, Inc.
26925 *
26926 * This source code is licensed under the MIT license found in the
26927 * LICENSE file in the root directory of this source tree.
26928 *
26929 */
26930
26931
26932
26933var EventPluginHub = __webpack_require__(77);
26934
26935function runEventQueueInBatch(events) {
26936  EventPluginHub.enqueueEvents(events);
26937  EventPluginHub.processEventQueue(false);
26938}
26939
26940var ReactEventEmitterMixin = {
26941  /**
26942   * Streams a fired top-level event to `EventPluginHub` where plugins have the
26943   * opportunity to create `ReactEvent`s to be dispatched.
26944   */
26945  handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
26946    var events = EventPluginHub.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
26947    runEventQueueInBatch(events);
26948  }
26949};
26950
26951module.exports = ReactEventEmitterMixin;
26952
26953/***/ }),
26954/* 484 */
26955/***/ (function(module, exports, __webpack_require__) {
26956
26957"use strict";
26958/**
26959 * Copyright (c) 2013-present, Facebook, Inc.
26960 *
26961 * This source code is licensed under the MIT license found in the
26962 * LICENSE file in the root directory of this source tree.
26963 *
26964 */
26965
26966
26967
26968var ExecutionEnvironment = __webpack_require__(16);
26969
26970/**
26971 * Generate a mapping of standard vendor prefixes using the defined style property and event name.
26972 *
26973 * @param {string} styleProp
26974 * @param {string} eventName
26975 * @returns {object}
26976 */
26977function makePrefixMap(styleProp, eventName) {
26978  var prefixes = {};
26979
26980  prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
26981  prefixes['Webkit' + styleProp] = 'webkit' + eventName;
26982  prefixes['Moz' + styleProp] = 'moz' + eventName;
26983  prefixes['ms' + styleProp] = 'MS' + eventName;
26984  prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();
26985
26986  return prefixes;
26987}
26988
26989/**
26990 * A list of event names to a configurable list of vendor prefixes.
26991 */
26992var vendorPrefixes = {
26993  animationend: makePrefixMap('Animation', 'AnimationEnd'),
26994  animationiteration: makePrefixMap('Animation', 'AnimationIteration'),
26995  animationstart: makePrefixMap('Animation', 'AnimationStart'),
26996  transitionend: makePrefixMap('Transition', 'TransitionEnd')
26997};
26998
26999/**
27000 * Event names that have already been detected and prefixed (if applicable).
27001 */
27002var prefixedEventNames = {};
27003
27004/**
27005 * Element to check for prefixes on.
27006 */
27007var style = {};
27008
27009/**
27010 * Bootstrap if a DOM exists.
27011 */
27012if (ExecutionEnvironment.canUseDOM) {
27013  style = document.createElement('div').style;
27014
27015  // On some platforms, in particular some releases of Android 4.x,
27016  // the un-prefixed "animation" and "transition" properties are defined on the
27017  // style object but the events that fire will still be prefixed, so we need
27018  // to check if the un-prefixed events are usable, and if not remove them from the map.
27019  if (!('AnimationEvent' in window)) {
27020    delete vendorPrefixes.animationend.animation;
27021    delete vendorPrefixes.animationiteration.animation;
27022    delete vendorPrefixes.animationstart.animation;
27023  }
27024
27025  // Same as above
27026  if (!('TransitionEvent' in window)) {
27027    delete vendorPrefixes.transitionend.transition;
27028  }
27029}
27030
27031/**
27032 * Attempts to determine the correct vendor prefixed event name.
27033 *
27034 * @param {string} eventName
27035 * @returns {string}
27036 */
27037function getVendorPrefixedEventName(eventName) {
27038  if (prefixedEventNames[eventName]) {
27039    return prefixedEventNames[eventName];
27040  } else if (!vendorPrefixes[eventName]) {
27041    return eventName;
27042  }
27043
27044  var prefixMap = vendorPrefixes[eventName];
27045
27046  for (var styleProp in prefixMap) {
27047    if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {
27048      return prefixedEventNames[eventName] = prefixMap[styleProp];
27049    }
27050  }
27051
27052  return '';
27053}
27054
27055module.exports = getVendorPrefixedEventName;
27056
27057/***/ }),
27058/* 485 */
27059/***/ (function(module, exports, __webpack_require__) {
27060
27061"use strict";
27062/* WEBPACK VAR INJECTION */(function(process) {/**
27063 * Copyright (c) 2013-present, Facebook, Inc.
27064 *
27065 * This source code is licensed under the MIT license found in the
27066 * LICENSE file in the root directory of this source tree.
27067 *
27068 */
27069
27070
27071
27072var _prodInvariant = __webpack_require__(8),
27073    _assign = __webpack_require__(10);
27074
27075var DOMPropertyOperations = __webpack_require__(207);
27076var LinkedValueUtils = __webpack_require__(145);
27077var ReactDOMComponentTree = __webpack_require__(14);
27078var ReactUpdates = __webpack_require__(40);
27079
27080var invariant = __webpack_require__(2);
27081var warning = __webpack_require__(3);
27082
27083var didWarnValueLink = false;
27084var didWarnCheckedLink = false;
27085var didWarnValueDefaultValue = false;
27086var didWarnCheckedDefaultChecked = false;
27087var didWarnControlledToUncontrolled = false;
27088var didWarnUncontrolledToControlled = false;
27089
27090function forceUpdateIfMounted() {
27091  if (this._rootNodeID) {
27092    // DOM component is still mounted; update
27093    ReactDOMInput.updateWrapper(this);
27094  }
27095}
27096
27097function isControlled(props) {
27098  var usesChecked = props.type === 'checkbox' || props.type === 'radio';
27099  return usesChecked ? props.checked != null : props.value != null;
27100}
27101
27102/**
27103 * Implements an <input> host component that allows setting these optional
27104 * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.
27105 *
27106 * If `checked` or `value` are not supplied (or null/undefined), user actions
27107 * that affect the checked state or value will trigger updates to the element.
27108 *
27109 * If they are supplied (and not null/undefined), the rendered element will not
27110 * trigger updates to the element. Instead, the props must change in order for
27111 * the rendered element to be updated.
27112 *
27113 * The rendered element will be initialized as unchecked (or `defaultChecked`)
27114 * with an empty value (or `defaultValue`).
27115 *
27116 * @see http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html
27117 */
27118var ReactDOMInput = {
27119  getHostProps: function (inst, props) {
27120    var value = LinkedValueUtils.getValue(props);
27121    var checked = LinkedValueUtils.getChecked(props);
27122
27123    var hostProps = _assign({
27124      // Make sure we set .type before any other properties (setting .value
27125      // before .type means .value is lost in IE11 and below)
27126      type: undefined,
27127      // Make sure we set .step before .value (setting .value before .step
27128      // means .value is rounded on mount, based upon step precision)
27129      step: undefined,
27130      // Make sure we set .min & .max before .value (to ensure proper order
27131      // in corner cases such as min or max deriving from value, e.g. Issue #7170)
27132      min: undefined,
27133      max: undefined
27134    }, props, {
27135      defaultChecked: undefined,
27136      defaultValue: undefined,
27137      value: value != null ? value : inst._wrapperState.initialValue,
27138      checked: checked != null ? checked : inst._wrapperState.initialChecked,
27139      onChange: inst._wrapperState.onChange
27140    });
27141
27142    return hostProps;
27143  },
27144
27145  mountWrapper: function (inst, props) {
27146    if (process.env.NODE_ENV !== 'production') {
27147      LinkedValueUtils.checkPropTypes('input', props, inst._currentElement._owner);
27148
27149      var owner = inst._currentElement._owner;
27150
27151      if (props.valueLink !== undefined && !didWarnValueLink) {
27152        process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;
27153        didWarnValueLink = true;
27154      }
27155      if (props.checkedLink !== undefined && !didWarnCheckedLink) {
27156        process.env.NODE_ENV !== 'production' ? warning(false, '`checkedLink` prop on `input` is deprecated; set `value` and `onChange` instead.') : void 0;
27157        didWarnCheckedLink = true;
27158      }
27159      if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {
27160        process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A c
27160omponent', props.type) : void 0;
27161        didWarnCheckedDefaultChecked = true;
27162      }
27163      if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {
27164        process.env.NODE_ENV !== 'production' ? warning(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;
27165        didWarnValueDefaultValue = true;
27166      }
27167    }
27168
27169    var defaultValue = props.defaultValue;
27170    inst._wrapperState = {
27171      initialChecked: props.checked != null ? props.checked : props.defaultChecked,
27172      initialValue: props.value != null ? props.value : defaultValue,
27173      listeners: null,
27174      onChange: _handleChange.bind(inst),
27175      controlled: isControlled(props)
27176    };
27177  },
27178
27179  updateWrapper: function (inst) {
27180    var props = inst._currentElement.props;
27181
27182    if (process.env.NODE_ENV !== 'production') {
27183      var controlled = isControlled(props);
27184      var owner = inst._currentElement._owner;
27185
27186      if (!inst._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {
27187        process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A c
27187omponent', props.type) : void 0;
27188        didWarnUncontrolledToControlled = true;
27189      }
27190      if (inst._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {
27191        process.env.NODE_ENV !== 'production' ? warning(false, '%s is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', owner && owner.getName() || 'A component', props.type) : void 0;
27192        didWarnControlledToUncontrolled = true;
27193      }
27194    }
27195
27196    // TODO: Shouldn't this be getChecked(props)?
27197    var checked = props.checked;
27198    if (checked != null) {
27199      DOMPropertyOperations.setValueForProperty(ReactDOMComponentTree.getNodeFromInstance(inst), 'checked', checked || false);
27200    }
27201
27202    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
27203    var value = LinkedValueUtils.getValue(props);
27204    if (value != null) {
27205      if (value === 0 && node.value === '') {
27206        node.value = '0';
27207        // Note: IE9 reports a number inputs as 'text', so check props instead.
27208      } else if (props.type === 'number') {
27209        // Simulate `input.valueAsNumber`. IE9 does not support it
27210        var valueAsNumber = parseFloat(node.value, 10) || 0;
27211
27212        if (
27213        // eslint-disable-next-line
27214        value != valueAsNumber ||
27215        // eslint-disable-next-line
27216        value == valueAsNumber && node.value != value) {
27217          // Cast `value` to a string to ensure the value is set correctly. While
27218          // browsers typically do this as necessary, jsdom doesn't.
27219          node.value = '' + value;
27220        }
27221      } else if (node.value !== '' + value) {
27222        // Cast `value` to a string to ensure the value is set correctly. While
27223        // browsers typically do this as necessary, jsdom doesn't.
27224        node.value = '' + value;
27225      }
27226    } else {
27227      if (props.value == null && props.defaultValue != null) {
27228        // In Chrome, assigning defaultValue to certain input types triggers input validation.
27229        // For number inputs, the display value loses trailing decimal points. For email inputs,
27230        // Chrome raises "The specified value <x> is not a valid email address".
27231        //
27232        // Here we check to see if the defaultValue has actually changed, avoiding these problems
27233        // when the user is inputting text
27234        //
27235        // https://github.com/facebook/react/issues/7253
27236        if (node.defaultValue !== '' + props.defaultValue) {
27237          node.defaultValue = '' + props.defaultValue;
27238        }
27239      }
27240      if (props.checked == null && props.defaultChecked != null) {
27241        node.defaultChecked = !!props.defaultChecked;
27242      }
27243    }
27244  },
27245
27246  postMountWrapper: function (inst) {
27247    var props = inst._currentElement.props;
27248
27249    // This is in postMount because we need access to the DOM node, which is not
27250    // available until after the component has mounted.
27251    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
27252
27253    // Detach value from defaultValue. We won't do anything if we're working on
27254    // submit or reset inputs as those values & defaultValues are linked. They
27255    // are not resetable nodes so this operation doesn't matter and actually
27256    // removes browser-default values (eg "Submit Query") when no value is
27257    // provided.
27258
27259    switch (props.type) {
27260      case 'submit':
27261      case 'reset':
27262        break;
27263      case 'color':
27264      case 'date':
27265      case 'datetime':
27266      case 'datetime-local':
27267      case 'month':
27268      case 'time':
27269      case 'week':
27270        // This fixes the no-show issue on iOS Safari and Android Chrome:
27271        // https://github.com/facebook/react/issues/7233
27272        node.value = '';
27273        node.value = node.defaultValue;
27274        break;
27275      default:
27276        node.value = node.value;
27277        break;
27278    }
27279
27280    // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug
27281    // this is needed to work around a chrome bug where setting defaultChecked
27282    // will sometimes influence the value of checked (even after detachment).
27283    // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416
27284    // We need to temporarily unset name to avoid disrupting radio button groups.
27285    var name = node.name;
27286    if (name !== '') {
27287      node.name = '';
27288    }
27289    node.defaultChecked = !node.defaultChecked;
27290    node.defaultChecked = !node.defaultChecked;
27291    if (name !== '') {
27292      node.name = name;
27293    }
27294  }
27295};
27296
27297function _handleChange(event) {
27298  var props = this._currentElement.props;
27299
27300  var returnValue = LinkedValueUtils.executeOnChange(props, event);
27301
27302  // Here we use asap to wait until all updates have propagated, which
27303  // is important when using controlled components within layers:
27304  // https://github.com/facebook/react/issues/1698
27305  ReactUpdates.asap(forceUpdateIfMounted, this);
27306
27307  var name = props.name;
27308  if (props.type === 'radio' && name != null) {
27309    var rootNode = ReactDOMComponentTree.getNodeFromInstance(this);
27310    var queryRoot = rootNode;
27311
27312    while (queryRoot.parentNode) {
27313      queryRoot = queryRoot.parentNode;
27314    }
27315
27316    // If `rootNode.form` was non-null, then we could try `form.elements`,
27317    // but that sometimes behaves strangely in IE8. We could also try using
27318    // `form.getElementsByName`, but that will only return direct children
27319    // and won't include inputs that use the HTML5 `form=` attribute. Since
27320    // the input might not even be in a form, let's just use the global
27321    // `querySelectorAll` to ensure we don't miss anything.
27322    var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]');
27323
27324    for (var i = 0; i < group.length; i++) {
27325      var otherNode = group[i];
27326      if (otherNode === rootNode || otherNode.form !== rootNode.form) {
27327        continue;
27328      }
27329      // This will throw if radio buttons rendered by different copies of React
27330      // and the same name are rendered into the same form (same as #1939).
27331      // That's probably okay; we don't support it just as we don't support
27332      // mixing React radio buttons with non-React ones.
27333      var otherInstance = ReactDOMComponentTree.getInstanceFromNode(otherNode);
27334      !otherInstance ? process.env.NODE_ENV !== 'production' ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : _prodInvariant('90') : void 0;
27335      // If this is a controlled radio button group, forcing the input that
27336      // was previously checked to update will cause it to be come re-checked
27337      // as appropriate.
27338      ReactUpdates.asap(forceUpdateIfMounted, otherInstance);
27339    }
27340  }
27341
27342  return returnValue;
27343}
27344
27345module.exports = ReactDOMInput;
27346/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
27347
27348/***/ }),
27349/* 486 */
27350/***/ (function(module, exports, __webpack_require__) {
27351
27352"use strict";
27353/* WEBPACK VAR INJECTION */(function(process) {/**
27354 * Copyright (c) 2013-present, Facebook, Inc.
27355 *
27356 * This source code is licensed under the MIT license found in the
27357 * LICENSE file in the root directory of this source tree.
27358 *
27359 */
27360
27361
27362
27363var _assign = __webpack_require__(10);
27364
27365var React = __webpack_require__(66);
27366var ReactDOMComponentTree = __webpack_require__(14);
27367var ReactDOMSelect = __webpack_require__(209);
27368
27369var warning = __webpack_require__(3);
27370var didWarnInvalidOptionChildren = false;
27371
27372function flattenChildren(children) {
27373  var content = '';
27374
27375  // Flatten children and warn if they aren't strings or numbers;
27376  // invalid types are ignored.
27377  React.Children.forEach(children, function (child) {
27378    if (child == null) {
27379      return;
27380    }
27381    if (typeof child === 'string' || typeof child === 'number') {
27382      content += child;
27383    } else if (!didWarnInvalidOptionChildren) {
27384      didWarnInvalidOptionChildren = true;
27385      process.env.NODE_ENV !== 'production' ? warning(false, 'Only strings and numbers are supported as <option> children.') : void 0;
27386    }
27387  });
27388
27389  return content;
27390}
27391
27392/**
27393 * Implements an <option> host component that warns when `selected` is set.
27394 */
27395var ReactDOMOption = {
27396  mountWrapper: function (inst, props, hostParent) {
27397    // TODO (yungsters): Remove support for `selected` in <option>.
27398    if (process.env.NODE_ENV !== 'production') {
27399      process.env.NODE_ENV !== 'production' ? warning(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.') : void 0;
27400    }
27401
27402    // Look up whether this option is 'selected'
27403    var selectValue = null;
27404    if (hostParent != null) {
27405      var selectParent = hostParent;
27406
27407      if (selectParent._tag === 'optgroup') {
27408        selectParent = selectParent._hostParent;
27409      }
27410
27411      if (selectParent != null && selectParent._tag === 'select') {
27412        selectValue = ReactDOMSelect.getSelectValueContext(selectParent);
27413      }
27414    }
27415
27416    // If the value is null (e.g., no specified value or after initial mount)
27417    // or missing (e.g., for <datalist>), we don't change props.selected
27418    var selected = null;
27419    if (selectValue != null) {
27420      var value;
27421      if (props.value != null) {
27422        value = props.value + '';
27423      } else {
27424        value = flattenChildren(props.children);
27425      }
27426      selected = false;
27427      if (Array.isArray(selectValue)) {
27428        // multiple
27429        for (var i = 0; i < selectValue.length; i++) {
27430          if ('' + selectValue[i] === value) {
27431            selected = true;
27432            break;
27433          }
27434        }
27435      } else {
27436        selected = '' + selectValue === value;
27437      }
27438    }
27439
27440    inst._wrapperState = { selected: selected };
27441  },
27442
27443  postMountWrapper: function (inst) {
27444    // value="" should make a value attribute (#6219)
27445    var props = inst._currentElement.props;
27446    if (props.value != null) {
27447      var node = ReactDOMComponentTree.getNodeFromInstance(inst);
27448      node.setAttribute('value', props.value);
27449    }
27450  },
27451
27452  getHostProps: function (inst, props) {
27453    var hostProps = _assign({ selected: undefined, children: undefined }, props);
27454
27455    // Read state only from initial mount because <select> updates value
27456    // manually; we need the initial state only for server rendering
27457    if (inst._wrapperState.selected != null) {
27458      hostProps.selected = inst._wrapperState.selected;
27459    }
27460
27461    var content = flattenChildren(props.children);
27462
27463    if (content) {
27464      hostProps.children = content;
27465    }
27466
27467    return hostProps;
27468  }
27469};
27470
27471module.exports = ReactDOMOption;
27472/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
27473
27474/***/ }),
27475/* 487 */
27476/***/ (function(module, exports, __webpack_require__) {
27477
27478"use strict";
27479/* WEBPACK VAR INJECTION */(function(process) {/**
27480 * Copyright (c) 2013-present, Facebook, Inc.
27481 *
27482 * This source code is licensed under the MIT license found in the
27483 * LICENSE file in the root directory of this source tree.
27484 *
27485 */
27486
27487
27488
27489var _prodInvariant = __webpack_require__(8),
27490    _assign = __webpack_require__(10);
27491
27492var LinkedValueUtils = __webpack_require__(145);
27493var ReactDOMComponentTree = __webpack_require__(14);
27494var ReactUpdates = __webpack_require__(40);
27495
27496var invariant = __webpack_require__(2);
27497var warning = __webpack_require__(3);
27498
27499var didWarnValueLink = false;
27500var didWarnValDefaultVal = false;
27501
27502function forceUpdateIfMounted() {
27503  if (this._rootNodeID) {
27504    // DOM component is still mounted; update
27505    ReactDOMTextarea.updateWrapper(this);
27506  }
27507}
27508
27509/**
27510 * Implements a <textarea> host component that allows setting `value`, and
27511 * `defaultValue`. This differs from the traditional DOM API because value is
27512 * usually set as PCDATA children.
27513 *
27514 * If `value` is not supplied (or null/undefined), user actions that affect the
27515 * value will trigger updates to the element.
27516 *
27517 * If `value` is supplied (and not null/undefined), the rendered element will
27518 * not trigger updates to the element. Instead, the `value` prop must change in
27519 * order for the rendered element to be updated.
27520 *
27521 * The rendered element will be initialized with an empty value, the prop
27522 * `defaultValue` if specified, or the children content (deprecated).
27523 */
27524var ReactDOMTextarea = {
27525  getHostProps: function (inst, props) {
27526    !(props.dangerouslySetInnerHTML == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : _prodInvariant('91') : void 0;
27527
27528    // Always set children to the same thing. In IE9, the selection range will
27529    // get reset if `textContent` is mutated.  We could add a check in setTextContent
27530    // to only set the value if/when the value differs from the node value (which would
27531    // completely solve this IE9 bug), but Sebastian+Ben seemed to like this solution.
27532    // The value can be a boolean or object so that's why it's forced to be a string.
27533    var hostProps = _assign({}, props, {
27534      value: undefined,
27535      defaultValue: undefined,
27536      children: '' + inst._wrapperState.initialValue,
27537      onChange: inst._wrapperState.onChange
27538    });
27539
27540    return hostProps;
27541  },
27542
27543  mountWrapper: function (inst, props) {
27544    if (process.env.NODE_ENV !== 'production') {
27545      LinkedValueUtils.checkPropTypes('textarea', props, inst._currentElement._owner);
27546      if (props.valueLink !== undefined && !didWarnValueLink) {
27547        process.env.NODE_ENV !== 'production' ? warning(false, '`valueLink` prop on `textarea` is deprecated; set `value` and `onChange` instead.') : void 0;
27548        didWarnValueLink = true;
27549      }
27550      if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {
27551        process.env.NODE_ENV !== 'production' ? warning(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components') : void 0;
27552        didWarnValDefaultVal = true;
27553      }
27554    }
27555
27556    var value = LinkedValueUtils.getValue(props);
27557    var initialValue = value;
27558
27559    // Only bother fetching default value if we're going to use it
27560    if (value == null) {
27561      var defaultValue = props.defaultValue;
27562      // TODO (yungsters): Remove support for children content in <textarea>.
27563      var children = props.children;
27564      if (children != null) {
27565        if (process.env.NODE_ENV !== 'production') {
27566          process.env.NODE_ENV !== 'production' ? warning(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.') : void 0;
27567        }
27568        !(defaultValue == null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : _prodInvariant('92') : void 0;
27569        if (Array.isArray(children)) {
27570          !(children.length <= 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, '<textarea> can only have at most one child.') : _prodInvariant('93') : void 0;
27571          children = children[0];
27572        }
27573
27574        defaultValue = '' + children;
27575      }
27576      if (defaultValue == null) {
27577        defaultValue = '';
27578      }
27579      initialValue = defaultValue;
27580    }
27581
27582    inst._wrapperState = {
27583      initialValue: '' + initialValue,
27584      listeners: null,
27585      onChange: _handleChange.bind(inst)
27586    };
27587  },
27588
27589  updateWrapper: function (inst) {
27590    var props = inst._currentElement.props;
27591
27592    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
27593    var value = LinkedValueUtils.getValue(props);
27594    if (value != null) {
27595      // Cast `value` to a string to ensure the value is set correctly. While
27596      // browsers typically do this as necessary, jsdom doesn't.
27597      var newValue = '' + value;
27598
27599      // To avoid side effects (such as losing text selection), only set value if changed
27600      if (newValue !== node.value) {
27601        node.value = newValue;
27602      }
27603      if (props.defaultValue == null) {
27604        node.defaultValue = newValue;
27605      }
27606    }
27607    if (props.defaultValue != null) {
27608      node.defaultValue = props.defaultValue;
27609    }
27610  },
27611
27612  postMountWrapper: function (inst) {
27613    // This is in postMount because we need access to the DOM node, which is not
27614    // available until after the component has mounted.
27615    var node = ReactDOMComponentTree.getNodeFromInstance(inst);
27616    var textContent = node.textContent;
27617
27618    // Only set node.value if textContent is equal to the expected
27619    // initial value. In IE10/IE11 there is a bug where the placeholder attribute
27620    // will populate textContent as well.
27621    // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/
27622    if (textContent === inst._wrapperState.initialValue) {
27623      node.value = textContent;
27624    }
27625  }
27626};
27627
27628function _handleChange(event) {
27629  var props = this._currentElement.props;
27630  var returnValue = LinkedValueUtils.executeOnChange(props, event);
27631  ReactUpdates.asap(forceUpdateIfMounted, this);
27632  return returnValue;
27633}
27634
27635module.exports = ReactDOMTextarea;
27636/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
27637
27638/***/ }),
27639/* 488 */
27640/***/ (function(module, exports, __webpack_require__) {
27641
27642"use strict";
27643/* WEBPACK VAR INJECTION */(function(process) {/**
27644 * Copyright (c) 2013-present, Facebook, Inc.
27645 *
27646 * This source code is licensed under the MIT license found in the
27647 * LICENSE file in the root directory of this source tree.
27648 *
27649 */
27650
27651
27652
27653var _prodInvariant = __webpack_require__(8);
27654
27655var ReactComponentEnvironment = __webpack_require__(146);
27656var ReactInstanceMap = __webpack_require__(79);
27657var ReactInstrumentation = __webpack_require__(28);
27658
27659var ReactCurrentOwner = __webpack_require__(39);
27660var ReactReconciler = __webpack_require__(68);
27661var ReactChildReconciler = __webpack_require__(489);
27662
27663var emptyFunction = __webpack_require__(38);
27664var flattenChildren = __webpack_require__(496);
27665var invariant = __webpack_require__(2);
27666
27667/**
27668 * Make an update for markup to be rendered and inserted at a supplied index.
27669 *
27670 * @param {string} markup Markup that renders into an element.
27671 * @param {number} toIndex Destination index.
27672 * @private
27673 */
27674function makeInsertMarkup(markup, afterNode, toIndex) {
27675  // NOTE: Null values reduce hidden classes.
27676  return {
27677    type: 'INSERT_MARKUP',
27678    content: markup,
27679    fromIndex: null,
27680    fromNode: null,
27681    toIndex: toIndex,
27682    afterNode: afterNode
27683  };
27684}
27685
27686/**
27687 * Make an update for moving an existing element to another index.
27688 *
27689 * @param {number} fromIndex Source index of the existing element.
27690 * @param {number} toIndex Destination index of the element.
27691 * @private
27692 */
27693function makeMove(child, afterNode, toIndex) {
27694  // NOTE: Null values reduce hidden classes.
27695  return {
27696    type: 'MOVE_EXISTING',
27697    content: null,
27698    fromIndex: child._mountIndex,
27699    fromNode: ReactReconciler.getHostNode(child),
27700    toIndex: toIndex,
27701    afterNode: afterNode
27702  };
27703}
27704
27705/**
27706 * Make an update for removing an element at an index.
27707 *
27708 * @param {number} fromIndex Index of the element to remove.
27709 * @private
27710 */
27711function makeRemove(child, node) {
27712  // NOTE: Null values reduce hidden classes.
27713  return {
27714    type: 'REMOVE_NODE',
27715    content: null,
27716    fromIndex: child._mountIndex,
27717    fromNode: node,
27718    toIndex: null,
27719    afterNode: null
27720  };
27721}
27722
27723/**
27724 * Make an update for setting the markup of a node.
27725 *
27726 * @param {string} markup Markup that renders into an element.
27727 * @private
27728 */
27729function makeSetMarkup(markup) {
27730  // NOTE: Null values reduce hidden classes.
27731  return {
27732    type: 'SET_MARKUP',
27733    content: markup,
27734    fromIndex: null,
27735    fromNode: null,
27736    toIndex: null,
27737    afterNode: null
27738  };
27739}
27740
27741/**
27742 * Make an update for setting the text content.
27743 *
27744 * @param {string} textContent Text content to set.
27745 * @private
27746 */
27747function makeTextContent(textContent) {
27748  // NOTE: Null values reduce hidden classes.
27749  return {
27750    type: 'TEXT_CONTENT',
27751    content: textContent,
27752    fromIndex: null,
27753    fromNode: null,
27754    toIndex: null,
27755    afterNode: null
27756  };
27757}
27758
27759/**
27760 * Push an update, if any, onto the queue. Creates a new queue if none is
27761 * passed and always returns the queue. Mutative.
27762 */
27763function enqueue(queue, update) {
27764  if (update) {
27765    queue = queue || [];
27766    queue.push(update);
27767  }
27768  return queue;
27769}
27770
27771/**
27772 * Processes any enqueued updates.
27773 *
27774 * @private
27775 */
27776function processQueue(inst, updateQueue) {
27777  ReactComponentEnvironment.processChildrenUpdates(inst, updateQueue);
27778}
27779
27780var setChildrenForInstrumentation = emptyFunction;
27781if (process.env.NODE_ENV !== 'production') {
27782  var getDebugID = function (inst) {
27783    if (!inst._debugID) {
27784      // Check for ART-like instances. TODO: This is silly/gross.
27785      var internal;
27786      if (internal = ReactInstanceMap.get(inst)) {
27787        inst = internal;
27788      }
27789    }
27790    return inst._debugID;
27791  };
27792  setChildrenForInstrumentation = function (children) {
27793    var debugID = getDebugID(this);
27794    // TODO: React Native empty components are also multichild.
27795    // This means they still get into this method but don't have _debugID.
27796    if (debugID !== 0) {
27797      ReactInstrumentation.debugTool.onSetChildren(debugID, children ? Object.keys(children).map(function (key) {
27798        return children[key]._debugID;
27799      }) : []);
27800    }
27801  };
27802}
27803
27804/**
27805 * ReactMultiChild are capable of reconciling multiple children.
27806 *
27807 * @class ReactMultiChild
27808 * @internal
27809 */
27810var ReactMultiChild = {
27811  /**
27812   * Provides common functionality for components that must reconcile multiple
27813   * children. This is used by `ReactDOMComponent` to mount, update, and
27814   * unmount child components.
27815   *
27816   * @lends {ReactMultiChild.prototype}
27817   */
27818  Mixin: {
27819    _reconcilerInstantiateChildren: function (nestedChildren, transaction, context) {
27820      if (process.env.NODE_ENV !== 'production') {
27821        var selfDebugID = getDebugID(this);
27822        if (this._currentElement) {
27823          try {
27824            ReactCurrentOwner.current = this._currentElement._owner;
27825            return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context, selfDebugID);
27826          } finally {
27827            ReactCurrentOwner.current = null;
27828          }
27829        }
27830      }
27831      return ReactChildReconciler.instantiateChildren(nestedChildren, transaction, context);
27832    },
27833
27834    _reconcilerUpdateChildren: function (prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context) {
27835      var nextChildren;
27836      var selfDebugID = 0;
27837      if (process.env.NODE_ENV !== 'production') {
27838        selfDebugID = getDebugID(this);
27839        if (this._currentElement) {
27840          try {
27841            ReactCurrentOwner.current = this._currentElement._owner;
27842            nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);
27843          } finally {
27844            ReactCurrentOwner.current = null;
27845          }
27846          ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);
27847          return nextChildren;
27848        }
27849      }
27850      nextChildren = flattenChildren(nextNestedChildrenElements, selfDebugID);
27851      ReactChildReconciler.updateChildren(prevChildren, nextChildren, mountImages, removedNodes, transaction, this, this._hostContainerInfo, context, selfDebugID);
27852      return nextChildren;
27853    },
27854
27855    /**
27856     * Generates a "mount image" for each of the supplied children. In the case
27857     * of `ReactDOMComponent`, a mount image is a string of markup.
27858     *
27859     * @param {?object} nestedChildren Nested child maps.
27860     * @return {array} An array of mounted representations.
27861     * @internal
27862     */
27863    mountChildren: function (nestedChildren, transaction, context) {
27864      var children = this._reconcilerInstantiateChildren(nestedChildren, transaction, context);
27865      this._renderedChildren = children;
27866
27867      var mountImages = [];
27868      var index = 0;
27869      for (var name in children) {
27870        if (children.hasOwnProperty(name)) {
27871          var child = children[name];
27872          var selfDebugID = 0;
27873          if (process.env.NODE_ENV !== 'production') {
27874            selfDebugID = getDebugID(this);
27875          }
27876          var mountImage = ReactReconciler.mountComponent(child, transaction, this, this._hostContainerInfo, context, selfDebugID);
27877          child._mountIndex = index++;
27878          mountImages.push(mountImage);
27879        }
27880      }
27881
27882      if (process.env.NODE_ENV !== 'production') {
27883        setChildrenForInstrumentation.call(this, children);
27884      }
27885
27886      return mountImages;
27887    },
27888
27889    /**
27890     * Replaces any rendered children with a text content string.
27891     *
27892     * @param {string} nextContent String of content.
27893     * @internal
27894     */
27895    updateTextContent: function (nextContent) {
27896      var prevChildren = this._renderedChildren;
27897      // Remove any rendered children.
27898      ReactChildReconciler.unmountChildren(prevChildren, false);
27899      for (var name in prevChildren) {
27900        if (prevChildren.hasOwnProperty(name)) {
27901           true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;
27902        }
27903      }
27904      // Set new text content.
27905      var updates = [makeTextContent(nextContent)];
27906      processQueue(this, updates);
27907    },
27908
27909    /**
27910     * Replaces any rendered children with a markup string.
27911     *
27912     * @param {string} nextMarkup String of markup.
27913     * @internal
27914     */
27915    updateMarkup: function (nextMarkup) {
27916      var prevChildren = this._renderedChildren;
27917      // Remove any rendered children.
27918      ReactChildReconciler.unmountChildren(prevChildren, false);
27919      for (var name in prevChildren) {
27920        if (prevChildren.hasOwnProperty(name)) {
27921           true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'updateTextContent called on non-empty component.') : _prodInvariant('118') : void 0;
27922        }
27923      }
27924      var updates = [makeSetMarkup(nextMarkup)];
27925      processQueue(this, updates);
27926    },
27927
27928    /**
27929     * Updates the rendered children with new children.
27930     *
27931     * @param {?object} nextNestedChildrenElements Nested child element maps.
27932     * @param {ReactReconcileTransaction} transaction
27933     * @internal
27934     */
27935    updateChildren: function (nextNestedChildrenElements, transaction, context) {
27936      // Hook used by React ART
27937      this._updateChildren(nextNestedChildrenElements, transaction, context);
27938    },
27939
27940    /**
27941     * @param {?object} nextNestedChildrenElements Nested child element maps.
27942     * @param {ReactReconcileTransaction} transaction
27943     * @final
27944     * @protected
27945     */
27946    _updateChildren: function (nextNestedChildrenElements, transaction, context) {
27947      var prevChildren = this._renderedChildren;
27948      var removedNodes = {};
27949      var mountImages = [];
27950      var nextChildren = this._reconcilerUpdateChildren(prevChildren, nextNestedChildrenElements, mountImages, removedNodes, transaction, context);
27951      if (!nextChildren && !prevChildren) {
27952        return;
27953      }
27954      var updates = null;
27955      var name;
27956      // `nextIndex` will increment for each child in `nextChildren`, but
27957      // `lastIndex` will be the last index visited in `prevChildren`.
27958      var nextIndex = 0;
27959      var lastIndex = 0;
27960      // `nextMountIndex` will increment for each newly mounted child.
27961      var nextMountIndex = 0;
27962      var lastPlacedNode = null;
27963      for (name in nextChildren) {
27964        if (!nextChildren.hasOwnProperty(name)) {
27965          continue;
27966        }
27967        var prevChild = prevChildren && prevChildren[name];
27968        var nextChild = nextChildren[name];
27969        if (prevChild === nextChild) {
27970          updates = enqueue(updates, this.moveChild(prevChild, lastPlacedNode, nextIndex, lastIndex));
27971          lastIndex = Math.max(prevChild._mountIndex, lastIndex);
27972          prevChild._mountIndex = nextIndex;
27973        } else {
27974          if (prevChild) {
27975            // Update `lastIndex` before `_mountIndex` gets unset by unmounting.
27976            lastIndex = Math.max(prevChild._mountIndex, lastIndex);
27977            // The `removedNodes` loop below will actually remove the child.
27978          }
27979          // The child must be instantiated before it's mounted.
27980          updates = enqueue(updates, this._mountChildAtIndex(nextChild, mountImages[nextMountIndex], lastPlacedNode, nextIndex, transaction, context));
27981          nextMountIndex++;
27982        }
27983        nextIndex++;
27984        lastPlacedNode = ReactReconciler.getHostNode(nextChild);
27985      }
27986      // Remove children that are no longer present.
27987      for (name in removedNodes) {
27988        if (removedNodes.hasOwnProperty(name)) {
27989          updates = enqueue(updates, this._unmountChild(prevChildren[name], removedNodes[name]));
27990        }
27991      }
27992      if (updates) {
27993        processQueue(this, updates);
27994      }
27995      this._renderedChildren = nextChildren;
27996
27997      if (process.env.NODE_ENV !== 'production') {
27998        setChildrenForInstrumentation.call(this, nextChildren);
27999      }
28000    },
28001
28002    /**
28003     * Unmounts all rendered children. This should be used to clean up children
28004     * when this component is unmounted. It does not actually perform any
28005     * backend operations.
28006     *
28007     * @internal
28008     */
28009    unmountChildren: function (safely) {
28010      var renderedChildren = this._renderedChildren;
28011      ReactChildReconciler.unmountChildren(renderedChildren, safely);
28012      this._renderedChildren = null;
28013    },
28014
28015    /**
28016     * Moves a child component to the supplied index.
28017     *
28018     * @param {ReactComponent} child Component to move.
28019     * @param {number} toIndex Destination index of the element.
28020     * @param {number} lastIndex Last index visited of the siblings of `child`.
28021     * @protected
28022     */
28023    moveChild: function (child, afterNode, toIndex, lastIndex) {
28024      // If the index of `child` is less than `lastIndex`, then it needs to
28025      // be moved. Otherwise, we do not need to move it because a child will be
28026      // inserted or moved before `child`.
28027      if (child._mountIndex < lastIndex) {
28028        return makeMove(child, afterNode, toIndex);
28029      }
28030    },
28031
28032    /**
28033     * Creates a child component.
28034     *
28035     * @param {ReactComponent} child Component to create.
28036     * @param {string} mountImage Markup to insert.
28037     * @protected
28038     */
28039    createChild: function (child, afterNode, mountImage) {
28040      return makeInsertMarkup(mountImage, afterNode, child._mountIndex);
28041    },
28042
28043    /**
28044     * Removes a child component.
28045     *
28046     * @param {ReactComponent} child Child to remove.
28047     * @protected
28048     */
28049    removeChild: function (child, node) {
28050      return makeRemove(child, node);
28051    },
28052
28053    /**
28054     * Mounts a child with the supplied name.
28055     *
28056     * NOTE: This is part of `updateChildren` and is here for readability.
28057     *
28058     * @param {ReactComponent} child Component to mount.
28059     * @param {string} name Name of the child.
28060     * @param {number} index Index at which to insert the child.
28061     * @param {ReactReconcileTransaction} transaction
28062     * @private
28063     */
28064    _mountChildAtIndex: function (child, mountImage, afterNode, index, transaction, context) {
28065      child._mountIndex = index;
28066      return this.createChild(child, afterNode, mountImage);
28067    },
28068
28069    /**
28070     * Unmounts a rendered child.
28071     *
28072     * NOTE: This is part of `updateChildren` and is here for readability.
28073     *
28074     * @param {ReactComponent} child Component to unmount.
28075     * @private
28076     */
28077    _unmountChild: function (child, node) {
28078      var update = this.removeChild(child, node);
28079      child._mountIndex = null;
28080      return update;
28081    }
28082  }
28083};
28084
28085module.exports = ReactMultiChild;
28086/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
28087
28088/***/ }),
28089/* 489 */
28090/***/ (function(module, exports, __webpack_require__) {
28091
28092"use strict";
28093/* WEBPACK VAR INJECTION */(function(process) {/**
28094 * Copyright (c) 2014-present, Facebook, Inc.
28095 *
28096 * This source code is licensed under the MIT license found in the
28097 * LICENSE file in the root directory of this source tree.
28098 *
28099 */
28100
28101
28102
28103var ReactReconciler = __webpack_require__(68);
28104
28105var instantiateReactComponent = __webpack_require__(210);
28106var KeyEscapeUtils = __webpack_require__(149);
28107var shouldUpdateReactComponent = __webpack_require__(148);
28108var traverseAllChildren = __webpack_require__(214);
28109var warning = __webpack_require__(3);
28110
28111var ReactComponentTreeHook;
28112
28113if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {
28114  // Temporary hack.
28115  // Inline requires don't work well with Jest:
28116  // https://github.com/facebook/react/issues/7240
28117  // Remove the inline requires when we don't need them anymore:
28118  // https://github.com/facebook/react/pull/7178
28119  ReactComponentTreeHook = __webpack_require__(22);
28120}
28121
28122function instantiateChild(childInstances, child, name, selfDebugID) {
28123  // We found a component instance.
28124  var keyUnique = childInstances[name] === undefined;
28125  if (process.env.NODE_ENV !== 'production') {
28126    if (!ReactComponentTreeHook) {
28127      ReactComponentTreeHook = __webpack_require__(22);
28128    }
28129    if (!keyUnique) {
28130      process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;
28131    }
28132  }
28133  if (child != null && keyUnique) {
28134    childInstances[name] = instantiateReactComponent(child, true);
28135  }
28136}
28137
28138/**
28139 * ReactChildReconciler provides helpers for initializing or updating a set of
28140 * children. Its output is suitable for passing it onto ReactMultiChild which
28141 * does diffed reordering and insertion.
28142 */
28143var ReactChildReconciler = {
28144  /**
28145   * Generates a "mount image" for each of the supplied children. In the case
28146   * of `ReactDOMComponent`, a mount image is a string of markup.
28147   *
28148   * @param {?object} nestedChildNodes Nested child maps.
28149   * @return {?object} A set of child instances.
28150   * @internal
28151   */
28152  instantiateChildren: function (nestedChildNodes, transaction, context, selfDebugID) // 0 in production and for roots
28153  {
28154    if (nestedChildNodes == null) {
28155      return null;
28156    }
28157    var childInstances = {};
28158
28159    if (process.env.NODE_ENV !== 'production') {
28160      traverseAllChildren(nestedChildNodes, function (childInsts, child, name) {
28161        return instantiateChild(childInsts, child, name, selfDebugID);
28162      }, childInstances);
28163    } else {
28164      traverseAllChildren(nestedChildNodes, instantiateChild, childInstances);
28165    }
28166    return childInstances;
28167  },
28168
28169  /**
28170   * Updates the rendered children and returns a new set of children.
28171   *
28172   * @param {?object} prevChildren Previously initialized set of children.
28173   * @param {?object} nextChildren Flat child element maps.
28174   * @param {ReactReconcileTransaction} transaction
28175   * @param {object} context
28176   * @return {?object} A new set of child instances.
28177   * @internal
28178   */
28179  updateChildren: function (prevChildren, nextChildren, mountImages, removedNodes, transaction, hostParent, hostContainerInfo, context, selfDebugID) // 0 in production and for roots
28180  {
28181    // We currently don't have a way to track moves here but if we use iterators
28182    // instead of for..in we can zip the iterators and check if an item has
28183    // moved.
28184    // TODO: If nothing has changed, return the prevChildren object so that we
28185    // can quickly bailout if nothing has changed.
28186    if (!nextChildren && !prevChildren) {
28187      return;
28188    }
28189    var name;
28190    var prevChild;
28191    for (name in nextChildren) {
28192      if (!nextChildren.hasOwnProperty(name)) {
28193        continue;
28194      }
28195      prevChild = prevChildren && prevChildren[name];
28196      var prevElement = prevChild && prevChild._currentElement;
28197      var nextElement = nextChildren[name];
28198      if (prevChild != null && shouldUpdateReactComponent(prevElement, nextElement)) {
28199        ReactReconciler.receiveComponent(prevChild, nextElement, transaction, context);
28200        nextChildren[name] = prevChild;
28201      } else {
28202        if (prevChild) {
28203          removedNodes[name] = ReactReconciler.getHostNode(prevChild);
28204          ReactReconciler.unmountComponent(prevChild, false);
28205        }
28206        // The child must be instantiated before it's mounted.
28207        var nextChildInstance = instantiateReactComponent(nextElement, true);
28208        nextChildren[name] = nextChildInstance;
28209        // Creating mount image now ensures refs are resolved in right order
28210        // (see https://github.com/facebook/react/pull/7101 for explanation).
28211        var nextChildMountImage = ReactReconciler.mountComponent(nextChildInstance, transaction, hostParent, hostContainerInfo, context, selfDebugID);
28212        mountImages.push(nextChildMountImage);
28213      }
28214    }
28215    // Unmount children that are no longer present.
28216    for (name in prevChildren) {
28217      if (prevChildren.hasOwnProperty(name) && !(nextChildren && nextChildren.hasOwnProperty(name))) {
28218        prevChild = prevChildren[name];
28219        removedNodes[name] = ReactReconciler.getHostNode(prevChild);
28220        ReactReconciler.unmountComponent(prevChild, false);
28221      }
28222    }
28223  },
28224
28225  /**
28226   * Unmounts all rendered children. This should be used to clean up children
28227   * when this component is unmounted.
28228   *
28229   * @param {?object} renderedChildren Previously initialized set of children.
28230   * @internal
28231   */
28232  unmountChildren: function (renderedChildren, safely) {
28233    for (var name in renderedChildren) {
28234      if (renderedChildren.hasOwnProperty(name)) {
28235        var renderedChild = renderedChildren[name];
28236        ReactReconciler.unmountComponent(renderedChild, safely);
28237      }
28238    }
28239  }
28240};
28241
28242module.exports = ReactChildReconciler;
28243/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
28244
28245/***/ }),
28246/* 490 */
28247/***/ (function(module, exports, __webpack_require__) {
28248
28249"use strict";
28250/* WEBPACK VAR INJECTION */(function(process) {/**
28251 * Copyright (c) 2013-present, Facebook, Inc.
28252 *
28253 * This source code is licensed under the MIT license found in the
28254 * LICENSE file in the root directory of this source tree.
28255 *
28256 */
28257
28258
28259
28260var _prodInvariant = __webpack_require__(8),
28261    _assign = __webpack_require__(10);
28262
28263var React = __webpack_require__(66);
28264var ReactComponentEnvironment = __webpack_require__(146);
28265var ReactCurrentOwner = __webpack_require__(39);
28266var ReactErrorUtils = __webpack_require__(138);
28267var ReactInstanceMap = __webpack_require__(79);
28268var ReactInstrumentation = __webpack_require__(28);
28269var ReactNodeTypes = __webpack_require__(211);
28270var ReactReconciler = __webpack_require__(68);
28271
28272if (process.env.NODE_ENV !== 'production') {
28273  var checkReactTypeSpec = __webpack_require__(491);
28274}
28275
28276var emptyObject = __webpack_require__(98);
28277var invariant = __webpack_require__(2);
28278var shallowEqual = __webpack_require__(147);
28279var shouldUpdateReactComponent = __webpack_require__(148);
28280var warning = __webpack_require__(3);
28281
28282var CompositeTypes = {
28283  ImpureClass: 0,
28284  PureClass: 1,
28285  StatelessFunctional: 2
28286};
28287
28288function StatelessComponent(Component) {}
28289StatelessComponent.prototype.render = function () {
28290  var Component = ReactInstanceMap.get(this)._currentElement.type;
28291  var element = Component(this.props, this.context, this.updater);
28292  warnIfInvalidElement(Component, element);
28293  return element;
28294};
28295
28296function warnIfInvalidElement(Component, element) {
28297  if (process.env.NODE_ENV !== 'production') {
28298    process.env.NODE_ENV !== 'production' ? warning(element === null || element === false || React.isValidElement(element), '%s(...): A val
28298id React element (or null) must be returned. You may have ' + 'returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : void 0;
28299    process.env.NODE_ENV !== 'production' ? warning(!Component.childContextTypes, '%s(...): childContextTypes cannot be defined on a functional component.', Component.displayName || Component.name || 'Component') : void 0;
28300  }
28301}
28302
28303function shouldConstruct(Component) {
28304  return !!(Component.prototype && Component.prototype.isReactComponent);
28305}
28306
28307function isPureComponent(Component) {
28308  return !!(Component.prototype && Component.prototype.isPureReactComponent);
28309}
28310
28311// Separated into a function to contain deoptimizations caused by try/finally.
28312function measureLifeCyclePerf(fn, debugID, timerType) {
28313  if (debugID === 0) {
28314    // Top-level wrappers (see ReactMount) and empty components (see
28315    // ReactDOMEmptyComponent) are invisible to hooks and devtools.
28316    // Both are implementation details that should go away in the future.
28317    return fn();
28318  }
28319
28320  ReactInstrumentation.debugTool.onBeginLifeCycleTimer(debugID, timerType);
28321  try {
28322    return fn();
28323  } finally {
28324    ReactInstrumentation.debugTool.onEndLifeCycleTimer(debugID, timerType);
28325  }
28326}
28327
28328/**
28329 * ------------------ The Life-Cycle of a Composite Component ------------------
28330 *
28331 * - constructor: Initialization of state. The instance is now retained.
28332 *   - componentWillMount
28333 *   - render
28334 *   - [children's constructors]
28335 *     - [children's componentWillMount and render]
28336 *     - [children's componentDidMount]
28337 *     - componentDidMount
28338 *
28339 *       Update Phases:
28340 *       - componentWillReceiveProps (only called if parent updated)
28341 *       - shouldComponentUpdate
28342 *         - componentWillUpdate
28343 *           - render
28344 *           - [children's constructors or receive props phases]
28345 *         - componentDidUpdate
28346 *
28347 *     - componentWillUnmount
28348 *     - [children's componentWillUnmount]
28349 *   - [children destroyed]
28350 * - (destroyed): The instance is now blank, released by React and ready for GC.
28351 *
28352 * -----------------------------------------------------------------------------
28353 */
28354
28355/**
28356 * An incrementing ID assigned to each component when it is mounted. This is
28357 * used to enforce the order in which `ReactUpdates` updates dirty components.
28358 *
28359 * @private
28360 */
28361var nextMountID = 1;
28362
28363/**
28364 * @lends {ReactCompositeComponent.prototype}
28365 */
28366var ReactCompositeComponent = {
28367  /**
28368   * Base constructor for all composite component.
28369   *
28370   * @param {ReactElement} element
28371   * @final
28372   * @internal
28373   */
28374  construct: function (element) {
28375    this._currentElement = element;
28376    this._rootNodeID = 0;
28377    this._compositeType = null;
28378    this._instance = null;
28379    this._hostParent = null;
28380    this._hostContainerInfo = null;
28381
28382    // See ReactUpdateQueue
28383    this._updateBatchNumber = null;
28384    this._pendingElement = null;
28385    this._pendingStateQueue = null;
28386    this._pendingReplaceState = false;
28387    this._pendingForceUpdate = false;
28388
28389    this._renderedNodeType = null;
28390    this._renderedComponent = null;
28391    this._context = null;
28392    this._mountOrder = 0;
28393    this._topLevelWrapper = null;
28394
28395    // See ReactUpdates and ReactUpdateQueue.
28396    this._pendingCallbacks = null;
28397
28398    // ComponentWillUnmount shall only be called once
28399    this._calledComponentWillUnmount = false;
28400
28401    if (process.env.NODE_ENV !== 'production') {
28402      this._warnedAboutRefsInRender = false;
28403    }
28404  },
28405
28406  /**
28407   * Initializes the component, renders markup, and registers event listeners.
28408   *
28409   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
28410   * @param {?object} hostParent
28411   * @param {?object} hostContainerInfo
28412   * @param {?object} context
28413   * @return {?string} Rendered markup to be inserted into the DOM.
28414   * @final
28415   * @internal
28416   */
28417  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
28418    var _this = this;
28419
28420    this._context = context;
28421    this._mountOrder = nextMountID++;
28422    this._hostParent = hostParent;
28423    this._hostContainerInfo = hostContainerInfo;
28424
28425    var publicProps = this._currentElement.props;
28426    var publicContext = this._processContext(context);
28427
28428    var Component = this._currentElement.type;
28429
28430    var updateQueue = transaction.getUpdateQueue();
28431
28432    // Initialize the public class
28433    var doConstruct = shouldConstruct(Component);
28434    var inst = this._constructComponent(doConstruct, publicProps, publicContext, updateQueue);
28435    var renderedElement;
28436
28437    // Support functional components
28438    if (!doConstruct && (inst == null || inst.render == null)) {
28439      renderedElement = inst;
28440      warnIfInvalidElement(Component, renderedElement);
28441      !(inst === null || inst === false || React.isValidElement(inst)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s(...): A val
28441id React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', Component.displayName || Component.name || 'Component') : _prodInvariant('105', Component.displayName || Component.name || 'Component') : void 0;
28442      inst = new StatelessComponent(Component);
28443      this._compositeType = CompositeTypes.StatelessFunctional;
28444    } else {
28445      if (isPureComponent(Component)) {
28446        this._compositeType = CompositeTypes.PureClass;
28447      } else {
28448        this._compositeType = CompositeTypes.ImpureClass;
28449      }
28450    }
28451
28452    if (process.env.NODE_ENV !== 'production') {
28453      // This will throw later in _renderValidatedComponent, but add an early
28454      // warning now to help debugging
28455      if (inst.render == null) {
28456        process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', Component.displayName || Component.name || 'Component') : void 0;
28457      }
28458
28459      var propsMutated = inst.props !== publicProps;
28460      var componentName = Component.displayName || Component.name || 'Component';
28461
28462      process.env.NODE_ENV !== 'production' ? warning(inst.props === undefined || !propsMutated, '%s(...): When calling super() in `%s`, make sure to pass ' + "up the same props that your component's constructor was passed.", componentName, componentName) : void 0;
28463    }
28464
28465    // These should be set up in the constructor, but as a convenience for
28466    // simpler class abstractions, we set them up after the fact.
28467    inst.props = publicProps;
28468    inst.context = publicContext;
28469    inst.refs = emptyObject;
28470    inst.updater = updateQueue;
28471
28472    this._instance = inst;
28473
28474    // Store a reference from the instance back to the internal representation
28475    ReactInstanceMap.set(inst, this);
28476
28477    if (process.env.NODE_ENV !== 'production') {
28478      // Since plain JS classes are defined without any special initialization
28479      // logic, we can not catch common errors early. Therefore, we have to
28480      // catch them here, at initialization time, instead.
28481      process.env.NODE_ENV !== 'production' ? warning(!inst.getInitialState || inst.getInitialState.isReactClassApproved || inst.state, 'getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', this.getName() || 'a component') : void 0;
28482      process.env.NODE_ENV !== 'production' ? warning(!inst.getDefaultProps || inst.getDefaultProps.isReactClassApproved, 'getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', this.getName() || 'a component') : void 0;
28483      process.env.NODE_ENV !== 'production' ? warning(!inst.propTypes, 'propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', this.getName() || 'a component') : void 0;
28484      process.env.NODE_ENV !== 'production' ? warning(!inst.contextTypes, 'contextTypes was defined as an instance property on %s. Use a ' + 'static property to define contextTypes instead.', this.getName() || 'a component') : void 0;
28485      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentShouldUpdate !== 'function', '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', this.getName() || 'A c
28485omponent') : void 0;
28486      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentDidUnmount !== 'function', '%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', this.getName() || 'A component') : void 0;
28487      process.env.NODE_ENV !== 'production' ? warning(typeof inst.componentWillRecieveProps !== 'function', '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', this.getName() || 'A component') : void 0;
28488    }
28489
28490    var initialState = inst.state;
28491    if (initialState === undefined) {
28492      inst.state = initialState = null;
28493    }
28494    !(typeof initialState === 'object' && !Array.isArray(initialState)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.state: must be set to an object or null', this.getName() || 'ReactCompositeComponent') : _prodInvariant('106', this.getName() || 'ReactCompositeComponent') : void 0;
28495
28496    this._pendingStateQueue = null;
28497    this._pendingReplaceState = false;
28498    this._pendingForceUpdate = false;
28499
28500    var markup;
28501    if (inst.unstable_handleError) {
28502      markup = this.performInitialMountWithErrorHandling(renderedElement, hostParent, hostContainerInfo, transaction, context);
28503    } else {
28504      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);
28505    }
28506
28507    if (inst.componentDidMount) {
28508      if (process.env.NODE_ENV !== 'production') {
28509        transaction.getReactMountReady().enqueue(function () {
28510          measureLifeCyclePerf(function () {
28511            return inst.componentDidMount();
28512          }, _this._debugID, 'componentDidMount');
28513        });
28514      } else {
28515        transaction.getReactMountReady().enqueue(inst.componentDidMount, inst);
28516      }
28517    }
28518
28519    return markup;
28520  },
28521
28522  _constructComponent: function (doConstruct, publicProps, publicContext, updateQueue) {
28523    if (process.env.NODE_ENV !== 'production' && !doConstruct) {
28524      ReactCurrentOwner.current = this;
28525      try {
28526        return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);
28527      } finally {
28528        ReactCurrentOwner.current = null;
28529      }
28530    } else {
28531      return this._constructComponentWithoutOwner(doConstruct, publicProps, publicContext, updateQueue);
28532    }
28533  },
28534
28535  _constructComponentWithoutOwner: function (doConstruct, publicProps, publicContext, updateQueue) {
28536    var Component = this._currentElement.type;
28537
28538    if (doConstruct) {
28539      if (process.env.NODE_ENV !== 'production') {
28540        return measureLifeCyclePerf(function () {
28541          return new Component(publicProps, publicContext, updateQueue);
28542        }, this._debugID, 'ctor');
28543      } else {
28544        return new Component(publicProps, publicContext, updateQueue);
28545      }
28546    }
28547
28548    // This can still be an instance in case of factory components
28549    // but we'll count this as time spent rendering as the more common case.
28550    if (process.env.NODE_ENV !== 'production') {
28551      return measureLifeCyclePerf(function () {
28552        return Component(publicProps, publicContext, updateQueue);
28553      }, this._debugID, 'render');
28554    } else {
28555      return Component(publicProps, publicContext, updateQueue);
28556    }
28557  },
28558
28559  performInitialMountWithErrorHandling: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {
28560    var markup;
28561    var checkpoint = transaction.checkpoint();
28562    try {
28563      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);
28564    } catch (e) {
28565      // Roll back to checkpoint, handle error (which may add items to the transaction), and take a new checkpoint
28566      transaction.rollback(checkpoint);
28567      this._instance.unstable_handleError(e);
28568      if (this._pendingStateQueue) {
28569        this._instance.state = this._processPendingState(this._instance.props, this._instance.context);
28570      }
28571      checkpoint = transaction.checkpoint();
28572
28573      this._renderedComponent.unmountComponent(true);
28574      transaction.rollback(checkpoint);
28575
28576      // Try again - we've informed the component about the error, so they can render an error message this time.
28577      // If this throws again, the error will bubble up (and can be caught by a higher error boundary).
28578      markup = this.performInitialMount(renderedElement, hostParent, hostContainerInfo, transaction, context);
28579    }
28580    return markup;
28581  },
28582
28583  performInitialMount: function (renderedElement, hostParent, hostContainerInfo, transaction, context) {
28584    var inst = this._instance;
28585
28586    var debugID = 0;
28587    if (process.env.NODE_ENV !== 'production') {
28588      debugID = this._debugID;
28589    }
28590
28591    if (inst.componentWillMount) {
28592      if (process.env.NODE_ENV !== 'production') {
28593        measureLifeCyclePerf(function () {
28594          return inst.componentWillMount();
28595        }, debugID, 'componentWillMount');
28596      } else {
28597        inst.componentWillMount();
28598      }
28599      // When mounting, calls to `setState` by `componentWillMount` will set
28600      // `this._pendingStateQueue` without triggering a re-render.
28601      if (this._pendingStateQueue) {
28602        inst.state = this._processPendingState(inst.props, inst.context);
28603      }
28604    }
28605
28606    // If not a stateless component, we now render
28607    if (renderedElement === undefined) {
28608      renderedElement = this._renderValidatedComponent();
28609    }
28610
28611    var nodeType = ReactNodeTypes.getType(renderedElement);
28612    this._renderedNodeType = nodeType;
28613    var child = this._instantiateReactComponent(renderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */
28614    );
28615    this._renderedComponent = child;
28616
28617    var markup = ReactReconciler.mountComponent(child, transaction, hostParent, hostContainerInfo, this._processChildContext(context), debugID);
28618
28619    if (process.env.NODE_ENV !== 'production') {
28620      if (debugID !== 0) {
28621        var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];
28622        ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);
28623      }
28624    }
28625
28626    return markup;
28627  },
28628
28629  getHostNode: function () {
28630    return ReactReconciler.getHostNode(this._renderedComponent);
28631  },
28632
28633  /**
28634   * Releases any resources allocated by `mountComponent`.
28635   *
28636   * @final
28637   * @internal
28638   */
28639  unmountComponent: function (safely) {
28640    if (!this._renderedComponent) {
28641      return;
28642    }
28643
28644    var inst = this._instance;
28645
28646    if (inst.componentWillUnmount && !inst._calledComponentWillUnmount) {
28647      inst._calledComponentWillUnmount = true;
28648
28649      if (safely) {
28650        var name = this.getName() + '.componentWillUnmount()';
28651        ReactErrorUtils.invokeGuardedCallback(name, inst.componentWillUnmount.bind(inst));
28652      } else {
28653        if (process.env.NODE_ENV !== 'production') {
28654          measureLifeCyclePerf(function () {
28655            return inst.componentWillUnmount();
28656          }, this._debugID, 'componentWillUnmount');
28657        } else {
28658          inst.componentWillUnmount();
28659        }
28660      }
28661    }
28662
28663    if (this._renderedComponent) {
28664      ReactReconciler.unmountComponent(this._renderedComponent, safely);
28665      this._renderedNodeType = null;
28666      this._renderedComponent = null;
28667      this._instance = null;
28668    }
28669
28670    // Reset pending fields
28671    // Even if this component is scheduled for another update in ReactUpdates,
28672    // it would still be ignored because these fields are reset.
28673    this._pendingStateQueue = null;
28674    this._pendingReplaceState = false;
28675    this._pendingForceUpdate = false;
28676    this._pendingCallbacks = null;
28677    this._pendingElement = null;
28678
28679    // These fields do not really need to be reset since this object is no
28680    // longer accessible.
28681    this._context = null;
28682    this._rootNodeID = 0;
28683    this._topLevelWrapper = null;
28684
28685    // Delete the reference from the instance to this internal representation
28686    // which allow the internals to be properly cleaned up even if the user
28687    // leaks a reference to the public instance.
28688    ReactInstanceMap.remove(inst);
28689
28690    // Some existing components rely on inst.props even after they've been
28691    // destroyed (in event handlers).
28692    // TODO: inst.props = null;
28693    // TODO: inst.state = null;
28694    // TODO: inst.context = null;
28695  },
28696
28697  /**
28698   * Filters the context object to only contain keys specified in
28699   * `contextTypes`
28700   *
28701   * @param {object} context
28702   * @return {?object}
28703   * @private
28704   */
28705  _maskContext: function (context) {
28706    var Component = this._currentElement.type;
28707    var contextTypes = Component.contextTypes;
28708    if (!contextTypes) {
28709      return emptyObject;
28710    }
28711    var maskedContext = {};
28712    for (var contextName in contextTypes) {
28713      maskedContext[contextName] = context[contextName];
28714    }
28715    return maskedContext;
28716  },
28717
28718  /**
28719   * Filters the context object to only contain keys specified in
28720   * `contextTypes`, and asserts that they are valid.
28721   *
28722   * @param {object} context
28723   * @return {?object}
28724   * @private
28725   */
28726  _processContext: function (context) {
28727    var maskedContext = this._maskContext(context);
28728    if (process.env.NODE_ENV !== 'production') {
28729      var Component = this._currentElement.type;
28730      if (Component.contextTypes) {
28731        this._checkContextTypes(Component.contextTypes, maskedContext, 'context');
28732      }
28733    }
28734    return maskedContext;
28735  },
28736
28737  /**
28738   * @param {object} currentContext
28739   * @return {object}
28740   * @private
28741   */
28742  _processChildContext: function (currentContext) {
28743    var Component = this._currentElement.type;
28744    var inst = this._instance;
28745    var childContext;
28746
28747    if (inst.getChildContext) {
28748      if (process.env.NODE_ENV !== 'production') {
28749        ReactInstrumentation.debugTool.onBeginProcessingChildContext();
28750        try {
28751          childContext = inst.getChildContext();
28752        } finally {
28753          ReactInstrumentation.debugTool.onEndProcessingChildContext();
28754        }
28755      } else {
28756        childContext = inst.getChildContext();
28757      }
28758    }
28759
28760    if (childContext) {
28761      !(typeof Component.childContextTypes === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().', this.getName() || 'ReactCompositeComponent') : _prodInvariant('107', this.getName() || 'ReactCompositeComponent') : void 0;
28762      if (process.env.NODE_ENV !== 'production') {
28763        this._checkContextTypes(Component.childContextTypes, childContext, 'child context');
28764      }
28765      for (var name in childContext) {
28766        !(name in Component.childContextTypes) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.getChildContext(): key "%s" is not defined in childContextTypes.', this.getName() || 'ReactCompositeComponent', name) : _prodInvariant('108', this.getName() || 'ReactCompositeComponent', name) : void 0;
28767      }
28768      return _assign({}, currentContext, childContext);
28769    }
28770    return currentContext;
28771  },
28772
28773  /**
28774   * Assert that the context types are valid
28775   *
28776   * @param {object} typeSpecs Map of context field to a ReactPropType
28777   * @param {object} values Runtime values that need to be type-checked
28778   * @param {string} location e.g. "prop", "context", "child context"
28779   * @private
28780   */
28781  _checkContextTypes: function (typeSpecs, values, location) {
28782    if (process.env.NODE_ENV !== 'production') {
28783      checkReactTypeSpec(typeSpecs, values, location, this.getName(), null, this._debugID);
28784    }
28785  },
28786
28787  receiveComponent: function (nextElement, transaction, nextContext) {
28788    var prevElement = this._currentElement;
28789    var prevContext = this._context;
28790
28791    this._pendingElement = null;
28792
28793    this.updateComponent(transaction, prevElement, nextElement, prevContext, nextContext);
28794  },
28795
28796  /**
28797   * If any of `_pendingElement`, `_pendingStateQueue`, or `_pendingForceUpdate`
28798   * is set, update the component.
28799   *
28800   * @param {ReactReconcileTransaction} transaction
28801   * @internal
28802   */
28803  performUpdateIfNecessary: function (transaction) {
28804    if (this._pendingElement != null) {
28805      ReactReconciler.receiveComponent(this, this._pendingElement, transaction, this._context);
28806    } else if (this._pendingStateQueue !== null || this._pendingForceUpdate) {
28807      this.updateComponent(transaction, this._currentElement, this._currentElement, this._context, this._context);
28808    } else {
28809      this._updateBatchNumber = null;
28810    }
28811  },
28812
28813  /**
28814   * Perform an update to a mounted component. The componentWillReceiveProps and
28815   * shouldComponentUpdate methods are called, then (assuming the update isn't
28816   * skipped) the remaining update lifecycle methods are called and the DOM
28817   * representation is updated.
28818   *
28819   * By default, this implements React's rendering and reconciliation algorithm.
28820   * Sophisticated clients may wish to override this.
28821   *
28822   * @param {ReactReconcileTransaction} transaction
28823   * @param {ReactElement} prevParentElement
28824   * @param {ReactElement} nextParentElement
28825   * @internal
28826   * @overridable
28827   */
28828  updateComponent: function (transaction, prevParentElement, nextParentElement, prevUnmaskedContext, nextUnmaskedContext) {
28829    var inst = this._instance;
28830    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Attempted to update component `%s` that has already been unmounted (or failed to mount).', this.getName() || 'ReactCompositeComponent') : _prodInvariant('136', this.getName() || 'ReactCompositeComponent') : void 0;
28831
28832    var willReceive = false;
28833    var nextContext;
28834
28835    // Determine if the context has changed or not
28836    if (this._context === nextUnmaskedContext) {
28837      nextContext = inst.context;
28838    } else {
28839      nextContext = this._processContext(nextUnmaskedContext);
28840      willReceive = true;
28841    }
28842
28843    var prevProps = prevParentElement.props;
28844    var nextProps = nextParentElement.props;
28845
28846    // Not a simple state update but a props update
28847    if (prevParentElement !== nextParentElement) {
28848      willReceive = true;
28849    }
28850
28851    // An update here will schedule an update but immediately set
28852    // _pendingStateQueue which will ensure that any state updates gets
28853    // immediately reconciled instead of waiting for the next batch.
28854    if (willReceive && inst.componentWillReceiveProps) {
28855      if (process.env.NODE_ENV !== 'production') {
28856        measureLifeCyclePerf(function () {
28857          return inst.componentWillReceiveProps(nextProps, nextContext);
28858        }, this._debugID, 'componentWillReceiveProps');
28859      } else {
28860        inst.componentWillReceiveProps(nextProps, nextContext);
28861      }
28862    }
28863
28864    var nextState = this._processPendingState(nextProps, nextContext);
28865    var shouldUpdate = true;
28866
28867    if (!this._pendingForceUpdate) {
28868      if (inst.shouldComponentUpdate) {
28869        if (process.env.NODE_ENV !== 'production') {
28870          shouldUpdate = measureLifeCyclePerf(function () {
28871            return inst.shouldComponentUpdate(nextProps, nextState, nextContext);
28872          }, this._debugID, 'shouldComponentUpdate');
28873        } else {
28874          shouldUpdate = inst.shouldComponentUpdate(nextProps, nextState, nextContext);
28875        }
28876      } else {
28877        if (this._compositeType === CompositeTypes.PureClass) {
28878          shouldUpdate = !shallowEqual(prevProps, nextProps) || !shallowEqual(inst.state, nextState);
28879        }
28880      }
28881    }
28882
28883    if (process.env.NODE_ENV !== 'production') {
28884      process.env.NODE_ENV !== 'production' ? warning(shouldUpdate !== undefined, '%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', this.getName() || 'ReactCompositeComponent') : void 0;
28885    }
28886
28887    this._updateBatchNumber = null;
28888    if (shouldUpdate) {
28889      this._pendingForceUpdate = false;
28890      // Will set `this.props`, `this.state` and `this.context`.
28891      this._performComponentUpdate(nextParentElement, nextProps, nextState, nextContext, transaction, nextUnmaskedContext);
28892    } else {
28893      // If it's determined that a component should not update, we still want
28894      // to set props and state but we shortcut the rest of the update.
28895      this._currentElement = nextParentElement;
28896      this._context = nextUnmaskedContext;
28897      inst.props = nextProps;
28898      inst.state = nextState;
28899      inst.context = nextContext;
28900    }
28901  },
28902
28903  _processPendingState: function (props, context) {
28904    var inst = this._instance;
28905    var queue = this._pendingStateQueue;
28906    var replace = this._pendingReplaceState;
28907    this._pendingReplaceState = false;
28908    this._pendingStateQueue = null;
28909
28910    if (!queue) {
28911      return inst.state;
28912    }
28913
28914    if (replace && queue.length === 1) {
28915      return queue[0];
28916    }
28917
28918    var nextState = _assign({}, replace ? queue[0] : inst.state);
28919    for (var i = replace ? 1 : 0; i < queue.length; i++) {
28920      var partial = queue[i];
28921      _assign(nextState, typeof partial === 'function' ? partial.call(inst, nextState, props, context) : partial);
28922    }
28923
28924    return nextState;
28925  },
28926
28927  /**
28928   * Merges new props and state, notifies delegate methods of update and
28929   * performs update.
28930   *
28931   * @param {ReactElement} nextElement Next element
28932   * @param {object} nextProps Next public object to set as properties.
28933   * @param {?object} nextState Next object to set as state.
28934   * @param {?object} nextContext Next public object to set as context.
28935   * @param {ReactReconcileTransaction} transaction
28936   * @param {?object} unmaskedContext
28937   * @private
28938   */
28939  _performComponentUpdate: function (nextElement, nextProps, nextState, nextContext, transaction, unmaskedContext) {
28940    var _this2 = this;
28941
28942    var inst = this._instance;
28943
28944    var hasComponentDidUpdate = Boolean(inst.componentDidUpdate);
28945    var prevProps;
28946    var prevState;
28947    var prevContext;
28948    if (hasComponentDidUpdate) {
28949      prevProps = inst.props;
28950      prevState = inst.state;
28951      prevContext = inst.context;
28952    }
28953
28954    if (inst.componentWillUpdate) {
28955      if (process.env.NODE_ENV !== 'production') {
28956        measureLifeCyclePerf(function () {
28957          return inst.componentWillUpdate(nextProps, nextState, nextContext);
28958        }, this._debugID, 'componentWillUpdate');
28959      } else {
28960        inst.componentWillUpdate(nextProps, nextState, nextContext);
28961      }
28962    }
28963
28964    this._currentElement = nextElement;
28965    this._context = unmaskedContext;
28966    inst.props = nextProps;
28967    inst.state = nextState;
28968    inst.context = nextContext;
28969
28970    this._updateRenderedComponent(transaction, unmaskedContext);
28971
28972    if (hasComponentDidUpdate) {
28973      if (process.env.NODE_ENV !== 'production') {
28974        transaction.getReactMountReady().enqueue(function () {
28975          measureLifeCyclePerf(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), _this2._debugID, 'componentDidUpdate');
28976        });
28977      } else {
28978        transaction.getReactMountReady().enqueue(inst.componentDidUpdate.bind(inst, prevProps, prevState, prevContext), inst);
28979      }
28980    }
28981  },
28982
28983  /**
28984   * Call the component's `render` method and update the DOM accordingly.
28985   *
28986   * @param {ReactReconcileTransaction} transaction
28987   * @internal
28988   */
28989  _updateRenderedComponent: function (transaction, context) {
28990    var prevComponentInstance = this._renderedComponent;
28991    var prevRenderedElement = prevComponentInstance._currentElement;
28992    var nextRenderedElement = this._renderValidatedComponent();
28993
28994    var debugID = 0;
28995    if (process.env.NODE_ENV !== 'production') {
28996      debugID = this._debugID;
28997    }
28998
28999    if (shouldUpdateReactComponent(prevRenderedElement, nextRenderedElement)) {
29000      ReactReconciler.receiveComponent(prevComponentInstance, nextRenderedElement, transaction, this._processChildContext(context));
29001    } else {
29002      var oldHostNode = ReactReconciler.getHostNode(prevComponentInstance);
29003      ReactReconciler.unmountComponent(prevComponentInstance, false);
29004
29005      var nodeType = ReactNodeTypes.getType(nextRenderedElement);
29006      this._renderedNodeType = nodeType;
29007      var child = this._instantiateReactComponent(nextRenderedElement, nodeType !== ReactNodeTypes.EMPTY /* shouldHaveDebugID */
29008      );
29009      this._renderedComponent = child;
29010
29011      var nextMarkup = ReactReconciler.mountComponent(child, transaction, this._hostParent, this._hostContainerInfo, this._processChildContext(context), debugID);
29012
29013      if (process.env.NODE_ENV !== 'production') {
29014        if (debugID !== 0) {
29015          var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];
29016          ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);
29017        }
29018      }
29019
29020      this._replaceNodeWithMarkup(oldHostNode, nextMarkup, prevComponentInstance);
29021    }
29022  },
29023
29024  /**
29025   * Overridden in shallow rendering.
29026   *
29027   * @protected
29028   */
29029  _replaceNodeWithMarkup: function (oldHostNode, nextMarkup, prevInstance) {
29030    ReactComponentEnvironment.replaceNodeWithMarkup(oldHostNode, nextMarkup, prevInstance);
29031  },
29032
29033  /**
29034   * @protected
29035   */
29036  _renderValidatedComponentWithoutOwnerOrContext: function () {
29037    var inst = this._instance;
29038    var renderedElement;
29039
29040    if (process.env.NODE_ENV !== 'production') {
29041      renderedElement = measureLifeCyclePerf(function () {
29042        return inst.render();
29043      }, this._debugID, 'render');
29044    } else {
29045      renderedElement = inst.render();
29046    }
29047
29048    if (process.env.NODE_ENV !== 'production') {
29049      // We allow auto-mocks to proceed as if they're returning null.
29050      if (renderedElement === undefined && inst.render._isMockFunction) {
29051        // This is probably bad practice. Consider warning here and
29052        // deprecating this convenience.
29053        renderedElement = null;
29054      }
29055    }
29056
29057    return renderedElement;
29058  },
29059
29060  /**
29061   * @private
29062   */
29063  _renderValidatedComponent: function () {
29064    var renderedElement;
29065    if (process.env.NODE_ENV !== 'production' || this._compositeType !== CompositeTypes.StatelessFunctional) {
29066      ReactCurrentOwner.current = this;
29067      try {
29068        renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();
29069      } finally {
29070        ReactCurrentOwner.current = null;
29071      }
29072    } else {
29073      renderedElement = this._renderValidatedComponentWithoutOwnerOrContext();
29074    }
29075    !(
29076    // TODO: An `isValidNode` function would probably be more appropriate
29077    renderedElement === null || renderedElement === false || React.isValidElement(renderedElement)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object.', this.getName() || 'ReactCompositeComponent') : _prodInvariant('109', this.getName() || 'ReactCompositeComponent') : void 0;
29078
29079    return renderedElement;
29080  },
29081
29082  /**
29083   * Lazily allocates the refs object and stores `component` as `ref`.
29084   *
29085   * @param {string} ref Reference name.
29086   * @param {component} component Component to store as `ref`.
29087   * @final
29088   * @private
29089   */
29090  attachRef: function (ref, component) {
29091    var inst = this.getPublicInstance();
29092    !(inst != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Stateless function components cannot have refs.') : _prodInvariant('110') : void 0;
29093    var publicComponentInstance = component.getPublicInstance();
29094    if (process.env.NODE_ENV !== 'production') {
29095      var componentName = component && component.getName ? component.getName() : 'a component';
29096      process.env.NODE_ENV !== 'production' ? warning(publicComponentInstance != null || component._compositeType !== CompositeTypes.StatelessFunctional, 'Stateless function components cannot be given refs ' + '(See ref "%s" in %s created by %s). ' + 'Attempts to access this ref will fail.', ref, componentName, this.getName()) : void 0;
29097    }
29098    var refs = inst.refs === emptyObject ? inst.refs = {} : inst.refs;
29099    refs[ref] = publicComponentInstance;
29100  },
29101
29102  /**
29103   * Detaches a reference name.
29104   *
29105   * @param {string} ref Name to dereference.
29106   * @final
29107   * @private
29108   */
29109  detachRef: function (ref) {
29110    var refs = this.getPublicInstance().refs;
29111    delete refs[ref];
29112  },
29113
29114  /**
29115   * Get a text description of the component that can be used to identify it
29116   * in error messages.
29117   * @return {string} The name or null.
29118   * @internal
29119   */
29120  getName: function () {
29121    var type = this._currentElement.type;
29122    var constructor = this._instance && this._instance.constructor;
29123    return type.displayName || constructor && constructor.displayName || type.name || constructor && constructor.name || null;
29124  },
29125
29126  /**
29127   * Get the publicly accessible representation of this component - i.e. what
29128   * is exposed by refs and returned by render. Can be null for stateless
29129   * components.
29130   *
29131   * @return {ReactComponent} the public component instance.
29132   * @internal
29133   */
29134  getPublicInstance: function () {
29135    var inst = this._instance;
29136    if (this._compositeType === CompositeTypes.StatelessFunctional) {
29137      return null;
29138    }
29139    return inst;
29140  },
29141
29142  // Stub
29143  _instantiateReactComponent: null
29144};
29145
29146module.exports = ReactCompositeComponent;
29147/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29148
29149/***/ }),
29150/* 491 */
29151/***/ (function(module, exports, __webpack_require__) {
29152
29153"use strict";
29154/* WEBPACK VAR INJECTION */(function(process) {/**
29155 * Copyright (c) 2013-present, Facebook, Inc.
29156 *
29157 * This source code is licensed under the MIT license found in the
29158 * LICENSE file in the root directory of this source tree.
29159 *
29160 */
29161
29162
29163
29164var _prodInvariant = __webpack_require__(8);
29165
29166var ReactPropTypeLocationNames = __webpack_require__(492);
29167var ReactPropTypesSecret = __webpack_require__(208);
29168
29169var invariant = __webpack_require__(2);
29170var warning = __webpack_require__(3);
29171
29172var ReactComponentTreeHook;
29173
29174if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {
29175  // Temporary hack.
29176  // Inline requires don't work well with Jest:
29177  // https://github.com/facebook/react/issues/7240
29178  // Remove the inline requires when we don't need them anymore:
29179  // https://github.com/facebook/react/pull/7178
29180  ReactComponentTreeHook = __webpack_require__(22);
29181}
29182
29183var loggedTypeFailures = {};
29184
29185/**
29186 * Assert that the values match with the type specs.
29187 * Error messages are memorized and will only be shown once.
29188 *
29189 * @param {object} typeSpecs Map of name to a ReactPropType
29190 * @param {object} values Runtime values that need to be type-checked
29191 * @param {string} location e.g. "prop", "context", "child context"
29192 * @param {string} componentName Name of the component for error messages.
29193 * @param {?object} element The React element that is being type-checked
29194 * @param {?number} debugID The React component instance that is being type-checked
29195 * @private
29196 */
29197function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {
29198  for (var typeSpecName in typeSpecs) {
29199    if (typeSpecs.hasOwnProperty(typeSpecName)) {
29200      var error;
29201      // Prop type validation may throw. In case they do, we don't want to
29202      // fail the render phase where it didn't fail before. So we log it.
29203      // After these have been cleaned up, we'll let them throw.
29204      try {
29205        // This is intentionally an invariant that gets caught. It's the same
29206        // behavior as without this statement except with a better message.
29207        !(typeof typeSpecs[typeSpecName] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0;
29208        error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
29209      } catch (ex) {
29210        error = ex;
29211      }
29212      process.env.NODE_ENV !== 'production' ? warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0;
29213      if (error instanceof Error && !(error.message in loggedTypeFailures)) {
29214        // Only monitor this failure once because there tends to be a lot of the
29215        // same error.
29216        loggedTypeFailures[error.message] = true;
29217
29218        var componentStackInfo = '';
29219
29220        if (process.env.NODE_ENV !== 'production') {
29221          if (!ReactComponentTreeHook) {
29222            ReactComponentTreeHook = __webpack_require__(22);
29223          }
29224          if (debugID !== null) {
29225            componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);
29226          } else if (element !== null) {
29227            componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);
29228          }
29229        }
29230
29231        process.env.NODE_ENV !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;
29232      }
29233    }
29234  }
29235}
29236
29237module.exports = checkReactTypeSpec;
29238/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29239
29240/***/ }),
29241/* 492 */
29242/***/ (function(module, exports, __webpack_require__) {
29243
29244"use strict";
29245/* WEBPACK VAR INJECTION */(function(process) {/**
29246 * Copyright (c) 2013-present, Facebook, Inc.
29247 *
29248 * This source code is licensed under the MIT license found in the
29249 * LICENSE file in the root directory of this source tree.
29250 *
29251 * 
29252 */
29253
29254
29255
29256var ReactPropTypeLocationNames = {};
29257
29258if (process.env.NODE_ENV !== 'production') {
29259  ReactPropTypeLocationNames = {
29260    prop: 'prop',
29261    context: 'context',
29262    childContext: 'child context'
29263  };
29264}
29265
29266module.exports = ReactPropTypeLocationNames;
29267/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29268
29269/***/ }),
29270/* 493 */
29271/***/ (function(module, exports, __webpack_require__) {
29272
29273"use strict";
29274/**
29275 * Copyright (c) 2013-present, Facebook, Inc.
29276 *
29277 * This source code is licensed under the MIT license found in the
29278 * LICENSE file in the root directory of this source tree.
29279 *
29280 * 
29281 */
29282
29283
29284
29285var nextDebugID = 1;
29286
29287function getNextDebugID() {
29288  return nextDebugID++;
29289}
29290
29291module.exports = getNextDebugID;
29292
29293/***/ }),
29294/* 494 */
29295/***/ (function(module, exports, __webpack_require__) {
29296
29297"use strict";
29298/**
29299 * Copyright (c) 2014-present, Facebook, Inc.
29300 *
29301 * This source code is licensed under the MIT license found in the
29302 * LICENSE file in the root directory of this source tree.
29303 *
29304 * 
29305 */
29306
29307
29308
29309// The Symbol used to tag the ReactElement type. If there is no native Symbol
29310// nor polyfill, then a plain number is used for performance.
29311
29312var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
29313
29314module.exports = REACT_ELEMENT_TYPE;
29315
29316/***/ }),
29317/* 495 */
29318/***/ (function(module, exports, __webpack_require__) {
29319
29320"use strict";
29321/**
29322 * Copyright (c) 2013-present, Facebook, Inc.
29323 *
29324 * This source code is licensed under the MIT license found in the
29325 * LICENSE file in the root directory of this source tree.
29326 *
29327 * 
29328 */
29329
29330
29331
29332/* global Symbol */
29333
29334var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
29335var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
29336
29337/**
29338 * Returns the iterator method function contained on the iterable object.
29339 *
29340 * Be sure to invoke the function with the iterable as context:
29341 *
29342 *     var iteratorFn = getIteratorFn(myIterable);
29343 *     if (iteratorFn) {
29344 *       var iterator = iteratorFn.call(myIterable);
29345 *       ...
29346 *     }
29347 *
29348 * @param {?object} maybeIterable
29349 * @return {?function}
29350 */
29351function getIteratorFn(maybeIterable) {
29352  var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
29353  if (typeof iteratorFn === 'function') {
29354    return iteratorFn;
29355  }
29356}
29357
29358module.exports = getIteratorFn;
29359
29360/***/ }),
29361/* 496 */
29362/***/ (function(module, exports, __webpack_require__) {
29363
29364"use strict";
29365/* WEBPACK VAR INJECTION */(function(process) {/**
29366 * Copyright (c) 2013-present, Facebook, Inc.
29367 *
29368 * This source code is licensed under the MIT license found in the
29369 * LICENSE file in the root directory of this source tree.
29370 *
29371 * 
29372 */
29373
29374
29375
29376var KeyEscapeUtils = __webpack_require__(149);
29377var traverseAllChildren = __webpack_require__(214);
29378var warning = __webpack_require__(3);
29379
29380var ReactComponentTreeHook;
29381
29382if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV === 'test') {
29383  // Temporary hack.
29384  // Inline requires don't work well with Jest:
29385  // https://github.com/facebook/react/issues/7240
29386  // Remove the inline requires when we don't need them anymore:
29387  // https://github.com/facebook/react/pull/7178
29388  ReactComponentTreeHook = __webpack_require__(22);
29389}
29390
29391/**
29392 * @param {function} traverseContext Context passed through traversal.
29393 * @param {?ReactComponent} child React child component.
29394 * @param {!string} name String name of key path to child.
29395 * @param {number=} selfDebugID Optional debugID of the current internal instance.
29396 */
29397function flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID) {
29398  // We found a component instance.
29399  if (traverseContext && typeof traverseContext === 'object') {
29400    var result = traverseContext;
29401    var keyUnique = result[name] === undefined;
29402    if (process.env.NODE_ENV !== 'production') {
29403      if (!ReactComponentTreeHook) {
29404        ReactComponentTreeHook = __webpack_require__(22);
29405      }
29406      if (!keyUnique) {
29407        process.env.NODE_ENV !== 'production' ? warning(false, 'flattenChildren(...): Encountered two children with the same key, ' + '`%s`. Child keys must be unique; when two children share a key, only ' + 'the first child will be used.%s', KeyEscapeUtils.unescape(name), ReactComponentTreeHook.getStackAddendumByID(selfDebugID)) : void 0;
29408      }
29409    }
29410    if (keyUnique && child != null) {
29411      result[name] = child;
29412    }
29413  }
29414}
29415
29416/**
29417 * Flattens children that are typically specified as `props.children`. Any null
29418 * children will not be included in the resulting object.
29419 * @return {!object} flattened children keyed by name.
29420 */
29421function flattenChildren(children, selfDebugID) {
29422  if (children == null) {
29423    return children;
29424  }
29425  var result = {};
29426
29427  if (process.env.NODE_ENV !== 'production') {
29428    traverseAllChildren(children, function (traverseContext, child, name) {
29429      return flattenSingleChildIntoContext(traverseContext, child, name, selfDebugID);
29430    }, result);
29431  } else {
29432    traverseAllChildren(children, flattenSingleChildIntoContext, result);
29433  }
29434  return result;
29435}
29436
29437module.exports = flattenChildren;
29438/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29439
29440/***/ }),
29441/* 497 */
29442/***/ (function(module, exports, __webpack_require__) {
29443
29444"use strict";
29445/* WEBPACK VAR INJECTION */(function(process) {/**
29446 * Copyright (c) 2014-present, Facebook, Inc.
29447 *
29448 * This source code is licensed under the MIT license found in the
29449 * LICENSE file in the root directory of this source tree.
29450 *
29451 */
29452
29453
29454
29455var _assign = __webpack_require__(10);
29456
29457var PooledClass = __webpack_require__(60);
29458var Transaction = __webpack_require__(100);
29459var ReactInstrumentation = __webpack_require__(28);
29460var ReactServerUpdateQueue = __webpack_require__(498);
29461
29462/**
29463 * Executed within the scope of the `Transaction` instance. Consider these as
29464 * being member methods, but with an implied ordering while being isolated from
29465 * each other.
29466 */
29467var TRANSACTION_WRAPPERS = [];
29468
29469if (process.env.NODE_ENV !== 'production') {
29470  TRANSACTION_WRAPPERS.push({
29471    initialize: ReactInstrumentation.debugTool.onBeginFlush,
29472    close: ReactInstrumentation.debugTool.onEndFlush
29473  });
29474}
29475
29476var noopCallbackQueue = {
29477  enqueue: function () {}
29478};
29479
29480/**
29481 * @class ReactServerRenderingTransaction
29482 * @param {boolean} renderToStaticMarkup
29483 */
29484function ReactServerRenderingTransaction(renderToStaticMarkup) {
29485  this.reinitializeTransaction();
29486  this.renderToStaticMarkup = renderToStaticMarkup;
29487  this.useCreateElement = false;
29488  this.updateQueue = new ReactServerUpdateQueue(this);
29489}
29490
29491var Mixin = {
29492  /**
29493   * @see Transaction
29494   * @abstract
29495   * @final
29496   * @return {array} Empty list of operation wrap procedures.
29497   */
29498  getTransactionWrappers: function () {
29499    return TRANSACTION_WRAPPERS;
29500  },
29501
29502  /**
29503   * @return {object} The queue to collect `onDOMReady` callbacks with.
29504   */
29505  getReactMountReady: function () {
29506    return noopCallbackQueue;
29507  },
29508
29509  /**
29510   * @return {object} The queue to collect React async events.
29511   */
29512  getUpdateQueue: function () {
29513    return this.updateQueue;
29514  },
29515
29516  /**
29517   * `PooledClass` looks for this, and will invoke this before allowing this
29518   * instance to be reused.
29519   */
29520  destructor: function () {},
29521
29522  checkpoint: function () {},
29523
29524  rollback: function () {}
29525};
29526
29527_assign(ReactServerRenderingTransaction.prototype, Transaction, Mixin);
29528
29529PooledClass.addPoolingTo(ReactServerRenderingTransaction);
29530
29531module.exports = ReactServerRenderingTransaction;
29532/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29533
29534/***/ }),
29535/* 498 */
29536/***/ (function(module, exports, __webpack_require__) {
29537
29538"use strict";
29539/* WEBPACK VAR INJECTION */(function(process) {/**
29540 * Copyright (c) 2015-present, Facebook, Inc.
29541 *
29542 * This source code is licensed under the MIT license found in the
29543 * LICENSE file in the root directory of this source tree.
29544 *
29545 * 
29546 */
29547
29548
29549
29550function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29551
29552var ReactUpdateQueue = __webpack_require__(150);
29553
29554var warning = __webpack_require__(3);
29555
29556function warnNoop(publicInstance, callerName) {
29557  if (process.env.NODE_ENV !== 'production') {
29558    var constructor = publicInstance.constructor;
29559    process.env.NODE_ENV !== 'production' ? warning(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op. Please check the code for the %s component.', callerName, callerName, constructor && (constructor.displayName || constructor.name) || 'ReactClass') : void 0;
29560  }
29561}
29562
29563/**
29564 * This is the update queue used for server rendering.
29565 * It delegates to ReactUpdateQueue while server rendering is in progress and
29566 * switches to ReactNoopUpdateQueue after the transaction has completed.
29567 * @class ReactServerUpdateQueue
29568 * @param {Transaction} transaction
29569 */
29570
29571var ReactServerUpdateQueue = function () {
29572  function ReactServerUpdateQueue(transaction) {
29573    _classCallCheck(this, ReactServerUpdateQueue);
29574
29575    this.transaction = transaction;
29576  }
29577
29578  /**
29579   * Checks whether or not this composite component is mounted.
29580   * @param {ReactClass} publicInstance The instance we want to test.
29581   * @return {boolean} True if mounted, false otherwise.
29582   * @protected
29583   * @final
29584   */
29585
29586
29587  ReactServerUpdateQueue.prototype.isMounted = function isMounted(publicInstance) {
29588    return false;
29589  };
29590
29591  /**
29592   * Enqueue a callback that will be executed after all the pending updates
29593   * have processed.
29594   *
29595   * @param {ReactClass} publicInstance The instance to use as `this` context.
29596   * @param {?function} callback Called after state is updated.
29597   * @internal
29598   */
29599
29600
29601  ReactServerUpdateQueue.prototype.enqueueCallback = function enqueueCallback(publicInstance, callback, callerName) {
29602    if (this.transaction.isInTransaction()) {
29603      ReactUpdateQueue.enqueueCallback(publicInstance, callback, callerName);
29604    }
29605  };
29606
29607  /**
29608   * Forces an update. This should only be invoked when it is known with
29609   * certainty that we are **not** in a DOM transaction.
29610   *
29611   * You may want to call this when you know that some deeper aspect of the
29612   * component's state has changed but `setState` was not called.
29613   *
29614   * This will not invoke `shouldComponentUpdate`, but it will invoke
29615   * `componentWillUpdate` and `componentDidUpdate`.
29616   *
29617   * @param {ReactClass} publicInstance The instance that should rerender.
29618   * @internal
29619   */
29620
29621
29622  ReactServerUpdateQueue.prototype.enqueueForceUpdate = function enqueueForceUpdate(publicInstance) {
29623    if (this.transaction.isInTransaction()) {
29624      ReactUpdateQueue.enqueueForceUpdate(publicInstance);
29625    } else {
29626      warnNoop(publicInstance, 'forceUpdate');
29627    }
29628  };
29629
29630  /**
29631   * Replaces all of the state. Always use this or `setState` to mutate state.
29632   * You should treat `this.state` as immutable.
29633   *
29634   * There is no guarantee that `this.state` will be immediately updated, so
29635   * accessing `this.state` after calling this method may return the old value.
29636   *
29637   * @param {ReactClass} publicInstance The instance that should rerender.
29638   * @param {object|function} completeState Next state.
29639   * @internal
29640   */
29641
29642
29643  ReactServerUpdateQueue.prototype.enqueueReplaceState = function enqueueReplaceState(publicInstance, completeState) {
29644    if (this.transaction.isInTransaction()) {
29645      ReactUpdateQueue.enqueueReplaceState(publicInstance, completeState);
29646    } else {
29647      warnNoop(publicInstance, 'replaceState');
29648    }
29649  };
29650
29651  /**
29652   * Sets a subset of the state. This only exists because _pendingState is
29653   * internal. This provides a merging strategy that is not available to deep
29654   * properties which is confusing. TODO: Expose pendingState or don't use it
29655   * during the merge.
29656   *
29657   * @param {ReactClass} publicInstance The instance that should rerender.
29658   * @param {object|function} partialState Next partial state to be merged with state.
29659   * @internal
29660   */
29661
29662
29663  ReactServerUpdateQueue.prototype.enqueueSetState = function enqueueSetState(publicInstance, partialState) {
29664    if (this.transaction.isInTransaction()) {
29665      ReactUpdateQueue.enqueueSetState(publicInstance, partialState);
29666    } else {
29667      warnNoop(publicInstance, 'setState');
29668    }
29669  };
29670
29671  return ReactServerUpdateQueue;
29672}();
29673
29674module.exports = ReactServerUpdateQueue;
29675/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29676
29677/***/ }),
29678/* 499 */
29679/***/ (function(module, exports, __webpack_require__) {
29680
29681"use strict";
29682/**
29683 * Copyright (c) 2014-present, Facebook, Inc.
29684 *
29685 * This source code is licensed under the MIT license found in the
29686 * LICENSE file in the root directory of this source tree.
29687 *
29688 */
29689
29690
29691
29692var _assign = __webpack_require__(10);
29693
29694var DOMLazyTree = __webpack_require__(69);
29695var ReactDOMComponentTree = __webpack_require__(14);
29696
29697var ReactDOMEmptyComponent = function (instantiate) {
29698  // ReactCompositeComponent uses this:
29699  this._currentElement = null;
29700  // ReactDOMComponentTree uses these:
29701  this._hostNode = null;
29702  this._hostParent = null;
29703  this._hostContainerInfo = null;
29704  this._domID = 0;
29705};
29706_assign(ReactDOMEmptyComponent.prototype, {
29707  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
29708    var domID = hostContainerInfo._idCounter++;
29709    this._domID = domID;
29710    this._hostParent = hostParent;
29711    this._hostContainerInfo = hostContainerInfo;
29712
29713    var nodeValue = ' react-empty: ' + this._domID + ' ';
29714    if (transaction.useCreateElement) {
29715      var ownerDocument = hostContainerInfo._ownerDocument;
29716      var node = ownerDocument.createComment(nodeValue);
29717      ReactDOMComponentTree.precacheNode(this, node);
29718      return DOMLazyTree(node);
29719    } else {
29720      if (transaction.renderToStaticMarkup) {
29721        // Normally we'd insert a comment node, but since this is a situation
29722        // where React won't take over (static pages), we can simply return
29723        // nothing.
29724        return '';
29725      }
29726      return '<!--' + nodeValue + '-->';
29727    }
29728  },
29729  receiveComponent: function () {},
29730  getHostNode: function () {
29731    return ReactDOMComponentTree.getNodeFromInstance(this);
29732  },
29733  unmountComponent: function () {
29734    ReactDOMComponentTree.uncacheNode(this);
29735  }
29736});
29737
29738module.exports = ReactDOMEmptyComponent;
29739
29740/***/ }),
29741/* 500 */
29742/***/ (function(module, exports, __webpack_require__) {
29743
29744"use strict";
29745/* WEBPACK VAR INJECTION */(function(process) {/**
29746 * Copyright (c) 2015-present, Facebook, Inc.
29747 *
29748 * This source code is licensed under the MIT license found in the
29749 * LICENSE file in the root directory of this source tree.
29750 *
29751 */
29752
29753
29754
29755var _prodInvariant = __webpack_require__(8);
29756
29757var invariant = __webpack_require__(2);
29758
29759/**
29760 * Return the lowest common ancestor of A and B, or null if they are in
29761 * different trees.
29762 */
29763function getLowestCommonAncestor(instA, instB) {
29764  !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;
29765  !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getNodeFromInstance: Invalid argument.') : _prodInvariant('33') : void 0;
29766
29767  var depthA = 0;
29768  for (var tempA = instA; tempA; tempA = tempA._hostParent) {
29769    depthA++;
29770  }
29771  var depthB = 0;
29772  for (var tempB = instB; tempB; tempB = tempB._hostParent) {
29773    depthB++;
29774  }
29775
29776  // If A is deeper, crawl up.
29777  while (depthA - depthB > 0) {
29778    instA = instA._hostParent;
29779    depthA--;
29780  }
29781
29782  // If B is deeper, crawl up.
29783  while (depthB - depthA > 0) {
29784    instB = instB._hostParent;
29785    depthB--;
29786  }
29787
29788  // Walk in lockstep until we find a match.
29789  var depth = depthA;
29790  while (depth--) {
29791    if (instA === instB) {
29792      return instA;
29793    }
29794    instA = instA._hostParent;
29795    instB = instB._hostParent;
29796  }
29797  return null;
29798}
29799
29800/**
29801 * Return if A is an ancestor of B.
29802 */
29803function isAncestor(instA, instB) {
29804  !('_hostNode' in instA) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;
29805  !('_hostNode' in instB) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'isAncestor: Invalid argument.') : _prodInvariant('35') : void 0;
29806
29807  while (instB) {
29808    if (instB === instA) {
29809      return true;
29810    }
29811    instB = instB._hostParent;
29812  }
29813  return false;
29814}
29815
29816/**
29817 * Return the parent instance of the passed-in instance.
29818 */
29819function getParentInstance(inst) {
29820  !('_hostNode' in inst) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'getParentInstance: Invalid argument.') : _prodInvariant('36') : void 0;
29821
29822  return inst._hostParent;
29823}
29824
29825/**
29826 * Simulates the traversal of a two-phase, capture/bubble event dispatch.
29827 */
29828function traverseTwoPhase(inst, fn, arg) {
29829  var path = [];
29830  while (inst) {
29831    path.push(inst);
29832    inst = inst._hostParent;
29833  }
29834  var i;
29835  for (i = path.length; i-- > 0;) {
29836    fn(path[i], 'captured', arg);
29837  }
29838  for (i = 0; i < path.length; i++) {
29839    fn(path[i], 'bubbled', arg);
29840  }
29841}
29842
29843/**
29844 * Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that
29845 * should would receive a `mouseEnter` or `mouseLeave` event.
29846 *
29847 * Does not invoke the callback on the nearest common ancestor because nothing
29848 * "entered" or "left" that element.
29849 */
29850function traverseEnterLeave(from, to, fn, argFrom, argTo) {
29851  var common = from && to ? getLowestCommonAncestor(from, to) : null;
29852  var pathFrom = [];
29853  while (from && from !== common) {
29854    pathFrom.push(from);
29855    from = from._hostParent;
29856  }
29857  var pathTo = [];
29858  while (to && to !== common) {
29859    pathTo.push(to);
29860    to = to._hostParent;
29861  }
29862  var i;
29863  for (i = 0; i < pathFrom.length; i++) {
29864    fn(pathFrom[i], 'bubbled', argFrom);
29865  }
29866  for (i = pathTo.length; i-- > 0;) {
29867    fn(pathTo[i], 'captured', argTo);
29868  }
29869}
29870
29871module.exports = {
29872  isAncestor: isAncestor,
29873  getLowestCommonAncestor: getLowestCommonAncestor,
29874  getParentInstance: getParentInstance,
29875  traverseTwoPhase: traverseTwoPhase,
29876  traverseEnterLeave: traverseEnterLeave
29877};
29878/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
29879
29880/***/ }),
29881/* 501 */
29882/***/ (function(module, exports, __webpack_require__) {
29883
29884"use strict";
29885/* WEBPACK VAR INJECTION */(function(process) {/**
29886 * Copyright (c) 2013-present, Facebook, Inc.
29887 *
29888 * This source code is licensed under the MIT license found in the
29889 * LICENSE file in the root directory of this source tree.
29890 *
29891 */
29892
29893
29894
29895var _prodInvariant = __webpack_require__(8),
29896    _assign = __webpack_require__(10);
29897
29898var DOMChildrenOperations = __webpack_require__(142);
29899var DOMLazyTree = __webpack_require__(69);
29900var ReactDOMComponentTree = __webpack_require__(14);
29901
29902var escapeTextContentForBrowser = __webpack_require__(103);
29903var invariant = __webpack_require__(2);
29904var validateDOMNesting = __webpack_require__(151);
29905
29906/**
29907 * Text nodes violate a couple assumptions that React makes about components:
29908 *
29909 *  - When mounting text into the DOM, adjacent text nodes are merged.
29910 *  - Text nodes cannot be assigned a React root ID.
29911 *
29912 * This component is used to wrap strings between comment nodes so that they
29913 * can undergo the same reconciliation that is applied to elements.
29914 *
29915 * TODO: Investigate representing React components in the DOM with text nodes.
29916 *
29917 * @class ReactDOMTextComponent
29918 * @extends ReactComponent
29919 * @internal
29920 */
29921var ReactDOMTextComponent = function (text) {
29922  // TODO: This is really a ReactText (ReactNode), not a ReactElement
29923  this._currentElement = text;
29924  this._stringText = '' + text;
29925  // ReactDOMComponentTree uses these:
29926  this._hostNode = null;
29927  this._hostParent = null;
29928
29929  // Properties
29930  this._domID = 0;
29931  this._mountIndex = 0;
29932  this._closingComment = null;
29933  this._commentNodes = null;
29934};
29935
29936_assign(ReactDOMTextComponent.prototype, {
29937  /**
29938   * Creates the markup for this text node. This node is not intended to have
29939   * any features besides containing text content.
29940   *
29941   * @param {ReactReconcileTransaction|ReactServerRenderingTransaction} transaction
29942   * @return {string} Markup for this text node.
29943   * @internal
29944   */
29945  mountComponent: function (transaction, hostParent, hostContainerInfo, context) {
29946    if (process.env.NODE_ENV !== 'production') {
29947      var parentInfo;
29948      if (hostParent != null) {
29949        parentInfo = hostParent._ancestorInfo;
29950      } else if (hostContainerInfo != null) {
29951        parentInfo = hostContainerInfo._ancestorInfo;
29952      }
29953      if (parentInfo) {
29954        // parentInfo should always be present except for the top-level
29955        // component when server rendering
29956        validateDOMNesting(null, this._stringText, this, parentInfo);
29957      }
29958    }
29959
29960    var domID = hostContainerInfo._idCounter++;
29961    var openingValue = ' react-text: ' + domID + ' ';
29962    var closingValue = ' /react-text ';
29963    this._domID = domID;
29964    this._hostParent = hostParent;
29965    if (transaction.useCreateElement) {
29966      var ownerDocument = hostContainerInfo._ownerDocument;
29967      var openingComment = ownerDocument.createComment(openingValue);
29968      var closingComment = ownerDocument.createComment(closingValue);
29969      var lazyTree = DOMLazyTree(ownerDocument.createDocumentFragment());
29970      DOMLazyTree.queueChild(lazyTree, DOMLazyTree(openingComment));
29971      if (this._stringText) {
29972        DOMLazyTree.queueChild(lazyTree, DOMLazyTree(ownerDocument.createTextNode(this._stringText)));
29973      }
29974      DOMLazyTree.queueChild(lazyTree, DOMLazyTree(closingComment));
29975      ReactDOMComponentTree.precacheNode(this, openingComment);
29976      this._closingComment = closingComment;
29977      return lazyTree;
29978    } else {
29979      var escapedText = escapeTextContentForBrowser(this._stringText);
29980
29981      if (transaction.renderToStaticMarkup) {
29982        // Normally we'd wrap this between comment nodes for the reasons stated
29983        // above, but since this is a situation where React won't take over
29984        // (static pages), we can simply return the text as it is.
29985        return escapedText;
29986      }
29987
29988      return '<!--' + openingValue + '-->' + escapedText + '<!--' + closingValue + '-->';
29989    }
29990  },
29991
29992  /**
29993   * Updates this component by updating the text content.
29994   *
29995   * @param {ReactText} nextText The next text content
29996   * @param {ReactReconcileTransaction} transaction
29997   * @internal
29998   */
29999  receiveComponent: function (nextText, transaction) {
30000    if (nextText !== this._currentElement) {
30001      this._currentElement = nextText;
30002      var nextStringText = '' + nextText;
30003      if (nextStringText !== this._stringText) {
30004        // TODO: Save this as pending props and use performUpdateIfNecessary
30005        // and/or updateComponent to do the actual update for consistency with
30006        // other component types?
30007        this._stringText = nextStringText;
30008        var commentNodes = this.getHostNode();
30009        DOMChildrenOperations.replaceDelimitedText(commentNodes[0], commentNodes[1], nextStringText);
30010      }
30011    }
30012  },
30013
30014  getHostNode: function () {
30015    var hostNode = this._commentNodes;
30016    if (hostNode) {
30017      return hostNode;
30018    }
30019    if (!this._closingComment) {
30020      var openingComment = ReactDOMComponentTree.getNodeFromInstance(this);
30021      var node = openingComment.nextSibling;
30022      while (true) {
30023        !(node != null) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Missing closing comment for text component %s', this._domID) : _prodInvariant('67', this._domID) : void 0;
30024        if (node.nodeType === 8 && node.nodeValue === ' /react-text ') {
30025          this._closingComment = node;
30026          break;
30027        }
30028        node = node.nextSibling;
30029      }
30030    }
30031    hostNode = [this._hostNode, this._closingComment];
30032    this._commentNodes = hostNode;
30033    return hostNode;
30034  },
30035
30036  unmountComponent: function () {
30037    this._closingComment = null;
30038    this._commentNodes = null;
30039    ReactDOMComponentTree.uncacheNode(this);
30040  }
30041});
30042
30043module.exports = ReactDOMTextComponent;
30044/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
30045
30046/***/ }),
30047/* 502 */
30048/***/ (function(module, exports, __webpack_require__) {
30049
30050"use strict";
30051/**
30052 * Copyright (c) 2013-present, Facebook, Inc.
30053 *
30054 * This source code is licensed under the MIT license found in the
30055 * LICENSE file in the root directory of this source tree.
30056 *
30057 */
30058
30059
30060
30061var _assign = __webpack_require__(10);
30062
30063var ReactUpdates = __webpack_require__(40);
30064var Transaction = __webpack_require__(100);
30065
30066var emptyFunction = __webpack_require__(38);
30067
30068var RESET_BATCHED_UPDATES = {
30069  initialize: emptyFunction,
30070  close: function () {
30071    ReactDefaultBatchingStrategy.isBatchingUpdates = false;
30072  }
30073};
30074
30075var FLUSH_BATCHED_UPDATES = {
30076  initialize: emptyFunction,
30077  close: ReactUpdates.flushBatchedUpdates.bind(ReactUpdates)
30078};
30079
30080var TRANSACTION_WRAPPERS = [FLUSH_BATCHED_UPDATES, RESET_BATCHED_UPDATES];
30081
30082function ReactDefaultBatchingStrategyTransaction() {
30083  this.reinitializeTransaction();
30084}
30085
30086_assign(ReactDefaultBatchingStrategyTransaction.prototype, Transaction, {
30087  getTransactionWrappers: function () {
30088    return TRANSACTION_WRAPPERS;
30089  }
30090});
30091
30092var transaction = new ReactDefaultBatchingStrategyTransaction();
30093
30094var ReactDefaultBatchingStrategy = {
30095  isBatchingUpdates: false,
30096
30097  /**
30098   * Call the provided function in a context within which calls to `setState`
30099   * and friends are batched such that components aren't updated unnecessarily.
30100   */
30101  batchedUpdates: function (callback, a, b, c, d, e) {
30102    var alreadyBatchingUpdates = ReactDefaultBatchingStrategy.isBatchingUpdates;
30103
30104    ReactDefaultBatchingStrategy.isBatchingUpdates = true;
30105
30106    // The code is written this way to avoid extra allocations
30107    if (alreadyBatchingUpdates) {
30108      return callback(a, b, c, d, e);
30109    } else {
30110      return transaction.perform(callback, null, a, b, c, d, e);
30111    }
30112  }
30113};
30114
30115module.exports = ReactDefaultBatchingStrategy;
30116
30117/***/ }),
30118/* 503 */
30119/***/ (function(module, exports, __webpack_require__) {
30120
30121"use strict";
30122/**
30123 * Copyright (c) 2013-present, Facebook, Inc.
30124 *
30125 * This source code is licensed under the MIT license found in the
30126 * LICENSE file in the root directory of this source tree.
30127 *
30128 */
30129
30130
30131
30132var _assign = __webpack_require__(10);
30133
30134var EventListener = __webpack_require__(215);
30135var ExecutionEnvironment = __webpack_require__(16);
30136var PooledClass = __webpack_require__(60);
30137var ReactDOMComponentTree = __webpack_require__(14);
30138var ReactUpdates = __webpack_require__(40);
30139
30140var getEventTarget = __webpack_require__(139);
30141var getUnboundedScrollPosition = __webpack_require__(504);
30142
30143/**
30144 * Find the deepest React component completely containing the root of the
30145 * passed-in instance (for use when entire React trees are nested within each
30146 * other). If React trees are not nested, returns null.
30147 */
30148function findParent(inst) {
30149  // TODO: It may be a good idea to cache this to prevent unnecessary DOM
30150  // traversal, but caching is difficult to do correctly without using a
30151  // mutation observer to listen for all DOM changes.
30152  while (inst._hostParent) {
30153    inst = inst._hostParent;
30154  }
30155  var rootNode = ReactDOMComponentTree.getNodeFromInstance(inst);
30156  var container = rootNode.parentNode;
30157  return ReactDOMComponentTree.getClosestInstanceFromNode(container);
30158}
30159
30160// Used to store ancestor hierarchy in top level callback
30161function TopLevelCallbackBookKeeping(topLevelType, nativeEvent) {
30162  this.topLevelType = topLevelType;
30163  this.nativeEvent = nativeEvent;
30164  this.ancestors = [];
30165}
30166_assign(TopLevelCallbackBookKeeping.prototype, {
30167  destructor: function () {
30168    this.topLevelType = null;
30169    this.nativeEvent = null;
30170    this.ancestors.length = 0;
30171  }
30172});
30173PooledClass.addPoolingTo(TopLevelCallbackBookKeeping, PooledClass.twoArgumentPooler);
30174
30175function handleTopLevelImpl(bookKeeping) {
30176  var nativeEventTarget = getEventTarget(bookKeeping.nativeEvent);
30177  var targetInst = ReactDOMComponentTree.getClosestInstanceFromNode(nativeEventTarget);
30178
30179  // Loop through the hierarchy, in case there's any nested components.
30180  // It's important that we build the array of ancestors before calling any
30181  // event handlers, because event handlers can modify the DOM, leading to
30182  // inconsistencies with ReactMount's node cache. See #1105.
30183  var ancestor = targetInst;
30184  do {
30185    bookKeeping.ancestors.push(ancestor);
30186    ancestor = ancestor && findParent(ancestor);
30187  } while (ancestor);
30188
30189  for (var i = 0; i < bookKeeping.ancestors.length; i++) {
30190    targetInst = bookKeeping.ancestors[i];
30191    ReactEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget(bookKeeping.nativeEvent));
30192  }
30193}
30194
30195function scrollValueMonitor(cb) {
30196  var scrollPosition = getUnboundedScrollPosition(window);
30197  cb(scrollPosition);
30198}
30199
30200var ReactEventListener = {
30201  _enabled: true,
30202  _handleTopLevel: null,
30203
30204  WINDOW_HANDLE: ExecutionEnvironment.canUseDOM ? window : null,
30205
30206  setHandleTopLevel: function (handleTopLevel) {
30207    ReactEventListener._handleTopLevel = handleTopLevel;
30208  },
30209
30210  setEnabled: function (enabled) {
30211    ReactEventListener._enabled = !!enabled;
30212  },
30213
30214  isEnabled: function () {
30215    return ReactEventListener._enabled;
30216  },
30217
30218  /**
30219   * Traps top-level events by using event bubbling.
30220   *
30221   * @param {string} topLevelType Record from `EventConstants`.
30222   * @param {string} handlerBaseName Event name (e.g. "click").
30223   * @param {object} element Element on which to attach listener.
30224   * @return {?object} An object with a remove function which will forcefully
30225   *                  remove the listener.
30226   * @internal
30227   */
30228  trapBubbledEvent: function (topLevelType, handlerBaseName, element) {
30229    if (!element) {
30230      return null;
30231    }
30232    return EventListener.listen(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));
30233  },
30234
30235  /**
30236   * Traps a top-level event by using event capturing.
30237   *
30238   * @param {string} topLevelType Record from `EventConstants`.
30239   * @param {string} handlerBaseName Event name (e.g. "click").
30240   * @param {object} element Element on which to attach listener.
30241   * @return {?object} An object with a remove function which will forcefully
30242   *                  remove the listener.
30243   * @internal
30244   */
30245  trapCapturedEvent: function (topLevelType, handlerBaseName, element) {
30246    if (!element) {
30247      return null;
30248    }
30249    return EventListener.capture(element, handlerBaseName, ReactEventListener.dispatchEvent.bind(null, topLevelType));
30250  },
30251
30252  monitorScrollValue: function (refresh) {
30253    var callback = scrollValueMonitor.bind(null, refresh);
30254    EventListener.listen(window, 'scroll', callback);
30255  },
30256
30257  dispatchEvent: function (topLevelType, nativeEvent) {
30258    if (!ReactEventListener._enabled) {
30259      return;
30260    }
30261
30262    var bookKeeping = TopLevelCallbackBookKeeping.getPooled(topLevelType, nativeEvent);
30263    try {
30264      // Event queue being processed in the same cycle allows
30265      // `preventDefault`.
30266      ReactUpdates.batchedUpdates(handleTopLevelImpl, bookKeeping);
30267    } finally {
30268      TopLevelCallbackBookKeeping.release(bookKeeping);
30269    }
30270  }
30271};
30272
30273module.exports = ReactEventListener;
30274
30275/***/ }),
30276/* 504 */
30277/***/ (function(module, exports, __webpack_require__) {
30278
30279"use strict";
30280/**
30281 * Copyright (c) 2013-present, Facebook, Inc.
30282 *
30283 * This source code is licensed under the MIT license found in the
30284 * LICENSE file in the root directory of this source tree.
30285 *
30286 * @typechecks
30287 */
30288
30289
30290
30291/**
30292 * Gets the scroll position of the supplied element or window.
30293 *
30294 * The return values are unbounded, unlike `getScrollPosition`. This means they
30295 * may be negative or exceed the element boundaries (which is possible using
30296 * inertial scrolling).
30297 *
30298 * @param {DOMWindow|DOMElement} scrollable
30299 * @return {object} Map with `x` and `y` keys.
30300 */
30301
30302function getUnboundedScrollPosition(scrollable) {
30303  if (scrollable.Window && scrollable instanceof scrollable.Window) {
30304    return {
30305      x: scrollable.pageXOffset || scrollable.document.documentElement.scrollLeft,
30306      y: scrollable.pageYOffset || scrollable.document.documentElement.scrollTop
30307    };
30308  }
30309  return {
30310    x: scrollable.scrollLeft,
30311    y: scrollable.scrollTop
30312  };
30313}
30314
30315module.exports = getUnboundedScrollPosition;
30316
30317/***/ }),
30318/* 505 */
30319/***/ (function(module, exports, __webpack_require__) {
30320
30321"use strict";
30322/**
30323 * Copyright (c) 2013-present, Facebook, Inc.
30324 *
30325 * This source code is licensed under the MIT license found in the
30326 * LICENSE file in the root directory of this source tree.
30327 *
30328 */
30329
30330
30331
30332var DOMProperty = __webpack_require__(47);
30333var EventPluginHub = __webpack_require__(77);
30334var EventPluginUtils = __webpack_require__(137);
30335var ReactComponentEnvironment = __webpack_require__(146);
30336var ReactEmptyComponent = __webpack_require__(212);
30337var ReactBrowserEventEmitter = __webpack_require__(104);
30338var ReactHostComponent = __webpack_require__(213);
30339var ReactUpdates = __webpack_require__(40);
30340
30341var ReactInjection = {
30342  Component: ReactComponentEnvironment.injection,
30343  DOMProperty: DOMProperty.injection,
30344  EmptyComponent: ReactEmptyComponent.injection,
30345  EventPluginHub: EventPluginHub.injection,
30346  EventPluginUtils: EventPluginUtils.injection,
30347  EventEmitter: ReactBrowserEventEmitter.injection,
30348  HostComponent: ReactHostComponent.injection,
30349  Updates: ReactUpdates.injection
30350};
30351
30352module.exports = ReactInjection;
30353
30354/***/ }),
30355/* 506 */
30356/***/ (function(module, exports, __webpack_require__) {
30357
30358"use strict";
30359/* WEBPACK VAR INJECTION */(function(process) {/**
30360 * Copyright (c) 2013-present, Facebook, Inc.
30361 *
30362 * This source code is licensed under the MIT license found in the
30363 * LICENSE file in the root directory of this source tree.
30364 *
30365 */
30366
30367
30368
30369var _assign = __webpack_require__(10);
30370
30371var CallbackQueue = __webpack_require__(199);
30372var PooledClass = __webpack_require__(60);
30373var ReactBrowserEventEmitter = __webpack_require__(104);
30374var ReactInputSelection = __webpack_require__(216);
30375var ReactInstrumentation = __webpack_require__(28);
30376var Transaction = __webpack_require__(100);
30377var ReactUpdateQueue = __webpack_require__(150);
30378
30379/**
30380 * Ensures that, when possible, the selection range (currently selected text
30381 * input) is not disturbed by performing the transaction.
30382 */
30383var SELECTION_RESTORATION = {
30384  /**
30385   * @return {Selection} Selection information.
30386   */
30387  initialize: ReactInputSelection.getSelectionInformation,
30388  /**
30389   * @param {Selection} sel Selection information returned from `initialize`.
30390   */
30391  close: ReactInputSelection.restoreSelection
30392};
30393
30394/**
30395 * Suppresses events (blur/focus) that could be inadvertently dispatched due to
30396 * high level DOM manipulations (like temporarily removing a text input from the
30397 * DOM).
30398 */
30399var EVENT_SUPPRESSION = {
30400  /**
30401   * @return {boolean} The enabled status of `ReactBrowserEventEmitter` before
30402   * the reconciliation.
30403   */
30404  initialize: function () {
30405    var currentlyEnabled = ReactBrowserEventEmitter.isEnabled();
30406    ReactBrowserEventEmitter.setEnabled(false);
30407    return currentlyEnabled;
30408  },
30409
30410  /**
30411   * @param {boolean} previouslyEnabled Enabled status of
30412   *   `ReactBrowserEventEmitter` before the reconciliation occurred. `close`
30413   *   restores the previous value.
30414   */
30415  close: function (previouslyEnabled) {
30416    ReactBrowserEventEmitter.setEnabled(previouslyEnabled);
30417  }
30418};
30419
30420/**
30421 * Provides a queue for collecting `componentDidMount` and
30422 * `componentDidUpdate` callbacks during the transaction.
30423 */
30424var ON_DOM_READY_QUEUEING = {
30425  /**
30426   * Initializes the internal `onDOMReady` queue.
30427   */
30428  initialize: function () {
30429    this.reactMountReady.reset();
30430  },
30431
30432  /**
30433   * After DOM is flushed, invoke all registered `onDOMReady` callbacks.
30434   */
30435  close: function () {
30436    this.reactMountReady.notifyAll();
30437  }
30438};
30439
30440/**
30441 * Executed within the scope of the `Transaction` instance. Consider these as
30442 * being member methods, but with an implied ordering while being isolated from
30443 * each other.
30444 */
30445var TRANSACTION_WRAPPERS = [SELECTION_RESTORATION, EVENT_SUPPRESSION, ON_DOM_READY_QUEUEING];
30446
30447if (process.env.NODE_ENV !== 'production') {
30448  TRANSACTION_WRAPPERS.push({
30449    initialize: ReactInstrumentation.debugTool.onBeginFlush,
30450    close: ReactInstrumentation.debugTool.onEndFlush
30451  });
30452}
30453
30454/**
30455 * Currently:
30456 * - The order that these are listed in the transaction is critical:
30457 * - Suppresses events.
30458 * - Restores selection range.
30459 *
30460 * Future:
30461 * - Restore document/overflow scroll positions that were unintentionally
30462 *   modified via DOM insertions above the top viewport boundary.
30463 * - Implement/integrate with customized constraint based layout system and keep
30464 *   track of which dimensions must be remeasured.
30465 *
30466 * @class ReactReconcileTransaction
30467 */
30468function ReactReconcileTransaction(useCreateElement) {
30469  this.reinitializeTransaction();
30470  // Only server-side rendering really needs this option (see
30471  // `ReactServerRendering`), but server-side uses
30472  // `ReactServerRenderingTransaction` instead. This option is here so that it's
30473  // accessible and defaults to false when `ReactDOMComponent` and
30474  // `ReactDOMTextComponent` checks it in `mountComponent`.`
30475  this.renderToStaticMarkup = false;
30476  this.reactMountReady = CallbackQueue.getPooled(null);
30477  this.useCreateElement = useCreateElement;
30478}
30479
30480var Mixin = {
30481  /**
30482   * @see Transaction
30483   * @abstract
30484   * @final
30485   * @return {array<object>} List of operation wrap procedures.
30486   *   TODO: convert to array<TransactionWrapper>
30487   */
30488  getTransactionWrappers: function () {
30489    return TRANSACTION_WRAPPERS;
30490  },
30491
30492  /**
30493   * @return {object} The queue to collect `onDOMReady` callbacks with.
30494   */
30495  getReactMountReady: function () {
30496    return this.reactMountReady;
30497  },
30498
30499  /**
30500   * @return {object} The queue to collect React async events.
30501   */
30502  getUpdateQueue: function () {
30503    return ReactUpdateQueue;
30504  },
30505
30506  /**
30507   * Save current transaction state -- if the return value from this method is
30508   * passed to `rollback`, the transaction will be reset to that state.
30509   */
30510  checkpoint: function () {
30511    // reactMountReady is the our only stateful wrapper
30512    return this.reactMountReady.checkpoint();
30513  },
30514
30515  rollback: function (checkpoint) {
30516    this.reactMountReady.rollback(checkpoint);
30517  },
30518
30519  /**
30520   * `PooledClass` looks for this, and will invoke this before allowing this
30521   * instance to be reused.
30522   */
30523  destructor: function () {
30524    CallbackQueue.release(this.reactMountReady);
30525    this.reactMountReady = null;
30526  }
30527};
30528
30529_assign(ReactReconcileTransaction.prototype, Transaction, Mixin);
30530
30531PooledClass.addPoolingTo(ReactReconcileTransaction);
30532
30533module.exports = ReactReconcileTransaction;
30534/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
30535
30536/***/ }),
30537/* 507 */
30538/***/ (function(module, exports, __webpack_require__) {
30539
30540"use strict";
30541/**
30542 * Copyright (c) 2013-present, Facebook, Inc.
30543 *
30544 * This source code is licensed under the MIT license found in the
30545 * LICENSE file in the root directory of this source tree.
30546 *
30547 */
30548
30549
30550
30551var ExecutionEnvironment = __webpack_require__(16);
30552
30553var getNodeForCharacterOffset = __webpack_require__(508);
30554var getTextContentAccessor = __webpack_require__(198);
30555
30556/**
30557 * While `isCollapsed` is available on the Selection object and `collapsed`
30558 * is available on the Range object, IE11 sometimes gets them wrong.
30559 * If the anchor/focus nodes and offsets are the same, the range is collapsed.
30560 */
30561function isCollapsed(anchorNode, anchorOffset, focusNode, focusOffset) {
30562  return anchorNode === focusNode && anchorOffset === focusOffset;
30563}
30564
30565/**
30566 * Get the appropriate anchor and focus node/offset pairs for IE.
30567 *
30568 * The catch here is that IE's selection API doesn't provide information
30569 * about whether the selection is forward or backward, so we have to
30570 * behave as though it's always forward.
30571 *
30572 * IE text differs from modern selection in that it behaves as though
30573 * block elements end with a new line. This means character offsets will
30574 * differ between the two APIs.
30575 *
30576 * @param {DOMElement} node
30577 * @return {object}
30578 */
30579function getIEOffsets(node) {
30580  var selection = document.selection;
30581  var selectedRange = selection.createRange();
30582  var selectedLength = selectedRange.text.length;
30583
30584  // Duplicate selection so we can move range without breaking user selection.
30585  var fromStart = selectedRange.duplicate();
30586  fromStart.moveToElementText(node);
30587  fromStart.setEndPoint('EndToStart', selectedRange);
30588
30589  var startOffset = fromStart.text.length;
30590  var endOffset = startOffset + selectedLength;
30591
30592  return {
30593    start: startOffset,
30594    end: endOffset
30595  };
30596}
30597
30598/**
30599 * @param {DOMElement} node
30600 * @return {?object}
30601 */
30602function getModernOffsets(node) {
30603  var selection = window.getSelection && window.getSelection();
30604
30605  if (!selection || selection.rangeCount === 0) {
30606    return null;
30607  }
30608
30609  var anchorNode = selection.anchorNode;
30610  var anchorOffset = selection.anchorOffset;
30611  var focusNode = selection.focusNode;
30612  var focusOffset = selection.focusOffset;
30613
30614  var currentRange = selection.getRangeAt(0);
30615
30616  // In Firefox, range.startContainer and range.endContainer can be "anonymous
30617  // divs", e.g. the up/down buttons on an <input type="number">. Anonymous
30618  // divs do not seem to expose properties, triggering a "Permission denied
30619  // error" if any of its properties are accessed. The only seemingly possible
30620  // way to avoid erroring is to access a property that typically works for
30621  // non-anonymous divs and catch any error that may otherwise arise. See
30622  // https://bugzilla.mozilla.org/show_bug.cgi?id=208427
30623  try {
30624    /* eslint-disable no-unused-expressions */
30625    currentRange.startContainer.nodeType;
30626    currentRange.endContainer.nodeType;
30627    /* eslint-enable no-unused-expressions */
30628  } catch (e) {
30629    return null;
30630  }
30631
30632  // If the node and offset values are the same, the selection is collapsed.
30633  // `Selection.isCollapsed` is available natively, but IE sometimes gets
30634  // this value wrong.
30635  var isSelectionCollapsed = isCollapsed(selection.anchorNode, selection.anchorOffset, selection.focusNode, selection.focusOffset);
30636
30637  var rangeLength = isSelectionCollapsed ? 0 : currentRange.toString().length;
30638
30639  var tempRange = currentRange.cloneRange();
30640  tempRange.selectNodeContents(node);
30641  tempRange.setEnd(currentRange.startContainer, currentRange.startOffset);
30642
30643  var isTempRangeCollapsed = isCollapsed(tempRange.startContainer, tempRange.startOffset, tempRange.endContainer, tempRange.endOffset);
30644
30645  var start = isTempRangeCollapsed ? 0 : tempRange.toString().length;
30646  var end = start + rangeLength;
30647
30648  // Detect whether the selection is backward.
30649  var detectionRange = document.createRange();
30650  detectionRange.setStart(anchorNode, anchorOffset);
30651  detectionRange.setEnd(focusNode, focusOffset);
30652  var isBackward = detectionRange.collapsed;
30653
30654  return {
30655    start: isBackward ? end : start,
30656    end: isBackward ? start : end
30657  };
30658}
30659
30660/**
30661 * @param {DOMElement|DOMTextNode} node
30662 * @param {object} offsets
30663 */
30664function setIEOffsets(node, offsets) {
30665  var range = document.selection.createRange().duplicate();
30666  var start, end;
30667
30668  if (offsets.end === undefined) {
30669    start = offsets.start;
30670    end = start;
30671  } else if (offsets.start > offsets.end) {
30672    start = offsets.end;
30673    end = offsets.start;
30674  } else {
30675    start = offsets.start;
30676    end = offsets.end;
30677  }
30678
30679  range.moveToElementText(node);
30680  range.moveStart('character', start);
30681  range.setEndPoint('EndToStart', range);
30682  range.moveEnd('character', end - start);
30683  range.select();
30684}
30685
30686/**
30687 * In modern non-IE browsers, we can support both forward and backward
30688 * selections.
30689 *
30690 * Note: IE10+ supports the Selection object, but it does not support
30691 * the `extend` method, which means that even in modern IE, it's not possible
30692 * to programmatically create a backward selection. Thus, for all IE
30693 * versions, we use the old IE API to create our selections.
30694 *
30695 * @param {DOMElement|DOMTextNode} node
30696 * @param {object} offsets
30697 */
30698function setModernOffsets(node, offsets) {
30699  if (!window.getSelection) {
30700    return;
30701  }
30702
30703  var selection = window.getSelection();
30704  var length = node[getTextContentAccessor()].length;
30705  var start = Math.min(offsets.start, length);
30706  var end = offsets.end === undefined ? start : Math.min(offsets.end, length);
30707
30708  // IE 11 uses modern selection, but doesn't support the extend method.
30709  // Flip backward selections, so we can set with a single range.
30710  if (!selection.extend && start > end) {
30711    var temp = end;
30712    end = start;
30713    start = temp;
30714  }
30715
30716  var startMarker = getNodeForCharacterOffset(node, start);
30717  var endMarker = getNodeForCharacterOffset(node, end);
30718
30719  if (startMarker && endMarker) {
30720    var range = document.createRange();
30721    range.setStart(startMarker.node, startMarker.offset);
30722    selection.removeAllRanges();
30723
30724    if (start > end) {
30725      selection.addRange(range);
30726      selection.extend(endMarker.node, endMarker.offset);
30727    } else {
30728      range.setEnd(endMarker.node, endMarker.offset);
30729      selection.addRange(range);
30730    }
30731  }
30732}
30733
30734var useIEOffsets = ExecutionEnvironment.canUseDOM && 'selection' in document && !('getSelection' in window);
30735
30736var ReactDOMSelection = {
30737  /**
30738   * @param {DOMElement} node
30739   */
30740  getOffsets: useIEOffsets ? getIEOffsets : getModernOffsets,
30741
30742  /**
30743   * @param {DOMElement|DOMTextNode} node
30744   * @param {object} offsets
30745   */
30746  setOffsets: useIEOffsets ? setIEOffsets : setModernOffsets
30747};
30748
30749module.exports = ReactDOMSelection;
30750
30751/***/ }),
30752/* 508 */
30753/***/ (function(module, exports, __webpack_require__) {
30754
30755"use strict";
30756/**
30757 * Copyright (c) 2013-present, Facebook, Inc.
30758 *
30759 * This source code is licensed under the MIT license found in the
30760 * LICENSE file in the root directory of this source tree.
30761 *
30762 */
30763
30764
30765
30766/**
30767 * Given any node return the first leaf node without children.
30768 *
30769 * @param {DOMElement|DOMTextNode} node
30770 * @return {DOMElement|DOMTextNode}
30771 */
30772
30773function getLeafNode(node) {
30774  while (node && node.firstChild) {
30775    node = node.firstChild;
30776  }
30777  return node;
30778}
30779
30780/**
30781 * Get the next sibling within a container. This will walk up the
30782 * DOM if a node's siblings have been exhausted.
30783 *
30784 * @param {DOMElement|DOMTextNode} node
30785 * @return {?DOMElement|DOMTextNode}
30786 */
30787function getSiblingNode(node) {
30788  while (node) {
30789    if (node.nextSibling) {
30790      return node.nextSibling;
30791    }
30792    node = node.parentNode;
30793  }
30794}
30795
30796/**
30797 * Get object describing the nodes which contain characters at offset.
30798 *
30799 * @param {DOMElement|DOMTextNode} root
30800 * @param {number} offset
30801 * @return {?object}
30802 */
30803function getNodeForCharacterOffset(root, offset) {
30804  var node = getLeafNode(root);
30805  var nodeStart = 0;
30806  var nodeEnd = 0;
30807
30808  while (node) {
30809    if (node.nodeType === 3) {
30810      nodeEnd = nodeStart + node.textContent.length;
30811
30812      if (nodeStart <= offset && nodeEnd >= offset) {
30813        return {
30814          node: node,
30815          offset: offset - nodeStart
30816        };
30817      }
30818
30819      nodeStart = nodeEnd;
30820    }
30821
30822    node = getLeafNode(getSiblingNode(node));
30823  }
30824}
30825
30826module.exports = getNodeForCharacterOffset;
30827
30828/***/ }),
30829/* 509 */
30830/***/ (function(module, exports, __webpack_require__) {
30831
30832"use strict";
30833
30834
30835/**
30836 * Copyright (c) 2013-present, Facebook, Inc.
30837 *
30838 * This source code is licensed under the MIT license found in the
30839 * LICENSE file in the root directory of this source tree.
30840 *
30841 * 
30842 */
30843
30844var isTextNode = __webpack_require__(510);
30845
30846/*eslint-disable no-bitwise */
30847
30848/**
30849 * Checks if a given DOM node contains or is another DOM node.
30850 */
30851function containsNode(outerNode, innerNode) {
30852  if (!outerNode || !innerNode) {
30853    return false;
30854  } else if (outerNode === innerNode) {
30855    return true;
30856  } else if (isTextNode(outerNode)) {
30857    return false;
30858  } else if (isTextNode(innerNode)) {
30859    return containsNode(outerNode, innerNode.parentNode);
30860  } else if ('contains' in outerNode) {
30861    return outerNode.contains(innerNode);
30862  } else if (outerNode.compareDocumentPosition) {
30863    return !!(outerNode.compareDocumentPosition(innerNode) & 16);
30864  } else {
30865    return false;
30866  }
30867}
30868
30869module.exports = containsNode;
30870
30871/***/ }),
30872/* 510 */
30873/***/ (function(module, exports, __webpack_require__) {
30874
30875"use strict";
30876
30877
30878/**
30879 * Copyright (c) 2013-present, Facebook, Inc.
30880 *
30881 * This source code is licensed under the MIT license found in the
30882 * LICENSE file in the root directory of this source tree.
30883 *
30884 * @typechecks
30885 */
30886
30887var isNode = __webpack_require__(511);
30888
30889/**
30890 * @param {*} object The object to check.
30891 * @return {boolean} Whether or not the object is a DOM text node.
30892 */
30893function isTextNode(object) {
30894  return isNode(object) && object.nodeType == 3;
30895}
30896
30897module.exports = isTextNode;
30898
30899/***/ }),
30900/* 511 */
30901/***/ (function(module, exports, __webpack_require__) {
30902
30903"use strict";
30904
30905
30906/**
30907 * Copyright (c) 2013-present, Facebook, Inc.
30908 *
30909 * This source code is licensed under the MIT license found in the
30910 * LICENSE file in the root directory of this source tree.
30911 *
30912 * @typechecks
30913 */
30914
30915/**
30916 * @param {*} object The object to check.
30917 * @return {boolean} Whether or not the object is a DOM node.
30918 */
30919function isNode(object) {
30920  var doc = object ? object.ownerDocument || object : document;
30921  var defaultView = doc.defaultView || window;
30922  return !!(object && (typeof defaultView.Node === 'function' ? object instanceof defaultView.Node : typeof object === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string'));
30923}
30924
30925module.exports = isNode;
30926
30927/***/ }),
30928/* 512 */
30929/***/ (function(module, exports, __webpack_require__) {
30930
30931"use strict";
30932/**
30933 * Copyright (c) 2013-present, Facebook, Inc.
30934 *
30935 * This source code is licensed under the MIT license found in the
30936 * LICENSE file in the root directory of this source tree.
30937 *
30938 */
30939
30940
30941
30942var NS = {
30943  xlink: 'http://www.w3.org/1999/xlink',
30944  xml: 'http://www.w3.org/XML/1998/namespace'
30945};
30946
30947// We use attributes for everything SVG so let's avoid some duplication and run
30948// code instead.
30949// The following are all specified in the HTML config already so we exclude here.
30950// - class (as className)
30951// - color
30952// - height
30953// - id
30954// - lang
30955// - max
30956// - media
30957// - method
30958// - min
30959// - name
30960// - style
30961// - target
30962// - type
30963// - width
30964var ATTRS = {
30965  accentHeight: 'accent-height',
30966  accumulate: 0,
30967  additive: 0,
30968  alignmentBaseline: 'alignment-baseline',
30969  allowReorder: 'allowReorder',
30970  alphabetic: 0,
30971  amplitude: 0,
30972  arabicForm: 'arabic-form',
30973  ascent: 0,
30974  attributeName: 'attributeName',
30975  attributeType: 'attributeType',
30976  autoReverse: 'autoReverse',
30977  azimuth: 0,
30978  baseFrequency: 'baseFrequency',
30979  baseProfile: 'baseProfile',
30980  baselineShift: 'baseline-shift',
30981  bbox: 0,
30982  begin: 0,
30983  bias: 0,
30984  by: 0,
30985  calcMode: 'calcMode',
30986  capHeight: 'cap-height',
30987  clip: 0,
30988  clipPath: 'clip-path',
30989  clipRule: 'clip-rule',
30990  clipPathUnits: 'clipPathUnits',
30991  colorInterpolation: 'color-interpolation',
30992  colorInterpolationFilters: 'color-interpolation-filters',
30993  colorProfile: 'color-profile',
30994  colorRendering: 'color-rendering',
30995  contentScriptType: 'contentScriptType',
30996  contentStyleType: 'contentStyleType',
30997  cursor: 0,
30998  cx: 0,
30999  cy: 0,
31000  d: 0,
31001  decelerate: 0,
31002  descent: 0,
31003  diffuseConstant: 'diffuseConstant',
31004  direction: 0,
31005  display: 0,
31006  divisor: 0,
31007  dominantBaseline: 'dominant-baseline',
31008  dur: 0,
31009  dx: 0,
31010  dy: 0,
31011  edgeMode: 'edgeMode',
31012  elevation: 0,
31013  enableBackground: 'enable-background',
31014  end: 0,
31015  exponent: 0,
31016  externalResourcesRequired: 'externalResourcesRequired',
31017  fill: 0,
31018  fillOpacity: 'fill-opacity',
31019  fillRule: 'fill-rule',
31020  filter: 0,
31021  filterRes: 'filterRes',
31022  filterUnits: 'filterUnits',
31023  floodColor: 'flood-color',
31024  floodOpacity: 'flood-opacity',
31025  focusable: 0,
31026  fontFamily: 'font-family',
31027  fontSize: 'font-size',
31028  fontSizeAdjust: 'font-size-adjust',
31029  fontStretch: 'font-stretch',
31030  fontStyle: 'font-style',
31031  fontVariant: 'font-variant',
31032  fontWeight: 'font-weight',
31033  format: 0,
31034  from: 0,
31035  fx: 0,
31036  fy: 0,
31037  g1: 0,
31038  g2: 0,
31039  glyphName: 'glyph-name',
31040  glyphOrientationHorizontal: 'glyph-orientation-horizontal',
31041  glyphOrientationVertical: 'glyph-orientation-vertical',
31042  glyphRef: 'glyphRef',
31043  gradientTransform: 'gradientTransform',
31044  gradientUnits: 'gradientUnits',
31045  hanging: 0,
31046  horizAdvX: 'horiz-adv-x',
31047  horizOriginX: 'horiz-origin-x',
31048  ideographic: 0,
31049  imageRendering: 'image-rendering',
31050  'in': 0,
31051  in2: 0,
31052  intercept: 0,
31053  k: 0,
31054  k1: 0,
31055  k2: 0,
31056  k3: 0,
31057  k4: 0,
31058  kernelMatrix: 'kernelMatrix',
31059  kernelUnitLength: 'kernelUnitLength',
31060  kerning: 0,
31061  keyPoints: 'keyPoints',
31062  keySplines: 'keySplines',
31063  keyTimes: 'keyTimes',
31064  lengthAdjust: 'lengthAdjust',
31065  letterSpacing: 'letter-spacing',
31066  lightingColor: 'lighting-color',
31067  limitingConeAngle: 'limitingConeAngle',
31068  local: 0,
31069  markerEnd: 'marker-end',
31070  markerMid: 'marker-mid',
31071  markerStart: 'marker-start',
31072  markerHeight: 'markerHeight',
31073  markerUnits: 'markerUnits',
31074  markerWidth: 'markerWidth',
31075  mask: 0,
31076  maskContentUnits: 'maskContentUnits',
31077  maskUnits: 'maskUnits',
31078  mathematical: 0,
31079  mode: 0,
31080  numOctaves: 'numOctaves',
31081  offset: 0,
31082  opacity: 0,
31083  operator: 0,
31084  order: 0,
31085  orient: 0,
31086  orientation: 0,
31087  origin: 0,
31088  overflow: 0,
31089  overlinePosition: 'overline-position',
31090  overlineThickness: 'overline-thickness',
31091  paintOrder: 'paint-order',
31092  panose1: 'panose-1',
31093  pathLength: 'pathLength',
31094  patternContentUnits: 'patternContentUnits',
31095  patternTransform: 'patternTransform',
31096  patternUnits: 'patternUnits',
31097  pointerEvents: 'pointer-events',
31098  points: 0,
31099  pointsAtX: 'pointsAtX',
31100  pointsAtY: 'pointsAtY',
31101  pointsAtZ: 'pointsAtZ',
31102  preserveAlpha: 'preserveAlpha',
31103  preserveAspectRatio: 'preserveAspectRatio',
31104  primitiveUnits: 'primitiveUnits',
31105  r: 0,
31106  radius: 0,
31107  refX: 'refX',
31108  refY: 'refY',
31109  renderingIntent: 'rendering-intent',
31110  repeatCount: 'repeatCount',
31111  repeatDur: 'repeatDur',
31112  requiredExtensions: 'requiredExtensions',
31113  requiredFeatures: 'requiredFeatures',
31114  restart: 0,
31115  result: 0,
31116  rotate: 0,
31117  rx: 0,
31118  ry: 0,
31119  scale: 0,
31120  seed: 0,
31121  shapeRendering: 'shape-rendering',
31122  slope: 0,
31123  spacing: 0,
31124  specularConstant: 'specularConstant',
31125  specularExponent: 'specularExponent',
31126  speed: 0,
31127  spreadMethod: 'spreadMethod',
31128  startOffset: 'startOffset',
31129  stdDeviation: 'stdDeviation',
31130  stemh: 0,
31131  stemv: 0,
31132  stitchTiles: 'stitchTiles',
31133  stopColor: 'stop-color',
31134  stopOpacity: 'stop-opacity',
31135  strikethroughPosition: 'strikethrough-position',
31136  strikethroughThickness: 'strikethrough-thickness',
31137  string: 0,
31138  stroke: 0,
31139  strokeDasharray: 'stroke-dasharray',
31140  strokeDashoffset: 'stroke-dashoffset',
31141  strokeLinecap: 'stroke-linecap',
31142  strokeLinejoin: 'stroke-linejoin',
31143  strokeMiterlimit: 'stroke-miterlimit',
31144  strokeOpacity: 'stroke-opacity',
31145  strokeWidth: 'stroke-width',
31146  surfaceScale: 'surfaceScale',
31147  systemLanguage: 'systemLanguage',
31148  tableValues: 'tableValues',
31149  targetX: 'targetX',
31150  targetY: 'targetY',
31151  textAnchor: 'text-anchor',
31152  textDecoration: 'text-decoration',
31153  textRendering: 'text-rendering',
31154  textLength: 'textLength',
31155  to: 0,
31156  transform: 0,
31157  u1: 0,
31158  u2: 0,
31159  underlinePosition: 'underline-position',
31160  underlineThickness: 'underline-thickness',
31161  unicode: 0,
31162  unicodeBidi: 'unicode-bidi',
31163  unicodeRange: 'unicode-range',
31164  unitsPerEm: 'units-per-em',
31165  vAlphabetic: 'v-alphabetic',
31166  vHanging: 'v-hanging',
31167  vIdeographic: 'v-ideographic',
31168  vMathematical: 'v-mathematical',
31169  values: 0,
31170  vectorEffect: 'vector-effect',
31171  version: 0,
31172  vertAdvY: 'vert-adv-y',
31173  vertOriginX: 'vert-origin-x',
31174  vertOriginY: 'vert-origin-y',
31175  viewBox: 'viewBox',
31176  viewTarget: 'viewTarget',
31177  visibility: 0,
31178  widths: 0,
31179  wordSpacing: 'word-spacing',
31180  writingMode: 'writing-mode',
31181  x: 0,
31182  xHeight: 'x-height',
31183  x1: 0,
31184  x2: 0,
31185  xChannelSelector: 'xChannelSelector',
31186  xlinkActuate: 'xlink:actuate',
31187  xlinkArcrole: 'xlink:arcrole',
31188  xlinkHref: 'xlink:href',
31189  xlinkRole: 'xlink:role',
31190  xlinkShow: 'xlink:show',
31191  xlinkTitle: 'xlink:title',
31192  xlinkType: 'xlink:type',
31193  xmlBase: 'xml:base',
31194  xmlns: 0,
31195  xmlnsXlink: 'xmlns:xlink',
31196  xmlLang: 'xml:lang',
31197  xmlSpace: 'xml:space',
31198  y: 0,
31199  y1: 0,
31200  y2: 0,
31201  yChannelSelector: 'yChannelSelector',
31202  z: 0,
31203  zoomAndPan: 'zoomAndPan'
31204};
31205
31206var SVGDOMPropertyConfig = {
31207  Properties: {},
31208  DOMAttributeNamespaces: {
31209    xlinkActuate: NS.xlink,
31210    xlinkArcrole: NS.xlink,
31211    xlinkHref: NS.xlink,
31212    xlinkRole: NS.xlink,
31213    xlinkShow: NS.xlink,
31214    xlinkTitle: NS.xlink,
31215    xlinkType: NS.xlink,
31216    xmlBase: NS.xml,
31217    xmlLang: NS.xml,
31218    xmlSpace: NS.xml
31219  },
31220  DOMAttributeNames: {}
31221};
31222
31223Object.keys(ATTRS).forEach(function (key) {
31224  SVGDOMPropertyConfig.Properties[key] = 0;
31225  if (ATTRS[key]) {
31226    SVGDOMPropertyConfig.DOMAttributeNames[key] = ATTRS[key];
31227  }
31228});
31229
31230module.exports = SVGDOMPropertyConfig;
31231
31232/***/ }),
31233/* 513 */
31234/***/ (function(module, exports, __webpack_require__) {
31235
31236"use strict";
31237/**
31238 * Copyright (c) 2013-present, Facebook, Inc.
31239 *
31240 * This source code is licensed under the MIT license found in the
31241 * LICENSE file in the root directory of this source tree.
31242 *
31243 */
31244
31245
31246
31247var EventPropagators = __webpack_require__(76);
31248var ExecutionEnvironment = __webpack_require__(16);
31249var ReactDOMComponentTree = __webpack_require__(14);
31250var ReactInputSelection = __webpack_require__(216);
31251var SyntheticEvent = __webpack_require__(43);
31252
31253var getActiveElement = __webpack_require__(217);
31254var isTextInputElement = __webpack_require__(202);
31255var shallowEqual = __webpack_require__(147);
31256
31257var skipSelectionChangeEvent = ExecutionEnvironment.canUseDOM && 'documentMode' in document && document.documentMode <= 11;
31258
31259var eventTypes = {
31260  select: {
31261    phasedRegistrationNames: {
31262      bubbled: 'onSelect',
31263      captured: 'onSelectCapture'
31264    },
31265    dependencies: ['topBlur', 'topContextMenu', 'topFocus', 'topKeyDown', 'topKeyUp', 'topMouseDown', 'topMouseUp', 'topSelectionChange']
31266  }
31267};
31268
31269var activeElement = null;
31270var activeElementInst = null;
31271var lastSelection = null;
31272var mouseDown = false;
31273
31274// Track whether a listener exists for this plugin. If none exist, we do
31275// not extract events. See #3639.
31276var hasListener = false;
31277
31278/**
31279 * Get an object which is a unique representation of the current selection.
31280 *
31281 * The return value will not be consistent across nodes or browsers, but
31282 * two identical selections on the same node will return identical objects.
31283 *
31284 * @param {DOMElement} node
31285 * @return {object}
31286 */
31287function getSelection(node) {
31288  if ('selectionStart' in node && ReactInputSelection.hasSelectionCapabilities(node)) {
31289    return {
31290      start: node.selectionStart,
31291      end: node.selectionEnd
31292    };
31293  } else if (window.getSelection) {
31294    var selection = window.getSelection();
31295    return {
31296      anchorNode: selection.anchorNode,
31297      anchorOffset: selection.anchorOffset,
31298      focusNode: selection.focusNode,
31299      focusOffset: selection.focusOffset
31300    };
31301  } else if (document.selection) {
31302    var range = document.selection.createRange();
31303    return {
31304      parentElement: range.parentElement(),
31305      text: range.text,
31306      top: range.boundingTop,
31307      left: range.boundingLeft
31308    };
31309  }
31310}
31311
31312/**
31313 * Poll selection to see whether it's changed.
31314 *
31315 * @param {object} nativeEvent
31316 * @return {?SyntheticEvent}
31317 */
31318function constructSelectEvent(nativeEvent, nativeEventTarget) {
31319  // Ensure we have the right element, and that the user is not dragging a
31320  // selection (this matches native `select` event behavior). In HTML5, select
31321  // fires only on input and textarea thus if there's no focused element we
31322  // won't dispatch.
31323  if (mouseDown || activeElement == null || activeElement !== getActiveElement()) {
31324    return null;
31325  }
31326
31327  // Only fire when selection has actually changed.
31328  var currentSelection = getSelection(activeElement);
31329  if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {
31330    lastSelection = currentSelection;
31331
31332    var syntheticEvent = SyntheticEvent.getPooled(eventTypes.select, activeElementInst, nativeEvent, nativeEventTarget);
31333
31334    syntheticEvent.type = 'select';
31335    syntheticEvent.target = activeElement;
31336
31337    EventPropagators.accumulateTwoPhaseDispatches(syntheticEvent);
31338
31339    return syntheticEvent;
31340  }
31341
31342  return null;
31343}
31344
31345/**
31346 * This plugin creates an `onSelect` event that normalizes select events
31347 * across form elements.
31348 *
31349 * Supported elements are:
31350 * - input (see `isTextInputElement`)
31351 * - textarea
31352 * - contentEditable
31353 *
31354 * This differs from native browser implementations in the following ways:
31355 * - Fires on contentEditable fields as well as inputs.
31356 * - Fires for collapsed selection.
31357 * - Fires after user input.
31358 */
31359var SelectEventPlugin = {
31360  eventTypes: eventTypes,
31361
31362  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
31363    if (!hasListener) {
31364      return null;
31365    }
31366
31367    var targetNode = targetInst ? ReactDOMComponentTree.getNodeFromInstance(targetInst) : window;
31368
31369    switch (topLevelType) {
31370      // Track the input node that has focus.
31371      case 'topFocus':
31372        if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {
31373          activeElement = targetNode;
31374          activeElementInst = targetInst;
31375          lastSelection = null;
31376        }
31377        break;
31378      case 'topBlur':
31379        activeElement = null;
31380        activeElementInst = null;
31381        lastSelection = null;
31382        break;
31383      // Don't fire the event while the user is dragging. This matches the
31384      // semantics of the native select event.
31385      case 'topMouseDown':
31386        mouseDown = true;
31387        break;
31388      case 'topContextMenu':
31389      case 'topMouseUp':
31390        mouseDown = false;
31391        return constructSelectEvent(nativeEvent, nativeEventTarget);
31392      // Chrome and IE fire non-standard event when selection is changed (and
31393      // sometimes when it hasn't). IE's event fires out of order with respect
31394      // to key and input events on deletion, so we discard it.
31395      //
31396      // Firefox doesn't support selectionchange, so check selection status
31397      // after each key entry. The selection changes after keydown and before
31398      // keyup, but we check on keydown as well in the case of holding down a
31399      // key, when multiple keydown events are fired but only one keyup is.
31400      // This is also our approach for IE handling, for the reason above.
31401      case 'topSelectionChange':
31402        if (skipSelectionChangeEvent) {
31403          break;
31404        }
31405      // falls through
31406      case 'topKeyDown':
31407      case 'topKeyUp':
31408        return constructSelectEvent(nativeEvent, nativeEventTarget);
31409    }
31410
31411    return null;
31412  },
31413
31414  didPutListener: function (inst, registrationName, listener) {
31415    if (registrationName === 'onSelect') {
31416      hasListener = true;
31417    }
31418  }
31419};
31420
31421module.exports = SelectEventPlugin;
31422
31423/***/ }),
31424/* 514 */
31425/***/ (function(module, exports, __webpack_require__) {
31426
31427"use strict";
31428/* WEBPACK VAR INJECTION */(function(process) {/**
31429 * Copyright (c) 2013-present, Facebook, Inc.
31430 *
31431 * This source code is licensed under the MIT license found in the
31432 * LICENSE file in the root directory of this source tree.
31433 *
31434 * 
31435 */
31436
31437
31438
31439var _prodInvariant = __webpack_require__(8);
31440
31441var EventListener = __webpack_require__(215);
31442var EventPropagators = __webpack_require__(76);
31443var ReactDOMComponentTree = __webpack_require__(14);
31444var SyntheticAnimationEvent = __webpack_require__(515);
31445var SyntheticClipboardEvent = __webpack_require__(516);
31446var SyntheticEvent = __webpack_require__(43);
31447var SyntheticFocusEvent = __webpack_require__(517);
31448var SyntheticKeyboardEvent = __webpack_require__(518);
31449var SyntheticMouseEvent = __webpack_require__(101);
31450var SyntheticDragEvent = __webpack_require__(520);
31451var SyntheticTouchEvent = __webpack_require__(521);
31452var SyntheticTransitionEvent = __webpack_require__(522);
31453var SyntheticUIEvent = __webpack_require__(78);
31454var SyntheticWheelEvent = __webpack_require__(523);
31455
31456var emptyFunction = __webpack_require__(38);
31457var getEventCharCode = __webpack_require__(152);
31458var invariant = __webpack_require__(2);
31459
31460/**
31461 * Turns
31462 * ['abort', ...]
31463 * into
31464 * eventTypes = {
31465 *   'abort': {
31466 *     phasedRegistrationNames: {
31467 *       bubbled: 'onAbort',
31468 *       captured: 'onAbortCapture',
31469 *     },
31470 *     dependencies: ['topAbort'],
31471 *   },
31472 *   ...
31473 * };
31474 * topLevelEventsToDispatchConfig = {
31475 *   'topAbort': { sameConfig }
31476 * };
31477 */
31478var eventTypes = {};
31479var topLevelEventsToDispatchConfig = {};
31480['abort', 'animationEnd', 'animationIteration', 'animationStart', 'blur', 'canPlay', 'canPlayThrough', 'click', 'contextMenu', 'copy', 'cut', 'doubleClick', 'drag', 'dragEnd', 'dragEnter', 'dragExit', 'dragLeave', 'dragOver', 'dragStart', 'drop', 'durationChange', 'emptied', 'encrypted', 'ended', 'error', 'focus', 'input', 'invalid', 'keyDown', 'keyPress', 'keyUp', 'load', 'loadedData', 'loadedMetadata', 'loadStart', 'mouseDown', 'mouseMove', 'mouseOut', 'mouseOver', 'mouseUp', 'paste', 'pause', 'play', 'playing', 'progress', 'rateChange', 'reset', 'scroll', 'seeked', 'seeking', 'stalled', 'submit', 'suspend', 'timeUpdate', 'touchCancel', 'touchEnd', 'touchMove', 'touchStart', 'transitionEnd', 'volumeChange', 'waiting', 'wheel'].forEach(function (event) {
31481  var capitalizedEvent = event[0].toUpperCase() + event.slice(1);
31482  var onEvent = 'on' + capitalizedEvent;
31483  var topEvent = 'top' + capitalizedEvent;
31484
31485  var type = {
31486    phasedRegistrationNames: {
31487      bubbled: onEvent,
31488      captured: onEvent + 'Capture'
31489    },
31490    dependencies: [topEvent]
31491  };
31492  eventTypes[event] = type;
31493  topLevelEventsToDispatchConfig[topEvent] = type;
31494});
31495
31496var onClickListeners = {};
31497
31498function getDictionaryKey(inst) {
31499  // Prevents V8 performance issue:
31500  // https://github.com/facebook/react/pull/7232
31501  return '.' + inst._rootNodeID;
31502}
31503
31504function isInteractive(tag) {
31505  return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
31506}
31507
31508var SimpleEventPlugin = {
31509  eventTypes: eventTypes,
31510
31511  extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
31512    var dispatchConfig = topLevelEventsToDispatchConfig[topLevelType];
31513    if (!dispatchConfig) {
31514      return null;
31515    }
31516    var EventConstructor;
31517    switch (topLevelType) {
31518      case 'topAbort':
31519      case 'topCanPlay':
31520      case 'topCanPlayThrough':
31521      case 'topDurationChange':
31522      case 'topEmptied':
31523      case 'topEncrypted':
31524      case 'topEnded':
31525      case 'topError':
31526      case 'topInput':
31527      case 'topInvalid':
31528      case 'topLoad':
31529      case 'topLoadedData':
31530      case 'topLoadedMetadata':
31531      case 'topLoadStart':
31532      case 'topPause':
31533      case 'topPlay':
31534      case 'topPlaying':
31535      case 'topProgress':
31536      case 'topRateChange':
31537      case 'topReset':
31538      case 'topSeeked':
31539      case 'topSeeking':
31540      case 'topStalled':
31541      case 'topSubmit':
31542      case 'topSuspend':
31543      case 'topTimeUpdate':
31544      case 'topVolumeChange':
31545      case 'topWaiting':
31546        // HTML Events
31547        // @see http://www.w3.org/TR/html5/index.html#events-0
31548        EventConstructor = SyntheticEvent;
31549        break;
31550      case 'topKeyPress':
31551        // Firefox creates a keypress event for function keys too. This removes
31552        // the unwanted keypress events. Enter is however both printable and
31553        // non-printable. One would expect Tab to be as well (but it isn't).
31554        if (getEventCharCode(nativeEvent) === 0) {
31555          return null;
31556        }
31557      /* falls through */
31558      case 'topKeyDown':
31559      case 'topKeyUp':
31560        EventConstructor = SyntheticKeyboardEvent;
31561        break;
31562      case 'topBlur':
31563      case 'topFocus':
31564        EventConstructor = SyntheticFocusEvent;
31565        break;
31566      case 'topClick':
31567        // Firefox creates a click event on right mouse clicks. This removes the
31568        // unwanted click events.
31569        if (nativeEvent.button === 2) {
31570          return null;
31571        }
31572      /* falls through */
31573      case 'topDoubleClick':
31574      case 'topMouseDown':
31575      case 'topMouseMove':
31576      case 'topMouseUp':
31577      // TODO: Disabled elements should not respond to mouse events
31578      /* falls through */
31579      case 'topMouseOut':
31580      case 'topMouseOver':
31581      case 'topContextMenu':
31582        EventConstructor = SyntheticMouseEvent;
31583        break;
31584      case 'topDrag':
31585      case 'topDragEnd':
31586      case 'topDragEnter':
31587      case 'topDragExit':
31588      case 'topDragLeave':
31589      case 'topDragOver':
31590      case 'topDragStart':
31591      case 'topDrop':
31592        EventConstructor = SyntheticDragEvent;
31593        break;
31594      case 'topTouchCancel':
31595      case 'topTouchEnd':
31596      case 'topTouchMove':
31597      case 'topTouchStart':
31598        EventConstructor = SyntheticTouchEvent;
31599        break;
31600      case 'topAnimationEnd':
31601      case 'topAnimationIteration':
31602      case 'topAnimationStart':
31603        EventConstructor = SyntheticAnimationEvent;
31604        break;
31605      case 'topTransitionEnd':
31606        EventConstructor = SyntheticTransitionEvent;
31607        break;
31608      case 'topScroll':
31609        EventConstructor = SyntheticUIEvent;
31610        break;
31611      case 'topWheel':
31612        EventConstructor = SyntheticWheelEvent;
31613        break;
31614      case 'topCopy':
31615      case 'topCut':
31616      case 'topPaste':
31617        EventConstructor = SyntheticClipboardEvent;
31618        break;
31619    }
31620    !EventConstructor ? process.env.NODE_ENV !== 'production' ? invariant(false, 'SimpleEventPlugin: Unhandled event type, `%s`.', topLevelType) : _prodInvariant('86', topLevelType) : void 0;
31621    var event = EventConstructor.getPooled(dispatchConfig, targetInst, nativeEvent, nativeEventTarget);
31622    EventPropagators.accumulateTwoPhaseDispatches(event);
31623    return event;
31624  },
31625
31626  didPutListener: function (inst, registrationName, listener) {
31627    // Mobile Safari does not fire properly bubble click events on
31628    // non-interactive elements, which means delegated click listeners do not
31629    // fire. The workaround for this bug involves attaching an empty click
31630    // listener on the target node.
31631    // http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
31632    if (registrationName === 'onClick' && !isInteractive(inst._tag)) {
31633      var key = getDictionaryKey(inst);
31634      var node = ReactDOMComponentTree.getNodeFromInstance(inst);
31635      if (!onClickListeners[key]) {
31636        onClickListeners[key] = EventListener.listen(node, 'click', emptyFunction);
31637      }
31638    }
31639  },
31640
31641  willDeleteListener: function (inst, registrationName) {
31642    if (registrationName === 'onClick' && !isInteractive(inst._tag)) {
31643      var key = getDictionaryKey(inst);
31644      onClickListeners[key].remove();
31645      delete onClickListeners[key];
31646    }
31647  }
31648};
31649
31650module.exports = SimpleEventPlugin;
31651/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
31652
31653/***/ }),
31654/* 515 */
31655/***/ (function(module, exports, __webpack_require__) {
31656
31657"use strict";
31658/**
31659 * Copyright (c) 2013-present, Facebook, Inc.
31660 *
31661 * This source code is licensed under the MIT license found in the
31662 * LICENSE file in the root directory of this source tree.
31663 *
31664 */
31665
31666
31667
31668var SyntheticEvent = __webpack_require__(43);
31669
31670/**
31671 * @interface Event
31672 * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface
31673 * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent
31674 */
31675var AnimationEventInterface = {
31676  animationName: null,
31677  elapsedTime: null,
31678  pseudoElement: null
31679};
31680
31681/**
31682 * @param {object} dispatchConfig Configuration used to dispatch this event.
31683 * @param {string} dispatchMarker Marker identifying the event target.
31684 * @param {object} nativeEvent Native browser event.
31685 * @extends {SyntheticEvent}
31686 */
31687function SyntheticAnimationEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
31688  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
31689}
31690
31691SyntheticEvent.augmentClass(SyntheticAnimationEvent, AnimationEventInterface);
31692
31693module.exports = SyntheticAnimationEvent;
31694
31695/***/ }),
31696/* 516 */
31697/***/ (function(module, exports, __webpack_require__) {
31698
31699"use strict";
31700/**
31701 * Copyright (c) 2013-present, Facebook, Inc.
31702 *
31703 * This source code is licensed under the MIT license found in the
31704 * LICENSE file in the root directory of this source tree.
31705 *
31706 */
31707
31708
31709
31710var SyntheticEvent = __webpack_require__(43);
31711
31712/**
31713 * @interface Event
31714 * @see http://www.w3.org/TR/clipboard-apis/
31715 */
31716var ClipboardEventInterface = {
31717  clipboardData: function (event) {
31718    return 'clipboardData' in event ? event.clipboardData : window.clipboardData;
31719  }
31720};
31721
31722/**
31723 * @param {object} dispatchConfig Configuration used to dispatch this event.
31724 * @param {string} dispatchMarker Marker identifying the event target.
31725 * @param {object} nativeEvent Native browser event.
31726 * @extends {SyntheticUIEvent}
31727 */
31728function SyntheticClipboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
31729  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
31730}
31731
31732SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface);
31733
31734module.exports = SyntheticClipboardEvent;
31735
31736/***/ }),
31737/* 517 */
31738/***/ (function(module, exports, __webpack_require__) {
31739
31740"use strict";
31741/**
31742 * Copyright (c) 2013-present, Facebook, Inc.
31743 *
31744 * This source code is licensed under the MIT license found in the
31745 * LICENSE file in the root directory of this source tree.
31746 *
31747 */
31748
31749
31750
31751var SyntheticUIEvent = __webpack_require__(78);
31752
31753/**
31754 * @interface FocusEvent
31755 * @see http://www.w3.org/TR/DOM-Level-3-Events/
31756 */
31757var FocusEventInterface = {
31758  relatedTarget: null
31759};
31760
31761/**
31762 * @param {object} dispatchConfig Configuration used to dispatch this event.
31763 * @param {string} dispatchMarker Marker identifying the event target.
31764 * @param {object} nativeEvent Native browser event.
31765 * @extends {SyntheticUIEvent}
31766 */
31767function SyntheticFocusEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
31768  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
31769}
31770
31771SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface);
31772
31773module.exports = SyntheticFocusEvent;
31774
31775/***/ }),
31776/* 518 */
31777/***/ (function(module, exports, __webpack_require__) {
31778
31779"use strict";
31780/**
31781 * Copyright (c) 2013-present, Facebook, Inc.
31782 *
31783 * This source code is licensed under the MIT license found in the
31784 * LICENSE file in the root directory of this source tree.
31785 *
31786 */
31787
31788
31789
31790var SyntheticUIEvent = __webpack_require__(78);
31791
31792var getEventCharCode = __webpack_require__(152);
31793var getEventKey = __webpack_require__(519);
31794var getEventModifierState = __webpack_require__(141);
31795
31796/**
31797 * @interface KeyboardEvent
31798 * @see http://www.w3.org/TR/DOM-Level-3-Events/
31799 */
31800var KeyboardEventInterface = {
31801  key: getEventKey,
31802  location: null,
31803  ctrlKey: null,
31804  shiftKey: null,
31805  altKey: null,
31806  metaKey: null,
31807  repeat: null,
31808  locale: null,
31809  getModifierState: getEventModifierState,
31810  // Legacy Interface
31811  charCode: function (event) {
31812    // `charCode` is the result of a KeyPress event and represents the value of
31813    // the actual printable character.
31814
31815    // KeyPress is deprecated, but its replacement is not yet final and n
31815ot
31816    // implemented in any major browser. Only KeyPress has charCode.
31817    if (event.type === 'keypress') {
31818      return getEventCharCode(event);
31819    }
31820    return 0;
31821  },
31822  keyCode: function (event) {
31823    // `keyCode` is the result of a KeyDown/Up event and represents the value of
31824    // physical keyboard key.
31825
31826    // The actual meaning of the value depends on the users' keyboard layout
31827    // which cannot be detected. Assuming that it is a US keyboard layout
31828    // provides a surprisingly accurate mapping for US and European users.
31829    // Due to this, it is left to the user to implement at this time.
31830    if (event.type === 'keydown' || event.type === 'keyup') {
31831      return event.keyCode;
31832    }
31833    return 0;
31834  },
31835  which: function (event) {
31836    // `which` is an alias for either `keyCode` or `charCode` depending on the
31837    // type of the event.
31838    if (event.type === 'keypress') {
31839      return getEventCharCode(event);
31840    }
31841    if (event.type === 'keydown' || event.type === 'keyup') {
31842      return event.keyCode;
31843    }
31844    return 0;
31845  }
31846};
31847
31848/**
31849 * @param {object} dispatchConfig Configuration used to dispatch this event.
31850 * @param {string} dispatchMarker Marker identifying the event target.
31851 * @param {object} nativeEvent Native browser event.
31852 * @extends {SyntheticUIEvent}
31853 */
31854function SyntheticKeyboardEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
31855  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
31856}
31857
31858SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface);
31859
31860module.exports = SyntheticKeyboardEvent;
31861
31862/***/ }),
31863/* 519 */
31864/***/ (function(module, exports, __webpack_require__) {
31865
31866"use strict";
31867/**
31868 * Copyright (c) 2013-present, Facebook, Inc.
31869 *
31870 * This source code is licensed under the MIT license found in the
31871 * LICENSE file in the root directory of this source tree.
31872 *
31873 */
31874
31875
31876
31877var getEventCharCode = __webpack_require__(152);
31878
31879/**
31880 * Normalization of deprecated HTML5 `key` values
31881 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
31882 */
31883var normalizeKey = {
31884  Esc: 'Escape',
31885  Spacebar: ' ',
31886  Left: 'ArrowLeft',
31887  Up: 'ArrowUp',
31888  Right: 'ArrowRight',
31889  Down: 'ArrowDown',
31890  Del: 'Delete',
31891  Win: 'OS',
31892  Menu: 'ContextMenu',
31893  Apps: 'ContextMenu',
31894  Scroll: 'ScrollLock',
31895  MozPrintableKey: 'Unidentified'
31896};
31897
31898/**
31899 * Translation from legacy `keyCode` to HTML5 `key`
31900 * Only special keys supported, all others depend on keyboard layout or browser
31901 * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
31902 */
31903var translateToKey = {
31904  8: 'Backspace',
31905  9: 'Tab',
31906  12: 'Clear',
31907  13: 'Enter',
31908  16: 'Shift',
31909  17: 'Control',
31910  18: 'Alt',
31911  19: 'Pause',
31912  20: 'CapsLock',
31913  27: 'Escape',
31914  32: ' ',
31915  33: 'PageUp',
31916  34: 'PageDown',
31917  35: 'End',
31918  36: 'Home',
31919  37: 'ArrowLeft',
31920  38: 'ArrowUp',
31921  39: 'ArrowRight',
31922  40: 'ArrowDown',
31923  45: 'Insert',
31924  46: 'Delete',
31925  112: 'F1',
31926  113: 'F2',
31927  114: 'F3',
31928  115: 'F4',
31929  116: 'F5',
31930  117: 'F6',
31931  118: 'F7',
31932  119: 'F8',
31933  120: 'F9',
31934  121: 'F10',
31935  122: 'F11',
31936  123: 'F12',
31937  144: 'NumLock',
31938  145: 'ScrollLock',
31939  224: 'Meta'
31940};
31941
31942/**
31943 * @param {object} nativeEvent Native browser event.
31944 * @return {string} Normalized `key` property.
31945 */
31946function getEventKey(nativeEvent) {
31947  if (nativeEvent.key) {
31948    // Normalize inconsistent values reported by browsers due to
31949    // implementations of a working draft specification.
31950
31951    // FireFox implements `key` but returns `MozPrintableKey` for all
31952    // printable characters (normalized to `Unidentified`), ignore it.
31953    var key = normalizeKey[nativeEvent.key] || nativeEvent.key;
31954    if (key !== 'Unidentified') {
31955      return key;
31956    }
31957  }
31958
31959  // Browser does not implement `key`, polyfill as much of it as we can.
31960  if (nativeEvent.type === 'keypress') {
31961    var charCode = getEventCharCode(nativeEvent);
31962
31963    // The enter-key is technically both printable and non-printable and can
31964    // thus be captured by `keypress`, no other non-printable key should.
31965    return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);
31966  }
31967  if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {
31968    // While user keyboard layout determines the actual meaning of each
31969    // `keyCode` value, almost all function keys have a universal value.
31970    return translateToKey[nativeEvent.keyCode] || 'Unidentified';
31971  }
31972  return '';
31973}
31974
31975module.exports = getEventKey;
31976
31977/***/ }),
31978/* 520 */
31979/***/ (function(module, exports, __webpack_require__) {
31980
31981"use strict";
31982/**
31983 * Copyright (c) 2013-present, Facebook, Inc.
31984 *
31985 * This source code is licensed under the MIT license found in the
31986 * LICENSE file in the root directory of this source tree.
31987 *
31988 */
31989
31990
31991
31992var SyntheticMouseEvent = __webpack_require__(101);
31993
31994/**
31995 * @interface DragEvent
31996 * @see http://www.w3.org/TR/DOM-Level-3-Events/
31997 */
31998var DragEventInterface = {
31999  dataTransfer: null
32000};
32001
32002/**
32003 * @param {object} dispatchConfig Configuration used to dispatch this event.
32004 * @param {string} dispatchMarker Marker identifying the event target.
32005 * @param {object} nativeEvent Native browser event.
32006 * @extends {SyntheticUIEvent}
32007 */
32008function SyntheticDragEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
32009  return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
32010}
32011
32012SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface);
32013
32014module.exports = SyntheticDragEvent;
32015
32016/***/ }),
32017/* 521 */
32018/***/ (function(module, exports, __webpack_require__) {
32019
32020"use strict";
32021/**
32022 * Copyright (c) 2013-present, Facebook, Inc.
32023 *
32024 * This source code is licensed under the MIT license found in the
32025 * LICENSE file in the root directory of this source tree.
32026 *
32027 */
32028
32029
32030
32031var SyntheticUIEvent = __webpack_require__(78);
32032
32033var getEventModifierState = __webpack_require__(141);
32034
32035/**
32036 * @interface TouchEvent
32037 * @see http://www.w3.org/TR/touch-events/
32038 */
32039var TouchEventInterface = {
32040  touches: null,
32041  targetTouches: null,
32042  changedTouches: null,
32043  altKey: null,
32044  metaKey: null,
32045  ctrlKey: null,
32046  shiftKey: null,
32047  getModifierState: getEventModifierState
32048};
32049
32050/**
32051 * @param {object} dispatchConfig Configuration used to dispatch this event.
32052 * @param {string} dispatchMarker Marker identifying the event target.
32053 * @param {object} nativeEvent Native browser event.
32054 * @extends {SyntheticUIEvent}
32055 */
32056function SyntheticTouchEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
32057  return SyntheticUIEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
32058}
32059
32060SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface);
32061
32062module.exports = SyntheticTouchEvent;
32063
32064/***/ }),
32065/* 522 */
32066/***/ (function(module, exports, __webpack_require__) {
32067
32068"use strict";
32069/**
32070 * Copyright (c) 2013-present, Facebook, Inc.
32071 *
32072 * This source code is licensed under the MIT license found in the
32073 * LICENSE file in the root directory of this source tree.
32074 *
32075 */
32076
32077
32078
32079var SyntheticEvent = __webpack_require__(43);
32080
32081/**
32082 * @interface Event
32083 * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-
32084 * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent
32085 */
32086var TransitionEventInterface = {
32087  propertyName: null,
32088  elapsedTime: null,
32089  pseudoElement: null
32090};
32091
32092/**
32093 * @param {object} dispatchConfig Configuration used to dispatch this event.
32094 * @param {string} dispatchMarker Marker identifying the event target.
32095 * @param {object} nativeEvent Native browser event.
32096 * @extends {SyntheticEvent}
32097 */
32098function SyntheticTransitionEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
32099  return SyntheticEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
32100}
32101
32102SyntheticEvent.augmentClass(SyntheticTransitionEvent, TransitionEventInterface);
32103
32104module.exports = SyntheticTransitionEvent;
32105
32106/***/ }),
32107/* 523 */
32108/***/ (function(module, exports, __webpack_require__) {
32109
32110"use strict";
32111/**
32112 * Copyright (c) 2013-present, Facebook, Inc.
32113 *
32114 * This source code is licensed under the MIT license found in the
32115 * LICENSE file in the root directory of this source tree.
32116 *
32117 */
32118
32119
32120
32121var SyntheticMouseEvent = __webpack_require__(101);
32122
32123/**
32124 * @interface WheelEvent
32125 * @see http://www.w3.org/TR/DOM-Level-3-Events/
32126 */
32127var WheelEventInterface = {
32128  deltaX: function (event) {
32129    return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).
32130    'wheelDeltaX' in event ? -event.wheelDeltaX : 0;
32131  },
32132  deltaY: function (event) {
32133    return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).
32134    'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).
32135    'wheelDelta' in event ? -event.wheelDelta : 0;
32136  },
32137  deltaZ: null,
32138
32139  // Browsers without "deltaMode" is reporting in raw wheel delta where one
32140  // notch on the scroll is always +/- 120, roughly equivalent to pixels.
32141  // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or
32142  // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.
32143  deltaMode: null
32144};
32145
32146/**
32147 * @param {object} dispatchConfig Configuration used to dispatch this event.
32148 * @param {string} dispatchMarker Marker identifying the event target.
32149 * @param {object} nativeEvent Native browser event.
32150 * @extends {SyntheticMouseEvent}
32151 */
32152function SyntheticWheelEvent(dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget) {
32153  return SyntheticMouseEvent.call(this, dispatchConfig, dispatchMarker, nativeEvent, nativeEventTarget);
32154}
32155
32156SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface);
32157
32158module.exports = SyntheticWheelEvent;
32159
32160/***/ }),
32161/* 524 */
32162/***/ (function(module, exports, __webpack_require__) {
32163
32164"use strict";
32165/* WEBPACK VAR INJECTION */(function(process) {/**
32166 * Copyright (c) 2013-present, Facebook, Inc.
32167 *
32168 * This source code is licensed under the MIT license found in the
32169 * LICENSE file in the root directory of this source tree.
32170 *
32171 */
32172
32173
32174
32175var validateDOMNesting = __webpack_require__(151);
32176
32177var DOC_NODE_TYPE = 9;
32178
32179function ReactDOMContainerInfo(topLevelWrapper, node) {
32180  var info = {
32181    _topLevelWrapper: topLevelWrapper,
32182    _idCounter: 1,
32183    _ownerDocument: node ? node.nodeType === DOC_NODE_TYPE ? node : node.ownerDocument : null,
32184    _node: node,
32185    _tag: node ? node.nodeName.toLowerCase() : null,
32186    _namespaceURI: node ? node.namespaceURI : null
32187  };
32188  if (process.env.NODE_ENV !== 'production') {
32189    info._ancestorInfo = node ? validateDOMNesting.updatedAncestorInfo(null, info._tag, null) : null;
32190  }
32191  return info;
32192}
32193
32194module.exports = ReactDOMContainerInfo;
32195/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
32196
32197/***/ }),
32198/* 525 */
32199/***/ (function(module, exports, __webpack_require__) {
32200
32201"use strict";
32202/**
32203 * Copyright (c) 2013-present, Facebook, Inc.
32204 *
32205 * This source code is licensed under the MIT license found in the
32206 * LICENSE file in the root directory of this source tree.
32207 *
32208 */
32209
32210
32211
32212var ReactDOMFeatureFlags = {
32213  useCreateElement: true,
32214  useFiber: false
32215};
32216
32217module.exports = ReactDOMFeatureFlags;
32218
32219/***/ }),
32220/* 526 */
32221/***/ (function(module, exports, __webpack_require__) {
32222
32223"use strict";
32224/**
32225 * Copyright (c) 2013-present, Facebook, Inc.
32226 *
32227 * This source code is licensed under the MIT license found in the
32228 * LICENSE file in the root directory of this source tree.
32229 *
32230 */
32231
32232
32233
32234var adler32 = __webpack_require__(527);
32235
32236var TAG_END = /\/?>/;
32237var COMMENT_START = /^<\!\-\-/;
32238
32239var ReactMarkupChecksum = {
32240  CHECKSUM_ATTR_NAME: 'data-react-checksum',
32241
32242  /**
32243   * @param {string} markup Markup string
32244   * @return {string} Markup string with checksum attribute attached
32245   */
32246  addChecksumToMarkup: function (markup) {
32247    var checksum = adler32(markup);
32248
32249    // Add checksum (handle both parent tags, comments and self-closing tags)
32250    if (COMMENT_START.test(markup)) {
32251      return markup;
32252    } else {
32253      return markup.replace(TAG_END, ' ' + ReactMarkupChecksum.CHECKSUM_ATTR_NAME + '="' + checksum + '"$&');
32254    }
32255  },
32256
32257  /**
32258   * @param {string} markup to use
32259   * @param {DOMElement} element root React element
32260   * @returns {boolean} whether or not the markup is the same
32261   */
32262  canReuseMarkup: function (markup, element) {
32263    var existingChecksum = element.getAttribute(ReactMarkupChecksum.CHECKSUM_ATTR_NAME);
32264    existingChecksum = existingChecksum && parseInt(existingChecksum, 10);
32265    var markupChecksum = adler32(markup);
32266    return markupChecksum === existingChecksum;
32267  }
32268};
32269
32270module.exports = ReactMarkupChecksum;
32271
32272/***/ }),
32273/* 527 */
32274/***/ (function(module, exports, __webpack_require__) {
32275
32276"use strict";
32277/**
32278 * Copyright (c) 2013-present, Facebook, Inc.
32279 *
32280 * This source code is licensed under the MIT license found in the
32281 * LICENSE file in the root directory of this source tree.
32282 *
32283 * 
32284 */
32285
32286
32287
32288var MOD = 65521;
32289
32290// adler32 is not cryptographically strong, and is only used to sanity check that
32291// markup generated on the server matches the markup generated on the client.
32292// This implementation (a modified version of the SheetJS version) has been optimized
32293// for our use case, at the expense of conforming to the adler32 specification
32294// for non-ascii inputs.
32295function adler32(data) {
32296  var a = 1;
32297  var b = 0;
32298  var i = 0;
32299  var l = data.length;
32300  var m = l & ~0x3;
32301  while (i < m) {
32302    var n = Math.min(i + 4096, m);
32303    for (; i < n; i += 4) {
32304      b += (a += data.charCodeAt(i)) + (a += data.charCodeAt(i + 1)) + (a += data.charCodeAt(i + 2)) + (a += data.charCodeAt(i + 3));
32305    }
32306    a %= MOD;
32307    b %= MOD;
32308  }
32309  for (; i < l; i++) {
32310    b += a += data.charCodeAt(i);
32311  }
32312  a %= MOD;
32313  b %= MOD;
32314  return a | b << 16;
32315}
32316
32317module.exports = adler32;
32318
32319/***/ }),
32320/* 528 */
32321/***/ (function(module, exports, __webpack_require__) {
32322
32323"use strict";
32324/**
32325 * Copyright (c) 2013-present, Facebook, Inc.
32326 *
32327 * This source code is licensed under the MIT license found in the
32328 * LICENSE file in the root directory of this source tree.
32329 *
32330 */
32331
32332
32333
32334module.exports = '15.6.2';
32335
32336/***/ }),
32337/* 529 */
32338/***/ (function(module, exports, __webpack_require__) {
32339
32340"use strict";
32341/* WEBPACK VAR INJECTION */(function(process) {/**
32342 * Copyright (c) 2013-present, Facebook, Inc.
32343 *
32344 * This source code is licensed under the MIT license found in the
32345 * LICENSE file in the root directory of this source tree.
32346 *
32347 */
32348
32349
32350
32351var _prodInvariant = __webpack_require__(8);
32352
32353var ReactCurrentOwner = __webpack_require__(39);
32354var ReactDOMComponentTree = __webpack_require__(14);
32355var ReactInstanceMap = __webpack_require__(79);
32356
32357var getHostComponentFromComposite = __webpack_require__(219);
32358var invariant = __webpack_require__(2);
32359var warning = __webpack_require__(3);
32360
32361/**
32362 * Returns the DOM node rendered by this element.
32363 *
32364 * See https://facebook.github.io/react/docs/top-level-api.html#reactdom.finddomnode
32365 *
32366 * @param {ReactComponent|DOMElement} componentOrElement
32367 * @return {?DOMElement} The root node of this element.
32368 */
32369function findDOMNode(componentOrElement) {
32370  if (process.env.NODE_ENV !== 'production') {
32371    var owner = ReactCurrentOwner.current;
32372    if (owner !== null) {
32373      process.env.NODE_ENV !== 'production' ? warning(owner._warnedAboutRefsInRender, '%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', owner.getName() || 'A c
32373omponent') : void 0;
32374      owner._warnedAboutRefsInRender = true;
32375    }
32376  }
32377  if (componentOrElement == null) {
32378    return null;
32379  }
32380  if (componentOrElement.nodeType === 1) {
32381    return componentOrElement;
32382  }
32383
32384  var inst = ReactInstanceMap.get(componentOrElement);
32385  if (inst) {
32386    inst = getHostComponentFromComposite(inst);
32387    return inst ? ReactDOMComponentTree.getNodeFromInstance(inst) : null;
32388  }
32389
32390  if (typeof componentOrElement.render === 'function') {
32391     true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'findDOMNode was called on an unmounted component.') : _prodInvariant('44') : void 0;
32392  } else {
32393     true ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Element appears to be neither ReactComponent nor DOMNode (keys: %s)', Object.keys(componentOrElement)) : _prodInvariant('45', Object.keys(componentOrElement)) : void 0;
32394  }
32395}
32396
32397module.exports = findDOMNode;
32398/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
32399
32400/***/ }),
32401/* 530 */
32402/***/ (function(module, exports, __webpack_require__) {
32403
32404"use strict";
32405/**
32406 * Copyright (c) 2013-present, Facebook, Inc.
32407 *
32408 * This source code is licensed under the MIT license found in the
32409 * LICENSE file in the root directory of this source tree.
32410 *
32411 */
32412
32413
32414
32415var ReactMount = __webpack_require__(218);
32416
32417module.exports = ReactMount.renderSubtreeIntoContainer;
32418
32419/***/ }),
32420/* 531 */
32421/***/ (function(module, exports, __webpack_require__) {
32422
32423"use strict";
32424/* WEBPACK VAR INJECTION */(function(process) {/**
32425 * Copyright (c) 2013-present, Facebook, Inc.
32426 *
32427 * This source code is licensed under the MIT license found in the
32428 * LICENSE file in the root directory of this source tree.
32429 *
32430 */
32431
32432
32433
32434var DOMProperty = __webpack_require__(47);
32435var EventPluginRegistry = __webpack_require__(99);
32436var ReactComponentTreeHook = __webpack_require__(22);
32437
32438var warning = __webpack_require__(3);
32439
32440if (process.env.NODE_ENV !== 'production') {
32441  var reactProps = {
32442    children: true,
32443    dangerouslySetInnerHTML: true,
32444    key: true,
32445    ref: true,
32446
32447    autoFocus: true,
32448    defaultValue: true,
32449    valueLink: true,
32450    defaultChecked: true,
32451    checkedLink: true,
32452    innerHTML: true,
32453    suppressContentEditableWarning: true,
32454    onFocusIn: true,
32455    onFocusOut: true
32456  };
32457  var warnedProperties = {};
32458
32459  var validateProperty = function (tagName, name, debugID) {
32460    if (DOMProperty.properties.hasOwnProperty(name) || DOMProperty.isCustomAttribute(name)) {
32461      return true;
32462    }
32463    if (reactProps.hasOwnProperty(name) && reactProps[name] || warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {
32464      return true;
32465    }
32466    if (EventPluginRegistry.registrationNameModules.hasOwnProperty(name)) {
32467      return true;
32468    }
32469    warnedProperties[name] = true;
32470    var lowerCasedName = name.toLowerCase();
32471
32472    // data-* attributes should be lowercase; suggest the lowercase version
32473    var standardName = DOMProperty.isCustomAttribute(lowerCasedName) ? lowerCasedName : DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;
32474
32475    var registrationName = EventPluginRegistry.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry.possibleRegistrationNames[lowerCasedName] : null;
32476
32477    if (standardName != null) {
32478      process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown DOM property %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32479      return true;
32480    } else if (registrationName != null) {
32481      process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown event handler property %s. Did you mean `%s`?%s', name, registrationName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32482      return true;
32483    } else {
32484      // We were unable to guess which prop the user intended.
32485      // It is likely that the user was just blindly spreading/forwarding props
32486      // Components should be careful to only render valid props/attributes.
32487      // Warning will be invoked in warnUnknownProperties to allow grouping.
32488      return false;
32489    }
32490  };
32491}
32492
32493var warnUnknownProperties = function (debugID, element) {
32494  var unknownProps = [];
32495  for (var key in element.props) {
32496    var isValid = validateProperty(element.type, key, debugID);
32497    if (!isValid) {
32498      unknownProps.push(key);
32499    }
32500  }
32501
32502  var unknownPropString = unknownProps.map(function (prop) {
32503    return '`' + prop + '`';
32504  }).join(', ');
32505
32506  if (unknownProps.length === 1) {
32507    process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown prop %s on <%s> tag. Remove this prop from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32508  } else if (unknownProps.length > 1) {
32509    process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown props %s on <%s> tag. Remove these props from the element. ' + 'For details, see https://fb.me/react-unknown-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32510  }
32511};
32512
32513function handleElement(debugID, element) {
32514  if (element == null || typeof element.type !== 'string') {
32515    return;
32516  }
32517  if (element.type.indexOf('-') >= 0 || element.props.is) {
32518    return;
32519  }
32520  warnUnknownProperties(debugID, element);
32521}
32522
32523var ReactDOMUnknownPropertyHook = {
32524  onBeforeMountComponent: function (debugID, element) {
32525    handleElement(debugID, element);
32526  },
32527  onBeforeUpdateComponent: function (debugID, element) {
32528    handleElement(debugID, element);
32529  }
32530};
32531
32532module.exports = ReactDOMUnknownPropertyHook;
32533/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
32534
32535/***/ }),
32536/* 532 */
32537/***/ (function(module, exports, __webpack_require__) {
32538
32539"use strict";
32540/* WEBPACK VAR INJECTION */(function(process) {/**
32541 * Copyright (c) 2013-present, Facebook, Inc.
32542 *
32543 * This source code is licensed under the MIT license found in the
32544 * LICENSE file in the root directory of this source tree.
32545 *
32546 */
32547
32548
32549
32550var ReactComponentTreeHook = __webpack_require__(22);
32551
32552var warning = __webpack_require__(3);
32553
32554var didWarnValueNull = false;
32555
32556function handleElement(debugID, element) {
32557  if (element == null) {
32558    return;
32559  }
32560  if (element.type !== 'input' && element.type !== 'textarea' && element.type !== 'select') {
32561    return;
32562  }
32563  if (element.props != null && element.props.value === null && !didWarnValueNull) {
32564    process.env.NODE_ENV !== 'production' ? warning(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32565
32566    didWarnValueNull = true;
32567  }
32568}
32569
32570var ReactDOMNullInputValuePropHook = {
32571  onBeforeMountComponent: function (debugID, element) {
32572    handleElement(debugID, element);
32573  },
32574  onBeforeUpdateComponent: function (debugID, element) {
32575    handleElement(debugID, element);
32576  }
32577};
32578
32579module.exports = ReactDOMNullInputValuePropHook;
32580/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
32581
32582/***/ }),
32583/* 533 */
32584/***/ (function(module, exports, __webpack_require__) {
32585
32586"use strict";
32587/* WEBPACK VAR INJECTION */(function(process) {/**
32588 * Copyright (c) 2013-present, Facebook, Inc.
32589 *
32590 * This source code is licensed under the MIT license found in the
32591 * LICENSE file in the root directory of this source tree.
32592 *
32593 */
32594
32595
32596
32597var DOMProperty = __webpack_require__(47);
32598var ReactComponentTreeHook = __webpack_require__(22);
32599
32600var warning = __webpack_require__(3);
32601
32602var warnedProperties = {};
32603var rARIA = new RegExp('^(aria)-[' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$');
32604
32605function validateProperty(tagName, name, debugID) {
32606  if (warnedProperties.hasOwnProperty(name) && warnedProperties[name]) {
32607    return true;
32608  }
32609
32610  if (rARIA.test(name)) {
32611    var lowerCasedName = name.toLowerCase();
32612    var standardName = DOMProperty.getPossibleStandardName.hasOwnProperty(lowerCasedName) ? DOMProperty.getPossibleStandardName[lowerCasedName] : null;
32613
32614    // If this is an aria-* attribute, but is not listed in the known DOM
32615    // DOM properties, then it is an invalid aria-* attribute.
32616    if (standardName == null) {
32617      warnedProperties[name] = true;
32618      return false;
32619    }
32620    // aria-* attributes should be lowercase; suggest the lowercase version.
32621    if (name !== standardName) {
32622      process.env.NODE_ENV !== 'production' ? warning(false, 'Unknown ARIA attribute %s. Did you mean %s?%s', name, standardName, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32623      warnedProperties[name] = true;
32624      return true;
32625    }
32626  }
32627
32628  return true;
32629}
32630
32631function warnInvalidARIAProps(debugID, element) {
32632  var invalidProps = [];
32633
32634  for (var key in element.props) {
32635    var isValid = validateProperty(element.type, key, debugID);
32636    if (!isValid) {
32637      invalidProps.push(key);
32638    }
32639  }
32640
32641  var unknownPropString = invalidProps.map(function (prop) {
32642    return '`' + prop + '`';
32643  }).join(', ');
32644
32645  if (invalidProps.length === 1) {
32646    process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32647  } else if (invalidProps.length > 1) {
32648    process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, element.type, ReactComponentTreeHook.getStackAddendumByID(debugID)) : void 0;
32649  }
32650}
32651
32652function handleElement(debugID, element) {
32653  if (element == null || typeof element.type !== 'string') {
32654    return;
32655  }
32656  if (element.type.indexOf('-') >= 0 || element.props.is) {
32657    return;
32658  }
32659
32660  warnInvalidARIAProps(debugID, element);
32661}
32662
32663var ReactDOMInvalidARIAHook = {
32664  onBeforeMountComponent: function (debugID, element) {
32665    if (process.env.NODE_ENV !== 'production') {
32666      handleElement(debugID, element);
32667    }
32668  },
32669  onBeforeUpdateComponent: function (debugID, element) {
32670    if (process.env.NODE_ENV !== 'production') {
32671      handleElement(debugID, element);
32672    }
32673  }
32674};
32675
32676module.exports = ReactDOMInvalidARIAHook;
32677/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
32678
32679/***/ }),
32680/* 534 */
32681/***/ (function(module, exports, __webpack_require__) {
32682
32683"use strict";
32684
32685
32686Object.defineProperty(exports, "__esModule", {
32687    value: true
32688});
32689
32690var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
32691
32692var _react = __webpack_require__(32);
32693
32694var _react2 = _interopRequireDefault(_react);
32695
32696var _Search = __webpack_require__(535);
32697
32698var _Search2 = _interopRequireDefault(_Search);
32699
32700function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32701
32702function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32703
32704function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
32705
32706function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
32707
32708var SubHeader = function (_Component) {
32709    _inherits(SubHeader, _Component);
32710
32711    function SubHeader(props) {
32712        _classCallCheck(this, SubHeader);
32713
32714        // Initialize state
32715        var _this = _possibleConstructorReturn(this, (SubHeader.__proto__ || Object.getPrototypeOf(SubHeader)).call(this, props));
32716
32717        _this.state = {
32718            children: _this.parseInitialChildren(),
32719            term: null // @todo: set inital term based on url ?
32720        };
32721        // Bind event handler for open, close and search
32722        _this.handleClose = _this.handleClose.bind(_this);
32723        _this.handleItemClick = _this.handleItemClick.bind(_this);
32724        _this.handleSearch = _this.handleSearch.bind(_this);
32725        _this.handleGlobalKeyup = _this.handleGlobalKeyup.bind(_this);
32726        return _this;
32727    }
32728
32729    _createClass(SubHeader, [{
32730        key: 'parseInitialChildren',
32731        value: function parseInitialChildren() {
32732            var children = {
32733                current: 0,
32734                all: {}
32735            };
32736            // Iterate over initial DOM sub header elements, and store it
32737            [].slice.call(this.props.initialChildren).forEach(function (child) {
32738                var id = child.dataset.headerSubId;
32739                var content = child.innerHTML;
32740                children.all[id] = {
32741                    content: { __html: content },
32742                    className: child.className
32743                    // Mark as current any visible sub header item
32744                };if ('none' !== child.style.display) {
32745                    children.current = id;
32746                }
32747            });
32748
32749            return children;
32750        }
32751        // On close event triggered, set children.current state to 0
32752
32753    }, {
32754        key: 'handleClose',
32755        value: function handleClose(e) {
32756            e.preventDefault();
32757            var newState = this.state;
32758            newState.children.current = 0;
32759            this.setState(newState);
32760        }
32761        // On click on a menu item, toggle the relevant subheader item as current
32762
32763    }, {
32764        key: 'handleItemClick',
32765        value: function handleItemClick(e) {
32766            var newState = this.state;
32767            if (e.detail.itemId === this.state.children.current) {
32768                newState.children.current = 0;
32769            } else {
32770                newState.children.current = e.detail.itemId;
32771            }
32772            this.setState(newState);
32773        }
32774        // On search term is entered, set children.current state to "search"
32775
32776    }, {
32777        key: 'handleSearch',
32778        value: function handleSearch(e) {
32779            var newState = this.state;
32780            // If search term is empty, reset children.current state to 0
32781            if ('' !== e.detail.search) {
32782                newState.children.current = 'search';
32783                newState.term = e.detail.search;
32784            } else {
32785                newState.children.current = 0;
32786                newState.term = null;
32787            }
32788            this.setState(newState);
32789        }
32790    }, {
32791        key: 'handleGlobalKeyup',
32792        value: function handleGlobalKeyup(e) {
32793            if (27 == e.keyCode) {
32794                this.handleClose(e);
32795            }
32796        }
32797        // Bind event listener
32798
32799    }, {
32800        key: 'componentDidMount',
32801        value: function componentDidMount() {
32802            var headerWrapper = document.querySelector('[data-header-role=sub-header-wrapper]');
32803            headerWrapper.addEventListener('CapComMenuItemClick', this.handleItemClick);
32804            headerWrapper.addEventListener('CapComSearch', this.handleSearch);
32805            document.addEventListener('keyup', this.handleGlobalKeyup);
32806        }
32807        // Unbind event listener
32808
32809    }, {
32810        key: 'componentWillUnmount',
32811        value: function componentWillUnmount() {
32812            document.removeEventListener('CapComMenuItemClick', this.handleItemClick);
32813            document.removeEventListener('CapComSearch', this.handleSearch);
32814            document.removeEventListener('keyup', this.handleGlobalKeyup);
32815        }
32816        // When state change, trigger an event based on children current state for external js logic
32817
32818    }, {
32819        key: 'componentWillUpdate',
32820        value: function componentWillUpdate(nextProps, nextState) {
32821            if (0 === nextState.children.current) {
32822                var closeEvent = new CustomEvent('CapComMenuClose');
32823                document.dispatchEvent(closeEvent);
32824                // @todo: update url ? 
32825            }
32826            if (0 !== nextState.children.current) {
32827                var openEvent = new CustomEvent('CapComMenuOpen');
32828                document.dispatchEvent(openEvent);
32829                // @todo: update url ? 
32830            }
32831        }
32832    }, {
32833        key: 'render',
32834        value: function render() {
32835            var subHeaderClasses = ['cpcSubHeader'];
32836            var current = this.state.children.current;
32837            var children = this.state.children.all;
32838            if (0 !== current) {
32839                subHeaderClasses.push('is-visible');
32840            }
32841            return _react2.default.createElement(
32842                'div',
32843                { className: subHeaderClasses.join(' ') },
32844                _react2.default.createElement(
32845                    'div',
32846                    null,
32847                    _react2.default.createElement('a', {
32848                        href: '/',
32849                        dangerouslySetInnerHTML: { __html: this.props.close.innerHTML },
32850                        className: this.props.close.className,
32851                        onClick: this.handleClose,
32852                        'data-header-role': 'close-button'
32853                    }),
32854                    'search' === current ? _react2.default.createElement(
32855                        'div',
32856                        { className: 'cpcSubHeader_category has-search-results' },
32857                        _react2.default.createElement(
32858                            'div',
32859                            { className: 'cpcSubHeader_wrapper' },
32860                            _react2.default.createElement(_Search2.default, { query: this.state.term })
32861                        )
32862                    ) : _react2.default.createElement(
32863                        'div',
32864                        null,
32865                        Object.keys(children).map(function (id) {
32866                            var style = {
32867                                display: id === current ? 'block' : 'none'
32868                            };
32869                            return _react2.default.createElement('div', {
32870                                className: children[id].className,
32871                                dangerouslySetInnerHTML: children[id].content,
32872                                style: style,
32873                                key: id
32874                            });
32875                        })
32876                    )
32877                )
32878            );
32879        }
32880    }]);
32881
32882    return SubHeader;
32883}(_react.Component);
32884
32885exports.default = SubHeader;
32886
32887/***/ }),
32888/* 535 */
32889/***/ (function(module, exports, __webpack_require__) {
32890
32891"use strict";
32892
32893
32894Object.defineProperty(exports, "__esModule", {
32895  value: true
32896});
32897
32898var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
32899
32900var _react = __webpack_require__(32);
32901
32902var _react2 = _interopRequireDefault(_react);
32903
32904var _algolia = __webpack_require__(536);
32905
32906var _SearchResult = __webpack_require__(556);
32907
32908var _SearchResult2 = _interopRequireDefault(_SearchResult);
32909
32910function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32911
32912function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
32913
32914function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
32915
32916function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
32917
32918var facets = {
32919  0: {
32920    class: 'has-no-items',
32921    maxResults: 0
32922  },
32923  1: {
32924    class: 'has-one-item',
32925    maxResults: 20
32926  },
32927  2: {
32928    class: 'has-two-items',
32929    maxResults: 10
32930  },
32931  3: {
32932    class: 'has-three-items',
32933    maxResults: 6
32934  },
32935  4: {
32936    class: 'has-four-items',
32937    maxResults: 6
32938  },
32939  5: {
32940    class: 'has-five-items',
32941    maxResults: 6
32942  },
32943  default: {
32944    class: 'has-many-items',
32945    maxResults: 6
32946  }
32947};
32948
32949var Search = function (_Component) {
32950  _inherits(Search, _Component);
32951
32952  function Search(props) {
32953    _classCallCheck(this, Search);
32954
32955    var _this = _possibleConstructorReturn(this, (Search.__proto__ || Object.getPrototypeOf(Search)).call(this, props));
32956
32957    _this.state = {
32958      results: [],
32959      facettes: 0
32960    };
32961    return _this;
32962  }
32963
32964  _createClass(Search, [{
32965    key: 'componentWillReceiveProps',
32966    value: function componentWillReceiveProps(nextProps) {
32967      var _this2 = this;
32968
32969      (0, _algolia.indexSearch)(nextProps.query).then(function (response) {
32970        _this2.setState({ results: response.hits, facets: response.facets });
32971      });
32972    }
32973  }, {
32974    key: 'render',
32975    value: function render() {
32976      // Get facet configuration with fallback to default.
32977      var facetConfig = facets[this.state.facets] || facets.default;
32978
32979      return 0 < Object.keys(this.state.results).length ? _react2.default.createElement(
32980        'ul',
32981        { className: "cpcSearch_results " + facetConfig.class },
32982        this.state.results.map(function (item, i) {
32983          return _react2.default.createElement(
32984            'li',
32985            { className: "cpcSearch_results_item cat-" + item.field_univers, key: i },
32986            _react2.default.createElement(
32987              'div',
32988              { className: 'cpcSearch_results_block' },
32989              _react2.default.createElement(
32990                'div',
32991                { className: 'cpcSearch_results_title' },
32992                item.field_univers_name
32993              ),
32994              _react2.default.createElement(
32995                'div',
32996                { className: 'cpcSearch_results_content' },
32997                _react2.default.createElement(
32998                  'ul',
32999                  { className: 'cpcTeaserSmall_list' },
33000                  item.results.map(function (result, j) {
33001                    return _react2.default.createElement(_SearchResult2.default, { key: j, item: result });
33002                  })
33003                )
33004              ),
33005              _react2.default.createElement(
33006                'div',
33007                { className: 'cpcSearch_results_sponsor' },
33008                _react2.default.createElement('img', { src: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgAAAAYCAYAAABugbbBAAAAAXNSR0IArs4c6QAAEKlJREFUaAXtWwl4VNUVPvfNJCEgkICsIoIbKOCGYrVUaW1L7efWyrCaRUwmK0gUKlYt+dSqoKA2zIQkQEiQCgm2pYi2bqB1QdsqKpsKEtGEkIUtM1lm5r3b/7zJSybDZDKTxBYr5+Plvnvvuedu/z3n3PMGQaepUyuQnS2VXQ3Uu1ONmxv1UMmz9inh7IqMYG15jNnZQgvG823UWUqkqXSqULtDtugOId8nGZYsGU2N9AzmPEtK6tXVuWMD9itE8zasEC92VRa3n5omb5NEv8XYRpsUumGDXfyzO+R2JGNamvwBELlUoF/0n7FxhVjfUZtQ6rE2pymsFWigx7H51u4AJ/eLzTxPFbRxRqYcHdY42mcehbFdheouaff2xQeu0QQNw2SuxXz6+XNY0uQtU1Jl/vR0ea1/XUf50wDtaIX86wVZ/Iu6nJcU5dboli7LOQUFWNLlYID2BQwtWdVoM7sd4QzTHA7zaV6sgKQBHa3DhecSzbyVKDKCyO0h2rCZaP
33008cXwVth1wYG5/iO1poInjYeIjMJci1aRDI7O/S5hIXm0MV2nTPp7oJBccm5k9PS7LGhSotLt13EbULl/7b4rv8BEYO0bx/Y73OIJl3zbfV06sstzRHV8LMnA5yLyUQ/FwJeahika1AppUi02ixoOQvPMCHFUQh6vagg/fEwZHUrq7veM5GkurHBrVwHwf8IRbhwU7qUaiZ4/6uXv0suIrrqEqLSLUQnHF6Nuf1Doj5nENU5iQ6WhzL60Hni5ste551BDV29obOcRpW00qdFQ0e9M0amZtCgMQOpKtx+S3PFm5D/Ji6YJ/mn3K/lPtnXVEd91ElU4X/71wGakGJfBMd6EQlRg519B9vbX5PaA2j7PwMoD/y7QFGRRPelEVXXEr34OtHPcJx+BR3O5QZ5YOBe3kr0/CavyTfKw0nhy90tNUoVgs5pcFD0Tic1WVLlfuTXxVxGT+an4HiGQInzZEx9Ez0MRWSBnMHcBHKOIzmI59+k0LOldrGDy5lmpMlL4KUsnZpOE4CRPrsOkxOXno+EiRaWLBfveLmC/wX/q2h7NTXQTnDqF6U5c2RUpZuwKnQ5eu+BPki8QW6MZS/w9yBA/VeWauaTkWC1z0Ph7mhhviw/P0Wf6OzMVUOZwZdKSkpMW147OqJfr9iKp5+e2ubUsZykTNtw6THHiJ7mr1c9nXTEaGu15kUoihYbEXHO8ZycXzbFW/OGF+en8ILoxHL/trXmfDJF1a1efleFUe6bJqbmjjBFR5zwletb7/+enb3VXHbos5Ejhow6kJ39Y54/ZWeXRFZW1sZomuLAPOuNNkZ5dHT/Ov95GTztpU0uorc/INoMcGYleU16YxPRx7uJvqkkGgLPctR5RDf/lOiKsUSP/IGo9mh70oKUSxqO2tHYaC/hYoXXi5H//ZEdNB6Ft3MFbtOSQwOBaHqGvNrRSH9G3RDferD3RX4cPzDA7yHVAQqwxHkkrUR9y3FDfxxamwiv8i0AbwGAtAx5QrS1ZWic9yW0h31pG1XIyRF8wEahrofBi3d47RiHpE1TM+S0EpsoUebOfRmdy94w6w15eVZ9I7mBP1ASrLasF1+tPqFp7n21jipHfJLdzhvLvAyw+GT7PlcTlblVzw5XXWNtfJJtLZdzvUvRfuj0qIePNR3IRPlBKT36AngPhy1r8ytVx91uba+7saE8Pmn5u9zGIKz2hXFJtjLVox5wOxqr4622bKPOP5WYBJfFW+0z93+z65iqej7/snz38YQku5XLy6qq+9Wr2jcN0r2K8wYdKK+ey+OrbajtVKgn9zmv1mR/c9fnAOrDRI/mEH26l+jrCqLHlhP982Ois6Cv0uKMXsNMJW2BEpmL2OZks5muUgTFYbJluhRJv2ZNx++KBFcAYo2FW3QRqhicUij0hMlE46GBR0Nr3uffZHqmHArA2PBEQuBx9JcYYaaL0I6jGIeARgVAesIIj+FuHrBflouKgHWQtRDPjREmGisiaIyi0AIw6gpSqvQgtzXrGi3ZthlAuBWadMvslBX3r85LxXK2Em+4pmnL4Jc+ZVIiVknNMwEHZs2BiuoycC3ZvXuAUET1Kxjy85oJTrFbJgF892x5veYN1BcaknDKFknIUJpPaGKKfYGmycWQu9EklVwptDpYw8uYX0roAk6x1xC+EJlDmpSPk0a/w2Vow1p7xh6uD0Rou9gkTElwyitVVX0Ic8uDBv58jT1tW1yy7S/A8W18+crNTdd1GeYyAxv1afGKtI8Cyeuo7BLA+rqriQ7XED1hJ2INyjR0ENGtPye64YdezXlmLNGl8FeZ9633vTyh/i1dAQNIxI9B/0JQvhJAeZULPEKPfX7SngaFOZ2NtRzV3PgZmPH7DUGQ86FmZJpTTaWFeNVjqVibxJJc8Zfmqr3T0uVXAPsHkBcB9yUb5dM70KBgPZlK7KLAr3T3lDQ5FpueAEiPseZJnAmQObZHnOdIQw4mGw8NeCM01ubIKDlnlS3zK12AJucDIB8UF2QsaBa4Nz7ZlgyfaDryS5pNKDwxL2HzH3W45d2kyQkoKTTK2V8qLkiHfoGWySqJrnVULwI4t0Iun0qD9C8fQijAOOBKcllxfkYRVyYkL48BmDaQR4GxpJMACuBhCpJMikhfk5eG4A5R4rzCHarT+ZWmqlnIbjNLZQWiHhanh2Ygb09MWXEBNO0VUhHzmb8zNJFnCeJLkgFOb4n3LwZFw+Ew/RFe1QOZsI9Xhg9QlqR/Xq2hMTikZ/E0IdZh9IO9GGa8B0rB+yOjHLueb7y3l2LMV+h1gmo32GlTSW4rJ3+dgnn+FDLZHGM2wQnYaffqPmuOHObx0DjIGghZDhwUfU7oXznxMQ3WAbp6yV116CIRmmmxcCv3QwPFuZtofGK6bXyhLf0wNCufvIMwv2tahiKpP8ADD8tLMKPjgY/Z6GSEw6PBr4AzJGUfo15PJb1l5Gvqj4wBQ08SSolRFjAVSotW0xTzl6R6cJejqEC8uonHTCOluaWfNc/ceQxuxQ4MB7oLp2Vl2hs4gJ+h7wRk7bAG0zBW1WSmdYFkhlLGmpLpiwPe1Phbh6XmGChfnhi4vXp6awx+gy+UFFouYVelfrkZHogfJljfy0B1zWVDOMXaab3H0f4gfEaVrm0BrjIoEayqHwnIkACooJHWbNnzWKVfvU8WjU9qz5c1ZxMVuTx0E4Oxhd2XMxK6pqUCL2w2oeHiSREPgm+odInbeXDQSh7cgQRm52p96G0MbiW3h184URPadgxjItjfg/Z7HmmLP6uqEAGCqW7glMkMe84pYNxmDFzmS/CpsLWhEWvQZk52tv3IOwYuhK+TB8YJida80ZoU07AJf19jzwiyxH6iQsxu20608aVWrYp+OkW4wU/RJBVizMOxYMfwlGLR8iAP0kMjBiZzYhUU1yE4Px0QvHkD8IGVAQIVhjxPfXB5GOdJU3c20iaM5RYeDyrfwnyWYIxPgrNFIbF8fRB3Za3s1+Z2LKSXSZGR+jwkfQjAnd3/jIF3B7zlSpoCcJpNJtOMwrzU3TCrMTCrucaoTCYhoPjaUEyv2D01dVVOFOqmtk1lJzOGBm2SnskQoWtEDvg3OZvG43S9bIg194oqctc1PaZJ92MoG4uFecSo60xaDmiPOhfB+ZFEFYfbl3A+6pnKg/B4Odr+hfnOQAl0BTkizTRuXY74hjlmpslYl6Qjbblbczj63v3zFrUcwIYq4pHsMTj1Cw57Uz6Eo74HB+IaFJ03+zey9+olgq2sTvxrJfmGfuvHoKiC66amGroBLG37bW7VmsycKy9wueg6vURQESIBiUYtRwYg6XIjb+ab9uZXqw7ApywGendCUw4jTUvEewOApZ9QM25bqqR3axzVWxOSbM9CmVYLoV1M0lReVJD2Ak7b16zEVc2TisvInzRnvZUBa3QSKGWg4+b/O7gTS+OTl28iMhUgVuHEwowvKsh4KlCbUMugKpbFJdkHKEKrcDldcPZFTxiLJ432fBhxWSrBGONxiI716XEu+u88vQ2v+SfXIp54E9F2HO1AfijbKv78yfQPhKXCpDN0fklqr7EUHN6Sqg3ZAPYkvL/DeWwP9DnN5HdccJKR3MPv7RFAWwSdew00XLTDgRg50fwW3m0ET9rr80LuWi4HBmq4EyZYvUlIivk9EKmuVhcN6x/UQpotFov24iu2P0NQAnxGvrVxoOITmMHE1bnpn3EHhfmZ79+ZbPsRDtlSaKlC8EWBq0KaVJ4omYb2tGnl9RPwmopbcwIAsQpHq4rtSTCCO7EM7oETbA/jq9EtkOkC+PlQdAqgrZckStBUmQ+zeDZOeDlO9BTc0NvAwiTFSpVkPNTSeo5kBBtnR3UcTnoT28+fOBemIzZThMC9j17ri1VNvYNo5NlEH+1C3BSADocwh4+xRldiNfse+YjehZZ5CXt0ENpziL+ciEh6ydNE0Ccwuxo9CN5+0FD39htEq45W0nyUD0ebLNyWxwBIb+PWPwh8t/vLGTuQCnYephTsyeWaRveCfxzAtB3txwL4v2Z+1p4Yx6P8PmYQvQP+WvDjIw8lwmc2DTKTleOdXO9LAyPoC0QVjvN8MK9kjPEc1L/PYEWerV8LoayV2DTHil5NAc14Mxtr3NdeOxrlG+g2JHBwfNGiSSr7rUZZqCmb4t5K3xPB+g5VlsE3Z85zfXJy7jhh5H1ThM6WkNTuxZXqouIC6+e+dcHecXsFLvSAchu2ntFED80lOn8EVtlF9Nn+5kD9AG+gnuu/PoSY2bNER463aapnoBCWIuzSqqV8WO6YJ4c0NhIfsGE+xW1e4cg9ilDQQ1wIn/UBgEgHDgBUuzFXnMnl09MkK5n1AMFQzgcigC4FgM7nOkumHIkfeqzDfK8JwLsXcdRZG2ziQ6NuSrqchZtFEfh1H1f0pZjSxeI4wH0YwB0IsL2HcNm1uuwM+SsEaV7AexsMGrI4Nfegke1W+jL+P71DY7NWgLGVk7GQi9cWZP42nPm1B1CWwd7+rTj/t9/Y9lOnG6HnLVu9N3qEVAJSMIByA8scOQDXzhR0cT3GPxQmFf/oKKpYV++DC1Gy3ibeZ14mfDW6AZovHu5OPwD0Zm8p5OC7N7zJ2dByl6J9P4B1H+r4yGQzD8YxEwfleX5nYn+TtlEitOwvkD0La1YFSG0TPSgv0Dd8BPiv1DyUhH5HIQh/M+KtDvwW9DX0FYv2nwCgd7JcJg7yI47KVpi/KJ2JeTl4TpjYYXhEe2IGUSHy3y+Cv/sn+DDDoCmKi/LSbeFq+2AANVaSf2bHmpRNO/9YZF9ZYL/U4Oe0I4D68nb3Oy44cwEo6HZoLXylWr9c/Ku7++isvKAXmc4KPZXbFRdk6v4TjxEfAMIfqoBTL0828b6CXNCYHf3+05ef36HRTvLV/Hm6mmdtWGLB53ofF2zaHHmp6qYFLBuH1oELFDzqU4e+dwDt6tLDJLJ2mdRVOf7tYdLCvDr5S+g4j4+lt1m20jr4hOUwnfWYS3+AczBa6pYUN4cH4Mfi88KpQ1iX0xTOCsCvysJu1oTTpiNeyNvInxM74utqPUJHV0L7cwTmXIBzLORxFACKE/MRlHXxYFre1T66u71+crpb6P+7vBn3yjM9TroRG84b3GmCxvIALDuafwjSaTmhNuTPi40uuhj3tPPRb18gs8okqCwimnZ+m//9OdTxBeL7D+PNyZgZJdixAAAAAElFTkSuQmCC', alt: 'Search by Algolia' })
33009              )
33010            )
33011          );
33012        })
33013      ) : _react2.default.createElement(
33014        'div',
33015        null,
33016        'La recherche n\'a donn\xE9 aucun resultat'
33017      );
33018    }
33019  }]);
33020
33021  return Search;
33022}(_react.Component);
33023
33024exports.default = Search;
33025
33026/***/ }),
33027/* 536 */
33028/***/ (function(module, exports, __webpack_require__) {
33029
33030"use strict";
33031
33032
33033Object.defineProperty(exports, "__esModule", {
33034  value: true
33035});
33036exports.indexSearch = undefined;
33037
33038var _algoliasearch = __webpack_require__(153);
33039
33040var _algoliasearch2 = _interopRequireDefault(_algoliasearch);
33041
33042var _api_data = __webpack_require__(225);
33043
33044function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33045
33046var client = (0, _algoliasearch2.default)(_api_data.appId, _api_data.apiKey);
33047
33048// Config
33049
33050var index = client.initIndex(_api_data.indexName);
33051
33052var indexSearch = exports.indexSearch = function indexSearch(query) {
33053  return index.search(query, {
33054    'facets': 'field_univers'
33055  }).then(function (response) {
33056    // Sort results by facets.
33057    var results = [];
33058    response.hits.forEach(function (element) {
33059      // Filter out results without field_univers.
33060      if (!element.field_univers) {
33061        console.warn('Result without field_univers:', element.objectID);
33062        return;
33063      }
33064
33065      // Si le tableau de resulat à dejà un object contenant les hits du type {elem.field_univers}.
33066      var resultsIndex = results.findIndex(function (elem) {
33067        return elem.field_univers === element.field_univers;
33068      });
33069      if (-1 != resultsIndex) {
33070        // On ajoute le hit.
33071        results[resultsIndex].results.push(element);
33072      } else {
33073        // Sinon : on créer l'object du field_univers et on le remplit.
33074        results.push({
33075          field_univers: element.field_univers,
33076          field_univers_name: element.field_univers_name,
33077          results: [element]
33078        });
33079      }
33080    }, undefined);
33081
33082    // Count actual facets based on filtered results.
33083    var datas = {
33084      hits: results,
33085      facets: results.length
33086    };
33087
33088    return datas;
33089  }).catch(function (error) {
33090    console.log("Oups, something wrong happened when algolia searched");
33091    console.log(error);
33092  });
33093};
33094
33095/***/ }),
33096/* 537 */
33097/***/ (function(module, exports, __webpack_require__) {
33098
33099module.exports = AlgoliaSearch;
33100
33101var Index = __webpack_require__(538);
33102var deprecate = __webpack_require__(154);
33103var deprecatedMessage = __webpack_require__(155);
33104var AlgoliaSearchCore = __webpack_require__(543);
33105var inherits = __webpack_require__(80);
33106var errors = __webpack_require__(70);
33107
33108function AlgoliaSearch() {
33109  AlgoliaSearchCore.apply(this, arguments);
33110}
33111
33112inherits(AlgoliaSearch, AlgoliaSearchCore);
33113
33114/*
33115 * Delete an index
33116 *
33117 * @param indexName the name of index to delete
33118 * @param callback the result callback called with two arguments
33119 *  error: null or Error('message')
33120 *  content: the server answer that contains the task ID
33121 */
33122AlgoliaSearch.prototype.deleteIndex = function(indexName, callback) {
33123  return this._jsonRequest({
33124    method: 'DELETE',
33125    url: '/1/indexes/' + encodeURIComponent(indexName),
33126    hostType: 'write',
33127    callback: callback
33128  });
33129};
33130
33131/**
33132 * Move an existing index.
33133 * @param srcIndexName the name of index to copy.
33134 * @param dstIndexName the new index name that will contains a copy of
33135 * srcIndexName (destination will be overriten if it already exist).
33136 * @param callback the result callback called with two arguments
33137 *  error: null or Error('message')
33138 *  content: the server answer that contains the task ID
33139 */
33140AlgoliaSearch.prototype.moveIndex = function(srcIndexName, dstIndexName, callback) {
33141  var postObj = {
33142    operation: 'move', destination: dstIndexName
33143  };
33144  return this._jsonRequest({
33145    method: 'POST',
33146    url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation',
33147    body: postObj,
33148    hostType: 'write',
33149    callback: callback
33150  });
33151};
33152
33153/**
33154 * Copy an existing index.
33155 * @param srcIndexName the name of index to copy.
33156 * @param dstIndexName the new index name that will contains a copy
33157 * of srcIndexName (destination will be overriten if it already exist).
33158 * @param scope an array of scopes to copy: ['settings', 'synonyms', 'rules']
33159 * @param callback the result callback called with two arguments
33160 *  error: null or Error('message')
33161 *  content: the server answer that contains the task ID
33162 */
33163AlgoliaSearch.prototype.copyIndex = function(srcIndexName, dstIndexName, scopeOrCallback, _callback) {
33164  var postObj = {
33165    operation: 'copy',
33166    destination: dstIndexName
33167  };
33168  var callback = _callback;
33169  if (typeof scopeOrCallback === 'function') {
33170    // oops, old behaviour of third argument being a function
33171    callback = scopeOrCallback;
33172  } else if (Array.isArray(scopeOrCallback) && scopeOrCallback.length > 0) {
33173    postObj.scope = scopeOrCallback;
33174  } else if (typeof scopeOrCallback !== 'undefined') {
33175    throw new Error('the scope given to `copyIndex` was not an array with settings, synonyms or rules');
33176  }
33177  return this._jsonRequest({
33178    method: 'POST',
33179    url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation',
33180    body: postObj,
33181    hostType: 'write',
33182    callback: callback
33183  });
33184};
33185
33186/**
33187 * Return last log entries.
33188 * @param offset Specify the first entry to retrieve (0-based, 0 is the most recent log entry).
33189 * @param length Specify the maximum number of entries to retrieve starting
33190 * at offset. Maximum allowed value: 1000.
33191 * @param type Specify the maximum number of entries to retrieve starting
33192 * at offset. Maximum allowed value: 1000.
33193 * @param callback the result callback called with two arguments
33194 *  error: null or Error('message')
33195 *  content: the server answer that contains the task ID
33196 */
33197AlgoliaSearch.prototype.getLogs = function(offset, length, callback) {
33198  var clone = __webpack_require__(48);
33199  var params = {};
33200  if (typeof offset === 'object') {
33201    // getLogs(params)
33202    params = clone(offset);
33203    callback = length;
33204  } else if (arguments.length === 0 || typeof offset === 'function') {
33205    // getLogs([cb])
33206    callback = offset;
33207  } else if (arguments.length === 1 || typeof length === 'function') {
33208    // getLogs(1, [cb)]
33209    callback = length;
33210    params.offset = offset;
33211  } else {
33212    // getLogs(1, 2, [cb])
33213    params.offset = offset;
33214    params.length = length;
33215  }
33216
33217  if (params.offset === undefined) params.offset = 0;
33218  if (params.length === undefined) params.length = 10;
33219
33220  return this._jsonRequest({
33221    method: 'GET',
33222    url: '/1/logs?' + this._getSearchParams(params, ''),
33223    hostType: 'read',
33224    callback: callback
33225  });
33226};
33227
33228/*
33229 * List all existing indexes (paginated)
33230 *
33231 * @param page The page to retrieve, starting at 0.
33232 * @param callback the result callback called with two arguments
33233 *  error: null or Error('message')
33234 *  content: the server answer with index list
33235 */
33236AlgoliaSearch.prototype.listIndexes = function(page, callback) {
33237  var params = '';
33238
33239  if (page === undefined || typeof page === 'function') {
33240    callback = page;
33241  } else {
33242    params = '?page=' + page;
33243  }
33244
33245  return this._jsonRequest({
33246    method: 'GET',
33247    url: '/1/indexes' + params,
33248    hostType: 'read',
33249    callback: callback
33250  });
33251};
33252
33253/*
33254 * Get the index object initialized
33255 *
33256 * @param indexName the name of index
33257 * @param callback the result callback with one argument (the Index instance)
33258 */
33259AlgoliaSearch.prototype.initIndex = function(indexName) {
33260  return new Index(this, indexName);
33261};
33262
33263AlgoliaSearch.prototype.initAnalytics = function(opts) {
33264  // the actual require must be inside the function, when put outside then you have a cyclic dependency
33265  // not well resolved that ends up making the main "./index.js" (main module, the agloliasearch function)
33266  // export an object instead of a function
33267  // Other workarounds:
33268  // - rewrite the lib in ES6, cyclic dependencies may be better supported
33269  // - move initAnalytics to a property on the main module (algoliasearch.initAnalytics),
33270  // same as places.
33271  // The current API was made mostly to mimic the one made in PHP
33272  var createAnalyticsClient = __webpack_require__(547);
33273  return createAnalyticsClient(this.applicationID, this.apiKey, opts);
33274};
33275
33276/*
33277 * @deprecated use client.listApiKeys
33278 */
33279AlgoliaSearch.prototype.listUserKeys = deprecate(function(callback) {
33280  return this.listApiKeys(callback);
33281}, deprecatedMessage('client.listUserKeys()', 'client.listApiKeys()'));
33282
33283/*
33284 * List all existing api keys with their associated ACLs
33285 *
33286 * @param callback the result callback called with two arguments
33287 *  error: null or Error('message')
33288 *  content: the server answer with api keys list
33289 */
33290AlgoliaSearch.prototype.listApiKeys = function(callback) {
33291  return this._jsonRequest({
33292    method: 'GET',
33293    url: '/1/keys',
33294    hostType: 'read',
33295    callback: callback
33296  });
33297};
33298
33299/*
33300 * @deprecated see client.getApiKey
33301 */
33302AlgoliaSearch.prototype.getUserKeyACL = deprecate(function(key, callback) {
33303  return this.getApiKey(key, callback);
33304}, deprecatedMessage('client.getUserKeyACL()', 'client.getApiKey()'));
33305
33306/*
33307 * Get an API key
33308 *
33309 * @param key
33310 * @param callback the result callback called with two arguments
33311 *  error: null or Error('message')
33312 *  content: the server answer with the right API key
33313 */
33314AlgoliaSearch.prototype.getApiKey = function(key, callback) {
33315  return this._jsonRequest({
33316    method: 'GET',
33317    url: '/1/keys/' + key,
33318    hostType: 'read',
33319    callback: callback
33320  });
33321};
33322
33323/*
33324 * @deprecated see client.deleteApiKey
33325 */
33326AlgoliaSearch.prototype.deleteUserKey = deprecate(function(key, callback) {
33327  return this.deleteApiKey(key, callback);
33328}, deprecatedMessage('client.deleteUserKey()', 'client.deleteApiKey()'));
33329
33330/*
33331 * Delete an existing API key
33332 * @param key
33333 * @param callback the result callback called with two arguments
33334 *  error: null or Error('message')
33335 *  content: the server answer with the date of deletion
33336 */
33337AlgoliaSearch.prototype.deleteApiKey = function(key, callback) {
33338  return this._jsonRequest({
33339    method: 'DELETE',
33340    url: '/1/keys/' + key,
33341    hostType: 'write',
33342    callback: callback
33343  });
33344};
33345
33346/*
33347 @deprecated see client.addApiKey
33348 */
33349AlgoliaSearch.prototype.addUserKey = deprecate(function(acls, params, callback) {
33350  return this.addApiKey(acls, params, callback);
33351}, deprecatedMessage('client.addUserKey()', 'client.addApiKey()'));
33352
33353/*
33354 * Add a new global API key
33355 *
33356 * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that
33357 *   can contains the following values:
33358 *     - search: allow to search (https and http)
33359 *     - addObject: allows to add/update an object in the index (https only)
33360 *     - deleteObject : allows to delete an existing object (https only)
33361 *     - deleteIndex : allows to delete index content (https only)
33362 *     - settings : allows to get index settings (https only)
33363 *     - editSettings : allows to change index settings (https only)
33364 * @param {Object} [params] - Optionnal parameters to set for the key
33365 * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key)
33366 * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour
33367 * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call
33368 * @param {string[]} params.indexes - Allowed targeted indexes for this key
33369 * @param {string} params.description - A description for your key
33370 * @param {string[]} params.referers - A list of authorized referers
33371 * @param {Object} params.queryParameters - Force the key to use specific query parameters
33372 * @param {Function} callback - The result callback called with two arguments
33373 *   error: null or Error('message')
33374 *   content: the server answer with the added API key
33375 * @return {Promise|undefined} Returns a promise if no callback given
33376 * @example
33377 * client.addApiKey(['search'], {
33378 *   validity: 300,
33379 *   maxQueriesPerIPPerHour: 2000,
33380 *   maxHitsPerQuery: 3,
33381 *   indexes: ['fruits'],
33382 *   description: 'Eat three fruits',
33383 *   referers: ['*.algolia.com'],
33384 *   queryParameters: {
33385 *     tagFilters: ['public'],
33386 *   }
33387 * })
33388 * @see {@link https://www.algolia.com/doc/rest_api#AddKey|Algolia REST API Documentation}
33389 */
33390AlgoliaSearch.prototype.addApiKey = function(acls, params, callback) {
33391  var isArray = __webpack_require__(23);
33392  var usage = 'Usage: client.addApiKey(arrayOfAcls[, params, callback])';
33393
33394  if (!isArray(acls)) {
33395    throw new Error(usage);
33396  }
33397
33398  if (arguments.length === 1 || typeof params === 'function') {
33399    callback = params;
33400    params = null;
33401  }
33402
33403  var postObj = {
33404    acl: acls
33405  };
33406
33407  if (params) {
33408    postObj.validity = params.validity;
33409    postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;
33410    postObj.maxHitsPerQuery = params.maxHitsPerQuery;
33411    postObj.indexes = params.indexes;
33412    postObj.description = params.description;
33413
33414    if (params.queryParameters) {
33415      postObj.queryParameters = this._getSearchParams(params.queryParameters, '');
33416    }
33417
33418    postObj.referers = params.referers;
33419  }
33420
33421  return this._jsonRequest({
33422    method: 'POST',
33423    url: '/1/keys',
33424    body: postObj,
33425    hostType: 'write',
33426    callback: callback
33427  });
33428};
33429
33430/**
33431 * @deprecated Please use client.addApiKey()
33432 */
33433AlgoliaSearch.prototype.addUserKeyWithValidity = deprecate(function(acls, params, callback) {
33434  return this.addApiKey(acls, params, callback);
33435}, deprecatedMessage('client.addUserKeyWithValidity()', 'client.addApiKey()'));
33436
33437/**
33438 * @deprecated Please use client.updateApiKey()
33439 */
33440AlgoliaSearch.prototype.updateUserKey = deprecate(function(key, acls, params, callback) {
33441  return this.updateApiKey(key, acls, params, callback);
33442}, deprecatedMessage('client.updateUserKey()', 'client.updateApiKey()'));
33443
33444/**
33445 * Update an existing API key
33446 * @param {string} key - The key to update
33447 * @param {string[]} acls - The list of ACL for this key. Defined by an array of str
33447ings that
33448 *   can contains the following values:
33449 *     - search: allow to search (https and http)
33450 *     - addObject: allows to add/update an object in the index (https only)
33451 *     - deleteObject : allows to delete an existing object (https only)
33452 *     - deleteIndex : allows to delete index content (https only)
33453 *     - settings : allows to get index settings (https only)
33454 *     - editSettings : allows to change index settings (https only)
33455 * @param {Object} [params] - Optionnal parameters to set for the key
33456 * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key)
33457 * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour
33458 * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call
33459 * @param {string[]} params.indexes - Allowed targeted indexes for this key
33460 * @param {string} params.description - A description for your key
33461 * @param {string[]} params.referers - A list of authorized referers
33462 * @param {Object} params.queryParameters - Force the key to use specific query parameters
33463 * @param {Function} callback - The result callback called with two arguments
33464 *   error: null or Error('message')
33465 *   content: the server answer with the modified API key
33466 * @return {Promise|undefined} Returns a promise if no callback given
33467 * @example
33468 * client.updateApiKey('APIKEY', ['search'], {
33469 *   validity: 300,
33470 *   maxQueriesPerIPPerHour: 2000,
33471 *   maxHitsPerQuery: 3,
33472 *   indexes: ['fruits'],
33473 *   description: 'Eat three fruits',
33474 *   referers: ['*.algolia.com'],
33475 *   queryParameters: {
33476 *     tagFilters: ['public'],
33477 *   }
33478 * })
33479 * @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation}
33480 */
33481AlgoliaSearch.prototype.updateApiKey = function(key, acls, params, callback) {
33482  var isArray = __webpack_require__(23);
33483  var usage = 'Usage: client.updateApiKey(key, arrayOfAcls[, params, callback])';
33484
33485  if (!isArray(acls)) {
33486    throw new Error(usage);
33487  }
33488
33489  if (arguments.length === 2 || typeof params === 'function') {
33490    callback = params;
33491    params = null;
33492  }
33493
33494  var putObj = {
33495    acl: acls
33496  };
33497
33498  if (params) {
33499    putObj.validity = params.validity;
33500    putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;
33501    putObj.maxHitsPerQuery = params.maxHitsPerQuery;
33502    putObj.indexes = params.indexes;
33503    putObj.description = params.description;
33504
33505    if (params.queryParameters) {
33506      putObj.queryParameters = this._getSearchParams(params.queryParameters, '');
33507    }
33508
33509    putObj.referers = params.referers;
33510  }
33511
33512  return this._jsonRequest({
33513    method: 'PUT',
33514    url: '/1/keys/' + key,
33515    body: putObj,
33516    hostType: 'write',
33517    callback: callback
33518  });
33519};
33520
33521/**
33522 * Initialize a new batch of search queries
33523 * @deprecated use client.search()
33524 */
33525AlgoliaSearch.prototype.startQueriesBatch = deprecate(function startQueriesBatchDeprecated() {
33526  this._batch = [];
33527}, deprecatedMessage('client.startQueriesBatch()', 'client.search()'));
33528
33529/**
33530 * Add a search query in the batch
33531 * @deprecated use client.search()
33532 */
33533AlgoliaSearch.prototype.addQueryInBatch = deprecate(function addQueryInBatchDeprecated(indexName, query, args) {
33534  this._batch.push({
33535    indexName: indexName,
33536    query: query,
33537    params: args
33538  });
33539}, deprecatedMessage('client.addQueryInBatch()', 'client.search()'));
33540
33541/**
33542 * Launch the batch of queries using XMLHttpRequest.
33543 * @deprecated use client.search()
33544 */
33545AlgoliaSearch.prototype.sendQueriesBatch = deprecate(function sendQueriesBatchDeprecated(callback) {
33546  return this.search(this._batch, callback);
33547}, deprecatedMessage('client.sendQueriesBatch()', 'client.search()'));
33548
33549/**
33550 * Perform write operations accross multiple indexes.
33551 *
33552 * To reduce the amount of time spent on network round trips,
33553 * you can create, update, or delete several objects in one call,
33554 * using the batch endpoint (all operations are done in the given order).
33555 *
33556 * Available actions:
33557 *   - addObject
33558 *   - updateObject
33559 *   - partialUpdateObject
33560 *   - partialUpdateObjectNoCreate
33561 *   - deleteObject
33562 *
33563 * https://www.algolia.com/doc/rest_api#Indexes
33564 * @param  {Object[]} operations An array of operations to perform
33565 * @return {Promise|undefined} Returns a promise if no callback given
33566 * @example
33567 * client.batch([{
33568 *   action: 'addObject',
33569 *   indexName: 'clients',
33570 *   body: {
33571 *     name: 'Bill'
33572 *   }
33573 * }, {
33574 *   action: 'udpateObject',
33575 *   indexName: 'fruits',
33576 *   body: {
33577 *     objectID: '29138',
33578 *     name: 'banana'
33579 *   }
33580 * }], cb)
33581 */
33582AlgoliaSearch.prototype.batch = function(operations, callback) {
33583  var isArray = __webpack_require__(23);
33584  var usage = 'Usage: client.batch(operations[, callback])';
33585
33586  if (!isArray(operations)) {
33587    throw new Error(usage);
33588  }
33589
33590  return this._jsonRequest({
33591    method: 'POST',
33592    url: '/1/indexes/*/batch',
33593    body: {
33594      requests: operations
33595    },
33596    hostType: 'write',
33597    callback: callback
33598  });
33599};
33600
33601/**
33602 * Assign or Move a userID to a cluster
33603 *
33604 * @param {string} data.userID The userID to assign to a new cluster
33605 * @param {string} data.cluster The cluster to assign the user to
33606 * @return {Promise|undefined} Returns a promise if no callback given
33607 * @example
33608 * client.assignUserID({ cluster: 'c1-test', userID: 'some-user' });
33609 */
33610AlgoliaSearch.prototype.assignUserID = function(data, callback) {
33611  if (!data.userID || !data.cluster) {
33612    throw new errors.AlgoliaSearchError('You have to provide both a userID and cluster', data);
33613  }
33614  return this._jsonRequest({
33615    method: 'POST',
33616    url: '/1/clusters/mapping',
33617    hostType: 'write',
33618    body: {cluster: data.cluster},
33619    callback: callback,
33620    headers: {
33621      'x-algolia-user-id': data.userID
33622    }
33623  });
33624};
33625
33626/**
33627 * Get the top userIDs
33628 *
33629 * (the callback is the second argument)
33630 *
33631 * @return {Promise|undefined} Returns a promise if no callback given
33632 * @example
33633 * client.getTopUserID();
33634 */
33635AlgoliaSearch.prototype.getTopUserID = function(callback) {
33636  return this._jsonRequest({
33637    method: 'GET',
33638    url: '/1/clusters/mapping/top',
33639    hostType: 'read',
33640    callback: callback
33641  });
33642};
33643
33644/**
33645 * Get userID
33646 *
33647 * @param {string} data.userID The userID to get info about
33648 * @return {Promise|undefined} Returns a promise if no callback given
33649 * @example
33650 * client.getUserID({ userID: 'some-user' });
33651 */
33652AlgoliaSearch.prototype.getUserID = function(data, callback) {
33653  if (!data.userID) {
33654    throw new errors.AlgoliaSearchError('You have to provide a userID', {debugData: data});
33655  }
33656  return this._jsonRequest({
33657    method: 'GET',
33658    url: '/1/clusters/mapping/' + data.userID,
33659    hostType: 'read',
33660    callback: callback
33661  });
33662};
33663
33664/**
33665 * List all the clusters
33666 *
33667 * (the callback is the second argument)
33668 *
33669 * @return {Promise|undefined} Returns a promise if no callback given
33670 * @example
33671 * client.listClusters();
33672 */
33673AlgoliaSearch.prototype.listClusters = function(callback) {
33674  return this._jsonRequest({
33675    method: 'GET',
33676    url: '/1/clusters',
33677    hostType: 'read',
33678    callback: callback
33679  });
33680};
33681
33682/**
33683 * List the userIDs
33684 *
33685 * (the callback is the second argument)
33686 *
33687 * @param {string} data.hitsPerPage How many hits on every page
33688 * @param {string} data.page The page to retrieve
33689 * @return {Promise|undefined} Returns a promise if no callback given
33690 * @example
33691 * client.listClusters();
33692 * client.listClusters({ page: 3, hitsPerPage: 30});
33693 */
33694AlgoliaSearch.prototype.listUserIDs = function(data, callback) {
33695  return this._jsonRequest({
33696    method: 'GET',
33697    url: '/1/clusters/mapping',
33698    body: data,
33699    hostType: 'read',
33700    callback: callback
33701  });
33702};
33703
33704/**
33705 * Remove an userID
33706 *
33707 * @param {string} data.userID The userID to assign to a new cluster
33708 * @return {Promise|undefined} Returns a promise if no callback given
33709 * @example
33710 * client.removeUserID({ userID: 'some-user' });
33711 */
33712AlgoliaSearch.prototype.removeUserID = function(data, callback) {
33713  if (!data.userID) {
33714    throw new errors.AlgoliaSearchError('You have to provide a userID', {debugData: data});
33715  }
33716  return this._jsonRequest({
33717    method: 'DELETE',
33718    url: '/1/clusters/mapping',
33719    hostType: 'write',
33720    callback: callback,
33721    headers: {
33722      'x-algolia-user-id': data.userID
33723    }
33724  });
33725};
33726
33727/**
33728 * Search for userIDs
33729 *
33730 * @param {string} data.cluster The cluster to target
33731 * @param {string} data.query The query to execute
33732 * @param {string} data.hitsPerPage How many hits on every page
33733 * @param {string} data.page The page to retrieve
33734 * @return {Promise|undefined} Returns a promise if no callback given
33735 * @example
33736 * client.searchUserIDs({ cluster: 'c1-test', query: 'some-user' });
33737 * client.searchUserIDs({
33738 *   cluster: "c1-test",
33739 *   query: "some-user",
33740 *   page: 3,
33741 *   hitsPerPage: 2
33742 * });
33743 */
33744AlgoliaSearch.prototype.searchUserIDs = function(data, callback) {
33745  return this._jsonRequest({
33746    method: 'POST',
33747    url: '/1/clusters/mapping/search',
33748    body: data,
33749    hostType: 'read',
33750    callback: callback
33751  });
33752};
33753
33754// environment specific methods
33755AlgoliaSearch.prototype.destroy = notImplemented;
33756AlgoliaSearch.prototype.enableRateLimitForward = notImplemented;
33757AlgoliaSearch.prototype.disableRateLimitForward = notImplemented;
33758AlgoliaSearch.prototype.useSecuredAPIKey = notImplemented;
33759AlgoliaSearch.prototype.disableSecuredAPIKey = notImplemented;
33760AlgoliaSearch.prototype.generateSecuredApiKey = notImplemented;
33761
33762function notImplemented() {
33763  var message = 'Not implemented in this environment.\n' +
33764    'If you feel this is a mistake, write to [email protected]';
33765
33766  throw new errors.AlgoliaSearchError(message);
33767}
33768
33769
33770/***/ }),
33771/* 538 */
33772/***/ (function(module, exports, __webpack_require__) {
33773
33774var inherits = __webpack_require__(80);
33775var IndexCore = __webpack_require__(220);
33776var deprecate = __webpack_require__(154);
33777var deprecatedMessage = __webpack_require__(155);
33778var exitPromise = __webpack_require__(224);
33779var errors = __webpack_require__(70);
33780
33781var deprecateForwardToSlaves = deprecate(
33782  function() {},
33783  deprecatedMessage('forwardToSlaves', 'forwardToReplicas')
33784);
33785
33786module.exports = Index;
33787
33788function Index() {
33789  IndexCore.apply(this, arguments);
33790}
33791
33792inherits(Index, IndexCore);
33793
33794/*
33795* Add an object in this index
33796*
33797* @param content contains the javascript object to add inside the index
33798* @param objectID (optional) an objectID you want to attribute to this object
33799* (if the attribute already exist the old object will be overwrite)
33800* @param callback (optional) the result callback called with two arguments:
33801*  error: null or Error('message')
33802*  content: the server answer that contains 3 elements: createAt, taskId and objectID
33803*/
33804Index.prototype.addObject = function(content, objectID, callback) {
33805  var indexObj = this;
33806
33807  if (arguments.length === 1 || typeof objectID === 'function') {
33808    callback = objectID;
33809    objectID = undefined;
33810  }
33811
33812  return this.as._jsonRequest({
33813    method: objectID !== undefined ?
33814    'PUT' : // update or create
33815    'POST', // create (API generates an objectID)
33816    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + // create
33817    (objectID !== undefined ? '/' + encodeURIComponent(objectID) : ''), // update or create
33818    body: content,
33819    hostType: 'write',
33820    callback: callback
33821  });
33822};
33823
33824/*
33825* Add several objects
33826*
33827* @param objects contains an array of objects to add
33828* @param callback (optional) the result callback called with two arguments:
33829*  error: null or Error('message')
33830*  content: the server answer that updateAt and taskID
33831*/
33832Index.prototype.addObjects = function(objects, callback) {
33833  var isArray = __webpack_require__(23);
33834  var usage = 'Usage: index.addObjects(arrayOfObjects[, callback])';
33835
33836  if (!isArray(objects)) {
33837    throw new Error(usage);
33838  }
33839
33840  var indexObj = this;
33841  var postObj = {
33842    requests: []
33843  };
33844  for (var i = 0; i < objects.length; ++i) {
33845    var request = {
33846      action: 'addObject',
33847      body: objects[i]
33848    };
33849    postObj.requests.push(request);
33850  }
33851  return this.as._jsonRequest({
33852    method: 'POST',
33853    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',
33854    body: postObj,
33855    hostType: 'write',
33856    callback: callback
33857  });
33858};
33859
33860/*
33861* Update partially an object (only update attributes passed in argument)
33862*
33863* @param partialObject contains the javascript attributes to override, the
33864*  object must contains an objectID attribute
33865* @param createIfNotExists (optional) if false, avoid an automatic creation of the object
33866* @param callback (optional) the result callback called with two arguments:
33867*  error: null or Error('message')
33868*  content: the server answer that contains 3 elements: createAt, taskId and objectID
33869*/
33870Index.prototype.partialUpdateObject = function(partialObject, createIfNotExists, callback) {
33871  if (arguments.length === 1 || typeof createIfNotExists === 'function') {
33872    callback = createIfNotExists;
33873    createIfNotExists = undefined;
33874  }
33875
33876  var indexObj = this;
33877  var url = '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(partialObject.objectID) + '/partial';
33878  if (createIfNotExists === false) {
33879    url += '?createIfNotExists=false';
33880  }
33881
33882  return this.as._jsonRequest({
33883    method: 'POST',
33884    url: url,
33885    body: partialObject,
33886    hostType: 'write',
33887    callback: callback
33888  });
33889};
33890
33891/*
33892* Partially Override the content of several objects
33893*
33894* @param objects contains an array of objects to update (each object must contains a objectID attribute)
33895* @param callback (optional) the result callback called with two arguments:
33896*  error: null or Error('message')
33897*  content: the server answer that updateAt and taskID
33898*/
33899Index.prototype.partialUpdateObjects = function(objects, createIfNotExists, callback) {
33900  if (arguments.length === 1 || typeof createIfNotExists === 'function') {
33901    callback = createIfNotExists;
33902    createIfNotExists = true;
33903  }
33904
33905  var isArray = __webpack_require__(23);
33906  var usage = 'Usage: index.partialUpdateObjects(arrayOfObjects[, callback])';
33907
33908  if (!isArray(objects)) {
33909    throw new Error(usage);
33910  }
33911
33912  var indexObj = this;
33913  var postObj = {
33914    requests: []
33915  };
33916  for (var i = 0; i < objects.length; ++i) {
33917    var request = {
33918      action: createIfNotExists === true ? 'partialUpdateObject' : 'partialUpdateObjectNoCreate',
33919      objectID: objects[i].objectID,
33920      body: objects[i]
33921    };
33922    postObj.requests.push(request);
33923  }
33924  return this.as._jsonRequest({
33925    method: 'POST',
33926    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',
33927    body: postObj,
33928    hostType: 'write',
33929    callback: callback
33930  });
33931};
33932
33933/*
33934* Override the content of object
33935*
33936* @param object contains the javascript object to save, the object must contains an objectID attribute
33937* @param callback (optional) the result callback called with two arguments:
33938*  error: null or Error('message')
33939*  content: the server answer that updateAt and taskID
33940*/
33941Index.prototype.saveObject = function(object, callback) {
33942  var indexObj = this;
33943  return this.as._jsonRequest({
33944    method: 'PUT',
33945    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(object.objectID),
33946    body: object,
33947    hostType: 'write',
33948    callback: callback
33949  });
33950};
33951
33952/*
33953* Override the content of several objects
33954*
33955* @param objects contains an array of objects to update (each object must contains a objectID attribute)
33956* @param callback (optional) the result callback called with two arguments:
33957*  error: null or Error('message')
33958*  content: the server answer that updateAt and taskID
33959*/
33960Index.prototype.saveObjects = function(objects, callback) {
33961  var isArray = __webpack_require__(23);
33962  var usage = 'Usage: index.saveObjects(arrayOfObjects[, callback])';
33963
33964  if (!isArray(objects)) {
33965    throw new Error(usage);
33966  }
33967
33968  var indexObj = this;
33969  var postObj = {
33970    requests: []
33971  };
33972  for (var i = 0; i < objects.length; ++i) {
33973    var request = {
33974      action: 'updateObject',
33975      objectID: objects[i].objectID,
33976      body: objects[i]
33977    };
33978    postObj.requests.push(request);
33979  }
33980  return this.as._jsonRequest({
33981    method: 'POST',
33982    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',
33983    body: postObj,
33984    hostType: 'write',
33985    callback: callback
33986  });
33987};
33988
33989/*
33990* Delete an object from the index
33991*
33992* @param objectID the unique identifier of object to delete
33993* @param callback (optional) the result callback called with two arguments:
33994*  error: null or Error('message')
33995*  content: the server answer that contains 3 elements: createAt, taskId and objectID
33996*/
33997Index.prototype.deleteObject = function(objectID, callback) {
33998  if (typeof objectID === 'function' || typeof objectID !== 'string' && typeof objectID !== 'number') {
33999    var err = new errors.AlgoliaSearchError(
34000      objectID && typeof objectID !== 'function'
34001      ? 'ObjectID must be a string'
34002      : 'Cannot delete an object without an objectID'
34003    );
34004    callback = objectID;
34005    if (typeof callback === 'function') {
34006      return callback(err);
34007    }
34008
34009    return this.as._promise.reject(err);
34010  }
34011
34012  var indexObj = this;
34013  return this.as._jsonRequest({
34014    method: 'DELETE',
34015    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID),
34016    hostType: 'write',
34017    callback: callback
34018  });
34019};
34020
34021/*
34022* Delete several objects from an index
34023*
34024* @param objectIDs contains an array of objectID to delete
34025* @param callback (optional) the result callback called with two arguments:
34026*  error: null or Error('message')
34027*  content: the server answer that contains 3 elements: createAt, taskId and objectID
34028*/
34029Index.prototype.deleteObjects = function(objectIDs, callback) {
34030  var isArray = __webpack_require__(23);
34031  var map = __webpack_require__(72);
34032
34033  var usage = 'Usage: index.deleteObjects(arrayOfObjectIDs[, callback])';
34034
34035  if (!isArray(objectIDs)) {
34036    throw new Error(usage);
34037  }
34038
34039  var indexObj = this;
34040  var postObj = {
34041    requests: map(objectIDs, function prepareRequest(objectID) {
34042      return {
34043        action: 'deleteObject',
34044        objectID: objectID,
34045        body: {
34046          objectID: objectID
34047        }
34048      };
34049    })
34050  };
34051
34052  return this.as._jsonRequest({
34053    method: 'POST',
34054    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',
34055    body: postObj,
34056    hostType: 'write',
34057    callback: callback
34058  });
34059};
34060
34061/*
34062* Delete all objects matching a query
34063*
34064* @param query the query string
34065* @param params the optional query parameters
34066* @param callback (optional) the result callback called with one argument
34067*  error: null or Error('message')
34068* @deprecated see index.deleteBy
34069*/
34070Index.prototype.deleteByQuery = deprecate(function(query, params, callback) {
34071  var clone = __webpack_require__(48);
34072  var map = __webpack_require__(72);
34073
34074  var indexObj = this;
34075  var client = indexObj.as;
34076
34077  if (arguments.length === 1 || typeof params === 'function') {
34078    callback = params;
34079    params = {};
34080  } else {
34081    params = clone(params);
34082  }
34083
34084  params.attributesToRetrieve = 'objectID';
34085  params.hitsPerPage = 1000;
34086  params.distinct = false;
34087
34088  // when deleting, we should never use cache to get the
34089  // search results
34090  this.clearCache();
34091
34092  // there's a problem in how we use the promise chain,
34093  // see how waitTask is done
34094  var promise = this
34095  .search(query, params)
34096  .then(stopOrDelete);
34097
34098  function stopOrDelete(searchContent) {
34099    // stop here
34100    if (searchContent.nbHits === 0) {
34101      // return indexObj.as._request.resolve();
34102      return searchContent;
34103    }
34104
34105    // continue and do a recursive call
34106    var objectIDs = map(searchContent.hits, function getObjectID(object) {
34107      return object.objectID;
34108    });
34109
34110    return indexObj
34111    .deleteObjects(objectIDs)
34112    .then(waitTask)
34113    .then(doDeleteByQuery);
34114  }
34115
34116  function waitTask(deleteObjectsContent) {
34117    return indexObj.waitTask(deleteObjectsContent.taskID);
34118  }
34119
34120  function doDeleteByQuery() {
34121    return indexObj.deleteByQuery(query, params);
34122  }
34123
34124  if (!callback) {
34125    return promise;
34126  }
34127
34128  promise.then(success, failure);
34129
34130  function success() {
34131    exitPromise(function exit() {
34132      callback(null);
34133    }, client._setTimeout || setTimeout);
34134  }
34135
34136  function failure(err) {
34137    exitPromise(function exit() {
34138      callback(err);
34139    }, client._setTimeout || setTimeout);
34140  }
34141}, deprecatedMessage('index.deleteByQuery()', 'index.deleteBy()'));
34142
34143/**
34144* Delete all objects matching a query
34145*
34146* the query parameters that can be used are:
34147* - filters (numeric, facet, tag)
34148* - geo
34149*
34150* you can not send an empty query or filters
34151*
34152* @param params the optional query parameters
34153* @param callback (optional) the result callback called with one argument
34154*  error: null or Error('message')
34155*/
34156Index.prototype.deleteBy = function(params, callback) {
34157  var indexObj = this;
34158  return this.as._jsonRequest({
34159    method: 'POST',
34160    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/deleteByQuery',
34161    body: {params: indexObj.as._getSearchParams(params, '')},
34162    hostType: 'write',
34163    callback: callback
34164  });
34165};
34166
34167/*
34168* Browse all content from an index using events. Basically this will do
34169* .browse() -> .browseFrom -> .browseFrom -> .. until all the results are returned
34170*
34171* @param {string} query - The full text query
34172* @param {Object} [queryParameters] - Any search query parameter
34173* @return {EventEmitter}
34174* @example
34175* var browser = index.browseAll('cool songs', {
34176*   tagFilters: 'public,comments',
34177*   hitsPerPage: 500
34178* });
34179*
34180* browser.on('result', function resultCallback(content) {
34181*   console.log(content.hits);
34182* });
34183*
34184* // if any error occurs, you get it
34185* browser.on('error', function(err) {
34186*   throw err;
34187* });
34188*
34189* // when you have browsed the whole index, you get this event
34190* browser.on('end', function() {
34191*   console.log('finished');
34192* });
34193*
34194* // at any point if you want to stop the browsing process, you can stop it manually
34195* // otherwise it will go on and on
34196* browser.stop();
34197*
34198* @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}
34199*/
34200Index.prototype.browseAll = function(query, queryParameters) {
34201  if (typeof query === 'object') {
34202    queryParameters = query;
34203    query = undefined;
34204  }
34205
34206  var merge = __webpack_require__(222);
34207
34208  var IndexBrowser = __webpack_require__(541);
34209
34210  var browser = new IndexBrowser();
34211  var client = this.as;
34212  var index = this;
34213  var params = client._getSearchParams(
34214    merge({}, queryParameters || {}, {
34215      query: query
34216    }), ''
34217  );
34218
34219  // start browsing
34220  browseLoop();
34221
34222  function browseLoop(cursor) {
34223    if (browser._stopped) {
34224      return;
34225    }
34226
34227    var body;
34228
34229    if (cursor !== undefined) {
34230      body = {
34231        cursor: cursor
34232      };
34233    } else {
34234      body = {
34235        params: params
34236      };
34237    }
34238
34239    client._jsonRequest({
34240      method: 'POST',
34241      url: '/1/indexes/' + encodeURIComponent(index.indexName) + '/browse',
34242      hostType: 'read',
34243      body: body,
34244      callback: browseCallback
34245    });
34246  }
34247
34248  function browseCallback(err, content) {
34249    if (browser._stopped) {
34250      return;
34251    }
34252
34253    if (err) {
34254      browser._error(err);
34255      return;
34256    }
34257
34258    browser._result(content);
34259
34260    // no cursor means we are finished browsing
34261    if (content.cursor === undefined) {
34262      browser._end();
34263      return;
34264    }
34265
34266    browseLoop(content.cursor);
34267  }
34268
34269  return browser;
34270};
34271
34272/*
34273* Get a Typeahead.js adapter
34274* @param searchParams contains an object with query parameters (see search for details)
34275*/
34276Index.prototype.ttAdapter = deprecate(function(params) {
34277  var self = this;
34278  return function ttAdapter(query, syncCb, asyncCb) {
34279    var cb;
34280
34281    if (typeof asyncCb === 'function') {
34282      // typeahead 0.11
34283      cb = asyncCb;
34284    } else {
34285      // pre typeahead 0.11
34286      cb = syncCb;
34287    }
34288
34289    self.search(query, params, function searchDone(err, content) {
34290      if (err) {
34291        cb(err);
34292        return;
34293      }
34294
34295      cb(content.hits);
34296    });
34297  };
34298},
34299'ttAdapter is not necessary anymore and will be removed in the next version,\n' +
34300'have a look at autocomplete.js (https://github.com/algolia/autocomplete.js)');
34301
34302/*
34303* Wait the publication of a task on the server.
34304* All server task are asynchronous and you can check with this method that the task is published.
34305*
34306* @param taskID the id of the task returned by server
34307* @param callback the result callback with with two arguments:
34308*  error: null or Error('message')
34309*  content: the server answer that contains the list of results
34310*/
34311Index.prototype.waitTask = function(taskID, callback) {
34312  // wait minimum 100ms before retrying
34313  var baseDelay = 100;
34314  // wait maximum 5s before retrying
34315  var maxDelay = 5000;
34316  var loop = 0;
34317
34318  // waitTask() must be handled differently from other methods,
34319  // it's a recursive method using a timeout
34320  var indexObj = this;
34321  var client = indexObj.as;
34322
34323  var promise = retryLoop();
34324
34325  function retryLoop() {
34326    return client._jsonRequest({
34327      method: 'GET',
34328      hostType: 'read',
34329      url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/task/' + taskID
34330    }).then(function success(content) {
34331      loop++;
34332      var delay = baseDelay * loop * loop;
34333      if (delay > maxDelay) {
34334        delay = maxDelay;
34335      }
34336
34337      if (content.status !== 'published') {
34338        return client._promise.delay(delay).then(retryLoop);
34339      }
34340
34341      return content;
34342    });
34343  }
34344
34345  if (!callback) {
34346    return promise;
34347  }
34348
34349  promise.then(successCb, failureCb);
34350
34351  function successCb(content) {
34352    exitPromise(function exit() {
34353      callback(null, content);
34354    }, client._setTimeout || setTimeout);
34355  }
34356
34357  function failureCb(err) {
34358    exitPromise(function exit() {
34359      callback(err);
34360    }, client._setTimeout || setTimeout);
34361  }
34362};
34363
34364/*
34365* This function deletes the index content. Settings and index specific API keys are kept untouched.
34366*
34367* @param callback (optional) the result callback called with two arguments
34368*  error: null or Error('message')
34369*  content: the settings object or the error message if a failure occured
34370*/
34371Index.prototype.clearIndex = function(callback) {
34372  var indexObj = this;
34373  return this.as._jsonRequest({
34374    method: 'POST',
34375    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/clear',
34376    hostType: 'write',
34377    callback: callback
34378  });
34379};
34380
34381/*
34382* Get settings of this index
34383*
34384* @param opts an object of options to add
34385* @param opts.advanced get more settings like nbShards (useful for Enterprise)
34386* @param callback (optional) the result callback called with two arguments
34387*  error: null or Error('message')
34388*  content: the settings object or the error message if a failure occurred
34389*/
34390Index.prototype.getSettings = function(opts, callback) {
34391  if (arguments.length === 1 && typeof opts === 'function') {
34392    callback = opts;
34393    opts = {};
34394  }
34395  opts = opts || {};
34396
34397  var indexName = encodeURIComponent(this.indexName);
34398  return this.as._jsonRequest({
34399    method: 'GET',
34400    url:
34401      '/1/indexes/' +
34402      indexName +
34403      '/settings?getVersion=2' +
34404      (opts.advanced ? '&advanced=' + opts.advanced : ''),
34405    hostType: 'read',
34406    callback: callback
34407  });
34408};
34409
34410Index.prototype.searchSynonyms = function(params, callback) {
34411  if (typeof params === 'function') {
34412    callback = params;
34413    params = {};
34414  } else if (params === undefined) {
34415    params = {};
34416  }
34417
34418  return this.as._jsonRequest({
34419    method: 'POST',
34420    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/search',
34421    body: params,
34422    hostType: 'read',
34423    callback: callback
34424  });
34425};
34426
34427function exportData(method, _hitsPerPage, callback) {
34428  function search(page, _previous) {
34429    var options = {
34430      page: page || 0,
34431      hitsPerPage: _hitsPerPage || 100
34432    };
34433    var previous = _previous || [];
34434
34435    return method(options).then(function(result) {
34436      var hits = result.hits;
34437      var nbHits = result.nbHits;
34438      var current = hits.map(function(s) {
34439        delete s._highlightResult;
34440        return s;
34441      });
34442      var synonyms = previous.concat(current);
34443      if (synonyms.length < nbHits) {
34444        return search(options.page + 1, synonyms);
34445      }
34446      return synonyms;
34447    });
34448  }
34449  return search().then(function(data) {
34450    if (typeof callback === 'function') {
34451      callback(data);
34452      return undefined;
34453    }
34454    return data;
34455  });
34456}
34457
34458/**
34459 * Retrieve all the synonyms in an index
34460 * @param [number=100] hitsPerPage The amount of synonyms to retrieve per batch
34461 * @param [function] callback will be called after all synonyms are retrieved
34462 */
34463Index.prototype.exportSynonyms = function(hitsPerPage, callback) {
34464  return exportData(this.searchSynonyms.bind(this), hitsPerPage, callback);
34465};
34466
34467Index.prototype.saveSynonym = function(synonym, opts, callback) {
34468  if (typeof opts === 'function') {
34469    callback = opts;
34470    opts = {};
34471  } else if (opts === undefined) {
34472    opts = {};
34473  }
34474
34475  if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves();
34476  var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false';
34477
34478  return this.as._jsonRequest({
34479    method: 'PUT',
34480    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(synonym.objectID) +
34481      '?forwardToReplicas=' + forwardToReplicas,
34482    body: synonym,
34483    hostType: 'write',
34484    callback: callback
34485  });
34486};
34487
34488Index.prototype.getSynonym = function(objectID, callback) {
34489  return this.as._jsonRequest({
34490    method: 'GET',
34491    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(objectID),
34492    hostType: 'read',
34493    callback: callback
34494  });
34495};
34496
34497Index.prototype.deleteSynonym = function(objectID, opts, callback) {
34498  if (typeof opts === 'function') {
34499    callback = opts;
34500    opts = {};
34501  } else if (opts === undefined) {
34502    opts = {};
34503  }
34504
34505  if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves();
34506  var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false';
34507
34508  return this.as._jsonRequest({
34509    method: 'DELETE',
34510    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/' + encodeURIComponent(objectID) +
34511      '?forwardToReplicas=' + forwardToReplicas,
34512    hostType: 'write',
34513    callback: callback
34514  });
34515};
34516
34517Index.prototype.clearSynonyms = function(opts, callback) {
34518  if (typeof opts === 'function') {
34519    callback = opts;
34520    opts = {};
34521  } else if (opts === undefined) {
34522    opts = {};
34523  }
34524
34525  if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves();
34526  var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false';
34527
34528  return this.as._jsonRequest({
34529    method: 'POST',
34530    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/clear' +
34531      '?forwardToReplicas=' + forwardToReplicas,
34532    hostType: 'write',
34533    callback: callback
34534  });
34535};
34536
34537Index.prototype.batchSynonyms = function(synonyms, opts, callback) {
34538  if (typeof opts === 'function') {
34539    callback = opts;
34540    opts = {};
34541  } else if (opts === undefined) {
34542    opts = {};
34543  }
34544
34545  if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves();
34546  var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false';
34547
34548  return this.as._jsonRequest({
34549    method: 'POST',
34550    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/synonyms/batch' +
34551      '?forwardToReplicas=' + forwardToReplicas +
34552      '&replaceExistingSynonyms=' + (opts.replaceExistingSynonyms ? 'true' : 'false'),
34553    hostType: 'write',
34554    body: synonyms,
34555    callback: callback
34556  });
34557};
34558
34559Index.prototype.searchRules = function(params, callback) {
34560  if (typeof params === 'function') {
34561    callback = params;
34562    params = {};
34563  } else if (params === undefined) {
34564    params = {};
34565  }
34566
34567  return this.as._jsonRequest({
34568    method: 'POST',
34569    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/search',
34570    body: params,
34571    hostType: 'read',
34572    callback: callback
34573  });
34574};
34575/**
34576 * Retrieve all the query rules in an index
34577 * @param [number=100] hitsPerPage The amount of query rules to retrieve per batch
34578 * @param [function] callback will be called after all query rules are retrieved
34579 *  error: null or Error('message')
34580 */
34581Index.prototype.exportRules = function(hitsPerPage, callback) {
34582  return exportData(this.searchRules.bind(this), hitsPerPage, callback);
34583};
34584
34585Index.prototype.saveRule = function(rule, opts, callback) {
34586  if (typeof opts === 'function') {
34587    callback = opts;
34588    opts = {};
34589  } else if (opts === undefined) {
34590    opts = {};
34591  }
34592
34593  if (!rule.objectID) {
34594    throw new errors.AlgoliaSearchError('Missing or empty objectID field for rule');
34595  }
34596
34597  var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false';
34598
34599  return this.as._jsonRequest({
34600    method: 'PUT',
34601    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(rule.objectID) +
34602      '?forwardToReplicas=' + forwardToReplicas,
34603    body: rule,
34604    hostType: 'write',
34605    callback: callback
34606  });
34607};
34608
34609Index.prototype.getRule = function(objectID, callback) {
34610  return this.as._jsonRequest({
34611    method: 'GET',
34612    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(objectID),
34613    hostType: 'read',
34614    callback: callback
34615  });
34616};
34617
34618Index.prototype.deleteRule = function(objectID, opts, callback) {
34619  if (typeof opts === 'function') {
34620    callback = opts;
34621    opts = {};
34622  } else if (opts === undefined) {
34623    opts = {};
34624  }
34625
34626  var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false';
34627
34628  return this.as._jsonRequest({
34629    method: 'DELETE',
34630    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/' + encodeURIComponent(objectID) +
34631      '?forwardToReplicas=' + forwardToReplicas,
34632    hostType: 'write',
34633    callback: callback
34634  });
34635};
34636
34637Index.prototype.clearRules = function(opts, callback) {
34638  if (typeof opts === 'function') {
34639    callback = opts;
34640    opts = {};
34641  } else if (opts === undefined) {
34642    opts = {};
34643  }
34644
34645  var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false';
34646
34647  return this.as._jsonRequest({
34648    method: 'POST',
34649    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/clear' +
34650      '?forwardToReplicas=' + forwardToReplicas,
34651    hostType: 'write',
34652    callback: callback
34653  });
34654};
34655
34656Index.prototype.batchRules = function(rules, opts, callback) {
34657  if (typeof opts === 'function') {
34658    callback = opts;
34659    opts = {};
34660  } else if (opts === undefined) {
34661    opts = {};
34662  }
34663
34664  var forwardToReplicas = opts.forwardToReplicas === true ? 'true' : 'false';
34665
34666  return this.as._jsonRequest({
34667    method: 'POST',
34668    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/rules/batch' +
34669      '?forwardToReplicas=' + forwardToReplicas +
34670      '&clearExistingRules=' + (opts.clearExistingRules === true ? 'true' : 'false'),
34671    hostType: 'write',
34672    body: rules,
34673    callback: callback
34674  });
34675};
34676
34677/*
34678* Set settings for this index
34679*
34680* @param settigns the settings object that can contains :
34681* - minWordSizefor1Typo: (integer) the minimum number of characters to accept one typo (default = 3).
34682* - minWordSizefor2Typos: (integer) the minimum number of characters to accept two typos (default = 7).
34683* - hitsPerPage: (integer) the number of hits per page (default = 10).
34684* - attributesToRetrieve: (array of strings) default list of attributes to retrieve in objects.
34685*   If set to null, all attributes are retrieved.
34686* - attributesToHighlight: (array of strings) default list of attributes to highlight.
34687*   If set to null, all indexed attributes are highlighted.
34688* - attributesToSnippet**: (array of strings) default list of attributes to snippet alongside the number
34689* of words to return (syntax is attributeName:nbWords).
34690*   By default no snippet is computed. If set to null, no snippet is computed.
34691* - attributesToIndex: (array of strings) the list of fields you want to index.
34692*   If set to null, all textual and numerical attributes of your objects are indexed,
34693*   but you should update it to get optimal results.
34694*   This parameter has two important uses:
34695*     - Limit the attributes to index: For example if you store a binary image in base64,
34696*     you want to store it and be able to
34697*       retrieve it but you don't want to search in the base64 string.
34698*     - Control part of the ranking*: (see the ranking parameter for full explanation)
34699*     Matches in attributes at the beginning of
34700*       the list will be considered more important than matches in attributes further down the list.
34701*       In one attribute, matching text at the beginning of the attribute will be
34702*       considered more important than text after, you can disable
34703*       this behavior if you add your attribute inside `unordered(AttributeName)`,
34704*       for example attributesToIndex: ["title", "unordered(text)"].
34705* - attributesForFaceting: (array of strings) The list of fields you want to use for faceting.
34706*   All strings in the attribute selected for faceting are extracted and added as a facet.
34707*   If set to null, no attribute is used for faceting.
34708* - attributeForDistinct: (string) The attribute name used for the Distinct feature.
34709* This feature is similar to the SQL "distinct" keyword: when enabled
34710*   in query with the distinct=1 parameter, all hits containing a duplicate
34711*   value for this attribute are removed from results.
34712*   For example, if the chosen attribute is show_name and several hits have
34713*   the same value for show_name, then only the best one is kept and others are removed.
34714* - ranking: (array of strings) controls the way results are sorted.
34715*   We have six available criteria:
34716*    - typo: sort according to number of typos,
34717*    - geo: sort according to decreassing distance when performing a geo-location based search,
34718*    - proximity: sort according to the proximity of query words in hits,
34719*    - attribute: sort according to the order of attributes defined by attributesToIndex,
34720*    - exact:
34721*        - if the user query contains one word: sort objects having an attribute
34722*        that is exactly the query word before others.
34723*          For example if you search for the "V" TV show, you want to find it
34724*          with the "V" query and avoid to have all popular TV
34725*          show starting by the v letter before it.
34726*        - if the user query contains multiple words: sort according to the
34727*        number of words that matched exactly (and not as a prefix).
34728*    - custom: sort according to a user defined formula set in **customRanking** attribute.
34729*   The standard order is ["typo", "geo", "proximity", "attribute", "exact", "custom"]
34730* - customRanking: (array of strings) lets you specify part of the ranking.
34731*   The syntax of this condition is an array of strings containing attributes
34732*   prefixed by asc (ascending order) or desc (descending order) operator.
34733*   For example `"customRanking" => ["desc(population)", "asc(name)"]`
34734* - queryType: Select how the query words are interpreted, it can be one of the following value:
34735*   - prefixAll: all query words are interpreted as prefixes,
34736*   - prefixLast: only the last word is interpreted as a prefix (default behavior),
34737*   - prefixNone: no query word is interpreted as a prefix. This option is not recommended.
34738* - highlightPreTag: (string) Specify the string that is inserted before
34739* the highlighted parts in the query result (default to "<em>").
34740* - highlightPostTag: (string) Specify the string that is inserted after
34741* the highlighted parts in the query result (default to "</em>").
34742* - optionalWords: (array of strings) Specify a list of words that should
34743* be considered as optional when found in the query.
34744* @param callback (optional) the result callback called with two arguments
34745*  error: null or Error('message')
34746*  content: the server answer or the error message if a failure occured
34747*/
34748Index.prototype.setSettings = function(settings, opts, callback) {
34749  if (arguments.length === 1 || typeof opts === 'function') {
34750    callback = opts;
34751    opts = {};
34752  }
34753
34754  if (opts.forwardToSlaves !== undefined) deprecateForwardToSlaves();
34755  var forwardToReplicas = (opts.forwardToSlaves || opts.forwardToReplicas) ? 'true' : 'false';
34756
34757  var indexObj = this;
34758  return this.as._jsonRequest({
34759    method: 'PUT',
34760    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/settings?forwardToReplicas='
34761      + forwardToReplicas,
34762    hostType: 'write',
34763    body: settings,
34764    callback: callback
34765  });
34766};
34767
34768/*
34769* @deprecated see client.listApiKeys()
34770*/
34771Index.prototype.listUserKeys = deprecate(function(callback) {
34772  return this.listApiKeys(callback);
34773}, deprecatedMessage('index.listUserKeys()', 'client.listApiKeys()'));
34774
34775/*
34776* List all existing API keys to this index
34777*
34778* @param callback the result callback called with two arguments
34779*  error: null or Error('message')
34780*  content: the server answer with API keys belonging to the index
34781*
34782* @deprecated see client.listApiKeys()
34783*/
34784Index.prototype.listApiKeys = deprecate(function(callback) {
34785  var indexObj = this;
34786  return this.as._jsonRequest({
34787    method: 'GET',
34788    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys',
34789    hostType: 'read',
34790    callback: callback
34791  });
34792}, deprecatedMessage('index.listApiKeys()', 'client.listApiKeys()'));
34793
34794/*
34795* @deprecated see client.getApiKey()
34796*/
34797Index.prototype.getUserKeyACL = deprecate(function(key, callback) {
34798  return this.getApiKey(key, callback);
34799}, deprecatedMessage('index.getUserKeyACL()', 'client.getApiKey()'));
34800
34801
34802/*
34803* Get an API key from this index
34804*
34805* @param key
34806* @param callback the result callback called with two arguments
34807*  error: null or Error('message')
34808*  content: the server answer with the right API key
34809*
34810* @deprecated see client.getApiKey()
34811*/
34812Index.prototype.getApiKey = deprecate(function(key, callback) {
34813  var indexObj = this;
34814  return this.as._jsonRequest({
34815    method: 'GET',
34816    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key,
34817    hostType: 'read',
34818    callback: callback
34819  });
34820}, deprecatedMessage('index.getApiKey()', 'client.getApiKey()'));
34821
34822/*
34823* @deprecated see client.deleteApiKey()
34824*/
34825Index.prototype.deleteUserKey = deprecate(function(key, callback) {
34826  return this.deleteApiKey(key, callback);
34827}, deprecatedMessage('index.deleteUserKey()', 'client.deleteApiKey()'));
34828
34829/*
34830* Delete an existing API key associated to this index
34831*
34832* @param key
34833* @param callback the result callback called with two arguments
34834*  error: null or Error('message')
34835*  content: the server answer with the deletion date
34836*
34837* @deprecated see client.deleteApiKey()
34838*/
34839Index.prototype.deleteApiKey = deprecate(function(key, callback) {
34840  var indexObj = this;
34841  return this.as._jsonRequest({
34842    method: 'DELETE',
34843    url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key,
34844    hostType: 'write',
34845    callback: callback
34846  });
34847}, deprecatedMessage('index.deleteApiKey()', 'client.deleteApiKey()'));
34848
34849/*
34850* @deprecated see client.addApiKey()
34851*/
34852Index.prototype.addUserKey = deprecate(function(acls, params, callback) {
34853  return this.addApiKey(acls, params, callback);
34854}, deprecatedMessage('index.addUserKey()', 'client.addApiKey()'));
34855
34856/*
34857* Add a new API key to this index
34858*
34859* @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that
34860*   can contains the following values:
34861*     - search: allow to search (https and http)
34862*     - addObject: allows to add/update an object in the index (https only)
34863*     - deleteObject : allows to delete an existing object (https only)
34864*     - deleteIndex : allows to delete index content (https only)
34865*     - settings : allows to get index settings (https only)
34866*     - editSettings : allows to change index settings (https only)
34867* @param {Object}
34867 [params] - Optionnal parameters to set for the key
34868* @param {number} params.validity - Number of seconds after which the key will
34869* be automatically removed (0 means no time limit for this key)
34870* @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour
34871* @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call
34872* @param {string} params.description - A description for your key
34873* @param {string[]} params.referers - A list of authorized referers
34874* @param {Object} params.queryParameters - Force the key to use specific query parameters
34875* @param {Function} callback - The result callback called with two arguments
34876*   error: null or Error('message')
34877*   content: the server answer with the added API key
34878* @return {Promise|undefined} Returns a promise if no callback given
34879* @example
34880* index.addUserKey(['search'], {
34881*   validity: 300,
34882*   maxQueriesPerIPPerHour: 2000,
34883*   maxHitsPerQuery: 3,
34884*   description: 'Eat three fruits',
34885*   referers: ['*.algolia.com'],
34886*   queryParameters: {
34887*     tagFilters: ['public'],
34888*   }
34889* })
34890* @see {@link https://www.algolia.com/doc/rest_api#AddIndexKey|Algolia REST API Documentation}
34891*
34892* @deprecated see client.addApiKey()
34893*/
34894Index.prototype.addApiKey = deprecate(function(acls, params, callback) {
34895  var isArray = __webpack_require__(23);
34896  var usage = 'Usage: index.addApiKey(arrayOfAcls[, params, callback])';
34897
34898  if (!isArray(acls)) {
34899    throw new Error(usage);
34900  }
34901
34902  if (arguments.length === 1 || typeof params === 'function') {
34903    callback = params;
34904    params = null;
34905  }
34906
34907  var postObj = {
34908    acl: acls
34909  };
34910
34911  if (params) {
34912    postObj.validity = params.validity;
34913    postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;
34914    postObj.maxHitsPerQuery = params.maxHitsPerQuery;
34915    postObj.description = params.description;
34916
34917    if (params.queryParameters) {
34918      postObj.queryParameters = this.as._getSearchParams(params.queryParameters, '');
34919    }
34920
34921    postObj.referers = params.referers;
34922  }
34923
34924  return this.as._jsonRequest({
34925    method: 'POST',
34926    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys',
34927    body: postObj,
34928    hostType: 'write',
34929    callback: callback
34930  });
34931}, deprecatedMessage('index.addApiKey()', 'client.addApiKey()'));
34932
34933/**
34934* @deprecated use client.addApiKey()
34935*/
34936Index.prototype.addUserKeyWithValidity = deprecate(function deprecatedAddUserKeyWithValidity(acls, params, callback) {
34937  return this.addApiKey(acls, params, callback);
34938}, deprecatedMessage('index.addUserKeyWithValidity()', 'client.addApiKey()'));
34939
34940/*
34941* @deprecated see client.updateApiKey()
34942*/
34943Index.prototype.updateUserKey = deprecate(function(key, acls, params, callback) {
34944  return this.updateApiKey(key, acls, params, callback);
34945}, deprecatedMessage('index.updateUserKey()', 'client.updateApiKey()'));
34946
34947/**
34948* Update an existing API key of this index
34949* @param {string} key - The key to update
34950* @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that
34951*   can contains the following values:
34952*     - search: allow to search (https and http)
34953*     - addObject: allows to add/update an object in the index (https only)
34954*     - deleteObject : allows to delete an existing object (https only)
34955*     - deleteIndex : allows to delete index content (https only)
34956*     - settings : allows to get index settings (https only)
34957*     - editSettings : allows to change index settings (https only)
34958* @param {Object} [params] - Optionnal parameters to set for the key
34959* @param {number} params.validity - Number of seconds after which the key will
34960* be automatically removed (0 means no time limit for this key)
34961* @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour
34962* @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call
34963* @param {string} params.description - A description for your key
34964* @param {string[]} params.referers - A list of authorized referers
34965* @param {Object} params.queryParameters - Force the key to use specific query parameters
34966* @param {Function} callback - The result callback called with two arguments
34967*   error: null or Error('message')
34968*   content: the server answer with user keys list
34969* @return {Promise|undefined} Returns a promise if no callback given
34970* @example
34971* index.updateApiKey('APIKEY', ['search'], {
vendor: 6,071 bytes, lines 34972-35221
34972*   validity: 300,
34973*   maxQueriesPerIPPerHour: 2000,
34974*   maxHitsPerQuery: 3,
34975*   description: 'Eat three fruits',
34976*   referers: ['*.algolia.com'],
34977*   queryParameters: {
34978*     tagFilters: ['public'],
34979*   }
34980* })
34981* @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation}
34982*
34983* @deprecated see client.updateApiKey()
34984*/
34985Index.prototype.updateApiKey = deprecate(function(key, acls, params, callback) {
34986  var isArray = __webpack_require__(23);
34987  var usage = 'Usage: index.updateApiKey(key, arrayOfAcls[, params, callback])';
34988
34989  if (!isArray(acls)) {
34990    throw new Error(usage);
34991  }
34992
34993  if (arguments.length === 2 || typeof params === 'function') {
34994    callback = params;
34995    params = null;
34996  }
34997
34998  var putObj = {
34999    acl: acls
35000  };
35001
35002  if (params) {
35003    putObj.validity = params.validity;
35004    putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;
35005    putObj.maxHitsPerQuery = params.maxHitsPerQuery;
35006    putObj.description = params.description;
35007
35008    if (params.queryParameters) {
35009      putObj.queryParameters = this.as._getSearchParams(params.queryParameters, '');
35010    }
35011
35012    putObj.referers = params.referers;
35013  }
35014
35015  return this.as._jsonRequest({
35016    method: 'PUT',
35017    url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys/' + key,
35018    body: putObj,
35019    hostType: 'write',
35020    callback: callback
35021  });
35022}, deprecatedMessage('index.updateApiKey()', 'client.updateApiKey()'));
35023
35024
35025/***/ }),
35026/* 539 */
35027/***/ (function(module, exports, __webpack_require__) {
35028
35029"use strict";
35030
35031
35032// modified from https://github.com/es-shims/es5-shim
35033var has = Object.prototype.hasOwnProperty;
35034var toStr = Object.prototype.toString;
35035var slice = Array.prototype.slice;
35036var isArgs = __webpack_require__(540);
35037var isEnumerable = Object.prototype.propertyIsEnumerable;
35038var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
35039var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
35040var dontEnums = [
35041	'toString',
35042	'toLocaleString',
35043	'valueOf',
35044	'hasOwnProperty',
35045	'isPrototypeOf',
35046	'propertyIsEnumerable',
35047	'constructor'
35048];
35049var equalsConstructorPrototype = function (o) {
35050	var ctor = o.constructor;
35051	return ctor && ctor.prototype === o;
35052};
35053var excludedKeys = {
35054	$applicationCache: true,
35055	$console: true,
35056	$external: true,
35057	$frame: true,
35058	$frameElement: true,
35059	$frames: true,
35060	$innerHeight: true,
35061	$innerWidth: true,
35062	$outerHeight: true,
35063	$outerWidth: true,
35064	$pageXOffset: true,
35065	$pageYOffset: true,
35066	$parent: true,
35067	$scrollLeft: true,
35068	$scrollTop: true,
35069	$scrollX: true,
35070	$scrollY: true,
35071	$self: true,
35072	$webkitIndexedDB: true,
35073	$webkitStorageInfo: true,
35074	$window: true
35075};
35076var hasAutomationEqualityBug = (function () {
35077	/* global window */
35078	if (typeof window === 'undefined') { return false; }
35079	for (var k in window) {
35080		try {
35081			if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
35082				try {
35083					equalsConstructorPrototype(window[k]);
35084				} catch (e) {
35085					return true;
35086				}
35087			}
35088		} catch (e) {
35089			return true;
35090		}
35091	}
35092	return false;
35093}());
35094var equalsConstructorPrototypeIfNotBuggy = function (o) {
35095	/* global window */
35096	if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
35097		return equalsConstructorPrototype(o);
35098	}
35099	try {
35100		return equalsConstructorPrototype(o);
35101	} catch (e) {
35102		return false;
35103	}
35104};
35105
35106var keysShim = function keys(object) {
35107	var isObject = object !== null && typeof object === 'object';
35108	var isFunction = toStr.call(object) === '[object Function]';
35109	var isArguments = isArgs(object);
35110	var isString = isObject && toStr.call(object) === '[object String]';
35111	var theKeys = [];
35112
35113	if (!isObject && !isFunction && !isArguments) {
35114		throw new TypeError('Object.keys called on a non-object');
35115	}
35116
35117	var skipProto = hasProtoEnumBug && isFunction;
35118	if (isString && object.length > 0 && !has.call(object, 0)) {
35119		for (var i = 0; i < object.length; ++i) {
35120			theKeys.push(String(i));
35121		}
35122	}
35123
35124	if (isArguments && object.length > 0) {
35125		for (var j = 0; j < object.length; ++j) {
35126			theKeys.push(String(j));
35127		}
35128	} else {
35129		for (var name in object) {
35130			if (!(skipProto && name === 'prototype') && has.call(object, name)) {
35131				theKeys.push(String(name));
35132			}
35133		}
35134	}
35135
35136	if (hasDontEnumBug) {
35137		var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
35138
35139		for (var k = 0; k < dontEnums.length; ++k) {
35140			if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
35141				theKeys.push(dontEnums[k]);
35142			}
35143		}
35144	}
35145	return theKeys;
35146};
35147
35148keysShim.shim = function shimObjectKeys() {
35149	if (Object.keys) {
35150		var keysWorksWithArguments = (function () {
35151			// Safari 5.0 bug
35152			return (Object.keys(arguments) || '').length === 2;
35153		}(1, 2));
35154		if (!keysWorksWithArguments) {
35155			var originalKeys = Object.keys;
35156			Object.keys = function keys(object) { // eslint-disable-line func-name-matching
35157				if (isArgs(object)) {
35158					return originalKeys(slice.call(object));
35159				} else {
35160					return originalKeys(object);
35161				}
35162			};
35163		}
35164	} else {
35165		Object.keys = keysShim;
35166	}
35167	return Object.keys || keysShim;
35168};
35169
35170module.exports = keysShim;
35171
35172
35173/***/ }),
35174/* 540 */
35175/***/ (function(module, exports, __webpack_require__) {
35176
35177"use strict";
35178
35179
35180var toStr = Object.prototype.toString;
35181
35182module.exports = function isArguments(value) {
35183	var str = toStr.call(value);
35184	var isArgs = str === '[object Arguments]';
35185	if (!isArgs) {
35186		isArgs = str !== '[object Array]' &&
35187			value !== null &&
35188			typeof value === 'object' &&
35189			typeof value.length === 'number' &&
35190			value.length >= 0 &&
35191			toStr.call(value.callee) === '[object Function]';
35192	}
35193	return isArgs;
35194};
35195
35196
35197/***/ }),
35198/* 541 */
35199/***/ (function(module, exports, __webpack_require__) {
35200
35201"use strict";
35202
35203
35204// This is the object returned by the `index.browseAll()` method
35205
35206module.exports = IndexBrowser;
35207
35208var inherits = __webpack_require__(80);
35209var EventEmitter = __webpack_require__(542).EventEmitter;
35210
35211function IndexBrowser() {
35212}
35213
35214inherits(IndexBrowser, EventEmitter);
35215
35216IndexBrowser.prototype.stop = function() {
35217  this._stopped = true;
35218  this._clean();
35219};
35220
35221IndexBrowser.prototype._end = function() {
vendor: 4,201 bytes, lines 35222-35359
35222  this.emit('end');
35223  this._clean();
35224};
35225
35226IndexBrowser.prototype._error = function(err) {
35227  this.emit('error', err);
35228  this._clean();
35229};
35230
35231IndexBrowser.prototype._result = function(content) {
35232  this.emit('result', content);
35233};
35234
35235IndexBrowser.prototype._clean = function() {
35236  this.removeAllListeners('stop');
35237  this.removeAllListeners('end');
35238  this.removeAllListeners('error');
35239  this.removeAllListeners('result');
35240};
35241
35242
35243/***/ }),
35244/* 542 */
35245/***/ (function(module, exports) {
35246
35247// Copyright Joyent, Inc. and other Node contributors.
35248//
35249// Permission is hereby granted, free of charge, to any person obtaining a
35250// copy of this software and associated documentation files (the
35251// "Software"), to deal in the Software without restriction, including
35252// without limitation the rights to use, copy, modify, merge, publish,
35253// distribute, sublicense, and/or sell copies of the Software, and to permit
35254// persons to whom the Software is furnished to do so, subject to the
35255// following conditions:
35256//
35257// The above copyright notice and this permission notice shall be included
35258// in all copies or substantial portions of the Software.
35259//
35260// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
35261// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
35262// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
35263// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
35264// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
35265// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
35266// USE OR OTHER DEALINGS IN THE SOFTWARE.
35267
35268function EventEmitter() {
35269  this._events = this._events || {};
35270  this._maxListeners = this._maxListeners || undefined;
35271}
35272module.exports = EventEmitter;
35273
35274// Backwards-compat with node 0.10.x
35275EventEmitter.EventEmitter = EventEmitter;
35276
35277EventEmitter.prototype._events = undefined;
35278EventEmitter.prototype._maxListeners = undefined;
35279
35280// By default EventEmitters will print a warning if more than 10 listeners are
35281// added to it. This is a useful default which helps finding memory leaks.
35282EventEmitter.defaultMaxListeners = 10;
35283
35284// Obviously not all Emitters should be limited to 10. This function allows
35285// that to be increased. Set to zero for unlimited.
35286EventEmitter.prototype.setMaxListeners = function(n) {
35287  if (!isNumber(n) || n < 0 || isNaN(n))
35288    throw TypeError('n must be a positive number');
35289  this._maxListeners = n;
35290  return this;
35291};
35292
35293EventEmitter.prototype.emit = function(type) {
35294  var er, handler, len, args, i, listeners;
35295
35296  if (!this._events)
35297    this._events = {};
35298
35299  // If there is no 'error' event listener then throw.
35300  if (type === 'error') {
35301    if (!this._events.error ||
35302        (isObject(this._events.error) && !this._events.error.length)) {
35303      er = arguments[1];
35304      if (er instanceof Error) {
35305        throw er; // Unhandled 'error' event
35306      } else {
35307        // At least give some kind of context to the user
35308        var err = new Error('Uncaught, unspecified "error" event. (' + er + ')');
35309        err.context = er;
35310        throw err;
35311      }
35312    }
35313  }
35314
35315  handler = this._events[type];
35316
35317  if (isUndefined(handler))
35318    return false;
35319
35320  if (isFunction(handler)) {
35321    switch (arguments.length) {
35322      // fast cases
35323      case 1:
35324        handler.call(this);
35325        break;
35326      case 2:
35327        handler.call(this, arguments[1]);
35328        break;
35329      case 3:
35330        handler.call(this, arguments[1], arguments[2]);
35331        break;
35332      // slower
35333      default:
35334        args = Array.prototype.slice.call(arguments, 1);
35335        handler.apply(this, args);
35336    }
35337  } else if (isObject(handler)) {
35338    args = Array.prototype.slice.call(arguments, 1);
35339    listeners = handler.slice();
35340    len = listeners.length;
35341    for (i = 0; i < len; i++)
35342      listeners[i].apply(this, args);
35343  }
35344
35345  return true;
35346};
35347
35348EventEmitter.prototype.addListener = function(type, listener) {
35349  var m;
35350
35351  if (!isFunction(listener))
35352    throw TypeError('listener must be a function');
35353
35354  if (!this._events)
35355    this._events = {};
35356
35357  // To avoid recursion in the case that type === "newListener"! Before
35358  // adding it to the listeners, first emit "newListener".
35359  if (this._events.newListener)
vendor: 8,040 bytes, lines 35360-35640
35360    this.emit('newListener', type,
35361              isFunction(listener.listener) ?
35362              listener.listener : listener);
35363
35364  if (!this._events[type])
35365    // Optimize the case of one listener. Don't need the extra array object.
35366    this._events[type] = listener;
35367  else if (isObject(this._events[type]))
35368    // If we've already got an array, just append.
35369    this._events[type].push(listener);
35370  else
35371    // Adding the second element, need to change to array.
35372    this._events[type] = [this._events[type], listener];
35373
35374  // Check for listener leak
35375  if (isObject(this._events[type]) && !this._events[type].warned) {
35376    if (!isUndefined(this._maxListeners)) {
35377      m = this._maxListeners;
35378    } else {
35379      m = EventEmitter.defaultMaxListeners;
35380    }
35381
35382    if (m && m > 0 && this._events[type].length > m) {
35383      this._events[type].warned = true;
35384      console.error('(node) warning: possible EventEmitter memory ' +
35385                    'leak detected. %d listeners added. ' +
35386                    'Use emitter.setMaxListeners() to increase limit.',
35387                    this._events[type].length);
35388      if (typeof console.trace === 'function') {
35389        // not supported in IE 10
35390        console.trace();
35391      }
35392    }
35393  }
35394
35395  return this;
35396};
35397
35398EventEmitter.prototype.on = EventEmitter.prototype.addListener;
35399
35400EventEmitter.prototype.once = function(type, listener) {
35401  if (!isFunction(listener))
35402    throw TypeError('listener must be a function');
35403
35404  var fired = false;
35405
35406  function g() {
35407    this.removeListener(type, g);
35408
35409    if (!fired) {
35410      fired = true;
35411      listener.apply(this, arguments);
35412    }
35413  }
35414
35415  g.listener = listener;
35416  this.on(type, g);
35417
35418  return this;
35419};
35420
35421// emits a 'removeListener' event iff the listener was removed
35422EventEmitter.prototype.removeListener = function(type, listener) {
35423  var list, position, length, i;
35424
35425  if (!isFunction(listener))
35426    throw TypeError('listener must be a function');
35427
35428  if (!this._events || !this._events[type])
35429    return this;
35430
35431  list = this._events[type];
35432  length = list.length;
35433  position = -1;
35434
35435  if (list === listener ||
35436      (isFunction(list.listener) && list.listener === listener)) {
35437    delete this._events[type];
35438    if (this._events.removeListener)
35439      this.emit('removeListener', type, listener);
35440
35441  } else if (isObject(list)) {
35442    for (i = length; i-- > 0;) {
35443      if (list[i] === listener ||
35444          (list[i].listener && list[i].listener === listener)) {
35445        position = i;
35446        break;
35447      }
35448    }
35449
35450    if (position < 0)
35451      return this;
35452
35453    if (list.length === 1) {
35454      list.length = 0;
35455      delete this._events[type];
35456    } else {
35457      list.splice(position, 1);
35458    }
35459
35460    if (this._events.removeListener)
35461      this.emit('removeListener', type, listener);
35462  }
35463
35464  return this;
35465};
35466
35467EventEmitter.prototype.removeAllListeners = function(type) {
35468  var key, listeners;
35469
35470  if (!this._events)
35471    return this;
35472
35473  // not listening for removeListener, no need to emit
35474  if (!this._events.removeListener) {
35475    if (arguments.length === 0)
35476      this._events = {};
35477    else if (this._events[type])
35478      delete this._events[type];
35479    return this;
35480  }
35481
35482  // emit removeListener for all listeners on all events
35483  if (arguments.length === 0) {
35484    for (key in this._events) {
35485      if (key === 'removeListener') continue;
35486      this.removeAllListeners(key);
35487    }
35488    this.removeAllListeners('removeListener');
35489    this._events = {};
35490    return this;
35491  }
35492
35493  listeners = this._events[type];
35494
35495  if (isFunction(listeners)) {
35496    this.removeListener(type, listeners);
35497  } else if (listeners) {
35498    // LIFO order
35499    while (listeners.length)
35500      this.removeListener(type, listeners[listeners.length - 1]);
35501  }
35502  delete this._events[type];
35503
35504  return this;
35505};
35506
35507EventEmitter.prototype.listeners = function(type) {
35508  var ret;
35509  if (!this._events || !this._events[type])
35510    ret = [];
35511  else if (isFunction(this._events[type]))
35512    ret = [this._events[type]];
35513  else
35514    ret = this._events[type].slice();
35515  return ret;
35516};
35517
35518EventEmitter.prototype.listenerCount = function(type) {
35519  if (this._events) {
35520    var evlistener = this._events[type];
35521
35522    if (isFunction(evlistener))
35523      return 1;
35524    else if (evlistener)
35525      return evlistener.length;
35526  }
35527  return 0;
35528};
35529
35530EventEmitter.listenerCount = function(emitter, type) {
35531  return emitter.listenerCount(type);
35532};
35533
35534function isFunction(arg) {
35535  return typeof arg === 'function';
35536}
35537
35538function isNumber(arg) {
35539  return typeof arg === 'number';
35540}
35541
35542function isObject(arg) {
35543  return typeof arg === 'object' && arg !== null;
35544}
35545
35546function isUndefined(arg) {
35547  return arg === void 0;
35548}
35549
35550
35551/***/ }),
35552/* 543 */
35553/***/ (function(module, exports, __webpack_require__) {
35554
35555/* WEBPACK VAR INJECTION */(function(process) {module.exports = AlgoliaSearchCore;
35556
35557var errors = __webpack_require__(70);
35558var exitPromise = __webpack_require__(224);
35559var IndexCore = __webpack_require__(220);
35560var store = __webpack_require__(544);
35561
35562// We will always put the API KEY in the JSON body in case of too long API KEY,
35563// to avoid query string being too long and failing in various conditions (our server limit, browser limit,
35564// proxies limit)
35565var MAX_API_KEY_LENGTH = 500;
35566var RESET_APP_DATA_TIMER =
35567  process.env.RESET_APP_DATA_TIMER && parseInt(process.env.RESET_APP_DATA_TIMER, 10) ||
35568  60 * 2 * 1000; // after 2 minutes reset to first host
35569
35570/*
35571 * Algolia Search library initialization
35572 * https://www.algolia.com/
35573 *
35574 * @param {string} applicationID - Your applicationID, found in your dashboard
35575 * @param {string} apiKey - Your API key, found in your dashboard
35576 * @param {Object} [opts]
35577 * @param {number} [opts.timeout=2000] - The request timeout set in milliseconds,
35578 * another request will be issued after this timeout
35579 * @param {string} [opts.protocol='https:'] - The protocol used to query Algolia Search API.
35580 *                                        Set to 'http:' to force using http.
35581 * @param {Object|Array} [opts.hosts={
35582 *           read: [this.applicationID + '-dsn.algolia.net'].concat([
35583 *             this.applicationID + '-1.algolianet.com',
35584 *             this.applicationID + '-2.algolianet.com',
35585 *             this.applicationID + '-3.algolianet.com']
35586 *           ]),
35587 *           write: [this.applicationID + '.algolia.net'].concat([
35588 *             this.applicationID + '-1.algolianet.com',
35589 *             this.applicationID + '-2.algolianet.com',
35590 *             this.applicationID + '-3.algolianet.com']
35591 *           ]) - The hosts to use for Algolia Search API.
35592 *           If you provide them, you will less benefit from our HA implementation
35593 */
35594function AlgoliaSearchCore(applicationID, apiKey, opts) {
35595  var debug = __webpack_require__(81)('algoliasearch');
35596
35597  var clone = __webpack_require__(48);
35598  var isArray = __webpack_require__(23);
35599  var map = __webpack_require__(72);
35600
35601  var usage = 'Usage: algoliasearch(applicationID, apiKey, opts)';
35602
35603  if (opts._allowEmptyCredentials !== true && !applicationID) {
35604    throw new errors.AlgoliaSearchError('Please provide an application ID. ' + usage);
35605  }
35606
35607  if (opts._allowEmptyCredentials !== true && !apiKey) {
35608    throw new errors.AlgoliaSearchError('Please provide an API key. ' + usage);
35609  }
35610
35611  this.applicationID = applicationID;
35612  this.apiKey = apiKey;
35613
35614  this.hosts = {
35615    read: [],
35616    write: []
35617  };
35618
35619  opts = opts || {};
35620
35621  this._timeouts = opts.timeouts || {
35622    connect: 1 * 1000, // 500ms connect is GPRS latency
35623    read: 2 * 1000,
35624    write: 30 * 1000
35625  };
35626
35627  // backward compat, if opts.timeout is passed, we use it to configure all timeouts like before
35628  if (opts.timeout) {
35629    this._timeouts.connect = this._timeouts.read = this._timeouts.write = opts.timeout;
35630  }
35631
35632  var protocol = opts.protocol || 'https:';
35633  // while we advocate for colon-at-the-end values: 'http:' for `opts.protocol`
35634  // we also accept `http` and `https`. It's a common error.
35635  if (!/:$/.test(protocol)) {
35636    protocol = protocol + ':';
35637  }
35638
35639  if (protocol !== 'http:' && protocol !== 'https:') {
35640    throw new errors.AlgoliaSearchError('protocol must be `http:` or `https:` 
vendor: 37,629 bytes, lines 35640-37002
35640(was `' + opts.protocol + '`)');
35641  }
35642
35643  this._checkAppIdData();
35644
35645  if (!opts.hosts) {
35646    var defaultHosts = map(this._shuffleResult, function(hostNumber) {
35647      return applicationID + '-' + hostNumber + '.algolianet.com';
35648    });
35649
35650    // no hosts given, compute defaults
35651    var mainSuffix = (opts.dsn === false ? '' : '-dsn') + '.algolia.net';
35652    this.hosts.read = [this.applicationID + mainSuffix].concat(defaultHosts);
35653    this.hosts.write = [this.applicationID + '.algolia.net'].concat(defaultHosts);
35654  } else if (isArray(opts.hosts)) {
35655    // when passing custom hosts, we need to have a different host index if the number
35656    // of write/read hosts are different.
35657    this.hosts.read = clone(opts.hosts);
35658    this.hosts.write = clone(opts.hosts);
35659  } else {
35660    this.hosts.read = clone(opts.hosts.read);
35661    this.hosts.write = clone(opts.hosts.write);
35662  }
35663
35664  // add protocol and lowercase hosts
35665  this.hosts.read = map(this.hosts.read, prepareHost(protocol));
35666  this.hosts.write = map(this.hosts.write, prepareHost(protocol));
35667
35668  this.extraHeaders = {};
35669
35670  // In some situations you might want to warm the cache
35671  this.cache = opts._cache || {};
35672
35673  this._ua = opts._ua;
35674  this._useCache = opts._useCache === undefined || opts._cache ? true : opts._useCache;
35675  this._useRequestCache = this._useCache && opts._useRequestCache;
35676  this._useFallback = opts.useFallback === undefined ? true : opts.useFallback;
35677
35678  this._setTimeout = opts._setTimeout;
35679
35680  debug('init done, %j', this);
35681}
35682
35683/*
35684 * Get the index object initialized
35685 *
35686 * @param indexName the name of index
35687 * @param callback the result callback with one argument (the Index instance)
35688 */
35689AlgoliaSearchCore.prototype.initIndex = function(indexName) {
35690  return new IndexCore(this, indexName);
35691};
35692
35693/**
35694* Add an extra field to the HTTP request
35695*
35696* @param name the header field name
35697* @param value the header field value
35698*/
35699AlgoliaSearchCore.prototype.setExtraHeader = function(name, value) {
35700  this.extraHeaders[name.toLowerCase()] = value;
35701};
35702
35703/**
35704* Get the value of an extra HTTP header
35705*
35706* @param name the header field name
35707*/
35708AlgoliaSearchCore.prototype.getExtraHeader = function(name) {
35709  return this.extraHeaders[name.toLowerCase()];
35710};
35711
35712/**
35713* Remove an extra field from the HTTP request
35714*
35715* @param name the header field name
35716*/
35717AlgoliaSearchCore.prototype.unsetExtraHeader = function(name) {
35718  delete this.extraHeaders[name.toLowerCase()];
35719};
35720
35721/**
35722* Augment sent x-algolia-agent with more data, each agent part
35723* is automatically separated from the others by a semicolon;
35724*
35725* @param algoliaAgent the agent to add
35726*/
35727AlgoliaSearchCore.prototype.addAlgoliaAgent = function(algoliaAgent) {
35728  if (this._ua.indexOf(';' + algoliaAgent) === -1) {
35729    this._ua += ';' + algoliaAgent;
35730  }
35731};
35732
35733/*
35734 * Wrapper that try all hosts to maximize the quality of service
35735 */
35736AlgoliaSearchCore.prototype._jsonRequest = function(initialOpts) {
35737  this._checkAppIdData();
35738
35739  var requestDebug = __webpack_require__(81)('algoliasearch:' + initialOpts.url);
35740
35741
35742  var body;
35743  var cacheID;
35744  var additionalUA = initialOpts.additionalUA || '';
35745  var cache = initialOpts.cache;
35746  var client = this;
35747  var tries = 0;
35748  var usingFallback = false;
35749  var hasFallback = client._useFallback && client._request.fallback && initialOpts.fallback;
35750  var headers;
35751
35752  if (
35753    this.apiKey.length > MAX_API_KEY_LENGTH &&
35754    initialOpts.body !== undefined &&
35755    (initialOpts.body.params !== undefined || // index.search()
35756    initialOpts.body.requests !== undefined) // client.search()
35757  ) {
35758    initialOpts.body.apiKey = this.apiKey;
35759    headers = this._computeRequestHeaders({
35760      additionalUA: additionalUA,
35761      withApiKey: false,
35762      headers: initialOpts.headers
35763    });
35764  } else {
35765    headers = this._computeRequestHeaders({
35766      additionalUA: additionalUA,
35767      headers: initialOpts.headers
35768    });
35769  }
35770
35771  if (initialOpts.body !== undefined) {
35772    body = safeJSONStringify(initialOpts.body);
35773  }
35774
35775  requestDebug('request start');
35776  var debugData = [];
35777
35778
35779  function doRequest(requester, reqOpts) {
35780    client._checkAppIdData();
35781
35782    var startTime = new Date();
35783
35784    if (client._useCache && !client._useRequestCache) {
35785      cacheID = initialOpts.url;
35786    }
35787
35788    // as we sometime use POST requests to pass parameters (like query='aa'),
35789    // the cacheID must also include the body to be different between calls
35790    if (client._useCache && !client._useRequestCache && body) {
35791      cacheID += '_body_' + reqOpts.body;
35792    }
35793
35794    // handle cache existence
35795    if (isCacheValidWithCurrentID(!client._useRequestCache, cache, cacheID)) {
35796      requestDebug('serving response from cache');
35797
35798      var responseText = cache[cacheID];
35799
35800      // Cache response must match the type of the original one
35801      return client._promise.resolve({
35802        body: JSON.parse(responseText),
35803        responseText: responseText
35804      });
35805    }
35806
35807    // if we reached max tries
35808    if (tries >= client.hosts[initialOpts.hostType].length) {
35809      if (!hasFallback || usingFallback) {
35810        requestDebug('could not get any response');
35811        // then stop
35812        return client._promise.reject(new errors.AlgoliaSearchError(
35813          'Cannot connect to the AlgoliaSearch API.' +
35814          ' Send an email to [email protected] to report and resolve the issue.' +
35815          ' Application id was: ' + client.applicationID, {debugData: debugData}
35816        ));
35817      }
35818
35819      requestDebug('switching to fallback');
35820
35821      // let's try the fallback starting from here
35822      tries = 0;
35823
35824      // method, url and body are fallback dependent
35825      reqOpts.method = initialOpts.fallback.method;
35826      reqOpts.url = initialOpts.fallback.url;
35827      reqOpts.jsonBody = initialOpts.fallback.body;
35828      if (reqOpts.jsonBody) {
35829        reqOpts.body = safeJSONStringify(reqOpts.jsonBody);
35830      }
35831      // re-compute headers, they could be omitting the API KEY
35832      headers = client._computeRequestHeaders({
35833        additionalUA: additionalUA,
35834        headers: initialOpts.headers
35835      });
35836
35837      reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType);
35838      client._setHostIndexByType(0, initialOpts.hostType);
35839      usingFallback = true; // the current request is now using fallback
35840      return doRequest(client._request.fallback, reqOpts);
35841    }
35842
35843    var currentHost = client._getHostByType(initialOpts.hostType);
35844
35845    var url = currentHost + reqOpts.url;
35846    var options = {
35847      body: reqOpts.body,
35848      jsonBody: reqOpts.jsonBody,
35849      method: reqOpts.method,
35850      headers: headers,
35851      timeouts: reqOpts.timeouts,
35852      debug: requestDebug,
35853      forceAuthHeaders: reqOpts.forceAuthHeaders
35854    };
35855
35856    requestDebug('method: %s, url: %s, headers: %j, timeouts: %d',
35857      options.method, url, options.headers, options.timeouts);
35858
35859    if (requester === client._request.fallback) {
35860      requestDebug('using fallback');
35861    }
35862
35863    // `requester` is any of this._request or this._request.fallback
35864    // thus it needs to be called using the client as context
35865    return requester.call(client, url, options).then(success, tryFallback);
35866
35867    function success(httpResponse) {
35868      // compute the status of the response,
35869      //
35870      // When in browser mode, using XDR or JSONP, we have no statusCode available
35871      // So we rely on our API response `status` property.
35872      // But `waitTask` can set a `status` property which is not the statusCode (it's the task status)
35873      // So we check if there's a `message` along `status` and it means it's an error
35874      //
35875      // That's the only case where we have a response.status that's not the http statusCode
35876      var status = httpResponse && httpResponse.body && httpResponse.body.message && httpResponse.body.status ||
35877
35878        // this is important to check the request statusCode AFTER the body eventual
35879        // statusCode because some implementations (jQuery XDomainRequest transport) may
35880        // send statusCode 200 while we had an error
35881        httpResponse.statusCode ||
35882
35883        // When in browser mode, using XDR or JSONP
35884        // we default to success when no error (no response.status && response.message)
35885        // If there was a JSON.parse() error then body is null and it fails
35886        httpResponse && httpResponse.body && 200;
35887
35888      requestDebug('received response: statusCode: %s, computed statusCode: %d, headers: %j',
35889        httpResponse.statusCode, status, httpResponse.headers);
35890
35891      var httpResponseOk = Math.floor(status / 100) === 2;
35892
35893      var endTime = new Date();
35894      debugData.push({
35895        currentHost: currentHost,
35896        headers: removeCredentials(headers),
35897        content: body || null,
35898        contentLength: body !== undefined ? body.length : null,
35899        method: reqOpts.method,
35900        timeouts: reqOpts.timeouts,
35901        url: reqOpts.url,
35902        startTime: startTime,
35903        endTime: endTime,
35904        duration: endTime - startTime,
35905        statusCode: status
35906      });
35907
35908      if (httpResponseOk) {
35909        if (client._useCache && !client._useRequestCache && cache) {
35910          cache[cacheID] = httpResponse.responseText;
35911        }
35912
35913        return {
35914          responseText: httpResponse.responseText,
35915          body: httpResponse.body
35916        };
35917      }
35918
35919      var shouldRetry = Math.floor(status / 100) !== 4;
35920
35921      if (shouldRetry) {
35922        tries += 1;
35923        return retryRequest();
35924      }
35925
35926      requestDebug('unrecoverable error');
35927
35928      // no success and no retry => fail
35929      var unrecoverableError = new errors.AlgoliaSearchError(
35930        httpResponse.body && httpResponse.body.message, {debugData: debugData, statusCode: status}
35931      );
35932
35933      return client._promise.reject(unrecoverableError);
35934    }
35935
35936    function tryFallback(err) {
35937      // error cases:
35938      //  While not in fallback mode:
35939      //    - CORS not supported
35940      //    - network error
35941      //  While in fallback mode:
35942      //    - timeout
35943      //    - network error
35944      //    - badly formatted JSONP (script loaded, did not call our callback)
35945      //  In both cases:
35946      //    - uncaught exception occurs (TypeError)
35947      requestDebug('error: %s, stack: %s', err.message, err.stack);
35948
35949      var endTime = new Date();
35950      debugData.push({
35951        currentHost: currentHost,
35952        headers: removeCredentials(headers),
35953        content: body || null,
35954        contentLength: body !== undefined ? body.length : null,
35955        method: reqOpts.method,
35956        timeouts: reqOpts.timeouts,
35957        url: reqOpts.url,
35958        startTime: startTime,
35959        endTime: endTime,
35960        duration: endTime - startTime
35961      });
35962
35963      if (!(err instanceof errors.AlgoliaSearchError)) {
35964        err = new errors.Unknown(err && err.message, err);
35965      }
35966
35967      tries += 1;
35968
35969      // stop the request implementation when:
35970      if (
35971        // we did not generate this error,
35972        // it comes from a throw in some other piece of code
35973        err instanceof errors.Unknown ||
35974
35975        // server sent unparsable JSON
35976        err instanceof errors.UnparsableJSON ||
35977
35978        // max tries and already using fallback or no fallback
35979        tries >= client.hosts[initialOpts.hostType].length &&
35980        (usingFallback || !hasFallback)) {
35981        // stop request implementation for this command
35982        err.debugData = debugData;
35983        return client._promise.reject(err);
35984      }
35985
35986      // When a timeout occured, retry by raising timeout
35987      if (err instanceof errors.RequestTimeout) {
35988        return retryRequestWithHigherTimeout();
35989      }
35990
35991      return retryRequest();
35992    }
35993
35994    function retryRequest() {
35995      requestDebug('retrying request');
35996      client._incrementHostIndex(initialOpts.hostType);
35997      return doRequest(requester, reqOpts);
35998    }
35999
36000    function retryRequestWithHigherTimeout() {
36001      requestDebug('retrying request with higher timeout');
36002      client._incrementHostIndex(initialOpts.hostType);
36003      client._incrementTimeoutMultipler();
36004      reqOpts.timeouts = client._getTimeoutsForRequest(initialOpts.hostType);
36005      return doRequest(requester, reqOpts);
36006    }
36007  }
36008
36009  function isCacheValidWithCurrentID(
36010    useRequestCache,
36011    currentCache,
36012    currentCacheID
36013  ) {
36014    return (
36015      client._useCache &&
36016      useRequestCache &&
36017      currentCache &&
36018      currentCache[currentCacheID] !== undefined
36019    );
36020  }
36021
36022
36023  function interopCallbackReturn(request, callback) {
36024    if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) {
36025      request.catch(function() {
36026        // Release the cache on error
36027        delete cache[cacheID];
36028      });
36029    }
36030
36031    if (typeof initialOpts.callback === 'function') {
36032      // either we have a callback
36033      request.then(function okCb(content) {
36034        exitPromise(function() {
36035          initialOpts.callback(null, callback(content));
36036        }, client._setTimeout || setTimeout);
36037      }, function nookCb(err) {
36038        exitPromise(function() {
36039          initialOpts.callback(err);
36040        }, client._setTimeout || setTimeout);
36041      });
36042    } else {
36043      // either we are using promises
36044      return request.then(callback);
36045    }
36046  }
36047
36048  if (client._useCache && client._useRequestCache) {
36049    cacheID = initialOpts.url;
36050  }
36051
36052  // as we sometime use POST requests to pass parameters (like query='aa'),
36053  // the cacheID must also include the body to be different between calls
36054  if (client._useCache && client._useRequestCache && body) {
36055    cacheID += '_body_' + body;
36056  }
36057
36058  if (isCacheValidWithCurrentID(client._useRequestCache, cache, cacheID)) {
36059    requestDebug('serving request from cache');
36060
36061    var maybePromiseForCache = cache[cacheID];
36062
36063    // In case the cache is warmup with value that is not a promise
36064    var promiseForCache = typeof maybePromiseForCache.then !== 'function'
36065      ? client._promise.resolve({responseText: maybePromiseForCache})
36066      : maybePromiseForCache;
36067
36068    return interopCallbackReturn(promiseForCache, function(content) {
36069      // In case of the cache request, return the original value
36070      return JSON.parse(content.responseText);
36071    });
36072  }
36073
36074  var request = doRequest(
36075    client._request, {
36076      url: initialOpts.url,
36077      method: initialOpts.method,
36078      body: body,
36079      jsonBody: initialOpts.body,
36080      timeouts: client._getTimeoutsForRequest(initialOpts.hostType),
36081      forceAuthHeaders: initialOpts.forceAuthHeaders
36082    }
36083  );
36084
36085  if (client._useCache && client._useRequestCache && cache) {
36086    cache[cacheID] = request;
36087  }
36088
36089  return interopCallbackReturn(request, function(content) {
36090    // In case of the first request, return the JSON value
36091    return content.body;
36092  });
36093};
36094
36095/*
36096* Transform search param object in query string
36097* @param {object} args arguments to add to the current query string
36098* @param {string} params current query string
36099* @return {string} the final query string
36100*/
36101AlgoliaSearchCore.prototype._getSearchParams = function(args, params) {
36102  if (args === undefined || args === null) {
36103    return params;
36104  }
36105  for (var key in args) {
36106    if (key !== null && args[key] !== undefined && args.hasOwnProperty(key)) {
36107      params += params === '' ? '' : '&';
36108      params += key + '=' + encodeURIComponent(Object.prototype.toString.call(args[key]) === '[object Array]' ? safeJSONStringify(args[key]) : args[key]);
36109    }
36110  }
36111  return params;
36112};
36113
36114/**
36115 * Compute the headers for a request
36116 *
36117 * @param [string] options.additionalUA semi-colon separated string with other user agents to add
36118 * @param [boolean=true] options.withApiKey Send the api key as a header
36119 * @param [Object] options.headers Extra headers to send
36120 */
36121AlgoliaSearchCore.prototype._computeRequestHeaders = function(options) {
36122  var forEach = __webpack_require__(71);
36123
36124  var ua = options.additionalUA ?
36125    this._ua + ';' + options.additionalUA :
36126    this._ua;
36127
36128  var requestHeaders = {
36129    'x-algolia-agent': ua,
36130    'x-algolia-application-id': this.applicationID
36131  };
36132
36133  // browser will inline headers in the url, node.js will use http headers
36134  // but in some situations, the API KEY will be too long (big secured API keys)
36135  // so if the request is a POST and the KEY is very long, we will be asked to not put
36136  // it into headers but in the JSON body
36137  if (options.withApiKey !== false) {
36138    requestHeaders['x-algolia-api-key'] = this.apiKey;
36139  }
36140
36141  if (this.userToken) {
36142    requestHeaders['x-algolia-usertoken'] = this.userToken;
36143  }
36144
36145  if (this.securityTags) {
36146    requestHeaders['x-algolia-tagfilters'] = this.securityTags;
36147  }
36148
36149  forEach(this.extraHeaders, function addToRequestHeaders(value, key) {
36150    requestHeaders[key] = value;
36151  });
36152
36153  if (options.headers) {
36154    forEach(options.headers, function addToRequestHeaders(value, key) {
36155      requestHeaders[key] = value;
36156    });
36157  }
36158
36159  return requestHeaders;
36160};
36161
36162/**
36163 * Search through multiple indices at the same time
36164 * @param  {Object[]}   queries  An array of queries you want to run.
36165 * @param {string} queries[].indexName The index name you want to target
36166 * @param {string} [queries[].query] The query to issue on this index. Can also be passed into `params`
36167 * @param {Object} queries[].params Any search param like hitsPerPage, ..
36168 * @param  {Function} callback Callback to be called
36169 * @return {Promise|undefined} Returns a promise if no callback given
36170 */
36171AlgoliaSearchCore.prototype.search = function(queries, opts, callback) {
36172  var isArray = __webpack_require__(23);
36173  var map = __webpack_require__(72);
36174
36175  var usage = 'Usage: client.search(arrayOfQueries[, callback])';
36176
36177  if (!isArray(queries)) {
36178    throw new Error(usage);
36179  }
36180
36181  if (typeof opts === 'function') {
36182    callback = opts;
36183    opts = {};
36184  } else if (opts === undefined) {
36185    opts = {};
36186  }
36187
36188  var client = this;
36189
36190  var postObj = {
36191    requests: map(queries, function prepareRequest(query) {
36192      var params = '';
36193
36194      // allow query.query
36195      // so we are mimicing the index.search(query, params) method
36196      // {indexName:, query:, params:}
36197      if (query.query !== undefined) {
36198        params += 'query=' + encodeURIComponent(query.query);
36199      }
36200
36201      return {
36202        indexName: query.indexName,
36203        params: client._getSearchParams(query.params, params)
36204      };
36205    })
36206  };
36207
36208  var JSONPParams = map(postObj.requests, function prepareJSONPParams(request, requestId) {
36209    return requestId + '=' +
36210      encodeURIComponent(
36211        '/1/indexes/' + encodeURIComponent(request.indexName) + '?' +
36212        request.params
36213      );
36214  }).join('&');
36215
36216  var url = '/1/indexes/*/queries';
36217
36218  if (opts.strategy !== undefined) {
36219    postObj.strategy = opts.strategy;
36220  }
36221
36222  return this._jsonRequest({
36223    cache: this.cache,
36224    method: 'POST',
36225    url: url,
36226    body: postObj,
36227    hostType: 'read',
36228    fallback: {
36229      method: 'GET',
36230      url: '/1/indexes/*',
36231      body: {
36232        params: JSONPParams
36233      }
36234    },
36235    callback: callback
36236  });
36237};
36238
36239/**
36240* Search for facet values
36241* https://www.algolia.com/doc/rest-api/search#search-for-facet-values
36242* This is the top-level API for SFFV.
36243*
36244* @param {object[]} queries An array of queries to run.
36245* @param {string} queries[].indexName Index name, name of the index to search.
36246* @param {object} queries[].params Query parameters.
36247* @param {string} queries[].params.facetName Facet name, name of the attribute to search for values in.
36248* Must be declared as a facet
36249* @param {string} queries[].params.facetQuery Query for the facet search
36250* @param {string} [queries[].params.*] Any search parameter of Algolia,
36251* see https://www.algolia.com/doc/api-client/javascript/search#search-parameters
36252* Pagination is not supported. The page and hitsPerPage parameters will be ignored.
36253*/
36254AlgoliaSearchCore.prototype.searchForFacetValues = function(queries) {
36255  var isArray = __webpack_require__(23);
36256  var map = __webpack_require__(72);
36257
36258  var usage = 'Usage: client.searchForFacetValues([{indexName, params: {facetName, facetQuery, ...params}}, ...queries])'; // eslint-disable-line max-len
36259
36260  if (!isArray(queries)) {
36261    throw new Error(usage);
36262  }
36263
36264  var client = this;
36265
36266  return client._promise.all(map(queries, function performQuery(query) {
36267    if (
36268      !query ||
36269      query.indexName === undefined ||
36270      query.params.facetName === undefined ||
36271      query.params.facetQuery === undefined
36272    ) {
36273      throw new Error(usage);
36274    }
36275
36276    var clone = __webpack_require__(48);
36277    var omit = __webpack_require__(223);
36278
36279    var indexName = query.indexName;
36280    var params = query.params;
36281
36282    var facetName = params.facetName;
36283    var filteredParams = omit(clone(params), function(keyName) {
36284      return keyName === 'facetName';
36285    });
36286    var searchParameters = client._getSearchParams(filteredParams, '');
36287
36288    return client._jsonRequest({
36289      cache: client.cache,
36290      method: 'POST',
36291      url:
36292        '/1/indexes/' +
36293        encodeURIComponent(indexName) +
36294        '/facets/' +
36295        encodeURIComponent(facetName) +
36296        '/query',
36297      hostType: 'read',
36298      body: {params: searchParameters}
36299    });
36300  }));
36301};
36302
36303/**
36304 * Set the extra security tagFilters header
36305 * @param {string|array} tags The list of tags defining the current security filters
36306 */
36307AlgoliaSearchCore.prototype.setSecurityTags = function(tags) {
36308  if (Object.prototype.toString.call(tags) === '[object Array]') {
36309    var strTags = [];
36310    for (var i = 0; i < tags.length; ++i) {
36311      if (Object.prototype.toString.call(tags[i]) === '[object Array]') {
36312        var oredTags = [];
36313        for (var j = 0; j < tags[i].length; ++j) {
36314          oredTags.push(tags[i][j]);
36315        }
36316        strTags.push('(' + oredTags.join(',') + ')');
36317      } else {
36318        strTags.push(tags[i]);
36319      }
36320    }
36321    tags = strTags.join(',');
36322  }
36323
36324  this.securityTags = tags;
36325};
36326
36327/**
36328 * Set the extra user token header
36329 * @param {string} userToken The token identifying a uniq user (used to apply rate limits)
36330 */
36331AlgoliaSearchCore.prototype.setUserToken = function(userToken) {
36332  this.userToken = userToken;
36333};
36334
36335/**
36336 * Clear all queries in client's cache
36337 * @return undefined
36338 */
36339AlgoliaSearchCore.prototype.clearCache = function() {
36340  this.cache = {};
36341};
36342
36343/**
36344* Set the number of milliseconds a request can take before automatically being terminated.
36345* @deprecated
36346* @param {Number} milliseconds
36347*/
36348AlgoliaSearchCore.prototype.setRequestTimeout = function(milliseconds) {
36349  if (milliseconds) {
36350    this._timeouts.connect = this._timeouts.read = this._timeouts.write = milliseconds;
36351  }
36352};
36353
36354/**
36355* Set the three different (connect, read, write) timeouts to be used when requesting
36356* @param {Object} timeouts
36357*/
36358AlgoliaSearchCore.prototype.setTimeouts = function(timeouts) {
36359  this._timeouts = timeouts;
36360};
36361
36362/**
36363* Get the three different (connect, read, write) timeouts to be used when requesting
36364* @param {Object} timeouts
36365*/
36366AlgoliaSearchCore.prototype.getTimeouts = function() {
36367  return this._timeouts;
36368};
36369
36370AlgoliaSearchCore.prototype._getAppIdData = function() {
36371  var data = store.get(this.applicationID);
36372  if (data !== null) this._cacheAppIdData(data);
36373  return data;
36374};
36375
36376AlgoliaSearchCore.prototype._setAppIdData = function(data) {
36377  data.lastChange = (new Date()).getTime();
36378  this._cacheAppIdData(data);
36379  return store.set(this.applicationID, data);
36380};
36381
36382AlgoliaSearchCore.prototype._checkAppIdData = function() {
36383  var data = this._getAppIdData();
36384  var now = (new Date()).getTime();
36385  if (data === null || now - data.lastChange > RESET_APP_DATA_TIMER) {
36386    return this._resetInitialAppIdData(data);
36387  }
36388
36389  return data;
36390};
36391
36392AlgoliaSearchCore.prototype._resetInitialAppIdData = function(data) {
36393  var newData = data || {};
36394  newData.hostIndexes = {read: 0, write: 0};
36395  newData.timeoutMultiplier = 1;
36396  newData.shuffleResult = newData.shuffleResult || shuffle([1, 2, 3]);
36397  return this._setAppIdData(newData);
36398};
36399
36400AlgoliaSearchCore.prototype._cacheAppIdData = function(data) {
36401  this._hostIndexes = data.hostIndexes;
36402  this._timeoutMultiplier = data.timeoutMultiplier;
36403  this._shuffleResult = data.shuffleResult;
36404};
36405
36406AlgoliaSearchCore.prototype._partialAppIdDataUpdate = function(newData) {
36407  var foreach = __webpack_require__(71);
36408  var currentData = this._getAppIdData();
36409  foreach(newData, function(value, key) {
36410    currentData[key] = value;
36411  });
36412
36413  return this._setAppIdData(currentData);
36414};
36415
36416AlgoliaSearchCore.prototype._getHostByType = function(hostType) {
36417  return this.hosts[hostType][this._getHostIndexByType(hostType)];
36418};
36419
36420AlgoliaSearchCore.prototype._getTimeoutMultiplier = function() {
36421  return this._timeoutMultiplier;
36422};
36423
36424AlgoliaSearchCore.prototype._getHostIndexByType = function(hostType) {
36425  return this._hostIndexes[hostType];
36426};
36427
36428AlgoliaSearchCore.prototype._setHostIndexByType = function(hostIndex, hostType) {
36429  var clone = __webpack_require__(48);
36430  var newHostIndexes = clone(this._hostIndexes);
36431  newHostIndexes[hostType] = hostIndex;
36432  this._partialAppIdDataUpdate({hostIndexes: newHostIndexes});
36433  return hostIndex;
36434};
36435
36436AlgoliaSearchCore.prototype._incrementHostIndex = function(hostType) {
36437  return this._setHostIndexByType(
36438    (this._getHostIndexByType(hostType) + 1) % this.hosts[hostType].length, hostType
36439  );
36440};
36441
36442AlgoliaSearchCore.prototype._incrementTimeoutMultipler = function() {
36443  var timeoutMultiplier = Math.max(this._timeoutMultiplier + 1, 4);
36444  return this._partialAppIdDataUpdate({timeoutMultiplier: timeoutMultiplier});
36445};
36446
36447AlgoliaSearchCore.prototype._getTimeoutsForRequest = function(hostType) {
36448  return {
36449    connect: this._timeouts.connect * this._timeoutMultiplier,
36450    complete: this._timeouts[hostType] * this._timeoutMultiplier
36451  };
36452};
36453
36454function prepareHost(protocol) {
36455  return function prepare(host) {
36456    return protocol + '//' + host.toLowerCase();
36457  };
36458}
36459
36460// Prototype.js < 1.7, a widely used library, defines a weird
36461// Array.prototype.toJSON function that will fail to stringify our content
36462// appropriately
36463// refs:
36464//   - https://groups.google.com/forum/#!topic/prototype-core/E-SAVvV_V9Q
36465//   - https://github.com/sstephenson/prototype/commit/038a2985a70593c1a86c230fadbdfe2e4898a48c
36466//   - http://stackoverflow.com/a/3148441/147079
36467function safeJSONStringify(obj) {
36468  /* eslint no-extend-native:0 */
36469
36470  if (Array.prototype.toJSON === undefined) {
36471    return JSON.stringify(obj);
36472  }
36473
36474  var toJSON = Array.prototype.toJSON;
36475  delete Array.prototype.toJSON;
36476  var out = JSON.stringify(obj);
36477  Array.prototype.toJSON = toJSON;
36478
36479  return out;
36480}
36481
36482function shuffle(array) {
36483  var currentIndex = array.length;
36484  var temporaryValue;
36485  var randomIndex;
36486
36487  // While there remain elements to shuffle...
36488  while (currentIndex !== 0) {
36489    // Pick a remaining element...
36490    randomIndex = Math.floor(Math.random() * currentIndex);
36491    currentIndex -= 1;
36492
36493    // And swap it with the current element.
36494    temporaryValue = array[currentIndex];
36495    array[currentIndex] = array[randomIndex];
36496    array[randomIndex] = temporaryValue;
36497  }
36498
36499  return array;
36500}
36501
36502function removeCredentials(headers) {
36503  var newHeaders = {};
36504
36505  for (var headerName in headers) {
36506    if (Object.prototype.hasOwnProperty.call(headers, headerName)) {
36507      var value;
36508
36509      if (headerName === 'x-algolia-api-key' || headerName === 'x-algolia-application-id') {
36510        value = '**hidden for security purposes**';
36511      } else {
36512        value = headers[headerName];
36513      }
36514
36515      newHeaders[headerName] = value;
36516    }
36517  }
36518
36519  return newHeaders;
36520}
36521
36522/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
36523
36524/***/ }),
36525/* 544 */
36526/***/ (function(module, exports, __webpack_require__) {
36527
36528/* WEBPACK VAR INJECTION */(function(global) {var debug = __webpack_require__(81)('algoliasearch:src/hostIndexState.js');
36529var localStorageNamespace = 'algoliasearch-client-js';
36530
36531var store;
36532var moduleStore = {
36533  state: {},
36534  set: function(key, data) {
36535    this.state[key] = data;
36536    return this.state[key];
36537  },
36538  get: function(key) {
36539    return this.state[key] || null;
36540  }
36541};
36542
36543var localStorageStore = {
36544  set: function(key, data) {
36545    moduleStore.set(key, data); // always replicate localStorageStore to moduleStore in case of failure
36546
36547    try {
36548      var namespace = JSON.parse(global.localStorage[localStorageNamespace]);
36549      namespace[key] = data;
36550      global.localStorage[localStorageNamespace] = JSON.stringify(namespace);
36551      return namespace[key];
36552    } catch (e) {
36553      return localStorageFailure(key, e);
36554    }
36555  },
36556  get: function(key) {
36557    try {
36558      return JSON.parse(global.localStorage[localStorageNamespace])[key] || null;
36559    } catch (e) {
36560      return localStorageFailure(key, e);
36561    }
36562  }
36563};
36564
36565function localStorageFailure(key, e) {
36566  debug('localStorage failed with', e);
36567  cleanup();
36568  store = moduleStore;
36569  return store.get(key);
36570}
36571
36572store = supportsLocalStorage() ? localStorageStore : moduleStore;
36573
36574module.exports = {
36575  get: getOrSet,
36576  set: getOrSet,
36577  supportsLocalStorage: supportsLocalStorage
36578};
36579
36580function getOrSet(key, data) {
36581  if (arguments.length === 1) {
36582    return store.get(key);
36583  }
36584
36585  return store.set(key, data);
36586}
36587
36588function supportsLocalStorage() {
36589  try {
36590    if ('localStorage' in global &&
36591      global.localStorage !== null) {
36592      if (!global.localStorage[localStorageNamespace]) {
36593        // actual creation of the namespace
36594        global.localStorage.setItem(localStorageNamespace, JSON.stringify({}));
36595      }
36596      return true;
36597    }
36598
36599    return false;
36600  } catch (_) {
36601    return false;
36602  }
36603}
36604
36605// In case of any error on localStorage, we clean our own namespace, this should handle
36606// quota errors when a lot of keys + data are used
36607function cleanup() {
36608  try {
36609    global.localStorage.removeItem(localStorageNamespace);
36610  } catch (_) {
36611    // nothing to do
36612  }
36613}
36614
36615/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64)))
36616
36617/***/ }),
36618/* 545 */
36619/***/ (function(module, exports, __webpack_require__) {
36620
36621
36622/**
36623 * This is the common logic for both the Node.js and web browser
36624 * implementations of `debug()`.
36625 *
36626 * Expose `debug()` as the module.
36627 */
36628
36629exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
36630exports.coerce = coerce;
36631exports.disable = disable;
36632exports.enable = enable;
36633exports.enabled = enabled;
36634exports.humanize = __webpack_require__(546);
36635
36636/**
36637 * The currently active debug mode names, and names to skip.
36638 */
36639
36640exports.names = [];
36641exports.skips = [];
36642
36643/**
36644 * Map of special "%n" handling functions, for the debug "format" argument.
36645 *
36646 * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
36647 */
36648
36649exports.formatters = {};
36650
36651/**
36652 * Previous log timestamp.
36653 */
36654
36655var prevTime;
36656
36657/**
36658 * Select a color.
36659 * @param {String} namespace
36660 * @return {Number}
36661 * @api private
36662 */
36663
36664function selectColor(namespace) {
36665  var hash = 0, i;
36666
36667  for (i in namespace) {
36668    hash  = ((hash << 5) - hash) + namespace.charCodeAt(i);
36669    hash |= 0; // Convert to 32bit integer
36670  }
36671
36672  return exports.colors[Math.abs(hash) % exports.colors.length];
36673}
36674
36675/**
36676 * Create a debugger with the given `namespace`.
36677 *
36678 * @param {String} namespace
36679 * @return {Function}
36680 * @api public
36681 */
36682
36683function createDebug(namespace) {
36684
36685  function debug() {
36686    // disabled?
36687    if (!debug.enabled) return;
36688
36689    var self = debug;
36690
36691    // set `diff` timestamp
36692    var curr = +new Date();
36693    var ms = curr - (prevTime || curr);
36694    self.diff = ms;
36695    self.prev = prevTime;
36696    self.curr = curr;
36697    prevTime = curr;
36698
36699    // turn the `arguments` into a proper Array
36700    var args = new Array(arguments.length);
36701    for (var i = 0; i < args.length; i++) {
36702      args[i] = arguments[i];
36703    }
36704
36705    args[0] = exports.coerce(args[0]);
36706
36707    if ('string' !== typeof args[0]) {
36708      // anything else let's inspect with %O
36709      args.unshift('%O');
36710    }
36711
36712    // apply any `formatters` transformations
36713    var index = 0;
36714    args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
36715      // if we encounter an escaped % then don't increase the array index
36716      if (match === '%%') return match;
36717      index++;
36718      var formatter = exports.formatters[format];
36719      if ('function' === typeof formatter) {
36720        var val = args[index];
36721        match = formatter.call(self, val);
36722
36723        // now we need to remove `args[index]` since it's inlined in the `format`
36724        args.splice(index, 1);
36725        index--;
36726      }
36727      return match;
36728    });
36729
36730    // apply env-specific formatting (colors, etc.)
36731    exports.formatArgs.call(self, args);
36732
36733    var logFn = debug.log || exports.log || console.log.bind(console);
36734    logFn.apply(self, args);
36735  }
36736
36737  debug.namespace = namespace;
36738  debug.enabled = exports.enabled(namespace);
36739  debug.useColors = exports.useColors();
36740  debug.color = selectColor(namespace);
36741
36742  // env-specific initialization logic for debug instances
36743  if ('function' === typeof exports.init) {
36744    exports.init(debug);
36745  }
36746
36747  return debug;
36748}
36749
36750/**
36751 * Enables a debug mode by namespaces. This can include modes
36752 * separated by a colon and wildcards.
36753 *
36754 * @param {String} namespaces
36755 * @api public
36756 */
36757
36758function enable(namespaces) {
36759  exports.save(namespaces);
36760
36761  exports.names = [];
36762  exports.skips = [];
36763
36764  var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
36765  var len = split.length;
36766
36767  for (var i = 0; i < len; i++) {
36768    if (!split[i]) continue; // ignore empty strings
36769    namespaces = split[i].replace(/\*/g, '.*?');
36770    if (namespaces[0] === '-') {
36771      exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
36772    } else {
36773      exports.names.push(new RegExp('^' + namespaces + '$'));
36774    }
36775  }
36776}
36777
36778/**
36779 * Disable debug output.
36780 *
36781 * @api public
36782 */
36783
36784function disable() {
36785  exports.enable('');
36786}
36787
36788/**
36789 * Returns true if the given mode name is enabled, false otherwise.
36790 *
36791 * @param {String} name
36792 * @return {Boolean}
36793 * @api public
36794 */
36795
36796function enabled(name) {
36797  var i, len;
36798  for (i = 0, len = exports.skips.length; i < len; i++) {
36799    if (exports.skips[i].test(name)) {
36800      return false;
36801    }
36802  }
36803  for (i = 0, len = exports.names.length; i < len; i++) {
36804    if (exports.names[i].test(name)) {
36805      return true;
36806    }
36807  }
36808  return false;
36809}
36810
36811/**
36812 * Coerce `val`.
36813 *
36814 * @param {Mixed} val
36815 * @return {Mixed}
36816 * @api private
36817 */
36818
36819function coerce(val) {
36820  if (val instanceof Error) return val.stack || val.message;
36821  return val;
36822}
36823
36824
36825/***/ }),
36826/* 546 */
36827/***/ (function(module, exports) {
36828
36829/**
36830 * Helpers.
36831 */
36832
36833var s = 1000;
36834var m = s * 60;
36835var h = m * 60;
36836var d = h * 24;
36837var y = d * 365.25;
36838
36839/**
36840 * Parse or format the given `val`.
36841 *
36842 * Options:
36843 *
36844 *  - `long` verbose formatting [false]
36845 *
36846 * @param {String|Number} val
36847 * @param {Object} [options]
36848 * @throws {Error} throw an error if val is not a non-empty string or a number
36849 * @return {String|Number}
36850 * @api public
36851 */
36852
36853module.exports = function(val, options) {
36854  options = options || {};
36855  var type = typeof val;
36856  if (type === 'string' && val.length > 0) {
36857    return parse(val);
36858  } else if (type === 'number' && isNaN(val) === false) {
36859    return options.long ? fmtLong(val) : fmtShort(val);
36860  }
36861  throw new Error(
36862    'val is not a non-empty string or a valid number. val=' +
36863      JSON.stringify(val)
36864  );
36865};
36866
36867/**
36868 * Parse the given `str` and return milliseconds.
36869 *
36870 * @param {String} str
36871 * @return {Number}
36872 * @api private
36873 */
36874
36875function parse(str) {
36876  str = String(str);
36877  if (str.length > 100) {
36878    return;
36879  }
36880  var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
36881    str
36882  );
36883  if (!match) {
36884    return;
36885  }
36886  var n = parseFloat(match[1]);
36887  var type = (match[2] || 'ms').toLowerCase();
36888  switch (type) {
36889    case 'years':
36890    case 'year':
36891    case 'yrs':
36892    case 'yr':
36893    case 'y':
36894      return n * y;
36895    case 'days':
36896    case 'day':
36897    case 'd':
36898      return n * d;
36899    case 'hours':
36900    case 'hour':
36901    case 'hrs':
36902    case 'hr':
36903    case 'h':
36904      return n * h;
36905    case 'minutes':
36906    case 'minute':
36907    case 'mins':
36908    case 'min':
36909    case 'm':
36910      return n * m;
36911    case 'seconds':
36912    case 'second':
36913    case 'secs':
36914    case 'sec':
36915    case 's':
36916      return n * s;
36917    case 'milliseconds':
36918    case 'millisecond':
36919    case 'msecs':
36920    case 'msec':
36921    case 'ms':
36922      return n;
36923    default:
36924      return undefined;
36925  }
36926}
36927
36928/**
36929 * Short format for `ms`.
36930 *
36931 * @param {Number} ms
36932 * @return {String}
36933 * @api private
36934 */
36935
36936function fmtShort(ms) {
36937  if (ms >= d) {
36938    return Math.round(ms / d) + 'd';
36939  }
36940  if (ms >= h) {
36941    return Math.round(ms / h) + 'h';
36942  }
36943  if (ms >= m) {
36944    return Math.round(ms / m) + 'm';
36945  }
36946  if (ms >= s) {
36947    return Math.round(ms / s) + 's';
36948  }
36949  return ms + 'ms';
36950}
36951
36952/**
36953 * Long format for `ms`.
36954 *
36955 * @param {Number} ms
36956 * @return {String}
36957 * @api private
36958 */
36959
36960function fmtLong(ms) {
36961  return plural(ms, d, 'day') ||
36962    plural(ms, h, 'hour') ||
36963    plural(ms, m, 'minute') ||
36964    plural(ms, s, 'second') ||
36965    ms + ' ms';
36966}
36967
36968/**
36969 * Pluralization helper.
36970 */
36971
36972function plural(ms, n, name) {
36973  if (ms < n) {
36974    return;
36975  }
36976  if (ms < n * 1.5) {
36977    return Math.floor(ms / n) + ' ' + name;
36978  }
36979  return Math.ceil(ms / n) + ' ' + name + 's';
36980}
36981
36982
36983/***/ }),
36984/* 547 */
36985/***/ (function(module, exports, __webpack_require__) {
36986
36987module.exports = createAnalyticsClient;
36988
36989var algoliasearch = __webpack_require__(153);
36990
36991function createAnalyticsClient(appId, apiKey, opts) {
36992  var analytics = {};
36993
36994  opts = opts || {};
36995  // there need to be 4 hosts, like on the client, since if requests fail,
36996  // the counter goes up by 1, so we need to have the same amount of hosts
36997  // 4 because: -dsn, -1, -2, -3
36998  // This is done because the APPID used for search will be the same for the analytics client created,
36999  // and since the state of available hosts is shared by APPID globally for the module, we had issues
37000  // where the hostIndex would be 1 while the array was only one entry (you got an empty host)
37001  opts.hosts = opts.hosts || [
37002    'analytics.algolia.com',
37003    'analytics.algolia.com',
37004    'analytics.algolia.com',
37005    'analytics.algolia.com'
37006  ];
37007  opts.protocol = opts.protocol || 'https:';
37008
37009  analytics.as = algoliasearch(appId, apiKey, opts);
37010
37011  analytics.getABTests = function(_params, callback) {
37012    var params = params || {};
37013    var offset = params.offset || 0;
37014    var limit = params.limit || 10;
37015
37016    return this.as._jsonRequest({
37017      method: 'GET',
37018      url: '/2/abtests?offset=' + encodeURIComponent(offset) + '&limit=' + encodeURIComponent(limit),
37019      hostType: 'read',
37020      forceAuthHeaders: true,
37021      callback: callback
37022    });
37023  };
37024
37025  analytics.getABTest = function(abTestID, callback) {
37026    return this.as._jsonRequest({
37027      method: 'GET',
37028      url: '/2/abtests/' + encodeURIComponent(abTestID),
37029      hostType: 'read',
37030      forceAuthHeaders: true,
37031      callback: callback
37032    });
37033  };
37034
37035  analytics.addABTest = function(abTest, callback) {
37036    return this.as._jsonRequest({
37037      method: 'POST',
37038      url: '/2/abtests',
37039      body: abTest,
37040      hostType: 'read',
37041      forceAuthHeaders: true,
37042      callback: callback
37043    });
37044  };
37045
37046  analytics.stopABTest = function(abTestID, callback) {
37047    return this.as._jsonRequest({
37048      method: 'POST',
37049      url: '/2/abtests/' + encodeURIComponent(abTestID) + '/stop',
37050      hostType: 'read',
37051      forceAuthHeaders: true,
37052      callback: callback
37053    });
37054  };
37055
37056  analytics.deleteABTest = function(abTestID, callback) {
37057    return this.as._jsonRequest({
37058      method: 'DELETE',
37059      url: '/2/abtests/' + encodeURIComponent(abTestID),
37060      hostType: 'write',
37061      forceAuthHeaders: true,
37062      callback: callback
37063    });
37064  };
37065
37066  analytics.waitTask = function(indexName, taskID, callback) {
37067    return this.as.initIndex(indexName).waitTask(taskID, callback);
37068  };
37069
37070  return analytics;
37071}
37072
37073
37074/***/ }),
37075/* 548 */
37076/***/ (function(module, exports, __webpack_require__) {
37077
37078"use strict";
37079/* WEBPACK VAR INJECTION */(function(process) {
37080
37081var global = __webpack_require__(549);
37082var Promise = global.Promise || __webpack_require__(550).Promise;
37083
37084// This is the standalone browser build entry point
37085// Browser implementation of the Algolia Search JavaScript client,
37086// using XMLHttpRequest, XDomainRequest and JSONP as fallback
37087module.exports = function createAlgoliasearch(AlgoliaSearch, uaSuffix) {
37088  var inherits = __webpack_require__(80);
37089  var errors = __webpack_require__(70);
37090  var inlineHeaders = __webpack_require__(551);
37091  var jsonpRequest = __webpack_require__(553);
37092  var places = __webpack_require__(554);
37093  uaSuffix = uaSuffix || '';
37094
37095  if (process.env.NODE_ENV === 'debug') {
37096    __webpack_require__(81).enable('algoliasearch*');
37097  }
37098
37099  function algoliasearch(applicationID, apiKey, opts) {
37100    var cloneDeep = __webpack_require__(48);
37101
37102    opts = cloneDeep(opts || {});
37103
37104    opts._ua = opts._ua || algoliasearch.ua;
37105
37106    return new AlgoliaSearchBrowser(applicationID, apiKey, opts);
37107  }
37108
37109  algoliasearch.version = __webpack_require__(555);
37110  algoliasearch.ua = 'Algolia for vanilla JavaScript ' + uaSuffix + algoliasearch.version;
37111  algoliasearch.initPlaces = places(algoliasearch);
37112
37113  // we expose into window no matter how we are used, this will allow
37114  // us to easily debug any website running algolia
37115  global.__algolia = {
37116    debug: __webpack_require__(81),
37117    algoliasearch: algoliasearch
37118  };
37119
37120  var support = {
37121    hasXMLHttpRequest: 'XMLHttpRequest' in global,
37122    hasXDomainRequest: 'XDomainRequest' in global
37123  };
37124
37125  if (support.hasXMLHttpRequest) {
37126    support.cors = 'withCredentials' in new XMLHttpRequest();
37127  }
37128
37129  function AlgoliaSearchBrowser() {
37130    // call AlgoliaSearch constructor
37131    AlgoliaSearch.apply(this, arguments);
37132  }
37133
37134  inherits(AlgoliaSearchBrowser, AlgoliaSearch);
37135
37136  AlgoliaSearchBrowser.prototype._request = function request(url, opts) {
37137    return new Promise(function wrapRequest(resolve, reject) {
37138      // no cors or XDomainRequest, no request
37139      if (!support.cors && !support.hasXDomainRequest) {
37140        // very old browser, not supported
37141        reject(new errors.Network('CORS not supported'));
37142        return;
37143      }
37144
37145      url = inlineHeaders(url, opts.headers);
37146
37147      var body = opts.body;
37148      var req = support.cors ? new XMLHttpRequest() : new XDomainRequest();
37149      var reqTimeout;
37150      var timedOut;
37151      var connected = false;
vendor: 5,802 bytes, lines 37152-37350
37152
37153      reqTimeout = setTimeout(onTimeout, opts.timeouts.connect);
37154      // we set an empty onprogress listener
37155      // so that XDomainRequest on IE9 is not aborted
37156      // refs:
37157      //  - https://github.com/algolia/algoliasearch-client-js/issues/76
37158      //  - https://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment
37159      req.onprogress = onProgress;
37160      if ('onreadystatechange' in req) req.onreadystatechange = onReadyStateChange;
37161      req.onload = onLoad;
37162      req.onerror = onError;
37163
37164      // do not rely on default XHR async flag, as some analytics code like hotjar
37165      // breaks it and set it to false by default
37166      if (req instanceof XMLHttpRequest) {
37167        req.open(opts.method, url, true);
37168
37169        // The Analytics API never accepts Auth headers as query string
37170        // this option exists specifically for them.
37171        if (opts.forceAuthHeaders) {
37172          req.setRequestHeader(
37173            'x-algolia-application-id',
37174            opts.headers['x-algolia-application-id']
37175          );
37176          req.setRequestHeader(
37177            'x-algolia-api-key',
37178            opts.headers['x-algolia-api-key']
37179          );
37180        }
37181      } else {
37182        req.open(opts.method, url);
37183      }
37184
37185      // headers are meant to be sent after open
37186      if (support.cors) {
37187        if (body) {
37188          if (opts.method === 'POST') {
37189            // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests
37190            req.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
37191          } else {
37192            req.setRequestHeader('content-type', 'application/json');
37193          }
37194        }
37195        req.setRequestHeader('accept', 'application/json');
37196      }
37197
37198      if (body) {
37199        req.send(body);
37200      } else {
37201        req.send();
37202      }
37203
37204      // event object not received in IE8, at least
37205      // but we do not use it, still important to note
37206      function onLoad(/* event */) {
37207        // When browser does not supports req.timeout, we can
37208        // have both a load and timeout event, since handled by a dumb setTimeout
37209        if (timedOut) {
37210          return;
37211        }
37212
37213        clearTimeout(reqTimeout);
37214
37215        var out;
37216
37217        try {
37218          out = {
37219            body: JSON.parse(req.responseText),
37220            responseText: req.responseText,
37221            statusCode: req.status,
37222            // XDomainRequest does not have any response headers
37223            headers: req.getAllResponseHeaders && req.getAllResponseHeaders() || {}
37224          };
37225        } catch (e) {
37226          out = new errors.UnparsableJSON({
37227            more: req.responseText
37228          });
37229        }
37230
37231        if (out instanceof errors.UnparsableJSON) {
37232          reject(out);
37233        } else {
37234          resolve(out);
37235        }
37236      }
37237
37238      function onError(event) {
37239        if (timedOut) {
37240          return;
37241        }
37242
37243        clearTimeout(reqTimeout);
37244
37245        // error event is trigerred both with XDR/XHR on:
37246        //   - DNS error
37247        //   - unallowed cross domain request
37248        reject(
37249          new errors.Network({
37250            more: event
37251          })
37252        );
37253      }
37254
37255      function onTimeout() {
37256        timedOut = true;
37257        req.abort();
37258
37259        reject(new errors.RequestTimeout());
37260      }
37261
37262      function onConnect() {
37263        connected = true;
37264        clearTimeout(reqTimeout);
37265        reqTimeout = setTimeout(onTimeout, opts.timeouts.complete);
37266      }
37267
37268      function onProgress() {
37269        if (!connected) onConnect();
37270      }
37271
37272      function onReadyStateChange() {
37273        if (!connected && req.readyState > 1) onConnect();
37274      }
37275    });
37276  };
37277
37278  AlgoliaSearchBrowser.prototype._request.fallback = function requestFallback(url, opts) {
37279    url = inlineHeaders(url, opts.headers);
37280
37281    return new Promise(function wrapJsonpRequest(resolve, reject) {
37282      jsonpRequest(url, opts, function jsonpRequestDone(err, content) {
37283        if (err) {
37284          reject(err);
37285          return;
37286        }
37287
37288        resolve(content);
37289      });
37290    });
37291  };
37292
37293  AlgoliaSearchBrowser.prototype._promise = {
37294    reject: function rejectPromise(val) {
37295      return Promise.reject(val);
37296    },
37297    resolve: function resolvePromise(val) {
37298      return Promise.resolve(val);
37299    },
37300    delay: function delayPromise(ms) {
37301      return new Promise(function resolveOnTimeout(resolve/* , reject*/) {
37302        setTimeout(resolve, ms);
37303      });
37304    },
37305    all: function all(promises) {
37306      return Promise.all(promises);
37307    }
37308  };
37309
37310  return algoliasearch;
37311};
37312
37313/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
37314
37315/***/ }),
37316/* 549 */
37317/***/ (function(module, exports, __webpack_require__) {
37318
37319/* WEBPACK VAR INJECTION */(function(global) {var win;
37320
37321if (typeof window !== "undefined") {
37322    win = window;
37323} else if (typeof global !== "undefined") {
37324    win = global;
37325} else if (typeof self !== "undefined"){
37326    win = self;
37327} else {
37328    win = {};
37329}
37330
37331module.exports = win;
37332
37333/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(64)))
37334
37335/***/ }),
37336/* 550 */
37337/***/ (function(module, exports, __webpack_require__) {
37338
37339/* WEBPACK VAR INJECTION */(function(process, global) {/*!
37340 * @overview es6-promise - a tiny implementation of Promises/A+.
37341 * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
37342 * @license   Licensed under MIT license
37343 *            See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
37344 * @version   v4.2.5+7f2b526d
37345 */
37346
37347(function (global, factory) {
37348	 true ? module.exports = factory() :
37349	typeof define === 'function' && define.amd ? define(factory) :
37350	(global.ES6Promise = factory())
vendor: 5,184 bytes, lines 37350-37570
37350;
37351}(this, (function () { 'use strict';
37352
37353function objectOrFunction(x) {
37354  var type = typeof x;
37355  return x !== null && (type === 'object' || type === 'function');
37356}
37357
37358function isFunction(x) {
37359  return typeof x === 'function';
37360}
37361
37362
37363
37364var _isArray = void 0;
37365if (Array.isArray) {
37366  _isArray = Array.isArray;
37367} else {
37368  _isArray = function (x) {
37369    return Object.prototype.toString.call(x) === '[object Array]';
37370  };
37371}
37372
37373var isArray = _isArray;
37374
37375var len = 0;
37376var vertxNext = void 0;
37377var customSchedulerFn = void 0;
37378
37379var asap = function asap(callback, arg) {
37380  queue[len] = callback;
37381  queue[len + 1] = arg;
37382  len += 2;
37383  if (len === 2) {
37384    // If len is 2, that means that we need to schedule an async flush.
37385    // If additional callbacks are queued before the queue is flushed, they
37386    // will be processed by this flush that we are scheduling.
37387    if (customSchedulerFn) {
37388      customSchedulerFn(flush);
37389    } else {
37390      scheduleFlush();
37391    }
37392  }
37393};
37394
37395function setScheduler(scheduleFn) {
37396  customSchedulerFn = scheduleFn;
37397}
37398
37399function setAsap(asapFn) {
37400  asap = asapFn;
37401}
37402
37403var browserWindow = typeof window !== 'undefined' ? window : undefined;
37404var browserGlobal = browserWindow || {};
37405var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
37406var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
37407
37408// test for web worker but not in IE10
37409var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
37410
37411// node
37412function useNextTick() {
37413  // node version 0.10.x displays a deprecation warning when nextTick is used recursively
37414  // see https://github.com/cujojs/when/issues/410 for details
37415  return function () {
37416    return process.nextTick(flush);
37417  };
37418}
37419
37420// vertx
37421function useVertxTimer() {
37422  if (typeof vertxNext !== 'undefined') {
37423    return function () {
37424      vertxNext(flush);
37425    };
37426  }
37427
37428  return useSetTimeout();
37429}
37430
37431function useMutationObserver() {
37432  var iterations = 0;
37433  var observer = new BrowserMutationObserver(flush);
37434  var node = document.createTextNode('');
37435  observer.observe(node, { characterData: true });
37436
37437  return function () {
37438    node.data = iterations = ++iterations % 2;
37439  };
37440}
37441
37442// web worker
37443function useMessageChannel() {
37444  var channel = new MessageChannel();
37445  channel.port1.onmessage = flush;
37446  return function () {
37447    return channel.port2.postMessage(0);
37448  };
37449}
37450
37451function useSetTimeout() {
37452  // Store setTimeout reference so es6-promise will be unaffected by
37453  // other code modifying setTimeout (like sinon.useFakeTimers())
37454  var globalSetTimeout = setTimeout;
37455  return function () {
37456    return globalSetTimeout(flush, 1);
37457  };
37458}
37459
37460var queue = new Array(1000);
37461function flush() {
37462  for (var i = 0; i < len; i += 2) {
37463    var callback = queue[i];
37464    var arg = queue[i + 1];
37465
37466    callback(arg);
37467
37468    queue[i] = undefined;
37469    queue[i + 1] = undefined;
37470  }
37471
37472  len = 0;
37473}
37474
37475function attemptVertx() {
37476  try {
37477    var vertx = Function('return this')().require('vertx');
37478    vertxNext = vertx.runOnLoop || vertx.runOnContext;
37479    return useVertxTimer();
37480  } catch (e) {
37481    return useSetTimeout();
37482  }
37483}
37484
37485var scheduleFlush = void 0;
37486// Decide what async method to use to triggering processing of queued callbacks:
37487if (isNode) {
37488  scheduleFlush = useNextTick();
37489} else if (BrowserMutationObserver) {
37490  scheduleFlush = useMutationObserver();
37491} else if (isWorker) {
37492  scheduleFlush = useMessageChannel();
37493} else if (browserWindow === undefined && "function" === 'function') {
37494  scheduleFlush = attemptVertx();
37495} else {
37496  scheduleFlush = useSetTimeout();
37497}
37498
37499function then(onFulfillment, onRejection) {
37500  var parent = this;
37501
37502  var child = new this.constructor(noop);
37503
37504  if (child[PROMISE_ID] === undefined) {
37505    makePromise(child);
37506  }
37507
37508  var _state = parent._state;
37509
37510
37511  if (_state) {
37512    var callback = arguments[_state - 1];
37513    asap(function () {
37514      return invokeCallback(_state, child, callback, parent._result);
37515    });
37516  } else {
37517    subscribe(parent, child, onFulfillment, onRejection);
37518  }
37519
37520  return child;
37521}
37522
37523/**
37524  `Promise.resolve` returns a promise that will become resolved with the
37525  passed `value`. It is shorthand for the following:
37526
37527  ```javascript
37528  let promise = new Promise(function(resolve, reject){
37529    resolve(1);
37530  });
37531
37532  promise.then(function(value){
37533    // value === 1
37534  });
37535  ```
37536
37537  Instead of writing the above, your code now simply becomes the following:
37538
37539  ```javascript
37540  let promise = Promise.resolve(1);
37541
37542  promise.then(function(value){
37543    // value === 1
37544  });
37545  ```
37546
37547  @method resolve
37548  @static
37549  @param {Any} value value that the returned promise will be resolved with
37550  Useful for tooling.
37551  @return {Promise} a promise that will become fulfilled with the given
37552  `value`
37553*/
37554function resolve$1(object) {
37555  /*jshint validthis:true */
37556  var Constructor = this;
37557
37558  if (object && typeof object === 'object' && object.constructor === Constructor) {
37559    return object;
37560  }
37561
37562  var promise = new Constructor(noop);
37563  resolve(promise, object);
37564  return promise;
37565}
37566
37567var PROMISE_ID = Math.random().toString(36).substring(2);
37568
37569function noop() {}
37570
vendor: 7,086 bytes, lines 37571-37874
37571var PENDING = void 0;
37572var FULFILLED = 1;
37573var REJECTED = 2;
37574
37575var TRY_CATCH_ERROR = { error: null };
37576
37577function selfFulfillment() {
37578  return new TypeError("You cannot resolve a promise with itself");
37579}
37580
37581function cannotReturnOwn() {
37582  return new TypeError('A promises callback cannot return that same promise.');
37583}
37584
37585function getThen(promise) {
37586  try {
37587    return promise.then;
37588  } catch (error) {
37589    TRY_CATCH_ERROR.error = error;
37590    return TRY_CATCH_ERROR;
37591  }
37592}
37593
37594function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
37595  try {
37596    then$$1.call(value, fulfillmentHandler, rejectionHandler);
37597  } catch (e) {
37598    return e;
37599  }
37600}
37601
37602function handleForeignThenable(promise, thenable, then$$1) {
37603  asap(function (promise) {
37604    var sealed = false;
37605    var error = tryThen(then$$1, thenable, function (value) {
37606      if (sealed) {
37607        return;
37608      }
37609      sealed = true;
37610      if (thenable !== value) {
37611        resolve(promise, value);
37612      } else {
37613        fulfill(promise, value);
37614      }
37615    }, function (reason) {
37616      if (sealed) {
37617        return;
37618      }
37619      sealed = true;
37620
37621      reject(promise, reason);
37622    }, 'Settle: ' + (promise._label || ' unknown promise'));
37623
37624    if (!sealed && error) {
37625      sealed = true;
37626      reject(promise, error);
37627    }
37628  }, promise);
37629}
37630
37631function handleOwnThenable(promise, thenable) {
37632  if (thenable._state === FULFILLED) {
37633    fulfill(promise, thenable._result);
37634  } else if (thenable._state === REJECTED) {
37635    reject(promise, thenable._result);
37636  } else {
37637    subscribe(thenable, undefined, function (value) {
37638      return resolve(promise, value);
37639    }, function (reason) {
37640      return reject(promise, reason);
37641    });
37642  }
37643}
37644
37645function handleMaybeThenable(promise, maybeThenable, then$$1) {
37646  if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
37647    handleOwnThenable(promise, maybeThenable);
37648  } else {
37649    if (then$$1 === TRY_CATCH_ERROR) {
37650      reject(promise, TRY_CATCH_ERROR.error);
37651      TRY_CATCH_ERROR.error = null;
37652    } else if (then$$1 === undefined) {
37653      fulfill(promise, maybeThenable);
37654    } else if (isFunction(then$$1)) {
37655      handleForeignThenable(promise, maybeThenable, then$$1);
37656    } else {
37657      fulfill(promise, maybeThenable);
37658    }
37659  }
37660}
37661
37662function resolve(promise, value) {
37663  if (promise === value) {
37664    reject(promise, selfFulfillment());
37665  } else if (objectOrFunction(value)) {
37666    handleMaybeThenable(promise, value, getThen(value));
37667  } else {
37668    fulfill(promise, value);
37669  }
37670}
37671
37672function publishRejection(promise) {
37673  if (promise._onerror) {
37674    promise._onerror(promise._result);
37675  }
37676
37677  publish(promise);
37678}
37679
37680function fulfill(promise, value) {
37681  if (promise._state !== PENDING) {
37682    return;
37683  }
37684
37685  promise._result = value;
37686  promise._state = FULFILLED;
37687
37688  if (promise._subscribers.length !== 0) {
37689    asap(publish, promise);
37690  }
37691}
37692
37693function reject(promise, reason) {
37694  if (promise._state !== PENDING) {
37695    return;
37696  }
37697  promise._state = REJECTED;
37698  promise._result = reason;
37699
37700  asap(publishRejection, promise);
37701}
37702
37703function subscribe(parent, child, onFulfillment, onRejection) {
37704  var _subscribers = parent._subscribers;
37705  var length = _subscribers.length;
37706
37707
37708  parent._onerror = null;
37709
37710  _subscribers[length] = child;
37711  _subscribers[length + FULFILLED] = onFulfillment;
37712  _subscribers[length + REJECTED] = onRejection;
37713
37714  if (length === 0 && parent._state) {
37715    asap(publish, parent);
37716  }
37717}
37718
37719function publish(promise) {
37720  var subscribers = promise._subscribers;
37721  var settled = promise._state;
37722
37723  if (subscribers.length === 0) {
37724    return;
37725  }
37726
37727  var child = void 0,
37728      callback = void 0,
37729      detail = promise._result;
37730
37731  for (var i = 0; i < subscribers.length; i += 3) {
37732    child = subscribers[i];
37733    callback = subscribers[i + settled];
37734
37735    if (child) {
37736      invokeCallback(settled, child, callback, detail);
37737    } else {
37738      callback(detail);
37739    }
37740  }
37741
37742  promise._subscribers.length = 0;
37743}
37744
37745function tryCatch(callback, detail) {
37746  try {
37747    return callback(detail);
37748  } catch (e) {
37749    TRY_CATCH_ERROR.error = e;
37750    return TRY_CATCH_ERROR;
37751  }
37752}
37753
37754function invokeCallback(settled, promise, callback, detail) {
37755  var hasCallback = isFunction(callback),
37756      value = void 0,
37757      error = void 0,
37758      succeeded = void 0,
37759      failed = void 0;
37760
37761  if (hasCallback) {
37762    value = tryCatch(callback, detail);
37763
37764    if (value === TRY_CATCH_ERROR) {
37765      failed = true;
37766      error = value.error;
37767      value.error = null;
37768    } else {
37769      succeeded = true;
37770    }
37771
37772    if (promise === value) {
37773      reject(promise, cannotReturnOwn());
37774      return;
37775    }
37776  } else {
37777    value = detail;
37778    succeeded = true;
37779  }
37780
37781  if (promise._state !== PENDING) {
37782    // noop
37783  } else if (hasCallback && succeeded) {
37784    resolve(promise, value);
37785  } else if (failed) {
37786    reject(promise, error);
37787  } else if (settled === FULFILLED) {
37788    fulfill(promise, value);
37789  } else if (settled === REJECTED) {
37790    reject(promise, value);
37791  }
37792}
37793
37794function initializePromise(promise, resolver) {
37795  try {
37796    resolver(function resolvePromise(value) {
37797      resolve(promise, value);
37798    }, function rejectPromise(reason) {
37799      reject(promise, reason);
37800    });
37801  } catch (e) {
37802    reject(promise, e);
37803  }
37804}
37805
37806var id = 0;
37807function nextId() {
37808  return id++;
37809}
37810
37811function makePromise(promise) {
37812  promise[PROMISE_ID] = id++;
37813  promise._state = undefined;
37814  promise._result = undefined;
37815  promise._subscribers = [];
37816}
37817
37818function validationError() {
37819  return new Error('Array Methods must be provided an Array');
37820}
37821
37822var Enumerator = function () {
37823  function Enumerator(Constructor, input) {
37824    this._instanceConstructor = Constructor;
37825    this.promise = new Constructor(noop);
37826
37827    if (!this.promise[PROMISE_ID]) {
37828      makePromise(this.promise);
37829    }
37830
37831    if (isArray(input)) {
37832      this.length = input.length;
37833      this._remaining = input.length;
37834
37835      this._result = new Array(this.length);
37836
37837      if (this.length === 0) {
37838        fulfill(this.promise, this._result);
37839      } else {
37840        this.length = this.length || 0;
37841        this._enumerate(input);
37842        if (this._remaining === 0) {
37843          fulfill(this.promise, this._result);
37844        }
37845      }
37846    } else {
37847      reject(this.promise, validationError());
37848    }
37849  }
37850
37851  Enumerator.prototype._enumerate = function _enumerate(input) {
37852    for (var i = 0; this._state === PENDING && i < input.length; i++) {
37853      this._eachEntry(input[i], i);
37854    }
37855  };
37856
37857  Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {
37858    var c = this._instanceConstructor;
37859    var resolve$$1 = c.resolve;
37860
37861
37862    if (resolve$$1 === resolve$1) {
37863      var _then = getThen(entry);
37864
37865      if (_then === then && entry._state !== PENDING) {
37866        this._settledAt(entry._state, i, entry._result);
37867      } else if (typeof _then !== 'function') {
37868        this._remaining--;
37869        this._result[i] = entry;
37870      } else if (c === Promise$1) {
37871        var promise = new c(noop);
37872        handleMaybeThenable(promise, entry, _then);
37873        this._willSettleAt(promise, i);
37874      } else {
vendor: 16,494 bytes, lines 37875-38520
37875        this._willSettleAt(new c(function (resolve$$1) {
37876          return resolve$$1(entry);
37877        }), i);
37878      }
37879    } else {
37880      this._willSettleAt(resolve$$1(entry), i);
37881    }
37882  };
37883
37884  Enumerator.prototype._settledAt = function _settledAt(state, i, value) {
37885    var promise = this.promise;
37886
37887
37888    if (promise._state === PENDING) {
37889      this._remaining--;
37890
37891      if (state === REJECTED) {
37892        reject(promise, value);
37893      } else {
37894        this._result[i] = value;
37895      }
37896    }
37897
37898    if (this._remaining === 0) {
37899      fulfill(promise, this._result);
37900    }
37901  };
37902
37903  Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {
37904    var enumerator = this;
37905
37906    subscribe(promise, undefined, function (value) {
37907      return enumerator._settledAt(FULFILLED, i, value);
37908    }, function (reason) {
37909      return enumerator._settledAt(REJECTED, i, reason);
37910    });
37911  };
37912
37913  return Enumerator;
37914}();
37915
37916/**
37917  `Promise.all` accepts an array of promises, and returns a new promise which
37918  is fulfilled with an array of fulfillment values for the passed promises, or
37919  rejected with the reason of the first passed promise to be rejected. It casts all
37920  elements of the passed iterable to promises as it runs this algorithm.
37921
37922  Example:
37923
37924  ```javascript
37925  let promise1 = resolve(1);
37926  let promise2 = resolve(2);
37927  let promise3 = resolve(3);
37928  let promises = [ promise1, promise2, promise3 ];
37929
37930  Promise.all(promises).then(function(array){
37931    // The array here would be [ 1, 2, 3 ];
37932  });
37933  ```
37934
37935  If any of the `promises` given to `all` are rejected, the first promise
37936  that is rejected will be given as an argument to the returned promises's
37937  rejection handler. For example:
37938
37939  Example:
37940
37941  ```javascript
37942  let promise1 = resolve(1);
37943  let promise2 = reject(new Error("2"));
37944  let promise3 = reject(new Error("3"));
37945  let promises = [ promise1, promise2, promise3 ];
37946
37947  Promise.all(promises).then(function(array){
37948    // Code here never runs because there are rejected promises!
37949  }, function(error) {
37950    // error.message === "2"
37951  });
37952  ```
37953
37954  @method all
37955  @static
37956  @param {Array} entries array of promises
37957  @param {String} label optional string for labeling the promise.
37958  Useful for tooling.
37959  @return {Promise} promise that is fulfilled when all `promises` have been
37960  fulfilled, or rejected if any of them become rejected.
37961  @static
37962*/
37963function all(entries) {
37964  return new Enumerator(this, entries).promise;
37965}
37966
37967/**
37968  `Promise.race` returns a new promise which is settled in the same way as the
37969  first passed promise to settle.
37970
37971  Example:
37972
37973  ```javascript
37974  let promise1 = new Promise(function(resolve, reject){
37975    setTimeout(function(){
37976      resolve('promise 1');
37977    }, 200);
37978  });
37979
37980  let promise2 = new Promise(function(resolve, reject){
37981    setTimeout(function(){
37982      resolve('promise 2');
37983    }, 100);
37984  });
37985
37986  Promise.race([promise1, promise2]).then(function(result){
37987    // result === 'promise 2' because it was resolved before promise1
37988    // was resolved.
37989  });
37990  ```
37991
37992  `Promise.race` is deterministic in that only the state of the first
37993  settled promise matters. For example, even if other promises given to the
37994  `promises` array argument are resolved, but the first settled promise has
37995  become rejected before the other promises became fulfilled, the returned
37996  promise will become rejected:
37997
37998  ```javascript
37999  let promise1 = new Promise(function(resolve, reject){
38000    setTimeout(function(){
38001      resolve('promise 1');
38002    }, 200);
38003  });
38004
38005  let promise2 = new Promise(function(resolve, reject){
38006    setTimeout(function(){
38007      reject(new Error('promise 2'));
38008    }, 100);
38009  });
38010
38011  Promise.race([promise1, promise2]).then(function(result){
38012    // Code here never runs
38013  }, function(reason){
38014    // reason.message === 'promise 2' because promise 2 became rejected before
38015    // promise 1 became fulfilled
38016  });
38017  ```
38018
38019  An example real-world use case is implementing timeouts:
38020
38021  ```javascript
38022  Promise.race([ajax('foo.json'), timeout(5000)])
38023  ```
38024
38025  @method race
38026  @static
38027  @param {Array} promises array of promises to observe
38028  Useful for tooling.
38029  @return {Promise} a promise which settles in the same way as the first passed
38030  promise to settle.
38031*/
38032function race(entries) {
38033  /*jshint validthis:true */
38034  var Constructor = this;
38035
38036  if (!isArray(entries)) {
38037    return new Constructor(function (_, reject) {
38038      return reject(new TypeError('You must pass an array to race.'));
38039    });
38040  } else {
38041    return new Constructor(function (resolve, reject) {
38042      var length = entries.length;
38043      for (var i = 0; i < length; i++) {
38044        Constructor.resolve(entries[i]).then(resolve, reject);
38045      }
38046    });
38047  }
38048}
38049
38050/**
38051  `Promise.reject` returns a promise rejected with the passed `reason`.
38052  It is shorthand for the following:
38053
38054  ```javascript
38055  let promise = new Promise(function(resolve, reject){
38056    reject(new Error('WHOOPS'));
38057  });
38058
38059  promise.then(function(value){
38060    // Code here doesn't run because the promise is rejected!
38061  }, function(reason){
38062    // reason.message === 'WHOOPS'
38063  });
38064  ```
38065
38066  Instead of writing the above, your code now simply becomes the following:
38067
38068  ```javascript
38069  let promise = Promise.reject(new Error('WHOOPS'));
38070
38071  promise.then(function(value){
38072    // Code here doesn't run because the promise is rejected!
38073  }, function(reason){
38074    // reason.message === 'WHOOPS'
38075  });
38076  ```
38077
38078  @method reject
38079  @static
38080  @param {Any} reason value that the returned promise will be rejected with.
38081  Useful for tooling.
38082  @return {Promise} a promise rejected with the given `reason`.
38083*/
38084function reject$1(reason) {
38085  /*jshint validthis:true */
38086  var Constructor = this;
38087  var promise = new Constructor(noop);
38088  reject(promise, reason);
38089  return promise;
38090}
38091
38092function needsResolver() {
38093  throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
38094}
38095
38096function needsNew() {
38097  throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
38098}
38099
38100/**
38101  Promise objects represent the eventual result of an asynchronous operation. The
38102  primary way of interacting with a promise is through its `then` method, which
38103  registers callbacks to receive either a promise's eventual value or the reason
38104  why the promise cannot be fulfilled.
38105
38106  Terminology
38107  -----------
38108
38109  - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
38110  - `thenable` is an object or function that defines a `then` method.
38111  - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
38112  - `exception` is a value that is thrown using the throw statement.
38113  - `reason` is a value that indicates why a promise was rejected.
38114  - `settled` the final resting state of a promise, fulfilled or rejected.
38115
38116  A promise can be in one of three states: pending, fulfilled, or rejected.
38117
38118  Promises that are fulfilled have a fulfillment value and are in the fulfilled
38119  state.  Promises that are rejected have a rejection reason and are in the
38120  rejected state.  A fulfillment value is never a thenable.
38121
38122  Promises can also be said to *resolve* a value.  If this value is also a
38123  promise, then the original promise's settled state will match the value's
38124  settled state.  So a promise that *resolves* a promise that rejects will
38125  itself reject, and a promise that *resolves* a promise that fulfills will
38126  itself fulfill.
38127
38128
38129  Basic Usage:
38130  ------------
38131
38132  ```js
38133  let promise = new Promise(function(resolve, reject) {
38134    // on success
38135    resolve(value);
38136
38137    // on failure
38138    reject(reason);
38139  });
38140
38141  promise.then(function(value) {
38142    // on fulfillment
38143  }, function(reason) {
38144    // on rejection
38145  });
38146  ```
38147
38148  Advanced Usage:
38149  ---------------
38150
38151  Promises shine when abstracting away asynchronous interactions such as
38152  `XMLHttpRequest`s.
38153
38154  ```js
38155  function getJSON(url) {
38156    return new Promise(function(resolve, reject){
38157      let xhr = new XMLHttpRequest();
38158
38159      xhr.open('GET', url);
38160      xhr.onreadystatechange = handler;
38161      xhr.responseType = 'json';
38162      xhr.setRequestHeader('Accept', 'application/json');
38163      xhr.send();
38164
38165      function handler() {
38166        if (this.readyState === this.DONE) {
38167          if (this.status === 200) {
38168            resolve(this.response);
38169          } else {
38170            reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
38171          }
38172        }
38173      };
38174    });
38175  }
38176
38177  getJSON('/posts.json').then(function(json) {
38178    // on fulfillment
38179  }, function(reason) {
38180    // on rejection
38181  });
38182  ```
38183
38184  Unlike callbacks, promises are great composable primitives.
38185
38186  ```js
38187  Promise.all([
38188    getJSON('/posts'),
38189    getJSON('/comments')
38190  ]).then(function(values){
38191    values[0] // => postsJSON
38192    values[1] // => commentsJSON
38193
38194    return values;
38195  });
38196  ```
38197
38198  @class Promise
38199  @param {Function} resolver
38200  Useful for tooling.
38201  @constructor
38202*/
38203
38204var Promise$1 = function () {
38205  function Promise(resolver) {
38206    this[PROMISE_ID] = nextId();
38207    this._result = this._state = undefined;
38208    this._subscribers = [];
38209
38210    if (noop !== resolver) {
38211      typeof resolver !== 'function' && needsResolver();
38212      this instanceof Promise ? initializePromise(this, resolver) : needsNew();
38213    }
38214  }
38215
38216  /**
38217  The primary way of interacting with a promise is through its `then` method,
38218  which registers callbacks to receive either a promise's eventual value or the
38219  reason why the promise cannot be fulfilled.
38220   ```js
38221  findUser().then(function(user){
38222    // user is available
38223  }, function(reason){
38224    // user is unavailable, and you are given the reason why
38225  });
38226  ```
38227   Chaining
38228  --------
38229   The return value of `then` is itself a promise.  This second, 'downstream'
38230  promise is resolved with the return value of the first promise's fulfillment
38231  or rejection handler, or rejected if the handler throws an exception.
38232   ```js
38233  findUser().then(function (user) {
38234    return user.name;
38235  }, function (reason) {
38236    return 'default name';
38237  }).then(function (userName) {
38238    // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
38239    // will be `'default name'`
38240  });
38241   findUser().then(function (user) {
38242    throw new Error('Found user, but still unhappy');
38243  }, function (reason) {
38244    throw new Error('`findUser` rejected and we're unhappy');
38245  }).then(function (value) {
38246    // never reached
38247  }, function (reason) {
38248    // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
38249    // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
38250  });
38251  ```
38252  If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
38253   ```js
38254  findUser().then(function (user) {
38255    throw new PedagogicalException('Upstream error');
38256  }).then(function (value) {
38257    // never reached
38258  }).then(function (value) {
38259    // never reached
38260  }, function (reason) {
38261    // The `PedgagocialException` is propagated all the way down to here
38262  });
38263  ```
38264   Assimilation
38265  ------------
38266   Sometimes the value you want to propagate to a downstream promise can only be
38267  retrieved asynchronously. This can be achieved by returning a promise in the
38268  fulfillment or rejection handler. The downstream promise will then be pending
38269  until the returned promise is settled. This is called *assimilation*.
38270   ```js
38271  findUser().then(function (user) {
38272    return findCommentsByAuthor(user);
38273  }).then(function (comments) {
38274    // The user's comments are now available
38275  });
38276  ```
38277   If the assimliated promise rejects, then the downstream promise will also reject.
38278   ```js
38279  findUser().then(function (user) {
38280    return findCommentsByAuthor(user);
38281  }).then(function (comments) {
38282    // If `findCommentsByAuthor` fulfills, we'll have the value here
38283  }, function (reason) {
38284    // If `findCommentsByAuthor` rejects, we'll have the reason here
38285  });
38286  ```
38287   Simple Example
38288  --------------
38289   Synchronous Example
38290   ```javascript
38291  let result;
38292   try {
38293    result = findResult();
38294    // success
38295  } catch(reason) {
38296    // failure
38297  }
38298  ```
38299   Errback Example
38300   ```js
38301  findResult(function(result, err){
38302    if (err) {
38303      // failure
38304    } else {
38305      // success
38306    }
38307  });
38308  ```
38309   Promise Example;
38310   ```javascript
38311  findResult().then(function(result){
38312    // success
38313  }, function(reason){
38314    // failure
38315  });
38316  ```
38317   Advanced Example
38318  --------------
38319   Synchronous Example
38320   ```javascript
38321  let author, books;
38322   try {
38323    author = findAuthor();
38324    books  = findBooksByAuthor(author);
38325    // success
38326  } catch(reason) {
38327    // failure
38328  }
38329  ```
38330   Errback Example
38331   ```js
38332   function foundBooks(books) {
38333   }
38334   function failure(reason) {
38335   }
38336   findAuthor(function(author, err){
38337    if (err) {
38338      failure(err);
38339      // failure
38340    } else {
38341      try {
38342        findBoooksByAuthor(author, function(books, err) {
38343          if (err) {
38344            failure(err);
38345          } else {
38346            try {
38347              foundBooks(books);
38348            } catch(reason) {
38349              failure(reason);
38350            }
38351          }
38352        });
38353      } catch(error) {
38354        failure(err);
38355      }
38356      // success
38357    }
38358  });
38359  ```
38360   Promise Example;
38361   ```javascript
38362  findAuthor().
38363    then(findBooksByAuthor).
38364    then(function(books){
38365      // found books
38366  }).catch(function(reason){
38367    // something went wrong
38368  });
38369  ```
38370   @method then
38371  @param {Function} onFulfilled
38372  @param {Function} onRejected
38373  Useful for tooling.
38374  @return {Promise}
38375  */
38376
38377  /**
38378  `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
38379  as the catch block of a try/catch statement.
38380  ```js
38381  function findAuthor(){
38382  throw new Error('couldn't find that author');
38383  }
38384  // synchronous
38385  try {
38386  findAuthor();
38387  } catch(reason) {
38388  // something went wrong
38389  }
38390  // async with promises
38391  findAuthor().catch(function(reason){
38392  // something went wrong
38393  });
38394  ```
38395  @method catch
38396  @param {Function} onRejection
38397  Useful for tooling.
38398  @return {Promise}
38399  */
38400
38401
38402  Promise.prototype.catch = function _catch(onRejection) {
38403    return this.then(null, onRejection);
38404  };
38405
38406  /**
38407    `finally` will be invoked regardless of the promise's fate just as native
38408    try/catch/finally behaves
38409  
38410    Synchronous example:
38411  
38412    ```js
38413    findAuthor() {
38414      if (Math.random() > 0.5) {
38415        throw new Error();
38416      }
38417      return new Author();
38418    }
38419  
38420    try {
38421      return findAuthor(); // succeed or fail
38422    } catch(error) {
38423      return findOtherAuther();
38424    } finally {
38425      // always runs
38426      // doesn't affect the return value
38427    }
38428    ```
38429  
38430    Asynchronous example:
38431  
38432    ```js
38433    findAuthor().catch(function(reason){
38434      return findOtherAuther();
38435    }).finally(function(){
38436      // author was either found, or not
38437    });
38438    ```
38439  
38440    @method finally
38441    @param {Function} callback
38442    @return {Promise}
38443  */
38444
38445
38446  Promise.prototype.finally = function _finally(callback) {
38447    var promise = this;
38448    var constructor = promise.constructor;
38449
38450    if (isFunction(callback)) {
38451      return promise.then(function (value) {
38452        return constructor.resolve(callback()).then(function () {
38453          return value;
38454        });
38455      }, function (reason) {
38456        return constructor.resolve(callback()).then(function () {
38457          throw reason;
38458        });
38459      });
38460    }
38461
38462    return promise.then(callback, callback);
38463  };
38464
38465  return Promise;
38466}();
38467
38468Promise$1.prototype.then = then;
38469Promise$1.all = all;
38470Promise$1.race = race;
38471Promise$1.resolve = resolve$1;
38472Promise$1.reject = reject$1;
38473Promise$1._setScheduler = setScheduler;
38474Promise$1._setAsap = setAsap;
38475Promise$1._asap = asap;
38476
38477/*global self*/
38478function polyfill() {
38479  var local = void 0;
38480
38481  if (typeof global !== 'undefined') {
38482    local = global;
38483  } else if (typeof self !== 'undefined') {
38484    local = self;
38485  } else {
38486    try {
38487      local = Function('return this')();
38488    } catch (e) {
38489      throw new Error('polyfill failed because global object is unavailable in this environment');
38490    }
38491  }
38492
38493  var P = local.Promise;
38494
38495  if (P) {
38496    var promiseToString = null;
38497    try {
38498      promiseToString = Object.prototype.toString.call(P.resolve());
38499    } catch (e) {
38500      // silently ignored
38501    }
38502
38503    if (promiseToString === '[object Promise]' && !P.cast) {
38504      return;
38505    }
38506  }
38507
38508  local.Promise = Promise$1;
38509}
38510
38511// Strange compat..
38512Promise$1.polyfill = polyfill;
38513Promise$1.Promise = Promise$1;
38514
38515return Promise$1;
38516
38517})));
38518
38519
38520
38521
38522/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(64)))
38523
38524/***/ }),
38525/* 551 */
38526/***/ (function(module, exports, __webpack_require__) {
38527
38528"use strict";
38529
38530
38531module.exports = inlineHeaders;
38532
38533var encode = __webpack_require__(552);
38534
38535function inlineHeaders(url, headers) {
38536  if (/\?/.test(url)) {
38537    url += '&';
38538  } else {
38539    url += '?';
38540  }
38541
38542  return url + encode(headers);
38543}
38544
38545
38546/***/ }),
38547/* 552 */
38548/***/ (function(module, exports, __webpack_require__) {
38549
38550"use strict";
vendor: 5,866 bytes, lines 38551-38790
38551// Copyright Joyent, Inc. and other Node contributors.
38552//
38553// Permission is hereby granted, free of charge, to any person obtaining a
38554// copy of this software and associated documentation files (the
38555// "Software"), to deal in the Software without restriction, including
38556// without limitation the rights to use, copy, modify, merge, publish,
38557// distribute, sublicense, and/or sell copies of the Software, and to permit
38558// persons to whom the Software is furnished to do so, subject to the
38559// following conditions:
38560//
38561// The above copyright notice and this permission notice shall be included
38562// in all copies or substantial portions of the Software.
38563//
38564// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
38565// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
38566// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
38567// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
38568// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
38569// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
38570// USE OR OTHER DEALINGS IN THE SOFTWARE.
38571
38572
38573
38574var stringifyPrimitive = function(v) {
38575  switch (typeof v) {
38576    case 'string':
38577      return v;
38578
38579    case 'boolean':
38580      return v ? 'true' : 'false';
38581
38582    case 'number':
38583      return isFinite(v) ? v : '';
38584
38585    default:
38586      return '';
38587  }
38588};
38589
38590module.exports = function(obj, sep, eq, name) {
38591  sep = sep || '&';
38592  eq = eq || '=';
38593  if (obj === null) {
38594    obj = undefined;
38595  }
38596
38597  if (typeof obj === 'object') {
38598    return map(objectKeys(obj), function(k) {
38599      var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
38600      if (isArray(obj[k])) {
38601        return map(obj[k], function(v) {
38602          return ks + encodeURIComponent(stringifyPrimitive(v));
38603        }).join(sep);
38604      } else {
38605        return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
38606      }
38607    }).join(sep);
38608
38609  }
38610
38611  if (!name) return '';
38612  return encodeURIComponent(stringifyPrimitive(name)) + eq +
38613         encodeURIComponent(stringifyPrimitive(obj));
38614};
38615
38616var isArray = Array.isArray || function (xs) {
38617  return Object.prototype.toString.call(xs) === '[object Array]';
38618};
38619
38620function map (xs, f) {
38621  if (xs.map) return xs.map(f);
38622  var res = [];
38623  for (var i = 0; i < xs.length; i++) {
38624    res.push(f(xs[i], i));
38625  }
38626  return res;
38627}
38628
38629var objectKeys = Object.keys || function (obj) {
38630  var res = [];
38631  for (var key in obj) {
38632    if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
38633  }
38634  return res;
38635};
38636
38637
38638/***/ }),
38639/* 553 */
38640/***/ (function(module, exports, __webpack_require__) {
38641
38642"use strict";
38643
38644
38645module.exports = jsonpRequest;
38646
38647var errors = __webpack_require__(70);
38648
38649var JSONPCounter = 0;
38650
38651function jsonpRequest(url, opts, cb) {
38652  if (opts.method !== 'GET') {
38653    cb(new Error('Method ' + opts.method + ' ' + url + ' is not supported by JSONP.'));
38654    return;
38655  }
38656
38657  opts.debug('JSONP: start');
38658
38659  var cbCalled = false;
38660  var timedOut = false;
38661
38662  JSONPCounter += 1;
38663  var head = document.getElementsByTagName('head')[0];
38664  var script = document.createElement('script');
38665  var cbName = 'algoliaJSONP_' + JSONPCounter;
38666  var done = false;
38667
38668  window[cbName] = function(data) {
38669    removeGlobals();
38670
38671    if (timedOut) {
38672      opts.debug('JSONP: Late answer, ignoring');
38673      return;
38674    }
38675
38676    cbCalled = true;
38677
38678    clean();
38679
38680    cb(null, {
38681      body: data,
38682      responseText: JSON.stringify(data)/* ,
38683      // We do not send the statusCode, there's no statusCode in JSONP, it will be
38684      // computed using data.status && data.message like with XDR
38685      statusCode*/
38686    });
38687  };
38688
38689  // add callback by hand
38690  url += '&callback=' + cbName;
38691
38692  // add body params manually
38693  if (opts.jsonBody && opts.jsonBody.params) {
38694    url += '&' + opts.jsonBody.params;
38695  }
38696
38697  var ontimeout = setTimeout(timeout, opts.timeouts.complete);
38698
38699  // script onreadystatechange needed only for
38700  // <= IE8
38701  // https://github.com/angular/angular.js/issues/4523
38702  script.onreadystatechange = readystatechange;
38703  script.onload = success;
38704  script.onerror = error;
38705
38706  script.async = true;
38707  script.defer = true;
38708  script.src = url;
38709  head.appendChild(script);
38710
38711  function success() {
38712    opts.debug('JSONP: success');
38713
38714    if (done || timedOut) {
38715      return;
38716    }
38717
38718    done = true;
38719
38720    // script loaded but did not call the fn => script loading error
38721    if (!cbCalled) {
38722      opts.debug('JSONP: Fail. Script loaded but did not call the callback');
38723      clean();
38724      cb(new errors.JSONPScriptFail());
38725    }
38726  }
38727
38728  function readystatechange() {
38729    if (this.readyState === 'loaded' || this.readyState === 'complete') {
38730      success();
38731    }
38732  }
38733
38734  function clean() {
38735    clearTimeout(ontimeout);
38736    script.onload = null;
38737    script.onreadystatechange = null;
38738    script.onerror = null;
38739    head.removeChild(script);
38740  }
38741
38742  function removeGlobals() {
38743    try {
38744      delete window[cbName];
38745      delete window[cbName + '_loaded'];
38746    } catch (e) {
38747      window[cbName] = window[cbName + '_loaded'] = undefined;
38748    }
38749  }
38750
38751  function timeout() {
38752    opts.debug('JSONP: Script timeout');
38753    timedOut = true;
38754    clean();
38755    cb(new errors.RequestTimeout());
38756  }
38757
38758  function error() {
38759    opts.debug('JSONP: Script error');
38760
38761    if (done || timedOut) {
38762      return;
38763    }
38764
38765    clean();
38766    cb(new errors.JSONPScriptError());
38767  }
38768}
38769
38770
38771/***/ }),
38772/* 554 */
38773/***/ (function(module, exports, __webpack_require__) {
38774
38775module.exports = createPlacesClient;
38776
38777var buildSearchMethod = __webpack_require__(221);
38778
38779function createPlacesClient(algoliasearch) {
38780  return function places(appID, apiKey, opts) {
38781    var cloneDeep = __webpack_require__(48);
38782
38783    opts = opts && cloneDeep(opts) || {};
38784    opts.hosts = opts.hosts || [
38785      'places-dsn.algolia.net',
38786      'places-1.algolianet.com',
38787      'places-2.algolianet.com',
38788      'places-3.algolianet.com'
38789    ];
38790
38791    // allow initPlaces() no arguments => community rate limited
38792    if (arguments.length === 0 || typeof appID === 'object' || appID === undefined) {
38793      appID = '';
38794      apiKey = '';
38795      opts._allowEmptyCredentials = true;
38796    }
38797
38798    var client = algoliasearch(appID, apiKey, opts);
38799    var index = client.initIndex('places');
38800    index.search = buildSearchMethod('query', '/1/places/query');
38801    index.getObject = function(objectID, callback) {
38802      return this.as._jsonRequest({
38803        method: 'GET',
38804        url: '/1/places/' + encodeURIComponent(objectID),
38805        hostType: 'read',
38806        callback: callback
38807      });
38808    };
38809    return index;
38810  };
38811}
38812
38813
38814/***/ }),
38815/* 555 */
38816/***/ (function(module, exports, __webpack_require__) {
38817
38818"use strict";
38819
38820
38821module.exports = '3.30.0';
38822
38823
38824/***/ }),
38825/* 556 */
38826/***/ (function(module, exports, __webpack_require__) {
38827
38828"use strict";
38829
38830
38831Object.defineProperty(exports, "__esModule", {
38832    value: true
38833});
38834
38835var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
38836
38837var _react = __webpack_require__(32);
38838
38839var _react2 = _interopRequireDefault(_react);
38840
38841var _algolia = __webpack_require__(226);
38842
38843function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38844
38845function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
38846
38847function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
38848
38849function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
38850
38851var SearchResult = function (_Component) {
38852    _inherits(SearchResult, _Component);
38853
38854    function SearchResult() {
38855        _classCallCheck(this, SearchResult);
38856
38857        return _possibleConstructorReturn(this, (SearchResult.__proto__ || Object.getPrototypeOf(SearchResult)).apply(this, arguments));
38858    }
38859
38860    _createClass(SearchResult, [{
38861        key: 'render',
38862        value: function render() {
38863            var title = (0, _algolia.renderAlgoliaHightligthed)(this.props.item, 'title');
38864            return _react2.default.createElement(
38865                'li',
38866                { className: 'cpcTeaserSmall_list_item' },
38867                _react2.default.createElement(
38868                    'a',
38869                    { href: this.props.item.url, className: 'cpcTeaserSmall' },
38870                    _react2.default.createElement('div', { className: 'cpcTeaserSmall_img', dangerouslySetInnerHTML: { __html: this.props.item.image } }),
38871                    _react2.default.createElement('h3', { className: 'cpcTeaserSmall_title', dangerouslySetInnerHTML: title }),
38872                    _react2.default.createElement(
38873                        'div',
38874                        { className: 'cpcTeaserSmall_action' },
38875                        _react2.default.createElement(
38876                            'span',
38877                            { className: 'sr-only' },
38878                            'Voir le r\xE9sultat'
38879                        ),
38880                        _react2.default.createElement('i', { className: 'cpcico cpcico-angle-right', 'aria-hidden': 'true' })
38881                    )
38882                )
38883            );
38884        }
38885    }]);
38886
38887    return SearchResult;
38888}(_react.Component);
38889
38890exports.default = SearchResult;
38891
38892/***/ }),
38893/* 557 */
38894/***/ (function(module, exports, __webpack_require__) {
38895
38896"use strict";
38897
38898
38899Object.defineProperty(exports, "__esModule", {
38900  value: true
38901});
38902
38903var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
38904
38905var _react = __webpack_require__(32);
38906
38907var _react2 = _interopRequireDefault(_react);
38908
38909var _BenchmarkSearch = __webpack_require__(558);
38910
38911var _BenchmarkSearch2 = _interopRequireDefault(_BenchmarkSearch);
38912
38913var _BenchmarkResults = __webpack_require__(559);
38914
38915var _BenchmarkResults2 = _interopRequireDefault(_BenchmarkResults);
38916
38917var _BenchmarkFacets = __webpack_require__(561);
38918
38919var _BenchmarkFacets2 = _interopRequireDefault(_BenchmarkFacets);
38920
38921var _BenchmarkPager = __webpack_require__(562);
38922
38923var _BenchmarkPager2 = _interopRequireDefault(_BenchmarkPager);
38924
38925var _benchmark_algolia = __webpack_require__(563);
38926
38927var _query = __webpack_require__(564);
38928
38929function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
38930
38931function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { tr
38931y { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
38932
38933function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
38934
38935function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
38936
38937function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
38938
38939var BenchmarkSearchPage = function (_Component) {
38940  _inherits(BenchmarkSearchPage, _Component);
38941
38942  function BenchmarkSearchPage(props) {
38943    _classCallCheck(this, BenchmarkSearchPage);
38944
38945    var _this = _possibleConstructorReturn(this, (BenchmarkSearchPage.__proto__ || Object.getPrototypeOf(BenchmarkSearchPage)).call(this, props));
38946
38947    _this.state = {
38948      term: (0, _query.getParameterByName)('search_input') || '',
38949      results: [],
38950      facets: {},
38951      facetsList: {},
38952      page: 0,
38953      nbPages: 0
38954    };
38955
38956    _this.handleTermChange = _this.handleTermChange.bind(_this);
38957    _this.handleFacetChange = _this.handleFacetChange.bind(_this);
38958    _this.handlePageChange = _this.handlePageChange.bind(_this);
38959    _this.handleThemeClick = _this.handleThemeClick.bind(_this);
38960    return _this;
38961  }
38962
38963  _createClass(BenchmarkSearchPage, [{
38964    key: 'handleThemeClick',
38965    value: function handleThemeClick(e) {
38966      var _this2 = this;
38967
38968      var newFacets = Object.assign(this.state.facets, {});
38969      newFacets[e.detail.value].checked = true;
38970      this.setState({ facets: newFacets }, function () {
38971        _this2.performSearch();
38972      });
38973    }
38974  }, {
38975    key: 'componentDidMount',
38976    value: function componentDidMount() {
38977      var _this3 = this;
38978
38979      var term = this.state.term;
38980
38981      if ('' !== term) {
38982        this.performSearch(term);
38983      } else {
38984        (0, _benchmark_algolia.defaultSearch)().then(function (response) {
38985          var facets = _this3.getFacetsFromResponse(response);
38986          _this3.setState({
38987            facets: facets,
38988            facetsList: facets,
38989            results: response.hits,
38990            nbPages: response.nbPages
38991          });
38992        });
38993      }
38994      document.addEventListener('CapComThemeClick', this.handleThemeClick);
38995    }
38996  }, {
38997    key: 'getFacetsFromResponse',
38998    value: function getFacetsFromResponse(algoliaResponse) {
38999      var _this4 = this;
39000
39001      var facets = {};
39002      var algoliaFacets = algoliaResponse.facets.field_thematics;
39003      if (undefined === algoliaFacets) {
39004        return {};
39005      }
39006      Object.keys(algoliaFacets).forEach(function (facetId) {
39007        var checked = false;
39008        if (_this4.state.facets.hasOwnProperty(facetId)) {
39009          checked = _this4.state.facets[facetId].checked;
39010        }
39011        facets[facetId] = {
39012          id: facetId,
39013          count: algoliaFacets[facetId],
39014          checked: checked
39015        };
39016      });
39017
39018      return facets;
39019    }
39020  }, {
39021    key: 'getFacetsString',
39022    value: function getFacetsString() {
39023      var _this5 = this;
39024
39025      var facetsString = [];
39026      Object.keys(this.state.facets).forEach(function (facetId) {
39027        if (_this5.state.facets[facetId].checked) {
39028          facetsString.push('field_thematics:"' + facetId + '"');
39029        }
39030      });
39031      facetsString = facetsString.join(' OR ');
39032
39033      return facetsString;
39034    }
39035  }, {
39036    key: 'handleFacetChange',
39037    value: function handleFacetChange(e) {
39038      var _this6 = this;
39039
39040      var newFacets = Object.assign({}, this.state.facets);
39041      Object.keys(this.state.facets).forEach(function (facetId) {
39042        if (facetId === e.target.value) {
39043          newFacets[facetId].checked = e.target.checked;
39044        }
39045      });
39046      this.setState({
39047        facets: newFacets
39048      }, function () {
39049        _this6.performSearch();
39050      });
39051    }
39052  }, {
39053    key: 'handleTermChange',
39054    value: function handleTermChange(term) {
39055      var _this7 = this;
39056
39057      this.setState({
39058        term: term
39059      }, function () {
39060        _this7.performSearch(term);
39061      });
39062    }
39063  }, {
39064    key: 'performSearch',
39065    value: function () {
39066      var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(term) {
39067        var termResponse, facetFilteredResponse, facets;
39068        return regeneratorRuntime.wrap(function _callee$(_context) {
39069          while (1) {
39070            switch (_context.prev = _context.next) {
39071              case 0:
39072                if (undefined === term) {
39073                  term = this.state.term;
39074                }
39075                _context.next = 3;
39076                return (0, _benchmark_algolia.indexSearch)(term, '');
39077
39078              case 3:
39079                termResponse = _context.sent;
39080                _context.next = 6;
39081                return (0, _benchmark_algolia.indexSearch)(term, this.getFacetsString());
39082
39083              case 6:
39084                facetFilteredResponse = _context.sent;
39085                facets = Object.assign({}, this.getFacetsFromResponse(termResponse));
39086
39087                this.setState({
39088                  results: facetFilteredResponse.hits,
39089                  facets: facets,
39090                  nbPages: facetFilteredResponse.nbPages,
39091                  page: 0
39092                });
39093
39094              case 9:
39095              case 'end':
39096                return _context.stop();
39097            }
39098          }
39099        }, _callee, this);
39100      }));
39101
39102      function performSearch(_x) {
39103        return _ref.apply(this, arguments);
39104      }
39105
39106      return performSearch;
39107    }()
39108  }, {
39109    key: 'handlePageChange',
39110    value: function () {
39111      var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(newPage) {
39112        var facetFilteredResponse, event;
39113        return regeneratorRuntime.wrap(function _callee2$(_context2) {
39114          while (1) {
39115            switch (_context2.prev = _context2.next) {
39116              case 0:
39117                _context2.next = 2;
39118                return (0, _benchmark_algolia.indexSearch)(this.state.term, this.getFacetsString(), newPage);
39119
39120              case 2:
39121                facetFilteredResponse = _context2.sent;
39122                event = new CustomEvent('newStateLoad', {
39123                  detail: {
39124                    destination: '[data-role=benchmark-search]'
39125                  }
39126                });
39127                _context2.next = 6;
39128                return document.dispatchEvent(event);
39129
39130              case 6:
39131                this.setState({
39132                  results: facetFilteredResponse.hits,
39133                  page: newPage
39134                });
39135
39136              case 7:
39137              case 'end':
39138                return _context2.stop();
39139            }
39140          }
39141        }, _callee2, this);
39142      }));
39143
39144      function handlePageChange(_x2) {
39145        return _ref2.apply(this, arguments);
39146      }
39147
39148      return handlePageChange;
39149    }()
39150  }, {
39151    key: 'render',
39152    value: function render() {
39153      return _react2.default.createElement(
39154        'div',
39155        { className: 'benchmark_wrapper' },
39156        _react2.default.createElement(
39157          'div',
39158          { className: 'benchmark_search_bar' },
39159          _react2.default.createElement(_BenchmarkSearch2.default, {
39160            term: this.state.term,
39161            onTermChange: this.handleTermChange
39162          })
39163        ),
39164        _react2.default.createElement(
39165          'div',
39166          { className: 'benchmark_search_wrapper' },
39167          _react2.default.createElement(
39168            'div',
39169            { className: 'benchmark_search_facets' },
39170            _react2.default.createElement(_BenchmarkFacets2.default, {
39171              facets: this.state.facets,
39172              onFacetChange: this.handleFacetChange
39173            })
39174          ),
39175          _react2.default.createElement(
39176            'div',
39177            { className: 'benchmark_search_results is-l' },
39178            _react2.default.createElement(_BenchmarkResults2.default, {
39179              results: this.state.results
39180            }),
39181            _react2.default.createElement(_BenchmarkPager2.default, {
39182              page: this.state.page,
39183              nbPages: this.state.nbPages,
39184              handlePageChange: this.handlePageChange
39185            })
39186          )
39187        )
39188      );
39189    }
39190  }]);
39191
39192  return BenchmarkSearchPage;
39193}(_react.Component);
39194
39195exports.default = BenchmarkSearchPage;
39196
39197/***/ }),
39198/* 558 */
39199/***/ (function(module, exports, __webpack_require__) {
39200
39201"use strict";
39202
39203
39204Object.defineProperty(exports, "__esModule", {
39205  value: true
39206});
39207
39208var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39209
39210var _react = __webpack_require__(32);
39211
39212var _react2 = _interopRequireDefault(_react);
39213
39214function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39215
39216function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39217
39218function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39219
39220function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39220onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39221
39222var BenchmarkSearch = function (_Component) {
39223  _inherits(BenchmarkSearch, _Component);
39224
39225  function BenchmarkSearch(props) {
39226    _classCallCheck(this, BenchmarkSearch);
39227
39228    var _this = _possibleConstructorReturn(this, (BenchmarkSearch.__proto__ || Object.getPrototypeOf(BenchmarkSearch)).call(this, props));
39229
39230    _this.handleTermChange = _this.handleTermChange.bind(_this);
39231    return _this;
39232  }
39233
39234  _createClass(BenchmarkSearch, [{
39235    key: "handleTermChange",
39236    value: function handleTermChange(e) {
39237      this.props.onTermChange(e.target.value);
39238    }
39239  }, {
39240    key: "render",
39241    value: function render() {
39242      return _react2.default.createElement(
39243        "form",
39244        null,
39245        _react2.default.createElement("input", {
39246          placeholder: "Rechercher",
39247          className: "cpcHeader_search_input",
39248          name: "search_input",
39249          "data-header-role": "algolia-search-input",
39250          value: this.props.term,
39251          onChange: this.handleTermChange,
39252          type: "search" })
39253      );
39254    }
39255  }]);
39256
39257  return BenchmarkSearch;
39258}(_react.Component);
39259
39260exports.default = BenchmarkSearch;
39261
39262/***/ }),
39263/* 559 */
39264/***/ (function(module, exports, __webpack_require__) {
39265
39266"use strict";
39267
39268
39269Object.defineProperty(exports, "__esModule", {
39270    value: true
39271});
39272
39273var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39274
39275var _react = __webpack_require__(32);
39276
39277var _react2 = _interopRequireDefault(_react);
39278
39279var _BenchmarkResult = __webpack_require__(560);
39280
39281var _BenchmarkResult2 = _interopRequireDefault(_BenchmarkResult);
39282
39283function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39284
39285function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39286
39287function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39288
39289function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39290
39291var BenchmarkResults = function (_Component) {
39292    _inherits(BenchmarkResults, _Component);
39293
39294    function BenchmarkResults() {
39295        _classCallCheck(this, BenchmarkResults);
39296
39297        return _possibleConstructorReturn(this, (BenchmarkResults.__proto__ || Object.getPrototypeOf(BenchmarkResults)).apply(this, arguments));
39298    }
39299
39300    _createClass(BenchmarkResults, [{
39301        key: 'render',
39302        value: function render() {
39303            return 0 < Object.keys(this.props.results).length ? _react2.default.createElement(
39304                'div',
39305                null,
39306                this.props.results.map(function (result, i) {
39307                    return _react2.default.createElement(_BenchmarkResult2.default, { item: result, key: i });
39308                })
39309            ) : _react2.default.createElement(
39310                'div',
39311                null,
39312                'La recherche n\'a donn\xE9 aucun resultat'
39313            );
39314        }
39315    }]);
39316
39317    return BenchmarkResults;
39318}(_react.Component);
39319
39320exports.default = BenchmarkResults;
39321
39322/***/ }),
39323/* 560 */
39324/***/ (function(module, exports, __webpack_require__) {
39325
39326"use strict";
39327
39328
39329Object.defineProperty(exports, "__esModule", {
39330    value: true
39331});
39332
39333var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39334
39335var _react = __webpack_require__(32);
39336
39337var _react2 = _interopRequireDefault(_react);
39338
39339var _algolia = __webpack_require__(226);
39340
39341function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39342
39343function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39344
39345function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39346
39347function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39347onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39348
39349var BenchmarkResult = function (_Component) {
39350    _inherits(BenchmarkResult, _Component);
39351
39352    function BenchmarkResult(props) {
39353        _classCallCheck(this, BenchmarkResult);
39354
39355        var _this = _possibleConstructorReturn(this, (BenchmarkResult.__proto__ || Object.getPrototypeOf(BenchmarkResult)).call(this, props));
39356
39357        _this.handleThemeClick = _this.handleThemeClick.bind(_this);
39358        return _this;
39359    }
39360
39361    _createClass(BenchmarkResult, [{
39362        key: 'handleThemeClick',
39363        value: function handleThemeClick(e) {
39364            var themeClickEvent = new CustomEvent('CapComThemeClick', { detail: { value: e.target.innerHTML } });
39365            document.dispatchEvent(themeClickEvent);
39366        }
39367    }, {
39368        key: 'render',
39369        value: function render() {
39370            var _this2 = this;
39371
39372            var item = this.props.item;
39373
39374            var title = (0, _algolia.renderAlgoliaHightligthed)(item, 'title');
39375            return _react2.default.createElement(
39376                'div',
39377                { className: 'cpcArticle-teaser' },
39378                _react2.default.createElement('div', { className: 'cpcArticle-teaser_img', dangerouslySetInnerHTML: { __html: item.image } }),
39379                _react2.default.createElement(
39380                    'div',
39381                    { className: 'cpcArticle-teaser_preview' },
39382                    _react2.default.createElement(
39383                        'div',
39384                        { className: 'cpcArticle_title' },
39385                        _react2.default.createElement('h3', { dangerouslySetInnerHTML: title })
39386                    ),
39387                     false ? _react2.default.createElement(
39388                        'div',
39389                        { className: 'cpcArticle_details' },
39390                        _react2.default.createElement('span', { className: 'date', dangerouslySetInnerHTML: { __html: item.contentDate } })
39391                    ) : null,
39392                    _react2.default.createElement(
39393                        'div',
39394                        { className: 'cpcArticle_label' },
39395                        _react2.default.createElement(
39396                            'ul',
39397                            { className: 'themeLabel-list' },
39398                            item.field_thematics.map(function (thematic) {
39399                                return _react2.default.createElement(
39400                                    'li',
39401                                    { key: thematic },
39402                                    _react2.default.createElement(
39403                                        'span',
39404                                        { className: 'themeLabel', onClick: _this2.handleThemeClick },
39405                                        thematic
39406                                    )
39407                                );
39408                            })
39409                        )
39410                    ),
39411                    _react2.default.createElement('div', { className: 'cpcArticle_preview', dangerouslySetInnerHTML: { __html: item.teaser } }),
39412                    _react2.default.createElement(
39413                        'a',
39414                        { className: 'cpcArticle_read-more', href: item.url },
39415                        'Lire la suite'
39416                    )
39417                )
39418            );
39419        }
39420    }]);
39421
39422    return BenchmarkResult;
39423}(_react.Component);
39424
39425exports.default = BenchmarkResult;
39426
39427/***/ }),
39428/* 561 */
39429/***/ (function(module, exports, __webpack_require__) {
39430
39431"use strict";
39432
39433
39434Object.defineProperty(exports, "__esModule", {
39435  value: true
39436});
39437
39438var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39439
39440var _react = __webpack_require__(32);
39441
39442var _react2 = _interopRequireDefault(_react);
39443
39444function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39445
39446function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39447
39448function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39449
39450function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39450onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39451
39452var BenchmarkSearch = function (_Component) {
39453  _inherits(BenchmarkSearch, _Component);
39454
39455  function BenchmarkSearch(props) {
39456    _classCallCheck(this, BenchmarkSearch);
39457
39458    var _this = _possibleConstructorReturn(this, (BenchmarkSearch.__proto__ || Object.getPrototypeOf(BenchmarkSearch)).call(this, props));
39459
39460    _this.state = { width: 0, height: 0, breakpoint: 0 };
39461    _this.updateWindowDimensions = _this.updateWindowDimensions.bind(_this);
39462    return _this;
39463  }
39464
39465  _createClass(BenchmarkSearch, [{
39466    key: 'componentDidMount',
39467    value: function componentDidMount() {
39468      this.updateWindowDimensions();
39469      window.addEventListener('resize', this.updateWindowDimensions);
39470    }
39471  }, {
39472    key: 'componentWillUnmount',
39473    value: function componentWillUnmount() {
39474      window.removeEventListener('resize', this.updateWindowDimensions);
39475    }
39476  }, {
39477    key: 'updateWindowDimensions',
39478    value: function updateWindowDimensions() {
39479      this.setState({
39480        width: window.innerWidth,
39481        height: window.innerHeight,
39482        breakpoint: parseInt(getComputedStyle(document.documentElement).getPropertyValue("--mediaquery-smallscreen-layout"))
39483      });
39484    }
39485  }, {
39486    key: 'render',
39487    value: function render() {
39488      var _this2 = this;
39489
39490      if (0 >= Object.keys(this.props.facets).length) {
39491        return null;
39492      }
39493
39494      return !isNaN(this.state.breakpoint) && this.state.breakpoint > this.state.width ? _react2.default.createElement(
39495        'details',
39496        { className: 'cpcItem cpcSubscribeContainer has-full-border' },
39497        _react2.default.createElement(
39498          'summary',
39499          { className: 'cpcItem_title' },
39500          'Filtrer par th\xE9matique'
39501        ),
39502        _react2.default.createElement(
39503          'ul',
39504          { className: 'cpcList' },
39505          Object.values(this.props.facets).map(function (facet, id) {
39506            return _react2.default.createElement(
39507              'li',
39508              { key: id },
39509              _react2.default.createElement(
39510                'span',
39511                { className: 'facetselector' },
39512                _react2.default.createElement('input', {
39513                  id: facet.id,
39514                  value: facet.id,
39515                  type: 'checkbox',
39516                  checked: facet.checked,
39517                  onChange: _this2.props.onFacetChange }),
39518                _react2.default.createElement(
39519                  'label',
39520                  { htmlFor: facet.id },
39521                  facet.id,
39522                  ' (',
39523                  facet.count,
39524                  ')'
39525                )
39526              )
39527            );
39528          })
39529        )
39530      ) : _react2.default.createElement(
39531        'div',
39532        { className: 'cpcItem cpcSubscribeContainer has-full-border' },
39533        _react2.default.createElement(
39534          'div',
39535          { className: 'cpcItem_title' },
39536          'Filtrer par th\xE9matique'
39537        ),
39538        _react2.default.createElement(
39539          'ul',
39540          { className: 'cpcList' },
39541          Object.values(this.props.facets).map(function (facet, id) {
39542            return _react2.default.createElement(
39543              'li',
39544              { key: id },
39545              _react2.default.createElement(
39546                'span',
39547                { className: 'facetselector' },
39548                _react2.default.createElement('input', {
39549                  id: facet.id,
39550                  value: facet.id,
39551                  type: 'checkbox',
39552                  checked: facet.checked,
39553                  onChange: _this2.props.onFacetChange }),
39554                _react2.default.createElement(
39555                  'label',
39556                  { htmlFor: facet.id },
39557                  facet.id,
39558                  ' (',
39559                  facet.count,
39560                  ')'
39561                )
39562              )
39563            );
39564          })
39565        )
39566      );
39567    }
39568  }]);
39569
39570  return BenchmarkSearch;
39571}(_react.Component);
39572
39573exports.default = BenchmarkSearch;
39574
39575/***/ }),
39576/* 562 */
39577/***/ (function(module, exports, __webpack_require__) {
39578
39579"use strict";
39580
39581
39582Object.defineProperty(exports, "__esModule", {
39583    value: true
39584});
39585
39586var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39587
39588var _react = __webpack_require__(32);
39589
39590var _react2 = _interopRequireDefault(_react);
39591
39592function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39593
39594function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39595
39596function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39597
39598function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { c
39598onstructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39599
39600var BenchmarkResult = function (_Component) {
39601    _inherits(BenchmarkResult, _Component);
39602
39603    function BenchmarkResult(props) {
39604        _classCallCheck(this, BenchmarkResult);
39605
39606        var _this = _possibleConstructorReturn(this, (BenchmarkResult.__proto__ || Object.getPrototypeOf(BenchmarkResult)).call(this, props));
39607
39608        _this.onPageChange = _this.onPageChange.bind(_this);
39609        return _this;
39610    }
39611
39612    _createClass(BenchmarkResult, [{
39613        key: 'onPageChange',
39614        value: function onPageChange(e) {
39615            var _props = this.props,
39616                page = _props.page,
39617                nbPages = _props.nbPages;
39618
39619            if ('next-page' === e.target.getAttribute('data-role') && nbPages > page + 1) {
39620                this.props.handlePageChange(page + 1);
39621            }
39622            if ('previous-page' === e.target.getAttribute('data-role') && 0 <= page - 1) {
39623                this.props.handlePageChange(page - 1);
39624            }
39625        }
39626    }, {
39627        key: 'render',
39628        value: function render() {
39629            var _props2 = this.props,
39630                page = _props2.page,
39631                nbPages = _props2.nbPages;
39632
39633            return nbPages <= 1 ? null : _react2.default.createElement(
39634                'nav',
39635                { className: 'cpcMiniPager-wpr benchmark_search_pager' },
39636                _react2.default.createElement(
39637                    'h4',
39638                    { className: 'visually-hidden' },
39639                    'Pagination'
39640                ),
39641                _react2.default.createElement(
39642                    'ul',
39643                    { className: 'cpcContainer has-row-direction cpcMiniPager' },
39644                    page !== 0 ? _react2.default.createElement(
39645                        'li',
39646                        null,
39647                        _react2.default.createElement(
39648                            'button',
39649                            { className: 'cpcItemButton', rel: 'previous', 'data-role': 'previous-page', onClick: this.onPageChange },
39650                            _react2.default.createElement(
39651                                'span',
39652                                { style: { pointerEvents: 'none' }, className: 'cpcMiniPager-next' },
39653                                '<'
39654                            )
39655                        )
39656                    ) : null,
39657                    _react2.default.createElement(
39658                        'li',
39659                        { className: 'cpcMiniPager-page' },
39660                        'Page ',
39661                        page + 1,
39662                        '/',
39663                        nbPages
39664                    ),
39665                    nbPages > page + 1 ? _react2.default.createElement(
39666                        'li',
39667                        null,
39668                        _react2.default.createElement(
39669                            'button',
39670                            { className: 'cpcItemButton', rel: 'next', 'data-role': 'next-page', onClick: this.onPageChange },
39671                            _react2.default.createElement(
39672                                'span',
39673                                { style: { pointerEvents: 'none' }, className: 'cpcMiniPager-next' },
39674                                '>'
39675                            )
39676                        )
39677                    ) : null
39678                )
39679            );
39680        }
39681    }]);
39682
39683    return BenchmarkResult;
39684}(_react.Component);
39685
39686exports.default = BenchmarkResult;
39687
39688/***/ }),
39689/* 563 */
39690/***/ (function(module, exports, __webpack_require__) {
39691
39692"use strict";
39693
39694
39695Object.defineProperty(exports, "__esModule", {
39696  value: true
39697});
39698exports.defaultSearch = exports.indexSearch = undefined;
39699
39700var _algoliasearch = __webpack_require__(153);
39701
39702var _algoliasearch2 = _interopRequireDefault(_algoliasearch);
39703
39704var _api_data = __webpack_require__(225);
39705
39706function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39707
39708var client = (0, _algoliasearch2.default)(_api_data.appId, _api_data.apiKey);
39709var index = client.initIndex(_api_data.benchmarkIndexName);
39710
39711var indexSearch = exports.indexSearch = function indexSearch(query, facets, page) {
39712  if (undefined === page) {
39713    page = 0;
39714  }
39715  return index.search({
39716    'query': query,
39717    'facets': 'field_thematics',
39718    'sortFacetValuesBy': 'alpha',
39719    'filters': facets,
39720    'page': page,
39721    'hitsPerPage': 10
39722  }).then(function (response) {
39723    return response;
39724  }).catch(function (error) {
39725    console.error(error);
39726  });
39727};
39728
39729var defaultSearch = exports.defaultSearch = function defaultSearch() {
39730  return index.search({
39731    'query': '',
39732    'facets': 'field_thematics',
39733    'sortFacetValuesBy': 'alpha',
39734    'page': 0,
39735    'hitsPerPage': 10
39736  }).then(function (response) {
39737    return response;
39738  }).catch(function (error) {
39739    console.error(error);
39740  });
39741};
39742
39743/***/ }),
39744/* 564 */
39745/***/ (function(module, exports, __webpack_require__) {
39746
39747"use strict";
39748
39749
39750Object.defineProperty(exports, "__esModule", {
39751    value: true
39752});
39753var getParameterByName = exports.getParameterByName = function getParameterByName(name, url) {
39754    if (undefined === url) {
39755        url = window.location.href;
39756    }
39757    name = name.replace(/[\[\]]/g, "\\$&");
39758    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)");
39759    var results = regex.exec(url);
39760    if (!results) {
39761
39762        return null;
39763    }
39764    if (!results[2]) {
39765
39766        return '';
39767    }
39768    var param = decodeURIComponent(results[2].replace(/\+/g, " "));
39769
39770    return param;
39771};
39772
39773/***/ }),
39774/* 565 */
39775/***/ (function(module, exports, __webpack_require__) {
39776
39777"use strict";
39778
39779
39780Object.defineProperty(exports, "__esModule", {
39781    value: true
39782});
39783
39784var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
39785
39786var _react = __webpack_require__(32);
39787
39788var _react2 = _interopRequireDefault(_react);
39789
39790function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39791
39792function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
39793
39794function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
39795
39796function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
39797
39798var Attendees = function (_Component) {
39799    _inherits(Attendees, _Component);
39800
39801    function Attendees(props) {
39802        _classCallCheck(this, Attendees);
39803
39804        var _this = _possibleConstructorReturn(this, (Attendees.__proto__ || Object.getPrototypeOf(Attendees)).call(this, props));
39805
39806        _this.state = {
39807            originalItems: [],
39808            items: [],
39809            order: null,
39810            orderBy: null,
39811            itemsPerPage: 50,
39812            page: 0,
39813            filters: {}
39814        };
39815        _this.doFilter = _this.doFilter.bind(_this);
39816        _this.doSort = _this.doSort.bind(_this);
39817        _this.realDoUpdate = _this.realDoUpdate.bind(_this);
39818        _this.doUpdate = _this.doUpdate.bind(_this);
39819        _this.getItems = _this.getItems.bind(_this);
39820        _this.sortItems = _this.sortItems.bind(_this);
39821        _this.paginateItems = _this.paginateItems.bind(_this);
39822        _this.filterItems = _this.filterItems.bind(_this);
39823        _this.getUniqueValues = _this.getUniqueValues.bind(_this);
39824        return _this;
39825    }
39826
39827    _createClass(Attendees, [{
39828        key: 'doFilter',
39829        value: function doFilter(items, filters) {
39830            return items.filter(function (item) {
39831                var isMatch = true;
39832                Object.keys(filters).map(function (filterName) {
39833                    var filterValue = filters[filterName];
39834                    if (!filterValue || filterName !== 'Code postal' && filterName in item && filterValue && typeof item[filterName] === 'string' && item[filterName].match(new RegExp(filterValue, 'i')) || filterName === 'Code postal' && filterName in item && typeof item[filterName] === 'string' && item[filterName].match(new RegExp('^' + filterValue))) return;
39835                    isMatch = false;
39836                });
39837                return isMatch;
39838            });
39839        }
39840    }, {
39841        key: 'doSort',
39842        value: function doSort(items, order, orderBy) {
39843            return items.sort(function (a, b) {
39844                var aString = typeof a[order] === 'string' ? a[order] : '',
39845                    bString = typeof b[order] === 'string' ? b[order] : '';
39846                try {
39847                    return (orderBy === 'asc' ? +1 : -1) * aString.toLocaleLowerCase('fr').localeCompare(bString.toLocaleLowerCase('fr'), 'fr', { sensitivity: 'base', ignorePunctuation: true });
39848                } catch (e) {
39849                    return (orderBy === 'asc' ? +1 : -1) * (aString.toLowerCase() == bString.toLowerCase() ? 0 : aString.toLowerCase() > bString.toLowerCase() ? +1 : -1);
39850                }
39851            });
39852        }
39853    }, {
39854        key: 'realDoUpdate',
39855        value: function realDoUpdate(items, filters, order, orderBy) {
39856            return this.doSort(this.doFilter(items, filters), order, orderBy);
39857        }
39858    }, {
39859        key: 'doUpdate',
39860        value: function doUpdate(filters, order, orderBy) {
39861            return this.realDoUpdate(this.state.originalItems, filters, order, orderBy);
39862        }
39863    }, {
39864        key: 'getItems',
39865        value: function getItems() {
39866            var self = this,
39867                request = new XMLHttpRequest();
39868            request.open('GET', drupalSettings.capcom_header.business_api_base_url + '/attendee-finder/' + this.props.eventParam, true);
39869            request.onreadystatechange = function () {
39870                if (request.readyState != 4 || request.status != 200) return;
39871
39872                var items = JSON.parse(request.responseText);
39873
39874                self.setState({
39875                    originalItems: items,
39876                    items: self.realDoUpdate(items, {}, 'Nom', 'asc'),
39877                    order: 'Nom',
39878                    orderBy: 'asc'
39879                });
39880            };
39881            request.send();
39882        }
39883    }, {
39884        key: 'getUniqueValues',
39885        value: function getUniqueValues(items, col) {
39886            var values = [];
39887
39888            items.forEach(function (item) {
39889                var index = values.indexOf(item[col]);
39890                if (index === -1) {
39891                    values.push(item[col]);
39892                }
39893            });
39894
39895            return values.sort(function (aString, bString) {
39896                if (typeof aString !== 'string') {
39897                    aString = '';
39898                }
39899                if (typeof bString !== 'string') {
39900                    bString = '';
39901                }
39902                try {
39903                    return aString.toLocaleLowerCase('fr').localeCompare(bString.toLocaleLowerCase('fr'), 'fr', { sensitivity: 'base', ignorePunctuation: true });
39904                } catch (e) {
39905                    return aString.toLowerCase() == bString.toLowerCase() ? 0 : aString.toLowerCase() > bString.toLowerCase() ? +1 : -1;
39906                }
39907            });
39908        }
39909    }, {
39910        key: 'paginateItems',
39911        value: function paginateItems(e) {
39912            var newPage = parseInt(e.target.getAttribute('data-page'));
39913
39914            this.setState({
39915                page: newPage
39916            });
39917        }
39918    }, {
39919        key: 'sortItems',
39920        value: function sortItems(e) {
39921            var newOrder = e.target.getAttribute('data-col'),
39922                newOrderBy = this.state.orderBy !== 'asc' ? 'asc' : 'desc';
39923
39924            this.setState({
39925                items: this.doUpdate(this.state.filters, newOrder, newOrderBy),
39926                order: newOrder,
39927                orderBy: newOrderBy
39928            });
39929        }
39930    }, {
39931        key: 'filterItems',
39932        value: function filterItems(e) {
39933            var newFilters = {},
39934                inputs = e.target.parentElement.parentElement.getElementsByTagName('input'),
39935                selects = e.target.parentElement.parentElement.getElementsByTagName('select');
39936
39937            for (var index = 0; index < inputs.length; index += 1) {
39938                var name = inputs[index].getAttribute('name'),
39939                    value = inputs[index].value;
39940                if (name === 'Code postal') {
39941                    value = value.replace(/[^\d]+/, '');
39942                }
39943                newFilters[name] = value;
39944            }
39945
39946            for (var index = 0; index < selects.length; index += 1) {
39947                newFilters[selects[index].getAttribute('name')] = selects[index].options[selects[index].selectedIndex].value;
39948            }
39949
39950            this.setState({
39951                items: this.doUpdate(newFilters, this.state.order, this.state.orderBy),
39952                filters: newFilters,
39953                page: 0
39954            });
39955        }
39956    }, {
39957        key: 'componentDidMount',
39958        value: function componentDidMount() {
39959            if (this.state.items.length === 0) {
39960                this.getItems();
39961            }
39962        }
39963    }, {
39964        key: 'render',
39965        value: function render() {
39966            var _this2 = this;
39967
39968            if (this.state.originalItems.length > 0) {
39969                var pages = [],
39970                    cols = Object.getOwnPropertyNames(this.state.originalItems.find(function (element) {
39971                    return element;
39972                })).filter(function (col) {
39973                    return col != 'id';
39974                });
39975                for (var index = 0; index < this.state.items.length / this.state.itemsPerPage; index += 1) {
39976                    pages[index] = index;
39977                }
39978                return _react2.default.createElement(
39979                    'div',
39980                    null,
39981                    _react2.default.createElement(
39982                        'table',
39983                        null,
39984                        _react2.default.createElement(
39985                            'thead',
39986                            null,
39987                            _react2.default.createElement(
39988                                'tr',
39989                                null,
39990                                cols.map(function (col) {
39991                                    return _react2.default.createElement(
39992                                        'th',
39993                                        { key: col, onClick: _this2.sortItems, 'data-col': col, className: _this2.state.order === col ? _this2.state.orderBy === 'asc' ? 'order asc' : 'order desc' : 'order' },
39994                                        col
39995                                    );
39996                                })
39997                            ),
39998                            _react2.default.createElement(
39999                                'tr',
40000                                null,
40001                                cols.map(function (col) {
40002                                    switch (col) {
40003                                        /* Remplace l'input par un select
40004                                        case 'Fonction' :
40005                                            return (
40006                                                <th key={col} className="attendee__select">
40007                                                    <select onChange={this.filterItems} name={col} value={col in this.state.filters ? this.state.filters[col] : '' }>
40008                                                        {this.getUniqueValues(this.state.originalItems, col).map((value) => {
40009                                                            return (
40010                                                                <option key={value} value={value}>
40011                                                                    {value}
40012                                                                </option>
40013                                                            )
40014                                                        })}
40015                                                    </select>
40016                                                </th>
40017                                            );
40018                                            break;
40019                                        */
40020                                        case 'Code postal':
40021                                            return _react2.default.createElement(
40022                                                'th',
40023                                                { key: col, className: 'attendee__search' },
40024                                                _react2.default.createElement('input', { onChange: _this2.filterItems, name: col, value: col in _this2.state.filters ? _this2.state.filters[col] : '', maxLength: '2', pattern: '[0-9]+' })
40025                                            );
40026                                            break;
40027                                        default:
40028                                            return _react2.default.createElement(
40029                                                'th',
40030                                                { key: col, className: 'attendee__search' },
40031                                                _react2.default.createElement('input', { onChange: _this2.filterItems, name: col, value: col in _this2.state.filters ? _this2.state.filters[col] : '' })
40032                                            );
40033                                    }
40034                                })
40035                            )
40036                        ),
40037                        _react2.default.createElement(
40038                            'tbody',
40039                            null,
40040                            this.state.items.map(function (item, index) {
40041                                if (index >= _this2.state.itemsPerPage * _this2.state.page && index < _this2.state.itemsPerPage * (_this2.state.page + 1)) return _react2.default.createElement(
40042                                    'tr',
40043                                    { key: item.id },
40044                                    cols.map(function (col) {
40045                                        return _react2.default.createElement(
40046                                            'td',
40047                                            { key: col },
40048                                            item[col]
40049                                        );
40050                                    })
40051                                );
40052                            })
40053                        )
40054                    ),
40055                    this.state.items.length > this.state.itemsPerPage ? _react2.default.createElement(
40056                        'ul',
40057                        null,
40058                        pages.map(function (index) {
40059                            return _react2.default.createElement(
40060                                'li',
40061                                { key: index, onClick: _this2.paginateItems, 'data-page': index, className: _this2.state.page === index ? 'current' : '' },
40062                                index + 1
40063                            );
40064                        })
40065                    ) : ''
40066                );
40067            } else {
40068                return null;
40069            }
40070        }
40071    }]);
40072
40073    return Attendees;
40074}(_react.Component);
40075
40076exports.default = Attendees;
40077
40078/***/ })
40079/******/ ]);;
40080(function($,Drupal,drupalSettings){'use strict';Drupal.google_analytics={};$(document).ready(function(){$(document.body).on('mousedown keyup touchstart',function(event){$(event.target).closest('a,area').each(function(){if(typeof this.href!=="string")return;if(Drupal.google_analytics.isInternal(this.href))if($(this).is('.colorbox')&&(drupalSettings.google_analytics.trackColorbox)){}else if(drupalSettings.google_analytics.trackDownload&&Drupal.google_analytics.isDownload(this.href))gtag('event',Drupal.google_analytics.getDownloadExtension(this.href).toUpperCase(),{event_category:'Downloads',event_label:Drupal.google_analytics.getPageUrl(this.href),transport_type:'beacon'});else{if(Drupal.google_analytics.isInternalSpecial(this.href))gtag('config',drupalSettings.google_analytics.account,{page_path:Drupal.google_analytics.getPageUrl(this.href),transport_type:'beacon'});}else if(drupalSettings.google_analytics.trackMailto&&$(this).is("a[href^='mailto:'],area[href^='mailto:']"))gtag('event','Click',{event_category:'Mails',event_label:this.href.substring(7),transport_type:'beacon'});else if(drupalSettings.google_analytics.trackTel&&$(this).is("a[href^='tel:'],area[href^='tel:']"))gtag('event','Click',{event_category:'Telephone calls',event_label:this.href.substring(4),transport_type:'beacon'});else{if(drupalSettings.google_analytics.trackOutbound&&this.href.match(/^\w+:\/\//i))if(drupalSettings.google_analytics.trackDomainMode!==2||(drupalSettings.google_analytics.trackDomainMode===2&&!Drupal.google_analytics.isCrossDomain(this.hostname,drupalSettings.google_analytics.trackCrossDomains)))gtag('event','Click',{event_category:'Outbound links',event_label:this.href,transport_type:'beacon'});}});});if(drupalSettings.google_analytics.trackUrlFragments)window.onhashchange=function(){gtag('config',drupalSettings.google_analytics.account,{page_path:location.pathname+location.search+location.hash});};if(drupalSettings.google_analytics.trackColorbox)$(document).on('cbox_complete',function(){var href=$.colorbox.element
40080().attr('href');if(href)gtag('config',drupalSettings.google_analytics.account,{page_path:Drupal.google_analytics.getPageUrl(href)});});});Drupal.google_analytics.isCrossDomain=function(hostname,crossDomains){return $.inArray(hostname,crossDomains)>-1?true:false;};Drupal.google_analytics.isDownload=function(url){var isDownload=new RegExp('\\.('+drupalSettings.google_analytics.trackDownloadExtensions+')([\?#].*)?$','i');return isDownload.test(url);};Drupal.google_analytics.isInternal=function(url){var isInternal=new RegExp('^(https?):\/\/'+window.location.host,'i');return isInternal.test(url);};Drupal.google_analytics.isInternalSpecial=function(url){var isInternalSpecial=new RegExp('(\/go\/.*)$','i');return isInternalSpecial.test(url);};Drupal.google_analytics.getPageUrl=function(url){var extractInternalUrl=new RegExp('^(https?):\/\/'+window.location.host,'i');return url.replace(extractInternalUrl,'');};Drupal.google_analytics.getDownloadExtension=function(url){var extractDownloadextension=new RegExp('\\.('+drupalSettings.google_analytics.trackDownloadExtensions+')([\?#].*)?$','i');var extension=extractDownloadextension.exec(url);return (extension===null)?'':extension[1];};})(jQuery,Drupal,drupalSettings);;
40081Drupal.debounce=function(func,wait,immediate){let timeout;let result;return function(...args){const context=this;const later=function(){timeout=null;if(!immediate)result=func.apply(context,args);};const callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result;};};;
40082/* @license GPL-2.0-or-later https://raw.githubusercontent.com/jquery-form/form/master/LICENSE */
40083(function(factory){if(typeof define==='function'&&define.amd)define(['jquery'],factory);else if(typeof module==='object'&&module.exports)module.exports=function(root,jQuery){if(typeof jQuery==='undefined')if(typeof window!=='undefined')jQuery=require('jquery');else jQuery=require('jquery')(root);factory(jQuery);return jQuery;};else factory(jQuery);}(function($){'use strict';var rCRLF=/\r?\n/g;var feature={};feature.fileapi=$('<input type="file">').get(0).files!==undefined;feature.formdata=(typeof window.FormData!=='undefined');var hasProp=!!$.fn.prop;$.fn.attr2=function(){if(!hasProp)return this.attr.apply(this,arguments);var val=this.prop.apply(this,arguments);if((val&&val.jquery)||typeof val==='string')return val;return this.attr.apply(this,arguments);};$.fn.ajaxSubmit=function(options,data,dataType,onSuccess){if(!this.length){log('ajaxSubmit: skipping submit process - no element selected');return this;}var method,action,url,isMsie,iframeSrc,$form=this;if(typeof options==='function')options={success:options};else if(typeof options==='string'||(options===false&&arguments.length>0)){options={'url':options,'data':data,'dataType':dataType};if(typeof onSuccess==='function')options.success=onSuccess;}else{if(typeof options==='undefined')options={};}method=options.method||options.type||this.attr2('method');action=options.url||this.attr2('action');url=(typeof action==='string')?action.trim():'';url=url||window.location.href||'';if(url)url=(url.match(/^([^#]+)/)||[])[1];isMsie=/(MSIE|Trident)/.test(navigator.userAgent||'');iframeSrc=(isMsie&&/^https/i.test(window.location.href||''))?'javascript:false':'about:blank';options=$.extend(true,{url,success:$.ajaxSettings.success,type:method||$.ajaxSettings.type,iframeSrc},options);var veto={};this.trigger('form-pre-serialize',[this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');return this;}if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log('ajaxSubmit: submit aborted via beforeSerialize callback');return this;}var traditional=options.traditional;if(typeof traditional==='undefined')traditional=$.ajaxSettings.traditional;var elements=[];var qx,a=this.formToArray(options.semantic,elements,options.filtering);if(options.data){var optionsData=typeof (options.data)==="function"?options.data(a):options.data;options.extraData=optionsData;qx=$.param(optionsData,traditional);}if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log('ajaxSubmit: submit aborted via beforeSubmit callback');return this;}this.trigger('form-submit-validate',[a,this,options,veto]);if(veto.veto){log('ajaxSubmit: submit vetoed via form-submit-validate trigger');return this;}var q=$.param(a,traditional);if(qx)q=(q?(q+'&'+qx):qx);if(options.type.toUpperCase()==='GET'){options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;options.data=null;}else options.data=q;var callbacks=[];if(options.resetForm)callbacks.push(function(){$form.resetForm();});if(options.clearForm)callbacks.push(function(){$form.clearForm(options.includeHidden);});if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data,textStatus,jqXHR){var successArguments=arguments,fn=options.replaceTarget?'replaceWith':'html';$(options.target)[fn](data).each(function(){oldSuccess.apply(this,successArguments);});});}else{if(options.success)if(Array.isArray(options.success))callbacks=callbacks.concat(options.success);else callbacks.push(options.success);}options.success=function(data,status,xhr){var context=options.context||this;for(var i=0,max=callbacks.length;i<max;i++)callbacks[i].apply(context,[data,status,xhr||$form,$form]);};if(options.error){var oldError=options.error;options.error=function(xhr,status,error){var context=options.context||this;oldError.apply(context,[xhr,status,error,$form]);};}if(options.complete){var oldComplete=options.complete;options.complete=function(xhr,status){var context=options.context||this;oldComplete.apply(context,[xhr,status,$form]);};}var fileInputs=$('input[type=file]:enabled',this).filter(function(){return $(this).val()!=='';});var hasFileInputs=fileInputs.length>0;var mp='multipart/form-data';var multipart=($form.attr('enctype')===mp||$form.attr('encoding')===mp);var fileAPI=feature.fileapi&&feature.formdata;log('fileAPI :'+fileAPI);var shouldUseFrame=(hasFileInputs||multipart)&&!fileAPI;var jqxhr;if(options.iframe!==false&&(options.iframe||shouldUseFrame))if(options.closeKeepAlive)$.get(options.closeKeepAlive,function(){jqxhr=fileUploadIframe(a);});else jqxhr=fileUploadIframe(a);else if((hasFileInputs||multipart)&&fileAPI)jqxhr=fileUploadXhr(a);else jqxhr=$.ajax(options);$form.removeData('jqxhr').data('jqxhr',jqxhr);for(var k=0;k<elements.length;k++)elements[k]=null;this.trigger('form-submit-notify',[this,options]);return this;function deepSerialize(extraData){var serialized=$.param(extraData,options.traditional).split('&');var len=serialized.length;var result=[];var i,part;for(i=0;i<len;i++){serialized[i]=serialized[i].replace(/\+/g,' ');part=serialized[i].split('=');result.push([decodeURIComponent(part[0]),decodeURIComponent(part[1])]);}return result;}function fileUploadXhr(a){var formdata=new FormData();for(var i=0;i<a.length;i++)formdata.append(a[i].name,a[i].value);if(options.extraData){var serializedData=deepSerialize(options.extraData);for(i=0;i<serializedData.length;i++)if(serializedData[i])formdata.append(serializedData[i][0],serializedData[i][1]);}options.data=null;var s=$.extend(true,{},$.ajaxSettings,options,{contentType:false,processData:false,cache:false,type:method||'POST'});if(options.uploadProgress)s.xhr=function(){var xhr=$.ajaxSettings.xhr();if(xhr.upload)xhr.upload.addEventListener('progress',function(event){var percent=0;var position=event.loaded||event.position;var total=event.total;if(event.lengthComputable)percent=Math.ceil(position/total*100);options.uploadProgress(event,position,total,percent);},false);return xhr;};s.data=null;var beforeSend=s.beforeSend;s.beforeSend=function(xhr,o){if(options.formData)o.data=options.formData;else o.data=formdata;
40083if(beforeSend)beforeSend.call(this,xhr,o);};return $.ajax(s);}function fileUploadIframe(a){var form=$form[0],el,i,s,g,id,$io,io,xhr,sub,n,timedOut,timeoutHandle;var deferred=$.Deferred();deferred.abort=function(status){xhr.abort(status);};if(a)for(i=0;i<elements.length;i++){el=$(elements[i]);if(hasProp)el.prop('disabled',false);else el.removeAttr('disabled');}s=$.extend(true,{},$.ajaxSettings,options);s.context=s.context||s;id='jqFormIO'+new Date().getTime();var ownerDocument=form.ownerDocument;var $body=$form.closest('body');if(s.iframeTarget){$io=$(s.iframeTarget,ownerDocument);n=$io.attr2('name');if(!n)$io.attr2('name',id);else id=n;}else{$io=$('<iframe name="'+id+'" src="'+s.iframeSrc+'" />',ownerDocument);$io.css({position:'absolute',top:'-1000px',left:'-1000px'});}io=$io[0];xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:'n/a',getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(status){var e=(status==='timeout'?'timeout':'aborted');log('aborting upload... '+e);this.aborted=1;try{if(io.contentWindow.document.execCommand)io.contentWindow.document.execCommand('Stop');}catch(ignore){}$io.attr('src',s.iframeSrc);xhr.error=e;if(s.error)s.error.call(s.context,xhr,e,status);if(g)$.event.trigger('ajaxError',[xhr,s,e]);if(s.complete)s.complete.call(s.context,xhr,e);}};g=s.global;if(g&&$.active++===0)$.event.trigger('ajaxStart');if(g)$.event.trigger('ajaxSend',[xhr,s]);if(s.beforeSend&&s.beforeSend.call(s.context,xhr,s)===false){if(s.global)$.active--;deferred.reject();return deferred;}if(xhr.aborted){deferred.reject();return deferred;}sub=form.clk;if(sub){n=sub.name;if(n&&!sub.disabled){s.extraData=s.extraData||{};s.extraData[n]=sub.value;if(sub.type==='image'){s.extraData[n+'.x']=form.clk_x;s.extraData[n+'.y']=form.clk_y;}}}var CLIENT_TIMEOUT_ABORT=1;var SERVER_ABORT=2;function getDoc(frame){var doc=null;try{if(frame.contentWindow)doc=frame.contentWindow.document;}catch(err){log('cannot get iframe.contentWindow document: '+err);}if(doc)return doc;try{doc=frame.contentDocument?frame.contentDocument:frame.document;}catch(err){log('cannot get iframe.contentDocument: '+err);doc=frame.document;}return doc;}var csrf_token=$('meta[name=csrf-token]').attr('content');var csrf_param=$('meta[name=csrf-param]').attr('content');if(csrf_param&&csrf_token){s.extraData=s.extraData||{};s.extraData[csrf_param]=csrf_token;}function doSubmit(){var t=$form.attr2('target'),a=$form.attr2('action'),mp='multipart/form-data',et=$form.attr('enctype')||$form.attr('encoding')||mp;form.setAttribute('target',id);if(!method||/post/i.test(method))form.setAttribute('method','POST');if(a!==s.url)form.setAttribute('action',s.url);if(!s.skipEncodingOverride&&(!method||/post/i.test(method)))$form.attr({encoding:'multipart/form-data',enctype:'multipart/form-data'});if(s.timeout)timeoutHandle=setTimeout(function(){timedOut=true;cb(CLIENT_TIMEOUT_ABORT);},s.timeout);function checkState(){try{var state=getDoc(io).readyState;log('state = '+state);if(state&&state.toLowerCase()==='uninitialized')setTimeout(checkState,50);}catch(e){log('Server abort: ',e,' (',e.name,')');cb(SERVER_ABORT);if(timeoutHandle)clearTimeout(timeoutHandle);timeoutHandle=undefined;}}var extraInputs=[];try{if(s.extraData)for(var n in s.extraData)if(s.extraData.hasOwnProperty(n))if($.isPlainObject(s.extraData[n])&&s.extraData[n].hasOwnProperty('name')&&s.extraData[n].hasOwnProperty('value'))extraInputs.push($('<input type="hidden" name="'+s.extraData[n].name+'">',ownerDocument).val(s.extraData[n].value).appendTo(form)[0]);else extraInputs.push($('<input type="hidden" name="'+n+'">',ownerDocument).val(s.extraData[n]).appendTo(form)[0]);if(!s.iframeTarget)$io.appendTo($body);if(io.attachEvent)io.attachEvent('onload',cb);else io.addEventListener('load',cb,false);setTimeout(checkState,15);try{form.submit();}catch(err){var submitFn=document.createElement('form').submit;submitFn.apply(form);}}finally{form.setAttribute('action',a);form.setAttribute('enctype',et);if(t)form.setAttribute('target',t);else $form.removeAttr('target');$(extraInputs).remove();}}if(s.forceSync)doSubmit();else setTimeout(doSubmit,10);var data,doc,domCheckCount=50,callbackProcessed;function cb(e){if(xhr.aborted||callbackProcessed)return;doc=getDoc(io);if(!doc){log('cannot access response document');e=SERVER_ABORT;}if(e===CLIENT_TIMEOUT_ABORT&&xhr){xhr.abort('timeout');deferred.reject(xhr,'timeout');return;}if(e===SERVER_ABORT&&xhr){xhr.abort('server abort');deferred.reject(xhr,'error','server abort');return;}if(!doc||doc.location.href===s.iframeSrc)if(!timedOut)return;if(io.detachEvent)io.detachEvent('onload',cb);else io.removeEventListener('load',cb,false);var status='success',errMsg;
40083try{if(timedOut)throw 'timeout';var isXml=s.dataType==='xml'||doc.XMLDocument||$.isXMLDoc(doc);log('isXml='+isXml);if(!isXml&&window.opera&&(doc.body===null||!doc.body.innerHTML))if(--domCheckCount){log('requeing onLoad callback, DOM not available');setTimeout(cb,250);return;}var docRoot=doc.body?doc.body:doc.documentElement;xhr.responseText=docRoot?docRoot.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(isXml)s.dataType='xml';xhr.getResponseHeader=function(header){var headers={'content-type':s.dataType};return headers[header.toLowerCase()];};if(docRoot){xhr.status=Number(docRoot.getAttribute('status'))||xhr.status;xhr.statusText=docRoot.getAttribute('statusText')||xhr.statusText;}var dt=(s.dataType||'').toLowerCase();var scr=/(json|script|text)/.test(dt);if(scr||s.textarea){var ta=doc.getElementsByTagName('textarea')[0];if(ta){xhr.responseText=ta.value;xhr.status=Number(ta.getAttribute('status'))||xhr.status;xhr.statusText=ta.getAttribute('statusText')||xhr.statusText;}else{if(scr){var pre=doc.getElementsByTagName('pre')[0];var b=doc.getElementsByTagName('body')[0];if(pre)xhr.responseText=pre.textContent?pre.textContent:pre.innerText;else{if(b)xhr.responseText=b.textContent?b.textContent:b.innerText;}}}}else{if(dt==='xml'&&!xhr.responseXML&&xhr.responseText)xhr.responseXML=toXml(xhr.responseText);}try{data=httpData(xhr,dt,s);}catch(err){status='parsererror';xhr.error=errMsg=(err||status);}}catch(err){log('error caught: ',err);status='error';xhr.error=errMsg=(err||status);}if(xhr.aborted){log('upload aborted');status=null;}if(xhr.status)status=((xhr.status>=200&&xhr.status<300)||xhr.status===304)?'success':'error';if(status==='success'){if(s.success)s.success.call(s.context,data,'success',xhr);deferred.resolve(xhr.responseText,'success',xhr);if(g)$.event.trigger('ajaxSuccess',[xhr,s]);}else{if(status){if(typeof errMsg==='undefined')errMsg=xhr.statusText;if(s.error)s.error.call(s.context,xhr,status,errMsg);deferred.reject(xhr,'error',errMsg);if(g)$.event.trigger('ajaxError',[xhr,s,errMsg]);}}if(g)$.event.trigger('ajaxComplete',[xhr,s]);if(g&&!--$.active)$.event.trigger('ajaxStop');if(s.complete)s.complete.call(s.context,xhr,status);callbackProcessed=true;if(s.timeout)clearTimeout(timeoutHandle);setTimeout(function(){if(!s.iframeTarget)$io.remove();else $io.attr('src',s.iframeSrc);xhr.responseXML=null;},100);}var toXml=$.parseXML||function(s,doc){if(window.ActiveXObject){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async='false';doc.loadXML(s);}else doc=(new DOMParser()).parseFromString(s,'text/xml');return (doc&&doc.documentElement&&doc.documentElement.nodeName!=='parsererror')?doc:null;};var httpData=function(xhr,type,s){var ct=xhr.getResponseHeader('content-type')||'',xml=((type==='xml'||!type)&&ct.indexOf('xml')>=0),data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.nodeName==='parsererror')if($.error)$.error('parsererror');if(s&&s.dataFilter)data=s.dataFilter(data,type);if(typeof data==='string')if((type==='json'||!type)&&ct.indexOf('json')>=0)data=JSON.parse(data);else{if((type==='script'||!type)&&ct.indexOf('javascript')>=0)$.globalEval(data);}return data;};return deferred;}};$.fn.ajaxForm=function(options,data,dataType,onSuccess){if(typeof options==='string'||(options===false&&arguments.length>0)){options={'url':options,'data':data,'dataType':dataType};if(typeof onSuccess==='function')options.success=onSuccess;}options=options||{};options.delegation=options.delegation&&typeof $.fn.on==='function';if(!options.delegation&&this.length===0){var o={s:this.selector,c:this.context};if(!$.isReady&&o.s){log('DOM not ready, queuing ajaxForm');$(function(){$(o.s,o.c).ajaxForm(options);});return this;}log('terminating; zero elements found by selector'+($.isReady?'':' (DOM not ready)'));return this;}if(options.delegation){$(document).off('submit.form-plugin',this.selector,doAjaxSubmit).off('click.form-plugin',this.selector,captureSubmittingElement).on('submit.form-plugin',this.selector,options,doAjaxSubmit).on('click.form-plugin',this.selector,options,captureSubmittingElement);return this;}if(options.beforeFormUnbind)options.beforeFormUnbind(this,options);return this.ajaxFormUnbind().on('submit.form-plugin',options,doAjaxSubmit).on('click.form-plugin',options,captureSubmittingElement);};function doAjaxSubmit(e){var options=e.data;if(!e.isDefaultPrevented()){e.preventDefault();$(e.target).closest('form').ajaxSubmit(options);}}function captureSubmittingElement(e){var target=e.target;var $el=$(target);if(!$el.is('[type=submit],[type=image]')){var t=$el.closest('[type=submit]');if(t.length===0)return;target=t[0];}var form=target.form;form.clk=target;if(target.type==='image')if(typeof e.offsetX!=='undefined'){form.clk_x=e.offsetX;form.clk_y=e.offsetY;}else if(typeof $.fn.offset==='function'){var offset=$el.offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top;}else{form.clk_x=e.pageX-target.offsetLeft;form.clk_y=e.pageY-target.offsetTop;}setTimeout(function(){form.clk=form.clk_x=form.clk_y=null;},100);}$.fn.ajaxFormUnbind=function(){return this.off('submit.form-plugin click.form-plugin');};$.fn.formToArray=function(semantic,elements,filtering){var a=[];if(this.length===0)return a;var form=this[0];var formId=this.attr('id');var els=(semantic||typeof form.elements==='undefined')?form.getElementsByTagName('*'):form.elements;var els2;if(els)els=$.makeArray(els);if(formId&&(semantic||/(Edge|Trident)\//.test(navigator.userAgent))){els2=$(':input[form="'+formId+'"]').get();if(els2.length)els=(els||[]).concat(els2);}if(!els||!els.length)return a;
40083if(typeof (filtering)==="function")els=$.map(els,filtering);var i,j,n,v,el,max,jmax;for(i=0,max=els.length;i<max;i++){el=els[i];n=el.name;if(!n||el.disabled)continue;if(semantic&&form.clk&&el.type==='image'){if(form.clk===el){a.push({name:n,value:$(el).val(),type:el.type});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}continue;}v=$.fieldValue(el,true);if(v&&v.constructor===Array){if(elements)elements.push(el);for(j=0,jmax=v.length;j<jmax;j++)a.push({name:n,value:v[j]});}else if(feature.fileapi&&el.type==='file'){if(elements)elements.push(el);var files=el.files;if(files.length)for(j=0;j<files.length;j++)a.push({name:n,value:files[j],type:el.type});else a.push({name:n,value:'',type:el.type});}else{if(v!==null&&typeof v!=='undefined'){if(elements)elements.push(el);a.push({name:n,value:v,type:el.type,required:el.required});}}}if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0];n=input.name;if(n&&!input.disabled&&input.type==='image'){a.push({name:n,value:$input.val()});a.push({name:n+'.x',value:form.clk_x},{name:n+'.y',value:form.clk_y});}}return a;};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic));};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n)return;var v=$.fieldValue(this,successful);if(v&&v.constructor===Array)for(var i=0,max=v.length;i<max;i++)a.push({name:n,value:v[i]});else{if(v!==null&&typeof v!=='undefined')a.push({name:this.name,value:v});}});return $.param(a);};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v==='undefined'||(v.constructor===Array&&!v.length))continue;if(Array.isArray(v))val=val.concat(v);else val.push(v);}return val;};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful==='undefined')successful=true;if(successful&&(!n||el.disabled||t==='reset'||t==='button'||(t==='checkbox'||t==='radio')&&!el.checked||(t==='submit'||t==='image')&&el.form&&el.form.clk!==el||tag==='select'&&el.selectedIndex===-1))return null;if(tag==='select'){var index=el.selectedIndex;if(index<0)return null;var a=[],ops=el.options;var one=(t==='select-one');var max=(one?index+1:ops.length);for(var i=(one?index:0);i<max;i++){var op=ops[i];if(op.selected&&!op.disabled){var v=op.value;if(!v)v=(op.attributes&&op.attributes.value&&!(op.attributes.value.specified))?op.text:op.value;if(one)return v;a.push(v);}}return a;}return $(el).val().replace(rCRLF,'\r\n');};$.fn.clearForm=function(includeHidden){return this.each(function(){$('input,select,textarea',this).clearFields(includeHidden);});};$.fn.clearFields=$.fn.clearInputs=function(includeHidden){var re=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(re.test(t)||tag==='textarea')this.value='';else if(t==='checkbox'||t==='radio')this.checked=false;else if(tag==='select')this.selectedIndex=-1;else if(t==='file')if(/MSIE/.test(navigator.userAgent))$(this).replaceWith($(this).clone(true));else $(this).val('');else{if(includeHidden)if((includeHidden===true&&/hidden/.test(t))||(typeof includeHidden==='string'&&$(this).is(includeHidden)))this.value='';}});};$.fn.resetForm=function(){return this.each(function(){var el=$(this);var tag=this.tagName.toLowerCase();switch(tag){case 'input':this.checked=this.defaultChecked;case 'textarea':this.value=this.defaultValue;return true;case 'option':case 'optgroup':var select=el.parents('select');if(select.length&&select[0].multiple)if(tag==='option')this.selected=this.defaultSelected;else el.find('option').resetForm();else select.resetForm();return true;case 'select':el.find('option').each(function(i){this.selected=this.defaultSelected;if(this.defaultSelected&&!el[0].multiple){el[0].selectedIndex=i;return false;}});return true;case 'label':var forEl=$(el.attr('for'));var list=el.find('input,select,textarea');if(forEl[0])list.unshift(forEl[0]);list.resetForm();return true;case 'form':if(typeof this.reset==='function'||(typeof this.reset==='object'&&!this.reset.nodeType))this.reset();return true;default:el.find('form,input,label,select,textarea').resetForm();return true;}}
40083);};$.fn.enable=function(b){if(typeof b==='undefined')b=true;return this.each(function(){this.disabled=!b;});};$.fn.selected=function(select){if(typeof select==='undefined')select=true;return this.each(function(){var t=this.type;if(t==='checkbox'||t==='radio')this.checked=select;else{if(this.tagName.toLowerCase()==='option'){var $sel=$(this).parent('select');if(select&&$sel[0]&&$sel[0].type==='select-one')$sel.find('option').selected(false);this.selected=select;}}});};$.fn.ajaxSubmit.debug=false;function log(){if(!$.fn.ajaxSubmit.debug)return;var msg='[jquery.form] '+Array.prototype.join.call(arguments,'');if(window.console&&window.console.log)window.console.log(msg);else{if(window.opera&&window.opera.postError)window.opera.postError(msg);}}}));;
40084/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
40085(function($,Drupal){Drupal.theme.progressBar=function(id){const escapedId=Drupal.checkPlain(id);return (`<div id="${escapedId}" class="progress" aria-live="polite">`+'<div class="progress__label">&nbsp;</div>'+'<div class="progress__track"><div class="progress__bar"></div></div>'+'<div class="progress__percentage"></div>'+'<div class="progress__description">&nbsp;</div>'+'</div>');};Drupal.ProgressBar=function(id,updateCallback,method,errorCallback){this.id=id;this.method=method||'GET';this.updateCallback=updateCallback;this.errorCallback=errorCallback;this.element=$(Drupal.theme('progressBar',id));};$.extend(Drupal.ProgressBar.prototype,{setProgress(percentage,message,label){if(percentage>=0&&percentage<=100){$(this.element).find('div.progress__bar').each(function(){this.style.width=`${percentage}%`;});$(this.element).find('div.progress__percentage').html(`${percentage}%`);}$('div.progress__description',this.element).html(message);$('div.progress__label',this.element).html(label);if(this.updateCallback)this.updateCallback(percentage,message,this);},startMonitoring(uri,delay){this.delay=delay;this.uri=uri;this.sendPing();},stopMonitoring(){clearTimeout(this.timer);this.uri=null;},sendPing(){if(this.timer)clearTimeout(this.timer);if(this.uri){const pb=this;let uri=this.uri;if(!uri.includes('?'))uri+='?';else uri+='&';uri+='_format=json';$.ajax({type:this.method,url:uri,data:'',dataType:'json',success(progress){if(progress.status===0){pb.displayError(progress.data);return;}pb.setProgress(progress.percentage,progress.message,progress.label);pb.timer=setTimeout(()=>{pb.sendPing();},pb.delay);},error(xmlhttp){const e=new Drupal.AjaxError(xmlhttp,pb.uri);pb.displayError(`<pre>${e.message}</pre>`);}});}},displayError(string){const error=$('<div class="messages messages--error"></div>').html(string);$(this.element).before(error).hide();if(this.errorCallback)this.errorCallback(this);}});})(jQuery,Drupal);;
40086/* @license MIT https://raw.githubusercontent.com/muicss/loadjs/4.3.0/LICENSE.txt */
40087loadjs=function(){var h=function(){},o={},c={},f={};function u(e,n){if(e){var t=f[e];if(c[e]=n,t)for(;t.length;)t[0](e,n),t.splice(0,1)}}function l(e,n){e.call&&(e={success:e}),n.length?(e.error||h)(n):(e.success||h)(e)}function p(t,r,i,s){var o,e,u,n=document,c=i.async,f=(i.numRetries||0)+1,l=i.before||h,a=t.replace(/[\?|#].*$/,""),d=t.replace(/^(css|img|module|nomodule)!/,"");if(s=s||0,/(^css!|\.css$)/.test(a))(u=n.createElement("link")).rel="stylesheet",u.href=d,(o="hideFocus"in u)&&u.relList&&(o=0,u.rel="preload",u.as="style");else if(/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(a))(u=n.createElement("img")).src=d;else if((u=n.createElement("script")).src=d,u.async=void 0===c||c,e="noModule"in u,/^module!/.test(a)){if(!e)return r(t,"l");u.type="module"}else if(/^nomodule!/.test(a)&&e)return r(t,"l");!(u.onload=u.onerror=u.onbeforeload=function(e){var n=e.type[0];if(o)try{u.sheet.cssText.length||(n="e")}catch(e){18!=e.code&&(n="e")}if("e"==n){if((s+=1)<f)return p(t,r,i,s)}else if("preload"==u.rel&&"style"==u.as)return u.rel="stylesheet";r(t,n,e.defaultPrevented)})!==l(t,u)&&n.head.appendChild(u)}function t(e,n,t){var r,i;if(n&&n.trim&&(r=n),i=(r?t:n)||{},r){if(r in o)throw"LoadJS";o[r]=!0}function s(n,t){!function(e,r,n){var t,i,s=(e=e.push?e:[e]).length,o=s,u=[];for(t=function(e,n,t){if("e"==n&&u.push(e),"b"==n){if(!t)return;u.push(e)}--s||r(u)},i=0;i<o;i++)p(e[i],t,n)}(e,function(e){l(i,e),n&&l({success:n,error:t},e),u(r,e)},i)}if(i.returnPromise)return new Promise(s);s()}return t.ready=function(e,n){return function(e,t){e=e.push?e:[e];var n,r,i,s=[],o=e.length,u=o;
40087for(n=function(e,n){n.length&&s.push(e),--u||t(s)};o--;)r=e[o],(i=c[r])?n(r,i):(f[r]=f[r]||[]).push(n)}(e,function(e){l(n,e)}),t},t.done=function(e){u(e,[])},t.reset=function(){o={},c={},f={}},t.isDefined=function(e){return e in o},t}();;
40088/* @license GPL-2.0-or-later https://www.drupal.org/licensing/faq */
40089(function(Drupal,debounce){let liveElement;const announcements=[];Drupal.behaviors.drupalAnnounce={attach(context){if(!liveElement){liveElement=document.createElement('div');liveElement.id='drupal-live-announce';liveElement.className='visually-hidden';liveElement.setAttribute('aria-live','polite');liveElement.setAttribute('aria-busy','false');document.body.appendChild(liveElement);}}};function announce(){const text=[];let priority='polite';let announcement;const il=announcements.length;for(let i=0;i<il;i++){announcement=announcements.pop();text.unshift(announcement.text);if(announcement.priority==='assertive')priority='assertive';}if(text.length){liveElement.innerHTML='';liveElement.setAttribute('aria-busy','true');liveElement.setAttribute('aria-live',priority);liveElement.innerHTML=text.join('\n');liveElement.setAttribute('aria-busy','false');}}Drupal.announce=function(text,priority){announcements.push({text,priority});return debounce(announce,200)();};})(Drupal,Drupal.debounce);;
40090((Drupal)=>{Drupal.Message=class{constructor(messageWrapper=null){if(!messageWrapper)this.messageWrapper=Drupal.Message.defaultWrapper();else this.messageWrapper=messageWrapper;}static defaultWrapper(){let wrapper=document.querySelector('[data-drupal-messages]')||document.querySelector('[data-drupal-messages-fallback]');if(!wrapper){wrapper=document.createElement('div');document.body.appendChild(wrapper);}if(wrapper.hasAttribute('data-drupal-messages-fallback')){wrapper.removeAttribute('data-drupal-messages-fallback');wrapper.classList.remove('hidden');}wrapper.setAttribute('data-drupal-messages','');return wrapper.innerHTML===''?Drupal.Message.messageInternalWrapper(wrapper):wrapper.firstElementChild;}static getMessageTypeLabels(){return {status:Drupal.t('Status message'),error:Drupal.t('Error message'),warning:Drupal.t('Warning message')};}add(message,options={}){if(!options.hasOwnProperty('type'))options.type='status';if(typeof message!=='string')throw new Error('Message must be a string.');Drupal.Message.announce(message,options);options.id=options.id?String(options.id):`${options.type}-${Math.random().toFixed(15).replace('0.','')}`;if(!Drupal.Message.getMessageTypeLabels().hasOwnProperty(options.type)){const {type}=options;throw new Error(`The message type, ${type}, is not present in Drupal.Message.getMessageTypeLabels().`);}this.messageWrapper.appendChild(Drupal.theme('message',{text:message},options));return options.id;}select(id){return this.messageWrapper.querySelector(`[data-drupal-message-id^="${id}"]`);}remove(id){return this.messageWrapper.removeChild(this.select(id));}clear(){this.messageWrapper.querySelectorAll('[data-drupal-message-id]').forEach((message)=>{this.messageWrapper.removeChild(message);});}static announce(message,options){if(!options.priority&&(options.type==='warning'||options.type==='error'))options.priority='assertive';if(options.announce!=='')Drupal.announce(options.announce||message,options.priority);}static messageInternalWrapper(messageWrapper){const innerWrapper=document.createElement('div');innerWrapper.setAttribute('class','messages__wrapper');messageWrapper.insertAdjacentElement('afterbegin',innerWrapper);return innerWrapper;}};Drupal.theme.message=({text},{type,id})=>{const messagesTypes=Drupal.Message.getMessageTypeLabels();const messageWrapper=document.createElement('div');messageWrapper.setAttribute('class',`messages messages--${type}`);messageWrapper.setAttribute('role',type==='error'||type==='warning'?'alert':'status');messageWrapper.setAttribute('data-drupal-message-id',id);messageWrapper.setAttribute('data-drupal-message-type',type);messageWrapper.setAttribute('aria-label',messagesTypes[type]);messageWrapper.innerHTML=`${text}`;return messageWrapper;};})(Drupal);;
40091((Drupal)=>{Drupal.theme.ajaxProgressIndicatorFullscreen=()=>'<div class="ajax-progress ajax-progress--fullscreen">
40091<div class="ajax-progress__throbber ajax-progress__throbber--fullscreen">&nbsp;</div></div>';Drupal.theme.ajaxProgressThrobber=(message)=>{const messageMarkup=typeof message==='string'?Drupal.theme('ajaxProgressMessage',message):'';const throbber='<div class="ajax-progress__throbber">&nbsp;</div>';return `<div class="ajax-progress ajax-progress--throbber">${throbber}${messageMarkup}</div>`;};Drupal.theme.ajaxProgressMessage=(message)=>`<div class="ajax-progress__message">${message}</div>`;})(Drupal);;
40092(function($,window,Drupal,drupalSettings,loadjs,{isFocusable,tabbable}){Drupal.behaviors.AJAX={attach(context,settings){function loadAjaxBehavior(base){const elementSettings=settings.ajax[base];if(typeof elementSettings.selector==='undefined')elementSettings.selector=`#${base}`;once('drupal-ajax',$(elementSettings.selector)).forEach((el)=>{elementSettings.element=el;elementSettings.base=base;Drupal.ajax(elementSettings);});}Object.keys(settings.ajax||{}).forEach(loadAjaxBehavior);Drupal.ajax.bindAjaxLinks(document.body);once('ajax','.use-ajax-submit').forEach((el)=>{const elementSettings={url:$(el.form).attr('action'),setClick:true,event:'click',progress:{type:'throbber'},base:el.id,element:el};Drupal.ajax(elementSettings);});},detach(context,settings,trigger){if(trigger==='unload')Drupal.ajax.expired().forEach((instance)=>{Drupal.ajax.instances[instance.instanceIndex]=null;});}};Drupal.AjaxError=function(xmlhttp,uri,customMessage){let statusCode;let statusText;let responseText;if(xmlhttp.status)statusCode=`\n${Drupal.t('An AJAX HTTP error occurred.')}\n${Drupal.t('HTTP Result Code: !status',{'!status':xmlhttp.status})}`;else statusCode=`\n${Drupal.t('An AJAX HTTP request terminated abnormally.')}`;statusCode+=`\n${Drupal.t('Debugging information follows.')}`;const pathText=`\n${Drupal.t('Path: !uri',{'!uri':uri})}`;statusText='';try{statusText=`\n${Drupal.t('StatusText: !statusText',{'!statusText':xmlhttp.statusText.trim()})}`;}catch(e){}responseText='';try{responseText=`\n${Drupal.t('ResponseText: !responseText',{'!responseText':xmlhttp.responseText.trim()})}`;}catch(e){}responseText=responseText.replace(/<("[^"]*"|'[^']*'|[^'">])*>/gi,'');responseText=responseText.replace(/[\n]+\s+/g,'\n');const readyStateText=xmlhttp.status===0?`\n${Drupal.t('ReadyState: !readyState',{'!readyState':xmlhttp.readyState})}`:'';customMessage=customMessage?`\n${Drupal.t('CustomMessage: !customMessage',{'!customMessage':customMessage})}`:'';this.message=statusCode+pathText+statusText+customMessage+responseText+readyStateText;this.name='AjaxError';if(!Drupal.AjaxError.messages)Drupal.AjaxError.messages=new Drupal.Message();Drupal.AjaxError.messages.add(Drupal.t("Oops, something went wrong. Check your browser's developer console for more details."),{type:'error'});};Drupal.AjaxError.prototype=new Error();Drupal.AjaxError.prototype.constructor=Drupal.AjaxError;Drupal.ajax=function(settings){if(arguments.length!==1)throw new Error('Drupal.ajax() function must be called with one configuration object only');const base=settings.base||false;const element=settings.element||false;delete settings.base;delete settings.element;if(!settings.progress&&!element)settings.progress=false;const ajax=new Drupal.Ajax(base,element,settings);ajax.instanceIndex=Drupal.ajax.instances.length;Drupal.ajax.instances.push(ajax);return ajax;};Drupal.ajax.instances=[];Drupal.ajax.expired=function(){return Drupal.ajax.instances.filter((instance)=>instance&&instance.element!==false&&!document.body.contains(instance.element));};Drupal.ajax.bindAjaxLinks=(element)=>{once('ajax','.use-ajax',element).forEach((ajaxLink)=>{const $linkElement=$(ajaxLink);const elementSettings={progress:{type:'throbber'},dialogType:$linkElement.data('dialog-type'),dialog:$linkElement.data('dialog-options'),dialogRenderer:$linkElement.data('dialog-renderer'),base:$linkElement.attr('id'),element:ajaxLink};const href=$linkElement.attr('href');if(href){elementSettings.url=href;elementSettings.event='click';}const httpMethod=$linkElement.data('ajax-http-method');if(httpMethod)elementSettings.httpMethod=httpMethod;Drupal.ajax(elementSettings);});};Drupal.Ajax=function(base,element,elementSettings){const defaults={httpMethod:'POST',event:element?'mousedown':null,keypress:true,selector:base?`#${base}`:null,effect:'none',speed:'none',method:'replaceWith',progress:{type:'throbber',message:Drupal.t('Processing...')},submit:{js:true}};$.extend(this,defaults,elementSettings);this.commands=new Drupal.AjaxCommands();this.instanceIndex=false;if(this.wrapper)this.wrapper=`#${this.wrapper}`;this.element=element;this.preCommandsFocusedElementSelector=null;this.elementSettings=elementSettings;if(this.element?.form)this.$form=$(this.element.form);if(!this.url){const $element=$(this.element);if(this.element.tagName==='A')this.url=$element.attr('href');else{if(this.element&&element.form)this.url=this.$form.attr('action');}}const originalUrl=this.url;this.url=this.url.replace(/\/nojs(\/|$|\?|#)/,'/ajax$1');if(drupalSettings.ajaxTrustedUrl.hasOwnProperty(originalUrl))drupalSettings.ajaxTrustedUrl[this.url]=true;const ajax=this;ajax.options={url:ajax.url,data:ajax.submit,isInProgress(){return ajax.ajaxing;},beforeSerialize(elementSettings,options){return ajax.beforeSerialize(elementSettings,options);},beforeSubmit(formValues,elementSettings,options){ajax.ajaxing=true;ajax.preCommandsFocusedElementSelector=null;return ajax.beforeSubmit(formValues,elementSettings,options);},beforeSend(xmlhttprequest,options){ajax.ajaxing=true;return ajax.beforeSend(xmlhttprequest,options);},success(response,status,xmlhttprequest){ajax.preCommandsFocusedElementSelector=document.activeElement.getAttribute('data-drupal-selector');if(typeof response==='string')response=JSON.parse(response);if(response!==null&&!drupalSettings.ajaxTrustedUrl.hasOwnProperty(ajax.url))if(xmlhttprequest.getResponseHeader('X-Drupal-Ajax-Token')!=='1'){const customMessage=Drupal.t('The response failed verification so will not be processed.');return ajax.error(xmlhttprequest,ajax.url,customMessage);}return (Promise.resolve(ajax.success(response,status)).then(()=>{ajax.ajaxing=false;
40092$(document).trigger('ajaxSuccess',[xmlhttprequest,this]);$(document).trigger('ajaxComplete',[xmlhttprequest,this]);if(--$.active===0)$(document).trigger('ajaxStop');}));},error(xmlhttprequest,status,error){ajax.ajaxing=false;},complete(xmlhttprequest,status){if(status==='error'||status==='parsererror')return ajax.error(xmlhttprequest,ajax.url);},dataType:'json',jsonp:false,method:ajax.httpMethod};if(elementSettings.dialog)ajax.options.data.dialogOptions=elementSettings.dialog;if(!ajax.options.url.includes('?'))ajax.options.url+='?';else ajax.options.url+='&';let wrapper=`drupal_${elementSettings.dialogType||'ajax'}`;if(elementSettings.dialogRenderer)wrapper+=`.${elementSettings.dialogRenderer}`;ajax.options.url+=`${Drupal.ajax.WRAPPER_FORMAT}=${wrapper}`;$(ajax.element).on(elementSettings.event,function(event){if(!drupalSettings.ajaxTrustedUrl.hasOwnProperty(ajax.url)&&!Drupal.url.isLocal(ajax.url))throw new Error(Drupal.t('The callback URL is not local and not trusted: !url',{'!url':ajax.url}));return ajax.eventResponse(this,event);});if(elementSettings.keypress)$(ajax.element).on('keypress',function(event){return ajax.keypressResponse(this,event);});if(elementSettings.prevent)$(ajax.element).on(elementSettings.prevent,false);};Drupal.ajax.WRAPPER_FORMAT='_wrapper_format';Drupal.Ajax.AJAX_REQUEST_PARAMETER='_drupal_ajax';Drupal.Ajax.prototype.execute=function(){if(this.ajaxing)return;try{this.beforeSerialize(this.element,this.options);return $.ajax(this.options);}catch(e){this.ajaxing=false;window.alert(`An error occurred while attempting to process ${this.options.url}: ${e.message}`);return $.Deferred().reject();}};Drupal.Ajax.prototype.keypressResponse=function(element,event){const ajax=this;if(event.which===13||(event.which===32&&element.type!=='text'&&element.type!=='textarea'&&element.type!=='tel'&&element.type!=='number')){event.preventDefault();event.stopPropagation();$(element).trigger(ajax.elementSettings.event);}};Drupal.Ajax.prototype.eventResponse=function(element,event){event.preventDefault();event.stopPropagation();const ajax=this;if(ajax.ajaxing)return;try{if(ajax.$form){if(ajax.setClick)element.form.clk=element;ajax.$form.ajaxSubmit(ajax.options);}else{ajax.beforeSerialize(ajax.element,ajax.options);$.ajax(ajax.options);}}catch(e){ajax.ajaxing=false;window.alert(`An error occurred while attempting to process ${ajax.options.url}: ${e.message}`);}};Drupal.Ajax.prototype.beforeSerialize=function(element,options){if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.detachBehaviors(this.$form.get(0),settings,'serialize');}options.data[Drupal.Ajax.AJAX_REQUEST_PARAMETER]=1;const pageState=drupalSettings.ajaxPageState;options.data['ajax_page_state[theme]']=pageState.theme;options.data['ajax_page_state[theme_token]']=pageState.theme_token;options.data['ajax_page_state[libraries]']=pageState.libraries;};Drupal.Ajax.prototype.beforeSubmit=function(formValues,element,options){};Drupal.Ajax.prototype.beforeSend=function(xmlhttprequest,options){if(this.$form){options.extraData=options.extraData||{};options.extraData.ajax_iframe_upload='1';const v=$.fieldValue(this.element);if(v!==null)options.extraData[this.element.name]=v;}$(this.element).prop('disabled',true);if(!this.progress||!this.progress.type)return;const progressIndicatorMethod=`setProgressIndicator${this.progress.type.slice(0,1).toUpperCase()}${this.progress.type.slice(1).toLowerCase()}`;if(progressIndicatorMethod in this&&typeof this[progressIndicatorMethod]==='function')this[progressIndicatorMethod].call(this);};Drupal.theme.ajaxProgressThrobber=(message)=>{const messageMarkup=typeof message==='string'?Drupal.theme('ajaxProgressMessage',message):'';const throbber='<div class="throbber">&nbsp;</div>';return `<div class="ajax-progress ajax-progress-throbber">${throbber}${messageMarkup}</div>`;};Drupal.theme.ajaxProgressIndicatorFullscreen=()=>'<div class="ajax-progress ajax-progress-fullscreen">&nbsp;</div>';Drupal.theme.ajaxProgressMessage=(message)=>`<div class="message">${message}</div>`;Drupal.theme.ajaxProgressBar=($element)=>$('<div class="ajax-progress ajax-progress-bar"></div>').append($element);Drupal.Ajax.prototype.setProgressIndicatorBar=function(){const progressBar=new Drupal.ProgressBar(`ajax-progress-${this.element.i
40092d}`,$.noop,this.progress.method,$.noop);if(this.progress.message)progressBar.setProgress(-1,this.progress.message);if(this.progress.url)progressBar.startMonitoring(this.progress.url,this.progress.interval||1500);this.progress.element=$(Drupal.theme('ajaxProgressBar',progressBar.element));this.progress.object=progressBar;$(this.element).after(this.progress.element);};Drupal.Ajax.prototype.setProgressIndicatorThrobber=function(){this.progress.element=$(Drupal.theme('ajaxProgressThrobber',this.progress.message));if($(this.element).closest('[data-drupal-ajax-container]').length)$(this.element).closest('[data-drupal-ajax-container]').after(this.progress.element);else $(this.element).after(this.progress.element);};Drupal.Ajax.prototype.setProgressIndicatorFullscreen=function(){this.progress.element=$(Drupal.theme('ajaxProgressIndicatorFullscreen'));$('body').append(this.progress.element);};Drupal.Ajax.prototype.commandExecutionQueue=function(response,status){const ajaxCommands=this.commands;return Object.keys(response||{}).reduce((executionQueue,key)=>executionQueue.then(()=>{const {command}=response[key];if(command&&ajaxCommands[command])return ajaxCommands[command](this,response[key],status);}),Promise.resolve());};Drupal.Ajax.prototype.success=function(response,status){if(this.progress.element)$(this.progress.element).remove();if(this.progress.object)this.progress.object.stopMonitoring();$(this.element).prop('disabled',false);const elementParents=$(this.element).parents('[data-drupal-selector]').addBack().toArray();const focusChanged=Object.keys(response||{}).some((key)=>{const {command,method}=response[key];return (command==='focusFirst'||command==='openDialog'||(command==='invoke'&&method==='focus'));});return (this.commandExecutionQueue(response,status).then(()=>{if(!focusChanged){let target=false;if(this.element){if($(this.element).data('refocus-blur')&&this.preCommandsFocusedElementSelector)target=document.querySelector(`[data-drupal-selector="${this.preCommandsFocusedElementSelector}"]`);if(!target&&!$(this.element).data('disable-refocus')){for(let n=elementParents.length-1;!target&&n>=0;n--)target=document.querySelector(`[data-drupal-selector="${elementParents[n].getAttribute('data-drupal-selector')}"]`);}}if(target)$(target).trigger('focus');}if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.attachBehaviors(this.$form.get(0),settings);}this.settings=null;}).catch((error)=>console.error(Drupal.t('An error occurred during the execution of the Ajax response: !error',{'!error':error}))));};Drupal.Ajax.prototype.getEffect=function(response){const type=response.effect||this.effect;const speed=response.speed||this.speed;const effect={};if(type==='none'){effect.showEffect='show';effect.hideEffect='hide';effect.showSpeed='';}else if(type==='fade'){effect.showEffect='fadeIn';effect.hideEffect='fadeOut';effect.showSpeed=speed;}else{effect.showEffect=`${type}Toggle`;effect.hideEffect=`${type}Toggle`;effect.showSpeed=speed;}return effect;};Drupal.Ajax.prototype.error=function(xmlhttprequest,uri,customMessage){if(this.progress.element)$(this.progress.element).remove();if(this.progress.object)this.progress.object.stopMonitoring();$(this.wrapper).show();$(this.element).prop('disabled',false);if(this.$form&&document.body.contains(this.$form.get(0))){const settings=this.settings||drupalSettings;Drupal.attachBehaviors(this.$form.get(0),settings);}throw new Drupal.AjaxError(xmlhttprequest,uri,customMessage);};Drupal.theme.ajaxWrapperNewContent=($newContent,ajax,response)=>(response.effect||ajax.effect)!=='none'&&$newContent.filter((i)=>!(($newContent[i].nodeName==='#comment'||($newContent[i].nodeName==='#text'&&/^(\s|\n|\r)*$/.test($newContent[i].textContent))))).length>1?Drupal.theme('ajaxWrapperMultipleRootElements',$newContent):$newContent;Drupal.theme.ajaxWrapperMultipleRootElements=($elements)=>$('<div></div>').append($elements);Drupal.AjaxCommands=function(){};Drupal.AjaxCommands.prototype={insert(ajax,response){const $wrapper=response.selector?$(response.selector):$(ajax.wrapper);const method=response.method||ajax.method;const effect=ajax.getEffect(response);const settings=response.settings||ajax.settings||drupalSettings;const parseHTML=(htmlString)=>{const fragment=document.createDocumentFragment();const template=fragment.appendChild(document.createElement('template'));template.innerHTML=htmlString;return template.content.childNodes;};let $newContent=$(parseHTML(response.data));
40092$newContent=Drupal.theme('ajaxWrapperNewContent',$newContent,ajax,response);switch(method){case 'html':case 'replaceWith':case 'replaceAll':case 'empty':case 'remove':Drupal.detachBehaviors($wrapper.get(0),settings);break;default:break;}$wrapper[method]($newContent);if(effect.showEffect!=='show')$newContent.hide();const $ajaxNewContent=$newContent.find('.ajax-new-content');if($ajaxNewContent.length){$ajaxNewContent.hide();$newContent.show();$ajaxNewContent[effect.showEffect](effect.showSpeed);}else{if(effect.showEffect!=='show')$newContent[effect.showEffect](effect.showSpeed);}$newContent.each((index,element)=>{if(element.nodeType===Node.ELEMENT_NODE&&document.documentElement.contains(element))Drupal.attachBehaviors(element,settings);});},remove(ajax,response,status){const settings=response.settings||ajax.settings||drupalSettings;$(response.selector).each(function(){Drupal.detachBehaviors(this,settings);}).remove();},changed(ajax,response,status){const $element=$(response.selector);if(!$element.hasClass('ajax-changed')){$element.addClass('ajax-changed');if(response.asterisk)$element.find(response.asterisk).append(` <abbr class="ajax-changed" title="${Drupal.t('Changed')}">*</abbr> `);}},alert(ajax,response,status){window.alert(response.text);},announce(ajax,response){if(response.priority)Drupal.announce(response.text,response.priority);else Drupal.announce(response.text);},redirect(ajax,response,status){window.location=response.url;},css(ajax,response,status){$(response.selector).css(response.argument);},settings(ajax,response,status){const ajaxSettings=drupalSettings.ajax;if(ajaxSettings)Drupal.ajax.expired().forEach((instance)=>{if(instance.selector){const selector=instance.selector.replace('#','');if(selector in ajaxSettings)delete ajaxSettings[selector];}});if(response.merge)$.extend(true,drupalSettings,response.settings);else ajax.settings=response.settings;},data(ajax,response,status){$(response.selector).data(response.name,response.value);},focusFirst(ajax,response,status){let focusChanged=false;const container=document.querySelector(response.selector);if(container){const tabbableElements=tabbable(container);if(tabbableElements.length){tabbableElements[0].focus();focusChanged=true;}else{if(isFocusable(container)){container.focus();focusChanged=true;}}}if(ajax.hasOwnProperty('element')&&!focusChanged)ajax.element.focus();},invoke(ajax,response,status){const $element=$(response.selector);$element[response.method](...response.args);},restripe(ajax,response,status){$(response.selector).find('> tbody > tr:visible, > tr:visible').removeClass('odd even').filter(':even').addClass('odd').end().filter(':odd').addClass('even');},update_build_id(ajax,response,status){document.querySelectorAll(`input[name="form_build_id"][value="${response.old}"]`).forEach((item)=>{item.value=response.new;});},add_css(ajax,response,status){const allUniqueBundleIds=response.data.map(function(style){const uniqueBundleId=style.href;if(!loadjs.isDefined(uniqueBundleId))loadjs(`css!${style.href}`,uniqueBundleId,{before(path,styleEl){Object.keys(style).forEach((attributeKey)=>{styleEl.setAttribute(attributeKey,style[attributeKey]);});}});return uniqueBundleId;});return new Promise((resolve,reject)=>{loadjs.ready(allUniqueBundleIds,{success(){resolve();},error(depsNotFound){const message=Drupal.t(`The following files could not be loaded: @dependencies`,{'@dependencies':depsNotFound.join(', ')});reject(message);}});});},message(ajax,response){const messages=new Drupal.Message(document.querySelector(response.messageWrapperQuerySelector));if(response.clearPrevious)messages.clear();messages.add(response.message,response.messageOptions);},add_js(ajax,response,status){const parentEl=document.querySelector(response.selector||'body');const settings=ajax.settings||drupalSettings;const allUniqueBundleIds=response.data.map((script)=>{const uniqueBundleId=script.src;if(!loadjs.isDefined(uniqueBundleId))loadjs(script.src,uniqueBundleId,{async:false,before(path,scriptEl){Object.keys(script).forEach((attributeKey)=>{scriptEl.setAttribute(attributeKey,script[attributeKey]);});parentEl.appendChild(scriptEl);return false;}});return uniqueBundleId;});return new Promise((resolve,reject)=>{loadjs.ready(allUniqueBundleIds,{success(){Drupal.attachBehaviors(parentEl,settings);resolve();},error(depsNotFound){const message=Drupal.t(`The following files could not be loaded: @dependencies`,{'@dependencies':depsNotFound.join(', ')});reject(message);}});});},scrollTop(ajax,response){document.querySelector(response.selector)?.scrollIntoView();}};const stopEvent=(xhr,settings)=>{return (xhr.getResponseHeader('X-Drupal-Ajax-Token')==='1'&&typeof settings.isInProgress==='function'&&settings.isInProgress());};$.extend(true,$.event.special,{ajaxSuccess:{trigger(event,xhr,settings){if(stopEvent(xhr,settings))return false;}},ajaxComplete:{trigger(event,xhr,settings){if(stopEvent(xhr,settings)){$.active++;return false;}}}});})(jQuery,window,Drupal,drupalSettings,loadjs,window.tabbable);;
40093(function($,Drupal,drupalSettings){Drupal.Views={};Drupal.Views.parseQueryString=function(query){const args={};if(query.includes('?'))query=query.substring(query.indexOf('?')+1);let pair;const pairs=query.split('&');for(let i=0;i<pairs.length;i++){pair=pairs[i].split('=');if(pair[0]!=='q')if(pair[1])args[decodeURIComponent(pair[0].replace(/\+/g,' '))]=decodeURIComponent(pair[1].replace(/\+/g,' '));else args[decodeURIComponent(pair[0].replace(/\+/g,' '))]='';}return args;};Drupal.Views.parseViewArgs=function(href,viewPath){const returnObj={};const path=Drupal.Views.getPath(href);const viewHref=Drupal.url(viewPath).substring(drupalSettings.path.baseUrl.length);if(viewHref&&path.startsWith(`${viewHref}/`)){returnObj.view_args=decodeURIComponent(path.substring(viewHref.length+1,path.length));returnObj.view_path=path;}return returnObj;};Drupal.Views.pathPortion=function(href){const protocol=window.location.protocol;if(href.startsWith(protocol))href=href.substring(href.indexOf('/',protocol.length+2));return href;};Drupal.Views.getPath=function(href){href=Drupal.Views.pathPortion(href);href=href.substring(drupalSettings.path.baseUrl.length,href.length);if(href.startsWith('?q='))href=href.substring(3,href.length);const chars=['#','?','&'];for(let i=0;i<chars.length;i++)if(href.includes(chars[i]))href=href.substring(0,href.indexOf(chars[i]));return href;};})(jQuery,Drupal,drupalSettings);;
40094(function($,Drupal,drupalSettings){Drupal.behaviors.ViewsAjaxView={};Drupal.behaviors.ViewsAjaxView.attach=function(context,settings){if(settings?.views?.ajaxViews){const {views:{ajaxViews}}=settings;Object.keys(ajaxViews||{}
40094).forEach((i)=>{Drupal.views.instances[i]=new Drupal.views.ajaxView(ajaxViews[i]);});}};Drupal.behaviors.ViewsAjaxView.detach=(context,settings,trigger)=>{if(trigger==='unload')if(settings?.views?.ajaxViews){const {views:{ajaxViews}}=settings;Object.keys(ajaxViews||{}).forEach((i)=>{const selector=`.js-view-dom-id-${ajaxViews[i].view_dom_id}`;if($(selector,context).length){delete Drupal.views.instances[i];delete settings.views.ajaxViews[i];}});}};Drupal.views={};Drupal.views.instances={};Drupal.views.ajaxView=function(settings){const selector=`.js-view-dom-id-${settings.view_dom_id}`;this.$view=$(selector);this.$exposed_form=$(`form#views-exposed-form-${settings.view_name.replace(/_/g,'-')}-${settings.view_display_id.replace(/_/g,'-')}`);let ajaxPath=drupalSettings.views.ajax_path;if(ajaxPath.constructor.toString().includes('Array'))ajaxPath=ajaxPath[0];let queryString=window.location.search||'';if(queryString!==''){queryString=queryString.slice(1);const params=decodeURI(queryString).split('&').filter((param)=>{const [name,value]=param.split('=');return (this.$exposed_form.find(`input[name="${name}"]`).length===0&&!['page','reset','sort','order','q','render'].includes(name));});queryString=encodeURI(params.join('&'));if(queryString!=='')queryString=(ajaxPath.includes('?')?'&':'?')+queryString;}this.element_settings={url:ajaxPath+queryString,submit:settings,httpMethod:'GET',setClick:true,event:'click',selector,progress:{type:'fullscreen'}};this.settings=settings;once('exposed-form',this.$exposed_form).forEach(this.attachExposedFormAjax.bind(this));once('ajax-pager',this.$view.filter(this.filterNestedViews.bind(this))).forEach(this.attachPagerAjax.bind(this));const selfSettings=$.extend({},this.element_settings,{event:'RefreshView',base:this.selector,httpMethod:'GET',element:this.$view.get(0)});this.refreshViewAjax=Drupal.ajax(selfSettings);};Drupal.views.ajaxView.prototype.attachExposedFormAjax=function(){const that=this;this.exposedFormAjax=[];$('input[type=submit], button[type=submit], input[type=image]',this.$exposed_form).not('[data-drupal-selector=edit-reset]').each(function(index){const selfSettings=$.extend({},that.element_settings,{base:$(this).attr('id'),element:this});that.exposedFormAjax[index]=Drupal.ajax(selfSettings);});};Drupal.views.ajaxView.prototype.filterNestedViews=function(){return !this.$view.parents('.view').length;};Drupal.views.ajaxView.prototype.attachPagerAjax=function(){this.$view.find('.js-pager__items a, th.views-field a, .attachment .views-summary a').each(this.attachPagerLinkAjax.bind(this));};Drupal.views.ajaxView.prototype.attachPagerLinkAjax=function(id,link){const $link=$(link);const viewData={};const href=$link.attr('href');$.extend(viewData,this.settings,Drupal.Views.parseQueryString(href),Drupal.Views.parseViewArgs(href,this.settings.view_base_path));const selfSettings=$.extend({},this.element_settings,{submit:viewData,base:false,element:link,httpMethod:'GET'});this.pagerAjax=Drupal.ajax(selfSettings);};Drupal.AjaxCommands.prototype.setBrowserUrl=(ajax,response)=>{if(ajax.element&&!ajax.element.closest('.ui-dialog-content'))window.history.replaceState(null,'',response.url);};})(jQuery,Drupal,drupalSettings);;
40095(function($,Drupal,debounce){"use strict";var $window=$(window);var scrollThreshold=200;var automaticPagerSelector='[data-drupal-views-infinite-scroll-pager="automatic"]';var pagerSelector='[data-drupal-views-infinite-scroll-pager]';var contentWrapperSelector='[data-drupal-views-infinite-scroll-content-wrapper]';var scrollEvent='scroll.views_infinite_scroll';$.fn.infiniteScrollInsertView=function($newView){var matches=/(js-view-dom-id-\w+)/.exec(this.attr('class'));if(!matches)return;var currentViewId=matches[1].replace('js-view-dom-id-','views_dom_id:');var view=Drupal.views.instances[currentViewId];once.remove('ajax-pager',view.$view);once.remove('exposed-form',view.$exposed_form);var $existingPager=view.$view.find(pagerSelector);once.remove('infinite-scroll',$existingPager);var $newRows=$newView.find(contentWrapperSelector).children();var $newPager=$newView.find(pagerSelector);view.$view.find(contentWrapperSelector).trigger('views_infinite_scroll.new_content',$
40095newRows.clone()).append($newRows);$existingPager.replaceWith($newPager);Drupal.attachBehaviors(view.$view[0]);};Drupal.behaviors.views_infinite_scroll_automatic={attach:function(context,settings){once('infinite-scroll',automaticPagerSelector,context).forEach(function(elem){var $pager=$(elem);$pager.addClass('visually-hidden');var isLoadNeeded=function(){return window.innerHeight+window.pageYOffset>$pager.offset().top-scrollThreshold;};$window.on(scrollEvent,debounce(function(){if(isLoadNeeded()){$pager.find('[rel=next]').click();$window.off(scrollEvent);}},200));if(isLoadNeeded())$window.trigger(scrollEvent);});},detach:function(context,settings,trigger){if(trigger==='unload')if(once.remove('infinite-scroll',automaticPagerSelector,context).length)$window.off(scrollEvent);}};Drupal.views.ajaxView.prototype.filterNestedViews=function(){return this.$view.hasClass('view-eva')||!this.$view.parents('.view').length;};})(jQuery,Drupal,Drupal.debounce);;

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.