{"version":3,"sources":["webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/serialize-query-params/node_modules/query-string/index.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/warning/browser.js","webpack:///./node_modules/create-react-context/lib/index.js","webpack:///./node_modules/create-react-context/lib/implementation.js","webpack:///./node_modules/gud/index.js","webpack:///./node_modules/create-react-context/node_modules/fbjs/lib/warning.js","webpack:///./node_modules/create-react-context/node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/serialize-query-params/esm/serialize.js","webpack:///./node_modules/serialize-query-params/esm/params.js","webpack:///./node_modules/serialize-query-params/esm/updateLocation.js","webpack:///./node_modules/use-query-params/esm/QueryParamProvider.js","webpack:///./node_modules/use-query-params/esm/updateUrlQuery.js","webpack:///./node_modules/use-query-params/esm/useQueryParam.js","webpack:///./node_modules/use-query-params/esm/index.js"],"names":["module","exports","condition","format","a","b","c","d","e","f","error","undefined","Error","args","argIndex","replace","name","framesToPop","strictUriEncode","__webpack_require__","objectAssign","decodeComponent","encode","value","opts","strict","encodeURIComponent","extract","str","queryStart","indexOf","slice","parse","formatter","result","arrayFormat","key","accumulator","exec","concat","parserForArrayFormat","ret","Object","create","trim","split","forEach","param","parts","shift","val","length","join","keys","sort","reduce","Boolean","Array","isArray","keysSorter","input","Number","map","stringify","obj","index","encoderForArrayFormat","val2","push","filter","x","parseUrl","url","query","componentWillMount","state","this","constructor","getDerivedStateFromProps","props","setState","componentWillReceiveProps","nextProps","prevState","bind","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","__suppressDeprecationWarning","source","listeners","location","transitioning","resolveTransition","startsWith","string","search","substr","utils_pick","routes","uri","match","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","i","l","missed","route","default","params","routeSegments","path","max","Math","routeSegment","uriSegment","decodeURIComponent","dynamicMatch","paramRe","reservedNames","invariant_browser_default","resolve","to","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","pathname","allSegments","segments","segment","pop","insertParams","isDynamic","test","rankRoute","score","isRootSegment","isSplat","SEGMENT_POINTS","_extends","assign","target","arguments","prototype","hasOwnProperty","call","getLocation","history","canUseDOM","window","document","createElement","globalHistory","initialPathname","stack","states","addEventListener","fn","removeEventListener","entries","pushState","_","_uri$split","_uri$split$","replaceState","_uri$split2","_uri$split2$","createMemorySource","_onTransitionComplete","listen","listener","popstateListener","action","navigate","_ref","_ref$replace","Date","now","transition","Promise","res","__webpack_exports__","es_Router","es_extends","_objectWithoutProperties","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","enumerable","writable","configurable","setPrototypeOf","__proto__","es_createNamedContext","defaultValue","Ctx","lib_default","Consumer","displayName","Provider","LocationContext","es_Location","children","react_default","context","es_LocationProvider","_React$Component","LocationProvider","_temp","_this","_len","_key","apply","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","componentDidUpdate","componentDidMount","_this2","then","requestAnimationFrame","unmounted","componentWillUnmount","render","Component","defaultProps","BaseContext","baseuri","basepath","baseContext","locationContext","es_RouterImpl","_React$PureComponent","RouterImpl","_props","_navigate2","primary","_props$component","component","domProps","Children","es_createRoute","element","options","clone","cloneElement","FocusWrapper","es_FocusHandler","wrapperProps","PureComponent","FocusContext","_ref3","requestFocus","es_FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","FocusHandlerImpl","_temp2","_this4","_len2","_key2","node","shouldFocus","focus","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","style","_props2$role","role","_props2$component","Comp","outline","tabIndex","ref","n","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","maybeSnapshot","snapshot","polyfill","k","forwardRef","C","_ref4","innerRef","_ref5","_ref6","_props$getProps","getProps","anchorProps","href","isCurrent","isPartiallyCurrent","aria-current","onClick","event","shouldNavigate","preventDefault","RedirectRequest","o","es_RedirectImpl","_React$Component3","RedirectImpl","_props3","_props3$replace","from","noThrow","_props4","redirectTo","es_Redirect","stripSlashes","type","elementPath","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","__esModule","_react2","_interopRequireDefault","_implementation2","createContext","_react","_propTypes2","_gud2","MAX_SIGNED_31_BIT_INT","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_Component","handlers","emitter","on","handler","off","h","get","set","newValue","changedBits","getChildContext","oldValue","y","childContextTypes","object","isRequired","_Component2","getValue","onUpdate","observedBits","contextTypes","global","warning","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","charCodeAt","toString","toUpperCase","singleMatcher","RegExp","multiMatcher","decodeComponents","components","err","left","right","decode","tokens","encodedURI","replaceMap","%FE%FF","%FF%FE","customDecodeURIComponent","decodeNumber","numStr","isNaN","encodeDelimitedArray","array","entrySeparator","decodeDelimitedArray","arrayStr","item","StringParam","String","NumberParam","num","DelimitedArrayParam","__assign","t","s","p","filterNully","queryAccumulator","queryParam","encodedValue","updateLocation","encodedQuery","encodedSearchString","query_string","updateInLocation","encodedQueryReplacements","currQuery","QueryParamProvider_assign","adaptReachHistory","protocol","host","getContextValue","contextValue","QueryParamContext","react","QueryParamProvider","_a","ReactRouterRoute","reachHistory","routeProps","updateUrlQuery","queryReplacements","updateType","useQueryParam","paramConfig","rawQuery","newEncodedValue"],"mappings":"0FAgDAA,EAAAC,QA5BA,SAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAOA,IAAAP,EAAA,CACA,IAAAQ,EACA,QAAAC,IAAAR,EACAO,EAAA,IAAAE,MACA,qIAGK,CACL,IAAAC,EAAA,CAAAT,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GACAK,EAAA,GACAJ,EAAA,IAAAE,MACAT,EAAAY,QAAA,iBAA0C,OAAAF,EAAAC,SAE1CE,KAAA,sBAIA,MADAN,EAAAO,YAAA,EACAP,sCC3CA,IAAAQ,EAAsBC,EAAQ,KAC9BC,EAAmBD,EAAQ,IAC3BE,EAAsBF,EAAQ,KA0F9B,SAAAG,EAAAC,EAAAC,GACA,OAAAA,EAAAF,OACAE,EAAAC,OAAAP,EAAAK,GAAAG,mBAAAH,GAGAA,EAiBA,SAAAI,EAAAC,GACA,IAAAC,EAAAD,EAAAE,QAAA,KACA,WAAAD,EACA,GAEAD,EAAAG,MAAAF,EAAA,GAGA,SAAAG,EAAAJ,EAAAJ,GAGA,IAAAS,EAnFA,SAAAT,GACA,IAAAU,EAEA,OAAAV,EAAAW,aACA,YACA,gBAAAC,EAAAb,EAAAc,GACAH,EAAA,aAAAI,KAAAF,GAEAA,IAAArB,QAAA,eAEAmB,QAKAvB,IAAA0B,EAAAD,KACAC,EAAAD,GAAA,IAGAC,EAAAD,GAAAF,EAAA,IAAAX,GARAc,EAAAD,GAAAb,GAWA,cACA,gBAAAa,EAAAb,EAAAc,GACAH,EAAA,UAAAI,KAAAF,GACAA,IAAArB,QAAA,YAEAmB,OAGKvB,IAAA0B,EAAAD,GAKLC,EAAAD,GAAA,GAAAG,OAAAF,EAAAD,GAAAb,GAJAc,EAAAD,GAAA,CAAAb,GAHAc,EAAAD,GAAAb,GAUA,QACA,gBAAAa,EAAAb,EAAAc,QACA1B,IAAA0B,EAAAD,GAKAC,EAAAD,GAAA,GAAAG,OAAAF,EAAAD,GAAAb,GAJAc,EAAAD,GAAAb,IA0CAiB,CAFAhB,EAAAJ,EAAA,CAAsBe,YAAA,QAAoBX,IAM1CiB,EAAAC,OAAAC,OAAA,MAEA,uBAAAf,EACAa,GAGAb,IAAAgB,OAAA7B,QAAA,eAMAa,EAAAiB,MAAA,KAAAC,QAAA,SAAAC,GACA,IAAAC,EAAAD,EAAAhC,QAAA,WAAA8B,MAAA,KAGAT,EAAAY,EAAAC,QACAC,EAAAF,EAAAG,OAAA,EAAAH,EAAAI,KAAA,UAAAzC,EAIAuC,OAAAvC,IAAAuC,EAAA,KAAA7B,EAAA6B,GAEAjB,EAAAZ,EAAAe,GAAAc,EAAAT,KAGAC,OAAAW,KAAAZ,GAAAa,OAAAC,OAAA,SAAArB,EAAAE,GACA,IAAAc,EAAAT,EAAAL,GAQA,OAPAoB,QAAAN,IAAA,iBAAAA,IAAAO,MAAAC,QAAAR,GAEAhB,EAAAE,GA3DA,SAAAuB,EAAAC,GACA,OAAAH,MAAAC,QAAAE,GACAA,EAAAN,OACE,iBAAAM,EACFD,EAAAjB,OAAAW,KAAAO,IAAAN,KAAA,SAAAlD,EAAAC,GACA,OAAAwD,OAAAzD,GAAAyD,OAAAxD,KACGyD,IAAA,SAAA1B,GACH,OAAAwB,EAAAxB,KAIAwB,EAgDAD,CAAAT,GAEAhB,EAAAE,GAAAc,EAGAhB,GACEQ,OAAAC,OAAA,QA3BFF,EA8BAxC,EAAA0B,UACA1B,EAAA+B,QAEA/B,EAAA8D,UAAA,SAAAC,EAAAxC,IASA,KAFAA,EAAAJ,EANA,CACAE,QAAA,EACAG,QAAA,EACAU,YAAA,QAGAX,IAEA8B,OACA9B,EAAA8B,KAAA,cAGA,IAAArB,EApLA,SAAAT,GACA,OAAAA,EAAAW,aACA,YACA,gBAAAC,EAAAb,EAAA0C,GACA,cAAA1C,EAAA,CACAD,EAAAc,EAAAZ,GACA,IACAyC,EACA,KACAb,KAAA,KACA9B,EAAAc,EAAAZ,GACA,IACAF,EAAA2C,EAAAzC,GACA,KACAF,EAAAC,EAAAC,IACA4B,KAAA,KAGA,cACA,gBAAAhB,EAAAb,GACA,cAAAA,EAAAD,EAAAc,EAAAZ,GAAA,CACAF,EAAAc,EAAAZ,GACA,MACAF,EAAAC,EAAAC,IACA4B,KAAA,KAGA,QACA,gBAAAhB,EAAAb,GACA,cAAAA,EAAAD,EAAAc,EAAAZ,GAAA,CACAF,EAAAc,EAAAZ,GACA,IACAF,EAAAC,EAAAC,IACA4B,KAAA,MAmJAc,CAAA1C,GAEA,OAAAwC,EAAAtB,OAAAW,KAAAW,GAAAV,KAAA9B,EAAA8B,MAAAQ,IAAA,SAAA1B,GACA,IAAAc,EAAAc,EAAA5B,GAEA,QAAAzB,IAAAuC,EACA,SAGA,UAAAA,EACA,OAAA5B,EAAAc,EAAAZ,GAGA,GAAAiC,MAAAC,QAAAR,GAAA,CACA,IAAAhB,EAAA,GAUA,OARAgB,EAAAnB,QAAAe,QAAA,SAAAqB,QACAxD,IAAAwD,GAIAjC,EAAAkC,KAAAnC,EAAAG,EAAA+B,EAAAjC,EAAAiB,WAGAjB,EAAAkB,KAAA,KAGA,OAAA9B,EAAAc,EAAAZ,GAAA,IAAAF,EAAA4B,EAAA1B,KACE6C,OAAA,SAAAC,GACF,OAAAA,EAAAnB,OAAA,IACEC,KAAA,SAGFnD,EAAAsE,SAAA,SAAA3C,EAAAJ,GACA,OACAgD,IAAA5C,EAAAiB,MAAA,YACA4B,MAAAzC,EAAAL,EAAAC,GAAAJ,+GCtNA,SAAAkD,IAEA,IAAAC,EAAAC,KAAAC,YAAAC,yBAAAF,KAAAG,MAAAH,KAAAD,OACAA,SACAC,KAAAI,SAAAL,GAIA,SAAAM,EAAAC,GAQAN,KAAAI,SALA,SAAAG,GACA,IAAAR,EAAAC,KAAAC,YAAAC,yBAAAI,EAAAC,GACA,OAAAR,UAAA,MAGAS,KAAAR,OAGA,SAAAS,EAAAH,EAAAI,GACA,IACA,IAAAC,EAAAX,KAAAG,MACAI,EAAAP,KAAAD,MACAC,KAAAG,MAAAG,EACAN,KAAAD,MAAAW,EACAV,KAAAY,6BAAA,EACAZ,KAAAa,wBAAAb,KAAAc,wBACAH,EACAJ,GAEG,QACHP,KAAAG,MAAAQ,EACAX,KAAAD,MAAAQ,GAMAT,EAAAiB,8BAAA,EACAV,EAAAU,8BAAA,EACAN,EAAAM,8BAAA,EC3CA,ICKAC,EACAC,EACAC,EACAC,EACAC,EDTAC,EAAA,SAAAC,EAAAC,GACA,OAAAD,EAAAE,OAAA,EAAAD,EAAAhD,UAAAgD,GAwBIE,EAAI,SAAAC,EAAAC,GAWR,IAVA,IAAAC,OAAA,EACAC,OAAA,EAGAC,EADAH,EAAA1D,MAAA,KACA,GAEA8D,EAAAC,EAAAF,GACAG,EAAA,KAAAF,EAAA,GACAG,EAAAC,EAAAT,GAEAU,EAAA,EAAAC,EAAAH,EAAA3D,OAAoC6D,EAAAC,EAAOD,IAAA,CAC3C,IAAAE,GAAA,EACAC,EAAAL,EAAAE,GAAAG,MAEA,GAAAA,EAAAC,QACAX,EAAA,CACAU,QACAE,OAAA,GACAd,WAJA,CAcA,IALA,IAAAe,EAAAV,EAAAO,EAAAI,MACAF,EAAA,GACAG,EAAAC,KAAAD,IAAAb,EAAAxD,OAAAmE,EAAAnE,QACAc,EAAA,EAEUA,EAAAuD,EAAavD,IAAA,CACvB,IAAAyD,EAAAJ,EAAArD,GACA0D,EAAAhB,EAAA1C,GAGA,GADA,MAAAyD,EACA,CAIAL,EAAA,KAAAV,EAAA5E,MAAAkC,GAAAH,IAAA8D,oBAAAxE,KAAA,KACA,MAGA,QAAAzC,IAAAgH,EAAA,CAIAT,GAAA,EACA,MAGA,IAAAW,EAAAC,EAAAxF,KAAAoF,GAEA,GAAAG,IAAAhB,EAAA,EACA,IAAAkB,EAAAjG,QAAA+F,EAAA,KACiOG,KAAS,GAC1O,IAAAzG,EAAAqG,mBAAAD,GACAN,EAAAQ,EAAA,IAAAtG,OACO,GAAAmG,IAAAC,EAAA,CAIPT,GAAA,EACA,OAIA,IAAAA,EAAA,CACAV,EAAA,CACAW,QACAE,SACAd,IAAA,IAAAI,EAAA5E,MAAA,EAAAkC,GAAAb,KAAA,MAEA,QAIA,OAAAoD,GAAAC,GAAA,MAmCAwB,EAAA,SAAAC,EAAAC,GAEA,GAAAlC,EAAAiC,EAAA,KACA,OAAAA,EAGA,IAAAE,EAAAF,EAAArF,MAAA,KACAwF,EAAAD,EAAA,GACAE,EAAAF,EAAA,GAGAG,EADAJ,EAAAtF,MAAA,KACA,GAEA2F,EAAA5B,EAAAyB,GACAI,EAAA7B,EAAA2B,GAGA,QAAAC,EAAA,GACA,OAAAE,EAAAH,EAAAD,GAIA,IAAArC,EAAAuC,EAAA,SACA,IAAAG,EAAAF,EAAAlG,OAAAiG,GAAApF,KAAA,KACA,OAAAsF,GAAA,MAAAH,EAAA,QAAAI,EAAAL,GAUA,IAFA,IAAAM,EAAAH,EAAAlG,OAAAiG,GACAK,EAAA,GACA7B,EAAA,EAAAC,EAAA2B,EAAAzF,OAAyC6D,EAAAC,EAAOD,IAAA,CAChD,IAAA8B,EAAAF,EAAA5B,GACA,OAAA8B,EAAAD,EAAAE,MAAyC,MAAAD,GAAAD,EAAAzE,KAAA0E,GAGzC,OAAAJ,EAAA,IAAAG,EAAAzF,KAAA,KAAAkF,IAKAU,EAAA,SAAAzB,EAAAF,GAEA,UADAT,EAAAW,GACAzD,IAAA,SAAAgF,GACA,IAAAtC,EAAAsB,EAAAxF,KAAAwG,GACA,OAAAtC,EAAAa,EAAAb,EAAA,IAAAsC,IACG1F,KAAA,MAcH0E,EAAA,SAWAmB,EAAA,SAAAH,GACA,OAAAhB,EAAAoB,KAAAJ,IAMAK,EAAA,SAAAhC,EAAAlD,GAMA,OAAUkD,QAAAiC,MALVjC,EAAAC,QAAA,EAAAR,EAAAO,EAAAI,MAAAhE,OAAA,SAAA6F,EAAAN,GAGA,OAFAM,GAlBA,GAMA,SAAAN,GACA,WAAAA,EAYAO,CAAAP,GAAqDG,EAAAH,GAAAM,GAjBrD,GAUA,SAAAN,GACA,YAAAA,EAM0GQ,CAAAR,GAAmEM,GAlB7K,EAkB0GA,GAAAG,EAA1GH,GAfA,EAgBAA,GACG,GACOnF,UAGV8C,EAAA,SAAAT,GACA,OAAAA,EAAAxC,IAAAqF,GAAA7F,KAAA,SAAAlD,EAAAC,GACA,OAAAD,EAAAgJ,MAAA/I,EAAA+I,MAAA,EAAAhJ,EAAAgJ,MAAA/I,EAAA+I,OAAA,EAAAhJ,EAAA6D,MAAA5D,EAAA4D,SAIA2C,EAAA,SAAAL,GACA,OAAAA,EAEAxF,QAAA,mBAAA8B,MAAA,MAGA6F,EAAA,SAAAC,EAAAlE,GACA,OAAAkE,GAAAlE,EAAA,IAAAA,EAAA,KAGAsD,EAAA,eCtPAyB,EAAA9G,OAAA+G,QAAA,SAAAC,GAAmD,QAAA1C,EAAA,EAAgBA,EAAA2C,UAAAxG,OAAsB6D,IAAA,CAAO,IAAApB,EAAA+D,UAAA3C,GAA2B,QAAA5E,KAAAwD,EAA0BlD,OAAAkH,UAAAC,eAAAC,KAAAlE,EAAAxD,KAAyDsH,EAAAtH,GAAAwD,EAAAxD,IAAiC,OAAAsH,GAE/OK,EAAA,SAAAnE,GACA,OAAA4D,EAAA,GAAoB5D,EAAAE,SAAA,CACpBnB,MAAAiB,EAAAoE,QAAArF,MACAvC,IAAAwD,EAAAoE,QAAArF,OAAAiB,EAAAoE,QAAArF,MAAAvC,KAAA,aA2HA6H,IAAA,oBAAAC,gBAAAC,WAAAD,OAAAC,SAAAC,eAKAC,GA5HAzE,EAyHAqE,EAAAC,OApDA,WACA,IAAAI,EAAAX,UAAAxG,OAAA,QAAAxC,IAAAgJ,UAAA,GAAAA,UAAA,OAEA1F,EAAA,EACAsG,EAAA,EAAgB5B,SAAA2B,EAAAnE,OAAA,KAChBqE,EAAA,GAEA,OACA1E,eACA,OAAAyE,EAAAtG,IAEAwG,iBAAA,SAAAzJ,EAAA0J,KACAC,oBAAA,SAAA3J,EAAA0J,KAEAV,QAAA,CACAY,cACA,OAAAL,GAEAtG,YACA,OAAAA,GAEAU,YACA,OAAA6F,EAAAvG,IAEA4G,UAAA,SAAAlG,EAAAmG,EAAAvE,GACA,IAAAwE,EAAAxE,EAAA1D,MAAA,KACA8F,EAAAoC,EAAA,GACAC,EAAAD,EAAA,GACA5E,OAAAxF,IAAAqK,EAAA,GAAAA,EAEA/G,IACAsG,EAAAnG,KAAA,CAAoBuE,WAAAxC,WACpBqE,EAAApG,KAAAO,IAEAsG,aAAA,SAAAtG,EAAAmG,EAAAvE,GACA,IAAA2E,EAAA3E,EAAA1D,MAAA,KACA8F,EAAAuC,EAAA,GACAC,EAAAD,EAAA,GACA/E,OAAAxF,IAAAwK,EAAA,GAAAA,EAEAZ,EAAAtG,GAAA,CAAwB0E,WAAAxC,UACxBqE,EAAAvG,GAAAU,KAWAyG,GAxHAvF,EAAA,GACAC,EAAAiE,EAAAnE,GACAG,GAAA,EACAC,EAAA,aAEA,CACAF,eACA,OAAAA,GAGAC,oBACA,OAAAA,GAGAsF,sBAAA,WACAtF,GAAA,EACAC,KAEAsF,OAAA,SAAAC,GACA1F,EAAAzB,KAAAmH,GAEA,IAAAC,EAAA,WACA1F,EAAAiE,EAAAnE,GACA2F,EAAA,CAAkBzF,WAAA2F,OAAA,SAKlB,OAFA7F,EAAA6E,iBAAA,WAAAe,GAEA,WACA5F,EAAA+E,oBAAA,WAAAa,GACA3F,IAAAxB,OAAA,SAAAqG,GACA,OAAAA,IAAAa,MAIAG,SAAA,SAAAxD,GACA,IAAAyD,EAAAhC,UAAAxG,OAAA,QAAAxC,IAAAgJ,UAAA,GAAAA,UAAA,MACAhF,EAAAgH,EAAAhH,MACAiH,EAAAD,EAAA5K,QACAA,OAAAJ,IAAAiL,KAEAjH,EAAA6E,EAAA,GAAyB7E,EAAA,CAAUvC,IAAAyJ,KAAAC,MAAA,KAEnC,IACA/F,GAAAhF,EACA6E,EAAAoE,QAAAiB,aAAAtG,EAAA,KAAAuD,GAEAtC,EAAAoE,QAAAa,UAAAlG,EAAA,KAAAuD,GAEO,MAAA1H,GACPoF,EAAAE,SAAA/E,EAAA,oBAAAmH,GAGApC,EAAAiE,EAAAnE,GACAG,GAAA,EACA,IAAAgG,EAAA,IAAAC,QAAA,SAAAC,GACA,OAAAjG,EAAAiG,IAKA,OAHApG,EAAA/C,QAAA,SAAAyI,GACA,OAAAA,EAAA,CAAyBzF,WAAA2F,OAAA,WAEzBM,KA+DY1B,EAAAqB,SCtIZvK,EAAAZ,EAAA2L,EAAA,sBAAAC,IAAAhL,EAAAZ,EAAA2L,EAAA,sBAAA7B,IAAA,IAAI+B,EAAQ1J,OAAA+G,QAAA,SAAAC,GAAuC,QAAA1C,EAAA,EAAgBA,EAAA2C,UAAAxG,OAAsB6D,IAAA,CAAO,IAAApB,EAAA+D,UAAA3C,GAA2B,QAAA5E,KAAAwD,EAA0BlD,OAAAkH,UAAAC,eAAAC,KAAAlE,EAAAxD,KAAyDsH,EAAAtH,GAAAwD,EAAAxD,IAAiC,OAAAsH,GAE/O,SAAA2C,EAAArI,EAAAX,GAA8C,IAAAqG,EAAA,GAAiB,QAAA1C,KAAAhD,EAAqBX,EAAAvB,QAAAkF,IAAA,GAAoCtE,OAAAkH,UAAAC,eAAAC,KAAA9F,EAAAgD,KAA6D0C,EAAA1C,GAAAhD,EAAAgD,IAAsB,OAAA0C,EAE3M,SAAA4C,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,UAAAC,UAAA,qCAE3F,SAAAC,EAAAC,EAAA7C,GAAiD,IAAA6C,EAAa,UAAAC,eAAA,6DAAyF,OAAA9C,GAAA,iBAAAA,GAAA,mBAAAA,EAAA6C,EAAA7C,EAEvJ,SAAA+C,EAAAC,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAN,UAAA,kEAAAM,GAAuGD,EAAAlD,UAAAlH,OAAAC,OAAAoK,KAAAnD,UAAA,CAAyE/E,YAAA,CAAetD,MAAAuL,EAAAE,YAAA,EAAAC,UAAA,EAAAC,cAAA,KAA6EH,IAAArK,OAAAyK,eAAAzK,OAAAyK,eAAAL,EAAAC,GAAAD,EAAAM,UAAAL,GAcrX,IAAIM,EAAkB,SAAArM,EAAAsM,GACtB,IAAAC,EAAYC,IAAaF,GAGzB,OAFAC,EAAAE,SAAAC,YAAA1M,EAAA,YACAuM,EAAAI,SAAAD,YAAA1M,EAAA,YACAuM,GAKAK,EAAsBP,EAAkB,YAIpCQ,EAAQ,SAAAlC,GACZ,IAAAmC,EAAAnC,EAAAmC,SACA,OAASC,EAAA3N,EAAKgK,cACdwD,EAAAH,SACA,KACA,SAAAO,GACA,OAAAA,EAAAF,EAAAE,GAA2CD,EAAA3N,EAAKgK,cACxC6D,EACR,KACAH,MAMIG,EAAgB,SAAAC,GAGpB,SAAAC,IACA,IAAAC,EAAAC,EAEA/B,EAAA1H,KAAAuJ,GAEA,QAAAG,EAAA3E,UAAAxG,OAAAtC,EAAA4C,MAAA6K,GAAAC,EAAA,EAAmEA,EAAAD,EAAaC,IAChF1N,EAAA0N,GAAA5E,UAAA4E,GAGA,OAAAH,EAAAC,EAAA3B,EAAA9H,KAAAsJ,EAAApE,KAAA0E,MAAAN,EAAA,CAAAtJ,MAAArC,OAAA1B,KAAAwN,EAAA1J,MAAA,CACAqJ,QAAAK,EAAAI,aACAC,KAAA,CAAaC,SAAA,OACRjC,EAAA2B,EAAAD,GAiEL,OA/EAvB,EAAAsB,EAAAD,GAiBAC,EAAAvE,UAAA6E,WAAA,WACA,IAAAG,EAAAhK,KAAAG,MAAAiF,QAIA,OAAY0B,SAHZkD,EAAAlD,SAGY5F,SAFZ8I,EAAA9I,WAKAqI,EAAAvE,UAAAiF,kBAAA,SAAAnO,EAAAoO,GACA,IAAAC,EAAArO,GAKA,MAAAA,GAFAsO,EAFApK,KAAAG,MAAAiF,QAAA0B,UAEAhL,EAAA6F,IAAA,CAA4BxF,SAAA,KAM5BoN,EAAAvE,UAAAqF,mBAAA,SAAA1J,EAAAJ,GACAA,EAAA6I,QAAAlI,WAAAlB,KAAAD,MAAAqJ,QAAAlI,UACAlB,KAAAG,MAAAiF,QAAAqB,yBAIA8C,EAAAvE,UAAAsF,kBAAA,WACA,IAAAC,EAAAvK,KAEA8J,EAAA9J,KAAAD,MAAA+J,KACA1E,EAAApF,KAAAG,MAAAiF,QAEA0E,EAAAC,SAAA3E,EAAAsB,OAAA,WACAU,QAAA/D,UAAAmH,KAAA,WAEAC,sBAAA,WACAF,EAAAG,WACAH,EAAAnK,SAAA,WACA,OAAsBgJ,QAAAmB,EAAAV,uBAQtBN,EAAAvE,UAAA2F,qBAAA,WACA,IAAAb,EAAA9J,KAAAD,MAAA+J,KAEA9J,KAAA0K,WAAA,EACAZ,EAAAC,YAGAR,EAAAvE,UAAA4F,OAAA,WACA,IAAAxB,EAAApJ,KAAAD,MAAAqJ,QACAF,EAAAlJ,KAAAG,MAAA+I,SAEA,OAAWC,EAAA3N,EAAKgK,cAChBwD,EAAAD,SACA,CAAOpM,MAAAyM,GACP,mBAAAF,IAAAE,GAAAF,GAAA,OAIAK,EAhFoB,CAiFlBJ,EAAA3N,EAAKqP,WAKPxB,EAAgByB,aAAA,CAChB1F,QAAWK,GAKX,IAuBAsF,EAAkBtC,EAAkB,QAAUuC,QAAA,IAAAC,SAAA,MAI1C1D,EAAM,SAAApH,GACV,OAASgJ,EAAA3N,EAAKgK,cACduF,EAAAlC,SACA,KACA,SAAAqC,GACA,OAAa/B,EAAA3N,EAAKgK,cACVyD,EACR,KACA,SAAAkC,GACA,OAAiBhC,EAAA3N,EAAKgK,cAAe4F,EAAY5D,EAAQ,GAAG0D,EAAAC,EAAAhL,SAOxDiL,EAAU,SAAAC,GAGd,SAAAC,IAGA,OAFA5D,EAAA1H,KAAAsL,GAEAxD,EAAA9H,KAAAqL,EAAAzB,MAAA5J,KAAA+E,YA6EA,OAlFAkD,EAAAqD,EAAAD,GAQAC,EAAAtG,UAAA4F,OAAA,WACA,IAAAW,EAAAvL,KAAAG,MACAe,EAAAqK,EAAArK,SACAsK,EAAAD,EAAAzE,SACAmE,EAAAM,EAAAN,SACAQ,EAAAF,EAAAE,QACAvC,EAAAqC,EAAArC,SAEAwC,GADAH,EAAAP,QACAO,EAAAI,WACAA,OAAA5P,IAAA2P,EAAA,MAAAA,EACAE,EAAAnE,EAAA8D,EAAA,+EAEA7J,EAAiByH,EAAA3N,EAAKqQ,SAAA3M,IAAAgK,EAAwB4C,GAAWb,IACzDlH,EAAA7C,EAAA6C,SAGAnC,EAAgBH,EAAIC,EAAAqC,GAEpB,GAAAnC,EAAA,CACA,IAAAa,EAAAb,EAAAa,OACAd,EAAAC,EAAAD,IACAY,EAAAX,EAAAW,MACAwJ,EAAAnK,EAAAW,MAAA5F,MAIAsO,EAAA1I,EAAAC,QAAAyI,EAAA1I,EAAAI,KAAAxG,QAAA,UAEA,IAAAgE,EAAkBqH,EAAQ,GAAG/E,EAAA,CAC7Bd,MACAT,WACA4F,SAAA,SAAAxD,EAAA0I,GACA,OAAAR,EAA4BnI,EAAOC,EAAA3B,GAAAqK,MAInCC,EAAkB9C,EAAA3N,EAAK0Q,aAAAH,EAAA5L,EAAA4L,EAAA5L,MAAA+I,SAAuDC,EAAA3N,EAAKgK,cAC3E+B,EACR,CAASkE,WACTM,EAAA5L,MAAA+I,eACAnN,GAGAoQ,EAAAV,EAAmCW,EAAYT,EAE/CU,EAAAZ,EAAmCjE,EAAQ,CAAE7F,MAAAT,WAAAyK,aAAqDC,KAElG,OAAazC,EAAA3N,EAAKgK,cAClBuF,EAAAhC,SACA,CAASpM,MAAA,CAASqO,QAAArJ,EAAAsJ,aACV9B,EAAA3N,EAAKgK,cACb2G,EACAE,EACAJ,IAiBA,aAIAX,EAnFc,CAoFZnC,EAAA3N,EAAK8Q,eAEPlB,EAAUN,aAAA,CACVW,SAAA,GAIA,IAAAc,EAAmB9D,EAAkB,SAEjC2D,EAAY,SAAAI,GAChB,IAAA7K,EAAA6K,EAAA7K,IACAT,EAAAsL,EAAAtL,SACAyK,EAAAa,EAAAb,UACAC,EAAAnE,EAAA+E,EAAA,gCAEA,OAASrD,EAAA3N,EAAKgK,cACd+G,EAAA1D,SACA,KACA,SAAA4D,GACA,OAAatD,EAAA3N,EAAKgK,cAAekH,EAAkBlF,EAAQ,GAAGoE,EAAA,CAC9DD,YACAc,eACA9K,MACAT,iBAOAyL,GAAA,EACAC,EAAA,EAEIF,EAAgB,SAAAG,GAGpB,SAAAC,IACA,IAAAC,EAAAC,EAEAtF,EAAA1H,KAAA8M,GAEA,QAAAG,EAAAlI,UAAAxG,OAAAtC,EAAA4C,MAAAoO,GAAAC,EAAA,EAAsEA,EAAAD,EAAeC,IACrFjR,EAAAiR,GAAAnI,UAAAmI,GAGA,OAAAH,EAAAC,EAAAlF,EAAA9H,KAAA6M,EAAA3H,KAAA0E,MAAAiD,EAAA,CAAA7M,MAAArC,OAAA1B,KAAA+Q,EAAAjN,MAAA,GAAyKiN,EAAAP,aAAA,SAAAU,GACzKH,EAAAjN,MAAAqN,aACAD,EAAAE,SAEKvF,EAAAkF,EAAAD,GA+FL,OA9GA9E,EAAA6E,EAAAD,GAkBAC,EAAA5M,yBAAA,SAAAI,EAAAC,GAEA,GADA,MAAAA,EAAAoB,IAEA,OAAa6F,EAAQ,CACrB4F,aAAA,GACO9M,GAEP,IAAAgN,EAAAhN,EAAAqB,MAAApB,EAAAoB,IACA4L,EAAAhN,EAAAW,SAAA6C,WAAAzD,EAAAY,SAAA6C,UAAAzD,EAAAY,SAAA6C,WAAAzD,EAAAqB,IACA,OAAa6F,EAAQ,CACrB4F,YAAAE,GAAAC,GACOjN,IAIPwM,EAAA9H,UAAAsF,kBAAA,WACAsC,IACA5M,KAAAqN,SAGAP,EAAA9H,UAAA2F,qBAAA,WAEA,MADAiC,IAEAD,GAAA,IAIAG,EAAA9H,UAAAqF,mBAAA,SAAA1J,EAAAJ,GACAI,EAAAO,WAAAlB,KAAAG,MAAAe,UAAAlB,KAAAD,MAAAqN,aACApN,KAAAqN,SAIAP,EAAA9H,UAAAqI,MAAA,WAQA,IAAAZ,EAAAzM,KAAAG,MAAAsM,aAGAA,EACAA,EAAAzM,KAAAmN,MAEAR,EACAA,GAAA,EAIA3M,KAAAmN,KAAAK,SAAAjI,SAAAkI,gBACAzN,KAAAmN,KAAAE,SAMAP,EAAA9H,UAAA4F,OAAA,WACA,IAAA8C,EAAA1N,KAEA2N,EAAA3N,KAAAG,MAEAyN,GADAD,EAAAzE,SACAyE,EAAAC,OAEAC,GADAF,EAAAlB,aACAkB,EAAAG,MACAA,OAAA/R,IAAA8R,EAAA,QAAAA,EACAE,EAAAJ,EAAAhC,UACAqC,OAAAjS,IAAAgS,EAAA,MAAAA,EAGAnC,GAFA+B,EAAAhM,IACAgM,EAAAzM,SACAuG,EAAAkG,EAAA,0EAEA,OAAWxE,EAAA3N,EAAKgK,cAChBwI,EACMxG,EAAQ,CACdoG,MAAepG,EAAQ,CAAEyG,QAAA,QAAkBL,GAC3CM,SAAA,KACAJ,OACAK,IAAA,SAAAC,GACA,OAAAV,EAAAP,KAAAiB,IAEOxC,GACDzC,EAAA3N,EAAKgK,cACX+G,EAAAxD,SACA,CAASpM,MAAAqD,KAAAyM,cACTzM,KAAAG,MAAA+I,YAKA4D,EA/GoB,CAgHlB3D,EAAA3N,EAAKqP,YH7WP,SAAAA,GACA,IAAA7F,EAAA6F,EAAA7F,UAEA,IAAAA,MAAAqJ,iBACA,UAAArS,MAAA,sCAGA,GACA,mBAAA6O,EAAA3K,0BACA,mBAAA8E,EAAAlE,wBAEA,OAAA+J,EAMA,IAAAyD,EAAA,KACAC,EAAA,KACAC,EAAA,KAgBA,GAfA,mBAAAxJ,EAAAlF,mBACAwO,EAAA,qBACG,mBAAAtJ,EAAAyJ,4BACHH,EAAA,6BAEA,mBAAAtJ,EAAA3E,0BACAkO,EAAA,4BACG,mBAAAvJ,EAAA0J,mCACHH,EAAA,oCAEA,mBAAAvJ,EAAAvE,oBACA+N,EAAA,sBACG,mBAAAxJ,EAAA2J,6BACHH,EAAA,8BAGA,OAAAF,GACA,OAAAC,GACA,OAAAC,EACA,CACA,IAAAI,EAAA/D,EAAA/B,aAAA+B,EAAAzO,KACAyS,EACA,mBAAAhE,EAAA3K,yBACA,6BACA,4BAEA,MAAAlE,MACA,2FACA4S,EACA,SACAC,EACA,uDACA,OAAAP,EAAA,OAAAA,EAAA,KACA,OAAAC,EACA,OAAAA,EACA,KACA,OAAAC,EAAA,OAAAA,EAAA,IACA,wIAgBA,GARA,mBAAA3D,EAAA3K,2BACA8E,EAAAlF,qBACAkF,EAAA3E,6BAMA,mBAAA2E,EAAAlE,wBAAA,CACA,sBAAAkE,EAAAqF,mBACA,UAAArO,MACA,qHAIAgJ,EAAAvE,sBAEA,IAAA4J,EAAArF,EAAAqF,mBAEArF,EAAAqF,mBAAA,SACA1J,EACAJ,EACAuO,GAUA,IAAAC,EAAA/O,KAAAY,4BACAZ,KAAAa,wBACAiO,EAEAzE,EAAAnF,KAAAlF,KAAAW,EAAAJ,EAAAwO,KG0QAC,CAAStC,GAET,IAAAuC,EAAA,aAGAC,EAAiB/F,EAAA3N,EAAK0T,gBAEtB,IAAAA,IACAA,EAAA,SAAAC,GACA,OAAAA,IAIAD,EAAA,SAAAE,EAAAjB,GACA,IAAAkB,EAAAD,EAAAC,SACAlP,EAAAsH,EAAA2H,EAAA,cAEA,OAASjG,EAAA3N,EAAKgK,cACduF,EAAAlC,SACA,KACA,SAAAyG,GACAA,EAAArE,SAAA,IACAD,EAAAsE,EAAAtE,QACA,OAAa7B,EAAA3N,EAAKgK,cACVyD,EACR,KACA,SAAAsG,GACA,IAAArO,EAAAqO,EAAArO,SACA4F,EAAAyI,EAAAzI,SAEAxD,EAAAnD,EAAAmD,GACAvD,EAAAI,EAAAJ,MACA5D,EAAAgE,EAAAhE,QACAqT,EAAArP,EAAAsP,SACAA,OAAA1T,IAAAyT,EAAAP,EAAAO,EACAE,EAAAjI,EAAAtH,EAAA,qCAEAwP,EAAqBtM,EAAOC,EAAA0H,GAC5B4E,EAAA1O,EAAA6C,WAAA4L,EACAE,EAAmCxO,EAAUH,EAAA6C,SAAA4L,GAE7C,OAAiBxG,EAAA3N,EAAKgK,cAAA,IAAoBgC,EAAQ,CAClD2G,OAAAkB,EACAS,eAAAF,EAAA,YAAA7T,GACW2T,EAAAD,EAAA,CAAyBG,YAAAC,qBAAAF,OAAAzO,aAA+F,CACnIyO,OACAI,QAAA,SAAAC,GACAN,EAAAK,SAAAL,EAAAK,QAAAC,GACAC,GAAAD,KACAA,EAAAE,iBACApJ,EAAA6I,EAAA,CAAgC5P,QAAA5D,uBAWhC,SAAAgU,EAAAxO,GACA3B,KAAA2B,MAGA,IAAAwI,EAAA,SAAAiG,GACA,OAAAA,aAAAD,GAOIE,EAAY,SAAAC,GAGhB,SAAAC,IAGA,OAFA7I,EAAA1H,KAAAuQ,GAEAzI,EAAA9H,KAAAsQ,EAAA1G,MAAA5J,KAAA+E,YAkCA,OAvCAkD,EAAAsI,EAAAD,GASAC,EAAAvL,UAAAsF,kBAAA,WACA,IAAAkG,EAAAxQ,KAAAG,MACA2G,EAAA0J,EAAA1J,SACAxD,EAAAkN,EAAAlN,GAEAmN,GADAD,EAAAE,KACAF,EAAArU,SACAA,OAAAJ,IAAA0U,KACA1Q,EAAAyQ,EAAAzQ,MAEAI,GADAqQ,EAAAG,QACAlJ,EAAA+I,EAAA,uDAEApJ,QAAA/D,UAAAmH,KAAA,WACA1D,EAAe1C,EAAYd,EAAAnD,GAAA,CAAchE,UAAA4D,aAIzCwQ,EAAAvL,UAAA4F,OAAA,WACA,IAAAgG,EAAA5Q,KAAAG,MAEAmD,GADAsN,EAAA9J,SACA8J,EAAAtN,IAIAqN,GAHAC,EAAAF,KACAE,EAAAzU,QACAyU,EAAA7Q,MACA6Q,EAAAD,SACAxQ,EAAAsH,EAAAmJ,EAAA,sDAGA,OADAD,GAxCA,SAAArN,GACA,UAAA6M,EAAA7M,GAuCAuN,CAA6BzM,EAAYd,EAAAnD,IACzC,MAGAoQ,EAxCgB,CAyCdpH,EAAA3N,EAAKqP,WAEHiG,GAAQ,SAAA3Q,GACZ,OAASgJ,EAAA3N,EAAKgK,cACVyD,EACJ,KACA,SAAAkC,GACA,OAAahC,EAAA3N,EAAKgK,cAAe6K,EAAc7I,EAAQ,GAAG2D,EAAAhL,OA4C1D4Q,GAAA,SAAA/T,GACA,OAAAA,EAAAb,QAAA,oBAGI2P,GAAW,SAAAb,GACf,gBAAAc,GACA,IAAAA,EACA,YF5YA,IAAA2E,EAAApN,EACA7D,EEoZA,GANAsM,EAAA5L,MAAAwC,MAAAoJ,EAAA5L,MAAAqC,SAAAuJ,EAAAiF,OAAsEF,IAAuN1N,KAAS,GAEtS2I,EAAAiF,OAAwBF,IAAQ/E,EAAA5L,MAAAuQ,MAAA3E,EAAA5L,MAAAmD,IAA8PF,KAAS,GAEvS2I,EAAAiF,OAAwBF,KFnZxBJ,EEmZqD3E,EAAA5L,MAAAuQ,KFnZrDpN,EEmZqDyI,EAAA5L,MAAAmD,GFlZrD7D,EAAA,SAAAyE,GACA,OAAAG,EAAAH,IAEAlC,EAAA0O,GAAAjR,UAAAf,OAAAF,KAAA,OACAwD,EAAAsB,GAAA7D,UAAAf,OAAAF,KAAA,OE8YoU4E,KAAS,GAE7U2I,EAAA5L,MAAAqC,QACA,OAAc7F,MAAAoP,EAAAvJ,SAAA,GAGd,IAAAyO,EAAAlF,EAAAiF,OAAuCF,GAAQ/E,EAAA5L,MAAAuQ,KAAA3E,EAAA5L,MAAAwC,KAE/CA,EAAA,MAAAsO,EAAAhG,EAAA8F,GAAA9F,GAAA,IAAA8F,GAAAE,GAEA,OACAtU,MAAAoP,EACAvJ,QAAAuJ,EAAA5L,MAAAqC,QACAG,KAAAoJ,EAAA5L,MAAA+I,SAAA6H,GAAApO,GAAA,KAAAA,KAKAsN,GAAA,SAAAD,GACA,OAAAA,EAAAkB,kBAAA,IAAAlB,EAAAmB,UAAAnB,EAAAoB,SAAApB,EAAAqB,QAAArB,EAAAsB,SAAAtB,EAAAuB,6CC3iBAnW,EAAAC,QAzCA,+CChBAA,EAAAmW,YAAA,EAEA,IAEAC,EAAAC,EAFanV,EAAQ,KAMrBoV,EAAAD,EAFsBnV,EAAQ,MAI9B,SAAAmV,EAAAtS,GAAsC,OAAAA,KAAAoS,WAAApS,EAAA,CAAuCoD,QAAApD,GAE7E/D,EAAAmH,QAAAiP,EAAAjP,QAAAoP,eAAAD,EAAAnP,QACApH,EAAAC,UAAA,0CCbAA,EAAAmW,YAAA,EAEA,IAAAK,EAAatV,EAAQ,IAMrBuV,GAJAJ,EAAAG,GAIAH,EAFiBnV,EAAQ,MAMzBwV,EAAAL,EAFWnV,EAAQ,MAMnBmV,EAFenV,EAAQ,MAIvB,SAAAmV,EAAAtS,GAAsC,OAAAA,KAAAoS,WAAApS,EAAA,CAAuCoD,QAAApD,GAE7E,SAAAsI,EAAAC,EAAAC,GAAiD,KAAAD,aAAAC,GAA0C,UAAAC,UAAA,qCAE3F,SAAAC,EAAAC,EAAA7C,GAAiD,IAAA6C,EAAa,UAAAC,eAAA,6DAAyF,OAAA9C,GAAA,iBAAAA,GAAA,mBAAAA,EAAA6C,EAAA7C,EAEvJ,SAAA+C,EAAAC,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAN,UAAA,kEAAAM,GAAuGD,EAAAlD,UAAAlH,OAAAC,OAAAoK,KAAAnD,UAAA,CAAyE/E,YAAA,CAAetD,MAAAuL,EAAAE,YAAA,EAAAC,UAAA,EAAAC,cAAA,KAA6EH,IAAArK,OAAAyK,eAAAzK,OAAAyK,eAAAL,EAAAC,GAAAD,EAAAM,UAAAL,GAErX,IAAA6J,EAAA,WAsKA3W,EAAAmH,QA/HA,SAAAkG,EAAAuJ,GACA,IAAAC,EAAAC,EAEAC,EAAA,6BAAAL,EAAAvP,WAAA,KAEAuG,EAAA,SAAAsJ,GAGA,SAAAtJ,IACA,IAAAS,EAAAC,EApCA9M,EACA2V,EAqCA5K,EAAA1H,KAAA+I,GAEA,QAAAW,EAAA3E,UAAAxG,OAAAtC,EAAA4C,MAAA6K,GAAAC,EAAA,EAAqEA,EAAAD,EAAaC,IAClF1N,EAAA0N,GAAA5E,UAAA4E,GAGA,OAAAH,EAAAC,EAAA3B,EAAA9H,KAAAqS,EAAAnN,KAAA0E,MAAAyI,EAAA,CAAArS,MAAArC,OAAA1B,KAAAwN,EAAA8I,SA5CA5V,EA4CA8M,EAAAtJ,MAAAxD,MA3CA2V,EAAA,GACA,CACAE,GAAA,SAAAC,GACAH,EAAA9S,KAAAiT,IAEAC,IAAA,SAAAD,GACAH,IAAA7S,OAAA,SAAAkT,GACA,OAAAA,IAAAF,KAGAG,IAAA,WACA,OAAAjW,GAEAkW,IAAA,SAAAC,EAAAC,GACApW,EAAAmW,EACAR,EAAApU,QAAA,SAAAuU,GACA,OAAAA,EAAA9V,EAAAoW,QA2BAjL,EAAA2B,EAAAD,GAoCA,OA/CAvB,EAAAc,EAAAsJ,GAcAtJ,EAAA/D,UAAAgO,gBAAA,WACA,IAAAjM,EAEA,OAAAA,EAAA,IAAsBqL,GAAApS,KAAAuS,QAAAxL,GAGtBgC,EAAA/D,UAAA3E,0BAAA,SAAAC,GACA,GAAAN,KAAAG,MAAAxD,QAAA2D,EAAA3D,MAAA,CACA,IAAAsW,EAAAjT,KAAAG,MAAAxD,MACAmW,EAAAxS,EAAA3D,MACAoW,OAAA,IAjEArT,EAmEAuT,MAnEAC,EAmEAJ,GAjEA,IAAApT,GAAA,EAAAA,GAAA,EAAAwT,EAEAxT,MAAAwT,MAgEAH,EAAA,GAEAA,EAAA,mBAAAd,IAAAgB,EAAAH,GAAAd,EAOA,IAFAe,GAAA,IAGA/S,KAAAuS,QAAAM,IAAAvS,EAAA3D,MAAAoW,IA9EA,IAAArT,EAAAwT,GAoFAnK,EAAA/D,UAAA4F,OAAA,WACA,OAAA5K,KAAAG,MAAA+I,UAGAH,EAhDA,CAiDG8I,EAAAhH,WAEH9B,EAAAoK,oBAAAjB,EAAA,IAA0DE,GAAAN,EAAAtP,QAAA4Q,OAAAC,WAAAnB,GAE1D,IAAArJ,EAAA,SAAAyK,GAGA,SAAAzK,IACA,IAAAkE,EAAAxC,EAEA7C,EAAA1H,KAAA6I,GAEA,QAAAoE,EAAAlI,UAAAxG,OAAAtC,EAAA4C,MAAAoO,GAAAC,EAAA,EAAwEA,EAAAD,EAAeC,IACvFjR,EAAAiR,GAAAnI,UAAAmI,GAGA,OAAAH,EAAAxC,EAAAzC,EAAA9H,KAAAsT,EAAApO,KAAA0E,MAAA0J,EAAA,CAAAtT,MAAArC,OAAA1B,KAAAsO,EAAAxK,MAAA,CACApD,MAAA4N,EAAAgJ,YACOhJ,EAAAiJ,SAAA,SAAAV,EAAAC,GAEP,KADA,EAAAxI,EAAAkJ,cACAV,IACAxI,EAAAnK,SAAA,CAA2BzD,MAAA4N,EAAAgJ,cAEpBzL,EAAAyC,EAAAwC,GAsCP,OAxDA9E,EAAAY,EAAAyK,GAqBAzK,EAAA7D,UAAA3E,0BAAA,SAAAC,GACA,IAAAmT,EAAAnT,EAAAmT,aAEAzT,KAAAyT,qBAAAzB,EACAyB,GAGA5K,EAAA7D,UAAAsF,kBAAA,WACAtK,KAAAoJ,QAAAgJ,IACApS,KAAAoJ,QAAAgJ,GAAAI,GAAAxS,KAAAwT,UAEA,IAAAC,EAAAzT,KAAAG,MAAAsT,aAEAzT,KAAAyT,qBAAAzB,EACAyB,GAGA5K,EAAA7D,UAAA2F,qBAAA,WACA3K,KAAAoJ,QAAAgJ,IACApS,KAAAoJ,QAAAgJ,GAAAM,IAAA1S,KAAAwT,WAIA3K,EAAA7D,UAAAuO,SAAA,WACA,OAAAvT,KAAAoJ,QAAAgJ,GACApS,KAAAoJ,QAAAgJ,GAAAQ,MAEAlK,GAIAG,EAAA7D,UAAA4F,OAAA,WACA,OApHA1B,EAoHAlJ,KAAAG,MAAA+I,SAnHArK,MAAAC,QAAAoK,KAAA,GAAAA,GAmHAlJ,KAAAD,MAAApD,OApHA,IAAAuM,GAuHAL,EAzDA,CA0DGgJ,EAAAhH,WAKH,OAHAhC,EAAA6K,eAAAvB,EAAA,IAAqDC,GAAAN,EAAAtP,QAAA4Q,OAAAjB,GAGrD,CACApJ,WACAF,aAKAzN,EAAAC,UAAA,2CCnMA,SAAAsY,GAGA,IAAAnW,EAAA,uBAEApC,EAAAC,QAAA,WACA,OAAAsY,EAAAnW,IAAAmW,EAAAnW,IAAA,0DCIA,IASAoW,EAToBrX,EAAQ,KAmD5BnB,EAAAC,QAAAuY,oCClDA,SAAAC,EAAAC,GACA,kBACA,OAAAA,GASA,IAAAC,EAAA,aAEAA,EAAAC,YAAAH,EACAE,EAAAE,iBAAAJ,GAAA,GACAE,EAAAG,gBAAAL,GAAA,GACAE,EAAAI,gBAAAN,EAAA,MACAE,EAAAK,gBAAA,WACA,OAAApU,MAEA+T,EAAAM,oBAAA,SAAAP,GACA,OAAAA,GAGA1Y,EAAAC,QAAA0Y,oCClCA3Y,EAAAC,QAAA,SAAA2B,GACA,OAAAF,mBAAAE,GAAAb,QAAA,oBAAAT,GACA,UAAAA,EAAA4Y,WAAA,GAAAC,SAAA,IAAAC,mDCFA,IACAC,EAAA,IAAAC,OADA,eACA,MACAC,EAAA,IAAAD,OAAA,wBAEA,SAAAE,EAAAC,EAAA5W,GACA,IAEA,OAAA+E,mBAAA6R,EAAArW,KAAA,KACE,MAAAsW,IAIF,OAAAD,EAAAtW,OACA,OAAAsW,EAGA5W,KAAA,EAGA,IAAA8W,EAAAF,EAAA1X,MAAA,EAAAc,GACA+W,EAAAH,EAAA1X,MAAAc,GAEA,OAAAY,MAAAmG,UAAArH,OAAAuH,KAAA,GAAA0P,EAAAG,GAAAH,EAAAI,IAGA,SAAAC,EAAAjW,GACA,IACA,OAAAgE,mBAAAhE,GACE,MAAA8V,GAGF,IAFA,IAAAI,EAAAlW,EAAA4C,MAAA6S,GAEArS,EAAA,EAAiBA,EAAA8S,EAAA3W,OAAmB6D,IAGpC8S,GAFAlW,EAAA4V,EAAAM,EAAA9S,GAAA5D,KAAA,KAEAoD,MAAA6S,GAGA,OAAAzV,GAyCA5D,EAAAC,QAAA,SAAA8Z,GACA,oBAAAA,EACA,UAAAtN,UAAA,6DAAAsN,EAAA,KAGA,IAIA,OAHAA,IAAAhZ,QAAA,WAGA6G,mBAAAmS,GACE,MAAAL,GAEF,OAjDA,SAAA9V,GAQA,IANA,IAAAoW,EAAA,CACAC,SAAA,KACAC,SAAA,MAGA1T,EAAA+S,EAAAjX,KAAAsB,GACA4C,GAAA,CACA,IAEAwT,EAAAxT,EAAA,IAAAoB,mBAAApB,EAAA,IACG,MAAAkT,GACH,IAAAxX,EAAA2X,EAAArT,EAAA,IAEAtE,IAAAsE,EAAA,KACAwT,EAAAxT,EAAA,IAAAtE,GAIAsE,EAAA+S,EAAAjX,KAAAsB,GAIAoW,EAAA,WAIA,IAFA,IAAApP,EAAAlI,OAAAW,KAAA2W,GAEAhT,EAAA,EAAgBA,EAAA4D,EAAAzH,OAAoB6D,IAAA,CAEpC,IAAA5E,EAAAwI,EAAA5D,GACApD,IAAA7C,QAAA,IAAAuY,OAAAlX,EAAA,KAAA4X,EAAA5X,IAGA,OAAAwB,EAeAuW,CAAAJ,sCCmDO,SAAAK,EAAAxW,GACP,SAAAA,EAAA,CAGA,IAAAyW,EAAAzW,aAAAH,MAAAG,EAAA,GAAAA,EACA,SAAAyW,GAAA,KAAAA,EAAA,CAGA,IAAAnY,GAAAmY,EACA,IAAAC,MAAApY,GAGA,OAAAA,IA0IO,SAAAqY,EAAAC,EAAAC,GAEP,QADA,IAAAA,IAAoCA,EAAA,KACpCD,EAGA,OAAAA,EAAApX,KAAAqX,GAaO,SAAAC,EAAA9W,EAAA6W,GAEP,QADA,IAAAA,IAAoCA,EAAA,KACpC,MAAA7W,EAAA,CAGA,IAAA+W,EAAA/W,aAAAH,MAAAG,EAAA,GAAAA,EACA,GAAA+W,EAGA,OAAAA,EACA9X,MAAA4X,GACA3W,IAAA,SAAA8W,GAA8B,WAAAA,OAAAja,EAAAia,IAC9BvW,OAAA,SAAAuW,GAAiC,YAAAja,IAAAia,KC9T1B,IAAAC,EAAA,CACPvZ,OD6JO,SAAAM,GACP,SAAAA,EAGA,OAAAkZ,OAAAlZ,IChKAiY,OD0KO,SAAAjW,GACP,SAAAA,EAAA,CAGA,IAAAhC,EAAAgC,aAAAH,MAAAG,EAAA,GAAAA,EACA,SAAAhC,EAGA,OAAAkZ,OAAAlZ,MC7KOmZ,EAAA,CACPzZ,ODmHO,SAAA0Z,GACP,SAAAA,EAGA,OAAAF,OAAAE,ICtHAnB,OAAYO,GA6DLa,EAAA,CACP3Z,OAAYiZ,EACZV,OAAYa,YC5EZQ,EAA4B,WAS5B,OARAA,EAAAxY,OAAA+G,QAAA,SAAA0R,GACA,QAAAC,EAAApU,EAAA,EAAAgM,EAAArJ,UAAAxG,OAAgD6D,EAAAgM,EAAOhM,IAEvD,QAAAqU,KADAD,EAAAzR,UAAA3C,GACAtE,OAAAkH,UAAAC,eAAAC,KAAAsR,EAAAC,KACAF,EAAAE,GAAAD,EAAAC,IAEA,OAAAF,IAEA3M,MAAA5J,KAAA+E,YAOA,SAAA2R,EAAA7W,GAUA,OATA/B,OAAAW,KAAAoB,GAAAlB,OAAA,SAAAgY,EAAAC,GAEA,IAAAC,EAAAhX,EAAA+W,GAKA,OAHA,MAAAC,GAAA,KAAAA,IACAF,EAAAC,GAAAC,GAEAF,GACK,IAME,SAAAG,EAAAC,EAAA7V,GACP,IAAA8V,EAA8BlZ,OAAAmZ,EAAA,UAAAnZ,CAAS4Y,EAAAK,IAEvC,OADAT,EAAA,GAAiCpV,EAAA,CAAa1D,IAAA,GAAAyJ,KAAAC,MAAA3F,OAAAyV,EAAAzY,OAAA,IAAAyY,EAAA,KAMvC,SAAAE,EAAAC,EAAAjW,GAEP,IAAAkW,EAAAlW,EAAArB,OAAsC/B,OAAAmZ,EAAA,MAAAnZ,CAAgBoD,EAAAK,QAEtD,OAAAuV,EAAAJ,EADAJ,EAAA,GAA8Bc,EAAAD,IAC9BjW,eC3CImW,EAAwB,WAS5B,OARIA,EAAQvZ,OAAA+G,QAAA,SAAA0R,GACZ,QAAAC,EAAApU,EAAA,EAAAgM,EAAArJ,UAAAxG,OAAgD6D,EAAAgM,EAAOhM,IAEvD,QAAAqU,KADAD,EAAAzR,UAAA3C,GACAtE,OAAAkH,UAAAC,eAAAC,KAAAsR,EAAAC,KACAF,EAAAE,GAAAD,EAAAC,IAEA,OAAAF,IAEmB3M,MAAA5J,KAAA+E,YAyBnB,SAAAuS,EAAAlS,GACA,OACAjJ,QAAA,SAAA+E,GACAkE,EAAA0B,SAAA5F,EAAAqW,SAAA,KAAArW,EAAAsW,KAAAtW,EAAA6C,SAAA7C,EAAAK,OAAA,CAA8GpF,SAAA,KAE9GqD,KAAA,SAAA0B,GACAkE,EAAA0B,SAAA5F,EAAAqW,SAAA,KAAArW,EAAAsW,KAAAtW,EAAA6C,SAAA7C,EAAAK,OAAA,CAA8GpF,SAAA,MAQ9G,SAAAsb,EAAAC,QACA,IAAAA,IAAkCA,EAAA,IAClC,IAhCAtS,EAgCAzI,EAAgB0a,EAAQ,GAAGK,GAU3B,MATA,oBAAApS,SAEA3I,EAAAyI,UACAzI,EAAAyI,SApCAA,EAoCAE,OAAAF,QAnCA,CACAjJ,QAAA,SAAA+E,GACAkE,EAAAiB,aAAAnF,EAAAnB,MAAA,GAAAmB,EAAAqW,SAAA,KAAArW,EAAAsW,KAAAtW,EAAA6C,SAAA7C,EAAAK,SAEA/B,KAAA,SAAA0B,GACAkE,EAAAa,UAAA/E,EAAAnB,MAAA,GAAAmB,EAAAqW,SAAA,KAAArW,EAAAsW,KAAAtW,EAAA6C,SAAA7C,EAAAK,YAgCA5E,EAAAuE,WACAvE,EAAAuE,SAAAoE,OAAApE,WAGAvE,EAEO,IAAAgb,EAAwBC,EAAA,cAAmBH,KAK3C,SAAAI,EAAAC,GACP,IAAA5O,EAAA4O,EAAA5O,SAAA6O,EAAAD,EAAAC,iBAAAC,EAAAF,EAAAE,aAAA5S,EAAA0S,EAAA1S,QAAAlE,EAAA4W,EAAA5W,SAEA,OAAA6W,EACgBH,EAAA,cAAmBG,EAAA,cAAAE,GACnC,OAAoBL,EAAA,cAAmBD,EAAA5O,SAAA,CAA8BpM,MAAA8a,EAAAQ,IAAqC/O,KAI1G8O,EACgBJ,EAAA,cAAmBD,EAAA5O,SAAA,CAA8BpM,MAAA8a,EAAA,CACjErS,QAAAkS,EAAAU,GACA9W,cACgBgI,GAGJ0O,EAAA,cAAmBD,EAAA5O,SAAA,CAA8BpM,MAAA8a,EAAA,CAAyBrS,UAAAlE,cAA0CgI,GC5EzH,SAAAgP,EAAAC,EAAAjX,EAAAkE,EAAAgT,GAEP,YADA,IAAAA,IAAgCA,EAAA,aAChCA,GACA,gBACAhT,EAAAjJ,QAA4B+a,EAAgBiB,EAAAjX,IAC5C,MACA,aACAkE,EAAA5F,KAAyB0X,EAAgBiB,EAAAjX,IACzC,MACA,cACAkE,EAAAjJ,QAA4B2a,EAAcqB,EAAAjX,IAC1C,MACA,WACAkE,EAAA5F,KAAyBsX,EAAcqB,EAAAjX,KAKxB,ICPRmX,EAAA,SAAAjc,EAAAkc,EAAAC,QACP,IAAAD,IAAiCA,EAAerC,GAChD,IAAA6B,EAAaF,EAAA,WAAiBD,GAAiBvS,EAAA0S,EAAA1S,QAAAlE,EAAA4W,EAAA5W,SAE/CqX,IACAA,EAAmBX,EAAA,QAAa,WAAc,OAAQ9Z,OAAAmZ,EAAA,MAAAnZ,CAAgBoD,EAAAK,SAAA,IAA0B,CAChGL,EAAAK,UAIA,IAAAsV,EAAA0B,EAAAnc,GAsBA,OAnBuBwb,EAAA,QAAa,WACpC,SAAAf,EAGA,OAAAyB,EAAArD,OAAA4B,IAIK,CACLA,aAAAhY,MACcf,OAAAmZ,EAAA,UAAAnZ,CAAS,CAAE1B,KAAAya,IACzBA,IAGmBe,EAAA,YAAiB,SAAA9E,EAAAsF,GACpC,IAAAN,EACAU,EAAAF,EAAA5b,OAAAoW,GACQoF,IAAcJ,EAAA,IAAS1b,GAAAoc,EAAAV,GAAA5W,EAAAkE,EAAAgT,IAC1B,CAAAlX,MCjDL3E,EAAAZ,EAAA2L,EAAA,sBAAA2O,IAAA1Z,EAAAZ,EAAA2L,EAAA,sBAAA6O,IAAA5Z,EAAAZ,EAAA2L,EAAA,sBAAA+O,IAAA9Z,EAAAZ,EAAA2L,EAAA,sBAAA+Q,IAAA9b,EAAAZ,EAAA2L,EAAA,sBAAAuQ","file":"vendors~articles~awards~events~menu-list~profiles-367f0904fd4488d00f6e.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t} else if (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value, accumulator) {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nfunction extract(str) {\n\tvar queryStart = str.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\treturn str.slice(queryStart + 1);\n}\n\nfunction parse(str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^[?#&]/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeComponent(val);\n\n\t\tformatter(decodeComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tif (opts.sort === false) {\n\t\topts.sort = function () {};\n\t}\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort(opts.sort).map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\n};\n\nexports.parseUrl = function (str, opts) {\n\treturn {\n\t\turl: str.split('?')[0] || '',\n\t\tquery: parse(extract(str), opts)\n\t};\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n var _isSplat = routeSegment === \"*\";\n if (_isSplat) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n params[\"*\"] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\nvar insertParams = function insertParams(path, params) {\n var segments = segmentize(path);\n return \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname, query) {\n return pathname + (query ? \"?\" + query : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n return _extends({}, source.location, {\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n });\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPathname = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var index = 0;\n var stack = [{ pathname: initialPathname, search: \"\" }];\n var states = [];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React from \"react\";\nimport warning from \"warning\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.Consumer.displayName = name + \".Consumer\";\n Ctx.Provider.displayName = name + \".Provider\";\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: url,\n search: \"\",\n hash: \"\"\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.map(children, createRoute(basepath));\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$role = _props2.role,\n role = _props2$role === undefined ? \"group\" : _props2$role,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"role\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n role: role,\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var isCurrent = location.pathname === href;\n var isPartiallyCurrent = startsWith(location.pathname, href);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n navigate(href, { state: state, replace: replace });\n }\n }\n }));\n }\n );\n }\n );\n});\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n Promise.resolve().then(function () {\n navigate(insertParams(to, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\"]);\n\n if (!noThrow) redirectTo(insertParams(to, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, props));\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref7) {\n var path = _ref7.path,\n children = _ref7.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref8) {\n var baseuri = _ref8.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref9) {\n var navigate = _ref9.navigate,\n location = _ref9.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory };","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n\n if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n throw new Error(\n 'The warning format should be able to uniquely identify this ' +\n 'warning. Please, use a more descriptive format than: ' + format\n );\n }\n\n if (!condition) {\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch(x) {}\n }\n };\n}\n\nmodule.exports = warning;\n","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('fbjs/lib/warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\n};\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","/**\n * Encodes a date as a string in YYYY-MM-DD format.\n *\n * @param {Date} date\n * @return {String} the encoded date\n */\nexport function encodeDate(date) {\n if (date == null) {\n return undefined;\n }\n var year = date.getFullYear();\n var month = date.getMonth() + 1;\n var day = date.getDate();\n return year + \"-\" + (month < 10 ? \"0\" + month : month) + \"-\" + (day < 10 ? \"0\" + day : day);\n}\n/**\n * Converts a date in the format 'YYYY-mm-dd...' into a proper date, because\n * new Date() does not do that correctly. The date can be as complete or incomplete\n * as necessary (aka, '2015', '2015-10', '2015-10-01').\n * It will not work for dates that have times included in them.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input String date form like '2015-10-01'\n * @return {Date} parsed date\n */\nexport function decodeDate(input) {\n if (input == null || !input.length) {\n return undefined;\n }\n var dateString = input instanceof Array ? input[0] : input;\n if (dateString == null || !dateString.length) {\n return undefined;\n }\n var parts = dateString.split('-');\n // may only be a year so won't even have a month\n if (parts[1] != null) {\n parts[1] -= 1; // Note: months are 0-based\n }\n else {\n // just a year, set the month and day to the first\n parts[1] = 0;\n parts[2] = 1;\n }\n var decoded = new (Date.bind.apply(Date, [void 0].concat(parts)))();\n if (isNaN(decoded.getTime())) {\n return undefined;\n }\n return decoded;\n}\n/**\n * Encodes a date as a string in ISO 8601 (\"2019-05-28T10:58:40Z\") format.\n *\n * @param {Date} date\n * @return {String} the encoded date\n */\nexport function encodeDateTime(date) {\n if (date == null) {\n return undefined;\n }\n return date.toISOString();\n}\n/**\n * Converts a date in the https://en.wikipedia.org/wiki/ISO_8601 format.\n * For allowed inputs see specs:\n * - https://tools.ietf.org/html/rfc2822#page-14\n * - http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.15\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input String date form like '1995-12-17T03:24:00'\n * @return {Date} parsed date\n */\nexport function decodeDateTime(input) {\n if (input == null || !input.length) {\n return undefined;\n }\n var dateString = input instanceof Array ? input[0] : input;\n if (dateString == null || !dateString.length) {\n return undefined;\n }\n var decoded = new Date(dateString);\n if (isNaN(decoded.getTime())) {\n return undefined;\n }\n return decoded;\n}\n/**\n * Encodes a boolean as a string. true -> \"1\", false -> \"0\".\n *\n * @param {Boolean} bool\n * @return {String} the encoded boolean\n */\nexport function encodeBoolean(bool) {\n if (bool === undefined) {\n return undefined;\n }\n return bool ? '1' : '0';\n}\n/**\n * Decodes a boolean from a string. \"1\" -> true, \"0\" -> false.\n * Everything else maps to undefined.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded boolean string\n * @return {Boolean} the boolean value\n */\nexport function decodeBoolean(input) {\n if (input == null) {\n return undefined;\n }\n var boolStr = input instanceof Array ? input[0] : input;\n if (boolStr === '1') {\n return true;\n }\n else if (boolStr === '0') {\n return false;\n }\n return undefined;\n}\n/**\n * Encodes a number as a string.\n *\n * @param {Number} num\n * @return {String} the encoded number\n */\nexport function encodeNumber(num) {\n if (num == null) {\n return undefined;\n }\n return String(num);\n}\n/**\n * Decodes a number from a string. If the number is invalid,\n * it returns undefined.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded number string\n * @return {Number} the number value\n */\nexport function decodeNumber(input) {\n if (input == null) {\n return undefined;\n }\n var numStr = input instanceof Array ? input[0] : input;\n if (numStr == null || numStr === '') {\n return undefined;\n }\n var result = +numStr;\n if (isNaN(result)) {\n return undefined;\n }\n return result;\n}\n/**\n * Encodes a string while safely handling null and undefined values.\n *\n * @param {String} str a string to encode\n * @return {String} the encoded string\n */\nexport function encodeString(str) {\n if (str == null) {\n return undefined;\n }\n return String(str);\n}\n/**\n * Decodes a string while safely handling null and undefined values.\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input the encoded string\n * @return {String} the string value\n */\nexport function decodeString(input) {\n if (input == null) {\n return undefined;\n }\n var str = input instanceof Array ? input[0] : input;\n if (str == null) {\n return undefined;\n }\n return String(str);\n}\n/**\n * Encodes anything as a JSON string.\n *\n * @param {Any} any The thing to be encoded\n * @return {String} The JSON string representation of any\n */\nexport function encodeJson(any) {\n if (any == null) {\n return undefined;\n }\n return JSON.stringify(any);\n}\n/**\n * Decodes a JSON string into javascript\n *\n * If an array is provided, only the first entry is used.\n *\n * @param {String} input The JSON string representation\n * @return {Any} The javascript representation\n */\nexport function decodeJson(input) {\n if (input == null) {\n return undefined;\n }\n var jsonStr = input instanceof Array ? input[0] : input;\n if (!jsonStr) {\n return undefined;\n }\n var result;\n try {\n result = JSON.parse(jsonStr);\n }\n catch (e) {\n /* ignore errors, returning undefined */\n }\n return result;\n}\n/**\n * Encodes an array as a JSON string.\n *\n * @param {Array} array The array to be encoded\n * @return {String[]} The array of strings to be put in the URL\n * as repeated query parameters\n */\nexport function encodeArray(array) {\n if (!array) {\n return undefined;\n }\n return array;\n}\n/**\n * Decodes an array or singular value and returns it as an array\n * or undefined if falsy. Filters out undefined values.\n *\n * @param {String | Array} input The input value\n * @return {Array} The javascript representation\n */\nexport function decodeArray(input) {\n if (!input) {\n return undefined;\n }\n if (!(input instanceof Array)) {\n return [input];\n }\n return input\n .map(function (item) { return (item === '' ? undefined : item); })\n .filter(function (item) { return item !== undefined; });\n}\n/**\n * Encodes a numeric array as a JSON string.\n *\n * @param {Array} array The array to be encoded\n * @return {String[]} The array of strings to be put in the URL\n * as repeated query parameters\n */\nexport function encodeNumericArray(array) {\n if (!array) {\n return undefined;\n }\n return array.map(function (d) { return \"\" + d; });\n}\n/**\n * Decodes an array or singular value and returns it as an array\n * or undefined if falsy. Filters out undefined and NaN values.\n *\n * @param {String | Array} input The input value\n * @return {Array} The javascript representation\n */\nexport function decodeNumericArray(input) {\n var arr = decodeArray(input);\n if (!arr) {\n return undefined;\n }\n return arr\n .map(function (item) { return +item; })\n .filter(function (item) { return item !== undefined && !isNaN(item); });\n}\n/**\n * Encodes an array as a delimited string. For example,\n * ['a', 'b'] -> 'a_b' with entrySeparator='_'\n *\n * @param array The array to be encoded\n * @param entrySeparator The string used to delimit entries\n * @return The array as a string with elements joined by the\n * entry separator\n */\nexport function encodeDelimitedArray(array, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (!array) {\n return undefined;\n }\n return array.join(entrySeparator);\n}\n/**\n * Decodes a delimited string into javascript array. For example,\n * 'a_b' -> ['a', 'b'] with entrySeparator='_'\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The JSON string representation\n * @param entrySeparator The array as a string with elements joined by the\n * entry separator\n * @return {Array} The javascript representation\n */\nexport function decodeDelimitedArray(input, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (input == null) {\n return undefined;\n }\n var arrayStr = input instanceof Array ? input[0] : input;\n if (!arrayStr) {\n return undefined;\n }\n return arrayStr\n .split(entrySeparator)\n .map(function (item) { return (item === '' ? undefined : item); })\n .filter(function (item) { return item !== undefined; });\n}\n/**\n * Encodes a numeric array as a delimited string. (alias of encodeDelimitedArray)\n * For example, [1, 2] -> '1_2' with entrySeparator='_'\n *\n * @param {Array} array The array to be encoded\n * @return {String} The JSON string representation of array\n */\nexport var encodeDelimitedNumericArray = encodeDelimitedArray;\n/**\n * Decodes a delimited string into javascript array where all entries are numbers\n * For example, '1_2' -> [1, 2] with entrySeparator='_'\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} jsonStr The JSON string representation\n * @return {Array} The javascript representation\n */\nexport function decodeDelimitedNumericArray(arrayStr, entrySeparator) {\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var decoded = decodeDelimitedArray(arrayStr, entrySeparator);\n if (!decoded) {\n return undefined;\n }\n return decoded\n .map(function (d) { return (d == null ? undefined : +d); })\n .filter(function (d) { return d !== undefined && !isNaN(d); });\n}\n/**\n * Encode simple objects as readable strings. Works only for simple,\n * flat objects where values are numbers, strings.\n *\n * For example { foo: bar, boo: baz } -> \"foo-bar_boo-baz\"\n *\n * @param {Object} object The object to encode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {String} The encoded object\n */\nexport function encodeObject(obj, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (!obj || !Object.keys(obj).length) {\n return undefined;\n }\n return Object.keys(obj)\n .map(function (key) { return \"\" + key + keyValSeparator + obj[key]; })\n .join(entrySeparator);\n}\n/**\n * Decodes a simple object to javascript. Currently works only for simple,\n * flat objects where values are strings.\n *\n * For example \"foo-bar_boo-baz\" -> { foo: bar, boo: baz }\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The object string to decode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {Object} The javascript object\n */\nexport function decodeObject(input, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n if (input == null) {\n return undefined;\n }\n var objStr = input instanceof Array ? input[0] : input;\n if (!objStr || !objStr.length) {\n return undefined;\n }\n var obj = {};\n objStr.split(entrySeparator).forEach(function (entryStr) {\n var _a = entryStr.split(keyValSeparator), key = _a[0], value = _a[1];\n obj[key] = value === '' ? undefined : value;\n });\n return obj;\n}\n/**\n * Encode simple objects as readable strings. Alias of encodeObject.\n *\n * For example { foo: 123, boo: 521 } -> \"foo-123_boo-521\"\n *\n * @param {Object} object The object to encode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {String} The encoded object\n */\nexport var encodeNumericObject = encodeObject;\n/**\n * Decodes a simple object to javascript where all values are numbers.\n * Currently works only for simple, flat objects.\n *\n * For example \"foo-123_boo-521\" -> { foo: 123, boo: 521 }\n *\n * If an array is provided as input, only the first entry is used.\n *\n * @param {String} input The object string to decode\n * @param {String} keyValSeparator=\"-\" The separator between keys and values\n * @param {String} entrySeparator=\"_\" The separator between entries\n * @return {Object} The javascript object\n */\nexport function decodeNumericObject(input, keyValSeparator, entrySeparator) {\n if (keyValSeparator === void 0) { keyValSeparator = '-'; }\n if (entrySeparator === void 0) { entrySeparator = '_'; }\n var decoded = decodeObject(input, keyValSeparator, entrySeparator);\n if (!decoded) {\n return undefined;\n }\n // convert to numbers\n Object.keys(decoded).forEach(function (key) {\n if (decoded[key] !== undefined) {\n decoded[key] = decodeNumber(decoded[key]);\n }\n });\n return decoded;\n}\n","import * as Serialize from './serialize';\n/**\n * String values\n */\nexport var StringParam = {\n encode: Serialize.encodeString,\n decode: Serialize.decodeString,\n};\n/**\n * Numbers (integers or floats)\n */\nexport var NumberParam = {\n encode: Serialize.encodeNumber,\n decode: Serialize.decodeNumber,\n};\n/**\n * For flat objects where values are strings\n */\nexport var ObjectParam = {\n encode: Serialize.encodeObject,\n decode: Serialize.decodeObject,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var ArrayParam = {\n encode: Serialize.encodeArray,\n decode: Serialize.decodeArray,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var NumericArrayParam = {\n encode: Serialize.encodeNumericArray,\n decode: Serialize.decodeNumericArray,\n};\n/**\n * For any type of data, encoded via JSON.stringify\n */\nexport var JsonParam = {\n encode: Serialize.encodeJson,\n decode: Serialize.decodeJson,\n};\n/**\n * For simple dates (YYYY-MM-DD)\n */\nexport var DateParam = {\n encode: Serialize.encodeDate,\n decode: Serialize.decodeDate,\n};\n/**\n * For dates in simplified extended ISO format (YYYY-MM-DDTHH:mm:ss.sssZ or ±YYYYYY-MM-DDTHH:mm:ss.sssZ)\n */\nexport var DateTimeParam = {\n encode: Serialize.encodeDateTime,\n decode: Serialize.decodeDateTime,\n};\n/**\n * For boolean values: 1 = true, 0 = false\n */\nexport var BooleanParam = {\n encode: Serialize.encodeBoolean,\n decode: Serialize.decodeBoolean,\n};\n/**\n * For flat objects where the values are numbers\n */\nexport var NumericObjectParam = {\n encode: Serialize.encodeNumericObject,\n decode: Serialize.decodeNumericObject,\n};\n/**\n * For flat arrays of strings, filters out undefined values during decode\n */\nexport var DelimitedArrayParam = {\n encode: Serialize.encodeDelimitedArray,\n decode: Serialize.decodeDelimitedArray,\n};\n/**\n * For flat arrays where the values are numbers, filters out undefined values during decode\n */\nexport var DelimitedNumericArrayParam = {\n encode: Serialize.encodeDelimitedNumericArray,\n decode: Serialize.decodeDelimitedNumericArray,\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { stringify, parse as parseQueryString } from 'query-string';\n/**\n * remove query params that are nully or an empty strings.\n * note: these values are assumed to be already encoded as strings.\n */\nfunction filterNully(query) {\n var filteredQuery = Object.keys(query).reduce(function (queryAccumulator, queryParam) {\n // get encoded value for this param\n var encodedValue = query[queryParam];\n // if it isn't null or empty string, add it to the accumulated obj\n if (encodedValue != null && encodedValue !== '') {\n queryAccumulator[queryParam] = encodedValue;\n }\n return queryAccumulator;\n }, {});\n return filteredQuery;\n}\n/**\n * Update a location, wiping out parameters not included in encodedQuery\n */\nexport function updateLocation(encodedQuery, location) {\n var encodedSearchString = stringify(filterNully(encodedQuery));\n var newLocation = __assign({}, location, { key: \"\" + Date.now(), search: encodedSearchString.length ? \"?\" + encodedSearchString : '' });\n return newLocation;\n}\n/**\n * Update a location while retaining existing parameters\n */\nexport function updateInLocation(encodedQueryReplacements, location) {\n // if a query is there, use it, otherwise parse the search string\n var currQuery = location.query || parseQueryString(location.search);\n var newQuery = __assign({}, currQuery, encodedQueryReplacements);\n return updateLocation(filterNully(newQuery), location);\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\n/**\n * Adapts standard DOM window history to work with our\n * { replace, push } interface.\n *\n * @param history Standard history provided by DOM\n */\nfunction adaptWindowHistory(history) {\n return {\n replace: function (location) {\n history.replaceState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n push: function (location) {\n history.pushState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n };\n}\n/**\n * Adapts @reach/router history to work with our\n * { replace, push } interface.\n *\n * @param history globalHistory from @reach/router\n */\nfunction adaptReachHistory(history) {\n return {\n replace: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: true });\n },\n push: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: false });\n },\n };\n}\n/**\n * Helper to produce the context value falling back to\n * window history and location if not provided.\n */\nfunction getContextValue(contextValue) {\n if (contextValue === void 0) { contextValue = {}; }\n var value = __assign({}, contextValue);\n var hasWindow = typeof window !== 'undefined';\n if (hasWindow) {\n if (!value.history) {\n value.history = adaptWindowHistory(window.history);\n }\n if (!value.location) {\n value.location = window.location;\n }\n }\n return value;\n}\nexport var QueryParamContext = React.createContext(getContextValue());\n/**\n * Context provider for query params to have access to the\n * active routing system, enabling updates to the URL.\n */\nexport function QueryParamProvider(_a) {\n var children = _a.children, ReactRouterRoute = _a.ReactRouterRoute, reachHistory = _a.reachHistory, history = _a.history, location = _a.location;\n // if we have React Router, use it to get the context value\n if (ReactRouterRoute) {\n return (React.createElement(ReactRouterRoute, null, function (routeProps) {\n return (React.createElement(QueryParamContext.Provider, { value: getContextValue(routeProps) }, children));\n }));\n }\n // if we are using reach router, use its history\n if (reachHistory) {\n return (React.createElement(QueryParamContext.Provider, { value: getContextValue({\n history: adaptReachHistory(reachHistory),\n location: location,\n }) }, children));\n }\n // neither reach nor react-router, so allow manual overrides\n return (React.createElement(QueryParamContext.Provider, { value: getContextValue({ history: history, location: location }) }, children));\n}\nexport default QueryParamProvider;\n","import { updateLocation, updateInLocation, } from 'serialize-query-params';\n/**\n * Updates the URL to match the specified query changes.\n * If replaceIn or pushIn are used as the updateType, then parameters\n * not specified in queryReplacements are retained. If replace or push\n * are used, only the values in queryReplacements will be available.\n */\nexport function updateUrlQuery(queryReplacements, location, history, updateType) {\n if (updateType === void 0) { updateType = 'replaceIn'; }\n switch (updateType) {\n case 'replaceIn':\n history.replace(updateInLocation(queryReplacements, location));\n break;\n case 'pushIn':\n history.push(updateInLocation(queryReplacements, location));\n break;\n case 'replace':\n history.replace(updateLocation(queryReplacements, location));\n break;\n case 'push':\n history.push(updateLocation(queryReplacements, location));\n break;\n default:\n }\n}\nexport default updateUrlQuery;\n","import * as React from 'react';\nimport { parse as parseQueryString, stringify, StringParam, } from 'serialize-query-params';\nimport { QueryParamContext } from './QueryParamProvider';\nimport { updateUrlQuery } from './updateUrlQuery';\n/**\n * Given a query param name and query parameter configuration ({ encode, decode })\n * return the decoded value and a setter for updating it.\n *\n * The setter takes two arguments (newValue, updateType) where updateType\n * is one of 'replace' | 'replaceIn' | 'push' | 'pushIn', defaulting to\n * 'replaceIn'.\n *\n * You may optionally pass in a rawQuery object, otherwise the query is derived\n * from the location available in the QueryParamContext.\n *\n * D = decoded type\n * D2 = return value from decode (typically same as D)\n */\nexport var useQueryParam = function (name, paramConfig, rawQuery) {\n if (paramConfig === void 0) { paramConfig = StringParam; }\n var _a = React.useContext(QueryParamContext), history = _a.history, location = _a.location;\n // read in the raw query\n if (!rawQuery) {\n rawQuery = React.useMemo(function () { return parseQueryString(location.search) || {}; }, [\n location.search,\n ]);\n }\n // read in the encoded string value\n var encodedValue = rawQuery[name];\n // decode if the encoded value has changed, otherwise\n // re-use memoized value\n var decodedValue = React.useMemo(function () {\n if (encodedValue == null) {\n return undefined;\n }\n return paramConfig.decode(encodedValue);\n // note that we use the stringified encoded value since the encoded\n // value may be an array that is recreated if a different query param\n // changes.\n }, [\n encodedValue instanceof Array\n ? stringify({ name: encodedValue })\n : encodedValue,\n ]);\n // create the setter, memoizing via useCallback\n var setValue = React.useCallback(function (newValue, updateType) {\n var _a;\n var newEncodedValue = paramConfig.encode(newValue);\n updateUrlQuery((_a = {}, _a[name] = newEncodedValue, _a), location, history, updateType);\n }, [location]);\n return [decodedValue, setValue];\n};\n","export * from 'serialize-query-params';\nexport { useQueryParam } from './useQueryParam';\nexport { useQueryParams } from './useQueryParams';\nexport { updateUrlQuery } from './updateUrlQuery';\nexport { QueryParamProvider, QueryParamContext, } from './QueryParamProvider';\n"],"sourceRoot":""}