{"version":3,"sources":["webpack://carto/webpack/universalModuleDefinition","webpack://carto/webpack/bootstrap","webpack://carto/./node_modules/underscore/underscore.js","webpack://carto/./node_modules/backbone/backbone.js","webpack://carto/./src/core/model.js","webpack://carto/./src/api/v4/error-handling/carto-error.js","webpack://carto/./src/api/v4/constants.js","webpack://carto/./src/api/v4/error-handling/carto-validation-error.js","webpack://carto/./src/core/util.js","webpack://carto/./src/api/v4/filter/base.js","webpack://carto/./src/analysis/analysis-model.js","webpack://carto/./src/api/v4/dataview/base.js","webpack://carto/./src/api/v4/filter/base-sql.js","webpack://carto/./src/api/v4/source/base.js","webpack://carto/./src/geo/map/legends/legend-model-base.js","webpack://carto/./src/api/v4/events.js","webpack://carto/./src/windshaft-integration/legends/rule.js","webpack://carto/./src/geo/map/layer-types.js","webpack://carto/./node_modules/jquery/dist/jquery.js","webpack://carto/./src/windshaft/filters/bounding-box.js","webpack://carto/./src/util/backbone-abort-sync.js","webpack://carto/./src/dataviews/dataview-model-base.js","webpack://carto/./src/api/v4/filter/filters-collection.js","webpack://carto/./src/geo/map/legends/static-legend-model-base.js","webpack://carto/./src/api/v4/layer/index.js","webpack://carto/./src/constants.js","webpack://carto/./src/windshaft/error-parser.js","webpack://carto/./src/cdb.log.js","webpack://carto/./src/analysis/camshaft-reference.js","webpack://carto/./src/analysis/analysis-service.js","webpack://carto/(webpack)/buildin/global.js","webpack://carto/./src/dataviews/helpers/histogram-helper.js","webpack://carto/./src/dataviews/histogram-dataview-model.js","webpack://carto/./src/dataviews/category-dataview/categories-collection.js","webpack://carto/./node_modules/@carto/zera/dist/zera.js","webpack://carto/./src/geo/cartodb-layer-group-view-base.js","webpack://carto/./src/api/v4/native/trigger-layer-feature-event.js","webpack://carto/./src/api/v4/layer/metadata/base.js","webpack://carto/./src/api/v4/style/base.js","webpack://carto/./src/geo/map/popup-fields.js","webpack://carto/./src/api/v4/layer/base.js","webpack://carto/./src/windshaft/error.js","webpack://carto/./src/windshaft/config.js","webpack://carto/./node_modules/camshaft-reference/version.js","webpack://carto/./src/engine.js","webpack://carto/./node_modules/d3-array/src/ascending.js","webpack://carto/./node_modules/d3-array/src/bisector.js","webpack://carto/./node_modules/d3-array/src/bisect.js","webpack://carto/./node_modules/d3-array/src/pairs.js","webpack://carto/./node_modules/d3-array/src/cross.js","webpack://carto/./node_modules/d3-array/src/descending.js","webpack://carto/./node_modules/d3-array/src/number.js","webpack://carto/./node_modules/d3-array/src/variance.js","webpack://carto/./node_modules/d3-array/src/deviation.js","webpack://carto/./node_modules/d3-array/src/extent.js","webpack://carto/./node_modules/d3-array/src/array.js","webpack://carto/./node_modules/d3-array/src/constant.js","webpack://carto/./node_modules/d3-array/src/identity.js","webpack://carto/./node_modules/d3-array/src/range.js","webpack://carto/./node_modules/d3-array/src/ticks.js","webpack://carto/./node_modules/d3-array/src/threshold/sturges.js","webpack://carto/./node_modules/d3-array/src/histogram.js","webpack://carto/./node_modules/d3-array/src/quantile.js","webpack://carto/./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack://carto/./node_modules/d3-array/src/threshold/scott.js","webpack://carto/./node_modules/d3-array/src/max.js","webpack://carto/./node_modules/d3-array/src/mean.js","webpack://carto/./node_modules/d3-array/src/median.js","webpack://carto/./node_modules/d3-array/src/merge.js","webpack://carto/./node_modules/d3-array/src/min.js","webpack://carto/./node_modules/d3-array/src/permute.js","webpack://carto/./node_modules/d3-array/src/scan.js","webpack://carto/./node_modules/d3-array/src/shuffle.js","webpack://carto/./node_modules/d3-array/src/sum.js","webpack://carto/./node_modules/d3-array/src/transpose.js","webpack://carto/./node_modules/d3-array/src/zip.js","webpack://carto/./node_modules/d3-array/index.js","webpack://carto/./src/api/v4/filter/or.js","webpack://carto/./src/api/v4/filter/and.js","webpack://carto/./src/api/v4/filter/range.js","webpack://carto/./src/api/v4/filter/category.js","webpack://carto/./src/geo/adapters/gmaps-bounding-box-adapter.js","webpack://carto/./src/api/v4/filter/bounding-box-gmaps.js","webpack://carto/./src/geo/adapters/leaflet-bounding-box-adapter.js","webpack://carto/./src/api/v4/filter/bounding-box-leaflet.js","webpack://carto/./src/api/v4/filter/bounding-box.js","webpack://carto/./src/api/v4/filter/index.js","webpack://carto/./src/api/v4/dataview/time-series/parse-data.js","webpack://carto/./src/api/v4/dataview/time-series/index.js","webpack://carto/./src/api/v4/dataview/histogram/parse-data.js","webpack://carto/./src/util/date-utils.js","webpack://carto/./src/dataviews/histogram-dataview/histogram-data-model.js","webpack://carto/./src/api/v4/dataview/histogram/index.js","webpack://carto/./src/api/v4/dataview/formula/parse-data.js","webpack://carto/./src/dataviews/formula-dataview-model.js","webpack://carto/./src/api/v4/dataview/formula/index.js","webpack://carto/./src/api/v4/dataview/category/parse-data.js","webpack://carto/./src/windshaft/filters/base.js","webpack://carto/./src/windshaft/filters/category.js","webpack://carto/./src/dataviews/category-dataview/category-model-range.js","webpack://carto/./src/dataviews/category-dataview/category-item-model.js","webpack://carto/./src/dataviews/category-dataview/search-model.js","webpack://carto/./src/dataviews/category-dataview-model.js","webpack://carto/./src/api/v4/dataview/category/index.js","webpack://carto/./src/api/v4/dataview/index.js","webpack://carto/./src/api/v4/style/cartocss.js","webpack://carto/./src/api/v4/style/index.js","webpack://carto/./src/api/v4/source/sql.js","webpack://carto/./src/api/v4/source/dataset.js","webpack://carto/./src/api/v4/source/index.js","webpack://carto/./src/core/profiler.js","webpack://carto/./src/geo/gmaps/projector.js","webpack://carto/./src/geo/gmaps/gmaps-layer-view.js","webpack://carto/./src/geo/gmaps/gmaps-cartodb-layer-group-view.js","webpack://carto/./src/api/v4/native/google-maps-map-type.js","webpack://carto/./src/geo/leaflet/leaflet-layer-view.js","webpack://carto/./src/geo/leaflet/leaflet-cartodb-layer-group-view.js","webpack://carto/./src/api/v4/layer/aggregation.js","webpack://carto/./src/api/v4/layer/event-types.js","webpack://carto/./src/api/v4/layer/metadata/categories.js","webpack://carto/./src/api/v4/layer/metadata/buckets.js","webpack://carto/./src/api/v4/layer/metadata/parser.js","webpack://carto/./src/util/get-object-value.js","webpack://carto/./src/geo/map/legends/torque-legend-model.js","webpack://carto/./src/geo/map/legends/custom-choropleth-legend-model.js","webpack://carto/./src/geo/map/legends/custom-legend-model.js","webpack://carto/./src/geo/map/legends/choropleth-legend-model.js","webpack://carto/./src/geo/map/legends/bubble-legend-model.js","webpack://carto/./src/geo/map/legends/category-legend-model.js","webpack://carto/./src/geo/map/legends/legends.js","webpack://carto/./src/geo/map/tooltip-template.js","webpack://carto/./src/geo/map/infowindow-template.js","webpack://carto/./src/geo/map/layer-model-base.js","webpack://carto/./src/core/config.js","webpack://carto/./src/cdb.config.js","webpack://carto/./src/geo/map/cartodb-layer.js","webpack://carto/./src/api/v4/layer/layer.js","webpack://carto/./src/api/v4/native/leaflet-layer.js","webpack://carto/./src/api/v4/layers.js","webpack://carto/./src/windshaft/request-tracker.js","webpack://carto/./vendor/lzma.js","webpack://carto/./src/windshaft/client.js","webpack://carto/./src/windshaft/response.js","webpack://carto/./src/windshaft/request.js","webpack://carto/./src/windshaft/map-serializer/named-map-serializer/named-map-serializer.js","webpack://carto/./src/windshaft-integration/legends/rule-to-category-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-choropleth-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-bubble-legend-adapter.js","webpack://carto/./src/windshaft-integration/legends/rule-to-legend-model-adapters.js","webpack://carto/./src/cdb.js","webpack://carto/./src/windshaft-integration/model-updater.js","webpack://carto/./src/geo/map/layers.js","webpack://carto/./src/dataviews/dataviews-collection.js","webpack://carto/./src/geo/cartodb-layer-group.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/layers-serializer.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/dataviews-serializer.js","webpack://carto/./node_modules/camshaft-reference/analysis-graph.js","webpack://carto/./node_modules/camshaft-reference/versions sync ^\\.\\/.*\\/reference\\.json$","webpack://carto/./node_modules/camshaft-reference/versions/index.js","webpack://carto/./node_modules/camshaft-reference/index.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/analysis-serializer.js","webpack://carto/./src/windshaft/map-serializer/anonymous-map-serializer/anonymous-map-serializer.js","webpack://carto/./node_modules/backbone-poller/backbone.poller.js","webpack://carto/./src/analysis/analysis-poller.js","webpack://carto/./src/api/v4/error-handling/error-tracker.js","webpack://carto/./src/api/v4/error-handling/error-list/validation-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/ajax-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/windshaft-errors.js","webpack://carto/./src/api/v4/error-handling/error-list/index.js","webpack://carto/./src/api/v4/error-handling/carto-error-extender.js","webpack://carto/./src/api/v4/client.js","webpack://carto/./node_modules/process/browser.js","webpack://carto/./node_modules/setimmediate/setImmediate.js","webpack://carto/./node_modules/node-libs-browser/node_modules/timers-browserify/main.js","webpack://carto/./node_modules/promise-polyfill/promise.js","webpack://carto/./node_modules/whatwg-fetch/fetch.js","webpack://carto/./src/api/v4/index.js"],"names":["$","require","_","Backbone","Model","extend","initialize","options","bindAll","prototype","call","fetch","args","self","trigger","when","done","ev","fail","setIdAttribute","attr","idAttribute","retrigger","obj","retrigEvent","bind","save","opt1","opt2","silent","promise","apply","arguments","module","exports","errorExtender","errorTracker","UNEXPECTED_ERROR","GENERIC_ORIGIN","CartoError","error","opts","cartoError","Object","create","Error","message","origin","type","_isWindshaftError","_transformWindshaftError","layers","analysis","_isAjaxError","_transformAjaxError","extraFields","getExtraFields","friendlyMessage","errorCode","name","stack","originalError","track","responseText","layer","findById","layerId","source","sourceId","getId","analysisId","_handleAjaxResponse","statusText","errorMessage","parsedError","JSON","parse","errors","exc","operation","COUNT","SUM","AVG","MAX","MIN","isValidOperation","op","contains","status","NOT_LOADED","LOADING","LOADED","ERROR","timeAggregation","AUTO","MILLENNIUM","CENTURY","DECADE","YEAR","QUARTER","MONTH","WEEK","DAY","HOUR","MINUTE","isValidTimeAggregation","agg","ATTRIBUTION","CartoValidationError","util","isCORSSupported","XMLHttpRequest","array2hex","byteArr","encoded","i","length","push","String","fromCharCode","btoa","join","data","window","encodeBase64Native","encodeBase64","input","b64","o1","o2","o3","h1","h2","h3","h4","bits","ac","enc","tmpArr","charCodeAt","charAt","r","slice","uniqueCallbackName","str","_callback_c","crc32","crcTable","_crcTable","_makeCRCTable","crc","l","c","n","k","_inferBrowser","ua","browser","navigator","userAgent","detectIE","msie","indexOf","trident","getIEVersion","document","compatMode","querySelector","addEventListener","atob","all","ie","version","edge","chrome","firefox","opera","safari","isMobileDevice","test","supportsTouch","msMaxTouchPoints","webGLSupportedAndEnabled","isWebGLSupported","canvas","createElement","WebGLRenderingContext","getContext","endsWith","suffix","checkRequiredOpts","actualOpts","requiredOpts","from","each","item","isUndefined","isLeafletLoaded","L","isGoogleMapsLoaded","google","maps","Base","Events","_getValidationError","code","REQUIRED_OPTS","STATUS","PENDING","WAITING","RUNNING","FAILED","READY","AnalysisModel","attrs","_camshaftReference","camshaftReference","_engine","engine","_initBinds","_referencedBy","url","get","authToken","Array","tokens","map","token","setOk","unset","setError","set","unbind","_reload","getParamNames","paramName","_hadStatus","isReady","isSourceOfAnyModel","previous","reload","_onMapReloadError","remove","stopListening","findAnalysisById","sources","chain","_getSourceNames","sourceName","compact","value","getSourceNamesForAnalysisType","isDone","_hasStatus","isLoading","isFailed","statuses","isArray","_getStatus","toJSON","json","pick","attributes","params","sourceNames","sourceInfo","getParamNamesForAnalysisType","getNodes","nodes","forEach","concat","getNodesCollection","Collection","equals","analysisModel","markAsSourceOf","model","cid","keys","isSourceOf","unmarkAsSourceOf","SourceBase","FilterBase","SQLFilterBase","getStatus","_status","isLoaded","hasError","enable","_setEnabled","disable","isEnabled","_enabled","getSource","_source","setColumn","column","_checkColumn","_column","_internalModel","getColumn","addFilter","filter","_checkFilter","_boundingBoxFilter","_addBoundingBoxFilter","removeFilter","_removeBoundingBoxFilter","hasFilter","getData","DEFAULTS","_initialize","defaults","_checkSource","_checkOptions","_options","isString","isEmpty","_createInternalModel","enabled","_listenToInternalModelSharedEvents","listenTo","_onDataChanged","_onColumnChanged","_onStatusLoading","_onStatusLoaded","_onStatusError","_triggerError","_changeProperty","key","internalKey","prevValue","_triggerChange","_changeProperties","properties","internalDataviewError","addBBoxFilter","$getInternalModel","$setEngine","getObjectValue","ALLOWED_OPTIONS","DEFAULT_JOIN_OPERATOR","SQLBase","_filters","filterType","filterValue","newFilter","_checkFilters","filters","isObject","setFilters","sql","_interpolateFilter","Boolean","includeNull","_includeNullInQuery","isFilterValid","ALLOWED_FILTERS","parameters","PARAMETER_SPECIFICATION","haveCorrectType","every","parameterValue","parameter","allowedTypes","some","parameterIsOfType","isOptionValid","option","isDate","toISOString","_convertValueToSQLString","isNumber","normalizeString","toString","filterValues","sqlString","template","SQL_TEMPLATES","parameterType","replace","FiltersCollection","EVENTS","_id","$generateId","_hasFiltersApplied","_appliedFilters","$nextId","internalError","on","$getEngine","getFilters","addFilters","count","removeFilters","Engine","NON_RESETEABLE_DEFAULT_ATTRS","LegendModelBase","visible","title","preHTMLSnippet","postHTMLSnippet","state","constructor","STATE_LOADING","deps","RELOAD_STARTED","_onEngineReloadStarted","isError","STATE_ERROR","isSuccess","STATE_SUCCESS","show","hide","isVisible","update","getNonResettableAttrs","reset","omit","isAvailable","SUCCESS","PROPERTY_KEY","MAPPING_KEY","RANGE_FILTER_TYPE","CATEGORY_FILTER_TYPE","DEFAULT_FILTER_TYPE","Rule","rule","_rule","matchesAnyProperty","props","_matches","matchesAnyMapping","mappings","acceptedValues","getBucketsWithRangeFilter","_getBucketsByFilterType","getBucketsWithCategoryFilter","getBucketsWithDefaultFilter","select","buckets","bucket","getMapping","mapping","getProperty","prop","getFilterAvg","stats","filter_avg","TILED_LAYER_TYPE","PLAIN_LAYER_TYPE","WMS_LAYER_TYPE","GMAPS_BASE_LAYER_TYPE","CARTODB_LAYER_TYPE","TORQUE_LAYER_TYPE","isLayerOfType","layerModel","layerType","toLowerCase","isTiledLayer","isPlainLayer","isWMSLayer","isGoogleMapsBaseLayer","isCartoDBLayer","isTorqueLayer","BOUNDING_BOX_FILTER_WAIT","mapAdapter","_bounds","_mapAdapter","setBounds","getBounds","debounce","_boundsChanged","_stopBinds","bounds","areBoundsAvailable","isFinite","west","serialize","south","east","north","clean","method","_xhr","abort","sync","always","BackboneAbortSync","parseWindshaftErrors","UNFETCHED_STATUS","FETCHING_STATUS","FETCHED_STATUS","FETCH_ERROR_STATUS","sync_on_bbox_change","union","_getBoundingBoxFilterParam","_getDataviewSpecificURLParams","getApiKey","getAuthToken","result","_checkBBoxFilter","syncsOnBoundingBoxChanges","_bboxFilter","_hasBinds","_checkSourceAttribute","id","bboxFilter","listenToOnce","_fetch","_onFilterChanged","_onAnalysisStatusChange","_onChangeBinds","refresh","_newDataAvailable","_shouldFetchOnURLChange","mdl","_onMapBoundsChanged","_shouldFetchOnBoundingBoxChange","success","_triggerLoading","_triggerStatusError","getSourceId","_reloadAndForceFetch","forceFetch","_sourceAffectsMyOwnSource","sourceAnalysis","_stopListeningBBoxChanges","_listenToBBoxChanges","has","ATTRS_NAMES","getPreviousData","successCallback","_model","response","_parseError","getSourceType","isSourceType","isFiltered","_removeExistingAnalysisBindings","off","isFetched","isUnavailable","setUnavailable","_triggerFilterChange","filterIndex","removedElement","splice","sqlFilters","$getSQL","joinedFilters","JOIN_OPERATOR","StaticLegendModelBase","Layer","EventTypes","Aggregation","events","OVERLAY_TYPES","HEADER","LIMITS","TILES","LOADER","LOGO","SEARCH","ZOOM","MAP_PROVIDER_TYPES","GMAPS","LEAFLET","GMAPS_BASE_LAYER_TYPES","WINDSHAFT_ERRORS","ANALYSIS","LAYER","LIMIT","TILE","GENERIC","UNKNOWN","WindshaftError","responseJSON","errors_with_context","content","cdb","console","log","info","debug","DEBUG","getVersion","PARAM_TYPES","NODE","NUMBER","STRING","ENUM","SOURCE_ANALYSIS_TYPE","ANALYSIS_TYPE_TO_SOURCE_PARAM_NAMES_MAP","ANALYSIS_TYPE_TO_PARAM_NAMES_MAP","analysesReference","analyses","analysisType","analysisParams","paramType","paramNames","Analysis","LayerTypes","AnalysisService","_apiKey","apiKey","_authToken","_analysisNodes","analyse","analysisDefinition","clone","findNodeById","analysisAttrs","_getAnalysisAttributesFromAnalysisDefinition","add","_onAnalysisRemoved","analysisNodes","sourceNamesForAnalysisType","sourceParams","createAnalysisForLayer","layerQuery","query","getUniqueAnalysisNodes","layersCollection","dataviewsCollection","uniqueAnalysisNodes","analysisList","getAnalysisList","analysisNode","analisis","layerAnalyses","_getAnalysesFromLayers","dataviewsAnalyses","_getAnalysesFromDataviews","_getCartoDBAndTorqueLayers","dataview","AGGREGATION_DATA","second","unit","factor","minute","hour","day","week","month","quarter","year","decade","century","millennium","helper","trimBuckets","filledBuckets","totalBuckets","index","keepGoing","fillTimestampBuckets","start","aggregation","numberOfBins","definedBucket","undefined","bucketStart","nextBucketStart","bin","end","next","freq","timestamp","fillNumericBuckets","width","commonBucketEnd","isLastBucket","bucketEnd","max","filledBucket","hasChangedSomeOf","list","changed","number","hasOwnProperty","date","Date","setUTCSeconds","getUTCSeconds","setUTCMinutes","getUTCMinutes","setUTCHours","getUTCHours","setUTCDate","getUTCDate","setUTCMonth","getUTCMonth","Math","min","_getDaysInMonth","getUTCFullYear","getTime","_isLeapYear","d3","DataviewModelBase","HistogramDataModel","dateUtils","totalAmount","filteredAmount","hasNulls","localTimezone","offset","getCurrentOffset","_localOffset","getLocalOffset","_totals","bins","column_type","localOffset","_data","setRange","_updateURLBinding","_onTotalsDataFetched","once","_updateBindings","_onTotalsError","_onLocalTimezoneChanged","_onFieldsChanged","_onColumnTypeChanged","_onUrlChanged","enableFilter","disableFilter","getUnfilteredData","getUnfilteredDataModel","getSize","size","getColumnType","bins_count","bin_width","timestamp_start","bins_start","parsedData","nulls","_calculateTotalAmount","_calculateFilteredAmount","reduce","memo","indexes","_findBinsIndexes","_sumBinsFreq","startBin","findWhere","endBin","acum","d","getDistributionType","histogram","freqAccessor","a","osc","mean","sumFreqs","sum","freqs","ajus","abs","pop","maxAjus","minAjus","uniques","uniq","A_TYPES","U_TYPES","e","isEqual","columnType","setUrl","resetFilter","_resetFilterAndFetch","_setTotalsStartEnd","aggregationChangedToUndefined","hasChanged","_resetFilter","startEndChanged","startEndValid","hasDifferentValues","unsetRange","CategoryItemModel","COUNT_AGGREGATION_TYPE","models","aggregationModel","category","isModel","comparator","b","isOtherAvailable","where","CartoDBLayerGroupViewBase","layerGroupModel","interaction","nativeMap","_mapModel","mapModel","onLayerVisibilityChanged","_reloadInteraction","_clearInteraction","forEachGroupedLayer","layerIndex","isInteractive","isFeatureInteractivityEnabled","_enableInteraction","layerIndexInLayerGroup","tilejson","_generateTileJSON","previousLayerInteraction","interactionClass","zeraEvent","_interactionDisabled","_manageOnEvents","_manageInteractivityErrors","_manageOffEvents","payload","hasURLs","scheme","grids","getGridURLTemplatesWithSubdomains","tiles","getTileURLTemplatesWithSubdomains","formatter","tilesOk","eventName","internalEvent","event","latLng","feature","latlng","lat","lng","position","x","y","_type","_mapping","_property","getType","$setError","_error","newEngine","getFieldNames","fields","field","o","PopupFields","otherFields","myFields","subtype","truncateMessage","context","isLayerError","isAnalysisError","node_id","isGlobalError","errorType","MAX_SIZE","substring","originalType","forcedType","genericType","MAPS_API_BASE_URL","AnalysisPoller","AnonymousMapSerializer","CartoDBLayerGroup","DataviewsCollection","LayersCollection","ModelUpdater","NamedMapSerializer","Request","Response","WindshaftClient","RELOAD_DEBOUNCE_TIME_IN_MILIS","_isNamedMap","templateName","_timeout","_stackCalls","_batchOptions","_windshaftSettings","urlTemplate","serverUrl","userName","username","client","_windshaftClient","_eventEmmitter","_analysisPoller","_layersCollection","_dataviewsCollection","_cartoLayerGroup","_bindCartoLayerGroupError","_modelUpdater","getLayerGroup","callback","Promise","resolve","reject","includeFilters","negate","later","_performReload","then","catch","windshaftError","clearTimeout","setTimeout","windshaftOptions","_buildWindshaftOptions","serverResponse","_onReloadSuccess","_onReloadError","_buildParams","_getSerializer","request","instantiateMap","_manageClientError","addLayer","removeLayer","moveLayer","toIndex","fromIndex","addDataview","removeDataview","responseWrapper","updateModels","_restartAnalysisPolling","RELOAD_SUCCESS","_getSimpleWindshaftError","setErrors","RELOAD_ERROR","errorCallback","__ENV__","api_key","auth_token","warn","resetAnalysisNodes","change","lastIndexOf","LAYER_ERROR","find","OR","AND","RANGE_COMPARISON_OPERATORS","lt","lte","gt","gte","between","notBetween","betweenSymmetric","notBetweenSymmetric","freeze","Range","_getSQLTemplates","CATEGORY_COMPARISON_OPERATORS","in","notIn","eq","notEq","like","similarTo","Category","_isReady","_map","_debouncedTriggerBoundsChanged","_triggerBoundsChanged","addListener","mapBounds","sw","getSouthWest","ne","getNorthEast","clearListeners","GoogleMapsBoundingBoxAdapter","BoundingBoxFilterModel","utils","BoundingBoxGoogleMaps","_isGoogleMap","_onBoundsChanged","element","Map","LeafletBoundingBoxAdapter","BoundingBoxLeaflet","_isLeafletMap","BoundingBox","_checkBounds","resetBounds","secondsToHours","seconds","parseTimeSeriesData","compactData","maxBin","maxFreq","_createBins","normalized","HistogramDataviewModel","TimeSeries","_aggregation","_offset","_hoursToSeconds","_localTimezone","useLocalTimezone","setAggregation","_validateAggregation","getAggregation","setOffset","_validateOffset","getOffset","_secondsToHours","_validateLocalTimezone","isUsingLocalTimezone","floor","isBoolean","hours","parseHistogramData","getTimezoneOffset","hasBeenFetched","_getCurrentOffset","setBins","Histogram","_bins","_start","_end","_validateBins","getBins","setStartEnd","_validateStartEnd","getStart","getEnd","values","bothAreNumbers","isNaN","bothAreNull","isNull","parseFormulaData","constants","FormulaDataviewModel","Formula","_operation","setOperation","_checkOperation","getOperation","parseCategoryData","categories","_createCategories","group","WindshaftFilterBase","rejectAll","rejectedCategories","acceptedCategories","accept","applyFilter","rejectedMdls","acceptedMdls","acceptAll","cleanFilter","isAccepted","isRejected","acceptCount","triggerChange","areAllRejected","rejectCount","acceptedCats","pluck","rejectedCats","getAcceptedCategoryNames","getRejectedCategoryNames","totalCount","categoriesCount","queryOptions","CategoriesCollection","q","encodeURIComponent","fetchIfSearchIsApplied","isSearchApplied","setData","_parseData","getCount","isValid","resetData","getSearchQuery","newData","selected","err","SearchModel","CategoryModelRange","filterEnabled","allCategoryNames","_rangeModel","_searchModel","_bindSearchModelEvents","_onSearchDataChange","getSearchResult","m","setSearchQuery","isSearchValid","getSearchCount","applySearch","cleanSearch","setupSearch","numberOfAcceptedCategories","numberOfRejectedCategories","totalCategories","cat","isCategoryInData","_tmpArray","allNewCategories","allNewCategoryNames","acceptedCategoryNames","datum","unique","aggregationColumn","CategoryDataviewModel","CategoryFilter","operationColumn","_limit","limit","_operationColumn","setLimit","_checkLimit","getLimit","setOperationColumn","_checkOperationColumn","getOperationColumn","aggregation_column","CONTENT_CHANGED","CartoCSS","_checkContent","_content","getContent","setContent","newContent","_onContentChanged","CamshaftReference","SQL","_checkQuery","_query","_updateInternalModelQuery","_getQueryToApply","setQuery","_triggerQueryChanged","getQuery","internalModel","whereClause","Dataset","tableName","_checkTableName","_tableName","setTableName","_triggerTableNameChanged","getTableName","datasetQuery","MAX_HISTORY","Profiler","metrics","_backend","Number","MAX_VALUE","avg","total","last","history","Float32Array","backend","new_value","defer","t","performance","now","print_stats","Metric","t0","_elapsed","inc","qty","dec","mark","elapsed","metric","Projector","setMap","OverlayView","draw","latLngToPixel","projection","getProjection","fromLatLngToContainerPixel","Point","pixelToLatLng","point","fromContainerPixelToLatLng","LatLng","GMapsLayerView","_onModelUpdated","gmapsMap","showLimitErrors","addToMap","zera","C","OPACITY_FILTER","EMPTY_GIF","setImageOpacityIE8","img","opacity","v","round","style","generateId","random","GMapsCartoDBLayerGroupView","hovers","_featureOver","featureOver","_featureOut","featureOut","_featureClick","featureClick","previousEvent","eventTimeout","latlon","pxPos","timeStamp","any","blankImage","interactive","tileSize","Size","cache","projector","Interactive","overlayMapTypes","setAt","overlayIndex","_getOverlayIndex","removeAt","finishLoading","invalidate","pixelPos","getLayerInLayerGroupAt","ok","loading","setOpacity","getTile","coord","zoom","ownerDocument","ielt9","added","hasTileURLTemplates","image","Image","src","setAttribute","tile","_getTile","loadTime","finished","onload","onerror","addError","_getTileUrl","display","z","mod","pow","parseInt","tileURLTemplates","_refreshView","overlays","getAt","_checkLayer","getArray","findIndex","overlay","_newPoint","pixel","eventType","triggerLayerFeatureEvent","GoogleMapsMapType","_layers","_hoveredLayers","_internalView","_onFeatureClick","_onFeatureOver","_onFeatureOut","_onFeatureError","FEATURE_CLICKED","setOptions","draggableCursor","FEATURE_OVER","FEATURE_OUT","toArray","TILE_ERROR","LeafletLayerView","leafletMap","leafletLayer","nativeLayer","_createLeafletLayer","setModel","setZIndex","_modelUpdated","notifyRemove","redraw","LeafletCartoDBLayerGroupView","tileLayer","TileLayer","maxZoom","_setUrl","noDraw","tileURLTemplate","getTileURLTemplate","subdomains","getSubdomains","Util","containerPoint","layerPointToContainerPoint","layerPoint","containerPointToLatLng","_onFeatureClicked","OPERATIONS","MODE","PLACEMENTS","SAMPLE","GRID","CENTROID","VALID_RESOLUTIONS","threshold","resolution","_checkValidPlacement","placement","columns","_checkAndTransformColumns","identity","_checkColumns","aggregatedColumn","aggregateFunction","returnValue","_columnToSnakeCase","aggregate_function","aggregated_column","Categories","categoryBuckets","defaultBuckets","_categories","_defaultValue","getCategories","getDefaultValue","Buckets","rangeBuckets","_buckets","_avg","_min","_max","getBuckets","getAverage","getMin","getMax","BucketsMetadata","CategoriesMetadata","getMetadataFromRules","rulesData","metadata","ruleData","_isBucketsMetadata","_isCategoriesMetadata","object","path","defaultValue","split","TorqueLegendModel","items","html","CustomChoroplethLegendModel","prefix","leftLabel","rightLabel","colors","CustomLegendModel","ChoroplethLegendModel","BubbleLegendModel","fillColor","CategoryLegendModel","LEGENDS_METADATA","bubble","modelClass","definitionAttrs","dynamic","choropleth","custom","custom_choropleth","torque","SHARED_ATTRS","Legends","legendsData","_legendsData","legendMetadata","legendType","_createLegendModel","_findDataForLegend","ModelClass","definition","modelAttrs","attrNameInData","attrNameForModel","legendModel","hasAnyLegend","legendTypes","legend","TooltipTemplate","vertical_offset","horizontal_offset","alternative_names","stringify","hasFields","hasTemplate","InfowindowTemplate","maxHeight","template_type","MapLayer","collection","isHidden","toggle","hasSource","Config","VERSION","REPORT_ERROR_URL","ERROR_TRACK_ENABLED","config","cartodb_attributions","cartodb_logo_link","LayerModelBase","ATTRIBUTES_THAT_TRIGGER_VIS_RELOAD","CartoDBLayer","attribution","cartocss","setSource","infowindow","tooltip","legends","_onAttributeChanged","restoreCartoCSS","_hasInfowindowFields","_hasTooltipFields","getInteractiveColumnNames","isInfowindowEnabled","isTooltipEnabled","getName","getEstimatedFeatureCount","meta","estimatedFeatureCount","newSource","table_name","StyleBase","metadataParser","_checkStyle","_client","_style","_visible","_featureClickColumns","featureClickColumns","_featureOverColumns","featureOverColumns","_minzoom","minzoom","_maxzoom","maxzoom","_validateAggregationColumnsAndInteractivity","setStyle","prevStyle","_rejectAndTriggerError","getStyle","prevSource","setFeatureClickColumns","prevColumns","_areColumnsTheSame","_getInteractivityFields","getFeatureClickColumns","setFeatureOverColumns","getFeatureOverColumns","prevStatus","setOrder","bringToBack","bringToFront","rules","cartocss_meta","styleMetadataList","styles","_isStyleError","$setClient","newColumns","oldColumns","difference","aggregationColumns","clickColumns","overColumns","aggColumns","_validateColumnsConcordance","interactivityColumns","interactivity","notInAggregation","clickColumn","LeafletCartoLayerGroupView","LeafletLayer","addTo","removeFrom","getContainer","cursor","Layers","move","RequestTracker","maxNumberOfRequests","_maxNumberOfRequests","lastRequestEquals","lastResponseEquals","maxNumberOfRequestsReached","_lastRequest","_lastResponse","_numberOfRequests","canRequestBePerformed","LZMA","WindshaftConfig","validatePresenceOfOptions","requiredOptions","missingOptions","MAX_URL_LENGTH","COMPRESSION_LEVEL","MAP_INSTANTIATION_LIMIT","settings","endpoints","post","_requestTracker","_performRequest","parsedErrors","xhr","textStatus","ajaxOptions","mapDefinition","encodedURL","_generateEncodedURL","_isURLValid","_get","_generateCompressedURL","compressedURL","_getURL","_post","compress","compressedPayload","lzma","_abortPreviousRequest","_previousRequest","ajax","crossOrigin","dataType","contentType","jsonpCallback","_jsonpCallbackName","queryString","_convertParamsToQueryString","endpoint","oneValue","windshaftSettings","_layerGroupId","layergroupid","_dataviews","dataviews","_analyses","_cdnUrl","cdn_url","getLayerIndexesByType","_getLayers","layerIndexes","getBaseURL","_getHost","getStaticBaseURL","protocol","getProtocol","cdnUrl","cdnHost","templates","_isHttps","isHttps","getSupportedSubdomains","getLayerMetadata","layerMeta","getDataviewMetadata","dataviewId","_getDataviews","layersDataviews","widgets","layerDataviews","getAnalysisNodeMetadata","_getAnalyses","node","toHashCode","buffersize","mvt","_getStylesFromLayers","VALID_PROPS","VALID_MAPPINGS","isEveryBucketValid","generateCategories","bucketsColor","bucketsIcon","bucketColor","bucketIcon","icon","_extractURL","color","pattern","match","canAdapt","adapt","ruleColor","ruleIcon","categoryBucketsColor","categoryBucketsIcon","defaultBucketsColor","defaultBucketsIcon","default","generateColors","labelStart","labelEnd","label","lastBucket","firstBucket","first","calculateValues","sizes","ADAPTERS","getAdapterForLegend","helpers","RuleToLegendModelAdapters","getSubdomain","resource","_layerGroupModel","_updateLayerModels","_updateLayerGroupModel","_updateDataviewModels","_updateAnalysisModels","urls","_generateTileURLTemplate","_calculateGridURLTemplatesForCartoDBLayers","_calculateAttributesBaseURLsForCartoDBLayers","_calculateStaticMapURL","indexOfLayersInWindshaft","urlTemplates","indexesOfMapnikLayers","layerUrlTemplates","gridURLTemplate","_generateGridURLTemplate","subdomain","_generateAttributesBaseURL","baseURL","getCartoDBLayers","localLayerIndex","responseWrapperLayerIndex","_updateLegendModels","indexesOfTorqueLayers","getTorqueLayers","_calculateTileURLTemplatesForTorqueLayers","_generateTorqueTileURLTemplate","remoteLayerIndex","layerMetadata","_getLayerLegends","_updateLegendModel","cartoCSSRules","newLegendAttrs","adapter","rulesForLegend","dataviewModel","dataviewMetadata","_getProtocol","analysisNodesCollection","_getUniqueAnalysisNodesCollection","analysisMetadata","error_message","location","_setError","_setLegendErrors","legendModels","flatten","_assignIndexes","col","at","order","layersByType","lastOrder","sortedTypes","sort","_getLayersByType","getTiledLayers","getLayersWithLegends","moveCartoDBLayer","to","movingLayer","isAnyDataviewFiltered","iteratee","_getGroupedLayers","getIndexOfLayerInLayerGroup","getCartoLayerById","_areAllLayersHidden","_generatePNGTileURLTemplate","_generateMTVTileURLTemplate","mapnikLayersIndexes","_getIndexesOfVisibleMapnikLayers","_appendAuthParamsToURL","_getIndexesOfVisibleLayers","gridURLTemplates","getAttributesBaseURL","getStaticImageURLTemplate","staticImageURLTemplate","_appendParamsToURL","fetchAttributes","featureID","attributeBaseURL","separator","_isLayerGrouped","onLayerAdded","DEFAULT_CARTOCSS_VERSION","HTTP_LAYER_TYPE","MAPNIK_LAYER_TYPE","_calculateLayerJSON","optionsForHTTPLayer","optionsForPlainLayer","optionsForWMSLayer","optionsForMapnikLayer","optionsForTorqueLayer","tms","imageUrl","sharedOptionsForMapnikAndTorqueLayers","cartocss_version","sql_wrap","_generateUniqueAnalysisList","analysisIds","_isAnalysisPartOfOtherAnalyses","otherAnalysisModel","AnalisysSerializer","DataviewSerializer","LayerSerializer","BackbonePoller","_pollers","CONFIG","START_DELAY","MAX_DELAY","Infinity","DELAY_MULTIPLIER","analysisModels","_poll","_canBePolled","poller","_createPoller","_findPoller","pollerOptions","delay","condition","trackJs","messageRegex","generic","auth","windshaft","validation","ERROR_LIST","errorlist","_getErrorList","listedError","_getListedError","errorList","errorListkeys","RegExp","_replaceRegex","_buildErrorCode","replaced","fragments","LayerBase","getValidationError","DEFAULT_SERVER_URL","Client","_checkSettings","_bindEngine","addLayers","_addLayer","removeLayers","layersToRemove","_removeLayer","_moveLayer","getLayers","addDataviews","_addDataview","dataviewIndex","getDataviews","getLeafletLayer","_leafletLayer","getGoogleMapsMapType","_gmapsMapType","_checkDuplicatedLayerId","_checkLayerIndex","_checkApiKey","_checkUsername","_checkServerUrl","urlregex","carto"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;AClFA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,IAA8B;AACpC;AACA;AACA;AACA;AACA,GAAG,MAAM,EAEN;;AAEH;AACA;;AAEA;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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA,KAAK;AACL;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD;AACpD,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,YAAY;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA,qBAAqB,gBAAgB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe;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,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,eAAe;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,qBAAqB;AACrB;;AAEA;AACA;AACA,KAAK;AACL,iBAAiB;;AAEjB;AACA,kDAAkD,EAAE,iBAAiB;;AAErE;AACA,wBAAwB,8BAA8B;AACtD,2BAA2B;;AAE3B;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,iBAAiB;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAqB,EAAE,mCAAE;AAC7B;AACA,KAAK;AAAA,oGAAC;AACN;AACA,CAAC;;;;;;;AC3gDD;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,CAAC,sBAAY,EAAE,uBAAQ,EAAE,OAAS,CAAC,mCAAE;AAChD;AACA;AACA;AACA,KAAK;AAAA,oGAAC;;AAEN;AACA,GAAG,MAAM,aAQN;;AAEH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;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,KAAK;AACL;;AAEA,oEAAoE,MAAM;AAC1E;AACA;AACA;AACA,sDAAsD,4BAA4B;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wCAAwC,mBAAmB,EAAE;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA,KAAK;AACL;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA,KAAK;;AAEL;AACA,4DAA4D;AAC5D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;;AAEA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,kFAAkF;AACvG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,gBAAgB;AACnC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,kBAAkB;AAC5B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA,8BAA8B,YAAY;AAC1C,sCAAsC;AACtC;AACA;;AAEA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,YAAY;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,yEAAyE;AACzE,6EAA6E;AAC7E,iFAAiF;AACjF,6EAA6E;AAC7E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,+CAA+C,YAAY,YAAY;AACvE,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,YAAY,YAAY;AAChE,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0CAA0C,WAAW;AACrD;AACA;AACA;AACA;AACA,OAAO;AACP,mBAAmB;AACnB;;AAEA,0BAA0B,4BAA4B;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,WAAW;AAClD,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,8BAA8B,cAAc,eAAe;AAC3D,KAAK;;AAEL;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,8DAA8D,uBAAuB;AACrF;AACA;;AAEA,GAAG;;AAEH;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,6CAA6C,aAAa;AAC1D;;AAEA;AACA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,eAAe,YAAY;AAC3B,eAAe,iBAAiB;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA,uCAAuC,8BAA8B,EAAE;AACvE,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD,KAAK;;AAEL;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,aAAa;;AAExC;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,gBAAgB;AACvD,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,uCAAuC,MAAM;AAC7C,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,0BAA0B,YAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,SAAS,6BAA6B;AACtC;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC;AACvC;AACA;AACA,KAAK;;AAEL;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,UAAU;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,yCAAyC,cAAc;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,6BAA6B,iCAAiC;AAC9D,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;A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EF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,YAAY;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF,oBAAoB;;AAEpB;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,gCAAgC;AAChC;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,WAAW,YAAY;AACvB;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,SAAS;AAClB;AACA;;AAEA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,YAAY;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,YAAY;AACtB;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA,gBAAgB,IAAI;;AAEpB;AACA;;AAEA;AACA;;AAEA;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,SAAS;;AAET;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA,eAAe;;AAEf,SAAS;;AAET;AACA,QAAQ,iCAAiC;AACzC,QAAQ,oBAAoB;AAC5B,QAAQ,sCAAsC;AAC9C,QAAQ;AACR,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA,gBAAgB,aAAa,EAAE;AAC/B;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO,yEAAyE;AAChF;;AAEA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,iEAAiE,UAAU;AAC3E,sCAAsC,2BAA2B;AACjE;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,UAAU;AACpB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,UAAU,cAAc;AACxB;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,2DAA2D;AAC3D;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,SAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,QAAQ,SAAS;AACjB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD;AACjD,UAAU,wCAAwC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA,SAAS,GAAG;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,OAAO;AACjB;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB,uBAAuB,wBAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA,gDAAgD;AAChD,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;;;;AAIA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;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,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,oCAAoC;AAC9C;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;AACR,OAAO;AACP;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;;AAEJ;;AAEA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,UAAU,YAAY;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,SAAS;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB,aAAa;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;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,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;AAIA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,gBAAgB;AAClB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,WAAW;;AAEX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA,UAAU,KAAK;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU,cAAc;;AAExB;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB,wDAAwD;AAC9E;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA,aAAa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sCAAsC,cAAc;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,qCAAqC;;AAEnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;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,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,OAAO;AAC/C;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,mCAAmC;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;;AAEA,SAAS,2BAA2B;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA,SAAS,0BAA0B;AACnC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA,6BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,WAAW;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;AAIA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC,QAAQ,SAAS,MAAM,aAAa,eAAe;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D,0BAA0B,cAAc,cAAc,OAAO;AAC7D,eAAe,YAAY,UAAU;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,SAAS,QAAQ,QAAQ;AACtD;AACA;AACA;AACA,qCAAqC,4BAA4B;AACjE,6BAA6B,cAAc,SAAS,SAAS;AAC7D;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,+DAA+D;AAC3E;AACA;AACA;AACA,EAAE;;AAEF;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,OAAO;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;;AAEA,UAAU,OAAO;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;;AAEA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kDAAkD;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,2BAA2B;AAC3B,+BAA+B,kBAAkB,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;;AAEA,6CAA6C;AAC7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,QAAQ,iBAAiB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;AACA,iEAAiE;AACjE;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mBAAmB,cAAc;AACjC,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,gBAAgB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,UAAU,kBAAkB;AAC5B,WAAW,kBAAkB;AAC7B,cAAc;AACd,CAAC;AACD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;;AAEA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA;;AAEA,GAAG;AACH;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,UAAU,SAAS;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;AAKD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA,iCAAiC;AACjC;AACA;;AAEA,IAAI;AACJ;;AAEA,IAAI;AACJ;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,CAAC;;;AAGD;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,gDAAgD;AAChD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;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,iBAAiB;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA,IAAI;;AAEJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,OAAO;AACP,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;AACT;;AAEA;;AAEA;AACA;;AAEA;AACA,iBAAiB;AACjB,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,sBAAsB;AACtB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,cAAc,oCAAoC;AAClD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA;AACA,GAAG;;AAEH,EAAE;AACF;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd,MAAM;AACN,MAAM;AACN,GAAG;AACH;AACA,CAAC;;;AAGD;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,kDAAkD;AAClD;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;AAKD;AACA;AACA;AACA,EAAE;AACF;;;;;AAKA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,UAAU,kBAAkB;AAC5B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB,4DAA4D,eAAe;AAC3E;AACA;AACA;;AAEA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA,cAAc,sDAAsD;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;AAGD;AACA,cAAc,mCAAmC;AACjD,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,EAAE;AACF,CAAC;;;AAGD;AACA;AACA;AACA;;AAEA;;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,KAAK,IAA0C;AAC/C,CAAC,iCAAkB,EAAE,mCAAE;AACvB;AACA,EAAE;AAAA,oGAAC;AACH;;;;;AAKA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;AAKA;;AAEA,CAAC;;;;;;;;;;ACz/RD,IAAIpc,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIG,QAAQH,mBAAOA,CAAC,CAAR,CAAZ;AACA,IAAIgd,2BAA2B,GAA/B;;AAEAhb,OAAOC,OAAP,GAAiB9B,MAAMC,MAAN,CAAa;AAC5BC,cAAY,oBAAU4c,UAAV,EAAsB;AAChC,SAAKC,OAAL,GAAe,EAAf;;AAEA,QAAID,UAAJ,EAAgB;AACd,WAAKE,WAAL,GAAmBF,UAAnB;AACA,WAAKG,SAAL,CAAe,KAAKD,WA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B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,kBAAkB;;AAElB,OAAO;AACP;AACA;;AAEA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;AAEA,OAAO;AACP;AACA;;AAEA;;;AAGA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B,0BAA0B,E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,CAAC,SAAS;AACjC;AACA;AACQ,sDAAW,EAAC;;;ACNZ;AACf;AACA;AACA;AACA;AACA,CAAC;;AAEM;AACP;AACA;;;ACT6B;;AAEd;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,IAAI;;AAEnC,kBAAkB,SAAS;AAC3B,sCAAsC,SAAS;AAC/C;AACA;AACA;;AAEA;AACA,CAAC;;;ACpBc;AACf;AACA,CAAC;;;ACFc;AACf;AACA,CAAC;;;ACF6B;;AAEf;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;AChCiC;;AAEnB;AACf,UAAU,QAAQ;AAClB;AACA,CAAC;;;ACLc;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACpCD,IAAI,WAAK;;AAEF,YAAY,WAAK;AACjB,UAAU,WAAK;;;ACHP;AACf;AACA;AACA;AACA,CAAC;;;ACJc;AACf;AACA,CAAC;;;ACFc;AACf;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;ACZD;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC;;AAEM;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AClDe;AACf;AACA,CAAC;;;ACF6B;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE3B;AACf,cAAc,QAAQ;AACtB,eAAe,MAAM;AACrB,kBAAkB,OAAO;;AAEzB;AACA;AACA;AACA;AACA;;AAEA,eAAe,OAAO;AACtB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,KAAK,wDAAwD;AACxE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;;AAEA;AACA,eAAe,OAAO;AACtB;AACA;AACA,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,QAAQ;AAC7E;;AAEA;AACA,sEAAsE,QAAQ;AAC9E;;AAEA;AACA,4FAA4F,QAAQ,CAAC,KAAK,YAAY,QAAQ;AAC9H;;AAEA;AACA,CAAC;;;AC1E6B;;AAEf;AACf,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;ACb4B;AACQ;AACN;AACI;;AAEpB;AACf,WAAW,GAAG,cAAc,MAAM,OAAO,SAAS;AAClD,uCAAuC,QAAQ,iBAAiB,QAAQ;AACxE,CAAC;;;ACRoC;;AAEtB;AACf,wCAAwC,SAAS;AACjD,CAAC;;;ACJc;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACjC6B;;AAEf;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;;AAEA;AACA,CAAC;;;ACxBmC;AACN;AACI;;AAEnB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,MAAM;AAC/B;AACA;AACA;AACA;;AAEA,SAAS,QAAQ,cAAc,SAAS;AACxC,CAAC;;;AC3Bc;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACpBc;AACf;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACjCc;AACf;AACA;AACA;AACA,CAAC;;;ACJmC;;AAErB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,SAAS;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACnBc;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACbc;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;ACnBuB;;AAET;AACf;AACA,uBAAuB,OAAG,SAAS,gBAAM,4BAA4B,SAAS;AAC9E,0DAA0D,SAAS;AACnE;AACA;AACA;AACA;AACA,CAAC;;AAED,SAAS,gBAAM;AACf;AACA;;;ACdoC;;AAErB;AACf,SAAS,aAAS;AAClB,CAAC;;;ACJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwE;AACnB;AACF;AACN;AACU;AACF;AACN;AACM;AACiC;AACtB;AACI;AAC3B;AACE;AACI;AACF;AACJ;AACI;AACI;AACE;AACN;AACF;AACM;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;;;;;AC1BzC,IAAMd,oBAAoB5X,mBAAOA,CAAC,EAAR,CAA1B;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;IAwBM86B,E;;;AACJ;;;;AAIA,cAA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CA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL,KAAK;AACL,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;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;AACA,IAAI;AACJ;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,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,UAAU,kBAAkB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA;AACA,IAAI;AACJ,iCAAiC,mBAAmB;AACpD;AACA;AACA;AACA,GAAG;AACH,cAAc,SAAS;AACvB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8FAA8F;AAC3G;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;;AAEA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA,cAAc,OAAO;AACrB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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;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,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;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,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;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,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;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;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA,cAAc,OAAO;AACrB;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,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;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;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;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;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU;AACvB;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA,oBAAoB,sCAAsC;AAC1D;AACA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;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,GAAG;AACH,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,qBAAqB,cAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;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;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kCAAkC;AACxD;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,QAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mLAAmL;AACzM;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;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,4XAA4X;AAC5X;AACA,+XAA+X;AAC/X;AACA,yXAAyX,0LAA0L;AACnjB,yWAAyW;AACzW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB;;;AAGxB;AACA;AACA,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO,iEAAiE;AACxE,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;ACxyHA,IAAIx+C,IAAIC,mBAAOA,CAAC,EAAR,CAAR;AACA,IAAIC,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIi/C,OAAOj/C,mBAAOA,CAAC,GAAR,CAAX;AACA,IAAI4G,OAAO5G,mBAAOA,CAAC,CAAR,CAAX;AACA,IAAIk/C,kBAAkBl/C,mBAAOA,CAAC,EAAR,CAAtB;AACA,IAAIu+C,iBAAiBv+C,mBAAOA,CAAC,GAAR,CAArB;AACA,IAAIqkB,MAAMrkB,mBAAOA,CAAC,EAAR,CAAV;AACA,IAAIwe,uBAAuBxe,mBAAOA,CAAC,EAAR,CAA3B;;AAEA,IAAIm/C,4BAA4B,SAA5BA,yBAA4B,CAAU7+C,OAAV,EAAmB8+C,eAAnB,EAAoC;AAClE,MAAIC,iBAAiBp/C,EAAE4S,MAAF,CAASusC,eAAT,EAA0B,UAAUroC,MAAV,EAAkB;AAC/D,WAAO,CAACzW,QAAQyW,MAAR,CAAR;AACD,GAFoB,CAArB;AAGA,MAAIsoC,eAAel4C,MAAnB,EAA2B;AACzB,UAAM,IAAIvE,KAAJ,CAAU,kFAAkFy8C,eAAe73C,IAAf,CAAoB,IAApB,CAA5F,CAAN;AACD;AACF,CAPD;;AASA,IAAI83C,iBAAiB,IAArB;AACA,IAAIC,oBAAoB,CAAxB;AACA;AACA,IAAIC,0BAA0B,CAA9B;;AAEA;;;;AAIA,IAAI/oB,kBAAkB,SAAlBA,eAAkB,CAAUgpB,QAAV,EAAoB;AACxCN,4BAA0BM,QAA1B,EAAoC,CAAC,aAAD,EAAgB,UAAhB,CAApC;;AAEA,MAAIA,SAAS7oB,YAAb,EAA2B;AACzB,SAAK8oB,SAAL,GAAiB;AACf7xC,WAAK,CAACqxC,gBAAgBnpB,iBAAjB,EAAoC,OAApC,EAA6C0pB,SAAS7oB,YAAtD,EAAoE,OAApE,EAA6EpvB,IAA7E,CAAkF,GAAlF,CADU;AAEfm4C,YAAM,CAACT,gBAAgBnpB,iBAAjB,EAAoC,OAApC,EAA6C0pB,SAAS7oB,YAAtD,EAAoEpvB,IAApE,CAAyE,GAAzE;AAFS,KAAjB;AAID,GALD,MAKO;AACL,SAAKk4C,SAAL,GAAiB;AACf7xC,WAAKqxC,gBAAgBnpB,iBADN;AAEf4pB,YAAMT,gBAAgBnpB;AAFP,KAAjB;AAID;;AAED,OAAKnoB,GAAL,GAAW6xC,SAASxoB,WAAT,CAAqBtf,OAArB,CAA6B,QAA7B,EAAuC8nC,SAAStoB,QAAhD,CAAX;AACA,OAAKyoB,eAAL,GAAuB,IAAIrB,cAAJ,CAAmBiB,uBAAnB,CAAvB;AACD,CAjBD;;AAmBA/oB,gBAAgBj2B,SAAhB,CAA0B44B,cAA1B,GAA2C,UAAUD,OAAV,EAAmB;AAC5D;AACA,MAAI,KAAKymB,eAAL,CAAqBZ,qBAArB,CAA2C7lB,OAA3C,CAAJ,EAAyD;AACvD,SAAK0mB,eAAL,CAAqB1mB,OAArB,EAA8B;AAC5B7Y,eAAS,UAAUe,QAAV,EAAoB;AAC3B,aAAKu+B,eAAL,CAAqB/7C,KAArB,CAA2Bs1B,OAA3B,EAAoC9X,QAApC;AACA,YAAIA,SAASzc,MAAb,EAAqB;AACnB,cAAIk7C,eAAethC,qBAAqB6C,QAArB,CAAnB;AACA8X,kBAAQ74B,OAAR,CAAgBiC,KAAhB,IAAyB42B,QAAQ74B,OAAR,CAAgBiC,KAAhB,CAAsBu9C,YAAtB,CAAzB;AACD,SAHD,MAGO;AACL3mB,kBAAQ74B,OAAR,CAAgBggB,OAAhB,IAA2B6Y,QAAQ74B,OAAR,CAAgBggB,OAAhB,CAAwBe,QAAxB,CAA3B;AACD;AACF,OARQ,CAQP7f,IARO,CAQF,IARE,CADmB;AAU5Be,aAAO,UAAUw9C,GAAV,EAAeC,UAAf,EAA2B;AAChC;AACA,YAAIA,eAAe,OAAnB,EAA4B;AAC5B,YAAIp7C,SAAS,EAAb;AACA,YAAIk7C,eAAe,EAAnB;AACA,YAAI;AACFl7C,mBAASF,KAAKC,KAAL,CAAWo7C,IAAIj8C,YAAf,CAAT;AACAg8C,yBAAethC,qBAAqB5Z,MAArB,CAAf;AACD,SAHD,CAGE,OAAOorB,CAAP,EAAU,CAAG;AACf,aAAK4vB,eAAL,CAAqB/7C,KAArB,CAA2Bs1B,OAA3B,EAAoCv0B,MAApC;AACAu0B,gBAAQ74B,OAAR,CAAgBiC,KAAhB,IAAyB42B,QAAQ74B,OAAR,CAAgBiC,KAAhB,CAAsBu9C,YAAtB,CAAzB;AACD,OAXM,CAWLt+C,IAXK,CAWA,IAXA;AAVqB,KAA9B;AAuBD,GAxBD,MAwBO;AACL6iB,QAAI9hB,KAAJ,CAAU,0EAA0Ei9C,uBAA1E,GAAoG,IAA9G,EAAoHrmB,QAAQnG,OAA5H,EAAqImG,QAAQ7oB,MAA7I;AACA6oB,YAAQ74B,OAAR,CAAgBiC,KAAhB,IAAyB42B,QAAQ74B,OAAR,CAAgBiC,KAAhB,CAAsB,EAAtB,CAAzB;AACD;AACF,CA9BD;;AAgCAk0B,gBAAgBj2B,SAAhB,CAA0Bq/C,eAA1B,GAA4C,UAAU1mB,OAAV,EAAmB8mB,WAAnB,EAAgC;AAC1E,MAAIC,gBAAgB/mB,QAAQnG,OAA5B;AACA,MAAI1iB,SAAS6oB,QAAQ7oB,MAArB;;AAEA,MAAI6vC,aAAa,KAAKC,mBAAL,CAAyBF,aAAzB,EAAwC5vC,MAAxC,CAAjB;AACA,MAAI,KAAK+vC,WAAL,CAAiBF,UAAjB,CAAJ,EAAkC;AAChC,SAAKG,IAAL,CAAUH,UAAV,EAAsBF,WAAtB;AACD,GAFD,MAEO;AACL,SAAKM,sBAAL,CAA4BL,aAA5B,EAA2C5vC,MAA3C,EAAmD,UAAUkwC,aAAV,EAAyB;AAC1E,UAAI,KAAKH,WAAL,CAAiBG,aAAjB,CAAJ,EAAqC;AACnC,aAAKF,IAAL,CAAUE,aAAV,EAAyBP,WAAzB;AACD,OAFD,MAEO;AACL,YAAIryC,MAAM,KAAK6yC,OAAL,CAAanwC,MAAb,EAAqB,MAArB,CAAV;AACA,aAAKowC,KAAL,CAAW9yC,GAAX,EAAgBsyC,aAAhB,EAA+BD,WAA/B;AACD;AACF,KAPkD,CAOjDz+C,IAPiD,CAO5C,IAP4C,CAAnD;AAQD;AACF,CAjBD;;AAmBAi1B,gBAAgBj2B,SAAhB,CAA0B4/C,mBAA1B,GAAgD,UAAUptB,OAAV,EAAmB1iB,MAAnB,EAA2B;AACzEA,WAASrQ,EAAEG,MAAF,CAAS;AAChBi5C,YAAQ30C,KAAK4zC,SAAL,CAAetlB,OAAf;AADQ,GAAT,EAEN1iB,MAFM,CAAT;;AAIA,SAAO,KAAKmwC,OAAL,CAAanwC,MAAb,CAAP;AACD,CAND;;AAQAmmB,gBAAgBj2B,SAAhB,CAA0B+/C,sBAA1B,GAAmD,UAAUvtB,OAAV,EAAmB1iB,MAAnB,EAA2BynB,QAA3B,EAAqC;AACtF,MAAItwB,OAAO/C,KAAK4zC,SAAL,CAAe;AACxBe,YAAQ30C,KAAK4zC,SAAL,CAAetlB,OAAf;AADgB,GAAf,CAAX;;AAIAisB,OAAK0B,QAAL,CAAcl5C,IAAd,EAAoB83C,iBAApB,EAAuC,UAAUqB,iBAAV,EAA6B;AAClEtwC,aAASrQ,EAAEG,MAAF,CAAS;AAChBygD,YAAMj6C,KAAKG,SAAL,CAAe65C,iBAAf;AADU,KAAT,EAENtwC,MAFM,CAAT;;AAIAynB,aAAS,KAAK0oB,OAAL,CAAanwC,MAAb,CAAT;AACD,GANsC,CAMrC9O,IANqC,CAMhC,IANgC,CAAvC;AAOD,CAZD;;AAcAi1B,gBAAgBj2B,SAAhB,CAA0B6/C,WAA1B,GAAwC,UAAUzyC,GAAV,EAAe;AACrD,SAAOA,IAAIzG,MAAJ,GAAam4C,cAApB;AACD,CAFD;;AAIA7oB,gBAAgBj2B,SAAhB,CAA0BkgD,KAA1B,GAAkC,UAAU9yC,GAAV,EAAeolB,OAAf,EAAwB1yB,OAAxB,EAAiC;AACjE,OAAKwgD,qBAAL;AACA,OAAKC,gBAAL,GAAwBhhD,EAAEihD,IAAF,CAAO;AAC7BpzC,SAAKA,GADwB;AAE7BqzC,iBAAa,IAFgB;AAG7B/iC,YAAQ,MAHqB;AAI7BgjC,cAAU,MAJmB;AAK7BC,iBAAa,kBALgB;AAM7B15C,UAAM/C,KAAK4zC,SAAL,CAAetlB,OAAf,CANuB;AAO7B1S,aAAShgB,QAAQggB,OAPY;AAQ7B/d,WAAOjC,QAAQiC;AARc,GAAP,CAAxB;AAUD,CAZD;;AAcAk0B,gBAAgBj2B,SAAhB,CAA0B8/C,IAA1B,GAAiC,UAAU1yC,GAAV,EAAetN,OAAf,EAAwB;AACvD,OAAKwgD,qBAAL;AACA,OAAKC,gBAAL,GAAwBhhD,EAAEihD,IAAF,CAAO;AAC7BpzC,SAAKA,GADwB;AAE7BsQ,YAAQ,KAFqB;AAG7BgjC,cAAU,OAHmB;AAI7BE,mBAAe,KAAKC,kBAAL,CAAwBzzC,GAAxB,CAJc;AAK7Bi/B,WAAO,IALsB;AAM7BvsB,aAAShgB,QAAQggB,OANY;AAO7B/d,WAAOjC,QAAQiC;AAPc,GAAP,CAAxB;AASD,CAXD;;AAaAk0B,gBAAgBj2B,SAAhB,CAA0BsgD,qBAA1B,GAAkD,YAAY;AAC5D,MAAI,KAAKC,gBAAT,EAA2B;AACzB,SAAKA,gBAAL,CAAsB3iC,KAAtB;AACD;AACF,CAJD;;AAMAqY,gBAAgBj2B,SAAhB,CAA0BigD,OAA1B,GAAoC,UAAUnwC,MAAV,EAAkB4N,MAAlB,EAA0B;AAC5DA,WAASA,UAAU,KAAnB;AACA,MAAIojC,cAAc,KAAKC,2BAAL,CAAiCjxC,MAAjC,CAAlB;AACA,MAAIkxC,WAAW,KAAK9B,SAAL,CAAexhC,MAAf,CAAf;AACA,SAAO,CAAC,KAAKtQ,GAAN,EAAW4zC,QAAX,EAAqBh6C,IAArB,CAA0B,GAA1B,IAAiC85C,WAAxC;AACD,CALD;;AAOA7qB,gBAAgBj2B,SAAhB,CAA0B+gD,2BAA1B,GAAwD,UAAUjxC,MAAV,EAAkB;AACxE,MAAIgxC,cAAc,EAAlB;AACArhD,IAAEgM,IAAF,CAAOqE,MAAP,EAAe,UAAUb,KAAV,EAAiB/L,IAAjB,EAAuB;AACpC,QAAI+L,iBAAiB1B,KAArB,EAA4B;AAC1B9N,QAAEgM,IAAF,CAAOwD,KAAP,EAAc,UAAUgyC,QAAV,EAAoB;AAChCH,oBAAYl6C,IAAZ,CAAiB1D,OAAO,KAAP,GAAe+9C,QAAhC;AACD,OAFD;AAGD,KAJD,MAIO,IAAIhyC,iBAAiB/M,MAArB,EAA6B;AAClC4+C,kBAAYl6C,IAAZ,CAAiB1D,OAAO,GAAP,GAAaw/B,mBAAmBx+B,KAAK4zC,SAAL,CAAe7oC,KAAf,CAAnB,CAA9B;AACD,KAFM,MAEA;AACL6xC,kBAAYl6C,IAAZ,CAAiB1D,OAAO,GAAP,GAAaw/B,mBAAmBzzB,KAAnB,CAA9B;AACD;AACF,GAVD;AAWA,SAAO6xC,YAAYn6C,MAAZ,GAAqB,CAArB,GAAyB,MAAMm6C,YAAY95C,IAAZ,CAAiB,GAAjB,CAA/B,GAAuD,EAA9D;AACD,CAdD;;AAgBAivB,gBAAgBj2B,SAAhB,CAA0B6gD,kBAA1B,GAA+C,UAAUruB,OAAV,EAAmB;AAChE,SAAO,WAAWpsB,KAAKkC,kBAAL,CAAwBkqB,OAAxB,CAAlB;AACD,CAFD;;AAIAhxB,OAAOC,OAAP,GAAiBw0B,eAAjB,C;;;;;;;;;ACvLA,IAAIx2B,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIk/C,kBAAkBl/C,mBAAOA,CAAC,EAAR,CAAtB;;AAEA;;;;;;AAMA,SAASw2B,QAAT,CAAmBkrB,iBAAnB,EAAsC5oB,cAAtC,EAAsD;AACpD,OAAK9B,kBAAL,GAA0B0qB,iBAA1B;AACA,OAAKC,aAAL,GAAqB7oB,eAAe8oB,YAApC;AACA,OAAK3R,OAAL,GAAenX,eAAeqc,QAAf,CAAwBjyC,MAAvC;AACA,OAAK2+C,UAAL,GAAkB/oB,eAAeqc,QAAf,CAAwB2M,SAA1C;AACA,OAAKC,SAAL,GAAiBjpB,eAAeqc,QAAf,CAAwBhwB,QAAzC;AACA,OAAK68B,OAAL,GAAelpB,eAAempB,OAA9B;AACD;;AAED;;;;;;;;;AASAzrB,SAASh2B,SAAT,CAAmB0hD,qBAAnB,GAA2C,SAASA,qBAAT,CAAgC1lC,SAAhC,EAA2C;AACpF,SAAOvc,EAAEmuB,MAAF,CAAS,KAAK+zB,UAAL,EAAT,EAA4B,UAAUC,YAAV,EAAwBr+C,KAAxB,EAA+B8kB,KAA/B,EAAsC;AACvE,QAAI9kB,MAAMhB,IAAN,KAAeyZ,SAAnB,EAA8B;AAC5B4lC,mBAAah7C,IAAb,CAAkByhB,KAAlB;AACD;AACD,WAAOu5B,YAAP;AACD,GALM,EAKJ,EALI,CAAP;AAMD,CAPD;;AASA;;;AAGA5rB,SAASh2B,SAAT,CAAmB6hD,UAAnB,GAAgC,SAASA,UAAT,GAAuB;AACrD,SAAO,CACL,KAAKC,QAAL,EADK,EAELpD,gBAAgBnpB,iBAFX,EAGL,KAAK4rB,aAHA,EAILn6C,IAJK,CAIA,GAJA,CAAP;AAKD,CAND;;AAQA;;;AAGAgvB,SAASh2B,SAAT,CAAmB+hD,gBAAnB,GAAsC,SAASA,gBAAT,GAA6B;AACjE,SAAO,CACL,KAAKD,QAAL,EADK,EAELpD,gBAAgBnpB,iBAFX,EAGL,eAHK,EAIL,KAAK4rB,aAJA,EAKLn6C,IALK,CAKA,GALA,CAAP;AAMD,CAPD;;AASAgvB,SAASh2B,SAAT,CAAmB8hD,QAAnB,GAA8B,SAASA,QAAT,GAAqB;AACjD,MAAIrrB,cAAc,KAAKD,kBAAL,CAAwBC,WAA1C;AACA,MAAIE,WAAW,KAAKH,kBAAL,CAAwBG,QAAvC;AACA,MAAIqrB,WAAW,KAAKC,WAAL,EAAf;AACA,MAAIC,SAAS,KAAKV,OAAlB;AACA,MAAIW,UAAUD,UAAUA,OAAOF,QAAP,CAAxB;AACA,MAAII,YAAYF,UAAUA,OAAOE,SAAjC;;AAEA,MAAIA,aAAaA,UAAUJ,QAAV,CAAjB,EAAsC;AACpC,QAAIhrC,WAAWorC,UAAUJ,QAAV,CAAf;AACA,WAAOhrC,SAAS5J,GAAT,GAAe,GAAf,GAAqBupB,QAA5B;AACD;;AAED,MAAIwrB,OAAJ,EAAa;AACX,WAAO,CAACH,QAAD,EAAW,KAAX,EAAkBG,OAAlB,EAA2B,GAA3B,EAAgCxrB,QAAhC,EAA0C3vB,IAA1C,CAA+C,EAA/C,CAAP;AACD;;AAED,SAAOyvB,YAAYtf,OAAZ,CAAoB,QAApB,EAA8Bwf,QAA9B,CAAP;AACD,CAlBD;;AAoBAX,SAASh2B,SAAT,CAAmBiiD,WAAnB,GAAiC,SAASA,WAAT,GAAwB;AACvD,SAAO,KAAKI,QAAL,KAAkB,OAAlB,GAA4B,MAAnC;AACD,CAFD;;AAIArsB,SAASh2B,SAAT,CAAmBqiD,QAAnB,GAA8B,SAASC,OAAT,GAAoB;AAChD,SAAO,KAAK9rB,kBAAL,CAAwBC,WAAxB,CAAoChtB,OAApC,CAA4C,OAA5C,MAAyD,CAAhE;AACD,CAFD;;AAIAusB,SAASh2B,SAAT,CAAmBuiD,sBAAnB,GAA4C,SAASA,sBAAT,GAAmC;AAC7E,MAAIH,YAAY,KAAKZ,OAAL,IAAgB,KAAKA,OAAL,CAAaY,SAA7C;AACA,MAAIJ,WAAW,KAAKC,WAAL,EAAf;AACA,MAAIG,aAAaA,UAAUJ,QAAV,CAAjB,EAAsC;AACpC,WAAOI,UAAUJ,QAAV,EAAoBvQ,UAA3B;AACD;AACD,SAAO,EAAP;AACD,CAPD;;AASAzb,SAASh2B,SAAT,CAAmBwiD,gBAAnB,GAAsC,SAASA,gBAAT,CAA2B9wB,UAA3B,EAAuC;AAC3E,MAAI+wB,YAAY,EAAhB;AACA,MAAI//C,SAAS,KAAKi/C,UAAL,EAAb;AACA,MAAIj/C,UAAUA,OAAOgvB,UAAP,CAAd,EAAkC;AAChC+wB,gBAAY//C,OAAOgvB,UAAP,EAAmBwoB,IAAnB,IAA2B,EAAvC;AACD;AACD,SAAOuI,SAAP;AACD,CAPD;;AASAzsB,SAASh2B,SAAT,CAAmB0iD,mBAAnB,GAAyC,SAASA,mBAAT,CAA8BC,UAA9B,EAA0C;AACjF,MAAIrB,YAAY,KAAKsB,aAAL,EAAhB;AACA,MAAItB,aAAaA,UAAUqB,UAAV,CAAjB,EAAwC;AACtC,WAAOrB,UAAUqB,UAAV,CAAP;AACD;;AAED;AACArB,cAAY,EAAZ;AACA,MAAIuB,kBAAkBpjD,EAAEuP,OAAF,CAAUvP,EAAEgO,GAAF,CAAM,KAAKk0C,UAAL,EAAN,EAAyB,UAAUp+C,KAAV,EAAiB;AAAE,WAAOA,MAAMu/C,OAAb;AAAuB,GAAnE,CAAV,CAAtB;AACArjD,IAAEgM,IAAF,CAAOo3C,eAAP,EAAwB,UAAUE,cAAV,EAA0B;AAAEtjD,MAAEG,MAAF,CAAS0hD,SAAT,EAAoByB,cAApB;AAAsC,GAA1F;;AAEA,MAAIzB,aAAaA,UAAUqB,UAAV,CAAjB,EAAwC;AACtC,WAAOrB,UAAUqB,UAAV,CAAP;AACD;AACF,CAdD;;AAgBA3sB,SAASh2B,SAAT,CAAmBgjD,uBAAnB,GAA6C,UAAUn/C,UAAV,EAAsB;AACjE,MAAI8wC,WAAW,EAAf;AACA,MAAIxkC,QAAQ1Q,EAAEgO,GAAF,CAAM,KAAKw1C,YAAL,EAAN,EAA2B,UAAUtgD,QAAV,EAAoB;AACzD,WAAOA,SAASwN,KAAhB;AACD,GAFW,CAAZ;AAGA1Q,IAAEgM,IAAF,CAAO0E,KAAP,EAAc,UAAU+yC,IAAV,EAAgB;AAAEzjD,MAAEG,MAAF,CAAS+0C,QAAT,EAAmBuO,IAAnB;AAA2B,GAA3D;;AAEA,SAAOvO,SAAS9wC,UAAT,CAAP;AACD,CARD;;AAUA;;;AAGAmyB,SAASh2B,SAAT,CAAmB2hD,UAAnB,GAAgC,SAASA,UAAT,GAAuB;AACrD,SAAO,KAAKlS,OAAZ;AACD,CAFD;;AAIAzZ,SAASh2B,SAAT,CAAmB4iD,aAAnB,GAAmC,SAASA,aAAT,GAA0B;AAC3D,SAAO,KAAKvB,UAAZ;AACD,CAFD;;AAIArrB,SAASh2B,SAAT,CAAmBijD,YAAnB,GAAkC,SAASA,YAAT,GAAyB;AACzD,SAAO,KAAK1B,SAAZ;AACD,CAFD;;AAIA//C,OAAOC,OAAP,GAAiBu0B,QAAjB,C;;;;;;;;;AClJA;;;AAGA,IAAID,UAAU,SAAVA,OAAU,CAAUvD,OAAV,EAAmB1iB,MAAnB,EAA2BhQ,OAA3B,EAAoC;AAChD,OAAK0yB,OAAL,GAAeA,OAAf;AACA,OAAK1iB,MAAL,GAAcA,MAAd;AACA,OAAKhQ,OAAL,GAAeA,OAAf;AACD,CAJD;;AAMAi2B,QAAQ/1B,SAAR,CAAkBmjD,UAAlB,GAA+B,YAAY;AACzC,SAAOj/C,KAAK4zC,SAAL,CAAe,KAAKtlB,OAApB,IAA+BtuB,KAAK4zC,SAAL,CAAe,KAAKhoC,MAApB,CAA/B,GAA6D5L,KAAK4zC,SAAL,CAAe,KAAKh4C,OAApB,CAApE;AACD,CAFD;;AAIAi2B,QAAQ/1B,SAAR,CAAkBwQ,MAAlB,GAA2B,UAAUmoB,OAAV,EAAmB;AAC5C,SAAO,KAAKwqB,UAAL,OAAsBxqB,QAAQwqB,UAAR,EAA7B;AACD,CAFD;;AAIA3hD,OAAOC,OAAP,GAAiBs0B,OAAjB,C;;;;;;;;;ACjBA,IAAIt2B,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIylB,aAAazlB,mBAAOA,CAAC,EAAR,CAAjB;;AAEA;;;AAGA,SAAS6d,SAAT,CAAoBiJ,gBAApB,EAAsCC,mBAAtC,EAA2D;AACzD;AACA;AACA;AACA;AACA,MAAI7jB,SAAS4jB,iBAAiBjU,MAAjB,CAAwB,UAAU9O,KAAV,EAAiB;AACpD,WAAO,CAAC0hB,WAAW5I,qBAAX,CAAiC9Y,KAAjC,CAAR;AACD,GAFY,CAAb;;AAIA,SAAO;AACL6/C,gBAAY;AACVC,WAAK;AADK,KADP;AAIL7G,YAAQ8G,qBAAqB5gD,MAArB;AAJH,GAAP;AAMD;;AAED,SAAS4gD,oBAAT,CAA+B5gD,MAA/B,EAAuC;AACrC,SAAOjD,EAAEmuB,MAAF,CAASlrB,MAAT,EAAiB,UAAU85C,MAAV,EAAkBj5C,KAAlB,EAAyB8kB,KAAzB,EAAgC;AACtD,QAAI9kB,MAAM8J,GAAN,CAAU,UAAV,CAAJ,EAA2B;AACzBmvC,aAAOn0B,KAAP,IAAgB9kB,MAAM8J,GAAN,CAAU,UAAV,CAAhB;AACD;AACD,WAAOmvC,MAAP;AACD,GALM,EAKJ,EALI,CAAP;AAMD;;AAEDh7C,OAAOC,OAAP,GAAiB;AACf4b,aAAWA;AADI,CAAjB,C;;;;;;;;;AChCA,IAAI5d,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIya,OAAOza,mBAAOA,CAAC,EAAR,CAAX;;AAEA,IAAI+jD,cAAc,CAAC,YAAD,EAAe,aAAf,EAA8B,cAA9B,EAA8C,aAA9C,CAAlB;AACA,IAAIC,iBAAiB,CAAC,GAAD,CAArB;;AAEA,IAAIC,qBAAqB,SAArBA,kBAAqB,CAAUvpC,IAAV,EAAgB;AACvC,MAAIa,UAAUb,KAAKU,4BAAL,EAAd;AACA,SAAOnb,EAAEuW,KAAF,CAAQ+E,OAAR,EAAiB,UAAUC,MAAV,EAAkB;AACxC,WAAOA,OAAO3I,MAAP,CAAcnP,IAAd,IAAsB,IAAtB,IAA8B8X,OAAO/L,KAAP,IAAgB,IAArD;AACD,GAFM,CAAP;AAGD,CALD;;AAOA,IAAIy0C,qBAAqB,SAArBA,kBAAqB,CAAUC,YAAV,EAAwBC,WAAxB,EAAqC;AAC5D,SAAOnkD,EAAEgO,GAAF,CAAMk2C,YAAN,EAAoB,UAAUE,WAAV,EAAuB;AAChD,QAAIC,aAAarkD,EAAE46B,IAAF,CAAOupB,WAAP,EAAoB,UAAU5oC,MAAV,EAAkB;AACrD,aAAOA,OAAO3I,MAAP,CAAcnP,IAAd,KAAuB2gD,YAAYxxC,MAAZ,CAAmBnP,IAAjD;AACD,KAFgB,CAAjB;AAGA,WAAO;AACLoV,aAAOurC,YAAYxxC,MAAZ,CAAmBnP,IADrB;AAEL6gD,YAAOD,cAAcA,WAAW70C,KAA1B,GAAmC+0C,YAAYF,WAAW70C,KAAvB,CAAnC,GAAmE,EAFpE;AAGLg1C,aAAOJ,YAAY50C;AAHd,KAAP;AAKD,GATM,CAAP;AAUD,CAXD;;AAaA,IAAI+0C,cAAc,SAAdA,WAAc,CAAUz7C,GAAV,EAAe;AAC/B,MAAI6E,MAAM,EAAV;AACA,MAAI82C,UAAU,sDAAd;AACA,MAAIC,QAAQ57C,IAAI47C,KAAJ,CAAUD,OAAV,CAAZ;AACA,MAAIC,KAAJ,EAAW;AACT/2C,UAAM+2C,MAAM,CAAN,CAAN;AACD;AACD,SAAO/2C,GAAP;AACD,CARD;;AAUA5L,OAAOC,OAAP,GAAiB;AACf2iD,YAAU,kBAAUlqC,IAAV,EAAgB;AACxBA,WAAO,IAAID,IAAJ,CAASC,IAAT,CAAP;AACA,WAAOA,KAAKE,kBAAL,CAAwBmpC,WAAxB,KACLrpC,KAAKK,iBAAL,CAAuBipC,cAAvB,CADK,IAELC,mBAAmBvpC,IAAnB,CAFF;AAGD,GANc;;AAQfmqC,SAAO,eAAUhI,KAAV,EAAiB;AACtB,QAAIiI,YAAY,IAAIrqC,IAAJ,CAASoiC,MAAM,CAAN,CAAT,CAAhB;AACA,QAAIkI,WAAW,IAAItqC,IAAJ,CAASoiC,MAAM,CAAN,CAAT,CAAf;;AAEA,QAAImI,uBAAuBF,UAAU1pC,4BAAV,EAA3B;AACA,QAAI6pC,sBAAsBF,SAAS3pC,4BAAT,EAA1B;AACA,QAAI8pC,sBAAsBJ,UAAUzpC,2BAAV,EAA1B;AACA,QAAI8pC,qBAAqBJ,SAAS1pC,2BAAT,EAAzB;;AAEA,WAAO;AACLgmB,kBAAY6iB,mBAAmBc,oBAAnB,EAAyCC,mBAAzC,CADP;AAELG,eAAS;AACPb,cAAMtkD,EAAE2T,OAAF,CAAUuxC,kBAAV,IAAgC,EAAhC,GAAqCX,YAAYW,mBAAmB,CAAnB,EAAsB11C,KAAlC,CADpC;AAEPg1C,eAAOxkD,EAAE2T,OAAF,CAAUsxC,mBAAV,IAAiC,EAAjC,GAAsCA,oBAAoB,CAApB,EAAuBz1C;AAF7D;AAFJ,KAAP;AAOD;AAxBc,CAAjB,C;;;;;;;;;ACpCA,IAAIxP,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIya,OAAOza,mBAAOA,CAAC,EAAR,CAAX;;AAEA,IAAI+jD,cAAc,CAAC,YAAD,EAAe,aAAf,EAA8B,cAA9B,CAAlB;AACA,IAAIC,iBAAiB,CAAC,GAAD,EAAM,IAAN,EAAY,GAAZ,EAAiB,IAAjB,CAArB;;AAEA,IAAIC,qBAAqB,SAArBA,kBAAqB,CAAUvpC,IAAV,EAAgB;AACvC,MAAIa,UAAUb,KAAKQ,yBAAL,EAAd;AACA,SAAOjb,EAAEuW,KAAF,CAAQ+E,OAAR,EAAiB,UAAUC,MAAV,EAAkB;AACxC,WAAOA,OAAO3I,MAAP,CAAcmW,KAAd,IAAuB,IAAvB,IAA+BxN,OAAO3I,MAAP,CAAc2W,GAAd,IAAqB,IAA3D;AACD,GAFM,CAAP;AAGD,CALD;;AAOA,IAAI67B,iBAAiB,SAAjBA,cAAiB,CAAU9pC,OAAV,EAAmB;AACtC,MAAIA,QAAQpU,MAAR,KAAmB,CAAvB,EAA0B;AACxB,QAAIqU,SAASD,QAAQ,CAAR,CAAb;AACA,QAAI+pC,aAAa9pC,OAAO3I,MAAP,CAAcmW,KAA/B;AACA,QAAIu8B,WAAW/pC,OAAO3I,MAAP,CAAc2W,GAA7B;AACA,WAAO,CAAC,EAAE/Z,OAAO+L,OAAO/L,KAAhB,EAAuB+1C,OAAOF,WAAWjuC,QAAX,EAA9B,EAAD,EAAwD,EAAE5H,OAAO+L,OAAO/L,KAAhB,EAAuB+1C,OAAOD,SAASluC,QAAT,EAA9B,EAAxD,CAAP;AACD;AACD,SAAOpX,EAAEgO,GAAF,CAAMsN,OAAN,EAAe,UAAUC,MAAV,EAAkBtU,CAAlB,EAAqB;AACzC,QAAIs+C,QAAQ,EAAZ;AACA,QAAIt+C,MAAM,CAAV,EAAa;AACXs+C,cAAQhqC,OAAO3I,MAAP,CAAcmW,KAAtB;AACD,KAFD,MAEO,IAAI9hB,MAAMqU,QAAQpU,MAAR,GAAiB,CAA3B,EAA8B;AACnCq+C,cAAQhqC,OAAO3I,MAAP,CAAc2W,GAAtB;AACD;AACD,WAAO,EAAE/Z,OAAO+L,OAAO/L,KAAhB,EAAuB+1C,OAAOA,MAAMnuC,QAAN,EAA9B,EAAP;AACD,GARM,CAAP;AASD,CAhBD;;AAkBArV,OAAOC,OAAP,GAAiB;AACf2iD,YAAU,kBAAUlqC,IAAV,EAAgB;AACxBA,WAAO,IAAID,IAAJ,CAASC,IAAT,CAAP;AACA,WAAOA,KAAKE,kBAAL,CAAwBmpC,WAAxB,KACLrpC,KAAKK,iBAAL,CAAuBipC,cAAvB,CADK,IAELC,mBAAmBvpC,IAAnB,CAFF;AAGD,GANc;;AAQfmqC,SAAO,eAAUhI,KAAV,EAAiB;AACtB,QAAIniC,OAAO,IAAID,IAAJ,CAASoiC,MAAM,CAAN,CAAT,CAAX;;AAEA,QAAIvI,eAAe55B,KAAKQ,yBAAL,EAAnB;AACA,QAAIuqC,aAAaxlD,EAAEyoC,IAAF,CAAO4L,YAAP,CAAjB;AACA,QAAIoR,cAAczlD,EAAE0lD,KAAF,CAAQrR,YAAR,CAAlB;;AAEA,WAAO;AACL4B,cAAQmP,eAAe/Q,YAAf,CADH;AAEL9L,WAAK9tB,KAAKmB,YAAL,EAFA;AAGLoO,WAAKw7B,WAAW5yC,MAAX,CAAkB2W,GAHlB;AAIL6B,WAAKq6B,YAAY7yC,MAAZ,CAAmBmW;AAJnB,KAAP;AAMD;AArBc,CAAjB,C;;;;;;;;;AC/BA,IAAI/oB,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIya,OAAOza,mBAAOA,CAAC,EAAR,CAAX;;AAEA,IAAI+jD,cAAc,CAAC,cAAD,EAAiB,YAAjB,CAAlB;;AAEA,IAAIE,qBAAqB,SAArBA,kBAAqB,CAAUvpC,IAAV,EAAgB;AACvC,MAAIa,UAAUb,KAAKQ,yBAAL,EAAd;AACA,SAAOjb,EAAEuW,KAAF,CAAQ+E,OAAR,EAAiB,UAAUC,MAAV,EAAkB;AACxC,WAAOA,OAAO3I,MAAP,CAAcmW,KAAd,IAAuB,IAAvB,IAA+BxN,OAAO3I,MAAP,CAAc2W,GAAd,IAAqB,IAA3D;AACD,GAFM,CAAP;AAGD,CALD;;AAOA,IAAIo8B,kBAAkB,SAAlBA,eAAkB,CAAUrqC,OAAV,EAAmB;AACvC,MAAIkqC,aAAaxlD,EAAEyoC,IAAF,CAAOntB,OAAP,CAAjB;AACA,SAAOtb,EAAEoP,KAAF,CAAQkM,OAAR,EACJtN,GADI,CACA,QADA,EAEJA,GAFI,CAEA,OAFA,EAGJ4C,MAHI,CAGG40C,WAAW5yC,MAAX,CAAkB2W,GAHrB,EAIJ/Z,KAJI,EAAP;AAKD,CAPD;;AASAzN,OAAOC,OAAP,GAAiB;AACf2iD,YAAU,kBAAUlqC,IAAV,EAAgB;AACxBA,WAAO,IAAID,IAAJ,CAASC,IAAT,CAAP;AACA,WAAOA,KAAKE,kBAAL,CAAwBmpC,WAAxB,KAAwCE,mBAAmBvpC,IAAnB,CAA/C;AACD,GAJc;;AAMfmqC,SAAO,eAAUhI,KAAV,EAAiB;AACtB,QAAIniC,OAAO,IAAID,IAAJ,CAASoiC,MAAM,CAAN,CAAT,CAAX;AACA,QAAIthC,UAAUb,KAAKQ,yBAAL,EAAd;;AAEA,WAAO;AACLqlB,cAAQqlB,gBAAgBrqC,OAAhB,CADH;AAELsqC,aAAO5lD,EAAEgO,GAAF,CAAMsN,OAAN,EAAe,OAAf,CAFF;AAGLitB,WAAK9tB,KAAKmB,YAAL;AAHA,KAAP;AAKD;AAfc,CAAjB,C;;;;;;;;;ACrBA,IAAIiqC,WAAW;AACbrP,UAAQz2C,mBAAOA,CAAC,GAAR,CADK;AAEb62C,cAAY72C,mBAAOA,CAAC,GAAR,CAFC;AAGbkxB,YAAUlxB,mBAAOA,CAAC,GAAR;AAHG,CAAf;;AAMAgC,OAAOC,OAAP,GAAiB;AACf8jD,uBAAqB,6BAAUjO,WAAV,EAAuB;AAC1C,WAAOgO,SAAShO,YAAYjqC,GAAZ,CAAgB,MAAhB,CAAT,CAAP;AACD;AAHc,CAAjB,C;;;;;;;;;ACNA;AACA;AACA,IAAIsW,MAAM,EAAV;;AAEAA,IAAI+0B,OAAJ,GAAcl5C,mBAAOA,CAAC,EAAR,EAA2B2K,OAAzC;AACAwZ,IAAIK,KAAJ,GAAY,KAAZ;;AAEAL,IAAI6hC,OAAJ,GAAc,EAAd;;AAEAhkD,OAAOC,OAAP,GAAiBkiB,GAAjB,C;;;;;;;;;ACTA,IAAIlkB,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIqkB,MAAMrkB,mBAAOA,CAAC,EAAR,CAAV;AACA,IAAI4G,OAAO5G,mBAAOA,CAAC,CAAR,CAAX;AACA,IAAIimD,4BAA4BjmD,mBAAOA,CAAC,GAAR,CAAhC;AACA,IAAI0lB,kBAAkB1lB,mBAAOA,CAAC,EAAR,CAAtB;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;;AAEA,SAASkmD,YAAT,CAAuBjU,UAAvB,EAAmCkU,QAAnC,EAA6C;AAC3C,MAAIt9B,QAAQjiB,KAAKqC,KAAL,CAAWk9C,QAAX,IAAuBlU,WAAW9qC,MAA9C;AACA,SAAO8qC,WAAWppB,KAAX,CAAP;AACD;;AAED;;;;AAIA,IAAIwN,eAAe,SAAfA,YAAe,CAAUjd,IAAV,EAAgB;AACjC,MAAI,CAACA,KAAKqY,eAAV,EAA2B,MAAM,IAAI7uB,KAAJ,CAAU,6BAAV,CAAN;AAC3B,MAAI,CAACwW,KAAK0N,gBAAV,EAA4B,MAAM,IAAIlkB,KAAJ,CAAU,8BAAV,CAAN;AAC5B,MAAI,CAACwW,KAAK2N,mBAAV,EAA+B,MAAM,IAAInkB,KAAJ,CAAU,iCAAV,CAAN;;AAE/B,OAAKwjD,gBAAL,GAAwBhtC,KAAKqY,eAA7B;AACA,OAAKgG,iBAAL,GAAyBre,KAAK0N,gBAA9B;AACA,OAAK4Q,oBAAL,GAA4Bte,KAAK2N,mBAAjC;AACD,CARD;;AAUAsP,aAAa71B,SAAb,CAAuBs5B,YAAvB,GAAsC,UAAUD,eAAV,EAA2B11B,QAA3B,EAAqCwc,UAArC,EAAiD;AACrF,OAAK0lC,kBAAL,CAAwBxsB,eAAxB;AACA,OAAKysB,sBAAL,CAA4BzsB,eAA5B;AACA,OAAK0sB,qBAAL,CAA2B1sB,eAA3B,EAA4C11B,QAA5C,EAAsDwc,UAAtD;AACA,OAAK6lC,qBAAL,CAA2B3sB,eAA3B;AACD,CALD;;AAOAxD,aAAa71B,SAAb,CAAuB8lD,sBAAvB,GAAgD,UAAUzsB,eAAV,EAA2B;AACzE,MAAI4sB,OAAO;AACTpzB,WAAO,KAAKqzB,wBAAL,CAA8B7sB,eAA9B,CADE;AAEToY,gBAAYpY,gBAAgBkpB,sBAAhB,EAFH;AAGT5vB,WAAO,KAAKwzB,0CAAL,CAAgD9sB,eAAhD,CAHE;AAITxpB,gBAAY,KAAKu2C,4CAAL,CAAkD/sB,eAAlD,CAJH;AAKTsU,WAAO,KAAK0Y,sBAAL,CAA4BhtB,eAA5B;AALE,GAAX;;AAQA,OAAKusB,gBAAL,CAAsB93C,GAAtB,CAA0B;AACxBw4C,8BAA0BjtB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CADF;AAExBuE,UAAMA;AAFkB,GAA1B;AAID,CAbD;;AAeApwB,aAAa71B,SAAb,CAAuBqmD,sBAAvB,GAAgD,UAAUhtB,eAAV,EAA2B;AACzE,SAAO,CACLA,gBAAgB0oB,gBAAhB,EADK,EAEL,2CAFK,EAGL/6C,IAHK,CAGA,GAHA,CAAP;AAID,CALD;;AAOA6uB,aAAa71B,SAAb,CAAuBkmD,wBAAvB,GAAkD,UAAU7sB,eAAV,EAA2B;AAC3E,SAAOA,gBAAgBwoB,UAAhB,KAA+B,sCAAtC;AACD,CAFD;;AAIAhsB,aAAa71B,SAAb,CAAuBmmD,0CAAvB,GAAoE,UAAU9sB,eAAV,EAA2B;AAC7F,MAAIktB,eAAe,EAAnB;AACA,MAAIC,wBAAwBntB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CAA5B;AACA,MAAI8E,sBAAsB7/C,MAAtB,GAA+B,CAAnC,EAAsC;AACpClH,MAAEgM,IAAF,CAAO+6C,qBAAP,EAA8B,UAAUn+B,KAAV,EAAiB;AAC7C,UAAIo+B,oBAAoB,EAAxB;AACA,UAAIC,kBAAkB,KAAKC,wBAAL,CAA8BttB,eAA9B,EAA+ChR,KAA/C,CAAtB;AACA,UAAIopB,aAAapY,gBAAgBkpB,sBAAhB,EAAjB;AACA,UAAI9Q,WAAW9qC,MAAf,EAAuB;AACrBlH,UAAEgM,IAAF,CAAOgmC,UAAP,EAAmB,UAAUmV,SAAV,EAAqB;AACtCH,4BAAkB7/C,IAAlB,CAAuB8/C,gBAAgBvvC,OAAhB,CAAwB,KAAxB,EAA+ByvC,SAA/B,CAAvB;AACD,SAFD;AAGD,OAJD,MAIO;AACLH,0BAAkB7/C,IAAlB,CAAuB8/C,eAAvB;AACD;;AAEDH,mBAAa3/C,IAAb,CAAkB6/C,iBAAlB;AACD,KAbD,EAaG,IAbH;AAcD;AACD,SAAOF,YAAP;AACD,CApBD;;AAsBA1wB,aAAa71B,SAAb,CAAuB2mD,wBAAvB,GAAkD,UAAUttB,eAAV,EAA2BhR,KAA3B,EAAkC;AAClF,SAAOgR,gBAAgBwoB,UAAhB,KAA+B,GAA/B,GAAqCx5B,KAArC,GAA6C,wBAApD;AACD,CAFD;;AAIAwN,aAAa71B,SAAb,CAAuBomD,4CAAvB,GAAsE,UAAU/sB,eAAV,EAA2B;AAC/F,MAAI4sB,OAAO,EAAX;AACA,MAAIO,wBAAwBntB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CAA5B;AACA,MAAI8E,sBAAsB7/C,MAAtB,GAA+B,CAAnC,EAAsC;AACpClH,MAAEgM,IAAF,CAAO+6C,qBAAP,EAA8B,UAAUn+B,KAAV,EAAiB;AAC7C49B,WAAKr/C,IAAL,CAAU,KAAKigD,0BAAL,CAAgCxtB,eAAhC,EAAiDhR,KAAjD,CAAV;AACD,KAFD,EAEG,IAFH;AAGD;AACD,SAAO49B,IAAP;AACD,CATD;;AAWApwB,aAAa71B,SAAb,CAAuB6mD,0BAAvB,GAAoD,UAAUxtB,eAAV,EAA2BhR,KAA3B,EAAkC;AACpF,MAAIy+B,UAAUztB,gBAAgBwoB,UAAhB,KAA+B,GAA/B,GAAqCx5B,KAArC,GAA6C,aAA3D;AACA,MAAIy+B,QAAQr9C,OAAR,CAAgB,KAAhB,KAA0B,CAA9B,EAAiC;AAC/B,QAAIm9C,YAAYlB,aAAarsB,gBAAgBkpB,sBAAhB,EAAb,EAAuDuE,OAAvD,CAAhB;AACAA,cAAUA,QAAQ3vC,OAAR,CAAgB,KAAhB,EAAuByvC,SAAvB,CAAV;AACD;AACD,SAAOE,OAAP;AACD,CAPD;;AASAjxB,aAAa71B,SAAb,CAAuB6lD,kBAAvB,GAA4C,UAAUxsB,eAAV,EAA2B;AACrE;AACA,MAAImtB,wBAAwBntB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CAA5B;AACAjiD,IAAEgM,IAAF,CAAO,KAAKwrB,iBAAL,CAAuB8vB,gBAAvB,EAAP,EAAkD,UAAUhrC,UAAV,EAAsBirC,eAAtB,EAAuC;AACvF,QAAIC,4BAA4BT,sBAAsBQ,eAAtB,CAAhC;AACAjrC,eAAWjO,GAAX,CAAe,MAAf,EAAuBurB,gBAAgBmpB,gBAAhB,CAAiCyE,yBAAjC,CAAvB;AACA,SAAKC,mBAAL,CAAyBnrC,UAAzB,EAAqCkrC,yBAArC,EAAgE5tB,eAAhE;;AAEAtd,eAAWpO,KAAX;AACD,GAND,EAMG,IANH;;AAQA;AACA,MAAIw5C,wBAAwB9tB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CAA5B;AACAjiD,IAAEgM,IAAF,CAAO,KAAKwrB,iBAAL,CAAuBmwB,eAAvB,EAAP,EAAiD,UAAUrrC,UAAV,EAAsBirC,eAAtB,EAAuC;AACtF,QAAIC,4BAA4BE,sBAAsBH,eAAtB,CAAhC;AACA,QAAI9M,OAAO7gB,gBAAgBmpB,gBAAhB,CAAiCyE,yBAAjC,CAAX;AACAlrC,eAAWjO,GAAX,CAAe,MAAf,EAAuBosC,IAAvB;AACA;AACAn+B,eAAWjO,GAAX,CAAeosC,IAAf;AACAn+B,eAAWjO,GAAX,CAAe,YAAf,EAA6BurB,gBAAgBkpB,sBAAhB,EAA7B;AACAxmC,eAAWjO,GAAX,CAAe,kBAAf,EAAmC,KAAKu5C,yCAAL,CAA+ChuB,eAA/C,CAAnC;AACA,SAAK6tB,mBAAL,CAAyBnrC,UAAzB,EAAqCkrC,yBAArC,EAAgE5tB,eAAhE;;AAEAtd,eAAWpO,KAAX;AACD,GAXD,EAWG,IAXH;AAYD,CAzBD;;AA2BAkoB,aAAa71B,SAAb,CAAuBqnD,yCAAvB,GAAmE,UAAUhuB,eAAV,EAA2B;AAC5F,MAAIktB,eAAe,EAAnB;AACA,MAAIY,wBAAwB9tB,gBAAgBqoB,qBAAhB,CAAsC,QAAtC,CAA5B;AACA,MAAIyF,sBAAsBxgD,MAAtB,GAA+B,CAAnC,EAAsC;AACpC4/C,iBAAa3/C,IAAb,CAAkB,KAAK0gD,8BAAL,CAAoCjuB,eAApC,EAAqD8tB,qBAArD,CAAlB;AACD;AACD,SAAOZ,YAAP;AACD,CAPD;;AASA1wB,aAAa71B,SAAb,CAAuBsnD,8BAAvB,GAAwD,UAAUjuB,eAAV,EAA2BuoB,YAA3B,EAAyC;AAC/F,SAAOvoB,gBAAgBwoB,UAAhB,KAA+B,GAA/B,GAAqCD,aAAa56C,IAAb,CAAkB,GAAlB,CAArC,GAA8D,0BAArE;AACD,CAFD;;AAIA6uB,aAAa71B,SAAb,CAAuBknD,mBAAvB,GAA6C,UAAUnrC,UAAV,EAAsBwrC,gBAAtB,EAAwCluB,eAAxC,EAAyD;AACpG,MAAImuB,gBAAgBnuB,gBAAgBmpB,gBAAhB,CAAiC+E,gBAAjC,CAApB;AACA9nD,IAAEgM,IAAF,CAAO,KAAKg8C,gBAAL,CAAsB1rC,UAAtB,CAAP,EAA0C,UAAUu7B,WAAV,EAAuB;AAC/D,SAAKoQ,kBAAL,CAAwBpQ,WAAxB,EAAqCkQ,aAArC;AACD,GAFD,EAEG,IAFH;AAGD,CALD;;AAOA3xB,aAAa71B,SAAb,CAAuB0nD,kBAAvB,GAA4C,UAAUpQ,WAAV,EAAuBkQ,aAAvB,EAAsC;AAChF,MAAIG,gBAAgBH,iBAAiBA,cAAclL,aAA/B,IAAgDkL,cAAclL,aAAd,CAA4BD,KAAhG;AACA,MAAI;AACF,QAAIuL,iBAAiB;AACnBnvC,aAAO;AADY,KAArB;AAGA,QAAIkvC,aAAJ,EAAmB;AACjB,UAAIE,UAAUpC,0BAA0BF,mBAA1B,CAA8CjO,WAA9C,CAAd;AACA,UAAIwQ,iBAAiBroD,EAAE4S,MAAF,CAASs1C,aAAT,EAAwBE,QAAQzD,QAAhC,CAArB;AACA,UAAI,CAAC3kD,EAAE2T,OAAF,CAAU00C,cAAV,CAAL,EAAgC;AAC9BF,yBAAiBnoD,EAAEG,MAAF,CAASgoD,cAAT,EAAyBC,QAAQxD,KAAR,CAAcyD,cAAd,CAAzB,CAAjB;AACD;AACF;AACDxQ,gBAAYxpC,GAAZ,CAAgB85C,cAAhB;AACD,GAZD,CAYE,OAAO7lD,KAAP,EAAc;AACdu1C,gBAAYxpC,GAAZ,CAAgB,EAAE2K,OAAO,OAAT,EAAhB;AACAoL,QAAI9hB,KAAJ,CAAU,qBAAqBu1C,YAAYjqC,GAAZ,CAAgB,MAAhB,CAArB,GAA+C,yBAA/C,GAA2EtL,MAAMM,OAA3F;AACD;AACF,CAlBD;;AAoBAwzB,aAAa71B,SAAb,CAAuB+lD,qBAAvB,GAA+C,UAAU1sB,eAAV,EAA2B11B,QAA3B,EAAqCwc,UAArC,EAAiD;AAC9F,OAAK+W,oBAAL,CAA0BzrB,IAA1B,CAA+B,UAAUs8C,aAAV,EAAyB;AACtD,QAAIC,mBAAmB3uB,gBAAgBqpB,mBAAhB,CAAoCqF,cAAc16C,GAAd,CAAkB,IAAlB,CAApC,CAAvB;AACA,QAAI26C,gBAAJ,EAAsB;AACpBD,oBAAcj6C,GAAd,CAAkB;AAChBV,aAAK46C,iBAAiB56C,GAAjB,CAAqB,KAAK66C,YAAL,EAArB;AADW,OAAlB,EAEG;AACDtkD,kBAAUA,QADT;AAEDwc,oBAAYA;AAFX,OAFH;AAMD;AACF,GAVD,EAUG,IAVH;AAWD,CAZD;;AAcA0V,aAAa71B,SAAb,CAAuBgmD,qBAAvB,GAA+C,UAAU3sB,eAAV,EAA2B;AACxE,MAAI6uB,0BAA0B,KAAKC,iCAAL,EAA9B;AACAD,0BAAwBz8C,IAAxB,CAA6B,UAAUkb,YAAV,EAAwB;AACnD,QAAIyhC,mBAAmB/uB,gBAAgB2pB,uBAAhB,CAAwCr8B,aAAatZ,GAAb,CAAiB,IAAjB,CAAxC,CAAvB;AACA,QAAIR,KAAJ;AACA,QAAIu7C,gBAAJ,EAAsB;AACpBv7C,cAAQ;AACN9H,gBAAQqjD,iBAAiBrjD,MADnB;AAENqI,aAAKg7C,iBAAiBh7C,GAAjB,CAAqB,KAAK66C,YAAL,EAArB,CAFC;AAGN7hC,eAAOgiC,iBAAiBhiC;AAHlB,OAAR;;AAMAvZ,cAAQpN,EAAEga,IAAF,CAAO5M,KAAP,EAAc8Z,aAAa1Y,aAAb,EAAd,CAAR;;AAEA,UAAIm6C,iBAAiBC,aAArB,EAAoC;AAClCx7C,gBAAQpN,EAAEG,MAAF,CAASiN,KAAT,EAAgB;AACtB9K,iBAAO;AACLM,qBAAS+lD,iBAAiBC;AADrB;AADe,SAAhB,CAAR;AAKA1hC,qBAAa7Y,GAAb,CAAiBjB,KAAjB;AACD,OAPD,MAOO;AACL8Z,qBAAa7Y,GAAb,CAAiBjB,KAAjB;AACA8Z,qBAAahZ,KAAb;AACD;AACF;AACF,GAxBD,EAwBG,IAxBH;AAyBD,CA3BD;;AA6BAkoB,aAAa71B,SAAb,CAAuBioD,YAAvB,GAAsC,YAAY;AAChD;AACA;AACA,MAAI/gD,OAAOohD,QAAP,CAAgBtG,QAAhB,KAA6B,OAAjC,EAA0C;AACxC,WAAO,MAAP;AACD;AACD,SAAO96C,OAAOohD,QAAP,CAAgBtG,QAAhB,CAAyB7qC,OAAzB,CAAiC,GAAjC,EAAsC,EAAtC,CAAP;AACD,CAPD;;AASA0e,aAAa71B,SAAb,CAAuB05B,SAAvB,GAAmC,UAAUt1B,MAAV,EAAkB;AACnD3E,IAAEgM,IAAF,CAAOrH,MAAP,EAAe,KAAKmkD,SAApB,EAA+B,IAA/B;AACA,OAAKC,gBAAL;AACD,CAHD;;AAKA3yB,aAAa71B,SAAb,CAAuBuoD,SAAvB,GAAmC,UAAUxmD,KAAV,EAAiB;AAClD,MAAIA,MAAM8yB,YAAN,EAAJ,EAA0B;AACxB,QAAI9Y,aAAa,KAAKkb,iBAAL,CAAuB5pB,GAAvB,CAA2BtL,MAAM0B,OAAjC,CAAjB;AACAsY,kBAAcA,WAAWlO,QAAX,CAAoB9L,KAApB,CAAd;AACD,GAHD,MAGO,IAAIA,MAAM+yB,eAAN,EAAJ,EAA6B;AAClC,QAAIozB,0BAA0B,KAAKC,iCAAL,EAA9B;AACA,QAAI13C,gBAAgBy3C,wBAAwB76C,GAAxB,CAA4BtL,MAAM8B,UAAlC,CAApB;AACA4M,qBAAiBA,cAAc5C,QAAd,CAAuB9L,KAAvB,CAAjB;AACD;AACF,CATD;;AAWA8zB,aAAa71B,SAAb,CAAuBwoD,gBAAvB,GAA0C,YAAY;AACpD,MAAIC,eAAe,KAAKxxB,iBAAL,CAAuBpoB,KAAvB,GAChBpB,GADgB,CACZ,KAAKg6C,gBADO,EAEhBz4C,OAFgB,GAGhB05C,OAHgB,GAIhBz5C,KAJgB,EAAnB;;AAMAxP,IAAEgM,IAAF,CAAOg9C,YAAP,EAAqB,UAAUnR,WAAV,EAAuB;AAC1CA,gBAAYxpC,GAAZ,CAAgB,OAAhB,EAAyB,OAAzB;AACD,GAFD;AAGD,CAVD;;AAYA+nB,aAAa71B,SAAb,CAAuBynD,gBAAvB,GAA0C,UAAU1rC,UAAV,EAAsB;AAC9D,SAAOA,WAAWy9B,OAAX,IAAsB,CAC3Bz9B,WAAWy9B,OAAX,CAAmBvD,MADQ,EAE3Bl6B,WAAWy9B,OAAX,CAAmB9oB,QAFQ,EAG3B3U,WAAWy9B,OAAX,CAAmBnD,UAHQ,CAA7B;AAKD,CAND;;AAQAxgB,aAAa71B,SAAb,CAAuBmoD,iCAAvB,GAA2D,YAAY;AACrE,MAAIpiC,gBAAgBb,gBAAgBmB,sBAAhB,CAAuC,KAAK4Q,iBAA5C,EAA+D,KAAKC,oBAApE,CAApB;AACA,SAAO,IAAIx3B,SAAS6Q,UAAb,CAAwBwV,aAAxB,CAAP;AACD,CAHD;;AAKAvkB,OAAOC,OAAP,GAAiBo0B,YAAjB,C;;;;;;;;;ACzQA,IAAIp2B,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;;AAEA,IAAIgc,mBAAmB,OAAvB;AACA,IAAII,qBAAqB,SAAzB;AACA,IAAIC,oBAAoB,QAAxB;;AAEA,IAAIgiC,SAASn+C,SAAS6Q,UAAT,CAAoB3Q,MAApB,CAA2B;;AAEtCC,cAAY,sBAAY;AACtB,SAAK+wB,UAAL,GAAkB,UAAUmT,CAAV,EAAa;AAC7B,aAAO4K,SAAS5K,EAAE12B,GAAF,CAAM,OAAN,CAAT,EAAyB,EAAzB,CAAP;AACD,KAFD;AAGA,SAAKrM,IAAL,CAAU,KAAV,EAAiB,KAAK2nD,cAAtB;AACA,SAAK3nD,IAAL,CAAU,QAAV,EAAoB,KAAK2nD,cAAzB;AACD,GARqC;;AAUtC;;;;AAIAA,kBAAgB,wBAAUh4C,KAAV,EAAiBi4C,GAAjB,EAAsB9oD,OAAtB,EAA+B;AAC7C,QAAI,KAAKotB,IAAL,KAAc,CAAlB,EAAqB;AACnB;AACA,WAAK27B,EAAL,CAAQ,CAAR,EAAW/6C,GAAX,CAAe,EAAEg7C,OAAO,CAAT,EAAf;;AAEA,UAAI,KAAK57B,IAAL,KAAc,CAAlB,EAAqB;AACnB,YAAI67B,eAAe,KAAKn7B,MAAL,CAAY,UAAUm7B,YAAV,EAAwBhtC,UAAxB,EAAoCsM,KAApC,EAA2C;AACxE,cAAI9lB,OAAOwZ,WAAW1O,GAAX,CAAe,MAAf,CAAX;AACA,cAAIgb,UAAU,CAAV,IAAe9lB,SAASiZ,gBAA5B,EAA8C;AAAE,mBAAOutC,YAAP;AAAsB;AACtEA,uBAAaxmD,IAAb,IAAqBwmD,aAAaxmD,IAAb,KAAsB,EAA3C;AACAwmD,uBAAaxmD,IAAb,EAAmBqE,IAAnB,CAAwBmV,UAAxB;AACA,iBAAOgtC,YAAP;AACD,SANkB,EAMhB,EANgB,CAAnB;;AAQA,YAAIC,YAAY,CAAhB;AACA,YAAIC,cAAc,CAACrtC,kBAAD,EAAqBC,iBAArB,EAAwCL,gBAAxC,CAAlB;AACA/b,UAAEgM,IAAF,CAAOw9C,WAAP,EAAoB,UAAUjtC,SAAV,EAAqB;AACvC,cAAItZ,SAASqmD,aAAa/sC,SAAb,KAA2B,EAAxC;AACAvc,YAAEgM,IAAF,CAAO/I,MAAP,EAAe,UAAUqZ,UAAV,EAAsB;AACnCA,uBAAWjO,GAAX,CAAe;AACbg7C,qBAAOE;AADM,aAAf;AAGAA,yBAAa,CAAb;AACD,WALD;AAMD,SARD;AASD;AACF;;AAED,SAAKE,IAAL;AACD,GA3CqC;;AA6CtCnC,oBAAkB,4BAAY;AAC5B,WAAO,KAAKoC,gBAAL,CAAsBvtC,kBAAtB,CAAP;AACD,GA/CqC;;AAiDtCwtC,kBAAgB,0BAAY;AAC1B,WAAO,KAAKD,gBAAL,CAAsB3tC,gBAAtB,CAAP;AACD,GAnDqC;;AAqDtC4rC,mBAAiB,2BAAY;AAC3B,WAAO,KAAK+B,gBAAL,CAAsBttC,iBAAtB,CAAP;AACD,GAvDqC;;AAyDtCstC,oBAAkB,0BAAUntC,SAAV,EAAqB;AACrC,WAAO,KAAKlB,MAAL,CAAY,UAAUiB,UAAV,EAAsB;AACvC,aAAOA,WAAW1O,GAAX,CAAe,MAAf,MAA2B2O,SAAlC;AACD,KAFM,CAAP;AAGD,GA7DqC;;AA+DtCqtC,wBAAsB,gCAAY;AAChC,WAAO,KAAKvuC,MAAL,CAAY,UAAUiB,UAAV,EAAsB;AACvC,aAAO,CAAC,CAACA,WAAWy9B,OAApB;AACD,KAFM,CAAP;AAGD,GAnEqC;;AAqEtC8P,oBAAkB,0BAAU99C,IAAV,EAAgB+9C,EAAhB,EAAoB;AACpC,QAAI/9C,SAAS+9C,EAAb,EAAiB;AACf,aAAO,KAAP;AACD;;AAED,QAAIC,cAAc,KAAKX,EAAL,CAAQr9C,IAAR,CAAlB;;AAEA,QAAI,CAACg+C,WAAD,IAAgBA,YAAYn8C,GAAZ,CAAgB,MAAhB,MAA4BuO,kBAAhD,EAAoE;AAClE,aAAO,KAAP;AACD;;AAED,SAAKnN,MAAL,CAAY+6C,WAAZ,EAAyB,EAAEpoD,QAAQ,IAAV,EAAzB;AACA,SAAKykB,GAAL,CAAS2jC,WAAT,EAAsB;AACpBX,UAAIU,EADgB;AAEpBnoD,cAAQ;AAFY,KAAtB;;AAKA,SAAKf,OAAL,CAAa,YAAb,EAA2BmpD,WAA3B;;AAEA,WAAOA,WAAP;AACD;AAzFqC,CAA3B,CAAb;;AA4FAhoD,OAAOC,OAAP,GAAiBo8C,MAAjB,C;;;;;;;;;ACnGA,IAAIp+C,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;;AAEA,IAAIm2B,sBAAsBj2B,SAAS6Q,UAAT,CAAoB3Q,MAApB,CAA2B;AACnD6pD,yBAAuB,iCAAY;AACjC,WAAO,KAAKzd,GAAL,CAAS,UAAU+b,aAAV,EAAyB;AACvC,UAAI11C,SAAS01C,cAAc11C,MAA3B;AACA,aAAQA,UAAU,CAACA,OAAOe,OAAP,EAAnB;AACD,KAHM,CAAP;AAID,GANkD;;AAQnD0E,cAAY,sBAAY;AACtB,WAAO,KAAK8V,MAAL,CAAY,UAAUzY,OAAV,EAAmB4yC,aAAnB,EAAkC;AACnD,UAAI11C,SAAS01C,cAAc11C,MAA3B;AACA,UAAIA,UAAU,CAACA,OAAOe,OAAP,EAAf,EAAiC;AAC/B+B,gBAAQ,WAAR,IAAuBA,QAAQ,WAAR,KAAwB,EAA/C;AACA1V,UAAEG,MAAF,CAASuV,QAAQ,WAAR,CAAT,EAA+B9C,OAAO3C,MAAP,EAA/B;AACD;AACD,aAAOyF,OAAP;AACD,KAPM,EAOJ,EAPI,CAAP;AAQD;AAjBkD,CAA3B,CAA1B;;AAoBA3T,OAAOC,OAAP,GAAiBk0B,mBAAjB,C;;;;;;;;;ACvBA,IAAIl2B,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAID,IAAIC,mBAAOA,CAAC,EAAR,CAAR;AACA,IAAIE,WAAWF,mBAAOA,CAAC,CAAR,CAAf;AACA,IAAIylB,aAAazlB,mBAAOA,CAAC,EAAR,CAAjB;AACA,IAAI4G,OAAO5G,mBAAOA,CAAC,CAAR,CAAX;;AAEA,IAAIk2B,oBAAoBh2B,SAASC,KAAT,CAAeC,MAAf,CAAsB;AAC5CmT,YAAU;AACRsF,aAAS,IADD;AAER9V,UAAM;AAFE,GADkC;;AAM5C1C,cAAY,oBAAUgQ,UAAV,EAAsB/P,OAAtB,EAA+B;AACzCA,cAAUA,WAAW,EAArB;;AAEA,QAAI,CAACA,QAAQwmB,gBAAb,EAA+B;AAC7B,YAAM,IAAIlkB,KAAJ,CAAU,qCAAV,CAAN;AACD;AACD,SAAK60B,iBAAL,GAAyBn3B,QAAQwmB,gBAAjC;AACD,GAb2C;;AAe5C+nB,YAAU,kBAAUtsC,KAAV,EAAiB;AACzB,QAAIQ,OAAOR,MAAMQ,IAAjB;;AAEA,QAAI,CAACA,IAAL,EAAW;AACT,YAAM,IAAIH,KAAJ,CAAU,kCAAV,CAAN;AACD;;AAED,SAAK/B,OAAL,CAAa,WAAWkC,IAAxB,EAA8BR,KAA9B;AACD,GAvB2C;;AAyB5C0vB,uBAAqB,6BAAUi4B,QAAV,EAAoB90B,OAApB,EAA6B;AAChDn1B,MAAEgM,IAAF,CAAO,KAAKk+C,iBAAL,EAAP,EAAiCD,SAAS1oD,IAAT,CAAc4zB,WAAW,IAAzB,CAAjC;AACD,GA3B2C;;AA6B5C+0B,qBAAmB,6BAAY;AAC7B,WAAO,KAAK1yB,iBAAL,CAAuB8vB,gBAAvB,EAAP;AACD,GA/B2C;;AAiC5CpF,cAAY,sBAAY;AACtB,WAAO,KAAK1qB,iBAAL,CAAuBS,MAAvB,CAA8BzS,WAAW5I,qBAAzC,CAAP;AACD,GAnC2C;;AAqC5CutC,+BAA6B,qCAAU7tC,UAAV,EAAsB;AACjD,WAAO,KAAK4tC,iBAAL,GAAyBlgD,OAAzB,CAAiCsS,UAAjC,CAAP;AACD,GAvC2C;;AAyC5CixB,0BAAwB,gCAAU3kB,KAAV,EAAiB;AACvC,WAAO,KAAKshC,iBAAL,GAAyBthC,KAAzB,CAAP;AACD,GA3C2C;;AA6C5CwhC,qBAAmB,2BAAU5qC,EAAV,EAAc;AAC/B,WAAO,KAAKgY,iBAAL,CAAuB5pB,GAAvB,CAA2B4R,EAA3B,CAAP;AACD,GA/C2C;;AAiD5CwQ,WAAS,mBAAY;AACnB,WAAO,KAAP;AACD,GAnD2C;;AAqD5CgD,WAAS,mBAAY;AACnB,WAAO,CAAC,CAAC,KAAKplB,GAAL,CAAS,MAAT,CAAT;AACD,GAvD2C;;AAyD5CqkC,iBAAe,yBAAY;AACzB,WAAQ,KAAKrkC,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBokC,UAAtC,IAAqD,EAA5D;AACD,GA3D2C;;AA6D5C3e,qCAAmC,6CAAY;AAC7C,QAAI2D,cAAc,KAAK+a,kBAAL,EAAlB;AACA,QAAIC,aAAa,KAAKC,aAAL,EAAjB;;AAEA,QAAID,cAAcA,WAAW9qC,MAA7B,EAAqC;AACnC,aAAOlH,EAAEgO,GAAF,CAAMgkC,UAAN,EAAkB,UAAUmV,SAAV,EAAqB;AAC5C,eAAOnwB,YAAYtf,OAAZ,CAAoB,KAApB,EAA2ByvC,SAA3B,CAAP;AACD,OAFM,CAAP;AAGD;;AAED,WAAO,CAAEnwB,WAAF,CAAP;AACD,GAxE2C;;AA0E5C+a,sBAAoB,4BAAUjvC,IAAV,EAAgB;AAClCA,WAAOA,QAAQ,KAAf;;AAEA,QAAIgvC,kBAAmB,KAAKlkC,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBwlB,KAA5D;;AAEA,QAAI,CAAC0e,eAAL,EAAsB,OAAO,EAAP;;AAEtB,QAAIhvC,SAAS,KAAb,EAAoB;AAClB,UAAI,KAAKunD,mBAAL,EAAJ,EAAgC;AAC9B,eAAO,EAAP;AACD;AACD,aAAO,KAAKC,2BAAL,CAAiCxY,eAAjC,CAAP;AACD,KALD,MAKO,IAAIhvC,SAAS,KAAb,EAAoB;AACzB,aAAO,KAAKynD,2BAAL,CAAiCzY,eAAjC,CAAP;AACD;AACF,GAzF2C;;AA2F5CwY,+BAA6B,qCAAUtzB,WAAV,EAAuB;AAClD,QAAIwzB,sBAAsB,KAAKC,gCAAL,EAA1B;;AAEA,QAAID,mBAAJ,EAAyB;AACvBxzB,oBAAcA,YACXtf,OADW,CACH,gBADG,EACe8yC,mBADf,EAEX9yC,OAFW,CAEH,UAFG,EAES,KAFT,CAAd;;AAIA,aAAO,KAAKgzC,sBAAL,CAA4B1zB,WAA5B,CAAP;AACD;;AAED,WAAO,EAAP;AACD,GAvG2C;;AAyG5CuzB,+BAA6B,qCAAUvzB,WAAV,EAAuB;AAClDA,kBAAcA,YACXtf,OADW,CACH,gBADG,EACe,QADf,EAEXA,OAFW,CAEH,UAFG,EAES,KAFT,CAAd;AAGA,WAAO,KAAKgzC,sBAAL,CAA4B1zB,WAA5B,CAAP;AACD,GA9G2C;;AAgH5CqzB,uBAAqB,+BAAY;AAC/B,WAAOrqD,EAAEwK,GAAF,CAAM,KAAK0/C,iBAAL,EAAN,EAAgC,UAAU5tC,UAAV,EAAsB;AAC3D,aAAO,CAACA,WAAW1C,SAAX,EAAR;AACD,KAFM,CAAP;AAGD,GApH2C;;AAsH5C6wC,oCAAkC,0CAAU98C,GAAV,EAAe;AAC/C,QAAIk5C,2BAA2B,KAAKj5C,GAAL,CAAS,0BAAT,CAA/B;AACA,WAAO5N,EAAEmuB,MAAF,CAAS,KAAK+7B,iBAAL,EAAT,EAAmC,UAAU77B,OAAV,EAAmB/R,UAAnB,EAA+B2V,UAA/B,EAA2C;AACnF,UAAI3V,WAAW1C,SAAX,EAAJ,EAA4B;AAC1ByU,gBAAQlnB,IAAR,CAAa0/C,yBAAyB50B,UAAzB,CAAb;AACD;AACD,aAAO5D,OAAP;AACD,KALM,EAKJ,EALI,EAKA9mB,IALA,CAKK,GALL,CAAP;AAMD,GA9H2C;;AAgI5CojD,8BAA4B,oCAAUh9C,GAAV,EAAe;AACzC,WAAO3N,EAAEmuB,MAAF,CAAS,KAAK+zB,UAAL,EAAT,EAA4B,UAAU7zB,OAAV,EAAmB/R,UAAnB,EAA+B2V,UAA/B,EAA2C;AAC5E,UAAI3V,WAAW1C,SAAX,EAAJ,EAA4B;AAC1ByU,gBAAQlnB,IAAR,CAAa8qB,UAAb;AACD;AACD,aAAO5D,OAAP;AACD,KALM,EAKJ,EALI,EAKA9mB,IALA,CAKK,GALL,CAAP;AAMD,GAvI2C;;AAyI5C0mC,uBAAqB,+BAAY;AAC/B,WAAO,CAAC,CAAC,KAAK8D,kBAAL,EAAT;AACD,GA3I2C;;AA6I5C5e,qCAAmC,2CAAUlB,UAAV,EAAsB;AACvD,QAAI24B,mBAAoB,KAAKh9C,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBslB,KAArC,IAA8C,KAAKtlB,GAAL,CAAS,MAAT,EAAiBslB,KAAjB,CAAuBjB,UAAvB,CAA/C,IAAsF,EAA7G;;AAEA,QAAI,KAAKrkB,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBokC,UAAzC,EAAqD;AACnD,UAAIA,aAAa,KAAKpkC,GAAL,CAAS,MAAT,EAAiBokC,UAAlC;AACA4Y,yBAAmB5qD,EAAEgO,GAAF,CAAM48C,gBAAN,EAAwB,UAAUj9C,GAAV,EAAe1G,CAAf,EAAkB;AAC3D,eAAO0G,IAAI+J,OAAJ,CAAY,KAAZ,EAAmBs6B,WAAW/qC,CAAX,CAAnB,CAAP;AACD,OAFkB,CAAnB;AAGD;;AAED,WAAOjH,EAAEgO,GAAF,CAAM48C,gBAAN,EAAwB,KAAKF,sBAA7B,EAAqD,IAArD,CAAP;AACD,GAxJ2C;;AA0J5CG,wBAAsB,8BAAU54B,UAAV,EAAsB;AAC1C,WAAO,KAAKrkB,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBwC,UAArC,IAAmD,KAAKxC,GAAL,CAAS,MAAT,EAAiBwC,UAAjB,CAA4B6hB,UAA5B,CAA1D;AACD,GA5J2C;;AA8J5C64B,6BAA2B,qCAAY;AACrC,QAAIC,yBAAyB,KAAKn9C,GAAL,CAAS,MAAT,KAAoB,KAAKA,GAAL,CAAS,MAAT,EAAiBsgC,KAAlE;AACA,QAAI6c,sBAAJ,EAA4B;AAC1BA,+BAAyB,KAAKC,kBAAL,CAAwBD,sBAAxB,EAAgD,CAAE,WAAW,KAAKJ,0BAAL,EAAb,CAAhD,CAAzB;AACAI,+BAAyB,KAAKL,sBAAL,CAA4BK,sBAA5B,CAAzB;AACAA,+BAAyBA,uBAAuBrzC,OAAvB,CAA+B,KAA/B,EAAsC,KAAKu6B,aAAL,GAAqB,CAArB,CAAtC,CAAzB;AACD;AACD,WAAO8Y,sBAAP;AACD,GAtK2C;;AAwK5CE,mBAAiB,yBAAUh5B,UAAV,EAAsBi5B,SAAtB,EAAiCpzB,QAAjC,EAA2C;AAC1D,QAAIqzB,mBAAmB,KAAKN,oBAAL,CAA0B54B,UAA1B,CAAvB;AACA,QAAI,CAACk5B,gBAAL,EAAuB;AACrB,YAAM,IAAIxoD,KAAJ,CAAU,iDAAV,CAAN;AACD;;AAED,QAAIgL,MAAM,KAAK+8C,sBAAL,CAA4BS,mBAAmB,GAAnB,GAAyBD,SAArD,CAAV;;AAEAprD,MAAEihD,IAAF,CAAO;AACLE,gBAAU,OADL;AAELtzC,WAAKA,GAFA;AAGLwzC,qBAAe,4BAA4Bx6C,KAAKkC,kBAAL,CAAwB,KAAKoH,MAAL,EAAxB,CAHtC;AAIL28B,aAAO,IAJF;AAKLvsB,eAAS,iBAAU7Y,IAAV,EAAgB;AACvB;AACAswB,iBAAStwB,IAAT;AACD,OARI;AASLlF,aAAO,eAAUkF,IAAV,EAAgB;AACrB;AACA;AACAswB,iBAAS,IAAT;AACD;AAbI,KAAP;AAeD,GA/L2C;;AAiM5C4yB,0BAAwB,gCAAU/8C,GAAV,EAAe;AACrC,QAAI0C,SAAS,EAAb;AACA,QAAI,KAAKzC,GAAL,CAAS,QAAT,CAAJ,EAAwB;AACtByC,aAAOlJ,IAAP,CAAY,aAAa,KAAKyG,GAAL,CAAS,QAAT,CAAzB;AACD,KAFD,MAEO,IAAI,KAAKA,GAAL,CAAS,WAAT,CAAJ,EAA2B;AAChC,UAAIC,YAAY,KAAKD,GAAL,CAAS,WAAT,CAAhB;AACA,UAAIC,qBAAqBC,KAAzB,EAAgC;AAC9B9N,UAAEgM,IAAF,CAAO6B,SAAP,EAAkB,UAAUI,KAAV,EAAiB;AACjCoC,iBAAOlJ,IAAP,CAAY,kBAAkB8G,KAA9B;AACD,SAFD;AAGD,OAJD,MAIO;AACLoC,eAAOlJ,IAAP,CAAY,gBAAgB0G,SAA5B;AACD;AACF;;AAED,WAAO,KAAKm9C,kBAAL,CAAwBr9C,GAAxB,EAA6B0C,MAA7B,CAAP;AACD,GAjN2C;;AAmN5C26C,sBAAoB,4BAAUr9C,GAAV,EAAe0C,MAAf,EAAuB;AACzC,QAAIA,OAAOnJ,MAAX,EAAmB;AACjB,UAAIkkD,YAAY,GAAhB;AACA,UAAIz9C,IAAI3D,OAAJ,CAAY,GAAZ,MAAqB,CAAC,CAA1B,EAA6B;AAC3BohD,oBAAY,GAAZ;AACD;AACD,aAAOz9C,MAAMy9C,SAAN,GAAkB/6C,OAAO9I,IAAP,CAAY,GAAZ,CAAzB;AACD;AACD,WAAOoG,GAAP;AACD,GA5N2C;;AA8N5CkkB,4BAA0B,kCAAUiG,QAAV,EAAoB;AAC5C,SAAKN,iBAAL,CAAuBrf,EAAvB,CAA0B,gBAA1B,EAA4C,UAAUmE,UAAV,EAAsB;AAChE,UAAI,KAAK+uC,eAAL,CAAqB/uC,UAArB,CAAJ,EAAsC;AACpCwb,iBAASxb,UAAT;AACD;AACF,KAJD,EAIG,IAJH;AAKD,GApO2C;;AAsO5CgvC,gBAAc,sBAAUxzB,QAAV,EAAoB;AAChC,SAAKN,iBAAL,CAAuBrf,EAAvB,CAA0B,KAA1B,EAAiC,UAAUmE,UAAV,EAAsB;AACrD,UAAI,KAAK+uC,eAAL,CAAqB/uC,UAArB,CAAJ,EAAsC;AACpCwb,iBAASxb,UAAT,EAAqB,KAAKixB,sBAAL,CAA4BjxB,UAA5B,CAArB;AACD;AACF,KAJD,EAIG,IAJH;AAKD,GA5O2C;;AA8O5C+uC,mBAAiB,yBAAU/uC,UAAV,EAAsB;AACrC,WAAO,KAAK4tC,iBAAL,GAAyBlgD,OAAzB,CAAiCsS,UAAjC,KAAgD,CAAvD;AACD;AAhP2C,CAAtB,CAAxB;;AAmPAva,OAAOC,OAAP,GAAiBi0B,iBAAjB,C;;;;;;;;;ACzPA,IAAIj2B,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAIylB,aAAazlB,mBAAOA,CAAC,EAAR,CAAjB;;AAEA,IAAIwrD,2BAA2B,OAA/B;;AAEA;AACA,IAAIC,kBAAkB,MAAtB;AACA,IAAIxvC,mBAAmB,OAAvB;AACA,IAAIyvC,oBAAoB,QAAxB;AACA,IAAIrvC,oBAAoB,QAAxB;;AAEA;;;AAGA,SAASwB,SAAT,CAAoBiJ,gBAApB,EAAsC;AACpC,SAAOA,iBAAiBzX,KAAjB,GACJpB,GADI,CACA09C,mBADA,EAEJn8C,OAFI,GAGJC,KAHI,EAAP;AAID;;AAED,SAASk8C,mBAAT,CAA8BpvC,UAA9B,EAA0C;AACxC,MAAIkJ,WAAW/I,YAAX,CAAwBH,UAAxB,CAAJ,EAAyC;AACvC,WAAOqvC,oBAAoBrvC,UAApB,CAAP;AACD,GAFD,MAEO,IAAIkJ,WAAW9I,YAAX,CAAwBJ,UAAxB,CAAJ,EAAyC;AAC9C,WAAOsvC,qBAAqBtvC,UAArB,CAAP;AACD,GAFM,MAEA,IAAIkJ,WAAW7I,UAAX,CAAsBL,UAAtB,CAAJ,EAAuC;AAC5C,WAAOuvC,mBAAmBvvC,UAAnB,CAAP;AACD,GAFM,MAEA,IAAIkJ,WAAW3I,cAAX,CAA0BP,UAA1B,CAAJ,EAA2C;AAChD,WAAOwvC,sBAAsBxvC,UAAtB,CAAP;AACD,GAFM,MAEA,IAAIkJ,WAAW1I,aAAX,CAAyBR,UAAzB,CAAJ,EAA0C;AAC/C,WAAOyvC,sBAAsBzvC,UAAtB,CAAP;AACD;AACF;;AAED,SAASqvC,mBAAT,CAA8BrvC,UAA9B,EAA0C;AACxC,SAAO;AACLkD,QAAIlD,WAAW1O,GAAX,CAAe,IAAf,CADC;AAEL9K,UAAM0oD,eAFD;AAGLnrD,aAAS;AACP22B,mBAAa1a,WAAW1O,GAAX,CAAe,aAAf,CADN;AAEPokC,kBAAY11B,WAAW1O,GAAX,CAAe,YAAf,CAFL;AAGPo+C,WAAK1vC,WAAW1O,GAAX,CAAe,KAAf;AAHE;AAHJ,GAAP;AASD;;AAED,SAASi+C,kBAAT,CAA6BvvC,UAA7B,EAAyC;AACvC,SAAO;AACLkD,QAAIlD,WAAW1O,GAAX,CAAe,IAAf,CADC;AAEL9K,UAAM0oD,eAFD;AAGLnrD,aAAS;AACP22B,mBAAa1a,WAAW1O,GAAX,CAAe,aAAf,CADN;AAEPo+C,WAAK;AAFE;AAHJ,GAAP;AAQD;;AAED,SAASJ,oBAAT,CAA+BtvC,UAA/B,EAA2C;AACzC,SAAO;AACLkD,QAAIlD,WAAW1O,GAAX,CAAe,IAAf,CADC;AAEL9K,UAAMkZ,gBAFD;AAGL3b,aAAS;AACPmkD,aAAOloC,WAAW1O,GAAX,CAAe,OAAf,CADA;AAEPq+C,gBAAU3vC,WAAW1O,GAAX,CAAe,OAAf;AAFH;AAHJ,GAAP;AAQD;;AAED,SAASk+C,qBAAT,CAAgCxvC,UAAhC,EAA4C;AAC1C,MAAIjc,UAAU6rD,sCAAsC5vC,UAAtC,CAAd;AACAjc,UAAQs9C,aAAR,GAAwBrhC,WAAW89B,yBAAX,EAAxB;;AAEA,MAAI99B,WAAWu9B,UAAX,IAAyBv9B,WAAWu9B,UAAX,CAAsBvB,SAAtB,EAA7B,EAAgE;AAC9Dj4C,YAAQ+P,UAAR,GAAqB;AACnBoP,UAAI,YADe;AAEnB2zB,eAAS72B,WAAWu9B,UAAX,CAAsBnlB,aAAtB;AAFU,KAArB;AAID;;AAED,MAAIhX,SAASpB,WAAW1O,GAAX,CAAe,SAAf,CAAT,CAAJ,EAAyC;AACvCvN,YAAQm7C,OAAR,GAAkBl/B,WAAW1O,GAAX,CAAe,SAAf,CAAlB;AACD;;AAED,MAAI8P,SAASpB,WAAW1O,GAAX,CAAe,SAAf,CAAT,CAAJ,EAAyC;AACvCvN,YAAQq7C,OAAR,GAAkBp/B,WAAW1O,GAAX,CAAe,SAAf,CAAlB;AACD;;AAED,MAAI,CAAC5N,EAAE2T,OAAF,CAAU2I,WAAW0M,WAArB,CAAL,EAAwC;AACtChpB,MAAEG,MAAF,CAASE,OAAT,EAAkB;AAChB2oB,mBAAa1M,WAAW0M;AADR,KAAlB;AAGD;;AAED,SAAO;AACLxJ,QAAIlD,WAAW1O,GAAX,CAAe,IAAf,CADC;AAEL9K,UAAM2oD,iBAFD;AAGLprD,aAASA;AAHJ,GAAP;AAKD;;AAED,SAAS0rD,qBAAT,CAAgCzvC,UAAhC,EAA4C;AAC1C,MAAIjc,UAAU6rD,sCAAsC5vC,UAAtC,CAAd;AACA,SAAO;AACLkD,QAAIlD,WAAW1O,GAAX,CAAe,IAAf,CADC;AAEL9K,UAAMsZ,iBAFD;AAGL/b,aAASA;AAHJ,GAAP;AAKD;;AAED,SAAS6rD,qCAAT,CAAgD5vC,UAAhD,EAA4D;AAC1D,MAAIjc,UAAU;AACZs5C,cAAUr9B,WAAW1O,GAAX,CAAe,UAAf,CADE;AAEZu+C,sBAAkB7vC,WAAW1O,GAAX,CAAe,kBAAf,KAAsC29C;AAF5C,GAAd;;AAKAlrD,UAAQ4D,MAAR,GAAiB,EAAEub,IAAIlD,WAAWkE,WAAX,EAAN,EAAjB;;AAEA,MAAIlE,WAAW1O,GAAX,CAAe,UAAf,CAAJ,EAAgC;AAC9BvN,YAAQ+rD,QAAR,GAAmB9vC,WAAW1O,GAAX,CAAe,UAAf,CAAnB;AACD;;AAED,SAAOvN,OAAP;AACD;AACD0B,OAAOC,OAAP,GAAiB,EAAE4b,WAAWA,SAAb,EAAjB,C;;;;;;;;;AC5HA,SAASA,SAAT,CAAoBkJ,mBAApB,EAAyC;AACvC,SAAOA,oBAAoBqH,MAApB,CAA2B,UAAU0zB,SAAV,EAAqByG,aAArB,EAAoC;AACpEzG,cAAUyG,cAAc16C,GAAd,CAAkB,IAAlB,CAAV,IAAqC06C,cAAcr4C,MAAd,EAArC;AACA,WAAO4xC,SAAP;AACD,GAHM,EAGJ,EAHI,CAAP;AAID;;AAED9/C,OAAOC,OAAP,GAAiB;AACf4b,aAAWA;AADI,CAAjB,C;;;;;;;ACPa;;AAEb,cAAc,mBAAO,CAAC,EAAW;;AAEjC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;AC/FA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB;;;;;;ACvBA;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;;;;;;;;AC1Ca;;AAEb,cAAc,mBAAO,CAAC,EAAW;AACjC,oBAAoB,mBAAO,CAAC,GAAkB;;AAE9C;AACA;AACA;;;;;;;;;;ACPA,IAAI5d,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAI0lB,kBAAkB1lB,mBAAOA,CAAC,EAAR,CAAtB;;AAEA;;;;AAIA,SAAS6d,SAAT,CAAoBiJ,gBAApB,EAAsCC,mBAAtC,EAA2D;AACzD,MAAIE,eAAevB,gBAAgBwB,eAAhB,CAAgCJ,gBAAhC,EAAkDC,mBAAlD,CAAnB;AACA,SAAOulC,4BAA4BrlC,YAA5B,CAAP;AACD;;AAED;;;AAGA,SAASqlC,2BAAT,CAAsCrlC,YAAtC,EAAoD;AAClD,MAAIslC,cAAc,EAAlB;AACA,SAAOtsD,EAAEmuB,MAAF,CAASnH,YAAT,EAAuB,UAAUmD,IAAV,EAAgBjnB,QAAhB,EAA0B;AACtD,QAAI,CAACopD,YAAYppD,SAAS0K,GAAT,CAAa,IAAb,CAAZ,CAAD,IAAoC,CAAC2+C,+BAA+BrpD,QAA/B,EAAyC8jB,YAAzC,CAAzC,EAAiG;AAC/FslC,kBAAYppD,SAAS0K,GAAT,CAAa,IAAb,CAAZ,IAAkC,IAAlC,CAD+F,CACvD;AACxCuc,WAAKhjB,IAAL,CAAUjE,SAAS+M,MAAT,EAAV;AACD;AACD,WAAOka,IAAP;AACD,GANM,EAMJ,EANI,CAAP;AAOD;;AAED;;;;AAIA,SAASoiC,8BAAT,CAAyCrpD,QAAzC,EAAmD8jB,YAAnD,EAAiE;AAC/D,SAAOhnB,EAAEusC,GAAF,CAAMvlB,YAAN,EAAoB,UAAUwlC,kBAAV,EAA8B;AACvD,QAAI,CAACtpD,SAAS6N,MAAT,CAAgBy7C,kBAAhB,CAAL,EAA0C;AACxC,aAAOA,mBAAmBt9C,gBAAnB,CAAoChM,SAAS0K,GAAT,CAAa,IAAb,CAApC,CAAP;AACD;AACD,WAAO,KAAP;AACD,GALM,CAAP;AAMD;;AAED7L,OAAOC,OAAP,GAAiB;AACf4b,aAAWA;AADI,CAAjB,C;;;;;;;;;ACvCA,IAAI6uC,qBAAqB1sD,mBAAOA,CAAC,GAAR,CAAzB;AACA,IAAI2sD,qBAAqB3sD,mBAAOA,CAAC,GAAR,CAAzB;AACA,IAAI4sD,kBAAkB5sD,mBAAOA,CAAC,GAAR,CAAtB;;AAEA;;;AAGA,SAAS6d,SAAT,CAAoBiJ,gBAApB,EAAsCC,mBAAtC,EAA2D;AACzD,SAAO;AACL68B,gBAAY,EAAEC,KAAK,CAAP,EADP;AAEL3gD,YAAQ0pD,gBAAgB/uC,SAAhB,CAA0BiJ,gBAA1B,CAFH;AAGLg7B,eAAW6K,mBAAmB9uC,SAAnB,CAA6BkJ,mBAA7B,CAHN;AAIL5B,cAAUunC,mBAAmB7uC,SAAnB,CAA6BiJ,gBAA7B,EAA+CC,mBAA/C;AAJL,GAAP;AAMD;;AAED/kB,OAAOC,OAAP,GAAiB;AACf4b,aAAWA;AADI,CAAjB,C;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAyC;AAC/C,IAAI,iCAAO,CAAC,sBAAY,EAAE,sBAAU,CAAC,oCAAE,OAAO;AAAA;AAAA;AAAA,oGAAC;AAC/C;AACA,OAAO,EAKJ;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,yBAAyB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,wBAAwB,aAAa;AACrC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;AChPD,IAAI5d,IAAID,mBAAOA,CAAC,CAAR,CAAR;AACA,IAAI6sD,iBAAiB7sD,mBAAOA,CAAC,GAAR,CAArB;;AAEA,SAASg2B,cAAT,GAA2B;AACzB,OAAK82B,QAAL,GAAgB,EAAhB;AACD;;AAED92B,eAAe+2B,MAAf,GAAwB;AACtBC,eAAa,IADS;AAEtBC,aAAWC,QAFW;AAGtBC,oBAAkB;AAHI,CAAxB;;AAMAn3B,eAAex1B,SAAf,CAAyBi6B,kBAAzB,GAA8C,UAAU2yB,cAAV,EAA0B;AACtE,OAAKpzC,KAAL;AACA/Z,IAAEgM,IAAF,CA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ACzB,UAAM43B,mBAAmB,gBAAnB,CAAN;AACD;AACF;;AAED,SAASwB,eAAT,CAA0Bt5B,SAA1B,EAAqCE,QAArC,EAA+C;AAC7C,MAAIq5B,WAAW,gFAAf;AACA,MAAI,CAACv5B,UAAUytB,KAAV,CAAgB8L,QAAhB,CAAL,EAAgC;AAC9B,UAAMzB,mBAAmB,mBAAnB,CAAN;AACD;AACD,MAAI93B,UAAUjtB,OAAV,CAAkBmtB,QAAlB,IAA8B,CAAlC,EAAqC;AACnC,UAAM43B,mBAAmB,8BAAnB,CAAN;AACD;AACF;;AAEDhtD,OAAOC,OAAP,GAAiBitD,MAAjB,C;;;;;;ACxgBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;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,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;ACzLD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,mBAAO,CAAC,GAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,iDAAiD,SAAS;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,qBAAqB,iBAAiB;AACtC;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA,+EAA+E,kBAAkB,EAAE;AACnG;AACA;AACA;;AAEA;AACA;AACA,iEAAiE;AACjE;AACA;;AAEA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA,CAAC;;;;;;;;ACxOD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wCAAwC,mBAAmB;AAC3D;AACA;;AAEA;AACA;AACA,kCAAkC,oBAAoB;AACtD;AACA;;AAEA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,uDAAuD;AACvD,SAAS;AACT;AACA,SAAS;AACT,8EAA8E;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,uBAAuB;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,+BAA+B,0BAA0B,eAAe;AACxE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA,KAAK;AACL;AACA;AACA,CAAC;;;;;;;;;;ACjdD;;;;;;;;;;;;;;;;;;;AAmBA;AACAlvD,mBAAOA,CAAC,GAAR;AACA;AACA,IAAIg4B,UAAUh4B,mBAAOA,CAAC,GAAR,CAAd;AACA,IAAI,CAAC0H,OAAOswB,OAAZ,EAAqB;AACnBtwB,SAAOswB,OAAP,GAAiBA,OAAjB;AACD;;AAED,IAAIk3B,SAASlvD,mBAAOA,CAAC,GAAR,CAAb;AACA,IAAIkE,SAASlE,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAIwrC,QAAQxrC,mBAAOA,CAAC,EAAR,CAAZ;AACA,IAAI+D,QAAQ/D,mBAAOA,CAAC,EAAR,CAAZ;AACA,IAAI0nB,WAAW1nB,mBAAOA,CAAC,EAAR,CAAf;AACA,IAAI6S,SAAS7S,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAI2iB,SAAS3iB,mBAAOA,CAAC,EAAR,CAAb;AACA,IAAI6gC,YAAY7gC,mBAAOA,CAAC,CAAR,CAAhB;;AAEA,IAAI0wD,QAAQ;AACV/lD,WAAS3K,mBAAOA,CAAC,EAAR,EAAiC2K,OADhC;AAEVjE,eAAam6B,UAAUn6B,WAFb;AAGVwoD,UAAQA,MAHE;AAIVhrD,UAAQA,MAJE;AAKVsnC,SAAOA,KALG;AAMVznC,SAAOA,KANG;AAOV2jB,YAAUA,QAPA;AAQV7U,UAAQA,MARE;AASV8P,UAAQA,MATE;AAUV7d,aAAW+7B,UAAU/7B;AAVX,CAAZ;;AAaA9C,OAAOC,OAAP,GAAiByuD,KAAjB,C","file":"carto.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[\"carto\"] = factory();\n\telse\n\t\troot[\"carto\"] = factory();\n})(window, function() {\nreturn "," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 145);\n","// Underscore.js 1.8.3\n// http://underscorejs.org\n// (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` in the browser, or `exports` on the server.\n var root = this;\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype;\n\n // Create quick reference variables for speed access to core prototypes.\n var\n push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var\n nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeBind = FuncProto.bind,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for the old `require()` API. If we're in\n // the browser, add `_` as a global object.\n if (typeof exports !== 'undefined') {\n if (typeof module !== 'undefined' && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.8.3';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n case 2: return function(value, other) {\n return func.call(context, value, other);\n };\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n // A mostly-internal function to generate callbacks that can be applied\n // to each element in a collection, returning the desired result — either\n // identity, an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value)) return _.matcher(value);\n return _.property(value);\n };\n _.iteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, undefinedOnly) {\n return function(obj) {\n var length = arguments.length;\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!undefinedOnly || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var property = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = property('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n function createReduce(dir) {\n // Optimized iterator function as using arguments.length\n // in the main function will deoptimize the, see #1991.\n function iterator(obj, iteratee, memo, keys, index, length) {\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n }\n\n return function(obj, iteratee, memo, context) {\n iteratee = optimizeCb(iteratee, context, 4);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n // Determine the initial value if none is provided.\n if (arguments.length < 3) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n return iterator(obj, iteratee, memo, keys, index, length);\n };\n }\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var key;\n if (isArrayLike(obj)) {\n key = _.findIndex(obj, predicate, context);\n } else {\n key = _.findKey(obj, predicate, context);\n }\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = function(obj, method) {\n var args = slice.call(arguments, 2);\n var isFunc = _.isFunction(method);\n return _.map(obj, function(value) {\n var func = isFunc ? method : value[method];\n return func == null ? func : func.apply(value, args);\n });\n };\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index, list) {\n computed = iteratee(value, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = value;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection, using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n _.shuffle = function(obj) {\n var set = isArrayLike(obj) ? obj : _.values(obj);\n var length = set.length;\n var shuffled = Array(length);\n for (var index = 0, rand; index < length; index++) {\n rand = _.random(0, index);\n if (rand !== index) shuffled[index] = shuffled[rand];\n shuffled[rand] = set[index];\n }\n return shuffled;\n };\n\n // Sample **n** random values from a collection.\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n return _.shuffle(obj).slice(0, Math.max(0, n));\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, index, list) {\n return {\n value: value,\n index: index,\n criteria: iteratee(value, index, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior) {\n return function(obj, iteratee, context) {\n var result = {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (_.has(result, key)) result[key]++; else result[key] = 1;\n });\n\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var pass = [], fail = [];\n _.each(obj, function(value, key, obj) {\n (predicate(value, key, obj) ? pass : fail).push(value);\n });\n return [pass, fail];\n };\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null) return void 0;\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, _.identity);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, startIndex) {\n var output = [], idx = 0;\n for (var i = startIndex || 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n //flatten current level of array or arguments object\n if (!shallow) value = flatten(value, shallow, strict);\n var j = 0, len = value.length;\n output.length += len;\n while (j < len) {\n output[idx++] = value[j++];\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = function(array) {\n return _.difference(array, slice.call(arguments, 1));\n };\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = function() {\n return _.uniq(flatten(arguments, true, true));\n };\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n for (var j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = function(array) {\n var rest = flatten(arguments, true, true, 1);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = function() {\n return _.unzip(arguments);\n };\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions\n function createPredicateIndexFinder(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n }\n\n // Returns the first index on an array-like that passes a predicate test\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions\n function createIndexFinder(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n }\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n step = step || 1;\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = function(func, context) {\n if (nativeBind && func.bind === nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var args = slice.call(arguments, 2);\n var bound = function() {\n return executeBound(func, bound, context, this, args.concat(slice.call(arguments)));\n };\n return bound;\n };\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder, allowing any combination of arguments to be pre-filled.\n _.partial = function(func) {\n var boundArgs = slice.call(arguments, 1);\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === _ ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n };\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = function(obj) {\n var i, length = arguments.length, key;\n if (length <= 1) throw new Error('bindAll must be passed function names');\n for (i = 1; i < length; i++) {\n key = arguments[i];\n obj[key] = _.bind(obj[key], obj);\n }\n return obj;\n };\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!_.has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = function(func, wait) {\n var args = slice.call(arguments, 2);\n return setTimeout(function(){\n return func.apply(null, args);\n }, wait);\n };\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var context, args, result;\n var timeout = null;\n var previous = 0;\n if (!options) options = {};\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n return function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n\n var later = function() {\n var last = _.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n }\n }\n };\n\n return function() {\n context = this;\n args = arguments;\n timestamp = _.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n function collectNonEnumProps(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = (_.isFunction(constructor) && constructor.prototype) || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (_.has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n }\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (_.has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object\n // In contrast to _.map it returns an object\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {},\n currentKey;\n for (var index = 0; index < length; index++) {\n currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s)\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = function(object, oiteratee, context) {\n var result = {}, obj = object, iteratee, keys;\n if (obj == null) return result;\n if (_.isFunction(oiteratee)) {\n keys = _.allKeys(obj);\n iteratee = optimizeCb(oiteratee, context);\n } else {\n keys = flatten(arguments, false, false, 1);\n iteratee = function(value, key, obj) { return key in obj; };\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n };\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = function(obj, iteratee, context) {\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n } else {\n var keys = _.map(flatten(arguments, false, false, 1), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n };\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // A strict comparison is necessary because `null == undefined`.\n if (a == null || b == null) return a === b;\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(_.has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return _.has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), and in Safari 8 (#1929).\n if (typeof /./ != 'function' && typeof Int8Array != 'object') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`? (NaN is the only number which does not equal itself).\n _.isNaN = function(obj) {\n return _.isNumber(obj) && obj !== +obj;\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, key) {\n return obj != null && hasOwnProperty.call(obj, key);\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n _.property = property;\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n return obj == null ? function(){} : function(key) {\n return obj[key];\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // If the value of the named `property` is a function then invoke it with the\n // `object` as context; otherwise, return it.\n _.result = function(object, property, fallback) {\n var value = object == null ? void 0 : object[property];\n if (value === void 0) {\n value = fallback;\n }\n return _.isFunction(value) ? value.call(object) : value;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escaper = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offest.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n try {\n var render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var result = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return result(this, func.apply(_, args));\n };\n });\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return result(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return result(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return '' + this._wrapped;\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define === 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}.call(this));\n","// Backbone.js 1.2.3\n\n// (c) 2010-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Backbone may be freely distributed under the MIT license.\n// For all details and documentation:\n// http://backbonejs.org\n\n(function(factory) {\n\n // Establish the root object, `window` (`self`) in the browser, or `global` on the server.\n // We use `self` instead of `window` for `WebWorker` support.\n var root = (typeof self == 'object' && self.self == self && self) ||\n (typeof global == 'object' && global.global == global && global);\n\n // Set up Backbone appropriately for the environment. Start with AMD.\n if (typeof define === 'function' && define.amd) {\n define(['underscore', 'jquery', 'exports'], function(_, $, exports) {\n // Export global even in AMD case in case this script is loaded with\n // others that may still expect a global Backbone.\n root.Backbone = factory(root, exports, _, $);\n });\n\n // Next for Node.js or CommonJS. jQuery may not be needed as a module.\n } else if (typeof exports !== 'undefined') {\n var _ = require('underscore'), $;\n try { $ = require('jquery'); } catch(e) {}\n factory(root, exports, _, $);\n\n // Finally, as a browser global.\n } else {\n root.Backbone = factory(root, {}, root._, (root.jQuery || root.Zepto || root.ender || root.$));\n }\n\n}(function(root, Backbone, _, $) {\n\n // Initial Setup\n // -------------\n\n // Save the previous value of the `Backbone` variable, so that it can be\n // restored later on, if `noConflict` is used.\n var previousBackbone = root.Backbone;\n\n // Create a local reference to a common array method we'll want to use later.\n var slice = Array.prototype.slice;\n\n // Current version of the library. Keep in sync with `package.json`.\n Backbone.VERSION = '1.2.3';\n\n // For Backbone's purposes, jQuery, Zepto, Ender, or My Library (kidding) owns\n // the `$` variable.\n Backbone.$ = $;\n\n // Runs Backbone.js in *noConflict* mode, returning the `Backbone` variable\n // to its previous owner. Returns a reference to this Backbone object.\n Backbone.noConflict = function() {\n root.Backbone = previousBackbone;\n return this;\n };\n\n // Turn on `emulateHTTP` to support legacy HTTP servers. Setting this option\n // will fake `\"PATCH\"`, `\"PUT\"` and `\"DELETE\"` requests via the `_method` parameter and\n // set a `X-Http-Method-Override` header.\n Backbone.emulateHTTP = false;\n\n // Turn on `emulateJSON` to support legacy servers that can't deal with direct\n // `application/json` requests ... this will encode the body as\n // `application/x-www-form-urlencoded` instead and will send the model in a\n // form param named `model`.\n Backbone.emulateJSON = false;\n\n // Proxy Backbone class methods to Underscore functions, wrapping the model's\n // `attributes` object or collection's `models` array behind the scenes.\n //\n // collection.filter(function(model) { return model.get('age') > 10 });\n // collection.each(this.addView);\n //\n // `Function#apply` can be slow so we use the method's arg count, if we know it.\n var addMethod = function(length, method, attribute) {\n switch (length) {\n case 1: return function() {\n return _[method](this[attribute]);\n };\n case 2: return function(value) {\n return _[method](this[attribute], value);\n };\n case 3: return function(iteratee, context) {\n return _[method](this[attribute], cb(iteratee, this), context);\n };\n case 4: return function(iteratee, defaultVal, context) {\n return _[method](this[attribute], cb(iteratee, this), defaultVal, context);\n };\n default: return function() {\n var args = slice.call(arguments);\n args.unshift(this[attribute]);\n return _[method].apply(_, args);\n };\n }\n };\n var addUnderscoreMethods = function(Class, methods, attribute) {\n _.each(methods, function(length, method) {\n if (_[method]) Class.prototype[method] = addMethod(length, method, attribute);\n });\n };\n\n // Support `collection.sortBy('attr')` and `collection.findWhere({id: 1})`.\n var cb = function(iteratee, instance) {\n if (_.isFunction(iteratee)) return iteratee;\n if (_.isObject(iteratee) && !instance._isModel(iteratee)) return modelMatcher(iteratee);\n if (_.isString(iteratee)) return function(model) { return model.get(iteratee); };\n return iteratee;\n };\n var modelMatcher = function(attrs) {\n var matcher = _.matches(attrs);\n return function(model) {\n return matcher(model.attributes);\n };\n };\n\n // Backbone.Events\n // ---------------\n\n // A module that can be mixed in to *any object* in order to provide it with\n // a custom event channel. You may bind a callback to an event with `on` or\n // remove with `off`; `trigger`-ing an event fires all callbacks in\n // succession.\n //\n // var object = {};\n // _.extend(object, Backbone.Events);\n // object.on('expand', function(){ alert('expanded'); });\n // object.trigger('expand');\n //\n var Events = Backbone.Events = {};\n\n // Regular expression used to split event strings.\n var eventSplitter = /\\s+/;\n\n // Iterates over the standard `event, callback` (as well as the fancy multiple\n // space-separated events `\"change blur\", callback` and jQuery-style event\n // maps `{event: callback}`).\n var eventsApi = function(iteratee, events, name, callback, opts) {\n var i = 0, names;\n if (name && typeof name === 'object') {\n // Handle event maps.\n if (callback !== void 0 && 'context' in opts && opts.context === void 0) opts.context = callback;\n for (names = _.keys(name); i < names.length ; i++) {\n events = eventsApi(iteratee, events, names[i], name[names[i]], opts);\n }\n } else if (name && eventSplitter.test(name)) {\n // Handle space separated event names by delegating them individually.\n for (names = name.split(eventSplitter); i < names.length; i++) {\n events = iteratee(events, names[i], callback, opts);\n }\n } else {\n // Finally, standard events.\n events = iteratee(events, name, callback, opts);\n }\n return events;\n };\n\n // Bind an event to a `callback` function. Passing `\"all\"` will bind\n // the callback to all events fired.\n Events.on = function(name, callback, context) {\n return internalOn(this, name, callback, context);\n };\n\n // Guard the `listening` argument from the public API.\n var internalOn = function(obj, name, callback, context, listening) {\n obj._events = eventsApi(onApi, obj._events || {}, name, callback, {\n context: context,\n ctx: obj,\n listening: listening\n });\n\n if (listening) {\n var listeners = obj._listeners || (obj._listeners = {});\n listeners[listening.id] = listening;\n }\n\n return obj;\n };\n\n // Inversion-of-control versions of `on`. Tell *this* object to listen to\n // an event in another object... keeping track of what it's listening to\n // for easier unbinding later.\n Events.listenTo = function(obj, name, callback) {\n if (!obj) return this;\n var id = obj._listenId || (obj._listenId = _.uniqueId('l'));\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var listening = listeningTo[id];\n\n // This object is not listening to any other events on `obj` yet.\n // Setup the necessary references to track the listening callbacks.\n if (!listening) {\n var thisId = this._listenId || (this._listenId = _.uniqueId('l'));\n listening = listeningTo[id] = {obj: obj, objId: id, id: thisId, listeningTo: listeningTo, count: 0};\n }\n\n // Bind callbacks on obj, and keep track of them on listening.\n internalOn(obj, name, callback, this, listening);\n return this;\n };\n\n // The reducing API that adds a callback to the `events` object.\n var onApi = function(events, name, callback, options) {\n if (callback) {\n var handlers = events[name] || (events[name] = []);\n var context = options.context, ctx = options.ctx, listening = options.listening;\n if (listening) listening.count++;\n\n handlers.push({ callback: callback, context: context, ctx: context || ctx, listening: listening });\n }\n return events;\n };\n\n // Remove one or many callbacks. If `context` is null, removes all\n // callbacks with that function. If `callback` is null, removes all\n // callbacks for the event. If `name` is null, removes all bound\n // callbacks for all events.\n Events.off = function(name, callback, context) {\n if (!this._events) return this;\n this._events = eventsApi(offApi, this._events, name, callback, {\n context: context,\n listeners: this._listeners\n });\n return this;\n };\n\n // Tell this object to stop listening to either specific events ... or\n // to every object it's currently listening to.\n Events.stopListening = function(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n\n var ids = obj ? [obj._listenId] : _.keys(listeningTo);\n\n for (var i = 0; i < ids.length; i++) {\n var listening = listeningTo[ids[i]];\n\n // If listening doesn't exist, this object is not currently\n // listening to obj. Break out early.\n if (!listening) break;\n\n listening.obj.off(name, callback, this);\n }\n if (_.isEmpty(listeningTo)) this._listeningTo = void 0;\n\n return this;\n };\n\n // The reducing API that removes a callback from the `events` object.\n var offApi = function(events, name, callback, options) {\n if (!events) return;\n\n var i = 0, listening;\n var context = options.context, listeners = options.listeners;\n\n // Delete all events listeners and \"drop\" events.\n if (!name && !callback && !context) {\n var ids = _.keys(listeners);\n for (; i < ids.length; i++) {\n listening = listeners[ids[i]];\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n return;\n }\n\n var names = name ? [name] : _.keys(events);\n for (; i < names.length; i++) {\n name = names[i];\n var handlers = events[name];\n\n // Bail out if there are no events stored.\n if (!handlers) break;\n\n // Replace events if there are any remaining. Otherwise, clean up.\n var remaining = [];\n for (var j = 0; j < handlers.length; j++) {\n var handler = handlers[j];\n if (\n callback && callback !== handler.callback &&\n callback !== handler.callback._callback ||\n context && context !== handler.context\n ) {\n remaining.push(handler);\n } else {\n listening = handler.listening;\n if (listening && --listening.count === 0) {\n delete listeners[listening.id];\n delete listening.listeningTo[listening.objId];\n }\n }\n }\n\n // Update tail event if the list has any events. Otherwise, clean up.\n if (remaining.length) {\n events[name] = remaining;\n } else {\n delete events[name];\n }\n }\n if (_.size(events)) return events;\n };\n\n // Bind an event to only be triggered a single time. After the first time\n // the callback is invoked, its listener will be removed. If multiple events\n // are passed in using the space-separated syntax, the handler will fire\n // once for each event, not once for a combination of all events.\n Events.once = function(name, callback, context) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.off, this));\n return this.on(events, void 0, context);\n };\n\n // Inversion-of-control versions of `once`.\n Events.listenToOnce = function(obj, name, callback) {\n // Map the event into a `{event: once}` object.\n var events = eventsApi(onceMap, {}, name, callback, _.bind(this.stopListening, this, obj));\n return this.listenTo(obj, events);\n };\n\n // Reduces the event callbacks into a map of `{event: onceWrapper}`.\n // `offer` unbinds the `onceWrapper` after it has been called.\n var onceMap = function(map, name, callback, offer) {\n if (callback) {\n var once = map[name] = _.once(function() {\n offer(name, once);\n callback.apply(this, arguments);\n });\n once._callback = callback;\n }\n return map;\n };\n\n // Trigger one or many events, firing all bound callbacks. Callbacks are\n // passed the same arguments as `trigger` is, apart from the event name\n // (unless you're listening on `\"all\"`, which will cause your callback to\n // receive the true name of the event as the first argument).\n Events.trigger = function(name) {\n if (!this._events) return this;\n\n var length = Math.max(0, arguments.length - 1);\n var args = Array(length);\n for (var i = 0; i < length; i++) args[i] = arguments[i + 1];\n\n eventsApi(triggerApi, this._events, name, void 0, args);\n return this;\n };\n\n // Handles triggering the appropriate event callbacks.\n var triggerApi = function(objEvents, name, cb, args) {\n if (objEvents) {\n var events = objEvents[name];\n var allEvents = objEvents.all;\n if (events && allEvents) allEvents = allEvents.slice();\n if (events) triggerEvents(events, args);\n if (allEvents) triggerEvents(allEvents, [name].concat(args));\n }\n return objEvents;\n };\n\n // A difficult-to-believe, but optimized internal dispatch function for\n // triggering events. Tries to keep the usual cases speedy (most internal\n // Backbone events have 3 arguments).\n var triggerEvents = function(events, args) {\n var ev, i = -1, l = events.length, a1 = args[0], a2 = args[1], a3 = args[2];\n switch (args.length) {\n case 0: while (++i < l) (ev = events[i]).callback.call(ev.ctx); return;\n case 1: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1); return;\n case 2: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2); return;\n case 3: while (++i < l) (ev = events[i]).callback.call(ev.ctx, a1, a2, a3); return;\n default: while (++i < l) (ev = events[i]).callback.apply(ev.ctx, args); return;\n }\n };\n\n // Aliases for backwards compatibility.\n Events.bind = Events.on;\n Events.unbind = Events.off;\n\n // Allow the `Backbone` object to serve as a global event bus, for folks who\n // want global \"pubsub\" in a convenient place.\n _.extend(Backbone, Events);\n\n // Backbone.Model\n // --------------\n\n // Backbone **Models** are the basic data object in the framework --\n // frequently representing a row in a table in a database on your server.\n // A discrete chunk of data and a bunch of useful, related methods for\n // performing computations and transformations on that data.\n\n // Create a new model with the specified attributes. A client id (`cid`)\n // is automatically generated and assigned for you.\n var Model = Backbone.Model = function(attributes, options) {\n var attrs = attributes || {};\n options || (options = {});\n this.cid = _.uniqueId(this.cidPrefix);\n this.attributes = {};\n if (options.collection) this.collection = options.collection;\n if (options.parse) attrs = this.parse(attrs, options) || {};\n attrs = _.defaults({}, attrs, _.result(this, 'defaults'));\n this.set(attrs, options);\n this.changed = {};\n this.initialize.apply(this, arguments);\n };\n\n // Attach all inheritable methods to the Model prototype.\n _.extend(Model.prototype, Events, {\n\n // A hash of attributes whose current and previous value differ.\n changed: null,\n\n // The value returned during the last failed validation.\n validationError: null,\n\n // The default name for the JSON `id` attribute is `\"id\"`. MongoDB and\n // CouchDB users may want to set this to `\"_id\"`.\n idAttribute: 'id',\n\n // The prefix is used to create the client id which is used to identify models locally.\n // You may want to override this if you're experiencing name clashes with model ids.\n cidPrefix: 'c',\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Return a copy of the model's `attributes` object.\n toJSON: function(options) {\n return _.clone(this.attributes);\n },\n\n // Proxy `Backbone.sync` by default -- but override this if you need\n // custom syncing semantics for *this* particular model.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Get the value of an attribute.\n get: function(attr) {\n return this.attributes[attr];\n },\n\n // Get the HTML-escaped value of an attribute.\n escape: function(attr) {\n return _.escape(this.get(attr));\n },\n\n // Returns `true` if the attribute contains a value that is not null\n // or undefined.\n has: function(attr) {\n return this.get(attr) != null;\n },\n\n // Special-cased proxy to underscore's `_.matches` method.\n matches: function(attrs) {\n return !!_.iteratee(attrs, this)(this.attributes);\n },\n\n // Set a hash of model attributes on the object, firing `\"change\"`. This is\n // the core primitive operation of a model, updating the data and notifying\n // anyone who needs to know about the change in state. The heart of the beast.\n set: function(key, val, options) {\n if (key == null) return this;\n\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options || (options = {});\n\n // Run validation.\n if (!this._validate(attrs, options)) return false;\n\n // Extract attributes and options.\n var unset = options.unset;\n var silent = options.silent;\n var changes = [];\n var changing = this._changing;\n this._changing = true;\n\n if (!changing) {\n this._previousAttributes = _.clone(this.attributes);\n this.changed = {};\n }\n\n var current = this.attributes;\n var changed = this.changed;\n var prev = this._previousAttributes;\n\n // For each `set` attribute, update or delete the current value.\n for (var attr in attrs) {\n val = attrs[attr];\n if (!_.isEqual(current[attr], val)) changes.push(attr);\n if (!_.isEqual(prev[attr], val)) {\n changed[attr] = val;\n } else {\n delete changed[attr];\n }\n unset ? delete current[attr] : current[attr] = val;\n }\n\n // Update the `id`.\n this.id = this.get(this.idAttribute);\n\n // Trigger all relevant attribute changes.\n if (!silent) {\n if (changes.length) this._pending = options;\n for (var i = 0; i < changes.length; i++) {\n this.trigger('change:' + changes[i], this, current[changes[i]], options);\n }\n }\n\n // You might be wondering why there's a `while` loop here. Changes can\n // be recursively nested within `\"change\"` events.\n if (changing) return this;\n if (!silent) {\n while (this._pending) {\n options = this._pending;\n this._pending = false;\n this.trigger('change', this, options);\n }\n }\n this._pending = false;\n this._changing = false;\n return this;\n },\n\n // Remove an attribute from the model, firing `\"change\"`. `unset` is a noop\n // if the attribute doesn't exist.\n unset: function(attr, options) {\n return this.set(attr, void 0, _.extend({}, options, {unset: true}));\n },\n\n // Clear all attributes on the model, firing `\"change\"`.\n clear: function(options) {\n var attrs = {};\n for (var key in this.attributes) attrs[key] = void 0;\n return this.set(attrs, _.extend({}, options, {unset: true}));\n },\n\n // Determine if the model has changed since the last `\"change\"` event.\n // If you specify an attribute name, determine if that attribute has changed.\n hasChanged: function(attr) {\n if (attr == null) return !_.isEmpty(this.changed);\n return _.has(this.changed, attr);\n },\n\n // Return an object containing all the attributes that have changed, or\n // false if there are no changed attributes. Useful for determining what\n // parts of a view need to be updated and/or what attributes need to be\n // persisted to the server. Unset attributes will be set to undefined.\n // You can also pass an attributes object to diff against the model,\n // determining if there *would be* a change.\n changedAttributes: function(diff) {\n if (!diff) return this.hasChanged() ? _.clone(this.changed) : false;\n var old = this._changing ? this._previousAttributes : this.attributes;\n var changed = {};\n for (var attr in diff) {\n var val = diff[attr];\n if (_.isEqual(old[attr], val)) continue;\n changed[attr] = val;\n }\n return _.size(changed) ? changed : false;\n },\n\n // Get the previous value of an attribute, recorded at the time the last\n // `\"change\"` event was fired.\n previous: function(attr) {\n if (attr == null || !this._previousAttributes) return null;\n return this._previousAttributes[attr];\n },\n\n // Get all of the attributes of the model at the time of the previous\n // `\"change\"` event.\n previousAttributes: function() {\n return _.clone(this._previousAttributes);\n },\n\n // Fetch the model from the server, merging the response with the model's\n // local attributes. Any changed attributes will trigger a \"change\" event.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var model = this;\n var success = options.success;\n options.success = function(resp) {\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (!model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Set a hash of model attributes, and sync the model to the server.\n // If the server returns an attributes hash that differs, the model's\n // state will be `set` again.\n save: function(key, val, options) {\n // Handle both `\"key\", value` and `{key: value}` -style arguments.\n var attrs;\n if (key == null || typeof key === 'object') {\n attrs = key;\n options = val;\n } else {\n (attrs = {})[key] = val;\n }\n\n options = _.extend({validate: true, parse: true}, options);\n var wait = options.wait;\n\n // If we're not waiting and attributes exist, save acts as\n // `set(attr).save(null, opts)` with validation. Otherwise, check if\n // the model will be valid when the attributes, if any, are set.\n if (attrs && !wait) {\n if (!this.set(attrs, options)) return false;\n } else {\n if (!this._validate(attrs, options)) return false;\n }\n\n // After a successful server-side save, the client is (optionally)\n // updated with the server-side state.\n var model = this;\n var success = options.success;\n var attributes = this.attributes;\n options.success = function(resp) {\n // Ensure attributes are restored during synchronous saves.\n model.attributes = attributes;\n var serverAttrs = options.parse ? model.parse(resp, options) : resp;\n if (wait) serverAttrs = _.extend({}, attrs, serverAttrs);\n if (serverAttrs && !model.set(serverAttrs, options)) return false;\n if (success) success.call(options.context, model, resp, options);\n model.trigger('sync', model, resp, options);\n };\n wrapError(this, options);\n\n // Set temporary attributes if `{wait: true}` to properly find new ids.\n if (attrs && wait) this.attributes = _.extend({}, attributes, attrs);\n\n var method = this.isNew() ? 'create' : (options.patch ? 'patch' : 'update');\n if (method === 'patch' && !options.attrs) options.attrs = attrs;\n var xhr = this.sync(method, this, options);\n\n // Restore attributes.\n this.attributes = attributes;\n\n return xhr;\n },\n\n // Destroy this model on the server if it was already persisted.\n // Optimistically removes the model from its collection, if it has one.\n // If `wait: true` is passed, waits for the server to respond before removal.\n destroy: function(options) {\n options = options ? _.clone(options) : {};\n var model = this;\n var success = options.success;\n var wait = options.wait;\n\n var destroy = function() {\n model.stopListening();\n model.trigger('destroy', model, model.collection, options);\n };\n\n options.success = function(resp) {\n if (wait) destroy();\n if (success) success.call(options.context, model, resp, options);\n if (!model.isNew()) model.trigger('sync', model, resp, options);\n };\n\n var xhr = false;\n if (this.isNew()) {\n _.defer(options.success);\n } else {\n wrapError(this, options);\n xhr = this.sync('delete', this, options);\n }\n if (!wait) destroy();\n return xhr;\n },\n\n // Default URL for the model's representation on the server -- if you're\n // using Backbone's restful methods, override this to change the endpoint\n // that will be called.\n url: function() {\n var base =\n _.result(this, 'urlRoot') ||\n _.result(this.collection, 'url') ||\n urlError();\n if (this.isNew()) return base;\n var id = this.get(this.idAttribute);\n return base.replace(/[^\\/]$/, '$&/') + encodeURIComponent(id);\n },\n\n // **parse** converts a response into the hash of attributes to be `set` on\n // the model. The default implementation is just to pass the response along.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new model with identical attributes to this one.\n clone: function() {\n return new this.constructor(this.attributes);\n },\n\n // A model is new if it has never been saved to the server, and lacks an id.\n isNew: function() {\n return !this.has(this.idAttribute);\n },\n\n // Check if the model is currently in a valid state.\n isValid: function(options) {\n return this._validate({}, _.defaults({validate: true}, options));\n },\n\n // Run validation against the next complete set of model attributes,\n // returning `true` if all is well. Otherwise, fire an `\"invalid\"` event.\n _validate: function(attrs, options) {\n if (!options.validate || !this.validate) return true;\n attrs = _.extend({}, this.attributes, attrs);\n var error = this.validationError = this.validate(attrs, options) || null;\n if (!error) return true;\n this.trigger('invalid', this, error, _.extend(options, {validationError: error}));\n return false;\n }\n\n });\n\n // Underscore methods that we want to implement on the Model, mapped to the\n // number of arguments they take.\n var modelMethods = { keys: 1, values: 1, pairs: 1, invert: 1, pick: 0,\n omit: 0, chain: 1, isEmpty: 1 };\n\n // Mix in each Underscore method as a proxy to `Model#attributes`.\n addUnderscoreMethods(Model, modelMethods, 'attributes');\n\n // Backbone.Collection\n // -------------------\n\n // If models tend to represent a single row of data, a Backbone Collection is\n // more analogous to a table full of data ... or a small slice or page of that\n // table, or a collection of rows that belong together for a particular reason\n // -- all of the messages in this particular folder, all of the documents\n // belonging to this particular author, and so on. Collections maintain\n // indexes of their models, both in order, and for lookup by `id`.\n\n // Create a new **Collection**, perhaps to contain a specific type of `model`.\n // If a `comparator` is specified, the Collection will maintain\n // its models in sort order, as they're added and removed.\n var Collection = Backbone.Collection = function(models, options) {\n options || (options = {});\n if (options.model) this.model = options.model;\n if (options.comparator !== void 0) this.comparator = options.comparator;\n this._reset();\n this.initialize.apply(this, arguments);\n if (models) this.reset(models, _.extend({silent: true}, options));\n };\n\n // Default options for `Collection#set`.\n var setOptions = {add: true, remove: true, merge: true};\n var addOptions = {add: true, remove: false};\n\n // Splices `insert` into `array` at index `at`.\n var splice = function(array, insert, at) {\n at = Math.min(Math.max(at, 0), array.length);\n var tail = Array(array.length - at);\n var length = insert.length;\n for (var i = 0; i < tail.length; i++) tail[i] = array[i + at];\n for (i = 0; i < length; i++) array[i + at] = insert[i];\n for (i = 0; i < tail.length; i++) array[i + length + at] = tail[i];\n };\n\n // Define the Collection's inheritable methods.\n _.extend(Collection.prototype, Events, {\n\n // The default model for a collection is just a **Backbone.Model**.\n // This should be overridden in most cases.\n model: Model,\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // The JSON representation of a Collection is an array of the\n // models' attributes.\n toJSON: function(options) {\n return this.map(function(model) { return model.toJSON(options); });\n },\n\n // Proxy `Backbone.sync` by default.\n sync: function() {\n return Backbone.sync.apply(this, arguments);\n },\n\n // Add a model, or list of models to the set. `models` may be Backbone\n // Models or raw JavaScript objects to be converted to Models, or any\n // combination of the two.\n add: function(models, options) {\n return this.set(models, _.extend({merge: false}, options, addOptions));\n },\n\n // Remove a model, or a list of models from the set.\n remove: function(models, options) {\n options = _.extend({}, options);\n var singular = !_.isArray(models);\n models = singular ? [models] : _.clone(models);\n var removed = this._removeModels(models, options);\n if (!options.silent && removed) this.trigger('update', this, options);\n return singular ? removed[0] : removed;\n },\n\n // Update a collection by `set`-ing a new list of models, adding new ones,\n // removing models that are no longer present, and merging models that\n // already exist in the collection, as necessary. Similar to **Model#set**,\n // the core operation for updating the data contained by the collection.\n set: function(models, options) {\n if (models == null) return;\n\n options = _.defaults({}, options, setOptions);\n if (options.parse && !this._isModel(models)) models = this.parse(models, options);\n\n var singular = !_.isArray(models);\n models = singular ? [models] : models.slice();\n\n var at = options.at;\n if (at != null) at = +at;\n if (at < 0) at += this.length + 1;\n\n var set = [];\n var toAdd = [];\n var toRemove = [];\n var modelMap = {};\n\n var add = options.add;\n var merge = options.merge;\n var remove = options.remove;\n\n var sort = false;\n var sortable = this.comparator && (at == null) && options.sort !== false;\n var sortAttr = _.isString(this.comparator) ? this.comparator : null;\n\n // Turn bare objects into model references, and prevent invalid models\n // from being added.\n var model;\n for (var i = 0; i < models.length; i++) {\n model = models[i];\n\n // If a duplicate is found, prevent it from being added and\n // optionally merge it into the existing model.\n var existing = this.get(model);\n if (existing) {\n if (merge && model !== existing) {\n var attrs = this._isModel(model) ? model.attributes : model;\n if (options.parse) attrs = existing.parse(attrs, options);\n existing.set(attrs, options);\n if (sortable && !sort) sort = existing.hasChanged(sortAttr);\n }\n if (!modelMap[existing.cid]) {\n modelMap[existing.cid] = true;\n set.push(existing);\n }\n models[i] = existing;\n\n // If this is a new, valid model, push it to the `toAdd` list.\n } else if (add) {\n model = models[i] = this._prepareModel(model, options);\n if (model) {\n toAdd.push(model);\n this._addReference(model, options);\n modelMap[model.cid] = true;\n set.push(model);\n }\n }\n }\n\n // Remove stale models.\n if (remove) {\n for (i = 0; i < this.length; i++) {\n model = this.models[i];\n if (!modelMap[model.cid]) toRemove.push(model);\n }\n if (toRemove.length) this._removeModels(toRemove, options);\n }\n\n // See if sorting is needed, update `length` and splice in new models.\n var orderChanged = false;\n var replace = !sortable && add && remove;\n if (set.length && replace) {\n orderChanged = this.length != set.length || _.some(this.models, function(model, index) {\n return model !== set[index];\n });\n this.models.length = 0;\n splice(this.models, set, 0);\n this.length = this.models.length;\n } else if (toAdd.length) {\n if (sortable) sort = true;\n splice(this.models, toAdd, at == null ? this.length : at);\n this.length = this.models.length;\n }\n\n // Silently sort the collection if appropriate.\n if (sort) this.sort({silent: true});\n\n // Unless silenced, it's time to fire all appropriate add/sort events.\n if (!options.silent) {\n for (i = 0; i < toAdd.length; i++) {\n if (at != null) options.index = at + i;\n model = toAdd[i];\n model.trigger('add', model, this, options);\n }\n if (sort || orderChanged) this.trigger('sort', this, options);\n if (toAdd.length || toRemove.length) this.trigger('update', this, options);\n }\n\n // Return the added (or merged) model (or models).\n return singular ? models[0] : models;\n },\n\n // When you have more items than you want to add or remove individually,\n // you can reset the entire set with a new list of models, without firing\n // any granular `add` or `remove` events. Fires `reset` when finished.\n // Useful for bulk operations and optimizations.\n reset: function(models, options) {\n options = options ? _.clone(options) : {};\n for (var i = 0; i < this.models.length; i++) {\n this._removeReference(this.models[i], options);\n }\n options.previousModels = this.models;\n this._reset();\n models = this.add(models, _.extend({silent: true}, options));\n if (!options.silent) this.trigger('reset', this, options);\n return models;\n },\n\n // Add a model to the end of the collection.\n push: function(model, options) {\n return this.add(model, _.extend({at: this.length}, options));\n },\n\n // Remove a model from the end of the collection.\n pop: function(options) {\n var model = this.at(this.length - 1);\n return this.remove(model, options);\n },\n\n // Add a model to the beginning of the collection.\n unshift: function(model, options) {\n return this.add(model, _.extend({at: 0}, options));\n },\n\n // Remove a model from the beginning of the collection.\n shift: function(options) {\n var model = this.at(0);\n return this.remove(model, options);\n },\n\n // Slice out a sub-array of models from the collection.\n slice: function() {\n return slice.apply(this.models, arguments);\n },\n\n // Get a model from the set by id.\n get: function(obj) {\n if (obj == null) return void 0;\n var id = this.modelId(this._isModel(obj) ? obj.attributes : obj);\n return this._byId[obj] || this._byId[id] || this._byId[obj.cid];\n },\n\n // Get the model at the given index.\n at: function(index) {\n if (index < 0) index += this.length;\n return this.models[index];\n },\n\n // Return models with matching attributes. Useful for simple cases of\n // `filter`.\n where: function(attrs, first) {\n return this[first ? 'find' : 'filter'](attrs);\n },\n\n // Return the first model with matching attributes. Useful for simple cases\n // of `find`.\n findWhere: function(attrs) {\n return this.where(attrs, true);\n },\n\n // Force the collection to re-sort itself. You don't need to call this under\n // normal circumstances, as the set will maintain sort order as each item\n // is added.\n sort: function(options) {\n var comparator = this.comparator;\n if (!comparator) throw new Error('Cannot sort a set without a comparator');\n options || (options = {});\n\n var length = comparator.length;\n if (_.isFunction(comparator)) comparator = _.bind(comparator, this);\n\n // Run sort based on type of `comparator`.\n if (length === 1 || _.isString(comparator)) {\n this.models = this.sortBy(comparator);\n } else {\n this.models.sort(comparator);\n }\n if (!options.silent) this.trigger('sort', this, options);\n return this;\n },\n\n // Pluck an attribute from each model in the collection.\n pluck: function(attr) {\n return _.invoke(this.models, 'get', attr);\n },\n\n // Fetch the default set of models for this collection, resetting the\n // collection when they arrive. If `reset: true` is passed, the response\n // data will be passed through the `reset` method instead of `set`.\n fetch: function(options) {\n options = _.extend({parse: true}, options);\n var success = options.success;\n var collection = this;\n options.success = function(resp) {\n var method = options.reset ? 'reset' : 'set';\n collection[method](resp, options);\n if (success) success.call(options.context, collection, resp, options);\n collection.trigger('sync', collection, resp, options);\n };\n wrapError(this, options);\n return this.sync('read', this, options);\n },\n\n // Create a new instance of a model in this collection. Add the model to the\n // collection immediately, unless `wait: true` is passed, in which case we\n // wait for the server to agree.\n create: function(model, options) {\n options = options ? _.clone(options) : {};\n var wait = options.wait;\n model = this._prepareModel(model, options);\n if (!model) return false;\n if (!wait) this.add(model, options);\n var collection = this;\n var success = options.success;\n options.success = function(model, resp, callbackOpts) {\n if (wait) collection.add(model, callbackOpts);\n if (success) success.call(callbackOpts.context, model, resp, callbackOpts);\n };\n model.save(null, options);\n return model;\n },\n\n // **parse** converts a response into a list of models to be added to the\n // collection. The default implementation is just to pass it through.\n parse: function(resp, options) {\n return resp;\n },\n\n // Create a new collection with an identical list of models as this one.\n clone: function() {\n return new this.constructor(this.models, {\n model: this.model,\n comparator: this.comparator\n });\n },\n\n // Define how to uniquely identify models in the collection.\n modelId: function (attrs) {\n return attrs[this.model.prototype.idAttribute || 'id'];\n },\n\n // Private method to reset all internal state. Called when the collection\n // is first initialized or reset.\n _reset: function() {\n this.length = 0;\n this.models = [];\n this._byId = {};\n },\n\n // Prepare a hash of attributes (or other model) to be added to this\n // collection.\n _prepareModel: function(attrs, options) {\n if (this._isModel(attrs)) {\n if (!attrs.collection) attrs.collection = this;\n return attrs;\n }\n options = options ? _.clone(options) : {};\n options.collection = this;\n var model = new this.model(attrs, options);\n if (!model.validationError) return model;\n this.trigger('invalid', this, model.validationError, options);\n return false;\n },\n\n // Internal method called by both remove and set.\n _removeModels: function(models, options) {\n var removed = [];\n for (var i = 0; i < models.length; i++) {\n var model = this.get(models[i]);\n if (!model) continue;\n\n var index = this.indexOf(model);\n this.models.splice(index, 1);\n this.length--;\n\n if (!options.silent) {\n options.index = index;\n model.trigger('remove', model, this, options);\n }\n\n removed.push(model);\n this._removeReference(model, options);\n }\n return removed.length ? removed : false;\n },\n\n // Method for checking whether an object should be considered a model for\n // the purposes of adding to the collection.\n _isModel: function (model) {\n return model instanceof Model;\n },\n\n // Internal method to create a model's ties to a collection.\n _addReference: function(model, options) {\n this._byId[model.cid] = model;\n var id = this.modelId(model.attributes);\n if (id != null) this._byId[id] = model;\n model.on('all', this._onModelEvent, this);\n },\n\n // Internal method to sever a model's ties to a collection.\n _removeReference: function(model, options) {\n delete this._byId[model.cid];\n var id = this.modelId(model.attributes);\n if (id != null) delete this._byId[id];\n if (this === model.collection) delete model.collection;\n model.off('all', this._onModelEvent, this);\n },\n\n // Internal method called every time a model in the set fires an event.\n // Sets need to update their indexes when models change ids. All other\n // events simply proxy through. \"add\" and \"remove\" events that originate\n // in other collections are ignored.\n _onModelEvent: function(event, model, collection, options) {\n if ((event === 'add' || event === 'remove') && collection !== this) return;\n if (event === 'destroy') this.remove(model, options);\n if (event === 'change') {\n var prevId = this.modelId(model.previousAttributes());\n var id = this.modelId(model.attributes);\n if (prevId !== id) {\n if (prevId != null) delete this._byId[prevId];\n if (id != null) this._byId[id] = model;\n }\n }\n this.trigger.apply(this, arguments);\n }\n\n });\n\n // Underscore methods that we want to implement on the Collection.\n // 90% of the core usefulness of Backbone Collections is actually implemented\n // right here:\n var collectionMethods = { forEach: 3, each: 3, map: 3, collect: 3, reduce: 4,\n foldl: 4, inject: 4, reduceRight: 4, foldr: 4, find: 3, detect: 3, filter: 3,\n select: 3, reject: 3, every: 3, all: 3, some: 3, any: 3, include: 3, includes: 3,\n contains: 3, invoke: 0, max: 3, min: 3, toArray: 1, size: 1, first: 3,\n head: 3, take: 3, initial: 3, rest: 3, tail: 3, drop: 3, last: 3,\n without: 0, difference: 0, indexOf: 3, shuffle: 1, lastIndexOf: 3,\n isEmpty: 1, chain: 1, sample: 3, partition: 3, groupBy: 3, countBy: 3,\n sortBy: 3, indexBy: 3};\n\n // Mix in each Underscore method as a proxy to `Collection#models`.\n addUnderscoreMethods(Collection, collectionMethods, 'models');\n\n // Backbone.View\n // -------------\n\n // Backbone Views are almost more convention than they are actual code. A View\n // is simply a JavaScript object that represents a logical chunk of UI in the\n // DOM. This might be a single item, an entire list, a sidebar or panel, or\n // even the surrounding frame which wraps your whole app. Defining a chunk of\n // UI as a **View** allows you to define your DOM events declaratively, without\n // having to worry about render order ... and makes it easy for the view to\n // react to specific changes in the state of your models.\n\n // Creating a Backbone.View creates its initial element outside of the DOM,\n // if an existing element is not provided...\n var View = Backbone.View = function(options) {\n this.cid = _.uniqueId('view');\n _.extend(this, _.pick(options, viewOptions));\n this._ensureElement();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regex to split keys for `delegate`.\n var delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n\n // List of view options to be set as properties.\n var viewOptions = ['model', 'collection', 'el', 'id', 'attributes', 'className', 'tagName', 'events'];\n\n // Set up all inheritable **Backbone.View** properties and methods.\n _.extend(View.prototype, Events, {\n\n // The default `tagName` of a View's element is `\"div\"`.\n tagName: 'div',\n\n // jQuery delegate for element lookup, scoped to DOM elements within the\n // current view. This should be preferred to global lookups where possible.\n $: function(selector) {\n return this.$el.find(selector);\n },\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // **render** is the core function that your view should override, in order\n // to populate its element (`this.el`), with the appropriate HTML. The\n // convention is for **render** to always return `this`.\n render: function() {\n return this;\n },\n\n // Remove this view by taking the element out of the DOM, and removing any\n // applicable Backbone.Events listeners.\n remove: function() {\n this._removeElement();\n this.stopListening();\n return this;\n },\n\n // Remove this view's element from the document and all event listeners\n // attached to it. Exposed for subclasses using an alternative DOM\n // manipulation API.\n _removeElement: function() {\n this.$el.remove();\n },\n\n // Change the view's element (`this.el` property) and re-delegate the\n // view's events on the new element.\n setElement: function(element) {\n this.undelegateEvents();\n this._setElement(element);\n this.delegateEvents();\n return this;\n },\n\n // Creates the `this.el` and `this.$el` references for this view using the\n // given `el`. `el` can be a CSS selector or an HTML string, a jQuery\n // context or an element. Subclasses can override this to utilize an\n // alternative DOM manipulation API and are only required to set the\n // `this.el` property.\n _setElement: function(el) {\n this.$el = el instanceof Backbone.$ ? el : Backbone.$(el);\n this.el = this.$el[0];\n },\n\n // Set callbacks, where `this.events` is a hash of\n //\n // *{\"event selector\": \"callback\"}*\n //\n // {\n // 'mousedown .title': 'edit',\n // 'click .button': 'save',\n // 'click .open': function(e) { ... }\n // }\n //\n // pairs. Callbacks will be bound to the view, with `this` set properly.\n // Uses event delegation for efficiency.\n // Omitting the selector binds the event to `this.el`.\n delegateEvents: function(events) {\n events || (events = _.result(this, 'events'));\n if (!events) return this;\n this.undelegateEvents();\n for (var key in events) {\n var method = events[key];\n if (!_.isFunction(method)) method = this[method];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n this.delegate(match[1], match[2], _.bind(method, this));\n }\n return this;\n },\n\n // Add a single event listener to the view's element (or a child element\n // using `selector`). This only works for delegate-able events: not `focus`,\n // `blur`, and not `change`, `submit`, and `reset` in Internet Explorer.\n delegate: function(eventName, selector, listener) {\n this.$el.on(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Clears all callbacks previously bound to the view by `delegateEvents`.\n // You usually don't need to use this, but may wish to if you have multiple\n // Backbone views attached to the same DOM element.\n undelegateEvents: function() {\n if (this.$el) this.$el.off('.delegateEvents' + this.cid);\n return this;\n },\n\n // A finer-grained `undelegateEvents` for removing a single delegated event.\n // `selector` and `listener` are both optional.\n undelegate: function(eventName, selector, listener) {\n this.$el.off(eventName + '.delegateEvents' + this.cid, selector, listener);\n return this;\n },\n\n // Produces a DOM element to be assigned to your view. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _createElement: function(tagName) {\n return document.createElement(tagName);\n },\n\n // Ensure that the View has a DOM element to render into.\n // If `this.el` is a string, pass it through `$()`, take the first\n // matching element, and re-assign it to `el`. Otherwise, create\n // an element from the `id`, `className` and `tagName` properties.\n _ensureElement: function() {\n if (!this.el) {\n var attrs = _.extend({}, _.result(this, 'attributes'));\n if (this.id) attrs.id = _.result(this, 'id');\n if (this.className) attrs['class'] = _.result(this, 'className');\n this.setElement(this._createElement(_.result(this, 'tagName')));\n this._setAttributes(attrs);\n } else {\n this.setElement(_.result(this, 'el'));\n }\n },\n\n // Set attributes from a hash on this view's element. Exposed for\n // subclasses using an alternative DOM manipulation API.\n _setAttributes: function(attributes) {\n this.$el.attr(attributes);\n }\n\n });\n\n // Backbone.sync\n // -------------\n\n // Override this function to change the manner in which Backbone persists\n // models to the server. You will be passed the type of request, and the\n // model in question. By default, makes a RESTful Ajax request\n // to the model's `url()`. Some possible customizations could be:\n //\n // * Use `setTimeout` to batch rapid-fire updates into a single request.\n // * Send up the models as XML instead of JSON.\n // * Persist models via WebSockets instead of Ajax.\n //\n // Turn on `Backbone.emulateHTTP` in order to send `PUT` and `DELETE` requests\n // as `POST`, with a `_method` parameter containing the true HTTP method,\n // as well as all requests with the body as `application/x-www-form-urlencoded`\n // instead of `application/json` with the model in a param named `model`.\n // Useful when interfacing with server-side languages like **PHP** that make\n // it difficult to read the body of `PUT` requests.\n Backbone.sync = function(method, model, options) {\n var type = methodMap[method];\n\n // Default options, unless specified.\n _.defaults(options || (options = {}), {\n emulateHTTP: Backbone.emulateHTTP,\n emulateJSON: Backbone.emulateJSON\n });\n\n // Default JSON-request options.\n var params = {type: type, dataType: 'json'};\n\n // Ensure that we have a URL.\n if (!options.url) {\n params.url = _.result(model, 'url') || urlError();\n }\n\n // Ensure that we have the appropriate request data.\n if (options.data == null && model && (method === 'create' || method === 'update' || method === 'patch')) {\n params.contentType = 'application/json';\n params.data = JSON.stringify(options.attrs || model.toJSON(options));\n }\n\n // For older servers, emulate JSON by encoding the request into an HTML-form.\n if (options.emulateJSON) {\n params.contentType = 'application/x-www-form-urlencoded';\n params.data = params.data ? {model: params.data} : {};\n }\n\n // For older servers, emulate HTTP by mimicking the HTTP method with `_method`\n // And an `X-HTTP-Method-Override` header.\n if (options.emulateHTTP && (type === 'PUT' || type === 'DELETE' || type === 'PATCH')) {\n params.type = 'POST';\n if (options.emulateJSON) params.data._method = type;\n var beforeSend = options.beforeSend;\n options.beforeSend = function(xhr) {\n xhr.setRequestHeader('X-HTTP-Method-Override', type);\n if (beforeSend) return beforeSend.apply(this, arguments);\n };\n }\n\n // Don't process data on a non-GET request.\n if (params.type !== 'GET' && !options.emulateJSON) {\n params.processData = false;\n }\n\n // Pass along `textStatus` and `errorThrown` from jQuery.\n var error = options.error;\n options.error = function(xhr, textStatus, errorThrown) {\n options.textStatus = textStatus;\n options.errorThrown = errorThrown;\n if (error) error.call(options.context, xhr, textStatus, errorThrown);\n };\n\n // Make the request, allowing the user to override any Ajax options.\n var xhr = options.xhr = Backbone.ajax(_.extend(params, options));\n model.trigger('request', model, xhr, options);\n return xhr;\n };\n\n // Map from CRUD to HTTP for our default `Backbone.sync` implementation.\n var methodMap = {\n 'create': 'POST',\n 'update': 'PUT',\n 'patch': 'PATCH',\n 'delete': 'DELETE',\n 'read': 'GET'\n };\n\n // Set the default implementation of `Backbone.ajax` to proxy through to `$`.\n // Override this if you'd like to use a different library.\n Backbone.ajax = function() {\n return Backbone.$.ajax.apply(Backbone.$, arguments);\n };\n\n // Backbone.Router\n // ---------------\n\n // Routers map faux-URLs to actions, and fire events when routes are\n // matched. Creating a new one sets its `routes` hash, if not set statically.\n var Router = Backbone.Router = function(options) {\n options || (options = {});\n if (options.routes) this.routes = options.routes;\n this._bindRoutes();\n this.initialize.apply(this, arguments);\n };\n\n // Cached regular expressions for matching named param parts and splatted\n // parts of route strings.\n var optionalParam = /\\((.*?)\\)/g;\n var namedParam = /(\\(\\?)?:\\w+/g;\n var splatParam = /\\*\\w+/g;\n var escapeRegExp = /[\\-{}\\[\\]+?.,\\\\\\^$|#\\s]/g;\n\n // Set up all inheritable **Backbone.Router** properties and methods.\n _.extend(Router.prototype, Events, {\n\n // Initialize is an empty function by default. Override it with your own\n // initialization logic.\n initialize: function(){},\n\n // Manually bind a single named route to a callback. For example:\n //\n // this.route('search/:query/p:num', 'search', function(query, num) {\n // ...\n // });\n //\n route: function(route, name, callback) {\n if (!_.isRegExp(route)) route = this._routeToRegExp(route);\n if (_.isFunction(name)) {\n callback = name;\n name = '';\n }\n if (!callback) callback = this[name];\n var router = this;\n Backbone.history.route(route, function(fragment) {\n var args = router._extractParameters(route, fragment);\n if (router.execute(callback, args, name) !== false) {\n router.trigger.apply(router, ['route:' + name].concat(args));\n router.trigger('route', name, args);\n Backbone.history.trigger('route', router, name, args);\n }\n });\n return this;\n },\n\n // Execute a route handler with the provided parameters. This is an\n // excellent place to do pre-route setup or post-route cleanup.\n execute: function(callback, args, name) {\n if (callback) callback.apply(this, args);\n },\n\n // Simple proxy to `Backbone.history` to save a fragment into the history.\n navigate: function(fragment, options) {\n Backbone.history.navigate(fragment, options);\n return this;\n },\n\n // Bind all defined routes to `Backbone.history`. We have to reverse the\n // order of the routes here to support behavior where the most general\n // routes can be defined at the bottom of the route map.\n _bindRoutes: function() {\n if (!this.routes) return;\n this.routes = _.result(this, 'routes');\n var route, routes = _.keys(this.routes);\n while ((route = routes.pop()) != null) {\n this.route(route, this.routes[route]);\n }\n },\n\n // Convert a route string into a regular expression, suitable for matching\n // against the current location hash.\n _routeToRegExp: function(route) {\n route = route.replace(escapeRegExp, '\\\\$&')\n .replace(optionalParam, '(?:$1)?')\n .replace(namedParam, function(match, optional) {\n return optional ? match : '([^/?]+)';\n })\n .replace(splatParam, '([^?]*?)');\n return new RegExp('^' + route + '(?:\\\\?([\\\\s\\\\S]*))?$');\n },\n\n // Given a route, and a URL fragment that it matches, return the array of\n // extracted decoded parameters. Empty or unmatched parameters will be\n // treated as `null` to normalize cross-browser behavior.\n _extractParameters: function(route, fragment) {\n var params = route.exec(fragment).slice(1);\n return _.map(params, function(param, i) {\n // Don't decode the search params.\n if (i === params.length - 1) return param || null;\n return param ? decodeURIComponent(param) : null;\n });\n }\n\n });\n\n // Backbone.History\n // ----------------\n\n // Handles cross-browser history management, based on either\n // [pushState](http://diveintohtml5.info/history.html) and real URLs, or\n // [onhashchange](https://developer.mozilla.org/en-US/docs/DOM/window.onhashchange)\n // and URL fragments. If the browser supports neither (old IE, natch),\n // falls back to polling.\n var History = Backbone.History = function() {\n this.handlers = [];\n this.checkUrl = _.bind(this.checkUrl, this);\n\n // Ensure that `History` can be used outside of the browser.\n if (typeof window !== 'undefined') {\n this.location = window.location;\n this.history = window.history;\n }\n };\n\n // Cached regex for stripping a leading hash/slash and trailing space.\n var routeStripper = /^[#\\/]|\\s+$/g;\n\n // Cached regex for stripping leading and trailing slashes.\n var rootStripper = /^\\/+|\\/+$/g;\n\n // Cached regex for stripping urls of hash.\n var pathStripper = /#.*$/;\n\n // Has the history handling already been started?\n History.started = false;\n\n // Set up all inheritable **Backbone.History** properties and methods.\n _.extend(History.prototype, Events, {\n\n // The default interval to poll for hash changes, if necessary, is\n // twenty times a second.\n interval: 50,\n\n // Are we at the app root?\n atRoot: function() {\n var path = this.location.pathname.replace(/[^\\/]$/, '$&/');\n return path === this.root && !this.getSearch();\n },\n\n // Does the pathname match the root?\n matchRoot: function() {\n var path = this.decodeFragment(this.location.pathname);\n var root = path.slice(0, this.root.length - 1) + '/';\n return root === this.root;\n },\n\n // Unicode characters in `location.pathname` are percent encoded so they're\n // decoded for comparison. `%25` should not be decoded since it may be part\n // of an encoded parameter.\n decodeFragment: function(fragment) {\n return decodeURI(fragment.replace(/%25/g, '%2525'));\n },\n\n // In IE6, the hash fragment and search params are incorrect if the\n // fragment contains `?`.\n getSearch: function() {\n var match = this.location.href.replace(/#.*/, '').match(/\\?.+/);\n return match ? match[0] : '';\n },\n\n // Gets the true hash value. Cannot use location.hash directly due to bug\n // in Firefox where location.hash will always be decoded.\n getHash: function(window) {\n var match = (window || this).location.href.match(/#(.*)$/);\n return match ? match[1] : '';\n },\n\n // Get the pathname and search params, without the root.\n getPath: function() {\n var path = this.decodeFragment(\n this.location.pathname + this.getSearch()\n ).slice(this.root.length - 1);\n return path.charAt(0) === '/' ? path.slice(1) : path;\n },\n\n // Get the cross-browser normalized URL fragment from the path or hash.\n getFragment: function(fragment) {\n if (fragment == null) {\n if (this._usePushState || !this._wantsHashChange) {\n fragment = this.getPath();\n } else {\n fragment = this.getHash();\n }\n }\n return fragment.replace(routeStripper, '');\n },\n\n // Start the hash change handling, returning `true` if the current URL matches\n // an existing route, and `false` otherwise.\n start: function(options) {\n if (History.started) throw new Error('Backbone.history has already been started');\n History.started = true;\n\n // Figure out the initial configuration. Do we need an iframe?\n // Is pushState desired ... is it available?\n this.options = _.extend({root: '/'}, this.options, options);\n this.root = this.options.root;\n this._wantsHashChange = this.options.hashChange !== false;\n this._hasHashChange = 'onhashchange' in window && (document.documentMode === void 0 || document.documentMode > 7);\n this._useHashChange = this._wantsHashChange && this._hasHashChange;\n this._wantsPushState = !!this.options.pushState;\n this._hasPushState = !!(this.history && this.history.pushState);\n this._usePushState = this._wantsPushState && this._hasPushState;\n this.fragment = this.getFragment();\n\n // Normalize root to always include a leading and trailing slash.\n this.root = ('/' + this.root + '/').replace(rootStripper, '/');\n\n // Transition from hashChange to pushState or vice versa if both are\n // requested.\n if (this._wantsHashChange && this._wantsPushState) {\n\n // If we've started off with a route from a `pushState`-enabled\n // browser, but we're currently in a browser that doesn't support it...\n if (!this._hasPushState && !this.atRoot()) {\n var root = this.root.slice(0, -1) || '/';\n this.location.replace(root + '#' + this.getPath());\n // Return immediately as browser will do redirect to new url\n return true;\n\n // Or if we've started out with a hash-based route, but we're currently\n // in a browser where it could be `pushState`-based instead...\n } else if (this._hasPushState && this.atRoot()) {\n this.navigate(this.getHash(), {replace: true});\n }\n\n }\n\n // Proxy an iframe to handle location events if the browser doesn't\n // support the `hashchange` event, HTML5 history, or the user wants\n // `hashChange` but not `pushState`.\n if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) {\n this.iframe = document.createElement('iframe');\n this.iframe.src = 'javascript:0';\n this.iframe.style.display = 'none';\n this.iframe.tabIndex = -1;\n var body = document.body;\n // Using `appendChild` will throw on IE < 9 if the document is not ready.\n var iWindow = body.insertBefore(this.iframe, body.firstChild).contentWindow;\n iWindow.document.open();\n iWindow.document.close();\n iWindow.location.hash = '#' + this.fragment;\n }\n\n // Add a cross-platform `addEventListener` shim for older browsers.\n var addEventListener = window.addEventListener || function (eventName, listener) {\n return attachEvent('on' + eventName, listener);\n };\n\n // Depending on whether we're using pushState or hashes, and whether\n // 'onhashchange' is supported, determine how we check the URL state.\n if (this._usePushState) {\n addEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n addEventListener('hashchange', this.checkUrl, false);\n } else if (this._wantsHashChange) {\n this._checkUrlInterval = setInterval(this.checkUrl, this.interval);\n }\n\n if (!this.options.silent) return this.loadUrl();\n },\n\n // Disable Backbone.history, perhaps temporarily. Not useful in a real app,\n // but possibly useful for unit testing Routers.\n stop: function() {\n // Add a cross-platform `removeEventListener` shim for older browsers.\n var removeEventListener = window.removeEventListener || function (eventName, listener) {\n return detachEvent('on' + eventName, listener);\n };\n\n // Remove window listeners.\n if (this._usePushState) {\n removeEventListener('popstate', this.checkUrl, false);\n } else if (this._useHashChange && !this.iframe) {\n removeEventListener('hashchange', this.checkUrl, false);\n }\n\n // Clean up the iframe if necessary.\n if (this.iframe) {\n document.body.removeChild(this.iframe);\n this.iframe = null;\n }\n\n // Some environments will throw when clearing an undefined interval.\n if (this._checkUrlInterval) clearInterval(this._checkUrlInterval);\n History.started = false;\n },\n\n // Add a route to be tested when the fragment changes. Routes added later\n // may override previous routes.\n route: function(route, callback) {\n this.handlers.unshift({route: route, callback: callback});\n },\n\n // Checks the current URL to see if it has changed, and if it has,\n // calls `loadUrl`, normalizing across the hidden iframe.\n checkUrl: function(e) {\n var current = this.getFragment();\n\n // If the user pressed the back button, the iframe's hash will have\n // changed and we should use that for comparison.\n if (current === this.fragment && this.iframe) {\n current = this.getHash(this.iframe.contentWindow);\n }\n\n if (current === this.fragment) return false;\n if (this.iframe) this.navigate(current);\n this.loadUrl();\n },\n\n // Attempt to load the current URL fragment. If a route succeeds with a\n // match, returns `true`. If no defined routes matches the fragment,\n // returns `false`.\n loadUrl: function(fragment) {\n // If the root doesn't match, no routes can match either.\n if (!this.matchRoot()) return false;\n fragment = this.fragment = this.getFragment(fragment);\n return _.some(this.handlers, function(handler) {\n if (handler.route.test(fragment)) {\n handler.callback(fragment);\n return true;\n }\n });\n },\n\n // Save a fragment into the hash history, or replace the URL state if the\n // 'replace' option is passed. You are responsible for properly URL-encoding\n // the fragment in advance.\n //\n // The options object can contain `trigger: true` if you wish to have the\n // route callback be fired (not usually desirable), or `replace: true`, if\n // you wish to modify the current URL without adding an entry to the history.\n navigate: function(fragment, options) {\n if (!History.started) return false;\n if (!options || options === true) options = {trigger: !!options};\n\n // Normalize the fragment.\n fragment = this.getFragment(fragment || '');\n\n // Don't include a trailing slash on the root.\n var root = this.root;\n if (fragment === '' || fragment.charAt(0) === '?') {\n root = root.slice(0, -1) || '/';\n }\n var url = root + fragment;\n\n // Strip the hash and decode for matching.\n fragment = this.decodeFragment(fragment.replace(pathStripper, ''));\n\n if (this.fragment === fragment) return;\n this.fragment = fragment;\n\n // If pushState is available, we use it to set the fragment as a real URL.\n if (this._usePushState) {\n this.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, url);\n\n // If hash changes haven't been explicitly disabled, update the hash\n // fragment to store history.\n } else if (this._wantsHashChange) {\n this._updateHash(this.location, fragment, options.replace);\n if (this.iframe && (fragment !== this.getHash(this.iframe.contentWindow))) {\n var iWindow = this.iframe.contentWindow;\n\n // Opening and closing the iframe tricks IE7 and earlier to push a\n // history entry on hash-tag change. When replace is true, we don't\n // want this.\n if (!options.replace) {\n iWindow.document.open();\n iWindow.document.close();\n }\n\n this._updateHash(iWindow.location, fragment, options.replace);\n }\n\n // If you've told us that you explicitly don't want fallback hashchange-\n // based history, then `navigate` becomes a page refresh.\n } else {\n return this.location.assign(url);\n }\n if (options.trigger) return this.loadUrl(fragment);\n },\n\n // Update the hash location, either replacing the current entry, or adding\n // a new one to the browser history.\n _updateHash: function(location, fragment, replace) {\n if (replace) {\n var href = location.href.replace(/(javascript:|#).*$/, '');\n location.replace(href + '#' + fragment);\n } else {\n // Some browsers require that `hash` contains a leading #.\n location.hash = '#' + fragment;\n }\n }\n\n });\n\n // Create the default Backbone.history.\n Backbone.history = new History;\n\n // Helpers\n // -------\n\n // Helper function to correctly set up the prototype chain for subclasses.\n // Similar to `goog.inherits`, but uses a hash of prototype properties and\n // class properties to be extended.\n var extend = function(protoProps, staticProps) {\n var parent = this;\n var child;\n\n // The constructor function for the new subclass is either defined by you\n // (the \"constructor\" property in your `extend` definition), or defaulted\n // by us to simply call the parent constructor.\n if (protoProps && _.has(protoProps, 'constructor')) {\n child = protoProps.constructor;\n } else {\n child = function(){ return parent.apply(this, arguments); };\n }\n\n // Add static properties to the constructor function, if supplied.\n _.extend(child, parent, staticProps);\n\n // Set the prototype chain to inherit from `parent`, without calling\n // `parent` constructor function.\n var Surrogate = function(){ this.constructor = child; };\n Surrogate.prototype = parent.prototype;\n child.prototype = new Surrogate;\n\n // Add prototype properties (instance properties) to the subclass,\n // if supplied.\n if (protoProps) _.extend(child.prototype, protoProps);\n\n // Set a convenience property in case the parent's prototype is needed\n // later.\n child.__super__ = parent.prototype;\n\n return child;\n };\n\n // Set up inheritance for the model, collection, router, view and history.\n Model.extend = Collection.extend = Router.extend = View.extend = History.extend = extend;\n\n // Throw an error when a URL is needed, and none is supplied.\n var urlError = function() {\n throw new Error('A \"url\" property or function must be specified');\n };\n\n // Wrap an optional error callback with a fallback error event.\n var wrapError = function(model, options) {\n var error = options.error;\n options.error = function(resp) {\n if (error) error.call(options.context, model, resp, options);\n model.trigger('error', model, resp, options);\n };\n };\n\n return Backbone;\n\n}));\n","var $ = require('jquery');\nvar _ = require('underscore');\nvar Backbone = require('backbone');\n\n/**\n * Base Model for all CartoDB model.\n * DO NOT USE Backbone.Model directly\n */\nvar Model = Backbone.Model.extend({\n\n initialize: function (options) {\n _.bindAll(this, 'fetch', 'save', 'retrigger');\n return Backbone.Model.prototype.initialize.call(this, options);\n },\n /**\n * We are redefining fetch to be able to trigger an event when the ajax call ends, no matter if there's\n * a change in the data or not. Why don't backbone does this by default? ahh, my friend, who knows.\n * @method fetch\n * @param args {Object}\n */\n fetch: function (args) {\n var self = this;\n // var date = new Date();\n this.trigger('loadModelStarted');\n $.when(Backbone.Model.prototype.fetch.call(this, args)).done(function (ev) {\n self.trigger('loadModelCompleted', ev, self);\n // var dateComplete = new Date()\n // console.log('completed in '+(dateComplete - date));\n }).fail(function (ev) {\n self.trigger('loadModelFailed', ev, self);\n });\n },\n /**\n * Changes the attribute used as Id\n * @method setIdAttribute\n * @param attr {String}\n */\n setIdAttribute: function (attr) {\n this.idAttribute = attr;\n },\n /**\n * Listen for an event on another object and triggers on itself, with the same name or a new one\n * @method retrigger\n * @param ev {String} event who triggers the action\n * @param obj {Object} object where the event happens\n * @param obj {Object} [optional] name of the retriggered event\n * @todo [xabel]: This method is repeated here and in the base view definition. There's should be a way to make it unique\n */\n retrigger: function (ev, obj, retrigEvent) {\n if (!retrigEvent) {\n retrigEvent = ev;\n }\n var self = this;\n obj.bind && obj.bind(ev, function () {\n self.trigger(retrigEvent);\n }, self);\n },\n\n /**\n * We need to override backbone save method to be able to introduce new kind of triggers that\n * for some reason are not present in the original library. Because you know, it would be nice\n * to be able to differenciate \"a model has been updated\" of \"a model is being saved\".\n * TODO: remove jquery from here\n * @param {object} opt1\n * @param {object} opt2\n * @return {$.Deferred}\n */\n save: function (opt1, opt2) {\n var self = this;\n if (!opt2 || !opt2.silent) this.trigger('saving');\n var promise = Backbone.Model.prototype.save.apply(this, arguments);\n $.when(promise).done(function () {\n if (!opt2 || !opt2.silent) self.trigger('saved');\n }).fail(function () {\n if (!opt2 || !opt2.silent) self.trigger('errorSaving');\n });\n return promise;\n }\n});\n\nmodule.exports = Model;\n","var errorExtender = require('./carto-error-extender');\nvar errorTracker = require('./error-tracker');\n\nvar UNEXPECTED_ERROR = 'unexpected error';\nvar GENERIC_ORIGIN = 'generic';\n\n/**\n * Build a cartoError from a generic error.\n * @constructor\n * \n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoError (error, opts) {\n opts = opts || {};\n var cartoError = Object.create(Error.prototype);\n cartoError.message = (error && error.message) || UNEXPECTED_ERROR;\n cartoError.origin = (error && error.origin) || GENERIC_ORIGIN;\n cartoError.type = (error && error.type) || '';\n\n if (_isWindshaftError(error)) {\n cartoError = _transformWindshaftError(error, opts.layers, opts.analysis);\n }\n\n if (_isAjaxError(error)) {\n cartoError = _transformAjaxError(error);\n }\n\n // Add extra fields\n var extraFields = errorExtender.getExtraFields(cartoError);\n cartoError.message = extraFields.friendlyMessage;\n cartoError.errorCode = extraFields.errorCode;\n\n // Final properties\n cartoError.name = 'CartoError';\n cartoError.stack = (new Error()).stack;\n cartoError.originalError = error;\n\n errorTracker.track(cartoError);\n\n return cartoError;\n}\n\n// Windshaft should have been parsed already \nfunction _isWindshaftError (error) {\n return error && error.origin === 'windshaft';\n}\n\nfunction _isAjaxError (error) {\n return error && error.responseText;\n}\n\nfunction _transformWindshaftError (error, layers, analysis) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = error.message;\n cartoError.origin = error.origin;\n cartoError.type = error.type;\n\n if (error.type === 'layer' && layers) {\n cartoError.layer = layers.findById(error.layerId);\n }\n if (error.type === 'analysis') {\n if (analysis) {\n cartoError.source = analysis;\n cartoError.sourceId = analysis.getId && analysis.getId();\n }\n if (error.analysisId) {\n cartoError.sourceId = error.analysisId;\n }\n }\n\n return cartoError;\n}\n\nfunction _transformAjaxError (error) {\n var cartoError = Object.create(Error.prototype);\n cartoError.message = _handleAjaxResponse(error);\n cartoError.origin = 'ajax';\n cartoError.type = error.statusText;\n\n return cartoError;\n}\n\nfunction _handleAjaxResponse (error) {\n var errorMessage = '';\n\n try {\n var parsedError = JSON.parse(error.responseText);\n errorMessage = parsedError.errors[0];\n } catch (exc) {\n // Swallow parse error\n }\n return errorMessage || UNEXPECTED_ERROR;\n}\n\nmodule.exports = CartoError;\n\n/**\n * Represents an error in the carto library.\n * \n * Some actions like adding a layer to a map are asynchronous and require a server round trip.\n * If some error happens during this communnication with the server, an error with a `CartoError` object\n * will be fired.\n * \n * CartoErrors can be obtained by listening to the client 'error' `client.on('error', callback);`,\n * through any async action or by listening to 'error' events on particular objects (eg: dataviews).\n * \n * Promises are also rejected with a CartoError.\n * @example\n * // Listen when a layer has been added or there has been an error.\n * client.addLayer(layerWithErrors)\n * .then(()=> console.log('Layer added succesfully'))\n * .catch(cartoError => console.error(cartoError.message))\n * @example \n * // Events also will be registered here when the map changes.\n * client.on('success', function () {\n * console.log('Client reloaded');\n * });\n * \n * client.on('error', function (clientError) {\n * console.error(clientError.message);\n * });\n * @example\n * // Listen when there is an error in a dataview\n * dataview.on('error', function (error) {\n * console.error(error.message);\n * });\n * \n * @typedef {object} CartoError\n * @property {string} message - A short error description\n * @property {string} name - The name of the error \"CartoError\"\n * @property {string} origin - Where the error was originated: 'windshaft' | 'ajax' | 'validation'\n * @property {object} originalError - An object containing the internal/original error\n * @property {object} stack - Error stack trace\n * @property {string} type - Error type\n * @property {string} sourceId - Available if the error is related to a source object. Indicates the ID of the source that has a problem. \n * @api\n */\n","var _ = require('underscore');\n/**\n * Constants module for dataviews\n */\n\n/**\n * Enum for operation values.\n *\n * @enum {string} carto.operation\n * @readonly\n * @memberof carto\n * @api\n */\nvar operation = {\n /** Number of elements */\n COUNT: 'count',\n /** Sum */\n SUM: 'sum',\n /** Average */\n AVG: 'avg',\n /** Maximum */\n MAX: 'max',\n /** Minimum */\n MIN: 'min'\n};\n\nfunction isValidOperation (op) {\n return _.contains(operation, op);\n}\n\n/**\n * Enum for dataview status values.\n *\n * @enum {string} carto.dataview.status\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar status = {\n /** Not fetched with the server */\n NOT_LOADED: 'notLoaded',\n /** Fetching with the server */\n LOADING: 'loading',\n /** Fetch completed */\n LOADED: 'loaded',\n /** Error in fetch */\n ERROR: 'error'\n};\n\n/**\n * Enum for dataview time aggregations.\n *\n * @enum {string} carto.dataview.timeAggregation\n * @readonly\n * @memberof carto.dataview\n * @api\n */\nvar timeAggregation = {\n /** Auto */\n AUTO: 'auto',\n /** Millennium */\n MILLENNIUM: 'millennium',\n /** Century */\n CENTURY: 'century',\n /** Decade */\n DECADE: 'decade',\n /** Year */\n YEAR: 'year',\n /** Quarter */\n QUARTER: 'quarter',\n /** Month */\n MONTH: 'month',\n /** Week */\n WEEK: 'week',\n /** Day */\n DAY: 'day',\n /** Hour */\n HOUR: 'hour',\n /** Minute */\n MINUTE: 'minute'\n};\n\nfunction isValidTimeAggregation (agg) {\n return _.contains(timeAggregation, agg);\n}\n\n/**\n * ATTRIBUTION constant\n *\n * © OpenStreetMap contributors, © CARTO\n *\n * @type {string}\n * @constant\n * @memberof carto\n * @api\n */\nvar ATTRIBUTION = '© OpenStreetMap contributors, © CARTO';\n\nmodule.exports = {\n operation: operation,\n status: status,\n timeAggregation: timeAggregation,\n isValidOperation: isValidOperation,\n isValidTimeAggregation: isValidTimeAggregation,\n ATTRIBUTION: ATTRIBUTION\n};\n","var CartoError = require('./carto-error');\n\n/**\n * Utility to build a cartoError related to validation errors.\n * @constructor\n * \n * @return {CartoError} A well formed object representing the error.\n */\nfunction CartoValidationError (type, message, opts) {\n return new CartoError({\n origin: 'validation',\n type: type,\n message: message\n }, opts);\n}\n\nmodule.exports = CartoValidationError;\n","var _ = require('underscore');\n\nvar util = {};\n\nutil.isCORSSupported = function () {\n return 'withCredentials' in new XMLHttpRequest();\n};\n\nutil.array2hex = function (byteArr) {\n var encoded = [];\n for (var i = 0; i < byteArr.length; ++i) {\n encoded.push(String.fromCharCode(byteArr[i] + 128));\n }\n return util.btoa(encoded.join(''));\n};\n\nutil.btoa = function (data) {\n if (typeof window['btoa'] === 'function') {\n return util.encodeBase64Native(data);\n }\n\n return util.encodeBase64(data);\n};\n\nutil.encodeBase64Native = function (input) {\n return btoa(input);\n};\n\n// ie7 btoa,\n// from http://phpjs.org/functions/base64_encode/\nutil.encodeBase64 = function (data) {\n var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var o1, o2, o3, h1, h2, h3, h4, bits;\n var i = 0;\n var ac = 0;\n var enc = '';\n var tmpArr = [];\n\n if (!data) {\n return data;\n }\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++);\n o2 = data.charCodeAt(i++);\n o3 = data.charCodeAt(i++);\n\n bits = (o1 << 16) | (o2 << 8) | o3;\n\n h1 = (bits >> 18) & 0x3f;\n h2 = (bits >> 12) & 0x3f;\n h3 = (bits >> 6) & 0x3f;\n h4 = bits & 0x3f;\n\n // use hexets to index into b64, and append result to encoded string\n tmpArr[ac++] =\n b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);\n } while (i < data.length);\n\n enc = tmpArr.join('');\n\n var r = data.length % 3;\n return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);\n};\n\nutil.uniqueCallbackName = function (str) {\n util._callback_c = util._callback_c || 0;\n ++util._callback_c;\n return util.crc32(str) + '_' + util._callback_c;\n};\n\nutil.crc32 = function (str) {\n var crcTable = util._crcTable || (util._crcTable = util._makeCRCTable());\n var crc = 0 ^ -1;\n\n for (var i = 0, l = str.length; i < l; ++i) {\n crc = (crc >>> 8) ^ crcTable[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n};\n\nutil._makeCRCTable = function () {\n var c;\n var crcTable = [];\n for (var n = 0; n < 256; ++n) {\n c = n;\n for (var k = 0; k < 8; ++k) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n};\n\nutil._inferBrowser = function (ua) {\n var browser = {};\n ua =\n ua || (typeof window !== 'undefined' && window.navigator.userAgent) || '';\n function detectIE () {\n var msie = ua.indexOf('MSIE ');\n var trident = ua.indexOf('Trident/');\n if (msie > -1 || trident > -1) return true;\n return false;\n }\n\n function getIEVersion () {\n if (!document.compatMode) return 5;\n if (!window.XMLHttpRequest) return 6;\n if (!document.querySelector) return 7;\n if (!document.addEventListener) return 8;\n if (!window.atob) return 9;\n if (document.all) return 10;\n else return 11;\n }\n\n if (detectIE()) {\n browser.ie = { version: getIEVersion() };\n } else if (ua.indexOf('Edge/') > -1) browser.edge = ua;\n else if (ua.indexOf('Chrome') > -1) browser.chrome = ua;\n else if (ua.indexOf('Firefox') > -1) browser.firefox = ua;\n else if (ua.indexOf('Opera') > -1) browser.opera = ua;\n else if (ua.indexOf('Safari') > -1) browser.safari = ua;\n return browser;\n};\n\nutil.browser = util._inferBrowser();\n\nutil.isMobileDevice = function () {\n return /Android|webOS|iPhone|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent\n );\n};\n\nutil.supportsTouch = function () {\n return 'ontouchstart' in window || navigator.msMaxTouchPoints;\n};\n\nvar webGLSupportedAndEnabled = null;\nutil.isWebGLSupported = function () {\n if (webGLSupportedAndEnabled === null) {\n var canvas = document.createElement('canvas');\n webGLSupportedAndEnabled =\n !!window.WebGLRenderingContext &&\n !!(canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));\n }\n return webGLSupportedAndEnabled;\n};\n\n/**\n * Returns true if the string ends with provided suffix\n */\nutil.endsWith = function (str, suffix) {\n return str.indexOf(suffix, str.length - suffix.length) !== -1;\n};\n\nutil.checkRequiredOpts = function (actualOpts, requiredOpts, from) {\n _.each(requiredOpts, function (item) {\n if (_.isUndefined(actualOpts[item])) {\n throw new Error(\n item + ' is required' + (from ? ' to initialize ' + from : '')\n );\n }\n });\n};\n\n/**\n * Checks that the correct Leaflet version is loaded\n */\nutil.isLeafletLoaded = function () {\n if (!window.L) {\n throw new Error('Leaflet is required');\n }\n if (window.L.version < '1.0.0') {\n throw new Error('Leaflet +1.0 is required');\n }\n};\n\n/**\n * Checks that the correct Google Maps version is loaded\n */\nutil.isGoogleMapsLoaded = function () {\n if (!window.google) {\n throw new Error('Google Maps is required');\n }\n if (!window.google.maps) {\n throw new Error('Google Maps is required');\n }\n if (window.google.maps.version < '3.31.0') {\n throw new Error('Google Maps version should be >= 3.31');\n }\n};\n\nmodule.exports = util;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar CartoValidationError = require('../error-handling/carto-validation-error');\n\n/**\n * Base filter object\n *\n * @constructor\n * @abstract\n * @memberof carto.filter\n * @api\n */\nfunction Base () {}\n\n_.extend(Base.prototype, Backbone.Events);\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('filter', code);\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when bounds have changed. Handler gets a parameter with the new bounds.\n *\n * @event boundsChanged\n * @type {carto.filter.Bounds}\n * @api\n */\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar Model = require('../core/model');\nvar util = require('../core/util');\n\nvar REQUIRED_OPTS = [\n 'camshaftReference',\n 'engine'\n];\n\nvar STATUS = {\n PENDING: 'pending',\n WAITING: 'waiting',\n RUNNING: 'running',\n FAILED: 'failed',\n READY: 'ready'\n};\n\nvar AnalysisModel = Model.extend({\n\n initialize: function (attrs, opts) {\n opts = opts || {};\n util.checkRequiredOpts(opts, REQUIRED_OPTS, 'AnalysisModel');\n\n this._camshaftReference = opts.camshaftReference;\n this._engine = opts.engine;\n\n this._initBinds();\n\n // A hash that tracks which models (layers / dataviews) have\n // this analysis model as their \"source\"\n this._referencedBy = {};\n },\n\n url: function () {\n var url = this.get('url');\n if (url) {\n if (this.get('apiKey')) {\n url += '?api_key=' + this.get('apiKey');\n } else if (this.get('authToken')) {\n var authToken = this.get('authToken');\n if (authToken instanceof Array) {\n var tokens = _.map(authToken, function (token) {\n return 'auth_token[]=' + token;\n });\n url += '?' + tokens.join('&');\n } else {\n url += '?auth_token=' + authToken;\n }\n }\n return url;\n }\n },\n\n setOk: function () {\n this.unset('error');\n },\n\n setError: function (error) {\n this.set({\n error: error,\n status: STATUS.FAILED\n });\n },\n\n _initBinds: function () {\n this.bind('change:type', function () {\n this.unbind(null, null, this);\n this._initBinds();\n this._reload();\n }, this);\n\n _.each(this.getParamNames(), function (paramName) {\n this.bind('change:' + paramName, this._reload, this);\n }, this);\n\n this.bind('change:status', function () {\n // If the status changed from any other status to \"ready\"\n // and this analysis is the \"source\" of any layer or dataview,\n // vis has to be reloaded.\n if (this._hadStatus() && this.isReady() && this.isSourceOfAnyModel()) {\n this._reload();\n }\n }, this);\n },\n\n _hadStatus: function () {\n return this.previous('status');\n },\n\n _reload: function () {\n this._engine.reload({\n error: this._onMapReloadError.bind(this)\n });\n },\n\n _onMapReloadError: function () {\n this.set('status', STATUS.FAILED);\n },\n\n remove: function () {\n this.trigger('destroy', this);\n this.stopListening();\n },\n\n findAnalysisById: function (analysisId) {\n if (this.get('id') === analysisId) {\n return this;\n }\n var sources = _.chain(this._getSourceNames())\n .map(function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n return source.findAnalysisById(analysisId);\n }\n }, this)\n .compact()\n .value();\n\n return sources[0];\n },\n\n _getSourceNames: function () {\n return this._camshaftReference.getSourceNamesForAnalysisType(this.get('type'));\n },\n\n isDone: function () {\n return this._hasStatus([ STATUS.READY, STATUS.FAILED ]);\n },\n\n isLoading: function () {\n return this._hasStatus([ STATUS.PENDING, STATUS.WAITING, STATUS.RUNNING ]);\n },\n\n isReady: function () {\n return this._hasStatus(STATUS.READY);\n },\n\n isFailed: function () {\n return this._hasStatus(STATUS.FAILED);\n },\n\n _hasStatus: function (statuses) {\n if (!_.isArray(statuses)) {\n statuses = [ statuses ];\n }\n return _.contains(statuses, this._getStatus());\n },\n\n _getStatus: function () {\n return this.get('status');\n },\n\n toJSON: function () {\n var json = _.pick(this.attributes, 'id', 'type');\n json.params = _.pick(this.attributes, this.getParamNames());\n var sourceNames = this._getSourceNames();\n _.each(sourceNames, function (sourceName) {\n var source = {};\n var sourceInfo = this.get(sourceName);\n if (sourceInfo) {\n source[sourceName] = sourceInfo.toJSON();\n _.extend(json.params, source);\n }\n }, this);\n\n return json;\n },\n\n getParamNames: function () {\n return this._camshaftReference.getParamNamesForAnalysisType(this.get('type'));\n },\n\n /**\n * Return an Array with the complete node list for this analysis.\n */\n getNodes: function () {\n // Add current node to the list\n var nodes = [this];\n // Recursively iterate through the inputs ( source nodes have no inputs )\n if (this.get('type') !== 'source') {\n _.forEach(this._getSourceNames(), function (sourceName) {\n var source = this.get(sourceName);\n if (source) {\n nodes = nodes.concat(source.getNodes());\n }\n }, this);\n }\n return nodes;\n },\n\n /**\n * Return a Collection with the complete node list for this analysis.\n */\n getNodesCollection: function () {\n return new Backbone.Collection(this.getNodes());\n },\n\n /**\n * Compare two analysisModels.\n */\n equals: function (analysisModel) {\n if (!(analysisModel instanceof AnalysisModel)) {\n return false;\n }\n // Since all analysis are created using the analysisFactory different ids ensure different nodes.\n return this.get('id') === analysisModel.get('id');\n },\n\n markAsSourceOf: function (model) {\n this._referencedBy[model.cid] = true;\n },\n\n isSourceOfAnyModel: function () {\n return Object.keys(this._referencedBy).length > 0;\n },\n\n isSourceOf: function (model) {\n return !!this._referencedBy[model.cid];\n },\n\n unmarkAsSourceOf: function (model) {\n delete this._referencedBy[model.cid];\n }\n}, {\n STATUS: STATUS\n});\n\nmodule.exports = AnalysisModel;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar status = require('../constants').status;\nvar SourceBase = require('../source/base');\nvar FilterBase = require('../filter/base');\nvar SQLFilterBase = require('../filter/base-sql');\nvar CartoError = require('../error-handling/carto-error');\nvar CartoValidationError = require('../error-handling/carto-validation-error');\n\n/**\n * Base class for dataview objects.\n *\n * Dataviews are a way to extract data from a CARTO account in predefined ways\n * (eg: a list of categories, the result of a formula operation, etc.).\n *\n * **This object should not be used directly**\n *\n * The data used in a dataviews cames from a {@link carto.source.Base|source} that might change\n * due to different reasons (eg: SQL query changed).\n *\n * When dataview data changes the dataview will trigger events to notify subscribers when new data is available.\n *\n * @example\n * // Keep your widget data sync. Remember each dataview has his own data format.\n * dataview.on('dataChanged', newData => {\n * renderWidget(newData);\n * })\n *\n * @constructor\n * @abstract\n * @memberof carto.dataview\n * @fires dataChanged\n * @fires columnChanged\n * @fires statusChanged\n * @fires error\n * @api\n */\nfunction Base () { }\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * Return the current dataview status.\n *\n * @return {carto.dataview.status} Current dataview status\n * @api\n */\nBase.prototype.getStatus = function () {\n return this._status;\n};\n\n/**\n * Return true is the current status is loading.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoading = function () {\n return this._status === status.LOADING;\n};\n\n/**\n * Return true is the current status is loaded.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isLoaded = function () {\n return this._status === status.LOADED;\n};\n\n/**\n * Return true is the current status is error.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.hasError = function () {\n return this._status === status.ERROR;\n};\n\n/**\n * Enable the dataview. When enabled, a dataview fetches new data\n * when the map changes (changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.enable = function () {\n return this._setEnabled(true);\n};\n\n/**\n * Disable the dataview. This stops the dataview from fetching new\n * data when there is a map change (like changing map configuration or changing map\n * bounding box).\n *\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.disable = function () {\n return this._setEnabled(false);\n};\n\n/**\n * Return true if the dataview is enabled.\n *\n * @return {boolean}\n * @api\n */\nBase.prototype.isEnabled = function () {\n return this._enabled;\n};\n\n/**\n * Return the current source where the dataview gets the data from.\n *\n * @return {carto.source.Base} Current source object\n * @api\n */\nBase.prototype.getSource = function () {\n return this._source;\n};\n\n/**\n * Set the dataview column.\n *\n * @param {string} column\n * @fires columnChanged\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.setColumn = function (column) {\n this._checkColumn(column);\n this._column = column;\n if (this._internalModel) {\n this._internalModel.set('column', this._column);\n }\n return this;\n};\n\n/**\n * Return the current dataview column where the dataview is applied.\n *\n * @return {string} Current dataview column\n * @api\n */\nBase.prototype.getColumn = function () {\n return this._column;\n};\n\n/**\n * Add a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._checkFilter(filter);\n if (filter !== this._boundingBoxFilter) {\n this._addBoundingBoxFilter(filter);\n }\n return this;\n};\n\n/**\n * Remove a {@link carto.filter.Base|filter}.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._checkFilter(filter);\n if (filter === this._boundingBoxFilter) {\n this._removeBoundingBoxFilter();\n }\n return this;\n};\n\n/**\n * Check if a {@link carto.filter.Base|filter} exists in the dataview.\n *\n * @param {carto.filter.Base} filter\n * @return {carto.dataview.Base} this\n * @api\n */\nBase.prototype.hasFilter = function (filter) {\n this._checkFilter(filter);\n return (filter === this._boundingBoxFilter) &&\n (this._internalModel && this._internalModel.get('sync_on_bbox_change'));\n};\n\nBase.prototype.getData = function () {\n throw new Error('getData must be implemented by the particular dataview.');\n};\n\n// Protected methods\n\nBase.prototype.DEFAULTS = {};\n\n/**\n * Initialize dataview.\n *\n * @param {carto.source.Base} source - The source where the dataview will fetch the data\n * @param {string} column - The column name to get the data\n * @param {object} options - It depends on the instance\n */\nBase.prototype._initialize = function (source, column, options) {\n options = _.defaults(options || {}, this.DEFAULTS);\n\n this._checkSource(source);\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._source = source;\n this._column = column;\n this._options = options;\n\n this._status = status.NOT_LOADED;\n this._enabled = true;\n this._boundingBoxFilter = null;\n};\n\nBase.prototype._checkSource = function (source) {\n if (!(source instanceof SourceBase)) {\n throw this._getValidationError('sourceRequired');\n }\n};\n\nBase.prototype._checkColumn = function (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n};\n\nBase.prototype._checkOptions = function (options) {\n throw new Error('_checkOptions must be implemented by the particular dataview.');\n};\n\nBase.prototype._checkFilter = function (filter) {\n if (!(filter instanceof FilterBase) || filter instanceof SQLFilterBase) {\n throw this._getValidationError('filterRequired');\n }\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular dataview.');\n};\n\nBase.prototype._setEnabled = function (enabled) {\n this._enabled = enabled;\n if (this._internalModel) {\n this._internalModel.set('enabled', enabled);\n }\n return this;\n};\n\nBase.prototype._listenToInternalModelSharedEvents = function () {\n if (this._internalModel) {\n this.listenTo(this._internalModel, 'change:data', this._onDataChanged);\n this.listenTo(this._internalModel, 'change:column', this._onColumnChanged);\n this.listenTo(this._internalModel, 'loading', this._onStatusLoading);\n this.listenTo(this._internalModel, 'loaded', this._onStatusLoaded);\n this.listenTo(this._internalModel, 'statusError', this._onStatusError);\n }\n};\n\nBase.prototype._onDataChanged = function () {\n this.trigger('dataChanged', this.getData());\n};\n\nBase.prototype._onColumnChanged = function () {\n if (this._internalModel) {\n this._column = this._internalModel.get('column');\n }\n this.trigger('columnChanged', this._column);\n};\n\nBase.prototype._onStatusLoading = function () {\n this._status = status.LOADING;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusLoaded = function () {\n this._status = status.LOADED;\n this.trigger('statusChanged', this._status);\n};\n\nBase.prototype._onStatusError = function (model, error) {\n this._status = status.ERROR;\n this.trigger('statusChanged', this._status, error);\n this._triggerError(this, error);\n};\n\nBase.prototype._changeProperty = function (key, value, internalKey) {\n var prevValue = this['_' + key];\n this['_' + key] = value;\n if (prevValue === value) {\n return;\n }\n this._triggerChange(key, value);\n if (this._internalModel) {\n this._internalModel.set(internalKey || key, value);\n }\n};\n\nBase.prototype._changeProperties = function (properties) {\n _.each(properties, (value, key) => {\n const prevValue = this[`_${key}`];\n\n if (prevValue !== value) {\n this[`_${key}`] = value;\n this._triggerChange(key, value);\n }\n });\n\n if (this._internalModel) {\n this._internalModel.set(properties);\n }\n};\n\nBase.prototype._triggerChange = function (key, value) {\n this.trigger(key + 'Changed', value);\n};\n\n/**\n * Fire a CartoError event from a internalDataviewError.\n */\nBase.prototype._triggerError = function (model, internalDataviewError) {\n this.trigger('error', new CartoError(internalDataviewError));\n};\n\nBase.prototype._addBoundingBoxFilter = function (filter) {\n this._boundingBoxFilter = filter;\n if (this._internalModel) {\n this._internalModel.addBBoxFilter(this._boundingBoxFilter.$getInternalModel());\n this._internalModel.set('sync_on_bbox_change', true);\n }\n};\n\nBase.prototype._removeBoundingBoxFilter = function () {\n this._boundingBoxFilter = null;\n if (this._internalModel) {\n this._internalModel.set('sync_on_bbox_change', false);\n }\n};\n\nBase.prototype._getValidationError = function (code) {\n return new CartoValidationError('dataview', code);\n};\n\n// Internal public methods\n\nBase.prototype.$setEngine = function (engine) {\n this._source.$setEngine(engine);\n if (!this._internalModel) {\n this._createInternalModel(engine);\n this._listenToInternalModelSharedEvents();\n }\n};\n\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\nmodule.exports = Base;\n\n/**\n * Fired when the column name has changed. Handler gets a parameter with the new column name.\n *\n * @event columnChanged\n * @type {string}\n * @api\n */\n\n/**\n * Fired when the status has changed. Handler gets a parameter with the new status.\n *\n * Contains a single argument with the new status.\n *\n * @event statusChanged\n * @type {carto.dataview.status}\n * @api\n */\n\n/**\n * Fired when the data has changed. Handler gets an object with specific data for the type\n * of dataview that triggered the event.\n *\n * @event dataChanged\n * @type {carto.dataview.CategoryData|carto.dataview.FormulaData|carto.dataview.HistogramData|carto.dataview.TimeSeriesData}\n * @api\n */\n","const _ = require('underscore');\nconst Base = require('./base');\nconst getObjectValue = require('../../../../src/util/get-object-value');\n\nconst ALLOWED_OPTIONS = ['includeNull'];\nconst DEFAULT_JOIN_OPERATOR = 'AND';\n\n/**\n * SQL Filter\n *\n * A SQL filter is the base for all the SQL filters such as the Category Filter or the Range filter\n *\n * @param {string} column - The filtering will be performed against this column\n * @param {object} [options={}]\n * @param {boolean} [options.includeNull] - Include null rows when returning data\n *\n * @class SQLBase\n * @extends carto.filter.Base\n * @memberof carto.filter\n */\nclass SQLBase extends Base {\n constructor (column, options = {}) {\n super();\n\n this._checkColumn(column);\n this._checkOptions(options);\n\n this._column = column;\n this._filters = {};\n this._options = options;\n }\n\n /**\n * Set any of the filter conditions, overwriting the previous one.\n * @param {string} filterType - The filter type that you want to set\n * @param {string} filterValue - The value of the filter\n */\n set (filterType, filterValue) {\n if (!filterType || !filterValue || !_.isString(filterType)) {\n return;\n }\n\n const newFilter = { [filterType]: filterValue };\n\n this._checkFilters(newFilter);\n this._filters[filterType] = filterValue;\n\n this.trigger('change:filters', newFilter);\n }\n\n /**\n * Set the filter conditions, overriding all the previous ones.\n * @param {object} filters - The object containing all the new filters to apply.\n */\n setFilters (filters) {\n if (!filters || !_.isObject(filters)) {\n return;\n }\n\n this._checkFilters(filters);\n this._filters = filters;\n\n this.trigger('change:filters', filters);\n }\n\n /**\n * Remove all conditions from current filter\n */\n resetFilters () {\n this.setFilters({});\n }\n\n $getSQL () {\n const filters = Object.keys(this._filters);\n let sql = filters\n .map(filterType => this._interpolateFilter(filterType, this._filters[filterType]))\n .filter(filter => Boolean(filter))\n .join(` ${DEFAULT_JOIN_OPERATOR} `);\n\n if (this._options.includeNull) {\n this._includeNullInQuery(sql);\n }\n\n if (filters.length > 1) {\n return `(${sql})`;\n }\n\n return sql;\n }\n\n _checkColumn (column) {\n if (_.isUndefined(column)) {\n throw this._getValidationError('columnRequired');\n }\n\n if (!_.isString(column)) {\n throw this._getValidationError('columnString');\n }\n\n if (_.isEmpty(column)) {\n throw this._getValidationError('emptyColumn');\n }\n }\n\n _checkFilters (filters) {\n Object.keys(filters).forEach(filter => {\n const isFilterValid = _.contains(this.ALLOWED_FILTERS, filter);\n\n if (!isFilterValid) {\n throw this._getValidationError(`invalidFilter${filter}`);\n }\n\n const parameters = this.PARAMETER_SPECIFICATION[filter].parameters;\n const haveCorrectType = parameters.every(\n parameter => {\n const parameterValue = getObjectValue(filters, parameter.name);\n return parameter.allowedTypes.some(type => parameterIsOfType(type, parameterValue));\n }\n );\n\n if (!haveCorrectType) {\n throw this._getValidationError(`invalidParameterType${filter}`);\n }\n });\n }\n\n _checkOptions (options) {\n Object.keys(options).forEach(option => {\n const isOptionValid = _.contains(ALLOWED_OPTIONS, option);\n\n if (!isOptionValid) {\n throw this._getValidationError(`invalidOption${option}`);\n }\n });\n }\n\n _convertValueToSQLString (filterValue) {\n if (_.isDate(filterValue)) {\n return `'${filterValue.toISOString()}'`;\n }\n\n if (_.isArray(filterValue)) {\n return filterValue\n .map(value => this._convertValueToSQLString(value))\n .join(',');\n }\n\n if (_.isObject(filterValue)) {\n Object\n .keys(filterValue)\n .forEach(key => {\n if (key === 'query') {\n return;\n }\n\n filterValue[key] = this._convertValueToSQLString(filterValue[key]);\n });\n\n return filterValue;\n }\n\n if (_.isNumber(filterValue)) {\n return filterValue;\n }\n\n return `'${normalizeString(filterValue.toString())}'`;\n }\n\n _interpolateFilter (filterType, filterValues) {\n const sqlString = _.template(this.SQL_TEMPLATES[filterType]);\n const value = this._convertValueToSQLString(filterValues);\n\n return sqlString({ column: this._column, value });\n }\n\n _includeNullInQuery (sql) {\n const filters = Object.keys(this._filters);\n\n if (filters.length > 1) {\n sql = `(${sql})`;\n }\n\n return `(${sql} OR ${this._column} IS NULL)`;\n }\n}\n\nconst parameterIsOfType = function (parameterType, parameterValue) {\n return _[`is${parameterType}`](parameterValue);\n};\n\nconst normalizeString = function (value) {\n return value.replace(/\\n/g, '\\\\n').replace(/\\\"/g, '\\\\\"').replace(/'/g, \"''\");\n};\n\nmodule.exports = SQLBase;\n","const _ = require('underscore');\nconst Backbone = require('backbone');\nconst CartoError = require('../error-handling/carto-error');\nconst FiltersCollection = require('../filter/filters-collection');\nconst EVENTS = require('../events');\n\n/**\n * Base data source object.\n *\n * The methods listed in the {@link carto.source.Base|source.Base} object are available in all source objects.\n *\n * Use a source to reference the data used in a {@link carto.dataview.Base|dataview} or a {@link carto.layer.Base|layer}.\n *\n * {@link carto.source.Base} should not be used directly use {@link carto.source.Dataset} or {@link carto.source.SQL} instead.\n *\n * @constructor\n * @fires error\n * @abstract\n * @memberof carto.source\n * @api\n */\nfunction Base () {\n this._id = Base.$generateId();\n this._hasFiltersApplied = false;\n this._appliedFilters = new FiltersCollection();\n}\n\n_.extend(Base.prototype, Backbone.Events);\n\n/**\n * The instance id will be autogenerated by incrementing this variable.\n */\nBase.$nextId = 0;\n\n/**\n * Static funciton used internally to autogenerate source ids.\n */\nBase.$generateId = function () {\n return 'S' + ++Base.$nextId;\n};\n\n/**\n * Return a unique autogenerated id.\n *\n * @return {string} Unique autogenerated id\n */\nBase.prototype.getId = function () {\n return this._id;\n};\n\nBase.prototype._createInternalModel = function (engine) {\n throw new Error('_createInternalModel must be implemented by the particular source');\n};\n\n/**\n * Fire a CartoError event from a internalError\n */\nBase.prototype._triggerError = function (model, internalError) {\n this.trigger(EVENTS.ERROR, new CartoError(internalError, { analysis: this }));\n};\n\nBase.prototype.$setEngine = function (engine) {\n if (!this._internalModel) {\n this._internalModel = this._createInternalModel(engine);\n this._internalModel.on('change:error', this._triggerError, this);\n }\n};\n\n/**\n * Return the engine form the source internal model\n */\nBase.prototype.$getEngine = function (engine) {\n if (this._internalModel) {\n return this._internalModel._engine;\n }\n};\n\n/**\n * Return the real CARTO.js model used by the source.\n */\nBase.prototype.$getInternalModel = function () {\n return this._internalModel;\n};\n\n/**\n * Get added filters\n *\n * @returns {Array} Added filters\n * @api\n */\nBase.prototype.getFilters = function () {\n return this._appliedFilters.getFilters();\n};\n\n/**\n * Add new filter to the source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.addFilter = function (filter) {\n this._hasFiltersApplied = true;\n this._appliedFilters.addFilter(filter);\n};\n\n/**\n * Add new filters to the source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.addFilters = function (filters) {\n filters.forEach(filter => this.addFilter(filter));\n};\n\n/**\n * Remove an existing filter from source\n *\n * @param {(carto.filter.Range|carto.filter.Category|carto.filter.AND|carto.filter.OR)} filter\n * @api\n */\nBase.prototype.removeFilter = function (filter) {\n this._appliedFilters.removeFilter(filter);\n this._hasFiltersApplied = Boolean(this._appliedFilters.count());\n};\n\n/**\n * Remove existing filters from source\n *\n * @param {Array} filters\n * @api\n */\nBase.prototype.removeFilters = function (filters) {\n filters.forEach(filter => this.removeFilter(filter));\n};\n\nmodule.exports = Base;\n","var _ = require('underscore');\nvar Backbone = require('backbone');\nvar Engine = require('../../../engine');\n\nvar NON_RESETEABLE_DEFAULT_ATTRS = ['state', 'visible'];\n\nvar LegendModelBase = Backbone.Model.extend({\n defaults: function () {\n return {\n visible: false,\n title: '',\n preHTMLSnippet: '',\n postHTMLSnippet: '',\n state: this.constructor.STATE_LOADING\n };\n },\n\n initialize: function (attrs, deps) {\n if (!deps.engine) throw new Error('engine is required');\n\n deps.engine.on(Engine.Events.RELOAD_STARTED, this._onEngineReloadStarted, this);\n },\n\n _onEngineReloadStarted: function () {\n this.set('state', this.constructor.STATE_LOADING);\n },\n\n isLoading: function () {\n return this.get('state') === this.constructor.STATE_LOADING;\n },\n\n isError: function () {\n return this.get('state') === this.constructor.STATE_ERROR;\n },\n\n isSuccess: function () {\n return this.get('state') === this.constructor.STATE_SUCCESS;\n },\n\n show: function () {\n this.set('visible', true);\n },\n\n hide: function () {\n this.set('visible', false);\n },\n\n isVisible: function () {\n return this.get('visible');\n },\n\n update: function (attrs) {\n this.set(attrs);\n },\n\n getNonResettableAttrs: function () {\n return NON_RESETEABLE_DEFAULT_ATTRS;\n },\n\n reset: function () {\n var defaults = _.omit(this.defaults(),\n this.getNonResettableAttrs()\n );\n this.set(defaults);\n },\n\n isAvailable: function () {\n return false;\n }\n}, {\n STATE_LOADING: 'loading',\n STATE_SUCCESS: 'success',\n STATE_ERROR: 'error'\n});\n\nmodule.exports = LegendModelBase;\n","/**\n * Fired when something went wrong on the server side.\n * \n * @event error\n * @type {CartoError}\n * @api\n */\n\n/**\n * Fired when a request to the server completed successfully.\n * \n * @event success\n * @api\n */\n\nmodule.exports = {\n SUCCESS: 'success',\n ERROR: 'error'\n};\n","var _ = require('underscore');\n\nvar PROPERTY_KEY = 'prop';\nvar MAPPING_KEY = 'mapping';\n\nvar RANGE_FILTER_TYPE = 'range';\nvar CATEGORY_FILTER_TYPE = 'category';\nvar DEFAULT_FILTER_TYPE = 'default';\n\nvar Rule = function (rule) {\n this._rule = rule;\n};\n\nRule.prototype.matchesAnyProperty = function (props) {\n return this._matches(this._rule[PROPERTY_KEY], props);\n};\n\nRule.prototype.matchesAnyMapping = function (mappings) {\n return this._matches(this._rule[MAPPING_KEY], mappings);\n};\n\nRule.prototype._matches = function (value, acceptedValues) {\n if (_.isString(acceptedValues)) {\n acceptedValues = [ acceptedValues ];\n }\n return _.contains(acceptedValues, value);\n};\n\nRule.prototype.getBucketsWithRangeFilter = function () {\n return this._getBucketsByFilterType(RANGE_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithCategoryFilter = function () {\n return this._getBucketsByFilterType(CATEGORY_FILTER_TYPE);\n};\n\nRule.prototype.getBucketsWithDefaultFilter = function () {\n return this._getBucketsByFilterType(DEFAULT_FILTER_TYPE);\n};\n\nRule.prototype._getBucketsByFilterType = function (filterType) {\n if (this._rule) {\n return _.select(this._rule.buckets, function (bucket) {\n return bucket.filter.type === filterType;\n });\n }\n return [];\n};\n\nRule.prototype.getColumn = function () {\n return this._rule.column;\n};\n\nRule.prototype.getMapping = function () {\n return this._rule.mapping;\n};\n\nRule.prototype.getProperty = function () {\n return this._rule.prop;\n};\n\nRule.prototype.getFilterAvg = function () {\n return this._rule.stats.filter_avg;\n};\n\nmodule.exports = Rule;\n","var TILED_LAYER_TYPE = 'Tiled';\nvar PLAIN_LAYER_TYPE = 'Plain';\nvar WMS_LAYER_TYPE = 'WMS';\nvar GMAPS_BASE_LAYER_TYPE = 'GMapsBase';\nvar CARTODB_LAYER_TYPE = 'CartoDB';\nvar TORQUE_LAYER_TYPE = 'torque';\n\nvar isLayerOfType = function (layerModel, layerType) {\n return layerModel.get('type').toLowerCase() === layerType.toLowerCase();\n};\n\nmodule.exports = {\n isTiledLayer: function (layerModel) {\n return isLayerOfType(layerModel, TILED_LAYER_TYPE);\n },\n\n isPlainLayer: function (layerModel) {\n return isLayerOfType(layerModel, PLAIN_LAYER_TYPE);\n },\n\n isWMSLayer: function (layerModel) {\n return isLayerOfType(layerModel, WMS_LAYER_TYPE);\n },\n\n isGoogleMapsBaseLayer: function (layerModel) {\n return isLayerOfType(layerModel, GMAPS_BASE_LAYER_TYPE);\n },\n\n isCartoDBLayer: function (layerModel) {\n return isLayerOfType(layerModel, CARTODB_LAYER_TYPE);\n },\n\n isTorqueLayer: function (layerModel) {\n return isLayerOfType(layerModel, TORQUE_LAYER_TYPE);\n }\n};\n","/*!\n * jQuery JavaScript Library v2.1.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Copyright 2005, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2015-04-28T16:01Z\n */\n\n(function( global, factory ) {\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n}(typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Support: Firefox 18+\n// Can't be in strict mode, several libs including ASP.NET trace\n// the stack via arguments.caller.callee and Firefox dies if\n// you try to trace through \"use strict\" call chains. (#13335)\n//\n\nvar arr = [];\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar support = {};\n\n\n\nvar\n\t// Use the correct document accordingly with window argument (sandbox)\n\tdocument = window.document,\n\n\tversion = \"2.1.4\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android<4.1\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g,\n\n\t// Matches dashed string for camelizing\n\trmsPrefix = /^-ms-/,\n\trdashAlpha = /-([\\da-z])/gi,\n\n\t// Used by jQuery.camelCase as callback to replace()\n\tfcamelCase = function( all, letter ) {\n\t\treturn letter.toUpperCase();\n\t};\n\njQuery.fn = jQuery.prototype = {\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// Start with an empty selector\n\tselector: \"\",\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\t\treturn num != null ?\n\n\t\t\t// Return just the one element from the set\n\t\t\t( num < 0 ? this[ num + this.length ] : this[ num ] ) :\n\n\t\t\t// Return all the elements in a clean array\n\t\t\tslice.call( this );\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\t\tret.context = this.context;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\t// (You can seed the arguments with an array of args, but this is\n\t// only used internally.)\n\teach: function( callback, args ) {\n\t\treturn jQuery.each( this, callback, args );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map(this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t}));\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor(null);\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[0] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !jQuery.isFunction(target) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\t\t// Only deal with non-null/undefined values\n\t\tif ( (options = arguments[ i ]) != null ) {\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && jQuery.isArray(src) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject(src) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend({\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisFunction: function( obj ) {\n\t\treturn jQuery.type(obj) === \"function\";\n\t},\n\n\tisArray: Array.isArray,\n\n\tisWindow: function( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t},\n\n\tisNumeric: function( obj ) {\n\t\t// parseFloat NaNs numeric-cast false positives (null|true|false|\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t// adding 1 corrects loss of precision from parseFloat (#15100)\n\t\treturn !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;\n\t},\n\n\tisPlainObject: function( obj ) {\n\t\t// Not plain objects:\n\t\t// - Any object or value whose internal [[Class]] property is not \"[object Object]\"\n\t\t// - DOM nodes\n\t\t// - window\n\t\tif ( jQuery.type( obj ) !== \"object\" || obj.nodeType || jQuery.isWindow( obj ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ( obj.constructor &&\n\t\t\t\t!hasOwn.call( obj.constructor.prototype, \"isPrototypeOf\" ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If the function hasn't returned already, we're confident that\n\t\t// |obj| is a plain object, created by {} or constructed with new Object\n\t\treturn true;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\ttype: function( obj ) {\n\t\tif ( obj == null ) {\n\t\t\treturn obj + \"\";\n\t\t}\n\t\t// Support: Android<4.0, iOS<6 (functionish RegExp)\n\t\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\t\tclass2type[ toString.call(obj) ] || \"object\" :\n\t\t\ttypeof obj;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tvar script,\n\t\t\tindirect = eval;\n\n\t\tcode = jQuery.trim( code );\n\n\t\tif ( code ) {\n\t\t\t// If the code includes a valid, prologue position\n\t\t\t// strict mode pragma, execute code by injecting a\n\t\t\t// script tag into the document.\n\t\t\tif ( code.indexOf(\"use strict\") === 1 ) {\n\t\t\t\tscript = document.createElement(\"script\");\n\t\t\t\tscript.text = code;\n\t\t\t\tdocument.head.appendChild( script ).parentNode.removeChild( script );\n\t\t\t} else {\n\t\t\t// Otherwise, avoid the DOM node creation, insertion\n\t\t\t// and removal by using an indirect global eval\n\t\t\t\tindirect( code );\n\t\t\t}\n\t\t}\n\t},\n\n\t// Convert dashed to camelCase; used by the css and data modules\n\t// Support: IE9-11+\n\t// Microsoft forgot to hump their vendor prefix (#9572)\n\tcamelCase: function( string ) {\n\t\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n\t},\n\n\tnodeName: function( elem, name ) {\n\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\t},\n\n\t// args is for internal usage only\n\teach: function( obj, callback, args ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = obj.length,\n\t\t\tisArray = isArraylike( obj );\n\n\t\tif ( args ) {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.apply( obj[ i ], args );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// A special, fast, case for the most common use of each\n\t\t} else {\n\t\t\tif ( isArray ) {\n\t\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( i in obj ) {\n\t\t\t\t\tvalue = callback.call( obj[ i ], i, obj[ i ] );\n\n\t\t\t\t\tif ( value === false ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android<4.1\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArraylike( Object(arr) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar value,\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tisArray = isArraylike( elems ),\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArray ) {\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// Bind a function to a context, optionally partially applying any\n\t// arguments.\n\tproxy: function( fn, context ) {\n\t\tvar tmp, args, proxy;\n\n\t\tif ( typeof context === \"string\" ) {\n\t\t\ttmp = fn[ context ];\n\t\t\tcontext = fn;\n\t\t\tfn = tmp;\n\t\t}\n\n\t\t// Quick check to determine if target is callable, in the spec\n\t\t// this throws a TypeError, but we will just return undefined.\n\t\tif ( !jQuery.isFunction( fn ) ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Simulated bind\n\t\targs = slice.call( arguments, 2 );\n\t\tproxy = function() {\n\t\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t\t};\n\n\t\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\t\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\t\treturn proxy;\n\t},\n\n\tnow: Date.now,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n});\n\n// Populate the class2type map\njQuery.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n});\n\nfunction isArraylike( obj ) {\n\n\t// Support: iOS 8.2 (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = \"length\" in obj && obj.length,\n\t\ttype = jQuery.type( obj );\n\n\tif ( type === \"function\" || jQuery.isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\tif ( obj.nodeType === 1 && length ) {\n\t\treturn true;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.2.0-pre\n * http://sizzlejs.com/\n *\n * Copyright 2008, 2014 jQuery Foundation, Inc. and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2014-12-16\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// General-purpose constants\n\tMAX_NEGATIVE = 1 << 31,\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// http://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\t// http://www.w3.org/TR/css3-syntax/#characters\n\tcharacterEncoding = \"(?:\\\\\\\\.|[\\\\w-]|[^\\\\x00-\\\\xa0])+\",\n\n\t// Loosely modeled on CSS identifier characters\n\t// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors\n\t// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = characterEncoding.replace( \"w\", \"w#\" ),\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + characterEncoding + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + characterEncoding + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + characterEncoding + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + characterEncoding + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + characterEncoding.replace( \"w\", \"w*\" ) + \")\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\trescape = /'|\\\\/g,\n\n\t// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t};\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar match, elem, m, nodeType,\n\t\t// QSA vars\n\t\ti, groups, old, nid, newContext, newSelector;\n\n\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\n\tcontext = context || document;\n\tresults = results || [];\n\tnodeType = context.nodeType;\n\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\tif ( !seed && documentIsHTML ) {\n\n\t\t// Try to shortcut find operations when possible (e.g., not under DocumentFragment)\n\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\t\t\t// Speed-up: Sizzle(\"#ID\")\n\t\t\tif ( (m = match[1]) ) {\n\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\telem = context.getElementById( m );\n\t\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t\t// nodes that are no longer in the document (jQuery #6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Handle the case where IE, Opera, and Webkit return items\n\t\t\t\t\t\t// by name instead of ID\n\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Context is not a document\n\t\t\t\t\tif ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) &&\n\t\t\t\t\t\tcontains( context, elem ) && elem.id === m ) {\n\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Speed-up: Sizzle(\"TAG\")\n\t\t\t} else if ( match[2] ) {\n\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\treturn results;\n\n\t\t\t// Speed-up: Sizzle(\".CLASS\")\n\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName ) {\n\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\treturn results;\n\t\t\t}\n\t\t}\n\n\t\t// QSA path\n\t\tif ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\t\t\tnid = old = expando;\n\t\t\tnewContext = context;\n\t\t\tnewSelector = nodeType !== 1 && selector;\n\n\t\t\t// qSA works strangely on Element-rooted queries\n\t\t\t// We can work around this by specifying an extra ID on the root\n\t\t\t// and working up from there (Thanks to Andrew Dupont for the technique)\n\t\t\t// IE 8 doesn't work on object elements\n\t\t\tif ( nodeType === 1 && context.nodeName.toLowerCase() !== \"object\" ) {\n\t\t\t\tgroups = tokenize( selector );\n\n\t\t\t\tif ( (old = context.getAttribute(\"id\")) ) {\n\t\t\t\t\tnid = old.replace( rescape, \"\\\\$&\" );\n\t\t\t\t} else {\n\t\t\t\t\tcontext.setAttribute( \"id\", nid );\n\t\t\t\t}\n\t\t\t\tnid = \"[id='\" + nid + \"'] \";\n\n\t\t\t\ti = groups.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tgroups[i] = nid + toSelector( groups[i] );\n\t\t\t\t}\n\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) || context;\n\t\t\t\tnewSelector = groups.join(\",\");\n\t\t\t}\n\n\t\t\tif ( newSelector ) {\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch(qsaError) {\n\t\t\t\t} finally {\n\t\t\t\t\tif ( !old ) {\n\t\t\t\t\t\tcontext.removeAttribute(\"id\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {Function(string, Object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created div and expects a boolean result\n */\nfunction assert( fn ) {\n\tvar div = document.createElement(\"div\");\n\n\ttry {\n\t\treturn !!fn( div );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( div.parentNode ) {\n\t\t\tdiv.parentNode.removeChild( div );\n\t\t}\n\t\t// release memory in IE\n\t\tdiv = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = attrs.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\t( ~b.sourceIndex || MAX_NEGATIVE ) -\n\t\t\t( ~a.sourceIndex || MAX_NEGATIVE );\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, parent,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// If no document and documentElement is available, return\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Set our document\n\tdocument = doc;\n\tdocElem = doc.documentElement;\n\tparent = doc.defaultView;\n\n\t// Support: IE>8\n\t// If iframe document is assigned to \"document\" variable and if iframe has been reloaded,\n\t// IE will throw \"permission denied\" error when accessing \"document\" variable, see jQuery #13936\n\t// IE6-8 do not support the defaultView property so parent will be undefined\n\tif ( parent && parent !== parent.top ) {\n\t\t// IE11 does not have attachEvent, so all must suffer\n\t\tif ( parent.addEventListener ) {\n\t\t\tparent.addEventListener( \"unload\", unloadHandler, false );\n\t\t} else if ( parent.attachEvent ) {\n\t\t\tparent.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Support tests\n\t---------------------------------------------------------------------- */\n\tdocumentIsHTML = !isXML( doc );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( div ) {\n\t\tdiv.className = \"i\";\n\t\treturn !div.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( div ) {\n\t\tdiv.appendChild( doc.createComment(\"\") );\n\t\treturn !div.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( doc.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( div ) {\n\t\tdocElem.appendChild( div ).id = expando;\n\t\treturn !doc.getElementsByName || !doc.getElementsByName( expando ).length;\n\t});\n\n\t// ID find and filter\n\tif ( support.getById ) {\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar m = context.getElementById( id );\n\t\t\t\t// Check parentNode to catch when Blackberry 4.6 returns\n\t\t\t\t// nodes that are no longer in the document #6963\n\t\t\t\treturn m && m.parentNode ? [ m ] : [];\n\t\t\t}\n\t\t};\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t} else {\n\t\t// Support: IE6/7\n\t\t// getElementById is not reliable as a find shortcut\n\t\tdelete Expr.find[\"ID\"];\n\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" && elem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See http://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( doc.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( div ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// http://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( div ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// http://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( div.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !div.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.2+, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.7+\n\t\t\tif ( !div.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibing-combinator selector` fails\n\t\t\tif ( !div.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( div ) {\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = doc.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tdiv.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( div.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !div.querySelectorAll(\":enabled\").length ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tdiv.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( div ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( div, \"div\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( div, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully does not implement inclusive descendent\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === doc || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === doc || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === doc ? -1 :\n\t\t\t\tb === doc ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn doc;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, diff, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || (parent[ expando ] = {});\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[0] === dirruns && cache[1];\n\t\t\t\t\t\t\tdiff = cache[0] === dirruns && cache[2];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t} else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) {\n\t\t\t\t\t\t\tdiff = cache[1];\n\n\t\t\t\t\t\t// xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\tif ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) {\n\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t(node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": function( elem ) {\n\t\t\treturn elem.disabled === false;\n\t\t},\n\n\t\t\"disabled\": function( elem ) {\n\t\t\treturn elem.disabled === true;\n\t\t},\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tcheckNonElements = base && dir === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from dir caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\t\t\t\t\t\tif ( (oldCache = outerCache[ dir ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ dir ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context !== document && context;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Keep `i` a string if there are no elements so `matchedCount` will be \"00\" below\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: ) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\tmatchedCount += i;\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is no seed and only one group\n\tif ( match.length === 1 ) {\n\n\t\t// Take a shortcut and set the context if the root selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tsupport.getById && context.nodeType === 9 && documentIsHTML &&\n\t\t\t\tExpr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\trsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( div1 ) {\n\t// Should return 1, but returns 4 (following)\n\treturn div1.compareDocumentPosition( document.createElement(\"div\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\treturn div.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( div ) {\n\tdiv.innerHTML = \"\";\n\tdiv.firstChild.setAttribute( \"value\", \"\" );\n\treturn div.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( div ) {\n\treturn div.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\njQuery.expr[\":\"] = jQuery.expr.pseudos;\njQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\n\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = (/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/);\n\n\n\nvar risSimple = /^.[^:#\\[\\.,]*$/;\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( jQuery.isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\t/* jshint -W018 */\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t});\n\n\t}\n\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t});\n\n\t}\n\n\tif ( typeof qualifier === \"string\" ) {\n\t\tif ( risSimple.test( qualifier ) ) {\n\t\t\treturn jQuery.filter( qualifier, elements, not );\n\t\t}\n\n\t\tqualifier = jQuery.filter( qualifier, elements );\n\t}\n\n\treturn jQuery.grep( elements, function( elem ) {\n\t\treturn ( indexOf.call( qualifier, elem ) >= 0 ) !== not;\n\t});\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\treturn elems.length === 1 && elem.nodeType === 1 ?\n\t\tjQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :\n\t\tjQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\t\treturn elem.nodeType === 1;\n\t\t}));\n};\n\njQuery.fn.extend({\n\tfind: function( selector ) {\n\t\tvar i,\n\t\t\tlen = this.length,\n\t\t\tret = [],\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter(function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}) );\n\t\t}\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\t// Needed because $( selector, context ) becomes $( context ).find( selector )\n\t\tret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );\n\t\tret.selector = this.selector ? this.selector + \" \" + selector : selector;\n\t\treturn ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], false) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow(this, selector || [], true) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n});\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]*))$/,\n\n\tinit = jQuery.fn.init = function( selector, context ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[0] === \"<\" && selector[ selector.length - 1 ] === \">\" && selector.length >= 3 ) {\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && (match[1] || !context) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[1] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[0] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[1],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( jQuery.isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[2] );\n\n\t\t\t\t\t// Support: Blackberry 4.6\n\t\t\t\t\t// gEBID returns nodes no longer in the document (#6963)\n\t\t\t\t\tif ( elem && elem.parentNode ) {\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t\tthis[0] = elem;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.context = document;\n\t\t\t\t\tthis.selector = selector;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || rootjQuery ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis.context = this[0] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( jQuery.isFunction( selector ) ) {\n\t\t\treturn typeof rootjQuery.ready !== \"undefined\" ?\n\t\t\t\trootjQuery.ready( selector ) :\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\tif ( selector.selector !== undefined ) {\n\t\t\tthis.selector = selector.selector;\n\t\t\tthis.context = selector.context;\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.extend({\n\tdir: function( elem, dir, until ) {\n\t\tvar matched = [],\n\t\t\ttruncate = until !== undefined;\n\n\t\twhile ( (elem = elem[ dir ]) && elem.nodeType !== 9 ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatched.push( elem );\n\t\t\t}\n\t\t}\n\t\treturn matched;\n\t},\n\n\tsibling: function( n, elem ) {\n\t\tvar matched = [];\n\n\t\tfor ( ; n; n = n.nextSibling ) {\n\t\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\t\tmatched.push( n );\n\t\t\t}\n\t\t}\n\n\t\treturn matched;\n\t}\n});\n\njQuery.fn.extend({\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter(function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[i] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\tpos = rneedsContext.test( selectors ) || typeof selectors !== \"string\" ?\n\t\t\t\tjQuery( selectors, context || this.context ) :\n\t\t\t\t0;\n\n\t\tfor ( ; i < l; i++ ) {\n\t\t\tfor ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) {\n\t\t\t\t// Always skip document fragments\n\t\t\t\tif ( cur.nodeType < 11 && (pos ?\n\t\t\t\t\tpos.index(cur) > -1 :\n\n\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\tjQuery.find.matchesSelector(cur, selectors)) ) {\n\n\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.unique( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.unique(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter(selector)\n\t\t);\n\t}\n});\n\nfunction sibling( cur, dir ) {\n\twhile ( (cur = cur[dir]) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each({\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn jQuery.dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn jQuery.dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn jQuery.sibling( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\treturn elem.contentDocument || jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.unique( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n});\nvar rnotwhite = (/\\S+/g);\n\n\n\n// String to Object options format cache\nvar optionsCache = {};\n\n// Convert String-formatted options into Object-formatted ones and store in cache\nfunction createOptions( options ) {\n\tvar object = optionsCache[ options ] = {};\n\tjQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t});\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\t( optionsCache[ options ] || createOptions( options ) ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Last fire value (for non-forgettable lists)\n\t\tmemory,\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\t\t// Flag to know if list is currently firing\n\t\tfiring,\n\t\t// First callback to fire (used internally by add and fireWith)\n\t\tfiringStart,\n\t\t// End of the loop when firing\n\t\tfiringLength,\n\t\t// Index of currently firing callback (modified by remove if needed)\n\t\tfiringIndex,\n\t\t// Actual callback list\n\t\tlist = [],\n\t\t// Stack of fire calls for repeatable lists\n\t\tstack = !options.once && [],\n\t\t// Fire callbacks\n\t\tfire = function( data ) {\n\t\t\tmemory = options.memory && data;\n\t\t\tfired = true;\n\t\t\tfiringIndex = firingStart || 0;\n\t\t\tfiringStart = 0;\n\t\t\tfiringLength = list.length;\n\t\t\tfiring = true;\n\t\t\tfor ( ; list && firingIndex < firingLength; firingIndex++ ) {\n\t\t\t\tif ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {\n\t\t\t\t\tmemory = false; // To prevent further calls using add\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tfiring = false;\n\t\t\tif ( list ) {\n\t\t\t\tif ( stack ) {\n\t\t\t\t\tif ( stack.length ) {\n\t\t\t\t\t\tfire( stack.shift() );\n\t\t\t\t\t}\n\t\t\t\t} else if ( memory ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t} else {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t// Actual Callbacks object\n\t\tself = {\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\t// First, we save the current length\n\t\t\t\t\tvar start = list.length;\n\t\t\t\t\t(function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tvar type = jQuery.type( arg );\n\t\t\t\t\t\t\tif ( type === \"function\" ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && type !== \"string\" ) {\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t})( arguments );\n\t\t\t\t\t// Do we need to add the callbacks to the\n\t\t\t\t\t// current firing batch?\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tfiringLength = list.length;\n\t\t\t\t\t// With memory, if we're not firing then\n\t\t\t\t\t// we should call right away\n\t\t\t\t\t} else if ( memory ) {\n\t\t\t\t\t\tfiringStart = start;\n\t\t\t\t\t\tfire( memory );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\t\tvar index;\n\t\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\t\tlist.splice( index, 1 );\n\t\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\t\t\tif ( index <= firingLength ) {\n\t\t\t\t\t\t\t\t\tfiringLength--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );\n\t\t\t},\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tlist = [];\n\t\t\t\tfiringLength = 0;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Have the list do nothing anymore\n\t\t\tdisable: function() {\n\t\t\t\tlist = stack = memory = undefined;\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it disabled?\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\t\t\t// Lock the list in its current state\n\t\t\tlock: function() {\n\t\t\t\tstack = undefined;\n\t\t\t\tif ( !memory ) {\n\t\t\t\t\tself.disable();\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Is it locked?\n\t\t\tlocked: function() {\n\t\t\t\treturn !stack;\n\t\t\t},\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( list && ( !fired || stack ) ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tif ( firing ) {\n\t\t\t\t\t\tstack.push( args );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfire( args );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\njQuery.extend({\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\t\t\t\t// action, add listener, listener list, final state\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks(\"once memory\"), \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks(\"once memory\"), \"rejected\" ],\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks(\"memory\") ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\tthen: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\t\t\t\t\treturn jQuery.Deferred(function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\t\t\t\t\tvar fn = jQuery.isFunction( fns[ i ] ) && fns[ i ];\n\t\t\t\t\t\t\t// deferred[ done | fail | progress ] for forwarding actions to newDefer\n\t\t\t\t\t\t\tdeferred[ tuple[1] ](function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && jQuery.isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject )\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t}).promise();\n\t\t\t\t},\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Keep pipe for back-compat\n\t\tpromise.pipe = promise.then;\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 3 ];\n\n\t\t\t// promise[ done | fail | progress ] = list.add\n\t\t\tpromise[ tuple[1] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(function() {\n\t\t\t\t\t// state = [ resolved | rejected ]\n\t\t\t\t\tstate = stateString;\n\n\t\t\t\t// [ reject_list | resolve_list ].disable; progress_list.lock\n\t\t\t\t}, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );\n\t\t\t}\n\n\t\t\t// deferred[ resolve | reject | notify ]\n\t\t\tdeferred[ tuple[0] ] = function() {\n\t\t\t\tdeferred[ tuple[0] + \"With\" ]( this === deferred ? promise : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\t\t\tdeferred[ tuple[0] + \"With\" ] = list.fireWith;\n\t\t});\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( subordinate /* , ..., subordinateN */ ) {\n\t\tvar i = 0,\n\t\t\tresolveValues = slice.call( arguments ),\n\t\t\tlength = resolveValues.length,\n\n\t\t\t// the count of uncompleted subordinates\n\t\t\tremaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0,\n\n\t\t\t// the master Deferred. If resolveValues consist of only a single Deferred, just use that.\n\t\t\tdeferred = remaining === 1 ? subordinate : jQuery.Deferred(),\n\n\t\t\t// Update function for both resolve and progress values\n\t\t\tupdateFunc = function( i, contexts, values ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tcontexts[ i ] = this;\n\t\t\t\t\tvalues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( values === progressValues ) {\n\t\t\t\t\t\tdeferred.notifyWith( contexts, values );\n\t\t\t\t\t} else if ( !( --remaining ) ) {\n\t\t\t\t\t\tdeferred.resolveWith( contexts, values );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tprogressValues, progressContexts, resolveContexts;\n\n\t\t// Add listeners to Deferred subordinates; treat others as resolved\n\t\tif ( length > 1 ) {\n\t\t\tprogressValues = new Array( length );\n\t\t\tprogressContexts = new Array( length );\n\t\t\tresolveContexts = new Array( length );\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) {\n\t\t\t\t\tresolveValues[ i ].promise()\n\t\t\t\t\t\t.done( updateFunc( i, resolveContexts, resolveValues ) )\n\t\t\t\t\t\t.fail( deferred.reject )\n\t\t\t\t\t\t.progress( updateFunc( i, progressContexts, progressValues ) );\n\t\t\t\t} else {\n\t\t\t\t\t--remaining;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If we're not waiting on anything, resolve the master\n\t\tif ( !remaining ) {\n\t\t\tdeferred.resolveWith( resolveContexts, resolveValues );\n\t\t}\n\n\t\treturn deferred.promise();\n\t}\n});\n\n\n// The deferred used on DOM ready\nvar readyList;\n\njQuery.fn.ready = function( fn ) {\n\t// Add the callback\n\tjQuery.ready.promise().done( fn );\n\n\treturn this;\n};\n\njQuery.extend({\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Hold (or release) the ready event\n\tholdReady: function( hold ) {\n\t\tif ( hold ) {\n\t\t\tjQuery.readyWait++;\n\t\t} else {\n\t\t\tjQuery.ready( true );\n\t\t}\n\t},\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\n\t\t// Trigger any bound ready events\n\t\tif ( jQuery.fn.triggerHandler ) {\n\t\t\tjQuery( document ).triggerHandler( \"ready\" );\n\t\t\tjQuery( document ).off( \"ready\" );\n\t\t}\n\t}\n});\n\n/**\n * The ready event handler and self cleanup method\n */\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed, false );\n\twindow.removeEventListener( \"load\", completed, false );\n\tjQuery.ready();\n}\n\njQuery.ready.promise = function( obj ) {\n\tif ( !readyList ) {\n\n\t\treadyList = jQuery.Deferred();\n\n\t\t// Catch cases where $(document).ready() is called after the browser event has already occurred.\n\t\t// We once tried to use readyState \"interactive\" here, but it caused issues like the one\n\t\t// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15\n\t\tif ( document.readyState === \"complete\" ) {\n\t\t\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\t\t\tsetTimeout( jQuery.ready );\n\n\t\t} else {\n\n\t\t\t// Use the handy event callback\n\t\t\tdocument.addEventListener( \"DOMContentLoaded\", completed, false );\n\n\t\t\t// A fallback to window.onload, that will always work\n\t\t\twindow.addEventListener( \"load\", completed, false );\n\t\t}\n\t}\n\treturn readyList.promise( obj );\n};\n\n// Kick off the DOM ready check even if the user does not\njQuery.ready.promise();\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( jQuery.type( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\tjQuery.access( elems, fn, i, key[i], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !jQuery.isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn chainable ?\n\t\telems :\n\n\t\t// Gets\n\t\tbulk ?\n\t\t\tfn.call( elems ) :\n\t\t\tlen ? fn( elems[0], key ) : emptyGet;\n};\n\n\n/**\n * Determines whether an object can have data\n */\njQuery.acceptData = function( owner ) {\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\t/* jshint -W018 */\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\nfunction Data() {\n\t// Support: Android<4,\n\t// Old WebKit does not have Object.preventExtensions/freeze method,\n\t// return new empty object instead with no [[set]] accessor\n\tObject.defineProperty( this.cache = {}, 0, {\n\t\tget: function() {\n\t\t\treturn {};\n\t\t}\n\t});\n\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\nData.accepts = jQuery.acceptData;\n\nData.prototype = {\n\tkey: function( owner ) {\n\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t// but we should not, see #8335.\n\t\t// Always return the key for a frozen object.\n\t\tif ( !Data.accepts( owner ) ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar descriptor = {},\n\t\t\t// Check if the owner object already has a cache key\n\t\t\tunlock = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !unlock ) {\n\t\t\tunlock = Data.uid++;\n\n\t\t\t// Secure it in a non-enumerable, non-writable property\n\t\t\ttry {\n\t\t\t\tdescriptor[ this.expando ] = { value: unlock };\n\t\t\t\tObject.defineProperties( owner, descriptor );\n\n\t\t\t// Support: Android<4\n\t\t\t// Fallback to a less secure definition\n\t\t\t} catch ( e ) {\n\t\t\t\tdescriptor[ this.expando ] = unlock;\n\t\t\t\tjQuery.extend( owner, descriptor );\n\t\t\t}\n\t\t}\n\n\t\t// Ensure the cache object\n\t\tif ( !this.cache[ unlock ] ) {\n\t\t\tthis.cache[ unlock ] = {};\n\t\t}\n\n\t\treturn unlock;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\t// There may be an unlock assigned to this node,\n\t\t\t// if there is no entry for this \"owner\", create one inline\n\t\t\t// and set the unlock as though an owner entry had always existed\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\t// Handle: [ owner, key, value ] args\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ data ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\t\t\t// Fresh assignments by object are shallow copied\n\t\t\tif ( jQuery.isEmptyObject( cache ) ) {\n\t\t\t\tjQuery.extend( this.cache[ unlock ], data );\n\t\t\t// Otherwise, copy the properties one-by-one to the cache object\n\t\t\t} else {\n\t\t\t\tfor ( prop in data ) {\n\t\t\t\t\tcache[ prop ] = data[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\t// Either a valid cache is found, or will be created.\n\t\t// New caches will be created and the unlock returned,\n\t\t// allowing direct access to the newly created\n\t\t// empty data object. A valid owner object must be provided.\n\t\tvar cache = this.cache[ this.key( owner ) ];\n\n\t\treturn key === undefined ?\n\t\t\tcache : cache[ key ];\n\t},\n\taccess: function( owner, key, value ) {\n\t\tvar stored;\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t((key && typeof key === \"string\") && value === undefined) ) {\n\n\t\t\tstored = this.get( owner, key );\n\n\t\t\treturn stored !== undefined ?\n\t\t\t\tstored : this.get( owner, jQuery.camelCase(key) );\n\t\t}\n\n\t\t// [*]When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i, name, camel,\n\t\t\tunlock = this.key( owner ),\n\t\t\tcache = this.cache[ unlock ];\n\n\t\tif ( key === undefined ) {\n\t\t\tthis.cache[ unlock ] = {};\n\n\t\t} else {\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( jQuery.isArray( key ) ) {\n\t\t\t\t// If \"name\" is an array of keys...\n\t\t\t\t// When data is initially created, via (\"key\", \"val\") signature,\n\t\t\t\t// keys will be converted to camelCase.\n\t\t\t\t// Since there is no way to tell _how_ a key was added, remove\n\t\t\t\t// both plain key and camelCase key. #12786\n\t\t\t\t// This will only penalize the array argument path.\n\t\t\t\tname = key.concat( key.map( jQuery.camelCase ) );\n\t\t\t} else {\n\t\t\t\tcamel = jQuery.camelCase( key );\n\t\t\t\t// Try the string as a key before any manipulation\n\t\t\t\tif ( key in cache ) {\n\t\t\t\t\tname = [ key, camel ];\n\t\t\t\t} else {\n\t\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\t\tname = camel;\n\t\t\t\t\tname = name in cache ?\n\t\t\t\t\t\t[ name ] : ( name.match( rnotwhite ) || [] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ti = name.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ name[ i ] ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\treturn !jQuery.isEmptyObject(\n\t\t\tthis.cache[ owner[ this.expando ] ] || {}\n\t\t);\n\t},\n\tdiscard: function( owner ) {\n\t\tif ( owner[ this.expando ] ) {\n\t\t\tdelete this.cache[ owner[ this.expando ] ];\n\t\t}\n\t}\n};\nvar data_priv = new Data();\n\nvar data_user = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /([A-Z])/g;\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$1\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = data === \"true\" ? true :\n\t\t\t\t\tdata === \"false\" ? false :\n\t\t\t\t\tdata === \"null\" ? null :\n\t\t\t\t\t// Only convert to a number if it doesn't change the string\n\t\t\t\t\t+data + \"\" === data ? +data :\n\t\t\t\t\trbrace.test( data ) ? jQuery.parseJSON( data ) :\n\t\t\t\t\tdata;\n\t\t\t} catch( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdata_user.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend({\n\thasData: function( elem ) {\n\t\treturn data_user.hasData( elem ) || data_priv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn data_user.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdata_user.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to data_priv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn data_priv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdata_priv.remove( elem, name );\n\t}\n});\n\njQuery.fn.extend({\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = data_user.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !data_priv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE11+\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = jQuery.camelCase( name.slice(5) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata_priv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each(function() {\n\t\t\t\tdata_user.set( this, key );\n\t\t\t});\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data,\n\t\t\t\tcamelKey = jQuery.camelCase( key );\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key as-is\n\t\t\t\tdata = data_user.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// with the key camelized\n\t\t\t\tdata = data_user.get( elem, camelKey );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, camelKey, undefined );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each(function() {\n\t\t\t\t// First, attempt to store a copy or reference of any\n\t\t\t\t// data that might've been store with a camelCased key.\n\t\t\t\tvar data = data_user.get( this, camelKey );\n\n\t\t\t\t// For HTML5 data-* attribute interop, we have to\n\t\t\t\t// store property names with dashes in a camelCase form.\n\t\t\t\t// This might not apply to all properties...*\n\t\t\t\tdata_user.set( this, camelKey, value );\n\n\t\t\t\t// *... In the case of properties that might _actually_\n\t\t\t\t// have dashes, we need to also store a copy of that\n\t\t\t\t// unchanged property.\n\t\t\t\tif ( key.indexOf(\"-\") !== -1 && data !== undefined ) {\n\t\t\t\t\tdata_user.set( this, key, value );\n\t\t\t\t}\n\t\t\t});\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each(function() {\n\t\t\tdata_user.remove( this, key );\n\t\t});\n\t}\n});\n\n\njQuery.extend({\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = data_priv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || jQuery.isArray( data ) ) {\n\t\t\t\t\tqueue = data_priv.access( elem, type, jQuery.makeArray(data) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn data_priv.get( elem, key ) || data_priv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks(\"once memory\").add(function() {\n\t\t\t\tdata_priv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t})\n\t\t});\n\t}\n});\n\njQuery.fn.extend({\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[0], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each(function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[0] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t});\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each(function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t});\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = data_priv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n});\nvar pnum = (/[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/).source;\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHidden = function( elem, el ) {\n\t\t// isHidden might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\t\treturn jQuery.css( elem, \"display\" ) === \"none\" || !jQuery.contains( elem.ownerDocument, elem );\n\t};\n\nvar rcheckableType = (/^(?:checkbox|radio)$/i);\n\n\n\n(function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Safari<=5.1\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Safari<=5.1, Android<4.2\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE<=11+\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n})();\nvar strundefined = typeof undefined;\n\n\n\nsupport.focusinBubbles = \"onfocusin\" in window;\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu)|click/,\n\trfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)$/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !(events = elemData.events) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !(eventHandle = elemData.handle) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== strundefined && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend({\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join(\".\")\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !(handlers = events[ type ]) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle, false );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = data_priv.hasData( elem ) && data_priv.get( elem );\n\n\t\tif ( !elemData || !(events = elemData.events) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnotwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[t] ) || [];\n\t\t\ttype = origType = tmp[1];\n\t\t\tnamespaces = ( tmp[2] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[2] && new RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector || selector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdelete elemData.handle;\n\t\t\tdata_priv.remove( elem, \"events\" );\n\t\t}\n\t},\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split(\".\") : [];\n\n\t\tcur = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf(\".\") >= 0 ) {\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split(\".\");\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf(\":\") < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join(\".\");\n\t\tevent.namespace_re = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join(\"\\\\.(?:.*\\\\.|)\") + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === (elem.ownerDocument || document) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) {\n\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( data_priv.get( cur, \"events\" ) || {} )[ event.type ] && data_priv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && jQuery.acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) &&\n\t\t\t\tjQuery.acceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && jQuery.isFunction( elem[ type ] ) && !jQuery.isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\t\t\t\t\telem[ type ]();\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\tdispatch: function( event ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tevent = jQuery.event.fix( event );\n\n\t\tvar i, j, ret, matched, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\targs = slice.call( arguments ),\n\t\t\thandlers = ( data_priv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[0] = event;\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler )\n\t\t\t\t\t\t\t.apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( (event.result = ret) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, matches, sel, handleObj,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\t// Black-hole SVG