{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 5e48800116fe515b9204","webpack:///./index.js","webpack:///./src/places.js","webpack:///./~/events/events.js","webpack:///./~/algoliasearch/src/browser/builds/algoliasearch.js","webpack:///./~/algoliasearch/~/inherits/inherits_browser.js","webpack:///./~/algoliasearch/~/es6-promise/dist/es6-promise.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///(webpack)/buildin/module.js","webpack:///vertx (ignored)","webpack:///(webpack)/buildin/amd-define.js","webpack:///./~/algoliasearch/src/AlgoliaSearch.js","webpack:///./~/algoliasearch/src/errors.js","webpack:///./~/algoliasearch/~/lodash/collection/forEach.js","webpack:///./~/algoliasearch/~/lodash/internal/arrayEach.js","webpack:///./~/algoliasearch/~/lodash/internal/baseEach.js","webpack:///./~/algoliasearch/~/lodash/internal/baseForOwn.js","webpack:///./~/algoliasearch/~/lodash/internal/baseFor.js","webpack:///./~/algoliasearch/~/lodash/internal/createBaseFor.js","webpack:///./~/algoliasearch/~/lodash/internal/toObject.js","webpack:///./~/algoliasearch/~/lodash/lang/isObject.js","webpack:///./~/algoliasearch/~/lodash/object/keys.js","webpack:///./~/algoliasearch/~/lodash/internal/getNative.js","webpack:///./~/algoliasearch/~/lodash/lang/isNative.js","webpack:///./~/algoliasearch/~/lodash/lang/isFunction.js","webpack:///./~/algoliasearch/~/lodash/internal/isObjectLike.js","webpack:///./~/algoliasearch/~/lodash/internal/isArrayLike.js","webpack:///./~/algoliasearch/~/lodash/internal/getLength.js","webpack:///./~/algoliasearch/~/lodash/internal/baseProperty.js","webpack:///./~/algoliasearch/~/lodash/internal/isLength.js","webpack:///./~/algoliasearch/~/lodash/internal/shimKeys.js","webpack:///./~/algoliasearch/~/lodash/lang/isArguments.js","webpack:///./~/algoliasearch/~/lodash/lang/isArray.js","webpack:///./~/algoliasearch/~/lodash/internal/isIndex.js","webpack:///./~/algoliasearch/~/lodash/object/keysIn.js","webpack:///./~/algoliasearch/~/lodash/internal/createBaseEach.js","webpack:///./~/algoliasearch/~/lodash/internal/createForEach.js","webpack:///./~/algoliasearch/~/lodash/internal/bindCallback.js","webpack:///./~/algoliasearch/~/lodash/utility/identity.js","webpack:///./~/algoliasearch/src/buildSearchMethod.js","webpack:///./~/algoliasearch/~/debug-ms-fix-yui-compressor/browser.js","webpack:///./~/algoliasearch/~/debug-ms-fix-yui-compressor/debug.js","webpack:///./~/algoliasearch/~/debug-ms-fix-yui-compressor/~/algolia-ms/index.js","webpack:///./~/algoliasearch/~/lodash/lang/clone.js","webpack:///./~/algoliasearch/~/lodash/internal/baseClone.js","webpack:///./~/algoliasearch/~/lodash/internal/arrayCopy.js","webpack:///./~/algoliasearch/~/lodash/internal/baseAssign.js","webpack:///./~/algoliasearch/~/lodash/internal/baseCopy.js","webpack:///./~/algoliasearch/~/lodash/internal/initCloneArray.js","webpack:///./~/algoliasearch/~/lodash/internal/initCloneByTag.js","webpack:///./~/algoliasearch/~/lodash/internal/bufferClone.js","webpack:///./~/algoliasearch/~/lodash/internal/initCloneObject.js","webpack:///./~/algoliasearch/~/lodash/internal/isIterateeCall.js","webpack:///./~/algoliasearch/~/lodash/collection/map.js","webpack:///./~/algoliasearch/~/lodash/internal/arrayMap.js","webpack:///./~/algoliasearch/~/lodash/internal/baseCallback.js","webpack:///./~/algoliasearch/~/lodash/internal/baseMatches.js","webpack:///./~/algoliasearch/~/lodash/internal/baseIsMatch.js","webpack:///./~/algoliasearch/~/lodash/internal/baseIsEqual.js","webpack:///./~/algoliasearch/~/lodash/internal/baseIsEqualDeep.js","webpack:///./~/algoliasearch/~/lodash/internal/equalArrays.js","webpack:///./~/algoliasearch/~/lodash/internal/arraySome.js","webpack:///./~/algoliasearch/~/lodash/internal/equalByTag.js","webpack:///./~/algoliasearch/~/lodash/internal/equalObjects.js","webpack:///./~/algoliasearch/~/lodash/lang/isTypedArray.js","webpack:///./~/algoliasearch/~/lodash/internal/getMatchData.js","webpack:///./~/algoliasearch/~/lodash/internal/isStrictComparable.js","webpack:///./~/algoliasearch/~/lodash/object/pairs.js","webpack:///./~/algoliasearch/~/lodash/internal/baseMatchesProperty.js","webpack:///./~/algoliasearch/~/lodash/internal/baseGet.js","webpack:///./~/algoliasearch/~/lodash/internal/baseSlice.js","webpack:///./~/algoliasearch/~/lodash/internal/isKey.js","webpack:///./~/algoliasearch/~/lodash/array/last.js","webpack:///./~/algoliasearch/~/lodash/internal/toPath.js","webpack:///./~/algoliasearch/~/lodash/internal/baseToString.js","webpack:///./~/algoliasearch/~/lodash/utility/property.js","webpack:///./~/algoliasearch/~/lodash/internal/basePropertyDeep.js","webpack:///./~/algoliasearch/~/lodash/internal/baseMap.js","webpack:///./~/algoliasearch/~/lodash/object/merge.js","webpack:///./~/algoliasearch/~/lodash/internal/baseMerge.js","webpack:///./~/algoliasearch/~/lodash/internal/baseMergeDeep.js","webpack:///./~/algoliasearch/~/lodash/lang/isPlainObject.js","webpack:///./~/algoliasearch/~/lodash/internal/baseForIn.js","webpack:///./~/algoliasearch/~/lodash/lang/toPlainObject.js","webpack:///./~/algoliasearch/~/lodash/internal/createAssigner.js","webpack:///./~/algoliasearch/~/lodash/function/restParam.js","webpack:///./~/algoliasearch/src/IndexBrowser.js","webpack:///./~/algoliasearch/src/browser/inline-headers.js","webpack:///./~/algoliasearch/~/querystring/index.js","webpack:///./~/algoliasearch/~/querystring/decode.js","webpack:///./~/algoliasearch/~/querystring/encode.js","webpack:///./~/algoliasearch/src/browser/jsonp-request.js","webpack:///./~/algoliasearch/src/places.js","webpack:///./~/algoliasearch/~/lodash/lang/cloneDeep.js","webpack:///./~/algoliasearch/src/browser/get-document-protocol.js","webpack:///./~/algoliasearch/src/version.js","webpack:///./~/autocomplete.js/index.js","webpack:///./~/autocomplete.js/src/standalone/index.js","webpack:///./~/autocomplete.js/zepto.js","webpack:///./~/autocomplete.js/src/common/dom.js","webpack:///./~/autocomplete.js/src/common/utils.js","webpack:///./~/autocomplete.js/src/autocomplete/typeahead.js","webpack:///./~/autocomplete.js/src/autocomplete/event_bus.js","webpack:///./~/autocomplete.js/src/autocomplete/input.js","webpack:///./~/autocomplete.js/src/autocomplete/event_emitter.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///./~/autocomplete.js/src/autocomplete/dropdown.js","webpack:///./~/autocomplete.js/src/autocomplete/dataset.js","webpack:///./~/autocomplete.js/src/autocomplete/html.js","webpack:///./~/autocomplete.js/src/autocomplete/css.js","webpack:///./~/autocomplete.js/src/sources/index.js","webpack:///./~/autocomplete.js/src/sources/hits.js","webpack:///./~/autocomplete.js/src/sources/popularIn.js","webpack:///./src/defaultTemplates.js","webpack:///./src/formatInputValue.js","webpack:///./src/formatDropdownValue.js","webpack:///./src/icons/address.svg","webpack:///./src/icons/city.svg","webpack:///./src/icons/country.svg","webpack:///./src/icons/algolia.svg","webpack:///./src/icons/osm.svg","webpack:///./src/formatHit.js","webpack:///./src/findCountryCode.js","webpack:///./src/findType.js","webpack:///./src/version.js","webpack:///./src/places.scss?081b","webpack:///./src/places.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js","webpack:///./src/icons/clear.svg"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA;;;;AACA;;;;;;;AAGA,QAAO,OAAP;AACA,QAAO,OAAP,CAAe,OAAf,qB;;;;;;;;;;;;;;;mBCkBwB;;AAtBxB;;;;AAEA;;;;AACA;;;;AAEA;;;;AACA;;;;AACA;;;;AAEA;;AACA;;;;AACA;;;;;;AAEA,KAAM,uBAAuB,SAAvB,oBAAuB;uBACxB;;;;AAIH,qBAAgB,SAAhB;AACA,aAAQ,SAAR;;EAN2B;;AASd,UAAS,MAAT,OASZ;OARD,2BAQC;4BAPD,SAOC;OAPD,yCAAW,UAAU,QAAV,CAAmB,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,kBAOV;OAND,2BAMC;0BALD,OAKC;OALD,qCAAS,kBAKR;yBAJD,MAIC;OAJD,mCAAQ,iBAIP;6BAHD,UAGC;OAHU,+CAAgB,oBAG1B;OAFD,iBAEC;OADD,mBACC;;AACD,OAAM,iBAAiB,sBAAjB,CADL;AAED,OAAM,SAAS,wBAAc,UAAd,CACb,MADa,EAEb,KAFa,EAGb,EAAC,OAAO,CAAC,uBAAD,CAAP;AAHY,IAAT,CAFL;;AAQD,OAAM,qDAED;AACH,aAAQ,2BAAiB,MAAjB;KAHJ;;;AARL,OAeG,WAAW,GAAX,IAAkB,UAAU,GAAV,EAAe;AACnC,YAAO,EAAP,CAAU,sBAAV,GAAmC,YAAW;AAC5C,cAAO,EAAC,uBAAuB,IAAvB,EAAR;AAD4C,MAAX,CADA;IAArC;;AAMA,UAAO,EAAP,CAAU,cAAV,CAAyB,uBAAzB,EAAkD,IAAlD,EArBC;AAsBD,UAAO,EAAP,CAAU,eAAV;;;AAtBC,OAyBK,sBAAsB;AAC1B,iBAAY,IAAZ;AACA,WAAM,KAAN;AACA,iBAAY;AACV,aAAM,oBAAoB,UAAU,KAAV,GAAkB,EAAlB,GAAuB,wBAAvB,CAApB;AACN,eAAQ,IAAR;MAFF;IAHI,CAzBL;;AAkCD,OAAI,OAAwC;AAC1C,yBAAoB,KAApB,GAA4B,IAA5B,CAD0C;IAA5C;;AAIA,OAAM,uBAAuB,4BAC3B,SAD2B,EAE3B,mBAF2B,EAEN;;AAEnB,aAAQ,gBAAC,KAAD,EAAQ,EAAR;cAAe,OACpB,MADoB,CACb,EAAC,YAAD,EAAQ,kBAAR,EAAkB,oBAAlB,EAA6B,UAA7B,EAAmC,aAAa,CAAb,EADtB,EAEpB,IAFoB,CAGnB;aAAE;gBAAU,KAAK,GAAL,CAAS,UAAC,GAAD,EAAM,QAAN;kBACnB,yBAAU;AACR,qBADQ;AAER,+BAFQ;AAGR,iCAHQ;YAAV;UADmB;QAArB,CAHmB,CAWpB,IAXoB,CAWf,uBAAe;AACnB,wBAAe,IAAf,CAAoB,aAApB,EAAmC;AACjC,wBAAa,YAAY,GAAZ,CAAgB,oBAAhB,CAAb;AACA,kBAAO,qBAAqB,GAArB,EAAP;UAFF,EADmB;AAKnB,gBAAO,WAAP,CALmB;QAAf,CAXe,CAkBpB,IAlBoB,CAkBf,EAlBe,EAmBpB,KAnBoB,CAmBd;gBAAO,QAAQ,KAAR,CAAc,GAAd;QAAP;MAnBD;AAoBR,gBAAW;AACT,mBAAY;gBAAO,IAAI,cAAJ;QAAP;AACZ,eAAQ,2BAAiB,MAAjB;MAFV;AAIA,iBAAY,OAAZ;IA5ByB,CAAvB,CAtCL;;AAsED,OAAM,wBAAwB,UAAU,UAAV,CAtE7B;;AAwED,OAAM,2BAA2B,CAAC,UAAD,EAAa,eAAb,CAA3B,CAxEL;AAyED,4BAAyB,OAAzB,CAAiC,qBAAa;AAC5C,0BAAqB,EAArB,mBAAwC,SAAxC,EAAqD,UAAC,CAAD,EAAI,UAAJ,EAAmB;AACtE,sBAAe,IAAf,CAAoB,QAApB,EAA8B;AAC5B,qBAAY,qBAAqB,UAArB,CAAZ;AACA,gBAAO,qBAAqB,GAArB,EAAP;AACA,0BAAiB,WAAW,MAAX;QAHnB,EADsE;MAAnB,CAArD,CAD4C;IAAb,CAAjC,CAzEC;AAkFD,wBAAqB,EAArB,CAAwB,4BAAxB,EAAsD,UAAC,CAAD,EAAI,UAAJ,EAAmB;AACvE,oBAAe,IAAf,CAAoB,eAApB,EAAqC;AACnC,mBAAY,qBAAqB,UAArB,CAAZ;AACA,cAAO,qBAAqB,GAArB,EAAP;AACA,wBAAiB,WAAW,MAAX;MAHnB,EADuE;IAAnB,CAAtD,CAlFC;;AA0FD,OAAM,QAAQ,SAAS,aAAT,CAAuB,QAAvB,CAAR,CA1FL;AA2FD,SAAM,YAAN,CAAmB,MAAnB,EAA2B,QAA3B,EA3FC;AA4FD,SAAM,SAAN,CAAgB,GAAhB,CAAoB,eAApB,EA5FC;AA6FD,SAAM,SAAN,CAAgB,GAAhB,CAAoB,qBAApB,EA7FC;AA8FD,SAAM,SAAN,mBA9FC;AA+FD,yBAAsB,WAAtB,CAAkC,KAAlC,EA/FC;AAgGD,SAAM,KAAN,CAAY,OAAZ,GAAsB,MAAtB,CAhGC;;AAkGD,OAAM,MAAM,SAAS,aAAT,CAAuB,QAAvB,CAAN,CAlGL;AAmGD,OAAI,YAAJ,CAAiB,MAAjB,EAAyB,QAAzB,EAnGC;AAoGD,OAAI,SAAJ,CAAc,GAAd,CAAkB,eAAlB,EApGC;AAqGD,OAAI,SAAJ,CAAc,GAAd,CAAkB,mBAAlB,EArGC;AAsGD,OAAI,SAAJ,qBAtGC;AAuGD,yBAAsB,WAAtB,CAAkC,GAAlC,EAvGC;;AAyGD,OAAI,gBAAJ,CAAqB,OAArB,EAA8B;YAAM,qBAAqB,KAArB;IAAN,CAA9B,CAzGC;AA0GD,SAAM,gBAAN,CAAuB,OAAvB,EAAgC,YAAM;AACpC,0BAAqB,YAArB,CAAkC,MAAlC,CAAyC,EAAzC,EADoC;AAEpC,0BAAqB,KAArB,GAFoC;AAGpC,WAAM,KAAN,CAAY,OAAZ,GAAsB,MAAtB,CAHoC;AAIpC,SAAI,KAAJ,CAAU,OAAV,GAAoB,EAApB,CAJoC;IAAN,CAAhC,CA1GC;;AAiHD,OAAI,gBAAgB,EAAhB,CAjHH;AAkHD,yBAAsB,aAAtB,CAAoC,WAApC,EAAiD,gBAAjD,CAAkE,OAAlE,EAA2E,YAAM;AAC/E,SAAM,QAAQ,qBAAqB,GAArB,EAAR,CADyE;AAE/E,SAAI,UAAU,EAAV,EAAc;AAChB,WAAI,KAAJ,CAAU,OAAV,GAAoB,EAApB,CADgB;AAEhB,aAAM,KAAN,CAAY,OAAZ,GAAsB,MAAtB,CAFgB;AAGhB,WAAI,kBAAkB,KAAlB,EAAyB;AAC3B,wBAAe,IAAf,CAAoB,QAApB,EAA8B,EAAC,YAAD,EAA9B,EAD2B;QAA7B;MAHF,MAMO;AACL,aAAM,KAAN,CAAY,OAAZ,GAAsB,EAAtB,CADK;AAEL,WAAI,KAAJ,CAAU,OAAV,GAAoB,MAApB,CAFK;MANP;AAUA,qBAAgB,KAAhB,CAZ+E;IAAN,CAA3E,CAlHC;;AAiID,UAAO,cAAP,CAjIC;;;;;;;AChCH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,gBAAe,SAAS;AACxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAG;AACH,qBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;ACzSA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,8BAA6B;;AAE7B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL,IAAG;AACH;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;ACpNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;+CCtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4EAA2E;;AAE3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+BAA8B,sBAAsB;;AAEpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,+BAA+B;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,UAAS;AACT,wBAAuB,QAAQ;AAC/B;;AAEA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA,UAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,mEAAkE,QAAQ;;AAE1E;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mEAAkE,QAAQ;AAC1E;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAqC,QAAQ;;AAE7C;;AAEA,sBAAqB,wBAAwB;AAC7C;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAqB,qEAAqE;AAC1F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;;AAEP;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA,UAAS;AACT;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAO;AACP;;AAEA;AACA,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,QAAO;;AAEP;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,QAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,gBAAe;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA,cAAa;AACb,YAAW;AACX;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;;AAEA;AACA,eAAc,SAAS;AACvB,eAAc,SAAS;AACvB;AACA,gBAAe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA,eAAc,SAAS;AACvB;AACA,gBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAqB,kEAAkE;AACvF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,UAAS;AACT,uDAAsD,gBAAgB,EAAE;AACxE;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA,QAAO;AACP;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAyB,wCAAwC,EAAE;AACnE,MAAK;AACL;AACA,MAAK;AACL;AACA;;AAEA;AACA,EAAC;;;;;;;;;ACx7BD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;AC1FtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACTA,gB;;;;;;ACAA,8BAA6B,mDAAmD;;;;;;;ACAhF;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB;AACA,YAAW,OAAO;AAClB;AACA;AACA,YAAW,aAAa;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA,cAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA,sBAAqB,iBAAiB;AACtC;AACA;AACA,0BAAyB,oBAAoB;AAC7C;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,eAAc,SAAS;AACvB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,SAAS;AACvB,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAc,SAAS;AACvB,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAkB;AAClB,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,UAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,UAAS;AACT,QAAO;AACP,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,WAAW,iCAAiC;AACjE;AACA;AACA;AACA;AACA,sBAAqB,WAAW,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA,OAAM;AACN,YAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,+BAA8B,uBAAuB;AACrD;AACA;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc;AACd;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA,OAAM;AACN;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAc,uBAAuB;AACrC;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,QAAO;AACP;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;AACH;AACA;AACA;AACA,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB;AACA;AACA,eAAc,kBAAkB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAM;AACN,YAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,cAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA,gBAAe;AACf,QAAO;AACP;AACA,MAAK;AACL,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;AChpEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC7EA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA,eAAc,iBAAiB;AAC/B;AACA,KAAI;AACJ;AACA;AACA;;AAEA;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,oBAAoB;AACjC;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;AChBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC1BA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,4DAA2D;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrCA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACXA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;;AAEA;;;;;;;ACdA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA,8BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACjCA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0BAAyB,kBAAkB,EAAE;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvCA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACvBA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK,kDAAkD;AACvD;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5CA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;AACH;;AAEA;AACA;AACA;AACA,aAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;;;;;;;ACtKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAiB,SAAS;AAC1B,6BAA4B;AAC5B;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA,0CAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,MAAM;AACjB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;;;;;;ACpMA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,cAAc;AACzB,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAW,OAAO;AAClB,aAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;AChIA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,QAAQ;AACnB,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA,2CAA0C;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,+BAA8B;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC/HA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO,WAAW;AAC7B,cAAa,OAAO;AACpB;AACA;AACA,yBAAwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzBA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,QAAQ;AACnB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9DA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,YAAY;AACvB,cAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,uBAAuB;AAClC;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU,iBAAiB;AAC3B;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACnDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;ACrGA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,SAAS;AACpB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,QAAQ;AACnB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACdA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA,aAAY,2BAA2B;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,EAAE;AACb,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5CA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC5BA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC/BA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,OAAO;AAClB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,MAAM;AACjB,cAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA,OAAM,OAAO,OAAO,SAAS,EAAE,EAAE;AACjC,OAAM,OAAO,OAAO,SAAS,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,aAAa;AACxB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,oBAAoB;AAC/B,YAAW,SAAS;AACpB,cAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA,gBAAe,mBAAmB,GAAG,iBAAiB;AACtD;AACA;AACA;AACA,gBAAe,YAAY,GAAG,YAAY;AAC1C;AACA;AACA;AACA,WAAU,WAAW,8BAA8B,GAAG,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ,WAAU;AACV;AACA;;AAEA;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,YAAW,SAAS;AACpB,YAAW,MAAM;AACjB,YAAW,MAAM;AACjB,cAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;;;;;;;AClEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;;;;;;;ACtEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,SAAS;AACpB,cAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;AChBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,cAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA,cAAa,SAAS;AACtB,WAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;AC9BA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;;AAEA;;;;;;;ACxCA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,SAAS;AACpB,YAAW,OAAO;AAClB,cAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACzDA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACtCA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;;;;;;;ACdA;;AAEA;AACA;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;;;;;;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP;AACA;AACA,MAAK;;AAEL;;AAEA;AACA;AACA;AACA;;;;;;;AC/DA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;AC/HA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACrBA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW,EAAE;AACb,YAAW,SAAS;AACpB,YAAW,EAAE;AACb,cAAa,EAAE;AACf;AACA;AACA;AACA,OAAM,mBAAmB;AACzB,OAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;ACtDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACbA;;AAEA;;;;;;;ACFA;;AAEA;;;;;;;ACFA;;AAEA;AACA;AACA;AACA,qBAAoB;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;;;;;;;ACxEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,iBAAiB;AACxC,kBAAiB,4GAA4G;AAC7H;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,oBAAmB;AACnB;AACA,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,wBAAuB;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B,+BAA8B;AAC9B;AACA;AACA;AACA,4BAA2B;;AAE3B,4BAA2B,0CAA0C,sBAAsB;AAC3F,4BAA2B;AAC3B,4BAA2B,oDAAoD,sCAAsC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAAyB,+CAA+C,oCAAoC;;AAE5G;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gDAA+C,sCAAsC;AACrF;;AAEA;AACA;AACA,gBAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,4BAA4B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAe;AACf,aAAY;AACZ;;AAEA;AACA;AACA;AACA,kBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAiB,qBAAqB;AACtC;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,4CAA2C,4BAA4B;AACvE,MAAK;AACL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,qEAAoE,cAAc;AAClF;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL,yBAAwB,oBAAoB;AAC5C;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA,yCAAwC,mCAAmC;AAC3E;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA,2CAA0C,wBAAwB;AAClE,MAAK;AACL;AACA,mCAAkC,6DAA6D;AAC/F,MAAK;AACL;AACA;AACA,qEAAoE,oBAAoB;AACxF,QAAO;AACP,MAAK;AACL;AACA,mCAAkC,sBAAsB;AACxD,MAAK;AACL;AACA;AACA,uCAAsC,sBAAsB;AAC5D,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA,MAAK;AACL;AACA,kCAAiC,8BAA8B;AAC/D,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP,MAAK;AACL,8BAA6B,yEAAyE;AACtG,8BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;AACL;AACA,mCAAkC;AAClC;AACA,QAAO,QAAQ;AACf,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,wDAAuD,uBAAuB;AAC9E;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAA+B,iDAAiD;AAChF;AACA;AACA,QAAO;AACP;AACA;AACA,kCAAiC,4CAA4C;AAC7E;AACA,8EAA6E;AAC7E;;AAEA,mCAAkC,yBAAyB,SAAS;AACpE,MAAK;AACL;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,QAAO;AACP,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAmB,yBAAyB;AAC5C,oBAAmB,qCAAqC;AACxD,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAmB,0BAA0B;AAC7C,oBAAmB,qCAAqC;AACxD,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAoE,kBAAkB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;AACH;AACA,0CAAyC,4BAA4B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA,IAAG;;AAEH;AACA;AACA,kDAAiD,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT,QAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC;AACA,2CAA0C,aAAa;AACvD;AACA;AACA;AACA,MAAK;AACL;AACA,EAAC;AACD;AACA;AACA;;AAEA;;AAEA,EAAC;AACD,gBAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA4C,4BAA4B;AACxE,UAAS;AACT;AACA;AACA;AACA,4BAA2B,6BAA6B;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH,EAAC;AACD;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;AACA,gCAA+B,gCAAgC;AAC/D,oBAAmB;AACnB,uBAAsB;AACtB;AACA,gBAAe,qCAAqC;AACpD,gBAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;;AAEA,cAAa;;AAEb;AACA;AACA;AACA,gCAA+B;AAC/B;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA8B,YAAY;AAC1C,gCAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA0C,yCAAyC;AACnF;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP,MAAK;AACL;AACA;;AAEA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;;AAEA,EAAC;AACD;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,EAAC;;;;;;;ACnxCD;;AAEA;AACA;AACA;;;;;;;ACJA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,oCAAmC,EAAE;AACrC,IAAG;;AAEH,4BAA2B,gCAAgC,EAAE;;AAE7D;AACA;AACA,IAAG;;AAEH;AACA,8BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA,IAAG;;AAEH;AACA;AACA,wBAAuB,kBAAkB;AACzC,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,mCAAkC,yBAAyB;AAC3D;AACA,iCAAgC,oBAAoB;AACpD,IAAG;;AAEH,wBAAuB,mBAAmB,EAAE;;AAE5C,sBAAqB;;AAErB;AACA;AACA;AACA;;;;;;;ACzFA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA6C,wCAAwC;AACrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAqC;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA0B,gBAAgB,EAAE;AAC5C;AACA,IAAG;;AAEH;AACA,0CAAyC,qBAAqB,EAAE;;AAEhE,+CAA8C,WAAW;;AAEzD,2CAA0C,uFAAuF;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAW,uDAAuD;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,YAAW,uCAAuC;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACheA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;;;;;;;AClCA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uDAAsD,GAAG;AACzD;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;ACnUA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,uDAAsD;AACtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,0EAAyE;AACzE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,4CAA2C,uBAAuB;AAClE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA4B;AAC5B;AACA,gCAA+B,MAAM,EAAE;AACvC;AACA,IAAG,OAAO;AACV;AACA,8BAA6B,MAAM,EAAE;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,gDAAgD;AAChE;;;;;;;;ACrHA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,G;;;;;;;AC3EA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA8B,wCAAwC;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yDAAwD,8DAA8D,EAAE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,uBAAsB;AACtB;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,MAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAK;AACL;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;AACA;;AAEA;AACA,wCAAuC,qCAAqC;AAC5E;;AAEA;;;;;;;AC7SA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,+BAA8B,wCAAwC;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAe,4BAA4B;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qEAAoE;AACpE;AACA,yCAAwC,4CAA4C,EAAE;;AAEtF;AACA;AACA;;AAEA;AACA;AACA,gBAAe,uCAAuC;AACtD;AACA;;AAEA;AACA;AACA,gBAAe,uCAAuC;AACtD;AACA;AACA,IAAG;;AAEH;;AAEA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;AACA,IAAG;;AAEH;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;AClPA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACRA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0CAAyC;AACzC,IAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,uBAAsB,kBAAkB;AACxC;;AAEA;;;;;;;ACjFA;;AAEA;AACA;AACA;AACA;;;;;;;ACLA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;;;;;;AChBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,+EAA8E,4BAA4B;;AAE1G;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAqC,eAAe;AACpD,qCAAoC;AACpC,oCAAmC;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,uBAAsB;AACtB,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,yBAAwB;AACxB,gBAAe;AACf,cAAa;AACb,YAAW;;AAEX;AACA,0BAAyB,yBAAyB;AAClD;AACA;;AAEA;AACA,UAAS;;AAET;AACA;;AAEA;AACA,MAAK;AACL;AACA;;;;;;;;;;;;;ACxEA;;;;AACA;;;;AACA;;;;AACA;;;;;;mBAEe;AACb,oJAC2G,kBAAY,IAAZ,iLACsD,cAAQ,IAAR,uCAFjK;AAIA,yCALa;AAMb,oDANa;;;;;;;;;;;;mBCLS;AAAT,UAAS,gBAAT,OAKZ;OAJD,qCAIC;OAHD,iBAGC;OAFD,uBAEC;OADD,iBACC;;AACD,OAAM,MAAM,CAAG,gBACd,aAAW,UAAX,GAAqB,EAArB,aACA,iBAAoB,oBAApB,GAAwC,EAAxC,aACA,gBAAc,OAAd,GAA0B,EAA1B,EAHW,CAIX,OAJW,CAIH,KAJG,EAII,EAJJ,CAAN,CADL;;AAOD,UAAO,GAAP,CAPC;;;;;;;;;;;;mBCKqB;;AAVxB;;;;AACA;;;;AACA;;;;;;AAEA,KAAM,QAAQ;AACZ,6BADY;AAEZ,uBAFY;AAGZ,6BAHY;EAAR;;AAMS,UAAS,mBAAT,OAMZ;OALD,qCAKC;OAJD,iBAIC;OAHD,uBAGC;OAFD,iBAEC;OADD,iBACC;;AACD,OAAM,MAAM,uCAAoC,MAAM,IAAN,EAAY,IAAZ,0CACzB,iDACtB,OAAU,UAAV,GAAoB,EAApB,aACA,iBAAoB,oBAApB,GAAwC,EAAxC,aACA,gBAAc,OAAd,GAA0B,EAA1B,cAJW,CAKX,OALW,CAKH,KALG,EAKI,EALJ,CAAN,CADL;;AAQD,UAAO,GAAP,CARC;;;;;;;AChBH,uR;;;;;;ACAA,mS;;;;;;ACAA,qb;;;;;;ACAA,wnT;;;;;;ACAA,2mB;;;;;;;;;;;;;;mBCGwB;;AAHxB;;;;AACA;;;;;;AAEe,UAAS,SAAT,OAIZ;OAHD,eAGC;OAFD,yBAEC;OADD,2BACC;;AACD,OAAI;AACF,SAAM,OAAO,IAAI,YAAJ,CAAiB,CAAjB,EAAoB,IAApB,EAAP;AADJ,SAEI,iBAAiB,IAAI,cAAJ,IAAsB,IAAI,cAAJ,CAAmB,CAAnB,MAA0B,IAA1B,GAC3C,IAAI,cAAJ,CAAmB,CAAnB,CADqB,GACG,SADH,CAFrB;AAIF,SAAM,OAAO,IAAI,IAAJ,IAAY,IAAI,IAAJ,CAAS,CAAT,MAAgB,IAAhB,GAAuB,IAAI,IAAJ,CAAS,CAAT,CAAnC,GAAiD,SAAjD,CAJX;;AAMF,SAAM,aAAa;AACjB,iBADiB;AAEjB,qCAFiB;AAGjB,iBAHiB;AAIjB,gBAAS,IAAI,OAAJ;AACT,oBAAa,+BAAgB,IAAI,KAAJ,CAA7B;AACA,aAAM,wBAAS,IAAI,KAAJ,CAAf;AACA,eAAQ;AACN,cAAK,IAAI,OAAJ,CAAY,GAAZ;AACL,cAAK,IAAI,OAAJ,CAAY,GAAZ;QAFP;AAIA,iBAAU,IAAI,QAAJ,IAAgB,IAAI,QAAJ,CAAa,CAAb,CAAhB;MAXN;;;AANJ,SAqBI,QAAQ,UAAU,UAAV,CAAqB,UAArB,CAAR,CArBJ;AAsBF,SAAM,gBAAgB,UAAU,kBAAV,cACjB;AACH,aAAM,IAAI,gBAAJ,CAAqB,YAArB,CAAkC,CAAlC,EAAqC,KAArC,CAA2C,IAA3C,EAAN;OAFoB,CAAhB,CAtBJ;;AA2BF,yBACK;AACH;AACA,uBAAgB,aAAhB;AACA,eAAQ,QAAR;OAJF,CA3BE;IAAJ,CAiCE,OAAO,CAAP,EAAU;;AAEV,aAAQ,KAAR,CAAc,wBAAd,EAAwC,GAAxC,EAFU;AAGV,aAAQ,KAAR,CAAc,CAAd,EAHU;AAIV,YAAO;AACL,mBAAY,wBAAZ;AACA,+BAAwB,wBAAxB;MAFF,CAJU;IAAV;;;;;;;;;;;;mBCzCoB;AAAT,UAAS,eAAT,CAAyB,IAAzB,EAA+B;;;;;;AAC5C,0BAAkB,8BAAlB,oGAAwB;WAAb,kBAAa;;AACtB,WAAM,OAAO,IAAI,KAAJ,CAAU,gBAAV,CAAP,CADgB;AAEtB,WAAI,IAAJ,EAAU;AACR,gBAAO,KAAK,CAAL,CAAP,CADQ;QAAV;MAFF;;;;;;;;;;;;;;IAD4C;;;;;;;;;;;;mBCAtB;AAAT,UAAS,QAAT,CAAkB,IAAlB,EAAwB;AACrC,OAAM,QAAQ,CAAC,SAAD,EAAY,MAAZ,EAAoB,SAApB,CAAR,CAD+B;;;;;;;AAGrC,0BAAmB,+BAAnB,oGAA0B;WAAf,mBAAe;;AACxB,WAAI,KAAK,OAAL,CAAa,IAAb,MAAuB,CAAC,CAAD,EAAI;AAC7B,gBAAO,IAAP,CAD6B;QAA/B;MADF;;;;;;;;;;;;;;IAHqC;;;;;;;;;;;;mBCAxB,S;;;;;;ACAf;;AAEA;AACA;AACA;AACA;AACA,iDAA+E,iBAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,iCAAgC,UAAU,EAAE;AAC5C,E;;;;;;ACpBA;AACA;;;AAGA;AACA,kEAAiE,gBAAgB,EAAE,qGAAqG,kBAAkB,EAAE,kOAAkO,oBAAoB,EAAE,6DAA6D,kBAAkB,0BAA0B,gFAAgF,yBAAyB,sBAAsB,uBAAuB,EAAE,0DAA0D,sBAAsB,mBAAmB,wBAAwB,yBAAyB,uBAAuB,EAAE,+DAA+D,0BAA0B,2BAA2B,EAAE,uDAAuD,yBAAyB,wBAAwB,qBAAqB,EAAE,+DAA+D,yBAAyB,kBAAkB,mBAAmB,6BAA6B,EAAE,qEAAqE,8CAA8C,sBAAsB,EAAE,0DAA0D,gBAAgB,8BAA8B,yBAAyB,aAAa,gBAAgB,kBAAkB,oBAAoB,EAAE,gEAAgE,sBAAsB,2BAA2B,iBAAiB,iBAAiB,oCAAoC,EAAE,sDAAsD,0BAA0B,EAAE,gFAAgF,4BAA4B,sBAAsB,EAAE,sDAAsD,kBAAkB,wBAAwB,+BAA+B,sBAAsB,wBAAwB,EAAE,0DAA0D,uBAAuB,8BAA8B,EAAE,gEAAgE,iCAAiC,EAAE,8DAA8D,mBAAmB,EAAE;;AAEz7E;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA,IAAG;AACH;AACA;AACA;AACA,GAAE;AACF;AACA,GAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;;AAEA,8BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;AACA;;;;;;;ACrPA,wU","file":"places.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"places\"] = factory();\n\telse\n\t\troot[\"places\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 5e48800116fe515b9204\n **/","import places from './src/places';\nimport version from './src/version.js';\n\n// must use module.exports to be commonJS compatible\nmodule.exports = places;\nmodule.exports.version = version;\n\n\n\n/** WEBPACK FOOTER **\n ** ./index.js\n **/","/* eslint no-console:0 */\nimport EventEmitter from 'events';\n\nimport algoliasearch from 'algoliasearch';\nimport autocomplete from 'autocomplete.js';\n\nimport defaultTemplates from './defaultTemplates.js';\nimport formatHit from './formatHit.js';\nimport version from './version.js';\n\nimport './places.scss';\nimport clearIcon from './icons/clear.svg';\nimport pinIcon from './icons/address.svg';\n\nconst filterSuggestionData = suggestion => ({\n ...suggestion,\n // omit _dropdownValue and _index,\n // _dropdownValue is not needed user side\n // _index is sent at the root of the element\n _dropdownValue: undefined,\n _index: undefined\n});\n\nexport default function places({\n countries,\n language = navigator.language.split('-')[0],\n container,\n apiKey = ' ',\n appId = ' ',\n templates: userTemplates = {},\n type,\n style\n}) {\n const placesInstance = new EventEmitter();\n const client = algoliasearch.initPlaces(\n apiKey,\n appId,\n {hosts: ['c3-test-1.algolia.net']} // use staging for now, FIXME\n );\n\n const templates = {\n ...defaultTemplates,\n ...userTemplates,\n footer: defaultTemplates.footer\n };\n\n // when keys are empty, we need to force not sending them through the client\n if (apiKey === ' ' && appId === ' ') {\n client.as._computeRequestHeaders = function() {\n return {targetIndexingIndexes: true}; // no need for any appid or key\n };\n }\n\n client.as.setExtraHeader('targetIndexingIndexes', true);\n client.as.addAlgoliaAgent += `Algolia Places ${version}`;\n\n // https://github.com/algolia/autocomplete.js#options\n const autocompleteOptions = {\n autoselect: true,\n hint: false,\n cssClasses: {\n root: 'algolia-places' + (style === false ? '' : ' algolia-places-styled'),\n prefix: 'ap'\n }\n };\n\n if (process.env.NODE_ENV === 'development') {\n autocompleteOptions.debug = true;\n }\n\n const autocompleteInstance = autocomplete(\n container,\n autocompleteOptions, {\n // https://github.com/algolia/autocomplete.js#sources\n source: (query, cb) => client\n .search({query, language, countries, type, hitsPerPage: 5})\n .then(\n ({hits}) => hits.map((hit, hitIndex) =>\n formatHit({\n hit,\n hitIndex,\n templates\n })\n )\n )\n .then(suggestions => {\n placesInstance.emit('suggestions', {\n suggestions: suggestions.map(filterSuggestionData),\n query: autocompleteInstance.val()\n });\n return suggestions;\n })\n .then(cb)\n .catch(err => console.error(err)),\n templates: {\n suggestion: hit => hit._dropdownValue,\n footer: defaultTemplates.footer\n },\n displayKey: 'value'\n }\n );\n\n const autocompleteContainer = container.parentNode;\n\n const autocompleteChangeEvents = ['selected', 'autocompleted'];\n autocompleteChangeEvents.forEach(eventName => {\n autocompleteInstance.on(`autocomplete:${eventName}`, (_, suggestion) => {\n placesInstance.emit('change', {\n suggestion: filterSuggestionData(suggestion),\n query: autocompleteInstance.val(),\n suggestionIndex: suggestion._index\n });\n });\n });\n autocompleteInstance.on('autocomplete:cursorchanged', (_, suggestion) => {\n placesInstance.emit('cursorchanged', {\n suggestion: filterSuggestionData(suggestion),\n query: autocompleteInstance.val(),\n suggestionIndex: suggestion._index\n });\n });\n\n const clear = document.createElement('button');\n clear.setAttribute('type', 'button');\n clear.classList.add('ap-input-icon');\n clear.classList.add('ap-input-icon-clear');\n clear.innerHTML = clearIcon;\n autocompleteContainer.appendChild(clear);\n clear.style.display = 'none';\n\n const pin = document.createElement('button');\n pin.setAttribute('type', 'button');\n pin.classList.add('ap-input-icon');\n pin.classList.add('ap-input-icon-pin');\n pin.innerHTML = pinIcon;\n autocompleteContainer.appendChild(pin);\n\n pin.addEventListener('click', () => autocompleteInstance.focus());\n clear.addEventListener('click', () => {\n autocompleteInstance.autocomplete.setVal('');\n autocompleteInstance.focus();\n clear.style.display = 'none';\n pin.style.display = '';\n });\n\n let previousQuery = '';\n autocompleteContainer.querySelector('.ap-input').addEventListener('input', () => {\n const query = autocompleteInstance.val();\n if (query === '') {\n pin.style.display = '';\n clear.style.display = 'none';\n if (previousQuery !== query) {\n placesInstance.emit('change', {query});\n }\n } else {\n clear.style.display = '';\n pin.style.display = 'none';\n }\n previousQuery = query;\n });\n\n return placesInstance;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./src/places.js\n **/","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n }\n throw TypeError('Uncaught, unspecified \"error\" event.');\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/events/events.js\n ** module id = 2\n ** module chunks = 0\n **/","'use strict';\n\n// This is the standalone browser build entry point\n// Browser implementation of the Algolia Search JavaScript client,\n// using XMLHttpRequest, XDomainRequest and JSONP as fallback\nmodule.exports = algoliasearch;\n\nvar inherits = require('inherits');\nvar Promise = window.Promise || require('es6-promise').Promise;\n\nvar AlgoliaSearch = require('../../AlgoliaSearch');\nvar errors = require('../../errors');\nvar inlineHeaders = require('../inline-headers');\nvar jsonpRequest = require('../jsonp-request');\nvar places = require('../../places.js');\n\nif (process.env.APP_ENV === 'development') {\n require('debug').enable('algoliasearch*');\n}\n\nfunction algoliasearch(applicationID, apiKey, opts) {\n var cloneDeep = require('lodash/lang/cloneDeep');\n\n var getDocumentProtocol = require('../get-document-protocol');\n\n opts = cloneDeep(opts || {});\n\n if (opts.protocol === undefined) {\n opts.protocol = getDocumentProtocol();\n }\n\n opts._ua = opts._ua || algoliasearch.ua;\n\n return new AlgoliaSearchBrowser(applicationID, apiKey, opts);\n}\n\nalgoliasearch.version = require('../../version.js');\nalgoliasearch.ua = 'Algolia for vanilla JavaScript ' + algoliasearch.version;\nalgoliasearch.initPlaces = places(algoliasearch);\n\n// we expose into window no matter how we are used, this will allow\n// us to easily debug any website running algolia\nwindow.__algolia = {\n debug: require('debug'),\n algoliasearch: algoliasearch\n};\n\nvar support = {\n hasXMLHttpRequest: 'XMLHttpRequest' in window,\n hasXDomainRequest: 'XDomainRequest' in window,\n cors: 'withCredentials' in new XMLHttpRequest(),\n timeout: 'timeout' in new XMLHttpRequest()\n};\n\nfunction AlgoliaSearchBrowser() {\n // call AlgoliaSearch constructor\n AlgoliaSearch.apply(this, arguments);\n}\n\ninherits(AlgoliaSearchBrowser, AlgoliaSearch);\n\nAlgoliaSearchBrowser.prototype._request = function request(url, opts) {\n return new Promise(function wrapRequest(resolve, reject) {\n // no cors or XDomainRequest, no request\n if (!support.cors && !support.hasXDomainRequest) {\n // very old browser, not supported\n reject(new errors.Network('CORS not supported'));\n return;\n }\n\n url = inlineHeaders(url, opts.headers);\n\n var body = opts.body;\n var req = support.cors ? new XMLHttpRequest() : new XDomainRequest();\n var ontimeout;\n var timedOut;\n\n // do not rely on default XHR async flag, as some analytics code like hotjar\n // breaks it and set it to false by default\n if (req instanceof XMLHttpRequest) {\n req.open(opts.method, url, true);\n } else {\n req.open(opts.method, url);\n }\n\n if (support.cors) {\n if (body) {\n if (opts.method === 'POST') {\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Simple_requests\n req.setRequestHeader('content-type', 'application/x-www-form-urlencoded');\n } else {\n req.setRequestHeader('content-type', 'application/json');\n }\n }\n req.setRequestHeader('accept', 'application/json');\n }\n\n // we set an empty onprogress listener\n // so that XDomainRequest on IE9 is not aborted\n // refs:\n // - https://github.com/algolia/algoliasearch-client-js/issues/76\n // - https://social.msdn.microsoft.com/Forums/ie/en-US/30ef3add-767c-4436-b8a9-f1ca19b4812e/ie9-rtm-xdomainrequest-issued-requests-may-abort-if-all-event-handlers-not-specified?forum=iewebdevelopment\n req.onprogress = function noop() {};\n\n req.onload = load;\n req.onerror = error;\n\n if (support.timeout) {\n // .timeout supported by both XHR and XDR,\n // we do receive timeout event, tested\n req.timeout = opts.timeout;\n\n req.ontimeout = timeout;\n } else {\n ontimeout = setTimeout(timeout, opts.timeout);\n }\n\n req.send(body);\n\n // event object not received in IE8, at least\n // but we do not use it, still important to note\n function load(/* event */) {\n // When browser does not supports req.timeout, we can\n // have both a load and timeout event, since handled by a dumb setTimeout\n if (timedOut) {\n return;\n }\n\n if (!support.timeout) {\n clearTimeout(ontimeout);\n }\n\n var out;\n\n try {\n out = {\n body: JSON.parse(req.responseText),\n responseText: req.responseText,\n statusCode: req.status,\n // XDomainRequest does not have any response headers\n headers: req.getAllResponseHeaders && req.getAllResponseHeaders() || {}\n };\n } catch (e) {\n out = new errors.UnparsableJSON({\n more: req.responseText\n });\n }\n\n if (out instanceof errors.UnparsableJSON) {\n reject(out);\n } else {\n resolve(out);\n }\n }\n\n function error(event) {\n if (timedOut) {\n return;\n }\n\n if (!support.timeout) {\n clearTimeout(ontimeout);\n }\n\n // error event is trigerred both with XDR/XHR on:\n // - DNS error\n // - unallowed cross domain request\n reject(\n new errors.Network({\n more: event\n })\n );\n }\n\n function timeout() {\n if (!support.timeout) {\n timedOut = true;\n req.abort();\n }\n\n reject(new errors.RequestTimeout());\n }\n });\n};\n\nAlgoliaSearchBrowser.prototype._request.fallback = function requestFallback(url, opts) {\n url = inlineHeaders(url, opts.headers);\n\n return new Promise(function wrapJsonpRequest(resolve, reject) {\n jsonpRequest(url, opts, function jsonpRequestDone(err, content) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(content);\n });\n });\n};\n\nAlgoliaSearchBrowser.prototype._promise = {\n reject: function rejectPromise(val) {\n return Promise.reject(val);\n },\n resolve: function resolvePromise(val) {\n return Promise.resolve(val);\n },\n delay: function delayPromise(ms) {\n return new Promise(function resolveOnTimeout(resolve/* , reject*/) {\n setTimeout(resolve, ms);\n });\n }\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/algoliasearch/src/browser/builds/algoliasearch.js\n ** module id = 3\n ** module chunks = 0\n **/","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/algoliasearch/~/inherits/inherits_browser.js\n ** module id = 4\n ** module chunks = 0\n **/","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/jakearchibald/es6-promise/master/LICENSE\n * @version 3.1.2\n */\n\n(function() {\n \"use strict\";\n function lib$es6$promise$utils$$objectOrFunction(x) {\n return typeof x === 'function' || (typeof x === 'object' && x !== null);\n }\n\n function lib$es6$promise$utils$$isFunction(x) {\n return typeof x === 'function';\n }\n\n function lib$es6$promise$utils$$isMaybeThenable(x) {\n return typeof x === 'object' && x !== null;\n }\n\n var lib$es6$promise$utils$$_isArray;\n if (!Array.isArray) {\n lib$es6$promise$utils$$_isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n } else {\n lib$es6$promise$utils$$_isArray = Array.isArray;\n }\n\n var lib$es6$promise$utils$$isArray = lib$es6$promise$utils$$_isArray;\n var lib$es6$promise$asap$$len = 0;\n var lib$es6$promise$asap$$vertxNext;\n var lib$es6$promise$asap$$customSchedulerFn;\n\n var lib$es6$promise$asap$$asap = function asap(callback, arg) {\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len] = callback;\n lib$es6$promise$asap$$queue[lib$es6$promise$asap$$len + 1] = arg;\n lib$es6$promise$asap$$len += 2;\n if (lib$es6$promise$asap$$len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (lib$es6$promise$asap$$customSchedulerFn) {\n lib$es6$promise$asap$$customSchedulerFn(lib$es6$promise$asap$$flush);\n } else {\n lib$es6$promise$asap$$scheduleFlush();\n }\n }\n }\n\n function lib$es6$promise$asap$$setScheduler(scheduleFn) {\n lib$es6$promise$asap$$customSchedulerFn = scheduleFn;\n }\n\n function lib$es6$promise$asap$$setAsap(asapFn) {\n lib$es6$promise$asap$$asap = asapFn;\n }\n\n var lib$es6$promise$asap$$browserWindow = (typeof window !== 'undefined') ? window : undefined;\n var lib$es6$promise$asap$$browserGlobal = lib$es6$promise$asap$$browserWindow || {};\n var lib$es6$promise$asap$$BrowserMutationObserver = lib$es6$promise$asap$$browserGlobal.MutationObserver || lib$es6$promise$asap$$browserGlobal.WebKitMutationObserver;\n var lib$es6$promise$asap$$isNode = typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n // test for web worker but not in IE10\n var lib$es6$promise$asap$$isWorker = typeof Uint8ClampedArray !== 'undefined' &&\n typeof importScripts !== 'undefined' &&\n typeof MessageChannel !== 'undefined';\n\n // node\n function lib$es6$promise$asap$$useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function() {\n process.nextTick(lib$es6$promise$asap$$flush);\n };\n }\n\n // vertx\n function lib$es6$promise$asap$$useVertxTimer() {\n return function() {\n lib$es6$promise$asap$$vertxNext(lib$es6$promise$asap$$flush);\n };\n }\n\n function lib$es6$promise$asap$$useMutationObserver() {\n var iterations = 0;\n var observer = new lib$es6$promise$asap$$BrowserMutationObserver(lib$es6$promise$asap$$flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function() {\n node.data = (iterations = ++iterations % 2);\n };\n }\n\n // web worker\n function lib$es6$promise$asap$$useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = lib$es6$promise$asap$$flush;\n return function () {\n channel.port2.postMessage(0);\n };\n }\n\n function lib$es6$promise$asap$$useSetTimeout() {\n return function() {\n setTimeout(lib$es6$promise$asap$$flush, 1);\n };\n }\n\n var lib$es6$promise$asap$$queue = new Array(1000);\n function lib$es6$promise$asap$$flush() {\n for (var i = 0; i < lib$es6$promise$asap$$len; i+=2) {\n var callback = lib$es6$promise$asap$$queue[i];\n var arg = lib$es6$promise$asap$$queue[i+1];\n\n callback(arg);\n\n lib$es6$promise$asap$$queue[i] = undefined;\n lib$es6$promise$asap$$queue[i+1] = undefined;\n }\n\n lib$es6$promise$asap$$len = 0;\n }\n\n function lib$es6$promise$asap$$attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n lib$es6$promise$asap$$vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return lib$es6$promise$asap$$useVertxTimer();\n } catch(e) {\n return lib$es6$promise$asap$$useSetTimeout();\n }\n }\n\n var lib$es6$promise$asap$$scheduleFlush;\n // Decide what async method to use to triggering processing of queued callbacks:\n if (lib$es6$promise$asap$$isNode) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useNextTick();\n } else if (lib$es6$promise$asap$$BrowserMutationObserver) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMutationObserver();\n } else if (lib$es6$promise$asap$$isWorker) {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useMessageChannel();\n } else if (lib$es6$promise$asap$$browserWindow === undefined && typeof require === 'function') {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$attemptVertx();\n } else {\n lib$es6$promise$asap$$scheduleFlush = lib$es6$promise$asap$$useSetTimeout();\n }\n function lib$es6$promise$then$$then(onFulfillment, onRejection) {\n var parent = this;\n var state = parent._state;\n\n if (state === lib$es6$promise$$internal$$FULFILLED && !onFulfillment || state === lib$es6$promise$$internal$$REJECTED && !onRejection) {\n return this;\n }\n\n var child = new this.constructor(lib$es6$promise$$internal$$noop);\n var result = parent._result;\n\n if (state) {\n var callback = arguments[state - 1];\n lib$es6$promise$asap$$asap(function(){\n lib$es6$promise$$internal$$invokeCallback(state, child, callback, result);\n });\n } else {\n lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n }\n var lib$es6$promise$then$$default = lib$es6$promise$then$$then;\n function lib$es6$promise$promise$resolve$$resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$resolve(promise, object);\n return promise;\n }\n var lib$es6$promise$promise$resolve$$default = lib$es6$promise$promise$resolve$$resolve;\n\n function lib$es6$promise$$internal$$noop() {}\n\n var lib$es6$promise$$internal$$PENDING = void 0;\n var lib$es6$promise$$internal$$FULFILLED = 1;\n var lib$es6$promise$$internal$$REJECTED = 2;\n\n var lib$es6$promise$$internal$$GET_THEN_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n }\n\n function lib$es6$promise$$internal$$cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n }\n\n function lib$es6$promise$$internal$$getThen(promise) {\n try {\n return promise.then;\n } catch(error) {\n lib$es6$promise$$internal$$GET_THEN_ERROR.error = error;\n return lib$es6$promise$$internal$$GET_THEN_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch(e) {\n return e;\n }\n }\n\n function lib$es6$promise$$internal$$handleForeignThenable(promise, thenable, then) {\n lib$es6$promise$asap$$asap(function(promise) {\n var sealed = false;\n var error = lib$es6$promise$$internal$$tryThen(then, thenable, function(value) {\n if (sealed) { return; }\n sealed = true;\n if (thenable !== value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }, function(reason) {\n if (sealed) { return; }\n sealed = true;\n\n lib$es6$promise$$internal$$reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n lib$es6$promise$$internal$$reject(promise, error);\n }\n }, promise);\n }\n\n function lib$es6$promise$$internal$$handleOwnThenable(promise, thenable) {\n if (thenable._state === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, thenable._result);\n } else if (thenable._state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, thenable._result);\n } else {\n lib$es6$promise$$internal$$subscribe(thenable, undefined, function(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n }\n }\n\n function lib$es6$promise$$internal$$handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor &&\n then === lib$es6$promise$then$$default &&\n constructor.resolve === lib$es6$promise$promise$resolve$$default) {\n lib$es6$promise$$internal$$handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === lib$es6$promise$$internal$$GET_THEN_ERROR) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$GET_THEN_ERROR.error);\n } else if (then === undefined) {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n } else if (lib$es6$promise$utils$$isFunction(then)) {\n lib$es6$promise$$internal$$handleForeignThenable(promise, maybeThenable, then);\n } else {\n lib$es6$promise$$internal$$fulfill(promise, maybeThenable);\n }\n }\n }\n\n function lib$es6$promise$$internal$$resolve(promise, value) {\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$selfFulfillment());\n } else if (lib$es6$promise$utils$$objectOrFunction(value)) {\n lib$es6$promise$$internal$$handleMaybeThenable(promise, value, lib$es6$promise$$internal$$getThen(value));\n } else {\n lib$es6$promise$$internal$$fulfill(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n lib$es6$promise$$internal$$publish(promise);\n }\n\n function lib$es6$promise$$internal$$fulfill(promise, value) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n\n promise._result = value;\n promise._state = lib$es6$promise$$internal$$FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, promise);\n }\n }\n\n function lib$es6$promise$$internal$$reject(promise, reason) {\n if (promise._state !== lib$es6$promise$$internal$$PENDING) { return; }\n promise._state = lib$es6$promise$$internal$$REJECTED;\n promise._result = reason;\n\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publishRejection, promise);\n }\n\n function lib$es6$promise$$internal$$subscribe(parent, child, onFulfillment, onRejection) {\n var subscribers = parent._subscribers;\n var length = subscribers.length;\n\n parent._onerror = null;\n\n subscribers[length] = child;\n subscribers[length + lib$es6$promise$$internal$$FULFILLED] = onFulfillment;\n subscribers[length + lib$es6$promise$$internal$$REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n lib$es6$promise$asap$$asap(lib$es6$promise$$internal$$publish, parent);\n }\n }\n\n function lib$es6$promise$$internal$$publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) { return; }\n\n var child, callback, detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n lib$es6$promise$$internal$$invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n }\n\n function lib$es6$promise$$internal$$ErrorObject() {\n this.error = null;\n }\n\n var lib$es6$promise$$internal$$TRY_CATCH_ERROR = new lib$es6$promise$$internal$$ErrorObject();\n\n function lib$es6$promise$$internal$$tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch(e) {\n lib$es6$promise$$internal$$TRY_CATCH_ERROR.error = e;\n return lib$es6$promise$$internal$$TRY_CATCH_ERROR;\n }\n }\n\n function lib$es6$promise$$internal$$invokeCallback(settled, promise, callback, detail) {\n var hasCallback = lib$es6$promise$utils$$isFunction(callback),\n value, error, succeeded, failed;\n\n if (hasCallback) {\n value = lib$es6$promise$$internal$$tryCatch(callback, detail);\n\n if (value === lib$es6$promise$$internal$$TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n lib$es6$promise$$internal$$reject(promise, lib$es6$promise$$internal$$cannotReturnOwn());\n return;\n }\n\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== lib$es6$promise$$internal$$PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n lib$es6$promise$$internal$$resolve(promise, value);\n } else if (failed) {\n lib$es6$promise$$internal$$reject(promise, error);\n } else if (settled === lib$es6$promise$$internal$$FULFILLED) {\n lib$es6$promise$$internal$$fulfill(promise, value);\n } else if (settled === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n }\n }\n\n function lib$es6$promise$$internal$$initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value){\n lib$es6$promise$$internal$$resolve(promise, value);\n }, function rejectPromise(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n });\n } catch(e) {\n lib$es6$promise$$internal$$reject(promise, e);\n }\n }\n\n function lib$es6$promise$promise$all$$all(entries) {\n return new lib$es6$promise$enumerator$$default(this, entries).promise;\n }\n var lib$es6$promise$promise$all$$default = lib$es6$promise$promise$all$$all;\n function lib$es6$promise$promise$race$$race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (!lib$es6$promise$utils$$isArray(entries)) {\n lib$es6$promise$$internal$$reject(promise, new TypeError('You must pass an array to race.'));\n return promise;\n }\n\n var length = entries.length;\n\n function onFulfillment(value) {\n lib$es6$promise$$internal$$resolve(promise, value);\n }\n\n function onRejection(reason) {\n lib$es6$promise$$internal$$reject(promise, reason);\n }\n\n for (var i = 0; promise._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n lib$es6$promise$$internal$$subscribe(Constructor.resolve(entries[i]), undefined, onFulfillment, onRejection);\n }\n\n return promise;\n }\n var lib$es6$promise$promise$race$$default = lib$es6$promise$promise$race$$race;\n function lib$es6$promise$promise$reject$$reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$reject(promise, reason);\n return promise;\n }\n var lib$es6$promise$promise$reject$$default = lib$es6$promise$promise$reject$$reject;\n\n var lib$es6$promise$promise$$counter = 0;\n\n function lib$es6$promise$promise$$needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n }\n\n function lib$es6$promise$promise$$needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n }\n\n var lib$es6$promise$promise$$default = lib$es6$promise$promise$$Promise;\n /**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n var promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n var xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n */\n function lib$es6$promise$promise$$Promise(resolver) {\n this._id = lib$es6$promise$promise$$counter++;\n this._state = undefined;\n this._result = undefined;\n this._subscribers = [];\n\n if (lib$es6$promise$$internal$$noop !== resolver) {\n typeof resolver !== 'function' && lib$es6$promise$promise$$needsResolver();\n this instanceof lib$es6$promise$promise$$Promise ? lib$es6$promise$$internal$$initializePromise(this, resolver) : lib$es6$promise$promise$$needsNew();\n }\n }\n\n lib$es6$promise$promise$$Promise.all = lib$es6$promise$promise$all$$default;\n lib$es6$promise$promise$$Promise.race = lib$es6$promise$promise$race$$default;\n lib$es6$promise$promise$$Promise.resolve = lib$es6$promise$promise$resolve$$default;\n lib$es6$promise$promise$$Promise.reject = lib$es6$promise$promise$reject$$default;\n lib$es6$promise$promise$$Promise._setScheduler = lib$es6$promise$asap$$setScheduler;\n lib$es6$promise$promise$$Promise._setAsap = lib$es6$promise$asap$$setAsap;\n lib$es6$promise$promise$$Promise._asap = lib$es6$promise$asap$$asap;\n\n lib$es6$promise$promise$$Promise.prototype = {\n constructor: lib$es6$promise$promise$$Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n\n Chaining\n --------\n\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n\n Assimilation\n ------------\n\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n\n If the assimliated promise rejects, then the downstream promise will also reject.\n\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n\n Simple Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var result;\n\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n\n Advanced Example\n --------------\n\n Synchronous Example\n\n ```javascript\n var author, books;\n\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n\n Errback Example\n\n ```js\n\n function foundBooks(books) {\n\n }\n\n function failure(reason) {\n\n }\n\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n\n Promise Example;\n\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: lib$es6$promise$then$$default,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function(onRejection) {\n return this.then(null, onRejection);\n }\n };\n var lib$es6$promise$enumerator$$default = lib$es6$promise$enumerator$$Enumerator;\n function lib$es6$promise$enumerator$$Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(lib$es6$promise$$internal$$noop);\n\n if (Array.isArray(input)) {\n this._input = input;\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate();\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(this.promise, this._result);\n }\n }\n } else {\n lib$es6$promise$$internal$$reject(this.promise, this._validationError());\n }\n }\n\n lib$es6$promise$enumerator$$Enumerator.prototype._validationError = function() {\n return new Error('Array Methods must be provided an Array');\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._enumerate = function() {\n var length = this.length;\n var input = this._input;\n\n for (var i = 0; this._state === lib$es6$promise$$internal$$PENDING && i < length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._eachEntry = function(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === lib$es6$promise$promise$resolve$$default) {\n var then = lib$es6$promise$$internal$$getThen(entry);\n\n if (then === lib$es6$promise$then$$default &&\n entry._state !== lib$es6$promise$$internal$$PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === lib$es6$promise$promise$$default) {\n var promise = new c(lib$es6$promise$$internal$$noop);\n lib$es6$promise$$internal$$handleMaybeThenable(promise, entry, then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function(resolve) { resolve(entry); }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._settledAt = function(state, i, value) {\n var promise = this.promise;\n\n if (promise._state === lib$es6$promise$$internal$$PENDING) {\n this._remaining--;\n\n if (state === lib$es6$promise$$internal$$REJECTED) {\n lib$es6$promise$$internal$$reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n lib$es6$promise$$internal$$fulfill(promise, this._result);\n }\n };\n\n lib$es6$promise$enumerator$$Enumerator.prototype._willSettleAt = function(promise, i) {\n var enumerator = this;\n\n lib$es6$promise$$internal$$subscribe(promise, undefined, function(value) {\n enumerator._settledAt(lib$es6$promise$$internal$$FULFILLED, i, value);\n }, function(reason) {\n enumerator._settledAt(lib$es6$promise$$internal$$REJECTED, i, reason);\n });\n };\n function lib$es6$promise$polyfill$$polyfill() {\n var local;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P && Object.prototype.toString.call(P.resolve()) === '[object Promise]' && !P.cast) {\n return;\n }\n\n local.Promise = lib$es6$promise$promise$$default;\n }\n var lib$es6$promise$polyfill$$default = lib$es6$promise$polyfill$$polyfill;\n\n var lib$es6$promise$umd$$ES6Promise = {\n 'Promise': lib$es6$promise$promise$$default,\n 'polyfill': lib$es6$promise$polyfill$$default\n };\n\n /* global define:true module:true window: true */\n if (typeof define === 'function' && define['amd']) {\n define(function() { return lib$es6$promise$umd$$ES6Promise; });\n } else if (typeof module !== 'undefined' && module['exports']) {\n module['exports'] = lib$es6$promise$umd$$ES6Promise;\n } else if (typeof this !== 'undefined') {\n this['ES6Promise'] = lib$es6$promise$umd$$ES6Promise;\n }\n\n lib$es6$promise$polyfill$$default();\n}).call(this);\n\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/algoliasearch/~/es6-promise/dist/es6-promise.js\n ** module id = 5\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 6\n ** module chunks = 0\n **/","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/buildin/module.js\n ** module id = 7\n ** module chunks = 0\n **/","/* (ignored) */\n\n\n/*****************\n ** WEBPACK FOOTER\n ** vertx (ignored)\n ** module id = 8\n ** module chunks = 0\n **/","module.exports = function() { throw new Error(\"define cannot be used indirect\"); };\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/buildin/amd-define.js\n ** module id = 9\n ** module chunks = 0\n **/","'use strict';\n\nmodule.exports = AlgoliaSearch;\n\nvar errors = require('./errors');\nvar buildSearchMethod = require('./buildSearchMethod.js');\n\n// We will always put the API KEY in the JSON body in case of too long API KEY\nvar MAX_API_KEY_LENGTH = 500;\n\n/*\n * Algolia Search library initialization\n * https://www.algolia.com/\n *\n * @param {string} applicationID - Your applicationID, found in your dashboard\n * @param {string} apiKey - Your API key, found in your dashboard\n * @param {Object} [opts]\n * @param {number} [opts.timeout=2000] - The request timeout set in milliseconds,\n * another request will be issued after this timeout\n * @param {string} [opts.protocol='http:'] - The protocol used to query Algolia Search API.\n * Set to 'https:' to force using https.\n * Default to document.location.protocol in browsers\n * @param {Object|Array} [opts.hosts={\n * read: [this.applicationID + '-dsn.algolia.net'].concat([\n * this.applicationID + '-1.algolianet.com',\n * this.applicationID + '-2.algolianet.com',\n * this.applicationID + '-3.algolianet.com']\n * ]),\n * write: [this.applicationID + '.algolia.net'].concat([\n * this.applicationID + '-1.algolianet.com',\n * this.applicationID + '-2.algolianet.com',\n * this.applicationID + '-3.algolianet.com']\n * ]) - The hosts to use for Algolia Search API.\n * If you provide them, you will less benefit from our HA implementation\n */\nfunction AlgoliaSearch(applicationID, apiKey, opts) {\n var debug = require('debug')('algoliasearch');\n\n var clone = require('lodash/lang/clone');\n var isArray = require('lodash/lang/isArray');\n var map = require('lodash/collection/map');\n\n var usage = 'Usage: algoliasearch(applicationID, apiKey, opts)';\n\n if (!applicationID) {\n throw new errors.AlgoliaSearchError('Please provide an application ID. ' + usage);\n }\n\n if (!apiKey) {\n throw new errors.AlgoliaSearchError('Please provide an API key. ' + usage);\n }\n\n this.applicationID = applicationID;\n this.apiKey = apiKey;\n\n var defaultHosts = [\n this.applicationID + '-1.algolianet.com',\n this.applicationID + '-2.algolianet.com',\n this.applicationID + '-3.algolianet.com'\n ];\n this.hosts = {\n read: [],\n write: []\n };\n\n this.hostIndex = {\n read: 0,\n write: 0\n };\n\n opts = opts || {};\n\n var protocol = opts.protocol || 'https:';\n var timeout = opts.timeout === undefined ? 2000 : opts.timeout;\n\n // while we advocate for colon-at-the-end values: 'http:' for `opts.protocol`\n // we also accept `http` and `https`. It's a common error.\n if (!/:$/.test(protocol)) {\n protocol = protocol + ':';\n }\n\n if (opts.protocol !== 'http:' && opts.protocol !== 'https:') {\n throw new errors.AlgoliaSearchError('protocol must be `http:` or `https:` (was `' + opts.protocol + '`)');\n }\n\n // no hosts given, add defaults\n if (!opts.hosts) {\n this.hosts.read = [this.applicationID + '-dsn.algolia.net'].concat(defaultHosts);\n this.hosts.write = [this.applicationID + '.algolia.net'].concat(defaultHosts);\n } else if (isArray(opts.hosts)) {\n this.hosts.read = clone(opts.hosts);\n this.hosts.write = clone(opts.hosts);\n } else {\n this.hosts.read = clone(opts.hosts.read);\n this.hosts.write = clone(opts.hosts.write);\n }\n\n // add protocol and lowercase hosts\n this.hosts.read = map(this.hosts.read, prepareHost(protocol));\n this.hosts.write = map(this.hosts.write, prepareHost(protocol));\n this.requestTimeout = timeout;\n\n this.extraHeaders = [];\n\n // In some situations you might want to warm the cache\n this.cache = opts._cache || {};\n\n this._ua = opts._ua;\n this._useCache = opts._useCache === undefined || opts._cache ? true : opts._useCache;\n this._useFallback = opts.useFallback === undefined ? true : opts.useFallback;\n\n this._setTimeout = opts._setTimeout;\n\n debug('init done, %j', this);\n}\n\nAlgoliaSearch.prototype = {\n /*\n * Delete an index\n *\n * @param indexName the name of index to delete\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer that contains the task ID\n */\n deleteIndex: function(indexName, callback) {\n return this._jsonRequest({\n method: 'DELETE',\n url: '/1/indexes/' + encodeURIComponent(indexName),\n hostType: 'write',\n callback: callback\n });\n },\n /**\n * Move an existing index.\n * @param srcIndexName the name of index to copy.\n * @param dstIndexName the new index name that will contains a copy of\n * srcIndexName (destination will be overriten if it already exist).\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer that contains the task ID\n */\n moveIndex: function(srcIndexName, dstIndexName, callback) {\n var postObj = {\n operation: 'move', destination: dstIndexName\n };\n return this._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /**\n * Copy an existing index.\n * @param srcIndexName the name of index to copy.\n * @param dstIndexName the new index name that will contains a copy\n * of srcIndexName (destination will be overriten if it already exist).\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer that contains the task ID\n */\n copyIndex: function(srcIndexName, dstIndexName, callback) {\n var postObj = {\n operation: 'copy', destination: dstIndexName\n };\n return this._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(srcIndexName) + '/operation',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /**\n * Return last log entries.\n * @param offset Specify the first entry to retrieve (0-based, 0 is the most recent log entry).\n * @param length Specify the maximum number of entries to retrieve starting\n * at offset. Maximum allowed value: 1000.\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer that contains the task ID\n */\n getLogs: function(offset, length, callback) {\n if (arguments.length === 0 || typeof offset === 'function') {\n // getLogs([cb])\n callback = offset;\n offset = 0;\n length = 10;\n } else if (arguments.length === 1 || typeof length === 'function') {\n // getLogs(1, [cb)]\n callback = length;\n length = 10;\n }\n\n return this._jsonRequest({\n method: 'GET',\n url: '/1/logs?offset=' + offset + '&length=' + length,\n hostType: 'read',\n callback: callback\n });\n },\n /*\n * List all existing indexes (paginated)\n *\n * @param page The page to retrieve, starting at 0.\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with index list\n */\n listIndexes: function(page, callback) {\n var params = '';\n\n if (page === undefined || typeof page === 'function') {\n callback = page;\n } else {\n params = '?page=' + page;\n }\n\n return this._jsonRequest({\n method: 'GET',\n url: '/1/indexes' + params,\n hostType: 'read',\n callback: callback\n });\n },\n\n /*\n * Get the index object initialized\n *\n * @param indexName the name of index\n * @param callback the result callback with one argument (the Index instance)\n */\n initIndex: function(indexName) {\n return new this.Index(this, indexName);\n },\n /*\n * List all existing user keys with their associated ACLs\n *\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n listUserKeys: function(callback) {\n return this._jsonRequest({\n method: 'GET',\n url: '/1/keys',\n hostType: 'read',\n callback: callback\n });\n },\n /*\n * Get ACL of a user key\n *\n * @param key\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n getUserKeyACL: function(key, callback) {\n return this._jsonRequest({\n method: 'GET',\n url: '/1/keys/' + key,\n hostType: 'read',\n callback: callback\n });\n },\n /*\n * Delete an existing user key\n * @param key\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n deleteUserKey: function(key, callback) {\n return this._jsonRequest({\n method: 'DELETE',\n url: '/1/keys/' + key,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Add a new global API key\n *\n * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that\n * can contains the following values:\n * - search: allow to search (https and http)\n * - addObject: allows to add/update an object in the index (https only)\n * - deleteObject : allows to delete an existing object (https only)\n * - deleteIndex : allows to delete index content (https only)\n * - settings : allows to get index settings (https only)\n * - editSettings : allows to change index settings (https only)\n * @param {Object} [params] - Optionnal parameters to set for the key\n * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key)\n * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour\n * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call\n * @param {string[]} params.indexes - Allowed targeted indexes for this key\n * @param {string} params.description - A description for your key\n * @param {string[]} params.referers - A list of authorized referers\n * @param {Object} params.queryParameters - Force the key to use specific query parameters\n * @param {Function} callback - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * client.addUserKey(['search'], {\n * validity: 300,\n * maxQueriesPerIPPerHour: 2000,\n * maxHitsPerQuery: 3,\n * indexes: ['fruits'],\n * description: 'Eat three fruits',\n * referers: ['*.algolia.com'],\n * queryParameters: {\n * tagFilters: ['public'],\n * }\n * })\n * @see {@link https://www.algolia.com/doc/rest_api#AddKey|Algolia REST API Documentation}\n */\n addUserKey: function(acls, params, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: client.addUserKey(arrayOfAcls[, params, callback])';\n\n if (!isArray(acls)) {\n throw new Error(usage);\n }\n\n if (arguments.length === 1 || typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n var postObj = {\n acl: acls\n };\n\n if (params) {\n postObj.validity = params.validity;\n postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;\n postObj.maxHitsPerQuery = params.maxHitsPerQuery;\n postObj.indexes = params.indexes;\n postObj.description = params.description;\n\n if (params.queryParameters) {\n postObj.queryParameters = this._getSearchParams(params.queryParameters, '');\n }\n\n postObj.referers = params.referers;\n }\n\n return this._jsonRequest({\n method: 'POST',\n url: '/1/keys',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /**\n * Add a new global API key\n * @deprecated Please use client.addUserKey()\n */\n addUserKeyWithValidity: deprecate(function(acls, params, callback) {\n return this.addUserKey(acls, params, callback);\n }, deprecatedMessage('client.addUserKeyWithValidity()', 'client.addUserKey()')),\n\n /**\n * Update an existing API key\n * @param {string} key - The key to update\n * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that\n * can contains the following values:\n * - search: allow to search (https and http)\n * - addObject: allows to add/update an object in the index (https only)\n * - deleteObject : allows to delete an existing object (https only)\n * - deleteIndex : allows to delete index content (https only)\n * - settings : allows to get index settings (https only)\n * - editSettings : allows to change index settings (https only)\n * @param {Object} [params] - Optionnal parameters to set for the key\n * @param {number} params.validity - Number of seconds after which the key will be automatically removed (0 means no time limit for this key)\n * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour\n * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call\n * @param {string[]} params.indexes - Allowed targeted indexes for this key\n * @param {string} params.description - A description for your key\n * @param {string[]} params.referers - A list of authorized referers\n * @param {Object} params.queryParameters - Force the key to use specific query parameters\n * @param {Function} callback - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * client.updateUserKey('APIKEY', ['search'], {\n * validity: 300,\n * maxQueriesPerIPPerHour: 2000,\n * maxHitsPerQuery: 3,\n * indexes: ['fruits'],\n * description: 'Eat three fruits',\n * referers: ['*.algolia.com'],\n * queryParameters: {\n * tagFilters: ['public'],\n * }\n * })\n * @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation}\n */\n updateUserKey: function(key, acls, params, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: client.updateUserKey(key, arrayOfAcls[, params, callback])';\n\n if (!isArray(acls)) {\n throw new Error(usage);\n }\n\n if (arguments.length === 2 || typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n var putObj = {\n acl: acls\n };\n\n if (params) {\n putObj.validity = params.validity;\n putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;\n putObj.maxHitsPerQuery = params.maxHitsPerQuery;\n putObj.indexes = params.indexes;\n putObj.description = params.description;\n\n if (params.queryParameters) {\n putObj.queryParameters = this._getSearchParams(params.queryParameters, '');\n }\n\n putObj.referers = params.referers;\n }\n\n return this._jsonRequest({\n method: 'PUT',\n url: '/1/keys/' + key,\n body: putObj,\n hostType: 'write',\n callback: callback\n });\n },\n\n /**\n * Set the extra security tagFilters header\n * @param {string|array} tags The list of tags defining the current security filters\n */\n setSecurityTags: function(tags) {\n if (Object.prototype.toString.call(tags) === '[object Array]') {\n var strTags = [];\n for (var i = 0; i < tags.length; ++i) {\n if (Object.prototype.toString.call(tags[i]) === '[object Array]') {\n var oredTags = [];\n for (var j = 0; j < tags[i].length; ++j) {\n oredTags.push(tags[i][j]);\n }\n strTags.push('(' + oredTags.join(',') + ')');\n } else {\n strTags.push(tags[i]);\n }\n }\n tags = strTags.join(',');\n }\n\n this.securityTags = tags;\n },\n\n /**\n * Set the extra user token header\n * @param {string} userToken The token identifying a uniq user (used to apply rate limits)\n */\n setUserToken: function(userToken) {\n this.userToken = userToken;\n },\n\n /**\n * Initialize a new batch of search queries\n * @deprecated use client.search()\n */\n startQueriesBatch: deprecate(function startQueriesBatchDeprecated() {\n this._batch = [];\n }, deprecatedMessage('client.startQueriesBatch()', 'client.search()')),\n\n /**\n * Add a search query in the batch\n * @deprecated use client.search()\n */\n addQueryInBatch: deprecate(function addQueryInBatchDeprecated(indexName, query, args) {\n this._batch.push({\n indexName: indexName,\n query: query,\n params: args\n });\n }, deprecatedMessage('client.addQueryInBatch()', 'client.search()')),\n\n /**\n * Clear all queries in client's cache\n * @return undefined\n */\n clearCache: function() {\n this.cache = {};\n },\n\n /**\n * Launch the batch of queries using XMLHttpRequest.\n * @deprecated use client.search()\n */\n sendQueriesBatch: deprecate(function sendQueriesBatchDeprecated(callback) {\n return this.search(this._batch, callback);\n }, deprecatedMessage('client.sendQueriesBatch()', 'client.search()')),\n\n /**\n * Set the number of milliseconds a request can take before automatically being terminated.\n *\n * @param {Number} milliseconds\n */\n setRequestTimeout: function(milliseconds) {\n if (milliseconds) {\n this.requestTimeout = parseInt(milliseconds, 10);\n }\n },\n\n /**\n * Search through multiple indices at the same time\n * @param {Object[]} queries An array of queries you want to run.\n * @param {string} queries[].indexName The index name you want to target\n * @param {string} [queries[].query] The query to issue on this index. Can also be passed into `params`\n * @param {Object} queries[].params Any search param like hitsPerPage, ..\n * @param {Function} callback Callback to be called\n * @return {Promise|undefined} Returns a promise if no callback given\n */\n search: function(queries, callback) {\n var isArray = require('lodash/lang/isArray');\n var map = require('lodash/collection/map');\n\n var usage = 'Usage: client.search(arrayOfQueries[, callback])';\n\n if (!isArray(queries)) {\n throw new Error(usage);\n }\n\n var client = this;\n\n var postObj = {\n requests: map(queries, function prepareRequest(query) {\n var params = '';\n\n // allow query.query\n // so we are mimicing the index.search(query, params) method\n // {indexName:, query:, params:}\n if (query.query !== undefined) {\n params += 'query=' + encodeURIComponent(query.query);\n }\n\n return {\n indexName: query.indexName,\n params: client._getSearchParams(query.params, params)\n };\n })\n };\n\n var JSONPParams = map(postObj.requests, function prepareJSONPParams(request, requestId) {\n return requestId + '=' +\n encodeURIComponent(\n '/1/indexes/' + encodeURIComponent(request.indexName) + '?' +\n request.params\n );\n }).join('&');\n\n return this._jsonRequest({\n cache: this.cache,\n method: 'POST',\n url: '/1/indexes/*/queries',\n body: postObj,\n hostType: 'read',\n fallback: {\n method: 'GET',\n url: '/1/indexes/*',\n body: {\n params: JSONPParams\n }\n },\n callback: callback\n });\n },\n\n /**\n * Perform write operations accross multiple indexes.\n *\n * To reduce the amount of time spent on network round trips,\n * you can create, update, or delete several objects in one call,\n * using the batch endpoint (all operations are done in the given order).\n *\n * Available actions:\n * - addObject\n * - updateObject\n * - partialUpdateObject\n * - partialUpdateObjectNoCreate\n * - deleteObject\n *\n * https://www.algolia.com/doc/rest_api#Indexes\n * @param {Object[]} operations An array of operations to perform\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * client.batch([{\n * action: 'addObject',\n * indexName: 'clients',\n * body: {\n * name: 'Bill'\n * }\n * }, {\n * action: 'udpateObject',\n * indexName: 'fruits',\n * body: {\n * objectID: '29138',\n * name: 'banana'\n * }\n * }], cb)\n */\n batch: function(operations, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: client.batch(operations[, callback])';\n\n if (!isArray(operations)) {\n throw new Error(usage);\n }\n\n return this._jsonRequest({\n method: 'POST',\n url: '/1/indexes/*/batch',\n body: {\n requests: operations\n },\n hostType: 'write',\n callback: callback\n });\n },\n\n // environment specific methods\n destroy: notImplemented,\n enableRateLimitForward: notImplemented,\n disableRateLimitForward: notImplemented,\n useSecuredAPIKey: notImplemented,\n disableSecuredAPIKey: notImplemented,\n generateSecuredApiKey: notImplemented,\n /*\n * Index class constructor.\n * You should not use this method directly but use initIndex() function\n */\n Index: function(algoliasearch, indexName) {\n this.indexName = indexName;\n this.as = algoliasearch;\n this.typeAheadArgs = null;\n this.typeAheadValueOption = null;\n\n // make sure every index instance has it's own cache\n this.cache = {};\n },\n /**\n * Add an extra field to the HTTP request\n *\n * @param name the header field name\n * @param value the header field value\n */\n setExtraHeader: function(name, value) {\n this.extraHeaders.push({\n name: name.toLowerCase(), value: value\n });\n },\n\n /**\n * Augment sent x-algolia-agent with more data, each agent part\n * is automatically separated from the others by a semicolon;\n *\n * @param algoliaAgent the agent to add\n */\n addAlgoliaAgent: function(algoliaAgent) {\n this._ua += ';' + algoliaAgent;\n },\n\n /*\n * Wrapper that try all hosts to maximize the quality of service\n */\n _jsonRequest: function(initialOpts) {\n var requestDebug = require('debug')('algoliasearch:' + initialOpts.url);\n\n var body;\n var cache = initialOpts.cache;\n var client = this;\n var tries = 0;\n var usingFallback = false;\n var hasFallback = client._useFallback && client._request.fallback && initialOpts.fallback;\n var headers;\n\n if (this.apiKey.length > MAX_API_KEY_LENGTH && initialOpts.body !== undefined && initialOpts.body.params !== undefined) {\n initialOpts.body.apiKey = this.apiKey;\n headers = this._computeRequestHeaders(false);\n } else {\n headers = this._computeRequestHeaders();\n }\n\n if (initialOpts.body !== undefined) {\n body = safeJSONStringify(initialOpts.body);\n }\n\n requestDebug('request start');\n\n function doRequest(requester, reqOpts) {\n var cacheID;\n\n if (client._useCache) {\n cacheID = initialOpts.url;\n }\n\n // as we sometime use POST requests to pass parameters (like query='aa'),\n // the cacheID must also include the body to be different between calls\n if (client._useCache && body) {\n cacheID += '_body_' + reqOpts.body;\n }\n\n // handle cache existence\n if (client._useCache && cache && cache[cacheID] !== undefined) {\n requestDebug('serving response from cache');\n return client._promise.resolve(JSON.parse(cache[cacheID]));\n }\n\n // if we reached max tries\n if (tries >= client.hosts[initialOpts.hostType].length) {\n if (!hasFallback || usingFallback) {\n requestDebug('could not get any response');\n // then stop\n return client._promise.reject(new errors.AlgoliaSearchError(\n 'Cannot connect to the AlgoliaSearch API.' +\n ' Send an email to support@algolia.com to report and resolve the issue.' +\n ' Application id was: ' + client.applicationID\n ));\n }\n\n requestDebug('switching to fallback');\n\n // let's try the fallback starting from here\n tries = 0;\n\n // method, url and body are fallback dependent\n reqOpts.method = initialOpts.fallback.method;\n reqOpts.url = initialOpts.fallback.url;\n reqOpts.jsonBody = initialOpts.fallback.body;\n if (reqOpts.jsonBody) {\n reqOpts.body = safeJSONStringify(reqOpts.jsonBody);\n }\n // re-compute headers, they could be omitting the API KEY\n headers = client._computeRequestHeaders();\n\n reqOpts.timeout = client.requestTimeout * (tries + 1);\n client.hostIndex[initialOpts.hostType] = 0;\n usingFallback = true; // the current request is now using fallback\n return doRequest(client._request.fallback, reqOpts);\n }\n\n var url = client.hosts[initialOpts.hostType][client.hostIndex[initialOpts.hostType]] + reqOpts.url;\n var options = {\n body: reqOpts.body,\n jsonBody: reqOpts.jsonBody,\n method: reqOpts.method,\n headers: headers,\n timeout: reqOpts.timeout,\n debug: requestDebug\n };\n\n requestDebug('method: %s, url: %s, headers: %j, timeout: %d',\n options.method, url, options.headers, options.timeout);\n\n if (requester === client._request.fallback) {\n requestDebug('using fallback');\n }\n\n // `requester` is any of this._request or this._request.fallback\n // thus it needs to be called using the client as context\n return requester.call(client, url, options).then(success, tryFallback);\n\n function success(httpResponse) {\n // compute the status of the response,\n //\n // When in browser mode, using XDR or JSONP, we have no statusCode available\n // So we rely on our API response `status` property.\n // But `waitTask` can set a `status` property which is not the statusCode (it's the task status)\n // So we check if there's a `message` along `status` and it means it's an error\n //\n // That's the only case where we have a response.status that's not the http statusCode\n var status = httpResponse && httpResponse.body && httpResponse.body.message && httpResponse.body.status ||\n\n // this is important to check the request statusCode AFTER the body eventual\n // statusCode because some implementations (jQuery XDomainRequest transport) may\n // send statusCode 200 while we had an error\n httpResponse.statusCode ||\n\n // When in browser mode, using XDR or JSONP\n // we default to success when no error (no response.status && response.message)\n // If there was a JSON.parse() error then body is null and it fails\n httpResponse && httpResponse.body && 200;\n\n requestDebug('received response: statusCode: %s, computed statusCode: %d, headers: %j',\n httpResponse.statusCode, status, httpResponse.headers);\n\n var ok = status === 200 || status === 201;\n var retry = !ok && Math.floor(status / 100) !== 4 && Math.floor(status / 100) !== 1;\n\n if (client._useCache && ok && cache) {\n cache[cacheID] = httpResponse.responseText;\n }\n\n if (ok) {\n return httpResponse.body;\n }\n\n if (retry) {\n tries += 1;\n return retryRequest();\n }\n\n var unrecoverableError = new errors.AlgoliaSearchError(\n httpResponse.body && httpResponse.body.message\n );\n\n return client._promise.reject(unrecoverableError);\n }\n\n function tryFallback(err) {\n // error cases:\n // While not in fallback mode:\n // - CORS not supported\n // - network error\n // While in fallback mode:\n // - timeout\n // - network error\n // - badly formatted JSONP (script loaded, did not call our callback)\n // In both cases:\n // - uncaught exception occurs (TypeError)\n requestDebug('error: %s, stack: %s', err.message, err.stack);\n\n if (!(err instanceof errors.AlgoliaSearchError)) {\n err = new errors.Unknown(err && err.message, err);\n }\n\n tries += 1;\n\n // stop the request implementation when:\n if (\n // we did not generate this error,\n // it comes from a throw in some other piece of code\n err instanceof errors.Unknown ||\n\n // server sent unparsable JSON\n err instanceof errors.UnparsableJSON ||\n\n // max tries and already using fallback or no fallback\n tries >= client.hosts[initialOpts.hostType].length &&\n (usingFallback || !hasFallback)) {\n // stop request implementation for this command\n return client._promise.reject(err);\n }\n\n client.hostIndex[initialOpts.hostType] = ++client.hostIndex[initialOpts.hostType] % client.hosts[initialOpts.hostType].length;\n\n if (err instanceof errors.RequestTimeout) {\n return retryRequest();\n } else if (!usingFallback) {\n // next request loop, force using fallback for this request\n tries = Infinity;\n }\n\n return doRequest(requester, reqOpts);\n }\n\n function retryRequest() {\n client.hostIndex[initialOpts.hostType] = ++client.hostIndex[initialOpts.hostType] % client.hosts[initialOpts.hostType].length;\n reqOpts.timeout = client.requestTimeout * (tries + 1);\n return doRequest(requester, reqOpts);\n }\n }\n\n var promise = doRequest(\n client._request, {\n url: initialOpts.url,\n method: initialOpts.method,\n body: body,\n jsonBody: initialOpts.body,\n timeout: client.requestTimeout * (tries + 1)\n }\n );\n\n // either we have a callback\n // either we are using promises\n if (initialOpts.callback) {\n promise.then(function okCb(content) {\n exitPromise(function() {\n initialOpts.callback(null, content);\n }, client._setTimeout || setTimeout);\n }, function nookCb(err) {\n exitPromise(function() {\n initialOpts.callback(err);\n }, client._setTimeout || setTimeout);\n });\n } else {\n return promise;\n }\n },\n\n /*\n * Transform search param object in query string\n */\n _getSearchParams: function(args, params) {\n if (args === undefined || args === null) {\n return params;\n }\n for (var key in args) {\n if (key !== null && args[key] !== undefined && args.hasOwnProperty(key)) {\n params += params === '' ? '' : '&';\n params += key + '=' + encodeURIComponent(Object.prototype.toString.call(args[key]) === '[object Array]' ? safeJSONStringify(args[key]) : args[key]);\n }\n }\n return params;\n },\n\n _computeRequestHeaders: function(withAPIKey) {\n var forEach = require('lodash/collection/forEach');\n\n var requestHeaders = {\n 'x-algolia-agent': this._ua,\n 'x-algolia-application-id': this.applicationID\n };\n\n // browser will inline headers in the url, node.js will use http headers\n // but in some situations, the API KEY will be too long (big secured API keys)\n // so if the request is a POST and the KEY is very long, we will be asked to not put\n // it into headers but in the JSON body\n if (withAPIKey !== false) {\n requestHeaders['x-algolia-api-key'] = this.apiKey;\n }\n\n if (this.userToken) {\n requestHeaders['x-algolia-usertoken'] = this.userToken;\n }\n\n if (this.securityTags) {\n requestHeaders['x-algolia-tagfilters'] = this.securityTags;\n }\n\n if (this.extraHeaders) {\n forEach(this.extraHeaders, function addToRequestHeaders(header) {\n requestHeaders[header.name] = header.value;\n });\n }\n\n return requestHeaders;\n }\n};\n\n/*\n * Contains all the functions related to one index\n * You should use AlgoliaSearch.initIndex(indexName) to retrieve this object\n */\nAlgoliaSearch.prototype.Index.prototype = {\n /*\n * Clear all queries in cache\n */\n clearCache: function() {\n this.cache = {};\n },\n /*\n * Add an object in this index\n *\n * @param content contains the javascript object to add inside the index\n * @param objectID (optional) an objectID you want to attribute to this object\n * (if the attribute already exist the old object will be overwrite)\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that contains 3 elements: createAt, taskId and objectID\n */\n addObject: function(content, objectID, callback) {\n var indexObj = this;\n\n if (arguments.length === 1 || typeof objectID === 'function') {\n callback = objectID;\n objectID = undefined;\n }\n\n return this.as._jsonRequest({\n method: objectID !== undefined ?\n 'PUT' : // update or create\n 'POST', // create (API generates an objectID)\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + // create\n (objectID !== undefined ? '/' + encodeURIComponent(objectID) : ''), // update or create\n body: content,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Add several objects\n *\n * @param objects contains an array of objects to add\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that updateAt and taskID\n */\n addObjects: function(objects, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: index.addObjects(arrayOfObjects[, callback])';\n\n if (!isArray(objects)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n var postObj = {\n requests: []\n };\n for (var i = 0; i < objects.length; ++i) {\n var request = {\n action: 'addObject',\n body: objects[i]\n };\n postObj.requests.push(request);\n }\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Get an object from this index\n *\n * @param objectID the unique identifier of the object to retrieve\n * @param attrs (optional) if set, contains the array of attribute names to retrieve\n * @param callback (optional) the result callback called with two arguments\n * error: null or Error('message')\n * content: the object to retrieve or the error message if a failure occured\n */\n getObject: function(objectID, attrs, callback) {\n var indexObj = this;\n\n if (arguments.length === 1 || typeof attrs === 'function') {\n callback = attrs;\n attrs = undefined;\n }\n\n var params = '';\n if (attrs !== undefined) {\n params = '?attributes=';\n for (var i = 0; i < attrs.length; ++i) {\n if (i !== 0) {\n params += ',';\n }\n params += attrs[i];\n }\n }\n\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID) + params,\n hostType: 'read',\n callback: callback\n });\n },\n\n /*\n * Get several objects from this index\n *\n * @param objectIDs the array of unique identifier of objects to retrieve\n */\n getObjects: function(objectIDs, attributesToRetrieve, callback) {\n var isArray = require('lodash/lang/isArray');\n var map = require('lodash/collection/map');\n\n var usage = 'Usage: index.getObjects(arrayOfObjectIDs[, callback])';\n\n if (!isArray(objectIDs)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n\n if (arguments.length === 1 || typeof attributesToRetrieve === 'function') {\n callback = attributesToRetrieve;\n attributesToRetrieve = undefined;\n }\n\n var body = {\n requests: map(objectIDs, function prepareRequest(objectID) {\n var request = {\n indexName: indexObj.indexName,\n objectID: objectID\n };\n\n if (attributesToRetrieve) {\n request.attributesToRetrieve = attributesToRetrieve.join(',');\n }\n\n return request;\n })\n };\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/*/objects',\n hostType: 'read',\n body: body,\n callback: callback\n });\n },\n\n /*\n * Update partially an object (only update attributes passed in argument)\n *\n * @param partialObject contains the javascript attributes to override, the\n * object must contains an objectID attribute\n * @param createIfNotExists (optional) if false, avoid an automatic creation of the object\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that contains 3 elements: createAt, taskId and objectID\n */\n partialUpdateObject: function(partialObject, createIfNotExists, callback) {\n if (arguments.length === 1 || typeof createIfNotExists === 'function') {\n callback = createIfNotExists;\n createIfNotExists = undefined;\n }\n\n var indexObj = this;\n var url = '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(partialObject.objectID) + '/partial';\n if (createIfNotExists === false) {\n url += '?createIfNotExists=false';\n }\n\n return this.as._jsonRequest({\n method: 'POST',\n url: url,\n body: partialObject,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Partially Override the content of several objects\n *\n * @param objects contains an array of objects to update (each object must contains a objectID attribute)\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that updateAt and taskID\n */\n partialUpdateObjects: function(objects, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: index.partialUpdateObjects(arrayOfObjects[, callback])';\n\n if (!isArray(objects)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n var postObj = {\n requests: []\n };\n for (var i = 0; i < objects.length; ++i) {\n var request = {\n action: 'partialUpdateObject',\n objectID: objects[i].objectID,\n body: objects[i]\n };\n postObj.requests.push(request);\n }\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Override the content of object\n *\n * @param object contains the javascript object to save, the object must contains an objectID attribute\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that updateAt and taskID\n */\n saveObject: function(object, callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'PUT',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(object.objectID),\n body: object,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Override the content of several objects\n *\n * @param objects contains an array of objects to update (each object must contains a objectID attribute)\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that updateAt and taskID\n */\n saveObjects: function(objects, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: index.saveObjects(arrayOfObjects[, callback])';\n\n if (!isArray(objects)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n var postObj = {\n requests: []\n };\n for (var i = 0; i < objects.length; ++i) {\n var request = {\n action: 'updateObject',\n objectID: objects[i].objectID,\n body: objects[i]\n };\n postObj.requests.push(request);\n }\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Delete an object from the index\n *\n * @param objectID the unique identifier of object to delete\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that contains 3 elements: createAt, taskId and objectID\n */\n deleteObject: function(objectID, callback) {\n if (typeof objectID === 'function' || typeof objectID !== 'string' && typeof objectID !== 'number') {\n var err = new errors.AlgoliaSearchError('Cannot delete an object without an objectID');\n callback = objectID;\n if (typeof callback === 'function') {\n return callback(err);\n }\n\n return this.as._promise.reject(err);\n }\n\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'DELETE',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/' + encodeURIComponent(objectID),\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Delete several objects from an index\n *\n * @param objectIDs contains an array of objectID to delete\n * @param callback (optional) the result callback called with two arguments:\n * error: null or Error('message')\n * content: the server answer that contains 3 elements: createAt, taskId and objectID\n */\n deleteObjects: function(objectIDs, callback) {\n var isArray = require('lodash/lang/isArray');\n var map = require('lodash/collection/map');\n\n var usage = 'Usage: index.deleteObjects(arrayOfObjectIDs[, callback])';\n\n if (!isArray(objectIDs)) {\n throw new Error(usage);\n }\n\n var indexObj = this;\n var postObj = {\n requests: map(objectIDs, function prepareRequest(objectID) {\n return {\n action: 'deleteObject',\n objectID: objectID,\n body: {\n objectID: objectID\n }\n };\n })\n };\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/batch',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Delete all objects matching a query\n *\n * @param query the query string\n * @param params the optional query parameters\n * @param callback (optional) the result callback called with one argument\n * error: null or Error('message')\n */\n deleteByQuery: function(query, params, callback) {\n var clone = require('lodash/lang/clone');\n var map = require('lodash/collection/map');\n\n var indexObj = this;\n var client = indexObj.as;\n\n if (arguments.length === 1 || typeof params === 'function') {\n callback = params;\n params = {};\n } else {\n params = clone(params);\n }\n\n params.attributesToRetrieve = 'objectID';\n params.hitsPerPage = 1000;\n params.distinct = false;\n\n // when deleting, we should never use cache to get the\n // search results\n this.clearCache();\n\n // there's a problem in how we use the promise chain,\n // see how waitTask is done\n var promise = this\n .search(query, params)\n .then(stopOrDelete);\n\n function stopOrDelete(searchContent) {\n // stop here\n if (searchContent.nbHits === 0) {\n // return indexObj.as._request.resolve();\n return searchContent;\n }\n\n // continue and do a recursive call\n var objectIDs = map(searchContent.hits, function getObjectID(object) {\n return object.objectID;\n });\n\n return indexObj\n .deleteObjects(objectIDs)\n .then(waitTask)\n .then(doDeleteByQuery);\n }\n\n function waitTask(deleteObjectsContent) {\n return indexObj.waitTask(deleteObjectsContent.taskID);\n }\n\n function doDeleteByQuery() {\n return indexObj.deleteByQuery(query, params);\n }\n\n if (!callback) {\n return promise;\n }\n\n promise.then(success, failure);\n\n function success() {\n exitPromise(function exit() {\n callback(null);\n }, client._setTimeout || setTimeout);\n }\n\n function failure(err) {\n exitPromise(function exit() {\n callback(err);\n }, client._setTimeout || setTimeout);\n }\n },\n\n /*\n * Search inside the index using XMLHttpRequest request (Using a POST query to\n * minimize number of OPTIONS queries: Cross-Origin Resource Sharing).\n *\n * @param query the full text query\n * @param args (optional) if set, contains an object with query parameters:\n * - page: (integer) Pagination parameter used to select the page to retrieve.\n * Page is zero-based and defaults to 0. Thus,\n * to retrieve the 10th page you need to set page=9\n * - hitsPerPage: (integer) Pagination parameter used to select the number of hits per page. Defaults to 20.\n * - attributesToRetrieve: a string that contains the list of object attributes\n * you want to retrieve (let you minimize the answer size).\n * Attributes are separated with a comma (for example \"name,address\").\n * You can also use an array (for example [\"name\",\"address\"]).\n * By default, all attributes are retrieved. You can also use '*' to retrieve all\n * values when an attributesToRetrieve setting is specified for your index.\n * - attributesToHighlight: a string that contains the list of attributes you\n * want to highlight according to the query.\n * Attributes are separated by a comma. You can also use an array (for example [\"name\",\"address\"]).\n * If an attribute has no match for the query, the raw value is returned.\n * By default all indexed text attributes are highlighted.\n * You can use `*` if you want to highlight all textual attributes.\n * Numerical attributes are not highlighted.\n * A matchLevel is returned for each highlighted attribute and can contain:\n * - full: if all the query terms were found in the attribute,\n * - partial: if only some of the query terms were found,\n * - none: if none of the query terms were found.\n * - attributesToSnippet: a string that contains the list of attributes to snippet alongside\n * the number of words to return (syntax is `attributeName:nbWords`).\n * Attributes are separated by a comma (Example: attributesToSnippet=name:10,content:10).\n * You can also use an array (Example: attributesToSnippet: ['name:10','content:10']).\n * By default no snippet is computed.\n * - minWordSizefor1Typo: the minimum number of characters in a query word to accept one typo in this word.\n * Defaults to 3.\n * - minWordSizefor2Typos: the minimum number of characters in a query word\n * to accept two typos in this word. Defaults to 7.\n * - getRankingInfo: if set to 1, the result hits will contain ranking\n * information in _rankingInfo attribute.\n * - aroundLatLng: search for entries around a given\n * latitude/longitude (specified as two floats separated by a comma).\n * For example aroundLatLng=47.316669,5.016670).\n * You can specify the maximum distance in meters with the aroundRadius parameter (in meters)\n * and the precision for ranking with aroundPrecision\n * (for example if you set aroundPrecision=100, two objects that are distant of\n * less than 100m will be considered as identical for \"geo\" ranking parameter).\n * At indexing, you should specify geoloc of an object with the _geoloc attribute\n * (in the form {\"_geoloc\":{\"lat\":48.853409, \"lng\":2.348800}})\n * - insideBoundingBox: search entries inside a given area defined by the two extreme points\n * of a rectangle (defined by 4 floats: p1Lat,p1Lng,p2Lat,p2Lng).\n * For example insideBoundingBox=47.3165,4.9665,47.3424,5.0201).\n * At indexing, you should specify geoloc of an object with the _geoloc attribute\n * (in the form {\"_geoloc\":{\"lat\":48.853409, \"lng\":2.348800}})\n * - numericFilters: a string that contains the list of numeric filters you want to\n * apply separated by a comma.\n * The syntax of one filter is `attributeName` followed by `operand` followed by `value`.\n * Supported operands are `<`, `<=`, `=`, `>` and `>=`.\n * You can have multiple conditions on one attribute like for example numericFilters=price>100,price<1000.\n * You can also use an array (for example numericFilters: [\"price>100\",\"price<1000\"]).\n * - tagFilters: filter the query by a set of tags. You can AND tags by separating them by commas.\n * To OR tags, you must add parentheses. For example, tags=tag1,(tag2,tag3) means tag1 AND (tag2 OR tag3).\n * You can also use an array, for example tagFilters: [\"tag1\",[\"tag2\",\"tag3\"]]\n * means tag1 AND (tag2 OR tag3).\n * At indexing, tags should be added in the _tags** attribute\n * of objects (for example {\"_tags\":[\"tag1\",\"tag2\"]}).\n * - facetFilters: filter the query by a list of facets.\n * Facets are separated by commas and each facet is encoded as `attributeName:value`.\n * For example: `facetFilters=category:Book,author:John%20Doe`.\n * You can also use an array (for example `[\"category:Book\",\"author:John%20Doe\"]`).\n * - facets: List of object attributes that you want to use for faceting.\n * Comma separated list: `\"category,author\"` or array `['category','author']`\n * Only attributes that have been added in **attributesForFaceting** index setting\n * can be used in this parameter.\n * You can also use `*` to perform faceting on all attributes specified in **attributesForFaceting**.\n * - queryType: select how the query words are interpreted, it can be one of the following value:\n * - prefixAll: all query words are interpreted as prefixes,\n * - prefixLast: only the last word is interpreted as a prefix (default behavior),\n * - prefixNone: no query word is interpreted as a prefix. This option is not recommended.\n * - optionalWords: a string that contains the list of words that should\n * be considered as optional when found in the query.\n * Comma separated and array are accepted.\n * - distinct: If set to 1, enable the distinct feature (disabled by default)\n * if the attributeForDistinct index setting is set.\n * This feature is similar to the SQL \"distinct\" keyword: when enabled\n * in a query with the distinct=1 parameter,\n * all hits containing a duplicate value for the attributeForDistinct attribute are removed from results.\n * For example, if the chosen attribute is show_name and several hits have\n * the same value for show_name, then only the best\n * one is kept and others are removed.\n * - restrictSearchableAttributes: List of attributes you want to use for\n * textual search (must be a subset of the attributesToIndex index setting)\n * either comma separated or as an array\n * @param callback the result callback called with two arguments:\n * error: null or Error('message'). If false, the content contains the error.\n * content: the server answer that contains the list of results.\n */\n search: buildSearchMethod('query'),\n\n /*\n * -- BETA --\n * Search a record similar to the query inside the index using XMLHttpRequest request (Using a POST query to\n * minimize number of OPTIONS queries: Cross-Origin Resource Sharing).\n *\n * @param query the similar query\n * @param args (optional) if set, contains an object with query parameters.\n * All search parameters are supported (see search function), restrictSearchableAttributes and facetFilters\n * are the two most useful to restrict the similar results and get more relevant content\n */\n similarSearch: buildSearchMethod('similarQuery'),\n\n /*\n * Browse index content. The response content will have a `cursor` property that you can use\n * to browse subsequent pages for this query. Use `index.browseFrom(cursor)` when you want.\n *\n * @param {string} query - The full text query\n * @param {Object} [queryParameters] - Any search query parameter\n * @param {Function} [callback] - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with the browse result\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * index.browse('cool songs', {\n * tagFilters: 'public,comments',\n * hitsPerPage: 500\n * }, callback);\n * @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}\n */\n // pre 3.5.0 usage, backward compatible\n // browse: function(page, hitsPerPage, callback) {\n browse: function(query, queryParameters, callback) {\n var merge = require('lodash/object/merge');\n\n var indexObj = this;\n\n var page;\n var hitsPerPage;\n\n // we check variadic calls that are not the one defined\n // .browse()/.browse(fn)\n // => page = 0\n if (arguments.length === 0 || arguments.length === 1 && typeof arguments[0] === 'function') {\n page = 0;\n callback = arguments[0];\n query = undefined;\n } else if (typeof arguments[0] === 'number') {\n // .browse(2)/.browse(2, 10)/.browse(2, fn)/.browse(2, 10, fn)\n page = arguments[0];\n if (typeof arguments[1] === 'number') {\n hitsPerPage = arguments[1];\n } else if (typeof arguments[1] === 'function') {\n callback = arguments[1];\n hitsPerPage = undefined;\n }\n query = undefined;\n queryParameters = undefined;\n } else if (typeof arguments[0] === 'object') {\n // .browse(queryParameters)/.browse(queryParameters, cb)\n if (typeof arguments[1] === 'function') {\n callback = arguments[1];\n }\n queryParameters = arguments[0];\n query = undefined;\n } else if (typeof arguments[0] === 'string' && typeof arguments[1] === 'function') {\n // .browse(query, cb)\n callback = arguments[1];\n queryParameters = undefined;\n }\n\n // otherwise it's a .browse(query)/.browse(query, queryParameters)/.browse(query, queryParameters, cb)\n\n // get search query parameters combining various possible calls\n // to .browse();\n queryParameters = merge({}, queryParameters || {}, {\n page: page,\n hitsPerPage: hitsPerPage,\n query: query\n });\n\n var params = this.as._getSearchParams(queryParameters, '');\n\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/browse?' + params,\n hostType: 'read',\n callback: callback\n });\n },\n\n /*\n * Continue browsing from a previous position (cursor), obtained via a call to `.browse()`.\n *\n * @param {string} query - The full text query\n * @param {Object} [queryParameters] - Any search query parameter\n * @param {Function} [callback] - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with the browse result\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * index.browseFrom('14lkfsakl32', callback);\n * @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}\n */\n browseFrom: function(cursor, callback) {\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/browse?cursor=' + encodeURIComponent(cursor),\n hostType: 'read',\n callback: callback\n });\n },\n\n /*\n * Browse all content from an index using events. Basically this will do\n * .browse() -> .browseFrom -> .browseFrom -> .. until all the results are returned\n *\n * @param {string} query - The full text query\n * @param {Object} [queryParameters] - Any search query parameter\n * @return {EventEmitter}\n * @example\n * var browser = index.browseAll('cool songs', {\n * tagFilters: 'public,comments',\n * hitsPerPage: 500\n * });\n *\n * browser.on('result', function resultCallback(content) {\n * console.log(content.hits);\n * });\n *\n * // if any error occurs, you get it\n * browser.on('error', function(err) {\n * throw err;\n * });\n *\n * // when you have browsed the whole index, you get this event\n * browser.on('end', function() {\n * console.log('finished');\n * });\n *\n * // at any point if you want to stop the browsing process, you can stop it manually\n * // otherwise it will go on and on\n * browser.stop();\n *\n * @see {@link https://www.algolia.com/doc/rest_api#Browse|Algolia REST API Documentation}\n */\n browseAll: function(query, queryParameters) {\n if (typeof query === 'object') {\n queryParameters = query;\n query = undefined;\n }\n\n var merge = require('lodash/object/merge');\n\n var IndexBrowser = require('./IndexBrowser');\n\n var browser = new IndexBrowser();\n var client = this.as;\n var index = this;\n var params = client._getSearchParams(\n merge({}, queryParameters || {}, {\n query: query\n }), ''\n );\n\n // start browsing\n browseLoop();\n\n function browseLoop(cursor) {\n if (browser._stopped) {\n return;\n }\n\n var queryString;\n\n if (cursor !== undefined) {\n queryString = 'cursor=' + encodeURIComponent(cursor);\n } else {\n queryString = params;\n }\n\n client._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(index.indexName) + '/browse?' + queryString,\n hostType: 'read',\n callback: browseCallback\n });\n }\n\n function browseCallback(err, content) {\n if (browser._stopped) {\n return;\n }\n\n if (err) {\n browser._error(err);\n return;\n }\n\n browser._result(content);\n\n // no cursor means we are finished browsing\n if (content.cursor === undefined) {\n browser._end();\n return;\n }\n\n browseLoop(content.cursor);\n }\n\n return browser;\n },\n\n /*\n * Get a Typeahead.js adapter\n * @param searchParams contains an object with query parameters (see search for details)\n */\n ttAdapter: function(params) {\n var self = this;\n return function ttAdapter(query, syncCb, asyncCb) {\n var cb;\n\n if (typeof asyncCb === 'function') {\n // typeahead 0.11\n cb = asyncCb;\n } else {\n // pre typeahead 0.11\n cb = syncCb;\n }\n\n self.search(query, params, function searchDone(err, content) {\n if (err) {\n cb(err);\n return;\n }\n\n cb(content.hits);\n });\n };\n },\n\n /*\n * Wait the publication of a task on the server.\n * All server task are asynchronous and you can check with this method that the task is published.\n *\n * @param taskID the id of the task returned by server\n * @param callback the result callback with with two arguments:\n * error: null or Error('message')\n * content: the server answer that contains the list of results\n */\n waitTask: function(taskID, callback) {\n // wait minimum 100ms before retrying\n var baseDelay = 100;\n // wait maximum 5s before retrying\n var maxDelay = 5000;\n var loop = 0;\n\n // waitTask() must be handled differently from other methods,\n // it's a recursive method using a timeout\n var indexObj = this;\n var client = indexObj.as;\n\n var promise = retryLoop();\n\n function retryLoop() {\n return client._jsonRequest({\n method: 'GET',\n hostType: 'read',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/task/' + taskID\n }).then(function success(content) {\n loop++;\n var delay = baseDelay * loop * loop;\n if (delay > maxDelay) {\n delay = maxDelay;\n }\n\n if (content.status !== 'published') {\n return client._promise.delay(delay).then(retryLoop);\n }\n\n return content;\n });\n }\n\n if (!callback) {\n return promise;\n }\n\n promise.then(successCb, failureCb);\n\n function successCb(content) {\n exitPromise(function exit() {\n callback(null, content);\n }, client._setTimeout || setTimeout);\n }\n\n function failureCb(err) {\n exitPromise(function exit() {\n callback(err);\n }, client._setTimeout || setTimeout);\n }\n },\n\n /*\n * This function deletes the index content. Settings and index specific API keys are kept untouched.\n *\n * @param callback (optional) the result callback called with two arguments\n * error: null or Error('message')\n * content: the settings object or the error message if a failure occured\n */\n clearIndex: function(callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/clear',\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Get settings of this index\n *\n * @param callback (optional) the result callback called with two arguments\n * error: null or Error('message')\n * content: the settings object or the error message if a failure occured\n */\n getSettings: function(callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/settings',\n hostType: 'read',\n callback: callback\n });\n },\n\n /*\n * Set settings for this index\n *\n * @param settigns the settings object that can contains :\n * - minWordSizefor1Typo: (integer) the minimum number of characters to accept one typo (default = 3).\n * - minWordSizefor2Typos: (integer) the minimum number of characters to accept two typos (default = 7).\n * - hitsPerPage: (integer) the number of hits per page (default = 10).\n * - attributesToRetrieve: (array of strings) default list of attributes to retrieve in objects.\n * If set to null, all attributes are retrieved.\n * - attributesToHighlight: (array of strings) default list of attributes to highlight.\n * If set to null, all indexed attributes are highlighted.\n * - attributesToSnippet**: (array of strings) default list of attributes to snippet alongside the number\n * of words to return (syntax is attributeName:nbWords).\n * By default no snippet is computed. If set to null, no snippet is computed.\n * - attributesToIndex: (array of strings) the list of fields you want to index.\n * If set to null, all textual and numerical attributes of your objects are indexed,\n * but you should update it to get optimal results.\n * This parameter has two important uses:\n * - Limit the attributes to index: For example if you store a binary image in base64,\n * you want to store it and be able to\n * retrieve it but you don't want to search in the base64 string.\n * - Control part of the ranking*: (see the ranking parameter for full explanation)\n * Matches in attributes at the beginning of\n * the list will be considered more important than matches in attributes further down the list.\n * In one attribute, matching text at the beginning of the attribute will be\n * considered more important than text after, you can disable\n * this behavior if you add your attribute inside `unordered(AttributeName)`,\n * for example attributesToIndex: [\"title\", \"unordered(text)\"].\n * - attributesForFaceting: (array of strings) The list of fields you want to use for faceting.\n * All strings in the attribute selected for faceting are extracted and added as a facet.\n * If set to null, no attribute is used for faceting.\n * - attributeForDistinct: (string) The attribute name used for the Distinct feature.\n * This feature is similar to the SQL \"distinct\" keyword: when enabled\n * in query with the distinct=1 parameter, all hits containing a duplicate\n * value for this attribute are removed from results.\n * For example, if the chosen attribute is show_name and several hits have\n * the same value for show_name, then only the best one is kept and others are removed.\n * - ranking: (array of strings) controls the way results are sorted.\n * We have six available criteria:\n * - typo: sort according to number of typos,\n * - geo: sort according to decreassing distance when performing a geo-location based search,\n * - proximity: sort according to the proximity of query words in hits,\n * - attribute: sort according to the order of attributes defined by attributesToIndex,\n * - exact:\n * - if the user query contains one word: sort objects having an attribute\n * that is exactly the query word before others.\n * For example if you search for the \"V\" TV show, you want to find it\n * with the \"V\" query and avoid to have all popular TV\n * show starting by the v letter before it.\n * - if the user query contains multiple words: sort according to the\n * number of words that matched exactly (and not as a prefix).\n * - custom: sort according to a user defined formula set in **customRanking** attribute.\n * The standard order is [\"typo\", \"geo\", \"proximity\", \"attribute\", \"exact\", \"custom\"]\n * - customRanking: (array of strings) lets you specify part of the ranking.\n * The syntax of this condition is an array of strings containing attributes\n * prefixed by asc (ascending order) or desc (descending order) operator.\n * For example `\"customRanking\" => [\"desc(population)\", \"asc(name)\"]`\n * - queryType: Select how the query words are interpreted, it can be one of the following value:\n * - prefixAll: all query words are interpreted as prefixes,\n * - prefixLast: only the last word is interpreted as a prefix (default behavior),\n * - prefixNone: no query word is interpreted as a prefix. This option is not recommended.\n * - highlightPreTag: (string) Specify the string that is inserted before\n * the highlighted parts in the query result (default to \"\").\n * - highlightPostTag: (string) Specify the string that is inserted after\n * the highlighted parts in the query result (default to \"\").\n * - optionalWords: (array of strings) Specify a list of words that should\n * be considered as optional when found in the query.\n * @param callback (optional) the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer or the error message if a failure occured\n */\n setSettings: function(settings, callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'PUT',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/settings',\n hostType: 'write',\n body: settings,\n callback: callback\n });\n },\n /*\n * List all existing user keys associated to this index\n *\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n listUserKeys: function(callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys',\n hostType: 'read',\n callback: callback\n });\n },\n /*\n * Get ACL of a user key associated to this index\n *\n * @param key\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n getUserKeyACL: function(key, callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key,\n hostType: 'read',\n callback: callback\n });\n },\n /*\n * Delete an existing user key associated to this index\n *\n * @param key\n * @param callback the result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n */\n deleteUserKey: function(key, callback) {\n var indexObj = this;\n return this.as._jsonRequest({\n method: 'DELETE',\n url: '/1/indexes/' + encodeURIComponent(indexObj.indexName) + '/keys/' + key,\n hostType: 'write',\n callback: callback\n });\n },\n /*\n * Add a new API key to this index\n *\n * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that\n * can contains the following values:\n * - search: allow to search (https and http)\n * - addObject: allows to add/update an object in the index (https only)\n * - deleteObject : allows to delete an existing object (https only)\n * - deleteIndex : allows to delete index content (https only)\n * - settings : allows to get index settings (https only)\n * - editSettings : allows to change index settings (https only)\n * @param {Object} [params] - Optionnal parameters to set for the key\n * @param {number} params.validity - Number of seconds after which the key will\n * be automatically removed (0 means no time limit for this key)\n * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour\n * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call\n * @param {string} params.description - A description for your key\n * @param {string[]} params.referers - A list of authorized referers\n * @param {Object} params.queryParameters - Force the key to use specific query parameters\n * @param {Function} callback - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * index.addUserKey(['search'], {\n * validity: 300,\n * maxQueriesPerIPPerHour: 2000,\n * maxHitsPerQuery: 3,\n * description: 'Eat three fruits',\n * referers: ['*.algolia.com'],\n * queryParameters: {\n * tagFilters: ['public'],\n * }\n * })\n * @see {@link https://www.algolia.com/doc/rest_api#AddIndexKey|Algolia REST API Documentation}\n */\n addUserKey: function(acls, params, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: index.addUserKey(arrayOfAcls[, params, callback])';\n\n if (!isArray(acls)) {\n throw new Error(usage);\n }\n\n if (arguments.length === 1 || typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n var postObj = {\n acl: acls\n };\n\n if (params) {\n postObj.validity = params.validity;\n postObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;\n postObj.maxHitsPerQuery = params.maxHitsPerQuery;\n postObj.description = params.description;\n\n if (params.queryParameters) {\n postObj.queryParameters = this.as._getSearchParams(params.queryParameters, '');\n }\n\n postObj.referers = params.referers;\n }\n\n return this.as._jsonRequest({\n method: 'POST',\n url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys',\n body: postObj,\n hostType: 'write',\n callback: callback\n });\n },\n\n /**\n * Add an existing user key associated to this index\n * @deprecated use index.addUserKey()\n */\n addUserKeyWithValidity: deprecate(function deprecatedAddUserKeyWithValidity(acls, params, callback) {\n return this.addUserKey(acls, params, callback);\n }, deprecatedMessage('index.addUserKeyWithValidity()', 'index.addUserKey()')),\n\n /**\n * Update an existing API key of this index\n * @param {string} key - The key to update\n * @param {string[]} acls - The list of ACL for this key. Defined by an array of strings that\n * can contains the following values:\n * - search: allow to search (https and http)\n * - addObject: allows to add/update an object in the index (https only)\n * - deleteObject : allows to delete an existing object (https only)\n * - deleteIndex : allows to delete index content (https only)\n * - settings : allows to get index settings (https only)\n * - editSettings : allows to change index settings (https only)\n * @param {Object} [params] - Optionnal parameters to set for the key\n * @param {number} params.validity - Number of seconds after which the key will\n * be automatically removed (0 means no time limit for this key)\n * @param {number} params.maxQueriesPerIPPerHour - Number of API calls allowed from an IP address per hour\n * @param {number} params.maxHitsPerQuery - Number of hits this API key can retrieve in one call\n * @param {string} params.description - A description for your key\n * @param {string[]} params.referers - A list of authorized referers\n * @param {Object} params.queryParameters - Force the key to use specific query parameters\n * @param {Function} callback - The result callback called with two arguments\n * error: null or Error('message')\n * content: the server answer with user keys list\n * @return {Promise|undefined} Returns a promise if no callback given\n * @example\n * index.updateUserKey('APIKEY', ['search'], {\n * validity: 300,\n * maxQueriesPerIPPerHour: 2000,\n * maxHitsPerQuery: 3,\n * description: 'Eat three fruits',\n * referers: ['*.algolia.com'],\n * queryParameters: {\n * tagFilters: ['public'],\n * }\n * })\n * @see {@link https://www.algolia.com/doc/rest_api#UpdateIndexKey|Algolia REST API Documentation}\n */\n updateUserKey: function(key, acls, params, callback) {\n var isArray = require('lodash/lang/isArray');\n var usage = 'Usage: index.updateUserKey(key, arrayOfAcls[, params, callback])';\n\n if (!isArray(acls)) {\n throw new Error(usage);\n }\n\n if (arguments.length === 2 || typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n var putObj = {\n acl: acls\n };\n\n if (params) {\n putObj.validity = params.validity;\n putObj.maxQueriesPerIPPerHour = params.maxQueriesPerIPPerHour;\n putObj.maxHitsPerQuery = params.maxHitsPerQuery;\n putObj.description = params.description;\n\n if (params.queryParameters) {\n putObj.queryParameters = this.as._getSearchParams(params.queryParameters, '');\n }\n\n putObj.referers = params.referers;\n }\n\n return this.as._jsonRequest({\n method: 'PUT',\n url: '/1/indexes/' + encodeURIComponent(this.indexName) + '/keys/' + key,\n body: putObj,\n hostType: 'write',\n callback: callback\n });\n },\n\n _search: function(params, url, callback) {\n return this.as._jsonRequest({\n cache: this.cache,\n method: 'POST',\n url: url || '/1/indexes/' + encodeURIComponent(this.indexName) + '/query',\n body: {params: params},\n hostType: 'read',\n fallback: {\n method: 'GET',\n url: '/1/indexes/' + encodeURIComponent(this.indexName),\n body: {params: params}\n },\n callback: callback\n });\n },\n\n as: null,\n indexName: null,\n typeAheadArgs: null,\n typeAheadValueOption: null\n};\n\nfunction prepareHost(protocol) {\n return function prepare(host) {\n return protocol + '//' + host.toLowerCase();\n };\n}\n\nfunction notImplemented() {\n var message = 'Not implemented in this environment.\\n' +\n 'If you feel this is a mistake, write to support@algolia.com';\n\n throw new errors.AlgoliaSearchError(message);\n}\n\nfunction deprecatedMessage(previousUsage, newUsage) {\n var githubAnchorLink = previousUsage.toLowerCase()\n .replace('.', '')\n .replace('()', '');\n\n return 'algoliasearch: `' + previousUsage + '` was replaced by `' + newUsage +\n '`. Please see https://github.com/algolia/algoliasearch-client-js/wiki/Deprecated#' + githubAnchorLink;\n}\n\n// Parse cloud does not supports setTimeout\n// We do not store a setTimeout reference in the client everytime\n// We only fallback to a fake setTimeout when not available\n// setTimeout cannot be override globally sadly\nfunction exitPromise(fn, _setTimeout) {\n _setTimeout(fn, 0);\n}\n\nfunction deprecate(fn, message) {\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n /* eslint no-console:0 */\n console.log(message);\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n// Prototype.js < 1.7, a widely used library, defines a weird\n// Array.prototype.toJSON function that will fail to stringify our content\n// appropriately\n// refs:\n// - https://groups.google.com/forum/#!topic/prototype-core/E-SAVvV_V9Q\n// - https://github.com/sstephenson/prototype/commit/038a2985a70593c1a86c230fadbdfe2e4898a48c\n// - http://stackoverflow.com/a/3148441/147079\nfunction safeJSONStringify(obj) {\n /* eslint no-extend-native:0 */\n\n if (Array.prototype.toJSON === undefined) {\n return JSON.stringify(obj);\n }\n\n var toJSON = Array.prototype.toJSON;\n delete Array.prototype.toJSON;\n var out = JSON.stringify(obj);\n Array.prototype.toJSON = toJSON;\n\n return out;\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/algoliasearch/src/AlgoliaSearch.js\n ** module id = 10\n ** module chunks = 0\n **/","'use strict';\n\n// This file hosts our error definitions\n// We use custom error \"types\" so that we can act on them when we need it\n// e.g.: if error instanceof errors.UnparsableJSON then..\n\nvar inherits = require('inherits');\n\nfunction AlgoliaSearchError(message, extraProperties) {\n var forEach = require('lodash/collection/forEach');\n\n var error = this;\n\n // try to get a stacktrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';\n }\n\n this.name = this.constructor.name;\n this.message = message || 'Unknown error';\n\n if (extraProperties) {\n forEach(extraProperties, function addToErrorObject(value, key) {\n error[key] = value;\n });\n }\n}\n\ninherits(AlgoliaSearchError, Error);\n\nfunction createCustomError(name, message) {\n function AlgoliaSearchCustomError() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n // custom message not set, use default\n if (typeof args[0] !== 'string') {\n args.unshift(message);\n }\n\n AlgoliaSearchError.apply(this, args);\n this.name = 'AlgoliaSearch' + name + 'Error';\n }\n\n inherits(AlgoliaSearchCustomError, AlgoliaSearchError);\n\n return AlgoliaSearchCustomError;\n}\n\n// late exports to let various fn defs and inherits take place\nmodule.exports = {\n AlgoliaSearchError: AlgoliaSearchError,\n UnparsableJSON: createCustomError(\n 'UnparsableJSON',\n 'Could not parse the incoming response as JSON, see err.more for details'\n ),\n RequestTimeout: createCustomError(\n 'RequestTimeout',\n 'Request timedout before getting a response'\n ),\n Network: createCustomError(\n 'Network',\n 'Network issue, see err.more for details'\n ),\n JSONPScriptFail: createCustomError(\n 'JSONPScriptFail',\n '