algoliasearch - Version 1.5.0

Version Notes

==== BREAKING CHANGE ====

- The queue is now runned outside of the Magento default cron system. To run the jobs you will need to run
the `algolia_queue_runner` indexer via the following command `php -f shell/indexer.php --reindex algolia_queue_runner`
You can add it to your crontab just add this line:
`*/5 * * * * php -f /absolute/path/to/magento/shell/indexer.php -- -reindex algolia_queue_runner`

- As this is a major update you will loose your settings and will need to reconfigure the extension

=========================

- NEW: replace custom logic by autocomplete.js and instantsearch.js
- NEW: add total_ordered because ordered_qty does not always make sense
- NEW: add drag and drop for grid in the config page
- UPDATED: More intelligent queue that is able to batch jobs
- UPDATED: Option to have most popular suggestions when no result page
- FIX: issue with configurable and gouped sub_products query
- FIX: replace image helper override by subclass

Download this release

Release Info

Developer Algolia Team
Extension algoliasearch
Version 1.5.0
Comparing to
See all releases


Code changes from version 1.4.8 to 1.5.0

Files changed (35) hide show
  1. app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/Facets.php +1 -6
  2. app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/{Additionalsections.php → Sections.php} +25 -10
  3. app/code/community/Algolia/Algoliasearch/Helper/Config.php +59 -39
  4. app/code/community/Algolia/Algoliasearch/Helper/Data.php +20 -23
  5. app/code/community/Algolia/Algoliasearch/Helper/Entity/Additionalsectionshelper.php +1 -1
  6. app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php +1 -1
  7. app/code/community/Algolia/Algoliasearch/Helper/Entity/Pagehelper.php +1 -0
  8. app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php +113 -31
  9. app/code/community/Algolia/Algoliasearch/Helper/Entity/Suggestionhelper.php +28 -0
  10. app/code/community/Algolia/Algoliasearch/Helper/Image.php +2 -5
  11. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php +5 -2
  12. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php +1 -1
  13. app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php +73 -0
  14. app/code/community/Algolia/Algoliasearch/Model/Observer.php +23 -3
  15. app/code/community/Algolia/Algoliasearch/Model/Queue.php +151 -49
  16. app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php +56 -40
  17. app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php +1 -1
  18. app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext/Collection.php +4 -2
  19. app/code/community/Algolia/Algoliasearch/Model/System/Removewords.php +3 -3
  20. app/code/community/Algolia/Algoliasearch/etc/config.xml +36 -37
  21. app/code/community/Algolia/Algoliasearch/etc/system.xml +210 -242
  22. app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/{mysql4-upgrade-0.1.0-1.4.7.php → mysql4-upgrade-0.1.0-1.4.8.php} +0 -0
  23. app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/mysql4-upgrade-1.4.8-1.5.0.php +14 -0
  24. app/design/adminhtml/default/default/layout/algoliasearch.xml +8 -0
  25. app/design/adminhtml/default/default/template/algoliasearch/adminjs.phtml +9 -0
  26. app/design/frontend/base/default/layout/algoliasearch.xml +26 -3
  27. app/design/frontend/base/default/template/algoliasearch/beforecontent.phtml +1 -0
  28. app/design/frontend/base/default/template/algoliasearch/beforetopsearch.phtml +555 -0
  29. app/design/frontend/base/default/template/algoliasearch/frontjs.phtml +2 -0
  30. app/design/frontend/base/default/template/algoliasearch/topsearch.phtml +481 -1459
  31. app/etc/modules/Algolia_Algoliasearch.xml +1 -1
  32. js/algoliasearch/Function.prototype.bind.js +28 -0
  33. js/algoliasearch/admin_scripts.js +19 -0
  34. js/algoliasearch/algoliaAdminBundle.min.js +34 -0
  35. js/algoliasearch/algoliaBundle.min.js +1 -0
app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/Facets.php CHANGED
@@ -32,7 +32,7 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Facets extends Mage_A
32
  'conjunctive' => 'Conjunctive',
33
  'disjunctive' => 'Disjunctive',
34
  'slider' => 'Slider',
35
- 'other' => 'Other ->'
36
  );
37
 
38
  $selectField->setExtraParams('style="width:100px;"');
@@ -60,11 +60,6 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Facets extends Mage_A
60
  'renderer'=> $this->getRenderer('type'),
61
  ));
62
 
63
- $this->addColumn('other_type', array(
64
- 'label' => Mage::helper('adminhtml')->__('Other facet type'),
65
- 'style' => 'width: 100px;'
66
- ));
67
-
68
  $this->addColumn('label', array(
69
  'label' => Mage::helper('adminhtml')->__('Label'),
70
  'style' => 'width: 100px;'
32
  'conjunctive' => 'Conjunctive',
33
  'disjunctive' => 'Disjunctive',
34
  'slider' => 'Slider',
35
+ 'priceRanges' => 'Price Ranges'
36
  );
37
 
38
  $selectField->setExtraParams('style="width:100px;"');
60
  'renderer'=> $this->getRenderer('type'),
61
  ));
62
 
 
 
 
 
 
63
  $this->addColumn('label', array(
64
  'label' => Mage::helper('adminhtml')->__('Label'),
65
  'style' => 'width: 100px;'
app/code/community/Algolia/Algoliasearch/Block/System/Config/Form/Field/{Additionalsections.php → Sections.php} RENAMED
@@ -3,7 +3,7 @@
3
  /**
4
  * Algolia custom sort order field
5
  */
6
- class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
7
  {
8
  protected $selectFields = array();
9
 
@@ -17,18 +17,27 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
17
  $config = Mage::helper('algoliasearch/config');
18
 
19
  switch($columnId) {
20
- case 'attribute': // Populate the attribute column with a list of searchable attributes
 
 
 
 
21
 
22
  $attributes = $config->getFacets();
23
 
24
  foreach ($attributes as $attribute) {
25
- if ($attribute['attribute'] == 'categories')
26
- continue;
27
  if ($attribute['attribute'] == 'price')
28
  continue;
29
- $aOptions[$attribute['attribute']] = $attribute['label'] ? $attribute['label'] : $attribute['attribute'];
 
 
 
 
30
  }
31
 
 
 
 
32
  $selectField->setExtraParams('style="width:130px;"');
33
 
34
  break;
@@ -44,9 +53,9 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
44
 
45
  public function __construct()
46
  {
47
- $this->addColumn('attribute', array(
48
- 'label' => Mage::helper('adminhtml')->__('Attribute'),
49
- 'renderer'=> $this->getRenderer('attribute'),
50
  ));
51
 
52
  $this->addColumn('label', array(
@@ -54,6 +63,12 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
54
  'style' => 'width: 100px;'
55
  ));
56
 
 
 
 
 
 
 
57
  $this->_addAfter = false;
58
  $this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Attribute');
59
  parent::__construct();
@@ -62,8 +77,8 @@ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Additionalsections ex
62
  protected function _prepareArrayRow(Varien_Object $row)
63
  {
64
  $row->setData(
65
- 'option_extra_attr_' . $this->getRenderer('attribute')->calcOptionHash(
66
- $row->getAttribute()),
67
  'selected="selected"'
68
  );
69
  }
3
  /**
4
  * Algolia custom sort order field
5
  */
6
+ class Algolia_Algoliasearch_Block_System_Config_Form_Field_Sections extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
7
  {
8
  protected $selectFields = array();
9
 
17
  $config = Mage::helper('algoliasearch/config');
18
 
19
  switch($columnId) {
20
+ case 'name': // Populate the attribute column with a list of searchable attributes
21
+
22
+ $sections = array(
23
+ array('name' => 'pages', 'label' => 'Pages'),
24
+ );
25
 
26
  $attributes = $config->getFacets();
27
 
28
  foreach ($attributes as $attribute) {
 
 
29
  if ($attribute['attribute'] == 'price')
30
  continue;
31
+
32
+ if ($attribute['attribute'] == 'category' || $attribute['attribute'] == 'categories')
33
+ continue;
34
+
35
+ $sections[] = array('name' => $attribute['attribute'], 'label' => $attribute['label'] ? $attribute['label'] : $attribute['attribute']);
36
  }
37
 
38
+ foreach ($sections as $section)
39
+ $aOptions[$section['name']] = $section['label'];
40
+
41
  $selectField->setExtraParams('style="width:130px;"');
42
 
43
  break;
53
 
54
  public function __construct()
55
  {
56
+ $this->addColumn('name', array(
57
+ 'label' => Mage::helper('adminhtml')->__('Section'),
58
+ 'renderer' => $this->getRenderer('name'),
59
  ));
60
 
61
  $this->addColumn('label', array(
63
  'style' => 'width: 100px;'
64
  ));
65
 
66
+ $this->addColumn('hitsPerPage', array(
67
+ 'label' => Mage::helper('adminhtml')->__('Hits per page'),
68
+ 'style' => 'width: 100px;',
69
+ 'class' => 'required-entry input-text validate-number'
70
+ ));
71
+
72
  $this->_addAfter = false;
73
  $this->_addButtonLabel = Mage::helper('adminhtml')->__('Add Attribute');
74
  parent::__construct();
77
  protected function _prepareArrayRow(Varien_Object $row)
78
  {
79
  $row->setData(
80
+ 'option_extra_attr_' . $this->getRenderer('name')->calcOptionHash(
81
+ $row->getName()),
82
  'selected="selected"'
83
  );
84
  }
app/code/community/Algolia/Algoliasearch/Helper/Config.php CHANGED
@@ -21,50 +21,78 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
21
  const SORTING_INDICES = 'algoliasearch/instant/sorts';
22
  const XML_ADD_TO_CART_ENABLE = 'algoliasearch/instant/add_to_cart_enable';
23
 
24
- const AUTOCOMPLETE_ADD_SECTIONS = 'algoliasearch/autocomplete/additional_sections';
 
 
 
 
 
 
25
 
26
- const NUMBER_OF_PRODUCT_SUGGESTIONS = 'algoliasearch/products/number_product_suggestions';
27
  const NUMBER_OF_PRODUCT_RESULTS = 'algoliasearch/products/number_product_results';
28
  const PRODUCT_ATTRIBUTES = 'algoliasearch/products/product_additional_attributes';
29
  const PRODUCT_CUSTOM_RANKING = 'algoliasearch/products/custom_ranking_product_attributes';
30
  const RESULTS_LIMIT = 'algoliasearch/products/results_limit';
 
31
 
32
- const NUMBER_OF_CATEGORY_SUGGESTIONS = 'algoliasearch/categories/number_category_suggestions';
33
  const CATEGORY_ATTRIBUTES = 'algoliasearch/categories/category_additional_attributes2';
34
  const INDEX_PRODUCT_COUNT = 'algoliasearch/categories/index_product_count';
35
  const CATEGORY_CUSTOM_RANKING = 'algoliasearch/categories/custom_ranking_category_attributes';
36
 
37
- const NUMBER_OF_PAGE_SUGGESTIONS = 'algoliasearch/pages/number_page_suggestions';
38
- const EXCLUDED_PAGES = 'algoliasearch/pages/excluded_pages';
39
 
40
- const NUMBER_QUERY_SUGGESTIONS = 'algoliasearch/suggestions/number_query_suggestions';
41
- const MIN_POPULARITY = 'algoliasearch/suggestions/min_popularity';
42
- const MIN_NUMBER_OF_RESULTS = 'algoliasearch/suggestions/min_number_of_results';
43
-
44
- const REMOVE_IF_NO_RESULT = 'algoliasearch/relevance/remove_words_if_no_result';
45
-
46
- const MAX_RETRIES = 'algoliasearch/queue/retries';
47
  const IS_ACTIVE = 'algoliasearch/queue/active';
48
  const NUMBER_OF_ELEMENT_BY_PAGE = 'algoliasearch/queue/number_of_element_by_page';
49
  const NUMBER_OF_JOB_TO_RUN = 'algoliasearch/queue/number_of_job_to_run';
50
- const NO_PROCESS = 'algoliasearch/queue/noprocess';
51
 
52
  const XML_PATH_IMAGE_WIDTH = 'algoliasearch/image/width';
53
  const XML_PATH_IMAGE_HEIGHT = 'algoliasearch/image/height';
54
  const XML_PATH_IMAGE_TYPE = 'algoliasearch/image/type';
55
 
 
56
  const PARTIAL_UPDATES = 'algoliasearch/advanced/partial_update';
57
  const CUSTOMER_GROUPS_ENABLE = 'algoliasearch/advanced/customer_groups_enable';
58
  const MAKE_SEO_REQUEST = 'algoliasearch/advanced/make_seo_request';
59
  const REMOVE_BRANDING = 'algoliasearch/advanced/remove_branding';
 
60
 
61
  const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
62
  const LOGGING_ENABLED = 'dev/log/active';
63
 
64
  protected $_productTypeMap = array();
65
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
66
  public function isEnabledFrontEnd($storeId = null)
67
  {
 
68
  return Mage::getStoreConfigFlag(self::ENABLE_BACKEND, $storeId) && Mage::getStoreConfigFlag(self::ENABLE_FRONTEND, $storeId);
69
  }
70
 
@@ -118,9 +146,9 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
118
  return Mage::getStoreConfigFlag(self::PARTIAL_UPDATES, $storeId);
119
  }
120
 
121
- public function getAutocompleteAdditionnalSections($storeId = null)
122
  {
123
- $attrs = unserialize(Mage::getStoreConfig(self::AUTOCOMPLETE_ADD_SECTIONS, $storeId));
124
 
125
  if (is_array($attrs))
126
  return array_values($attrs);
@@ -158,11 +186,6 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
158
  return Mage::getStoreConfig(self::MAX_VALUES_PER_FACET, $storeId);
159
  }
160
 
161
- public function getQueueMaxRetries($storeId = null)
162
- {
163
- return Mage::getStoreConfig(self::MAX_RETRIES, $storeId);
164
- }
165
-
166
  public function getNumberOfElementByPage($storeId = null)
167
  {
168
  return Mage::getStoreConfig(self::NUMBER_OF_ELEMENT_BY_PAGE, $storeId);
@@ -183,26 +206,11 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
183
  return Mage::getStoreConfig(self::REMOVE_IF_NO_RESULT, $storeId);
184
  }
185
 
186
- public function getNumberOfProductSuggestions($storeId = NULL)
187
- {
188
- return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_SUGGESTIONS, $storeId);
189
- }
190
-
191
  public function getNumberOfProductResults($storeId = NULL)
192
  {
193
  return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_RESULTS, $storeId);
194
  }
195
 
196
- public function getNumberOfCategorySuggestions($storeId = NULL)
197
- {
198
- return (int) Mage::getStoreConfig(self::NUMBER_OF_CATEGORY_SUGGESTIONS, $storeId);
199
- }
200
-
201
- public function getNumberOfPageSuggestions($storeId = NULL)
202
- {
203
- return (int) Mage::getStoreConfig(self::NUMBER_OF_PAGE_SUGGESTIONS, $storeId);
204
- }
205
-
206
  public function getResultsLimit($storeId = NULL)
207
  {
208
  return Mage::getStoreConfig(self::RESULTS_LIMIT, $storeId);
@@ -259,17 +267,17 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
259
  {
260
  $suffix_index_name = 'group_' . $group_id;
261
 
262
- $attr['index_name'] = $product_helper->getIndexName($storeId) . '_' . $attr['attribute'] . '_' .$suffix_index_name.'_'.$attr['sort'];
263
  }
264
  else
265
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
266
  }
267
  else
268
  {
269
  if (strpos($attr['attribute'], 'price') !== false)
270
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'].'_' . 'default' . '_'.$attr['sort'];
271
  else
272
- $attr['index_name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
273
  }
274
  }
275
 
@@ -360,6 +368,18 @@ class Algolia_Algoliasearch_Helper_Config extends Mage_Core_Helper_Abstract
360
  return $currencySymbol;
361
  }
362
 
 
 
 
 
 
 
 
 
 
 
 
 
363
  /**
364
  * Loads product type mapping from configuration (default) > algoliasearch > product_map > (product type)
365
  *
21
  const SORTING_INDICES = 'algoliasearch/instant/sorts';
22
  const XML_ADD_TO_CART_ENABLE = 'algoliasearch/instant/add_to_cart_enable';
23
 
24
+ const NB_OF_PRODUCTS_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_products_suggestions';
25
+ const NB_OF_CATEGORIES_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_categories_suggestions';
26
+ const NB_OF_QUERIES_SUGGESTIONS = 'algoliasearch/autocomplete/nb_of_queries_suggestions';
27
+ const AUTOCOMPLETE_SECTIONS = 'algoliasearch/autocomplete/sections';
28
+ const EXCLUDED_PAGES = 'algoliasearch/autocomplete/excluded_pages';
29
+ const MIN_POPULARITY = 'algoliasearch/autocomplete/min_popularity';
30
+ const MIN_NUMBER_OF_RESULTS = 'algoliasearch/autocomplete/min_number_of_results';
31
 
 
32
  const NUMBER_OF_PRODUCT_RESULTS = 'algoliasearch/products/number_product_results';
33
  const PRODUCT_ATTRIBUTES = 'algoliasearch/products/product_additional_attributes';
34
  const PRODUCT_CUSTOM_RANKING = 'algoliasearch/products/custom_ranking_product_attributes';
35
  const RESULTS_LIMIT = 'algoliasearch/products/results_limit';
36
+ const SHOW_SUGGESTIONS_NO_RESULTS = 'algoliasearch/products/show_suggestions_on_no_result_page';
37
 
 
38
  const CATEGORY_ATTRIBUTES = 'algoliasearch/categories/category_additional_attributes2';
39
  const INDEX_PRODUCT_COUNT = 'algoliasearch/categories/index_product_count';
40
  const CATEGORY_CUSTOM_RANKING = 'algoliasearch/categories/custom_ranking_category_attributes';
41
 
 
 
42
 
 
 
 
 
 
 
 
43
  const IS_ACTIVE = 'algoliasearch/queue/active';
44
  const NUMBER_OF_ELEMENT_BY_PAGE = 'algoliasearch/queue/number_of_element_by_page';
45
  const NUMBER_OF_JOB_TO_RUN = 'algoliasearch/queue/number_of_job_to_run';
 
46
 
47
  const XML_PATH_IMAGE_WIDTH = 'algoliasearch/image/width';
48
  const XML_PATH_IMAGE_HEIGHT = 'algoliasearch/image/height';
49
  const XML_PATH_IMAGE_TYPE = 'algoliasearch/image/type';
50
 
51
+ const REMOVE_IF_NO_RESULT = 'algoliasearch/advanced/remove_words_if_no_result';
52
  const PARTIAL_UPDATES = 'algoliasearch/advanced/partial_update';
53
  const CUSTOMER_GROUPS_ENABLE = 'algoliasearch/advanced/customer_groups_enable';
54
  const MAKE_SEO_REQUEST = 'algoliasearch/advanced/make_seo_request';
55
  const REMOVE_BRANDING = 'algoliasearch/advanced/remove_branding';
56
+ const AUTOCOMPLETE_SELECTOR = 'algoliasearch/advanced/autocomplete_selector';
57
 
58
  const SHOW_OUT_OF_STOCK = 'cataloginventory/options/show_out_of_stock';
59
  const LOGGING_ENABLED = 'dev/log/active';
60
 
61
  protected $_productTypeMap = array();
62
 
63
+ public function isDefaultSelector($storeId = null)
64
+ {
65
+ return '.algolia-search-input' === $this->getAutocompleteSelector($storeId);
66
+ }
67
+
68
+ public function getAutocompleteSelector($storeId = null)
69
+ {
70
+ return Mage::getStoreConfig(self::AUTOCOMPLETE_SELECTOR, $storeId);
71
+ }
72
+
73
+ public function getNumberOfQueriesSuggestions($storeId = null)
74
+ {
75
+ return Mage::getStoreConfig(self::NB_OF_QUERIES_SUGGESTIONS, $storeId);
76
+ }
77
+
78
+ public function getNumberOfProductsSuggestions($storeId = null)
79
+ {
80
+ return Mage::getStoreConfig(self::NB_OF_PRODUCTS_SUGGESTIONS, $storeId);
81
+ }
82
+
83
+ public function getNumberOfCategoriesSuggestions($storeId = null)
84
+ {
85
+ return Mage::getStoreConfig(self::NB_OF_CATEGORIES_SUGGESTIONS, $storeId);
86
+ }
87
+
88
+ public function showSuggestionsOnNoResultsPage($storeId = null)
89
+ {
90
+ return Mage::getStoreConfigFlag(self::SHOW_SUGGESTIONS_NO_RESULTS, $storeId);
91
+ }
92
+
93
  public function isEnabledFrontEnd($storeId = null)
94
  {
95
+ // Frontend = Backend + Frontent
96
  return Mage::getStoreConfigFlag(self::ENABLE_BACKEND, $storeId) && Mage::getStoreConfigFlag(self::ENABLE_FRONTEND, $storeId);
97
  }
98
 
146
  return Mage::getStoreConfigFlag(self::PARTIAL_UPDATES, $storeId);
147
  }
148
 
149
+ public function getAutocompleteSections($storeId = null)
150
  {
151
+ $attrs = unserialize(Mage::getStoreConfig(self::AUTOCOMPLETE_SECTIONS, $storeId));
152
 
153
  if (is_array($attrs))
154
  return array_values($attrs);
186
  return Mage::getStoreConfig(self::MAX_VALUES_PER_FACET, $storeId);
187
  }
188
 
 
 
 
 
 
189
  public function getNumberOfElementByPage($storeId = null)
190
  {
191
  return Mage::getStoreConfig(self::NUMBER_OF_ELEMENT_BY_PAGE, $storeId);
206
  return Mage::getStoreConfig(self::REMOVE_IF_NO_RESULT, $storeId);
207
  }
208
 
 
 
 
 
 
209
  public function getNumberOfProductResults($storeId = NULL)
210
  {
211
  return (int) Mage::getStoreConfig(self::NUMBER_OF_PRODUCT_RESULTS, $storeId);
212
  }
213
 
 
 
 
 
 
 
 
 
 
 
214
  public function getResultsLimit($storeId = NULL)
215
  {
216
  return Mage::getStoreConfig(self::RESULTS_LIMIT, $storeId);
267
  {
268
  $suffix_index_name = 'group_' . $group_id;
269
 
270
+ $attr['name'] = $product_helper->getIndexName($storeId) . '_' . $attr['attribute'] . '_' .$suffix_index_name.'_'.$attr['sort'];
271
  }
272
  else
273
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
274
  }
275
  else
276
  {
277
  if (strpos($attr['attribute'], 'price') !== false)
278
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'].'_' . 'default' . '_'.$attr['sort'];
279
  else
280
+ $attr['name'] = $product_helper->getIndexName($storeId). '_' .$attr['attribute'] . '_'.$attr['sort'];
281
  }
282
  }
283
 
368
  return $currencySymbol;
369
  }
370
 
371
+ public function getPopularQueries($storeId = null)
372
+ {
373
+ if ($storeId === null) {
374
+ $storeId = Mage::app()->getStore()->getId();
375
+ }
376
+
377
+ $suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
378
+ $popularQueries = $suggestion_helper->getPopularQueries($storeId);
379
+
380
+ return $popularQueries;
381
+ }
382
+
383
  /**
384
  * Loads product type mapping from configuration (default) > algoliasearch > product_map > (product type)
385
  *
app/code/community/Algolia/Algoliasearch/Helper/Data.php CHANGED
@@ -25,7 +25,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
25
 
26
  public function __construct()
27
  {
28
- \AlgoliaSearch\Version::$custom_value = " Magento (1.4.8)";
29
 
30
  $this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
31
 
@@ -85,8 +85,13 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
85
  $this->algolia_helper->setSettings($this->page_helper->getIndexName($storeId), $this->page_helper->getIndexSettings($storeId));
86
  $this->algolia_helper->setSettings($this->suggestion_helper->getIndexName($storeId), $this->suggestion_helper->getIndexSettings($storeId));
87
 
88
- foreach ($this->config->getAutocompleteAdditionnalSections() as $section)
89
- $this->algolia_helper->setSettings($this->additionalsections_helper->getIndexName($storeId).'_'.$section['attribute'], $this->additionalsections_helper->getIndexSettings($storeId));
 
 
 
 
 
90
 
91
  $this->product_helper->setSettings($storeId);
92
  }
@@ -107,7 +112,8 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
107
  'attributesToRetrieve' => 'objectID',
108
  'attributesToHighlight' => '',
109
  'attributesToSnippet' => '',
110
- 'removeWordsIfNoResult'=> $this->config->getRemoveWordsIfNoResult($storeId),
 
111
  'analyticsTags' => 'backend-search'
112
  ));
113
 
@@ -139,21 +145,6 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
139
  $index_name = $this->product_helper->getIndexName($store_id);
140
 
141
  $this->algolia_helper->deleteObjects($ids, $index_name);
142
-
143
- /**
144
- * Group Deleting
145
- */
146
- if ($this->config->isCustomerGroupsEnabled($store_id))
147
- {
148
- foreach ($groups = Mage::getModel('customer/group')->getCollection() as $group)
149
- {
150
- $group_id = (int) $group->getData('customer_group_id');
151
-
152
- $index_name = $this->product_helper->getIndexName($store_id).'_group_'.$group_id;
153
-
154
- $this->algolia_helper->deleteObjects($ids, $index_name);
155
- }
156
- }
157
  }
158
  }
159
 
@@ -183,11 +174,14 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
183
  return;
184
  }
185
 
186
- $additionnal_sections = $this->config->getAutocompleteAdditionnalSections();
187
 
188
  foreach ($additionnal_sections as $section)
189
  {
190
- $index_name = $this->additionalsections_helper->getIndexName($storeId).'_'.$section['attribute'];
 
 
 
191
 
192
  $attribute_values = $this->additionalsections_helper->getAttributeValues($storeId, $section);
193
 
@@ -369,7 +363,7 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
369
 
370
  $suggestion_obj = $this->suggestion_helper->getObject($suggestion);
371
 
372
- if ($suggestion_obj['popularity'] >= $this->config->getMinPopularity() && $suggestion_obj['number_of_results'] >= $this->config->getMinNumberOfResults())
373
  array_push($indexData, $suggestion_obj);
374
  }
375
 
@@ -480,7 +474,10 @@ class Algolia_Algoliasearch_Helper_Data extends Mage_Core_Helper_Abstract
480
  $collection->joinField('stock_qty', $index_prefix.'cataloginventory_stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');
481
 
482
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
483
- $collection->getSelect()->columns('(SELECT SUM(qty_ordered) FROM '.$index_prefix.'sales_flat_order_item WHERE sales_flat_order_item.product_id = e.entity_id) as ordered_qty');
 
 
 
484
 
485
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'rating_summary'))
486
  $collection->joinField('rating_summary', $index_prefix.'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', '{{table}}.store_id='.$storeId, 'left');
25
 
26
  public function __construct()
27
  {
28
+ \AlgoliaSearch\Version::$custom_value = " Magento (1.5.0)";
29
 
30
  $this->algolia_helper = Mage::helper('algoliasearch/algoliahelper');
31
 
85
  $this->algolia_helper->setSettings($this->page_helper->getIndexName($storeId), $this->page_helper->getIndexSettings($storeId));
86
  $this->algolia_helper->setSettings($this->suggestion_helper->getIndexName($storeId), $this->suggestion_helper->getIndexSettings($storeId));
87
 
88
+ foreach ($this->config->getAutocompleteSections() as $section)
89
+ {
90
+ if ($section['name'] === 'products' || $section['name'] === 'categories' || $section['name'] === 'pages' || $section['name'] === 'suggestions')
91
+ continue;
92
+
93
+ $this->algolia_helper->setSettings($this->additionalsections_helper->getIndexName($storeId).'_'.$section['name'], $this->additionalsections_helper->getIndexSettings($storeId));
94
+ }
95
 
96
  $this->product_helper->setSettings($storeId);
97
  }
112
  'attributesToRetrieve' => 'objectID',
113
  'attributesToHighlight' => '',
114
  'attributesToSnippet' => '',
115
+ 'numericFilters' => 'visibility_search=1',
116
+ 'removeWordsIfNoResults'=> $this->config->getRemoveWordsIfNoResult($storeId),
117
  'analyticsTags' => 'backend-search'
118
  ));
119
 
145
  $index_name = $this->product_helper->getIndexName($store_id);
146
 
147
  $this->algolia_helper->deleteObjects($ids, $index_name);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
149
  }
150
 
174
  return;
175
  }
176
 
177
+ $additionnal_sections = $this->config->getAutocompleteSections();
178
 
179
  foreach ($additionnal_sections as $section)
180
  {
181
+ if ($section['name'] === 'products' || $section['name'] === 'categories' || $section['name'] === 'pages' || $section['name'] === 'suggestions')
182
+ continue;
183
+
184
+ $index_name = $this->additionalsections_helper->getIndexName($storeId).'_'.$section['name'];
185
 
186
  $attribute_values = $this->additionalsections_helper->getAttributeValues($storeId, $section);
187
 
363
 
364
  $suggestion_obj = $this->suggestion_helper->getObject($suggestion);
365
 
366
+ if (strlen($suggestion_obj['query']) >= 3)
367
  array_push($indexData, $suggestion_obj);
368
  }
369
 
474
  $collection->joinField('stock_qty', $index_prefix.'cataloginventory_stock_item', 'qty', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');
475
 
476
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
477
+ $collection->getSelect()->columns('(SELECT SUM(qty_ordered) FROM '.$index_prefix.'sales_flat_order_item WHERE '.$index_prefix.'sales_flat_order_item.product_id = e.entity_id) as ordered_qty');
478
+
479
+ if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'total_ordered'))
480
+ $collection->getSelect()->columns('(SELECT SUM(row_total) FROM '.$index_prefix.'sales_flat_order_item WHERE '.$index_prefix.'sales_flat_order_item.product_id = e.entity_id) as total_ordered');
481
 
482
  if ($this->product_helper->isAttributeEnabled($additionalAttributes, 'rating_summary'))
483
  $collection->joinField('rating_summary', $index_prefix.'review_entity_summary', 'rating_summary', 'entity_pk_value=entity_id', '{{table}}.store_id='.$storeId, 'left');
app/code/community/Algolia/Algoliasearch/Helper/Entity/Additionalsectionshelper.php CHANGED
@@ -16,7 +16,7 @@ class Algolia_Algoliasearch_Helper_Entity_Additionalsectionshelper extends Algol
16
 
17
  public function getAttributeValues($storeId, $section)
18
  {
19
- $attributeCode = $section['attribute'];
20
 
21
  $products = Mage::getResourceModel('catalog/product_collection')
22
  ->addStoreFilter($storeId)
16
 
17
  public function getAttributeValues($storeId, $section)
18
  {
19
+ $attributeCode = $section['name'];
20
 
21
  $products = Mage::getResourceModel('catalog/product_collection')
22
  ->addStoreFilter($storeId)
app/code/community/Algolia/Algoliasearch/Helper/Entity/Categoryhelper.php CHANGED
@@ -145,7 +145,7 @@ class Algolia_Algoliasearch_Helper_Entity_Categoryhelper extends Algolia_Algolia
145
  'name' => $category->getName(),
146
  'path' => $path,
147
  'level' => $category->getLevel(),
148
- 'url' => $category->getUrl(),
149
  '_tags' => array('category'),
150
  'popularity' => 1,
151
  'product_count' => $category->getProductCount()
145
  'name' => $category->getName(),
146
  'path' => $path,
147
  'level' => $category->getLevel(),
148
+ 'url' => Mage::getBaseUrl() . $category->getRequestPath(),
149
  '_tags' => array('category'),
150
  'popularity' => 1,
151
  'product_count' => $category->getProductCount()
app/code/community/Algolia/Algoliasearch/Helper/Entity/Pagehelper.php CHANGED
@@ -11,6 +11,7 @@ class Algolia_Algoliasearch_Helper_Entity_Pagehelper extends Algolia_Algoliasear
11
  {
12
  return array(
13
  'attributesToIndex' => array('slug', 'name', 'unordered(content)'),
 
14
  );
15
  }
16
 
11
  {
12
  return array(
13
  'attributesToIndex' => array('slug', 'name', 'unordered(content)'),
14
+ 'attributesToSnippet' => array('content:7')
15
  );
16
  }
17
 
app/code/community/Algolia/Algoliasearch/Helper/Entity/Producthelper.php CHANGED
@@ -4,7 +4,15 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
4
  {
5
  protected static $_productAttributes;
6
 
7
- protected static $_predefinedProductAttributes = array('name', 'url_key', 'description', 'image', 'small_image', 'thumbnail');
 
 
 
 
 
 
 
 
8
 
9
  protected function getIndexNameSuffix()
10
  {
@@ -22,7 +30,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
22
 
23
  $allAttributes = $config->getEntityAttributeCodes('catalog_product');
24
 
25
- $productAttributes = array_merge(array('name', 'path', 'categories', 'categories_without_path', 'description', 'ordered_qty', 'stock_qty', 'price', 'rating_summary', 'media_gallery'), $allAttributes);
26
 
27
  $excludedAttributes = array(
28
  'all_children', 'available_sort_by', 'children', 'children_count', 'custom_apply_to_products',
@@ -68,7 +76,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
68
  ->addStoreFilter($storeId);
69
 
70
  if ($only_visible)
71
- $products = $products->addAttributeToFilter('visibility', array('in' => Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds()));
72
 
73
  if (false === $this->config->getShowOutOfStock($storeId))
74
  Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products);
@@ -111,6 +119,11 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
111
 
112
  if ($attribute['retrievable'] != '1')
113
  $unretrievableAttributes[] = $attribute['attribute'];
 
 
 
 
 
114
  }
115
 
116
  $customRankings = $this->config->getProductCustomRanking($storeId);
@@ -149,7 +162,8 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
149
  'customRanking' => $customRankingsArr,
150
  'unretrievableAttributes' => $unretrievableAttributes,
151
  'attributesForFaceting' => $attributesForFaceting,
152
- 'maxValuesPerFacet' => (int) $this->config->getMaxValuesPerFacet($storeId)
 
153
  );
154
 
155
  // Additional index settings from event observer
@@ -267,6 +281,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
267
  $customData[$field]['default'] = $price;
268
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($price, false);
269
 
 
270
 
271
  if ($customer_groups_enabled) // If fetch special price for groups
272
  {
@@ -292,17 +307,31 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
292
  $product->setCustomerGroupId(null);
293
  }
294
 
295
- $special_price = (double) Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), $with_tax, null, null, null, $product->getStore(), null);
 
296
 
297
- if ($special_price && $special_price !== $customData[$field]['default'])
298
  {
299
- $customData[$field]['special_from_date'] = strtotime($product->getSpecialFromDate());
300
- $customData[$field]['special_to_date'] = strtotime($product->getSpecialToDate());
 
301
 
302
- $customData[$field]['default_original_formated'] = $customData[$field]['default_formated'];
 
 
 
 
 
 
 
 
 
 
 
303
 
304
- $customData[$field]['default'] = $special_price;
305
- $customData[$field]['default_formated'] = $product->getStore()->formatPrice($special_price, false);
 
306
  }
307
 
308
  if ($type == 'configurable' || $type == 'grouped' || $type == 'bundle')
@@ -333,10 +362,23 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
333
  $min = $max; // avoid to have PHP_INT_MAX in case of no subproducts (Corner case of visibility and stock options)
334
  }
335
 
 
336
  if ($min != $max)
337
  {
338
  $dashed_format = $product->getStore()->formatPrice($min, false) . ' - ' . $product->getStore()->formatPrice($max, false);
339
- $customData[$field]['default_formated'] = $dashed_format;
 
 
 
 
 
 
 
 
 
 
 
 
340
 
341
  if ($customer_groups_enabled)
342
  {
@@ -344,31 +386,32 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
344
  {
345
  $group_id = (int)$group->getData('customer_group_id');
346
 
347
- $customData[$field]['group_' . $group_id] = 0;
348
- $customData[$field]['group_' . $group_id . '_formated'] = $dashed_format;
 
 
 
349
  }
350
  }
351
-
352
- //// Do not keep special price that is already taken into account in min max
353
- unset($customData['price']['special_from_date']);
354
- unset($customData['price']['special_to_date']);
355
- unset($customData['price']['default_original_formated']);
356
-
357
- $customData[$field]['default'] = 0; // will be reset just after
358
  }
359
 
 
360
  if ($customData[$field]['default'] == 0)
361
  {
362
  $customData[$field]['default'] = $min;
363
 
364
  if ($min === $max)
365
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($min, false);
 
366
 
367
- if ($customer_groups_enabled)
 
 
368
  {
369
- foreach ($groups as $group)
 
 
370
  {
371
- $group_id = (int)$group->getData('customer_group_id');
372
  $customData[$field]['group_' . $group_id] = $min;
373
 
374
  if ($min === $max)
@@ -395,10 +438,17 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
395
 
396
  $defaultData = is_array($defaultData) ? $defaultData : explode("|",$defaultData);
397
 
 
 
 
 
 
398
  $customData = array(
399
  'objectID' => $product->getId(),
400
  'name' => $product->getName(),
401
- 'url' => $product->getProductUrl()
 
 
402
  );
403
 
404
  $additionalAttributes = $this->config->getProductAdditionalAttributes($product->getStoreId());
@@ -420,8 +470,18 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
420
  ->addFieldToFilter('level', array('gt' => 1))
421
  ->addIsActiveFilter();
422
 
 
 
423
  foreach ($categoryCollection as $category)
424
  {
 
 
 
 
 
 
 
 
425
  $categoryName = $category->getName();
426
 
427
  if ($categoryName)
@@ -480,7 +540,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
480
 
481
  if (false === isset($defaultData['thumbnail_url']))
482
  {
483
- $thumb = Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75);
484
 
485
  try
486
  {
@@ -499,7 +559,7 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
499
 
500
  if (false === isset($defaultData['image_url']))
501
  {
502
- $image = Mage::helper('catalog/image')->init($product, $this->config->getImageType())->resize($this->config->getImageWidth(), $this->config->getImageHeight());
503
 
504
  try
505
  {
@@ -541,7 +601,10 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
541
  }
542
 
543
  if ($type == 'configurable' || $type == 'grouped')
 
544
  $ids = $product->getTypeInstance(true)->getChildrenIds($product->getId());
 
 
545
 
546
  if (count($ids))
547
  {
@@ -562,7 +625,10 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
562
 
563
  // skip default calculation if we have provided these attributes via the observer in $defaultData
564
  if (false === isset($defaultData['ordered_qty']) && $this->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
565
- $customData['ordered_qty'] = (int) $product->getOrderedQty();
 
 
 
566
 
567
  if (false === isset($defaultData['stock_qty']) && $this->isAttributeEnabled($additionalAttributes, 'stock_qty'))
568
  $customData['stock_qty'] = (int) $product->getStockQty();
@@ -591,13 +657,17 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
591
  {
592
  $values = array();
593
 
 
 
594
  foreach ($sub_products as $sub_product)
595
  {
596
- $stock = (int) $sub_product->getStockItem()->getIsInStock();
597
 
598
- if ($stock == false)
599
  continue;
600
 
 
 
601
  $value = $sub_product->getData($attribute['attribute']);
602
 
603
  if ($value)
@@ -615,6 +685,12 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
615
  {
616
  $customData[$attribute['attribute']] = array_values(array_unique($values));
617
  }
 
 
 
 
 
 
618
  }
619
  }
620
  else
@@ -637,7 +713,13 @@ class Algolia_Algoliasearch_Helper_Entity_Producthelper extends Algolia_Algolias
637
  }
638
  }
639
 
640
- $this->handlePrice($product, $sub_products, $customData);
 
 
 
 
 
 
641
 
642
  $transport = new Varien_Object($customData);
643
  Mage::dispatchEvent('algolia_subproducts_index', array('custom_data' => $transport, 'sub_products' => $sub_products));
4
  {
5
  protected static $_productAttributes;
6
 
7
+ protected static $_predefinedProductAttributes = array(
8
+ 'name',
9
+ 'url_key',
10
+ 'description',
11
+ 'image',
12
+ 'small_image',
13
+ 'thumbnail',
14
+ 'msrp_enabled' // NEEDED to handle msrp behavior
15
+ );
16
 
17
  protected function getIndexNameSuffix()
18
  {
30
 
31
  $allAttributes = $config->getEntityAttributeCodes('catalog_product');
32
 
33
+ $productAttributes = array_merge(array('name', 'path', 'categories', 'categories_without_path', 'description', 'ordered_qty', 'total_ordered', 'stock_qty', 'rating_summary', 'media_gallery'), $allAttributes);
34
 
35
  $excludedAttributes = array(
36
  'all_children', 'available_sort_by', 'children', 'children_count', 'custom_apply_to_products',
76
  ->addStoreFilter($storeId);
77
 
78
  if ($only_visible)
79
+ $products = $products->addAttributeToFilter('visibility', array('in' => Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds()));
80
 
81
  if (false === $this->config->getShowOutOfStock($storeId))
82
  Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products);
119
 
120
  if ($attribute['retrievable'] != '1')
121
  $unretrievableAttributes[] = $attribute['attribute'];
122
+
123
+ if ($attribute['attribute'] == 'categories')
124
+ {
125
+ $attributesToIndex[] = $attribute['order'] == 'ordered' ? 'categories_without_path' : 'unordered(categories_without_path)';
126
+ }
127
  }
128
 
129
  $customRankings = $this->config->getProductCustomRanking($storeId);
162
  'customRanking' => $customRankingsArr,
163
  'unretrievableAttributes' => $unretrievableAttributes,
164
  'attributesForFaceting' => $attributesForFaceting,
165
+ 'maxValuesPerFacet' => (int) $this->config->getMaxValuesPerFacet($storeId),
166
+ 'removeWordsIfNoResults' => $this->config->getRemoveWordsIfNoResult($storeId)
167
  );
168
 
169
  // Additional index settings from event observer
281
  $customData[$field]['default'] = $price;
282
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($price, false);
283
 
284
+ $special_price = (double) Mage::helper('tax')->getPrice($product, $product->getFinalPrice(), $with_tax, null, null, null, $product->getStore(), null);
285
 
286
  if ($customer_groups_enabled) // If fetch special price for groups
287
  {
307
  $product->setCustomerGroupId(null);
308
  }
309
 
310
+ $customData[$field]['special_from_date'] = strtotime($product->getSpecialFromDate());
311
+ $customData[$field]['special_to_date'] = strtotime($product->getSpecialToDate());
312
 
313
+ if ($customer_groups_enabled)
314
  {
315
+ foreach ($groups as $group)
316
+ {
317
+ $group_id = (int)$group->getData('customer_group_id');
318
 
319
+ if ($special_price && $special_price < $customData[$field]['group_' . $group_id])
320
+ {
321
+ $customData[$field]['group_' . $group_id] = $special_price;
322
+ $customData[$field]['group_' . $group_id . '_formated'] = $product->getStore()->formatPrice($special_price, false);
323
+ }
324
+ }
325
+ }
326
+ else
327
+ {
328
+ if ($special_price && $special_price < $customData[$field]['default'])
329
+ {
330
+ $customData[$field]['default_original_formated'] = $customData[$field]['default_formated'];
331
 
332
+ $customData[$field]['default'] = $special_price;
333
+ $customData[$field]['default_formated'] = $product->getStore()->formatPrice($special_price, false);
334
+ }
335
  }
336
 
337
  if ($type == 'configurable' || $type == 'grouped' || $type == 'bundle')
362
  $min = $max; // avoid to have PHP_INT_MAX in case of no subproducts (Corner case of visibility and stock options)
363
  }
364
 
365
+
366
  if ($min != $max)
367
  {
368
  $dashed_format = $product->getStore()->formatPrice($min, false) . ' - ' . $product->getStore()->formatPrice($max, false);
369
+
370
+ if (isset($customData[$field]['default_original_formated']) === false || $min <= $customData[$field]['default'])
371
+ {
372
+
373
+ $customData[$field]['default_formated'] = $dashed_format;
374
+
375
+ //// Do not keep special price that is already taken into account in min max
376
+ unset($customData['price']['special_from_date']);
377
+ unset($customData['price']['special_to_date']);
378
+ unset($customData['price']['default_original_formated']);
379
+
380
+ $customData[$field]['default'] = 0; // will be reset just after
381
+ }
382
 
383
  if ($customer_groups_enabled)
384
  {
386
  {
387
  $group_id = (int)$group->getData('customer_group_id');
388
 
389
+ if ($min != $max && $min <= $customData[$field]['group_' . $group_id])
390
+ {
391
+ $customData[$field]['group_' . $group_id] = 0;
392
+ $customData[$field]['group_' . $group_id . '_formated'] = $dashed_format;
393
+ }
394
  }
395
  }
 
 
 
 
 
 
 
396
  }
397
 
398
+
399
  if ($customData[$field]['default'] == 0)
400
  {
401
  $customData[$field]['default'] = $min;
402
 
403
  if ($min === $max)
404
  $customData[$field]['default_formated'] = $product->getStore()->formatPrice($min, false);
405
+ }
406
 
407
+ if ($customer_groups_enabled)
408
+ {
409
+ foreach ($groups as $group)
410
  {
411
+ $group_id = (int)$group->getData('customer_group_id');
412
+
413
+ if ($customData[$field]['group_' . $group_id] == 0)
414
  {
 
415
  $customData[$field]['group_' . $group_id] = $min;
416
 
417
  if ($min === $max)
438
 
439
  $defaultData = is_array($defaultData) ? $defaultData : explode("|",$defaultData);
440
 
441
+ $visibility = (int) $product->getVisibility();
442
+
443
+ $visibleInCatalog = Mage::getSingleton('catalog/product_visibility')->getVisibleInCatalogIds();
444
+ $visibleInSearch = Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds();
445
+
446
  $customData = array(
447
  'objectID' => $product->getId(),
448
  'name' => $product->getName(),
449
+ 'url' => Mage::getBaseUrl() . $product->getRequestPath(),
450
+ 'visibility_search' => (int) (in_array($visibility, $visibleInSearch)),
451
+ 'visibility_catalog' => (int) (in_array($visibility, $visibleInCatalog))
452
  );
453
 
454
  $additionalAttributes = $this->config->getProductAdditionalAttributes($product->getStoreId());
470
  ->addFieldToFilter('level', array('gt' => 1))
471
  ->addIsActiveFilter();
472
 
473
+ $rootCat = Mage::app()->getStore($product->getStoreId())->getRootCategoryId();
474
+
475
  foreach ($categoryCollection as $category)
476
  {
477
+ // Check and skip all categories that is not
478
+ // in the path of the current store.
479
+ $path = $category->getPath();
480
+ $path_parts = explode("/",$path);
481
+ if (isset($path_parts[1]) && $path_parts[1] != $rootCat) {
482
+ continue;
483
+ }
484
+
485
  $categoryName = $category->getName();
486
 
487
  if ($categoryName)
540
 
541
  if (false === isset($defaultData['thumbnail_url']))
542
  {
543
+ $thumb = Mage::helper('algoliasearch/image')->init($product, 'thumbnail')->resize(75, 75);
544
 
545
  try
546
  {
559
 
560
  if (false === isset($defaultData['image_url']))
561
  {
562
+ $image = Mage::helper('algoliasearch/image')->init($product, $this->config->getImageType())->resize($this->config->getImageWidth(), $this->config->getImageHeight());
563
 
564
  try
565
  {
601
  }
602
 
603
  if ($type == 'configurable' || $type == 'grouped')
604
+ {
605
  $ids = $product->getTypeInstance(true)->getChildrenIds($product->getId());
606
+ $ids = call_user_func_array('array_merge', $ids);
607
+ }
608
 
609
  if (count($ids))
610
  {
625
 
626
  // skip default calculation if we have provided these attributes via the observer in $defaultData
627
  if (false === isset($defaultData['ordered_qty']) && $this->isAttributeEnabled($additionalAttributes, 'ordered_qty'))
628
+ $customData['ordered_qty'] = (int) $product->getOrderedQty();
629
+
630
+ if (false === isset($defaultData['total_ordered']) && $this->isAttributeEnabled($additionalAttributes, 'total_ordered'))
631
+ $customData['total_ordered'] = (int) $product->getTotalOrdered();
632
 
633
  if (false === isset($defaultData['stock_qty']) && $this->isAttributeEnabled($additionalAttributes, 'stock_qty'))
634
  $customData['stock_qty'] = (int) $product->getStockQty();
657
  {
658
  $values = array();
659
 
660
+ $all_sub_products_out_of_stock = true;
661
+
662
  foreach ($sub_products as $sub_product)
663
  {
664
+ $isInStock = (int) $sub_product->getStockItem()->getIsInStock();
665
 
666
+ if ($isInStock == false)
667
  continue;
668
 
669
+ $all_sub_products_out_of_stock = false;
670
+
671
  $value = $sub_product->getData($attribute['attribute']);
672
 
673
  if ($value)
685
  {
686
  $customData[$attribute['attribute']] = array_values(array_unique($values));
687
  }
688
+
689
+ if ($customData['in_stock'] && $all_sub_products_out_of_stock) {
690
+ // Set main product out of stock if all
691
+ // sub-products is out of stock.
692
+ $customData['in_stock'] = 0;
693
+ }
694
  }
695
  }
696
  else
713
  }
714
  }
715
 
716
+
717
+ $msrpEnabled = method_exists(Mage::helper('catalog'), 'canApplyMsrp') ? (bool) Mage::helper('catalog')->canApplyMsrp($product): false;
718
+
719
+ if (false === $msrpEnabled)
720
+ $this->handlePrice($product, $sub_products, $customData);
721
+ else
722
+ unset($customData['price']);
723
 
724
  $transport = new Varien_Object($customData);
725
  Mage::dispatchEvent('algolia_subproducts_index', array('custom_data' => $transport, 'sub_products' => $sub_products));
app/code/community/Algolia/Algoliasearch/Helper/Entity/Suggestionhelper.php CHANGED
@@ -30,11 +30,39 @@ class Algolia_Algoliasearch_Helper_Entity_Suggestionhelper extends Algolia_Algol
30
  return $suggestion_obj;
31
  }
32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  public function getSuggestionCollectionQuery($storeId)
34
  {
35
  $collection = Mage::getResourceModel('catalogsearch/query_collection')
 
36
  ->setStoreId($storeId);
37
 
 
 
38
  return $collection;
39
  }
40
  }
30
  return $suggestion_obj;
31
  }
32
 
33
+ public function getPopularQueries($storeId)
34
+ {
35
+ $collection = Mage::getResourceModel('catalogsearch/query_collection');
36
+ $collection->getSelect()->where('num_results >= '.$this->config->getMinNumberOfResults().' AND popularity >= ' . $this->config->getMinPopularity() .' AND query_text != "__empty__"');
37
+ $collection->getSelect()->limit(12);
38
+ $collection->setOrder('popularity', 'DESC');
39
+ $collection->setOrder('num_results', 'DESC');
40
+ $collection->setOrder('updated_at', 'ASC');
41
+
42
+ if ($storeId) {
43
+ $collection->getSelect()->where('store_id = ?', (int) $storeId);
44
+ }
45
+
46
+ $collection->load();
47
+
48
+ $suggestions = array();
49
+
50
+ /** @var $suggestion Mage_Catalog_Model_Category */
51
+ foreach ($collection as $suggestion)
52
+ if (strlen($suggestion['query_text']) >= 3)
53
+ $suggestions[] = $suggestion['query_text'];
54
+
55
+ return array_slice($suggestions, 0, 9);
56
+ }
57
+
58
  public function getSuggestionCollectionQuery($storeId)
59
  {
60
  $collection = Mage::getResourceModel('catalogsearch/query_collection')
61
+ ->addStoreFilter($storeId)
62
  ->setStoreId($storeId);
63
 
64
+ $collection->getSelect()->where('num_results >= '.$this->config->getMinNumberOfResults().' AND popularity >= ' . $this->config->getMinPopularity() .' AND query_text != "__empty__"');
65
+
66
  return $collection;
67
  }
68
  }
app/code/community/Algolia/Algoliasearch/Helper/Image.php CHANGED
@@ -3,7 +3,7 @@
3
  class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
4
  {
5
  /*
6
- * Override to be able to catch the error
7
  */
8
  public function toString()
9
  {
@@ -17,7 +17,6 @@ class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
17
  if ($model->isCached())
18
  return $model->getUrl();
19
 
20
-
21
  if ($this->_scheduleRotate)
22
  $model->rotate($this->getAngle());
23
 
@@ -27,8 +26,6 @@ class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
27
  if ($this->getWatermark())
28
  $model->setWatermark($this->getWatermark());
29
 
30
- $url = $model->saveFile()->getUrl();
31
-
32
- return $url;
33
  }
34
  }
3
  class Algolia_Algoliasearch_Helper_Image extends Mage_Catalog_Helper_Image
4
  {
5
  /*
6
+ * Subclass to be able to catch the error
7
  */
8
  public function toString()
9
  {
17
  if ($model->isCached())
18
  return $model->getUrl();
19
 
 
20
  if ($this->_scheduleRotate)
21
  $model->rotate($this->getAngle());
22
 
26
  if ($this->getWatermark())
27
  $model->setWatermark($this->getWatermark());
28
 
29
+ return $model->saveFile()->getUrl();
 
 
30
  }
31
  }
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algolia.php CHANGED
@@ -74,6 +74,8 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
74
 
75
  $result = $process->getMode() !== Mage_Index_Model_Process::MODE_MANUAL;
76
 
 
 
77
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
78
 
79
  return $result;
@@ -107,7 +109,7 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
107
 
108
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
109
 
110
- if ($object->getData('is_in_stock') == false|| $product->getQty() <= 0)
111
  {
112
  try // In case of wrong credentials or overquota or block account. To avoid checkout process to fail
113
  {
@@ -131,12 +133,13 @@ class Algolia_Algoliasearch_Model_Indexer_Algolia extends Mage_Index_Model_Index
131
  /** @var $product Mage_Catalog_Model_Product */
132
  $product = $event->getDataObject();
133
  $delete = FALSE;
 
134
 
135
  if ($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
136
  {
137
  $delete = TRUE;
138
  }
139
- elseif (! in_array($product->getData('visibility'), Mage::getSingleton('catalog/product_visibility')->getVisibleInSearchIds()))
140
  {
141
  $delete = TRUE;
142
  }
74
 
75
  $result = $process->getMode() !== Mage_Index_Model_Process::MODE_MANUAL;
76
 
77
+ $result = $result && $event->getEntity() !== 'core_config_data';
78
+
79
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
80
 
81
  return $result;
109
 
110
  $product = Mage::getModel('catalog/product')->load($object->getProductId());
111
 
112
+ if ($object->getData('is_in_stock') == false || (int) $product->getStockItem()->getQty() <= 0)
113
  {
114
  try // In case of wrong credentials or overquota or block account. To avoid checkout process to fail
115
  {
133
  /** @var $product Mage_Catalog_Model_Product */
134
  $product = $event->getDataObject();
135
  $delete = FALSE;
136
+ $visibleInSite = Mage::getSingleton('catalog/product_visibility')->getVisibleInSiteIds();
137
 
138
  if ($product->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED)
139
  {
140
  $delete = TRUE;
141
  }
142
+ elseif (! in_array($product->getData('visibility'), $visibleInSite))
143
  {
144
  $delete = TRUE;
145
  }
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliacategories.php CHANGED
@@ -43,7 +43,7 @@ class Algolia_Algoliasearch_Model_Indexer_Algoliacategories extends Mage_Index_M
43
 
44
  public function matchEvent(Mage_Index_Model_Event $event)
45
  {
46
- $result = true;
47
 
48
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
49
 
43
 
44
  public function matchEvent(Mage_Index_Model_Event $event)
45
  {
46
+ $result = $event->getEntity() !== 'core_config_data';;
47
 
48
  $event->addNewData(self::EVENT_MATCH_RESULT_KEY, $result);
49
 
app/code/community/Algolia/Algoliasearch/Model/Indexer/Algoliaqueuerunner.php ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Algolia_Algoliasearch_Model_Indexer_Algoliaqueuerunner extends Mage_Index_Model_Indexer_Abstract
4
+ {
5
+ const EVENT_MATCH_RESULT_KEY = 'algoliasearch_match_result';
6
+ private $config;
7
+ /** @var Algolia_Algoliasearch_Model_Queue */
8
+ private $queue;
9
+
10
+ public function __construct()
11
+ {
12
+ parent::__construct();
13
+ $this->config = Mage::helper('algoliasearch/config');
14
+ $this->queue = Mage::getSingleton('algoliasearch/queue');
15
+ }
16
+
17
+ protected $_matchedEntities = array();
18
+
19
+ protected function _getResource()
20
+ {
21
+ return Mage::getResourceSingleton('catalogsearch/indexer_fulltext');
22
+ }
23
+
24
+ public function getName()
25
+ {
26
+ return Mage::helper('algoliasearch')->__('Algolia Search Queue Runner');
27
+ }
28
+
29
+ public function getDescription()
30
+ {
31
+ return Mage::helper('algoliasearch')->__('Process the queue if enabled. This allow to run jobs in the queue');
32
+ }
33
+
34
+ public function matchEvent(Mage_Index_Model_Event $event)
35
+ {
36
+ return false;
37
+ }
38
+
39
+ protected function _registerEvent(Mage_Index_Model_Event $event)
40
+ {
41
+ return $this;
42
+ }
43
+
44
+ protected function _registerCatalogProductEvent(Mage_Index_Model_Event $event)
45
+ {
46
+ return $this;
47
+ }
48
+
49
+ protected function _registerCatalogCategoryEvent(Mage_Index_Model_Event $event)
50
+ {
51
+ return $this;
52
+ }
53
+
54
+ protected function _processEvent(Mage_Index_Model_Event $event)
55
+ {
56
+ }
57
+
58
+ /**
59
+ * Rebuild all index data
60
+ */
61
+ public function reindexAll()
62
+ {
63
+ if (! $this->config->getApplicationID() || ! $this->config->getAPIKey() || ! $this->config->getSearchOnlyAPIKey())
64
+ {
65
+ Mage::getSingleton('adminhtml/session')->addError('Algolia reindexing failed: You need to configure your Algolia credentials in System > Configuration > Algolia Search.');
66
+ return;
67
+ }
68
+
69
+ $this->queue->runCron();
70
+
71
+ return $this;
72
+ }
73
+ }
app/code/community/Algolia/Algoliasearch/Model/Observer.php CHANGED
@@ -34,6 +34,14 @@ class Algolia_Algoliasearch_Model_Observer
34
  $this->helper->saveConfigurationToAlgolia($store->getId());
35
  }
36
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Call algoliasearch.xml To load js / css / phtml
39
  */
@@ -41,9 +49,21 @@ class Algolia_Algoliasearch_Model_Observer
41
  {
42
  if ($this->config->isEnabledFrontEnd())
43
  {
44
- if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled())
45
  {
46
- $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
 
 
 
 
 
 
 
 
 
 
 
 
47
  }
48
  }
49
 
@@ -158,7 +178,7 @@ class Algolia_Algoliasearch_Model_Observer
158
  else
159
  {
160
  if (! empty($page) && ! empty($pageSize))
161
- $this->helper->rebuildStoreCategoryIndexPage($storeId, $this->category_helper->getProductCollectionQuery($storeId, $categoryIds), $page, $pageSize);
162
  else
163
  $this->helper->rebuildStoreCategoryIndex($storeId, $categoryIds);
164
  }
34
  $this->helper->saveConfigurationToAlgolia($store->getId());
35
  }
36
 
37
+ public function addBundleToAdmin(Varien_Event_Observer $observer)
38
+ {
39
+ $req = Mage::app()->getRequest();
40
+
41
+ if (strpos($req->getPathInfo(), 'system_config/edit/section/algoliasearch') !== false)
42
+ $observer->getLayout()->getUpdate()->addHandle('algolia_bundle_handle');
43
+ }
44
+
45
  /**
46
  * Call algoliasearch.xml To load js / css / phtml
47
  */
49
  {
50
  if ($this->config->isEnabledFrontEnd())
51
  {
52
+ if ($this->config->getApplicationID() && $this->config->getAPIKey())
53
  {
54
+ if ($this->config->isPopupEnabled() || $this->config->isInstantEnabled())
55
+ {
56
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle');
57
+
58
+ if ($this->config->isDefaultSelector())
59
+ {
60
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_with_topsearch');
61
+ }
62
+ else
63
+ {
64
+ $observer->getLayout()->getUpdate()->addHandle('algolia_search_handle_no_topsearch');
65
+ }
66
+ }
67
  }
68
  }
69
 
178
  else
179
  {
180
  if (! empty($page) && ! empty($pageSize))
181
+ $this->helper->rebuildStoreCategoryIndexPage($storeId, $this->category_helper->getCategoryCollectionQuery($storeId, $categoryIds), $page, $pageSize);
182
  else
183
  $this->helper->rebuildStoreCategoryIndex($storeId, $categoryIds);
184
  }
app/code/community/Algolia/Algoliasearch/Model/Queue.php CHANGED
@@ -9,6 +9,10 @@ class Algolia_Algoliasearch_Model_Queue
9
  protected $db;
10
 
11
  protected $config;
 
 
 
 
12
 
13
  public function __construct()
14
  {
@@ -16,16 +20,19 @@ class Algolia_Algoliasearch_Model_Queue
16
  $this->db = Mage::getSingleton('core/resource')->getConnection('core_write');
17
 
18
  $this->config = Mage::helper('algoliasearch/config');
 
 
 
19
  }
20
 
21
- public function add($class, $method, $data, $retries = NULL)
22
  {
23
  // Insert a row for the new job
24
  $this->db->insert($this->table, array(
25
  'class' => $class,
26
  'method' => $method,
27
- 'data' => serialize($data),
28
- 'max_retries' => max(array(1,(int)($retries ? $retries : $this->config->getQueueMaxRetries()))),
29
  'pid' => NULL,
30
  ));
31
  }
@@ -35,66 +42,161 @@ class Algolia_Algoliasearch_Model_Queue
35
  if ( ! $this->config->isQueueActive())
36
  return;
37
 
38
- if ($this->config->noProcess())
39
- return;
40
 
41
- $this->run($this->config->getNumberOfJobToRun());
 
 
 
 
42
  }
43
 
44
- public function run($limit = null)
45
  {
46
- // Cleanup crashed jobs
47
- $pids = $this->db->fetchCol("SELECT pid FROM {$this->table} WHERE pid IS NOT NULL GROUP BY pid");
48
- foreach ($pids as $pid) {
49
- // Old pid is no longer running, release it's reserved tasks
50
- if (is_numeric($pid) && ! file_exists("/proc/{$pid}/status")) {
51
- Mage::log("A crashed job queue process was detected for pid {$pid}", Zend_Log::NOTICE, self::ERROR_LOG);
52
-
53
- $expr = array('pid' => new Zend_Db_Expr('NULL'), 'retries' => new Zend_Db_Expr('retries + 1'));
54
- $binding = array('pid = ?' => $pid);
55
- $this->db->update($this->table, $expr, $binding);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  }
 
 
 
 
 
57
  }
58
 
59
- // Reserve all new jobs since last run
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  $pid = getmypid();
61
- $limit = ($limit ? "LIMIT $limit":'');
62
- $batchSize = $this->db->query("UPDATE {$this->db->quoteIdentifier($this->table,true)} SET pid = {$pid} WHERE pid IS NULL ORDER BY job_id $limit")->rowCount();
 
 
 
 
 
 
63
 
64
  // Run all reserved jobs
65
- $result = $this->db->query($this->db->select()->from($this->table, '*')->where('pid = ?',$pid)->order(array('job_id')));
66
- while ($row = $result->fetch()) {
67
- $where = $this->db->quoteInto('job_id = ?', $row['job_id']);
68
- $data = (substr($row['data'],0,1) == '{') ? json_decode($row['data'], TRUE) : $data = unserialize($row['data']);
69
-
70
- // Check retries
71
- if ($row['retries'] >= $row['max_retries']) {
72
- $this->db->delete($this->table, $where);
73
- Mage::log("{$row['pid']}: Mage::getSingleton({$row['class']})->{$row['method']}(".json_encode($data).")\n".$row['error_log'], Zend_Log::ERR, self::ERROR_LOG);
74
- continue;
75
  }
76
-
77
- // Run job!
78
- try {
79
- $model = Mage::getSingleton($row['class']);
80
- $method = $row['method'];
81
- $model->$method(new Varien_Object($data));
82
- $this->db->delete($this->table, $where);
83
- Mage::log("{$row['pid']}: Mage::getSingleton({$row['class']})->{$row['method']}(".json_encode($data).")", Zend_Log::INFO, self::SUCCESS_LOG);
84
- } catch(Exception $e) {
85
  // Increment retries and log error information
86
- $error =
87
- date('c')." ERROR: ".get_class($e).": '{$e->getMessage()}' in {$e->getFile()}:{$e->getLine()}\n".
88
- "Stack trace:\n".
89
- $e->getTraceAsString();
90
- $bind = array(
91
- 'pid' => new Zend_Db_Expr('NULL'),
92
- 'error_log' => new Zend_Db_Expr('SUBSTR(CONCAT(error_log,'.$this->db->quote($error).',"\n\n"),1,20000)')
93
- );
94
- $this->db->update($this->table, $bind, $where);
95
  }
96
  }
97
 
98
- return $batchSize;
 
 
 
 
 
 
 
 
99
  }
100
  }
9
  protected $db;
10
 
11
  protected $config;
12
+ /** @var Algolia_Algoliasearch_Helper_Logger */
13
+ protected $logger;
14
+
15
+ private $by_page;
16
 
17
  public function __construct()
18
  {
20
  $this->db = Mage::getSingleton('core/resource')->getConnection('core_write');
21
 
22
  $this->config = Mage::helper('algoliasearch/config');
23
+ $this->logger = Mage::helper('algoliasearch/logger');
24
+
25
+ $this->by_page = $this->config->getNumberOfElementByPage();
26
  }
27
 
28
+ public function add($class, $method, $data, $data_size)
29
  {
30
  // Insert a row for the new job
31
  $this->db->insert($this->table, array(
32
  'class' => $class,
33
  'method' => $method,
34
+ 'data' => json_encode($data),
35
+ 'data_size' => $data_size,
36
  'pid' => NULL,
37
  ));
38
  }
42
  if ( ! $this->config->isQueueActive())
43
  return;
44
 
45
+ $nbJobs = $this->config->getNumberOfJobToRun();
 
46
 
47
+ if (getenv('EMPTY_QUEUE') && getenv('EMPTY_QUEUE') == '1')
48
+ $nbJobs = -1;
49
+
50
+
51
+ $this->run($nbJobs);
52
  }
53
 
54
+ private function mergeable($j1, $j2)
55
  {
56
+ if ($j1['class'] !== $j2['class'])
57
+ return false;
58
+
59
+ if ($j1['method'] !== $j2['method'])
60
+ return false;
61
+
62
+ if ($j1['data']['store_id'] !== $j2['data']['store_id'])
63
+ return false;
64
+
65
+ if ((! isset($j1['data']['product_ids']) || count($j1['data']['product_ids']) <= 0)
66
+ && (! isset($j1['data']['category_ids']) || count($j1['data']['category_ids']) < 0))
67
+ return false;
68
+
69
+ if ((! isset($j2['data']['product_ids']) || count($j2['data']['product_ids']) <= 0)
70
+ && (! isset($j2['data']['category_ids']) || count($j2['data']['category_ids']) < 0))
71
+ return false;
72
+
73
+ if (isset($j1['data']['product_ids']) && count($j1['data']['product_ids']) + count($j2['data']['product_ids']) > $this->by_page)
74
+ return false;
75
+
76
+ if (isset($j1['data']['category_ids']) && count($j1['data']['category_ids']) + count($j2['data']['category_ids']) > $this->by_page)
77
+ return false;
78
+
79
+ return true;
80
+ }
81
+
82
+ private function sortAndMergeJob($old_jobs)
83
+ {
84
+ usort($old_jobs, function ($a, $b) {
85
+ if (strcmp($a['class'], $b['class']) !== 0)
86
+ return strcmp($a['class'], $b['class']);
87
+
88
+ if ($a['data']['store_id'] !== $b['data']['store_id'])
89
+ return $a['data']['store_id'] > $b['data']['store_id'];
90
+
91
+ return $a['job_id'] - $b['job_id'];
92
+ });
93
+
94
+ $jobs = array();
95
+
96
+ $current_job = array_shift($old_jobs);
97
+ $next_job = null;
98
+
99
+ while ($current_job !== null)
100
+ {
101
+ if (count($old_jobs) > 0)
102
+ {
103
+ $next_job = array_shift($old_jobs);
104
+
105
+ if ($this->mergeable($current_job, $next_job))
106
+ {
107
+ if (isset($current_job['data']['product_ids']))
108
+ $current_job['data']['product_ids'] = array_merge($current_job['data']['product_ids'], $next_job['data']['product_ids']);
109
+ else
110
+ $current_job['data']['category_ids'] = array_merge($current_job['data']['category_ids'], $next_job['data']['category_ids']);
111
+
112
+ continue;
113
+ }
114
  }
115
+ else
116
+ $next_job = null;
117
+
118
+ $jobs[] = $current_job;
119
+ $current_job = $next_job;
120
  }
121
 
122
+ return $jobs;
123
+ }
124
+
125
+ public function run($limit)
126
+ {
127
+ $full_reindex = ($limit === -1);
128
+ $limit = $full_reindex ? 1 : $limit;
129
+
130
+ $element_count = 0;
131
+ $jobs = array();
132
+ $offset = 0;
133
+ $max_size = $this->config->getNumberOfElementByPage() * $limit;
134
+
135
+ while ($element_count < $max_size)
136
+ {
137
+ $data = $this->db->query($this->db->select()->from($this->table, '*')->where('pid IS NULL')->order(array('job_id'))->limit($limit, $limit * $offset));
138
+ $data = $data->fetchAll();
139
+
140
+ $offset++;
141
+
142
+ if (count($data) <= 0)
143
+ break;
144
+
145
+ foreach ($data as $job)
146
+ {
147
+ $job_size = (int) $job['data_size'];
148
+
149
+ if ($element_count + $job_size <= $max_size)
150
+ {
151
+ $jobs[] = $job;
152
+ $element_count += $job_size;
153
+ }
154
+ else
155
+ break 2;
156
+ }
157
+ }
158
+
159
+ if (count($jobs) <= 0)
160
+ return;
161
+
162
+ $first_id = $jobs[0]['job_id'];
163
+ $last_id = $jobs[count($jobs) - 1]['job_id'];
164
+
165
  $pid = getmypid();
166
+
167
+ // Reserve all new jobs since last run
168
+ $this->db->query("UPDATE {$this->db->quoteIdentifier($this->table,true)} SET pid = ". $pid . " WHERE job_id >= " . $first_id . " AND job_id <= $last_id");
169
+
170
+ foreach ($jobs as &$job)
171
+ $job['data'] = json_decode($job['data'], true);
172
+
173
+ $jobs = $this->sortAndMergeJob($jobs);
174
 
175
  // Run all reserved jobs
176
+ foreach ($jobs as $job)
177
+ {
178
+ try
179
+ {
180
+ $model = Mage::getSingleton($job['class']);
181
+ $method = $job['method'];
182
+ $model->$method(new Varien_Object($job['data']));
 
 
 
183
  }
184
+ catch(Exception $e)
185
+ {
 
 
 
 
 
 
 
186
  // Increment retries and log error information
187
+ $this->logger->log("Queue processing {$job['pid']} [KO]: Mage::getSingleton({$job['class']})->{$job['method']}(".json_encode($job['data']).")");
188
+ $this->logger->log(date('c')." ERROR: ".get_class($e).": '{$e->getMessage()}' in {$e->getFile()}:{$e->getLine()}\n". "Stack trace:\n". $e->getTraceAsString());
 
 
 
 
 
 
 
189
  }
190
  }
191
 
192
+ // Delete only when finished to be able to debug the queue if needed
193
+ $where = $this->db->quoteInto('pid = ?', $pid);
194
+ $this->db->delete($this->table, $where);
195
+
196
+
197
+ if ($full_reindex)
198
+ {
199
+ $this->run(-1);
200
+ }
201
  }
202
  }
app/code/community/Algolia/Algoliasearch/Model/Resource/Engine.php CHANGED
@@ -25,61 +25,77 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
25
  $this->suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
26
  }
27
 
28
- public function addToQueue($observer, $method, $data, $nb_retry)
29
  {
30
  if ($this->config->isQueueActive())
31
- $this->queue->add($observer, $method, $data, $nb_retry);
32
  else
33
  Mage::getSingleton($observer)->$method(new Varien_Object($data));
34
  }
35
 
36
  public function removeProducts($storeId = null, $product_ids = null)
37
  {
38
- if (is_array($product_ids) == false)
39
- $product_ids = array($product_ids);
40
-
41
- $by_page = $this->config->getNumberOfElementByPage();
42
 
43
- if (is_array($product_ids) && count($product_ids) > $by_page)
44
  {
45
- foreach (array_chunk($product_ids, $by_page) as $chunk)
46
- $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $storeId, 'product_ids' => $chunk), $this->config->getQueueMaxRetries());
 
 
 
 
 
 
 
 
 
 
47
  }
48
- else
49
- $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $storeId, 'product_ids' => $product_ids), $this->config->getQueueMaxRetries());
50
 
51
  return $this;
52
  }
53
 
54
  public function removeCategories($storeId = null, $category_ids = null)
55
  {
56
- if (is_array($category_ids) == false)
57
- $category_ids = array($category_ids);
58
-
59
- $by_page = $this->config->getNumberOfElementByPage();
60
 
61
- if (is_array($category_ids) && count($category_ids) > $by_page)
62
  {
63
- foreach (array_chunk($category_ids, $by_page) as $chunk)
64
- $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $storeId, 'category_ids' => $chunk), $this->config->getQueueMaxRetries());
65
- }
66
- else
67
- $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $storeId, 'category_ids' => $category_ids), $this->config->getQueueMaxRetries());
68
 
69
- return $this;
 
 
 
 
 
 
 
 
 
 
 
70
  }
71
 
72
  public function rebuildCategoryIndex($storeId = null, $categoryIds = null)
73
  {
74
- $by_page = $this->config->getNumberOfElementByPage();
75
 
76
- if (is_array($categoryIds) && count($categoryIds) > $by_page) {
77
- foreach (array_chunk($categoryIds, $by_page) as $chunk) {
78
- $this->_rebuildCategoryIndex($storeId, $chunk);
 
 
 
 
 
 
 
79
  }
80
- } else {
81
- $this->_rebuildCategoryIndex($storeId, $categoryIds);
82
  }
 
83
  return $this;
84
  }
85
 
@@ -93,7 +109,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
93
  continue;
94
  }
95
 
96
- $this->addToQueue('algoliasearch/observer', 'rebuildPageIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
97
  }
98
  }
99
 
@@ -107,7 +123,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
107
  continue;
108
  }
109
 
110
- $this->addToQueue('algoliasearch/observer', 'rebuildAdditionalSectionsIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
111
  }
112
  }
113
 
@@ -128,10 +144,10 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
128
  for ($i = 1; $i <= $nb_page; $i++)
129
  {
130
  $data = array('store_id' => $store->getId(), 'page_size' => $by_page, 'page' => $i);
131
- $this->addToQueue('algoliasearch/observer', 'rebuildSuggestionIndex', $data, $this->config->getQueueMaxRetries());
132
  }
133
 
134
- $this->addToQueue('algoliasearch/observer', 'moveStoreSuggestionIndex', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
135
  }
136
 
137
 
@@ -154,7 +170,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
154
  }
155
  else
156
  {
157
- $this->addToQueue('algoliasearch/observer', 'deleteProductsStoreIndices', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
158
  }
159
  }
160
  }
@@ -171,11 +187,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
171
 
172
  if ($store->getIsActive())
173
  {
174
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $store->getId(), 'category_ids' => array()), $this->config->getQueueMaxRetries());
175
  }
176
  else
177
  {
178
- $this->addToQueue('algoliasearch/observer', 'deleteCategoriesStoreIndices', array('store_id' => $store->getId()), $this->config->getQueueMaxRetries());
179
  }
180
  }
181
  }
@@ -200,7 +216,7 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
200
  return $this;
201
  }
202
 
203
- private function _rebuildCategoryIndex($storeId = null, $categoryIds = null)
204
  {
205
  if ($categoryIds == null || count($categoryIds) == 0)
206
  {
@@ -211,11 +227,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
211
  for ($i = 1; $i <= $nb_page; $i++)
212
  {
213
  $data = array('store_id' => $storeId, 'category_ids' => $categoryIds, 'page_size' => $by_page, 'page' => $i);
214
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', $data, $this->config->getQueueMaxRetries());
215
  }
216
  }
217
  else
218
- $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $storeId, 'category_ids' => $categoryIds), $this->config->getQueueMaxRetries());
219
 
220
 
221
  return $this;
@@ -232,11 +248,11 @@ class Algolia_Algoliasearch_Model_Resource_Engine extends Mage_CatalogSearch_Mod
232
  for ($i = 1; $i <= $nb_page; $i++)
233
  {
234
  $data = array('store_id' => $storeId, 'product_ids' => $productIds, 'page_size' => $by_page, 'page' => $i);
235
- $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', $data, $this->config->getQueueMaxRetries());
236
  }
237
  }
238
  else
239
- $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', array('store_id' => $storeId, 'product_ids' => $productIds), $this->config->getQueueMaxRetries());
240
 
241
 
242
  return $this;
25
  $this->suggestion_helper = Mage::helper('algoliasearch/entity_suggestionhelper');
26
  }
27
 
28
+ public function addToQueue($observer, $method, $data, $data_size)
29
  {
30
  if ($this->config->isQueueActive())
31
+ $this->queue->add($observer, $method, $data, $data_size);
32
  else
33
  Mage::getSingleton($observer)->$method(new Varien_Object($data));
34
  }
35
 
36
  public function removeProducts($storeId = null, $product_ids = null)
37
  {
38
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
 
 
 
39
 
40
+ foreach ($ids as $id)
41
  {
42
+ if (is_array($product_ids) == false)
43
+ $product_ids = array($product_ids);
44
+
45
+ $by_page = $this->config->getNumberOfElementByPage();
46
+
47
+ if (is_array($product_ids) && count($product_ids) > $by_page)
48
+ {
49
+ foreach (array_chunk($product_ids, $by_page) as $chunk)
50
+ $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $id, 'product_ids' => $chunk), count($chunk));
51
+ }
52
+ else
53
+ $this->addToQueue('algoliasearch/observer', 'removeProducts', array('store_id' => $id, 'product_ids' => $product_ids), count($product_ids));
54
  }
 
 
55
 
56
  return $this;
57
  }
58
 
59
  public function removeCategories($storeId = null, $category_ids = null)
60
  {
61
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
 
 
 
62
 
63
+ foreach ($ids as $id)
64
  {
65
+ if (is_array($category_ids) == false)
66
+ $category_ids = array($category_ids);
 
 
 
67
 
68
+ $by_page = $this->config->getNumberOfElementByPage();
69
+
70
+ if (is_array($category_ids) && count($category_ids) > $by_page)
71
+ {
72
+ foreach (array_chunk($category_ids, $by_page) as $chunk)
73
+ $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $id, 'category_ids' => $chunk), count($chunk));
74
+ }
75
+ else
76
+ $this->addToQueue('algoliasearch/observer', 'removeCategories', array('store_id' => $id, 'category_ids' => $category_ids), count($category_ids));
77
+
78
+ return $this;
79
+ }
80
  }
81
 
82
  public function rebuildCategoryIndex($storeId = null, $categoryIds = null)
83
  {
84
+ $ids = Algolia_Algoliasearch_Helper_Entity_Helper::getStores($storeId);
85
 
86
+ foreach ($ids as $id)
87
+ {
88
+ $by_page = $this->config->getNumberOfElementByPage();
89
+
90
+ if (is_array($categoryIds) && count($categoryIds) > $by_page) {
91
+ foreach (array_chunk($categoryIds, $by_page) as $chunk) {
92
+ $this->_rebuildCategoryIndex($storeId, $chunk);
93
+ }
94
+ } else {
95
+ $this->_rebuildCategoryIndex($id, $categoryIds);
96
  }
 
 
97
  }
98
+
99
  return $this;
100
  }
101
 
109
  continue;
110
  }
111
 
112
+ $this->addToQueue('algoliasearch/observer', 'rebuildPageIndex', array('store_id' => $store->getId()), 1);
113
  }
114
  }
115
 
123
  continue;
124
  }
125
 
126
+ $this->addToQueue('algoliasearch/observer', 'rebuildAdditionalSectionsIndex', array('store_id' => $store->getId()), 1);
127
  }
128
  }
129
 
144
  for ($i = 1; $i <= $nb_page; $i++)
145
  {
146
  $data = array('store_id' => $store->getId(), 'page_size' => $by_page, 'page' => $i);
147
+ $this->addToQueue('algoliasearch/observer', 'rebuildSuggestionIndex', $data, 1);
148
  }
149
 
150
+ $this->addToQueue('algoliasearch/observer', 'moveStoreSuggestionIndex', array('store_id' => $store->getId()), 1);
151
  }
152
 
153
 
170
  }
171
  else
172
  {
173
+ $this->addToQueue('algoliasearch/observer', 'deleteProductsStoreIndices', array('store_id' => $store->getId()), 1);
174
  }
175
  }
176
  }
187
 
188
  if ($store->getIsActive())
189
  {
190
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $store->getId(), 'category_ids' => array()), 1);
191
  }
192
  else
193
  {
194
+ $this->addToQueue('algoliasearch/observer', 'deleteCategoriesStoreIndices', array('store_id' => $store->getId()), 1);
195
  }
196
  }
197
  }
216
  return $this;
217
  }
218
 
219
+ private function _rebuildCategoryIndex($storeId, $categoryIds = null)
220
  {
221
  if ($categoryIds == null || count($categoryIds) == 0)
222
  {
227
  for ($i = 1; $i <= $nb_page; $i++)
228
  {
229
  $data = array('store_id' => $storeId, 'category_ids' => $categoryIds, 'page_size' => $by_page, 'page' => $i);
230
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', $data, $by_page);
231
  }
232
  }
233
  else
234
+ $this->addToQueue('algoliasearch/observer', 'rebuildCategoryIndex', array('store_id' => $storeId, 'category_ids' => $categoryIds), count($categoryIds));
235
 
236
 
237
  return $this;
248
  for ($i = 1; $i <= $nb_page; $i++)
249
  {
250
  $data = array('store_id' => $storeId, 'product_ids' => $productIds, 'page_size' => $by_page, 'page' => $i);
251
+ $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', $data, $by_page);
252
  }
253
  }
254
  else
255
+ $this->addToQueue('algoliasearch/observer', 'rebuildProductIndex', array('store_id' => $storeId, 'product_ids' => $productIds), count($productIds));
256
 
257
 
258
  return $this;
app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext.php CHANGED
@@ -21,7 +21,7 @@ class Algolia_Algoliasearch_Model_Resource_Fulltext extends Mage_CatalogSearch_M
21
 
22
  public function prepareResult($object, $queryText, $query)
23
  {
24
- if ($this->config->isEnabledFrontEnd(Mage::app()->getStore()->getId()) === false)
25
  return parent::prepareResult($object, $queryText, $query);
26
 
27
  return $this;
21
 
22
  public function prepareResult($object, $queryText, $query)
23
  {
24
+ if (! $this->config->getApplicationID() || ! $this->config->getAPIKey() || $this->config->isEnabledFrontEnd() === false)
25
  return parent::prepareResult($object, $queryText, $query);
26
 
27
  return $this;
app/code/community/Algolia/Algoliasearch/Model/Resource/Fulltext/Collection.php CHANGED
@@ -7,11 +7,13 @@ class Algolia_Algoliasearch_Model_Resource_Fulltext_Collection extends Mage_Cata
7
  */
8
  public function addSearchFilter($query)
9
  {
10
- $storeId = Mage::app()->getStore()->getId();
11
  $config = Mage::helper('algoliasearch/config');
 
12
 
13
- if ($config->isEnabledFrontEnd($storeId) === false)
 
14
  return parent::addSearchFilter($query);
 
15
 
16
  $data = array();
17
 
7
  */
8
  public function addSearchFilter($query)
9
  {
 
10
  $config = Mage::helper('algoliasearch/config');
11
+ $storeId = Mage::app()->getStore()->getId();
12
 
13
+ if (! $config->getApplicationID() || ! $config->getAPIKey() || $config->isEnabledFrontEnd($storeId) === false)
14
+ {
15
  return parent::addSearchFilter($query);
16
+ }
17
 
18
  $data = array();
19
 
app/code/community/Algolia/Algoliasearch/Model/System/Removewords.php CHANGED
@@ -8,10 +8,10 @@ class Algolia_Algoliasearch_Model_System_Removewords
8
  public function toOptionArray()
9
  {
10
  return array(
11
- array('value'=>'None', 'label' => Mage::helper('algoliasearch')->__('None')),
12
  array('value'=>'allOptional', 'label' => Mage::helper('algoliasearch')->__('AllOptional')),
13
- array('value'=>'LastWords', 'label' => Mage::helper('algoliasearch')->__('LastWords')),
14
- array('value'=>'FirstWords', 'label' => Mage::helper('algoliasearch')->__('FirstWords')),
15
  );
16
  }
17
  }
8
  public function toOptionArray()
9
  {
10
  return array(
11
+ array('value'=>'none', 'label' => Mage::helper('algoliasearch')->__('None')),
12
  array('value'=>'allOptional', 'label' => Mage::helper('algoliasearch')->__('AllOptional')),
13
+ array('value'=>'lastWords', 'label' => Mage::helper('algoliasearch')->__('LastWords')),
14
+ array('value'=>'firstWords', 'label' => Mage::helper('algoliasearch')->__('FirstWords')),
15
  );
16
  }
17
  }
app/code/community/Algolia/Algoliasearch/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Algolia_Algoliasearch>
5
- <version>1.4.8</version>
6
  </Algolia_Algoliasearch>
7
  </modules>
8
  <frontend>
@@ -25,16 +25,31 @@
25
  </controller_action_layout_load_before>
26
  </events>
27
  </frontend>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  <global>
29
  <helpers>
30
  <algoliasearch>
31
  <class>Algolia_Algoliasearch_Helper</class>
32
  </algoliasearch>
33
- <catalog>
34
- <rewrite>
35
- <image>Algolia_Algoliasearch_Helper_Image</image>
36
- </rewrite>
37
- </catalog>
38
  </helpers>
39
  <blocks>
40
  <algoliasearch>
@@ -111,21 +126,12 @@
111
  <search_indexer_addsections>
112
  <model>algoliasearch/indexer_algoliaadditionalsections</model>
113
  </search_indexer_addsections>
 
 
 
114
  </indexer>
115
  </index>
116
  </global>
117
- <crontab>
118
- <jobs>
119
- <algoliasearch_run_queue>
120
- <schedule>
121
- <cron_expr>*/5 * * * *</cron_expr>
122
- </schedule>
123
- <run>
124
- <model>algoliasearch/queue::runCron</model>
125
- </run>
126
- </algoliasearch_run_queue>
127
- </jobs>
128
- </crontab>
129
  <default>
130
  <algoliasearch>
131
  <credentials>
@@ -139,46 +145,37 @@
139
  <is_instant_enabled>1</is_instant_enabled>
140
  </credentials>
141
  <products>
142
- <number_product_suggestions>3</number_product_suggestions>
143
  <number_product_results>9</number_product_results>
144
- <number_product_results_backend>9</number_product_results_backend>
145
- <product_additional_attributes>a:13:{s:18:"_1427959997377_377";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960012597_597";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960251221_221";a:4:{s:9:"attribute";s:17:"short_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961262735_735";a:4:{s:9:"attribute";s:10:"categories";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961263735_735";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961264377_377";a:4:{s:9:"attribute";s:12:"meta_keyword";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961289908_908";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961324936_936";a:4:{s:9:"attribute";s:3:"sku";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427962021621_621";a:4:{s:9:"attribute";s:5:"price";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427977839554_554";a:4:{s:9:"attribute";s:11:"ordered_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:18:"_1428566173508_508";a:4:{s:9:"attribute";s:9:"stock_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:17:"_1433929490023_23";a:4:{s:9:"attribute";s:14:"rating_summary";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1436178594492_492";a:4:{s:9:"attribute";s:10:"created_at";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}}</product_additional_attributes>
146
  <custom_ranking_product_attributes>a:1:{s:18:"_1427960305274_274";a:2:{s:9:"attribute";s:11:"ordered_qty";s:5:"order";s:4:"desc";}}</custom_ranking_product_attributes>
147
  <results_limit>1000</results_limit>
 
148
  </products>
149
  <instant>
150
  <replace_categories>1</replace_categories>
151
  <instant_selector>.main</instant_selector>
152
- <facets>a:2:{s:18:"_1432907948596_596";a:4:{s:9:"attribute";s:5:"price";s:4:"type";s:6:"slider";s:10:"other_type";s:0:"";s:5:"label";s:5:"Price";}s:18:"_1432907963376_376";a:4:{s:9:"attribute";s:10:"categories";s:4:"type";s:11:"conjunctive";s:10:"other_type";s:0:"";s:5:"label";s:10:"Categories";}}</facets>
153
  <max_values_per_facet>10</max_values_per_facet>
154
  <sorts>a:3:{s:18:"_1432908018844_844";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:3:"asc";s:5:"label";s:12:"Lowest price";}s:18:"_1432908022539_539";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:4:"desc";s:5:"label";s:13:"Highest price";}s:18:"_1433768597454_454";a:3:{s:9:"attribute";s:10:"created_at";s:4:"sort";s:4:"desc";s:5:"label";s:12:"Newest first";}}</sorts>
155
  <add_to_cart_enable>1</add_to_cart_enable>
156
  </instant>
157
  <autocomplete>
158
- <additional_sections></additional_sections>
 
 
 
 
 
159
  </autocomplete>
160
  <categories>
161
  <number_category_suggestions>5</number_category_suggestions>
162
  <category_additional_attributes2>a:7:{s:18:"_1427960339954_954";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960354437_437";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961004989_989";a:4:{s:9:"attribute";s:11:"description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961205511_511";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216134_134";a:4:{s:9:"attribute";s:13:"meta_keywords";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216916_916";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427977778338_338";a:4:{s:9:"attribute";s:13:"product_count";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}}</category_additional_attributes2>
163
  <custom_ranking_category_attributes>a:1:{s:18:"_1427961035192_192";a:2:{s:9:"attribute";s:13:"product_count";s:5:"order";s:4:"desc";}}</custom_ranking_category_attributes>
164
  </categories>
165
- <pages>
166
- <number_page_suggestions>3</number_page_suggestions>
167
- </pages>
168
- <suggestions>
169
- <number_query_suggestions>0</number_query_suggestions>
170
- <min_popularity>100000</min_popularity>
171
- <min_number_of_results>2</min_number_of_results>
172
- </suggestions>
173
- <relevance>
174
- <remove_words_if_no_result>None</remove_words_if_no_result>
175
- </relevance>
176
  <queue>
177
  <active>0</active>
178
- <retries>3</retries>
179
  <number_of_element_by_page>100</number_of_element_by_page>
180
- <number_of_job_to_run>300</number_of_job_to_run>
181
- <noprocess>0</noprocess>
182
  </queue>
183
  <image>
184
  <width>265</width>
@@ -186,9 +183,11 @@
186
  <type>image</type>
187
  </image>
188
  <advanced>
 
189
  <partial_update>0</partial_update>
190
  <make_seo_request>1</make_seo_request>
191
  <remove_branding>0</remove_branding>
 
192
  </advanced>
193
  <product_map>
194
  <!--
2
  <config>
3
  <modules>
4
  <Algolia_Algoliasearch>
5
+ <version>1.5.0</version>
6
  </Algolia_Algoliasearch>
7
  </modules>
8
  <frontend>
25
  </controller_action_layout_load_before>
26
  </events>
27
  </frontend>
28
+ <adminhtml>
29
+ <layout>
30
+ <updates>
31
+ <algoliasearch>
32
+ <file>algoliasearch.xml</file>
33
+ </algoliasearch>
34
+ </updates>
35
+ </layout>
36
+ <events>
37
+ <controller_action_layout_load_before>
38
+ <observers>
39
+ <algolia_search>
40
+ <type>singleton</type>
41
+ <class>algoliasearch/observer</class>
42
+ <method>addBundleToAdmin</method>
43
+ </algolia_search>
44
+ </observers>
45
+ </controller_action_layout_load_before>
46
+ </events>
47
+ </adminhtml>
48
  <global>
49
  <helpers>
50
  <algoliasearch>
51
  <class>Algolia_Algoliasearch_Helper</class>
52
  </algoliasearch>
 
 
 
 
 
53
  </helpers>
54
  <blocks>
55
  <algoliasearch>
126
  <search_indexer_addsections>
127
  <model>algoliasearch/indexer_algoliaadditionalsections</model>
128
  </search_indexer_addsections>
129
+ <algolia_queue_runner>
130
+ <model>algoliasearch/indexer_algoliaqueuerunner</model>
131
+ </algolia_queue_runner>
132
  </indexer>
133
  </index>
134
  </global>
 
 
 
 
 
 
 
 
 
 
 
 
135
  <default>
136
  <algoliasearch>
137
  <credentials>
145
  <is_instant_enabled>1</is_instant_enabled>
146
  </credentials>
147
  <products>
 
148
  <number_product_results>9</number_product_results>
149
+ <product_additional_attributes>a:10:{s:18:"_1427959997377_377";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960012597_597";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961262735_735";a:4:{s:9:"attribute";s:10:"categories";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1447846016385_385";a:4:{s:9:"attribute";s:5:"color";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961324936_936";a:4:{s:9:"attribute";s:3:"sku";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427962021621_621";a:4:{s:9:"attribute";s:5:"price";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427977839554_554";a:4:{s:9:"attribute";s:11:"ordered_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:18:"_1428566173508_508";a:4:{s:9:"attribute";s:9:"stock_qty";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}s:17:"_1433929490023_23";a:4:{s:9:"attribute";s:14:"rating_summary";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1436178594492_492";a:4:{s:9:"attribute";s:10:"created_at";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"0";s:5:"order";s:7:"ordered";}}</product_additional_attributes>
 
150
  <custom_ranking_product_attributes>a:1:{s:18:"_1427960305274_274";a:2:{s:9:"attribute";s:11:"ordered_qty";s:5:"order";s:4:"desc";}}</custom_ranking_product_attributes>
151
  <results_limit>1000</results_limit>
152
+ <show_suggestions_on_no_result_page>1</show_suggestions_on_no_result_page>
153
  </products>
154
  <instant>
155
  <replace_categories>1</replace_categories>
156
  <instant_selector>.main</instant_selector>
157
+ <facets>a:3:{s:18:"_1432907948596_596";a:3:{s:9:"attribute";s:5:"price";s:4:"type";s:6:"slider";s:5:"label";s:5:"Price";}s:18:"_1432907963376_376";a:3:{s:9:"attribute";s:10:"categories";s:4:"type";s:11:"conjunctive";s:5:"label";s:10:"Categories";}s:17:"_1447846054032_32";a:3:{s:9:"attribute";s:5:"color";s:4:"type";s:11:"disjunctive";s:5:"label";s:6:"Colors";}}</facets>
158
  <max_values_per_facet>10</max_values_per_facet>
159
  <sorts>a:3:{s:18:"_1432908018844_844";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:3:"asc";s:5:"label";s:12:"Lowest price";}s:18:"_1432908022539_539";a:3:{s:9:"attribute";s:5:"price";s:4:"sort";s:4:"desc";s:5:"label";s:13:"Highest price";}s:18:"_1433768597454_454";a:3:{s:9:"attribute";s:10:"created_at";s:4:"sort";s:4:"desc";s:5:"label";s:12:"Newest first";}}</sorts>
160
  <add_to_cart_enable>1</add_to_cart_enable>
161
  </instant>
162
  <autocomplete>
163
+ <nb_of_products_suggestions>6</nb_of_products_suggestions>
164
+ <nb_of_categories_suggestions>2</nb_of_categories_suggestions>
165
+ <nb_of_queries_suggestions>0</nb_of_queries_suggestions>
166
+ <sections>a:1:{s:18:"_1450089283397_397";a:3:{s:4:"name";s:5:"pages";s:5:"label";s:5:"Pages";s:11:"hitsPerPage";s:1:"2";}}</sections>
167
+ <min_popularity>1000</min_popularity>
168
+ <min_number_of_results>2</min_number_of_results>
169
  </autocomplete>
170
  <categories>
171
  <number_category_suggestions>5</number_category_suggestions>
172
  <category_additional_attributes2>a:7:{s:18:"_1427960339954_954";a:4:{s:9:"attribute";s:4:"name";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427960354437_437";a:4:{s:9:"attribute";s:4:"path";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961004989_989";a:4:{s:9:"attribute";s:11:"description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427961205511_511";a:4:{s:9:"attribute";s:10:"meta_title";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216134_134";a:4:{s:9:"attribute";s:13:"meta_keywords";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}s:18:"_1427961216916_916";a:4:{s:9:"attribute";s:16:"meta_description";s:10:"searchable";s:1:"1";s:11:"retrievable";s:1:"1";s:5:"order";s:9:"unordered";}s:18:"_1427977778338_338";a:4:{s:9:"attribute";s:13:"product_count";s:10:"searchable";s:1:"0";s:11:"retrievable";s:1:"1";s:5:"order";s:7:"ordered";}}</category_additional_attributes2>
173
  <custom_ranking_category_attributes>a:1:{s:18:"_1427961035192_192";a:2:{s:9:"attribute";s:13:"product_count";s:5:"order";s:4:"desc";}}</custom_ranking_category_attributes>
174
  </categories>
 
 
 
 
 
 
 
 
 
 
 
175
  <queue>
176
  <active>0</active>
 
177
  <number_of_element_by_page>100</number_of_element_by_page>
178
+ <number_of_job_to_run>10</number_of_job_to_run>
 
179
  </queue>
180
  <image>
181
  <width>265</width>
183
  <type>image</type>
184
  </image>
185
  <advanced>
186
+ <remove_words_if_no_result>allOptional</remove_words_if_no_result>
187
  <partial_update>0</partial_update>
188
  <make_seo_request>1</make_seo_request>
189
  <remove_branding>0</remove_branding>
190
+ <autocomplete_selector>.algolia-search-input</autocomplete_selector>
191
  </advanced>
192
  <product_map>
193
  <!--
app/code/community/Algolia/Algoliasearch/etc/system.xml CHANGED
@@ -4,7 +4,7 @@
4
  <algoliasearch translate="label" module="algoliasearch">
5
  <label>
6
  <![CDATA[
7
- Algolia Search 1.4.8
8
  <style>
9
  .algoliasearch-admin-menu span {
10
  padding-left: 38px !important;
@@ -25,7 +25,6 @@
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
28
- <expanded>1</expanded>
29
  <groups>
30
  <credentials translate="label">
31
  <label>Credentials &amp; Setup</label>
@@ -37,8 +36,23 @@
37
  <expanded>1</expanded>
38
  <comment>
39
  <![CDATA[
40
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=213" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
41
- </font>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  ]]>
43
  </comment>
44
  <fields>
@@ -117,7 +131,7 @@
117
  <show_in_store>1</show_in_store>
118
  <comment>
119
  <![CDATA[
120
- If set to Yes, the seach box will display a search-as-you-type drop-down menu. It requires your theme to expose a <code>top.search</code> template.
121
  ]]>
122
  </comment>
123
  </is_popup_enabled>
@@ -131,91 +145,119 @@
131
  <show_in_store>1</show_in_store>
132
  <comment>
133
  <![CDATA[
134
- If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> template.
135
  ]]>
136
  </comment>
137
  </is_instant_enabled>
138
  </fields>
139
  </credentials>
140
- <products translate="label">
141
- <label>Product Configuration</label>
142
  <frontend_type>text</frontend_type>
143
- <sort_order>30</sort_order>
144
  <show_in_default>1</show_in_default>
145
  <show_in_website>1</show_in_website>
146
  <show_in_store>1</show_in_store>
147
- <expanded>1</expanded>
148
- <comment>
149
- <![CDATA[
150
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=398" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
151
- </font>
152
- ]]>
153
- </comment>
154
  <fields>
155
- <number_product_suggestions translate="label comment">
156
- <label>Number of product suggestions in the dropdown menu</label>
157
  <frontend_type>text</frontend_type>
158
  <validate>validate-digits</validate>
159
- <sort_order>0</sort_order>
160
  <show_in_default>1</show_in_default>
161
  <show_in_website>1</show_in_website>
162
  <show_in_store>1</show_in_store>
163
- <comment>The number of product results displayed in the drop-down menu. Default value is 3. Set the value to 0 if you do not want to display the products section in the menu.</comment>
164
- </number_product_suggestions>
165
- <number_product_results translate="label comment">
166
- <label>Number of products per page in the instant result page</label>
167
  <frontend_type>text</frontend_type>
168
  <validate>validate-digits</validate>
169
- <sort_order>10</sort_order>
170
  <show_in_default>1</show_in_default>
171
  <show_in_website>1</show_in_website>
172
  <show_in_store>1</show_in_store>
173
- <comment>The number of products displayed on the instant search results page. Default value is 9.</comment>
174
- </number_product_results>
175
- <product_additional_attributes translate="label comment">
176
- <label>Attributes</label>
177
- <frontend_model>algoliasearch/system_config_form_field_customsortorderproduct</frontend_model>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
179
- <sort_order>30</sort_order>
180
  <show_in_default>1</show_in_default>
181
  <show_in_website>1</show_in_website>
182
  <show_in_store>1</show_in_store>
 
183
  <comment>
184
  <![CDATA[
185
- Choose here the product attributes your users can search on, the ones you want to use as filters and sorts options and the ones required to display the search results. The order of the searchable attributes matters: a query matching the first searchable attribute of a product will put this product before the others in the results. Chose "Ordered" if you want the position of the matching word(s) inside the attribute to matter. A match at the beginning of an attribute will be considered more important: for the query "iPhone", "iPhone 5s" will be ranked before "case for iPhone".<br />
186
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
187
  ]]>
188
  </comment>
189
- </product_additional_attributes>
190
- <custom_ranking_product_attributes translate="label comment">
191
- <label>Ranking</label>
192
- <frontend_model>algoliasearch/system_config_form_field_customrankingproduct</frontend_model>
193
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
194
- <sort_order>40</sort_order>
195
  <show_in_default>1</show_in_default>
196
  <show_in_website>1</show_in_website>
197
  <show_in_store>1</show_in_store>
198
  <comment>
199
  <![CDATA[
200
- Configure here the attributes that reflect the popularity of your product (number of orders, number of likes, number of views, ...).<br />
201
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the Attributes configuration panel.
202
  ]]>
203
  </comment>
204
- </custom_ranking_product_attributes>
205
  </fields>
206
- </products>
207
  <instant>
208
- <label>Instant Search Results Page Configuration</label>
209
  <frontend_type>text</frontend_type>
210
- <sort_order>31</sort_order>
211
  <show_in_default>1</show_in_default>
212
  <show_in_website>1</show_in_website>
213
  <show_in_store>1</show_in_store>
214
- <expanded>1</expanded>
215
  <comment>
216
  <![CDATA[
217
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=666" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
218
- </font>
219
  ]]>
220
  </comment>
221
  <fields>
@@ -299,213 +341,167 @@
299
  </add_to_cart_enable>
300
  </fields>
301
  </instant>
302
- <categories translate="label">
303
- <label>Category Autocomplete Configuration</label>
304
  <frontend_type>text</frontend_type>
305
  <sort_order>40</sort_order>
306
  <show_in_default>1</show_in_default>
307
  <show_in_website>1</show_in_website>
308
  <show_in_store>1</show_in_store>
309
- <expanded>1</expanded>
310
  <comment>
311
- <![CDATA[
312
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=805" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
313
- </font>
314
  ]]>
315
  </comment>
316
  <fields>
317
- <number_category_suggestions translate="label comment">
318
- <label>Number of category suggestions</label>
319
  <frontend_type>text</frontend_type>
320
  <validate>validate-digits</validate>
321
- <sort_order>0</sort_order>
322
  <show_in_default>1</show_in_default>
323
  <show_in_website>1</show_in_website>
324
  <show_in_store>1</show_in_store>
325
- <comment>The number of category results displayed in the drop-down menu. Default value is 5. Set the value to 0 if you do not want to display the categories section in the menu.</comment>
326
- </number_category_suggestions>
327
- <category_additional_attributes2 translate="label comment">
328
  <label>Attributes</label>
329
- <frontend_model>algoliasearch/system_config_form_field_customsortordercategory</frontend_model>
330
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
331
- <sort_order>10</sort_order>
332
  <show_in_default>1</show_in_default>
333
  <show_in_website>1</show_in_website>
334
  <show_in_store>1</show_in_store>
335
  <comment>
336
  <![CDATA[
337
- Configure here the category attributes your users can search on. The order of these attributes matters: the higher in the list, the more important to rank the results.<br />
338
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
 
339
  ]]>
340
  </comment>
341
- </category_additional_attributes2>
342
- <custom_ranking_category_attributes translate="label comment">
343
  <label>Ranking</label>
344
- <frontend_model>algoliasearch/system_config_form_field_customrankingcategory</frontend_model>
345
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
346
- <sort_order>30</sort_order>
347
  <show_in_default>1</show_in_default>
348
  <show_in_website>1</show_in_website>
349
  <show_in_store>1</show_in_store>
350
  <comment>
351
  <![CDATA[
352
- Choose here the attributes that reflect the popularity of your categories (number of products, total number of sales of the category,etc.).<br />
353
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been included before in the Attributes chart.
354
  ]]>
355
  </comment>
356
- </custom_ranking_category_attributes>
357
- </fields>
358
- </categories>
359
- <pages>
360
- <label>Page Autocomplete Configuration</label>
361
- <frontend_type>text</frontend_type>
362
- <sort_order>45</sort_order>
363
- <show_in_default>1</show_in_default>
364
- <show_in_website>1</show_in_website>
365
- <show_in_store>1</show_in_store>
366
- <expanded>1</expanded>
367
- <comment>
368
- <![CDATA[
369
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=841" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
370
- </font>
371
- ]]>
372
- </comment>
373
- <fields>
374
- <number_page_suggestions translate="label comment">
375
- <label>Number of page suggestions</label>
376
- <frontend_type>text</frontend_type>
377
- <validate>validate-digits</validate>
378
- <sort_order>0</sort_order>
379
- <show_in_default>1</show_in_default>
380
- <show_in_website>1</show_in_website>
381
- <show_in_store>1</show_in_store>
382
- <comment>The number of page suggestions displayed in the drop-down menu. Default value is 3. Set the value to 0 if you do not want to display the pages section in the menu.</comment>
383
- </number_page_suggestions>
384
- <excluded_pages translate="label comment">
385
- <label>Excluded Pages</label>
386
- <frontend_model>algoliasearch/system_config_form_field_custompages</frontend_model>
387
- <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
388
- <sort_order>10</sort_order>
389
  <show_in_default>1</show_in_default>
390
  <show_in_website>1</show_in_website>
391
  <show_in_store>1</show_in_store>
392
  <comment>
393
  <![CDATA[
394
- Configure here the pages you don't want to search in.<br /n>
395
- <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search Pages index whenever you modify this setting.
396
  ]]>
397
  </comment>
398
- </excluded_pages>
399
  </fields>
400
- </pages>
401
- <suggestions>
402
- <label>Query Suggestions Autocomplete Configuration</label>
403
  <frontend_type>text</frontend_type>
404
- <sort_order>46</sort_order>
405
  <show_in_default>1</show_in_default>
406
  <show_in_website>1</show_in_website>
407
  <show_in_store>1</show_in_store>
408
- <expanded>1</expanded>
409
  <comment>
410
  <![CDATA[
411
- <font size="2"> Watch the <a href="https://youtu.be/DUuv9ALS5cM?t=881" target="_blank"><font color="#0066cc">Tutorial</font></a><br /n>
412
- </font>
413
  ]]>
414
  </comment>
415
  <fields>
416
- <number_query_suggestions translate="label comment">
417
- <label>Number of query suggestions</label>
418
- <frontend_type>text</frontend_type>
419
- <validate>validate-digits</validate>
420
- <sort_order>0</sort_order>
421
- <show_in_default>1</show_in_default>
422
- <show_in_website>1</show_in_website>
423
- <show_in_store>1</show_in_store>
424
- <comment>The number of query suggestions displayed in the drop-down menu. Default value is 0.</comment>
425
- </number_query_suggestions>
426
- <min_popularity translate="label comment">
427
- <label>Min popularity</label>
428
- <frontend_type>text</frontend_type>
429
- <validate>validate-digits</validate>
430
  <sort_order>10</sort_order>
431
  <show_in_default>1</show_in_default>
432
  <show_in_website>1</show_in_website>
433
  <show_in_store>1</show_in_store>
434
- <comment>The min number of times a query has been performed in order to be suggested. Default value is 100000.</comment>
435
- </min_popularity>
436
- <min_number_of_results translate="label comment">
437
- <label>Min number of products</label>
438
- <frontend_type>text</frontend_type>
439
- <validate>validate-digits</validate>
440
- <sort_order>20</sort_order>
441
- <show_in_default>1</show_in_default>
442
- <show_in_website>1</show_in_website>
443
- <show_in_store>1</show_in_store>
444
  <comment>
445
  <![CDATA[
446
- The min number of results a query needs to return to be suggested. Default value is 2. <br /n>
447
- <span style="color: #D83900">&#9888;</span> Updating your suggested queries requires that you reindex your Algolia Search Suggestions index.
448
  ]]>
449
  </comment>
450
- </min_number_of_results>
451
- </fields>
452
- </suggestions>
453
- <autocomplete>
454
- <label>Additional Autocomplete Sections Configuration</label>
455
- <frontend_type>text</frontend_type>
456
- <sort_order>47</sort_order>
457
- <show_in_default>1</show_in_default>
458
- <show_in_website>1</show_in_website>
459
- <show_in_store>1</show_in_store>
460
- <expanded>1</expanded>
461
- <fields>
462
- <additional_sections>
463
- <label>Additionnal Sections</label>
464
- <frontend_model>algoliasearch/system_config_form_field_additionalsections</frontend_model>
465
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
466
  <sort_order>30</sort_order>
467
  <show_in_default>1</show_in_default>
468
  <show_in_website>1</show_in_website>
469
  <show_in_store>1</show_in_store>
470
- <depends><active>1</active></depends>
471
  <comment>
472
  <![CDATA[
473
- Configure here the additional auto-completion menu sections you want include in the dropdown menu (Ex. Manufacturer).<br />
474
- <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the <strong>Attributes Configuration</strong> panel and configured as a facet in the <strong>Instant Search Results Page Configuration</strong> panel to be able to refine on the specific attribute.
475
  ]]>
476
  </comment>
477
- </additional_sections>
478
  </fields>
479
- </autocomplete>
480
- <relevance translate="label">
481
- <label>Query Expansion Configuration</label>
 
482
  <frontend_type>text</frontend_type>
483
- <expanded>1</expanded>
484
- <sort_order>50</sort_order>
485
  <show_in_default>1</show_in_default>
486
  <show_in_website>1</show_in_website>
487
  <show_in_store>1</show_in_store>
488
  <fields>
489
- <remove_words_if_no_result translate="label comment">
490
- <label>Remove Words If No Result?</label>
491
- <frontend_type>select</frontend_type>
492
- <source_model>algoliasearch/system_removewords</source_model>
493
  <sort_order>10</sort_order>
494
  <show_in_default>1</show_in_default>
495
  <show_in_website>1</show_in_website>
496
  <show_in_store>1</show_in_store>
497
- <comment><![CDATA[Optional property to avoid empty result pages.<br/>
498
- By default, Algolia performs "AND" queries, which can lead to no results pages when queries are too long or too detailed. To avoid this, you can select among the following options:<br/>
499
- LastWords: when a query does not return any result, the last word will be considered as optional and the query will be automatically performed again (the process is repeated with the n-1 word, n-2 word, ... until there is results).<br/>
500
- FirstWords: when a query does not return any result, the first word will be considered as optional and the query will be automatically performed again (the process is repeated with the second word, third word, ... until there is results).<br/>
501
- allOptional: when a query does not return any result, all words will be optional.<br/>
502
- None: No specific processing is done when a query does not return any result. <br/>]]></comment>
503
- </remove_words_if_no_result>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
504
  </fields>
505
- </relevance>
506
  <queue translate="label">
507
- <label>Queue Configuration</label>
508
- <expanded>1</expanded>
509
  <frontend_type>text</frontend_type>
510
  <sort_order>70</sort_order>
511
  <show_in_default>1</show_in_default>
@@ -522,31 +518,24 @@
522
  <show_in_store>1</show_in_store>
523
  <comment>
524
  <![CDATA[
525
- If enabled, all indexing operations (add, remove & update operations) will be done asynchronously using the CRON mechanism.<br />
 
 
 
 
526
  <span style="color: #D83900">&#9888;</span> Enabling this option is recommended in production or if your store has a lot of products.
527
  ]]>
528
-
529
  </comment>
530
  </active>
531
- <retries translate="label comment">
532
- <label>Max Retries</label>
533
- <frontend_type>text</frontend_type>
534
- <sort_order>20</sort_order>
535
- <show_in_default>1</show_in_default>
536
- <show_in_website>1</show_in_website>
537
- <show_in_store>1</show_in_store>
538
- <comment>Number of retries before giving up on unexpected errors.</comment>
539
- <depends><active>1</active></depends>
540
- </retries>
541
  <number_of_element_by_page translate="label comment">
542
- <label>Max number of products by indexing job</label>
543
  <frontend_type>text</frontend_type>
544
  <validate>validate-digits</validate>
545
  <sort_order>30</sort_order>
546
  <show_in_default>1</show_in_default>
547
  <show_in_website>1</show_in_website>
548
  <show_in_store>1</show_in_store>
549
- <comment>The max number of products by indexing job. Default value is 100.</comment>
550
  </number_of_element_by_page>
551
  <number_of_job_to_run translate="label comment">
552
  <label>Number of jobs to run each time the cron is run</label>
@@ -556,72 +545,42 @@
556
  <show_in_default>1</show_in_default>
557
  <show_in_website>1</show_in_website>
558
  <show_in_store>1</show_in_store>
559
- <comment>Number of jobs to run each time the cron is run. Default value is 300.</comment>
 
 
 
 
 
 
 
560
  <depends><active>1</active></depends>
561
  </number_of_job_to_run>
562
- <noprocess>
563
- <label>Disable indexing</label>
564
- <frontend_type>select</frontend_type>
565
- <source_model>adminhtml/system_config_source_yesno</source_model>
566
- <sort_order>50</sort_order>
567
- <show_in_default>1</show_in_default>
568
- <show_in_website>1</show_in_website>
569
- <show_in_store>1</show_in_store>
570
- <comment>Job will stack onto the queue but no indexing will be done. Default value is false.</comment>
571
- <depends><active>1</active></depends>
572
- </noprocess>
573
  </fields>
574
  </queue>
575
- <image translate="label">
576
- <label>Image Configuration</label>
577
- <expanded>1</expanded>
578
  <frontend_type>text</frontend_type>
579
- <sort_order>80</sort_order>
580
  <show_in_default>1</show_in_default>
581
  <show_in_website>1</show_in_website>
582
  <show_in_store>1</show_in_store>
583
  <fields>
584
- <width translate="label comment">
585
- <label>Width</label>
586
- <frontend_type>text</frontend_type>
587
- <validate>validate-digits</validate>
588
- <sort_order>10</sort_order>
589
- <show_in_default>1</show_in_default>
590
- <show_in_website>1</show_in_website>
591
- <show_in_store>1</show_in_store>
592
- </width>
593
- <height translate="label comment">
594
- <label>Height</label>
595
- <frontend_type>text</frontend_type>
596
- <validate>validate-digits</validate>
597
- <sort_order>10</sort_order>
598
- <show_in_default>1</show_in_default>
599
- <show_in_website>1</show_in_website>
600
- <show_in_store>1</show_in_store>
601
- <comment><![CDATA[You can specify the size of the images used at the Search Results Page.<br />
602
- If your images are already present in some size, eg. 265x265, Algolia's index job may not have to resize those, potentially saving time and resources.]]></comment>
603
- </height>
604
- <type translate="label comment">
605
- <label>Type</label>
606
  <frontend_type>select</frontend_type>
607
- <source_model>algoliasearch/system_imagetype</source_model>
608
- <sort_order>20</sort_order>
609
  <show_in_default>1</show_in_default>
610
  <show_in_website>1</show_in_website>
611
  <show_in_store>1</show_in_store>
612
- <comment>The image used at the Search Results Page.</comment>
613
- </type>
614
- </fields>
615
- </image>
616
- <advanced translate="label">
617
- <label>Advanced Configuration</label>
618
- <expanded>0</expanded>
619
- <frontend_type>text</frontend_type>
620
- <sort_order>90</sort_order>
621
- <show_in_default>1</show_in_default>
622
- <show_in_website>1</show_in_website>
623
- <show_in_store>1</show_in_store>
624
- <fields>
625
  <partial_update translate="label">
626
  <label>Partial Updates</label>
627
  <frontend_type>select</frontend_type>
@@ -670,6 +629,15 @@
670
  <show_in_store>1</show_in_store>
671
  <comment>Choose here if the algolia logo is added to the drop-down template.</comment>
672
  </remove_branding>
 
 
 
 
 
 
 
 
 
673
  </fields>
674
  </advanced>
675
  </groups>
4
  <algoliasearch translate="label" module="algoliasearch">
5
  <label>
6
  <![CDATA[
7
+ Algolia Search 1.5.0
8
  <style>
9
  .algoliasearch-admin-menu span {
10
  padding-left: 38px !important;
25
  <show_in_default>1</show_in_default>
26
  <show_in_website>1</show_in_website>
27
  <show_in_store>1</show_in_store>
 
28
  <groups>
29
  <credentials translate="label">
30
  <label>Credentials &amp; Setup</label>
36
  <expanded>1</expanded>
37
  <comment>
38
  <![CDATA[
39
+ <table>
40
+ <tr>
41
+ <td>Documentation:</td>
42
+ <td><a target="_BLANK" href="https://community.algolia.com/magento/documentation">https://community.algolia.com/magento/documentation</a></td>
43
+ </tr>
44
+ <tr>
45
+ <td>FAQ: </td>
46
+ <td><a target="_BLANK" href="https://www.algolia.com/doc/faq">https://www.algolia.com/doc/faq</a></td>
47
+ </tr>
48
+ <tr>
49
+ <td>Issues: </td>
50
+ <td><a target="_BLANK" href="https://github.com/algolia/algoliasearch-magento/issues">https://github.com/algoliasearch-magento/issues</a></td>
51
+ </tr>
52
+ </table>
53
+ <br>
54
+ <hr>
55
+ <br>
56
  ]]>
57
  </comment>
58
  <fields>
131
  <show_in_store>1</show_in_store>
132
  <comment>
133
  <![CDATA[
134
+ If set to Yes, the seach box will display a search-as-you-type drop-down menu. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
135
  ]]>
136
  </comment>
137
  </is_popup_enabled>
145
  <show_in_store>1</show_in_store>
146
  <comment>
147
  <![CDATA[
148
+ If set to Yes, the products inside the results pages will be searchable the refined results updated as-you-type. It requires your theme to expose a <code>top.search</code> and <code>content</code> block.
149
  ]]>
150
  </comment>
151
  </is_instant_enabled>
152
  </fields>
153
  </credentials>
154
+ <autocomplete>
155
+ <label>Autocomplete</label>
156
  <frontend_type>text</frontend_type>
157
+ <sort_order>20</sort_order>
158
  <show_in_default>1</show_in_default>
159
  <show_in_website>1</show_in_website>
160
  <show_in_store>1</show_in_store>
161
+ <expanded>0</expanded>
 
 
 
 
 
 
162
  <fields>
163
+ <nb_of_products_suggestions translate="label comment">
164
+ <label>Number of products</label>
165
  <frontend_type>text</frontend_type>
166
  <validate>validate-digits</validate>
167
+ <sort_order>1</sort_order>
168
  <show_in_default>1</show_in_default>
169
  <show_in_website>1</show_in_website>
170
  <show_in_store>1</show_in_store>
171
+ <comment>The number of products (>=1) suggested in the autocomplete dropdown. Default value is 6</comment>
172
+ </nb_of_products_suggestions>
173
+ <nb_of_categories_suggestions translate="label comment">
174
+ <label>Number of categories</label>
175
  <frontend_type>text</frontend_type>
176
  <validate>validate-digits</validate>
177
+ <sort_order>2</sort_order>
178
  <show_in_default>1</show_in_default>
179
  <show_in_website>1</show_in_website>
180
  <show_in_store>1</show_in_store>
181
+ <comment>The number of categories (>=1) suggested in the autocomplete dropdown. Default value is 2</comment>
182
+ </nb_of_categories_suggestions>
183
+ <nb_of_queries_suggestions>
184
+ <label>Number of queries</label>
185
+ <frontend_type>text</frontend_type>
186
+ <validate>validate-digits</validate>
187
+ <sort_order>3</sort_order>
188
+ <show_in_default>1</show_in_default>
189
+ <show_in_website>1</show_in_website>
190
+ <show_in_store>1</show_in_store>
191
+ <comment>The number of queries suggestions (0 to disabled it) suggested in the autocomplete dropdown. Default value is 0</comment>
192
+ </nb_of_queries_suggestions>
193
+ <min_popularity translate="label comment">
194
+ <label>Min query popularity</label>
195
+ <frontend_type>text</frontend_type>
196
+ <validate>validate-digits</validate>
197
+ <sort_order>4</sort_order>
198
+ <show_in_default>1</show_in_default>
199
+ <show_in_website>1</show_in_website>
200
+ <show_in_store>1</show_in_store>
201
+ <comment>The min number of times a query has been performed in order to be suggested. Default value is 1000.</comment>
202
+ </min_popularity>
203
+ <min_number_of_results translate="label comment">
204
+ <label>Min number of products per query</label>
205
+ <frontend_type>text</frontend_type>
206
+ <validate>validate-digits</validate>
207
+ <sort_order>5</sort_order>
208
+ <show_in_default>1</show_in_default>
209
+ <show_in_website>1</show_in_website>
210
+ <show_in_store>1</show_in_store>
211
+ <comment>
212
+ <![CDATA[
213
+ The min number of results a query needs to return to be suggested. Default value is 2. <br /n>
214
+ ]]>
215
+ </comment>
216
+ </min_number_of_results>
217
+ <sections>
218
+ <label>Additional Sections</label>
219
+ <frontend_model>algoliasearch/system_config_form_field_sections</frontend_model>
220
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
221
+ <sort_order>10</sort_order>
222
  <show_in_default>1</show_in_default>
223
  <show_in_website>1</show_in_website>
224
  <show_in_store>1</show_in_store>
225
+ <depends><active>1</active></depends>
226
  <comment>
227
  <![CDATA[
228
+ Configure here the additional auto-completion menu sections you want include in the dropdown menu (Ex. Suggestions, Pages, Manufacturer, Colors).<br /><br>
229
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the <strong>Attributes Configuration</strong> panel and configured as a facet in the <strong>Instant Search Results Page Configuration</strong> panel to be able to refine on the specific attribute.
230
  ]]>
231
  </comment>
232
+ </sections>
233
+ <excluded_pages translate="label comment">
234
+ <label>Excluded Pages</label>
235
+ <frontend_model>algoliasearch/system_config_form_field_custompages</frontend_model>
236
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
237
+ <sort_order>20</sort_order>
238
  <show_in_default>1</show_in_default>
239
  <show_in_website>1</show_in_website>
240
  <show_in_store>1</show_in_store>
241
  <comment>
242
  <![CDATA[
243
+ Configure here the pages you don't want to search in.<br><br>
244
+ <span style="font-size: 20px; color: #D83900">&#9888;</span> Do not forget to trigger the Algolia Search indexers whenever you modify those settings.
245
  ]]>
246
  </comment>
247
+ </excluded_pages>
248
  </fields>
249
+ </autocomplete>
250
  <instant>
251
+ <label>Instant Search Results Page</label>
252
  <frontend_type>text</frontend_type>
253
+ <sort_order>30</sort_order>
254
  <show_in_default>1</show_in_default>
255
  <show_in_website>1</show_in_website>
256
  <show_in_store>1</show_in_store>
257
+ <expanded>0</expanded>
258
  <comment>
259
  <![CDATA[
260
+
 
261
  ]]>
262
  </comment>
263
  <fields>
341
  </add_to_cart_enable>
342
  </fields>
343
  </instant>
344
+ <products translate="label">
345
+ <label>Products</label>
346
  <frontend_type>text</frontend_type>
347
  <sort_order>40</sort_order>
348
  <show_in_default>1</show_in_default>
349
  <show_in_website>1</show_in_website>
350
  <show_in_store>1</show_in_store>
351
+ <expanded>0</expanded>
352
  <comment>
353
+ <![CDATA[
354
+
 
355
  ]]>
356
  </comment>
357
  <fields>
358
+ <number_product_results translate="label comment">
359
+ <label>Number of products per page in the instant result page</label>
360
  <frontend_type>text</frontend_type>
361
  <validate>validate-digits</validate>
362
+ <sort_order>10</sort_order>
363
  <show_in_default>1</show_in_default>
364
  <show_in_website>1</show_in_website>
365
  <show_in_store>1</show_in_store>
366
+ <comment>The number of products displayed on the instant search results page. Default value is 9.</comment>
367
+ </number_product_results>
368
+ <product_additional_attributes translate="label comment">
369
  <label>Attributes</label>
370
+ <frontend_model>algoliasearch/system_config_form_field_customsortorderproduct</frontend_model>
371
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
372
+ <sort_order>30</sort_order>
373
  <show_in_default>1</show_in_default>
374
  <show_in_website>1</show_in_website>
375
  <show_in_store>1</show_in_store>
376
  <comment>
377
  <![CDATA[
378
+ Choose here the product attributes your users can search on, the ones you want to use as filters and sorts options and the ones required to display the search results.<br><br>
379
+ The order of the searchable attributes matters: a query matching the first searchable attribute of a product will put this product before the others in the results. Chose "Ordered" if you want the position of the matching word(s) inside the attribute to matter. A match at the beginning of an attribute will be considered more important: for the query "iPhone", "iPhone 5s" will be ranked before "case for iPhone".<br />
380
+ <br><span style="font-size: 20px; color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
381
  ]]>
382
  </comment>
383
+ </product_additional_attributes>
384
+ <custom_ranking_product_attributes translate="label comment">
385
  <label>Ranking</label>
386
+ <frontend_model>algoliasearch/system_config_form_field_customrankingproduct</frontend_model>
387
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
388
+ <sort_order>40</sort_order>
389
  <show_in_default>1</show_in_default>
390
  <show_in_website>1</show_in_website>
391
  <show_in_store>1</show_in_store>
392
  <comment>
393
  <![CDATA[
394
+ Configure here the attributes that reflect the popularity of your product (number of orders, number of likes, number of views, ...).<br />
395
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been initially included in the Attributes configuration panel.
396
  ]]>
397
  </comment>
398
+ </custom_ranking_product_attributes>
399
+ <show_suggestions_on_no_result_page translate="label comment">
400
+ <label>Show most popular queries suggestions when there are no results</label>
401
+ <frontend_type>select</frontend_type>
402
+ <source_model>adminhtml/system_config_source_yesno</source_model>
403
+ <sort_order>50</sort_order>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
404
  <show_in_default>1</show_in_default>
405
  <show_in_website>1</show_in_website>
406
  <show_in_store>1</show_in_store>
407
  <comment>
408
  <![CDATA[
409
+ Choose here if you want to show most popular queries suggestions when there are no results/
 
410
  ]]>
411
  </comment>
412
+ </show_suggestions_on_no_result_page>
413
  </fields>
414
+ </products>
415
+ <categories translate="label">
416
+ <label>Categories</label>
417
  <frontend_type>text</frontend_type>
418
+ <sort_order>50</sort_order>
419
  <show_in_default>1</show_in_default>
420
  <show_in_website>1</show_in_website>
421
  <show_in_store>1</show_in_store>
422
+ <expanded>0</expanded>
423
  <comment>
424
  <![CDATA[
425
+
 
426
  ]]>
427
  </comment>
428
  <fields>
429
+ <category_additional_attributes2 translate="label comment">
430
+ <label>Attributes</label>
431
+ <frontend_model>algoliasearch/system_config_form_field_customsortordercategory</frontend_model>
432
+ <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
 
 
 
 
 
 
 
 
 
 
433
  <sort_order>10</sort_order>
434
  <show_in_default>1</show_in_default>
435
  <show_in_website>1</show_in_website>
436
  <show_in_store>1</show_in_store>
 
 
 
 
 
 
 
 
 
 
437
  <comment>
438
  <![CDATA[
439
+ Configure here the category attributes your users can search on. The order of these attributes matters: the higher in the list, the more important to rank the results.<br />
440
+ <span style="color: #D83900">&#9888;</span> Do not forget to reindex your Algolia Search index after you've modified this panel.
441
  ]]>
442
  </comment>
443
+ </category_additional_attributes2>
444
+ <custom_ranking_category_attributes translate="label comment">
445
+ <label>Ranking</label>
446
+ <frontend_model>algoliasearch/system_config_form_field_customrankingcategory</frontend_model>
 
 
 
 
 
 
 
 
 
 
 
447
  <backend_model>adminhtml/system_config_backend_serialized_array</backend_model>
448
  <sort_order>30</sort_order>
449
  <show_in_default>1</show_in_default>
450
  <show_in_website>1</show_in_website>
451
  <show_in_store>1</show_in_store>
 
452
  <comment>
453
  <![CDATA[
454
+ Choose here the attributes that reflect the popularity of your categories (number of products, total number of sales of the category,etc.).<br />
455
+ <span style="color: #D83900">&#9888;</span> All attributes used here must have been included before in the Attributes chart.
456
  ]]>
457
  </comment>
458
+ </custom_ranking_category_attributes>
459
  </fields>
460
+ </categories>
461
+ <image translate="label">
462
+ <label>Images</label>
463
+ <expanded>0</expanded>
464
  <frontend_type>text</frontend_type>
465
+ <sort_order>60</sort_order>
 
466
  <show_in_default>1</show_in_default>
467
  <show_in_website>1</show_in_website>
468
  <show_in_store>1</show_in_store>
469
  <fields>
470
+ <width translate="label comment">
471
+ <label>Width</label>
472
+ <frontend_type>text</frontend_type>
473
+ <validate>validate-digits</validate>
474
  <sort_order>10</sort_order>
475
  <show_in_default>1</show_in_default>
476
  <show_in_website>1</show_in_website>
477
  <show_in_store>1</show_in_store>
478
+ </width>
479
+ <height translate="label comment">
480
+ <label>Height</label>
481
+ <frontend_type>text</frontend_type>
482
+ <validate>validate-digits</validate>
483
+ <sort_order>10</sort_order>
484
+ <show_in_default>1</show_in_default>
485
+ <show_in_website>1</show_in_website>
486
+ <show_in_store>1</show_in_store>
487
+ <comment><![CDATA[You can specify the size of the images used at the Search Results Page.<br />
488
+ If your images are already present in some size, eg. 265x265, Algolia's index job may not have to resize those, potentially saving time and resources.]]></comment>
489
+ </height>
490
+ <type translate="label comment">
491
+ <label>Type</label>
492
+ <frontend_type>select</frontend_type>
493
+ <source_model>algoliasearch/system_imagetype</source_model>
494
+ <sort_order>20</sort_order>
495
+ <show_in_default>1</show_in_default>
496
+ <show_in_website>1</show_in_website>
497
+ <show_in_store>1</show_in_store>
498
+ <comment>The image used at the Search Results Page.</comment>
499
+ </type>
500
  </fields>
501
+ </image>
502
  <queue translate="label">
503
+ <label>Indexing Queue / Cron</label>
504
+ <expanded>0</expanded>
505
  <frontend_type>text</frontend_type>
506
  <sort_order>70</sort_order>
507
  <show_in_default>1</show_in_default>
518
  <show_in_store>1</show_in_store>
519
  <comment>
520
  <![CDATA[
521
+ If enabled, all inxdexing operations (add, remove & update operations) will be done asynchronously using the CRON mechanism.<br />
522
+ <br>
523
+ To schedule the run you need to add this in your crontab:<br>
524
+ */5 * * * * php -f /absolute/path/to/magento/shell/indexer.php -- -reindex algolia_queue_runner
525
+ <br><br>
526
  <span style="color: #D83900">&#9888;</span> Enabling this option is recommended in production or if your store has a lot of products.
527
  ]]>
 
528
  </comment>
529
  </active>
 
 
 
 
 
 
 
 
 
 
530
  <number_of_element_by_page translate="label comment">
531
+ <label>Max number of element per indexing job</label>
532
  <frontend_type>text</frontend_type>
533
  <validate>validate-digits</validate>
534
  <sort_order>30</sort_order>
535
  <show_in_default>1</show_in_default>
536
  <show_in_website>1</show_in_website>
537
  <show_in_store>1</show_in_store>
538
+ <comment>The max number of element by indexing job. Default value is 100.</comment>
539
  </number_of_element_by_page>
540
  <number_of_job_to_run translate="label comment">
541
  <label>Number of jobs to run each time the cron is run</label>
545
  <show_in_default>1</show_in_default>
546
  <show_in_website>1</show_in_website>
547
  <show_in_store>1</show_in_store>
548
+ <comment>
549
+ <![CDATA[
550
+ Number of jobs to run each time the cron is run. Default value is 10.
551
+ <br><br>
552
+ <span style="font-size: 20px; color: #D83900">&#9888;</span> Eacb time the cron runs it will process ("Max number of element per indexing job" * "Number of jobs to run each time the cron is run")
553
+ products.
554
+ ]]>
555
+ </comment>
556
  <depends><active>1</active></depends>
557
  </number_of_job_to_run>
 
 
 
 
 
 
 
 
 
 
 
558
  </fields>
559
  </queue>
560
+ <advanced translate="label">
561
+ <label>Advanced</label>
562
+ <expanded>0</expanded>
563
  <frontend_type>text</frontend_type>
564
+ <sort_order>90</sort_order>
565
  <show_in_default>1</show_in_default>
566
  <show_in_website>1</show_in_website>
567
  <show_in_store>1</show_in_store>
568
  <fields>
569
+ <remove_words_if_no_result translate="label comment">
570
+ <label>Remove Words If No Result?</label>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
571
  <frontend_type>select</frontend_type>
572
+ <source_model>algoliasearch/system_removewords</source_model>
573
+ <sort_order>1</sort_order>
574
  <show_in_default>1</show_in_default>
575
  <show_in_website>1</show_in_website>
576
  <show_in_store>1</show_in_store>
577
+ <comment><![CDATA[Optional property to avoid empty result pages.<br/>
578
+ By default, Algolia performs "AND" queries, which can lead to no results pages when queries are too long or too detailed. To avoid this, you can select among the following options:<br/>
579
+ LastWords: when a query does not return any result, the last word will be considered as optional and the query will be automatically performed again (the process is repeated with the n-1 word, n-2 word, ... until there is results).<br/>
580
+ FirstWords: when a query does not return any result, the first word will be considered as optional and the query will be automatically performed again (the process is repeated with the second word, third word, ... until there is results).<br/>
581
+ allOptional: when a query does not return any result, all words will be optional.<br/>
582
+ None: No specific processing is done when a query does not return any result. <br/>]]></comment>
583
+ </remove_words_if_no_result>
 
 
 
 
 
 
584
  <partial_update translate="label">
585
  <label>Partial Updates</label>
586
  <frontend_type>select</frontend_type>
629
  <show_in_store>1</show_in_store>
630
  <comment>Choose here if the algolia logo is added to the drop-down template.</comment>
631
  </remove_branding>
632
+ <autocomplete_selector translate="label comment">
633
+ <label>Search input DOM Selector</label>
634
+ <frontend_type>text</frontend_type>
635
+ <sort_order>50</sort_order>
636
+ <show_in_default>1</show_in_default>
637
+ <show_in_website>1</show_in_website>
638
+ <show_in_store>1</show_in_store>
639
+ <comment>If you don't have the top.search block you can specify the selector of your search input here to use it. Default value is .algolia-search-input</comment>
640
+ </autocomplete_selector>
641
  </fields>
642
  </advanced>
643
  </groups>
app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/{mysql4-upgrade-0.1.0-1.4.7.php → mysql4-upgrade-0.1.0-1.4.8.php} RENAMED
File without changes
app/code/community/Algolia/Algoliasearch/sql/algoliasearch_setup/mysql4-upgrade-1.4.8-1.5.0.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this; /** @var $installer Mage_Core_Model_Resource_Setup */
4
+
5
+ $installer->startSetup();
6
+
7
+ /** Need a truncate since now everything is json_encoded and not serialized */
8
+ $installer->run("TRUNCATE TABLE `{$installer->getTable('algoliasearch/queue')}`");
9
+ $installer->run("ALTER TABLE `{$installer->getTable('algoliasearch/queue')}` ADD data_size INT(11);");
10
+
11
+ $index_prefix = Mage::getConfig()->getTablePrefix();
12
+ $installer->run("DELETE FROM `".$index_prefix."core_config_data` WHERE `path` LIKE '%algolia%'");
13
+
14
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/algoliasearch.xml ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <algolia_bundle_handle>
4
+ <reference name="before_body_end">
5
+ <block type="core/template" template="algoliasearch/adminjs.phtml"/>
6
+ </reference>
7
+ </algolia_bundle_handle>
8
+ </layout>
app/design/adminhtml/default/default/template/algoliasearch/adminjs.phtml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/algoliaAdminBundle.min.js"></script>
2
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/admin_scripts.js"></script>
3
+ <script>
4
+ document.addEventListener("DOMContentLoaded", function(event) {
5
+ algoliaAdminBundle.$(function ($) {
6
+ $('p.note').css('width', '100%');
7
+ });
8
+ });
9
+ </script>
app/design/frontend/base/default/layout/algoliasearch.xml CHANGED
@@ -2,12 +2,35 @@
2
  <layout>
3
  <algolia_search_handle>
4
  <reference name="head">
5
- <action method="addCss"><stylesheet>algoliasearch/bundle.css</stylesheet></action>
6
  <action method="addCss"><stylesheet>algoliasearch/algoliasearch.css</stylesheet></action>
7
- <action method="addJs"><script>algoliasearch/bundle.min.js</script></action>
 
 
 
 
 
 
 
 
 
 
8
  </reference>
 
 
 
 
 
 
 
 
 
9
  <reference name="top.search">
10
  <action method="setTemplate"><template>algoliasearch/topsearch.phtml</template></action>
11
  </reference>
12
- </algolia_search_handle>
 
 
 
 
 
13
  </layout>
2
  <layout>
3
  <algolia_search_handle>
4
  <reference name="head">
 
5
  <action method="addCss"><stylesheet>algoliasearch/algoliasearch.css</stylesheet></action>
6
+ <block type="core/text" name="algolia-polyfill">
7
+ <action method="setText">
8
+ <text>
9
+ <![CDATA[<meta http-equiv="X-UA-Compatible" content="IE=Edge">
10
+ <!--[if lte IE 9]>
11
+ <script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>
12
+ <![endif]-->]]>
13
+ </text>
14
+ </action>
15
+ </block>
16
+ <block type="core/template" template="algoliasearch/beforetopsearch.phtml"/>
17
  </reference>
18
+ <reference name="before_body_end">
19
+ <block type="core/template" template="algoliasearch/frontjs.phtml"/>
20
+ </reference>
21
+ <reference name="content">
22
+ <block type="core/template" before="content" template="algoliasearch/beforecontent.phtml"/>
23
+ </reference>
24
+
25
+ </algolia_search_handle>
26
+ <algolia_search_handle_with_topsearch>
27
  <reference name="top.search">
28
  <action method="setTemplate"><template>algoliasearch/topsearch.phtml</template></action>
29
  </reference>
30
+ </algolia_search_handle_with_topsearch>
31
+ <algolia_search_handle_no_topsearch>
32
+ <reference name="head">
33
+ <block type="core/template" template="algoliasearch/topsearch.phtml"/>
34
+ </reference>
35
+ </algolia_search_handle_no_topsearch>
36
  </layout>
app/design/frontend/base/default/template/algoliasearch/beforecontent.phtml ADDED
@@ -0,0 +1 @@
 
1
+ <div id="algolia-autocomplete-container"></div>
app/design/frontend/base/default/template/algoliasearch/beforetopsearch.phtml ADDED
@@ -0,0 +1,555 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $config = Mage::helper('algoliasearch/config');
4
+ $catalogSearchHelper = $this->helper('catalogsearch'); /** @var $catalogSearchHelper Mage_CatalogSearch_Helper_Data */
5
+ $algoliaSearchHelper = $this->helper('algoliasearch'); /** @var $algoliaSearchHelper Algolia_Algoliasearch_Helper_Data */
6
+ $product_helper = Mage::helper('algoliasearch/entity_producthelper');
7
+
8
+ $base_url = Mage::getBaseUrl();
9
+
10
+ $isSearchPage = false;
11
+ $isCategoryPage = false;
12
+
13
+ $group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
14
+ $price_key = $config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()) ? '.group_'.$group_id : '.default';
15
+
16
+ $allDepartments = "All departments";
17
+
18
+ $query = '';
19
+ $refinement_key = '';
20
+ $refinement_value = '';
21
+ $path = '';
22
+
23
+ /**
24
+ * Handle category replacement
25
+ */
26
+ if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
27
+ {
28
+ $category = Mage::registry('current_category');
29
+
30
+ if ($category && $category->getDisplayMode() !== 'PAGE')
31
+ {
32
+ $category->getUrlInstance()->setStore(Mage::app()->getStore()->getStoreId());
33
+
34
+ foreach ($category->getPathIds() as $treeCategoryId) {
35
+ if ($path != '') {
36
+ $path .= ' /// ';
37
+ }
38
+
39
+ $path .= $product_helper->getCategoryName($treeCategoryId, Mage::app()->getStore()->getStoreId());
40
+ }
41
+
42
+ $indexName = $product_helper->getIndexName(Mage::app()->getStore()->getStoreId());
43
+ $category_url = $category->getUrl($category);
44
+ $isSearchPage = true;
45
+ $isCategoryPage = true;
46
+ }
47
+ }
48
+
49
+ /**
50
+ * Handle search
51
+ */
52
+ if ($config->isInstantEnabled())
53
+ {
54
+ $pageIdentifier = Mage::app()->getFrontController()->getAction()->getFullActionName();
55
+
56
+ if ($pageIdentifier === 'catalogsearch_result_index')
57
+ {
58
+ $query = $catalogSearchHelper->getEscapedQueryText();
59
+
60
+ if ($query == '__empty__')
61
+ $query = '';
62
+
63
+ $product_helper = Mage::helper('algoliasearch/entity_producthelper');
64
+
65
+ $refinement_key = Mage::app()->getRequest()->getParam('refinement_key');
66
+
67
+ if ($refinement_key !== null)
68
+ {
69
+ $refinement_value = $query;
70
+ $query = "";
71
+ }
72
+ else
73
+ $refinement_key = "";
74
+
75
+ $isSearchPage = true;
76
+ }
77
+ }
78
+
79
+ if ($base_url[strlen($base_url) - 1] == '/')
80
+ $base_url = substr($base_url, 0, strlen($base_url) - 1);
81
+
82
+ if ($config->isInstantEnabled() && $isSearchPage) {
83
+ // hide the instant-search selector ASAP to remove flickering. Will be re-displayed later with JS
84
+ echo '<style>' . $config->getInstantSelector() . '{ display: none; }</style>';
85
+ }
86
+
87
+ ?>
88
+
89
+ <script>
90
+ document.addEventListener("DOMContentLoaded", function(event) {
91
+ algoliaBundle.$(function ($) {
92
+ window.algoliaConfig = {
93
+ instant: {
94
+ enabled: <?php echo $config->isInstantEnabled() ? "true" : "false"; ?>,
95
+ selector: '<?php echo $config->getInstantSelector(); ?>',
96
+ isAddToCartEnabled: <?php echo $config->isAddToCartEnable() ? "true" : "false"; ?>
97
+ },
98
+ autocomplete: {
99
+ enabled: <?php echo $config->isAutoCompleteEnabled() ? "true" : "false"; ?>,
100
+ selector: '<?php echo $config->getAutocompleteSelector(); ?>',
101
+ sections: <?php echo json_encode($config->getAutocompleteSections()); ?>,
102
+ nbOfProductsSuggestions: '<?php echo $config->getNumberOfProductsSuggestions(); ?>',
103
+ nbOfCategoriesSuggestions: '<?php echo $config->getNumberOfCategoriesSuggestions(); ?>',
104
+ nbOfQueriesSuggestions: '<?php echo $config->getNumberOfQueriesSuggestions(); ?>'
105
+ },
106
+ applicationId: '<?php echo $config->getApplicationID() ?>',
107
+ indexName: '<?php echo $product_helper->getBaseIndexName(); ?>',
108
+ apiKey: '<?php echo $config->getSearchOnlyAPIKey() ?>',
109
+ facets: <?php echo json_encode($config->getFacets()); ?>,
110
+ hitsPerPage: <?php echo (int) $config->getNumberOfProductResults() ?>,
111
+ sortingIndices: <?php echo json_encode(array_values($config->getSortingIndices())); ?>,
112
+ isSearchPage: <?php echo $isSearchPage ? "true" : "false" ?>,
113
+ isCategoryPage: <?php echo $isCategoryPage ? "true" : "false" ?>,
114
+ removeBranding: <?php echo $config->isRemoveBranding() ? "true" : "false"; ?>,
115
+ priceKey: '<?php echo $price_key; ?>',
116
+ currencySymbol: '<?php echo Mage::app()->getLocale()->currency(Mage::app()->getStore()->getCurrentCurrencyCode())->getSymbol(); ?>',
117
+ autofocus: true,
118
+ request: {
119
+ query:<?php echo json_encode(array("value" => html_entity_decode($query))); ?>.value,
120
+ refinement_key: '<?php echo $refinement_key; ?>',
121
+ refinement_value: '<?php echo $refinement_value; ?>',
122
+ path: '<?php echo $path; ?>'
123
+ },
124
+ showSuggestionsOnNoResultsPage: <?php echo $config->showSuggestionsOnNoResultsPage() ? "true" : "false"; ?>,
125
+ baseUrl: '<?php echo $base_url ?>',
126
+ popularQueries: <?php echo json_encode($config->getPopularQueries()); ?>
127
+ };
128
+
129
+ window.transformHit = function (hit, price_key) {
130
+ if (Array.isArray(hit.categories))
131
+ hit.categories = hit.categories.join(', ');
132
+
133
+ if (Array.isArray(hit.categories_without_path)) {
134
+ hit.categories_without_path = $.map(hit._highlightResult.categories_without_path, function (category) {
135
+ return category.value;
136
+ });
137
+
138
+ hit.categories_without_path = hit.categories_without_path.join(', ');
139
+ }
140
+
141
+ if (Array.isArray(hit.color)) {
142
+ var colors = [];
143
+
144
+ $.each(hit._highlightResult.color, function (i, color) {
145
+ if (color.matchLevel === 'none') {
146
+ return;
147
+ }
148
+ colors.push(color.value);
149
+ });
150
+
151
+ colors = colors.join(', ');
152
+
153
+ hit._highlightResult.color = {value: colors};
154
+ }
155
+ else {
156
+ if (hit._highlightResult.color && hit._highlightResult.color.matchLevel === 'none') {
157
+ hit._highlightResult.color = {value: ''};
158
+ }
159
+ }
160
+
161
+ if (hit._highlightResult.color && hit._highlightResult.color.value && hit.categories_without_path) {
162
+ if (hit.categories_without_path.indexOf('<em>') === -1 && hit._highlightResult.color.value.indexOf('<em>') !== -1) {
163
+ hit.categories_without_path = '';
164
+ }
165
+ }
166
+
167
+
168
+ if (Array.isArray(hit._highlightResult.name))
169
+ hit._highlightResult.name = hit._highlightResult.name[0];
170
+
171
+ if (Array.isArray(hit.price))
172
+ hit.price = hit.price[0];
173
+
174
+ if (price_key !== '.default' && hit['price'][price_key.substr(1) + '_formated'] !== hit['price']['default_formated']) {
175
+ hit['price'][price_key.substr(1) + '_original_formated'] = hit['price']['default_formated'];
176
+ }
177
+
178
+ return hit;
179
+ };
180
+
181
+ window.getFacetWidget = function (facet, templates) {
182
+
183
+ if (facet.type === 'priceRanges') {
184
+ return algoliaBundle.instantsearch.widgets.priceRanges({
185
+ container: facet.wrapper.appendChild(document.createElement('div')),
186
+ attributeName: facet.attribute,
187
+ labels: {
188
+ currency: algoliaConfig.currencySymbol,
189
+ separator: '<?php echo $this->__("to"); ?>',
190
+ button: '<?php echo $this->__("Go"); ?>'
191
+ },
192
+ templates: templates,
193
+ cssClasses: {
194
+ root: 'facet conjunctive'
195
+ }
196
+ })
197
+ }
198
+
199
+ var listItemTemplate = '<label class="{{cssClasses.label}}">' +
200
+ '<input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}' +
201
+ '{{#isRefined}}<img class="cross-circle" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross-circle.png"/>{{/isRefined}}' +
202
+ '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>' +
203
+ '</label>';
204
+
205
+ if (facet.type === 'conjunctive') {
206
+
207
+ templates.item = listItemTemplate;
208
+ return algoliaBundle.instantsearch.widgets.refinementList({
209
+ container: facet.wrapper.appendChild(document.createElement('div')),
210
+ attributeName: facet.attribute,
211
+ operator: 'and',
212
+ templates: templates,
213
+ cssClasses: {
214
+ root: 'facet conjunctive'
215
+ }
216
+ });
217
+ }
218
+
219
+ if (facet.type === 'disjunctive') {
220
+ templates.item = listItemTemplate;
221
+
222
+ return algoliaBundle.instantsearch.widgets.refinementList({
223
+ container: facet.wrapper.appendChild(document.createElement('div')),
224
+ attributeName: facet.attribute,
225
+ operator: 'or',
226
+ templates: templates,
227
+ cssClasses: {
228
+ root: 'facet disjunctive'
229
+ }
230
+ });
231
+ }
232
+
233
+ if (facet.type == 'slider') {
234
+ return algoliaBundle.instantsearch.widgets.rangeSlider({
235
+ container: facet.wrapper.appendChild(document.createElement('div')),
236
+ attributeName: facet.attribute,
237
+ templates: templates,
238
+ cssClasses: {
239
+ root: 'facet slider'
240
+ },
241
+ tooltips: {
242
+ format: function(formattedValue) {
243
+ return parseInt(formattedValue);
244
+ }
245
+ }
246
+ });
247
+ }
248
+ };
249
+
250
+ window.getAutocompleteSource = function (section, algolia_client, $, i) {
251
+ if (section.hitsPerPage <= 0)
252
+ return null;
253
+
254
+ var options = {
255
+ hitsPerPage: section.hitsPerPage,
256
+ analyticsTags: 'autocomplete'
257
+ };
258
+
259
+ var source;
260
+
261
+ if (section.name === "products") {
262
+ options.facets = ['categories.level0'];
263
+ options.numericFilters = 'visibility_search=1';
264
+
265
+ source = {
266
+ source: $.fn.autocomplete.sources.hits(algolia_client.initIndex(algoliaConfig.indexName + "_" + section.name), options),
267
+ name: section.name,
268
+ templates: {
269
+ empty: function (query) {
270
+ var template = '<div class="aa-no-results-products">' +
271
+ '<div class="title"><?php echo $this->__('No products for query'); ?> "' + query.query + '"</div>';
272
+
273
+ var suggestions = [];
274
+
275
+ if (algoliaConfig.showSuggestionsOnNoResultsPage && algoliaConfig.popularQueries.length > 0) {
276
+ $.each(algoliaConfig.popularQueries.slice(0, Math.min(3, algoliaConfig.popularQueries.length)), function (i, query) {
277
+ query = $('<div>').html(query).text(); // Avoid xss
278
+ suggestions.push('<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + encodeURIComponent(query) + '">' + query + '</a>');
279
+ });
280
+
281
+ template += '<div class="suggestions"><div><?php echo $this->__('You can try one of the popular search queries'); ?></div>';
282
+ template += '<div>' + suggestions.join(', ') + '</div>';
283
+ template += '</div>';
284
+ }
285
+
286
+ template += '<div class="see-all">' + (suggestions.length > 0 ? '<?php echo $this->__('or'); ?> ' : '') + '<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=__empty__"><?php echo $this->__('See all products'); ?></a></div>' +
287
+ '</div>';
288
+
289
+ return template;
290
+ },
291
+ suggestion: function (hit) {
292
+ hit = transformHit(hit, algoliaConfig.priceKey)
293
+ hit.displayKey = hit.displayKey || hit.name;
294
+ return algoliaConfig.autocomplete.templates[section.name].render(hit);
295
+ }
296
+ }
297
+ };
298
+ }
299
+ else if (section.name === "categories" || section.name === "pages")
300
+ {
301
+ source = {
302
+ source: $.fn.autocomplete.sources.hits(algolia_client.initIndex(algoliaConfig.indexName + "_" + section.name), options),
303
+ name: i,
304
+ templates: {
305
+ empty: '<div class="aa-no-results">No results</div>',
306
+ suggestion: function (hit) {
307
+ if (section.name === 'categories') {
308
+ hit.displayKey = hit.path;
309
+ }
310
+
311
+ if (hit._snippetResult && hit._snippetResult.content && hit._snippetResult.content.value.length > 0) {
312
+ hit.content = hit._snippetResult.content.value;
313
+
314
+ if (hit.content.charAt(0).toUpperCase() !== hit.content.charAt(0)) {
315
+ hit.content = '&#8230; ' + hit.content;
316
+ }
317
+
318
+ if ($.inArray(hit.content.charAt(hit.content.length - 1), ['.', '!', '?'])) {
319
+ hit.content = hit.content + ' &#8230;';
320
+ }
321
+
322
+ if (hit.content.indexOf('<em>') === -1) {
323
+ hit.content = '';
324
+ }
325
+ }
326
+
327
+ hit.displayKey = hit.displayKey || hit.name;
328
+ return algoliaConfig.autocomplete.templates[section.name].render(hit);
329
+ }
330
+ }
331
+ };
332
+ }
333
+ else if (section.name === "suggestions")
334
+ {
335
+ /// popular queries/suggestions
336
+ var suggestions_index = algolia_client.initIndex(algoliaConfig.indexName + "_suggestions");
337
+ var products_index = algolia_client.initIndex(algoliaConfig.indexName + "_products");
338
+
339
+ source = {
340
+ source: $.fn.autocomplete.sources.popularIn(suggestions_index, {
341
+ hitsPerPage: section.hitsPerPage
342
+ }, {
343
+ source: 'query',
344
+ index: products_index,
345
+ facets: ['categories.level0'],
346
+ hitsPerPage: 0,
347
+ typoTolerance: false,
348
+ maxValuesPerFacet: 1,
349
+ analytics: false
350
+ }, {
351
+ includeAll: true,
352
+ allTitle: '<?php echo $this->__($allDepartments) ?>'
353
+ }),
354
+ displayKey: 'query',
355
+ name: section.name,
356
+ templates: {
357
+ suggestion: function (hit) {
358
+ if (hit.facet) {
359
+ hit.category = hit.facet.value;
360
+ }
361
+
362
+ if (hit.facet && hit.facet.value !== "<?php echo $allDepartments; ?>") {
363
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.query + '#q=' + hit.query + '&hFR[categories.level0][0]=' + encodeURIComponent(hit.category) + '&idx=' + algoliaConfig.indexName + '_products';
364
+ } else {
365
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.query;
366
+ }
367
+ return algoliaConfig.autocomplete.templates.suggestions.render(hit);
368
+ }
369
+ }
370
+ };
371
+ } else {
372
+ /** If is not products, categories, pages or suggestions, it's additional section **/
373
+ var index = algolia_client.initIndex(algoliaConfig.indexName + "_section_" + section.name);
374
+
375
+ source = {
376
+ source: $.fn.autocomplete.sources.hits(index, {
377
+ hitsPerPage: section.hitsPerPage,
378
+ analyticsTags: 'autocomplete'
379
+ }),
380
+ displayKey: 'value',
381
+ name: i,
382
+ templates: {
383
+ suggestion: function (hit) {
384
+ hit.url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + hit.value + '&refinement_key=' + section.name;
385
+ return algoliaConfig.autocomplete.templates.additionnalSection.render(hit);
386
+ }
387
+ }
388
+ };
389
+ }
390
+
391
+ if (section.name === 'products') {
392
+ source.templates.footer = function (query, content) {
393
+ var keys = [];
394
+ for (var key in content.facets['categories.level0']) {
395
+ var url = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + query.query + '#q=' + query.query + '&hFR[categories.level0][0]=' + encodeURIComponent(key) + '&idx=' + algoliaConfig.indexName + '_products';
396
+ keys.push({
397
+ key: key,
398
+ value: content.facets['categories.level0'][key],
399
+ url: url
400
+ });
401
+ }
402
+
403
+ keys.sort(function (a, b) {
404
+ return b.value - a.value;
405
+ });
406
+
407
+ var ors = '';
408
+
409
+ if (keys.length > 0) {
410
+ ors += '<span><a href="' + keys[0].url + '">' + keys[0].key + '</a></span>';
411
+ }
412
+
413
+ if (keys.length > 1) {
414
+ ors += ', <span><a href="' + keys[1].url + '">' + keys[1].key + '</a></span>';
415
+ }
416
+
417
+ var allUrl = algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + query.query;
418
+ return '<div id="autocomplete-products-footer">See products in <span><a href="' + allUrl + '">All departments</a></span> (' + content.nbHits + ') or in ' + ors + '</div>';
419
+ }
420
+ }
421
+
422
+ if (section.name !== 'suggestions' && section.name !== 'products') {
423
+ source.templates.header = '<div class="category">' + (section.label ? section.label : section.name) + '</div>';
424
+ }
425
+
426
+ return source;
427
+ };
428
+
429
+ window.fixAutocompleteCssHeight = function () {
430
+ if ($(document).width() > 768) {
431
+ $(".other-sections").css('min-height', '0');
432
+ $(".aa-dataset-products").css('min-height', '0');
433
+ var height = Math.max($(".other-sections").outerHeight(), $(".aa-dataset-products").outerHeight());
434
+ $(".aa-dataset-products").css('min-height', height);
435
+ }
436
+ };
437
+
438
+ window.fixAutocompleteCssSticky = function (menu) {
439
+ var dropdown_menu = $('#algolia-autocomplete-container .aa-dropdown-menu');
440
+ var autocomplete_container = $('#algolia-autocomplete-container');
441
+ autocomplete_container.removeClass('reverse');
442
+
443
+ /** Reset computation **/
444
+ dropdown_menu.css('top', '0px');
445
+
446
+ /** Stick menu vertically to the input **/
447
+ var targetOffset = Math.round(menu.offset().top + menu.outerHeight());
448
+ var currentOffset = Math.round(autocomplete_container.offset().top);
449
+
450
+ dropdown_menu.css('top', (targetOffset - currentOffset) + 'px');
451
+
452
+ if (menu.offset().left + menu.outerWidth() / 2 > $(document).width() / 2) {
453
+ /** Stick menu horizontally align on right to the input **/
454
+ dropdown_menu.css('right', '0px');
455
+ dropdown_menu.css('left', 'auto');
456
+
457
+ var targetOffset = Math.round(menu.offset().left + menu.outerWidth());
458
+ var currentOffset = Math.round(autocomplete_container.offset().left + autocomplete_container.outerWidth());
459
+
460
+ dropdown_menu.css('right', (currentOffset - targetOffset) + 'px');
461
+ }
462
+ else {
463
+ /** Stick menu horizontally align on left to the input **/
464
+ dropdown_menu.css('left', 'auto');
465
+ dropdown_menu.css('right', '0px');
466
+ autocomplete_container.addClass('reverse');
467
+
468
+ var targetOffset = Math.round(menu.offset().left);
469
+ var currentOffset = Math.round(autocomplete_container.offset().left);
470
+
471
+ dropdown_menu.css('left', (targetOffset - currentOffset) + 'px');
472
+ }
473
+ };
474
+
475
+ $(algoliaConfig.autocomplete.selector).each(function () {
476
+ $(this).closest('form').submit(function (e) {
477
+ var query = $(this).find(algoliaConfig.autocomplete.selector).val();
478
+
479
+ if (algoliaConfig.instant.enabled && query == '')
480
+ query = '__empty__';
481
+
482
+ window.location = $(this).attr('action') + '?q=' + query;
483
+
484
+ return false;
485
+ });
486
+ });
487
+
488
+ function handleInputCrossAutocomplete(input) {
489
+ if (input.val().length > 0) {
490
+ input.closest('#algolia-searchbox').find('.clear-query-autocomplete').show();
491
+ input.closest('#algolia-searchbox').find('svg').hide();
492
+ }
493
+ else {
494
+ input.closest('#algolia-searchbox').find('.clear-query-autocomplete').hide();
495
+ input.closest('#algolia-searchbox').find('svg').show();
496
+ }
497
+ }
498
+
499
+ window.handleInputCrossInstant = function (input) {
500
+ if (input.val().length > 0) {
501
+ input.closest('#instant-search-box').find('.clear-query-instant').show();
502
+ }
503
+ else {
504
+ input.closest('#instant-search-box').find('.clear-query-instant').hide();
505
+ }
506
+ };
507
+
508
+ var instant_selector = !algoliaConfig.autocomplete.enabled ? ".algolia-search-input" : "#instant-search-bar";
509
+
510
+ $(document).on('input', algoliaConfig.autocomplete.selector, function () {
511
+ handleInputCrossAutocomplete($(this));
512
+ });
513
+
514
+ $(document).on('input', instant_selector, function () {
515
+ handleInputCrossInstant($(this));
516
+ });
517
+
518
+ $(document).on('click', '.clear-query-instant', function () {
519
+ var input = $(this).closest('#instant-search-box').find('input');
520
+ input.val('');
521
+ input.get(0).dispatchEvent(new Event('input'));
522
+ handleInputCrossInstant(input);
523
+ });
524
+
525
+ $(document).on('click', '.clear-query-autocomplete', function () {
526
+ var input = $(this).closest('#algolia-searchbox').find('input');
527
+ input.val('');
528
+ handleInputCrossAutocomplete(input);
529
+ });
530
+
531
+
532
+
533
+ /** Handle small screen **/
534
+ $('body').on('click', '#refine-toggle', function () {
535
+ $('#instant-search-facets-container').toggleClass('hidden-sm').toggleClass('hidden-xs');
536
+ if ($(this).html()[0] === '+')
537
+ $(this).html('- Refine');
538
+ else
539
+ $(this).html('+ Refine');
540
+ });
541
+
542
+ $.fn.focusWithoutScrolling = function(){
543
+ var x = window.scrollX, y = window.scrollY;
544
+ this.focus();
545
+ window.scrollTo(x, y);
546
+ };
547
+ });
548
+ });
549
+ </script>
550
+
551
+ <!--[if lte IE 9]>
552
+ <script>
553
+ algoliaConfig.autofocus = false;
554
+ </script>
555
+ <![endif]-->
app/design/frontend/base/default/template/algoliasearch/frontjs.phtml ADDED
@@ -0,0 +1,2 @@
 
 
1
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/Function.prototype.bind.js"></script>
2
+ <script src="<?php echo Mage::getBaseUrl('js'); ?>algoliasearch/algoliaBundle.min.js"></script>
app/design/frontend/base/default/template/algoliasearch/topsearch.phtml CHANGED
@@ -1,32 +1,25 @@
 
 
 
 
 
 
 
 
1
  <?php
2
  $config = Mage::helper('algoliasearch/config');
3
- $catalogSearchHelper = $this->helper('catalogsearch'); /** @var $catalogSearchHelper Mage_CatalogSearch_Helper_Data */
4
- $algoliaSearchHelper = $this->helper('algoliasearch'); /** @var $algoliaSearchHelper Algolia_Algoliasearch_Helper_Data */
5
- $product_helper = Mage::helper('algoliasearch/entity_producthelper');
6
- $formKey = Mage::getSingleton('core/session')->getFormKey();
7
-
8
- $base_url = Mage::getBaseUrl();
9
-
10
- $isSearchPage = false;;
11
- $hash_path = null;
12
-
13
- $group_id = Mage::getSingleton('customer/session')->getCustomerGroupId();
14
- $price_key = '.default';
15
-
16
- if ($config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()))
17
- {
18
- $price_key = '.group_'.$group_id;
19
- }
20
 
21
  $title = '';
 
22
  $content = '';
 
23
 
24
- /**
25
- * Handle category replacement
26
- */
27
  if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
28
  {
29
  $category = Mage::registry('current_category');
 
30
 
31
  if ($category && $category->getDisplayMode() !== 'PAGE')
32
  {
@@ -34,126 +27,41 @@ if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->g
34
 
35
  if ($category->getDisplayMode() == 'PRODUCTS_AND_PAGE')
36
  {
37
- $page = $category->getLandingPage();
38
- $cms_block = Mage::getModel('cms/block')->load($page);
39
- $title = $cms_block->getTitle();
40
- $content = $cms_block->getContent();
41
- }
42
 
43
- $path = '';
 
44
 
45
- foreach ($category->getPathIds() as $treeCategoryId) {
46
- if ($path != '') {
47
- $path .= ' /// ';
 
48
  }
49
-
50
- $path .= $product_helper->getCategoryName($treeCategoryId, Mage::app()->getStore()->getStoreId());
51
- }
52
-
53
- $indexName = $product_helper->getIndexName(Mage::app()->getStore()->getStoreId());
54
- $category_url = $category->getUrl($category);
55
- $hash_path = '#q=&page=0&refinements=%5B%7B%22categories%22%3A%5B%22'.$path.'%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22'.$indexName.'%22';
56
-
57
- $isSearchPage = true;
58
- }
59
- }
60
-
61
- /**
62
- * Handle search
63
- */
64
- if ($config->isInstantEnabled())
65
- {
66
- $pageIdentifier = Mage::app()->getFrontController()->getAction()->getFullActionName();
67
-
68
- if ($pageIdentifier === 'catalogsearch_result_index')
69
- {
70
- $query = $catalogSearchHelper->getEscapedQueryText();
71
-
72
- if ($query == '__empty__')
73
- $query = '';
74
-
75
- $product_helper = Mage::helper('algoliasearch/entity_producthelper');
76
-
77
- $hash_path = '#q='.htmlentities($query, ENT_COMPAT, "UTF-8").'&page=0&refinements=%5B%5D&numerics_refinements=%7B%7D&index_name=%22'.$product_helper->getIndexName().'%22';
78
-
79
- $refinement_key = Mage::app()->getRequest()->getParam('refinement_key');
80
- $refinement_value = Mage::app()->getRequest()->getParam('refinement_value');
81
-
82
- if ($refinement_key !== null)
83
- {
84
- $hash_path = '#q=&page=0&refinements=%5B%7B%22' . $refinement_key . '%22%3A%5B%22' . $refinement_value . '%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22' . $product_helper->getBaseIndexName() . '_products%22';
85
  }
86
-
87
- $isSearchPage = true;
88
  }
89
  }
90
 
91
-
92
- if ($hash_path !== null)
93
- {
94
- echo '<script>if (window.location.hash.length <= 1) { window.location.hash = "'.$hash_path.'"; }</script>';
95
- }
96
-
97
-
98
-
99
- if ($base_url[strlen($base_url) - 1] == '/')
100
- $base_url = substr($base_url, 0, strlen($base_url) - 1);
101
-
102
- if ($config->isInstantEnabled() && $isSearchPage) {
103
- // hide the instant-search selector ASAP to remove flickering. Will be re-displayed later with JS
104
- echo '<style>' . $config->getInstantSelector() . '{ display: none; }</style>';
105
-
106
-
107
- }
108
- ?>
109
-
110
- <!--
111
- //================================
112
- //
113
- // Search box
114
- //
115
- //================================
116
- -->
117
-
118
- <?php
119
-
120
- $types = array();
121
-
122
- if ($config->getNumberOfProductSuggestions() > 0)
123
- $types[] = $this->__('products');
124
-
125
- if ($config->getNumberOfCategorySuggestions() > 0)
126
- $types[] = $this->__('categories');
127
-
128
- if ($config->getNumberOfPageSuggestions() > 0)
129
- $types[] = $this->__('pages');
130
-
131
- $or = count($types) > 1 ? ' '.$this->__('or').' ' : '';
132
-
133
- $placeholder = $this->__('Search');
134
-
135
- if (count($types) > 0)
136
- {
137
- $placeholder = $this->__('Search for'). ' ' . implode(', ', array_slice($types, 0, count($types) - 1)) . $or . $types[count($types) - 1];
138
- }
139
-
140
- $class = $isSearchPage ? 'search-page' : '';
141
 
142
  ?>
143
 
 
144
  <form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
145
- <div id="algolia-searchbox" class="<?php echo $class; ?>">
146
  <label for="search"><?php echo $this->__('Search:') ?></label>
147
- <input id="search" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" placeholder="<?php echo $placeholder; ?>" />
 
148
  <svg id="algolia-glass" xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
149
- <g transform="scale(4)">
150
- <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
151
- <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
152
- <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
153
- </g>
154
  </svg>
155
  </div>
156
  </form>
 
157
 
158
  <!--
159
  //================================
@@ -170,28 +78,35 @@ $class = $isSearchPage ? 'search-page' : '';
170
  <div class="thumb"><img src="{{thumbnail_url}}" /></div>
171
  {{/thumbnail_url}}
172
 
173
- <div class="algoliasearch-autocomplete-price">
174
- <span class="after_special">
175
- {{price<?php echo $price_key; ?>_formated}}
176
- </span>
177
-
178
- {{#price<?php echo $price_key; ?>_original_formated}}
179
- <span class="before_special">
180
- {{price<?php echo $price_key; ?>_original_formated}}
181
- </span>
182
- {{/price<?php echo $price_key; ?>_original_formated}}
183
- </div>
184
-
185
  <div class="info">
186
  {{{_highlightResult.name.value}}}
187
 
188
- {{#categories_without_path}}
189
  <div class="algoliasearch-autocomplete-category">
190
- <?php echo $this->__('in'); ?> {{categories_without_path}}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  </div>
192
- {{/categories_without_path}}
193
  </div>
194
- <div class="clearfix"></div>
195
  </a>
196
  </script>
197
 
@@ -210,14 +125,14 @@ $class = $isSearchPage ? 'search-page' : '';
210
  {{^image_url}}
211
  <div class="info-without-thumb">
212
  {{#_highlightResult.path}}
213
- {{{_highlightResult.path.value}}}
214
  {{/_highlightResult.path}}
215
  {{^_highlightResult.path}}
216
- {{{path}}}
217
  {{/_highlightResult.path}}
218
 
219
  {{#product_count}}
220
- <small>( {{product_count}} )</small>
221
  {{/product_count}}
222
 
223
  </div>
@@ -232,6 +147,11 @@ $class = $isSearchPage ? 'search-page' : '';
232
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
233
  <div class="info-without-thumb">
234
  {{{_highlightResult.name.value}}}
 
 
 
 
 
235
  </div>
236
  <div class="clearfix"></div>
237
  </a>
@@ -250,11 +170,18 @@ $class = $isSearchPage ? 'search-page' : '';
250
  <!-- Suggestion hit template -->
251
  <script type="text/template" id="autocomplete_suggestions_template">
252
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
 
 
 
 
 
 
 
253
  <div class="info-without-thumb">
254
  {{{_highlightResult.query.value}}}
255
 
256
  {{#category}}
257
- <span class="text-muted"><?php echo $this->__('in'); ?></span> <span class="category-tag">{{category}}</span>
258
  {{/category}}
259
  </div>
260
  <div class="clearfix"></div>
@@ -274,106 +201,112 @@ $class = $isSearchPage ? 'search-page' : '';
274
 
275
  <!-- Wrapping template -->
276
  <script type="text/template" id="instant_wrapper_template">
277
-
 
 
278
  <div id="algolia_instant_selector"<?php echo count($config->getFacets()) > 0 ? ' class="with-facets"' : '' ?>>
279
 
280
- <div class="row">
281
- <div class="col-md-offset-3 col-md-9">
282
- <div id="algolia-static-content">
283
- <div class="page-title category-title">
284
- <h1><?php echo $title; ?></h1>
285
- </div>
286
- <?php echo $content; ?>
287
- </div>
288
- <div>
289
- {{#second_bar}}
290
- <div id="instant-search-bar-container">
291
- <div id="instant-search-box">
292
- <label for="instant-search-bar">
293
- <?php echo $this->__('Search :'); ?>
294
- </label>
295
-
296
- <input value="<?php echo $catalogSearchHelper->getEscapedQueryText() ?>" placeholder="<?php echo $this->__('Search for products'); ?>" id="instant-search-bar" type="text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" />
297
-
298
- <svg xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128">
299
- <g transform="scale(4)">
300
- <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
301
- <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
302
- <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z"></path>
303
- </g>
304
- </svg>
305
  </div>
 
306
  </div>
307
- {{/second_bar}}
308
  </div>
309
  </div>
310
- </div>
311
 
312
  <div class="row">
313
  <div class="col-md-3" id="algolia-left-container">
314
  <div id="refine-toggle" class="visible-xs visible-sm">+ <?php echo $this->__('Refine'); ?></div>
315
- <div class="hidden-xs hidden-sm" id="instant-search-facets-container"></div>
 
 
316
  </div>
317
 
318
  <div class="col-md-9" id="algolia-right-container">
319
- <div id="instant-search-results-container"></div>
320
- <div id="instant-search-pagination-container"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </div>
322
  </div>
323
 
324
  </div>
325
  </script>
326
 
327
- <!-- Product hit template -->
328
- <script type="text/template" id="instant-content-template">
329
- <div class="hits">
330
- {{#hits.length}}
331
- <div class="infos">
332
- <div class="pull-left">
333
- {{nbHits}} <?php echo $this->__('result'); ?>{{^nbHits_one}}<?php echo $this->__('s'); ?>{{/nbHits_one}} <?php echo $this->__('found'); ?> {{#query}}<?php echo $this->__('matching'); ?> "<strong>{{query}}</strong>" {{/query}}<?php echo $this->__('in'); ?> {{processingTimeMS}} <?php echo $this->__('ms'); ?>
334
- </div>
335
- {{#sorting_indices.length}}
336
- <div class="pull-right">
337
- <?php echo $this->__('Order by'); ?>
338
- <select id="index_to_use">
339
- <option {{#sortSelected}}{{relevance_index_name}}{{/sortSelected}} value="{{relevance_index_name}}"><?php echo $this->__('Relevance'); ?></option>
340
- {{#sorting_indices}}
341
- <option {{#sortSelected}}{{index_name}}{{/sortSelected}} value="{{index_name}}">{{label}}</option>
342
- {{/sorting_indices}}
343
- </select>
344
- </div>
345
- {{/sorting_indices.length}}
346
- <div class="clearfix"></div>
347
- </div>
348
- {{/hits.length}}
349
-
350
- <div class="row">
351
- {{#hits}}
352
- <div class="col-md-4 col-sm-6">
353
- <div class="result-wrapper">
354
- <a href="{{url}}" class="result">
355
- <div class="result-content">
356
- <div class="result-thumbnail">
357
- {{#image_url}}
358
- <img src="{{{ image_url }}}" />
359
- {{/image_url}}
360
- {{^image_url}}
361
- <span class="no-image"></span>
362
- {{/image_url}}
363
- </div>
364
  <div class="result-sub-content">
365
- <h3 class="result-title text-ellipsis">
366
- {{{ _highlightResult.name.value }}}
367
- </h3>
368
  <div class="ratings">
369
  <div class="rating-box">
370
  <div class="rating" style="width:{{rating_summary}}%" width="148" height="148"></div>
371
  </div>
372
  </div>
373
  <div class="price">
374
- <div class="algoliasearch-autocomplete-price">
375
  <div>
376
- <span class="after_special">
377
  {{price<?php echo $price_key; ?>_formated}}
378
  </span>
379
 
@@ -385,141 +318,74 @@ $class = $isSearchPage ? 'search-page' : '';
385
  </div>
386
  </div>
387
  </div>
388
- <div class="result-description text-ellipsis">
389
- {{{ _highlightResult.description.value }}}
390
- </div>
391
-
392
- {{#isAddToCartEnabled}}
393
- {{#in_stock}}
394
-
395
- <form action="<?php echo $base_url; ?>/checkout/cart/add/product/{{objectID}}" method="post">
396
- <input type="hidden" name="form_key" value="<?php echo $formKey; ?>" />
397
-
398
- <input type="hidden" name="qty" value="1">
399
-
400
- <button type="submit"><?php echo $this->__('Add to Cart'); ?></button>
401
- </form>
402
- {{/in_stock}}
403
- {{/isAddToCartEnabled}}
404
  </div>
405
  </div>
406
- <div class="clearfix"></div>
407
- </a>
 
 
 
 
 
 
 
 
 
 
408
  </div>
409
- </div>
410
- {{/hits}}
411
  </div>
412
-
413
- {{^hits.length}}
414
- <div class="no-results">
415
- <?php echo $this->__('No results found matching'); ?> "<strong>{{query}}</strong>". <span class="button clear-button"><?php echo $this->__('Clear query and filters'); ?></span>
416
- </div>
417
- {{/hits.length}}
418
- <div class="clearfix"></div>
419
  </div>
420
  </script>
421
 
422
- <script type="text/template" id="instant-facets-hierarchical-template">
423
- {{#data}}
424
- <div style="padding-left: 10px; padding-right: 0px;" class="hierarchical_facet">
425
- <div data-name="{{attribute}}" data-path="{{path}}" data-type="hierarchical" class="{{#isRefined}}checked {{/isRefined}}sub_facet hierarchical {{#empty}}empty{{/empty}}">
426
- <input style="display: none;" data-attribute="{{attribute}}" {{#isRefined}}checked{{/isRefined}} data-name="{{name}}" class="facet_value" type="checkbox" />
427
- {{name}}
428
- {{#count}}<span class="count">{{count}}</span>{{/count}}
429
- </div>
430
- {{>facet_hierarchical}}
431
- </div>
432
- {{/data}}
433
  </script>
434
 
435
- <!-- Facet template -->
436
- <script type="text/template" id="instant-facets-template">
437
- <div class="facets">
438
- {{#facets}}
439
- {{#count}}
440
- <div class="facet">
441
- <div class="name">
442
- {{ facet_categorie_name }}
443
- </div>
444
- <div>
445
- {{#sub_facets}}
446
-
447
- {{#type.menu}}
448
- <div data-attribute="{{attribute}}" data-name="{{nameattr}}" data-type="menu" class="{{#checked}}checked {{/checked}}sub_facet menu {{#empty}}empty{{/empty}}">
449
- <input style="display: none;" data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
450
- {{name}}
451
- {{#print_count}}<span class="count">{{count}}</span>{{/print_count}}
452
- </div>
453
- {{/type.menu}}
454
-
455
- {{#type.conjunctive}}
456
- <div data-name="{{attribute}}" data-type="conjunctive" class="{{#checked}}checked {{/checked}}sub_facet conjunctive {{#empty}}empty{{/empty}}">
457
- <input style="display: none;" data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
458
- {{name}}
459
- {{#count}}<span class="count">{{count}}</span>{{/count}}
460
- </div>
461
- {{/type.conjunctive}}
462
-
463
- {{#type.slider}}
464
- <div class="algolia-slider algolia-slider-true" data-attribute="{{attribute}}" data-min="{{min}}" data-max="{{max}}"></div>
465
- <div class="algolia-slider-info">
466
- <div class="min" style="float: left;">{{current_min}}</div>
467
- <div class="max" style="float: right;">{{current_max}}</div>
468
- <div class="clearfix"></div>
469
- </div>
470
- {{/type.slider}}
471
-
472
- {{#type.disjunctive}}
473
- <div data-name="{{attribute}}" data-type="disjunctive" class="{{#checked}}checked {{/checked}}sub_facet disjunctive {{#empty}}empty{{/empty}}">
474
- <input data-attribute="{{attribute}}" {{#checked}}checked{{/checked}} data-name="{{nameattr}}" class="facet_value" type="checkbox" />
475
- {{name}}
476
- {{#count}}<span class="count">{{count}}</span>{{/count}}
477
- </div>
478
- {{/type.disjunctive}}
479
 
480
- {{#type.hierarchical}}
481
- <div style="margin-left: -10px;">
482
- {{>facet_hierarchical}}
483
- </div>
484
- {{/type.hierarchical}}
485
 
486
- {{/sub_facets}}
487
- </div>
488
- </div>
489
- {{/count}}
490
- {{/facets}}
 
 
 
 
 
 
 
 
491
  </div>
492
  </script>
493
 
494
- <!-- Pagination template -->
495
- <script type="text/template" id="instant-pagination-template">
496
- <div class="pagination-wrapper">
497
- <div class="text-center">
498
- <ul class="algolia-pagination">
499
- <a href="#" data-page="{{prev_page}}">
500
- <li {{^prev_page}}class="disabled"{{/prev_page}}>
501
- &laquo;
502
- </li>
503
- </a>
504
-
505
- {{#pages}}
506
- <a href="#" data-page="{{number}}">
507
- <li class="{{#current}}active{{/current}}{{#disabled}}disabled{{/disabled}}">
508
- {{ number }}
509
- </li>
510
- </a>
511
- {{/pages}}
512
- <a href="#" data-page="{{next_page}}">
513
- <li {{^next_page}}class="disabled"{{/next_page}}>
514
- &raquo;
515
- </li>
516
- </a>
517
- </ul>
518
  </div>
519
  </div>
520
  </script>
521
 
522
-
523
  <!--
524
  //================================
525
  //
@@ -532,1206 +398,362 @@ $class = $isSearchPage ? 'search-page' : '';
532
  <script type="text/javascript">
533
  //<![CDATA[
534
 
535
- algoliaBundle.$(function($) {
536
- var supportsHistory = window.history && window.history.pushState;
537
-
538
- var algoliaConfig = {
539
- instant: {
540
- enabled: <?php echo $config->isInstantEnabled() ? "true" : "false"; ?>,
541
- selector: '<?php echo $config->getInstantSelector(); ?>',
542
- isAddToCartEnabled: <?php echo $config->isAddToCartEnable() ? "true" : "false"; ?>
543
- },
544
- autocomplete: {
545
- enabled: <?php echo $config->isAutoCompleteEnabled() ? "true" : "false"; ?>,
546
- selector: '#search',
547
- hitsPerPage: {
548
- products: <?php echo (int) $config->getNumberOfProductSuggestions() ?>,
549
- categories: <?php echo (int) $config->getNumberOfCategorySuggestions() ?>,
550
- pages: <?php echo (int) $config->getNumberOfPageSuggestions() ?>,
551
- suggestions: <?php echo (int) $config->getNumberOfQuerySuggestions() ?>
552
- },
553
- templates: {
554
- suggestions: algoliaBundle.Hogan.compile($('#autocomplete_suggestions_template').html()),
555
- products: algoliaBundle.Hogan.compile($('#autocomplete_products_template').html()),
556
- categories: algoliaBundle.Hogan.compile($('#autocomplete_categories_template').html()),
557
- pages: algoliaBundle.Hogan.compile($('#autocomplete_pages_template').html()),
558
- additionnalSection: algoliaBundle.Hogan.compile($('#autocomplete_extra_template').html()),
559
- },
560
- titles: {
561
- products: '<?php echo $this->__('Products'); ?>',
562
- categories: '<?php echo $this->__('Categories') ?>',
563
- pages: '<?php echo $this->__('Pages') ?>',
564
- suggestions: '<?php echo $this->__('Suggestions') ?>'
565
- },
566
- additionnalSection: <?php echo json_encode($config->getAutocompleteAdditionnalSections()); ?>
567
- },
568
- applicationId: '<?php echo $config->getApplicationID() ?>',
569
- indexName: '<?php echo $product_helper->getBaseIndexName(); ?>',
570
- apiKey: '<?php echo $config->getSearchOnlyAPIKey() ?>',
571
- facets: <?php echo json_encode($config->getFacets()); ?>,
572
- hitsPerPage: <?php echo (int) $config->getNumberOfProductResults() ?>,
573
- sortingIndices: <?php echo json_encode(array_values($config->getSortingIndices())); ?>,
574
- isSearchPage: <?php echo $isSearchPage ? "true" : "false" ?>,
575
- removeBranding: <?php echo $config->isRemoveBranding() ? "true" : "false"; ?>
576
- };
577
-
578
-
579
- $('#search').closest('form').submit(function(e) {
580
- var query = $('#search').val();
581
-
582
- if (algoliaConfig.instant.enabled && query == '')
583
- query = '__empty__';
584
-
585
- var url = $(this).attr('action') + '?q=' + query;
586
-
587
- window.location = url;
588
-
589
- return false;
590
- });
591
-
592
- /*****************
593
- **
594
- ** INITIALIZATION
595
- **
596
- *****************/
597
-
598
- var algolia_client = algoliaBundle.algoliasearch(algoliaConfig.applicationId, algoliaConfig.apiKey);
599
-
600
- /**
601
- * Foreach Type decide if it need to have a conjunctive or dijunctive faceting
602
- * When you create a custom facet type you need to add it here.
603
- * Example : 'menu'
604
- */
605
- var conjunctive_facets = [];
606
- var hierarchical_facets = [];
607
- var disjunctive_facets = [];
608
- var disjunctive_facets_empty = [];
609
-
610
- for (var i = 0; i < algoliaConfig.facets.length; i++)
611
- {
612
- /** Force categories to be hierarchical **/
613
- if (algoliaConfig.facets[i].attribute == "categories")
614
- algoliaConfig.facets[i].type = "hierarchical";
615
-
616
- if (algoliaConfig.facets[i].attribute.indexOf("price") !== -1)
617
- algoliaConfig.facets[i].attribute = algoliaConfig.facets[i].attribute + '<?php echo $price_key; ?>';
618
-
619
- if (algoliaConfig.facets[i].type == "conjunctive")
620
- conjunctive_facets.push(algoliaConfig.facets[i].attribute);
621
-
622
- if (algoliaConfig.facets[i].type == "disjunctive")
623
- {
624
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
625
- disjunctive_facets_empty.push(algoliaConfig.facets[i].attribute);
626
- }
627
-
628
- if (algoliaConfig.facets[i].type == "hierarchical")
629
- {
630
- var hierarchical_levels = [];
631
-
632
- for (var l = 0; l < 10; l++)
633
- hierarchical_levels.push('categories.level' + l.toString());
634
-
635
- if (algoliaConfig.facets[i].attribute === 'categories')
636
- hierarchical_facets.push({
637
- name: algoliaConfig.facets[i].attribute,
638
- attributes: hierarchical_levels,
639
- separator: ' /// ',
640
- alwaysGetRootLevel: true,
641
- sortBy: ['name:asc']
642
- });
643
- else
644
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
645
- }
646
-
647
- if (algoliaConfig.facets[i].type == "slider")
648
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
649
-
650
- if (algoliaConfig.facets[i].type == "menu")
651
- {
652
- disjunctive_facets.push(algoliaConfig.facets[i].attribute);
653
- disjunctive_facets_empty.push(algoliaConfig.facets[i].attribute);
654
- }
655
- }
656
-
657
- var helper = algoliaBundle.algoliasearchHelper(algolia_client, algoliaConfig.indexName + '_products', {
658
- facets: conjunctive_facets,
659
- disjunctiveFacets: disjunctive_facets,
660
- hierarchicalFacets: hierarchical_facets,
661
- hitsPerPage: algoliaConfig.hitsPerPage,
662
- analyticsTags: 'instant-search'
663
- });
664
-
665
- helper.setQuery('');
666
-
667
- var helper_empty = algoliaBundle.algoliasearchHelper(algolia_client, algoliaConfig.indexName + '_products', {
668
- facets: conjunctive_facets,
669
- disjunctiveFacets: disjunctive_facets_empty,
670
- hierarchicalFacets: hierarchical_facets,
671
- hitsPerPage: algoliaConfig.hitsPerPage,
672
- analyticsTags: 'instant-search'
673
- });
674
-
675
- helper_empty.setQuery('');
676
-
677
- /**
678
- * Helper functions
679
- */
680
- var history_timeout;
681
- var custom_facets_types = [];
682
-
683
- custom_facets_types["slider"] = function (helper, content, facet) {
684
-
685
- if (content.getFacetByName(facet.attribute) !== undefined)
686
- {
687
- var min = content.getFacetByName(facet.attribute).stats.min;
688
- var max = content.getFacetByName(facet.attribute).stats.max;
689
-
690
- var current_min = helper.state.getNumericRefinement(facet.attribute, ">=");
691
- var current_max = helper.state.getNumericRefinement(facet.attribute, "<=");
692
-
693
- if (current_min == undefined)
694
- current_min = min;
695
-
696
- if (current_max == undefined)
697
- current_max = max;
698
-
699
- var params = {
700
- type: {},
701
- current_min: Math.floor(current_min),
702
- current_max: Math.ceil(current_max),
703
- count: min == max ? 0 : 1,
704
- min: Math.floor(min),
705
- max: Math.ceil(max)
706
- };
707
-
708
- params.type[facet.type] = true;
709
-
710
- return [params];
711
- }
712
-
713
- return [];
714
- };
715
-
716
- var updateUrl = function (push_state) {
717
-
718
- var refinements = [];
719
-
720
- /** Get refinements for conjunctive facets **/
721
- for (var refine in helper.state.facetsRefinements)
722
- {
723
- if (helper.state.facetsRefinements[refine])
724
- {
725
- var r = {};
726
 
727
- r[refine] = helper.state.facetsRefinements[refine];
728
 
729
- refinements.push(r);
730
- }
731
- }
732
-
733
- /** Get refinements for disjunctive facets **/
734
- for (var refine in helper.state.disjunctiveFacetsRefinements)
735
  {
736
- var r = {};
737
-
738
- r[refine] = helper.state.disjunctiveFacetsRefinements[refine];
739
-
740
- refinements.push(r);
741
- }
742
 
743
- /** Get refinements for hierarchical facets **/
744
- for (var refine in helper.state.hierarchicalFacetsRefinements)
745
- {
746
- var r = {};
747
 
748
- r[refine] = helper.state.hierarchicalFacetsRefinements[refine];
749
 
750
- refinements.push(r);
751
- }
752
 
753
- var url = '#q=' + encodeURIComponent(helper.state.query) +
754
- '&page=' + helper.getCurrentPage() +
755
- '&refinements=' + encodeURIComponent(JSON.stringify(refinements)) +
756
- '&numerics_refinements=' + encodeURIComponent(JSON.stringify(helper.state.numericRefinements)) +
757
- '&index_name=' + encodeURIComponent(JSON.stringify(helper.getIndex()));
758
 
759
- /** If we have pushState push_state is false wait for one second to push the state in history **/
760
- if (push_state) {
761
- updateBrowserUrlBar(url);
762
- }
763
- else
764
- {
765
- clearTimeout(history_timeout);
766
- history_timeout = setTimeout(function() {
767
- updateBrowserUrlBar(url)
768
- }, 1000);
769
- }
770
- };
771
 
772
- var getRefinementsFromUrl = function() {
 
 
 
 
 
 
 
 
 
 
773
 
774
- if (location.hash && location.hash.indexOf('#q=') === 0)
775
- {
776
- var params = location.hash.substring(3);
777
- var pageParamOffset = params.indexOf('&page=');
778
- var refinementsParamOffset = params.indexOf('&refinements=');
779
- var numericsRefinementsParamOffset = params.indexOf('&numerics_refinements=');
780
- var indexNameOffset = params.indexOf('&index_name=');
781
-
782
- var q = decodeURIComponent(params.substring(0, pageParamOffset));
783
- var page = parseInt(params.substring(pageParamOffset + '&page='.length, refinementsParamOffset));
784
- var refinements = JSON.parse(decodeURIComponent(params.substring(refinementsParamOffset + '&refinements='.length, numericsRefinementsParamOffset)));
785
- var numericsRefinements = JSON.parse(decodeURIComponent(params.substring(numericsRefinementsParamOffset + '&numerics_refinements='.length, indexNameOffset)));
786
- var indexName = JSON.parse(decodeURIComponent(params.substring(indexNameOffset + '&index_name='.length)));
787
-
788
- q = $("<div/>").html(q).text();
789
-
790
- helper.setQuery(q);
791
-
792
- helper.clearRefinements();
793
-
794
- /** Set refinements from url data **/
795
- for (var i = 0; i < refinements.length; ++i) {
796
- for (var refine in refinements[i]) {
797
- for (var j = 0; j < refinements[i][refine].length; j++) {
798
- helper.toggleRefine(refine, refinements[i][refine][j]);
799
- helper_empty.toggleRefine(refine, refinements[i][refine][j]);
800
  }
801
  }
802
- }
803
-
804
- for (var key in numericsRefinements)
805
- for (var operator in numericsRefinements[key])
806
- helper.addNumericRefinement(key, operator, numericsRefinements[key][operator]);
807
 
808
- helper.setIndex(indexName).setCurrentPage(page);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
 
810
- }
811
- helper.search();
812
- };
 
 
813
 
814
- var getFacets = function (content) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
815
 
816
- var facets = [];
 
817
 
818
- for (var i = 0; i < algoliaConfig.facets.length; i++)
819
- {
820
- var sub_facets = [];
821
 
822
- if (custom_facets_types[algoliaConfig.facets[i].type] != undefined)
823
- {
824
- try
825
- {
826
- var params = custom_facets_types[algoliaConfig.facets[i].type](helper, content, algoliaConfig.facets[i]);
827
-
828
- if (params)
829
- for (var k = 0; k < params.length; k++)
830
- sub_facets.push(params[k]);
831
- }
832
- catch(error)
833
- {
834
- console.log(error);
835
- throw("Bad facet function for '" + algoliaConfig.facets[i].type + "'");
836
  }
837
- }
838
- else
839
- {
840
- var content_facet = content.getFacetByName(algoliaConfig.facets[i].attribute);
841
-
842
- if (content_facet == undefined)
843
- continue;
844
-
845
- for (var key in content_facet.data)
846
- {
847
- var checked = helper.isRefined(algoliaConfig.facets[i].attribute, key);
848
 
849
- var nameattr = window.facetsLabels && window.facetsLabels[key] != undefined ? window.facetsLabels[key] : key;
850
- var explode = nameattr.split(' /// ');
851
- var name = explode[explode.length - 1];
852
 
853
- var params = {
854
- type: {},
855
- checked: checked,
856
- nameattr: nameattr,
857
- name: name,
858
- count: content_facet.data[key]
859
- };
860
 
861
- params.type[algoliaConfig.facets[i].type] = true;
 
862
 
863
- sub_facets.push(params);
 
 
 
 
864
  }
865
 
866
- sub_facets.sort(function sortByCheckedThenCount(f1, f2) {
867
- if (f1.checked !== f2.checked)
868
- return f1.checked ? -1 : 1;
869
-
870
- if (f2.count !== f1.count)
871
- return f2.count - f1.count;
872
 
873
- return f1.name.localeCompare(f2.name);
 
 
874
  });
875
-
876
- }
877
-
878
- var label = algoliaConfig.facets[i].label !== "" ? algoliaConfig.facets[i].label : algoliaConfig.facets[i].attribute;
879
-
880
- facets.push({count: sub_facets.length, attribute: algoliaConfig.facets[i].attribute, facet_categorie_name: label, sub_facets: sub_facets });
881
- }
882
-
883
- return facets;
884
- };
885
-
886
- var getPages = function (content) {
887
- var pages = [];
888
- if (content.page > 5)
889
- {
890
- pages.push({ current: false, number: 1 });
891
- pages.push({ current: false, number: '...', disabled: true });
892
- }
893
-
894
- for (var p = content.page - 5; p < content.page + 5; ++p)
895
- {
896
- if (p < 0 || p >= content.nbPages)
897
- continue;
898
-
899
- pages.push({ current: content.page == p, number: (p + 1) });
900
- }
901
- if (content.page + 5 < content.nbPages)
902
- {
903
- pages.push({ current: false, number: '...', disabled: true });
904
- pages.push({ current: false, number: content.nbPages });
905
- }
906
-
907
- return pages;
908
- };
909
-
910
- var sortSelected = function () {
911
- return function (val) {
912
- var template = algoliaBundle.Hogan.compile(val);
913
-
914
- var renderer = function(context) {
915
- return function(text) {
916
- return template.c.compile(text, template.options).render(context);
917
- };
918
- };
919
-
920
- var render = renderer(this);
921
-
922
- var index_name = render(val);
923
-
924
- if (index_name == helper.getIndex())
925
- return "selected";
926
- return "";
927
- }
928
- };
929
-
930
- var gotoPage = function(page) {
931
- helper.setCurrentPage(+page - 1);
932
- };
933
-
934
- var getDate = function () {
935
- return function (val) {
936
- var template = algoliaBundle.Hogan.compile(val);
937
-
938
- var renderer = function(context) {
939
- return function(text) {
940
- return template.c.compile(text, template.options).render(context);
941
- };
942
- };
943
-
944
- var render = renderer(this);
945
-
946
- var timestamp = render(val);
947
-
948
-
949
- var date = new Date(timestamp * 1000);
950
-
951
- var days = ["<?php echo $this->__('Sunday'); ?>", "<?php echo $this->__('Monday'); ?>", "<?php echo $this->__('Tuesday'); ?>", "<?php echo $this->__('Wednesday'); ?>", "<?php echo $this->__('Thursday'); ?>", "<?php echo $this->__('Friday'); ?>", "<?php echo $this->__('Saturday'); ?>"];
952
- var months = ["<?php echo $this->__('January'); ?>", "<?php echo $this->__('February'); ?>", "<?php echo $this->__('March'); ?>", "<?php echo $this->__('April'); ?>", "<?php echo $this->__('May'); ?>", "<?php echo $this->__('June'); ?>", "<?php echo $this->__('July'); ?>", "<?php echo $this->__('August'); ?>", "<?php echo $this->__('September'); ?>", "<?php echo $this->__('October'); ?>", "<?php echo $this->__('November'); ?>", "<?php echo $this->__('December'); ?>"];
953
-
954
- var day = date.getDate();
955
-
956
- if (day == 1)
957
- day += "<?php echo $this->__('st'); ?>";
958
- else if (day == 2)
959
- day += "<?php echo $this->__('nd'); ?>";
960
- else if (day == 3)
961
- day += "<?php echo $this->__('rd'); ?>";
962
- else
963
- day += "<?php echo $this->__('th'); ?>";
964
-
965
- return days[date.getDay()] + ", " + months[date.getMonth()] + " " + day + ", " + date.getFullYear();
966
- }
967
- };
968
-
969
- /*****************
970
- **
971
- ** RENDERING HELPERS
972
- **
973
- *****************/
974
-
975
- function getHtmlForPagination(paginationTemplate, content, pages, facets) {
976
- var pagination_html = paginationTemplate.render({
977
- pages: pages,
978
- facets_count: facets.length,
979
- prev_page: (content.page > 0 ? content.page : false),
980
- next_page: (content.page + 1 < content.nbPages ? content.page + 2 : false)
981
- });
982
-
983
- return pagination_html;
984
- }
985
-
986
- function getHtmlForResults(resultsTemplate, content, facets) {
987
-
988
- var results_html = resultsTemplate.render({
989
- facets_count: facets.length,
990
- getDate: getDate,
991
- relevance_index_name: algoliaConfig.indexName + '_products',
992
- sorting_indices: algoliaConfig.sortingIndices,
993
- sortSelected: sortSelected,
994
- hits: content.hits,
995
- nbHits: content.nbHits,
996
- nbHits_zero: (content.nbHits === 0),
997
- nbHits_one: (content.nbHits === 1),
998
- nbHits_many: (content.nbHits > 1),
999
- query: helper.state.query,
1000
- processingTimeMS: content.processingTimeMS,
1001
- isAddToCartEnabled: algoliaConfig.instant.isAddToCartEnabled
1002
- });
1003
-
1004
- return results_html;
1005
- }
1006
-
1007
- function getHtmlForFacets(facetsTemplate, facets, empty) {
1008
-
1009
- var facets_html = facetsTemplate.render({
1010
- facets: facets,
1011
- count: facets.length,
1012
- getDate: getDate,
1013
- relevance_index_name: algoliaConfig.indexName + '_products',
1014
- sorting_indices: algoliaConfig.sortingIndices,
1015
- sortSelected: sortSelected,
1016
- empty: empty
1017
- }, {
1018
- facet_hierarchical: facet_hierarchical
1019
- });
1020
-
1021
- return facets_html;
1022
- }
1023
-
1024
- /*****************
1025
- **
1026
- ** AUTOCOMPLETION MENU
1027
- **
1028
- *****************/
1029
-
1030
- if (algoliaConfig.autocomplete.enabled)
1031
- {
1032
- var params = {};
1033
-
1034
- var hogan_objs = [];
1035
-
1036
- var indices = ['categories', 'products', 'pages'];
1037
- var indices_with_suffix = ['categories', 'products', 'pages'];
1038
-
1039
- if (algoliaConfig.autocomplete.hitsPerPage['suggestions'] > 0)
1040
- {
1041
- var suggestions_index = algolia_client.initIndex(algoliaConfig.indexName + "_suggestions");
1042
- var products_index = algolia_client.initIndex(algoliaConfig.indexName + "_products");
1043
-
1044
- hogan_objs.push({
1045
- displayKey: 'query',
1046
- source: function (query, cb) {
1047
- suggestions_index.search(query, {
1048
- hitsPerPage: algoliaConfig.autocomplete.hitsPerPage['suggestions'],
1049
- analyticsTags: 'autocomplete'
1050
- }, function (err, content) {
1051
- if (err)
1052
- return;
1053
-
1054
- if (content.hits.length > 0) {
1055
- products_index.search(content.hits[0].query, {
1056
- facets: ['categories.level0'],
1057
- hitsPerPage: 0,
1058
- typoTolerance: false,
1059
- maxValuesPerFacet: 3,
1060
- analyticsTags: 'instant-search'
1061
- }, function (err2, content2) {
1062
-
1063
- if (err2)
1064
- {
1065
- cb([]);
1066
- return;
1067
- }
1068
-
1069
- var hits = [];
1070
-
1071
- var categories = {};
1072
-
1073
- if (content2.facets['categories.level0']) {
1074
-
1075
- var obj = $.extend(true, {}, content.hits[0]);
1076
- obj.category = '<?php echo $this->__('All departments') ?>';
1077
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1078
- hits.push(obj);
1079
-
1080
- for (var key in content2.facets['categories.level0']) {
1081
-
1082
- var explode = key.split(' /// ');
1083
- var nameattr = explode[0];
1084
-
1085
- categories[nameattr] = 1;
1086
- }
1087
-
1088
- for (var key in categories)
1089
- {
1090
- var obj = $.extend(true, {}, content.hits[0]);
1091
- obj.category = key;
1092
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query + '#q=' + obj.query + '&page=0&refinements=%5B%7B%22categories%22%3A%5B%22' + obj.category + '%22%5D%7D%5D&numerics_refinements=%7B%7D&index_name=%22<?php echo $product_helper->getBaseIndexName(); ?>_products%22';
1093
- hits.push(obj);
1094
- }
1095
- }
1096
- else
1097
- {
1098
- var obj = $.extend(true, {}, content.hits[0]);
1099
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1100
- hits.push(obj);
1101
- }
1102
-
1103
- for (var k = 1; k < content.hits.length; k++)
1104
- {
1105
- var obj = $.extend(true, {}, content.hits[k]);
1106
- obj.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + obj.query;
1107
- hits.push(obj);
1108
- }
1109
-
1110
-
1111
- for (var k = 0; k < hits.length; k++)
1112
- hits[k].query = content.query;
1113
-
1114
- cb(hits);
1115
- });
1116
- }
1117
- else
1118
- cb([]);
1119
- });
1120
- },
1121
- templates: {
1122
- suggestion: function (hit) {
1123
- return algoliaConfig.autocomplete.templates['suggestions'].render(hit);
1124
- }
1125
- }
1126
  });
1127
- }
1128
 
1129
- for (var i = 0; i < indices.length; i++)
1130
- {
1131
- if (algoliaConfig.autocomplete.hitsPerPage[indices[i]] > 0)
1132
- {
1133
- var index = algolia_client.initIndex(algoliaConfig.indexName + "_" + indices_with_suffix[i]);
1134
-
1135
- hogan_objs.push({
1136
- source: (function (index, i) {
1137
- return function (query, cb) {
1138
- index.search(query, {
1139
- hitsPerPage: algoliaConfig.autocomplete.hitsPerPage[indices[i]],
1140
- analyticsTags: 'autocomplete'
1141
- }, function (err, content) {
1142
- if (err)
1143
- {
1144
- cb([]);
1145
- return;
1146
- }
1147
-
1148
- for (var k = 0; k < content.hits.length; k++)
1149
- content.hits[k].query = content.query;
1150
-
1151
- cb(content.hits);
1152
- });
1153
- }
1154
- })(index, i),
1155
- displayKey: 'query',
1156
  templates: {
1157
- header: '<div class="category">' + algoliaConfig.autocomplete.titles[indices[i]] + '</div>',
1158
- suggestion: (function (i) {
1159
- return function (hit) {
1160
- if (indices[i] == 'products')
1161
- {
1162
- var time = Math.floor(Date.now() / 1000);
1163
-
1164
- if ((hit.special_price_from_date != undefined && (hit.special_price_from_date > time && hit.special_price_from_date !== '')) ||
1165
- (hit.special_price_to_date != undefined && (hit.special_price_to_date < time && hit.special_price_to_date !== '')))
1166
- {
1167
- delete hit.special_price_from_date;
1168
- delete hit.special_price_to_date;
1169
- delete hit.special_price;
1170
- delete hit.special_price_with_tax;
1171
- delete hit.special_price_formated;
1172
- delete hit.special_price_with_tax_formated;
1173
- }
1174
-
1175
- if (Array.isArray(hit.categories_without_path))
1176
- hit.categories_without_path = hit.categories_without_path.join(', ');
1177
-
1178
- if (Array.isArray(hit._highlightResult.name)) {
1179
- hit._highlightResult.name = hit._highlightResult.name[0];
1180
- hit.displayKey = hit.name[0];
1181
- }
1182
-
1183
- if (Array.isArray(hit.price))
1184
- hit.price = hit.price[0];
1185
-
1186
- if ('<?php echo $price_key; ?>' !== '.default' && hit['price']['<?php echo $price_key; ?>'.substr(1) + '_formated'] !== hit['price']['default_formated'])
1187
- {
1188
- hit['price']['<?php echo $price_key; ?>'.substr(1) + '_original_formated'] = hit['price']['default_formated'];
1189
- }
1190
-
1191
- }
1192
-
1193
- if (indices[i] == 'categories')
1194
- {
1195
- hit.displayKey = hit.path;
1196
- }
1197
-
1198
- hit.displayKey = hit.displayKey || hit.name;
1199
-
1200
- return algoliaConfig.autocomplete.templates[indices[i]].render(hit);
1201
- }
1202
- })(i)
1203
- }
1204
- });
1205
- }
1206
- }
1207
-
1208
- for (var i = 0; i < algoliaConfig.autocomplete.additionnalSection.length; i++)
1209
- {
1210
- var index = algolia_client.initIndex(algoliaConfig.indexName + "_section_" + algoliaConfig.autocomplete.additionnalSection[i].attribute);
1211
-
1212
- var label = algoliaConfig.autocomplete.additionnalSection[i].label !== "" ?
1213
- algoliaConfig.autocomplete.additionnalSection[i].label : algoliaConfig.autocomplete.additionnalSection[i].attribute;
1214
-
1215
- hogan_objs.push({
1216
- source: (function (index, i) {
1217
- return function (query, cb) {
1218
- index.search(query, {
1219
- hitsPerPage: algoliaConfig.autocomplete.additionnalSection[i].hitsPerPage,
1220
- analyticsTags: 'autocomplete'
1221
- }, function (err, content) {
1222
- if (err)
1223
- {
1224
- cb([]);
1225
- return;
1226
- }
1227
-
1228
- cb(content.hits);
1229
- });
1230
- }
1231
- })(index, i),
1232
- displayKey: 'value',
1233
- templates: {
1234
- header: '<div class="category">' + label + '</div>',
1235
- suggestion: (function (i) {
1236
- return function (hit) {
1237
- hit.url = '<?php echo $base_url; ?>/catalogsearch/result/?q=' + hit.value + '&refinement_key=' + algoliaConfig.autocomplete.additionnalSection[i].attribute + "&refinement_value=" + hit.value;
1238
-
1239
- return algoliaConfig.autocomplete.templates.additionnalSection.render(hit);
1240
- }
1241
- })(i)
1242
- }
1243
- });
1244
- }
1245
 
1246
- if (algoliaConfig.removeBranding === false)
1247
- {
1248
- hogan_objs.push({
1249
- source: function findMatches(q, cb) {
1250
- return cb(["algolia-branding"]);
1251
- },
1252
- displayKey: 'title',
1253
- templates: {
1254
- suggestion: function (hit) {
1255
- return '<div class="footer_algolia"><a href="https://www.algolia.com/?utm_source=magento&utm_medium=link&utm_campaign=magento_autocompletion_menu" target="_blank"><img src="<?php echo $base_url; ?>/skin/frontend/base/default/algoliasearch/algolia-logo.png" /></a></div>';
1256
  }
1257
  }
1258
  });
1259
- }
1260
-
1261
- $(algoliaConfig.autocomplete.selector).each(function (i) {
1262
- var tt = $(this)
1263
- .typeahead({hint: false}, hogan_objs)
1264
- .parent()
1265
- .attr('id', 'algolia-autocomplete-tt');
1266
-
1267
- $(this).on('typeahead:selected', function (e, item) {
1268
- autocomplete = false;
1269
- instant = false;
1270
- window.location.href = item.url;
1271
- });
1272
- });
1273
-
1274
- $("#algolia-glass").click(function () {
1275
- $(this).closest('form').submit();
1276
- });
1277
- }
1278
-
1279
- /*****************
1280
- **
1281
- ** INSTANT RESULTS PAGE SEARCH
1282
- **
1283
- *****************/
1284
-
1285
- if (algoliaConfig.instant.enabled && (<?php echo $isSearchPage ? "true" : "false"; ?> || ! algoliaConfig.autocomplete.enabled))
1286
- {
1287
- if ($(algoliaConfig.instant.selector).length !== 1)
1288
- throw '[Algolia] Invalid instant-search selector: ' + algoliaConfig.instant.selector;
1289
-
1290
- if (algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find(algoliaConfig.autocomplete.selector).length > 0)
1291
- throw '[Algolia] You can\'t have a search input matching "' + algoliaConfig.autocomplete.selector +
1292
- '" inside you instant selector "' + algoliaConfig.instant.selector + '"';
1293
-
1294
- var instant_selector = ! algoliaConfig.autocomplete.enabled ? "#search" : "#instant-search-bar";
1295
-
1296
- var wrapperTemplate = algoliaBundle.Hogan.compile($('#instant_wrapper_template').html());
1297
-
1298
- var initialized = false;
1299
-
1300
- var resultsTemplate = algoliaBundle.Hogan.compile($('#instant-content-template').html());
1301
- var facetsTemplate = algoliaBundle.Hogan.compile($('#instant-facets-template').html());
1302
- var paginationTemplate = algoliaBundle.Hogan.compile($('#instant-pagination-template').html());
1303
- var facet_hierarchical = algoliaBundle.Hogan.compile($('#instant-facets-hierarchical-template').html());
1304
-
1305
-
1306
- function performQueries(push_state)
1307
- {
1308
- helper.search();
1309
-
1310
- updateUrl(push_state);
1311
- }
1312
-
1313
- function searchCallbackEmpty(content)
1314
- {
1315
- var instant_search_facets_container = $('#instant-search-facets-container');
1316
-
1317
- var facets = getFacets(content);
1318
-
1319
- instant_search_facets_container.html(getHtmlForFacets(facetsTemplate, facets, true));
1320
- }
1321
-
1322
- function searchCallback(content)
1323
- {
1324
- if (initialized === false)
1325
- {
1326
- $(algoliaConfig.instant.selector).html(wrapperTemplate.render({ second_bar: algoliaConfig.autocomplete.enabled })).show();
1327
- initialized = true;
1328
- }
1329
- /**
1330
- * Modify results to be able to print it with Hogan
1331
- */
1332
- for (var i = 0; i < content.hits.length; ++i)
1333
- {
1334
- if (Array.isArray(content.hits[i].categories))
1335
- content.hits[i].categories = content.hits[i].categories.join(', ');
1336
-
1337
- if (Array.isArray(content.hits[i]._highlightResult.name))
1338
- content.hits[i]._highlightResult.name = content.hits[i]._highlightResult.name[0];
1339
-
1340
- if (Array.isArray(content.hits[i].price))
1341
- content.hits[i].price = content.hits[i].price[0];
1342
-
1343
- var time = Math.floor(Date.now() / 1000);
1344
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1345
 
1346
- if ((content.hits[i].special_price_from_date != undefined && (content.hits[i].special_price_from_date > time && content.hits[i].special_price_from_date !== '')) ||
1347
- (content.hits[i].special_price_to_date != undefined && (content.hits[i].special_price_to_date < time && content.hits[i].special_price_to_date !== '')))
1348
- {
1349
- delete content.hits[i].special_price_from_date;
1350
- delete content.hits[i].special_price_to_date;
1351
- delete content.hits[i].special_price;
1352
- delete content.hits[i].special_price_with_tax;
1353
- delete content.hits[i].special_price_formated;
1354
- delete content.hits[i].special_price_with_tax_formated;
1355
- }
1356
 
1357
- if (content.hits[i].min_formated !== undefined)
1358
- {
1359
- delete content.hits[i].price;
1360
- delete content.hits[i].price_formated;
1361
- delete content.hits[i].price_with_tax;
1362
- delete content.hits[i].price_with_tax_formated;
1363
- }
1364
 
1365
- if ('<?php echo $price_key; ?>' !== '.default' && content.hits[i]['price']['<?php echo $price_key; ?>'.substr(1) + '_formated'] !== content.hits[i]['price']['default_formated'])
1366
- {
1367
- content.hits[i]['price']['<?php echo $price_key; ?>'.substr(1) + '_original_formated'] = content.hits[i]['price']['default_formated'];
1368
  }
 
1369
 
1370
- }
1371
-
1372
- /**
1373
- * Generate HTML
1374
- */
1375
 
1376
- var instant_search_facets_container = $('#instant-search-facets-container');
1377
- var instant_search_results_container = $('#instant-search-results-container');
1378
- var instant_search_pagination_container = $('#instant-search-pagination-container');
1379
 
1380
- instant_search_pagination_container.html('');
1381
 
1382
- var facets = [];
1383
- var pages = [];
 
1384
 
1385
- if (content.hits.length > 0)
1386
- {
1387
- facets = getFacets(content);
1388
- pages = getPages(content);
1389
 
1390
- instant_search_facets_container.html(getHtmlForFacets(facetsTemplate, facets, false));
1391
- }
1392
- else
1393
- {
1394
- helper_empty.search();
1395
- }
1396
 
1397
- instant_search_results_container.html(getHtmlForResults(resultsTemplate, content, facets));
 
 
 
 
 
 
 
 
 
 
 
 
1398
 
1399
- if (content.hits.length > 0)
1400
- instant_search_pagination_container.html(getHtmlForPagination(paginationTemplate, content, pages, facets));
1401
 
1402
- updateSliderValues();
1403
 
1404
  var instant_search_bar = $(instant_selector);
1405
-
1406
  if (instant_search_bar.is(":focus") === false)
1407
  {
1408
  if ($(window).width() > 992) {
1409
- instant_search_bar.focus().val('');
 
 
1410
  }
1411
- instant_search_bar.val(helper.state.query);
1412
  }
1413
- }
1414
-
1415
- helper.on('result', searchCallback);
1416
- helper_empty.on('result', searchCallbackEmpty);
1417
-
1418
- custom_facets_types["hierarchical"] = function (helper, content, facet) {
1419
- var data = [];
1420
-
1421
- var content_facet = content.getFacetByName(facet.attribute);
1422
 
1423
- content_facet.name = window.facetsLabels && window.facetsLabels[content_facet.name] != undefined ? window.facetsLabels[content_facet.name] : content_facet.name;
1424
- content_facet.type = { hierarchical: true };
1425
-
1426
- return [content_facet];
1427
- };
1428
-
1429
- /**
1430
- * Example of a custom facet type
1431
- */
1432
- custom_facets_types["menu"] = function (helper, content, facet) {
1433
-
1434
- var data = [];
1435
-
1436
- var all_count = 0;
1437
- var all_unchecked = true;
1438
-
1439
- var content_facet = content.getFacetByName(facet.attribute);
1440
-
1441
- if (content_facet == undefined)
1442
- return data;
1443
-
1444
- for (var key in content_facet.data)
1445
- {
1446
- var checked = helper.isRefined(facet.attribute, key);
1447
-
1448
- all_unchecked = all_unchecked && !checked;
1449
-
1450
- var name = window.facetsLabels && window.facetsLabels[key] != undefined ? window.facetsLabels[key] : key;
1451
- var explode = name.split(' /// ');
1452
- var nameattr = explode[explode.length - 1];
1453
-
1454
- var params = {
1455
- type: {},
1456
- checked: checked,
1457
- nameattr: nameattr,
1458
- name: name,
1459
- print_count: true,
1460
- count: content_facet.data[key]
1461
- };
1462
 
1463
- all_count += content_facet.data[key];
1464
-
1465
- params.type[facet.type] = true;
1466
-
1467
- data.push(params);
1468
- }
1469
-
1470
- var params = {
1471
- type: {},
1472
- checked: all_unchecked,
1473
- nameattr: 'all',
1474
- name: 'All',
1475
- print_count: false,
1476
- count: all_count
1477
- };
1478
-
1479
- params.type[facet.type] = true;
1480
-
1481
- data.unshift(params);
1482
-
1483
- return data;
1484
- };
1485
-
1486
- /**
1487
- * Handle click on menu custom facet
1488
- */
1489
- $("body").on("click", ".sub_facet.menu", function (e) {
1490
-
1491
- e.stopImmediatePropagation();
1492
-
1493
- if ($(this).hasClass("empty")) {
1494
- helper.setQuery("");
1495
- }
1496
-
1497
- if ($(this).attr("data-name") == "all")
1498
- helper.state.clearRefinements($(this).attr("data-attribute"));
1499
-
1500
- $(this).find("input[type='checkbox']").each(function (i) {
1501
- $(this).prop("checked", !$(this).prop("checked"));
1502
-
1503
- if (false == helper.isRefined($(this).attr("data-attribute"), $(this).attr("data-name")))
1504
- helper.state.clearRefinements($(this).attr("data-attribute"));
1505
-
1506
- if ($(this).attr("data-name") != "all")
1507
- {
1508
- helper.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1509
- helper_empty.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1510
  }
 
1511
  });
 
1512
 
1513
- performQueries(true);
1514
- });
 
 
 
1515
 
1516
- /**
1517
- * Handle click on hierarchical facet
1518
- */
1519
- $("body").on("click", ".sub_facet.hierarchical", function (e) {
1520
 
1521
- e.stopImmediatePropagation();
 
 
 
1522
 
1523
- if ($(this).hasClass("empty")) {
1524
- helper.setQuery("");
1525
  }
1526
 
1527
- helper.toggleRefine($(this).attr("data-name"), $(this).attr('data-path'));
1528
- helper_empty.toggleRefine($(this).attr("data-name"), $(this).attr('data-path'));
1529
 
1530
- performQueries(true);
1531
- });
 
1532
 
1533
- /**
1534
- * Handle click on conjunctive and disjunctive facet
1535
- */
1536
- $("body").on("click", ".sub_facet", function () {
1537
 
1538
- if ($(this).hasClass("empty")) {
1539
- helper.setQuery("");
1540
- }
1541
 
1542
- $(this).find("input[type='checkbox']").each(function (i) {
1543
- $(this).prop("checked", !$(this).prop("checked"));
1544
-
1545
- helper.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1546
- helper_empty.toggleRefine($(this).attr("data-attribute"), $(this).attr("data-name"));
1547
  });
1548
 
1549
- performQueries(true);
1550
- });
1551
-
1552
- /**
1553
- * Handle jquery-ui slider initialisation
1554
- */
1555
- $("body").on("slide", "", function (event, ui) {
1556
- updateSlideInfos(ui);
1557
- });
1558
-
1559
- /**
1560
- * Handle sort change
1561
- */
1562
- $("body").on("change", "#index_to_use", function () {
1563
- helper.setIndex($(this).val());
1564
-
1565
- helper.setCurrentPage(0);
1566
-
1567
- performQueries(true);
1568
- });
1569
-
1570
- /**
1571
- * Handle jquery-ui slide event
1572
- */
1573
- $("body").on("slidechange", ".algolia-slider-true", function (event, ui) {
1574
-
1575
- var slide_dom = $(ui.handle).closest(".algolia-slider");
1576
- var min = slide_dom.slider("values")[0];
1577
- var max = slide_dom.slider("values")[1];
1578
-
1579
- if (parseInt(slide_dom.slider("values")[0]) >= parseInt(slide_dom.attr("data-min")))
1580
- helper.addNumericRefinement(slide_dom.attr("data-attribute"), ">=", min);
1581
- if (parseInt(slide_dom.slider("values")[1]) <= parseInt(slide_dom.attr("data-max")))
1582
- helper.addNumericRefinement(slide_dom.attr("data-attribute"), "<=", max);
1583
-
1584
- if (parseInt(min) == parseInt(slide_dom.attr("data-min")))
1585
- helper.removeNumericRefinement(slide_dom.attr("data-attribute"), ">=");
1586
-
1587
- if (parseInt(max) == parseInt(slide_dom.attr("data-max")))
1588
- helper.removeNumericRefinement(slide_dom.attr("data-attribute"), "<=");
1589
-
1590
- updateSlideInfos(ui);
1591
- performQueries(true);
1592
- });
1593
-
1594
- /**
1595
- * Handle page change
1596
- */
1597
- $("body").on("click", ".algolia-pagination a", function (e) {
1598
- e.preventDefault();
1599
-
1600
- gotoPage($(this).attr("data-page"));
1601
- performQueries(true);
1602
-
1603
- $("body").scrollTop(0);
1604
-
1605
- return false;
1606
- });
1607
-
1608
- /** Handle input clearing **/
1609
- $('body').on('click', '.clear-button', function () {
1610
- $(instant_selector).val('').focus();
1611
- helper.clearRefinements().setQuery('');
1612
-
1613
- performQueries(true);
1614
- });
1615
-
1616
- /** Handle small screen **/
1617
- $('body').on('click', '#refine-toggle', function () {
1618
- $('#instant-search-facets-container').toggleClass('hidden-sm').toggleClass('hidden-xs');
1619
-
1620
- if ($(this).html()[0] === '+')
1621
- $(this).html('- Refine');
1622
- else
1623
- $(this).html('+ Refine');
1624
- });
1625
-
1626
-
1627
- /**
1628
- * Handle search
1629
- */
1630
-
1631
- $('body').on('keyup', instant_selector, function (e) {
1632
- e.preventDefault();
1633
-
1634
- helper.setQuery($(this).val());
1635
-
1636
- /* Uncomment to clear refinements on keyup */
1637
-
1638
- //helper.clearRefinements();
1639
-
1640
- performQueries(false);
1641
-
1642
- return false;
1643
- });
1644
-
1645
- function updateSliderValues()
1646
- {
1647
- $(".algolia-slider-true").each(function (i) {
1648
- var min = $(this).attr("data-min");
1649
- var max = $(this).attr("data-max");
1650
-
1651
- var new_min = helper.state.getNumericRefinement($(this).attr("data-attribute"), ">=");
1652
- var new_max = helper.state.getNumericRefinement($(this).attr("data-attribute"), "<=");
1653
-
1654
- if (new_min != undefined)
1655
- min = new_min;
1656
 
1657
- if (new_max != undefined)
1658
- max = new_max;
 
1659
 
1660
- $(this).slider({
1661
- min: parseInt($(this).attr("data-min")),
1662
- max: parseInt($(this).attr("data-max")),
1663
- range: true,
1664
- values: [min, max]
1665
- });
 
 
 
 
1666
  });
1667
  }
1668
-
1669
- function updateSlideInfos(ui)
1670
- {
1671
- var infos = $(ui.handle).closest(".algolia-slider").nextAll(".algolia-slider-info");
1672
-
1673
- infos.find(".min").html(ui.values[0]);
1674
- infos.find(".max").html(ui.values[1]);
1675
- }
1676
-
1677
- function updateBrowserUrlBar(url) {
1678
- if (supportsHistory) {
1679
- history.pushState(url, null, url);
1680
- } else {
1681
- window.location.hash = url;
1682
- }
1683
- }
1684
-
1685
- /**
1686
- * Initialization
1687
- */
1688
-
1689
- /** Clean input **/
1690
- $(algoliaConfig.autocomplete.selector).attr('autocomplete', 'off').attr('autocorrect', 'off').attr('spellcheck', 'false').attr('autocapitalize', 'off');
1691
-
1692
- if (<?php echo $isSearchPage ? "true" : "false"; ?> || location.hash.length > 1) {
1693
- getRefinementsFromUrl();
1694
- }
1695
-
1696
-
1697
- if (supportsHistory) {
1698
- // FIX SAFARI ISSUE
1699
- if (document.readyState !== 'complete') {
1700
- // load event has not fired
1701
- window.addEventListener('load', function() {
1702
- setTimeout(function() {
1703
- window.addEventListener("popstate", getRefinementsFromUrl);
1704
- }, 0);
1705
- }, false);
1706
- }
1707
- else {
1708
- // load event has fired
1709
- window.addEventListener("popstate", getRefinementsFromUrl);
1710
- }
1711
- } else {
1712
- window.addEventListener("hashchange", getRefinementsFromUrl);
1713
- }
1714
-
1715
- onfocus_css = {
1716
- 'opacity': '1',
1717
- 'fill': '#54A5CD',
1718
- 'stroke': '#54A5CD'
1719
- };
1720
-
1721
- onblur_css = {
1722
- 'opacity': '0.4',
1723
- 'fill': '#AAA',
1724
- 'stroke': '#AAA'
1725
- };
1726
-
1727
- $('#search').focus(function () {
1728
- $(this).parent().next().css(onfocus_css);
1729
- }).blur(function () {
1730
- $(this).parent().next().css(onblur_css);
1731
- }).parent().next().css(onblur_css);
1732
-
1733
- }
1734
  });
1735
 
1736
  //]]>
1737
- </script>
1
+ <!--
2
+ //================================
3
+ //
4
+ // Search box
5
+ //
6
+ //================================
7
+ -->
8
+
9
  <?php
10
  $config = Mage::helper('algoliasearch/config');
11
+ $catalogSearchHelper = $this->helper('catalogsearch');
12
+ $price_key = $config->isCustomerGroupsEnabled(Mage::app()->getStore()->getStoreId()) ? '.group_'.$group_id : '.default';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  $title = '';
15
+ $description = '';
16
  $content = '';
17
+ $imgHtml = '';
18
 
 
 
 
19
  if($config->isInstantEnabled() && $config->replaceCategories() && Mage::app()->getRequest()->getControllerName() == 'category')
20
  {
21
  $category = Mage::registry('current_category');
22
+ $title = $category->getName();
23
 
24
  if ($category && $category->getDisplayMode() !== 'PAGE')
25
  {
27
 
28
  if ($category->getDisplayMode() == 'PRODUCTS_AND_PAGE')
29
  {
30
+ $page = $category->getLandingPage();
31
+ $cms_block = Mage::getModel('cms/block')->load($page);
 
 
 
32
 
33
+ $description = $category->getDescription();
34
+ $content = $this->getLayout()->createBlock('cms/block')->setBlockId($page)->toHtml();
35
 
36
+ if ($category->getImageUrl())
37
+ {
38
+ $imgHtml = '<p class="category-image"><img src="'.$category->getImageUrl().'" alt="'.$this->escapeHtml($category->getName()).'" title="'.$this->escapeHtml($category->getName()).'" /></p>';
39
+ $imgHtml = $this->helper('catalog/output')->categoryAttribute($category, $imgHtml, 'image');
40
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
 
 
42
  }
43
  }
44
 
45
+ $placeholder = $this->__('Search for products, categories, ...');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
  ?>
48
 
49
+ <?php if ($config->isDefaultSelector()): ?>
50
  <form id="search_mini_form" action="<?php echo $catalogSearchHelper->getResultUrl() ?>" method="get">
51
+ <div id="algolia-searchbox">
52
  <label for="search"><?php echo $this->__('Search:') ?></label>
53
+ <input id="search" type="text" name="<?php echo $catalogSearchHelper->getQueryParamName() ?>" class="input-text algolia-search-input" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" placeholder="<?php echo $placeholder; ?>" />
54
+ <img class="clear-query-autocomplete" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
55
  <svg id="algolia-glass" xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
56
+ <g transform="scale(4)">
57
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
58
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
59
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
60
+ </g>
61
  </svg>
62
  </div>
63
  </form>
64
+ <?php endif; ?>
65
 
66
  <!--
67
  //================================
78
  <div class="thumb"><img src="{{thumbnail_url}}" /></div>
79
  {{/thumbnail_url}}
80
 
 
 
 
 
 
 
 
 
 
 
 
 
81
  <div class="info">
82
  {{{_highlightResult.name.value}}}
83
 
 
84
  <div class="algoliasearch-autocomplete-category">
85
+ {{#categories_without_path}}
86
+ <?php echo $this->__('in'); ?> {{{categories_without_path}}}
87
+ {{/categories_without_path}}
88
+
89
+ {{#_highlightResult.color}}
90
+ {{#_highlightResult.color.value}}
91
+ <span>
92
+ {{#categories_without_path}} | {{/categories_without_path}} Color: {{{_highlightResult.color.value}}}
93
+ </span>
94
+ {{/_highlightResult.color.value}}
95
+ {{/_highlightResult.color}}
96
+ </div>
97
+
98
+ <div class="algoliasearch-autocomplete-price">
99
+ <span class="after_special {{#price<?php echo $price_key; ?>_original_formated}}promotion{{/price<?php echo $price_key; ?>_original_formated}}">
100
+ {{price<?php echo $price_key; ?>_formated}}
101
+ </span>
102
+
103
+ {{#price<?php echo $price_key; ?>_original_formated}}
104
+ <span class="before_special">
105
+ {{price<?php echo $price_key; ?>_original_formated}}
106
+ </span>
107
+ {{/price<?php echo $price_key; ?>_original_formated}}
108
  </div>
 
109
  </div>
 
110
  </a>
111
  </script>
112
 
125
  {{^image_url}}
126
  <div class="info-without-thumb">
127
  {{#_highlightResult.path}}
128
+ {{{_highlightResult.path.value}}}
129
  {{/_highlightResult.path}}
130
  {{^_highlightResult.path}}
131
+ {{{path}}}
132
  {{/_highlightResult.path}}
133
 
134
  {{#product_count}}
135
+ <small>({{product_count}})</small>
136
  {{/product_count}}
137
 
138
  </div>
147
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
148
  <div class="info-without-thumb">
149
  {{{_highlightResult.name.value}}}
150
+ {{#content}}
151
+ <div class="details">
152
+ {{{content}}}
153
+ </div>
154
+ {{/content}}
155
  </div>
156
  <div class="clearfix"></div>
157
  </a>
170
  <!-- Suggestion hit template -->
171
  <script type="text/template" id="autocomplete_suggestions_template">
172
  <a class="algoliasearch-autocomplete-hit" href="{{url}}">
173
+ <svg xmlns="http://www.w3.org/2000/svg" class="algolia-glass-suggestion magnifying-glass" width="24" height="24" viewBox="0 0 128 128" >
174
+ <g transform="scale(2.5)">
175
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
176
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
177
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z" ></path>
178
+ </g>
179
+ </svg>
180
  <div class="info-without-thumb">
181
  {{{_highlightResult.query.value}}}
182
 
183
  {{#category}}
184
+ <span class="text-muted"><?php echo $this->__('in'); ?></span> <span class="category-tag">{{category}}</span>
185
  {{/category}}
186
  </div>
187
  <div class="clearfix"></div>
201
 
202
  <!-- Wrapping template -->
203
  <script type="text/template" id="instant_wrapper_template">
204
+ {{#findAutocomplete}}
205
+ <div id="algolia-autocomplete-container"></div>
206
+ {{/findAutocomplete}}
207
  <div id="algolia_instant_selector"<?php echo count($config->getFacets()) > 0 ? ' class="with-facets"' : '' ?>>
208
 
209
+ <?php if ($title || $imgHtml || $description || $content): ?>
210
+ <div class="row">
211
+ <div class="col-md-12">
212
+ <div id="algolia-static-content">
213
+ <div class="page-title category-title">
214
+ <h1><?php echo $title; ?></h1>
215
+ </div>
216
+ <div>
217
+ <?php echo $imgHtml; ?>
218
+ </div>
219
+ <div class="category-description std">
220
+ <?php echo $description; ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
221
  </div>
222
+ <?php echo $content; ?>
223
  </div>
 
224
  </div>
225
  </div>
226
+ <?php endif; ?>
227
 
228
  <div class="row">
229
  <div class="col-md-3" id="algolia-left-container">
230
  <div id="refine-toggle" class="visible-xs visible-sm">+ <?php echo $this->__('Refine'); ?></div>
231
+ <div class="hidden-xs hidden-sm" id="instant-search-facets-container">
232
+ <div id="current-refinements"></div>
233
+ </div>
234
  </div>
235
 
236
  <div class="col-md-9" id="algolia-right-container">
237
+ <div class="row">
238
+ <div class="col-md-12">
239
+ <div>
240
+ {{#second_bar}}
241
+ <div id="instant-search-bar-container">
242
+ <div id="instant-search-box">
243
+ <label for="instant-search-bar">
244
+ <?php echo $this->__('Search :'); ?>
245
+ </label>
246
+
247
+ <input placeholder="<?php echo $this->__('Search for products'); ?>" id="instant-search-bar" type="text" autocomplete="off" spellcheck="false" autocorrect="off" autocapitalize="off" />
248
+
249
+ <img class="clear-query-instant" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
250
+ <svg xmlns="http://www.w3.org/2000/svg" class="magnifying-glass" width="24" height="24" viewBox="0 0 128 128">
251
+ <g transform="scale(4)">
252
+ <path stroke-width="3" d="M19.5 19.582l9.438 9.438"></path>
253
+ <circle stroke-width="3" cx="12" cy="12" r="10.5" fill="none"></circle>
254
+ <path d="M23.646 20.354l-3.293 3.293c-.195.195-.195.512 0 .707l7.293 7.293c.195.195.512.195.707 0l3.293-3.293c.195-.195.195-.512 0-.707l-7.293-7.293c-.195-.195-.512-.195-.707 0z"></path>
255
+ </g>
256
+ </svg>
257
+ </div>
258
+ </div>
259
+ {{/second_bar}}
260
+ </div>
261
+ </div>
262
+ </div>
263
+ <div class="row">
264
+ <div>
265
+ <div class="hits">
266
+ <div class="infos">
267
+ <div class="pull-left" id="algolia-stats"></div>
268
+ <div class="pull-right" id="algolia-sorts"></div>
269
+ <div class="clearfix"></div>
270
+ </div>
271
+ <div id="instant-search-results-container"></div>
272
+ </div>
273
+ </div>
274
+ <div class="clearfix"></div>
275
+ </div>
276
+
277
+ <div class="text-center">
278
+ <div id="instant-search-pagination-container"></div>
279
+ </div>
280
  </div>
281
  </div>
282
 
283
  </div>
284
  </script>
285
 
286
+ <script type="text/template" id="instant-hit-template">
287
+ <div class="col-md-4 col-sm-6">
288
+ <div class="result-wrapper">
289
+ <a href="{{url}}" class="result">
290
+ <div class="result-content">
291
+ <div class="result-thumbnail">
292
+ {{#image_url}}<img src="{{{ image_url }}}" />{{/image_url}}
293
+ {{^image_url}}<span class="no-image"></span>{{/image_url}}
294
+ </div>
295
+ <div class="result-sub-content">
296
+ <h3 class="result-title text-ellipsis">
297
+ {{{ _highlightResult.name.value }}}
298
+ </h3>
299
+ <div class="ratings">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
  <div class="result-sub-content">
 
 
 
301
  <div class="ratings">
302
  <div class="rating-box">
303
  <div class="rating" style="width:{{rating_summary}}%" width="148" height="148"></div>
304
  </div>
305
  </div>
306
  <div class="price">
307
+ <div class="price-wrapper">
308
  <div>
309
+ <span class="after_special {{#price<?php echo $price_key; ?>_original_formated}}promotion{{/price<?php echo $price_key; ?>_original_formated}}">
310
  {{price<?php echo $price_key; ?>_formated}}
311
  </span>
312
 
318
  </div>
319
  </div>
320
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  </div>
322
  </div>
323
+ <div class="result-description text-ellipsis">{{{ _highlightResult.description.value }}}</div>
324
+
325
+ {{#isAddToCartEnabled}}
326
+ {{#in_stock}}
327
+ <form action="<?php echo Mage::getBaseUrl(); ?>/checkout/cart/add/product/{{objectID}}" method="post">
328
+ <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey(); ?>" />
329
+ <input type="hidden" name="qty" value="1">
330
+ <button type="submit"><?php echo $this->__('Add to Cart'); ?></button>
331
+ </form>
332
+ {{/in_stock}}
333
+ {{/isAddToCartEnabled}}
334
+ </div>
335
  </div>
336
+ <div class="clearfix"></div>
337
+ </a>
338
  </div>
 
 
 
 
 
 
 
339
  </div>
340
  </script>
341
 
342
+ <script type="text/template" id="instant-stats-template">
343
+ {{#hasOneResult}}<strong>1</strong> <?php echo $this->__('result'); ?> found{{/hasOneResult}}
344
+ {{#hasManyResults}}{{^hasNoResults}}{{first}}-{{last}} out of{{/hasNoResults}} <strong>{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} <?php echo $this->__('results found'); ?></strong>{{/hasManyResults}}
345
+ <?php echo $this->__('in'); ?> {{seconds}} <?php echo $this->__('seconds'); ?>
 
 
 
 
 
 
 
346
  </script>
347
 
348
+ <script type="text/template" id="facet-template">
349
+ <div class="sub_facet {{#isRefined}}checked{{/isRefined}}">
350
+ <input class="facet_value" {{#isRefined}}checked{{/isRefined}} type="checkbox">
351
+ {{name}}
352
+ <span class="count">{{count}}</span>
353
+ </div>
354
+ </script>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
355
 
 
 
 
 
 
356
 
357
+ <script type="text/template" id="current-refinements-template">
358
+ <div class="cross-wrapper">
359
+ <img src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross.png" />
360
+ </div>
361
+ <div class="current-refinement-wrapper">
362
+ {{#label}}
363
+ <span class="current-refinement-label">{{label}}{{^operator}}:{{/operator}}</span>
364
+ {{/label}}
365
+ {{#operator}}
366
+ {{{displayOperator}}}
367
+ {{/operator}}
368
+ {{#exclude}}-{{/exclude}}
369
+ <span class="current-refinement-name">{{name}}</span>
370
  </div>
371
  </script>
372
 
373
+ <script type="text/template" id="menu-template">
374
+ <div class="autocomplete-wrapper">
375
+ <div class="col9">
376
+ <div class="aa-dataset-products"></div>
377
+ </div>
378
+ <div class="col3">
379
+ <div class="other-sections">
380
+ <div class="aa-dataset-suggestions"></div>
381
+ <?php for ($i = 0; $i < 10; $i++): ?>
382
+ <div class="aa-dataset-<?php echo $i; ?>"></div>
383
+ <?php endfor; ?>
384
+ </div>
 
 
 
 
 
 
 
 
 
 
 
 
385
  </div>
386
  </div>
387
  </script>
388
 
 
389
  <!--
390
  //================================
391
  //
398
  <script type="text/javascript">
399
  //<![CDATA[
400
 
401
+ document.addEventListener("DOMContentLoaded", function(event) {
402
+ algoliaBundle.$(function ($) {
403
+ algoliaConfig.autocomplete.templates = {
404
+ suggestions: algoliaBundle.Hogan.compile($('#autocomplete_suggestions_template').html()),
405
+ products: algoliaBundle.Hogan.compile($('#autocomplete_products_template').html()),
406
+ categories: algoliaBundle.Hogan.compile($('#autocomplete_categories_template').html()),
407
+ pages: algoliaBundle.Hogan.compile($('#autocomplete_pages_template').html()),
408
+ additionnalSection: algoliaBundle.Hogan.compile($('#autocomplete_extra_template').html())
409
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
410
 
411
+ var algolia_client = algoliaBundle.algoliasearch(algoliaConfig.applicationId, algoliaConfig.apiKey);
412
 
413
+ if (algoliaConfig.instant.enabled && (algoliaConfig.isSearchPage || !algoliaConfig.autocomplete.enabled))
 
 
 
 
 
414
  {
415
+ if ($(algoliaConfig.instant.selector).length <= 0)
416
+ throw '[Algolia] Invalid instant-search selector: ' + algoliaConfig.instant.selector;
 
 
 
 
417
 
418
+ if (algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find(algoliaConfig.autocomplete.selector).length > 0)
419
+ throw '[Algolia] You can\'t have a search input matching "' + algoliaConfig.autocomplete.selector +
420
+ '" inside you instant selector "' + algoliaConfig.instant.selector + '"';
 
421
 
422
+ var instant_selector = !algoliaConfig.autocomplete.enabled ? ".algolia-search-input" : "#instant-search-bar";
423
 
424
+ var wrapperTemplate = algoliaBundle.Hogan.compile($('#instant_wrapper_template').html());
 
425
 
426
+ var findAutocomplete = algoliaConfig.autocomplete.enabled && $(algoliaConfig.instant.selector).find('#algolia-autocomplete-container').length > 0;
427
+ $(algoliaConfig.instant.selector).html(wrapperTemplate.render({second_bar: algoliaConfig.autocomplete.enabled, findAutocomplete: findAutocomplete})).show();
 
 
 
428
 
429
+ /** Initialise instant search **/
430
+ var search = algoliaBundle.instantsearch({
431
+ appId: algoliaConfig.applicationId,
432
+ apiKey: algoliaConfig.apiKey,
433
+ indexName: algoliaConfig.indexName + '_products',
434
+ urlSync: {
435
+ useHash: true,
436
+ trackedParameters: ['query', 'page', 'attribute:*', 'index']
437
+ }
438
+ });
 
 
439
 
440
+ search.addWidget({
441
+ getConfiguration: function () {
442
+ if (algoliaConfig.request.query.length > 0 && location.hash.length < 1) {
443
+ return { query: algoliaConfig.request.query }
444
+ }
445
+ return {};
446
+ },
447
+ init: function(data) {
448
+ if (algoliaConfig.request.refinement_key.length > 0) {
449
+ data.helper.toggleRefine(algoliaConfig.request.refinement_key, algoliaConfig.request.refinement_value);
450
+ }
451
 
452
+ if (algoliaConfig.isCategoryPage) {
453
+ data.helper.addNumericRefinement('visibility_catalog', '=', 1);
454
+ }
455
+ else {
456
+ data.helper.addNumericRefinement('visibility_search', '=', 1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
457
  }
458
  }
459
+ });
 
 
 
 
460
 
461
+ /** Search bar **/
462
+ search.addWidget(
463
+ algoliaBundle.instantsearch.widgets.searchBox({
464
+ container: instant_selector,
465
+ placeholder: 'Search for products'
466
+ })
467
+ );
468
+
469
+ /** Stats **/
470
+ search.addWidget(
471
+ algoliaBundle.instantsearch.widgets.stats({
472
+ container: '#algolia-stats',
473
+ templates: {
474
+ body: $('#instant-stats-template').html()
475
+ },
476
+ transformData: function (data) {
477
+ data.first = data.page * data.hitsPerPage + 1;
478
+ data.last = Math.min(data.page * data.hitsPerPage + data.hitsPerPage, data.nbHits);
479
+ data.seconds = data.processingTimeMS / 1000;
480
+
481
+ return data;
482
+ }
483
+ })
484
+ );
485
 
486
+ /** Sorts **/
487
+ algoliaConfig.sortingIndices.unshift({
488
+ name: algoliaConfig.indexName + '_products',
489
+ label: '<?php echo $this->__('Relevance'); ?>'
490
+ });
491
 
492
+ search.addWidget(
493
+ algoliaBundle.instantsearch.widgets.sortBySelector({
494
+ container: '#algolia-sorts',
495
+ indices: algoliaConfig.sortingIndices,
496
+ cssClass: 'form-control'
497
+ })
498
+ );
499
+
500
+ /** Hits **/
501
+ search.addWidget(
502
+ algoliaBundle.instantsearch.widgets.hits({
503
+ container: '#instant-search-results-container',
504
+ templates: {
505
+ item: $('#instant-hit-template').html()
506
+ },
507
+ transformData: {
508
+ item: function (hit) {
509
+ hit = transformHit(hit, algoliaConfig.priceKey);
510
+ hit.isAddToCartEnabled = algoliaConfig.instant.isAddToCartEnabled;
511
+
512
+ return hit;
513
+ }
514
+ },
515
+ hitsPerPage: algoliaConfig.hitsPerPage
516
+ })
517
+ );
518
+
519
+ search.addWidget({
520
+ suggestions: [],
521
+ init: function () {
522
+ if (algoliaConfig.showSuggestionsOnNoResultsPage) {
523
+ var $this = this;
524
+ $.each(algoliaConfig.popularQueries.slice(0, Math.min(4, algoliaConfig.popularQueries.length)), function (i, query) {
525
+ query = $('<div>').html(query).text(); //xss
526
+ $this.suggestions.push('<a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=' + encodeURIComponent(query) + '">' + query + '</a>');
527
+ });
528
+ }
529
+ },
530
+ render: function (data) {
531
+ if (data.results.hits.length === 0) {
532
+ var content = '<div class="no-results">';
533
+ content += '<div><b><?php echo $this->__('No products for query'); ?> "' + $("<div>").text(data.results.query).html() + '</b>"</div>';
534
+ content += '<div class="popular-searches">';
535
+
536
+ if (algoliaConfig.showSuggestionsOnNoResultsPage && this.suggestions.length > 0) {
537
+ content += '<div><?php echo $this->__('You can can try one of he popular seearch queries'); ?></div>' + this.suggestions.join(', ');
538
+ }
539
 
540
+ content += '</div>';
541
+ content += '<?php echo $this->__('or'); ?> <a href="' + algoliaConfig.baseUrl + '/catalogsearch/result/?q=__empty__"><?php echo $this->__('See all products'); ?></a>'
542
 
543
+ content += '</div>';
 
 
544
 
545
+ $('#instant-search-results-container').html(content);
546
+ }
 
 
 
 
 
 
 
 
 
 
 
 
547
  }
548
+ });
 
 
 
 
 
 
 
 
 
 
549
 
550
+ /** Facets **/
551
+ var wrapper = document.getElementById('instant-search-facets-container');
 
552
 
553
+ var attributes = [];
 
 
 
 
 
 
554
 
555
+ $.each(algoliaConfig.facets, function (i, facet) {
556
+ var name = facet.attribute;
557
 
558
+ if (name === 'categories') {
559
+ if (algoliaConfig.isCategoryPage) {
560
+ return;
561
+ }
562
+ name = 'categories.level0';
563
  }
564
 
565
+ if (name === 'price') {
566
+ name = facet.attribute + algoliaConfig.priceKey
567
+ }
 
 
 
568
 
569
+ attributes.push({
570
+ name: name,
571
+ label: facet.label ? facet.label : facet.attribute
572
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
573
  });
 
574
 
575
+ search.addWidget(
576
+ algoliaBundle.instantsearch.widgets.currentRefinedValues({
577
+ container: '#current-refinements',
578
+ cssClasses: {
579
+ root: 'facet'
580
+ },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
581
  templates: {
582
+ header: '<div class="name">' + '<?php echo $this->__('Selected Filters'); ?>' + '</div>',
583
+ item: $('#current-refinements-template').html()
584
+ },
585
+ attributes: attributes,
586
+ onlyListedAttributes: true
587
+ })
588
+ );
589
+
590
+ search.addWidget({
591
+ render: function (data) {
592
+ if (data.results.hits.length === 0) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
 
 
 
 
 
 
 
 
 
 
 
594
  }
595
  }
596
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
597
 
598
+ var customAttributeFacet = {
599
+ categories: function(facet, templates) {
600
+ var hierarchical_levels = [];
601
+ for (var l = 0; l < 10; l++)
602
+ hierarchical_levels.push('categories.level' + l.toString());
603
+
604
+ var hierarchicalMenuParams = {
605
+ container: facet.wrapper.appendChild(document.createElement('div')),
606
+ attributes: hierarchical_levels,
607
+ separator: ' /// ',
608
+ alwaysGetRootLevel: true,
609
+ templates: templates,
610
+ sortBy: ['name:asc'],
611
+ cssClasses: {
612
+ list: 'hierarchical',
613
+ root: 'facet hierarchical'
614
+ }
615
+ };
616
 
617
+ hierarchicalMenuParams.templates.item = '' +
618
+ '<div class="ais-hierearchical-link-wrapper">' +
619
+ '<a class="{{cssClasses.link}}" href="{{url}}">{{name}}' +
620
+ '{{#isRefined}}<img class="cross-circle" src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/cross-circle.png"/>{{/isRefined}}' +
621
+ '<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>' +
622
+ '</div>';
 
 
 
 
623
 
624
+ if (algoliaConfig.request.path.length > 0) {
625
+ hierarchicalMenuParams.rootPath = algoliaConfig.request.path;
626
+ }
 
 
 
 
627
 
628
+ return algoliaBundle.instantsearch.widgets.hierarchicalMenu(hierarchicalMenuParams);
 
 
629
  }
630
+ };
631
 
632
+ $.each(algoliaConfig.facets, function (i, facet) {
 
 
 
 
633
 
634
+ if (facet.attribute.indexOf("price") !== -1)
635
+ facet.attribute = facet.attribute + algoliaConfig.priceKey;
 
636
 
637
+ facet.wrapper = wrapper;
638
 
639
+ var templates = {
640
+ header: '<div class="name">' + (facet.label ? facet.label : facet.attribute) + '</div>'
641
+ };
642
 
643
+ var widget = customAttributeFacet[facet.attribute] !== undefined ?
644
+ customAttributeFacet[facet.attribute](facet, templates) :
645
+ getFacetWidget(facet, templates);
 
646
 
647
+ search.addWidget(widget);
648
+ });
 
 
 
 
649
 
650
+ /** Pagination **/
651
+ search.addWidget(
652
+ algoliaBundle.instantsearch.widgets.pagination({
653
+ container: '#instant-search-pagination-container',
654
+ cssClass: 'algolia-pagination',
655
+ showFirstLast: false,
656
+ labels: {
657
+ previous: '<?php echo $this->__('Previous page'); ?>',
658
+ next: '<?php echo $this->__('Next page'); ?>'
659
+ },
660
+ scrollTo: 'body'
661
+ })
662
+ );
663
 
664
+ search.start();
 
665
 
666
+ handleInputCrossInstant($(instant_selector));
667
 
668
  var instant_search_bar = $(instant_selector);
 
669
  if (instant_search_bar.is(":focus") === false)
670
  {
671
  if ($(window).width() > 992) {
672
+ if (algoliaConfig.autofocus === false) {
673
+ instant_search_bar.focus().val('');
674
+ }
675
  }
676
+ instant_search_bar.val(search.helper.state.query);
677
  }
 
 
 
 
 
 
 
 
 
678
 
679
+ $('#search_mini_form').addClass('search-page');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
680
 
681
+ $(document).on('click', '.ais-hierarchical-menu--link, .ais-refinement-list--checkbox', function () {
682
+ if ($(window).width() > 992) {
683
+ instant_search_bar.focusWithoutScrolling();
684
+ if (algoliaConfig.autofocus === false) {
685
+ instant_search_bar.val('');
686
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
687
  }
688
+ instant_search_bar.val(search.helper.state.query);
689
  });
690
+ }
691
 
692
+ /*****************
693
+ **
694
+ ** AUTOCOMPLETION MENU
695
+ **
696
+ *****************/
697
 
698
+ /** keep it after instant search to be able to bind to the recreated <div id="algolia-autocomplete-container"></div> **/
699
+ if (algoliaConfig.autocomplete.enabled) {
700
+ var sources = [];
 
701
 
702
+ /** Add products and categories that are required sections **/
703
+ var nb_cat = algoliaConfig.autocomplete.nbOfCategoriesSuggestions >= 1 ? algoliaConfig.autocomplete.nbOfCategoriesSuggestions: 2;
704
+ var nb_pro = algoliaConfig.autocomplete.nbOfProductsSuggestions >= 1 ? algoliaConfig.autocomplete.nbOfProductsSuggestions : 6;
705
+ var nb_que = algoliaConfig.autocomplete.nbOfQueriesSuggestions >= 0 ? algoliaConfig.autocomplete.nbOfQueriesSuggestions : 0;
706
 
707
+ if (nb_que > 0) {
708
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_que, label: '', name: "suggestions"});
709
  }
710
 
711
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_cat, label: <?php echo json_encode($this->__('Categories')); ?>, name: "categories"});
712
+ algoliaConfig.autocomplete.sections.unshift({ hitsPerPage: nb_pro, label: <?php echo json_encode($this->__('Products')); ?>, name: "products"});
713
 
714
+ var i = 0;
715
+ $.each(algoliaConfig.autocomplete.sections, function (name, section) {
716
+ var source = getAutocompleteSource(section, algolia_client, $, i);
717
 
718
+ if (source)
719
+ sources.push(source);
 
 
720
 
721
+ /* Those sections have already specific placeholder, so do not use the default aa-dataset-{i} class */
722
+ if (section.name !== 'suggestions' && section.name !== 'products')
723
+ i++;
724
 
 
 
 
 
 
725
  });
726
 
727
+ // setup the auto-completed search input
728
+ $(algoliaConfig.autocomplete.selector).each(function (i) {
729
+ var menu = $(this);
730
+ var options = {
731
+ hint: false,
732
+ templates: {
733
+ dropdownMenu: '#menu-template'
734
+ },
735
+ dropdownMenuContainer: "#algolia-autocomplete-container",
736
+ debug: false
737
+ };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
738
 
739
+ if (algoliaConfig.removeBranding === false) {
740
+ options.templates.footer = '<div class="footer_algolia"><span>Search by</span> <a href="https://www.algolia.com/?utm_source=magento&utm_medium=link&utm_campaign=magento_autocompletion_menu" target="_blank"><img src="<?php echo Mage::getBaseUrl(); ?>/skin/frontend/base/default/algoliasearch/algolia-logo.png" /></a></div>';
741
+ }
742
 
743
+ $(this)
744
+ .autocomplete(options, sources)
745
+ .parent()
746
+ .attr('id', 'algolia-autocomplete-tt')
747
+ .on('autocomplete:updated', function (e) {
748
+ fixAutocompleteCssSticky(menu);
749
+ })
750
+ .on('autocomplete:updated', function (e) {
751
+ fixAutocompleteCssHeight(menu);
752
+ });
753
  });
754
  }
755
+ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
756
  });
757
 
758
  //]]>
759
+ </script>
app/etc/modules/Algolia_Algoliasearch.xml CHANGED
@@ -4,7 +4,7 @@
4
  <Algolia_Algoliasearch>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
- <version>1.0.1</version>
8
  </Algolia_Algoliasearch>
9
  </modules>
10
  </config>
4
  <Algolia_Algoliasearch>
5
  <active>true</active>
6
  <codePool>community</codePool>
7
+ <version>1.5.0</version>
8
  </Algolia_Algoliasearch>
9
  </modules>
10
  </config>
js/algoliasearch/Function.prototype.bind.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // Magento is using a very old prototype.js version with a poor Function.prototype.bind
2
+ // forced overloading, we redefine it here so that our code works
3
+ // ref: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
4
+ Function.prototype.bind = function(oThis) {
5
+ if (typeof this !== 'function') {
6
+ // closest thing possible to the ECMAScript 5
7
+ // internal IsCallable function
8
+ throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');
9
+ }
10
+
11
+ var aArgs = Array.prototype.slice.call(arguments, 1),
12
+ fToBind = this,
13
+ fNOP = function() {},
14
+ fBound = function() {
15
+ return fToBind.apply(this instanceof fNOP
16
+ ? this
17
+ : oThis,
18
+ aArgs.concat(Array.prototype.slice.call(arguments)));
19
+ };
20
+
21
+ if (this.prototype) {
22
+ // native functions don't have a prototype
23
+ fNOP.prototype = this.prototype;
24
+ }
25
+ fBound.prototype = new fNOP();
26
+
27
+ return fBound;
28
+ };
js/algoliasearch/admin_scripts.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ algoliaAdminBundle.$(function($) {
2
+ var fixHelper = function(e, ui) {
3
+ ui.children().each(function() {
4
+ $(this).width($(this).width());
5
+ });
6
+ return ui;
7
+ };
8
+
9
+ $(".grid tbody").sortable({
10
+ containment: "parent",
11
+ items: 'tr:not(:first-child):not(:last-child)',
12
+ helper: fixHelper,
13
+ start: function (event, ui) {
14
+ $(ui.item).css('box-shadow', '2px 2px 2px #444').css('margin-left', '10px');
15
+ }
16
+ });
17
+
18
+ $('.grid tr:not(:first-child):not(:last-child) td').css('cursor', 'move');
19
+ });
js/algoliasearch/algoliaAdminBundle.min.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! algoliaAdminBundle 4.2.0 | © Algolia SAS | algolia.com */!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.algoliaAdminBundle=t():e.algoliaAdminBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports={$:n(1),instantsearch:n(2),algoliasearch:n(7),algoliasearchHelper:n(74),Hogan:n(537),autocomplete:n(608),angular:n(624)},n(626)},function(e,t){var n,r;!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(i,o){function a(e){var t="length"in e&&e.length,n=ue.type(e);return"function"===n||ue.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function s(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ve.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e){var t=Ce[e]={};return ue.each(e.match(_e)||[],function(e,n){t[n]=!0}),t}function l(){ye.addEventListener?(ye.removeEventListener("DOMContentLoaded",p,!1),i.removeEventListener("load",p,!1)):(ye.detachEvent("onreadystatechange",p),i.detachEvent("onload",p))}function p(){(ye.addEventListener||"load"===event.type||"complete"===ye.readyState)&&(l(),ue.ready())}function f(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Pe,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Te.test(n)?ue.parseJSON(n):n}catch(i){}ue.data(e,t,n)}else n=void 0}return n}function d(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function h(e,t,n,r){if(ue.acceptData(e)){var i,o,a=ue.expando,s=e.nodeType,u=s?ue.cache:e,c=s?e[a]:e[a]&&a;if(c&&u[c]&&(r||u[c].data)||void 0!==n||"string"!=typeof t)return c||(c=s?e[a]=J.pop()||ue.guid++:a),u[c]||(u[c]=s?{}:{toJSON:ue.noop}),("object"==typeof t||"function"==typeof t)&&(r?u[c]=ue.extend(u[c],t):u[c].data=ue.extend(u[c].data,t)),o=u[c],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[ue.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[ue.camelCase(t)])):i=o,i}}function m(e,t,n){if(ue.acceptData(e)){var r,i,o=e.nodeType,a=o?ue.cache:e,s=o?e[ue.expando]:ue.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in r?t=[t]:(t=ue.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!d(r):!ue.isEmptyObject(r))return}(n||(delete a[s].data,d(a[s])))&&(o?ue.cleanData([e],!0):ae.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function v(){return!0}function g(){return!1}function y(){try{return ye.activeElement}catch(e){}}function b(e){var t=Ve.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function x(e,t){var n,r,i=0,o=typeof e.getElementsByTagName!==Oe?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Oe?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||ue.nodeName(r,t)?o.push(r):ue.merge(o,x(r,t));return void 0===t||t&&ue.nodeName(e,t)?ue.merge([e],o):o}function w(e){Ae.test(e.type)&&(e.defaultChecked=e.checked)}function E(e,t){return ue.nodeName(e,"table")&&ue.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function _(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function C(e){var t=Xe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){for(var n,r=0;null!=(n=e[r]);r++)ue._data(n,"globalEval",!t||ue._data(t[r],"globalEval"))}function $(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,r,i,o=ue._data(e),a=ue._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)ue.event.add(t,n,s[n][r])}a.data&&(a.data=ue.extend({},a.data))}}function O(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ae.noCloneEvent&&t[ue.expando]){i=ue._data(t);for(r in i.events)ue.removeEvent(t,r,i.handle);t.removeAttribute(ue.expando)}"script"===n&&t.text!==e.text?(_(t).text=e.text,C(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ae.html5Clone&&e.innerHTML&&!ue.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ae.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function T(e,t){var n,r=ue(t.createElement(e)).appendTo(t.body),o=i.getDefaultComputedStyle&&(n=i.getDefaultComputedStyle(r[0]))?n.display:ue.css(r[0],"display");return r.detach(),o}function P(e){var t=ye,n=rt[e];return n||(n=T(e,t),"none"!==n&&n||(nt=(nt||ue("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(nt[0].contentWindow||nt[0].contentDocument).document,t.write(),t.close(),n=T(e,t),nt.detach()),rt[e]=n),n}function S(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function D(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=vt.length;i--;)if(t=vt[i]+n,t in e)return t;return r}function R(e,t){for(var n,r,i,o=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(o[a]=ue._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Re(r)&&(o[a]=ue._data(r,"olddisplay",P(r.nodeName)))):(i=Re(r),(n&&"none"!==n||!i)&&ue._data(r,"olddisplay",i?n:ue.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function k(e,t,n){var r=ft.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function A(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=ue.css(e,n+De[o],!0,i)),r?("content"===n&&(a-=ue.css(e,"padding"+De[o],!0,i)),"margin"!==n&&(a-=ue.css(e,"border"+De[o]+"Width",!0,i))):(a+=ue.css(e,"padding"+De[o],!0,i),"padding"!==n&&(a+=ue.css(e,"border"+De[o]+"Width",!0,i)));return a}function j(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=it(e),a=ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=ot(e,t,o),(0>i||null==i)&&(i=e.style[t]),st.test(i))return i;r=a&&(ae.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+A(e,t,n||(a?"border":"content"),r,o)+"px"}function I(e,t,n,r,i){return new I.prototype.init(e,t,n,r,i)}function M(){return setTimeout(function(){gt=void 0}),gt=ue.now()}function F(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=De[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function L(e,t,n){for(var r,i=(_t[t]||[]).concat(_t["*"]),o=0,a=i.length;a>o;o++)if(r=i[o].call(n,t,e))return r}function V(e,t,n){var r,i,o,a,s,u,c,l,p=this,f={},d=e.style,h=e.nodeType&&Re(e),m=ue._data(e,"fxshow");n.queue||(s=ue._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,p.always(function(){p.always(function(){s.unqueued--,ue.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],c=ue.css(e,"display"),l="none"===c?ue._data(e,"olddisplay")||P(e.nodeName):c,"inline"===l&&"none"===ue.css(e,"float")&&(ae.inlineBlockNeedsLayout&&"inline"!==P(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",ae.shrinkWrapBlocks()||p.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],bt.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||ue.style(e,r)}else c=void 0;if(ue.isEmptyObject(f))"inline"===("none"===c?P(e.nodeName):c)&&(d.display=c);else{m?"hidden"in m&&(h=m.hidden):m=ue._data(e,"fxshow",{}),o&&(m.hidden=!h),h?ue(e).show():p.done(function(){ue(e).hide()}),p.done(function(){var t;ue._removeData(e,"fxshow");for(t in f)ue.style(e,t,f[t])});for(r in f)a=L(h?m[r]:0,r,p),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function U(e,t){var n,r,i,o,a;for(n in e)if(r=ue.camelCase(n),i=t[r],o=e[n],ue.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=ue.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function H(e,t,n){var r,i,o=0,a=Et.length,s=ue.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=gt||M(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,o=1-r,a=0,u=c.tweens.length;u>a;a++)c.tweens[a].run(o);return s.notifyWith(e,[c,o,n]),1>o&&u?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:ue.extend({},t),opts:ue.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:gt||M(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ue.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),l=c.props;for(U(l,c.opts.specialEasing);a>o;o++)if(r=Et[o].call(c,e,l,c.opts))return r;return ue.map(l,L,c),ue.isFunction(c.opts.start)&&c.opts.start.call(e,c),ue.fx.timer(ue.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function q(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(_e)||[];if(ue.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function B(e,t,n,r){function i(s){var u;return o[s]=!0,ue.each(e[s]||[],function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||o[c]?a?!(u=c):void 0:(t.dataTypes.unshift(c),i(c),!1)}),u}var o={},a=e===Kt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function W(e,t){var n,r,i=ue.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&ue.extend(!0,e,n),e}function z(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}function K(e,t,n,r){var i,o,a,s,u,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(o=l.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=l.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=c[u+" "+o]||c["* "+o],!a)for(i in c)if(s=i.split(" "),s[1]===o&&(a=c[u+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[i]:c[i]!==!0&&(o=s[0],l.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function Q(e,t,n,r){var i;if(ue.isArray(t))ue.each(t,function(t,i){n||Xt.test(e)?r(e,i):Q(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==ue.type(t))r(e,t);else for(i in t)Q(e+"["+i+"]",t[i],n,r)}function Y(){try{return new i.XMLHttpRequest}catch(e){}}function G(){try{return new i.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}function X(e){return ue.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var J=[],Z=J.slice,ee=J.concat,te=J.push,ne=J.indexOf,re={},ie=re.toString,oe=re.hasOwnProperty,ae={},se="1.11.3",ue=function(e,t){return new ue.fn.init(e,t)},ce=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,le=/^-ms-/,pe=/-([\da-z])/gi,fe=function(e,t){return t.toUpperCase()};ue.fn=ue.prototype={jquery:se,constructor:ue,selector:"",length:0,toArray:function(){return Z.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Z.call(this)},pushStack:function(e){var t=ue.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ue.each(this,e,t)},map:function(e){return this.pushStack(ue.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:te,sort:J.sort,splice:J.splice},ue.extend=ue.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||ue.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(c&&n&&(ue.isPlainObject(n)||(t=ue.isArray(n)))?(t?(t=!1,o=e&&ue.isArray(e)?e:[]):o=e&&ue.isPlainObject(e)?e:{},a[r]=ue.extend(c,o,n)):void 0!==n&&(a[r]=n));return a},ue.extend({expando:"jQuery"+(se+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ue.type(e)},isArray:Array.isArray||function(e){return"array"===ue.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ue.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ue.type(e)||e.nodeType||ue.isWindow(e))return!1;try{if(e.constructor&&!oe.call(e,"constructor")&&!oe.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ae.ownLast)for(t in e)return oe.call(e,t);for(t in e);return void 0===t||oe.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?re[ie.call(e)]||"object":typeof e},globalEval:function(e){e&&ue.trim(e)&&(i.execScript||function(e){i.eval.call(i,e)})(e)},camelCase:function(e){return e.replace(le,"ms-").replace(pe,fe)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=a(e);if(n){if(s)for(;o>i&&(r=t.apply(e[i],n),r!==!1);i++);else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s)for(;o>i&&(r=t.call(e[i],i,e[i]),r!==!1);i++);else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ce,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(a(Object(e))?ue.merge(n,"string"==typeof e?[e]:e):te.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(ne)return ne.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;a>o;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=a(e),u=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&u.push(r);else for(i in e)r=t(e[i],i,n),null!=r&&u.push(r);return ee.apply([],u)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(i=e[t],t=e,e=i),ue.isFunction(e)?(n=Z.call(arguments,2),r=function(){return e.apply(t||this,n.concat(Z.call(arguments)))},r.guid=e.guid=e.guid||ue.guid++,r):void 0},now:function(){return+new Date},support:ae}),ue.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){re["[object "+t+"]"]=t.toLowerCase()});var de=function(e){function t(e,t,n,r){var i,o,a,s,u,c,p,d,h,m;if((t?t.ownerDocument||t:V)!==R&&D(t),t=t||R,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&A){if(11!==s&&(i=ye.exec(e)))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&F(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return J.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&w.getElementsByClassName)return J.apply(n,t.getElementsByClassName(a)),n}if(w.qsa&&(!j||!j.test(e))){if(d=p=L,h=t,m=1!==s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(p=t.getAttribute("id"))?d=p.replace(xe,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;u--;)c[u]=d+f(c[u]);h=be.test(e)&&l(t.parentNode)||t,m=c.join(",")}if(m)try{return J.apply(n,h.querySelectorAll(m)),n}catch(v){}finally{p||t.removeAttribute("id")}}}return O(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>E.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[L]=!0,e}function i(e){var t=R.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)E.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||K)-(~e.sourceIndex||K);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function l(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=H++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,c=[U,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(u=t[L]||(t[L]={}),(s=u[r])&&s[0]===U&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function v(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,c=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function g(e,t,n,i,o,a){return i&&!i[L]&&(i=g(i)),o&&!o[L]&&(o=g(o,a)),r(function(r,a,s,u){var c,l,p,f=[],d=[],h=a.length,g=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?g:v(g,f,e,s,u),b=n?o||(r?e:h||i)?[]:a:y;if(n&&n(y,b,s,u),i)for(c=v(b,d),i(c,[],s,u),l=c.length;l--;)(p=c[l])&&(b[d[l]]=!(y[d[l]]=p));if(r){if(o||e){if(o){for(c=[],l=b.length;l--;)(p=b[l])&&c.push(y[l]=p);o(null,b=[],c,u)}for(l=b.length;l--;)(p=b[l])&&(c=o?ee(r,p):f[l])>-1&&(r[c]=!(a[c]=p))}}else b=v(b===a?b.splice(h,b.length):b),o?o(null,a,b,u):J.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=E.relative[e[0].type],a=o||E.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),c=d(function(e){return ee(t,e)>-1},a,!0),l=[function(e,n,r){var i=!o&&(r||n!==T)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,i}];i>s;s++)if(n=E.relative[e[s].type])l=[d(h(l),n)];else{if(n=E.filter[e[s].type].apply(null,e[s].matches),n[L]){for(r=++s;i>r&&!E.relative[e[r].type];r++);return g(s>1&&h(l),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&f(e))}l.push(n)}return h(l)}function b(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,c){var l,p,f,d=0,h="0",m=r&&[],g=[],y=T,b=r||o&&E.find.TAG("*",c),x=U+=null==y?1:Math.random()||.1,w=b.length;for(c&&(T=a!==R&&a);h!==w&&null!=(l=b[h]);h++){if(o&&l){for(p=0;f=e[p++];)if(f(l,a,s)){u.push(l);break}c&&(U=x)}i&&((l=!f&&l)&&d--,r&&m.push(l))}if(d+=h,i&&h!==d){for(p=0;f=n[p++];)f(m,g,a,s);if(r){if(d>0)for(;h--;)m[h]||g[h]||(g[h]=G.call(u));g=v(g)}J.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&t.uniqueSort(u)}return c&&(U=x,T=y),m};return i?r(a):a}var x,w,E,_,C,N,$,O,T,P,S,D,R,k,A,j,I,M,F,L="sizzle"+1*new Date,V=e.document,U=0,H=0,q=n(),B=n(),W=n(),z=function(e,t){return e===t&&(S=!0),0},K=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,X=Y.push,J=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),oe="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ce=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ae),de=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},_e=function(){D()};try{J.apply(Y=Z.call(V.childNodes),V.childNodes),Y[V.childNodes.length].nodeType}catch(Ce){J={apply:Y.length?function(e,t){X.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:V;return r!==R&&9===r.nodeType&&r.documentElement?(R=r,k=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",_e,!1):n.attachEvent&&n.attachEvent("onunload",_e)),A=!C(r),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ge.test(r.getElementsByClassName),w.getById=i(function(e){return k.appendChild(e).id=L,!r.getElementsByName||!r.getElementsByName(L).length}),w.getById?(E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&A){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},E.filter.ID=function(e){var t=e.replace(we,Ee);return function(e){return e.getAttribute("id")===t}}):(delete E.find.ID,E.filter.ID=function(e){var t=e.replace(we,Ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),E.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},E.find.CLASS=w.getElementsByClassName&&function(e,t){return A?t.getElementsByClassName(e):void 0},I=[],j=[],(w.qsa=ge.test(r.querySelectorAll))&&(i(function(e){k.appendChild(e).innerHTML="<a id='"+L+"'></a><select id='"+L+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&j.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||j.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+L+"-]").length||j.push("~="),e.querySelectorAll(":checked").length||j.push(":checked"),e.querySelectorAll("a#"+L+"+*").length||j.push(".#.+[+~]")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&j.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||j.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),j.push(",.*:")})),(w.matchesSelector=ge.test(M=k.matches||k.webkitMatchesSelector||k.mozMatchesSelector||k.oMatchesSelector||k.msMatchesSelector))&&i(function(e){w.disconnectedMatch=M.call(e,"div"),M.call(e,"[s!='']:x"),I.push("!=",ae)}),j=j.length&&new RegExp(j.join("|")),I=I.length&&new RegExp(I.join("|")),t=ge.test(k.compareDocumentPosition),F=t||ge.test(k.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},z=t?function(e,t){if(e===t)return S=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===V&&F(V,e)?-1:t===r||t.ownerDocument===V&&F(V,t)?1:P?ee(P,e)-ee(P,t):0:4&n?-1:1)}:function(e,t){if(e===t)return S=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,u=[e],c=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:P?ee(P,e)-ee(P,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;u[i]===c[i];)i++;return i?a(u[i],c[i]):u[i]===V?-1:c[i]===V?1:0},r):R},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==R&&D(e),n=n.replace(pe,"='$1']"),!(!w.matchesSelector||!A||I&&I.test(n)||j&&j.test(n)))try{var r=M.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,R,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==R&&D(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==R&&D(e);var n=E.attrHandle[t.toLowerCase()],r=n&&Q.call(E.attrHandle,t.toLowerCase())?n(e,t,!A):void 0;return void 0!==r?r:w.attributes||!A?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(S=!w.detectDuplicates,P=!w.sortStable&&e.slice(0),e.sort(z),S){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return P=null,e},_=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=_(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=_(t);return n},E=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,Ee),e[3]=(e[3]||e[4]||e[5]||"").replace(we,Ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,Ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=q[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&q(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(se," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var c,l,p,f,d,h,m=o!==a?"nextSibling":"previousSibling",v=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(v){if(o){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(l=v[L]||(v[L]={}),c=l[e]||[],d=c[0]===U&&c[1],f=c[0]===U&&c[2],p=d&&v.childNodes[d];p=++d&&p&&p[m]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){l[e]=[U,d,f];break}}else if(y&&(c=(t[L]||(t[L]={}))[e])&&c[0]===U)f=c[1];else for(;(p=++d&&p&&p[m]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==g:1!==p.nodeType)||!++f||(y&&((p[L]||(p[L]={}))[e]=[U,f]),p!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var i,o=E.pseudos[e]||E.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[L]?o(n):o.length>1?(i=[e,e,"",n],E.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=$(e.replace(ue,"$1"));return i[L]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(we,Ee),function(t){return(t.textContent||t.innerText||_(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,Ee).toLowerCase(),function(t){var n;do if(n=A?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===k},focus:function(e){return e===R.activeElement&&(!R.hasFocus||R.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!E.pseudos.empty(e)},header:function(e){return ve.test(e.nodeName)},input:function(e){return me.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);
2
+
3
+ return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},E.pseudos.nth=E.pseudos.eq;for(x in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})E.pseudos[x]=s(x);for(x in{submit:!0,reset:!0})E.pseudos[x]=u(x);return p.prototype=E.filters=E.pseudos,E.setFilters=new p,N=t.tokenize=function(e,n){var r,i,o,a,s,u,c,l=B[e+" "];if(l)return n?0:l.slice(0);for(s=e,u=[],c=E.preFilter;s;){(!r||(i=ce.exec(s)))&&(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=le.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(ue," ")}),s=s.slice(r.length));for(a in E.filter)!(i=he[a].exec(s))||c[a]&&!(i=c[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):B(e,u).slice(0)},$=t.compile=function(e,t){var n,r=[],i=[],o=W[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=y(t[n]),o[L]?r.push(o):i.push(o);o=W(e,b(i,r)),o.selector=e}return o},O=t.select=function(e,t,n,r){var i,o,a,s,u,c="function"==typeof e&&e,p=!r&&N(e=c.selector||e);if(n=n||[],1===p.length){if(o=p[0]=p[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&A&&E.relative[o[1].type]){if(t=(E.find.ID(a.matches[0].replace(we,Ee),t)||[])[0],!t)return n;c&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(a=o[i],!E.relative[s=a.type]);)if((u=E.find[s])&&(r=u(a.matches[0].replace(we,Ee),be.test(o[0].type)&&l(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return J.apply(n,r),n;break}}return(c||$(e,p))(r,t,!A,n,be.test(e)&&l(t.parentNode)||t),n},w.sortStable=L.split("").sort(z).join("")===L,w.detectDuplicates=!!S,D(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(R.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(i);ue.find=de,ue.expr=de.selectors,ue.expr[":"]=ue.expr.pseudos,ue.unique=de.uniqueSort,ue.text=de.getText,ue.isXMLDoc=de.isXML,ue.contains=de.contains;var he=ue.expr.match.needsContext,me=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ve=/^.[^:#\[\.,]*$/;ue.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?ue.find.matchesSelector(r,e)?[r]:[]:ue.find.matches(e,ue.grep(t,function(e){return 1===e.nodeType}))},ue.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(ue(e).filter(function(){for(t=0;i>t;t++)if(ue.contains(r[t],this))return!0}));for(t=0;i>t;t++)ue.find(e,r[t],n);return n=this.pushStack(i>1?ue.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(s(this,e||[],!1))},not:function(e){return this.pushStack(s(this,e||[],!0))},is:function(e){return!!s(this,"string"==typeof e&&he.test(e)?ue(e):e||[],!1).length}});var ge,ye=i.document,be=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,xe=ue.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:be.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ge).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof ue?t[0]:t,ue.merge(this,ue.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:ye,!0)),me.test(n[1])&&ue.isPlainObject(t))for(n in t)ue.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}if(r=ye.getElementById(n[2]),r&&r.parentNode){if(r.id!==n[2])return ge.find(e);this.length=1,this[0]=r}return this.context=ye,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):ue.isFunction(e)?"undefined"!=typeof ge.ready?ge.ready(e):e(ue):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),ue.makeArray(e,this))};xe.prototype=ue.fn,ge=ue(ye);var we=/^(?:parents|prev(?:Until|All))/,Ee={children:!0,contents:!0,next:!0,prev:!0};ue.extend({dir:function(e,t,n){for(var r=[],i=e[t];i&&9!==i.nodeType&&(void 0===n||1!==i.nodeType||!ue(i).is(n));)1===i.nodeType&&r.push(i),i=i[t];return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),ue.fn.extend({has:function(e){var t,n=ue(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(ue.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=he.test(e)||"string"!=typeof e?ue(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&ue.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?ue.unique(o):o)},index:function(e){return e?"string"==typeof e?ue.inArray(this[0],ue(e)):ue.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(ue.unique(ue.merge(this.get(),ue(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),ue.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ue.dir(e,"parentNode")},parentsUntil:function(e,t,n){return ue.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return ue.dir(e,"nextSibling")},prevAll:function(e){return ue.dir(e,"previousSibling")},nextUntil:function(e,t,n){return ue.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return ue.dir(e,"previousSibling",n)},siblings:function(e){return ue.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return ue.sibling(e.firstChild)},contents:function(e){return ue.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:ue.merge([],e.childNodes)}},function(e,t){ue.fn[e]=function(n,r){var i=ue.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=ue.filter(r,i)),this.length>1&&(Ee[e]||(i=ue.unique(i)),we.test(e)&&(i=i.reverse())),this.pushStack(i)}});var _e=/\S+/g,Ce={};ue.Callbacks=function(e){e="string"==typeof e?Ce[e]||c(e):ue.extend({},e);var t,n,r,i,o,a,s=[],u=!e.once&&[],l=function(c){for(n=e.memory&&c,r=!0,o=a||0,a=0,i=s.length,t=!0;s&&i>o;o++)if(s[o].apply(c[0],c[1])===!1&&e.stopOnFalse){n=!1;break}t=!1,s&&(u?u.length&&l(u.shift()):n?s=[]:p.disable())},p={add:function(){if(s){var r=s.length;!function o(t){ue.each(t,function(t,n){var r=ue.type(n);"function"===r?e.unique&&p.has(n)||s.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),t?i=s.length:n&&(a=r,l(n))}return this},remove:function(){return s&&ue.each(arguments,function(e,n){for(var r;(r=ue.inArray(n,s,r))>-1;)s.splice(r,1),t&&(i>=r&&i--,o>=r&&o--)}),this},has:function(e){return e?ue.inArray(e,s)>-1:!(!s||!s.length)},empty:function(){return s=[],i=0,this},disable:function(){return s=u=n=void 0,this},disabled:function(){return!s},lock:function(){return u=void 0,n||p.disable(),this},locked:function(){return!u},fireWith:function(e,n){return!s||r&&!u||(n=n||[],n=[e,n.slice?n.slice():n],t?u.push(n):l(n)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!r}};return p},ue.extend({Deferred:function(e){var t=[["resolve","done",ue.Callbacks("once memory"),"resolved"],["reject","fail",ue.Callbacks("once memory"),"rejected"],["notify","progress",ue.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return ue.Deferred(function(n){ue.each(t,function(t,o){var a=ue.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&ue.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?ue.extend(e,r):r}},i={};return r.pipe=r.then,ue.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=Z.call(arguments),a=o.length,s=1!==a||e&&ue.isFunction(e.promise)?a:0,u=1===s?e:ue.Deferred(),c=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?Z.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&ue.isFunction(o[i].promise)?o[i].promise().done(c(i,r,o)).fail(u.reject).progress(c(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}});var Ne;ue.fn.ready=function(e){return ue.ready.promise().done(e),this},ue.extend({isReady:!1,readyWait:1,holdReady:function(e){e?ue.readyWait++:ue.ready(!0)},ready:function(e){if(e===!0?!--ue.readyWait:!ue.isReady){if(!ye.body)return setTimeout(ue.ready);ue.isReady=!0,e!==!0&&--ue.readyWait>0||(Ne.resolveWith(ye,[ue]),ue.fn.triggerHandler&&(ue(ye).triggerHandler("ready"),ue(ye).off("ready")))}}}),ue.ready.promise=function(e){if(!Ne)if(Ne=ue.Deferred(),"complete"===ye.readyState)setTimeout(ue.ready);else if(ye.addEventListener)ye.addEventListener("DOMContentLoaded",p,!1),i.addEventListener("load",p,!1);else{ye.attachEvent("onreadystatechange",p),i.attachEvent("onload",p);var t=!1;try{t=null==i.frameElement&&ye.documentElement}catch(n){}t&&t.doScroll&&!function r(){if(!ue.isReady){try{t.doScroll("left")}catch(e){return setTimeout(r,50)}l(),ue.ready()}}()}return Ne.promise(e)};var $e,Oe="undefined";for($e in ue(ae))break;ae.ownLast="0"!==$e,ae.inlineBlockNeedsLayout=!1,ue(function(){var e,t,n,r;n=ye.getElementsByTagName("body")[0],n&&n.style&&(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Oe&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",ae.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=ye.createElement("div");if(null==ae.deleteExpando){ae.deleteExpando=!0;try{delete e.test}catch(t){ae.deleteExpando=!1}}e=null}(),ue.acceptData=function(e){var t=ue.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return 1!==n&&9!==n?!1:!t||t!==!0&&e.getAttribute("classid")===t};var Te=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Pe=/([A-Z])/g;ue.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?ue.cache[e[ue.expando]]:e[ue.expando],!!e&&!d(e)},data:function(e,t,n){return h(e,t,n)},removeData:function(e,t){return m(e,t)},_data:function(e,t,n){return h(e,t,n,!0)},_removeData:function(e,t){return m(e,t,!0)}}),ue.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=ue.data(o),1===o.nodeType&&!ue._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=ue.camelCase(r.slice(5)),f(o,r,i[r])));ue._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){ue.data(this,e)}):arguments.length>1?this.each(function(){ue.data(this,e,t)}):o?f(o,e,ue.data(o,e)):void 0},removeData:function(e){return this.each(function(){ue.removeData(this,e)})}}),ue.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ue._data(e,t),n&&(!r||ue.isArray(n)?r=ue._data(e,t,ue.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=ue.queue(e,t),r=n.length,i=n.shift(),o=ue._queueHooks(e,t),a=function(){ue.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ue._data(e,n)||ue._data(e,n,{empty:ue.Callbacks("once memory").add(function(){ue._removeData(e,t+"queue"),ue._removeData(e,n)})})}}),ue.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?ue.queue(this[0],e):void 0===t?this:this.each(function(){var n=ue.queue(this,e,t);ue._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&ue.dequeue(this,e)})},dequeue:function(e){return this.each(function(){ue.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=ue.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=ue._data(o[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var Se=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,De=["Top","Right","Bottom","Left"],Re=function(e,t){return e=t||e,"none"===ue.css(e,"display")||!ue.contains(e.ownerDocument,e)},ke=ue.access=function(e,t,n,r,i,o,a){var s=0,u=e.length,c=null==n;if("object"===ue.type(n)){i=!0;for(s in n)ue.access(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,ue.isFunction(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(ue(e),n)})),t))for(;u>s;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:c?t.call(e):u?t(e[0],n):o},Ae=/^(?:checkbox|radio)$/i;!function(){var e=ye.createElement("input"),t=ye.createElement("div"),n=ye.createDocumentFragment();if(t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",ae.leadingWhitespace=3===t.firstChild.nodeType,ae.tbody=!t.getElementsByTagName("tbody").length,ae.htmlSerialize=!!t.getElementsByTagName("link").length,ae.html5Clone="<:nav></:nav>"!==ye.createElement("nav").cloneNode(!0).outerHTML,e.type="checkbox",e.checked=!0,n.appendChild(e),ae.appendChecked=e.checked,t.innerHTML="<textarea>x</textarea>",ae.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,n.appendChild(t),t.innerHTML="<input type='radio' checked='checked' name='t'/>",ae.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,ae.noCloneEvent=!0,t.attachEvent&&(t.attachEvent("onclick",function(){ae.noCloneEvent=!1}),t.cloneNode(!0).click()),null==ae.deleteExpando){ae.deleteExpando=!0;try{delete t.test}catch(r){ae.deleteExpando=!1}}}(),function(){var e,t,n=ye.createElement("div");for(e in{submit:!0,change:!0,focusin:!0})t="on"+e,(ae[e+"Bubbles"]=t in i)||(n.setAttribute(t,"t"),ae[e+"Bubbles"]=n.attributes[t].expando===!1);n=null}();var je=/^(?:input|select|textarea)$/i,Ie=/^key/,Me=/^(?:mouse|pointer|contextmenu)|click/,Fe=/^(?:focusinfocus|focusoutblur)$/,Le=/^([^.]*)(?:\.(.+)|)$/;ue.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,c,l,p,f,d,h,m,v=ue._data(e);if(v){for(n.handler&&(u=n,n=u.handler,i=u.selector),n.guid||(n.guid=ue.guid++),(a=v.events)||(a=v.events={}),(l=v.handle)||(l=v.handle=function(e){return typeof ue===Oe||e&&ue.event.triggered===e.type?void 0:ue.event.dispatch.apply(l.elem,arguments)},l.elem=e),t=(t||"").match(_e)||[""],s=t.length;s--;)o=Le.exec(t[s])||[],d=m=o[1],h=(o[2]||"").split(".").sort(),d&&(c=ue.event.special[d]||{},d=(i?c.delegateType:c.bindType)||d,c=ue.event.special[d]||{},p=ue.extend({type:d,origType:m,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&ue.expr.match.needsContext.test(i),namespace:h.join(".")},u),(f=a[d])||(f=a[d]=[],f.delegateCount=0,c.setup&&c.setup.call(e,r,h,l)!==!1||(e.addEventListener?e.addEventListener(d,l,!1):e.attachEvent&&e.attachEvent("on"+d,l))),c.add&&(c.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),i?f.splice(f.delegateCount++,0,p):f.push(p),ue.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,u,c,l,p,f,d,h,m,v=ue.hasData(e)&&ue._data(e);if(v&&(l=v.events)){for(t=(t||"").match(_e)||[""],c=t.length;c--;)if(s=Le.exec(t[c])||[],d=m=s[1],h=(s[2]||"").split(".").sort(),d){for(p=ue.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=l[d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;o--;)a=f[o],!i&&m!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,v.handle)!==!1||ue.removeEvent(e,d,v.handle),delete l[d])}else for(d in l)ue.event.remove(e,d+t[c],n,r,!0);ue.isEmptyObject(l)&&(delete v.handle,ue._removeData(e,"events"))}},trigger:function(e,t,n,r){var o,a,s,u,c,l,p,f=[n||ye],d=oe.call(e,"type")?e.type:e,h=oe.call(e,"namespace")?e.namespace.split("."):[];if(s=l=n=n||ye,3!==n.nodeType&&8!==n.nodeType&&!Fe.test(d+ue.event.triggered)&&(d.indexOf(".")>=0&&(h=d.split("."),d=h.shift(),h.sort()),a=d.indexOf(":")<0&&"on"+d,e=e[ue.expando]?e:new ue.Event(d,"object"==typeof e&&e),e.isTrigger=r?2:3,e.namespace=h.join("."),e.namespace_re=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:ue.makeArray(t,[e]),c=ue.event.special[d]||{},r||!c.trigger||c.trigger.apply(n,t)!==!1)){if(!r&&!c.noBubble&&!ue.isWindow(n)){for(u=c.delegateType||d,Fe.test(u+d)||(s=s.parentNode);s;s=s.parentNode)f.push(s),l=s;l===(n.ownerDocument||ye)&&f.push(l.defaultView||l.parentWindow||i)}for(p=0;(s=f[p++])&&!e.isPropagationStopped();)e.type=p>1?u:c.bindType||d,o=(ue._data(s,"events")||{})[e.type]&&ue._data(s,"handle"),o&&o.apply(s,t),o=a&&s[a],o&&o.apply&&ue.acceptData(s)&&(e.result=o.apply(s,t),e.result===!1&&e.preventDefault());if(e.type=d,!r&&!e.isDefaultPrevented()&&(!c._default||c._default.apply(f.pop(),t)===!1)&&ue.acceptData(n)&&a&&n[d]&&!ue.isWindow(n)){l=n[a],l&&(n[a]=null),ue.event.triggered=d;try{n[d]()}catch(m){}ue.event.triggered=void 0,l&&(n[a]=l)}return e.result}},dispatch:function(e){e=ue.event.fix(e);var t,n,r,i,o,a=[],s=Z.call(arguments),u=(ue._data(this,"events")||{})[e.type]||[],c=ue.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(a=ue.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,o=0;(r=i.handlers[o++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(r.namespace))&&(e.handleObj=r,e.data=r.data,n=((ue.event.special[r.origType]||{}).handle||r.handler).apply(i.elem,s),void 0!==n&&(e.result=n)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(i=[],o=0;s>o;o++)r=t[o],n=r.selector+" ",void 0===i[n]&&(i[n]=r.needsContext?ue(n,this).index(u)>=0:ue.find(n,this,null,[u]).length),i[n]&&i.push(r);i.length&&a.push({elem:u,handlers:i})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[ue.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Me.test(i)?this.mouseHooks:Ie.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new ue.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||ye),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=e.target.ownerDocument||ye,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==y()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===y()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return ue.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(e){return ue.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=ue.extend(new ue.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?ue.event.trigger(i,null,t):ue.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},ue.removeEvent=ye.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===Oe&&(e[r]=null),e.detachEvent(r,n))},ue.Event=function(e,t){return this instanceof ue.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?v:g):this.type=e,t&&ue.extend(this,t),this.timeStamp=e&&e.timeStamp||ue.now(),void(this[ue.expando]=!0)):new ue.Event(e,t)},ue.Event.prototype={isDefaultPrevented:g,isPropagationStopped:g,isImmediatePropagationStopped:g,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=v,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=v,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=v,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},ue.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){ue.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!ue.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),ae.submitBubbles||(ue.event.special.submit={setup:function(){return ue.nodeName(this,"form")?!1:void ue.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=ue.nodeName(t,"input")||ue.nodeName(t,"button")?t.form:void 0;n&&!ue._data(n,"submitBubbles")&&(ue.event.add(n,"submit._submit",function(e){e._submit_bubble=!0}),ue._data(n,"submitBubbles",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&ue.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return ue.nodeName(this,"form")?!1:void ue.event.remove(this,"._submit")}}),ae.changeBubbles||(ue.event.special.change={setup:function(){return je.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(ue.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),ue.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),ue.event.simulate("change",this,e,!0)})),!1):void ue.event.add(this,"beforeactivate._change",function(e){var t=e.target;je.test(t.nodeName)&&!ue._data(t,"changeBubbles")&&(ue.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||ue.event.simulate("change",this.parentNode,e,!0)}),ue._data(t,"changeBubbles",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return ue.event.remove(this,"._change"),!je.test(this.nodeName)}}),ae.focusinBubbles||ue.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){ue.event.simulate(t,e.target,ue.event.fix(e),!0)};ue.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=ue._data(r,t);i||r.addEventListener(e,n,!0),ue._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=ue._data(r,t)-1;i?ue._data(r,t,i):(r.removeEventListener(e,n,!0),ue._removeData(r,t))}}}),ue.fn.extend({on:function(e,t,n,r,i){var o,a;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=void 0);for(o in e)this.on(o,t,n,e[o],i);return this}if(null==n&&null==r?(r=t,n=t=void 0):null==r&&("string"==typeof t?(r=n,n=void 0):(r=n,n=t,t=void 0)),r===!1)r=g;else if(!r)return this;return 1===i&&(a=r,r=function(e){return ue().off(e),a.apply(this,arguments)},r.guid=a.guid||(a.guid=ue.guid++)),this.each(function(){ue.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,ue(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=void 0),n===!1&&(n=g),this.each(function(){ue.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){ue.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?ue.event.trigger(e,t,n,!0):void 0}});var Ve="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Ue=/ jQuery\d+="(?:null|\d+)"/g,He=new RegExp("<(?:"+Ve+")[\\s/>]","i"),qe=/^\s+/,Be=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,We=/<([\w:]+)/,ze=/<tbody/i,Ke=/<|&#?\w+;/,Qe=/<(?:script|style|link)/i,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Ge=/^$|\/(?:java|ecma)script/i,Xe=/^true\/(.*)/,Je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,Ze={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:ae.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},et=b(ye),tt=et.appendChild(ye.createElement("div"));Ze.optgroup=Ze.option,Ze.tbody=Ze.tfoot=Ze.colgroup=Ze.caption=Ze.thead,Ze.th=Ze.td,ue.extend({clone:function(e,t,n){var r,i,o,a,s,u=ue.contains(e.ownerDocument,e);if(ae.html5Clone||ue.isXMLDoc(e)||!He.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(tt.innerHTML=e.outerHTML,tt.removeChild(o=tt.firstChild)),!(ae.noCloneEvent&&ae.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||ue.isXMLDoc(e)))for(r=x(o),s=x(e),a=0;null!=(i=s[a]);++a)r[a]&&O(i,r[a]);if(t)if(n)for(s=s||x(e),r=r||x(o),a=0;null!=(i=s[a]);a++)$(i,r[a]);else $(e,o);return r=x(o,"script"),r.length>0&&N(r,!u&&x(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,c,l,p=e.length,f=b(t),d=[],h=0;p>h;h++)if(o=e[h],o||0===o)if("object"===ue.type(o))ue.merge(d,o.nodeType?[o]:o);else if(Ke.test(o)){for(s=s||f.appendChild(t.createElement("div")),u=(We.exec(o)||["",""])[1].toLowerCase(),l=Ze[u]||Ze._default,s.innerHTML=l[1]+o.replace(Be,"<$1></$2>")+l[2],i=l[0];i--;)s=s.lastChild;if(!ae.leadingWhitespace&&qe.test(o)&&d.push(t.createTextNode(qe.exec(o)[0])),!ae.tbody)for(o="table"!==u||ze.test(o)?"<table>"!==l[1]||ze.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;i--;)ue.nodeName(c=o.childNodes[i],"tbody")&&!c.childNodes.length&&o.removeChild(c);for(ue.merge(d,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));for(s&&f.removeChild(s),ae.appendChecked||ue.grep(x(d,"input"),w),h=0;o=d[h++];)if((!r||-1===ue.inArray(o,r))&&(a=ue.contains(o.ownerDocument,o),s=x(f.appendChild(o),"script"),a&&N(s),n))for(i=0;o=s[i++];)Ge.test(o.type||"")&&n.push(o);return s=null,f},cleanData:function(e,t){for(var n,r,i,o,a=0,s=ue.expando,u=ue.cache,c=ae.deleteExpando,l=ue.event.special;null!=(n=e[a]);a++)if((t||ue.acceptData(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)l[r]?ue.event.remove(n,r):ue.removeEvent(n,r,o.handle);u[i]&&(delete u[i],c?delete n[s]:typeof n.removeAttribute!==Oe?n.removeAttribute(s):n[s]=null,J.push(i))}}}),ue.fn.extend({text:function(e){return ke(this,function(e){return void 0===e?ue.text(this):this.empty().append((this[0]&&this[0].ownerDocument||ye).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=E(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=e?ue.filter(e,this):this,i=0;null!=(n=r[i]);i++)t||1!==n.nodeType||ue.cleanData(x(n)),n.parentNode&&(t&&ue.contains(n.ownerDocument,n)&&N(x(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&ue.cleanData(x(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&ue.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return ue.clone(this,e,t)})},html:function(e){return ke(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ue,""):void 0;if(!("string"!=typeof e||Qe.test(e)||!ae.htmlSerialize&&He.test(e)||!ae.leadingWhitespace&&qe.test(e)||Ze[(We.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Be,"<$1></$2>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(ue.cleanData(x(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=arguments[0];return this.domManip(arguments,function(t){e=this.parentNode,ue.cleanData(x(this)),e&&e.replaceChild(t,this)}),e&&(e.length||e.nodeType)?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t){e=ee.apply([],e);var n,r,i,o,a,s,u=0,c=this.length,l=this,p=c-1,f=e[0],d=ue.isFunction(f);if(d||c>1&&"string"==typeof f&&!ae.checkClone&&Ye.test(f))return this.each(function(n){var r=l.eq(n);d&&(e[0]=f.call(this,n,r.html())),r.domManip(e,t)});if(c&&(s=ue.buildFragment(e,this[0].ownerDocument,!1,this),n=s.firstChild,1===s.childNodes.length&&(s=n),n)){for(o=ue.map(x(s,"script"),_),i=o.length;c>u;u++)r=s,u!==p&&(r=ue.clone(r,!0,!0),i&&ue.merge(o,x(r,"script"))),t.call(this[u],r,u);if(i)for(a=o[o.length-1].ownerDocument,ue.map(o,C),u=0;i>u;u++)r=o[u],Ge.test(r.type||"")&&!ue._data(r,"globalEval")&&ue.contains(a,r)&&(r.src?ue._evalUrl&&ue._evalUrl(r.src):ue.globalEval((r.text||r.textContent||r.innerHTML||"").replace(Je,"")));s=n=null}return this}}),ue.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){ue.fn[e]=function(e){for(var n,r=0,i=[],o=ue(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),ue(o[r])[t](n),te.apply(i,n.get());return this.pushStack(i)}});var nt,rt={};!function(){var e;ae.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=ye.getElementsByTagName("body")[0],n&&n.style?(t=ye.createElement("div"),r=ye.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),typeof t.style.zoom!==Oe&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",
4
+ t.appendChild(ye.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var it,ot,at=/^margin/,st=new RegExp("^("+Se+")(?!px)[a-z%]+$","i"),ut=/^(top|right|bottom|left)$/;i.getComputedStyle?(it=function(e){return e.ownerDocument.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):i.getComputedStyle(e,null)},ot=function(e,t,n){var r,i,o,a,s=e.style;return n=n||it(e),a=n?n.getPropertyValue(t)||n[t]:void 0,n&&(""!==a||ue.contains(e.ownerDocument,e)||(a=ue.style(e,t)),st.test(a)&&at.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0===a?a:a+""}):ye.documentElement.currentStyle&&(it=function(e){return e.currentStyle},ot=function(e,t,n){var r,i,o,a,s=e.style;return n=n||it(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),st.test(a)&&!ut.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"}),function(){function e(){var e,t,n,r;t=ye.getElementsByTagName("body")[0],t&&t.style&&(e=ye.createElement("div"),n=ye.createElement("div"),n.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",t.appendChild(n).appendChild(e),e.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",o=a=!1,u=!0,i.getComputedStyle&&(o="1%"!==(i.getComputedStyle(e,null)||{}).top,a="4px"===(i.getComputedStyle(e,null)||{width:"4px"}).width,r=e.appendChild(ye.createElement("div")),r.style.cssText=e.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",r.style.marginRight=r.style.width="0",e.style.width="1px",u=!parseFloat((i.getComputedStyle(r,null)||{}).marginRight),e.removeChild(r)),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",r=e.getElementsByTagName("td"),r[0].style.cssText="margin:0;border:0;padding:0;display:none",s=0===r[0].offsetHeight,s&&(r[0].style.display="",r[1].style.display="none",s=0===r[0].offsetHeight),t.removeChild(n))}var t,n,r,o,a,s,u;t=ye.createElement("div"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=t.getElementsByTagName("a")[0],n=r&&r.style,n&&(n.cssText="float:left;opacity:.5",ae.opacity="0.5"===n.opacity,ae.cssFloat=!!n.cssFloat,t.style.backgroundClip="content-box",t.cloneNode(!0).style.backgroundClip="",ae.clearCloneStyle="content-box"===t.style.backgroundClip,ae.boxSizing=""===n.boxSizing||""===n.MozBoxSizing||""===n.WebkitBoxSizing,ue.extend(ae,{reliableHiddenOffsets:function(){return null==s&&e(),s},boxSizingReliable:function(){return null==a&&e(),a},pixelPosition:function(){return null==o&&e(),o},reliableMarginRight:function(){return null==u&&e(),u}}))}(),ue.swap=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};var ct=/alpha\([^)]*\)/i,lt=/opacity\s*=\s*([^)]*)/,pt=/^(none|table(?!-c[ea]).+)/,ft=new RegExp("^("+Se+")(.*)$","i"),dt=new RegExp("^([+-])=("+Se+")","i"),ht={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:"0",fontWeight:"400"},vt=["Webkit","O","Moz","ms"];ue.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=ot(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":ae.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=ue.camelCase(t),u=e.style;if(t=ue.cssProps[s]||(ue.cssProps[s]=D(u,s)),a=ue.cssHooks[t]||ue.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=dt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(ue.css(e,t)),o="number"),null!=n&&n===n&&("number"!==o||ue.cssNumber[s]||(n+="px"),ae.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(c){}}},css:function(e,t,n,r){var i,o,a,s=ue.camelCase(t);return t=ue.cssProps[s]||(ue.cssProps[s]=D(e.style,s)),a=ue.cssHooks[t]||ue.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=ot(e,t,r)),"normal"===o&&t in mt&&(o=mt[t]),""===n||n?(i=parseFloat(o),n===!0||ue.isNumeric(i)?i||0:o):o}}),ue.each(["height","width"],function(e,t){ue.cssHooks[t]={get:function(e,n,r){return n?pt.test(ue.css(e,"display"))&&0===e.offsetWidth?ue.swap(e,ht,function(){return j(e,t,r)}):j(e,t,r):void 0},set:function(e,n,r){var i=r&&it(e);return k(e,n,r?A(e,t,r,ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,i),i):0)}}}),ae.opacity||(ue.cssHooks.opacity={get:function(e,t){return lt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=ue.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===ue.trim(o.replace(ct,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=ct.test(o)?o.replace(ct,i):o+" "+i)}}),ue.cssHooks.marginRight=S(ae.reliableMarginRight,function(e,t){return t?ue.swap(e,{display:"inline-block"},ot,[e,"marginRight"]):void 0}),ue.each({margin:"",padding:"",border:"Width"},function(e,t){ue.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+De[r]+t]=o[r]||o[r-2]||o[0];return i}},at.test(e)||(ue.cssHooks[e+t].set=k)}),ue.fn.extend({css:function(e,t){return ke(this,function(e,t,n){var r,i,o={},a=0;if(ue.isArray(t)){for(r=it(e),i=t.length;i>a;a++)o[t[a]]=ue.css(e,t[a],!1,r);return o}return void 0!==n?ue.style(e,t,n):ue.css(e,t)},e,t,arguments.length>1)},show:function(){return R(this,!0)},hide:function(){return R(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?ue(this).show():ue(this).hide()})}}),ue.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(ue.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.pos=t=this.options.duration?ue.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=ue.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){ue.fx.step[e.prop]?ue.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[ue.cssProps[e.prop]]||ue.cssHooks[e.prop])?ue.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},ue.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},ue.fx=I.prototype.init,ue.fx.step={};var gt,yt,bt=/^(?:toggle|show|hide)$/,xt=new RegExp("^(?:([+-])=|)("+Se+")([a-z%]*)$","i"),wt=/queueHooks$/,Et=[V],_t={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=xt.exec(t),o=i&&i[3]||(ue.cssNumber[e]?"":"px"),a=(ue.cssNumber[e]||"px"!==o&&+r)&&xt.exec(ue.css(n.elem,e)),s=1,u=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,ue.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--u)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};ue.Animation=ue.extend(H,{tweener:function(e,t){ue.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],_t[n]=_t[n]||[],_t[n].unshift(t)},prefilter:function(e,t){t?Et.unshift(e):Et.push(e)}}),ue.speed=function(e,t,n){var r=e&&"object"==typeof e?ue.extend({},e):{complete:n||!n&&t||ue.isFunction(e)&&e,duration:e,easing:n&&t||t&&!ue.isFunction(t)&&t};return r.duration=ue.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in ue.fx.speeds?ue.fx.speeds[r.duration]:ue.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){ue.isFunction(r.old)&&r.old.call(this),r.queue&&ue.dequeue(this,r.queue)},r},ue.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Re).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=ue.isEmptyObject(e),o=ue.speed(t,n,r),a=function(){var t=H(this,ue.extend({},e),o);(i||ue._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=ue.timers,a=ue._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&wt.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));(t||!n)&&ue.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=ue._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=ue.timers,a=r?r.length:0;for(n.finish=!0,ue.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),ue.each(["toggle","show","hide"],function(e,t){var n=ue.fn[t];ue.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(F(t,!0),e,r,i)}}),ue.each({slideDown:F("show"),slideUp:F("hide"),slideToggle:F("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){ue.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),ue.timers=[],ue.fx.tick=function(){var e,t=ue.timers,n=0;for(gt=ue.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||ue.fx.stop(),gt=void 0},ue.fx.timer=function(e){ue.timers.push(e),e()?ue.fx.start():ue.timers.pop()},ue.fx.interval=13,ue.fx.start=function(){yt||(yt=setInterval(ue.fx.tick,ue.fx.interval))},ue.fx.stop=function(){clearInterval(yt),yt=null},ue.fx.speeds={slow:600,fast:200,_default:400},ue.fn.delay=function(e,t){return e=ue.fx?ue.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},function(){var e,t,n,r,i;t=ye.createElement("div"),t.setAttribute("className","t"),t.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=t.getElementsByTagName("a")[0],n=ye.createElement("select"),i=n.appendChild(ye.createElement("option")),e=t.getElementsByTagName("input")[0],r.style.cssText="top:1px",ae.getSetAttribute="t"!==t.className,ae.style=/top/.test(r.getAttribute("style")),ae.hrefNormalized="/a"===r.getAttribute("href"),ae.checkOn=!!e.value,ae.optSelected=i.selected,ae.enctype=!!ye.createElement("form").enctype,n.disabled=!0,ae.optDisabled=!i.disabled,e=ye.createElement("input"),e.setAttribute("value",""),ae.input=""===e.getAttribute("value"),e.value="t",e.setAttribute("type","radio"),ae.radioValue="t"===e.value}();var Ct=/\r/g;ue.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=ue.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,ue(this).val()):e,null==i?i="":"number"==typeof i?i+="":ue.isArray(i)&&(i=ue.map(i,function(e){return null==e?"":e+""})),t=ue.valHooks[this.type]||ue.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=ue.valHooks[i.type]||ue.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Ct,""):null==n?"":n)}}}),ue.extend({valHooks:{option:{get:function(e){var t=ue.find.attr(e,"value");return null!=t?t:ue.trim(ue.text(e))}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(ae.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&ue.nodeName(n.parentNode,"optgroup"))){if(t=ue(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=ue.makeArray(t),a=i.length;a--;)if(r=i[a],ue.inArray(ue.valHooks.option.get(r),o)>=0)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),ue.each(["radio","checkbox"],function(){ue.valHooks[this]={set:function(e,t){return ue.isArray(t)?e.checked=ue.inArray(ue(e).val(),t)>=0:void 0}},ae.checkOn||(ue.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Nt,$t,Ot=ue.expr.attrHandle,Tt=/^(?:checked|selected)$/i,Pt=ae.getSetAttribute,St=ae.input;ue.fn.extend({attr:function(e,t){return ke(this,ue.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){ue.removeAttr(this,e)})}}),ue.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(e&&3!==o&&8!==o&&2!==o)return typeof e.getAttribute===Oe?ue.prop(e,t,n):(1===o&&ue.isXMLDoc(e)||(t=t.toLowerCase(),r=ue.attrHooks[t]||(ue.expr.match.bool.test(t)?$t:Nt)),void 0===n?r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=ue.find.attr(e,t),null==i?void 0:i):null!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):void ue.removeAttr(e,t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(_e);if(o&&1===e.nodeType)for(;n=o[i++];)r=ue.propFix[n]||n,ue.expr.match.bool.test(n)?St&&Pt||!Tt.test(n)?e[r]=!1:e[ue.camelCase("default-"+n)]=e[r]=!1:ue.attr(e,n,""),e.removeAttribute(Pt?n:r)},attrHooks:{type:{set:function(e,t){if(!ae.radioValue&&"radio"===t&&ue.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}}}),$t={set:function(e,t,n){return t===!1?ue.removeAttr(e,n):St&&Pt||!Tt.test(n)?e.setAttribute(!Pt&&ue.propFix[n]||n,n):e[ue.camelCase("default-"+n)]=e[n]=!0,n}},ue.each(ue.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ot[t]||ue.find.attr;Ot[t]=St&&Pt||!Tt.test(t)?function(e,t,r){var i,o;return r||(o=Ot[t],Ot[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,Ot[t]=o),i}:function(e,t,n){return n?void 0:e[ue.camelCase("default-"+t)]?t.toLowerCase():null}}),St&&Pt||(ue.attrHooks.value={set:function(e,t,n){return ue.nodeName(e,"input")?void(e.defaultValue=t):Nt&&Nt.set(e,t,n)}}),Pt||(Nt={set:function(e,t,n){var r=e.getAttributeNode(n);return r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n)?t:void 0}},Ot.id=Ot.name=Ot.coords=function(e,t,n){var r;return n?void 0:(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},ue.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:void 0},set:Nt.set},ue.attrHooks.contenteditable={set:function(e,t,n){Nt.set(e,""===t?!1:t,n)}},ue.each(["width","height"],function(e,t){ue.attrHooks[t]={set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}}})),ae.style||(ue.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Dt=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;ue.fn.extend({prop:function(e,t){return ke(this,ue.prop,e,t,arguments.length>1)},removeProp:function(e){return e=ue.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),ue.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,a=e.nodeType;if(e&&3!==a&&8!==a&&2!==a)return o=1!==a||!ue.isXMLDoc(e),o&&(t=ue.propFix[t]||t,i=ue.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=ue.find.attr(e,"tabindex");return t?parseInt(t,10):Dt.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}}}),ae.hrefNormalized||ue.each(["href","src"],function(e,t){ue.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),ae.optSelected||(ue.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),ue.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ue.propFix[this.toLowerCase()]=this}),ae.enctype||(ue.propFix.enctype="encoding");var kt=/[\t\r\n\f]/g;ue.fn.extend({addClass:function(e){var t,n,r,i,o,a,s=0,u=this.length,c="string"==typeof e&&e;if(ue.isFunction(e))return this.each(function(t){ue(this).addClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(_e)||[];u>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(kt," "):" ")){for(o=0;i=t[o++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");a=ue.trim(r),n.className!==a&&(n.className=a)}return this},removeClass:function(e){var t,n,r,i,o,a,s=0,u=this.length,c=0===arguments.length||"string"==typeof e&&e;if(ue.isFunction(e))return this.each(function(t){ue(this).removeClass(e.call(this,t,this.className))});if(c)for(t=(e||"").match(_e)||[];u>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(kt," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");a=e?ue.trim(r):"",n.className!==a&&(n.className=a)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):this.each(ue.isFunction(e)?function(n){ue(this).toggleClass(e.call(this,n,this.className,t),t)}:function(){if("string"===n)for(var t,r=0,i=ue(this),o=e.match(_e)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else(n===Oe||"boolean"===n)&&(this.className&&ue._data(this,"__className__",this.className),this.className=this.className||e===!1?"":ue._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(kt," ").indexOf(t)>=0)return!0;return!1}}),ue.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){ue.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),ue.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var At=ue.now(),jt=/\?/,It=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;ue.parseJSON=function(e){if(i.JSON&&i.JSON.parse)return i.JSON.parse(e+"");var t,n=null,r=ue.trim(e+"");return r&&!ue.trim(r.replace(It,function(e,r,i,o){return t&&r&&(n=0),0===n?e:(t=i||r,n+=!o-!i,"")}))?Function("return "+r)():ue.error("Invalid JSON: "+e)},ue.parseXML=function(e){var t,n;if(!e||"string"!=typeof e)return null;try{i.DOMParser?(n=new DOMParser,t=n.parseFromString(e,"text/xml")):(t=new ActiveXObject("Microsoft.XMLDOM"),t.async="false",t.loadXML(e))}catch(r){t=void 0}return t&&t.documentElement&&!t.getElementsByTagName("parsererror").length||ue.error("Invalid XML: "+e),t};var Mt,Ft,Lt=/#.*$/,Vt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ht=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,qt=/^(?:GET|HEAD)$/,Bt=/^\/\//,Wt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,zt={},Kt={},Qt="*/".concat("*");try{Ft=location.href}catch(Yt){Ft=ye.createElement("a"),Ft.href="",Ft=Ft.href}Mt=Wt.exec(Ft.toLowerCase())||[],ue.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ft,type:"GET",isLocal:Ht.test(Mt[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Qt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":ue.parseJSON,"text xml":ue.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?W(W(e,ue.ajaxSettings),t):W(ue.ajaxSettings,e)},ajaxPrefilter:q(zt),ajaxTransport:q(Kt),ajax:function(e,t){function n(e,t,n,r){var i,l,g,y,x,E=t;2!==b&&(b=2,s&&clearTimeout(s),c=void 0,a=r||"",w.readyState=e>0?4:0,i=e>=200&&300>e||304===e,n&&(y=z(p,w,n)),y=K(p,y,w,i),i?(p.ifModified&&(x=w.getResponseHeader("Last-Modified"),x&&(ue.lastModified[o]=x),x=w.getResponseHeader("etag"),x&&(ue.etag[o]=x)),204===e||"HEAD"===p.type?E="nocontent":304===e?E="notmodified":(E=y.state,l=y.data,g=y.error,i=!g)):(g=E,(e||!E)&&(E="error",0>e&&(e=0))),w.status=e,w.statusText=(t||E)+"",i?h.resolveWith(f,[l,E,w]):h.rejectWith(f,[w,E,g]),w.statusCode(v),v=void 0,u&&d.trigger(i?"ajaxSuccess":"ajaxError",[w,p,i?l:g]),m.fireWith(f,[w,E]),u&&(d.trigger("ajaxComplete",[w,p]),--ue.active||ue.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,i,o,a,s,u,c,l,p=ue.ajaxSetup({},t),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?ue(f):ue.event,h=ue.Deferred(),m=ue.Callbacks("once memory"),v=p.statusCode||{},g={},y={},b=0,x="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!l)for(l={};t=Ut.exec(a);)l[t[1].toLowerCase()]=t[2];t=l[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=y[n]=y[n]||e,g[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)v[t]=[v[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||x;return c&&c.abort(t),n(0,t),this}};if(h.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Ft)+"").replace(Lt,"").replace(Bt,Mt[1]+"//"),p.type=t.method||t.type||p.method||p.type,p.dataTypes=ue.trim(p.dataType||"*").toLowerCase().match(_e)||[""],null==p.crossDomain&&(r=Wt.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===Mt[1]&&r[2]===Mt[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(Mt[3]||("http:"===Mt[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=ue.param(p.data,p.traditional)),B(zt,p,t,w),2===b)return w;u=ue.event&&p.global,u&&0===ue.active++&&ue.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!qt.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(jt.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=Vt.test(o)?o.replace(Vt,"$1_="+At++):o+(jt.test(o)?"&":"?")+"_="+At++)),p.ifModified&&(ue.lastModified[o]&&w.setRequestHeader("If-Modified-Since",ue.lastModified[o]),ue.etag[o]&&w.setRequestHeader("If-None-Match",ue.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||t.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Qt+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)w.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,w,p)===!1||2===b))return w.abort();x="abort";for(i in{success:1,error:1,complete:1})w[i](p[i]);if(c=B(Kt,p,t,w)){w.readyState=1,u&&d.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){w.abort("timeout")},p.timeout));try{b=1,c.send(g,n)}catch(E){if(!(2>b))throw E;n(-1,E)}}else n(-1,"No Transport");return w},getJSON:function(e,t,n){return ue.get(e,t,n,"json")},getScript:function(e,t){return ue.get(e,void 0,t,"script")}}),ue.each(["get","post"],function(e,t){ue[t]=function(e,n,r,i){return ue.isFunction(n)&&(i=i||r,r=n,n=void 0),ue.ajax({url:e,type:t,dataType:i,data:n,success:r})}}),ue._evalUrl=function(e){return ue.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},ue.fn.extend({wrapAll:function(e){if(ue.isFunction(e))return this.each(function(t){ue(this).wrapAll(e.call(this,t))});if(this[0]){var t=ue(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return this.each(ue.isFunction(e)?function(t){ue(this).wrapInner(e.call(this,t))}:function(){var t=ue(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=ue.isFunction(e);return this.each(function(n){ue(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){ue.nodeName(this,"body")||ue(this).replaceWith(this.childNodes)}).end()}}),ue.expr.filters.hidden=function(e){return e.offsetWidth<=0&&e.offsetHeight<=0||!ae.reliableHiddenOffsets()&&"none"===(e.style&&e.style.display||ue.css(e,"display"))},ue.expr.filters.visible=function(e){return!ue.expr.filters.hidden(e)};var Gt=/%20/g,Xt=/\[\]$/,Jt=/\r?\n/g,Zt=/^(?:submit|button|image|reset|file)$/i,en=/^(?:input|select|textarea|keygen)/i;ue.param=function(e,t){var n,r=[],i=function(e,t){t=ue.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=ue.ajaxSettings&&ue.ajaxSettings.traditional),ue.isArray(e)||e.jquery&&!ue.isPlainObject(e))ue.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(Gt,"+")},ue.fn.extend({serialize:function(){return ue.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=ue.prop(this,"elements");return e?ue.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!ue(this).is(":disabled")&&en.test(this.nodeName)&&!Zt.test(e)&&(this.checked||!Ae.test(e))}).map(function(e,t){var n=ue(this).val();return null==n?null:ue.isArray(n)?ue.map(n,function(e){return{name:t.name,value:e.replace(Jt,"\r\n")}}):{name:t.name,value:n.replace(Jt,"\r\n")}}).get()}}),ue.ajaxSettings.xhr=void 0!==i.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&Y()||G()}:Y;var tn=0,nn={},rn=ue.ajaxSettings.xhr();i.attachEvent&&i.attachEvent("onunload",function(){for(var e in nn)nn[e](void 0,!0)}),ae.cors=!!rn&&"withCredentials"in rn,rn=ae.ajax=!!rn,rn&&ue.ajaxTransport(function(e){if(!e.crossDomain||ae.cors){var t;return{send:function(n,r){var i,o=e.xhr(),a=++tn;if(o.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(i in e.xhrFields)o[i]=e.xhrFields[i];e.mimeType&&o.overrideMimeType&&o.overrideMimeType(e.mimeType),e.crossDomain||n["X-Requested-With"]||(n["X-Requested-With"]="XMLHttpRequest");for(i in n)void 0!==n[i]&&o.setRequestHeader(i,n[i]+"");o.send(e.hasContent&&e.data||null),t=function(n,i){var s,u,c;if(t&&(i||4===o.readyState))if(delete nn[a],t=void 0,o.onreadystatechange=ue.noop,i)4!==o.readyState&&o.abort();else{c={},s=o.status,"string"==typeof o.responseText&&(c.text=o.responseText);try{u=o.statusText}catch(l){u=""}s||!e.isLocal||e.crossDomain?1223===s&&(s=204):s=c.text?200:404}c&&r(s,u,c,o.getAllResponseHeaders())},e.async?4===o.readyState?setTimeout(t):o.onreadystatechange=nn[a]=t:t()},abort:function(){t&&t(void 0,!0)}}}}),ue.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return ue.globalEval(e),e}}}),ue.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),ue.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=ye.head||ue("head")[0]||ye.documentElement;return{send:function(r,i){t=ye.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var on=[],an=/(=)\?(?=&|$)|\?\?/;ue.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=on.pop()||ue.expando+"_"+At++;return this[e]=!0,e}}),ue.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,a,s=e.jsonp!==!1&&(an.test(e.url)?"url":"string"==typeof e.data&&!(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&an.test(e.data)&&"data");return s||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=ue.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,s?e[s]=e[s].replace(an,"$1"+r):e.jsonp!==!1&&(e.url+=(jt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||ue.error(r+" was not called"),a[0]},e.dataTypes[0]="json",o=i[r],i[r]=function(){a=arguments},n.always(function(){i[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,on.push(r)),a&&ue.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),ue.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||ye;var r=me.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=ue.buildFragment([e],t,i),i&&i.length&&ue(i).remove(),ue.merge([],r.childNodes))};var sn=ue.fn.load;ue.fn.load=function(e,t,n){if("string"!=typeof e&&sn)return sn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>=0&&(r=ue.trim(e.slice(s,e.length)),e=e.slice(0,s)),ue.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&ue.ajax({url:e,type:o,dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?ue("<div>").append(ue.parseHTML(e)).find(r):e)}).complete(n&&function(e,t){a.each(n,i||[e.responseText,t,e])}),this},ue.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ue.fn[t]=function(e){return this.on(t,e)}}),ue.expr.filters.animated=function(e){return ue.grep(ue.timers,function(t){return e===t.elem}).length};var un=i.document.documentElement;ue.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,c,l=ue.css(e,"position"),p=ue(e),f={};"static"===l&&(e.style.position="relative"),s=p.offset(),o=ue.css(e,"top"),u=ue.css(e,"left"),c=("absolute"===l||"fixed"===l)&&ue.inArray("auto",[o,u])>-1,c?(r=p.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),ue.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):p.css(f)}},ue.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){ue.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,ue.contains(t,i)?(typeof i.getBoundingClientRect!==Oe&&(r=i.getBoundingClientRect()),n=X(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===ue.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),ue.nodeName(e[0],"html")||(n=e.offset()),n.top+=ue.css(e[0],"borderTopWidth",!0),n.left+=ue.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-ue.css(r,"marginTop",!0),left:t.left-n.left-ue.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||un;e&&!ue.nodeName(e,"html")&&"static"===ue.css(e,"position");)e=e.offsetParent;return e||un})}}),ue.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);ue.fn[e]=function(r){return ke(this,function(e,r,i){var o=X(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?ue(o).scrollLeft():i,n?i:ue(o).scrollTop()):e[r]=i);
5
+
6
+ },e,r,arguments.length,null)}}),ue.each(["top","left"],function(e,t){ue.cssHooks[t]=S(ae.pixelPosition,function(e,n){return n?(n=ot(e,t),st.test(n)?ue(e).position()[t]+"px":n):void 0})}),ue.each({Height:"height",Width:"width"},function(e,t){ue.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){ue.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return ke(this,function(t,n,r){var i;return ue.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?ue.css(t,n,a):ue.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),ue.fn.size=function(){return this.length},ue.fn.andSelf=ue.fn.addBack,n=[],r=function(){return ue}.apply(t,n),!(void 0!==r&&(e.exports=r));var cn=i.jQuery,ln=i.$;return ue.noConflict=function(e){return i.$===ue&&(i.$=ln),e&&i.jQuery===ue&&(i.jQuery=cn),ue},typeof o===Oe&&(i.jQuery=i.$=ue),ue})},function(e,t,n){"use strict";e.exports=n(3)},function(e,t,n){"use strict";n(4);var r=n(5),i=n(6),o=r(i),a=n(74);o.widgets={clearAll:n(312),currentRefinedValues:n(542),hierarchicalMenu:n(553),hits:n(556),hitsPerPageSelector:n(559),menu:n(564),refinementList:n(566),numericRefinementList:n(568),numericSelector:n(573),pagination:n(574),priceRanges:n(586),searchBox:n(591),rangeSlider:n(593),sortBySelector:n(597),starRating:n(600),stats:n(603),toggle:n(606)},o.version=n(303),o.createQueryString=a.url.getQueryStringFromState,e.exports=o},function(){"use strict";Object.freeze||(Object.freeze=function(e){if(Object(e)!==e)throw new TypeError("Object.freeze can only be called on Objects.");return e})},function(e){"use strict";function t(e){var t=function(){for(var t=arguments.length,r=Array(t),i=0;t>i;i++)r[i]=arguments[i];return new(n.apply(e,[null].concat(r)))};return t.__proto__=e,t.prototype=e.prototype,t}var n=Function.prototype.bind;e.exports=t},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(){return"#"}function a(e,t){if(!t.getConfiguration)return e;var n=t.getConfiguration(e);return f({},e,n,function(e,t){return Array.isArray(e)?d(e,t):void 0})}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(7),l=n(74),p=n(253),f=n(279),d=n(291),h=n(301).EventEmitter,m=n(302),v=n(303),g=function(e){function t(e){var i=e.appId,o=void 0===i?null:i,a=e.apiKey,s=void 0===a?null:a,l=e.indexName,p=void 0===l?null:l,f=e.numberLocale,d=void 0===f?"en-EN":f,h=e.searchParameters,m=void 0===h?{}:h,g=e.urlSync,y=void 0===g?null:g;if(r(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).call(this),null===o||null===s||null===p){var b="\nUsage: instantsearch({\n appId: 'my_application_id',\n apiKey: 'my_search_api_key',\n indexName: 'my_index_name'\n});";throw new Error(b)}var x=c(o,s);x.addAlgoliaAgent("instantsearch.js "+v),this.client=x,this.helper=null,this.indexName=p,this.searchParameters=m||{},this.widgets=[],this.templatesConfig={helpers:n(311)({numberLocale:d}),compileOptions:{}},this.urlSync=y}return i(t,e),s(t,[{key:"addWidget",value:function(e){if(void 0===e.render&&void 0===e.init)throw new Error("Widget definition missing render or init method");this.widgets.push(e)}},{key:"start",value:function(){if(!this.widgets)throw new Error("No widgets were added to instantsearch.js");if(this.urlSync){var e=m(this.urlSync);this._createURL=e.createURL.bind(e),this.widgets.push(e)}else this._createURL=o;this.searchParameters=this.widgets.reduce(a,this.searchParameters);var t=l(this.client,this.searchParameters.index||this.indexName,this.searchParameters);this.helper=t,this._init(t.state,t),t.on("result",this._render.bind(this,t)),t.search()}},{key:"createURL",value:function(e){if(!this._createURL)throw new Error("You need to call start() before calling createURL()");return this._createURL(this.helper.state.setQueryParameters(e))}},{key:"_render",value:function(e,t,n){p(this.widgets,function(r){r.render&&r.render({templatesConfig:this.templatesConfig,results:t,state:n,helper:e,createURL:this._createURL})},this),this.emit("render")}},{key:"_init",value:function(e,t){p(this.widgets,function(n){if(n.init){var r=this.templatesConfig;n.init({state:e,helper:t,templatesConfig:r})}},this)}}]),t}(h);e.exports=g},function(e,t,n){(function(t){"use strict";function r(e,t,o){var a=n(71),s=n(72);return o=a(o||{}),void 0===o.protocol&&(o.protocol=s()),o._ua=o._ua||r.ua,new i(e,t,o)}function i(){s.apply(this,arguments)}e.exports=r;var o=n(9),a=window.Promise||n(10).Promise,s=n(14),u=n(15),c=n(66),l=n(70);"development"===t.env.APP_ENV&&n(42).enable("algoliasearch*"),r.version=n(73),r.ua="Algolia for vanilla JavaScript "+r.version,window.__algolia={debug:n(42),algoliasearch:r};var p={hasXMLHttpRequest:"XMLHttpRequest"in window,hasXDomainRequest:"XDomainRequest"in window,cors:"withCredentials"in new XMLHttpRequest,timeout:"timeout"in new XMLHttpRequest};o(i,s),i.prototype._request=function(e,t){return new a(function(n,r){function i(){if(!l){p.timeout||clearTimeout(s);var e;try{e={body:JSON.parse(d.responseText),responseText:d.responseText,statusCode:d.status,headers:d.getAllResponseHeaders&&d.getAllResponseHeaders()||{}}}catch(t){e=new u.UnparsableJSON({more:d.responseText})}e instanceof u.UnparsableJSON?r(e):n(e)}}function o(e){l||(p.timeout||clearTimeout(s),r(new u.Network({more:e})))}function a(){p.timeout||(l=!0,d.abort()),r(new u.RequestTimeout)}if(!p.cors&&!p.hasXDomainRequest)return void r(new u.Network("CORS not supported"));e=c(e,t.headers);var s,l,f=t.body,d=p.cors?new XMLHttpRequest:new XDomainRequest;d instanceof XMLHttpRequest?d.open(t.method,e,!0):d.open(t.method,e),p.cors&&(f&&("POST"===t.method?d.setRequestHeader("content-type","application/x-www-form-urlencoded"):d.setRequestHeader("content-type","application/json")),d.setRequestHeader("accept","application/json")),d.onprogress=function(){},d.onload=i,d.onerror=o,p.timeout?(d.timeout=t.timeout,d.ontimeout=a):s=setTimeout(a,t.timeout),d.send(f)})},i.prototype._request.fallback=function(e,t){return e=c(e,t.headers),new a(function(n,r){l(e,t,function(e,t){return e?void r(e):void n(t)})})},i.prototype._promise={reject:function(e){return a.reject(e)},resolve:function(e){return a.resolve(e)},delay:function(e){return new a(function(t){setTimeout(t,e)})}}}).call(t,n(8))},function(e){function t(){u=!1,o.length?s=o.concat(s):c=-1,s.length&&n()}function n(){if(!u){var e=setTimeout(t);u=!0;for(var n=s.length;n;){for(o=s,s=[];++c<n;)o&&o[c].run();c=-1,n=s.length}o=null,u=!1,clearTimeout(e)}}function r(e,t){this.fun=e,this.array=t}function i(){}var o,a=e.exports={},s=[],u=!1,c=-1;a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var i=1;i<arguments.length;i++)t[i-1]=arguments[i];s.push(new r(e,t)),1!==s.length||u||setTimeout(n,0)},r.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=i,a.addListener=i,a.once=i,a.off=i,a.removeListener=i,a.removeAllListeners=i,a.emit=i,a.binding=function(){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){var r;(function(e,i,o){(function(){"use strict";function a(e){return"function"==typeof e||"object"==typeof e&&null!==e}function s(e){return"function"==typeof e}function u(e){return"object"==typeof e&&null!==e}function c(e){K=e}function l(e){X=e}function p(){return function(){e.nextTick(v)}}function f(){return function(){z(v)}}function d(){var e=0,t=new ee(v),n=document.createTextNode("");return t.observe(n,{characterData:!0}),function(){n.data=e=++e%2}}function h(){var e=new MessageChannel;return e.port1.onmessage=v,function(){e.port2.postMessage(0)}}function m(){return function(){setTimeout(v,1)}}function v(){for(var e=0;G>e;e+=2){var t=re[e],n=re[e+1];t(n),re[e]=void 0,re[e+1]=void 0}G=0}function g(){try{var e=n(12);return z=e.runOnLoop||e.runOnContext,f()}catch(t){return m()}}function y(){}function b(){return new TypeError("You cannot resolve a promise with itself")}function x(){return new TypeError("A promises callback cannot return that same promise.")}function w(e){try{return e.then}catch(t){return se.error=t,se}}function E(e,t,n,r){try{e.call(t,n,r)}catch(i){return i}}function _(e,t,n){X(function(e){var r=!1,i=E(n,t,function(n){r||(r=!0,t!==n?$(e,n):T(e,n))},function(t){r||(r=!0,P(e,t))},"Settle: "+(e._label||" unknown promise"));!r&&i&&(r=!0,P(e,i))},e)}function C(e,t){t._state===oe?T(e,t._result):t._state===ae?P(e,t._result):S(t,void 0,function(t){$(e,t)},function(t){P(e,t)})}function N(e,t){if(t.constructor===e.constructor)C(e,t);else{var n=w(t);n===se?P(e,se.error):void 0===n?T(e,t):s(n)?_(e,t,n):T(e,t)}}function $(e,t){e===t?P(e,b()):a(t)?N(e,t):T(e,t)}function O(e){e._onerror&&e._onerror(e._result),D(e)}function T(e,t){e._state===ie&&(e._result=t,e._state=oe,0!==e._subscribers.length&&X(D,e))}function P(e,t){e._state===ie&&(e._state=ae,e._result=t,X(O,e))}function S(e,t,n,r){var i=e._subscribers,o=i.length;e._onerror=null,i[o]=t,i[o+oe]=n,i[o+ae]=r,0===o&&e._state&&X(D,e)}function D(e){var t=e._subscribers,n=e._state;if(0!==t.length){for(var r,i,o=e._result,a=0;a<t.length;a+=3)r=t[a],i=t[a+n],r?A(n,r,i,o):i(o);e._subscribers.length=0}}function R(){this.error=null}function k(e,t){try{return e(t)}catch(n){return ue.error=n,ue}}function A(e,t,n,r){var i,o,a,u,c=s(n);if(c){if(i=k(n,r),i===ue?(u=!0,o=i.error,i=null):a=!0,t===i)return void P(t,x())}else i=r,a=!0;t._state!==ie||(c&&a?$(t,i):u?P(t,o):e===oe?T(t,i):e===ae&&P(t,i))}function j(e,t){try{t(function(t){$(e,t)},function(t){P(e,t)})}catch(n){P(e,n)}}function I(e,t){var n=this;n._instanceConstructor=e,n.promise=new e(y),n._validateInput(t)?(n._input=t,n.length=t.length,n._remaining=t.length,n._init(),0===n.length?T(n.promise,n._result):(n.length=n.length||0,n._enumerate(),0===n._remaining&&T(n.promise,n._result))):P(n.promise,n._validationError())}function M(e){return new ce(this,e).promise}function F(e){function t(e){$(i,e)}function n(e){P(i,e)}var r=this,i=new r(y);if(!Y(e))return P(i,new TypeError("You must pass an array to race.")),i;for(var o=e.length,a=0;i._state===ie&&o>a;a++)S(r.resolve(e[a]),void 0,t,n);return i}function L(e){var t=this;if(e&&"object"==typeof e&&e.constructor===t)return e;var n=new t(y);return $(n,e),n}function V(e){var t=this,n=new t(y);return P(n,e),n}function U(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function H(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function q(e){this._id=he++,this._state=void 0,this._result=void 0,this._subscribers=[],y!==e&&(s(e)||U(),this instanceof q||H(),j(this,e))}function B(){var e;if("undefined"!=typeof i)e=i;else if("undefined"!=typeof self)e=self;else try{e=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=e.Promise;(!n||"[object Promise]"!==Object.prototype.toString.call(n.resolve())||n.cast)&&(e.Promise=me)}var W;W=Array.isArray?Array.isArray:function(e){return"[object Array]"===Object.prototype.toString.call(e)};var z,K,Q,Y=W,G=0,X=({}.toString,function(e,t){re[G]=e,re[G+1]=t,G+=2,2===G&&(K?K(v):Q())}),J="undefined"!=typeof window?window:void 0,Z=J||{},ee=Z.MutationObserver||Z.WebKitMutationObserver,te="undefined"!=typeof e&&"[object process]"==={}.toString.call(e),ne="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,re=new Array(1e3);Q=te?p():ee?d():ne?h():void 0===J?g():m();var ie=void 0,oe=1,ae=2,se=new R,ue=new R;I.prototype._validateInput=function(e){return Y(e)},I.prototype._validationError=function(){return new Error("Array Methods must be provided an Array")},I.prototype._init=function(){this._result=new Array(this.length)};var ce=I;I.prototype._enumerate=function(){for(var e=this,t=e.length,n=e.promise,r=e._input,i=0;n._state===ie&&t>i;i++)e._eachEntry(r[i],i)},I.prototype._eachEntry=function(e,t){var n=this,r=n._instanceConstructor;u(e)?e.constructor===r&&e._state!==ie?(e._onerror=null,n._settledAt(e._state,t,e._result)):n._willSettleAt(r.resolve(e),t):(n._remaining--,n._result[t]=e)},I.prototype._settledAt=function(e,t,n){var r=this,i=r.promise;i._state===ie&&(r._remaining--,e===ae?P(i,n):r._result[t]=n),0===r._remaining&&T(i,r._result)},I.prototype._willSettleAt=function(e,t){var n=this;S(e,void 0,function(e){n._settledAt(oe,t,e)},function(e){n._settledAt(ae,t,e)})};var le=M,pe=F,fe=L,de=V,he=0,me=q;q.all=le,q.race=pe,q.resolve=fe,q.reject=de,q._setScheduler=c,q._setAsap=l,q._asap=X,q.prototype={constructor:q,then:function(e,t){var n=this,r=n._state;if(r===oe&&!e||r===ae&&!t)return this;var i=new this.constructor(y),o=n._result;if(r){var a=arguments[r-1];X(function(){A(r,i,a,o)})}else S(n,i,e,t);return i},"catch":function(e){return this.then(null,e)}};var ve=B,ge={Promise:me,polyfill:ve};n(13).amd?(r=function(){return ge}.call(t,n,t,o),!(void 0!==r&&(o.exports=r))):"undefined"!=typeof o&&o.exports?o.exports=ge:"undefined"!=typeof this&&(this.ES6Promise=ge),ve()}).call(this)}).call(t,n(8),function(){return this}(),n(11)(e))},function(e){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(){},function(e){e.exports=function(){throw new Error("define cannot be used indirect")}},function(e,t,n){(function(t){"use strict";function r(e,t,r){var a=n(42)("algoliasearch"),s=n(45),u=n(35),c="Usage: algoliasearch(applicationID, apiKey, opts)";if(!e)throw new f.AlgoliaSearchError("Please provide an application ID. "+c);if(!t)throw new f.AlgoliaSearchError("Please provide an API key. "+c);this.applicationID=e,this.apiKey=t;var l=[this.applicationID+"-1.algolianet.com",this.applicationID+"-2.algolianet.com",this.applicationID+"-3.algolianet.com"];this.hosts={read:[],write:[]},this.hostIndex={read:0,write:0},r=r||{};var p=r.protocol||"https:",d=void 0===r.timeout?2e3:r.timeout;if(/:$/.test(p)||(p+=":"),"http:"!==r.protocol&&"https:"!==r.protocol)throw new f.AlgoliaSearchError("protocol must be `http:` or `https:` (was `"+r.protocol+"`)");r.hosts?u(r.hosts)?(this.hosts.read=s(r.hosts),this.hosts.write=s(r.hosts)):(this.hosts.read=s(r.hosts.read),this.hosts.write=s(r.hosts.write)):(this.hosts.read=[this.applicationID+"-dsn.algolia.net"].concat(l),this.hosts.write=[this.applicationID+".algolia.net"].concat(l)),this.hosts.read=i(this.hosts.read,o(p)),this.hosts.write=i(this.hosts.write,o(p)),this.requestTimeout=d,this.extraHeaders=[],this.cache={},this._ua=r._ua,this._useCache=void 0===r._useCache?!0:r._useCache,this._setTimeout=r._setTimeout,a("init done, %j",this)}function i(e,t){for(var n=[],r=0;r<e.length;++r)n.push(t(e[r],r));return n}function o(e){return function(t){return e+"//"+t.toLowerCase()}}function a(){var e="Not implemented in this environment.\nIf you feel this is a mistake, write to support@algolia.com";throw new f.AlgoliaSearchError(e)}function s(e,t){var n=e.toLowerCase().replace(".","").replace("()","");return"algoliasearch: `"+e+"` was replaced by `"+t+"`. Please see https://github.com/algolia/algoliasearch-client-js/wiki/Deprecated#"+n}function u(e,t){t(e,0)}function c(e,t){function n(){return r||(console.log(t),r=!0),e.apply(this,arguments)}var r=!1;return n}function l(e){if(void 0===Array.prototype.toJSON)return JSON.stringify(e);var t=Array.prototype.toJSON;delete Array.prototype.toJSON;var n=JSON.stringify(e);return Array.prototype.toJSON=t,n}function p(e){return function(t,n,r){if("function"==typeof t&&"object"==typeof n||"object"==typeof r)throw new f.AlgoliaSearchError("index.search usage is index.search(query, params, cb)");0===arguments.length||"function"==typeof t?(r=t,t=""):(1===arguments.length||"function"==typeof n)&&(r=n,n=void 0),"object"==typeof t&&null!==t?(n=t,t=void 0):(void 0===t||null===t)&&(t="");var i="";return void 0!==t&&(i+=e+"="+encodeURIComponent(t)),void 0!==n&&(i=this.as._getSearchParams(n,i)),this._search(i,r)}}e.exports=r;var f=n(15);r.prototype={deleteIndex:function(e,t){return this._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(e),hostType:"write",callback:t})},moveIndex:function(e,t,n){var r={operation:"move",destination:t};return this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(e)+"/operation",body:r,hostType:"write",callback:n})},copyIndex:function(e,t,n){var r={operation:"copy",destination:t};return this._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(e)+"/operation",body:r,hostType:"write",callback:n})},getLogs:function(e,t,n){return 0===arguments.length||"function"==typeof e?(n=e,e=0,t=10):(1===arguments.length||"function"==typeof t)&&(n=t,t=10),this._jsonRequest({method:"GET",url:"/1/logs?offset="+e+"&length="+t,hostType:"read",callback:n})},listIndexes:function(e,t){var n="";return void 0===e||"function"==typeof e?t=e:n="?page="+e,this._jsonRequest({method:"GET",url:"/1/indexes"+n,hostType:"read",callback:t})},initIndex:function(e){return new this.Index(this,e)},listUserKeys:function(e){return this._jsonRequest({method:"GET",url:"/1/keys",hostType:"read",callback:e})},getUserKeyACL:function(e,t){return this._jsonRequest({method:"GET",url:"/1/keys/"+e,hostType:"read",callback:t})},deleteUserKey:function(e,t){return this._jsonRequest({method:"DELETE",url:"/1/keys/"+e,hostType:"write",callback:t})},addUserKey:function(e,t,r){var i=n(35),o="Usage: client.addUserKey(arrayOfAcls[, params, callback])";if(!i(e))throw new Error(o);(1===arguments.length||"function"==typeof t)&&(r=t,t=null);var a={acl:e};return t&&(a.validity=t.validity,a.maxQueriesPerIPPerHour=t.maxQueriesPerIPPerHour,a.maxHitsPerQuery=t.maxHitsPerQuery,a.indexes=t.indexes,a.description=t.description,t.queryParameters&&(a.queryParameters=this._getSearchParams(t.queryParameters,"")),a.referers=t.referers),this._jsonRequest({method:"POST",url:"/1/keys",body:a,hostType:"write",callback:r})},addUserKeyWithValidity:c(function(e,t,n){return this.addUserKey(e,t,n)},s("client.addUserKeyWithValidity()","client.addUserKey()")),updateUserKey:function(e,t,r,i){var o=n(35),a="Usage: client.updateUserKey(key, arrayOfAcls[, params, callback])";if(!o(t))throw new Error(a);(2===arguments.length||"function"==typeof r)&&(i=r,r=null);var s={acl:t};return r&&(s.validity=r.validity,s.maxQueriesPerIPPerHour=r.maxQueriesPerIPPerHour,s.maxHitsPerQuery=r.maxHitsPerQuery,s.indexes=r.indexes,s.description=r.description,r.queryParameters&&(s.queryParameters=this._getSearchParams(r.queryParameters,"")),s.referers=r.referers),this._jsonRequest({method:"PUT",url:"/1/keys/"+e,body:s,hostType:"write",callback:i})},setSecurityTags:function(e){if("[object Array]"===Object.prototype.toString.call(e)){for(var t=[],n=0;n<e.length;++n)if("[object Array]"===Object.prototype.toString.call(e[n])){for(var r=[],i=0;i<e[n].length;++i)r.push(e[n][i]);t.push("("+r.join(",")+")")}else t.push(e[n]);e=t.join(",")}this.securityTags=e},setUserToken:function(e){this.userToken=e},startQueriesBatch:c(function(){this._batch=[]},s("client.startQueriesBatch()","client.search()")),addQueryInBatch:c(function(e,t,n){this._batch.push({indexName:e,query:t,params:n})},s("client.addQueryInBatch()","client.search()")),clearCache:function(){this.cache={}},sendQueriesBatch:c(function(e){return this.search(this._batch,e)},s("client.sendQueriesBatch()","client.search()")),setRequestTimeout:function(e){e&&(this.requestTimeout=parseInt(e,10))},search:function(e,t){var r=n(35),o="Usage: client.search(arrayOfQueries[, callback])";if(!r(e))throw new Error(o);var a=this,s={requests:i(e,function(e){var t="";return void 0!==e.query&&(t+="query="+encodeURIComponent(e.query)),{indexName:e.indexName,params:a._getSearchParams(e.params,t)}})};return this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:s,hostType:"read",callback:t})},batch:function(e,t){var r=n(35),i="Usage: client.batch(operations[, callback])";if(!r(e))throw new Error(i);return this._jsonRequest({method:"POST",url:"/1/indexes/*/batch",body:{requests:e},hostType:"write",callback:t})},destroy:a,enableRateLimitForward:a,disableRateLimitForward:a,useSecuredAPIKey:a,disableSecuredAPIKey:a,generateSecuredApiKey:a,Index:function(e,t){this.indexName=t,this.as=e,this.typeAheadArgs=null,this.typeAheadValueOption=null,this.cache={}},setExtraHeader:function(e,t){this.extraHeaders.push({name:e.toLowerCase(),value:t})},addAlgoliaAgent:function(e){this._ua+=";"+e},_sendQueriesBatch:function(e,t){function n(){for(var t="",n=0;n<e.requests.length;++n){var r="/1/indexes/"+encodeURIComponent(e.requests[n].indexName)+"?"+e.requests[n].params;t+=n+"="+encodeURIComponent(r)+"&"}return t}return this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:e,hostType:"read",fallback:{method:"GET",url:"/1/indexes/*",body:{params:n()}},callback:t})},_jsonRequest:function(e){function r(n,u){function d(e){var n=e&&e.body&&e.body.message&&e.body.status||e.statusCode||e&&e.body&&200;o("received response: statusCode: %s, computed statusCode: %d, headers: %j",e.statusCode,n,e.headers),t&&t.env.DEBUG&&-1!==t.env.DEBUG.indexOf("debugBody")&&o("body: %j",e.body);var r=200===n||201===n,i=!r&&4!==Math.floor(n/100)&&1!==Math.floor(n/100);if(s._useCache&&r&&a&&(a[v]=e.responseText),r)return e.body;if(i)return c+=1,m();var u=new f.AlgoliaSearchError(e.body&&e.body.message);return s._promise.reject(u)}function h(t){return o("error: %s, stack: %s",t.message,t.stack),t instanceof f.AlgoliaSearchError||(t=new f.Unknown(t&&t.message,t)),c+=1,t instanceof f.Unknown||t instanceof f.UnparsableJSON||c>=s.hosts[e.hostType].length&&(p||!e.fallback||!s._request.fallback)?s._promise.reject(t):(s.hostIndex[e.hostType]=++s.hostIndex[e.hostType]%s.hosts[e.hostType].length,t instanceof f.RequestTimeout?m():(s._request.fallback&&!s.useFallback&&(s.useFallback=!0),r(n,u)))}function m(){return s.hostIndex[e.hostType]=++s.hostIndex[e.hostType]%s.hosts[e.hostType].length,u.timeout=s.requestTimeout*(c+1),r(n,u)}var v;if(s._useCache&&(v=e.url),s._useCache&&i&&(v+="_body_"+u.body),s._useCache&&a&&void 0!==a[v])return o("serving response from cache"),s._promise.resolve(JSON.parse(a[v]));if(c>=s.hosts[e.hostType].length||s.useFallback&&!p)return e.fallback&&s._request.fallback&&!p?(o("switching to fallback"),c=0,u.method=e.fallback.method,u.url=e.fallback.url,u.jsonBody=e.fallback.body,u.jsonBody&&(u.body=l(u.jsonBody)),u.timeout=s.requestTimeout*(c+1),s.hostIndex[e.hostType]=0,p=!0,r(s._request.fallback,u)):(o("could not get any response"),s._promise.reject(new f.AlgoliaSearchError("Cannot connect to the AlgoliaSearch API. Send an email to support@algolia.com to report and resolve the issue. Application id was: "+s.applicationID)));var g=s.hosts[e.hostType][s.hostIndex[e.hostType]]+u.url,y={body:i,jsonBody:e.body,method:u.method,headers:s._computeRequestHeaders(),timeout:u.timeout,debug:o};return o("method: %s, url: %s, headers: %j, timeout: %d",y.method,g,y.headers,y.timeout),n===s._request.fallback&&o("using fallback"),n.call(s,g,y).then(d,h)}var i,o=n(42)("algoliasearch:"+e.url),a=e.cache,s=this,c=0,p=!1;void 0!==e.body&&(i=l(e.body)),o("request start");var d=s.useFallback&&e.fallback,h=d?e.fallback:e,m=r(d?s._request.fallback:s._request,{url:h.url,method:h.method,body:i,jsonBody:e.body,timeout:s.requestTimeout*(c+1)});return e.callback?void m.then(function(t){u(function(){e.callback(null,t)},s._setTimeout||setTimeout)},function(t){u(function(){e.callback(t)},s._setTimeout||setTimeout)}):m},_getSearchParams:function(e,t){if(this._isUndefined(e)||null===e)return t;for(var n in e)null!==n&&void 0!==e[n]&&e.hasOwnProperty(n)&&(t+=""===t?"":"&",t+=n+"="+encodeURIComponent("[object Array]"===Object.prototype.toString.call(e[n])?l(e[n]):e[n]));return t},_isUndefined:function(e){return void 0===e},_computeRequestHeaders:function(){var e=n(16),t={"x-algolia-api-key":this.apiKey,"x-algolia-application-id":this.applicationID,"x-algolia-agent":this._ua};return this.userToken&&(t["x-algolia-usertoken"]=this.userToken),this.securityTags&&(t["x-algolia-tagfilters"]=this.securityTags),this.extraHeaders&&e(this.extraHeaders,function(e){t[e.name]=e.value}),t}},r.prototype.Index.prototype={clearCache:function(){this.cache={}},addObject:function(e,t,n){var r=this;return(1===arguments.length||"function"==typeof t)&&(n=t,t=void 0),this.as._jsonRequest({method:void 0!==t?"PUT":"POST",url:"/1/indexes/"+encodeURIComponent(r.indexName)+(void 0!==t?"/"+encodeURIComponent(t):""),body:e,hostType:"write",callback:n})},addObjects:function(e,t){var r=n(35),i="Usage: index.addObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"addObject",body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},getObject:function(e,t,n){var r=this;(1===arguments.length||"function"==typeof t)&&(n=t,t=void 0);var i="";if(void 0!==t){i="?attributes=";for(var o=0;o<t.length;++o)0!==o&&(i+=","),i+=t[o]}return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(e)+i,hostType:"read",callback:n})},getObjects:function(e,t,r){var o=n(35),a="Usage: index.getObjects(arrayOfObjectIDs[, callback])";if(!o(e))throw new Error(a);var s=this;(1===arguments.length||"function"==typeof t)&&(r=t,t=void 0);var u={requests:i(e,function(e){var n={indexName:s.indexName,objectID:e};return t&&(n.attributesToRetrieve=t.join(",")),n})};return this.as._jsonRequest({method:"POST",url:"/1/indexes/*/objects",hostType:"read",body:u,callback:r})},partialUpdateObject:function(e,t){var n=this;return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/"+encodeURIComponent(e.objectID)+"/partial",body:e,hostType:"write",callback:t})},partialUpdateObjects:function(e,t){var r=n(35),i="Usage: index.partialUpdateObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"partialUpdateObject",objectID:e[s].objectID,body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},saveObject:function(e,t){var n=this;return this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/"+encodeURIComponent(e.objectID),body:e,hostType:"write",callback:t})},saveObjects:function(e,t){var r=n(35),i="Usage: index.saveObjects(arrayOfObjects[, callback])";if(!r(e))throw new Error(i);for(var o=this,a={requests:[]},s=0;s<e.length;++s){var u={action:"updateObject",objectID:e[s].objectID,body:e[s]};a.requests.push(u)}return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(o.indexName)+"/batch",body:a,hostType:"write",callback:t})},deleteObject:function(e,t){if("function"==typeof e||"string"!=typeof e&&"number"!=typeof e){var n=new f.AlgoliaSearchError("Cannot delete an object without an objectID");return t=e,"function"==typeof t?t(n):this.as._promise.reject(n)}var r=this;return this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(e),hostType:"write",callback:t})},deleteObjects:function(e,t){var r=n(35),o="Usage: index.deleteObjects(arrayOfObjectIDs[, callback])";if(!r(e))throw new Error(o);var a=this,s={requests:i(e,function(e){return{action:"deleteObject",objectID:e,body:{objectID:e}}})};return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(a.indexName)+"/batch",body:s,hostType:"write",callback:t})},deleteByQuery:function(e,t,r){function o(e){if(0===e.nbHits)return e;var t=i(e.hits,function(e){return e.objectID});return f.deleteObjects(t).then(a).then(s)}function a(e){return f.waitTask(e.taskID)}function s(){return f.deleteByQuery(e,t)}function c(){u(function(){r(null)},d._setTimeout||setTimeout)}function l(e){u(function(){r(e)},d._setTimeout||setTimeout)}var p=n(45),f=this,d=f.as;1===arguments.length||"function"==typeof t?(r=t,t={}):t=p(t),t.attributesToRetrieve="objectID",t.hitsPerPage=1e3,t.distinct=!1,this.clearCache();var h=this.search(e,t).then(o);return r?void h.then(c,l):h},search:p("query"),similarSearch:p("similarQuery"),browse:function(e,t,r){var i,o,a=n(55),s=this;0===arguments.length||1===arguments.length&&"function"==typeof arguments[0]?(i=0,r=arguments[0],e=void 0):"number"==typeof arguments[0]?(i=arguments[0],"number"==typeof arguments[1]?o=arguments[1]:"function"==typeof arguments[1]&&(r=arguments[1],o=void 0),e=void 0,t=void 0):"object"==typeof arguments[0]?("function"==typeof arguments[1]&&(r=arguments[1]),t=arguments[0],e=void 0):"string"==typeof arguments[0]&&"function"==typeof arguments[1]&&(r=arguments[1],t=void 0),t=a({},t||{},{page:i,hitsPerPage:o,query:e});var u=this.as._getSearchParams(t,"");return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(s.indexName)+"/browse?"+u,hostType:"read",callback:r})},browseFrom:function(e,t){return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/browse?cursor="+encodeURIComponent(e),hostType:"read",callback:t})},browseAll:function(e,t){function r(e){if(!s._stopped){var t;t=void 0!==e?"cursor="+encodeURIComponent(e):l,u._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/browse?"+t,hostType:"read",callback:i})}}function i(e,t){return s._stopped?void 0:e?void s._error(e):(s._result(t),void 0===t.cursor?void s._end():void r(t.cursor))}"object"==typeof e&&(t=e,e=void 0);var o=n(55),a=n(64),s=new a,u=this.as,c=this,l=u._getSearchParams(o({},t||{},{query:e}),"");return r(),s},ttAdapter:function(e){var t=this;return function(n,r,i){var o;o="function"==typeof i?i:r,t.search(n,e,function(e,t){return e?void o(e):void o(t.hits)})}},waitTask:function(e,t){function n(){return l._jsonRequest({method:"GET",hostType:"read",url:"/1/indexes/"+encodeURIComponent(c.indexName)+"/task/"+e}).then(function(e){s++;var t=o*s*s;return t>a&&(t=a),"published"!==e.status?l._promise.delay(t).then(n):e})}function r(e){u(function(){t(null,e)},l._setTimeout||setTimeout)}function i(e){u(function(){t(e)},l._setTimeout||setTimeout)}var o=100,a=5e3,s=0,c=this,l=c.as,p=n();return t?void p.then(r,i):p},clearIndex:function(e){var t=this;return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/clear",hostType:"write",callback:e})},getSettings:function(e){var t=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/settings",
7
+ hostType:"read",callback:e})},setSettings:function(e,t){var n=this;return this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/settings",hostType:"write",body:e,callback:t})},listUserKeys:function(e){var t=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(t.indexName)+"/keys",hostType:"read",callback:e})},getUserKeyACL:function(e,t){var n=this;return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/keys/"+e,hostType:"read",callback:t})},deleteUserKey:function(e,t){var n=this;return this.as._jsonRequest({method:"DELETE",url:"/1/indexes/"+encodeURIComponent(n.indexName)+"/keys/"+e,hostType:"write",callback:t})},addUserKey:function(e,t,r){var i=n(35),o="Usage: index.addUserKey(arrayOfAcls[, params, callback])";if(!i(e))throw new Error(o);(1===arguments.length||"function"==typeof t)&&(r=t,t=null);var a={acl:e};return t&&(a.validity=t.validity,a.maxQueriesPerIPPerHour=t.maxQueriesPerIPPerHour,a.maxHitsPerQuery=t.maxHitsPerQuery,a.description=t.description,t.queryParameters&&(a.queryParameters=this.as._getSearchParams(t.queryParameters,"")),a.referers=t.referers),this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/keys",body:a,hostType:"write",callback:r})},addUserKeyWithValidity:c(function(e,t,n){return this.addUserKey(e,t,n)},s("index.addUserKeyWithValidity()","index.addUserKey()")),updateUserKey:function(e,t,r,i){var o=n(35),a="Usage: index.updateUserKey(key, arrayOfAcls[, params, callback])";if(!o(t))throw new Error(a);(2===arguments.length||"function"==typeof r)&&(i=r,r=null);var s={acl:t};return r&&(s.validity=r.validity,s.maxQueriesPerIPPerHour=r.maxQueriesPerIPPerHour,s.maxHitsPerQuery=r.maxHitsPerQuery,s.description=r.description,r.queryParameters&&(s.queryParameters=this.as._getSearchParams(r.queryParameters,"")),s.referers=r.referers),this.as._jsonRequest({method:"PUT",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/keys/"+e,body:s,hostType:"write",callback:i})},_search:function(e,t){return this.as._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:e},hostType:"read",fallback:{method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName),body:{params:e}},callback:t})},as:null,indexName:null,typeAheadArgs:null,typeAheadValueOption:null}}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t){var r=n(16),i=this;"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):i.stack=(new Error).stack||"Cannot get a stacktrace, browser is too old",this.name=this.constructor.name,this.message=e||"Unknown error",t&&r(t,function(e,t){i[t]=e})}function i(e,t){function n(){var n=Array.prototype.slice.call(arguments,0);"string"!=typeof n[0]&&n.unshift(t),r.apply(this,n),this.name="AlgoliaSearch"+e+"Error"}return o(n,r),n}var o=n(9);o(r,Error),e.exports={AlgoliaSearchError:r,UnparsableJSON:i("UnparsableJSON","Could not parse the incoming response as JSON, see err.more for details"),RequestTimeout:i("RequestTimeout","Request timedout before getting a response"),Network:i("Network","Network issue, see err.more for details"),JSONPScriptFail:i("JSONPScriptFail","<script> was loaded but did not call our provided callback"),JSONPScriptError:i("JSONPScriptError","<script> unable to load due to an `error` event on it"),Unknown:i("Unknown","Unknown error occured")}},function(e,t,n){var r=n(17),i=n(18),o=n(39),a=o(r,i);e.exports=a},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){var r=n(19),i=n(38),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(20),o=n(24);e.exports=r},function(e,t,n){var r=n(21),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(22);e.exports=r},function(e,t,n){function r(e){return i(e)?e:Object(e)}var i=n(23);e.exports=r},function(e){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,t,n){var r=n(25),i=n(29),o=n(23),a=n(33),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(26);e.exports=r},function(e,t,n){function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(27),o=n(28),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){function r(e){return i(e)&&s.call(e)==o}var i=n(23),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){function r(e){return null!=e&&o(i(e))}var i=n(30),o=n(32);e.exports=r},function(e,t,n){var r=n(31),i=r("length");e.exports=i},function(e){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(34),o=n(35),a=n(36),s=n(32),u=n(37),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(29),o=n(28),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){var r=n(25),i=n(32),o=n(28),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(34),o=n(35),a=n(36),s=n(32),u=n(23),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(30),o=n(32),a=n(22);e.exports=r},function(e,t,n){function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(40),o=n(35);e.exports=r},function(e,t,n){function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(41);e.exports=r},function(e){function t(e){return e}e.exports=t},function(e,t,n){function r(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}function i(){var e=arguments,n=this.useColors;if(e[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+e[0]+(n?"%c ":" ")+"+"+t.humanize(this.diff),!n)return e;var r="color: "+this.color;e=[e[0],r,"color: inherit"].concat(Array.prototype.slice.call(e,1));var i=0,o=0;return e[0].replace(/%[a-z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(o=i))}),e.splice(o,0,r),e}function o(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function a(e){try{null==e?t.storage.removeItem("debug"):t.storage.debug=e}catch(n){}}function s(){var e;try{e=t.storage.debug}catch(n){}return e}function u(){try{return window.localStorage}catch(e){}}t=e.exports=n(43),t.log=o,t.formatArgs=i,t.save=a,t.load=s,t.useColors=r,t.storage="undefined"!=typeof chrome&&"undefined"!=typeof chrome.storage?chrome.storage.local:u(),t.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],t.formatters.j=function(e){return JSON.stringify(e)},t.enable(s())},function(e,t,n){function r(){return t.colors[l++%t.colors.length]}function i(e){function n(){}function i(){var e=i,n=+new Date,o=n-(c||n);e.diff=o,e.prev=c,e.curr=n,c=n,null==e.useColors&&(e.useColors=t.useColors()),null==e.color&&e.useColors&&(e.color=r());var a=Array.prototype.slice.call(arguments);a[0]=t.coerce(a[0]),"string"!=typeof a[0]&&(a=["%o"].concat(a));var s=0;a[0]=a[0].replace(/%([a-z%])/g,function(n,r){if("%%"===n)return n;s++;var i=t.formatters[r];if("function"==typeof i){var o=a[s];n=i.call(e,o),a.splice(s,1),s--}return n}),"function"==typeof t.formatArgs&&(a=t.formatArgs.apply(e,a));var u=i.log||t.log||console.log.bind(console);u.apply(e,a)}n.enabled=!1,i.enabled=!0;var o=t.enabled(e)?i:n;return o.namespace=e,o}function o(e){t.save(e);for(var n=(e||"").split(/[\s,]+/),r=n.length,i=0;r>i;i++)n[i]&&(e=n[i].replace(/\*/g,".*?"),"-"===e[0]?t.skips.push(new RegExp("^"+e.substr(1)+"$")):t.names.push(new RegExp("^"+e+"$")))}function a(){t.enable("")}function s(e){var n,r;for(n=0,r=t.skips.length;r>n;n++)if(t.skips[n].test(e))return!1;for(n=0,r=t.names.length;r>n;n++)if(t.names[n].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}t=e.exports=i,t.coerce=u,t.disable=a,t.enable=o,t.enabled=s,t.humanize=n(44),t.names=[],t.skips=[],t.formatters={};var c,l=0},function(e){function t(e){if(e=""+e,!(e.length>1e4)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*c;case"days":case"day":case"d":return n*u;case"hours":case"hour":case"hrs":case"hr":case"h":return n*s;case"minutes":case"minute":case"mins":case"min":case"m":return n*a;case"seconds":case"second":case"secs":case"sec":case"s":return n*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n}}}}function n(e){return e>=u?Math.round(e/u)+"d":e>=s?Math.round(e/s)+"h":e>=a?Math.round(e/a)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function r(e){return i(e,u,"day")||i(e,s,"hour")||i(e,a,"minute")||i(e,o,"second")||e+" ms"}function i(e,t,n){return t>e?void 0:1.5*t>e?Math.floor(e/t)+" "+n:Math.ceil(e/t)+" "+n+"s"}var o=1e3,a=60*o,s=60*a,u=24*s,c=365.25*u;e.exports=function(e,i){return i=i||{},"string"==typeof e?t(e):i["long"]?r(e):n(e)}},function(e,t,n){function r(e,t,n,r){return t&&"boolean"!=typeof t&&a(e,t,n)?t=!1:"function"==typeof t&&(r=n,n=t,t=!1),"function"==typeof n?i(e,t,o(n,r,3)):i(e,t)}var i=n(46),o=n(40),a=n(54);e.exports=r},function(e,t,n){function r(e,t,n,h,m,v,g){var b;if(n&&(b=m?n(e,h,m):n(e)),void 0!==b)return b;if(!f(e))return e;var x=p(e);if(x){if(b=u(e),!t)return i(e,b)}else{var E=F.call(e),_=E==y;if(E!=w&&E!=d&&(!_||m))return I[E]?c(e,E,t):m?e:{};if(b=l(_?{}:e),!t)return a(b,e)}v||(v=[]),g||(g=[]);for(var C=v.length;C--;)if(v[C]==e)return g[C];return v.push(e),g.push(b),(x?o:s)(e,function(i,o){b[o]=r(i,t,n,o,e,v,g)}),b}var i=n(47),o=n(17),a=n(48),s=n(19),u=n(50),c=n(51),l=n(53),p=n(35),f=n(23),d="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",g="[object Error]",y="[object Function]",b="[object Map]",x="[object Number]",w="[object Object]",E="[object RegExp]",_="[object Set]",C="[object String]",N="[object WeakMap]",$="[object ArrayBuffer]",O="[object Float32Array]",T="[object Float64Array]",P="[object Int8Array]",S="[object Int16Array]",D="[object Int32Array]",R="[object Uint8Array]",k="[object Uint8ClampedArray]",A="[object Uint16Array]",j="[object Uint32Array]",I={};I[d]=I[h]=I[$]=I[m]=I[v]=I[O]=I[T]=I[P]=I[S]=I[D]=I[x]=I[w]=I[E]=I[C]=I[R]=I[k]=I[A]=I[j]=!0,I[g]=I[y]=I[b]=I[_]=I[N]=!1;var M=Object.prototype,F=M.toString;e.exports=r},function(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(49),o=n(24);e.exports=r},function(e){function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e){function t(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&r.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var n=Object.prototype,r=n.hasOwnProperty;e.exports=t},function(e,t,n){function r(e,t,n){var r=e.constructor;switch(t){case l:return i(e);case o:case a:return new r(+e);case p:case f:case d:case h:case m:case v:case g:case y:case b:var w=e.buffer;return new r(n?i(w):w,e.byteOffset,e.length);case s:case c:return new r(e);case u:var E=new r(e.source,x.exec(e));E.lastIndex=e.lastIndex}return E}var i=n(52),o="[object Boolean]",a="[object Date]",s="[object Number]",u="[object RegExp]",c="[object String]",l="[object ArrayBuffer]",p="[object Float32Array]",f="[object Float64Array]",d="[object Int8Array]",h="[object Int16Array]",m="[object Int32Array]",v="[object Uint8Array]",g="[object Uint8ClampedArray]",y="[object Uint16Array]",b="[object Uint32Array]",x=/\w*$/;e.exports=r},function(e,t){(function(t){function n(e){var t=new r(e.byteLength),n=new i(t);return n.set(new i(e)),t}var r=t.ArrayBuffer,i=t.Uint8Array;e.exports=n}).call(t,function(){return this}())},function(e){function t(e){var t=e.constructor;return"function"==typeof t&&t instanceof t||(t=Object),new t}e.exports=t},function(e,t,n){function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(29),o=n(36),a=n(23);e.exports=r},function(e,t,n){var r=n(56),i=n(62),o=i(r);e.exports=o},function(e,t,n){function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(17),o=n(57),a=n(35),s=n(29),u=n(23),c=n(28),l=n(60),p=n(24);e.exports=r},function(e,t,n){function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(47),o=n(34),a=n(35),s=n(29),u=n(58),c=n(60),l=n(61);e.exports=r},function(e,t,n){function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(59),o=n(34),a=n(28),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(20),o=n(37);e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(32),o=n(28),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(49),o=n(37);e.exports=r},function(e,t,n){function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s)}return t})}var i=n(40),o=n(54),a=n(63);e.exports=r},function(e){function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){"use strict";function r(){}e.exports=r;var i=n(9),o=n(65).EventEmitter;i(r,o),r.prototype.stop=function(){this._stopped=!0,this._clean()},r.prototype._end=function(){this.emit("end"),this._clean()},r.prototype._error=function(e){this.emit("error",e),this._clean()},r.prototype._result=function(e){this.emit("result",e)},r.prototype._clean=function(){this.removeAllListeners("stop"),this.removeAllListeners("end"),this.removeAllListeners("error"),this.removeAllListeners("result")}},function(e){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";function r(e,t){return e+=/\?/.test(e)?"&":"?",e+i.encode(t)}e.exports=r;var i=n(67)},function(e,t,n){"use strict";t.decode=t.parse=n(68),t.encode=t.stringify=n(69)},function(e){"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,n,r,i){n=n||"&",r=r||"=";var o={};if("string"!=typeof e||0===e.length)return o;var a=/\+/g;e=e.split(n);var s=1e3;i&&"number"==typeof i.maxKeys&&(s=i.maxKeys);var u=e.length;s>0&&u>s&&(u=s);for(var c=0;u>c;++c){var l,p,f,d,h=e[c].replace(a,"%20"),m=h.indexOf(r);m>=0?(l=h.substr(0,m),p=h.substr(m+1)):(l=h,p=""),f=decodeURIComponent(l),d=decodeURIComponent(p),t(o,f)?Array.isArray(o[f])?o[f].push(d):o[f]=[o[f],d]:o[f]=d}return o}},function(e){"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,n,r,i){return n=n||"&",r=r||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map(function(i){var o=encodeURIComponent(t(i))+r;return Array.isArray(e[i])?e[i].map(function(e){return o+encodeURIComponent(t(e))}).join(n):o+encodeURIComponent(t(e[i]))}).join(n):i?encodeURIComponent(t(i))+r+encodeURIComponent(t(e)):""}},function(e,t,n){"use strict";function r(e,t,n){function r(){t.debug("JSONP: success"),m||p||(m=!0,l||(t.debug("JSONP: Fail. Script loaded but did not call the callback"),s(),n(new i.JSONPScriptFail)))}function a(){("loaded"===this.readyState||"complete"===this.readyState)&&r()}function s(){clearTimeout(v),d.onload=null,d.onreadystatechange=null,d.onerror=null,f.removeChild(d);try{delete window[h],delete window[h+"_loaded"]}catch(e){window[h]=null,window[h+"_loaded"]=null}}function u(){t.debug("JSONP: Script timeout"),p=!0,s(),n(new i.RequestTimeout)}function c(){t.debug("JSONP: Script error"),m||p||(s(),n(new i.JSONPScriptError))}if("GET"!==t.method)return void n(new Error("Method "+t.method+" "+e+" is not supported by JSONP."));t.debug("JSONP: start");var l=!1,p=!1;o+=1;var f=document.getElementsByTagName("head")[0],d=document.createElement("script"),h="algoliaJSONP_"+o,m=!1;window[h]=function(e){try{delete window[h]}catch(t){window[h]=void 0}p||(l=!0,s(),n(null,{body:e}))},e+="&callback="+h,t.jsonBody&&t.jsonBody.params&&(e+="&"+t.jsonBody.params);var v=setTimeout(u,t.timeout);d.onreadystatechange=a,d.onload=r,d.onerror=c,d.async=!0,d.defer=!0,d.src=e,f.appendChild(d)}e.exports=r;var i=n(15),o=0},function(e,t,n){function r(e,t,n){return"function"==typeof t?i(e,!0,o(t,n,3)):i(e,!0)}var i=n(46),o=n(40);e.exports=r},function(e){"use strict";function t(){var e=window.document.location.protocol;return"http:"!==e&&"https:"!==e&&(e="http:"),e}e.exports=t},function(e){"use strict";e.exports="3.10.0"},function(e,t,n){"use strict";function r(e,t,n){return new i(e,t,n)}var i=n(75),o=n(76),a=n(182);r.version=n(252),r.AlgoliaSearchHelper=i,r.SearchParameters=o,r.SearchResults=a,r.url=n(242),e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.client=e;var r=n||{};r.index=t,this.state=i.make(r),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1}var i=n(76),o=n(182),a=n(236),s=n(237),u=n(240),c=n(108),l=n(138),p=n(241),f=n(155),d=n(229),h=n(242);s.inherits(r,u.EventEmitter),r.prototype.search=function(){return this._search(),this},r.prototype.searchOnce=function(e,t){var n=this.state.setQueryParameters(e),r=a._getQueries(n.index,n);return t?this.client.search(r,function(e,r){t(e,new o(n,r),n)}):this.client.search(r).then(function(e){return{content:new o(n,e),state:n}})},r.prototype.setQuery=function(e){return this.state=this.state.setQuery(e),this._change(),this},r.prototype.clearRefinements=function(e){return this.state=this.state.clearRefinements(e),this._change(),this},r.prototype.clearTags=function(){return this.state=this.state.clearTags(),this._change(),this},r.prototype.addDisjunctiveFacetRefinement=function(e,t){return this.state=this.state.addDisjunctiveFacetRefinement(e,t),this._change(),this},r.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},r.prototype.addNumericRefinement=function(e,t,n){return this.state=this.state.addNumericRefinement(e,t,n),this._change(),this},r.prototype.addFacetRefinement=function(e,t){return this.state=this.state.addFacetRefinement(e,t),this._change(),this},r.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},r.prototype.addFacetExclusion=function(e,t){return this.state=this.state.addExcludeRefinement(e,t),this._change(),this},r.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},r.prototype.addTag=function(e){return this.state=this.state.addTagRefinement(e),this._change(),this},r.prototype.removeNumericRefinement=function(e,t,n){return this.state=this.state.removeNumericRefinement(e,t,n),this._change(),this},r.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this.state=this.state.removeDisjunctiveFacetRefinement(e,t),this._change(),this},r.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},r.prototype.removeFacetRefinement=function(e,t){return this.state=this.state.removeFacetRefinement(e,t),this._change(),this},r.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},r.prototype.removeFacetExclusion=function(e,t){return this.state=this.state.removeExcludeRefinement(e,t),this._change(),this},r.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},r.prototype.removeTag=function(e){return this.state=this.state.removeTagRefinement(e),this._change(),this},r.prototype.toggleFacetExclusion=function(e,t){return this.state=this.state.toggleExcludeFacetRefinement(e,t),this._change(),this},r.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},r.prototype.toggleRefinement=function(e,t){return this.state=this.state.toggleRefinement(e,t),this._change(),this},r.prototype.toggleRefine=function(){return this.toggleRefinement.apply(this,arguments)},r.prototype.toggleTag=function(e){return this.state=this.state.toggleTagRefinement(e),this._change(),this},r.prototype.nextPage=function(){return this.setCurrentPage(this.state.page+1)},r.prototype.previousPage=function(){return this.setCurrentPage(this.state.page-1)},r.prototype.setCurrentPage=function(e){if(0>e)throw new Error("Page requested below 0.");return this.state=this.state.setPage(e),this._change(),this},r.prototype.setIndex=function(e){return this.state=this.state.setIndex(e),this._change(),this},r.prototype.setQueryParameter=function(e,t){var n=this.state.setQueryParameter(e,t);return this.state===n?this:(this.state=n,this._change(),this)},r.prototype.setState=function(e){return this.state=new i(e),this._change(),this},r.prototype.getState=function(e){return void 0===e?this.state:this.state.filter(e)},r.prototype.getStateAsQueryString=function(e){var t=e&&e.filters||["query","attribute:*"],n=this.getState(t);return h.getQueryStringFromState(n,e)},r.getConfigurationFromQueryString=h.getStateFromQueryString,r.getForeignConfigurationInQueryString=h.getUnrecognizedParametersInQueryString,r.prototype.setStateFromQueryString=function(e,t){var n=t&&t.triggerChange||!1,r=h.getStateFromQueryString(e,t),i=this.state.setQueryParameters(r);n?this.setState(i):this.overrideStateWithoutTriggeringChangeEvent(i)},r.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new i(e),this},r.prototype.isRefined=function(e,t){if(this.state.isConjunctiveFacet(e))return this.state.isFacetRefined(e,t);if(this.state.isDisjunctiveFacet(e))return this.state.isDisjunctiveFacetRefined(e,t);throw new Error(e+" is not properly defined in this helper configuration(use the facets or disjunctiveFacets keys to configure it)")},r.prototype.hasRefinements=function(e){return f(this.state.getNumericRefinements(e))?this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):this.state.isHierarchicalFacet(e)?this.state.isHierarchicalFacetRefined(e):!1:!0},r.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},r.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},r.prototype.hasTag=function(e){return this.state.isTagRefined(e)},r.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},r.prototype.getIndex=function(){return this.state.index},r.prototype.getCurrentPage=function(){return this.state.page},r.prototype.getTags=function(){return this.state.tagRefinements},r.prototype.getQueryParameter=function(e){return this.state.getQueryParameter(e)},r.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e)){var n=this.state.getConjunctiveRefinements(e);c(n,function(e){t.push({value:e,type:"conjunctive"})});var r=this.state.getExcludeRefinements(e);c(r,function(e){t.push({value:e,type:"exclude"})})}else if(this.state.isDisjunctiveFacet(e)){var i=this.state.getDisjunctiveRefinements(e);c(i,function(e){t.push({value:e,type:"disjunctive"})})}var o=this.state.getNumericRefinements(e);return c(o,function(e,n){t.push({value:e,operator:n,type:"numeric"})}),t},r.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},r.prototype.getHierarchicalFacetBreadcrumb=function(e){return l(this.state.getHierarchicalRefinement(e)[0].split(this.state._getHierarchicalFacetSeparator(this.state.getHierarchicalFacetByName(e))),function(e){return d(e)})},r.prototype._search=function(){var e=this.state,t=a._getQueries(e.index,e);this.emit("search",e,this.lastResults),this.client.search(t,p(this._handleResponse,this,e,this._queryId++))},r.prototype._handleResponse=function(e,t,n,r){if(!(t<this._lastQueryIdReceived)){if(this._lastQueryIdReceived=t,n)return void this.emit("error",n);var i=this.lastResults=new o(e,r);this.emit("result",i,e)}},r.prototype.containsRefinement=function(e,t,n,r){return e||0!==t.length||0!==n.length||0!==r.length},r.prototype._hasDisjunctiveRefinements=function(e){return this.state.disjunctiveRefinements[e]&&this.state.disjunctiveRefinements[e].length>0},r.prototype._change=function(){this.emit("change",this.state,this.lastResults)},e.exports=r},function(e,t,n){"use strict";function r(e){var t=e?r._parseNumbers(e):{};this.index=t.index||"",this.query=t.query||"",this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{},
8
+ this.numericFilters=t.numericFilters,this.tagFilters=t.tagFilters,this.optionalTagFilters=t.optionalTagFilters,this.optionalFacetFilters=t.optionalFacetFilters,this.hitsPerPage=t.hitsPerPage,this.maxValuesPerFacet=t.maxValuesPerFacet,this.page=t.page||0,this.queryType=t.queryType,this.typoTolerance=t.typoTolerance,this.minWordSizefor1Typo=t.minWordSizefor1Typo,this.minWordSizefor2Typos=t.minWordSizefor2Typos,this.minProximity=t.minProximity,this.allowTyposOnNumericTokens=t.allowTyposOnNumericTokens,this.ignorePlurals=t.ignorePlurals,this.restrictSearchableAttributes=t.restrictSearchableAttributes,this.advancedSyntax=t.advancedSyntax,this.analytics=t.analytics,this.analyticsTags=t.analyticsTags,this.synonyms=t.synonyms,this.replaceSynonymsInHighlight=t.replaceSynonymsInHighlight,this.optionalWords=t.optionalWords,this.removeWordsIfNoResults=t.removeWordsIfNoResults,this.attributesToRetrieve=t.attributesToRetrieve,this.attributesToHighlight=t.attributesToHighlight,this.highlightPreTag=t.highlightPreTag,this.highlightPostTag=t.highlightPostTag,this.attributesToSnippet=t.attributesToSnippet,this.getRankingInfo=t.getRankingInfo,this.distinct=t.distinct,this.aroundLatLng=t.aroundLatLng,this.aroundLatLngViaIP=t.aroundLatLngViaIP,this.aroundRadius=t.aroundRadius,this.minimumAroundRadius=t.minimumAroundRadius,this.aroundPrecision=t.aroundPrecision,this.insideBoundingBox=t.insideBoundingBox,this.insidePolygon=t.insidePolygon,this.offset=t.offset,this.length=t.length,a(t,function(e,t){if(!this.hasOwnProperty(t)){var n="Unsupported SearchParameter: `"+t+"` (this will throw in the next version)";window?window.console&&window.console.error(n):console.error(n)}},this)}var i=n(77),o=n(92),a=n(100),s=n(108),u=n(113),c=n(138),l=n(141),p=n(145),f=n(152),d=n(89),h=n(155),m=n(157),v=n(156),g=n(158),y=n(80),b=n(159),x=n(163),w=n(164),E=n(173),_=n(179),C=n(180),N=n(181);r.PARAMETERS=i(new r),r._parseNumbers=function(e){var t={},n=["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"];if(s(n,function(n){var r=e[n];v(r)&&(t[n]=parseFloat(e[n]))}),e.numericRefinements){var r={};s(e.numericRefinements,function(e,t){r[t]={},s(e,function(e,n){var i=c(e,function(e){return d(e)?c(e,function(e){return v(e)?parseFloat(e):e}):v(e)?parseFloat(e):e});r[t][n]=i})}),t.numericRefinements=r}return E({},e,t)},r.make=function(e){var t=new r(e);return s(e.hierarchicalFacets,function(e){if(e.rootPath){var n=t.getHierarchicalRefinement(e.name);n.length>0&&0!==n[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),n=t.getHierarchicalRefinement(e.name),0===n.length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}}),_(t)},r.validate=function(e,t){var n=t||{},r=i(n),o=u(r,function(t){return!e.hasOwnProperty(t)});return 1===o.length?new Error("Property "+o[0]+" is not defined on SearchParameters (see http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)"):o.length>1?new Error("Properties "+o.join(" ")+" are not defined on SearchParameters (see http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)"):e.tagFilters&&n.tagRefinements&&n.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&n.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&n.numericRefinements&&!h(n.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):!h(e.numericRefinements)&&n.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},r.prototype={constructor:r,clearRefinements:function(e){var t=N.clearRefinement;return this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(e),facetsRefinements:t(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:t(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:t(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:t(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")})},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({page:0,tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e,page:0})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e,page:0})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e,page:0})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e,page:0})},addNumericRefinement:function(e,t,n){var r;if(g(n))r=n;else if(v(n))r=parseFloat(n);else{if(!d(n))throw new Error("The value should be a number, a parseable string or an array of those.");r=c(n,function(e){return v(e)?parseFloat(e):e})}if(this.isNumericRefined(e,t,r))return this;var i=E({},this.numericRefinements);return i[e]=E({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(r)):i[e][t]=[r],this.setQueryParameters({page:0,numericRefinements:i})},getConjunctiveRefinements:function(e){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,n){return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(r,i){return i===e&&r.op===t&&r.val===n})}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(n,r){return r===e&&n.op===t})}):this:this.isNumericRefined(e)?this.setQueryParameters({page:0,numericRefinements:this._clearNumericRefinements(function(t,n){return n===e})}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){return m(e)?{}:v(e)?p(this.numericRefinements,e):y(e)?l(this.numericRefinements,function(t,n,r){var i={};return s(n,function(t,n){var o=[];s(t,function(t){var i=e({val:t,op:n},r,"numeric");i||o.push(t)}),h(o)||(i[n]=o)}),h(i)||(t[r]=i),t},{}):void 0},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({page:0,facetsRefinements:N.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({page:0,facetsExcludes:N.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={page:0,tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({page:0,facetsRefinements:N.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({page:0,facetsExcludes:N.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={page:0,tagRefinements:u(this.tagRefinements,function(t){return t!==e})};return this.setQueryParameters(t)},toggleRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({page:0,facetsRefinements:N.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({page:0,facetsExcludes:N.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({page:0,disjunctiveFacetsRefinements:N.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var n=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),r={},i=void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+n));return r[e]=i?-1===t.indexOf(n)?[]:[t.slice(0,t.lastIndexOf(n))]:[t],this.setQueryParameters({page:0,hierarchicalFacetsRefinements:w({},r,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return f(this.disjunctiveFacets,e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return f(this.facets,e)>-1},isFacetRefined:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return N.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return N.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var n=this.getHierarchicalRefinement(e);return t?-1!==f(n,t):n.length>0},isNumericRefined:function(e,t,n){if(m(n)&&m(t))return!!this.numericRefinements[e];if(m(n))return this.numericRefinements[e]&&!m(this.numericRefinements[e][t]);var r=parseFloat(n);return this.numericRefinements[e]&&!m(this.numericRefinements[e][t])&&-1!==f(this.numericRefinements[e][t],r)},isTagRefined:function(e){return-1!==f(this.tagRefinements,e)},getRefinedDisjunctiveFacets:function(){var e=o(i(this.numericRefinements),this.disjunctiveFacets);return i(this.disjunctiveFacetsRefinements).concat(e).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){return o(x(this.hierarchicalFacets,"name"),i(this.hierarchicalFacetsRefinements))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return u(this.disjunctiveFacets,function(t){return-1===f(e,t)})},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacets","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={};return a(this,function(n,r){-1===f(e,r)&&void 0!==n&&(t[r]=n)}),t},getQueryParameter:function(e){if(!this.hasOwnProperty(e))throw new Error("Parameter '"+e+"' is not an attribute of SearchParameters (http://algolia.github.io/algoliasearch-helper-js/docs/SearchParameters.html)");return this[e]},setQueryParameter:function(e,t){if(this[e]===t)return this;var n={};return n[e]=t,this.setQueryParameters(n)},setQueryParameters:function(e){var t=r.validate(this,e);if(t)throw t;var n=r._parseNumbers(e);return this.mutateMe(function(t){var r=i(e);return s(r,function(e){t[e]=n[e]}),t})},filter:function(e){return C(this,e)},mutateMe:function(e){var t=new this.constructor(this);return e(t,this),_(t)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"==typeof e.showParentLevel?e.showParentLevel:!0},getHierarchicalFacetByName:function(e){return b(this.hierarchicalFacets,{name:e})}},e.exports=r},function(e,t,n){var r=n(78),i=n(83),o=n(81),a=n(87),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(79);e.exports=r},function(e,t,n){function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(80),o=n(82),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){function r(e){return i(e)&&s.call(e)==o}var i=n(81),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e){function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){function r(e){return null!=e&&o(i(e))}var i=n(84),o=n(86);e.exports=r},function(e,t,n){var r=n(85),i=r("length");e.exports=i},function(e){function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(88),o=n(89),a=n(90),s=n(86),u=n(91),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(83),o=n(82),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){var r=n(78),i=n(86),o=n(82),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(88),o=n(89),a=n(90),s=n(86),u=n(81),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){var r=n(93),i=n(95),o=n(96),a=n(83),s=n(99),u=s(function(e){for(var t=e.length,n=t,s=Array(h),u=r,c=!0,l=[];n--;){var p=e[n]=a(p=e[n])?p:[];s[n]=c&&p.length>=120?o(n&&p):null}var f=e[0],d=-1,h=f?f.length:0,m=s[0];e:for(;++d<h;)if(p=f[d],(m?i(m,p):u(l,p,0))<0){for(var n=t;--n;){var v=s[n];if((v?i(v,p):u(e[n],p,0))<0)continue e}m&&m.push(p),l.push(p)}return l});e.exports=u},function(e,t,n){function r(e,t,n){if(t!==t)return i(e,n);for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}var i=n(94);e.exports=r},function(e){function t(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i<r;){var o=e[i];if(o!==o)return i}return-1}e.exports=t},function(e,t,n){function r(e,t){var n=e.data,r="string"==typeof t||i(t)?n.set.has(t):n.hash[t];return r?0:-1}var i=n(81);e.exports=r},function(e,t,n){(function(t){function r(e){return s&&a?new i(e):null}var i=n(97),o=n(78),a=o(t,"Set"),s=o(Object,"create");e.exports=r}).call(t,function(){return this}())},function(e,t,n){(function(t){function r(e){var t=e?e.length:0;for(this.data={hash:s(null),set:new a};t--;)this.push(e[t])}var i=n(98),o=n(78),a=o(t,"Set"),s=o(Object,"create");r.prototype.push=i,e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e){var t=this.data;"string"==typeof e||i(e)?t.set.add(e):t.hash[e]=!0}var i=n(81);e.exports=r},function(e){function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){var r=n(101),i=n(105),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(102),o=n(77);e.exports=r},function(e,t,n){var r=n(103),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(104);e.exports=r},function(e,t,n){function r(e){return i(e)?e:Object(e)}var i=n(81);e.exports=r},function(e,t,n){function r(e){return function(t,n,r){return("function"!=typeof n||void 0!==r)&&(n=i(n,r,3)),e(t,n)}}var i=n(106);e.exports=r},function(e,t,n){function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(107);e.exports=r},function(e){function t(e){return e}e.exports=t},function(e,t,n){var r=n(109),i=n(110),o=n(112),a=o(r,i);e.exports=a},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){var r=n(101),i=n(111),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(84),o=n(86),a=n(104);e.exports=r},function(e,t,n){function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(106),o=n(89);e.exports=r},function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(114),o=n(115),a=n(137),s=n(89);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[++i]=a)}return o}e.exports=t},function(e,t,n){function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:a(e,t,n):null==e?s:"object"==r?i(e):void 0===t?u(e):o(e,t)}var i=n(116),o=n(128),a=n(106),s=n(107),u=n(135);e.exports=r},function(e,t,n){function r(e){var t=o(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:e[n]===r&&(void 0!==r||n in a(e))}}return function(e){return i(e,t)}}var i=n(117),o=n(125),a=n(104);e.exports=r},function(e,t,n){function r(e,t,n){var r=t.length,a=r,s=!n;if(null==e)return!a;for(e=o(e);r--;){var u=t[r];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++r<a;){u=t[r];var c=u[0],l=e[c],p=u[1];if(s&&u[2]){if(void 0===l&&!(c in e))return!1}else{var f=n?n(l,p,c):void 0;if(!(void 0===f?i(p,l,n,!0):f))return!1}}return!0}var i=n(118),o=n(104);e.exports=r},function(e,t,n){function r(e,t,n,s,u,c){return e===t?!0:null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,r,n,s,u,c)}var i=n(119),o=n(81),a=n(82);e.exports=r},function(e,t,n){function r(e,t,n,r,f,m,v){var g=s(e),y=s(t),b=l,x=l;g||(b=h.call(e),b==c?b=p:b!=p&&(g=u(e))),y||(x=h.call(t),x==c?x=p:x!=p&&(y=u(t)));var w=b==p,E=x==p,_=b==x;if(_&&!g&&!w)return o(e,t,b);if(!f){var C=w&&d.call(e,"__wrapped__"),N=E&&d.call(t,"__wrapped__");if(C||N)return n(C?e.value():e,N?t.value():t,r,f,m,v)}if(!_)return!1;m||(m=[]),v||(v=[]);for(var $=m.length;$--;)if(m[$]==e)return v[$]==t;m.push(e),v.push(t);var O=(g?i:a)(e,t,n,r,f,m,v);return m.pop(),v.pop(),O}var i=n(120),o=n(122),a=n(123),s=n(89),u=n(124),c="[object Arguments]",l="[object Array]",p="[object Object]",f=Object.prototype,d=f.hasOwnProperty,h=f.toString;e.exports=r},function(e,t,n){function r(e,t,n,r,o,a,s){var u=-1,c=e.length,l=t.length;if(c!=l&&!(o&&l>c))return!1;for(;++u<c;){var p=e[u],f=t[u],d=r?r(o?f:p,o?p:f,u):void 0;if(void 0!==d){if(d)continue;return!1}if(o){if(!i(t,function(e){return p===e||n(p,e,r,o,a,s)}))return!1}else if(p!==f&&!n(p,f,r,o,a,s))return!1}return!0}var i=n(121);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e){function t(e,t,u){switch(u){case n:case r:return+e==+t;case i:return e.name==t.name&&e.message==t.message;case o:return e!=+e?t!=+t:e==+t;case a:case s:return e==t+""}return!1}var n="[object Boolean]",r="[object Date]",i="[object Error]",o="[object Number]",a="[object RegExp]",s="[object String]";e.exports=t},function(e,t,n){function r(e,t,n,r,o,s,u){var c=i(e),l=c.length,p=i(t),f=p.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=c[d];if(!(o?h in t:a.call(t,h)))return!1}for(var m=o;++d<l;){h=c[d];var v=e[h],g=t[h],y=r?r(o?g:v,o?v:g,h):void 0;if(!(void 0===y?n(v,g,r,o,s,u):y))return!1;m||(m="constructor"==h)}if(!m){var b=e.constructor,x=t.constructor;if(b!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof x&&x instanceof x))return!1}return!0}var i=n(77),o=Object.prototype,a=o.hasOwnProperty;e.exports=r},function(e,t,n){function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(86),o=n(82),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){function r(e){for(var t=o(e),n=t.length;n--;)t[n][2]=i(t[n][1]);return t}var i=n(126),o=n(127);e.exports=r},function(e,t,n){function r(e){return e===e&&!i(e)}var i=n(81);e.exports=r},function(e,t,n){function r(e){e=o(e);for(var t=-1,n=i(e),r=n.length,a=Array(r);++t<r;){var s=n[t];a[t]=[s,e[s]]}return a}var i=n(77),o=n(104);e.exports=r},function(e,t,n){function r(e,t){var n=s(e),r=u(e)&&c(t),d=e+"";return e=f(e),function(s){if(null==s)return!1;var u=d;if(s=p(s),!(!n&&r||u in s)){if(s=1==e.length?s:i(s,a(e,0,-1)),null==s)return!1;u=l(e),s=p(s)}return s[u]===t?void 0!==t||u in s:o(t,s[u],void 0,!0)}}var i=n(129),o=n(118),a=n(130),s=n(89),u=n(131),c=n(126),l=n(132),p=n(104),f=n(133);e.exports=r},function(e,t,n){function r(e,t,n){if(null!=e){void 0!==n&&n in i(e)&&(t=[n]);for(var r=0,o=t.length;null!=e&&o>r;)e=e[t[r++]];return r&&r==o?e:void 0}}var i=n(104);e.exports=r},function(e){function t(e,t,n){var r=-1,i=e.length;t=null==t?0:+t||0,0>t&&(t=-t>i?0:i+t),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}e.exports=t},function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&s.test(e)||"number"==n)return!0;if(i(e))return!1;var r=!a.test(e);return r||null!=t&&e in o(t)}var i=n(89),o=n(104),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=r},function(e){function t(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=t},function(e,t,n){function r(e){if(o(e))return e;var t=[];return i(e).replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t}var i=n(134),o=n(89),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;e.exports=r},function(e){function t(e){return null==e?"":e+""}e.exports=t},function(e,t,n){function r(e){return a(e)?i(e):o(e)}var i=n(85),o=n(136),a=n(131);e.exports=r},function(e,t,n){function r(e){var t=e+"";return e=o(e),function(n){return i(n,e,t)}}var i=n(129),o=n(133);e.exports=r},function(e,t,n){function r(e,t){var n=[];return i(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var i=n(110);e.exports=r},function(e,t,n){function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(139),o=n(115),a=n(140),s=n(89);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=t},function(e,t,n){function r(e,t){var n=-1,r=o(e)?Array(e.length):[];return i(e,function(e,i,o){r[++n]=t(e,i,o)}),r}var i=n(110),o=n(83);e.exports=r},function(e,t,n){var r=n(142),i=n(110),o=n(143),a=o(r,i);e.exports=a},function(e){function t(e,t,n,r){var i=-1,o=e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=t},function(e,t,n){function r(e,t){return function(n,r,s,u){var c=arguments.length<3;return"function"==typeof r&&void 0===u&&a(n)?e(n,r,s,c):o(n,i(r,u,4),s,c,t)}}var i=n(115),o=n(144),a=n(89);e.exports=r},function(e){function t(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=t},function(e,t,n){var r=n(139),i=n(146),o=n(147),a=n(106),s=n(91),u=n(149),c=n(150),l=n(99),p=l(function(e,t){if(null==e)return{};if("function"!=typeof t[0]){var t=r(o(t),String);return u(e,i(s(e),t))}var n=a(t[0],t[1],3);return c(e,function(e,t,r){return!n(e,t,r)})});e.exports=p},function(e,t,n){function r(e,t){var n=e?e.length:0,r=[];if(!n)return r;var u=-1,c=i,l=!0,p=l&&t.length>=s?a(t):null,f=t.length;p&&(c=o,l=!1,t=p);e:for(;++u<n;){var d=e[u];if(l&&d===d){for(var h=f;h--;)if(t[h]===d)continue e;r.push(d)}else c(t,d,0)<0&&r.push(d)}return r}var i=n(93),o=n(95),a=n(96),s=200;e.exports=r},function(e,t,n){function r(e,t,n,c){c||(c=[]);for(var l=-1,p=e.length;++l<p;){var f=e[l];u(f)&&s(f)&&(n||a(f)||o(f))?t?r(f,t,n,c):i(c,f):n||(c[c.length]=f)}return c}var i=n(148),o=n(88),a=n(89),s=n(83),u=n(82);e.exports=r},function(e){function t(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}e.exports=t},function(e,t,n){function r(e,t){e=i(e);for(var n=-1,r=t.length,o={};++n<r;){var a=t[n];a in e&&(o[a]=e[a])}return o}var i=n(104);e.exports=r},function(e,t,n){function r(e,t){var n={};return i(e,function(e,r,i){t(e,r,i)&&(n[r]=e)}),n}var i=n(151);e.exports=r},function(e,t,n){function r(e,t){return i(e,t,o)}var i=n(102),o=n(91);e.exports=r},function(e,t,n){function r(e,t,n){var r=e?e.length:0;if(!r)return-1;if("number"==typeof n)n=0>n?a(r+n,0):n;else if(n){var s=o(e,t);return r>s&&(t===t?t===e[s]:e[s]!==e[s])?s:-1}return i(e,t,n||0)}var i=n(93),o=n(153),a=Math.max;e.exports=r},function(e,t,n){function r(e,t,n){var r=0,a=e?e.length:r;if("number"==typeof t&&t===t&&s>=a){for(;a>r;){var u=r+a>>>1,c=e[u];(n?t>=c:t>c)&&null!==c?r=u+1:a=u}return a}return i(e,t,o,n)}var i=n(154),o=n(107),a=4294967295,s=a>>>1;e.exports=r},function(e){function t(e,t,i,a){t=i(t);for(var s=0,u=e?e.length:0,c=t!==t,l=null===t,p=void 0===t;u>s;){var f=n((s+u)/2),d=i(e[f]),h=void 0!==d,m=d===d;if(c)var v=m||a;else v=l?m&&h&&(a||null!=d):p?m&&(a||h):null==d?!1:a?t>=d:t>d;v?s=f+1:u=f}return r(u,o)}var n=Math.floor,r=Math.min,i=4294967295,o=i-1;e.exports=t},function(e,t,n){function r(e){return null==e?!0:a(e)&&(o(e)||c(e)||i(e)||u(e)&&s(e.splice))?!e.length:!l(e).length}var i=n(88),o=n(89),a=n(83),s=n(80),u=n(82),c=n(156),l=n(77);e.exports=r},function(e,t,n){function r(e){return"string"==typeof e||i(e)&&s.call(e)==o}var i=n(82),o="[object String]",a=Object.prototype,s=a.toString;e.exports=r},function(e){function t(e){return void 0===e}e.exports=t},function(e,t,n){function r(e){return"number"==typeof e||i(e)&&s.call(e)==o}var i=n(82),o="[object Number]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t,n){var r=n(110),i=n(160),o=i(r);e.exports=o},function(e,t,n){function r(e,t){return function(n,r,u){if(r=i(r,u,3),s(n)){var c=a(n,r,t);return c>-1?n[c]:void 0}return o(n,r,e)}}var i=n(115),o=n(161),a=n(162),s=n(89);e.exports=r},function(e){function t(e,t,n,r){var i;return n(e,function(e,n,o){return t(e,n,o)?(i=r?n:e,!1):void 0}),i}e.exports=t},function(e){function t(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,t,n){function r(e,t){return i(e,o(t))}var i=n(138),o=n(135);e.exports=r},function(e,t,n){var r=n(165),i=n(171),o=n(172),a=o(r,i);e.exports=a},function(e,t,n){var r=n(166),i=n(167),o=n(169),a=o(function(e,t,n){return n?r(e,t,n):i(e,t)});e.exports=a},function(e,t,n){function r(e,t,n){for(var r=-1,o=i(t),a=o.length;++r<a;){var s=o[r],u=e[s],c=n(u,t[s],s,e,t);(c===c?c===u:u!==u)&&(void 0!==u||s in e)||(e[s]=c)}return e}var i=n(77);e.exports=r},function(e,t,n){function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(168),o=n(77);e.exports=r},function(e){function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e,t,n){function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s);
9
+
10
+ }return t})}var i=n(106),o=n(170),a=n(99);e.exports=r},function(e,t,n){function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(83),o=n(90),a=n(81);e.exports=r},function(e){function t(e,t){return void 0===e?t:e}e.exports=t},function(e,t,n){function r(e,t){return i(function(n){var r=n[0];return null==r?r:(n.push(t),e.apply(void 0,n))})}var i=n(99);e.exports=r},function(e,t,n){var r=n(174),i=n(169),o=i(r);e.exports=o},function(e,t,n){function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(109),o=n(175),a=n(89),s=n(83),u=n(81),c=n(82),l=n(124),p=n(77);e.exports=r},function(e,t,n){function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(176),o=n(88),a=n(89),s=n(83),u=n(177),c=n(124),l=n(178);e.exports=r},function(e){function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(151),o=n(88),a=n(82),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(168),o=n(91);e.exports=r},function(e,t,n){"use strict";var r=n(108),i=n(107),o=n(81),a=function(e){return o(e)?(r(e,a),Object.isFrozen(e)||Object.freeze(e),e):e};e.exports=Object.freeze?a:i},function(e,t,n){"use strict";function r(e,t){var n={},r=o(t,function(e){return-1!==e.indexOf("attribute:")}),c=a(r,function(e){return e.split(":")[1]});-1===u(c,"*")?i(c,function(t){e.isConjunctiveFacet(t)&&e.isFacetRefined(t)&&(n.facetsRefinements||(n.facetsRefinements={}),n.facetsRefinements[t]=e.facetsRefinements[t]),e.isDisjunctiveFacet(t)&&e.isDisjunctiveFacetRefined(t)&&(n.disjunctiveFacetsRefinements||(n.disjunctiveFacetsRefinements={}),n.disjunctiveFacetsRefinements[t]=e.disjunctiveFacetsRefinements[t]);var r=e.getNumericRefinements(t);s(r)||(n.numericRefinements||(n.numericRefinements={}),n.numericRefinements[t]=e.numericRefinements[t])}):(s(e.numericRefinements)||(n.numericRefinements=e.numericRefinements),s(e.facetsRefinements)||(n.facetsRefinements=e.facetsRefinements),s(e.disjunctiveFacetsRefinements)||(n.disjunctiveFacetsRefinements=e.disjunctiveFacetsRefinements),s(e.hierarchicalFacetsRefinements)||(n.hierarchicalFacetsRefinements=e.hierarchicalFacetsRefinements));var l=o(t,function(e){return-1===e.indexOf("attribute:")});return i(l,function(t){n[t]=e[t]}),n}var i=n(108),o=n(113),a=n(138),s=n(155),u=n(152);e.exports=r},function(e,t,n){"use strict";var r=n(157),i=n(156),o=n(80),a=n(155),s=n(164),u=n(141),c=n(113),l=n(145),p={addRefinement:function(e,t,n){if(p.isRefined(e,t,n))return e;var r=""+n,i=e[t]?e[t].concat(r):[r],o={};return o[t]=i,s({},o,e)},removeRefinement:function(e,t,n){if(r(n))return p.clearRefinement(e,t);var i=""+n;return p.clearRefinement(e,function(e,n){return t===n&&i===e})},toggleRefinement:function(e,t,n){if(r(n))throw new Error("toggleRefinement should be used with a value");return p.isRefined(e,t,n)?p.removeRefinement(e,t,n):p.addRefinement(e,t,n)},clearRefinement:function(e,t,n){return r(t)?{}:i(t)?l(e,t):o(t)?u(e,function(e,r,i){var o=c(r,function(e){return!t(e,i,n)});return a(o)||(e[i]=o),e},{}):void 0},isRefined:function(e,t,i){var o=n(152),a=!!e[t]&&e[t].length>0;if(r(i)||!a)return a;var s=""+i;return-1!==o(e[t],s)}};e.exports=p},function(e,t,n){"use strict";function r(e){var t={};return p(e,function(e,n){t[e]=n}),t}function i(e,t,n){t&&t[n]&&(e.stats=t[n])}function o(e,t){return v(e,function(e){return g(e.attributes,t)})}function a(e,t){var n=t.results[0];this.query=n.query,this.parsedQuery=n.parsedQuery,this.hits=n.hits,this.index=n.index,this.hitsPerPage=n.hitsPerPage,this.nbHits=n.nbHits,this.nbPages=n.nbPages,this.page=n.page,this.processingTimeMS=m(t.results,"processingTimeMS"),this.aroundLatLng=n.aroundLatLng,this.automaticRadius=n.automaticRadius,this.serverUsed=n.serverUsed,this.timeoutCounts=n.timeoutCounts,this.timeoutHits=n.timeoutHits,this.disjunctiveFacets=[],this.hierarchicalFacets=y(e.hierarchicalFacets,function(){return[]}),this.facets=[];var a=e.getRefinedDisjunctiveFacets(),s=r(e.facets),u=r(e.disjunctiveFacets),c=1;p(n.facets,function(t,r){var a=o(e.hierarchicalFacets,r);if(a){var c=a.attributes.indexOf(r);this.hierarchicalFacets[h(e.hierarchicalFacets,{name:a.name})][c]={attribute:r,data:t,exhaustive:n.exhaustiveFacetsCount}}else{var l,p=-1!==d(e.disjunctiveFacets,r),f=-1!==d(e.facets,r);p&&(l=u[r],this.disjunctiveFacets[l]={name:r,data:t,exhaustive:n.exhaustiveFacetsCount},i(this.disjunctiveFacets[l],n.facets_stats,r)),f&&(l=s[r],this.facets[l]={name:r,data:t,exhaustive:n.exhaustiveFacetsCount},i(this.facets[l],n.facets_stats,r))}},this),this.hierarchicalFacets=f(this.hierarchicalFacets),p(a,function(r){var o=t.results[c],a=e.getHierarchicalFacetByName(r);p(o.facets,function(t,r){var s;if(a){s=h(e.hierarchicalFacets,{name:a.name});var c=h(this.hierarchicalFacets[s],{attribute:r});if(-1===c)return;this.hierarchicalFacets[s][c].data=w({},this.hierarchicalFacets[s][c].data,t)}else{s=u[r];var l=n.facets&&n.facets[r]||{};this.disjunctiveFacets[s]={name:r,data:x({},t,l),exhaustive:o.exhaustiveFacetsCount},i(this.disjunctiveFacets[s],o.facets_stats,r),e.disjunctiveFacetsRefinements[r]&&p(e.disjunctiveFacetsRefinements[r],function(t){!this.disjunctiveFacets[s].data[t]&&d(e.disjunctiveFacetsRefinements[r],t)>-1&&(this.disjunctiveFacets[s].data[t]=0)},this)}},this),c++},this),p(e.getRefinedHierarchicalFacets(),function(n){var r=e.getHierarchicalFacetByName(n),i=e._getHierarchicalFacetSeparator(r),o=e.getHierarchicalRefinement(n);if(!(0===o.length||o[0].split(i).length<2)){var a=t.results[c];p(a.facets,function(t,n){var a=h(e.hierarchicalFacets,{name:r.name}),s=h(this.hierarchicalFacets[a],{attribute:n});if(-1!==s){var u={};if(o.length>0){var c=o[0].split(i)[0];u[c]=this.hierarchicalFacets[a][s].data[c]}this.hierarchicalFacets[a][s].data=x(u,t,this.hierarchicalFacets[a][s].data)}},this),c++}},this),p(e.facetsExcludes,function(e,t){var r=s[t];this.facets[r]={name:t,data:n.facets[t],exhaustive:n.exhaustiveFacetsCount},p(e,function(e){this.facets[r]=this.facets[r]||{name:t},this.facets[r].data=this.facets[r].data||{},this.facets[r].data[e]=0},this)},this),this.hierarchicalFacets=y(this.hierarchicalFacets,O(e)),this.facets=f(this.facets),this.disjunctiveFacets=f(this.disjunctiveFacets),this._state=e}function s(e,t){var n={name:t};if(e._state.isConjunctiveFacet(t)){var r=v(e.facets,n);return r?y(r.data,function(n,r){return{name:r,count:n,isRefined:e._state.isFacetRefined(t,r)}}):[]}if(e._state.isDisjunctiveFacet(t)){var i=v(e.disjunctiveFacets,n);return i?y(i.data,function(n,r){return{name:r,count:n,isRefined:e._state.isDisjunctiveFacetRefined(t,r)}}):[]}return e._state.isHierarchicalFacet(t)?v(e.hierarchicalFacets,n):void 0}function u(e,t){if(!t.data||0===t.data.length)return t;var n=y(t.data,C(u,e)),r=e(n),i=w({},t,{data:r});return i}function c(e,t){return t.sort(e)}function l(e,t){var n=v(e,{name:t});return n&&n.stats}var p=n(108),f=n(183),d=n(152),h=n(184),m=n(186),v=n(159),g=n(193),y=n(138),b=n(194),x=n(164),w=n(173),E=n(89),_=n(80),C=n(199),N=n(226),$=n(227),O=n(228);a.prototype.getFacetByName=function(e){var t={name:e};return v(this.facets,t)||v(this.disjunctiveFacets,t)||v(this.hierarchicalFacets,t)},a.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],a.prototype.getFacetValues=function(e,t){var n=s(this,e);if(!n)throw new Error(e+" is not a retrieved facet.");var r=x({},t,{sortBy:a.DEFAULT_SORT});if(E(r.sortBy)){var i=$(r.sortBy);return E(n)?b(n,i[0],i[1]):u(N(b,i[0],i[1]),n)}if(_(r.sortBy))return E(n)?n.sort(r.sortBy):u(C(c,r.sortBy),n);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")},a.prototype.getFacetStats=function(e){if(this._state.isConjunctiveFacet(e))return l(this.facets,e);if(this._state.isDisjunctiveFacet(e))return l(this.disjunctiveFacets,e);throw new Error(e+" is not present in `facets` or `disjunctiveFacets`")},e.exports=a},function(e){function t(e){for(var t=-1,n=e?e.length:0,r=-1,i=[];++t<n;){var o=e[t];o&&(i[++r]=o)}return i}e.exports=t},function(e,t,n){var r=n(185),i=r();e.exports=i},function(e,t,n){function r(e){return function(t,n,r){return t&&t.length?(n=i(n,r,3),o(t,n,e)):-1}}var i=n(115),o=n(162);e.exports=r},function(e,t,n){e.exports=n(187)},function(e,t,n){function r(e,t,n){return n&&u(e,t,n)&&(t=void 0),t=o(t,n,3),1==t.length?i(s(e)?e:c(e),t):a(e,t)}var i=n(188),o=n(115),a=n(189),s=n(89),u=n(170),c=n(190);e.exports=r},function(e){function t(e,t){for(var n=e.length,r=0;n--;)r+=+t(e[n])||0;return r}e.exports=t},function(e,t,n){function r(e,t){var n=0;return i(e,function(e,r,i){n+=+t(e,r,i)||0}),n}var i=n(110);e.exports=r},function(e,t,n){function r(e){return null==e?[]:i(e)?o(e)?e:Object(e):a(e)}var i=n(83),o=n(81),a=n(191);e.exports=r},function(e,t,n){function r(e){return i(e,o(e))}var i=n(192),o=n(77);e.exports=r},function(e){function t(e,t){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e[t[n]];return i}e.exports=t},function(e,t,n){function r(e,t,n,r){var f=e?o(e):0;return u(f)||(e=l(e),f=e.length),n="number"!=typeof n||r&&s(t,n,r)?0:0>n?p(f+n,0):n||0,"string"==typeof e||!a(e)&&c(e)?f>=n&&e.indexOf(t,n)>-1:!!f&&i(e,t,n)>-1}var i=n(93),o=n(84),a=n(89),s=n(170),u=n(86),c=n(156),l=n(191),p=Math.max;e.exports=r},function(e,t,n){function r(e,t,n,r){return null==e?[]:(r&&a(t,n,r)&&(n=void 0),o(t)||(t=null==t?[]:[t]),o(n)||(n=null==n?[]:[n]),i(e,t,n))}var i=n(195),o=n(89),a=n(170);e.exports=r},function(e,t,n){function r(e,t,n){var r=-1;t=i(t,function(e){return o(e)});var c=a(e,function(e){var n=i(t,function(t){return t(e)});return{criteria:n,index:++r,value:e}});return s(c,function(e,t){return u(e,t,n)})}var i=n(139),o=n(115),a=n(140),s=n(196),u=n(197);e.exports=r},function(e){function t(e,t){var n=e.length;for(e.sort(t);n--;)e[n]=e[n].value;return e}e.exports=t},function(e,t,n){function r(e,t,n){for(var r=-1,o=e.criteria,a=t.criteria,s=o.length,u=n.length;++r<s;){var c=i(o[r],a[r]);if(c){if(r>=u)return c;var l=n[r];return c*("asc"===l||l===!0?1:-1)}}return e.index-t.index}var i=n(198);e.exports=r},function(e){function t(e,t){if(e!==t){var n=null===e,r=void 0===e,i=e===e,o=null===t,a=void 0===t,s=t===t;if(e>t&&!o||!i||n&&!a&&s||r&&s)return 1;if(t>e&&!n||!s||o&&!r&&i||a&&i)return-1}return 0}e.exports=t},function(e,t,n){var r=n(200),i=32,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){function r(e){var t=a(function(n,r){var a=o(r,t.placeholder);return i(n,e,void 0,r,a)});return t}var i=n(201),o=n(221),a=n(99);e.exports=r},function(e,t,n){function r(e,t,n,r,g,y,b,x){var w=t&f;if(!w&&"function"!=typeof e)throw new TypeError(m);var E=r?r.length:0;if(E||(t&=~(d|h),r=g=void 0),E-=g?g.length:0,t&h){var _=r,C=g;r=g=void 0}var N=w?void 0:u(e),$=[e,t,n,r,g,_,C,y,b,x];if(N&&(c($,N),t=$[1],x=$[9]),$[9]=null==x?w?0:e.length:v(x-E,0)||0,t==p)var O=o($[0],$[2]);else O=t!=d&&t!=(p|d)||$[4].length?a.apply(void 0,$):s.apply(void 0,$);var T=N?i:l;return T(O,$)}var i=n(202),o=n(204),a=n(207),s=n(224),u=n(213),c=n(225),l=n(222),p=1,f=2,d=32,h=64,m="Expected a function",v=Math.max;e.exports=r},function(e,t,n){var r=n(107),i=n(203),o=i?function(e,t){return i.set(e,t),e}:r;e.exports=o},function(e,t,n){(function(t){var r=n(78),i=r(t,"WeakMap"),o=i&&new i;e.exports=o}).call(t,function(){return this}())},function(e,t,n){(function(t){function r(e,n){function r(){var i=this&&this!==t&&this instanceof r?o:e;return i.apply(n,arguments)}var o=i(e);return r}var i=n(205);e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),r=e.apply(n,t);return o(r)?r:n}}var i=n(206),o=n(81);e.exports=r},function(e,t,n){var r=n(81),i=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();e.exports=i},function(e,t,n){(function(t){function r(e,n,w,E,_,C,N,$,O,T){function P(){for(var h=arguments.length,m=h,v=Array(h);m--;)v[m]=arguments[m];if(E&&(v=o(v,E,_)),C&&(v=a(v,C,N)),k||j){var b=P.placeholder,M=l(v,b);if(h-=M.length,T>h){var F=$?i($):void 0,L=x(T-h,0),V=k?M:void 0,U=k?void 0:M,H=k?v:void 0,q=k?void 0:v;n|=k?g:y,n&=~(k?y:g),A||(n&=~(f|d));var B=[e,n,w,H,V,q,U,F,O,L],W=r.apply(void 0,B);return u(e)&&p(W,B),W.placeholder=b,W}}var z=D?w:this,K=R?z[e]:e;return $&&(v=c(v,$)),S&&O<v.length&&(v.length=O),this&&this!==t&&this instanceof P&&(K=I||s(e)),K.apply(z,v)}var S=n&b,D=n&f,R=n&d,k=n&m,A=n&h,j=n&v,I=R?void 0:s(e);return P}var i=n(176),o=n(208),a=n(209),s=n(205),u=n(210),c=n(220),l=n(221),p=n(222),f=1,d=2,h=4,m=8,v=16,g=32,y=64,b=128,x=Math.max;e.exports=r}).call(t,function(){return this}())},function(e){function t(e,t,r){for(var i=r.length,o=-1,a=n(e.length-i,0),s=-1,u=t.length,c=Array(u+a);++s<u;)c[s]=t[s];for(;++o<i;)c[r[o]]=e[o];for(;a--;)c[s++]=e[o++];return c}var n=Math.max;e.exports=t},function(e){function t(e,t,r){for(var i=-1,o=r.length,a=-1,s=n(e.length-o,0),u=-1,c=t.length,l=Array(s+c);++a<s;)l[a]=e[a];for(var p=a;++u<c;)l[p+u]=t[u];for(;++i<o;)l[p+r[i]]=e[a++];return l}var n=Math.max;e.exports=t},function(e,t,n){function r(e){var t=a(e),n=s[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var r=o(n);return!!r&&e===r[0]}var i=n(211),o=n(213),a=n(215),s=n(217);e.exports=r},function(e,t,n){function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=a,this.__views__=[]}var i=n(206),o=n(212),a=Number.POSITIVE_INFINITY;r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e){function t(){}e.exports=t},function(e,t,n){var r=n(203),i=n(214),o=r?function(e){return r.get(e)}:i;e.exports=o},function(e){function t(){}e.exports=t},function(e,t,n){function r(e){for(var t=e.name+"",n=i[t],r=n?n.length:0;r--;){var o=n[r],a=o.func;if(null==a||a==e)return o.name}return t}var i=n(216);e.exports=r},function(e){var t={};e.exports=t},function(e,t,n){function r(e){if(u(e)&&!s(e)&&!(e instanceof i)){if(e instanceof o)return e;if(p.call(e,"__chain__")&&p.call(e,"__wrapped__"))return c(e)}return new o(e)}var i=n(211),o=n(218),a=n(212),s=n(89),u=n(82),c=n(219),l=Object.prototype,p=l.hasOwnProperty;r.prototype=a.prototype,e.exports=r},function(e,t,n){function r(e,t,n){this.__wrapped__=e,this.__actions__=n||[],this.__chain__=!!t}var i=n(206),o=n(212);r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e,t,n){function r(e){return e instanceof i?e.clone():new o(e.__wrapped__,e.__chain__,a(e.__actions__))}var i=n(211),o=n(218),a=n(176);e.exports=r},function(e,t,n){function r(e,t){for(var n=e.length,r=a(t.length,n),s=i(e);r--;){var u=t[r];e[r]=o(u,n)?s[u]:void 0}return e}var i=n(176),o=n(90),a=Math.min;e.exports=r},function(e){function t(e,t){for(var r=-1,i=e.length,o=-1,a=[];++r<i;)e[r]===t&&(e[r]=n,a[++o]=r);return a}var n="__lodash_placeholder__";e.exports=t},function(e,t,n){var r=n(202),i=n(223),o=150,a=16,s=function(){var e=0,t=0;return function(n,s){var u=i(),c=a-(u-t);if(t=u,c>0){if(++e>=o)return n}else e=0;return r(n,s)}}();e.exports=s},function(e,t,n){var r=n(78),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};e.exports=o},function(e,t,n){(function(t){function r(e,n,r,a){function s(){for(var n=-1,i=arguments.length,o=-1,l=a.length,p=Array(l+i);++o<l;)p[o]=a[o];for(;i--;)p[o++]=arguments[++n];var f=this&&this!==t&&this instanceof s?c:e;return f.apply(u?r:this,p)}var u=n&o,c=i(e);return s}var i=n(205),o=1;e.exports=r}).call(t,function(){return this}())},function(e,t,n){function r(e,t){var n=e[1],r=t[1],m=n|r,v=p>m,g=r==p&&n==l||r==p&&n==f&&e[7].length<=t[8]||r==(p|f)&&n==l;if(!v&&!g)return e;r&u&&(e[2]=t[2],m|=n&u?0:c);var y=t[3];if(y){var b=e[3];e[3]=b?o(b,y,t[4]):i(y),e[4]=b?s(e[3],d):i(t[4])}return y=t[5],y&&(b=e[5],e[5]=b?a(b,y,t[6]):i(y),e[6]=b?s(e[5],d):i(t[6])),y=t[7],y&&(e[7]=i(y)),r&p&&(e[8]=null==e[8]?t[8]:h(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=n(176),o=n(208),a=n(209),s=n(221),u=1,c=4,l=8,p=128,f=256,d="__lodash_placeholder__",h=Math.min;e.exports=r},function(e,t,n){var r=n(200),i=64,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){"use strict";var r=n(141);e.exports=function(e){return r(e,function(e,t){var n=t.split(":");return e[0].push(n[0]),e[1].push(n[1]),e},[[],[]])}},function(e,t,n){"use strict";function r(e){return function(t,n){var r=e.hierarchicalFacets[n],o=e.hierarchicalFacetsRefinements[r.name]&&e.hierarchicalFacetsRefinements[r.name][0]||"",a=e._getHierarchicalFacetSeparator(r),s=e._getHierarchicalRootPath(r),u=e._getHierarchicalShowParentLevel(r),l=h(e._getHierarchicalFacetSortBy(r)),p=i(l,a,s,u,o),f=t;return s&&(f=t.slice(s.split(a).length)),c(f,p,{name:e.hierarchicalFacets[n].name,count:null,isRefined:!0,path:null,data:null})}}function i(e,t,n,r,i){return function(s,c,p){var h=s;if(p>0){var m=0;for(h=s;p>m;)h=h&&f(h.data,{isRefined:!0}),m++}if(h){var v=o(h.path||n,i,t,n,r);h.data=l(u(d(c.data,v),a(t,i)),e[0],e[1])}return s}}function o(e,t,n,r,i){return function(o,a){return!r||0===a.indexOf(r)&&r!==a?!r&&-1===a.indexOf(n)||r&&a.split(n).length-r.split(n).length===1||-1===a.indexOf(n)&&-1===t.indexOf(n)||0===t.indexOf(a)||0===a.indexOf(e+n)&&(i||0===a.indexOf(t)):!1}}function a(e,t){return function(n,r){return{name:p(s(r.split(e))),path:r,count:n,isRefined:t===r||0===t.indexOf(r+e),data:null}}}e.exports=r;var s=n(132),u=n(138),c=n(141),l=n(194),p=n(229),f=n(159),d=n(235),h=n(227)},function(e,t,n){function r(e,t,n){var r=e;return(e=i(e))?(n?s(r,t,n):null==t)?e.slice(u(e),c(e)+1):(t+="",e.slice(o(e,t),a(e,t)+1)):e}var i=n(134),o=n(230),a=n(231),s=n(170),u=n(232),c=n(234);e.exports=r},function(e){function t(e,t){for(var n=-1,r=e.length;++n<r&&t.indexOf(e.charAt(n))>-1;);return n}e.exports=t},function(e){function t(e,t){for(var n=e.length;n--&&t.indexOf(e.charAt(n))>-1;);return n}e.exports=t},function(e,t,n){function r(e){for(var t=-1,n=e.length;++t<n&&i(e.charCodeAt(t)););return t}var i=n(233);e.exports=r},function(e){function t(e){return 160>=e&&e>=9&&13>=e||32==e||160==e||5760==e||6158==e||e>=8192&&(8202>=e||8232==e||8233==e||8239==e||8287==e||12288==e||65279==e)}e.exports=t},function(e,t,n){function r(e){for(var t=e.length;t--&&i(e.charCodeAt(t)););return t}var i=n(233);e.exports=r},function(e,t,n){var r=n(147),i=n(106),o=n(149),a=n(150),s=n(99),u=s(function(e,t){return null==e?{}:"function"==typeof t[0]?a(e,i(t[0],t[1],3)):o(e,r(t))});e.exports=u},function(e,t,n){"use strict";var r=n(108),i=n(138),o=n(141),a=n(173),s=n(89),u={_getQueries:function(e,t){var n=[];return n.push({indexName:e,params:this._getHitsSearchParams(t)}),r(t.getRefinedDisjunctiveFacets(),function(r){n.push({indexName:e,params:this._getDisjunctiveFacetSearchParams(t,r)})},this),r(t.getRefinedHierarchicalFacets(),function(r){var i=t.getHierarchicalFacetByName(r),o=t.getHierarchicalRefinement(r);o.length>0&&o[0].split(t._getHierarchicalFacetSeparator(i)).length>1&&n.push({indexName:e,params:this._getDisjunctiveFacetSearchParams(t,r,!0)})},this),n},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(this._getHitsHierarchicalFacetsAttributes(e)),n=this._getFacetFilters(e),r=this._getNumericFilters(e),i=this._getTagFilters(e),o={facets:t,tagFilters:i};return(e.distinct===!0||e.distinct===!1)&&(o.distinct=e.distinct),n.length>0&&(o.facetFilters=n),r.length>0&&(o.numericFilters=r),a(e.getQueryParams(),o)},_getDisjunctiveFacetSearchParams:function(e,t,n){var r=this._getFacetFilters(e,t,n),i=this._getNumericFilters(e,t),o=this._getTagFilters(e),s={hitsPerPage:1,page:0,attributesToRetrieve:[],attributesToHighlight:[],attributesToSnippet:[],tagFilters:o},u=e.getHierarchicalFacetByName(t);return s.facets=u?this._getDisjunctiveHierarchicalFacetAttribute(e,u,n):t,(e.distinct===!0||e.distinct===!1)&&(s.distinct=e.distinct),i.length>0&&(s.numericFilters=i),r.length>0&&(s.facetFilters=r),a(e.getQueryParams(),s)},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var n=[];return r(e.numericRefinements,function(e,o){r(e,function(e,a){t!==o&&r(e,function(e){if(s(e)){var t=i(e,function(e){return o+a+e});n.push(t)}else n.push(o+a+e)})})}),n},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,n){var i=[];return r(e.facetsRefinements,function(e,t){r(e,function(e){i.push(t+":"+e)})}),r(e.facetsExcludes,function(e,t){r(e,function(e){i.push(t+":-"+e)})}),r(e.disjunctiveFacetsRefinements,function(e,n){if(n!==t&&e&&0!==e.length){var o=[];r(e,function(e){o.push(n+":"+e)}),i.push(o)}}),r(e.hierarchicalFacetsRefinements,function(r,o){var a=r[0];if(void 0!==a){var s,u,c=e.getHierarchicalFacetByName(o),l=e._getHierarchicalFacetSeparator(c),p=e._getHierarchicalRootPath(c);if(t===o){if(-1===a.indexOf(l)||!p&&n===!0||p&&p.split(l).length===a.split(l).length)return;p?(u=p.split(l).length-1,a=p):(u=a.split(l).length-2,a=a.slice(0,a.lastIndexOf(l))),s=c.attributes[u]}else u=a.split(l).length-1,s=c.attributes[u];s&&i.push([s+":"+a])}}),i},_getHitsHierarchicalFacetsAttributes:function(e){var t=[];return o(e.hierarchicalFacets,function(t,n){var r=e.getHierarchicalRefinement(n.name)[0];if(!r)return t.push(n.attributes[0]),t;var i=r.split(e._getHierarchicalFacetSeparator(n)).length,o=n.attributes.slice(0,i+1);return t.concat(o)},t)},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,n){var r=e._getHierarchicalFacetSeparator(t);if(n===!0){var i=e._getHierarchicalRootPath(t),o=0;return i&&(o=i.split(r).length),[t.attributes[o]]}var a=e.getHierarchicalRefinement(t.name)[0]||"",s=a.split(r).length-1;return t.attributes.slice(0,s+1)}};e.exports=u},function(e,t,n){(function(e,r){function i(e,n){var r={seen:[],stylize:a};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),m(n)?r.showHidden=n:n&&t._extend(r,n),w(r.showHidden)&&(r.showHidden=!1),w(r.depth)&&(r.depth=2),w(r.colors)&&(r.colors=!1),w(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=o),u(r,e,r.depth)}function o(e,t){var n=i.styles[t];return n?"["+i.colors[n][0]+"m"+e+"["+i.colors[n][1]+"m":e}function a(e){return e}function s(e){var t={};return e.forEach(function(e){t[e]=!0}),t}function u(e,n,r){if(e.customInspect&&n&&$(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return b(i)||(i=u(e,i,r)),i}var o=c(e,n);if(o)return o;var a=Object.keys(n),m=s(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(n)),N(n)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return l(n);if(0===a.length){if($(n)){var v=n.name?": "+n.name:"";return e.stylize("[Function"+v+"]","special")}if(E(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(C(n))return e.stylize(Date.prototype.toString.call(n),"date");if(N(n))return l(n)}var g="",y=!1,x=["{","}"];if(h(n)&&(y=!0,x=["[","]"]),$(n)){var w=n.name?": "+n.name:"";g=" [Function"+w+"]"}if(E(n)&&(g=" "+RegExp.prototype.toString.call(n)),C(n)&&(g=" "+Date.prototype.toUTCString.call(n)),N(n)&&(g=" "+l(n)),0===a.length&&(!y||0==n.length))return x[0]+g+x[1];if(0>r)return E(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special");e.seen.push(n);var _;return _=y?p(e,n,r,m,a):a.map(function(t){return f(e,n,r,m,t,y)}),e.seen.pop(),d(_,g,x)}function c(e,t){if(w(t))return e.stylize("undefined","undefined");if(b(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}return y(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):v(t)?e.stylize("null","null"):void 0}function l(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,n,r,i){for(var o=[],a=0,s=t.length;s>a;++a)o.push(D(t,String(a))?f(e,t,n,r,String(a),!0):"");return i.forEach(function(i){i.match(/^\d+$/)||o.push(f(e,t,n,r,i,!0))}),o}function f(e,t,n,r,i,o){var a,s,c;if(c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},c.get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),D(r,i)||(a="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(s=v(n)?u(e,c.value,null):u(e,c.value,n-1),s.indexOf("\n")>-1&&(s=o?s.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+s.split("\n").map(function(e){return" "+e}).join("\n"))):s=e.stylize("[Circular]","special")),w(a)){if(o&&i.match(/^\d+$/))return s;a=JSON.stringify(""+i),a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+s}function d(e,t,n){var r=0,i=e.reduce(function(e,t){return r++,t.indexOf("\n")>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1]:n[0]+t+" "+e.join(", ")+" "+n[1]}function h(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function v(e){return null===e}function g(e){return null==e}function y(e){return"number"==typeof e}function b(e){return"string"==typeof e}function x(e){return"symbol"==typeof e}function w(e){return void 0===e}function E(e){return _(e)&&"[object RegExp]"===T(e)}function _(e){return"object"==typeof e&&null!==e}function C(e){return _(e)&&"[object Date]"===T(e)}function N(e){return _(e)&&("[object Error]"===T(e)||e instanceof Error)}function $(e){return"function"==typeof e}function O(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||"undefined"==typeof e}function T(e){return Object.prototype.toString.call(e)}function P(e){return 10>e?"0"+e.toString(10):e.toString(10)}function S(){var e=new Date,t=[P(e.getHours()),P(e.getMinutes()),P(e.getSeconds())].join(":");return[e.getDate(),j[e.getMonth()],t].join(" ")}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var R=/%[sdj%]/g;t.format=function(e){if(!b(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(i(arguments[n]));return t.join(" ")}for(var n=1,r=arguments,o=r.length,a=String(e).replace(R,function(e){if("%%"===e)return"%";if(n>=o)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return e}}),s=r[n];o>n;s=r[++n])a+=v(s)||!_(s)?" "+s:" "+i(s);return a},t.deprecate=function(n,i){function o(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return n.apply(this,arguments)}if(w(e.process))return function(){return t.deprecate(n,i).apply(this,arguments)};if(r.noDeprecation===!0)return n;var a=!1;return o};var k,A={};t.debuglog=function(e){if(w(k)&&(k=r.env.NODE_DEBUG||""),e=e.toUpperCase(),!A[e])if(new RegExp("\\b"+e+"\\b","i").test(k)){var n=r.pid;A[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else A[e]=function(){};return A[e]},t.inspect=i,i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},t.isArray=h,t.isBoolean=m,t.isNull=v,t.isNullOrUndefined=g,t.isNumber=y,t.isString=b,t.isSymbol=x,t.isUndefined=w,t.isRegExp=E,t.isObject=_,t.isDate=C,t.isError=N,t.isFunction=$,t.isPrimitive=O,t.isBuffer=n(238);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];t.log=function(){console.log("%s - %s",S(),t.format.apply(t,arguments))},t.inherits=n(239),t._extend=function(e,t){if(!t||!_(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(t,function(){return this}(),n(8))},function(e){e.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},function(e){e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e){function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],
11
+ this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){var r=n(201),i=n(221),o=n(99),a=1,s=32,u=o(function(e,t,n){var o=a;if(n.length){var c=i(n,u.placeholder);o|=s}return r(e,o,t,n,c)});u.placeholder={},e.exports=u},function(e,t,n){"use strict";function r(e){return m(e)?d(e,r):v(e)?p(e,r):h(e)?g(e):e}function i(e,t,n){if(null!==e&&(t=t.replace(e,""),n=n.replace(e,"")),-1!==b.indexOf(t)||-1!==b.indexOf(n)){if("q"===t)return-1;if("q"===n)return 1;var r=-1!==y.indexOf(t),i=-1!==y.indexOf(n);if(r&&!i)return 1;if(i&&!r)return-1}return t.localeCompare(n)}var o=n(243),a=n(76),s=n(245),u=n(241),c=n(108),l=n(235),p=n(138),f=n(249),d=n(251),h=n(156),m=n(177),v=n(89),g=n(247).encode,y=["dFR","fR","nR","hFR","tR"],b=o.ENCODED_PARAMETERS;t.getStateFromQueryString=function(e,t){var n=t&&t.prefix||"",r=s.parse(e),i=new RegExp("^"+n),u=f(r,function(e,t){if(n&&i.test(t)){var r=t.replace(i,"");return o.decode(r)}var a=o.decode(t);return a||t}),c=a._parseNumbers(u);return l(c,a.PARAMETERS)},t.getUnrecognizedParametersInQueryString=function(e,t){var n=t&&t.prefix,r={},i=s.parse(e);if(n){var a=new RegExp("^"+n);c(i,function(e,t){a.test(t)||(r[t]=e)})}else c(i,function(e,t){o.decode(t)||(r[t]=e)});return r},t.getQueryStringFromState=function(e,t){var n=t&&t.moreAttributes,a=t&&t.prefix||"",c=r(e),l=f(c,function(e,t){var n=o.encode(t);return a+n}),p=""===a?null:new RegExp("^"+a),d=u(i,null,p);if(n){var h=s.stringify(l,{encode:!1,sort:d}),m=s.stringify(n,{encode:!1});return h?h+"&"+m:m}return s.stringify(l,{encode:!1,sort:d})}},function(e,t,n){"use strict";var r=n(244),i=n(77),o={advancedSyntax:"aS",allowTyposOnNumericTokens:"aTONT",analyticsTags:"aT",analytics:"a",aroundLatLngViaIP:"aLLVIP",aroundLatLng:"aLL",aroundPrecision:"aP",aroundRadius:"aR",attributesToHighlight:"aTH",attributesToRetrieve:"aTR",attributesToSnippet:"aTS",disjunctiveFacetsRefinements:"dFR",disjunctiveFacets:"dF",distinct:"d",facetsExcludes:"fE",facetsRefinements:"fR",facets:"f",getRankingInfo:"gRI",hierarchicalFacetsRefinements:"hFR",hierarchicalFacets:"hF",highlightPostTag:"hPoT",highlightPreTag:"hPrT",hitsPerPage:"hPP",ignorePlurals:"iP",index:"idx",insideBoundingBox:"iBB",insidePolygon:"iPg",length:"l",maxValuesPerFacet:"mVPF",minimumAroundRadius:"mAR",minProximity:"mP",minWordSizefor1Typo:"mWS1T",minWordSizefor2Typos:"mWS2T",numericFilters:"nF",numericRefinements:"nR",offset:"o",optionalWords:"oW",page:"p",queryType:"qT",query:"q",removeWordsIfNoResults:"rWINR",replaceSynonymsInHighlight:"rSIH",restrictSearchableAttributes:"rSA",synonyms:"s",tagFilters:"tF",tagRefinements:"tR",typoTolerance:"tT",optionalTagFilters:"oTF",optionalFacetFilters:"oFF"},a=r(o);e.exports={ENCODED_PARAMETERS:i(a),decode:function(e){return a[e]},encode:function(e){return o[e]}}},function(e,t,n){function r(e,t,n){n&&i(e,t,n)&&(t=void 0);for(var r=-1,a=o(e),u=a.length,c={};++r<u;){var l=a[r],p=e[l];t?s.call(c,p)?c[p].push(l):c[p]=[l]:c[p]=l}return c}var i=n(170),o=n(77),a=Object.prototype,s=a.hasOwnProperty;e.exports=r},function(e,t,n){var r=n(246),i=n(248);e.exports={stringify:r,parse:i}},function(e,t,n){var r=n(247),i={delimiter:"&",arrayPrefixGenerators:{brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},strictNullHandling:!1,skipNulls:!1,encode:!0};i.stringify=function(e,t,n,o,a,s,u,c){if("function"==typeof u)e=u(t,e);else if(r.isBuffer(e))e=e.toString();else if(e instanceof Date)e=e.toISOString();else if(null===e){if(o)return s?r.encode(t):t;e=""}if("string"==typeof e||"number"==typeof e||"boolean"==typeof e)return s?[r.encode(t)+"="+r.encode(e)]:[t+"="+e];var l=[];if("undefined"==typeof e)return l;var p;if(Array.isArray(u))p=u;else{var f=Object.keys(e);p=c?f.sort(c):f}for(var d=0,h=p.length;h>d;++d){var m=p[d];a&&null===e[m]||(l=l.concat(Array.isArray(e)?i.stringify(e[m],n(t,m),n,o,a,s,u):i.stringify(e[m],t+"["+m+"]",n,o,a,s,u)))}return l},e.exports=function(e,t){t=t||{};var n,r,o="undefined"==typeof t.delimiter?i.delimiter:t.delimiter,a="boolean"==typeof t.strictNullHandling?t.strictNullHandling:i.strictNullHandling,s="boolean"==typeof t.skipNulls?t.skipNulls:i.skipNulls,u="boolean"==typeof t.encode?t.encode:i.encode,c="function"==typeof t.sort?t.sort:null;"function"==typeof t.filter?(r=t.filter,e=r("",e)):Array.isArray(t.filter)&&(n=r=t.filter);var l=[];if("object"!=typeof e||null===e)return"";var p;p=t.arrayFormat in i.arrayPrefixGenerators?t.arrayFormat:"indices"in t?t.indices?"indices":"repeat":"indices";var f=i.arrayPrefixGenerators[p];n||(n=Object.keys(e)),c&&n.sort(c);for(var d=0,h=n.length;h>d;++d){var m=n[d];s&&null===e[m]||(l=l.concat(i.stringify(e[m],m,f,a,s,u,r,c)))}return l.join(o)}},function(e,t){var n={};n.hexTable=new Array(256);for(var r=0;256>r;++r)n.hexTable[r]="%"+((16>r?"0":"")+r.toString(16)).toUpperCase();t.arrayToObject=function(e,t){for(var n=t.plainObjects?Object.create(null):{},r=0,i=e.length;i>r;++r)"undefined"!=typeof e[r]&&(n[r]=e[r]);return n},t.merge=function(e,n,r){if(!n)return e;if("object"!=typeof n)return Array.isArray(e)?e.push(n):"object"==typeof e?e[n]=!0:e=[e,n],e;if("object"!=typeof e)return e=[e].concat(n);Array.isArray(e)&&!Array.isArray(n)&&(e=t.arrayToObject(e,r));for(var i=Object.keys(n),o=0,a=i.length;a>o;++o){var s=i[o],u=n[s];e[s]=Object.prototype.hasOwnProperty.call(e,s)?t.merge(e[s],u,r):u}return e},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;"string"!=typeof e&&(e=""+e);for(var t="",r=0,i=e.length;i>r;++r){var o=e.charCodeAt(r);45===o||46===o||95===o||126===o||o>=48&&57>=o||o>=65&&90>=o||o>=97&&122>=o?t+=e[r]:128>o?t+=n.hexTable[o]:2048>o?t+=n.hexTable[192|o>>6]+n.hexTable[128|63&o]:55296>o||o>=57344?t+=n.hexTable[224|o>>12]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o]:(++r,o=65536+((1023&o)<<10|1023&e.charCodeAt(r)),t+=n.hexTable[240|o>>18]+n.hexTable[128|o>>12&63]+n.hexTable[128|o>>6&63]+n.hexTable[128|63&o])}return t},t.compact=function(e,n){if("object"!=typeof e||null===e)return e;n=n||[];var r=n.indexOf(e);if(-1!==r)return n[r];if(n.push(e),Array.isArray(e)){for(var i=[],o=0,a=e.length;a>o;++o)"undefined"!=typeof e[o]&&i.push(e[o]);return i}var s=Object.keys(e);for(o=0,a=s.length;a>o;++o){var u=s[o];e[u]=t.compact(e[u],n)}return e},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null===e||"undefined"==typeof e?!1:!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}},function(e,t,n){var r=n(247),i={delimiter:"&",depth:5,arrayLimit:20,parameterLimit:1e3,strictNullHandling:!1,plainObjects:!1,allowPrototypes:!1,allowDots:!1};i.parseValues=function(e,t){for(var n={},i=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),o=0,a=i.length;a>o;++o){var s=i[o],u=-1===s.indexOf("]=")?s.indexOf("="):s.indexOf("]=")+1;if(-1===u)n[r.decode(s)]="",t.strictNullHandling&&(n[r.decode(s)]=null);else{var c=r.decode(s.slice(0,u)),l=r.decode(s.slice(u+1));n[c]=Object.prototype.hasOwnProperty.call(n,c)?[].concat(n[c]).concat(l):l}}return n},i.parseObject=function(e,t,n){if(!e.length)return t;var r,o=e.shift();if("[]"===o)r=[],r=r.concat(i.parseObject(e,t,n));else{r=n.plainObjects?Object.create(null):{};var a="["===o[0]&&"]"===o[o.length-1]?o.slice(1,o.length-1):o,s=parseInt(a,10),u=""+s;!isNaN(s)&&o!==a&&u===a&&s>=0&&n.parseArrays&&s<=n.arrayLimit?(r=[],r[s]=i.parseObject(e,t,n)):r[a]=i.parseObject(e,t,n)}return r},i.parseKeys=function(e,t,n){if(e){n.allowDots&&(e=e.replace(/\.([^\.\[]+)/g,"[$1]"));var r=/^([^\[\]]*)/,o=/(\[[^\[\]]*\])/g,a=r.exec(e),s=[];if(a[1]){if(!n.plainObjects&&Object.prototype.hasOwnProperty(a[1])&&!n.allowPrototypes)return;s.push(a[1])}for(var u=0;null!==(a=o.exec(e))&&u<n.depth;)++u,(n.plainObjects||!Object.prototype.hasOwnProperty(a[1].replace(/\[|\]/g,""))||n.allowPrototypes)&&s.push(a[1]);return a&&s.push("["+e.slice(a.index)+"]"),i.parseObject(s,t,n)}},e.exports=function(e,t){if(t=t||{},t.delimiter="string"==typeof t.delimiter||r.isRegExp(t.delimiter)?t.delimiter:i.delimiter,t.depth="number"==typeof t.depth?t.depth:i.depth,t.arrayLimit="number"==typeof t.arrayLimit?t.arrayLimit:i.arrayLimit,t.parseArrays=t.parseArrays!==!1,t.allowDots="boolean"==typeof t.allowDots?t.allowDots:i.allowDots,t.plainObjects="boolean"==typeof t.plainObjects?t.plainObjects:i.plainObjects,t.allowPrototypes="boolean"==typeof t.allowPrototypes?t.allowPrototypes:i.allowPrototypes,t.parameterLimit="number"==typeof t.parameterLimit?t.parameterLimit:i.parameterLimit,t.strictNullHandling="boolean"==typeof t.strictNullHandling?t.strictNullHandling:i.strictNullHandling,""===e||null===e||"undefined"==typeof e)return t.plainObjects?Object.create(null):{};for(var n="string"==typeof e?i.parseValues(e,t):e,o=t.plainObjects?Object.create(null):{},a=Object.keys(n),s=0,u=a.length;u>s;++s){var c=a[s],l=i.parseKeys(c,n[c],t);o=r.merge(o,l,t)}return r.compact(o)}},function(e,t,n){var r=n(250),i=r(!0);e.exports=i},function(e,t,n){function r(e){return function(t,n,r){var a={};return n=i(n,r,3),o(t,function(t,r,i){var o=n(t,r,i);r=e?o:r,t=e?t:o,a[r]=t}),a}}var i=n(115),o=n(101);e.exports=r},function(e,t,n){var r=n(250),i=r();e.exports=i},function(e){"use strict";e.exports="2.8.0"},function(e,t,n){"use strict";var r=n(254),i=n(255),o=n(276),a=o(r,i);e.exports=a},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length;++n<r&&t(e[n],n,e)!==!1;);return e}e.exports=t},function(e,t,n){"use strict";var r=n(256),i=n(275),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t){return i(e,t,o)}var i=n(257),o=n(261);e.exports=r},function(e,t,n){"use strict";var r=n(258),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){for(var o=i(t),a=r(t),s=a.length,u=e?s:-1;e?u--:++u<s;){var c=a[u];if(n(o[c],c,o)===!1)break}return t}}var i=n(259);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)?e:Object(e)}var i=n(260);e.exports=r},function(e){"use strict";function t(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=t},function(e,t,n){"use strict";var r=n(262),i=n(266),o=n(260),a=n(270),s=r(Object,"keys"),u=s?function(e){var t=null==e?void 0:e.constructor;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&i(e)?a(e):o(e)?s(e):[]}:a;e.exports=u},function(e,t,n){"use strict";function r(e,t){var n=null==e?void 0:e[t];return i(n)?n:void 0}var i=n(263);e.exports=r},function(e,t,n){"use strict";function r(e){return null==e?!1:i(e)?l.test(u.call(e)):o(e)&&a.test(e)}var i=n(264),o=n(265),a=/^\[object .+?Constructor\]$/,s=Object.prototype,u=Function.prototype.toString,c=s.hasOwnProperty,l=RegExp("^"+u.call(c).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&s.call(e)==o}var i=n(260),o="[object Function]",a=Object.prototype,s=a.toString;e.exports=r},function(e){"use strict";function t(e){return!!e&&"object"==typeof e}e.exports=t},function(e,t,n){"use strict";function r(e){return null!=e&&o(i(e))}var i=n(267),o=n(269);e.exports=r},function(e,t,n){"use strict";var r=n(268),i=r("length");e.exports=i},function(e){"use strict";function t(e){return function(t){return null==t?void 0:t[e]}}e.exports=t},function(e){"use strict";function t(e){return"number"==typeof e&&e>-1&&e%1==0&&n>=e}var n=9007199254740991;e.exports=t},function(e,t,n){"use strict";function r(e){for(var t=u(e),n=t.length,r=n&&e.length,c=!!r&&s(r)&&(o(e)||i(e)),p=-1,f=[];++p<n;){var d=t[p];(c&&a(d,r)||l.call(e,d))&&f.push(d)}return f}var i=n(271),o=n(272),a=n(273),s=n(269),u=n(274),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&i(e)&&s.call(e,"callee")&&!u.call(e,"callee")}var i=n(266),o=n(265),a=Object.prototype,s=a.hasOwnProperty,u=a.propertyIsEnumerable;e.exports=r},function(e,t,n){"use strict";var r=n(262),i=n(269),o=n(265),a="[object Array]",s=Object.prototype,u=s.toString,c=r(Array,"isArray"),l=c||function(e){return o(e)&&i(e.length)&&u.call(e)==a};e.exports=l},function(e){"use strict";function t(e,t){return e="number"==typeof e||n.test(e)?+e:-1,t=null==t?r:t,e>-1&&e%1==0&&t>e}var n=/^\d+$/,r=9007199254740991;e.exports=t},function(e,t,n){"use strict";function r(e){if(null==e)return[];u(e)||(e=Object(e));var t=e.length;t=t&&s(t)&&(o(e)||i(e))&&t||0;for(var n=e.constructor,r=-1,c="function"==typeof n&&n.prototype===e,p=Array(t),f=t>0;++r<t;)p[r]=r+"";for(var d in e)f&&a(d,t)||"constructor"==d&&(c||!l.call(e,d))||p.push(d);return p}var i=n(271),o=n(272),a=n(273),s=n(269),u=n(260),c=Object.prototype,l=c.hasOwnProperty;e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r){var s=n?i(n):0;if(!o(s))return e(n,r);for(var u=t?s:-1,c=a(n);(t?u--:++u<s)&&r(c[u],u,c)!==!1;);return n}}var i=n(267),o=n(269),a=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t){return function(n,r,a){return"function"==typeof r&&void 0===a&&o(n)?e(n,r):t(n,i(r,a,3))}}var i=n(277),o=n(272);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if("function"!=typeof e)return i;if(void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 3:return function(n,r,i){return e.call(t,n,r,i)};case 4:return function(n,r,i,o){return e.call(t,n,r,i,o)};case 5:return function(n,r,i,o,a){return e.call(t,n,r,i,o,a)}}return function(){return e.apply(t,arguments)}}var i=n(278);e.exports=r},function(e){"use strict";function t(e){return e}e.exports=t},function(e,t,n){"use strict";var r=n(280),i=n(288),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t,n,f,d){if(!u(e))return e;var h=s(t)&&(a(t)||l(t)),m=h?void 0:p(t);return i(m||t,function(i,a){if(m&&(a=i,i=t[a]),c(i))f||(f=[]),d||(d=[]),o(e,t,a,r,n,f,d);else{var s=e[a],u=n?n(s,i,a,e,t):void 0,l=void 0===u;l&&(u=i),void 0===u&&(!h||a in e)||!l&&(u===u?u===s:s!==s)||(e[a]=u)}}),e}var i=n(254),o=n(281),a=n(272),s=n(266),u=n(260),c=n(265),l=n(285),p=n(261);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,p,f,d){for(var h=f.length,m=t[n];h--;)if(f[h]==m)return void(e[n]=d[h]);var v=e[n],g=p?p(v,m,n,e,t):void 0,y=void 0===g;y&&(g=m,s(m)&&(a(m)||c(m))?g=a(v)?v:s(v)?i(v):[]:u(m)||o(m)?g=o(v)?l(v):u(v)?v:{}:y=!1),f.push(m),d.push(g),y?e[n]=r(g,m,p,f,d):(g===g?g!==v:v===v)&&(e[n]=g)}var i=n(282),o=n(271),a=n(272),s=n(266),u=n(283),c=n(285),l=n(286);e.exports=r},function(e){"use strict";function t(e,t){var n=-1,r=e.length;for(t||(t=Array(r));++n<r;)t[n]=e[n];return t}e.exports=t},function(e,t,n){"use strict";function r(e){var t;if(!a(e)||l.call(e)!=s||o(e)||!c.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return i(e,function(e,t){n=t}),void 0===n||c.call(e,n)}var i=n(284),o=n(271),a=n(265),s="[object Object]",u=Object.prototype,c=u.hasOwnProperty,l=u.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t){return i(e,t,o)}var i=n(257),o=n(274);e.exports=r},function(e,t,n){"use strict";function r(e){return o(e)&&i(e.length)&&!!P[D.call(e)]}var i=n(269),o=n(265),a="[object Arguments]",s="[object Array]",u="[object Boolean]",c="[object Date]",l="[object Error]",p="[object Function]",f="[object Map]",d="[object Number]",h="[object Object]",m="[object RegExp]",v="[object Set]",g="[object String]",y="[object WeakMap]",b="[object ArrayBuffer]",x="[object Float32Array]",w="[object Float64Array]",E="[object Int8Array]",_="[object Int16Array]",C="[object Int32Array]",N="[object Uint8Array]",$="[object Uint8ClampedArray]",O="[object Uint16Array]",T="[object Uint32Array]",P={};P[x]=P[w]=P[E]=P[_]=P[C]=P[N]=P[$]=P[O]=P[T]=!0,P[a]=P[s]=P[b]=P[u]=P[c]=P[l]=P[p]=P[f]=P[d]=P[h]=P[m]=P[v]=P[g]=P[y]=!1;var S=Object.prototype,D=S.toString;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e,o(e))}var i=n(287),o=n(274);e.exports=r},function(e){"use strict";function t(e,t,n){n||(n={});for(var r=-1,i=t.length;++r<i;){var o=t[r];n[o]=e[o]}return n}e.exports=t},function(e,t,n){"use strict";function r(e){return a(function(t,n){var r=-1,a=null==t?0:n.length,s=a>2?n[a-2]:void 0,u=a>2?n[2]:void 0,c=a>1?n[a-1]:void 0;for("function"==typeof s?(s=i(s,c,5),a-=2):(s="function"==typeof c?c:void 0,a-=s?1:0),u&&o(n[0],n[1],u)&&(s=3>a?void 0:s,a=1);++r<a;){var l=n[r];l&&e(t,l,s)}return t})}var i=n(277),o=n(289),a=n(290);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(!a(n))return!1;var r=typeof t;if("number"==r?i(n)&&o(t,n.length):"string"==r&&t in n){var s=n[t];return e===e?e===s:s!==s}return!1}var i=n(266),o=n(273),a=n(260);e.exports=r},function(e){"use strict";function t(e,t){if("function"!=typeof e)throw new TypeError(n);return t=r(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,i=-1,o=r(n.length-t,0),a=Array(o);++i<o;)a[i]=n[t+i];switch(t){case 0:return e.call(this,a);case 1:return e.call(this,n[0],a);case 2:return e.call(this,n[0],n[1],a)}var s=Array(t+1);for(i=-1;++i<t;)s[i]=n[i];return s[t]=a,e.apply(this,s)}}var n="Expected a function",r=Math.max;e.exports=t},function(e,t,n){"use strict";var r=n(292),i=n(294),o=n(290),a=o(function(e){return i(r(e,!1,!0))});e.exports=a},function(e,t,n){"use strict";function r(e,t,n,c){c||(c=[]);for(var l=-1,p=e.length;++l<p;){var f=e[l];u(f)&&s(f)&&(n||a(f)||o(f))?t?r(f,t,n,c):i(c,f):n||(c[c.length]=f)}return c}var i=n(293),o=n(271),a=n(272),s=n(266),u=n(265);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=-1,r=i,u=e.length,c=!0,l=c&&u>=s,p=l?a():null,f=[];p?(r=o,c=!1):(l=!1,p=t?[]:f);e:for(;++n<u;){var d=e[n],h=t?t(d,n,e):d;if(c&&d===d){for(var m=p.length;m--;)if(p[m]===h)continue e;t&&p.push(h),f.push(d)}else r(p,h,0)<0&&((t||l)&&p.push(h),f.push(d))}return f}var i=n(295),o=n(297),a=n(298),s=200;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(t!==t)return i(e,n);for(var r=n-1,o=e.length;++r<o;)if(e[r]===t)return r;return-1}var i=n(296);e.exports=r},function(e){"use strict";function t(e,t,n){for(var r=e.length,i=t+(n?0:-1);n?i--:++i<r;){var o=e[i];if(o!==o)return i}return-1}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=e.data,r="string"==typeof t||i(t)?n.set.has(t):n.hash[t];return r?0:-1}var i=n(260);e.exports=r},function(e,t,n){(function(t){"use strict";function r(e){return s&&a?new i(e):null}var i=n(299),o=n(262),a=o(t,"Set"),s=o(Object,"create");e.exports=r}).call(t,function(){return this}())},function(e,t,n){(function(t){"use strict";function r(e){var t=e?e.length:0;for(this.data={hash:s(null),set:new a};t--;)this.push(e[t])}var i=n(300),o=n(262),a=o(t,"Set"),s=o(Object,"create");r.prototype.push=i,e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){var t=this.data;"string"==typeof e||i(e)?t.set.add(e):t.hash[e]=!0}var i=n(260);e.exports=r},function(e){"use strict";function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function n(e){return"function"==typeof e}function r(e){return"number"==typeof e}function i(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}e.exports=t,t.EventEmitter=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if(!r(e)||0>e||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,r,a,s,u,c;if(this._events||(this._events={}),"error"===e&&(!this._events.error||i(this._events.error)&&!this._events.error.length)){if(t=arguments[1],t instanceof Error)throw t;throw TypeError('Uncaught, unspecified "error" event.')}if(r=this._events[e],o(r))return!1;if(n(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(i(r))for(s=Array.prototype.slice.call(arguments,1),c=r.slice(),a=c.length,u=0;a>u;u++)c[u].apply(this,s);return!0},t.prototype.addListener=function(e,r){var a;if(!n(r))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,n(r.listener)?r.listener:r),this._events[e]?i(this._events[e])?this._events[e].push(r):this._events[e]=[this._events[e],r]:this._events[e]=r,i(this._events[e])&&!this._events[e].warned&&(a=o(this._maxListeners)?t.defaultMaxListeners:this._maxListeners,a&&a>0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace())),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){function r(){this.removeListener(e,r),i||(i=!0,t.apply(this,arguments))}if(!n(t))throw TypeError("listener must be a function");var i=!1;return r.listener=t,this.on(e,r),this},t.prototype.removeListener=function(e,t){var r,o,a,s;if(!n(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,o=-1,r===t||n(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(i(r)){for(s=a;s-->0;)if(r[s]===t||r[s].listener&&r[s].listener===t){o=s;break}if(0>o)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(o,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],n(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?n(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(n(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){var t=e;return function(){var e=Date.now(),n=e-t;return t=e,n}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.useHash||!1,n=t?f:d;return new h(n,e)}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(74),u=s.AlgoliaSearchHelper,c=n(303).split(".")[0],l=n(304),p=n(279),f={character:"#",onpopstate:function(e){window.addEventListener("hashchange",e)},pushState:function(e){window.location.assign(this.createURL(e))},replaceState:function(e){window.location.replace(this.createURL(e))},createURL:function(e){return document.location.search+this.character+e},readUrl:function(){return window.location.hash.slice(1)}},d={character:"?",onpopstate:function(e){window.addEventListener("popstate",e)},pushState:function(e){window.history.pushState(null,"",this.createURL(e))},replaceState:function(e){window.history.replaceState(null,"",this.createURL(e))},createURL:function(e){return this.character+e+document.location.hash},readUrl:function(){return window.location.search.slice(1)}},h=function(){function e(t,n){r(this,e),this.urlUtils=t,this.originalConfig=null,this.timer=i(Date.now()),this.threshold=n.threshold||700,this.trackedParameters=n.trackedParameters||["query","attribute:*","index","page","hitsPerPage"]}return a(e,[{key:"getConfiguration",value:function(e){this.originalConfig=e;var t=this.urlUtils.readUrl(),n=u.getConfigurationFromQueryString(t);return n}},{key:"onPopState",value:function(e){var t=this.urlUtils.readUrl(),n=u.getConfigurationFromQueryString(t),r=p({},this.originalConfig,n),i=e.getState(this.trackedParameters),o=p({},this.originalConfig,i);l(o,r)||e.setState(r).search()}},{key:"init",value:function(e){var t=e.helper;this.urlUtils.onpopstate(this.onPopState.bind(this,t))}},{key:"render",value:function(e){var t=e.helper,n=t.getState(this.trackedParameters),r=this.urlUtils.readUrl(),i=u.getConfigurationFromQueryString(r);if(!l(n,i)){var o=u.getForeignConfigurationInQueryString(r);o.is_v=c;var a=t.getStateAsQueryString({filters:this.trackedParameters,moreAttributes:o});this.timer()<this.threshold?this.urlUtils.replaceState(a):this.urlUtils.pushState(a)}}},{key:"createURL",value:function(e){var t=this.urlUtils.readUrl(),n=e.filter(this.trackedParameters),r=s.url.getUnrecognizedParametersInQueryString(t);return r.is_v=c,this.urlUtils.createURL(s.url.getQueryStringFromState(n))}}]),e}();e.exports=o},function(e){"use strict";e.exports="1.2.0-beta.0"},function(e,t,n){"use strict";function r(e,t,n,r){n="function"==typeof n?o(n,r,3):void 0;var a=n?n(e,t):void 0;return void 0===a?i(e,t,n):!!a}var i=n(305),o=n(277);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,s,u,c){return e===t?!0:null==e||null==t||!o(e)&&!a(t)?e!==e&&t!==t:i(e,t,r,n,s,u,c)}var i=n(306),o=n(260),a=n(265);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,f,m,v){var g=s(e),y=s(t),b=l,x=l;g||(b=h.call(e),b==c?b=p:b!=p&&(g=u(e))),y||(x=h.call(t),x==c?x=p:x!=p&&(y=u(t)));var w=b==p,E=x==p,_=b==x;if(_&&!g&&!w)return o(e,t,b);if(!f){var C=w&&d.call(e,"__wrapped__"),N=E&&d.call(t,"__wrapped__");if(C||N)return n(C?e.value():e,N?t.value():t,r,f,m,v)}if(!_)return!1;m||(m=[]),v||(v=[]);for(var $=m.length;$--;)if(m[$]==e)return v[$]==t;m.push(e),v.push(t);var O=(g?i:a)(e,t,n,r,f,m,v);return m.pop(),v.pop(),O}var i=n(307),o=n(309),a=n(310),s=n(272),u=n(285),c="[object Arguments]",l="[object Array]",p="[object Object]",f=Object.prototype,d=f.hasOwnProperty,h=f.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,o,a,s){var u=-1,c=e.length,l=t.length;if(c!=l&&!(o&&l>c))return!1;for(;++u<c;){var p=e[u],f=t[u],d=r?r(o?f:p,o?p:f,u):void 0;if(void 0!==d){if(d)continue;return!1}if(o){if(!i(t,function(e){return p===e||n(p,e,r,o,a,s)}))return!1}else if(p!==f&&!n(p,f,r,o,a,s))return!1}return!0}var i=n(308);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}e.exports=t},function(e){"use strict";function t(e,t,u){switch(u){case n:case r:return+e==+t;case i:return e.name==t.name&&e.message==t.message;case o:return e!=+e?t!=+t:e==+t;case a:case s:return e==t+""}return!1}var n="[object Boolean]",r="[object Date]",i="[object Error]",o="[object Number]",a="[object RegExp]",s="[object String]";e.exports=t},function(e,t,n){"use strict";function r(e,t,n,r,o,s,u){var c=i(e),l=c.length,p=i(t),f=p.length;if(l!=f&&!o)return!1;for(var d=l;d--;){var h=c[d];if(!(o?h in t:a.call(t,h)))return!1}for(var m=o;++d<l;){h=c[d];var v=e[h],g=t[h],y=r?r(o?g:v,o?v:g,h):void 0;if(!(void 0===y?n(v,g,r,o,s,u):y))return!1;m||(m="constructor"==h)}if(!m){var b=e.constructor,x=t.constructor;if(b!=x&&"constructor"in e&&"constructor"in t&&!("function"==typeof b&&b instanceof b&&"function"==typeof x&&x instanceof x))return!1}return!0}var i=n(261),o=Object.prototype,a=o.hasOwnProperty;e.exports=r},function(e){"use strict";e.exports=function(e){var t=e.numberLocale;return{formatNumber:function(e,n){return Number(n(e)).toLocaleString(t)}}}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.templates,a=void 0===r?g:r,s=e.cssClasses,b=void 0===s?{}:s,x=e.autoHideContainer,w=void 0===x?!0:x;if(!t)throw new Error(y);var E=u(t),_=v(n(541));return w===!0&&(_=m(_)),{render:function(e){var t=e.results,n=e.helper,r=e.state,s=e.templatesConfig,u=e.createURL,m=0!==l(t,r).length,v={root:h(d(null),b.root),header:h(d("header"),b.header),body:h(d("body"),b.body),footer:h(d("footer"),b.footer),link:h(d("link"),b.link)},y=u(p(r)),x=f.bind(null,n),w=c({defaultTemplates:g,templatesConfig:s,templates:a});o.render(i.createElement(_,{clearAll:x,cssClasses:v,hasRefinements:m,shouldAutoHideContainer:!m,templateProps:w,url:y}),E)}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper,u=a.getContainerNode,c=a.prepareTemplateProps,l=a.getRefinements,p=a.clearRefinementsFromState,f=a.clearRefinementsAndSearch,d=s("ais-clear-all"),h=n(497),m=n(498),v=n(499),g=n(540),y="Usage:\nclearAll({\n container,\n [cssClasses.{root,header,body,footer,link}={}],\n [templates.{header,link,footer}={header: '', link: 'Clear all', footer: ''}],\n [autoHideContainer=true]\n})";e.exports=r},function(e,t,n){"use strict";e.exports=n(314)},function(e,t,n){"use strict";var r=n(315),i=n(459),o=n(463),a=n(350),s=n(468),u={};a(u,o),a(u,{findDOMNode:s("findDOMNode","ReactDOM","react-dom",r,r.findDOMNode),render:s("render","ReactDOM","react-dom",r,r.render),unmountComponentAtNode:s("unmountComponentAtNode","ReactDOM","react-dom",r,r.unmountComponentAtNode),renderToString:s("renderToString","ReactDOMServer","react-dom/server",i,i.renderToString),renderToStaticMarkup:s("renderToStaticMarkup","ReactDOMServer","react-dom/server",i,i.renderToStaticMarkup)}),u.__SECRET_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=r,u.__SECRET_DOM_SERVER_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=i,e.exports=u},function(e,t,n){(function(t){"use strict";var r=n(316),i=n(317),o=n(382),a=n(356),s=n(339),u=n(329),c=n(361),l=n(365),p=n(457),f=n(402),d=n(458),h=n(336);o.inject();var m=u.measure("React","render",s.render),v={findDOMNode:f,render:m,unmountComponentAtNode:s.unmountComponentAtNode,version:p,unstable_batchedUpdates:l.batchedUpdates,unstable_renderSubtreeIntoContainer:d};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject&&__REACT_DEVTOOLS_GLOBAL_HOOK__.inject({CurrentOwner:r,InstanceHandles:a,Mount:s,Reconciler:c,TextComponent:i}),"production"!==t.env.NODE_ENV){var g=n(320);if(g.canUseDOM&&window.top===window.self){"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&(navigator.userAgent.indexOf("Chrome")>-1&&-1===navigator.userAgent.indexOf("Edge")||navigator.userAgent.indexOf("Firefox")>-1)&&console.debug("Download the React DevTools for a better development experience: https://fb.me/react-devtools");var y=document.documentMode&&document.documentMode<8;"production"!==t.env.NODE_ENV?h(!y,'Internet Explorer is running in compatibility mode; please add the following tag to your HTML to prevent this from happening: <meta http-equiv="X-UA-Compatible" content="IE=edge" />'):void 0;for(var b=[Array.isArray,Array.prototype.every,Array.prototype.forEach,Array.prototype.indexOf,Array.prototype.map,Date.now,Function.prototype.bind,Object.keys,String.prototype.split,String.prototype.trim,Object.create,Object.freeze],x=0;x<b.length;x++)if(!b[x]){console.error("One or more ES5 shim/shams expected by React are not available: https://fb.me/react-warning-polyfills");break}}}e.exports=v}).call(t,n(8))},function(e){"use strict";var t={current:null};e.exports=t},function(e,t,n){
12
+ (function(t){"use strict";var r=n(318),i=n(333),o=n(337),a=n(339),s=n(350),u=n(332),c=n(331),l=n(381),p=function(){};s(p.prototype,{construct:function(e){this._currentElement=e,this._stringText=""+e,this._rootNodeID=null,this._mountIndex=0},mountComponent:function(e,n,r){if("production"!==t.env.NODE_ENV&&r[l.ancestorInfoContextKey]&&l("span",null,r[l.ancestorInfoContextKey]),this._rootNodeID=e,n.useCreateElement){var o=r[a.ownerDocumentContextKey],s=o.createElement("span");return i.setAttributeForID(s,e),a.getID(s),c(s,this._stringText),s}var p=u(this._stringText);return n.renderToStaticMarkup?p:"<span "+i.createMarkupForID(e)+">"+p+"</span>"},receiveComponent:function(e){if(e!==this._currentElement){this._currentElement=e;var t=""+e;if(t!==this._stringText){this._stringText=t;var n=a.getNode(this._rootNodeID);r.updateTextContent(n,t)}}},unmountComponent:function(){o.unmountIDFromEnvironment(this._rootNodeID)}}),e.exports=p}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){var r=n>=e.childNodes.length?null:e.childNodes.item(n);e.insertBefore(t,r)}var i=n(319),o=n(327),a=n(329),s=n(330),u=n(331),c=n(324),l={dangerouslyReplaceNodeWithMarkup:i.dangerouslyReplaceNodeWithMarkup,updateTextContent:u,processUpdates:function(e,n){for(var a,l=null,p=null,f=0;f<e.length;f++)if(a=e[f],a.type===o.MOVE_EXISTING||a.type===o.REMOVE_NODE){var d=a.fromIndex,h=a.parentNode.childNodes[d],m=a.parentID;h?void 0:"production"!==t.env.NODE_ENV?c(!1,"processUpdates(): Unable to find child %s of element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID `%s`.",d,m):c(!1),l=l||{},l[m]=l[m]||[],l[m][d]=h,p=p||[],p.push(h)}var v;if(v=n.length&&"string"==typeof n[0]?i.dangerouslyRenderMarkup(n):n,p)for(var g=0;g<p.length;g++)p[g].parentNode.removeChild(p[g]);for(var y=0;y<e.length;y++)switch(a=e[y],a.type){case o.INSERT_MARKUP:r(a.parentNode,v[a.markupIndex],a.toIndex);break;case o.MOVE_EXISTING:r(a.parentNode,l[a.parentID][a.fromIndex],a.toIndex);break;case o.SET_MARKUP:s(a.parentNode,a.content);break;case o.TEXT_CONTENT:u(a.parentNode,a.content);break;case o.REMOVE_NODE:}}};a.measureMethods(l,"DOMChildrenOperations",{updateTextContent:"updateTextContent"}),e.exports=l}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return e.substring(1,e.indexOf(" "))}var i=n(320),o=n(321),a=n(326),s=n(325),u=n(324),c=/^(<[^ \/>]+)/,l="data-danger-index",p={dangerouslyRenderMarkup:function(e){i.canUseDOM?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyRenderMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString for server rendering."):u(!1);for(var n,p={},f=0;f<e.length;f++)e[f]?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyRenderMarkup(...): Missing markup."):u(!1),n=r(e[f]),n=s(n)?n:"*",p[n]=p[n]||[],p[n][f]=e[f];var d=[],h=0;for(n in p)if(p.hasOwnProperty(n)){var m,v=p[n];for(m in v)if(v.hasOwnProperty(m)){var g=v[m];v[m]=g.replace(c,"$1 "+l+'="'+m+'" ')}for(var y=o(v.join(""),a),b=0;b<y.length;++b){var x=y[b];x.hasAttribute&&x.hasAttribute(l)?(m=+x.getAttribute(l),x.removeAttribute(l),d.hasOwnProperty(m)?"production"!==t.env.NODE_ENV?u(!1,"Danger: Assigning to an already-occupied result index."):u(!1):void 0,d[m]=x,h+=1):"production"!==t.env.NODE_ENV&&console.error("Danger: Discarding unexpected node:",x)}}return h!==d.length?"production"!==t.env.NODE_ENV?u(!1,"Danger: Did not assign to every index of resultList."):u(!1):void 0,d.length!==e.length?"production"!==t.env.NODE_ENV?u(!1,"Danger: Expected markup to render %s nodes, but rendered %s.",e.length,d.length):u(!1):void 0,d},dangerouslyReplaceNodeWithMarkup:function(e,n){i.canUseDOM?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Cannot render markup in a worker thread. Make sure `window` and `document` are available globally before requiring React when unit testing or use ReactDOMServer.renderToString() for server rendering."):u(!1),n?void 0:"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Missing markup."):u(!1),"html"===e.tagName.toLowerCase()?"production"!==t.env.NODE_ENV?u(!1,"dangerouslyReplaceNodeWithMarkup(...): Cannot replace markup of the <html> node. This is because browser quirks make this unreliable and/or slow. If you want to render to the root you must use server rendering. See ReactDOMServer.renderToString()."):u(!1):void 0;var r;r="string"==typeof n?o(n,a)[0]:n,e.parentNode.replaceChild(r,e)}};e.exports=p}).call(t,n(8))},function(e){"use strict";var t=!("undefined"==typeof window||!window.document||!window.document.createElement),n={canUseDOM:t,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:t&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:t&&!!window.screen,isInWorker:!t};e.exports=n},function(e,t,n){(function(t){"use strict";function r(e){var t=e.match(l);return t&&t[1].toLowerCase()}function i(e,n){var i=c;c?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup dummy not initialized"):u(!1);var o=r(e),l=o&&s(o);if(l){i.innerHTML=l[1]+e+l[2];for(var p=l[0];p--;)i=i.lastChild}else i.innerHTML=e;var f=i.getElementsByTagName("script");f.length&&(n?void 0:"production"!==t.env.NODE_ENV?u(!1,"createNodesFromMarkup(...): Unexpected <script> element rendered."):u(!1),a(f).forEach(n));for(var d=a(i.childNodes);i.lastChild;)i.removeChild(i.lastChild);return d}var o=n(320),a=n(322),s=n(325),u=n(324),c=o.canUseDOM?document.createElement("div"):null,l=/^\s*<(\w+)/;e.exports=i}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}function i(e){return r(e)?Array.isArray(e)?e.slice():o(e):[e]}var o=n(323);e.exports=i},function(e,t,n){(function(t){"use strict";function r(e){var n=e.length;if(Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e?"production"!==t.env.NODE_ENV?i(!1,"toArray: Array-like object expected"):i(!1):void 0,"number"!=typeof n?"production"!==t.env.NODE_ENV?i(!1,"toArray: Object needs a length property"):i(!1):void 0,0===n||n-1 in e?void 0:"production"!==t.env.NODE_ENV?i(!1,"toArray: Object should have keys for indices"):i(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(r){}for(var o=Array(n),a=0;n>a;a++)o[a]=e[a];return o}var i=n(324);e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n=function(e,n,r,i,o,a,s,u){if("production"!==t.env.NODE_ENV&&void 0===n)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===n)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,i,o,a,s,u],p=0;c=new Error("Invariant Violation: "+n.replace(/%s/g,function(){return l[p++]}))}throw c.framesToPop=1,c}};e.exports=n}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return a?void 0:"production"!==t.env.NODE_ENV?o(!1,"Markup wrapping node not initialized"):o(!1),f.hasOwnProperty(e)||(e="*"),s.hasOwnProperty(e)||(a.innerHTML="*"===e?"<link />":"<"+e+"></"+e+">",s[e]=!a.firstChild),s[e]?f[e]:null}var i=n(320),o=n(324),a=i.canUseDOM?document.createElement("div"):null,s={},u=[1,'<select multiple="true">',"</select>"],c=[1,"<table>","</table>"],l=[3,"<table><tbody><tr>","</tr></tbody></table>"],p=[1,'<svg xmlns="http://www.w3.org/2000/svg">',"</svg>"],f={"*":[1,"?<div>","</div>"],area:[1,"<map>","</map>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],legend:[1,"<fieldset>","</fieldset>"],param:[1,"<object>","</object>"],tr:[2,"<table><tbody>","</tbody></table>"],optgroup:u,option:u,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},d=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];d.forEach(function(e){f[e]=p,s[e]=!0}),e.exports=r}).call(t,n(8))},function(e){"use strict";function t(e){return function(){return e}}function n(){}n.thatReturns=t,n.thatReturnsFalse=t(!1),n.thatReturnsTrue=t(!0),n.thatReturnsNull=t(null),n.thatReturnsThis=function(){return this},n.thatReturnsArgument=function(e){return e},e.exports=n},function(e,t,n){"use strict";var r=n(328),i=r({INSERT_MARKUP:null,MOVE_EXISTING:null,REMOVE_NODE:null,SET_MARKUP:null,TEXT_CONTENT:null});e.exports=i},function(e,t,n){(function(t){"use strict";var r=n(324),i=function(e){var n,i={};e instanceof Object&&!Array.isArray(e)?void 0:"production"!==t.env.NODE_ENV?r(!1,"keyMirror(...): Argument must be an object."):r(!1);for(n in e)e.hasOwnProperty(n)&&(i[n]=n);return i};e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function n(e,t,n){return n}var r={enableMeasure:!1,storedMeasure:n,measureMethods:function(e,n,i){if("production"!==t.env.NODE_ENV)for(var o in i)i.hasOwnProperty(o)&&(e[o]=r.measure(n,i[o],e[o]))},measure:function(e,n,i){if("production"!==t.env.NODE_ENV){var o=null,a=function(){return r.enableMeasure?(o||(o=r.storedMeasure(e,n,i)),o.apply(this,arguments)):i.apply(this,arguments)};return a.displayName=e+"_"+n,a}return i},injection:{injectMeasure:function(e){r.storedMeasure=e}}};e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";var r=n(320),i=/^[ \r\n\t\f]/,o=/<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/,a=function(e,t){e.innerHTML=t};if("undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction&&(a=function(e,t){MSApp.execUnsafeLocalFunction(function(){e.innerHTML=t})}),r.canUseDOM){var s=document.createElement("div");s.innerHTML=" ",""===s.innerHTML&&(a=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),i.test(t)||"<"===t[0]&&o.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t})}e.exports=a},function(e,t,n){"use strict";var r=n(320),i=n(332),o=n(330),a=function(e,t){e.textContent=t};r.canUseDOM&&("textContent"in document.documentElement||(a=function(e,t){o(e,i(t))})),e.exports=a},function(e){"use strict";function t(e){return r[e]}function n(e){return(""+e).replace(i,t)}var r={"&":"&amp;",">":"&gt;","<":"&lt;",'"':"&quot;","'":"&#x27;"},i=/[&><"']/g;e.exports=n},function(e,t,n){(function(t){"use strict";function r(e){return p.hasOwnProperty(e)?!0:l.hasOwnProperty(e)?!1:c.test(e)?(p[e]=!0,!0):(l[e]=!0,"production"!==t.env.NODE_ENV?u(!1,"Invalid attribute name: `%s`",e):void 0,!1)}function i(e,t){return null==t||e.hasBooleanValue&&!t||e.hasNumericValue&&isNaN(t)||e.hasPositiveNumericValue&&1>t||e.hasOverloadedBooleanValue&&t===!1}var o=n(334),a=n(329),s=n(335),u=n(336),c=/^[a-zA-Z_][\w\.\-]*$/,l={},p={};if("production"!==t.env.NODE_ENV)var f={children:!0,dangerouslySetInnerHTML:!0,key:!0,ref:!0},d={},h=function(e){if(!(f.hasOwnProperty(e)&&f[e]||d.hasOwnProperty(e)&&d[e])){d[e]=!0;var n=e.toLowerCase(),r=o.isCustomAttribute(n)?n:o.getPossibleStandardName.hasOwnProperty(n)?o.getPossibleStandardName[n]:null;"production"!==t.env.NODE_ENV?u(null==r,"Unknown DOM property %s. Did you mean %s?",e,r):void 0}};var m={createMarkupForID:function(e){return o.ID_ATTRIBUTE_NAME+"="+s(e)},setAttributeForID:function(e,t){e.setAttribute(o.ID_ATTRIBUTE_NAME,t)},createMarkupForProperty:function(e,n){var r=o.properties.hasOwnProperty(e)?o.properties[e]:null;if(r){if(i(r,n))return"";var a=r.attributeName;return r.hasBooleanValue||r.hasOverloadedBooleanValue&&n===!0?a+'=""':a+"="+s(n)}return o.isCustomAttribute(e)?null==n?"":e+"="+s(n):("production"!==t.env.NODE_ENV&&h(e),null)},createMarkupForCustomAttribute:function(e,t){return r(e)&&null!=t?e+"="+s(t):""},setValueForProperty:function(e,n,r){var a=o.properties.hasOwnProperty(n)?o.properties[n]:null;if(a){var s=a.mutationMethod;if(s)s(e,r);else if(i(a,r))this.deleteValueForProperty(e,n);else if(a.mustUseAttribute){var u=a.attributeName,c=a.attributeNamespace;c?e.setAttributeNS(c,u,""+r):a.hasBooleanValue||a.hasOverloadedBooleanValue&&r===!0?e.setAttribute(u,""):e.setAttribute(u,""+r)}else{var l=a.propertyName;a.hasSideEffects&&""+e[l]==""+r||(e[l]=r)}}else o.isCustomAttribute(n)?m.setValueForAttribute(e,n,r):"production"!==t.env.NODE_ENV&&h(n)},setValueForAttribute:function(e,t,n){r(t)&&(null==n?e.removeAttribute(t):e.setAttribute(t,""+n))},deleteValueForProperty:function(e,n){var r=o.properties.hasOwnProperty(n)?o.properties[n]:null;if(r){var i=r.mutationMethod;if(i)i(e,void 0);else if(r.mustUseAttribute)e.removeAttribute(r.attributeName);else{var a=r.propertyName,s=o.getDefaultValueForProperty(e.nodeName,a);r.hasSideEffects&&""+e[a]===s||(e[a]=s)}}else o.isCustomAttribute(n)?e.removeAttribute(n):"production"!==t.env.NODE_ENV&&h(n)}};a.measureMethods(m,"DOMPropertyOperations",{setValueForProperty:"setValueForProperty",setValueForAttribute:"setValueForAttribute",deleteValueForProperty:"deleteValueForProperty"}),e.exports=m}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t){return(e&t)===t}var i=n(324),o={MUST_USE_ATTRIBUTE:1,MUST_USE_PROPERTY:2,HAS_SIDE_EFFECTS:4,HAS_BOOLEAN_VALUE:8,HAS_NUMERIC_VALUE:16,HAS_POSITIVE_NUMERIC_VALUE:48,HAS_OVERLOADED_BOOLEAN_VALUE:64,injectDOMPropertyConfig:function(e){var n=o,a=e.Properties||{},u=e.DOMAttributeNamespaces||{},c=e.DOMAttributeNames||{},l=e.DOMPropertyNames||{},p=e.DOMMutationMethods||{};e.isCustomAttribute&&s._isCustomAttributeFunctions.push(e.isCustomAttribute);for(var f in a){s.properties.hasOwnProperty(f)?"production"!==t.env.NODE_ENV?i(!1,"injectDOMPropertyConfig(...): You're trying to inject DOM property '%s' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.",f):i(!1):void 0;var d=f.toLowerCase(),h=a[f],m={attributeName:d,attributeNamespace:null,propertyName:f,mutationMethod:null,mustUseAttribute:r(h,n.MUST_USE_ATTRIBUTE),mustUseProperty:r(h,n.MUST_USE_PROPERTY),hasSideEffects:r(h,n.HAS_SIDE_EFFECTS),hasBooleanValue:r(h,n.HAS_BOOLEAN_VALUE),hasNumericValue:r(h,n.HAS_NUMERIC_VALUE),hasPositiveNumericValue:r(h,n.HAS_POSITIVE_NUMERIC_VALUE),hasOverloadedBooleanValue:r(h,n.HAS_OVERLOADED_BOOLEAN_VALUE)};if(m.mustUseAttribute&&m.mustUseProperty?"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Cannot require using both attribute and property: %s",f):i(!1):void 0,!m.mustUseProperty&&m.hasSideEffects?"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Properties that have side effects must use property: %s",f):i(!1):void 0,m.hasBooleanValue+m.hasNumericValue+m.hasOverloadedBooleanValue<=1?void 0:"production"!==t.env.NODE_ENV?i(!1,"DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s",f):i(!1),"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[d]=f),c.hasOwnProperty(f)){var v=c[f];m.attributeName=v,"production"!==t.env.NODE_ENV&&(s.getPossibleStandardName[v]=f)}u.hasOwnProperty(f)&&(m.attributeNamespace=u[f]),l.hasOwnProperty(f)&&(m.propertyName=l[f]),p.hasOwnProperty(f)&&(m.mutationMethod=p[f]),s.properties[f]=m}}},a={},s={ID_ATTRIBUTE_NAME:"data-reactid",properties:{},getPossibleStandardName:"production"!==t.env.NODE_ENV?{}:null,_isCustomAttributeFunctions:[],isCustomAttribute:function(e){for(var t=0;t<s._isCustomAttributeFunctions.length;t++){var n=s._isCustomAttributeFunctions[t];if(n(e))return!0}return!1},getDefaultValueForProperty:function(e,t){var n,r=a[e];return r||(a[e]=r={}),t in r||(n=document.createElement(e),r[t]=n[t]),r[t]},injection:o};e.exports=s}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return'"'+i(e)+'"'}var i=n(332);e.exports=r},function(e,t,n){(function(t){"use strict";var r=n(326),i=r;"production"!==t.env.NODE_ENV&&(i=function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),i=2;n>i;i++)r[i-2]=arguments[i];if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(0!==t.indexOf("Failed Composite propType: ")&&!e){var o=0,a="Warning: "+t.replace(/%s/g,function(){return r[o++]});"undefined"!=typeof console&&console.error(a);try{throw new Error(a)}catch(s){}}}),e.exports=i}).call(t,n(8))},function(e,t,n){"use strict";var r=n(338),i=n(339),o={processChildrenUpdates:r.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkupByID:r.dangerouslyReplaceNodeWithMarkupByID,unmountIDFromEnvironment:function(e){i.purgeID(e)}};e.exports=o},function(e,t,n){(function(t){"use strict";var r=n(318),i=n(333),o=n(339),a=n(329),s=n(324),u={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},c={updatePropertyByID:function(e,n,r){var a=o.getNode(e);u.hasOwnProperty(n)?"production"!==t.env.NODE_ENV?s(!1,"updatePropertyByID(...): %s",u[n]):s(!1):void 0,null!=r?i.setValueForProperty(a,n,r):i.deleteValueForProperty(a,n)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=o.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;n<e.length;n++)e[n].parentNode=o.getNode(e[n].parentID);r.processUpdates(e,t)}};a.measureMethods(c,"ReactDOMIDOperations",{dangerouslyReplaceNodeWithMarkupByID:"dangerouslyReplaceNodeWithMarkupByID",dangerouslyProcessChildrenUpdates:"dangerouslyProcessChildrenUpdates"}),e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t){for(var n=Math.min(e.length,t.length),r=0;n>r;r++)if(e.charAt(r)!==t.charAt(r))return r;return e.length===t.length?-1:n}function i(e){return e?e.nodeType===W?e.documentElement:e.firstChild:null}function o(e){var t=i(e);return t&&ee.getID(t)}function a(e){var n=s(e);if(n)if(q.hasOwnProperty(n)){var r=q[n];r!==e&&(p(r,n)?"production"!==t.env.NODE_ENV?M(!1,"ReactMount: Two valid but unequal nodes with the same `%s`: %s",H,n):M(!1):void 0,q[n]=e)}else q[n]=e;return n}function s(e){return e&&e.getAttribute&&e.getAttribute(H)||""}function u(e,t){var n=s(e);n!==t&&delete q[n],e.setAttribute(H,t),q[t]=e}function c(e){return q.hasOwnProperty(e)&&p(q[e],e)||(q[e]=ee.findReactNodeByID(e)),q[e]}function l(e){var t=O.get(e)._rootNodeID;return N.isNullComponentID(t)?null:(q.hasOwnProperty(t)&&p(q[t],t)||(q[t]=ee.findReactNodeByID(t)),q[t])}function p(e,n){if(e){s(e)!==n?"production"!==t.env.NODE_ENV?M(!1,"ReactMount: Unexpected modification of `%s`",H):M(!1):void 0;var r=ee.findReactContainerForID(n);if(r&&j(r,e))return!0}return!1}function f(e){delete q[e]}function d(e){var t=q[e];return t&&p(t,e)?void(J=t):!1}function h(e){J=null,$.traverseAncestors(e,d);var t=J;return J=null,t}function m(e,n,r,i,o,a){if(_.useCreateElement&&(a=k({},a),a[K]=r.nodeType===W?r:r.ownerDocument),"production"!==t.env.NODE_ENV){a===A&&(a={});var s=r.nodeName.toLowerCase();a[V.ancestorInfoContextKey]=V.updatedAncestorInfo(null,s,null)}var u=S.mountComponent(e,n,i,a);e._renderedComponent._topLevelWrapper=e,ee._mountImageIntoNode(u,r,o,i)}function v(e,t,n,r,i){var o=R.ReactReconcileTransaction.getPooled(r);o.perform(m,null,e,t,n,o,r,i),R.ReactReconcileTransaction.release(o)}function g(e,t){for(S.unmountComponent(e),t.nodeType===W&&(t=t.documentElement);t.lastChild;)t.removeChild(t.lastChild)}function y(e){var t=o(e);return t?t!==$.getReactRootIDFromNodeID(t):!1}function b(e){for(;e&&e.parentNode!==e;e=e.parentNode)if(1===e.nodeType){var t=s(e);if(t){var n,r=$.getReactRootIDFromNodeID(t),i=e;do if(n=s(i),i=i.parentNode,null==i)return null;while(n!==r);if(i===Y[r])return e}}return null}var x=n(334),w=n(340),E=n(316),_=n(352),C=n(353),N=n(355),$=n(356),O=n(358),T=n(359),P=n(329),S=n(361),D=n(364),R=n(365),k=n(350),A=n(369),j=n(370),I=n(373),M=n(324),F=n(330),L=n(378),V=n(381),U=n(336),H=x.ID_ATTRIBUTE_NAME,q={},B=1,W=9,z=11,K="__ReactMount_ownerDocument$"+Math.random().toString(36).slice(2),Q={},Y={};if("production"!==t.env.NODE_ENV)var G={};var X=[],J=null,Z=function(){};Z.prototype.isReactComponent={},"production"!==t.env.NODE_ENV&&(Z.displayName="TopLevelWrapper"),Z.prototype.render=function(){return this.props};var ee={TopLevelWrapper:Z,_instancesByReactRootID:Q,scrollMonitor:function(e,t){t()},_updateRootComponent:function(e,n,r,a){return ee.scrollMonitor(r,function(){D.enqueueElementInternal(e,n),a&&D.enqueueCallbackInternal(e,a)}),"production"!==t.env.NODE_ENV&&(G[o(r)]=i(r)),e},_registerComponent:function(e,n){!n||n.nodeType!==B&&n.nodeType!==W&&n.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"_registerComponent(...): Target container is not a DOM element."):M(!1):void 0,w.ensureScrollValueMonitoring();var r=ee.registerContainer(n);return Q[r]=e,r},_renderNewRootComponent:function(e,n,r,o){"production"!==t.env.NODE_ENV?U(null==E.current,"_renderNewRootComponent(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"):void 0;var a=I(e,null),s=ee._registerComponent(a,n);return R.batchedUpdates(v,a,s,n,r,o),"production"!==t.env.NODE_ENV&&(G[s]=i(n)),a},renderSubtreeIntoContainer:function(e,n,r,i){return null==e||null==e._reactInternalInstance?"production"!==t.env.NODE_ENV?M(!1,"parentComponent must be a valid React Component"):M(!1):void 0,ee._renderSubtreeIntoContainer(e,n,r,i)},_renderSubtreeIntoContainer:function(e,n,r,a){C.isValidElement(n)?void 0:"production"!==t.env.NODE_ENV?M(!1,"ReactDOM.render(): Invalid component element.%s","string"==typeof n?" Instead of passing an element string, make sure to instantiate it by passing it to React.createElement.":"function"==typeof n?" Instead of passing a component class, make sure to instantiate it by passing it to React.createElement.":null!=n&&void 0!==n.props?" This may be caused by unintentionally loading two independent copies of React.":""):M(!1),"production"!==t.env.NODE_ENV?U(!r||!r.tagName||"BODY"!==r.tagName.toUpperCase(),"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app."):void 0;var u=new C(Z,null,null,null,null,null,n),c=Q[o(r)];if(c){var l=c._currentElement,p=l.props;if(L(p,n)){var f=c._renderedComponent.getPublicInstance(),d=a&&function(){a.call(f)};return ee._updateRootComponent(c,u,r,d),f}ee.unmountComponentAtNode(r)}var h=i(r),m=h&&!!s(h),v=y(r);if("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!v,"render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render."):void 0,!m||h.nextSibling))for(var g=h;g;){if(s(g)){"production"!==t.env.NODE_ENV?U(!1,"render(): Target node has markup rendered by React, but there are unrelated nodes as well. This is most commonly caused by white-space inserted around server-rendered markup."):void 0;break}g=g.nextSibling}var b=m&&!c&&!v,x=ee._renderNewRootComponent(u,r,b,null!=e?e._reactInternalInstance._processChildContext(e._reactInternalInstance._context):A)._renderedComponent.getPublicInstance();return a&&a.call(x),x},render:function(e,t,n){return ee._renderSubtreeIntoContainer(null,e,t,n)},registerContainer:function(e){var t=o(e);return t&&(t=$.getReactRootIDFromNodeID(t)),t||(t=$.createReactRootID()),Y[t]=e,t},unmountComponentAtNode:function(e){"production"!==t.env.NODE_ENV?U(null==E.current,"unmountComponentAtNode(): Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate. Check the render method of %s.",E.current&&E.current.getName()||"ReactCompositeComponent"):void 0,!e||e.nodeType!==B&&e.nodeType!==W&&e.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"unmountComponentAtNode(...): Target container is not a DOM element."):M(!1):void 0;var n=o(e),r=Q[n];if(!r){var i=y(e),a=s(e),u=a&&a===$.getReactRootIDFromNodeID(a);return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!i,"unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s",u?"You may have accidentally passed in a React root node instead of its container.":"Instead, have the parent component update its state and rerender in order to remove this component."):void 0),!1}return R.batchedUpdates(g,r,e),delete Q[n],delete Y[n],"production"!==t.env.NODE_ENV&&delete G[n],!0},findReactContainerForID:function(e){var n=$.getReactRootIDFromNodeID(e),r=Y[n];if("production"!==t.env.NODE_ENV){var i=G[n];if(i&&i.parentNode!==r){"production"!==t.env.NODE_ENV?U(s(i)===n,"ReactMount: Root element ID differed from reactRootID."):void 0;var o=r.firstChild;o&&n===s(o)?G[n]=o:"production"!==t.env.NODE_ENV?U(!1,"ReactMount: Root element has been removed from its original container. New container: %s",i.parentNode):void 0}}return r},findReactNodeByID:function(e){var t=ee.findReactContainerForID(e);return ee.findComponentRoot(t,e)},getFirstReactDOM:function(e){return b(e)},findComponentRoot:function(e,n){var r=X,i=0,o=h(n)||e;for("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(null!=o,"React can't find the root component node for data-reactid value `%s`. If you're seeing this message, it probably means that you've loaded two copies of React on the page. At this time, only a single copy of React can be loaded at a time.",n):void 0),r[0]=o.firstChild,r.length=1;i<r.length;){for(var a,s=r[i++];s;){var u=ee.getID(s);u?n===u?a=s:$.isAncestorIDOf(u,n)&&(r.length=i=0,r.push(s.firstChild)):r.push(s.firstChild),s=s.nextSibling}if(a)return r.length=0,a}r.length=0,"production"!==t.env.NODE_ENV?M(!1,"findComponentRoot(..., %s): Unable to find element. This probably means the DOM was unexpectedly mutated (e.g., by the browser), usually due to forgetting a <tbody> when using tables, nesting tags like <form>, <p>, or <a>, or using non-SVG elements in an <svg> parent. Try inspecting the child nodes of the element with React ID `%s`.",n,ee.getID(e)):M(!1)},_mountImageIntoNode:function(e,n,o,a){if(!n||n.nodeType!==B&&n.nodeType!==W&&n.nodeType!==z?"production"!==t.env.NODE_ENV?M(!1,"mountComponentIntoNode(...): Target container is not valid."):M(!1):void 0,o){var s=i(n);if(T.canReuseMarkup(e,s))return;var u=s.getAttribute(T.CHECKSUM_ATTR_NAME);s.removeAttribute(T.CHECKSUM_ATTR_NAME);var c=s.outerHTML;s.setAttribute(T.CHECKSUM_ATTR_NAME,u);var l=e;if("production"!==t.env.NODE_ENV){var p;n.nodeType===B?(p=document.createElement("div"),p.innerHTML=e,l=p.innerHTML):(p=document.createElement("iframe"),document.body.appendChild(p),p.contentDocument.write(e),l=p.contentDocument.documentElement.outerHTML,document.body.removeChild(p))}var f=r(l,c),d=" (client) "+l.substring(f-20,f+20)+"\n (server) "+c.substring(f-20,f+20);n.nodeType===W?"production"!==t.env.NODE_ENV?M(!1,"You're trying to render a component to the document using server rendering but the checksum was invalid. This usually means you rendered a different component type or props on the client from the one on the server, or your render() methods are impure. React cannot handle this case due to cross-browser quirks by rendering at the document root. You should look for environment dependent code in your components and ensure the props are the same client and server side:\n%s",d):M(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?U(!1,"React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on the server was not what the client was expecting. React injected new markup to compensate which works but you have lost many of the benefits of server rendering. Instead, figure out why the markup being generated is different on the client or server:\n%s",d):void 0)}if(n.nodeType===W?"production"!==t.env.NODE_ENV?M(!1,"You're trying to render a component to the document but you didn't use server rendering. We can't do this without using server rendering due to cross-browser quirks. See ReactDOMServer.renderToString() for server rendering."):M(!1):void 0,a.useCreateElement){for(;n.lastChild;)n.removeChild(n.lastChild);n.appendChild(e)}else F(n,e)},ownerDocumentContextKey:K,getReactRootID:o,getID:a,setID:u,getNode:c,getNodeFromInstance:l,isValid:p,purgeID:f};P.measureMethods(ee,"ReactMount",{_renderNewRootComponent:"_renderNewRootComponent",_mountImageIntoNode:"_mountImageIntoNode"}),e.exports=ee}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return Object.prototype.hasOwnProperty.call(e,v)||(e[v]=h++,f[e[v]]={}),f[e[v]]}var i=n(341),o=n(342),a=n(343),s=n(348),u=n(329),c=n(349),l=n(350),p=n(351),f={},d=!1,h=0,m={topAbort:"abort",topBlur:"blur",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topChange:"change",topClick:"click",topCompositionEnd:"compositionend",topCompositionStart:"compositionstart",topCompositionUpdate:"compositionupdate",topContextMenu:"contextmenu",topCopy:"copy",topCut:"cut",topDoubleClick:"dblclick",topDrag:"drag",topDragEnd:"dragend",topDragEnter:"dragenter",topDragExit:"dragexit",topDragLeave:"dragleave",topDragOver:"dragover",topDragStart:"dragstart",topDrop:"drop",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topFocus:"focus",topInput:"input",topKeyDown:"keydown",topKeyPress:"keypress",topKeyUp:"keyup",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topMouseDown:"mousedown",topMouseMove:"mousemove",topMouseOut:"mouseout",topMouseOver:"mouseover",topMouseUp:"mouseup",topPaste:"paste",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topScroll:"scroll",topSeeked:"seeked",topSeeking:"seeking",topSelectionChange:"selectionchange",topStalled:"stalled",topSuspend:"suspend",topTextInput:"textInput",topTimeUpdate:"timeupdate",topTouchCancel:"touchcancel",topTouchEnd:"touchend",topTouchMove:"touchmove",topTouchStart:"touchstart",topVolumeChange:"volumechange",topWaiting:"waiting",topWheel:"wheel"},v="_reactListenersID"+String(Math.random()).slice(2),g=l({},s,{ReactEventListener:null,injection:{injectReactEventListener:function(e){e.setHandleTopLevel(g.handleTopLevel),g.ReactEventListener=e}},setEnabled:function(e){g.ReactEventListener&&g.ReactEventListener.setEnabled(e)},isEnabled:function(){return!(!g.ReactEventListener||!g.ReactEventListener.isEnabled())},listenTo:function(e,t){for(var n=t,o=r(n),s=a.registrationNameDependencies[e],u=i.topLevelTypes,c=0;c<s.length;c++){var l=s[c];o.hasOwnProperty(l)&&o[l]||(l===u.topWheel?p("wheel")?g.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",n):p("mousewheel")?g.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",n):g.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",n):l===u.topScroll?p("scroll",!0)?g.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",n):g.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",g.ReactEventListener.WINDOW_HANDLE):l===u.topFocus||l===u.topBlur?(p("focus",!0)?(g.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",n),g.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",n)):p("focusin")&&(g.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",n),g.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",n)),o[u.topBlur]=!0,o[u.topFocus]=!0):m.hasOwnProperty(l)&&g.ReactEventListener.trapBubbledEvent(l,m[l],n),
13
+ o[l]=!0)}},trapBubbledEvent:function(e,t,n){return g.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return g.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!d){var e=c.refreshScrollValues;g.ReactEventListener.monitorScrollValue(e),d=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});u.measureMethods(g,"ReactBrowserEventEmitter",{putListener:"putListener",deleteListener:"deleteListener"}),e.exports=g},function(e,t,n){"use strict";var r=n(328),i=r({bubbled:null,captured:null}),o=r({topAbort:null,topBlur:null,topCanPlay:null,topCanPlayThrough:null,topChange:null,topClick:null,topCompositionEnd:null,topCompositionStart:null,topCompositionUpdate:null,topContextMenu:null,topCopy:null,topCut:null,topDoubleClick:null,topDrag:null,topDragEnd:null,topDragEnter:null,topDragExit:null,topDragLeave:null,topDragOver:null,topDragStart:null,topDrop:null,topDurationChange:null,topEmptied:null,topEncrypted:null,topEnded:null,topError:null,topFocus:null,topInput:null,topKeyDown:null,topKeyPress:null,topKeyUp:null,topLoad:null,topLoadedData:null,topLoadedMetadata:null,topLoadStart:null,topMouseDown:null,topMouseMove:null,topMouseOut:null,topMouseOver:null,topMouseUp:null,topPaste:null,topPause:null,topPlay:null,topPlaying:null,topProgress:null,topRateChange:null,topReset:null,topScroll:null,topSeeked:null,topSeeking:null,topSelectionChange:null,topStalled:null,topSubmit:null,topSuspend:null,topTextInput:null,topTimeUpdate:null,topTouchCancel:null,topTouchEnd:null,topTouchMove:null,topTouchStart:null,topVolumeChange:null,topWaiting:null,topWheel:null}),a={topLevelTypes:o,PropagationPhases:i};e.exports=a},function(e,t,n){(function(t){"use strict";function r(){var e=v&&v.traverseTwoPhase&&v.traverseEnterLeave;"production"!==t.env.NODE_ENV?l(e,"InstanceHandle not injected before use!"):void 0}var i=n(343),o=n(344),a=n(345),s=n(346),u=n(347),c=n(324),l=n(336),p={},f=null,d=function(e,t){e&&(o.executeDispatchesInOrder(e,t),e.isPersistent()||e.constructor.release(e))},h=function(e){return d(e,!0)},m=function(e){return d(e,!1)},v=null,g={injection:{injectMount:o.injection.injectMount,injectInstanceHandle:function(e){v=e,"production"!==t.env.NODE_ENV&&r()},getInstanceHandle:function(){return"production"!==t.env.NODE_ENV&&r(),v},injectEventPluginOrder:i.injectEventPluginOrder,injectEventPluginsByName:i.injectEventPluginsByName},eventNameDispatchConfigs:i.eventNameDispatchConfigs,registrationNameModules:i.registrationNameModules,putListener:function(e,n,r){"function"!=typeof r?"production"!==t.env.NODE_ENV?c(!1,"Expected %s listener to be a function, instead got type %s",n,typeof r):c(!1):void 0;var o=p[n]||(p[n]={});o[e]=r;var a=i.registrationNameModules[n];a&&a.didPutListener&&a.didPutListener(e,n,r)},getListener:function(e,t){var n=p[t];return n&&n[e]},deleteListener:function(e,t){var n=i.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t);var r=p[t];r&&delete r[e]},deleteAllListeners:function(e){for(var t in p)if(p[t][e]){var n=i.registrationNameModules[t];n&&n.willDeleteListener&&n.willDeleteListener(e,t),delete p[t][e]}},extractEvents:function(e,t,n,r,o){for(var a,u=i.plugins,c=0;c<u.length;c++){var l=u[c];if(l){var p=l.extractEvents(e,t,n,r,o);p&&(a=s(a,p))}}return a},enqueueEvents:function(e){e&&(f=s(f,e))},processEventQueue:function(e){var n=f;f=null,e?u(n,h):u(n,m),f?"production"!==t.env.NODE_ENV?c(!1,"processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented."):c(!1):void 0,a.rethrowCaughtError()},__purge:function(){p={}},__getListenerBank:function(){return p}};e.exports=g}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(s)for(var e in u){var n=u[e],r=s.indexOf(e);if(r>-1?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.",e):a(!1),!c.plugins[r]){n.extractEvents?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.",e):a(!1),c.plugins[r]=n;var o=n.eventTypes;for(var l in o)i(o[l],n,l)?void 0:"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.",l,e):a(!1)}}}function i(e,n,r){c.eventNameDispatchConfigs.hasOwnProperty(r)?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.",r):a(!1):void 0,c.eventNameDispatchConfigs[r]=e;var i=e.phasedRegistrationNames;if(i){for(var s in i)if(i.hasOwnProperty(s)){var u=i[s];o(u,n,r)}return!0}return e.registrationName?(o(e.registrationName,n,r),!0):!1}function o(e,n,r){c.registrationNameModules[e]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.",e):a(!1):void 0,c.registrationNameModules[e]=n,c.registrationNameDependencies[e]=n.eventTypes[r].dependencies}var a=n(324),s=null,u={},c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){s?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React."):a(!1):void 0,s=Array.prototype.slice.call(e),r()},injectEventPluginsByName:function(e){var n=!1;for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];u.hasOwnProperty(i)&&u[i]===o||(u[i]?"production"!==t.env.NODE_ENV?a(!1,"EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.",i):a(!1):void 0,u[i]=o,n=!0)}n&&r()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=c.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){s=null;for(var e in u)u.hasOwnProperty(e)&&delete u[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var i in r)r.hasOwnProperty(i)&&delete r[i]}};e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return e===y.topMouseUp||e===y.topTouchEnd||e===y.topTouchCancel}function i(e){return e===y.topMouseMove||e===y.topTouchMove}function o(e){return e===y.topMouseDown||e===y.topTouchStart}function a(e,t,n,r){var i=e.type||"unknown-event";e.currentTarget=g.Mount.getNode(r),t?h.invokeGuardedCallbackWithCatch(i,n,e,r):h.invokeGuardedCallback(i,n,e,r),e.currentTarget=null}function s(e,n){var r=e._dispatchListeners,i=e._dispatchIDs;if("production"!==t.env.NODE_ENV&&f(e),Array.isArray(r))for(var o=0;o<r.length&&!e.isPropagationStopped();o++)a(e,n,r[o],i[o]);else r&&a(e,n,r,i);e._dispatchListeners=null,e._dispatchIDs=null}function u(e){var n=e._dispatchListeners,r=e._dispatchIDs;if("production"!==t.env.NODE_ENV&&f(e),Array.isArray(n)){for(var i=0;i<n.length&&!e.isPropagationStopped();i++)if(n[i](e,r[i]))return r[i]}else if(n&&n(e,r))return r;return null}function c(e){var t=u(e);return e._dispatchIDs=null,e._dispatchListeners=null,t}function l(e){"production"!==t.env.NODE_ENV&&f(e);var n=e._dispatchListeners,r=e._dispatchIDs;Array.isArray(n)?"production"!==t.env.NODE_ENV?m(!1,"executeDirectDispatch(...): Invalid `event`."):m(!1):void 0;var i=n?n(e,r):null;return e._dispatchListeners=null,e._dispatchIDs=null,i}function p(e){return!!e._dispatchListeners}var f,d=n(341),h=n(345),m=n(324),v=n(336),g={Mount:null,injectMount:function(e){g.Mount=e,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?v(e&&e.getNode&&e.getID,"EventPluginUtils.injection.injectMount(...): Injected Mount module is missing getNode or getID."):void 0)}},y=d.topLevelTypes;"production"!==t.env.NODE_ENV&&(f=function(e){var n=e._dispatchListeners,r=e._dispatchIDs,i=Array.isArray(n),o=Array.isArray(r),a=o?r.length:r?1:0,s=i?n.length:n?1:0;"production"!==t.env.NODE_ENV?v(o===i&&a===s,"EventPluginUtils: Invalid `event`."):void 0});var b={isEndish:r,isMoveish:i,isStartish:o,executeDirectDispatch:l,executeDispatchesInOrder:s,executeDispatchesInOrderStopAtTrue:c,hasDispatches:p,getNode:function(e){return g.Mount.getNode(e)},getID:function(e){return g.Mount.getID(e)},injection:g};e.exports=b}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function n(e,t,n,i){try{return t(n,i)}catch(o){return void(null===r&&(r=o))}}var r=null,i={invokeGuardedCallback:n,invokeGuardedCallbackWithCatch:n,rethrowCaughtError:function(){if(r){var e=r;throw r=null,e}}};if("production"!==t.env.NODE_ENV&&"undefined"!=typeof window&&"function"==typeof window.dispatchEvent&&"undefined"!=typeof document&&"function"==typeof document.createEvent){var o=document.createElement("react");i.invokeGuardedCallback=function(e,t,n,r){var i=t.bind(null,n,r),a="react-"+e;o.addEventListener(a,i,!1);var s=document.createEvent("Event");s.initEvent(a,!1,!1),o.dispatchEvent(s),o.removeEventListener(a,i,!1)}}e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n){if(null==n?"production"!==t.env.NODE_ENV?i(!1,"accumulateInto(...): Accumulated items must not be null or undefined."):i(!1):void 0,null==e)return n;var r=Array.isArray(e),o=Array.isArray(n);return r&&o?(e.push.apply(e,n),e):r?(e.push(n),e):o?[e].concat(n):[e,n]}var i=n(324);e.exports=r}).call(t,n(8))},function(e){"use strict";var t=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)};e.exports=t},function(e,t,n){"use strict";function r(e){i.enqueueEvents(e),i.processEventQueue(!1)}var i=n(342),o={handleTopLevel:function(e,t,n,o,a){var s=i.extractEvents(e,t,n,o,a);r(s)}};e.exports=o},function(e){"use strict";var t={currentScrollLeft:0,currentScrollTop:0,refreshScrollValues:function(e){t.currentScrollLeft=e.x,t.currentScrollTop=e.y}};e.exports=t},function(e){"use strict";function t(e){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var t=Object(e),n=Object.prototype.hasOwnProperty,r=1;r<arguments.length;r++){var i=arguments[r];if(null!=i){var o=Object(i);for(var a in o)n.call(o,a)&&(t[a]=o[a])}}return t}e.exports=t},function(e,t,n){"use strict";function r(e,t){if(!o.canUseDOM||t&&!("addEventListener"in document))return!1;var n="on"+e,r=n in document;if(!r){var a=document.createElement("div");a.setAttribute(n,"return;"),r="function"==typeof a[n]}return!r&&i&&"wheel"===e&&(r=document.implementation.hasFeature("Events.wheel","3.0")),r}var i,o=n(320);o.canUseDOM&&(i=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=r},function(e){"use strict";var t={useCreateElement:!1};e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(316),i=n(350),o=n(354),a="function"==typeof Symbol&&Symbol["for"]&&Symbol["for"]("react.element")||60103,s={key:!0,ref:!0,__self:!0,__source:!0},u=function(e,n,r,i,s,u,c){var l={$$typeof:a,type:e,key:n,ref:r,props:c,_owner:u};return"production"!==t.env.NODE_ENV&&(l._store={},o?(Object.defineProperty(l._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(l,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(l,"_source",{configurable:!1,enumerable:!1,writable:!1,value:s})):(l._store.validated=!1,l._self=i,l._source=s),Object.freeze(l.props),Object.freeze(l)),l};u.createElement=function(e,t,n){var i,o={},a=null,c=null,l=null,p=null;if(null!=t){c=void 0===t.ref?null:t.ref,a=void 0===t.key?null:""+t.key,l=void 0===t.__self?null:t.__self,p=void 0===t.__source?null:t.__source;for(i in t)t.hasOwnProperty(i)&&!s.hasOwnProperty(i)&&(o[i]=t[i])}var f=arguments.length-2;if(1===f)o.children=n;else if(f>1){for(var d=Array(f),h=0;f>h;h++)d[h]=arguments[h+2];o.children=d}if(e&&e.defaultProps){var m=e.defaultProps;for(i in m)"undefined"==typeof o[i]&&(o[i]=m[i])}return u(e,a,c,l,p,r.current,o)},u.createFactory=function(e){var t=u.createElement.bind(null,e);return t.type=e,t},u.cloneAndReplaceKey=function(e,t){var n=u(e.type,t,e.ref,e._self,e._source,e._owner,e.props);return n},u.cloneAndReplaceProps=function(e,n){var r=u(e.type,e.key,e.ref,e._self,e._source,e._owner,n);return"production"!==t.env.NODE_ENV&&(r._store.validated=e._store.validated),r},u.cloneElement=function(e,t,n){var o,a=i({},e.props),c=e.key,l=e.ref,p=e._self,f=e._source,d=e._owner;if(null!=t){void 0!==t.ref&&(l=t.ref,d=r.current),void 0!==t.key&&(c=""+t.key);for(o in t)t.hasOwnProperty(o)&&!s.hasOwnProperty(o)&&(a[o]=t[o])}var h=arguments.length-2;if(1===h)a.children=n;else if(h>1){for(var m=Array(h),v=0;h>v;v++)m[v]=arguments[v+2];a.children=m}return u(e.type,c,l,p,f,d,a)},u.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},e.exports=u}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n=!1;if("production"!==t.env.NODE_ENV)try{Object.defineProperty({},"x",{get:function(){}}),n=!0}catch(r){}e.exports=n}).call(t,n(8))},function(e){"use strict";function t(e){return!!i[e]}function n(e){i[e]=!0}function r(e){delete i[e]}var i={},o={isNullComponentID:t,registerNullComponentID:n,deregisterNullComponentID:r};e.exports=o},function(e,t,n){(function(t){"use strict";function r(e){return d+e.toString(36)}function i(e,t){return e.charAt(t)===d||t===e.length}function o(e){return""===e||e.charAt(0)===d&&e.charAt(e.length-1)!==d}function a(e,t){return 0===t.indexOf(e)&&i(t,e.length)}function s(e){return e?e.substr(0,e.lastIndexOf(d)):""}function u(e,n){if(o(e)&&o(n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getNextDescendantID(%s, %s): Received an invalid React DOM ID.",e,n):f(!1),a(e,n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getNextDescendantID(...): React has made an invalid assumption about the DOM hierarchy. Expected `%s` to be an ancestor of `%s`.",e,n):f(!1),e===n)return e;var r,s=e.length+h;for(r=s;r<n.length&&!i(n,r);r++);return n.substr(0,r)}function c(e,n){var r=Math.min(e.length,n.length);if(0===r)return"";for(var a=0,s=0;r>=s;s++)if(i(e,s)&&i(n,s))a=s;else if(e.charAt(s)!==n.charAt(s))break;var u=e.substr(0,a);return o(u)?void 0:"production"!==t.env.NODE_ENV?f(!1,"getFirstCommonAncestorID(%s, %s): Expected a valid React DOM ID: %s",e,n,u):f(!1),u}function l(e,n,r,i,o,c){e=e||"",n=n||"",e===n?"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(...): Cannot traverse from and to the same ID, `%s`.",e):f(!1):void 0;var l=a(n,e);l||a(e,n)?void 0:"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(%s, %s, ...): Cannot traverse from two IDs that do not have a parent path.",e,n):f(!1);for(var p=0,d=l?s:u,h=e;;h=d(h,n)){var v;if(o&&h===e||c&&h===n||(v=r(h,l,i)),v===!1||h===n)break;p++<m?void 0:"production"!==t.env.NODE_ENV?f(!1,"traverseParentPath(%s, %s, ...): Detected an infinite loop while traversing the React DOM ID tree. This may be due to malformed IDs: %s",e,n,h):f(!1)}}var p=n(357),f=n(324),d=".",h=d.length,m=1e4,v={createReactRootID:function(){return r(p.createReactRootIndex())},createReactID:function(e,t){return e+t},getReactRootIDFromNodeID:function(e){if(e&&e.charAt(0)===d&&e.length>1){var t=e.indexOf(d,1);return t>-1?e.substr(0,t):e}return null},traverseEnterLeave:function(e,t,n,r,i){var o=c(e,t);o!==e&&l(e,o,n,r,!1,!0),o!==t&&l(o,t,n,i,!0,!1)},traverseTwoPhase:function(e,t,n){e&&(l("",e,t,n,!0,!1),l(e,"",t,n,!1,!0))},traverseTwoPhaseSkipTarget:function(e,t,n){e&&(l("",e,t,n,!0,!0),l(e,"",t,n,!0,!0))},traverseAncestors:function(e,t,n){l("",e,t,n,!0,!1)},getFirstCommonAncestorID:c,_getNextDescendantID:u,isAncestorIDOf:a,SEPARATOR:d};e.exports=v}).call(t,n(8))},function(e){"use strict";var t={injectCreateReactRootIndex:function(e){n.createReactRootIndex=e}},n={createReactRootIndex:null,injection:t};e.exports=n},function(e){"use strict";var t={remove:function(e){e._reactInternalInstance=void 0},get:function(e){return e._reactInternalInstance},has:function(e){return void 0!==e._reactInternalInstance},set:function(e,t){e._reactInternalInstance=t}};e.exports=t},function(e,t,n){"use strict";var r=n(360),i=/\/?>/,o={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return e.replace(i," "+o.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(o.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var i=r(e);return i===n}};e.exports=o},function(e){"use strict";function t(e){for(var t=1,r=0,i=0,o=e.length,a=-4&o;a>i;){for(;i<Math.min(i+4096,a);i+=4)r+=(t+=e.charCodeAt(i))+(t+=e.charCodeAt(i+1))+(t+=e.charCodeAt(i+2))+(t+=e.charCodeAt(i+3));t%=n,r%=n}for(;o>i;i++)r+=t+=e.charCodeAt(i);return t%=n,r%=n,t|r<<16}var n=65521;e.exports=t},function(e,t,n){"use strict";function r(){i.attachRefs(this,this._currentElement)}var i=n(362),o={mountComponent:function(e,t,n,i){var o=e.mountComponent(t,n,i);return e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e),o},unmountComponent:function(e){i.detachRefs(e,e._currentElement),e.unmountComponent()},receiveComponent:function(e,t,n,o){var a=e._currentElement;if(t!==a||o!==e._context){var s=i.shouldUpdateRefs(a,t);s&&i.detachRefs(e,a),e.receiveComponent(t,n,o),s&&e._currentElement&&null!=e._currentElement.ref&&n.getReactMountReady().enqueue(r,e)}},performUpdateIfNecessary:function(e,t){e.performUpdateIfNecessary(t)}};e.exports=o},function(e,t,n){"use strict";function r(e,t,n){"function"==typeof e?e(t.getPublicInstance()):o.addComponentAsRefTo(t,e,n)}function i(e,t,n){"function"==typeof e?e(null):o.removeComponentAsRefFrom(t,e,n)}var o=n(363),a={};a.attachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&r(n,e,t._owner)}},a.shouldUpdateRefs=function(e,t){var n=null===e||e===!1,r=null===t||t===!1;return n||r||t._owner!==e._owner||t.ref!==e.ref},a.detachRefs=function(e,t){if(null!==t&&t!==!1){var n=t.ref;null!=n&&i(n,e,t._owner)}},e.exports=a},function(e,t,n){(function(t){"use strict";var r=n(324),i={isValidOwner:function(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)},addComponentAsRefTo:function(e,n,o){i.isValidOwner(o)?void 0:"production"!==t.env.NODE_ENV?r(!1,"addComponentAsRefTo(...): Only a ReactOwner can have refs. You might be adding a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner)."):r(!1),o.attachRef(n,e)},removeComponentAsRefFrom:function(e,n,o){i.isValidOwner(o)?void 0:"production"!==t.env.NODE_ENV?r(!1,"removeComponentAsRefFrom(...): Only a ReactOwner can have refs. You might be removing a ref to a component that was not created inside a component's `render` method, or you have multiple copies of React loaded (details: https://fb.me/react-refs-must-have-owner)."):r(!1),o.getPublicInstance().refs[n]===e.getPublicInstance()&&o.detachRef(n)}};e.exports=i}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){u.enqueueUpdate(e)}function i(e,n){var r=s.get(e);return r?("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p(null==o.current,"%s(...): Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.",n):void 0),r):("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p(!n,"%s(...): Can only update a mounted or mounting component. This usually means you called %s() on an unmounted component. This is a no-op. Please check the code for the %s component.",n,n,e.constructor.displayName):void 0),null)}var o=n(316),a=n(353),s=n(358),u=n(365),c=n(350),l=n(324),p=n(336),f={isMounted:function(e){if("production"!==t.env.NODE_ENV){var n=o.current;null!==n&&("production"!==t.env.NODE_ENV?p(n._warnedAboutRefsInRender,"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",n.getName()||"A component"):void 0,n._warnedAboutRefsInRender=!0)}var r=s.get(e);return r?!!r._renderedComponent:!1},enqueueCallback:function(e,n){"function"!=typeof n?"production"!==t.env.NODE_ENV?l(!1,"enqueueCallback(...): You called `setProps`, `replaceProps`, `setState`, `replaceState`, or `forceUpdate` with a callback that isn't callable."):l(!1):void 0;var o=i(e);return o?(o._pendingCallbacks?o._pendingCallbacks.push(n):o._pendingCallbacks=[n],void r(o)):null},enqueueCallbackInternal:function(e,n){"function"!=typeof n?"production"!==t.env.NODE_ENV?l(!1,"enqueueCallback(...): You called `setProps`, `replaceProps`, `setState`, `replaceState`, or `forceUpdate` with a callback that isn't callable."):l(!1):void 0,e._pendingCallbacks?e._pendingCallbacks.push(n):e._pendingCallbacks=[n],r(e)},enqueueForceUpdate:function(e){var t=i(e,"forceUpdate");t&&(t._pendingForceUpdate=!0,r(t))},enqueueReplaceState:function(e,t){var n=i(e,"replaceState");n&&(n._pendingStateQueue=[t],n._pendingReplaceState=!0,r(n))},enqueueSetState:function(e,t){var n=i(e,"setState");if(n){var o=n._pendingStateQueue||(n._pendingStateQueue=[]);o.push(t),r(n)}},enqueueSetProps:function(e,t){var n=i(e,"setProps");n&&f.enqueueSetPropsInternal(n,t)},enqueueSetPropsInternal:function(e,n){var i=e._topLevelWrapper;i?void 0:"production"!==t.env.NODE_ENV?l(!1,"setProps(...): You called `setProps` on a component with a parent. This is an anti-pattern since props will get reactively updated when rendered. Instead, change the owner's `render` method to pass the correct value as props to the component where it is created."):l(!1);var o=i._pendingElement||i._currentElement,s=o.props,u=c({},s.props,n);i._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(s,u)),r(i)},enqueueReplaceProps:function(e,t){var n=i(e,"replaceProps");n&&f.enqueueReplacePropsInternal(n,t)},enqueueReplacePropsInternal:function(e,n){var i=e._topLevelWrapper;i?void 0:"production"!==t.env.NODE_ENV?l(!1,"replaceProps(...): You called `replaceProps` on a component with a parent. This is an anti-pattern since props will get reactively updated when rendered. Instead, change the owner's `render` method to pass the correct value as props to the component where it is created."):l(!1);var o=i._pendingElement||i._currentElement,s=o.props;i._pendingElement=a.cloneAndReplaceProps(o,a.cloneAndReplaceProps(s,n)),r(i)},enqueueElementInternal:function(e,t){e._pendingElement=t,r(e)}};e.exports=f}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){$.ReactReconcileTransaction&&x?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must inject a reconcile transaction class and batching strategy"):v(!1)}function i(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=l.getPooled(),this.reconcileTransaction=$.ReactReconcileTransaction.getPooled(!1)}function o(e,t,n,i,o,a){r(),x.batchedUpdates(e,t,n,i,o,a)}function a(e,t){return e._mountOrder-t._mountOrder}function s(e){var n=e.dirtyComponentsLength;n!==g.length?"production"!==t.env.NODE_ENV?v(!1,"Expected flush transaction's stored dirty-components length (%s) to match dirty-components array length (%s).",n,g.length):v(!1):void 0,g.sort(a);for(var r=0;n>r;r++){var i=g[r],o=i._pendingCallbacks;if(i._pendingCallbacks=null,d.performUpdateIfNecessary(i,e.reconcileTransaction),o)for(var s=0;s<o.length;s++)e.callbackQueue.enqueue(o[s],i.getPublicInstance())}}function u(e){return r(),x.isBatchingUpdates?void g.push(e):void x.batchedUpdates(u,e)}function c(e,n){x.isBatchingUpdates?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates.asap: Can't enqueue an asap callback in a context whereupdates are not being batched."):v(!1),y.enqueue(e,n),b=!0}var l=n(366),p=n(367),f=n(329),d=n(361),h=n(368),m=n(350),v=n(324),g=[],y=l.getPooled(),b=!1,x=null,w={initialize:function(){this.dirtyComponentsLength=g.length},close:function(){this.dirtyComponentsLength!==g.length?(g.splice(0,this.dirtyComponentsLength),C()):g.length=0}},E={initialize:function(){this.callbackQueue.reset()},close:function(){this.callbackQueue.notifyAll()}},_=[w,E];m(i.prototype,h.Mixin,{getTransactionWrappers:function(){return _},destructor:function(){this.dirtyComponentsLength=null,l.release(this.callbackQueue),this.callbackQueue=null,$.ReactReconcileTransaction.release(this.reconcileTransaction),this.reconcileTransaction=null},perform:function(e,t,n){return h.Mixin.perform.call(this,this.reconcileTransaction.perform,this.reconcileTransaction,e,t,n)}}),p.addPoolingTo(i);var C=function(){for(;g.length||b;){if(g.length){var e=i.getPooled();e.perform(s,null,e),i.release(e)}if(b){b=!1;var t=y;y=l.getPooled(),t.notifyAll(),l.release(t)}}};C=f.measure("ReactUpdates","flushBatchedUpdates",C);var N={injectReconcileTransaction:function(e){e?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a reconcile transaction class"):v(!1),$.ReactReconcileTransaction=e},injectBatchingStrategy:function(e){e?void 0:"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a batching strategy"):v(!1),"function"!=typeof e.batchedUpdates?"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide a batchedUpdates() function"):v(!1):void 0,"boolean"!=typeof e.isBatchingUpdates?"production"!==t.env.NODE_ENV?v(!1,"ReactUpdates: must provide an isBatchingUpdates boolean attribute"):v(!1):void 0,x=e}},$={ReactReconcileTransaction:null,batchedUpdates:o,enqueueUpdate:u,flushBatchedUpdates:C,injection:N,asap:c};e.exports=$}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){this._callbacks=null,this._contexts=null}var i=n(367),o=n(350),a=n(324);o(r.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,n=this._contexts;if(e){e.length!==n.length?"production"!==t.env.NODE_ENV?a(!1,"Mismatched list of contexts in callback queue"):a(!1):void 0,this._callbacks=null,this._contexts=null;for(var r=0;r<e.length;r++)e[r].call(n[r]);e.length=0,n.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),i.addPoolingTo(r),e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i=function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)},o=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var i=r.instancePool.pop();return r.call(i,e,t,n),i}return new r(e,t,n)},s=function(e,t,n,r){var i=this;if(i.instancePool.length){var o=i.instancePool.pop();return i.call(o,e,t,n,r),o}return new i(e,t,n,r)},u=function(e,t,n,r,i){var o=this;if(o.instancePool.length){var a=o.instancePool.pop();return o.call(a,e,t,n,r,i),a}return new o(e,t,n,r,i)},c=function(e){var n=this;e instanceof n?void 0:"production"!==t.env.NODE_ENV?r(!1,"Trying to release an instance into a pool of a different type."):r(!1),e.destructor(),n.instancePool.length<n.poolSize&&n.instancePool.push(e)},l=10,p=i,f=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||p,n.poolSize||(n.poolSize=l),n.release=c,n},d={addPoolingTo:f,oneArgumentPooler:i,twoArgumentPooler:o,threeArgumentPooler:a,fourArgumentPooler:s,fiveArgumentPooler:u};e.exports=d}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i={reinitializeTransaction:function(){this.transactionWrappers=this.getTransactionWrappers(),this.wrapperInitData?this.wrapperInitData.length=0:this.wrapperInitData=[],this._isInTransaction=!1},_isInTransaction:!1,getTransactionWrappers:null,isInTransaction:function(){return!!this._isInTransaction},perform:function(e,n,i,o,a,s,u,c){this.isInTransaction()?"production"!==t.env.NODE_ENV?r(!1,"Transaction.perform(...): Cannot initialize a transaction when there is already an outstanding transaction."):r(!1):void 0;var l,p;try{this._isInTransaction=!0,l=!0,this.initializeAll(0),p=e.call(n,i,o,a,s,u,c),l=!1}finally{try{if(l)try{this.closeAll(0)}catch(f){}else this.closeAll(0)}finally{this._isInTransaction=!1}}return p},initializeAll:function(e){for(var t=this.transactionWrappers,n=e;n<t.length;n++){var r=t[n];try{this.wrapperInitData[n]=o.OBSERVED_ERROR,this.wrapperInitData[n]=r.initialize?r.initialize.call(this):null}finally{if(this.wrapperInitData[n]===o.OBSERVED_ERROR)try{this.initializeAll(n+1)}catch(i){}}}},closeAll:function(e){this.isInTransaction()?void 0:"production"!==t.env.NODE_ENV?r(!1,"Transaction.closeAll(): Cannot close transaction when none are open."):r(!1);for(var n=this.transactionWrappers,i=e;i<n.length;i++){var a,s=n[i],u=this.wrapperInitData[i];try{a=!0,u!==o.OBSERVED_ERROR&&s.close&&s.close.call(this,u),a=!1}finally{if(a)try{this.closeAll(i+1)}catch(c){}}}this.wrapperInitData.length=0}},o={Mixin:i,OBSERVED_ERROR:{}};e.exports=o}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var n={};"production"!==t.env.NODE_ENV&&Object.freeze(n),e.exports=n}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t){var n=!0;e:for(;n;){var r=e,o=t;if(n=!1,r&&o){if(r===o)return!0;if(i(r))return!1;if(i(o)){e=r,t=o.parentNode,n=!0;continue e}return r.contains?r.contains(o):r.compareDocumentPosition?!!(16&r.compareDocumentPosition(o)):!1}return!1}}var i=n(371);e.exports=r},function(e,t,n){"use strict";function r(e){return i(e)&&3==e.nodeType}var i=n(372);e.exports=r},function(e){"use strict";function t(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=t},function(e,t,n){(function(t){"use strict";function r(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function i(e){return"function"==typeof e&&"undefined"!=typeof e.prototype&&"function"==typeof e.prototype.mountComponent&&"function"==typeof e.prototype.receiveComponent}function o(e){var n;if(null===e||e===!1)n=new s(o);else if("object"==typeof e){var a=e;!a||"function"!=typeof a.type&&"string"!=typeof a.type?"production"!==t.env.NODE_ENV?l(!1,"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",null==a.type?a.type:typeof a.type,r(a._owner)):l(!1):void 0,n="string"==typeof a.type?u.createInternalComponent(a):i(a.type)?new a.type(a):new f}else"string"==typeof e||"number"==typeof e?n=u.createInstanceForText(e):"production"!==t.env.NODE_ENV?l(!1,"Encountered invalid React node of type %s",typeof e):l(!1);return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?p("function"==typeof n.construct&&"function"==typeof n.mountComponent&&"function"==typeof n.receiveComponent&&"function"==typeof n.unmountComponent,"Only React Components can be mounted."):void 0),n.construct(e),n._mountIndex=0,n._mountImage=null,"production"!==t.env.NODE_ENV&&(n._isOwnerNecessary=!1,n._warnedAboutRefsInRender=!1),"production"!==t.env.NODE_ENV&&Object.preventExtensions&&Object.preventExtensions(n),n}var a=n(374),s=n(379),u=n(380),c=n(350),l=n(324),p=n(336),f=function(){};c(f.prototype,a.Mixin,{_instantiateReactComponent:o}),e.exports=o}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" Check the render method of `"+n+"`."}return""}function i(){}var o=n(375),a=n(316),s=n(353),u=n(358),c=n(329),l=n(376),p=n(377),f=n(361),d=n(364),h=n(350),m=n(369),v=n(324),g=n(378),y=n(336);i.prototype.render=function(){var e=u.get(this)._currentElement.type;return e(this.props,this.context,this.updater)};var b=1,x={construct:function(e){
14
+ this._currentElement=e,this._rootNodeID=null,this._instance=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null},mountComponent:function(e,n,r){this._context=r,this._mountOrder=b++,this._rootNodeID=e;var o,c,l=this._processProps(this._currentElement.props),p=this._processContext(r),h=this._currentElement.type,g="prototype"in h;if(g)if("production"!==t.env.NODE_ENV){a.current=this;try{o=new h(l,p,d)}finally{a.current=null}}else o=new h(l,p,d);(!g||null===o||o===!1||s.isValidElement(o))&&(c=o,o=new i(h)),"production"!==t.env.NODE_ENV&&(null==o.render?"production"!==t.env.NODE_ENV?y(!1,"%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`, returned null/false from a stateless component, or tried to render an element whose type is a function that isn't a React component.",h.displayName||h.name||"Component"):void 0:"production"!==t.env.NODE_ENV?y(h.prototype&&h.prototype.isReactComponent||!g||!(o instanceof h),"%s(...): React component classes must extend React.Component.",h.displayName||h.name||"Component"):void 0),o.props=l,o.context=p,o.refs=m,o.updater=d,this._instance=o,u.set(o,this),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?y(!o.getInitialState||o.getInitialState.isReactClassApproved,"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.getDefaultProps||o.getDefaultProps.isReactClassApproved,"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.propTypes,"propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y(!o.contextTypes,"contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.",this.getName()||"a component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",this.getName()||"A component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentDidUnmount,"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?",this.getName()||"A component"):void 0,"production"!==t.env.NODE_ENV?y("function"!=typeof o.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",this.getName()||"A component"):void 0);var x=o.state;void 0===x&&(o.state=x=null),"object"!=typeof x||Array.isArray(x)?"production"!==t.env.NODE_ENV?v(!1,"%s.state: must be set to an object or null",this.getName()||"ReactCompositeComponent"):v(!1):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,o.componentWillMount&&(o.componentWillMount(),this._pendingStateQueue&&(o.state=this._processPendingState(o.props,o.context))),void 0===c&&(c=this._renderValidatedComponent()),this._renderedComponent=this._instantiateReactComponent(c);var w=f.mountComponent(this._renderedComponent,e,n,this._processChildContext(r));return o.componentDidMount&&n.getReactMountReady().enqueue(o.componentDidMount,o),w},unmountComponent:function(){var e=this._instance;e.componentWillUnmount&&e.componentWillUnmount(),f.unmountComponent(this._renderedComponent),this._renderedComponent=null,this._instance=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=null,this._topLevelWrapper=null,u.remove(e)},_maskContext:function(e){var t=null,n=this._currentElement.type,r=n.contextTypes;if(!r)return m;t={};for(var i in r)t[i]=e[i];return t},_processContext:function(e){var n=this._maskContext(e);if("production"!==t.env.NODE_ENV){var r=this._currentElement.type;r.contextTypes&&this._checkPropTypes(r.contextTypes,n,l.context)}return n},_processChildContext:function(e){var n=this._currentElement.type,r=this._instance,i=r.getChildContext&&r.getChildContext();if(i){"object"!=typeof n.childContextTypes?"production"!==t.env.NODE_ENV?v(!1,"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().",this.getName()||"ReactCompositeComponent"):v(!1):void 0,"production"!==t.env.NODE_ENV&&this._checkPropTypes(n.childContextTypes,i,l.childContext);for(var o in i)o in n.childContextTypes?void 0:"production"!==t.env.NODE_ENV?v(!1,'%s.getChildContext(): key "%s" is not defined in childContextTypes.',this.getName()||"ReactCompositeComponent",o):v(!1);return h({},e,i)}return e},_processProps:function(e){if("production"!==t.env.NODE_ENV){var n=this._currentElement.type;n.propTypes&&this._checkPropTypes(n.propTypes,e,l.prop)}return e},_checkPropTypes:function(e,n,i){var o=this.getName();for(var a in e)if(e.hasOwnProperty(a)){var s;try{"function"!=typeof e[a]?"production"!==t.env.NODE_ENV?v(!1,"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",o||"React class",p[i],a):v(!1):void 0,s=e[a](n,a,o,i)}catch(u){s=u}if(s instanceof Error){var c=r(this);i===l.prop?"production"!==t.env.NODE_ENV?y(!1,"Failed Composite propType: %s%s",s.message,c):void 0:"production"!==t.env.NODE_ENV?y(!1,"Failed Context Types: %s%s",s.message,c):void 0}}},receiveComponent:function(e,t,n){var r=this._currentElement,i=this._context;this._pendingElement=null,this.updateComponent(t,r,e,i,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement&&f.receiveComponent(this,this._pendingElement||this._currentElement,e,this._context),(null!==this._pendingStateQueue||this._pendingForceUpdate)&&this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context)},updateComponent:function(e,n,r,i,o){var a,s=this._instance,u=this._context===o?s.context:this._processContext(o);n===r?a=r.props:(a=this._processProps(r.props),s.componentWillReceiveProps&&s.componentWillReceiveProps(a,u));var c=this._processPendingState(a,u),l=this._pendingForceUpdate||!s.shouldComponentUpdate||s.shouldComponentUpdate(a,c,u);"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?y("undefined"!=typeof l,"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.",this.getName()||"ReactCompositeComponent"):void 0),l?(this._pendingForceUpdate=!1,this._performComponentUpdate(r,a,c,u,e,o)):(this._currentElement=r,this._context=o,s.props=a,s.state=c,s.context=u)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,i=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(i&&1===r.length)return r[0];for(var o=h({},i?r[0]:n.state),a=i?1:0;a<r.length;a++){var s=r[a];h(o,"function"==typeof s?s.call(n,o,e,t):s)}return o},_performComponentUpdate:function(e,t,n,r,i,o){var a,s,u,c=this._instance,l=Boolean(c.componentDidUpdate);l&&(a=c.props,s=c.state,u=c.context),c.componentWillUpdate&&c.componentWillUpdate(t,n,r),this._currentElement=e,this._context=o,c.props=t,c.state=n,c.context=r,this._updateRenderedComponent(i,o),l&&i.getReactMountReady().enqueue(c.componentDidUpdate.bind(c,a,s,u),c)},_updateRenderedComponent:function(e,t){var n=this._renderedComponent,r=n._currentElement,i=this._renderValidatedComponent();if(g(r,i))f.receiveComponent(n,i,e,this._processChildContext(t));else{var o=this._rootNodeID,a=n._rootNodeID;f.unmountComponent(n),this._renderedComponent=this._instantiateReactComponent(i);var s=f.mountComponent(this._renderedComponent,o,e,this._processChildContext(t));this._replaceNodeWithMarkupByID(a,s)}},_replaceNodeWithMarkupByID:function(e,t){o.replaceNodeWithMarkupByID(e,t)},_renderValidatedComponentWithoutOwnerOrContext:function(){var e=this._instance,n=e.render();return"production"!==t.env.NODE_ENV&&"undefined"==typeof n&&e.render._isMockFunction&&(n=null),n},_renderValidatedComponent:function(){var e;a.current=this;try{e=this._renderValidatedComponentWithoutOwnerOrContext()}finally{a.current=null}return null===e||e===!1||s.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?v(!1,"%s.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.",this.getName()||"ReactCompositeComponent"):v(!1),e},attachRef:function(e,n){var r=this.getPublicInstance();null==r?"production"!==t.env.NODE_ENV?v(!1,"Stateless function components cannot have refs."):v(!1):void 0;var i=n.getPublicInstance();if("production"!==t.env.NODE_ENV){var o=n&&n.getName?n.getName():"a component";"production"!==t.env.NODE_ENV?y(null!=i,'Stateless function components cannot be given refs (See ref "%s" in %s created by %s). Attempts to access this ref will fail.',e,o,this.getName()):void 0}var a=r.refs===m?r.refs={}:r.refs;a[e]=i},detachRef:function(e){var t=this.getPublicInstance().refs;delete t[e]},getName:function(){var e=this._currentElement.type,t=this._instance&&this._instance.constructor;return e.displayName||t&&t.displayName||e.name||t&&t.name||null},getPublicInstance:function(){var e=this._instance;return e instanceof i?null:e},_instantiateReactComponent:null};c.measureMethods(x,"ReactCompositeComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent",_renderValidatedComponent:"_renderValidatedComponent"});var w={Mixin:x};e.exports=w}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(324),i=!1,o={unmountIDFromEnvironment:null,replaceNodeWithMarkupByID:null,processChildrenUpdates:null,injection:{injectEnvironment:function(e){i?"production"!==t.env.NODE_ENV?r(!1,"ReactCompositeComponent: injectEnvironment() can only be called once."):r(!1):void 0,o.unmountIDFromEnvironment=e.unmountIDFromEnvironment,o.replaceNodeWithMarkupByID=e.replaceNodeWithMarkupByID,o.processChildrenUpdates=e.processChildrenUpdates,i=!0}}};e.exports=o}).call(t,n(8))},function(e,t,n){"use strict";var r=n(328),i=r({prop:null,context:null,childContext:null});e.exports=i},function(e,t,n){(function(t){"use strict";var n={};"production"!==t.env.NODE_ENV&&(n={prop:"prop",context:"context",childContext:"child context"}),e.exports=n}).call(t,n(8))},function(e){"use strict";function t(e,t){var n=null===e||e===!1,r=null===t||t===!1;if(n||r)return n===r;var i=typeof e,o=typeof t;return"string"===i||"number"===i?"string"===o||"number"===o:"object"===o&&e.type===t.type&&e.key===t.key}e.exports=t},function(e,t,n){"use strict";var r,i=n(353),o=n(355),a=n(361),s=n(350),u={injectEmptyComponent:function(e){r=i.createElement(e)}},c=function(e){this._currentElement=null,this._rootNodeID=null,this._renderedComponent=e(r)};s(c.prototype,{construct:function(){},mountComponent:function(e,t,n){return o.registerNullComponentID(e),this._rootNodeID=e,a.mountComponent(this._renderedComponent,e,t,n)},receiveComponent:function(){},unmountComponent:function(){a.unmountComponent(this._renderedComponent),o.deregisterNullComponentID(this._rootNodeID),this._rootNodeID=null,this._renderedComponent=null}}),c.injection=u,e.exports=c},function(e,t,n){(function(t){"use strict";function r(e){if("function"==typeof e.type)return e.type;var t=e.type,n=p[t];return null==n&&(p[t]=n=c(t)),n}function i(e){return l?void 0:"production"!==t.env.NODE_ENV?u(!1,"There is no registered component for the tag %s",e.type):u(!1),new l(e.type,e.props)}function o(e){return new f(e)}function a(e){return e instanceof f}var s=n(350),u=n(324),c=null,l=null,p={},f=null,d={injectGenericComponentClass:function(e){l=e},injectTextComponentClass:function(e){f=e},injectComponentClasses:function(e){s(p,e)}},h={getComponentClassForElement:r,createInternalComponent:i,createInstanceForText:o,isTextComponent:a,injection:d};e.exports=h}).call(t,n(8))},function(e,t,n){(function(t){"use strict";var r=n(350),i=n(326),o=n(336),a=i;if("production"!==t.env.NODE_ENV){var s=["address","applet","area","article","aside","base","basefont","bgsound","blockquote","body","br","button","caption","center","col","colgroup","dd","details","dir","div","dl","dt","embed","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","iframe","img","input","isindex","li","link","listing","main","marquee","menu","menuitem","meta","nav","noembed","noframes","noscript","object","ol","p","param","plaintext","pre","script","section","select","source","style","summary","table","tbody","td","template","textarea","tfoot","th","thead","title","tr","track","ul","wbr","xmp"],u=["applet","caption","html","table","td","th","marquee","object","template","foreignObject","desc","title"],c=u.concat(["button"]),l=["dd","dt","li","option","optgroup","p","rp","rt"],p={parentTag:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null},f=function(e,t,n){var i=r({},e||p),o={tag:t,instance:n};return-1!==u.indexOf(t)&&(i.aTagInScope=null,i.buttonTagInScope=null,i.nobrTagInScope=null),-1!==c.indexOf(t)&&(i.pTagInButtonScope=null),-1!==s.indexOf(t)&&"address"!==t&&"div"!==t&&"p"!==t&&(i.listItemTagAutoclosing=null,i.dlItemTagAutoclosing=null),i.parentTag=o,"form"===t&&(i.formTag=o),"a"===t&&(i.aTagInScope=o),"button"===t&&(i.buttonTagInScope=o),"nobr"===t&&(i.nobrTagInScope=o),"p"===t&&(i.pTagInButtonScope=o),"li"===t&&(i.listItemTagAutoclosing=o),("dd"===t||"dt"===t)&&(i.dlItemTagAutoclosing=o),i},d=function(e,t){switch(t){case"select":return"option"===e||"optgroup"===e||"#text"===e;case"optgroup":return"option"===e||"#text"===e;case"option":return"#text"===e;case"tr":return"th"===e||"td"===e||"style"===e||"script"===e||"template"===e;case"tbody":case"thead":case"tfoot":return"tr"===e||"style"===e||"script"===e||"template"===e;case"colgroup":return"col"===e||"template"===e;case"table":return"caption"===e||"colgroup"===e||"tbody"===e||"tfoot"===e||"thead"===e||"style"===e||"script"===e||"template"===e;case"head":return"base"===e||"basefont"===e||"bgsound"===e||"link"===e||"meta"===e||"title"===e||"noscript"===e||"noframes"===e||"style"===e||"script"===e||"template"===e;case"html":return"head"===e||"body"===e}switch(e){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return"h1"!==t&&"h2"!==t&&"h3"!==t&&"h4"!==t&&"h5"!==t&&"h6"!==t;case"rp":case"rt":return-1===l.indexOf(t);case"caption":case"col":case"colgroup":case"frame":case"head":case"tbody":case"td":case"tfoot":case"th":case"thead":case"tr":return null==t}return!0},h=function(e,t){switch(e){case"address":case"article":case"aside":case"blockquote":case"center":case"details":case"dialog":case"dir":case"div":case"dl":case"fieldset":case"figcaption":case"figure":case"footer":case"header":case"hgroup":case"main":case"menu":case"nav":case"ol":case"p":case"section":case"summary":case"ul":case"pre":case"listing":case"table":case"hr":case"xmp":case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":return t.pTagInButtonScope;case"form":return t.formTag||t.pTagInButtonScope;case"li":return t.listItemTagAutoclosing;case"dd":case"dt":return t.dlItemTagAutoclosing;case"button":return t.buttonTagInScope;case"a":return t.aTagInScope;case"nobr":return t.nobrTagInScope}return null},m=function(e){if(!e)return[];var t=[];do t.push(e);while(e=e._currentElement._owner);return t.reverse(),t},v={};a=function(e,n,r){r=r||p;var i=r.parentTag,a=i&&i.tag,s=d(e,a)?null:i,u=s?null:h(e,r),c=s||u;if(c){var l,f=c.tag,g=c.instance,y=n&&n._currentElement._owner,b=g&&g._currentElement._owner,x=m(y),w=m(b),E=Math.min(x.length,w.length),_=-1;for(l=0;E>l&&x[l]===w[l];l++)_=l;var C="(unknown)",N=x.slice(_+1).map(function(e){return e.getName()||C}),$=w.slice(_+1).map(function(e){return e.getName()||C}),O=[].concat(-1!==_?x[_].getName()||C:[],$,f,u?["..."]:[],N,e).join(" > "),T=!!s+"|"+e+"|"+f+"|"+O;if(v[T])return;if(v[T]=!0,s){var P="";"table"===f&&"tr"===e&&(P+=" Add a <tbody> to your code to match the DOM tree generated by the browser."),"production"!==t.env.NODE_ENV?o(!1,"validateDOMNesting(...): <%s> cannot appear as a child of <%s>. See %s.%s",e,f,O,P):void 0}else"production"!==t.env.NODE_ENV?o(!1,"validateDOMNesting(...): <%s> cannot appear as a descendant of <%s>. See %s.",e,f,O):void 0}},a.ancestorInfoContextKey="__validateDOMNesting_ancestorInfo$"+Math.random().toString(36).slice(2),a.updatedAncestorInfo=f,a.isTagValidInContext=function(e,t){t=t||p;var n=t.parentTag,r=n&&n.tag;return d(e,r)&&!h(e,t)}}e.exports=a}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(!N&&(N=!0,g.EventEmitter.injectReactEventListener(v),g.EventPluginHub.injectEventPluginOrder(s),g.EventPluginHub.injectInstanceHandle(y),g.EventPluginHub.injectMount(b),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:_,EnterLeaveEventPlugin:u,ChangeEventPlugin:o,SelectEventPlugin:w,BeforeInputEventPlugin:i}),g.NativeComponent.injectGenericComponentClass(h),g.NativeComponent.injectTextComponentClass(m),g.Class.injectMixin(p),g.DOMProperty.injectDOMPropertyConfig(l),g.DOMProperty.injectDOMPropertyConfig(C),g.EmptyComponent.injectEmptyComponent("noscript"),g.Updates.injectReconcileTransaction(x),g.Updates.injectBatchingStrategy(d),g.RootIndex.injectCreateReactRootIndex(c.canUseDOM?a.createReactRootIndex:E.createReactRootIndex),g.Component.injectEnvironment(f),"production"!==t.env.NODE_ENV)){var e=c.canUseDOM&&window.location.href||"";if(/[?&]react_perf\b/.test(e)){var r=n(453);r.start()}}}var i=n(383),o=n(391),a=n(394),s=n(395),u=n(396),c=n(320),l=n(400),p=n(401),f=n(337),d=n(403),h=n(404),m=n(317),v=n(429),g=n(432),y=n(356),b=n(339),x=n(436),w=n(441),E=n(442),_=n(443),C=n(452),N=!1;e.exports={inject:r}}).call(t,n(8))},function(e,t,n){"use strict";function r(){var e=window.opera;return"object"==typeof e&&"function"==typeof e.version&&parseInt(e.version(),10)<=12}function i(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}function o(e){switch(e){case T.topCompositionStart:return P.compositionStart;case T.topCompositionEnd:return P.compositionEnd;case T.topCompositionUpdate:return P.compositionUpdate}}function a(e,t){return e===T.topKeyDown&&t.keyCode===w}function s(e,t){switch(e){case T.topKeyUp:return-1!==x.indexOf(t.keyCode);case T.topKeyDown:return t.keyCode!==w;case T.topKeyPress:case T.topMouseDown:case T.topBlur:return!0;default:return!1}}function u(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}function c(e,t,n,r,i){var c,l;if(E?c=o(e):D?s(e,r)&&(c=P.compositionEnd):a(e,r)&&(c=P.compositionStart),!c)return null;N&&(D||c!==P.compositionStart?c===P.compositionEnd&&D&&(l=D.getData()):D=v.getPooled(t));var p=g.getPooled(c,n,r,i);if(l)p.data=l;else{var f=u(r);null!==f&&(p.data=f)}return h.accumulateTwoPhaseDispatches(p),p}function l(e,t){switch(e){case T.topCompositionEnd:return u(t);case T.topKeyPress:var n=t.which;return n!==$?null:(S=!0,O);case T.topTextInput:var r=t.data;return r===O&&S?null:r;default:return null}}function p(e,t){if(D){if(e===T.topCompositionEnd||s(e,t)){var n=D.getData();return v.release(D),D=null,n}return null}switch(e){case T.topPaste:return null;case T.topKeyPress:return t.which&&!i(t)?String.fromCharCode(t.which):null;case T.topCompositionEnd:return N?null:t.data;default:return null}}function f(e,t,n,r,i){var o;if(o=C?l(e,r):p(e,r),!o)return null;var a=y.getPooled(P.beforeInput,n,r,i);return a.data=o,h.accumulateTwoPhaseDispatches(a),a}var d=n(341),h=n(384),m=n(320),v=n(385),g=n(387),y=n(389),b=n(390),x=[9,13,27,32],w=229,E=m.canUseDOM&&"CompositionEvent"in window,_=null;m.canUseDOM&&"documentMode"in document&&(_=document.documentMode);var C=m.canUseDOM&&"TextEvent"in window&&!_&&!r(),N=m.canUseDOM&&(!E||_&&_>8&&11>=_),$=32,O=String.fromCharCode($),T=d.topLevelTypes,P={beforeInput:{phasedRegistrationNames:{bubbled:b({onBeforeInput:null}),captured:b({onBeforeInputCapture:null})},dependencies:[T.topCompositionEnd,T.topKeyPress,T.topTextInput,T.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:b({onCompositionEnd:null}),captured:b({onCompositionEndCapture:null})},dependencies:[T.topBlur,T.topCompositionEnd,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:b({onCompositionStart:null}),captured:b({onCompositionStartCapture:null})},dependencies:[T.topBlur,T.topCompositionStart,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:b({onCompositionUpdate:null}),captured:b({onCompositionUpdateCapture:null})},dependencies:[T.topBlur,T.topCompositionUpdate,T.topKeyDown,T.topKeyPress,T.topKeyUp,T.topMouseDown]}},S=!1,D=null,R={eventTypes:P,extractEvents:function(e,t,n,r,i){return[c(e,t,n,r,i),f(e,t,n,r,i)]}};e.exports=R},function(e,t,n){(function(t){"use strict";function r(e,t,n){var r=t.dispatchConfig.phasedRegistrationNames[n];return b(e,r)}function i(e,n,i){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?m(e,"Dispatching id must not be null"):void 0);var o=n?y.bubbled:y.captured,a=r(e,i,o);a&&(i._dispatchListeners=v(i._dispatchListeners,a),i._dispatchIDs=v(i._dispatchIDs,e))}function o(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhase(e.dispatchMarker,i,e)}function a(e){e&&e.dispatchConfig.phasedRegistrationNames&&h.injection.getInstanceHandle().traverseTwoPhaseSkipTarget(e.dispatchMarker,i,e)}function s(e,t,n){if(n&&n.dispatchConfig.registrationName){var r=n.dispatchConfig.registrationName,i=b(e,r);i&&(n._dispatchListeners=v(n._dispatchListeners,i),n._dispatchIDs=v(n._dispatchIDs,e))}}function u(e){e&&e.dispatchConfig.registrationName&&s(e.dispatchMarker,null,e)}function c(e){g(e,o)}function l(e){g(e,a)}function p(e,t,n,r){h.injection.getInstanceHandle().traverseEnterLeave(n,r,s,e,t)}function f(e){g(e,u)}var d=n(341),h=n(342),m=n(336),v=n(346),g=n(347),y=d.PropagationPhases,b=h.getListener,x={accumulateTwoPhaseDispatches:c,accumulateTwoPhaseDispatchesSkipTarget:l,accumulateDirectDispatches:f,accumulateEnterLeaveDispatches:p};e.exports=x}).call(t,n(8))},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var i=n(367),o=n(350),a=n(386);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,i=this.getText(),o=i.length;for(e=0;r>e&&n[e]===i[e];e++);var a=r-e;for(t=1;a>=t&&n[r-t]===i[o-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=i.slice(e,s),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(){return!o&&i.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}var i=n(320),o=null;e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={data:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){this.dispatchConfig=e,this.dispatchMarker=t,this.nativeEvent=n,this.target=r,this.currentTarget=r;var i=this.constructor.Interface;for(var o in i)if(i.hasOwnProperty(o)){var s=i[o];this[o]=s?s(n):n[o]}var u=null!=n.defaultPrevented?n.defaultPrevented:n.returnValue===!1;this.isDefaultPrevented=u?a.thatReturnsTrue:a.thatReturnsFalse,this.isPropagationStopped=a.thatReturnsFalse}var i=n(367),o=n(350),a=n(326),s=n(336),u={type:null,currentTarget:a.thatReturnsNull,eventPhase:null,bubbles:null,cancelable:null,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:null,isTrusted:null};o(r.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `preventDefault` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.preventDefault?e.preventDefault():e.returnValue=!1,this.isDefaultPrevented=a.thatReturnsTrue)},stopPropagation:function(){var e=this.nativeEvent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?s(e,"This synthetic event is reused for performance reasons. If you're seeing this, you're calling `stopPropagation` on a released/nullified synthetic event. This is a no-op. See https://fb.me/react-event-pooling for more information."):void 0),e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,this.isPropagationStopped=a.thatReturnsTrue)},persist:function(){this.isPersistent=a.thatReturnsTrue},isPersistent:a.thatReturnsFalse,destructor:function(){var e=this.constructor.Interface;for(var t in e)this[t]=null;this.dispatchConfig=null,this.dispatchMarker=null,this.nativeEvent=null}}),r.Interface=u,r.augmentClass=function(e,t){var n=this,r=Object.create(n.prototype);o(r,e.prototype),e.prototype=r,e.prototype.constructor=e,e.Interface=o({},n.Interface,t),e.augmentClass=n.augmentClass,i.addPoolingTo(e,i.fourArgumentPooler)},i.addPoolingTo(r,i.fourArgumentPooler),e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={data:null};i.augmentClass(r,o),e.exports=r},function(e){"use strict";var t=function(e){var t;for(t in e)if(e.hasOwnProperty(t))return t;return null};e.exports=t},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function i(e){var t=_.getPooled(P.change,D,e,C(e));x.accumulateTwoPhaseDispatches(t),E.batchedUpdates(o,t)}function o(e){b.enqueueEvents(e),b.processEventQueue(!1)}function a(e,t){S=e,D=t,S.attachEvent("onchange",i)}function s(){S&&(S.detachEvent("onchange",i),S=null,D=null)}function u(e,t,n){return e===T.topChange?n:void 0}function c(e,t,n){e===T.topFocus?(s(),a(t,n)):e===T.topBlur&&s()}function l(e,t){S=e,D=t,R=e.value,k=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(S,"value",I),S.attachEvent("onpropertychange",f)}function p(){S&&(delete S.value,S.detachEvent("onpropertychange",f),S=null,D=null,R=null,k=null)}function f(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==R&&(R=t,i(e))}}function d(e,t,n){return e===T.topInput?n:void 0}function h(e,t,n){e===T.topFocus?(p(),l(t,n)):e===T.topBlur&&p()}function m(e){return e!==T.topSelectionChange&&e!==T.topKeyUp&&e!==T.topKeyDown||!S||S.value===R?void 0:(R=S.value,D)}function v(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function g(e,t,n){return e===T.topClick?n:void 0}var y=n(341),b=n(342),x=n(384),w=n(320),E=n(365),_=n(388),C=n(392),N=n(351),$=n(393),O=n(390),T=y.topLevelTypes,P={change:{phasedRegistrationNames:{bubbled:O({onChange:null}),captured:O({onChangeCapture:null})},dependencies:[T.topBlur,T.topChange,T.topClick,T.topFocus,T.topInput,T.topKeyDown,T.topKeyUp,T.topSelectionChange]}},S=null,D=null,R=null,k=null,A=!1;w.canUseDOM&&(A=N("change")&&(!("documentMode"in document)||document.documentMode>8));var j=!1;w.canUseDOM&&(j=N("input")&&(!("documentMode"in document)||document.documentMode>9));var I={get:function(){return k.get.call(this)},set:function(e){R=""+e,k.set.call(this,e)}},M={eventTypes:P,extractEvents:function(e,t,n,i,o){var a,s;if(r(t)?A?a=u:s=c:$(t)?j?a=d:(a=m,s=h):v(t)&&(a=g),a){var l=a(e,t,n);if(l){var p=_.getPooled(P.change,l,i,o);return p.type="change",x.accumulateTwoPhaseDispatches(p),p}}s&&s(e,t,n)}};e.exports=M},function(e){"use strict";function t(e){var t=e.target||e.srcElement||window;return 3===t.nodeType?t.parentNode:t}e.exports=t},function(e){"use strict";function t(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&n[e.type]||"textarea"===t)}var n={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};e.exports=t},function(e){"use strict";var t=0,n={createReactRootIndex:function(){return t++}};e.exports=n},function(e,t,n){"use strict";var r=n(390),i=[r({ResponderEventPlugin:null}),r({SimpleEventPlugin:null}),r({TapEventPlugin:null}),r({EnterLeaveEventPlugin:null}),r({ChangeEventPlugin:null}),r({SelectEventPlugin:null}),r({BeforeInputEventPlugin:null})];e.exports=i},function(e,t,n){"use strict";var r=n(341),i=n(384),o=n(397),a=n(339),s=n(390),u=r.topLevelTypes,c=a.getFirstReactDOM,l={mouseEnter:{registrationName:s({onMouseEnter:null}),dependencies:[u.topMouseOut,u.topMouseOver]},mouseLeave:{registrationName:s({onMouseLeave:null}),dependencies:[u.topMouseOut,u.topMouseOver]}},p=[null,null],f={eventTypes:l,extractEvents:function(e,t,n,r,s){if(e===u.topMouseOver&&(r.relatedTarget||r.fromElement))return null;if(e!==u.topMouseOut&&e!==u.topMouseOver)return null;var f;if(t.window===t)f=t;else{var d=t.ownerDocument;f=d?d.defaultView||d.parentWindow:window}var h,m,v="",g="";if(e===u.topMouseOut?(h=t,v=n,m=c(r.relatedTarget||r.toElement),m?g=a.getID(m):m=f,m=m||f):(h=f,m=t,g=n),h===m)return null;var y=o.getPooled(l.mouseLeave,v,r,s);y.type="mouseleave",y.target=h,y.relatedTarget=m;var b=o.getPooled(l.mouseEnter,g,r,s);return b.type="mouseenter",b.target=m,b.relatedTarget=h,i.accumulateEnterLeaveDispatches(y,b,v,g),p[0]=y,p[1]=b,p}};e.exports=f},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(349),a=n(399),s={screenX:null,screenY:null,clientX:null,clientY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:a,button:function u(e){var u=e.button;return"which"in e?u:2===u?2:4===u?1:0},buttons:null,relatedTarget:function(e){return e.relatedTarget||(e.fromElement===e.srcElement?e.toElement:e.fromElement)},pageX:function(e){return"pageX"in e?e.pageX:e.clientX+o.currentScrollLeft},pageY:function(e){return"pageY"in e?e.pageY:e.clientY+o.currentScrollTop}};i.augmentClass(r,s),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o=n(392),a={view:function(e){if(e.view)return e.view;var t=o(e);if(null!=t&&t.window===t)return t;var n=t.ownerDocument;return n?n.defaultView||n.parentWindow:window},detail:function(e){return e.detail||0}};i.augmentClass(r,a),e.exports=r},function(e){"use strict";function t(e){var t=this,n=t.nativeEvent;if(n.getModifierState)return n.getModifierState(e);var i=r[e];return i?!!n[i]:!1}function n(){return t}var r={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};e.exports=n},function(e,t,n){"use strict";var r,i=n(334),o=n(320),a=i.injection.MUST_USE_ATTRIBUTE,s=i.injection.MUST_USE_PROPERTY,u=i.injection.HAS_BOOLEAN_VALUE,c=i.injection.HAS_SIDE_EFFECTS,l=i.injection.HAS_NUMERIC_VALUE,p=i.injection.HAS_POSITIVE_NUMERIC_VALUE,f=i.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;r=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var h={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:a|u,allowTransparency:a,alt:null,async:u,autoComplete:null,autoPlay:u,capture:a|u,cellPadding:null,cellSpacing:null,charSet:a,challenge:a,checked:s|u,classID:a,className:r?a:s,cols:a|p,colSpan:null,content:null,contentEditable:null,contextMenu:a,controls:s|u,coords:null,crossOrigin:null,data:null,
15
+ dateTime:a,"default":u,defer:u,dir:null,disabled:a|u,download:f,draggable:null,encType:null,form:a,formAction:a,formEncType:a,formMethod:a,formNoValidate:u,formTarget:a,frameBorder:a,headers:null,height:a,hidden:a|u,high:null,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:s,inputMode:a,integrity:null,is:a,keyParams:a,keyType:a,kind:null,label:null,lang:null,list:a,loop:s|u,low:null,manifest:a,marginHeight:null,marginWidth:null,max:null,maxLength:a,media:a,mediaGroup:null,method:null,min:null,minLength:a,multiple:s|u,muted:s|u,name:null,nonce:a,noValidate:u,open:u,optimum:null,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:s|u,rel:null,required:u,reversed:u,role:a,rows:a|p,rowSpan:null,sandbox:null,scope:null,scoped:u,scrolling:null,seamless:a|u,selected:s|u,shape:null,size:a|p,sizes:a,span:p,spellCheck:null,src:null,srcDoc:s,srcLang:null,srcSet:a,start:l,step:null,style:null,summary:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:s|c,width:a,wmode:a,wrap:null,about:a,datatype:a,inlist:a,prefix:a,property:a,resource:a,"typeof":a,vocab:a,autoCapitalize:null,autoCorrect:null,autoSave:null,color:null,itemProp:a,itemScope:a|u,itemType:a,itemID:a,itemRef:a,results:null,security:a,unselectable:a},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",autoSave:"autosave",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};e.exports=h},function(e,t,n){(function(t){"use strict";var r=n(358),i=n(402),o=n(336),a="_getDOMNodeDidWarn",s={getDOMNode:function(){return"production"!==t.env.NODE_ENV?o(this.constructor[a],"%s.getDOMNode(...) is deprecated. Please use ReactDOM.findDOMNode(instance) instead.",r.get(this).getName()||this.tagName||"Unknown"):void 0,this.constructor[a]=!0,i(this)}};e.exports=s}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){if("production"!==t.env.NODE_ENV){var n=i.current;null!==n&&("production"!==t.env.NODE_ENV?u(n._warnedAboutRefsInRender,"%s is accessing getDOMNode or findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.",n.getName()||"A component"):void 0,n._warnedAboutRefsInRender=!0)}return null==e?null:1===e.nodeType?e:o.has(e)?a.getNodeFromInstance(e):(null!=e.render&&"function"==typeof e.render?"production"!==t.env.NODE_ENV?s(!1,"findDOMNode was called on an unmounted component."):s(!1):void 0,void("production"!==t.env.NODE_ENV?s(!1,"Element appears to be neither ReactComponent nor DOMNode (keys: %s)",Object.keys(e)):s(!1)))}var i=n(316),o=n(358),a=n(339),s=n(324),u=n(336);e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var i=n(365),o=n(368),a=n(350),s=n(326),u={initialize:s,close:function(){f.isBatchingUpdates=!1}},c={initialize:s,close:i.flushBatchedUpdates.bind(i)},l=[c,u];a(r.prototype,o.Mixin,{getTransactionWrappers:function(){return l}});var p=new r,f={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,i,o){var a=f.isBatchingUpdates;f.isBatchingUpdates=!0,a?e(t,n,r,i,o):p.perform(e,null,t,n,r,i,o)}};e.exports=f},function(e,t,n){(function(t){"use strict";function r(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}function i(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .getDOMNode() of a DOM node; instead, use the node directly.%s",r(e)):void 0}return this}function o(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .isMounted() of a DOM node.%s",r(e)):void 0),!!e}function a(){if("production"!==t.env.NODE_ENV){var e=this._reactInternalComponent;"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .setState(), .replaceState(), or .forceUpdate() of a DOM node. This is a no-op.%s",r(e)):void 0}}function s(e,n){var i=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .setProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",r(i)):void 0),i&&(M.enqueueSetPropsInternal(i,e),n&&M.enqueueCallbackInternal(i,n))}function u(e,n){var i=this._reactInternalComponent;"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .replaceProps() of a DOM node. Instead, call ReactDOM.render again at the top level.%s",r(i)):void 0),i&&(M.enqueueReplacePropsInternal(i,e),n&&M.enqueueCallbackInternal(i,n))}function c(e){if("object"==typeof e){if(Array.isArray(e))return"["+e.map(c).join(", ")+"]";var t=[];for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)){var r=/^[a-z$_][\w$_]*$/i.test(n)?n:JSON.stringify(n);t.push(r+": "+c(e[n]))}return"{"+t.join(", ")+"}"}return"string"==typeof e?JSON.stringify(e):"function"==typeof e?"[function object]":String(e)}function l(e,n,r){if(null!=e&&null!=n&&!z(e,n)){var i,o=r._tag,a=r._currentElement._owner;a&&(i=a.getName());var s=i+"|"+o;re.hasOwnProperty(s)||(re[s]=!0,"production"!==t.env.NODE_ENV?Q(!1,"`%s` was passed a style object that has previously been mutated. Mutating `style` is deprecated. Consider cloning it beforehand. Check the `render` %s. Previous style: %s. Mutated style: %s.",o,a?"of `"+i+"`":"using <"+o+">",c(e),c(n)):void 0)}}function p(e,n){n&&("production"!==t.env.NODE_ENV&&se[e._tag]&&("production"!==t.env.NODE_ENV?Q(null==n.children&&null==n.dangerouslySetInnerHTML,"%s is a void element tag and must not have `children` or use `props.dangerouslySetInnerHTML`.%s",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""):void 0),null!=n.dangerouslySetInnerHTML&&(null!=n.children?"production"!==t.env.NODE_ENV?U(!1,"Can only set one of `children` or `props.dangerouslySetInnerHTML`."):U(!1):void 0,"object"==typeof n.dangerouslySetInnerHTML&&te in n.dangerouslySetInnerHTML?void 0:"production"!==t.env.NODE_ENV?U(!1,"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information."):U(!1)),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q(null==n.innerHTML,"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`."):void 0,"production"!==t.env.NODE_ENV?Q(!n.contentEditable||null==n.children,"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional."):void 0),null!=n.style&&"object"!=typeof n.style?"production"!==t.env.NODE_ENV?U(!1,"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.%s",r(e)):U(!1):void 0)}function f(e,n,r,i){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?Q("onScroll"!==n||H("scroll",!0),"This browser doesn't support the `onScroll` event"):void 0);var o=A.findReactContainerForID(e);if(o){var a=o.nodeType===ne?o.ownerDocument:o;G(n,a)}i.getReactMountReady().enqueue(d,{id:e,registrationName:n,listener:r})}function d(){var e=this;O.putListener(e.id,e.registrationName,e.listener)}function h(){var e=this;e._rootNodeID?void 0:"production"!==t.env.NODE_ENV?U(!1,"Must be mounted to trap events"):U(!1);var n=A.getNode(e._rootNodeID);switch(n?void 0:"production"!==t.env.NODE_ENV?U(!1,"trapBubbledEvent(...): Requires node to be rendered."):U(!1),e._tag){case"iframe":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topLoad,"load",n)];break;case"video":case"audio":e._wrapperState.listeners=[];for(var r in ie)ie.hasOwnProperty(r)&&e._wrapperState.listeners.push(O.trapBubbledEvent($.topLevelTypes[r],ie[r],n));break;case"img":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topError,"error",n),O.trapBubbledEvent($.topLevelTypes.topLoad,"load",n)];break;case"form":e._wrapperState.listeners=[O.trapBubbledEvent($.topLevelTypes.topReset,"reset",n),O.trapBubbledEvent($.topLevelTypes.topSubmit,"submit",n)]}}function m(){S.mountReadyWrapper(this)}function v(){R.postUpdateWrapper(this)}function g(e){le.call(ce,e)||(ue.test(e)?void 0:"production"!==t.env.NODE_ENV?U(!1,"Invalid tag: %s",e):U(!1),ce[e]=!0)}function y(e,t){e=F({},e);var n=e[K.ancestorInfoContextKey];return e[K.ancestorInfoContextKey]=K.updatedAncestorInfo(n,t._tag,t),e}function b(e,t){return e.indexOf("-")>=0||null!=t.is}function x(e){g(e),this._tag=e.toLowerCase(),this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._rootNodeID=null,this._wrapperState=null,this._topLevelWrapper=null,this._nodeWithLegacyProperties=null,"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=null,this._processedContextDev=null)}var w,E=n(405),_=n(407),C=n(334),N=n(333),$=n(341),O=n(340),T=n(337),P=n(415),S=n(416),D=n(420),R=n(423),k=n(424),A=n(339),j=n(425),I=n(329),M=n(364),F=n(350),L=n(354),V=n(332),U=n(324),H=n(351),q=n(390),B=n(330),W=n(331),z=n(428),K=n(381),Q=n(336),Y=O.deleteListener,G=O.listenTo,X=O.registrationNameModules,J={string:!0,number:!0},Z=q({children:null}),ee=q({style:null}),te=q({__html:null}),ne=1;"production"!==t.env.NODE_ENV&&(w={props:{enumerable:!1,get:function(){var e=this._reactInternalComponent;return"production"!==t.env.NODE_ENV?Q(!1,"ReactDOMComponent: Do not access .props of a DOM node; instead, recreate the props as `render` did originally or read the DOM properties/attributes directly from this node (e.g., this.refs.box.className).%s",r(e)):void 0,e._currentElement.props}}});var re={},ie={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},oe={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},ae={listing:!0,pre:!0,textarea:!0},se=F({menuitem:!0},oe),ue=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,ce={},le={}.hasOwnProperty;x.displayName="ReactDOMComponent",x.Mixin={construct:function(e){this._currentElement=e},mountComponent:function(e,n,r){this._rootNodeID=e;var i=this._currentElement.props;switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":this._wrapperState={listeners:null},n.getReactMountReady().enqueue(h,this);break;case"button":i=P.getNativeProps(this,i,r);break;case"input":S.mountWrapper(this,i,r),i=S.getNativeProps(this,i,r);break;case"option":D.mountWrapper(this,i,r),i=D.getNativeProps(this,i,r);break;case"select":R.mountWrapper(this,i,r),i=R.getNativeProps(this,i,r),r=R.processChildContext(this,i,r);break;case"textarea":k.mountWrapper(this,i,r),i=k.getNativeProps(this,i,r)}p(this,i),"production"!==t.env.NODE_ENV&&r[K.ancestorInfoContextKey]&&K(this._tag,this,r[K.ancestorInfoContextKey]),"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev=r,this._processedContextDev=y(r,this),r=this._processedContextDev);var o;if(n.useCreateElement){var a=r[A.ownerDocumentContextKey],s=a.createElement(this._currentElement.type);N.setAttributeForID(s,this._rootNodeID),A.getID(s),this._updateDOMProperties({},i,n,s),this._createInitialChildren(n,i,r,s),o=s}else{var u=this._createOpenTagMarkupAndPutListeners(n,i),c=this._createContentMarkup(n,i,r);o=!c&&oe[this._tag]?u+"/>":u+">"+c+"</"+this._currentElement.type+">"}switch(this._tag){case"input":n.getReactMountReady().enqueue(m,this);case"button":case"select":case"textarea":i.autoFocus&&n.getReactMountReady().enqueue(E.focusDOMComponent,this)}return o},_createOpenTagMarkupAndPutListeners:function(e,n){var r="<"+this._currentElement.type;for(var i in n)if(n.hasOwnProperty(i)){var o=n[i];if(null!=o)if(X.hasOwnProperty(i))o&&f(this._rootNodeID,i,o,e);else{i===ee&&(o&&("production"!==t.env.NODE_ENV&&(this._previousStyle=o),o=this._previousStyleCopy=F({},n.style)),o=_.createMarkupForStyles(o));var a=null;null!=this._tag&&b(this._tag,n)?i!==Z&&(a=N.createMarkupForCustomAttribute(i,o)):a=N.createMarkupForProperty(i,o),a&&(r+=" "+a)}}if(e.renderToStaticMarkup)return r;var s=N.createMarkupForID(this._rootNodeID);return r+" "+s},_createContentMarkup:function(e,t,n){var r="",i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&(r=i.__html);else{var o=J[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)r=V(o);else if(null!=a){var s=this.mountChildren(a,e,n);r=s.join("")}}return ae[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var i=t.dangerouslySetInnerHTML;if(null!=i)null!=i.__html&&B(r,i.__html);else{var o=J[typeof t.children]?t.children:null,a=null!=o?null:t.children;if(null!=o)W(r,o);else if(null!=a)for(var s=this.mountChildren(a,e,n),u=0;u<s.length;u++)r.appendChild(s[u])}},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,n,r,i){var o=n.props,a=this._currentElement.props;switch(this._tag){case"button":o=P.getNativeProps(this,o),a=P.getNativeProps(this,a);break;case"input":S.updateWrapper(this),o=S.getNativeProps(this,o),a=S.getNativeProps(this,a);break;case"option":o=D.getNativeProps(this,o),a=D.getNativeProps(this,a);break;case"select":o=R.getNativeProps(this,o),a=R.getNativeProps(this,a);break;case"textarea":k.updateWrapper(this),o=k.getNativeProps(this,o),a=k.getNativeProps(this,a)}"production"!==t.env.NODE_ENV&&(this._unprocessedContextDev!==i&&(this._unprocessedContextDev=i,this._processedContextDev=y(i,this)),i=this._processedContextDev),p(this,a),this._updateDOMProperties(o,a,e,null),this._updateDOMChildren(o,a,e,i),!L&&this._nodeWithLegacyProperties&&(this._nodeWithLegacyProperties.props=a),"select"===this._tag&&e.getReactMountReady().enqueue(v,this)},_updateDOMProperties:function(e,n,r,i){var o,a,s;for(o in e)if(!n.hasOwnProperty(o)&&e.hasOwnProperty(o))if(o===ee){var u=this._previousStyleCopy;for(a in u)u.hasOwnProperty(a)&&(s=s||{},s[a]="");this._previousStyleCopy=null}else X.hasOwnProperty(o)?e[o]&&Y(this._rootNodeID,o):(C.properties[o]||C.isCustomAttribute(o))&&(i||(i=A.getNode(this._rootNodeID)),N.deleteValueForProperty(i,o));for(o in n){var c=n[o],p=o===ee?this._previousStyleCopy:e[o];if(n.hasOwnProperty(o)&&c!==p)if(o===ee)if(c?("production"!==t.env.NODE_ENV&&(l(this._previousStyleCopy,this._previousStyle,this),this._previousStyle=c),c=this._previousStyleCopy=F({},c)):this._previousStyleCopy=null,p){for(a in p)!p.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(s=s||{},s[a]="");for(a in c)c.hasOwnProperty(a)&&p[a]!==c[a]&&(s=s||{},s[a]=c[a])}else s=c;else X.hasOwnProperty(o)?c?f(this._rootNodeID,o,c,r):p&&Y(this._rootNodeID,o):b(this._tag,n)?(i||(i=A.getNode(this._rootNodeID)),o===Z&&(c=null),N.setValueForAttribute(i,o,c)):(C.properties[o]||C.isCustomAttribute(o))&&(i||(i=A.getNode(this._rootNodeID)),null!=c?N.setValueForProperty(i,o,c):N.deleteValueForProperty(i,o))}s&&(i||(i=A.getNode(this._rootNodeID)),_.setValueForStyles(i,s))},_updateDOMChildren:function(e,t,n,r){var i=J[typeof e.children]?e.children:null,o=J[typeof t.children]?t.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html,u=null!=i?null:e.children,c=null!=o?null:t.children,l=null!=i||null!=a,p=null!=o||null!=s;null!=u&&null==c?this.updateChildren(null,n,r):l&&!p&&this.updateTextContent(""),null!=o?i!==o&&this.updateTextContent(""+o):null!=s?a!==s&&this.updateMarkup(""+s):null!=c&&this.updateChildren(c,n,r)},unmountComponent:function(){switch(this._tag){case"iframe":case"img":case"form":case"video":case"audio":var e=this._wrapperState.listeners;if(e)for(var n=0;n<e.length;n++)e[n].remove();break;case"input":S.unmountWrapper(this);break;case"html":case"head":case"body":"production"!==t.env.NODE_ENV?U(!1,"<%s> tried to unmount. Because of cross-browser quirks it is impossible to unmount some top-level components (eg <html>, <head>, and <body>) reliably and efficiently. To fix this, have a single top-level component that never unmounts render these elements.",this._tag):U(!1)}if(this.unmountChildren(),O.deleteAllListeners(this._rootNodeID),T.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null,this._wrapperState=null,this._nodeWithLegacyProperties){var r=this._nodeWithLegacyProperties;r._reactInternalComponent=null,this._nodeWithLegacyProperties=null}},getPublicInstance:function(){if(!this._nodeWithLegacyProperties){var e=A.getNode(this._rootNodeID);e._reactInternalComponent=this,e.getDOMNode=i,e.isMounted=o,e.setState=a,e.replaceState=a,e.forceUpdate=a,e.setProps=s,e.replaceProps=u,"production"!==t.env.NODE_ENV&&L?Object.defineProperties(e,w):e.props=this._currentElement.props,this._nodeWithLegacyProperties=e}return this._nodeWithLegacyProperties}},I.measureMethods(x,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),F(x.prototype,x.Mixin,j.Mixin),e.exports=x}).call(t,n(8))},function(e,t,n){"use strict";var r=n(339),i=n(402),o=n(406),a={componentDidMount:function(){this.props.autoFocus&&o(i(this))}},s={Mixin:a,focusDOMComponent:function(){o(r.getNode(this._rootNodeID))}};e.exports=s},function(e){"use strict";function t(e){try{e.focus()}catch(t){}}e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(408),i=n(320),o=n(329),a=n(409),s=n(411),u=n(412),c=n(414),l=n(336),p=c(function(e){return u(e)}),f=!1,d="cssFloat";if(i.canUseDOM){var h=document.createElement("div").style;try{h.font=""}catch(m){f=!0}void 0===document.documentElement.style.cssFloat&&(d="styleFloat")}if("production"!==t.env.NODE_ENV)var v=/^(?:webkit|moz|o)[A-Z]/,g=/;\s*$/,y={},b={},x=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?l(!1,"Unsupported style property %s. Did you mean %s?",e,a(e)):void 0)},w=function(e){y.hasOwnProperty(e)&&y[e]||(y[e]=!0,"production"!==t.env.NODE_ENV?l(!1,"Unsupported vendor-prefixed style property %s. Did you mean %s?",e,e.charAt(0).toUpperCase()+e.slice(1)):void 0)},E=function(e,n){b.hasOwnProperty(n)&&b[n]||(b[n]=!0,"production"!==t.env.NODE_ENV?l(!1,'Style property values shouldn\'t contain a semicolon. Try "%s: %s" instead.',e,n.replace(g,"")):void 0)},_=function(e,t){e.indexOf("-")>-1?x(e):v.test(e)?w(e):g.test(t)&&E(e,t)};var C={createMarkupForStyles:function(e){var n="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r];"production"!==t.env.NODE_ENV&&_(r,i),null!=i&&(n+=p(r)+":",n+=s(r,i)+";")}return n||null},setValueForStyles:function(e,n){var i=e.style;for(var o in n)if(n.hasOwnProperty(o)){"production"!==t.env.NODE_ENV&&_(o,n[o]);var a=s(o,n[o]);if("float"===o&&(o=d),a)i[o]=a;else{var u=f&&r.shorthandPropertyExpansions[o];if(u)for(var c in u)i[c]="";else i[o]=""}}}};o.measureMethods(C,"CSSPropertyOperations",{setValueForStyles:"setValueForStyles"}),e.exports=C}).call(t,n(8))},function(e){"use strict";function t(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var n={animationIterationCount:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,stopOpacity:!0,strokeDashoffset:!0,strokeOpacity:!0,strokeWidth:!0},r=["Webkit","ms","Moz","O"];Object.keys(n).forEach(function(e){r.forEach(function(r){n[t(r,e)]=n[e]})});var i={background:{backgroundAttachment:!0,backgroundColor:!0,backgroundImage:!0,backgroundPositionX:!0,backgroundPositionY:!0,backgroundRepeat:!0},backgroundPosition:{backgroundPositionX:!0,backgroundPositionY:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0},outline:{outlineWidth:!0,outlineStyle:!0,outlineColor:!0}},o={isUnitlessNumber:n,shorthandPropertyExpansions:i};e.exports=o},function(e,t,n){"use strict";function r(e){return i(e.replace(o,"ms-"))}var i=n(410),o=/^-ms-/;e.exports=r},function(e){"use strict";function t(e){return e.replace(n,function(e,t){return t.toUpperCase()})}var n=/-(.)/g;e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=null==t||"boolean"==typeof t||""===t;if(n)return"";var r=isNaN(t);return r||0===t||o.hasOwnProperty(e)&&o[e]?""+t:("string"==typeof t&&(t=t.trim()),t+"px")}var i=n(408),o=i.isUnitlessNumber;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e).replace(o,"-ms-")}var i=n(413),o=/^ms-/;e.exports=r},function(e){"use strict";function t(e){return e.replace(n,"-$1").toLowerCase()}var n=/([A-Z])/g;e.exports=t},function(e){"use strict";function t(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=t},function(e){"use strict";var t={onClick:!0,onDoubleClick:!0,onMouseDown:!0,onMouseMove:!0,onMouseUp:!0,onClickCapture:!0,onDoubleClickCapture:!0,onMouseDownCapture:!0,onMouseMoveCapture:!0,onMouseUpCapture:!0},n={getNativeProps:function(e,n){if(!n.disabled)return n;var r={};for(var i in n)n.hasOwnProperty(i)&&!t[i]&&(r[i]=n[i]);return r}};e.exports=n},function(e,t,n){(function(t){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function i(e){var n=this._currentElement.props,i=a.executeOnChange(n,e);u.asap(r,this);var o=n.name;if("radio"===n.type&&null!=o){for(var c=s.getNode(this._rootNodeID),f=c;f.parentNode;)f=f.parentNode;for(var d=f.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),h=0;h<d.length;h++){var m=d[h];if(m!==c&&m.form===c.form){var v=s.getID(m);v?void 0:"production"!==t.env.NODE_ENV?l(!1,"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported."):l(!1);var g=p[v];g?void 0:"production"!==t.env.NODE_ENV?l(!1,"ReactDOMInput: Unknown radio button ID %s.",v):l(!1),u.asap(r,g)}}}return i}var o=n(338),a=n(417),s=n(339),u=n(365),c=n(350),l=n(324),p={},f={getNativeProps:function(e,t){var n=a.getValue(t),r=a.getChecked(t),i=c({},t,{defaultChecked:void 0,defaultValue:void 0,value:null!=n?n:e._wrapperState.initialValue,checked:null!=r?r:e._wrapperState.initialChecked,onChange:e._wrapperState.onChange});return i},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&a.checkPropTypes("input",n,e._currentElement._owner);var r=n.defaultValue;e._wrapperState={initialChecked:n.defaultChecked||!1,initialValue:null!=r?r:null,onChange:i.bind(e)}},mountReadyWrapper:function(e){p[e._rootNodeID]=e},unmountWrapper:function(e){delete p[e._rootNodeID]},updateWrapper:function(e){var t=e._currentElement.props,n=t.checked;null!=n&&o.updatePropertyByID(e._rootNodeID,"checked",n||!1);var r=a.getValue(t);null!=r&&o.updatePropertyByID(e._rootNodeID,"value",""+r)}};e.exports=f}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){null!=e.checkedLink&&null!=e.valueLink?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a checkedLink and a valueLink. If you want to use checkedLink, you probably don't want to use valueLink and vice versa."):c(!1):void 0}function i(e){r(e),null!=e.value||null!=e.onChange?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a valueLink and a value or onChange event. If you want to use value or onChange, you probably don't want to use valueLink."):c(!1):void 0}function o(e){r(e),null!=e.checked||null!=e.onChange?"production"!==t.env.NODE_ENV?c(!1,"Cannot provide a checkedLink and a checked property or onChange event. If you want to use checked or onChange, you probably don't want to use checkedLink"):c(!1):void 0}function a(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}var s=n(418),u=n(376),c=n(324),l=n(336),p={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},f={value:function(e,t){return!e[t]||p[e.type]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.")},checked:function(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?null:new Error("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")},onChange:s.func},d={},h={checkPropTypes:function(e,n,r){for(var i in f){if(f.hasOwnProperty(i))var o=f[i](n,i,e,u.prop);if(o instanceof Error&&!(o.message in d)){d[o.message]=!0;var s=a(r);"production"!==t.env.NODE_ENV?l(!1,"Failed form propType: %s%s",o.message,s):void 0}}},getValue:function(e){return e.valueLink?(i(e),e.valueLink.value):e.value},getChecked:function(e){return e.checkedLink?(o(e),e.checkedLink.value):e.checked},executeOnChange:function(e,t){return e.valueLink?(i(e),e.valueLink.requestChange(t.target.value)):e.checkedLink?(o(e),e.checkedLink.requestChange(t.target.checked)):e.onChange?e.onChange.call(void 0,t):void 0}};e.exports=h}).call(t,n(8))},function(e,t,n){"use strict";function r(e){function t(t,n,r,i,o,a){if(i=i||E,a=a||r,null==n[r]){var s=b[o];return t?new Error("Required "+s+" `"+a+"` was not specified in "+("`"+i+"`.")):null}return e(n,r,i,o,a)}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function i(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if(s!==e){var u=b[i],c=v(a);return new Error("Invalid "+u+" `"+o+"` of type "+("`"+c+"` supplied to `"+r+"`, expected ")+("`"+e+"`."))}return null}return r(t)}function o(){return r(x.thatReturns(null))}function a(e){function t(t,n,r,i,o){var a=t[n];if(!Array.isArray(a)){var s=b[i],u=m(a);return new Error("Invalid "+s+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected an array."))}for(var c=0;c<a.length;c++){var l=e(a,c,r,i,o+"["+c+"]");if(l instanceof Error)return l}return null}return r(t)}function s(){function e(e,t,n,r,i){if(!y.isValidElement(e[t])){var o=b[r];return new Error("Invalid "+o+" `"+i+"` supplied to "+("`"+n+"`, expected a single ReactElement."))}return null}return r(e)}function u(e){function t(t,n,r,i,o){if(!(t[n]instanceof e)){var a=b[i],s=e.name||E,u=g(t[n]);return new Error("Invalid "+a+" `"+o+"` of type "+("`"+u+"` supplied to `"+r+"`, expected ")+("instance of `"+s+"`."))}return null}return r(t)}function c(e){function t(t,n,r,i,o){for(var a=t[n],s=0;s<e.length;s++)if(a===e[s])return null;var u=b[i],c=JSON.stringify(e);return new Error("Invalid "+u+" `"+o+"` of value `"+a+"` "+("supplied to `"+r+"`, expected one of "+c+"."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOf, expected an instance of array.")})}function l(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if("object"!==s){var u=b[i];return new Error("Invalid "+u+" `"+o+"` of type "+("`"+s+"` supplied to `"+r+"`, expected an object."))}for(var c in a)if(a.hasOwnProperty(c)){var l=e(a,c,r,i,o+"."+c);if(l instanceof Error)return l}return null}return r(t)}function p(e){function t(t,n,r,i,o){for(var a=0;a<e.length;a++){var s=e[a];if(null==s(t,n,r,i,o))return null}var u=b[i];return new Error("Invalid "+u+" `"+o+"` supplied to "+("`"+r+"`."))}return r(Array.isArray(e)?t:function(){return new Error("Invalid argument supplied to oneOfType, expected an instance of array.")})}function f(){function e(e,t,n,r,i){if(!h(e[t])){var o=b[r];return new Error("Invalid "+o+" `"+i+"` supplied to "+("`"+n+"`, expected a ReactNode."))}return null}return r(e)}function d(e){function t(t,n,r,i,o){var a=t[n],s=m(a);if("object"!==s){var u=b[i];return new Error("Invalid "+u+" `"+o+"` of type `"+s+"` "+("supplied to `"+r+"`, expected `object`."))}for(var c in e){var l=e[c];if(l){var p=l(a,c,r,i,o+"."+c);if(p)return p}}return null}return r(t)}function h(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(h);if(null===e||y.isValidElement(e))return!0;var t=w(e);if(!t)return!1;var n,r=t.call(e);if(t!==e.entries){for(;!(n=r.next()).done;)if(!h(n.value))return!1}else for(;!(n=r.next()).done;){var i=n.value;if(i&&!h(i[1]))return!1}return!0;default:return!1}}function m(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":t}function v(e){var t=m(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function g(e){return e.constructor&&e.constructor.name?e.constructor.name:"<<anonymous>>"}var y=n(353),b=n(377),x=n(326),w=n(419),E="<<anonymous>>",_={array:i("array"),bool:i("boolean"),func:i("function"),number:i("number"),object:i("object"),string:i("string"),any:o(),arrayOf:a,element:s(),instanceOf:u,node:f(),objectOf:l,oneOf:c,oneOfType:p,shape:d};e.exports=_},function(e){"use strict";function t(e){var t=e&&(n&&e[n]||e[r]);return"function"==typeof t?t:void 0}var n="function"==typeof Symbol&&Symbol.iterator,r="@@iterator";e.exports=t},function(e,t,n){(function(t){"use strict";var r=n(421),i=n(423),o=n(350),a=n(336),s=i.valueContextKey,u={mountWrapper:function(e,n,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(null==n.selected,"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>."):void 0);var i=r[s],o=null;if(null!=i)if(o=!1,Array.isArray(i)){for(var u=0;u<i.length;u++)if(""+i[u]==""+n.value){o=!0;break}}else o=""+i==""+n.value;e._wrapperState={selected:o}},getNativeProps:function(e,n){var i=o({selected:void 0,children:void 0},n);null!=e._wrapperState.selected&&(i.selected=e._wrapperState.selected);var s="";return r.forEach(n.children,function(e){null!=e&&("string"==typeof e||"number"==typeof e?s+=e:"production"!==t.env.NODE_ENV?a(!1,"Only strings and numbers are supported as <option> children."):void 0)}),i.children=s,i}};e.exports=u}).call(t,n(8))},function(e,t,n){"use strict";function r(e){return(""+e).replace(x,"//")}function i(e,t){this.func=e,this.context=t,this.count=0}function o(e,t){var n=e.func,r=e.context;n.call(r,t,e.count++)}function a(e,t,n){if(null==e)return e;var r=i.getPooled(t,n);g(e,o,r),i.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var i=e.result,o=e.keyPrefix,a=e.func,s=e.context,u=a.call(s,t,e.count++);Array.isArray(u)?c(u,i,n,v.thatReturnsArgument):null!=u&&(m.isValidElement(u)&&(u=m.cloneAndReplaceKey(u,o+(u!==t?r(u.key||"")+"/":"")+n)),i.push(u))}function c(e,t,n,i,o){var a="";null!=n&&(a=r(n)+"/");var c=s.getPooled(t,a,i,o);g(e,u,c),s.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function p(){return null}function f(e){return g(e,p,null)}function d(e){var t=[];return c(e,t,null,v.thatReturnsArgument),t}var h=n(367),m=n(353),v=n(326),g=n(422),y=h.twoArgumentPooler,b=h.fourArgumentPooler,x=/\/(?!\/)/g;i.prototype.destructor=function(){this.func=null,
16
+ this.context=null,this.count=0},h.addPoolingTo(i,y),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(s,b);var w={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};e.exports=w},function(e,t,n){(function(t){"use strict";function r(e){return g[e]}function i(e,t){return e&&null!=e.key?a(e.key):t.toString(36)}function o(e){return(""+e).replace(y,r)}function a(e){return"$"+o(e)}function s(e,n,r,o){var u=typeof e;if(("undefined"===u||"boolean"===u)&&(e=null),null===e||"string"===u||"number"===u||l.isValidElement(e))return r(o,e,""===n?m+i(e,0):n),1;var p,g,y=0,x=""===n?m:n+v;if(Array.isArray(e))for(var w=0;w<e.length;w++)p=e[w],g=x+i(p,w),y+=s(p,g,r,o);else{var E=f(e);if(E){var _,C=E.call(e);if(E!==e.entries)for(var N=0;!(_=C.next()).done;)p=_.value,g=x+i(p,N++),y+=s(p,g,r,o);else for("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?h(b,"Using Maps as children is not yet fully supported. It is an experimental feature that might be removed. Convert it to a sequence / iterable of keyed ReactElements instead."):void 0,b=!0);!(_=C.next()).done;){var $=_.value;$&&(p=$[1],g=x+a($[0])+v+i(p,0),y+=s(p,g,r,o))}}else if("object"===u){var O="";if("production"!==t.env.NODE_ENV&&(O=" If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons.",e._isReactElement&&(O=" It looks like you're using an element created by a different version of React. Make sure to use only one copy of React."),c.current)){var T=c.current.getName();T&&(O+=" Check the render method of `"+T+"`.")}var P=String(e);"production"!==t.env.NODE_ENV?d(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===P?"object with keys {"+Object.keys(e).join(", ")+"}":P,O):d(!1)}}return y}function u(e,t,n){return null==e?0:s(e,"",t,n)}var c=n(316),l=n(353),p=n(356),f=n(419),d=n(324),h=n(336),m=p.SEPARATOR,v=":",g={"=":"=0",".":"=1",":":"=2"},y=/[=.:]/g,b=!1;e.exports=u}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(this._rootNodeID&&this._wrapperState.pendingUpdate){this._wrapperState.pendingUpdate=!1;var e=this._currentElement.props,t=u.getValue(e);null!=t&&a(this,e,t)}}function i(e){if(e){var t=e.getName();if(t)return" Check the render method of `"+t+"`."}return""}function o(e,n){var r=e._currentElement._owner;u.checkPropTypes("select",n,r);for(var o=0;o<h.length;o++){var a=h[o];null!=n[a]&&(n.multiple?"production"!==t.env.NODE_ENV?f(Array.isArray(n[a]),"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s",a,i(r)):void 0:"production"!==t.env.NODE_ENV?f(!Array.isArray(n[a]),"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s",a,i(r)):void 0)}}function a(e,t,n){var r,i,o=c.getNode(e._rootNodeID).options;if(t){for(r={},i=0;i<n.length;i++)r[""+n[i]]=!0;for(i=0;i<o.length;i++){var a=r.hasOwnProperty(o[i].value);o[i].selected!==a&&(o[i].selected=a)}}else{for(r=""+n,i=0;i<o.length;i++)if(o[i].value===r)return void(o[i].selected=!0);o.length&&(o[0].selected=!0)}}function s(e){var t=this._currentElement.props,n=u.executeOnChange(t,e);return this._wrapperState.pendingUpdate=!0,l.asap(r,this),n}var u=n(417),c=n(339),l=n(365),p=n(350),f=n(336),d="__ReactDOMSelect_value$"+Math.random().toString(36).slice(2),h=["value","defaultValue"],m={valueContextKey:d,getNativeProps:function(e,t){return p({},t,{onChange:e._wrapperState.onChange,value:void 0})},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&o(e,n);var r=u.getValue(n);e._wrapperState={pendingUpdate:!1,initialValue:null!=r?r:n.defaultValue,onChange:s.bind(e),wasMultiple:Boolean(n.multiple)}},processChildContext:function(e,t,n){var r=p({},n);return r[d]=e._wrapperState.initialValue,r},postUpdateWrapper:function(e){var t=e._currentElement.props;e._wrapperState.initialValue=void 0;var n=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=Boolean(t.multiple);var r=u.getValue(t);null!=r?(e._wrapperState.pendingUpdate=!1,a(e,Boolean(t.multiple),r)):n!==Boolean(t.multiple)&&(null!=t.defaultValue?a(e,Boolean(t.multiple),t.defaultValue):a(e,Boolean(t.multiple),t.multiple?[]:""))}};e.exports=m}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){this._rootNodeID&&p.updateWrapper(this)}function i(e){var t=this._currentElement.props,n=o.executeOnChange(t,e);return s.asap(r,this),n}var o=n(417),a=n(338),s=n(365),u=n(350),c=n(324),l=n(336),p={getNativeProps:function(e,n){null!=n.dangerouslySetInnerHTML?"production"!==t.env.NODE_ENV?c(!1,"`dangerouslySetInnerHTML` does not make sense on <textarea>."):c(!1):void 0;var r=u({},n,{defaultValue:void 0,value:void 0,children:e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return r},mountWrapper:function(e,n){"production"!==t.env.NODE_ENV&&o.checkPropTypes("textarea",n,e._currentElement._owner);var r=n.defaultValue,a=n.children;null!=a&&("production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?l(!1,"Use the `defaultValue` or `value` props instead of setting children on <textarea>."):void 0),null!=r?"production"!==t.env.NODE_ENV?c(!1,"If you supply `defaultValue` on a <textarea>, do not pass children."):c(!1):void 0,Array.isArray(a)&&(a.length<=1?void 0:"production"!==t.env.NODE_ENV?c(!1,"<textarea> can only have at most one child."):c(!1),a=a[0]),r=""+a),null==r&&(r="");var s=o.getValue(n);e._wrapperState={initialValue:""+(null!=s?s:r),onChange:i.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=o.getValue(t);null!=n&&a.updatePropertyByID(e._rootNodeID,"value",""+n)}};e.exports=p}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){g.push({parentID:e,parentNode:null,type:p.INSERT_MARKUP,markupIndex:y.push(t)-1,content:null,fromIndex:null,toIndex:n})}function i(e,t,n){g.push({parentID:e,parentNode:null,type:p.MOVE_EXISTING,markupIndex:null,content:null,fromIndex:t,toIndex:n})}function o(e,t){g.push({parentID:e,parentNode:null,type:p.REMOVE_NODE,markupIndex:null,content:null,fromIndex:t,toIndex:null})}function a(e,t){g.push({parentID:e,parentNode:null,type:p.SET_MARKUP,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function s(e,t){g.push({parentID:e,parentNode:null,type:p.TEXT_CONTENT,markupIndex:null,content:t,fromIndex:null,toIndex:null})}function u(){g.length&&(l.processChildrenUpdates(g,y),c())}function c(){g.length=0,y.length=0}var l=n(375),p=n(327),f=n(316),d=n(361),h=n(426),m=n(427),v=0,g=[],y=[],b={Mixin:{_reconcilerInstantiateChildren:function(e,n,r){if("production"!==t.env.NODE_ENV&&this._currentElement)try{return f.current=this._currentElement._owner,h.instantiateChildren(e,n,r)}finally{f.current=null}return h.instantiateChildren(e,n,r)},_reconcilerUpdateChildren:function(e,n,r,i){var o;if("production"!==t.env.NODE_ENV&&this._currentElement){try{f.current=this._currentElement._owner,o=m(n)}finally{f.current=null}return h.updateChildren(e,o,r,i)}return o=m(n),h.updateChildren(e,o,r,i)},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var i=[],o=0;for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],u=this._rootNodeID+a,c=d.mountComponent(s,u,t,n);s._mountIndex=o++,i.push(c)}return i},updateTextContent:function(e){v++;var t=!0;try{var n=this._renderedChildren;h.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChild(n[r]);this.setTextContent(e),t=!1}finally{v--,v||(t?c():u())}},updateMarkup:function(e){v++;var t=!0;try{var n=this._renderedChildren;h.unmountChildren(n);for(var r in n)n.hasOwnProperty(r)&&this._unmountChildByName(n[r],r);this.setMarkup(e),t=!1}finally{v--,v||(t?c():u())}},updateChildren:function(e,t,n){v++;var r=!0;try{this._updateChildren(e,t,n),r=!1}finally{v--,v||(r?c():u())}},_updateChildren:function(e,t,n){var r=this._renderedChildren,i=this._reconcilerUpdateChildren(r,e,t,n);if(this._renderedChildren=i,i||r){var o,a=0,s=0;for(o in i)if(i.hasOwnProperty(o)){var u=r&&r[o],c=i[o];u===c?(this.moveChild(u,s,a),a=Math.max(u._mountIndex,a),u._mountIndex=s):(u&&(a=Math.max(u._mountIndex,a),this._unmountChild(u)),this._mountChildByNameAtIndex(c,o,s,t,n)),s++}for(o in r)!r.hasOwnProperty(o)||i&&i.hasOwnProperty(o)||this._unmountChild(r[o])}},unmountChildren:function(){var e=this._renderedChildren;h.unmountChildren(e),this._renderedChildren=null},moveChild:function(e,t,n){e._mountIndex<n&&i(this._rootNodeID,e._mountIndex,t)},createChild:function(e,t){r(this._rootNodeID,t,e._mountIndex)},removeChild:function(e){o(this._rootNodeID,e._mountIndex)},setTextContent:function(e){s(this._rootNodeID,e)},setMarkup:function(e){a(this._rootNodeID,e)},_mountChildByNameAtIndex:function(e,t,n,r,i){var o=this._rootNodeID+t,a=d.mountComponent(e,o,r,i);e._mountIndex=n,this.createChild(e,a)},_unmountChild:function(e){this.removeChild(e),e._mountIndex=null}}};e.exports=b}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r){var i=void 0===e[r];"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?u(i,"flattenChildren(...): Encountered two children with the same key, `%s`. Child keys must be unique; when two children share a key, only the first child will be used.",r):void 0),null!=n&&i&&(e[r]=o(n,null))}var i=n(361),o=n(373),a=n(378),s=n(422),u=n(336),c={instantiateChildren:function(e){if(null==e)return null;var t={};return s(e,r,t),t},updateChildren:function(e,t,n,r){if(!t&&!e)return null;var s;for(s in t)if(t.hasOwnProperty(s)){var u=e&&e[s],c=u&&u._currentElement,l=t[s];if(null!=u&&a(c,l))i.receiveComponent(u,l,n,r),t[s]=u;else{u&&i.unmountComponent(u,s);var p=o(l,null);t[s]=p}}for(s in e)!e.hasOwnProperty(s)||t&&t.hasOwnProperty(s)||i.unmountComponent(e[s]);return t},unmountChildren:function(e){for(var t in e)if(e.hasOwnProperty(t)){var n=e[t];i.unmountComponent(n)}}};e.exports=c}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r){var i=e,o=void 0===i[r];"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?a(o,"flattenChildren(...): Encountered two children with the same key, `%s`. Child keys must be unique; when two children share a key, only the first child will be used.",r):void 0),o&&null!=n&&(i[r]=n)}function i(e){if(null==e)return e;var t={};return o(e,r,t),t}var o=n(422),a=n(336);e.exports=i}).call(t,n(8))},function(e){"use strict";function t(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;for(var o=n.bind(t),a=0;a<r.length;a++)if(!o(r[a])||e[r[a]]!==t[r[a]])return!1;return!0}var n=Object.prototype.hasOwnProperty;e.exports=t},function(e,t,n){"use strict";function r(e){var t=f.getID(e),n=p.getReactRootIDFromNodeID(t),r=f.findReactContainerForID(n),i=f.getFirstReactDOM(r);return i}function i(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function o(e){a(e)}function a(e){for(var t=f.getFirstReactDOM(m(e.nativeEvent))||window,n=t;n;)e.ancestors.push(n),n=r(n);for(var i=0;i<e.ancestors.length;i++){t=e.ancestors[i];var o=f.getID(t)||"";g._handleTopLevel(e.topLevelType,t,o,e.nativeEvent,m(e.nativeEvent))}}function s(e){var t=v(window);e(t)}var u=n(430),c=n(320),l=n(367),p=n(356),f=n(339),d=n(365),h=n(350),m=n(392),v=n(431);h(i.prototype,{destructor:function(){this.topLevelType=null,this.nativeEvent=null,this.ancestors.length=0}}),l.addPoolingTo(i,l.twoArgumentPooler);var g={_enabled:!0,_handleTopLevel:null,WINDOW_HANDLE:c.canUseDOM?window:null,setHandleTopLevel:function(e){g._handleTopLevel=e},setEnabled:function(e){g._enabled=!!e},isEnabled:function(){return g._enabled},trapBubbledEvent:function(e,t,n){var r=n;return r?u.listen(r,t,g.dispatchEvent.bind(null,e)):null},trapCapturedEvent:function(e,t,n){var r=n;return r?u.capture(r,t,g.dispatchEvent.bind(null,e)):null},monitorScrollValue:function(e){var t=s.bind(null,e);u.listen(window,"scroll",t)},dispatchEvent:function(e,t){if(g._enabled){var n=i.getPooled(e,t);try{d.batchedUpdates(o,n)}finally{i.release(n)}}}};e.exports=g},function(e,t,n){(function(t){"use strict";var r=n(326),i={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0},capture:function(e,n,i){return e.addEventListener?(e.addEventListener(n,i,!0),{remove:function(){e.removeEventListener(n,i,!0)}}):("production"!==t.env.NODE_ENV&&console.error("Attempted to listen to events during the capture phase on a browser that does not support the capture phase. Your application will not receive some events."),{remove:r})},registerDefault:function(){}};e.exports=i}).call(t,n(8))},function(e){"use strict";function t(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=t},function(e,t,n){"use strict";var r=n(334),i=n(342),o=n(375),a=n(433),s=n(379),u=n(340),c=n(380),l=n(329),p=n(357),f=n(365),d={Component:o.injection,Class:a.injection,DOMProperty:r.injection,EmptyComponent:s.injection,EventPluginHub:i.injection,EventEmitter:u.injection,NativeComponent:c.injection,Perf:l.injection,RootIndex:p.injection,Updates:f.injection};e.exports=d},function(e,t,n){(function(t){"use strict";function r(){O||(O=!0,"production"!==t.env.NODE_ENV?_(!1,"setProps(...) and replaceProps(...) are deprecated. Instead, call render again at the top level."):void 0)}function i(e,n,r){for(var i in n)n.hasOwnProperty(i)&&("production"!==t.env.NODE_ENV?_("function"==typeof n[i],"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e.displayName||"ReactClass",v[r],i):void 0)}function o(e,n){var r=T.hasOwnProperty(n)?T[n]:null;S.hasOwnProperty(n)&&(r!==N.OVERRIDE_BASE?"production"!==t.env.NODE_ENV?x(!1,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",n):x(!1):void 0),e.hasOwnProperty(n)&&(r!==N.DEFINE_MANY&&r!==N.DEFINE_MANY_MERGED?"production"!==t.env.NODE_ENV?x(!1,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n):x(!1):void 0)}function a(e,n){if(n){"function"==typeof n?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You're attempting to use a component class as a mixin. Instead, just use a regular object."):x(!1):void 0,h.isValidElement(n)?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object."):x(!1):void 0;var r=e.prototype;n.hasOwnProperty(C)&&P.mixins(e,n.mixins);for(var i in n)if(n.hasOwnProperty(i)&&i!==C){var a=n[i];if(o(r,i),P.hasOwnProperty(i))P[i](e,a);else{var s=T.hasOwnProperty(i),u=r.hasOwnProperty(i),p="function"==typeof a,f=p&&!s&&!u&&n.autobind!==!1;if(f)r.__reactAutoBindMap||(r.__reactAutoBindMap={}),r.__reactAutoBindMap[i]=a,r[i]=a;else if(u){var d=T[i];!s||d!==N.DEFINE_MANY_MERGED&&d!==N.DEFINE_MANY?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",d,i):x(!1):void 0,d===N.DEFINE_MANY_MERGED?r[i]=c(r[i],a):d===N.DEFINE_MANY&&(r[i]=l(r[i],a))}else r[i]=a,"production"!==t.env.NODE_ENV&&"function"==typeof a&&n.displayName&&(r[i].displayName=n.displayName+"_"+i)}}}}function s(e,n){if(n)for(var r in n){var i=n[r];if(n.hasOwnProperty(r)){var o=r in P;o?"production"!==t.env.NODE_ENV?x(!1,'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.',r):x(!1):void 0;var a=r in e;a?"production"!==t.env.NODE_ENV?x(!1,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",r):x(!1):void 0,e[r]=i}}}function u(e,n){e&&n&&"object"==typeof e&&"object"==typeof n?void 0:"production"!==t.env.NODE_ENV?x(!1,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."):x(!1);for(var r in n)n.hasOwnProperty(r)&&(void 0!==e[r]?"production"!==t.env.NODE_ENV?x(!1,"mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.",r):x(!1):void 0,e[r]=n[r]);return e}function c(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var i={};return u(i,n),u(i,r),i}}function l(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function p(e,n){var r=n.bind(e);if("production"!==t.env.NODE_ENV){r.__reactBoundContext=e,r.__reactBoundMethod=n,r.__reactBoundArguments=null;var i=e.constructor.displayName,o=r.bind;r.bind=function(a){for(var s=arguments.length,u=Array(s>1?s-1:0),c=1;s>c;c++)u[c-1]=arguments[c];if(a!==e&&null!==a)"production"!==t.env.NODE_ENV?_(!1,"bind(): React component methods may only be bound to the component instance. See %s",i):void 0;else if(!u.length)return"production"!==t.env.NODE_ENV?_(!1,"bind(): You are binding a component method to the component. React does this for you automatically in a high-performance way, so you can safely remove this call. See %s",i):void 0,r;var l=o.apply(r,arguments);return l.__reactBoundContext=e,l.__reactBoundMethod=n,l.__reactBoundArguments=u,l}}return r}function f(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=p(e,n)}}var d=n(434),h=n(353),m=n(376),v=n(377),g=n(435),y=n(350),b=n(369),x=n(324),w=n(328),E=n(390),_=n(336),C=E({mixins:null}),N=w({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),$=[],O=!1,T={mixins:N.DEFINE_MANY,statics:N.DEFINE_MANY,propTypes:N.DEFINE_MANY,contextTypes:N.DEFINE_MANY,childContextTypes:N.DEFINE_MANY,getDefaultProps:N.DEFINE_MANY_MERGED,getInitialState:N.DEFINE_MANY_MERGED,getChildContext:N.DEFINE_MANY_MERGED,render:N.DEFINE_ONCE,componentWillMount:N.DEFINE_MANY,componentDidMount:N.DEFINE_MANY,componentWillReceiveProps:N.DEFINE_MANY,shouldComponentUpdate:N.DEFINE_ONCE,componentWillUpdate:N.DEFINE_MANY,componentDidUpdate:N.DEFINE_MANY,componentWillUnmount:N.DEFINE_MANY,updateComponent:N.OVERRIDE_BASE},P={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)a(e,t[n])},childContextTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.childContext),e.childContextTypes=y({},e.childContextTypes,n)},contextTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.context),e.contextTypes=y({},e.contextTypes,n)},getDefaultProps:function(e,t){e.getDefaultProps=e.getDefaultProps?c(e.getDefaultProps,t):t},propTypes:function(e,n){"production"!==t.env.NODE_ENV&&i(e,n,m.prop),e.propTypes=y({},e.propTypes,n)},statics:function(e,t){s(e,t)},autobind:function(){}},S={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e),t&&this.updater.enqueueCallback(this,t)},isMounted:function(){return this.updater.isMounted(this)},setProps:function(e,n){"production"!==t.env.NODE_ENV&&r(),this.updater.enqueueSetProps(this,e),n&&this.updater.enqueueCallback(this,n)},replaceProps:function(e,n){"production"!==t.env.NODE_ENV&&r(),this.updater.enqueueReplaceProps(this,e),n&&this.updater.enqueueCallback(this,n)}},D=function(){};y(D.prototype,d.prototype,S);var R={createClass:function(e){var n=function i(e,n,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?_(this instanceof i,"Something is calling a React component directly. Use a factory or JSX instead. See: https://fb.me/react-legacyfactory"):void 0),this.__reactAutoBindMap&&f(this),this.props=e,this.context=n,this.refs=b,this.updater=r||g,this.state=null;var o=this.getInitialState?this.getInitialState():null;"production"!==t.env.NODE_ENV&&"undefined"==typeof o&&this.getInitialState._isMockFunction&&(o=null),"object"!=typeof o||Array.isArray(o)?"production"!==t.env.NODE_ENV?x(!1,"%s.getInitialState(): must return an object or null",i.displayName||"ReactCompositeComponent"):x(!1):void 0,this.state=o};n.prototype=new D,n.prototype.constructor=n,$.forEach(a.bind(null,n)),a(n,e),n.getDefaultProps&&(n.defaultProps=n.getDefaultProps()),"production"!==t.env.NODE_ENV&&(n.getDefaultProps&&(n.getDefaultProps.isReactClassApproved={}),n.prototype.getInitialState&&(n.prototype.getInitialState.isReactClassApproved={})),n.prototype.render?void 0:"production"!==t.env.NODE_ENV?x(!1,"createClass(...): Class specification must implement a `render` method."):x(!1),"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?_(!n.prototype.componentShouldUpdate,"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.",e.displayName||"A component"):void 0,"production"!==t.env.NODE_ENV?_(!n.prototype.componentWillRecieveProps,"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?",e.displayName||"A component"):void 0);for(var r in T)n.prototype[r]||(n.prototype[r]=null);return n},injection:{injectMixin:function(e){$.push(e)}}};e.exports=R}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}var i=n(435),o=n(354),a=n(369),s=n(324),u=n(336);if(r.prototype.isReactComponent={},r.prototype.setState=function(e,n){"object"!=typeof e&&"function"!=typeof e&&null!=e?"production"!==t.env.NODE_ENV?s(!1,"setState(...): takes an object of state variables to update or a function which returns an object of state variables."):s(!1):void 0,"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?u(null!=e,"setState(...): You passed an undefined or null state object; instead, use forceUpdate()."):void 0),this.updater.enqueueSetState(this,e),n&&this.updater.enqueueCallback(this,n)},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e)},"production"!==t.env.NODE_ENV){var c={getDOMNode:["getDOMNode","Use ReactDOM.findDOMNode(component) instead."],isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceProps:["replaceProps","Instead, call render again at the top level."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."],setProps:["setProps","Instead, call render again at the top level."]},l=function(e,n){o&&Object.defineProperty(r.prototype,e,{get:function(){return void("production"!==t.env.NODE_ENV?u(!1,"%s(...) is deprecated in plain JavaScript React classes. %s",n[0],n[1]):void 0)}})};for(var p in c)c.hasOwnProperty(p)&&l(p,c[p])}e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?i(!1,"%s(...): Can only update a mounted or mounting component. This usually means you called %s() on an unmounted component. This is a no-op. Please check the code for the %s component.",n,n,e.constructor&&e.constructor.displayName||""):void 0)}var i=n(336),o={isMounted:function(){return!1},enqueueCallback:function(){},enqueueForceUpdate:function(e){r(e,"forceUpdate")},enqueueReplaceState:function(e){r(e,"replaceState")},enqueueSetState:function(e){r(e,"setState")},enqueueSetProps:function(e){r(e,"setProps")},enqueueReplaceProps:function(e){r(e,"replaceProps")}};e.exports=o}).call(t,n(8))},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=!1,this.reactMountReady=i.getPooled(null),this.useCreateElement=!e&&s.useCreateElement}var i=n(366),o=n(367),a=n(340),s=n(352),u=n(437),c=n(368),l=n(350),p={initialize:u.getSelectionInformation,close:u.restoreSelection},f={initialize:function(){var e=a.isEnabled();return a.setEnabled(!1),e},close:function(e){a.setEnabled(e)}},d={initialize:function(){this.reactMountReady.reset()},close:function(){this.reactMountReady.notifyAll()}},h=[p,f,d],m={getTransactionWrappers:function(){return h},getReactMountReady:function(){return this.reactMountReady},destructor:function(){i.release(this.reactMountReady),this.reactMountReady=null}};l(r.prototype,c.Mixin,m),o.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";function r(e){return o(document.documentElement,e)}var i=n(438),o=n(370),a=n(406),s=n(440),u={hasSelectionCapabilities:function(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&"text"===e.type||"textarea"===t||"true"===e.contentEditable)},getSelectionInformation:function(){var e=s();return{focusedElem:e,selectionRange:u.hasSelectionCapabilities(e)?u.getSelection(e):null}},restoreSelection:function(e){var t=s(),n=e.focusedElem,i=e.selectionRange;t!==n&&r(n)&&(u.hasSelectionCapabilities(n)&&u.setSelection(n,i),a(n))},getSelection:function(e){var t;if("selectionStart"in e)t={start:e.selectionStart,end:e.selectionEnd};else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var n=document.selection.createRange();n.parentElement()===e&&(t={start:-n.moveStart("character",-e.value.length),end:-n.moveEnd("character",-e.value.length)})}else t=i.getOffsets(e);return t||{start:0,end:0}},setSelection:function(e,t){var n=t.start,r=t.end;if("undefined"==typeof r&&(r=n),"selectionStart"in e)e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length);else if(document.selection&&e.nodeName&&"input"===e.nodeName.toLowerCase()){var o=e.createTextRange();o.collapse(!0),o.moveStart("character",n),o.moveEnd("character",r-n),o.select()}else i.setOffsets(e,t)}};e.exports=u},function(e,t,n){"use strict";function r(e,t,n,r){return e===n&&t===r}function i(e){var t=document.selection,n=t.createRange(),r=n.text.length,i=n.duplicate();i.moveToElementText(e),i.setEndPoint("EndToStart",n);var o=i.text.length,a=o+r;return{start:o,end:a}}function o(e){var t=window.getSelection&&window.getSelection();if(!t||0===t.rangeCount)return null;var n=t.anchorNode,i=t.anchorOffset,o=t.focusNode,a=t.focusOffset,s=t.getRangeAt(0);try{s.startContainer.nodeType,s.endContainer.nodeType}catch(u){return null}var c=r(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset),l=c?0:s.toString().length,p=s.cloneRange();p.selectNodeContents(e),p.setEnd(s.startContainer,s.startOffset);var f=r(p.startContainer,p.startOffset,p.endContainer,p.endOffset),d=f?0:p.toString().length,h=d+l,m=document.createRange();m.setStart(n,i),m.setEnd(o,a);var v=m.collapsed;return{start:v?h:d,end:v?d:h}}function a(e,t){var n,r,i=document.selection.createRange().duplicate();"undefined"==typeof t.end?(n=t.start,r=n):t.start>t.end?(n=t.end,r=t.start):(n=t.start,r=t.end),i.moveToElementText(e),i.moveStart("character",n),i.setEndPoint("EndToStart",i),i.moveEnd("character",r-n),i.select()}function s(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,i=Math.min(t.start,r),o="undefined"==typeof t.end?i:Math.min(t.end,r);if(!n.extend&&i>o){var a=o;o=i,i=a}var s=c(e,i),u=c(e,o);if(s&&u){var p=document.createRange();p.setStart(s.node,s.offset),n.removeAllRanges(),i>o?(n.addRange(p),n.extend(u.node,u.offset)):(p.setEnd(u.node,u.offset),n.addRange(p))}}}var u=n(320),c=n(439),l=n(386),p=u.canUseDOM&&"selection"in document&&!("getSelection"in window),f={getOffsets:p?i:o,setOffsets:p?a:s};e.exports=f},function(e){"use strict";function t(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function n(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function r(e,r){for(var i=t(e),o=0,a=0;i;){if(3===i.nodeType){if(a=o+i.textContent.length,r>=o&&a>=r)return{node:i,offset:r-o};o=a}i=t(n(i))}}e.exports=r},function(e){"use strict";function t(){if("undefined"==typeof document)return null;try{return document.activeElement||document.body}catch(e){return document.body}}e.exports=t},function(e,t,n){"use strict";function r(e){if("selectionStart"in e&&u.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}function i(e,t){if(x||null==g||g!==l())return null;var n=r(g);if(!b||!d(b,n)){b=n;var i=c.getPooled(v.select,y,e,t);return i.type="select",i.target=g,a.accumulateTwoPhaseDispatches(i),i}return null}var o=n(341),a=n(384),s=n(320),u=n(437),c=n(388),l=n(440),p=n(393),f=n(390),d=n(428),h=o.topLevelTypes,m=s.canUseDOM&&"documentMode"in document&&document.documentMode<=11,v={select:{phasedRegistrationNames:{bubbled:f({onSelect:null}),captured:f({onSelectCapture:null})},dependencies:[h.topBlur,h.topContextMenu,h.topFocus,h.topKeyDown,h.topMouseDown,h.topMouseUp,h.topSelectionChange]}},g=null,y=null,b=null,x=!1,w=!1,E=f({onSelect:null}),_={eventTypes:v,extractEvents:function(e,t,n,r,o){if(!w)return null;switch(e){case h.topFocus:(p(t)||"true"===t.contentEditable)&&(g=t,y=n,b=null);break;case h.topBlur:g=null,y=null,b=null;break;case h.topMouseDown:x=!0;break;case h.topContextMenu:case h.topMouseUp:return x=!1,i(r,o);case h.topSelectionChange:if(m)break;case h.topKeyDown:case h.topKeyUp:return i(r,o)}return null},didPutListener:function(e,t){t===E&&(w=!0)}};e.exports=_},function(e){"use strict";var t=Math.pow(2,53),n={createReactRootIndex:function(){return Math.ceil(Math.random()*t)}};e.exports=n},function(e,t,n){(function(t){"use strict";var r=n(341),i=n(430),o=n(384),a=n(339),s=n(444),u=n(388),c=n(445),l=n(446),p=n(397),f=n(449),d=n(450),h=n(398),m=n(451),v=n(326),g=n(447),y=n(324),b=n(390),x=r.topLevelTypes,w={abort:{phasedRegistrationNames:{bubbled:b({onAbort:!0}),captured:b({onAbortCapture:!0})}},blur:{phasedRegistrationNames:{bubbled:b({onBlur:!0}),captured:b({onBlurCapture:!0})}},canPlay:{phasedRegistrationNames:{bubbled:b({onCanPlay:!0}),captured:b({onCanPlayCapture:!0})}},canPlayThrough:{phasedRegistrationNames:{bubbled:b({onCanPlayThrough:!0}),captured:b({onCanPlayThroughCapture:!0})}},click:{phasedRegistrationNames:{bubbled:b({onClick:!0}),captured:b({onClickCapture:!0})}},contextMenu:{phasedRegistrationNames:{bubbled:b({onContextMenu:!0}),captured:b({onContextMenuCapture:!0})}},copy:{phasedRegistrationNames:{bubbled:b({onCopy:!0}),captured:b({onCopyCapture:!0})}},cut:{phasedRegistrationNames:{bubbled:b({onCut:!0}),captured:b({onCutCapture:!0})}},doubleClick:{phasedRegistrationNames:{bubbled:b({onDoubleClick:!0}),captured:b({onDoubleClickCapture:!0})}},drag:{phasedRegistrationNames:{bubbled:b({onDrag:!0}),captured:b({onDragCapture:!0})}},dragEnd:{phasedRegistrationNames:{bubbled:b({onDragEnd:!0}),captured:b({onDragEndCapture:!0})}},dragEnter:{phasedRegistrationNames:{bubbled:b({onDragEnter:!0}),captured:b({onDragEnterCapture:!0})}},dragExit:{phasedRegistrationNames:{bubbled:b({onDragExit:!0}),captured:b({onDragExitCapture:!0})}},dragLeave:{phasedRegistrationNames:{bubbled:b({onDragLeave:!0}),captured:b({onDragLeaveCapture:!0})}},dragOver:{phasedRegistrationNames:{bubbled:b({onDragOver:!0}),captured:b({onDragOverCapture:!0})}},dragStart:{phasedRegistrationNames:{bubbled:b({onDragStart:!0}),captured:b({onDragStartCapture:!0})}},drop:{phasedRegistrationNames:{bubbled:b({onDrop:!0}),captured:b({onDropCapture:!0})}},durationChange:{phasedRegistrationNames:{bubbled:b({onDurationChange:!0}),captured:b({onDurationChangeCapture:!0})}},emptied:{phasedRegistrationNames:{bubbled:b({onEmptied:!0}),captured:b({onEmptiedCapture:!0})}},encrypted:{phasedRegistrationNames:{bubbled:b({onEncrypted:!0}),captured:b({onEncryptedCapture:!0})}},ended:{phasedRegistrationNames:{bubbled:b({onEnded:!0}),captured:b({onEndedCapture:!0})}},error:{
17
+ phasedRegistrationNames:{bubbled:b({onError:!0}),captured:b({onErrorCapture:!0})}},focus:{phasedRegistrationNames:{bubbled:b({onFocus:!0}),captured:b({onFocusCapture:!0})}},input:{phasedRegistrationNames:{bubbled:b({onInput:!0}),captured:b({onInputCapture:!0})}},keyDown:{phasedRegistrationNames:{bubbled:b({onKeyDown:!0}),captured:b({onKeyDownCapture:!0})}},keyPress:{phasedRegistrationNames:{bubbled:b({onKeyPress:!0}),captured:b({onKeyPressCapture:!0})}},keyUp:{phasedRegistrationNames:{bubbled:b({onKeyUp:!0}),captured:b({onKeyUpCapture:!0})}},load:{phasedRegistrationNames:{bubbled:b({onLoad:!0}),captured:b({onLoadCapture:!0})}},loadedData:{phasedRegistrationNames:{bubbled:b({onLoadedData:!0}),captured:b({onLoadedDataCapture:!0})}},loadedMetadata:{phasedRegistrationNames:{bubbled:b({onLoadedMetadata:!0}),captured:b({onLoadedMetadataCapture:!0})}},loadStart:{phasedRegistrationNames:{bubbled:b({onLoadStart:!0}),captured:b({onLoadStartCapture:!0})}},mouseDown:{phasedRegistrationNames:{bubbled:b({onMouseDown:!0}),captured:b({onMouseDownCapture:!0})}},mouseMove:{phasedRegistrationNames:{bubbled:b({onMouseMove:!0}),captured:b({onMouseMoveCapture:!0})}},mouseOut:{phasedRegistrationNames:{bubbled:b({onMouseOut:!0}),captured:b({onMouseOutCapture:!0})}},mouseOver:{phasedRegistrationNames:{bubbled:b({onMouseOver:!0}),captured:b({onMouseOverCapture:!0})}},mouseUp:{phasedRegistrationNames:{bubbled:b({onMouseUp:!0}),captured:b({onMouseUpCapture:!0})}},paste:{phasedRegistrationNames:{bubbled:b({onPaste:!0}),captured:b({onPasteCapture:!0})}},pause:{phasedRegistrationNames:{bubbled:b({onPause:!0}),captured:b({onPauseCapture:!0})}},play:{phasedRegistrationNames:{bubbled:b({onPlay:!0}),captured:b({onPlayCapture:!0})}},playing:{phasedRegistrationNames:{bubbled:b({onPlaying:!0}),captured:b({onPlayingCapture:!0})}},progress:{phasedRegistrationNames:{bubbled:b({onProgress:!0}),captured:b({onProgressCapture:!0})}},rateChange:{phasedRegistrationNames:{bubbled:b({onRateChange:!0}),captured:b({onRateChangeCapture:!0})}},reset:{phasedRegistrationNames:{bubbled:b({onReset:!0}),captured:b({onResetCapture:!0})}},scroll:{phasedRegistrationNames:{bubbled:b({onScroll:!0}),captured:b({onScrollCapture:!0})}},seeked:{phasedRegistrationNames:{bubbled:b({onSeeked:!0}),captured:b({onSeekedCapture:!0})}},seeking:{phasedRegistrationNames:{bubbled:b({onSeeking:!0}),captured:b({onSeekingCapture:!0})}},stalled:{phasedRegistrationNames:{bubbled:b({onStalled:!0}),captured:b({onStalledCapture:!0})}},submit:{phasedRegistrationNames:{bubbled:b({onSubmit:!0}),captured:b({onSubmitCapture:!0})}},suspend:{phasedRegistrationNames:{bubbled:b({onSuspend:!0}),captured:b({onSuspendCapture:!0})}},timeUpdate:{phasedRegistrationNames:{bubbled:b({onTimeUpdate:!0}),captured:b({onTimeUpdateCapture:!0})}},touchCancel:{phasedRegistrationNames:{bubbled:b({onTouchCancel:!0}),captured:b({onTouchCancelCapture:!0})}},touchEnd:{phasedRegistrationNames:{bubbled:b({onTouchEnd:!0}),captured:b({onTouchEndCapture:!0})}},touchMove:{phasedRegistrationNames:{bubbled:b({onTouchMove:!0}),captured:b({onTouchMoveCapture:!0})}},touchStart:{phasedRegistrationNames:{bubbled:b({onTouchStart:!0}),captured:b({onTouchStartCapture:!0})}},volumeChange:{phasedRegistrationNames:{bubbled:b({onVolumeChange:!0}),captured:b({onVolumeChangeCapture:!0})}},waiting:{phasedRegistrationNames:{bubbled:b({onWaiting:!0}),captured:b({onWaitingCapture:!0})}},wheel:{phasedRegistrationNames:{bubbled:b({onWheel:!0}),captured:b({onWheelCapture:!0})}}},E={topAbort:w.abort,topBlur:w.blur,topCanPlay:w.canPlay,topCanPlayThrough:w.canPlayThrough,topClick:w.click,topContextMenu:w.contextMenu,topCopy:w.copy,topCut:w.cut,topDoubleClick:w.doubleClick,topDrag:w.drag,topDragEnd:w.dragEnd,topDragEnter:w.dragEnter,topDragExit:w.dragExit,topDragLeave:w.dragLeave,topDragOver:w.dragOver,topDragStart:w.dragStart,topDrop:w.drop,topDurationChange:w.durationChange,topEmptied:w.emptied,topEncrypted:w.encrypted,topEnded:w.ended,topError:w.error,topFocus:w.focus,topInput:w.input,topKeyDown:w.keyDown,topKeyPress:w.keyPress,topKeyUp:w.keyUp,topLoad:w.load,topLoadedData:w.loadedData,topLoadedMetadata:w.loadedMetadata,topLoadStart:w.loadStart,topMouseDown:w.mouseDown,topMouseMove:w.mouseMove,topMouseOut:w.mouseOut,topMouseOver:w.mouseOver,topMouseUp:w.mouseUp,topPaste:w.paste,topPause:w.pause,topPlay:w.play,topPlaying:w.playing,topProgress:w.progress,topRateChange:w.rateChange,topReset:w.reset,topScroll:w.scroll,topSeeked:w.seeked,topSeeking:w.seeking,topStalled:w.stalled,topSubmit:w.submit,topSuspend:w.suspend,topTimeUpdate:w.timeUpdate,topTouchCancel:w.touchCancel,topTouchEnd:w.touchEnd,topTouchMove:w.touchMove,topTouchStart:w.touchStart,topVolumeChange:w.volumeChange,topWaiting:w.waiting,topWheel:w.wheel};for(var _ in E)E[_].dependencies=[_];var C=b({onClick:null}),N={},$={eventTypes:w,extractEvents:function(e,n,r,i,a){var v=E[e];if(!v)return null;var b;switch(e){case x.topAbort:case x.topCanPlay:case x.topCanPlayThrough:case x.topDurationChange:case x.topEmptied:case x.topEncrypted:case x.topEnded:case x.topError:case x.topInput:case x.topLoad:case x.topLoadedData:case x.topLoadedMetadata:case x.topLoadStart:case x.topPause:case x.topPlay:case x.topPlaying:case x.topProgress:case x.topRateChange:case x.topReset:case x.topSeeked:case x.topSeeking:case x.topStalled:case x.topSubmit:case x.topSuspend:case x.topTimeUpdate:case x.topVolumeChange:case x.topWaiting:b=u;break;case x.topKeyPress:if(0===g(i))return null;case x.topKeyDown:case x.topKeyUp:b=l;break;case x.topBlur:case x.topFocus:b=c;break;case x.topClick:if(2===i.button)return null;case x.topContextMenu:case x.topDoubleClick:case x.topMouseDown:case x.topMouseMove:case x.topMouseOut:case x.topMouseOver:case x.topMouseUp:b=p;break;case x.topDrag:case x.topDragEnd:case x.topDragEnter:case x.topDragExit:case x.topDragLeave:case x.topDragOver:case x.topDragStart:case x.topDrop:b=f;break;case x.topTouchCancel:case x.topTouchEnd:case x.topTouchMove:case x.topTouchStart:b=d;break;case x.topScroll:b=h;break;case x.topWheel:b=m;break;case x.topCopy:case x.topCut:case x.topPaste:b=s}b?void 0:"production"!==t.env.NODE_ENV?y(!1,"SimpleEventPlugin: Unhandled event type, `%s`.",e):y(!1);var w=b.getPooled(v,r,i,a);return o.accumulateTwoPhaseDispatches(w),w},didPutListener:function(e,t){if(t===C){var n=a.getNode(e);N[e]||(N[e]=i.listen(n,"click",v))}},willDeleteListener:function(e,t){t===C&&(N[e].remove(),delete N[e])}};e.exports=$}).call(t,n(8))},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(388),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o={relatedTarget:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(447),a=n(448),s=n(399),u={key:a,location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:s,charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};i.augmentClass(r,u),e.exports=r},function(e){"use strict";function t(e){var t,n=e.keyCode;return"charCode"in e?(t=e.charCode,0===t&&13===n&&(t=13)):t=n,t>=32||13===t?t:0}e.exports=t},function(e,t,n){"use strict";function r(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=i(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?a[e.keyCode]||"Unidentified":""}var i=n(447),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},a={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(397),o={dataTransfer:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(398),o=n(399),a={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:o};i.augmentClass(r,a),e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){i.call(this,e,t,n,r)}var i=n(397),o={deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null};i.augmentClass(r,o),e.exports=r},function(e,t,n){"use strict";var r=n(334),i=r.injection.MUST_USE_ATTRIBUTE,o={xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace"},a={Properties:{clipPath:i,cx:i,cy:i,d:i,dx:i,dy:i,fill:i,fillOpacity:i,fontFamily:i,fontSize:i,fx:i,fy:i,gradientTransform:i,gradientUnits:i,markerEnd:i,markerMid:i,markerStart:i,offset:i,opacity:i,patternContentUnits:i,patternUnits:i,points:i,preserveAspectRatio:i,r:i,rx:i,ry:i,spreadMethod:i,stopColor:i,stopOpacity:i,stroke:i,strokeDasharray:i,strokeLinecap:i,strokeOpacity:i,strokeWidth:i,textAnchor:i,transform:i,version:i,viewBox:i,x1:i,x2:i,x:i,xlinkActuate:i,xlinkArcrole:i,xlinkHref:i,xlinkRole:i,xlinkShow:i,xlinkTitle:i,xlinkType:i,xmlBase:i,xmlLang:i,xmlSpace:i,y1:i,y2:i,y:i},DOMAttributeNamespaces:{xlinkActuate:o.xlink,xlinkArcrole:o.xlink,xlinkHref:o.xlink,xlinkRole:o.xlink,xlinkShow:o.xlink,xlinkTitle:o.xlink,xlinkType:o.xlink,xmlBase:o.xml,xmlLang:o.xml,xmlSpace:o.xml},DOMAttributeNames:{clipPath:"clip-path",fillOpacity:"fill-opacity",fontFamily:"font-family",fontSize:"font-size",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",patternContentUnits:"patternContentUnits",patternUnits:"patternUnits",preserveAspectRatio:"preserveAspectRatio",spreadMethod:"spreadMethod",stopColor:"stop-color",stopOpacity:"stop-opacity",strokeDasharray:"stroke-dasharray",strokeLinecap:"stroke-linecap",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",textAnchor:"text-anchor",viewBox:"viewBox",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlLang:"xml:lang",xmlSpace:"xml:space"}};e.exports=a},function(e,t,n){"use strict";function r(e){return Math.floor(100*e)/100}function i(e,t,n){e[t]=(e[t]||0)+n}var o=n(334),a=n(454),s=n(339),u=n(329),c=n(455),l={_allMeasurements:[],_mountStack:[0],_injected:!1,start:function(){l._injected||u.injection.injectMeasure(l.measure),l._allMeasurements.length=0,u.enableMeasure=!0},stop:function(){u.enableMeasure=!1},getLastMeasurements:function(){return l._allMeasurements},printExclusive:function(e){e=e||l._allMeasurements;var t=a.getExclusiveSummary(e);console.table(t.map(function(e){return{"Component class name":e.componentName,"Total inclusive time (ms)":r(e.inclusive),"Exclusive mount time (ms)":r(e.exclusive),"Exclusive render time (ms)":r(e.render),"Mount time per instance (ms)":r(e.exclusive/e.count),"Render time per instance (ms)":r(e.render/e.count),Instances:e.count}}))},printInclusive:function(e){e=e||l._allMeasurements;var t=a.getInclusiveSummary(e);console.table(t.map(function(e){return{"Owner > component":e.componentName,"Inclusive time (ms)":r(e.time),Instances:e.count}})),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},getMeasurementsSummaryMap:function(e){var t=a.getInclusiveSummary(e,!0);return t.map(function(e){return{"Owner > component":e.componentName,"Wasted time (ms)":e.time,Instances:e.count}})},printWasted:function(e){e=e||l._allMeasurements,console.table(l.getMeasurementsSummaryMap(e)),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},printDOM:function(e){e=e||l._allMeasurements;var t=a.getDOMSummary(e);console.table(t.map(function(e){var t={};return t[o.ID_ATTRIBUTE_NAME]=e.id,t.type=e.type,t.args=JSON.stringify(e.args),t})),console.log("Total time:",a.getTotalTime(e).toFixed(2)+" ms")},_recordWrite:function(e,t,n,r){var i=l._allMeasurements[l._allMeasurements.length-1].writes;i[e]=i[e]||[],i[e].push({type:t,time:n,args:r})},measure:function(e,t,n){return function(){for(var r=arguments.length,o=Array(r),a=0;r>a;a++)o[a]=arguments[a];var u,p,f;if("_renderNewRootComponent"===t||"flushBatchedUpdates"===t)return l._allMeasurements.push({exclusive:{},inclusive:{},render:{},counts:{},writes:{},displayNames:{},totalTime:0,created:{}}),f=c(),p=n.apply(this,o),l._allMeasurements[l._allMeasurements.length-1].totalTime=c()-f,p;if("_mountImageIntoNode"===t||"ReactBrowserEventEmitter"===e||"ReactDOMIDOperations"===e||"CSSPropertyOperations"===e||"DOMChildrenOperations"===e||"DOMPropertyOperations"===e){if(f=c(),p=n.apply(this,o),u=c()-f,"_mountImageIntoNode"===t){var d=s.getID(o[1]);l._recordWrite(d,t,u,o[0])}else if("dangerouslyProcessChildrenUpdates"===t)o[0].forEach(function(e){var t={};null!==e.fromIndex&&(t.fromIndex=e.fromIndex),null!==e.toIndex&&(t.toIndex=e.toIndex),null!==e.textContent&&(t.textContent=e.textContent),null!==e.markupIndex&&(t.markup=o[1][e.markupIndex]),l._recordWrite(e.parentID,e.type,u,t)});else{var h=o[0];"object"==typeof h&&(h=s.getID(o[0])),l._recordWrite(h,t,u,Array.prototype.slice.call(o,1))}return p}if("ReactCompositeComponent"!==e||"mountComponent"!==t&&"updateComponent"!==t&&"_renderValidatedComponent"!==t)return n.apply(this,o);if(this._currentElement.type===s.TopLevelWrapper)return n.apply(this,o);var m="mountComponent"===t?o[0]:this._rootNodeID,v="_renderValidatedComponent"===t,g="mountComponent"===t,y=l._mountStack,b=l._allMeasurements[l._allMeasurements.length-1];if(v?i(b.counts,m,1):g&&(b.created[m]=!0,y.push(0)),f=c(),p=n.apply(this,o),u=c()-f,v)i(b.render,m,u);else if(g){var x=y.pop();y[y.length-1]+=u,i(b.exclusive,m,u-x),i(b.inclusive,m,u)}else i(b.inclusive,m,u);return b.displayNames[m]={current:this.getName(),owner:this._currentElement._owner?this._currentElement._owner.getName():"<root>"},p}}};e.exports=l},function(e,t,n){"use strict";function r(e){for(var t=0,n=0;n<e.length;n++){var r=e[n];t+=r.totalTime}return t}function i(e){var t=[];return e.forEach(function(e){Object.keys(e.writes).forEach(function(n){e.writes[n].forEach(function(e){t.push({id:n,type:l[e.type]||e.type,args:e.args})})})}),t}function o(e){for(var t,n={},r=0;r<e.length;r++){var i=e[r],o=u({},i.exclusive,i.inclusive);for(var a in o)t=i.displayNames[a].current,n[t]=n[t]||{componentName:t,inclusive:0,exclusive:0,render:0,count:0},i.render[a]&&(n[t].render+=i.render[a]),i.exclusive[a]&&(n[t].exclusive+=i.exclusive[a]),i.inclusive[a]&&(n[t].inclusive+=i.inclusive[a]),i.counts[a]&&(n[t].count+=i.counts[a])}var s=[];for(t in n)n[t].exclusive>=c&&s.push(n[t]);return s.sort(function(e,t){return t.exclusive-e.exclusive}),s}function a(e,t){for(var n,r={},i=0;i<e.length;i++){var o,a=e[i],l=u({},a.exclusive,a.inclusive);t&&(o=s(a));for(var p in l)if(!t||o[p]){var f=a.displayNames[p];n=f.owner+" > "+f.current,r[n]=r[n]||{componentName:n,time:0,count:0},a.inclusive[p]&&(r[n].time+=a.inclusive[p]),a.counts[p]&&(r[n].count+=a.counts[p])}}var d=[];for(n in r)r[n].time>=c&&d.push(r[n]);return d.sort(function(e,t){return t.time-e.time}),d}function s(e){var t={},n=Object.keys(e.writes),r=u({},e.exclusive,e.inclusive);for(var i in r){for(var o=!1,a=0;a<n.length;a++)if(0===n[a].indexOf(i)){o=!0;break}e.created[i]&&(o=!0),!o&&e.counts[i]>0&&(t[i]=!0)}return t}var u=n(350),c=1.2,l={_mountImageIntoNode:"set innerHTML",INSERT_MARKUP:"set innerHTML",MOVE_EXISTING:"move",REMOVE_NODE:"remove",SET_MARKUP:"set innerHTML",TEXT_CONTENT:"set textContent",setValueForProperty:"update attribute",setValueForAttribute:"update attribute",deleteValueForProperty:"remove attribute",dangerouslyReplaceNodeWithMarkupByID:"replace"},p={getExclusiveSummary:o,getInclusiveSummary:a,getDOMSummary:i,getTotalTime:r};e.exports=p},function(e,t,n){"use strict";var r=n(456),i=r;i&&i.now||(i=Date);var o=i.now.bind(i);e.exports=o},function(e,t,n){"use strict";var r,i=n(320);i.canUseDOM&&(r=window.performance||window.msPerformance||window.webkitPerformance),e.exports=r||{}},function(e){"use strict";e.exports="0.14.3"},function(e,t,n){"use strict";var r=n(339);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";var r=n(382),i=n(460),o=n(457);r.inject();var a={renderToString:i.renderToString,renderToStaticMarkup:i.renderToStaticMarkup,version:o};e.exports=a},function(e,t,n){(function(t){"use strict";function r(e){a.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?h(!1,"renderToString(): You must pass a valid ReactElement."):h(!1);var n;try{p.injection.injectBatchingStrategy(c);var r=s.createReactRootID();return n=l.getPooled(!1),n.perform(function(){var t=d(e,null),i=t.mountComponent(r,n,f);return u.addChecksumToMarkup(i)},null)}finally{l.release(n),p.injection.injectBatchingStrategy(o)}}function i(e){a.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?h(!1,"renderToStaticMarkup(): You must pass a valid ReactElement."):h(!1);var n;try{p.injection.injectBatchingStrategy(c);var r=s.createReactRootID();return n=l.getPooled(!0),n.perform(function(){var t=d(e,null);return t.mountComponent(r,n,f)},null)}finally{l.release(n),p.injection.injectBatchingStrategy(o)}}var o=n(403),a=n(353),s=n(356),u=n(359),c=n(461),l=n(462),p=n(365),f=n(369),d=n(373),h=n(324);e.exports={renderToString:r,renderToStaticMarkup:i}}).call(t,n(8))},function(e){"use strict";var t={isBatchingUpdates:!1,batchedUpdates:function(){}};e.exports=t},function(e,t,n){"use strict";function r(e){this.reinitializeTransaction(),this.renderToStaticMarkup=e,this.reactMountReady=o.getPooled(null),this.useCreateElement=!1}var i=n(367),o=n(366),a=n(368),s=n(350),u=n(326),c={initialize:function(){this.reactMountReady.reset()},close:u},l=[c],p={getTransactionWrappers:function(){return l},getReactMountReady:function(){return this.reactMountReady},destructor:function(){o.release(this.reactMountReady),this.reactMountReady=null}};s(r.prototype,a.Mixin,p),i.addPoolingTo(r),e.exports=r},function(e,t,n){(function(t){"use strict";var r=n(421),i=n(434),o=n(433),a=n(464),s=n(353),u=n(465),c=n(418),l=n(457),p=n(350),f=n(467),d=s.createElement,h=s.createFactory,m=s.cloneElement;"production"!==t.env.NODE_ENV&&(d=u.createElement,h=u.createFactory,m=u.cloneElement);var v={Children:{map:r.map,forEach:r.forEach,count:r.count,toArray:r.toArray,only:f},Component:i,createElement:d,cloneElement:m,isValidElement:s.isValidElement,PropTypes:c,createClass:o.createClass,createFactory:h,createMixin:function(e){return e},DOM:a,version:l,__spread:p};e.exports=v}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e){return"production"!==t.env.NODE_ENV?o.createFactory(e):i.createFactory(e)}var i=n(353),o=n(465),a=n(466),s=a({a:"a",abbr:"abbr",address:"address",area:"area",article:"article",aside:"aside",audio:"audio",b:"b",base:"base",bdi:"bdi",bdo:"bdo",big:"big",blockquote:"blockquote",body:"body",br:"br",button:"button",canvas:"canvas",caption:"caption",cite:"cite",code:"code",col:"col",colgroup:"colgroup",data:"data",datalist:"datalist",dd:"dd",del:"del",details:"details",dfn:"dfn",dialog:"dialog",div:"div",dl:"dl",dt:"dt",em:"em",embed:"embed",fieldset:"fieldset",figcaption:"figcaption",figure:"figure",footer:"footer",form:"form",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",head:"head",header:"header",hgroup:"hgroup",hr:"hr",html:"html",i:"i",iframe:"iframe",img:"img",input:"input",ins:"ins",kbd:"kbd",keygen:"keygen",label:"label",legend:"legend",li:"li",link:"link",main:"main",map:"map",mark:"mark",menu:"menu",menuitem:"menuitem",meta:"meta",meter:"meter",nav:"nav",noscript:"noscript",object:"object",ol:"ol",optgroup:"optgroup",option:"option",output:"output",p:"p",param:"param",picture:"picture",pre:"pre",progress:"progress",q:"q",rp:"rp",rt:"rt",ruby:"ruby",s:"s",samp:"samp",script:"script",section:"section",select:"select",small:"small",source:"source",span:"span",strong:"strong",style:"style",sub:"sub",summary:"summary",sup:"sup",table:"table",tbody:"tbody",td:"td",textarea:"textarea",tfoot:"tfoot",th:"th",thead:"thead",time:"time",title:"title",tr:"tr",track:"track",u:"u",ul:"ul","var":"var",video:"video",wbr:"wbr",circle:"circle",clipPath:"clipPath",defs:"defs",ellipse:"ellipse",g:"g",image:"image",line:"line",linearGradient:"linearGradient",mask:"mask",path:"path",pattern:"pattern",polygon:"polygon",polyline:"polyline",radialGradient:"radialGradient",rect:"rect",stop:"stop",svg:"svg",text:"text",tspan:"tspan"},r);e.exports=s}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(){if(f.current){var e=f.current.getName();if(e)return" Check the render method of `"+e+"`."}return""}function i(e,n){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var r=o("uniqueKey",e,n);null!==r&&("production"!==t.env.NODE_ENV?v(!1,'Each child in an array or iterator should have a unique "key" prop.%s%s%s',r.parentOrOwner||"",r.childOwner||"",r.url||""):void 0)}}function o(e,t,n){var i=r();if(!i){var o="string"==typeof n?n:n.displayName||n.name;o&&(i=" Check the top-level render call using <"+o+">.")}var a=g[e]||(g[e]={});if(a[i])return null;a[i]=!0;var s={parentOrOwner:i,url:" See https://fb.me/react-warning-keys for more information.",childOwner:null};return t&&t._owner&&t._owner!==f.current&&(s.childOwner=" It was passed a child from "+t._owner.getName()+"."),s}function a(e,t){if("object"==typeof e)if(Array.isArray(e))for(var n=0;n<e.length;n++){var r=e[n];c.isValidElement(r)&&i(r,t)}else if(c.isValidElement(e))e._store&&(e._store.validated=!0);else if(e){var o=h(e);if(o&&o!==e.entries)for(var a,s=o.call(e);!(a=s.next()).done;)c.isValidElement(a.value)&&i(a.value,t)}}function s(e,n,i,o){for(var a in n)if(n.hasOwnProperty(a)){var s;try{"function"!=typeof n[a]?"production"!==t.env.NODE_ENV?m(!1,"%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.",e||"React class",p[o],a):m(!1):void 0,s=n[a](i,a,e,o)}catch(u){s=u}if("production"!==t.env.NODE_ENV?v(!s||s instanceof Error,"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",e||"React class",p[o],a,typeof s):void 0,s instanceof Error&&!(s.message in y)){y[s.message]=!0;var c=r();"production"!==t.env.NODE_ENV?v(!1,"Failed propType: %s%s",s.message,c):void 0}}}function u(e){var n=e.type;if("function"==typeof n){var r=n.displayName||n.name;n.propTypes&&s(r,n.propTypes,e.props,l.prop),"function"==typeof n.getDefaultProps&&("production"!==t.env.NODE_ENV?v(n.getDefaultProps.isReactClassApproved,"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead."):void 0)}}var c=n(353),l=n(376),p=n(377),f=n(316),d=n(354),h=n(419),m=n(324),v=n(336),g={},y={},b={createElement:function(e){var n="string"==typeof e||"function"==typeof e;"production"!==t.env.NODE_ENV?v(n,"React.createElement: type should not be null, undefined, boolean, or number. It should be a string (for DOM elements) or a ReactClass (for composite components).%s",r()):void 0;var i=c.createElement.apply(this,arguments);if(null==i)return i;if(n)for(var o=2;o<arguments.length;o++)a(arguments[o],e);return u(i),i},createFactory:function(e){var n=b.createElement.bind(null,e);return n.type=e,"production"!==t.env.NODE_ENV&&d&&Object.defineProperty(n,"type",{enumerable:!1,get:function(){return"production"!==t.env.NODE_ENV?v(!1,"Factory.type is deprecated. Access the class directly before passing it to createFactory."):void 0,Object.defineProperty(this,"type",{value:e}),e}}),n},cloneElement:function(){for(var e=c.cloneElement.apply(this,arguments),t=2;t<arguments.length;t++)a(arguments[t],e.type);return u(e),e}};e.exports=b}).call(t,n(8))},function(e){"use strict";function t(e,t,r){if(!e)return null;var i={};for(var o in e)n.call(e,o)&&(i[o]=t.call(r,e[o],o,e));return i}var n=Object.prototype.hasOwnProperty;e.exports=t},function(e,t,n){(function(t){"use strict";function r(e){return i.isValidElement(e)?void 0:"production"!==t.env.NODE_ENV?o(!1,"onlyChild must be passed a children with exactly one child."):o(!1),e}var i=n(353),o=n(324);e.exports=r}).call(t,n(8))},function(e,t,n){(function(t){"use strict";function r(e,n,r,a,s){var u=!1;if("production"!==t.env.NODE_ENV){var c=function(){return"production"!==t.env.NODE_ENV?o(u,"React.%s is deprecated. Please use %s.%s from require('%s') instead.",e,n,e,r):void 0,u=!0,s.apply(a,arguments)};return i(c,s)}return s}var i=n(350),o=n(336);e.exports=r}).call(t,n(8))},function(e,t,n){"use strict";e.exports=n(315)},function(e,t,n){"use strict";function r(e){var t="string"==typeof e,n=void 0;if(n=t?document.querySelector(e):e,!i(n)){var r="Container must be `string` or `HTMLElement`.";throw t&&(r+=" Unable to find "+e),new Error(r)}return n}function i(e){return e instanceof HTMLElement||!!e&&e.nodeType>0}function o(e){var t=1===e.button;return t||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function a(e){return function(t,n){return t||n?t&&!n?e+"--"+t:t&&n?e+"--"+t+"__"+n:!t&&n?e+"__"+n:void 0:e}}function s(e){var t=e.transformData,n=e.defaultTemplates,r=e.templates,i=e.templatesConfig,o=u(n,r);return d({transformData:t,templatesConfig:i},o)}function u(e,t){return h(e,function(e,n,r){var i=t&&void 0!==t[r]&&t[r]!==n;return i?(e.templates[r]=t[r],e.useCustomCompileOptions[r]=!0):(e.templates[r]=n,e.useCustomCompileOptions[r]=!1),e},{templates:{},useCustomCompileOptions:{}})}function c(e,t,n,r,i){var o={type:t,attributeName:n,name:r},a=v(i,{name:n}),s=void 0;if("hierarchical"===t){var u=e.getHierarchicalFacetByName(n),c=r.split(u.separator);o.name=c[c.length-1];for(var l=0;void 0!==a&&l<c.length;++l)a=v(a.data,{name:c[l]});s=g(a,"count")}else s=g(a,'data["'+o.name+'"]');var p=g(a,"exhaustive");return void 0!==s&&(o.count=s),void 0!==p&&(o.exhaustive=p),o}function l(e,t){var n=[];return m(t.facetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"facet",i,r,e.facets))})}),m(t.facetsExcludes,function(e,t){m(e,function(e){n.push({type:"exclude",attributeName:t,name:e,exclude:!0})})}),m(t.disjunctiveFacetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"disjunctive",i,r,e.disjunctiveFacets))})}),m(t.hierarchicalFacetsRefinements,function(r,i){m(r,function(r){n.push(c(t,"hierarchical",i,r,e.hierarchicalFacets))})}),m(t.numericRefinements,function(e,t){m(e,function(e,r){m(e,function(e){n.push({type:"numeric",attributeName:t,name:e,operator:r})})})}),m(t.tagRefinements,function(e){n.push({type:"tag",attributeName:"_tags",name:e})}),n}function p(e,t){return y(t)?(e=e.clearTags(),e=e.clearRefinements()):(m(t,function(t){e="_tags"===t?e.clearTags():e.clearRefinements(t)}),e)}function f(e,t){e.setState(p(e.state,t)).search()}var d=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},h=n(471),m=n(253),v=n(490),g=n(494),y=n(495),b={getContainerNode:r,bemHelper:a,prepareTemplateProps:s,isSpecialClick:o,isDomElement:i,getRefinements:l,clearRefinementsFromState:p,clearRefinementsAndSearch:f};e.exports=b},function(e,t,n){"use strict";var r=n(472),i=n(255),o=n(473),a=o(r,i);e.exports=a},function(e){"use strict";function t(e,t,n,r){var i=-1,o=e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}e.exports=t},function(e,t,n){"use strict";function r(e,t){return function(n,r,s,u){var c=arguments.length<3;return"function"==typeof r&&void 0===u&&a(n)?e(n,r,s,c):o(n,i(r,u,4),s,c,t)}}var i=n(474),o=n(489),a=n(272);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=typeof e;return"function"==r?void 0===t?e:a(e,t,n):null==e?s:"object"==r?i(e):void 0===t?u(e):o(e,t)}var i=n(475),o=n(480),a=n(277),s=n(278),u=n(487);e.exports=r},function(e,t,n){"use strict";function r(e){var t=o(e);if(1==t.length&&t[0][2]){var n=t[0][0],r=t[0][1];return function(e){return null==e?!1:e[n]===r&&(void 0!==r||n in a(e))}}return function(e){return i(e,t)}}var i=n(476),o=n(477),a=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=t.length,a=r,s=!n;if(null==e)return!a;for(e=o(e);r--;){var u=t[r];if(s&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++r<a;){u=t[r];var c=u[0],l=e[c],p=u[1];if(s&&u[2]){if(void 0===l&&!(c in e))return!1}else{var f=n?n(l,p,c):void 0;if(!(void 0===f?i(p,l,n,!0):f))return!1}}return!0}var i=n(305),o=n(259);e.exports=r},function(e,t,n){"use strict";function r(e){for(var t=o(e),n=t.length;n--;)t[n][2]=i(t[n][1]);return t}var i=n(478),o=n(479);e.exports=r},function(e,t,n){"use strict";function r(e){return e===e&&!i(e)}var i=n(260);e.exports=r},function(e,t,n){"use strict";function r(e){e=o(e);for(var t=-1,n=i(e),r=n.length,a=Array(r);++t<r;){var s=n[t];a[t]=[s,e[s]]}return a}var i=n(261),o=n(259);e.exports=r},function(e,t,n){"use strict";function r(e,t){var n=s(e),r=u(e)&&c(t),d=e+"";return e=f(e),function(s){if(null==s)return!1;var u=d;if(s=p(s),!(!n&&r||u in s)){if(s=1==e.length?s:i(s,a(e,0,-1)),null==s)return!1;u=l(e),s=p(s)}return s[u]===t?void 0!==t||u in s:o(t,s[u],void 0,!0)}}var i=n(481),o=n(305),a=n(482),s=n(272),u=n(483),c=n(478),l=n(484),p=n(259),f=n(485);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){if(null!=e){void 0!==n&&n in i(e)&&(t=[n]);for(var r=0,o=t.length;null!=e&&o>r;)e=e[t[r++]];return r&&r==o?e:void 0}}var i=n(259);e.exports=r},function(e){"use strict";function t(e,t,n){var r=-1,i=e.length;t=null==t?0:+t||0,0>t&&(t=-t>i?0:i+t),n=void 0===n||n>i?i:+n||0,0>n&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r<i;)o[r]=e[r+t];return o}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=typeof e;if("string"==n&&s.test(e)||"number"==n)return!0;if(i(e))return!1;var r=!a.test(e);return r||null!=t&&e in o(t)}var i=n(272),o=n(259),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,s=/^\w*$/;e.exports=r},function(e){"use strict";function t(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=t},function(e,t,n){"use strict";function r(e){if(o(e))return e;var t=[];return i(e).replace(a,function(e,n,r,i){t.push(r?i.replace(s,"$1"):n||e)}),t}var i=n(486),o=n(272),a=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g,s=/\\(\\)?/g;e.exports=r},function(e){"use strict";function t(e){return null==e?"":e+""}e.exports=t},function(e,t,n){"use strict";function r(e){return a(e)?i(e):o(e)}var i=n(268),o=n(488),a=n(483);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e+"";return e=o(e),function(n){return i(n,e,t)}}var i=n(481),o=n(485);e.exports=r},function(e){"use strict";function t(e,t,n,r,i){return i(e,function(e,i,o){n=r?(r=!1,e):t(n,e,i,o)}),n}e.exports=t},function(e,t,n){"use strict";var r=n(255),i=n(491),o=i(r);e.exports=o},function(e,t,n){"use strict";function r(e,t){return function(n,r,u){if(r=i(r,u,3),s(n)){var c=a(n,r,t);return c>-1?n[c]:void 0}return o(n,r,e)}}var i=n(474),o=n(492),a=n(493),s=n(272);e.exports=r},function(e){"use strict";function t(e,t,n,r){var i;return n(e,function(e,n,o){return t(e,n,o)?(i=r?n:e,!1):void 0}),i}e.exports=t},function(e){"use strict";function t(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++i<r;)if(t(e[i],i,e))return i;return-1}e.exports=t},function(e,t,n){"use strict";function r(e,t,n){var r=null==e?void 0:i(e,o(t),t+"");
18
+
19
+ return void 0===r?n:r}var i=n(481),o=n(485);e.exports=r},function(e,t,n){"use strict";function r(e){return null==e?!0:a(e)&&(o(e)||c(e)||i(e)||u(e)&&s(e.splice))?!e.length:!l(e).length}var i=n(271),o=n(272),a=n(266),s=n(264),u=n(265),c=n(496),l=n(261);e.exports=r},function(e,t,n){"use strict";function r(e){return"string"==typeof e||i(e)&&s.call(e)==o}var i=n(265),o="[object String]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t){var n,r;!function(){"use strict";function i(){for(var e="",t=0;t<arguments.length;t++){var n=arguments[t];if(n){var r=typeof n;if("string"===r||"number"===r)e+=" "+n;else if(Array.isArray(n))e+=" "+i.apply(null,n);else if("object"===r)for(var a in n)o.call(n,a)&&n[a]&&(e+=" "+a)}}return e.substr(1)}var o={}.hasOwnProperty;"undefined"!=typeof e&&e.exports?e.exports=i:(n=[],r=function(){return i}.apply(t,n),!(void 0!==r&&(e.exports=r)))}()},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t=function(t){function n(){r(this,n),s(Object.getPrototypeOf(n.prototype),"constructor",this).apply(this,arguments)}return i(n,t),a(n,[{key:"componentDidMount",value:function(){this._hideOrShowContainer(this.props)}},{key:"componentWillReceiveProps",value:function(e){this._hideOrShowContainer(e)}},{key:"_hideOrShowContainer",value:function(e){var t=c.findDOMNode(this).parentNode;t.style.display=e.shouldAutoHideContainer===!0?"none":""}},{key:"render",value:function(){return this.props.shouldAutoHideContainer===!0?u.createElement("div",null):u.createElement(e,this.props)}}]),n}(u.Component);return t.propTypes={shouldAutoHideContainer:u.PropTypes.bool.isRequired},t.displayName=e.name+"-AutoHide",t}var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(469);e.exports=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t=function(t){function n(){r(this,n),u(Object.getPrototypeOf(n.prototype),"constructor",this).apply(this,arguments)}return i(n,t),s(n,[{key:"getTemplate",value:function(e){var t=this.props.templateProps.templates;if(!t||!t[e])return null;var n=l(this.props.cssClasses[e],"ais-"+e);return c.createElement(p,a({},this.props.templateProps,{cssClass:n,templateKey:e,transformData:null}))}},{key:"render",value:function(){var t={root:l(this.props.cssClasses.root),body:l(this.props.cssClasses.body)},n=this.getTemplate("header"),r=this.getTemplate("footer");return c.createElement("div",{className:t.root},n,c.createElement("div",{className:t.body},c.createElement(e,this.props)),r)}}]),n}(c.Component);return t.propTypes={cssClasses:c.PropTypes.shape({root:c.PropTypes.string,header:c.PropTypes.string,body:c.PropTypes.string,footer:c.PropTypes.string}),templateProps:c.PropTypes.object},t.defaultProps={cssClasses:{}},t.displayName=e.name+"-HeaderFooter",t}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(497),p=n(500);e.exports=o},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e,t,n){if(!e)return n;var r=h(n),i=void 0;if("function"==typeof e)i=e(r);else{if("object"!=typeof e)throw new Error("`transformData` must be a function or an object");i=e[t]?e[t](r):n}var o=typeof i,a=typeof n;if(o!==a)throw new Error("`transformData` must return a `"+a+"`, got `"+o+"`.");return i}function a(e){var t=e.template,n=e.compileOptions,r=e.helpers,i=e.data,o="string"==typeof t,a="function"==typeof t;if(o||a){if(a)return t(i);var c=s(r,n,i),l=u({},i,{helpers:c});return m.compile(t,n).render(l)}throw new Error("Template must be `string` or `function`")}function s(e,t,n){return f(e,function(e){return d(function(r){var i=this,o=function(e){return m.compile(e,t).render(i)};return e.call(n,r,o)})})}var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},p=n(313),f=n(501),d=n(503),h=n(530),m=n(537),v=function(e){function t(){r(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),c(t,[{key:"render",value:function(){var e=this.props.useCustomCompileOptions[this.props.templateKey]?this.props.templatesConfig.compileOptions:{},t=a({template:this.props.templates[this.props.templateKey],compileOptions:e,helpers:this.props.templatesConfig.helpers,data:o(this.props.transformData,this.props.templateKey,this.props.data)});return null===t?null:p.createElement("div",{className:this.props.cssClass,dangerouslySetInnerHTML:{__html:t}})}}]),t}(p.Component);v.propTypes={cssClass:p.PropTypes.string,data:p.PropTypes.object,templateKey:p.PropTypes.string,templates:p.PropTypes.objectOf(p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.func])),templatesConfig:p.PropTypes.shape({helpers:p.PropTypes.objectOf(p.PropTypes.func),compileOptions:p.PropTypes.shape({asString:p.PropTypes.bool,sectionTags:p.PropTypes.arrayOf(p.PropTypes.shape({o:p.PropTypes.string,c:p.PropTypes.string})),delimiters:p.PropTypes.string,disableLambda:p.PropTypes.bool})}),transformData:p.PropTypes.oneOfType([p.PropTypes.func,p.PropTypes.objectOf(p.PropTypes.func)]),useCustomCompileOptions:p.PropTypes.objectOf(p.PropTypes.bool)},v.defaultProps={data:{},useCustomCompileOptions:{},templates:{},templatesConfig:{}},e.exports=v},function(e,t,n){"use strict";var r=n(502),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){var a={};return n=i(n,r,3),o(t,function(t,r,i){var o=n(t,r,i);r=e?o:r,t=e?t:o,a[r]=t}),a}}var i=n(474),o=n(256);e.exports=r},function(e,t,n){"use strict";var r=n(504),i=8,o=r(i);o.placeholder={},e.exports=o},function(e,t,n){"use strict";function r(e){function t(n,r,a){a&&o(n,r,a)&&(r=void 0);var s=i(n,e,void 0,void 0,void 0,void 0,void 0,r);return s.placeholder=t.placeholder,s}return t}var i=n(505),o=n(289);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r,g,y,b,x){var w=t&f;if(!w&&"function"!=typeof e)throw new TypeError(m);var E=r?r.length:0;if(E||(t&=~(d|h),r=g=void 0),E-=g?g.length:0,t&h){var _=r,C=g;r=g=void 0}var N=w?void 0:u(e),$=[e,t,n,r,g,_,C,y,b,x];if(N&&(c($,N),t=$[1],x=$[9]),$[9]=null==x?w?0:e.length:v(x-E,0)||0,t==p)var O=o($[0],$[2]);else O=t!=d&&t!=(p|d)||$[4].length?a.apply(void 0,$):s.apply(void 0,$);var T=N?i:l;return T(O,$)}var i=n(506),o=n(508),a=n(511),s=n(528),u=n(517),c=n(529),l=n(526),p=1,f=2,d=32,h=64,m="Expected a function",v=Math.max;e.exports=r},function(e,t,n){"use strict";var r=n(278),i=n(507),o=i?function(e,t){return i.set(e,t),e}:r;e.exports=o},function(e,t,n){(function(t){"use strict";var r=n(262),i=r(t,"WeakMap"),o=i&&new i;e.exports=o}).call(t,function(){return this}())},function(e,t,n){(function(t){"use strict";function r(e,n){function r(){var i=this&&this!==t&&this instanceof r?o:e;return i.apply(n,arguments)}var o=i(e);return r}var i=n(509);e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var n=i(e.prototype),r=e.apply(n,t);return o(r)?r:n}}var i=n(510),o=n(260);e.exports=r},function(e,t,n){"use strict";var r=n(260),i=function(){function e(){}return function(t){if(r(t)){e.prototype=t;var n=new e;e.prototype=void 0}return n||{}}}();e.exports=i},function(e,t,n){(function(t){"use strict";function r(e,n,w,E,_,C,N,$,O,T){function P(){for(var h=arguments.length,m=h,v=Array(h);m--;)v[m]=arguments[m];if(E&&(v=o(v,E,_)),C&&(v=a(v,C,N)),k||j){var b=P.placeholder,M=l(v,b);if(h-=M.length,T>h){var F=$?i($):void 0,L=x(T-h,0),V=k?M:void 0,U=k?void 0:M,H=k?v:void 0,q=k?void 0:v;n|=k?g:y,n&=~(k?y:g),A||(n&=~(f|d));var B=[e,n,w,H,V,q,U,F,O,L],W=r.apply(void 0,B);return u(e)&&p(W,B),W.placeholder=b,W}}var z=D?w:this,K=R?z[e]:e;return $&&(v=c(v,$)),S&&O<v.length&&(v.length=O),this&&this!==t&&this instanceof P&&(K=I||s(e)),K.apply(z,v)}var S=n&b,D=n&f,R=n&d,k=n&m,A=n&h,j=n&v,I=R?void 0:s(e);return P}var i=n(282),o=n(512),a=n(513),s=n(509),u=n(514),c=n(524),l=n(525),p=n(526),f=1,d=2,h=4,m=8,v=16,g=32,y=64,b=128,x=Math.max;e.exports=r}).call(t,function(){return this}())},function(e){"use strict";function t(e,t,r){for(var i=r.length,o=-1,a=n(e.length-i,0),s=-1,u=t.length,c=Array(u+a);++s<u;)c[s]=t[s];for(;++o<i;)c[r[o]]=e[o];for(;a--;)c[s++]=e[o++];return c}var n=Math.max;e.exports=t},function(e){"use strict";function t(e,t,r){for(var i=-1,o=r.length,a=-1,s=n(e.length-o,0),u=-1,c=t.length,l=Array(s+c);++a<s;)l[a]=e[a];for(var p=a;++u<c;)l[p+u]=t[u];for(;++i<o;)l[p+r[i]]=e[a++];return l}var n=Math.max;e.exports=t},function(e,t,n){"use strict";function r(e){var t=a(e),n=s[t];if("function"!=typeof n||!(t in i.prototype))return!1;if(e===n)return!0;var r=o(n);return!!r&&e===r[0]}var i=n(515),o=n(517),a=n(519),s=n(521);e.exports=r},function(e,t,n){"use strict";function r(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=a,this.__views__=[]}var i=n(510),o=n(516),a=Number.POSITIVE_INFINITY;r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e){"use strict";function t(){}e.exports=t},function(e,t,n){"use strict";var r=n(507),i=n(518),o=r?function(e){return r.get(e)}:i;e.exports=o},function(e){"use strict";function t(){}e.exports=t},function(e,t,n){"use strict";function r(e){for(var t=e.name+"",n=i[t],r=n?n.length:0;r--;){var o=n[r],a=o.func;if(null==a||a==e)return o.name}return t}var i=n(520);e.exports=r},function(e){"use strict";var t={};e.exports=t},function(e,t,n){"use strict";function r(e){if(u(e)&&!s(e)&&!(e instanceof i)){if(e instanceof o)return e;if(p.call(e,"__chain__")&&p.call(e,"__wrapped__"))return c(e)}return new o(e)}var i=n(515),o=n(522),a=n(516),s=n(272),u=n(265),c=n(523),l=Object.prototype,p=l.hasOwnProperty;r.prototype=a.prototype,e.exports=r},function(e,t,n){"use strict";function r(e,t,n){this.__wrapped__=e,this.__actions__=n||[],this.__chain__=!!t}var i=n(510),o=n(516);r.prototype=i(o.prototype),r.prototype.constructor=r,e.exports=r},function(e,t,n){"use strict";function r(e){return e instanceof i?e.clone():new o(e.__wrapped__,e.__chain__,a(e.__actions__))}var i=n(515),o=n(522),a=n(282);e.exports=r},function(e,t,n){"use strict";function r(e,t){for(var n=e.length,r=a(t.length,n),s=i(e);r--;){var u=t[r];e[r]=o(u,n)?s[u]:void 0}return e}var i=n(282),o=n(273),a=Math.min;e.exports=r},function(e){"use strict";function t(e,t){for(var r=-1,i=e.length,o=-1,a=[];++r<i;)e[r]===t&&(e[r]=n,a[++o]=r);return a}var n="__lodash_placeholder__";e.exports=t},function(e,t,n){"use strict";var r=n(506),i=n(527),o=150,a=16,s=function(){var e=0,t=0;return function(n,s){var u=i(),c=a-(u-t);if(t=u,c>0){if(++e>=o)return n}else e=0;return r(n,s)}}();e.exports=s},function(e,t,n){"use strict";var r=n(262),i=r(Date,"now"),o=i||function(){return(new Date).getTime()};e.exports=o},function(e,t,n){(function(t){"use strict";function r(e,n,r,a){function s(){for(var n=-1,i=arguments.length,o=-1,l=a.length,p=Array(l+i);++o<l;)p[o]=a[o];for(;i--;)p[o++]=arguments[++n];var f=this&&this!==t&&this instanceof s?c:e;return f.apply(u?r:this,p)}var u=n&o,c=i(e);return s}var i=n(509),o=1;e.exports=r}).call(t,function(){return this}())},function(e,t,n){"use strict";function r(e,t){var n=e[1],r=t[1],m=n|r,v=p>m,g=r==p&&n==l||r==p&&n==f&&e[7].length<=t[8]||r==(p|f)&&n==l;if(!v&&!g)return e;r&u&&(e[2]=t[2],m|=n&u?0:c);var y=t[3];if(y){var b=e[3];e[3]=b?o(b,y,t[4]):i(y),e[4]=b?s(e[3],d):i(t[4])}return y=t[5],y&&(b=e[5],e[5]=b?a(b,y,t[6]):i(y),e[6]=b?s(e[5],d):i(t[6])),y=t[7],y&&(e[7]=i(y)),r&p&&(e[8]=null==e[8]?t[8]:h(e[8],t[8])),null==e[9]&&(e[9]=t[9]),e[0]=t[0],e[1]=m,e}var i=n(282),o=n(512),a=n(513),s=n(525),u=1,c=4,l=8,p=128,f=256,d="__lodash_placeholder__",h=Math.min;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){return"function"==typeof t?i(e,!0,o(t,n,3)):i(e,!0)}var i=n(531),o=n(277);e.exports=r},function(e,t,n){"use strict";function r(e,t,n,h,m,v,g){var b;if(n&&(b=m?n(e,h,m):n(e)),void 0!==b)return b;if(!f(e))return e;var x=p(e);if(x){if(b=u(e),!t)return i(e,b)}else{var E=F.call(e),_=E==y;if(E!=w&&E!=d&&(!_||m))return I[E]?c(e,E,t):m?e:{};if(b=l(_?{}:e),!t)return a(b,e)}v||(v=[]),g||(g=[]);for(var C=v.length;C--;)if(v[C]==e)return g[C];return v.push(e),g.push(b),(x?o:s)(e,function(i,o){b[o]=r(i,t,n,o,e,v,g)}),b}var i=n(282),o=n(254),a=n(532),s=n(256),u=n(533),c=n(534),l=n(536),p=n(272),f=n(260),d="[object Arguments]",h="[object Array]",m="[object Boolean]",v="[object Date]",g="[object Error]",y="[object Function]",b="[object Map]",x="[object Number]",w="[object Object]",E="[object RegExp]",_="[object Set]",C="[object String]",N="[object WeakMap]",$="[object ArrayBuffer]",O="[object Float32Array]",T="[object Float64Array]",P="[object Int8Array]",S="[object Int16Array]",D="[object Int32Array]",R="[object Uint8Array]",k="[object Uint8ClampedArray]",A="[object Uint16Array]",j="[object Uint32Array]",I={};I[d]=I[h]=I[$]=I[m]=I[v]=I[O]=I[T]=I[P]=I[S]=I[D]=I[x]=I[w]=I[E]=I[C]=I[R]=I[k]=I[A]=I[j]=!0,I[g]=I[y]=I[b]=I[_]=I[N]=!1;var M=Object.prototype,F=M.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t){return null==t?e:i(t,o(t),e)}var i=n(287),o=n(261);e.exports=r},function(e){"use strict";function t(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&r.call(e,"index")&&(n.index=e.index,n.input=e.input),n}var n=Object.prototype,r=n.hasOwnProperty;e.exports=t},function(e,t,n){"use strict";function r(e,t,n){var r=e.constructor;switch(t){case l:return i(e);case o:case a:return new r(+e);case p:case f:case d:case h:case m:case v:case g:case y:case b:var w=e.buffer;return new r(n?i(w):w,e.byteOffset,e.length);case s:case c:return new r(e);case u:var E=new r(e.source,x.exec(e));E.lastIndex=e.lastIndex}return E}var i=n(535),o="[object Boolean]",a="[object Date]",s="[object Number]",u="[object RegExp]",c="[object String]",l="[object ArrayBuffer]",p="[object Float32Array]",f="[object Float64Array]",d="[object Int8Array]",h="[object Int16Array]",m="[object Int32Array]",v="[object Uint8Array]",g="[object Uint8ClampedArray]",y="[object Uint16Array]",b="[object Uint32Array]",x=/\w*$/;e.exports=r},function(e,t){(function(t){"use strict";function n(e){var t=new r(e.byteLength),n=new i(t);return n.set(new i(e)),t}var r=t.ArrayBuffer,i=t.Uint8Array;e.exports=n}).call(t,function(){return this}())},function(e){"use strict";function t(e){var t=e.constructor;return"function"==typeof t&&t instanceof t||(t=Object),new t}e.exports=t},function(e,t,n){var r=n(538);r.Template=n(539).Template,r.template=r.Template,e.exports=r},function(e,t){!function(e){function t(e){"}"===e.n.substr(e.n.length-1)&&(e.n=e.n.substring(0,e.n.length-1))}function n(e){return e.trim?e.trim():e.replace(/^\s*|\s*$/g,"")}function r(e,t,n){if(t.charAt(n)!=e.charAt(0))return!1;for(var r=1,i=e.length;i>r;r++)if(t.charAt(n+r)!=e.charAt(r))return!1;return!0}function i(t,n,r,s){var u=[],c=null,l=null,p=null;for(l=r[r.length-1];t.length>0;){if(p=t.shift(),l&&"<"==l.tag&&!(p.tag in w))throw new Error("Illegal content in < super tag.");if(e.tags[p.tag]<=e.tags.$||o(p,s))r.push(p),p.nodes=i(t,p.tag,r,s);else{if("/"==p.tag){if(0===r.length)throw new Error("Closing tag without opener: /"+p.n);if(c=r.pop(),p.n!=c.n&&!a(p.n,c.n,s))throw new Error("Nesting error: "+c.n+" vs. "+p.n);return c.end=p.i,u}"\n"==p.tag&&(p.last=0==t.length||"\n"==t[0].tag)}u.push(p)}if(r.length>0)throw new Error("missing closing tag: "+r.pop().n);return u}function o(e,t){for(var n=0,r=t.length;r>n;n++)if(t[n].o==e.n)return e.tag="#",!0}function a(e,t,n){for(var r=0,i=n.length;i>r;r++)if(n[r].c==e&&n[r].o==t)return!0}function s(e){var t=[];for(var n in e)t.push('"'+c(n)+'": function(c,p,t,i) {'+e[n]+"}");return"{ "+t.join(",")+" }"}function u(e){var t=[];for(var n in e.partials)t.push('"'+c(n)+'":{name:"'+c(e.partials[n].name)+'", '+u(e.partials[n])+"}");return"partials: {"+t.join(",")+"}, subs: "+s(e.subs)}function c(e){return e.replace(y,"\\\\").replace(m,'\\"').replace(v,"\\n").replace(g,"\\r").replace(b,"\\u2028").replace(x,"\\u2029")}function l(e){return~e.indexOf(".")?"d":"f"}function p(e,t){var n="<"+(t.prefix||""),r=n+e.n+E++;return t.partials[r]={name:e.n,partials:{}},t.code+='t.b(t.rp("'+c(r)+'",c,p,"'+(e.indent||"")+'"));',r}function f(e,t){t.code+="t.b(t.t(t."+l(e.n)+'("'+c(e.n)+'",c,p,0)));'}function d(e){return"t.b("+e+");"}var h=/\S/,m=/\"/g,v=/\n/g,g=/\r/g,y=/\\/g,b=/\u2028/,x=/\u2029/;e.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},e.scan=function(i,o){function a(){y.length>0&&(b.push({tag:"_t",text:new String(y)}),y="")}function s(){for(var t=!0,n=E;n<b.length;n++)if(t=e.tags[b[n].tag]<e.tags._v||"_t"==b[n].tag&&null===b[n].text.match(h),!t)return!1;return t}function u(e,t){if(a(),e&&s())for(var n,r=E;r<b.length;r++)b[r].text&&((n=b[r+1])&&">"==n.tag&&(n.indent=b[r].text.toString()),b.splice(r,1));else t||b.push({tag:"\n"});x=!1,E=b.length}function c(e,t){var r="="+C,i=e.indexOf(r,t),o=n(e.substring(e.indexOf("=",t)+1,i)).split(" ");return _=o[0],C=o[o.length-1],i+r.length-1}var l=i.length,p=0,f=1,d=2,m=p,v=null,g=null,y="",b=[],x=!1,w=0,E=0,_="{{",C="}}";for(o&&(o=o.split(" "),_=o[0],C=o[1]),w=0;l>w;w++)m==p?r(_,i,w)?(--w,a(),m=f):"\n"==i.charAt(w)?u(x):y+=i.charAt(w):m==f?(w+=_.length-1,g=e.tags[i.charAt(w+1)],v=g?i.charAt(w+1):"_v","="==v?(w=c(i,w),m=p):(g&&w++,m=d),x=w):r(C,i,w)?(b.push({tag:v,n:n(y),otag:_,ctag:C,i:"/"==v?x-_.length:w+C.length}),y="",w+=C.length-1,m=p,"{"==v&&("}}"==C?w++:t(b[b.length-1]))):y+=i.charAt(w);return u(x,!0),b};var w={_t:!0,"\n":!0,$:!0,"/":!0};e.stringify=function(t){return"{code: function (c,p,i) { "+e.wrapMain(t.code)+" },"+u(t)+"}"};var E=0;e.generate=function(t,n,r){E=0;var i={code:"",subs:{},partials:{}};return e.walk(t,i),r.asString?this.stringify(i,n,r):this.makeTemplate(i,n,r)},e.wrapMain=function(e){return'var t=this;t.b(i=i||"");'+e+"return t.fl();"},e.template=e.Template,e.makeTemplate=function(e,t,n){var r=this.makePartials(e);return r.code=new Function("c","p","i",this.wrapMain(e.code)),new this.template(r,t,this,n)},e.makePartials=function(e){var t,n={subs:{},partials:e.partials,name:e.name};for(t in n.partials)n.partials[t]=this.makePartials(n.partials[t]);for(t in e.subs)n.subs[t]=new Function("c","p","t","i",e.subs[t]);return n},e.codegen={"#":function(t,n){n.code+="if(t.s(t."+l(t.n)+'("'+c(t.n)+'",c,p,1),c,p,0,'+t.i+","+t.end+',"'+t.otag+" "+t.ctag+'")){t.rs(c,p,function(c,p,t){',e.walk(t.nodes,n),n.code+="});c.pop();}"},"^":function(t,n){n.code+="if(!t.s(t."+l(t.n)+'("'+c(t.n)+'",c,p,1),c,p,1,0,0,"")){',e.walk(t.nodes,n),n.code+="};"},">":p,"<":function(t,n){var r={partials:{},code:"",subs:{},inPartial:!0};e.walk(t.nodes,r);var i=n.partials[p(t,n)];i.subs=r.subs,i.partials=r.partials},$:function(t,n){var r={subs:{},code:"",partials:n.partials,prefix:t.n};e.walk(t.nodes,r),n.subs[t.n]=r.code,n.inPartial||(n.code+='t.sub("'+c(t.n)+'",c,p,i);')},"\n":function(e,t){t.code+=d('"\\n"'+(e.last?"":" + i"))},_v:function(e,t){t.code+="t.b(t.v(t."+l(e.n)+'("'+c(e.n)+'",c,p,0)));'},_t:function(e,t){t.code+=d('"'+c(e.text)+'"')},"{":f,"&":f},e.walk=function(t,n){for(var r,i=0,o=t.length;o>i;i++)r=e.codegen[t[i].tag],r&&r(t[i],n);return n},e.parse=function(e,t,n){return n=n||{},i(e,"",[],n.sectionTags||[])},e.cache={},e.cacheKey=function(e,t){return[e,!!t.asString,!!t.disableLambda,t.delimiters,!!t.modelGet].join("||")},e.compile=function(t,n){n=n||{};var r=e.cacheKey(t,n),i=this.cache[r];if(i){var o=i.partials;for(var a in o)delete o[a].instance;return i}return i=this.generate(this.parse(this.scan(t,n.delimiters),t,n),t,n),this.cache[r]=i}}(t)},function(e,t){!function(e){function t(e,t,n){var r;return t&&"object"==typeof t&&(void 0!==t[e]?r=t[e]:n&&t.get&&"function"==typeof t.get&&(r=t.get(e))),r}function n(e,t,n,r,i,o){function a(){}function s(){}a.prototype=e,s.prototype=e.subs;var u,c=new a;c.subs=new s,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=o;for(u in t)r[u]||(r[u]=t[u]);for(u in r)c.subs[u]=r[u];i=i||{},c.stackPartials=i;for(u in n)i[u]||(i[u]=n[u]);for(u in i)c.partials[u]=i[u];return c}function r(e){return String(null===e||void 0===e?"":e)}function i(e){return e=r(e),l.test(e)?e.replace(o,"&amp;").replace(a,"&lt;").replace(s,"&gt;").replace(u,"&#39;").replace(c,"&quot;"):e}e.Template=function(e,t,n,r){e=e||{},this.r=e.code||this.r,this.c=n,this.options=r||{},this.text=t||"",this.partials=e.partials||{},this.subs=e.subs||{},this.buf=""},e.Template.prototype={r:function(){return""},v:i,t:r,render:function(e,t,n){return this.ri([e],t||{},n)},ri:function(e,t,n){return this.r(e,t,n)},ep:function(e,t){var r=this.partials[e],i=t[r.name];if(r.instance&&r.base==i)return r.instance;if("string"==typeof i){if(!this.c)throw new Error("No compiler available.");i=this.c.compile(i,this.options)}if(!i)return null;if(this.partials[e].base=i,r.subs){t.stackText||(t.stackText={});for(key in r.subs)t.stackText[key]||(t.stackText[key]=void 0!==this.activeSub&&t.stackText[this.activeSub]?t.stackText[this.activeSub]:this.text);i=n(i,r.subs,r.partials,this.stackSubs,this.stackPartials,t.stackText)}return this.partials[e].instance=i,i},rp:function(e,t,n,r){var i=this.ep(e,n);return i?i.ri(t,n,r):""},rs:function(e,t,n){var r=e[e.length-1];if(!p(r))return void n(e,t,this);for(var i=0;i<r.length;i++)e.push(r[i]),n(e,t,this),e.pop()},s:function(e,t,n,r,i,o,a){var s;return p(e)&&0===e.length?!1:("function"==typeof e&&(e=this.ms(e,t,n,r,i,o,a)),s=!!e,!r&&s&&t&&t.push("object"==typeof e?e:t[t.length-1]),s)},d:function(e,n,r,i){var o,a=e.split("."),s=this.f(a[0],n,r,i),u=this.options.modelGet,c=null;if("."===e&&p(n[n.length-2]))s=n[n.length-1];else for(var l=1;l<a.length;l++)o=t(a[l],s,u),void 0!==o?(c=s,s=o):s="";return i&&!s?!1:(i||"function"!=typeof s||(n.push(c),s=this.mv(s,n,r),n.pop()),s)},f:function(e,n,r,i){for(var o=!1,a=null,s=!1,u=this.options.modelGet,c=n.length-1;c>=0;c--)if(a=n[c],o=t(e,a,u),void 0!==o){s=!0;break}return s?(i||"function"!=typeof o||(o=this.mv(o,n,r)),o):i?!1:""},ls:function(e,t,n,i,o){var a=this.options.delimiters;return this.options.delimiters=o,this.b(this.ct(r(e.call(t,i)),t,n)),this.options.delimiters=a,!1},ct:function(e,t,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(e,this.options).render(t,n)},b:function(e){this.buf+=e},fl:function(){var e=this.buf;return this.buf="",e},ms:function(e,t,n,r,i,o,a){var s,u=t[t.length-1],c=e.call(u);return"function"==typeof c?r?!0:(s=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,s.substring(i,o),a)):c},mv:function(e,t,n){var i=t[t.length-1],o=e.call(i);return"function"==typeof o?this.ct(r(o.call(i)),i,n):o},sub:function(e,t,n,r){var i=this.subs[e];i&&(this.activeSub=e,i(t,n,this,r),this.activeSub=!1)}};var o=/&/g,a=/</g,s=/>/g,u=/\'/g,c=/\"/g,l=/[&<>\"\']/,p=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}}(t)},function(e){"use strict";e.exports={header:"",link:"Clear all",footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(500),l=n(470),p=l.isSpecialClick,f=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"handleClick",value:function(e){p(e)||(e.preventDefault(),this.props.clearAll())}},{key:"render",value:function(){var e=this.props.cssClasses.link,t={hasRefinements:this.props.hasRefinements};return u.createElement("a",{className:e,href:this.props.url,onClick:this.handleClick.bind(this)},u.createElement(c,o({data:t,templateKey:"link"},this.props.templateProps)))}}]),t}(u.Component);f.propTypes={clearAll:u.PropTypes.func.isRequired,cssClasses:u.PropTypes.shape({link:u.PropTypes.string}),hasRefinements:u.PropTypes.bool.isRequired,templateProps:u.PropTypes.object.isRequired,url:u.PropTypes.string.isRequired},e.exports=f},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributes,i=void 0===r?[]:r,o=e.onlyListedAttributes,p=void 0===o?!1:o,f=e.clearAll,v=void 0===f?"before":f,O=e.templates,S=void 0===O?k:O,j=e.transformData,I=e.autoHideContainer,M=void 0===I?!0:I,F=e.cssClasses,L=void 0===F?{}:F,V=C(i)&&P(i,function(e,t){return e&&N(t)&&_(t.name)&&(w(t.label)||_(t.label))&&(w(t.template)||_(t.template)||$(t.template))&&(w(t.transformData)||$(t.transformData))},!0),U=["header","item","clearAll","footer"],H=N(S)&&P(S,function(e,t,n){return e&&-1!==U.indexOf(n)&&(_(t)||$(t))},!0),q=["root","header","body","clearAll","list","item","link","count","footer"],B=N(L)&&P(L,function(e,t,n){return e&&-1!==q.indexOf(n)&&_(t)},!0),W=!((_(t)||d(t))&&C(i)&&V&&E(p)&&-1!==[!1,"before","after"].indexOf(v)&&N(S)&&H&&(w(j)||$(j))&&E(M)&&B);if(W)throw new Error(A);var z=h(t),K=D(n(552));M===!0&&(K=R(K));var Q=T(i,function(e){return e.name}),Y=p?Q:[],G=P(i,function(e,t){return e[t.name]=t,e},{});return{render:function(e){var t=e.results,n=e.helper,r=e.state,i=e.templatesConfig,o=e.createURL,f={root:x(b(null),L.root),header:x(b("header"),L.header),body:x(b("body"),L.body),clearAll:x(b("clear-all"),L.clearAll),list:x(b("list"),L.list),item:x(b("item"),L.item),link:x(b("link"),L.link),count:x(b("count"),L.count),footer:x(b("footer"),L.footer)},d=m({defaultTemplates:k,templatesConfig:i,templates:S}),h=o(g(r,Y)),w=y.bind(null,n,Y),E=a(t,r,Q,p),_=E.map(function(e){return o(s(r,e))}),C=E.map(function(e){return u.bind(null,n,e)}),N=0===E.length;l.render(c.createElement(K,{attributes:G,clearAllClick:w,clearAllPosition:v,clearAllURL:h,clearRefinementClicks:C,clearRefinementURLs:_,cssClasses:f,refinements:E,shouldAutoHideContainer:N,templateProps:d}),z)}}}function i(e,t,n){var r=e.indexOf(n);return-1!==r?r:e.length+t.indexOf(n)}function o(e,t,n,r){var o=i(e,t,n.attributeName),a=i(e,t,r.attributeName);return o===a?n.name===r.name?0:n.name<r.name?-1:1:a>o?-1:1}function a(e,t,n,r){var i=v(e,t),a=P(i,function(e,t){return-1===n.indexOf(t.attributeName)&&e.indexOf(-1===t.attributeName)&&e.push(t.attributeName),e},[]);return i=i.sort(o.bind(null,n,a)),r&&!O(n)&&(i=S(i,function(e){return-1!==n.indexOf(e.attributeName)})),i}function s(e,t){switch(t.type){case"facet":return e.removeFacetRefinement(t.attributeName,t.name);case"disjunctive":return e.removeDisjunctiveFacetRefinement(t.attributeName,t.name);case"hierarchical":return e.clearRefinements(t.attributeName);case"exclude":return e.removeExcludeRefinement(t.attributeName,t.name);case"numeric":return e.removeNumericRefinement(t.attributeName,t.operator,t.name);case"tag":return e.removeTagRefinement(t.name);default:throw new Error("clearRefinement: type "+t.type+"isn't handled")}}function u(e,t){e.setState(s(e.state,t)).search()}var c=n(313),l=n(469),p=n(470),f=p.bemHelper,d=p.isDomElement,h=p.getContainerNode,m=p.prepareTemplateProps,v=p.getRefinements,g=p.clearRefinementsFromState,y=p.clearRefinementsAndSearch,b=f("ais-current-refined-values"),x=n(497),w=n(543),E=n(544),_=n(496),C=n(272),N=n(283),$=n(264),O=n(495),T=n(545),P=n(471),S=n(548),D=n(499),R=n(498),k=n(551),A="Usage:\ncurrentRefinedValues({\n container,\n [ attributes: [{name[, label, template, transformData]}] ],\n [ onlyListedAttributes = false ],\n [ clearAll = 'before' ] // One of ['before', 'after', false]\n [ templates.{header = '', item, clearAll, footer = ''} ],\n [ transformData ],\n [ autoHideContainer = true ],\n [ cssClasses.{root, header, body, clearAll, list, item, link, count, footer} = {} ]\n})";e.exports=r},function(e){"use strict";function t(e){return void 0===e}e.exports=t},function(e,t,n){"use strict";function r(e){return e===!0||e===!1||i(e)&&s.call(e)==o}var i=n(265),o="[object Boolean]",a=Object.prototype,s=a.toString;e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(546),o=n(474),a=n(547),s=n(272);e.exports=r},function(e){
20
+ "use strict";function t(e,t){for(var n=-1,r=e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=-1,r=o(e)?Array(e.length):[];return i(e,function(e,i,o){r[++n]=t(e,i,o)}),r}var i=n(255),o=n(266);e.exports=r},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return t=o(t,n,3),r(e,t)}var i=n(549),o=n(474),a=n(550),s=n(272);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=e.length,i=-1,o=[];++n<r;){var a=e[n];t(a,n,e)&&(o[++i]=a)}return o}e.exports=t},function(e,t,n){"use strict";function r(e,t){var n=[];return i(e,function(e,r,i){t(e,r,i)&&n.push(e)}),n}var i=n(255);e.exports=r},function(e){"use strict";e.exports={header:"",item:'{{#label}}{{label}}{{^operator}}:{{/operator}} {{/label}}{{#operator}}{{{displayOperator}}} {{/operator}}{{#exclude}}-{{/exclude}}{{name}} <span class="{{cssClasses.count}}">{{count}}</span>',clearAll:"Clear all",footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function o(e){var t={};return void 0!==e.template&&(t.templates={item:e.template}),void 0!==e.transformData&&(t.transformData=e.transformData),t}function a(e,t,n){var r=v(t);return r.cssClasses=n,void 0!==e.label&&(r.label=e.label),void 0!==r.operator&&(r.displayOperator=r.operator,">="===r.operator&&(r.displayOperator="&ge;"),"<="===r.operator&&(r.displayOperator="&le;")),r}function s(e){return function(t){h(t)||(t.preventDefault(),e())}}var u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},p=n(313),f=n(500),d=n(470),h=d.isSpecialClick,m=n(545),v=n(530),g=function(e){function t(){r(this,t),l(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),c(t,[{key:"_clearAllElement",value:function(e,t){return t!==e?void 0:p.createElement("a",{className:this.props.cssClasses.clearAll,href:this.props.clearAllURL,onClick:s(this.props.clearAllClick)},p.createElement(f,u({templateKey:"clearAll"},this.props.templateProps)))}},{key:"_refinementElement",value:function(e,t){var n=this.props.attributes[e.attributeName]||{},r=a(n,e,this.props.cssClasses),i=o(n),c=e.attributeName+(e.operator?e.operator:":")+(e.exclude?e.exclude:"")+e.name;return p.createElement("div",{className:this.props.cssClasses.item,key:c},p.createElement("a",{className:this.props.cssClasses.link,href:this.props.clearRefinementURLs[t],onClick:s(this.props.clearRefinementClicks[t])},p.createElement(f,u({data:r,templateKey:"item"},this.props.templateProps,i))))}},{key:"render",value:function(){return p.createElement("div",null,this._clearAllElement("before",this.props.clearAllPosition),p.createElement("div",{className:this.props.cssClasses.list},m(this.props.refinements,this._refinementElement,this)),this._clearAllElement("after",this.props.clearAllPosition))}}]),t}(p.Component);g.propTypes={attributes:p.PropTypes.object,clearAllClick:p.PropTypes.func,clearAllPosition:p.PropTypes.oneOfType([p.PropTypes.string,p.PropTypes.bool]),clearAllURL:p.PropTypes.string,clearRefinementClicks:p.PropTypes.arrayOf(p.PropTypes.func),clearRefinementURLs:p.PropTypes.arrayOf(p.PropTypes.string),cssClasses:p.PropTypes.shape({clearAll:p.PropTypes.string,list:p.PropTypes.string,item:p.PropTypes.string,link:p.PropTypes.string,count:p.PropTypes.string}).isRequired,refinements:p.PropTypes.array,templateProps:p.PropTypes.object.isRequired},e.exports=g},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributes,a=e.separator,v=void 0===a?" > ":a,g=e.rootPath,y=void 0===g?null:g,b=e.showParentLevel,x=void 0===b?!0:b,w=e.limit,E=void 0===w?1e3:w,_=e.sortBy,C=void 0===_?["name:asc"]:_,N=e.cssClasses,$=void 0===N?{}:N,O=e.autoHideContainer,T=void 0===O?!0:O,P=e.templates,S=void 0===P?h:P,D=e.transformData;if(!t||!r||!r.length)throw new Error(m);var R=c.getContainerNode(t),k=d(n(555));T===!0&&(k=f(k));var A=r[0];return{getConfiguration:function(){return{hierarchicalFacets:[{name:A,attributes:r,separator:v,rootPath:y,showParentLevel:x}]}},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,a=e.createURL,f=e.state,d=o(t,A,C,E),m=0===d.length,v=c.prepareTemplateProps({transformData:D,defaultTemplates:h,templatesConfig:r,templates:S}),g={root:p(l(null),$.root),header:p(l("header"),$.header),body:p(l("body"),$.body),footer:p(l("footer"),$.footer),list:p(l("list"),$.list),depth:l("list","lvl"),item:p(l("item"),$.item),active:p(l("item","active"),$.active),link:p(l("link"),$.link),count:p(l("count"),$.count)};u.render(s.createElement(k,{attributeNameKey:"path",createURL:function(e){return a(f.toggleRefinement(A,e))},cssClasses:g,facetValues:d,shouldAutoHideContainer:m,templateProps:v,toggleRefinement:i.bind(null,n,A)}),R)}}}function i(e,t,n){e.toggleRefinement(t,n).search()}function o(e,t,n,r){var i=e.getFacetValues(t,{sortBy:n}).data||[];return a(i,r)}function a(e,t){return e.slice(0,t).map(function(e){return Array.isArray(e.data)&&(e.data=a(e.data,t)),e})}var s=n(313),u=n(469),c=n(470),l=c.bemHelper("ais-hierarchical-menu"),p=n(497),f=n(498),d=n(499),h=n(554),m="Usage:\nhierarchicalMenu({\n container,\n attributes,\n [ separator=' > ' ],\n [ rootPath ],\n [ showParentLevel=true ],\n [ limit=1000 ],\n [ sortBy=['name:asc'] ],\n [ cssClasses.{root , header, body, footer, list, depth, item, active, link}={} ],\n [ templates.{header, item, footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}" href="{{url}}">{{name}} <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>',footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(497),p=n(500),f=n(470),d=f.isSpecialClick,h=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"refine",value:function(e){this.props.toggleRefinement(e)}},{key:"_generateFacetItem",value:function(e){var n=void 0,i=e.data&&e.data.length>0;i&&(n=c.createElement(t,a({},this.props,{depth:this.props.depth+1,facetValues:e.data})));var o=e;this.props.createURL&&(o.url=this.props.createURL(e[this.props.attributeNameKey]));var s=a({},e,{cssClasses:this.props.cssClasses}),u=l(this.props.cssClasses.item,r({},this.props.cssClasses.active,e.isRefined)),f=e[this.props.attributeNameKey];return void 0!==e.isRefined&&(f+="/"+e.isRefined),void 0!==e.count&&(f+="/"+e.count),c.createElement("div",{className:u,key:f,onClick:this.handleClick.bind(this,e[this.props.attributeNameKey])},c.createElement(p,a({data:s,templateKey:"item"},this.props.templateProps)),n)}},{key:"handleClick",value:function(e,t){if(!d(t)){if("INPUT"===t.target.tagName)return void this.refine(e);for(var n=t.target;n!==t.currentTarget;){if("LABEL"===n.tagName&&(n.querySelector('input[type="checkbox"]')||n.querySelector('input[type="radio"]')))return;"A"===n.tagName&&n.href&&t.preventDefault(),n=n.parentNode}t.stopPropagation(),this.refine(e)}}},{key:"render",value:function(){var e=[this.props.cssClasses.list];return this.props.cssClasses.depth&&e.push(""+this.props.cssClasses.depth+this.props.depth),c.createElement("div",{className:l(e)},this.props.facetValues.map(this._generateFacetItem,this))}}]),t}(c.Component);h.propTypes={Template:c.PropTypes.func,attributeNameKey:c.PropTypes.string,createURL:c.PropTypes.func.isRequired,cssClasses:c.PropTypes.shape({active:c.PropTypes.string,depth:c.PropTypes.string,item:c.PropTypes.string,list:c.PropTypes.string}),depth:c.PropTypes.number,facetValues:c.PropTypes.array,templateProps:c.PropTypes.object.isRequired,toggleRefinement:c.PropTypes.func.isRequired},h.defaultProps={cssClasses:{},depth:0,attributeNameKey:"name"},e.exports=h},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,n=e.cssClasses,r=void 0===n?{}:n,f=e.templates,d=void 0===f?l:f,h=e.transformData,m=e.hitsPerPage,v=void 0===m?20:m;if(!t)throw new Error(p);var g=a.getContainerNode(t),y={root:u(s(null),r.root),item:u(s("item"),r.item),empty:u(s(null,"empty"),r.empty)};return{getConfiguration:function(){return{hitsPerPage:v}},render:function(e){var t=e.results,n=e.templatesConfig,r=a.prepareTemplateProps({transformData:h,defaultTemplates:l,templatesConfig:n,templates:d});o.render(i.createElement(c,{cssClasses:y,hits:t.hits,results:t,templateProps:r}),g)}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper("ais-hits"),u=n(497),c=n(557),l=n(558),p="Usage:\nhits({\n container,\n [ cssClasses.{root,empty,item}={} ],\n [ templates.{empty,item} ],\n [ transformData.{empty=identity,item=identity} ],\n [ hitsPerPage=20 ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(545),l=n(500),p=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"renderWithResults",value:function(){var e=this,t=c(this.props.results.hits,function(t){return u.createElement(l,o({cssClass:e.props.cssClasses.item,data:t,key:t.objectID,templateKey:"item"},e.props.templateProps))});return u.createElement("div",{className:this.props.cssClasses.root},t)}},{key:"renderNoResults",value:function(){var e=this.props.cssClasses.root+" "+this.props.cssClasses.empty;return u.createElement(l,o({cssClass:e,data:this.props.results,templateKey:"empty"},this.props.templateProps))}},{key:"render",value:function(){return this.props.results.hits.length>0?this.renderWithResults():this.renderNoResults()}}]),t}(u.Component);p.propTypes={cssClasses:u.PropTypes.shape({root:u.PropTypes.string,item:u.PropTypes.string,empty:u.PropTypes.string}),results:u.PropTypes.object,templateProps:u.PropTypes.object.isRequired},p.defaultProps={results:{hits:[]}},e.exports=p},function(e){"use strict";e.exports={empty:"No results",item:function(e){return JSON.stringify(e,null,2)}}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.options,f=e.cssClasses,d=void 0===f?{}:f,h=e.autoHideContainer,m=void 0===h?!1:h;if(!t||!r)throw new Error(p);var v=a.getContainerNode(t),g=n(563);return m===!0&&(g=l(g)),{init:function(e){var t=e.state,n=s(r,function(e){return+t.hitsPerPage===+e.value});n||(void 0===t.hitsPerPage?window.console&&window.console.log("[Warning][hitsPerPageSelector] hitsPerPage not defined.You should probably used a `hits` widget or set the value `hitsPerPage` using the searchParameters attribute of the instantsearch constructor."):window.console&&window.console.log("[Warning][hitsPerPageSelector] No option in `options` with `value: hitsPerPage` (hitsPerPage: "+t.hitsPerPage+")"),r=[{value:void 0,label:""}].concat(r))},setHitsPerPage:function(e,t){e.setQueryParameter("hitsPerPage",+t),e.search()},render:function(e){var t=e.helper,n=e.state,a=e.results,s=n.hitsPerPage,l=0===a.nbHits,p=this.setHitsPerPage.bind(this,t),f={root:c(u(null),d.root),item:c(u("item"),d.item)};o.render(i.createElement(g,{cssClasses:f,currentValue:s,options:r,setValue:p,shouldAutoHideContainer:l}),v)}}}var i=n(313),o=n(469),a=n(470),s=n(560),u=a.bemHelper("ais-hits-per-page-selector"),c=n(497),l=n(498),p="Usage:\nhitsPerPageSelector({\n container,\n options,\n [ cssClasses.{root,item}={} ],\n [ autoHideContainer=false ]\n})";e.exports=r},function(e,t,n){"use strict";e.exports=n(561)},function(e,t,n){"use strict";function r(e,t,n){var r=s(e)?i:a;return n&&u(e,t,n)&&(t=void 0),("function"!=typeof t||void 0!==n)&&(t=o(t,n,3)),r(e,t)}var i=n(308),o=n(474),a=n(562),s=n(272),u=n(289);e.exports=r},function(e,t,n){"use strict";function r(e,t){var n;return i(e,function(e,r,i){return n=t(e,r,i),!n}),!!n}var i=n(255);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"handleChange",value:function(e){this.props.setValue(e.target.value)}},{key:"render",value:function(){var e=this,t=this.props,n=t.currentValue,r=t.options,i=this.handleChange.bind(this);return s.createElement("select",{className:this.props.cssClasses.root,defaultValue:n,onChange:i},r.map(function(t){return s.createElement("option",{className:e.props.cssClasses.item,key:t.value,value:t.value},t.label)}))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({root:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.arrayOf(s.PropTypes.string)]),item:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.arrayOf(s.PropTypes.string)])}),currentValue:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,options:s.PropTypes.arrayOf(s.PropTypes.shape({value:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,label:s.PropTypes.string.isRequired})).isRequired,setValue:s.PropTypes.func.isRequired},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,m=e.sortBy,v=void 0===m?["count:desc"]:m,g=e.limit,y=void 0===g?100:g,b=e.cssClasses,x=void 0===b?{}:b,w=e.templates,E=void 0===w?d:w,_=e.transformData,C=e.autoHideContainer,N=void 0===C?!0:C;if(!t||!r)throw new Error(h);var $=u.getContainerNode(t),O=f(n(555));N===!0&&(O=p(O));var T=r;return{getConfiguration:function(){return{hierarchicalFacets:[{name:T,attributes:[r]}]}},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,p=e.state,f=e.createURL,h=o(t,T,v,y),m=0===h.length,g=u.prepareTemplateProps({transformData:_,defaultTemplates:d,templatesConfig:r,templates:E}),b={root:l(c(null),x.root),header:l(c("header"),x.header),body:l(c("body"),x.body),footer:l(c("footer"),x.footer),list:l(c("list"),x.list),item:l(c("item"),x.item),active:l(c("item","active"),x.active),link:l(c("link"),x.link),count:l(c("count"),x.count)};s.render(a.createElement(O,{createURL:function(e){return f(p.toggleRefinement(T,e))},cssClasses:b,facetValues:h,shouldAutoHideContainer:m,templateProps:g,toggleRefinement:i.bind(null,n,T)}),$)}}}function i(e,t,n){e.toggleRefinement(t,n).search()}function o(e,t,n,r){var i=e.getFacetValues(t,{sortBy:n});return i.data&&i.data.slice(0,r)||[]}var a=n(313),s=n(469),u=n(470),c=u.bemHelper("ais-menu"),l=n(497),p=n(498),f=n(499),d=n(565),h="Usage:\nmenu({\n container,\n attributeName,\n [sortBy],\n [limit],\n [cssClasses.{root,list,item}],\n [templates.{header,item,footer}],\n [transformData],\n [autoHideContainer]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}" href="{{url}}">{{name}} <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span></a>',footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e){var t=e.container,i=e.attributeName,h=e.operator,m=void 0===h?"or":h,v=e.sortBy,g=void 0===v?["count:desc"]:v,y=e.limit,b=void 0===y?1e3:y,x=e.cssClasses,w=void 0===x?{}:x,E=e.templates,_=void 0===E?f:E,C=e.transformData,N=e.autoHideContainer,$=void 0===N?!0:N,O=n(555);if(!t||!i)throw new Error(d);O=p(O),$===!0&&(O=l(O));var T=s.getContainerNode(t);if(m&&(m=m.toLowerCase(),"and"!==m&&"or"!==m))throw new Error(d);return{getConfiguration:function(e){var t=r({},"and"===m?"facets":"disjunctiveFacets",[i]),n=e.maxValuesPerFacet||0;return t.maxValuesPerFacet=Math.max(n,b),t},toggleRefinement:function(e,t){e.toggleRefinement(i,t).search()},render:function(e){var t=e.results,n=e.helper,r=e.templatesConfig,l=e.state,p=e.createURL,d=s.prepareTemplateProps({transformData:C,defaultTemplates:f,templatesConfig:r,templates:_}),h=t.getFacetValues(i,{sortBy:g}).slice(0,b),m=0===h.length,v={root:c(u(null),w.root),header:c(u("header"),w.header),body:c(u("body"),w.body),footer:c(u("footer"),w.footer),list:c(u("list"),w.list),item:c(u("item"),w.item),active:c(u("item","active"),w.active),label:c(u("label"),w.label),checkbox:c(u("checkbox"),w.checkbox),count:c(u("count"),w.count)},y=this.toggleRefinement.bind(this,n);a.render(o.createElement(O,{createURL:function(e){return p(l.toggleRefinement(i,e))},cssClasses:v,facetValues:h,shouldAutoHideContainer:m,templateProps:d,toggleRefinement:y}),T)}}}var o=n(313),a=n(469),s=n(470),u=s.bemHelper("ais-refinement-list"),c=n(497),l=n(498),p=n(499),f=n(567),d="Usage:\nrefinementList({\n container,\n attributeName,\n [ operator='or' ],\n [ sortBy=['count:desc'] ],\n [ limit=1000 ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count}],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=i},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>\n</label>',footer:""}},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributeName,a=e.options,f=e.cssClasses,d=void 0===f?{}:f,y=e.templates,b=void 0===y?v:y,x=e.transformData,w=e.autoHideContainer,E=void 0===w?!0:w;if(!t||!r||!a)throw new Error(g);var _=c.getContainerNode(t),C=m(n(555));return E===!0&&(C=h(C)),{getConfiguration:function(){return{}},render:function(e){var t=e.helper,n=e.results,f=e.templatesConfig,h=e.state,m=e.createURL,g=c.prepareTemplateProps({transformData:x,defaultTemplates:v,templatesConfig:f,templates:b}),y=a.map(function(e){return e.isRefined=i(t.state,r,e),e.attributeName=r,e}),w=0===n.nbHits,E={root:p(l(null),d.root),header:p(l("header"),d.header),body:p(l("body"),d.body),footer:p(l("footer"),d.footer),list:p(l("list"),d.list),item:p(l("item"),d.item),label:p(l("label"),d.label),radio:p(l("radio"),d.radio),active:p(l("item","active"),d.active)};u.render(s.createElement(C,{createURL:function(e){return m(o(h,r,a,e))},cssClasses:E,facetValues:y,shouldAutoHideContainer:w,templateProps:g,toggleRefinement:this._toggleRefinement.bind(null,t)}),_)},_toggleRefinement:function(e,t){var n=o(e.state,r,a,t);e.setState(n),e.search()}}}function i(e,t,n){var r=e.getNumericRefinements(t);return void 0!==n.start&&void 0!==n.end&&n.start===n.end?a(r,"=",n.start):void 0!==n.start?a(r,">=",n.start):void 0!==n.end?a(r,"<=",n.end):void 0===n.start&&void 0===n.end?0===Object.keys(r).length:void 0}function o(e,t,n,r){var o=f(n,{name:r}),s=e.getNumericRefinements(t);if(void 0===o.start&&void 0===o.end)return e.clearRefinements(t);if(i(e,t,o)||(e=e.clearRefinements(t)),void 0!==o.start&&void 0!==o.end){if(o.start>o.end)throw new Error("option.start should be > to option.end");if(o.start===o.end)return e=a(s,"=",o.start)?e.removeNumericRefinement(t,"=",o.start):e.addNumericRefinement(t,"=",o.start)}return void 0!==o.start&&(e=a(s,">=",o.start)?e.removeNumericRefinement(t,">=",o.start):e.addNumericRefinement(t,">=",o.start)),void 0!==o.end&&(e=a(s,"<=",o.end)?e.removeNumericRefinement(t,"<=",o.end):e.addNumericRefinement(t,"<=",o.end)),e}function a(e,t,n){var r=void 0!==e[t],i=d(e[t],n);return r&&i}var s=n(313),u=n(469),c=n(470),l=c.bemHelper("ais-refinement-list"),p=n(497),f=n(490),d=n(569),h=n(498),m=n(499),v=n(572),g="Usage:\nnumericRefinementList({\n container,\n attributeName,\n options,\n [ sortBy ],\n [ limit ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count} ],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t,n,r){var f=e?o(e):0;return u(f)||(e=l(e),f=e.length),n="number"!=typeof n||r&&s(t,n,r)?0:0>n?p(f+n,0):n||0,"string"==typeof e||!a(e)&&c(e)?f>=n&&e.indexOf(t,n)>-1:!!f&&i(e,t,n)>-1}var i=n(295),o=n(267),a=n(272),s=n(289),u=n(269),c=n(496),l=n(570),p=Math.max;e.exports=r},function(e,t,n){"use strict";function r(e){return i(e,o(e))}var i=n(571),o=n(261);e.exports=r},function(e){"use strict";function t(e,t){for(var n=-1,r=t.length,i=Array(r);++n<r;)i[n]=e[t[n]];return i}e.exports=t},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="radio" class="{{cssClasses.checkbox}}" name="{{attributeName}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n</label>',footer:""}},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.operator,p=void 0===r?"=":r,f=e.attributeName,d=e.options,h=e.cssClasses,m=void 0===h?{}:h,v=e.autoHideContainer,g=void 0===v?!1:v,y=a.getContainerNode(t),b="Usage: numericSelector({container, attributeName, options[, cssClasses.{root,item}, autoHideContainer]})",x=n(563);if(g===!0&&(x=c(x)),!t||!d||0===d.length||!f)throw new Error(b);return{init:function(e){var t=e.helper,n=this._getRefinedValue(t)||d[0].value;void 0!==n&&t.addNumericRefinement(f,p,n)},render:function(e){var t=e.helper,n=e.results,r=this._getRefinedValue(t),a=0===n.nbHits,u={root:s(l(null),m.root),item:s(l("item"),m.item)};o.render(i.createElement(x,{cssClasses:u,currentValue:r,options:d,setValue:this._refine.bind(this,t),shouldAutoHideContainer:a}),y)},_refine:function(e,t){e.clearRefinements(f),void 0!==t&&e.addNumericRefinement(f,p,t),e.search()},_getRefinedValue:function(e){var t=e.getRefinements(f),n=u(t,{operator:p});return n&&void 0!==n.value&&void 0!==n.value[0]?n.value[0]:void 0}}}var i=n(313),o=n(469),a=n(470),s=n(497),u=n(490),c=n(498),l=a.bemHelper("ais-numeric-selector");e.exports=r},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.cssClasses,d=void 0===r?{}:r,h=e.labels,m=void 0===h?{}:h,v=e.maxPages,g=void 0===v?20:v,y=e.padding,b=void 0===y?3:y,x=e.showFirstLast,w=void 0===x?!0:x,E=e.autoHideContainer,_=void 0===E?!0:E,C=e.scrollTo,N=void 0===C?"body":C;if(!t)throw new Error(f);N===!0&&(N="body");var $=u.getContainerNode(t),O=N!==!1?u.getContainerNode(N):!1,T=n(580);return _===!0&&(T=l(T)),m=a(m,p),{setCurrentPage:function(e,t){e.setCurrentPage(t),O!==!1&&O.scrollIntoView(),e.search()},render:function(e){var t=e.results,n=e.helper,r=e.createURL,a=e.state,u=t.page,l=t.nbPages,p=t.nbHits,f=0===p,h={root:s(c(null),d.root),item:s(c("item"),d.item),link:s(c("link"),d.link),page:s(c("item","page"),d.page),previous:s(c("item","previous"),d.previous),next:s(c("item","next"),d.next),first:s(c("item","first"),d.first),last:s(c("item","last"),d.last),active:s(c("item","active"),d.active),disabled:s(c("item","disabled"),d.disabled)};void 0!==g&&(l=Math.min(g,t.nbPages)),o.render(i.createElement(T,{createURL:function(e){return r(a.setPage(e))},cssClasses:h,currentPage:u,labels:m,nbHits:p,nbPages:l,padding:b,setCurrentPage:this.setCurrentPage.bind(this,n),shouldAutoHideContainer:f,showFirstLast:w}),$)}}}var i=n(313),o=n(469),a=n(575),s=n(497),u=n(470),c=u.bemHelper("ais-pagination"),l=n(498),p={previous:"‹",next:"›",first:"«",last:"»"},f="Usage:\npagination({\n container,\n [ cssClasses.{root,item,page,previous,next,first,last,active,disabled}={} ],\n [ labels.{previous,next,first,last} ],\n [ maxPages=20 ],\n [ padding=3 ],\n [ showFirstLast=true ],\n [ autoHideContainer=true ],\n [ scrollTo='body' ]\n})";e.exports=r},function(e,t,n){"use strict";var r=n(576),i=n(578),o=n(579),a=o(r,i);e.exports=a},function(e,t,n){"use strict";var r=n(577),i=n(532),o=n(288),a=o(function(e,t,n){return n?r(e,t,n):i(e,t)});e.exports=a},function(e,t,n){"use strict";function r(e,t,n){for(var r=-1,o=i(t),a=o.length;++r<a;){var s=o[r],u=e[s],c=n(u,t[s],s,e,t);(c===c?c===u:u!==u)&&(void 0!==u||s in e)||(e[s]=c)}return e}var i=n(261);e.exports=r},function(e){"use strict";function t(e,t){return void 0===e?t:e}e.exports=t},function(e,t,n){"use strict";function r(e,t){return i(function(n){var r=n[0];return null==r?r:(n.push(t),e.apply(void 0,n))})}var i=n(290);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=n(253),c=n(581),l=n(470),p=l.isSpecialClick,f=n(583),d=n(585),h=n(497),m=function(e){function t(e){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).call(this,c(e,t.defaultProps))}return i(t,e),o(t,[{key:"handleClick",value:function(e,t){p(t)||(t.preventDefault(),this.props.setCurrentPage(e))}},{key:"pageLink",value:function(e){var t=e.label,n=e.ariaLabel,r=e.pageNumber,i=e.additionalClassName,o=void 0===i?null:i,a=e.isDisabled,u=void 0===a?!1:a,c=e.isActive,l=void 0===c?!1:c,p=e.createURL,f=this.handleClick.bind(this,r),m={item:h(this.props.cssClasses.item,o),link:h(this.props.cssClasses.link)};u?m.item=h(m.item,this.props.cssClasses.disabled):l&&(m.item=h(m.item,this.props.cssClasses.active));var v=p&&!u?p(r):"#";return s.createElement(d,{ariaLabel:n,cssClasses:m,handleClick:f,key:t,label:t,url:v})}},{key:"previousPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Previous",additionalClassName:this.props.cssClasses.previous,isDisabled:e.isFirstPage(),label:this.props.labels.previous,pageNumber:e.currentPage-1,createURL:t})}},{key:"nextPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Next",additionalClassName:this.props.cssClasses.next,isDisabled:e.isLastPage(),label:this.props.labels.next,pageNumber:e.currentPage+1,createURL:t})}},{key:"firstPageLink",value:function(e,t){return this.pageLink({ariaLabel:"First",additionalClassName:this.props.cssClasses.first,isDisabled:e.isFirstPage(),label:this.props.labels.first,pageNumber:0,createURL:t})}},{key:"lastPageLink",value:function(e,t){return this.pageLink({ariaLabel:"Last",additionalClassName:this.props.cssClasses.last,isDisabled:e.isLastPage(),label:this.props.labels.last,pageNumber:e.total-1,createURL:t})}},{key:"pages",value:function n(e,t){var r=this,n=[];return u(e.pages(),function(i){var o=i===e.currentPage;n.push(r.pageLink({ariaLabel:i+1,additionalClassName:r.props.cssClasses.page,isActive:o,label:i+1,pageNumber:i,createURL:t}))}),n}},{key:"render",value:function(){var e=new f({currentPage:this.props.currentPage,total:this.props.nbPages,padding:this.props.padding}),t=this.props.createURL;return s.createElement("ul",{className:this.props.cssClasses.root},this.props.showFirstLast?this.firstPageLink(e,t):null,this.previousPageLink(e,t),this.pages(e,t),this.nextPageLink(e,t),this.props.showFirstLast?this.lastPageLink(e,t):null)}}]),t}(s.Component);m.propTypes={createURL:s.PropTypes.func,cssClasses:s.PropTypes.shape({root:s.PropTypes.string,item:s.PropTypes.string,link:s.PropTypes.string,page:s.PropTypes.string,previous:s.PropTypes.string,next:s.PropTypes.string,first:s.PropTypes.string,last:s.PropTypes.string,active:s.PropTypes.string,disabled:s.PropTypes.string
21
+ }),currentPage:s.PropTypes.number,labels:s.PropTypes.shape({first:s.PropTypes.string,last:s.PropTypes.string,next:s.PropTypes.string,previous:s.PropTypes.string}),nbHits:s.PropTypes.number,nbPages:s.PropTypes.number,padding:s.PropTypes.number,setCurrentPage:s.PropTypes.func.isRequired,showFirstLast:s.PropTypes.bool},m.defaultProps={nbHits:0,currentPage:0,nbPages:0},e.exports=m},function(e,t,n){"use strict";var r=n(579),i=n(279),o=n(582),a=r(i,o);e.exports=a},function(e,t,n){"use strict";function r(e,t){return void 0===e?t:i(e,t,r)}var i=n(279);e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),o=n(584),a=function(){function e(t){r(this,e),this.currentPage=t.currentPage,this.total=t.total,this.padding=t.padding}return i(e,[{key:"pages",value:function(){var e=this.total,t=this.currentPage,n=this.padding,r=this.nbPagesDisplayed(n,e);if(r===e)return o(0,e);var i=this.calculatePaddingLeft(t,n,e,r),a=r-i,s=t-i,u=t+a;return o(s,u)}},{key:"nbPagesDisplayed",value:function(e,t){return Math.min(2*e+1,t)}},{key:"calculatePaddingLeft",value:function(e,t,n,r){return t>=e?e:e>=n-t?r-(n-e):t}},{key:"isLastPage",value:function(){return this.currentPage===this.total-1}},{key:"isFirstPage",value:function(){return 0===this.currentPage}}]),e}();e.exports=a},function(e,t,n){"use strict";function r(e,t,n){n&&i(e,t,n)&&(t=n=void 0),e=+e||0,n=null==n?1:+n||0,null==t?(t=e,e=0):t=+t||0;for(var r=-1,s=a(o((t-e)/(n||1)),0),u=Array(s);++r<s;)u[r]=e,e+=n;return u}var i=n(289),o=Math.ceil,a=Math.max;e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"render",value:function(){var e=this.props,t=e.cssClasses,n=e.label,r=e.ariaLabel,i=e.handleClick,o=e.url;return s.createElement("li",{className:t.item},s.createElement("a",{ariaLabel:r,className:t.link,dangerouslySetInnerHTML:{__html:n},href:o,onClick:i}))}}]),t}(s.Component);u.propTypes={ariaLabel:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,cssClasses:s.PropTypes.shape({item:s.PropTypes.string,link:s.PropTypes.string}),handleClick:s.PropTypes.func.isRequired,label:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number]).isRequired,url:s.PropTypes.string},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,h=e.cssClasses,m=void 0===h?{}:h,v=e.templates,g=void 0===v?u:v,y=e.labels,b=void 0===y?{currency:"$",button:"Go",separator:"to"}:y,x=e.autoHideContainer,w=void 0===x?!0:x;if(!t||!r)throw new Error(d);var E=a.getContainerNode(t),_=l(n(589));return w===!0&&(_=c(_)),{getConfiguration:function(){return{facets:[r]}},_generateRanges:function(e){var t=e.getFacetStats(r);return s(t)},_extractRefinedRange:function(e){var t=e.getRefinements(r),n=void 0,i=void 0;return 0===t.length?[]:(t.forEach(function(e){-1!==e.operator.indexOf(">")?n=Math.floor(e.value[0]):-1!==e.operator.indexOf("<")&&(i=Math.ceil(e.value[0]))}),[{from:n,to:i,isRefined:!0}])},_refine:function(e,t,n){var i=this._extractRefinedRange(e);e.clearRefinements(r),(0===i.length||i[0].from!==t||i[0].to!==n)&&("undefined"!=typeof t&&e.addNumericRefinement(r,">=",Math.floor(t)),"undefined"!=typeof n&&e.addNumericRefinement(r,"<=",Math.ceil(n))),e.search()},render:function(e){var t=e.results,n=e.helper,s=e.templatesConfig,c=e.state,l=e.createURL,d=void 0;t.hits.length>0?(d=this._extractRefinedRange(n),0===d.length&&(d=this._generateRanges(t))):d=[];var h=a.prepareTemplateProps({defaultTemplates:u,templatesConfig:s,templates:g}),v=0===d.length,y={root:f(p(null),m.root),header:f(p("header"),m.header),body:f(p("body"),m.body),list:f(p("list"),m.list),link:f(p("link"),m.link),item:f(p("item"),m.item),active:f(p("item","active"),m.active),form:f(p("form"),m.form),label:f(p("label"),m.label),input:f(p("input"),m.input),currency:f(p("currency"),m.currency),button:f(p("button"),m.button),separator:f(p("separator"),m.separator),footer:f(p("footer"),m.footer)};o.render(i.createElement(_,{createURL:function(e,t,n){var i=c.clearRefinements(r);return n||("undefined"!=typeof e&&(i=i.addNumericRefinement(r,">=",Math.floor(e))),"undefined"!=typeof t&&(i=i.addNumericRefinement(r,"<=",Math.ceil(t)))),l(i)},cssClasses:y,facetValues:d,labels:b,refine:this._refine.bind(this,n),shouldAutoHideContainer:v,templateProps:h}),E)}}}var i=n(313),o=n(469),a=n(470),s=n(587),u=n(588),c=n(498),l=n(499),p=a.bemHelper("ais-price-ranges"),f=n(497),d="Usage:\npriceRanges({\n container,\n attributeName,\n [ cssClasses.{root,header,body,list,item,active,link,form,label,input,currency,separator,button,footer} ],\n [ templates.{header,item,footer} ],\n [ labels.{currency,separator,button} ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";function t(e,t){var n=Math.round(e/t)*t;return 1>n&&(n=1),n}function n(e){var n=void 0;n=e.avg<100?1:e.avg<1e3?10:100;for(var r=t(Math.round(e.avg),n),i=Math.ceil(e.min),o=t(Math.floor(e.max),n);o>e.max;)o-=n;var a=void 0,s=void 0,u=[];if(i!==o){for(a=i,u.push({to:a});r>a;)s=u[u.length-1].to,a=t(s+(r-i)/3,n),s>=a&&(a=s+1),u.push({from:s,to:a});for(;o>a;)s=u[u.length-1].to,a=t(s+(o-r)/3,n),s>=a&&(a=s+1),u.push({from:s,to:a});1===u.length&&a!==r&&(u.push({from:a,to:r}),a=r),1===u.length?(u[0].from=e.min,u[0].to=e.max):delete u[u.length-1].to}return u}e.exports=n},function(e){"use strict";e.exports={header:"",item:"\n {{#from}}\n {{^to}}\n &ge;\n {{/to}}\n ${{from}}\n {{/from}}\n {{#to}}\n {{#from}}\n -\n {{/from}}\n {{^from}}\n &le;\n {{/from}}\n ${{to}}\n {{/to}}\n ",footer:""}},function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=n(500),p=n(590),f=n(497),d=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"getForm",value:function(){return c.createElement(p,{cssClasses:this.props.cssClasses,labels:this.props.labels,refine:this.refine.bind(this)})}},{key:"getURLFromFacetValue",value:function(e){return this.props.createURL?this.props.createURL(e.from,e.to,e.isRefined):"#"}},{key:"getItemFromFacetValue",value:function(e){var t=f(this.props.cssClasses.item,r({},this.props.cssClasses.active,e.isRefined)),n=this.getURLFromFacetValue(e),i=e.from+"_"+e.to,o=this.refine.bind(this,e.from,e.to);return c.createElement("div",{className:t,key:i},c.createElement("a",{className:this.props.cssClasses.link,href:n,onClick:o},c.createElement(l,a({data:e,templateKey:"item"},this.props.templateProps))))}},{key:"refine",value:function(e,t,n){n.preventDefault(),this.setState({formFromValue:null,formToValue:null}),this.props.refine(e,t)}},{key:"render",value:function(){var e=this,t=this.getForm();return c.createElement("div",null,c.createElement("div",{className:this.props.cssClasses.list},this.props.facetValues.map(function(t){return e.getItemFromFacetValue(t)})),t)}}]),t}(c.Component);d.propTypes={createURL:c.PropTypes.func.isRequired,cssClasses:c.PropTypes.shape({active:c.PropTypes.string,button:c.PropTypes.string,form:c.PropTypes.string,input:c.PropTypes.string,item:c.PropTypes.string,label:c.PropTypes.string,link:c.PropTypes.string,list:c.PropTypes.string,separator:c.PropTypes.string}),facetValues:c.PropTypes.array,labels:c.PropTypes.shape({button:c.PropTypes.string,currency:c.PropTypes.string,to:c.PropTypes.string}),refine:c.PropTypes.func.isRequired,templateProps:c.PropTypes.object.isRequired},d.defaultProps={cssClasses:{}},e.exports=d},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"getInput",value:function(e){return s.createElement("label",{className:this.props.cssClasses.label},s.createElement("span",{className:this.props.cssClasses.currency},this.props.labels.currency," "),s.createElement("input",{className:this.props.cssClasses.input,ref:e,type:"number"}))}},{key:"handleSubmit",value:function(e){var t=+this.refs.from.value||void 0,n=+this.refs.to.value||void 0;this.props.refine(t,n,e)}},{key:"render",value:function(){var e=this.getInput("from"),t=this.getInput("to"),n=this.handleSubmit.bind(this);return s.createElement("form",{className:this.props.cssClasses.form,onSubmit:n,ref:"form"},e,s.createElement("span",{className:this.props.cssClasses.separator}," ",this.props.labels.separator," "),t,s.createElement("button",{className:this.props.cssClasses.button,type:"submit"},this.props.labels.button))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({button:s.PropTypes.string,currency:s.PropTypes.string,form:s.PropTypes.string,input:s.PropTypes.string,label:s.PropTypes.string,separator:s.PropTypes.string}),labels:s.PropTypes.shape({button:s.PropTypes.string,currency:s.PropTypes.string,separator:s.PropTypes.string}),refine:s.PropTypes.func.isRequired},u.defaultProps={cssClasses:{},labels:{}},e.exports=u},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.placeholder,d=void 0===r?"":r,h=e.cssClasses,m=void 0===h?{}:h,v=e.poweredBy,g=void 0===v?!1:v,y=e.wrapInput,b=void 0===y?!0:y,x=e.autofocus,w=void 0===x?"auto":x,E=e.searchOnEnterKeyPressOnly,_=void 0===E?!1:E;if(!t)throw new Error(f);return t=a.getContainerNode(t),"boolean"!=typeof w&&(w="auto"),{getInput:function(){return"INPUT"===t.tagName?t:document.createElement("input")},wrapInput:function(e){var t=document.createElement("div");return t.classList.add(c(u(null),m.root)),t.appendChild(e),t},addDefaultAttributesToInput:function(e,t){var n={autocapitalize:"off",autocomplete:"off",autocorrect:"off",placeholder:d,role:"textbox",spellcheck:"false",type:"text",value:t};s(n,function(t,n){e.hasAttribute(n)||e.setAttribute(n,t)}),e.classList.add(c(u("input"),m.input))},addPoweredBy:function(e){var t=n(592),r=document.createElement("div");e.parentNode.insertBefore(r,e.nextSibling);var a={root:c(u("powered-by"),m.poweredBy),link:u("powered-by-link")};o.render(i.createElement(t,{cssClasses:a}),r)},init:function(e){function n(e){var t=e.currentTarget?e.currentTarget:e.srcElement;i.setQuery(t.value),_||i.search()}var r=e.state,i=e.helper,o="INPUT"===t.tagName,a=this.getInput();if(this.addDefaultAttributesToInput(a,r.query),a.addEventListener("keyup",function(e){i.setQuery(a.value),_&&e.keyCode===l&&i.search(),window.attachEvent&&e.keyCode===p&&i.search()}),window.attachEvent?a.attachEvent("onpropertychange",n):a.addEventListener("input",n,!1),o){var s=document.createElement("div");a.parentNode.insertBefore(s,a);var u=a.parentNode,c=b?this.wrapInput(a):a;u.replaceChild(c,s)}else{var c=b?this.wrapInput(a):a;t.appendChild(c)}g&&this.addPoweredBy(a),i.on("change",function(e){a!==document.activeElement&&a.value!==e.query&&(a.value=r.query)}),(w===!0||"auto"===w&&""===i.state.query)&&a.focus()}}}var i=n(313),o=n(469),a=n(470),s=n(253),u=n(470).bemHelper("ais-search-box"),c=n(497),l=13,p=8,f="Usage:\nsearchBox({\n container,\n [ placeholder ],\n [ cssClasses.{input,poweredBy} ],\n [ poweredBy ],\n [ wrapInput ],\n [ autofocus ],\n [ searchOnEnterKeyPressOnly ]\n})";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},s=n(313),u=function(e){function t(){r(this,t),a(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),o(t,[{key:"render",value:function(){return s.createElement("div",{className:this.props.cssClasses.root},"Powered by",s.createElement("a",{className:this.props.cssClasses.link,href:"https://www.algolia.com/",target:"_blank"},"Algolia"))}}]),t}(s.Component);u.propTypes={cssClasses:s.PropTypes.shape({root:s.PropTypes.string,link:s.PropTypes.string})},e.exports=u},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,f=e.tooltips,d=void 0===f?!0:f,h=e.templates,m=void 0===h?l:h,v=e.cssClasses,g=void 0===v?{root:null,body:null}:v,y=e.step,b=void 0===y?1:y,x=e.pips,w=void 0===x?!0:x,E=e.autoHideContainer,_=void 0===E?!0:E;if(!t||!r)throw new Error(p);var C=a.getContainerNode(t),N=c(n(594));return _===!0&&(N=u(N)),{getConfiguration:function(){return{disjunctiveFacets:[r]}},_getCurrentRefinement:function(e){var t=e.state.getNumericRefinement(r,">="),n=e.state.getNumericRefinement(r,"<=");return t=t&&t.length?t[0]:-(1/0),n=n&&n.length?n[0]:1/0,{min:t,max:n}},_refine:function(e,t,n){e.clearRefinements(r),n[0]>t.min&&e.addNumericRefinement(r,">=",Math.round(n[0])),n[1]<t.max&&e.addNumericRefinement(r,"<=",Math.round(n[1])),e.search()},render:function(e){var t=e.results,n=e.helper,u=e.templatesConfig,c=s(t.disjunctiveFacets,{name:r}),p=void 0!==c?c.stats:void 0,f=this._getCurrentRefinement(n);void 0===p&&(p={min:null,max:null});var h=p.min===p.max,v=a.prepareTemplateProps({defaultTemplates:l,templatesConfig:u,templates:m});o.render(i.createElement(N,{cssClasses:g,onChange:this._refine.bind(this,n,p),pips:w,range:{min:Math.floor(p.min),max:Math.ceil(p.max)},shouldAutoHideContainer:h,start:[f.min,f.max],step:b,templateProps:v,tooltips:d}),C)}}}var i=n(313),o=n(469),a=n(470),s=n(490),u=n(498),c=n(499),l={header:"",footer:""},p="Usage:\nrangeSlider({\n container,\n attributeName,\n [ tooltips=true ],\n [ templates.{header, footer} ],\n [ cssClasses.{root, body} ],\n [ step=1 ],\n [ pips=true ],\n [ autoHideContainer=true ]\n});\n";e.exports=r},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(595),l="ais-range-slider--",p=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"handleChange",value:function(e,t,n){this.props.onChange(n)}},{key:"render",value:function(){var e=void 0;return e=this.props.pips===!1?void 0:this.props.pips===!0||"undefined"==typeof this.props.pips?{mode:"positions",density:3,values:[0,50,100],stepped:!0,format:{to:function(e){return Number(e).toLocaleString()}}}:this.props.pips,u.createElement(c,o({},this.props,{animate:!1,behaviour:"snap",connect:!0,cssPrefix:l,onChange:this.handleChange.bind(this),pips:e}))}}]),t}(u.Component);p.propTypes={onChange:u.PropTypes.func,onSlide:u.PropTypes.func,pips:u.PropTypes.oneOfType([u.PropTypes.bool,u.PropTypes.object]),range:u.PropTypes.object.isRequired,start:u.PropTypes.arrayOf(u.PropTypes.number).isRequired,tooltips:u.PropTypes.oneOfType([u.PropTypes.bool,u.PropTypes.object])},e.exports=p},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},c=n(313),l=r(c),p=n(596),f=r(p),d=function(e){function t(){i(this,t),u(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return o(t,e),s(t,[{key:"componentDidMount",value:function(){this.createSlider()}},{key:"componentDidUpdate",value:function(){this.slider.destroy(),this.createSlider()}},{key:"componentWillUnmount",value:function(){this.slider.destroy()}},{key:"createSlider",value:function(){var e=this.slider=f["default"].create(this.sliderContainer,a({},this.props));this.props.onUpdate&&e.on("update",this.props.onUpdate),this.props.onChange&&e.on("change",this.props.onChange)}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{ref:function(t){e.sliderContainer=t}})}}]),t}(l["default"].Component);d.propTypes={animate:l["default"].PropTypes.bool,connect:l["default"].PropTypes.oneOfType([l["default"].PropTypes.oneOf(["lower","upper"]),l["default"].PropTypes.bool]),cssPrefix:l["default"].PropTypes.string,direction:l["default"].PropTypes.oneOf(["ltr","rtl"]),limit:l["default"].PropTypes.number,margin:l["default"].PropTypes.number,onChange:l["default"].PropTypes.func,onUpdate:l["default"].PropTypes.func,orientation:l["default"].PropTypes.oneOf(["horizontal","vertical"]),pips:l["default"].PropTypes.object,range:l["default"].PropTypes.object.isRequired,start:l["default"].PropTypes.arrayOf(l["default"].PropTypes.number).isRequired,step:l["default"].PropTypes.number,tooltips:l["default"].PropTypes.oneOfType([l["default"].PropTypes.bool,l["default"].PropTypes.object])},e.exports=d},function(e,t){var n,r,i;!function(o){r=[],n=o,i="function"==typeof n?n.apply(t,r):n,!(void 0!==i&&(e.exports=i))}(function(){"use strict";function e(e){return e.filter(function(e){return this[e]?!1:this[e]=!0},{})}function t(e,t){return Math.round(e/t)*t}function n(e){var t=e.getBoundingClientRect(),n=e.ownerDocument,r=n.documentElement,i=f();return/webkit.*Chrome.*Mobile/i.test(navigator.userAgent)&&(i.x=0),{top:t.top+i.y-r.clientTop,left:t.left+i.x-r.clientLeft}}function r(e){return"number"==typeof e&&!isNaN(e)&&isFinite(e)}function i(e){var t=Math.pow(10,7);return Number((Math.round(e*t)/t).toFixed(7))}function o(e,t,n){c(e,t),setTimeout(function(){l(e,t)},n)}function a(e){return Math.max(Math.min(e,100),0)}function s(e){return Array.isArray(e)?e:[e]}function u(e){var t=e.split(".");return t.length>1?t[1].length:0}function c(e,t){e.classList?e.classList.add(t):e.className+=" "+t}function l(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")}function p(e,t){e.classList?e.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(e.className)}function f(){var e=void 0!==window.pageXOffset,t="CSS1Compat"===(document.compatMode||""),n=e?window.pageXOffset:t?document.documentElement.scrollLeft:document.body.scrollLeft,r=e?window.pageYOffset:t?document.documentElement.scrollTop:document.body.scrollTop;return{x:n,y:r}}function d(e){return function(t){return e+t}}function h(e,t){return 100/(t-e)}function m(e,t){return 100*t/(e[1]-e[0])}function v(e,t){return m(e,e[0]<0?t+Math.abs(e[0]):t-e[0])}function g(e,t){return t*(e[1]-e[0])/100+e[0]}function y(e,t){for(var n=1;e>=t[n];)n+=1;return n}function b(e,t,n){if(n>=e.slice(-1)[0])return 100;var r,i,o,a,s=y(n,e);return r=e[s-1],i=e[s],o=t[s-1],a=t[s],o+v([r,i],n)/h(o,a)}function x(e,t,n){if(n>=100)return e.slice(-1)[0];var r,i,o,a,s=y(n,t);return r=e[s-1],i=e[s],o=t[s-1],a=t[s],g([r,i],(n-o)*h(o,a))}function w(e,n,r,i){if(100===i)return i;var o,a,s=y(i,e);return r?(o=e[s-1],a=e[s],i-o>(a-o)/2?a:o):n[s-1]?e[s-1]+t(i-e[s-1],n[s-1]):i}function E(e,t,n){var i;if("number"==typeof t&&(t=[t]),"[object Array]"!==Object.prototype.toString.call(t))throw new Error("noUiSlider: 'range' contains invalid value.");if(i="min"===e?0:"max"===e?100:parseFloat(e),!r(i)||!r(t[0]))throw new Error("noUiSlider: 'range' value isn't numeric.");n.xPct.push(i),n.xVal.push(t[0]),i?n.xSteps.push(isNaN(t[1])?!1:t[1]):isNaN(t[1])||(n.xSteps[0]=t[1])}function _(e,t,n){return t?void(n.xSteps[e]=m([n.xVal[e],n.xVal[e+1]],t)/h(n.xPct[e],n.xPct[e+1])):!0}function C(e,t,n,r){this.xPct=[],this.xVal=[],this.xSteps=[r||!1],this.xNumSteps=[!1],this.snap=t,this.direction=n;var i,o=[];for(i in e)e.hasOwnProperty(i)&&o.push([e[i],i]);for(o.sort(o.length&&"object"==typeof o[0][0]?function(e,t){return e[0][0]-t[0][0]}:function(e,t){return e[0]-t[0]}),i=0;i<o.length;i++)E(o[i][1],o[i][0],this);for(this.xNumSteps=this.xSteps.slice(0),i=0;i<this.xNumSteps.length;i++)_(i,this.xNumSteps[i],this)}function N(e,t){if(!r(t))throw new Error("noUiSlider: 'step' is not numeric.");e.singleStep=t}function $(e,t){if("object"!=typeof t||Array.isArray(t))throw new Error("noUiSlider: 'range' is not an object.");if(void 0===t.min||void 0===t.max)throw new Error("noUiSlider: Missing 'min' or 'max' in 'range'.");e.spectrum=new C(t,e.snap,e.dir,e.singleStep)}function O(e,t){if(t=s(t),!Array.isArray(t)||!t.length||t.length>2)throw new Error("noUiSlider: 'start' option is incorrect.");e.handles=t.length,e.start=t}function T(e,t){if(e.snap=t,"boolean"!=typeof t)throw new Error("noUiSlider: 'snap' option must be a boolean.")}function P(e,t){if(e.animate=t,"boolean"!=typeof t)throw new Error("noUiSlider: 'animate' option must be a boolean.")}function S(e,t){if("lower"===t&&1===e.handles)e.connect=1;else if("upper"===t&&1===e.handles)e.connect=2;else if(t===!0&&2===e.handles)e.connect=3;else{if(t!==!1)throw new Error("noUiSlider: 'connect' option doesn't match handle count.");e.connect=0}}function D(e,t){switch(t){case"horizontal":e.ort=0;break;case"vertical":e.ort=1;break;default:throw new Error("noUiSlider: 'orientation' option is invalid.")}}function R(e,t){if(!r(t))throw new Error("noUiSlider: 'margin' option must be numeric.");if(e.margin=e.spectrum.getMargin(t),!e.margin)throw new Error("noUiSlider: 'margin' option is only supported on linear sliders.")}function k(e,t){if(!r(t))throw new Error("noUiSlider: 'limit' option must be numeric.");if(e.limit=e.spectrum.getMargin(t),!e.limit)throw new Error("noUiSlider: 'limit' option is only supported on linear sliders.")}function A(e,t){switch(t){case"ltr":e.dir=0;break;case"rtl":e.dir=1,e.connect=[0,2,1,3][e.connect];break;default:throw new Error("noUiSlider: 'direction' option was not recognized.")}}function j(e,t){if("string"!=typeof t)throw new Error("noUiSlider: 'behaviour' must be a string containing options.");var n=t.indexOf("tap")>=0,r=t.indexOf("drag")>=0,i=t.indexOf("fixed")>=0,o=t.indexOf("snap")>=0;if(r&&!e.connect)throw new Error("noUiSlider: 'drag' behaviour must be used with 'connect': true.");e.events={tap:n||o,drag:r,fixed:i,snap:o}}function I(e,t){if(t===!0&&(e.tooltips=!0),t&&t.format){if("function"!=typeof t.format)throw new Error("noUiSlider: 'tooltips.format' must be an object.");e.tooltips={format:t.format}}}function M(e,t){if(e.format=t,"function"==typeof t.to&&"function"==typeof t.from)return!0;throw new Error("noUiSlider: 'format' requires 'to' and 'from' methods.")}function F(e,t){if(void 0!==t&&"string"!=typeof t)throw new Error("noUiSlider: 'cssPrefix' must be a string.");e.cssPrefix=t}function L(e){var t,n={margin:0,limit:0,animate:!0,format:B};t={step:{r:!1,t:N},start:{r:!0,t:O},connect:{r:!0,t:S},direction:{r:!0,t:A},snap:{r:!1,t:T},animate:{r:!1,t:P},range:{r:!0,t:$},orientation:{r:!1,t:D},margin:{r:!1,t:R},limit:{r:!1,t:k},behaviour:{r:!0,t:j},format:{r:!1,t:M},tooltips:{r:!1,t:I},cssPrefix:{r:!1,t:F}};var r={connect:!1,direction:"ltr",behaviour:"tap",orientation:"horizontal"};return Object.keys(r).forEach(function(t){void 0===e[t]&&(e[t]=r[t])}),Object.keys(t).forEach(function(r){var i=t[r];if(void 0===e[r]){if(i.r)throw new Error("noUiSlider: '"+r+"' is required.");return!0}i.t(n,e[r])}),n.pips=e.pips,n.style=n.ort?"top":"left",n}function V(t,r){function i(e,t,n){var r=e+t[0],i=e+t[1];return n?(0>r&&(i+=Math.abs(r)),i>100&&(r-=i-100),[a(r),a(i)]):[r,i]}function h(e,t){e.preventDefault();var n,r,i=0===e.type.indexOf("touch"),o=0===e.type.indexOf("mouse"),a=0===e.type.indexOf("pointer"),s=e;return 0===e.type.indexOf("MSPointer")&&(a=!0),i&&(n=e.changedTouches[0].pageX,r=e.changedTouches[0].pageY),t=t||f(),(o||a)&&(n=e.clientX+t.x,r=e.clientY+t.y),s.pageOffset=t,s.points=[n,r],s.cursor=o||a,s}function m(e,t){var n=document.createElement("div"),r=document.createElement("div"),i=["-lower","-upper"];return e&&i.reverse(),c(r,ee[3]),c(r,ee[3]+i[t]),c(n,ee[2]),n.appendChild(r),n}function v(e,t,n){switch(e){case 1:c(t,ee[7]),c(n[0],ee[6]);break;case 3:c(n[1],ee[6]);case 2:c(n[0],ee[7]);case 0:c(t,ee[6])}}function g(e,t,n){var r,i=[];for(r=0;e>r;r+=1)i.push(n.appendChild(m(t,r)));return i}function y(e,t,n){c(n,ee[0]),c(n,ee[8+e]),c(n,ee[4+t]);var r=document.createElement("div");return c(r,ee[1]),n.appendChild(r),r}function b(e){return e}function x(e){var t=document.createElement("div");return t.className=ee[18],e.firstChild.appendChild(t)}function w(e){var t=e.format?e.format:b,n=Q.map(x);B("update",function(e,r,i){n[r].innerHTML=t(e[r],i[r])})}function E(e,t,n){if("range"===e||"steps"===e)return X.xVal;if("count"===e){var r,i=100/(t-1),o=0;for(t=[];(r=o++*i)<=100;)t.push(r);e="positions"}return"positions"===e?t.map(function(e){return X.fromStepping(n?X.getStep(e):e)}):"values"===e?n?t.map(function(e){return X.fromStepping(X.getStep(X.toStepping(e)))}):t:void 0}function _(t,n,r){function i(e,t){return(e+t).toFixed(7)/1}var o=X.direction,a={},s=X.xVal[0],u=X.xVal[X.xVal.length-1],c=!1,l=!1,p=0;return X.direction=0,r=e(r.slice().sort(function(e,t){return e-t})),r[0]!==s&&(r.unshift(s),c=!0),r[r.length-1]!==u&&(r.push(u),l=!0),r.forEach(function(e,o){var s,u,f,d,h,m,v,g,y,b,x=e,w=r[o+1];if("steps"===n&&(s=X.xNumSteps[o]),s||(s=w-x),x!==!1&&void 0!==w)for(u=x;w>=u;u=i(u,s)){for(d=X.toStepping(u),h=d-p,g=h/t,y=Math.round(g),b=h/y,f=1;y>=f;f+=1)m=p+f*b,a[m.toFixed(5)]=["x",0];v=r.indexOf(u)>-1?1:"steps"===n?2:0,!o&&c&&(v=0),u===w&&l||(a[d.toFixed(5)]=[u,v]),p=d}}),X.direction=o,a}function C(e,t,n){function i(e){return["-normal","-large","-sub"][e]}function o(e,t,n){return'class="'+t+" "+t+"-"+s+" "+t+i(n[1])+'" style="'+r.style+": "+e+'%"'}function a(e,r){X.direction&&(e=100-e),r[1]=r[1]&&t?t(r[0],r[1]):r[1],u.innerHTML+="<div "+o(e,ee[21],r)+"></div>",r[1]&&(u.innerHTML+="<div "+o(e,ee[22],r)+">"+n.to(r[0])+"</div>")}var s=["horizontal","vertical"][r.ort],u=document.createElement("div");return c(u,ee[20]),c(u,ee[20]+"-"+s),Object.keys(e).forEach(function(t){a(t,e[t])}),u}function N(e){var t=e.mode,n=e.density||1,r=e.filter||!1,i=e.values||!1,o=e.stepped||!1,a=E(t,i,o),s=_(n,t,a),u=e.format||{to:Math.round};return Y.appendChild(C(s,r,u))}function $(){return K["offset"+["Width","Height"][r.ort]]}function O(e,t){
22
+ void 0!==t&&1!==r.handles&&(t=Math.abs(t-r.dir)),Object.keys(Z).forEach(function(n){var r=n.split(".")[0];e===r&&Z[n].forEach(function(e){e(s(F()),t,T(Array.prototype.slice.call(J)))})})}function T(e){return 1===e.length?e[0]:r.dir?e.reverse():e}function P(e,t,n,i){var o=function(t){return Y.hasAttribute("disabled")?!1:p(Y,ee[14])?!1:(t=h(t,i.pageOffset),e===H.start&&void 0!==t.buttons&&t.buttons>1?!1:(t.calcPoint=t.points[r.ort],void n(t,i)))},a=[];return e.split(" ").forEach(function(e){t.addEventListener(e,o,!1),a.push([e,o])}),a}function S(e,t){if(0===e.buttons&&0===e.which&&0!==t.buttonsProperty)return D(e,t);var n,r,o=t.handles||Q,a=!1,s=100*(e.calcPoint-t.start)/t.baseSize,u=o[0]===Q[0]?0:1;if(n=i(s,t.positions,o.length>1),a=j(o[0],n[u],1===o.length),o.length>1){if(a=j(o[1],n[u?0:1],!1)||a)for(r=0;r<t.handles.length;r++)O("slide",r)}else a&&O("slide",u)}function D(e,t){var n=K.querySelector("."+ee[15]),r=t.handles[0]===Q[0]?0:1;null!==n&&l(n,ee[15]),e.cursor&&(document.body.style.cursor="",document.body.removeEventListener("selectstart",document.body.noUiListener));var i=document.documentElement;i.noUiListeners.forEach(function(e){i.removeEventListener(e[0],e[1])}),l(Y,ee[12]),O("set",r),O("change",r)}function R(e,t){var n=document.documentElement;if(1===t.handles.length&&(c(t.handles[0].children[0],ee[15]),t.handles[0].hasAttribute("disabled")))return!1;e.stopPropagation();var r=P(H.move,n,S,{start:e.calcPoint,baseSize:$(),pageOffset:e.pageOffset,handles:t.handles,buttonsProperty:e.buttons,positions:[G[0],G[Q.length-1]]}),i=P(H.end,n,D,{handles:t.handles});if(n.noUiListeners=r.concat(i),e.cursor){document.body.style.cursor=getComputedStyle(e.target).cursor,Q.length>1&&c(Y,ee[12]);var o=function(){return!1};document.body.noUiListener=o,document.body.addEventListener("selectstart",o,!1)}}function k(e){var t,i,a=e.calcPoint,s=0;return e.stopPropagation(),Q.forEach(function(e){s+=n(e)[r.style]}),t=s/2>a||1===Q.length?0:1,a-=n(K)[r.style],i=100*a/$(),r.events.snap||o(Y,ee[14],300),Q[t].hasAttribute("disabled")?!1:(j(Q[t],i),O("slide",t),O("set",t),O("change",t),void(r.events.snap&&R(e,{handles:[Q[t]]})))}function A(e){var t,n;if(!e.fixed)for(t=0;t<Q.length;t+=1)P(H.start,Q[t].children[0],R,{handles:[Q[t]]});e.tap&&P(H.start,K,k,{handles:Q}),e.drag&&(n=[K.querySelector("."+ee[7])],c(n[0],ee[10]),e.fixed&&n.push(Q[n[0]===Q[0]?1:0].children[0]),n.forEach(function(e){P(H.start,e,R,{handles:Q})}))}function j(e,t,n){var i=e!==Q[0]?1:0,o=G[0]+r.margin,s=G[1]-r.margin,u=G[0]+r.limit,p=G[1]-r.limit,f=X.fromStepping(t);return Q.length>1&&(t=i?Math.max(t,o):Math.min(t,s)),n!==!1&&r.limit&&Q.length>1&&(t=i?Math.min(t,u):Math.max(t,p)),t=X.getStep(t),t=a(parseFloat(t.toFixed(7))),t===G[i]&&f===J[i]?!1:(window.requestAnimationFrame?window.requestAnimationFrame(function(){e.style[r.style]=t+"%"}):e.style[r.style]=t+"%",e.previousSibling||(l(e,ee[17]),t>50&&c(e,ee[17])),G[i]=t,J[i]=X.fromStepping(t),O("update",i),!0)}function I(e,t){var n,i,o;for(r.limit&&(e+=1),n=0;e>n;n+=1)i=n%2,o=t[i],null!==o&&o!==!1&&("number"==typeof o&&(o=String(o)),o=r.format.from(o),(o===!1||isNaN(o)||j(Q[i],X.toStepping(o),n===3-r.dir)===!1)&&O("update",i))}function M(e){var t,n,i=s(e);for(r.dir&&r.handles>1&&i.reverse(),r.animate&&-1!==G[0]&&o(Y,ee[14],300),t=Q.length>1?3:1,1===i.length&&(t=1),I(t,i),n=0;n<Q.length;n++)O("set",n)}function F(){var e,t=[];for(e=0;e<r.handles;e+=1)t[e]=r.format.to(J[e]);return T(t)}function V(){ee.forEach(function(e){e&&l(Y,e)}),Y.innerHTML="",delete Y.noUiSlider}function U(){var e=G.map(function(e,t){var n=X.getApplicableStep(e),r=u(String(n[2])),i=J[t],o=100===e?null:n[2],a=Number((i-n[2]).toFixed(r)),s=0===e?null:a>=n[1]?n[2]:n[0]||!1;return[s,o]});return T(e)}function B(e,t){Z[e]=Z[e]||[],Z[e].push(t),"update"===e.split(".")[0]&&Q.forEach(function(e,t){O("update",t)})}function W(e){var t=e.split(".")[0],n=e.substring(t.length);Object.keys(Z).forEach(function(e){var r=e.split(".")[0],i=e.substring(r.length);t&&t!==r||n&&n!==i||delete Z[e]})}function z(e){var t=L({start:[0,0],margin:e.margin,limit:e.limit,step:e.step,range:e.range,animate:e.animate});r.margin=t.margin,r.limit=t.limit,r.step=t.step,r.range=t.range,r.animate=t.animate,X=t.spectrum}var K,Q,Y=t,G=[-1,-1],X=r.spectrum,J=[],Z={},ee=["target","base","origin","handle","horizontal","vertical","background","connect","ltr","rtl","draggable","","state-drag","","state-tap","active","","stacking","tooltip","","pips","marker","value"].map(d(r.cssPrefix||q));if(Y.noUiSlider)throw new Error("Slider was already initialized.");return K=y(r.dir,r.ort,Y),Q=g(r.handles,r.dir,K),v(r.connect,Y,Q),A(r.events),r.pips&&N(r.pips),r.tooltips&&w(r.tooltips),{destroy:V,steps:U,on:B,off:W,get:F,set:M,updateOptions:z}}function U(e,t){if(!e.nodeName)throw new Error("noUiSlider.create requires a single element.");var n=L(t,e),r=V(e,n);return r.set(n.start),e.noUiSlider=r,r}var H=window.navigator.pointerEnabled?{start:"pointerdown",move:"pointermove",end:"pointerup"}:window.navigator.msPointerEnabled?{start:"MSPointerDown",move:"MSPointerMove",end:"MSPointerUp"}:{start:"mousedown touchstart",move:"mousemove touchmove",end:"mouseup touchend"},q="noUi-";C.prototype.getMargin=function(e){return 2===this.xPct.length?m(this.xVal,e):!1},C.prototype.toStepping=function(e){return e=b(this.xVal,this.xPct,e),this.direction&&(e=100-e),e},C.prototype.fromStepping=function(e){return this.direction&&(e=100-e),i(x(this.xVal,this.xPct,e))},C.prototype.getStep=function(e){return this.direction&&(e=100-e),e=w(this.xPct,this.xSteps,this.snap,e),this.direction&&(e=100-e),e},C.prototype.getApplicableStep=function(e){var t=y(e,this.xPct),n=100===e?2:1;return[this.xNumSteps[t-2],this.xVal[t-n],this.xNumSteps[t-n]]},C.prototype.convert=function(e){return this.getStep(this.toStepping(e))};var B={to:function(e){return void 0!==e&&e.toFixed(2)},from:Number};return{create:U}})},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.indices,d=e.cssClasses,h=void 0===d?{}:d,m=e.autoHideContainer,v=void 0===m?!1:m;if(!t||!r)throw new Error(f);var g=u.getContainerNode(t),y=n(563);v===!0&&(y=p(y));var b=s(r,function(e){return{label:e.label,value:e.name}});return{init:function(e){var t=e.helper,n=t.getIndex(),i=-1!==a(r,{name:n});if(!i)throw new Error("[sortBySelector]: Index "+n+" not present in `indices`")},setIndex:function(e,t){e.setIndex(t),e.search()},render:function(e){var t=e.helper,n=e.results,r=t.getIndex(),a=0===n.nbHits,s=this.setIndex.bind(this,t),u={root:l(c(null),h.root),item:l(c("item"),h.item)};o.render(i.createElement(y,{cssClasses:u,currentValue:r,options:b,setValue:s,shouldAutoHideContainer:a}),g)}}}var i=n(313),o=n(469),a=n(598),s=n(545),u=n(470),c=u.bemHelper("ais-sort-by-selector"),l=n(497),p=n(498),f="Usage:\nsortBySelector({\n container,\n indices,\n [cssClasses.{root,item}={}],\n [autoHideContainer=false]\n})";e.exports=r},function(e,t,n){"use strict";var r=n(599),i=r();e.exports=i},function(e,t,n){"use strict";function r(e){return function(t,n,r){return t&&t.length?(n=i(n,r,3),o(t,n,e)):-1}}var i=n(474),o=n(493);e.exports=r},function(e,t,n){"use strict";function r(e){var t=e.container,r=e.attributeName,h=e.max,m=void 0===h?5:h,v=e.cssClasses,g=void 0===v?{}:v,y=e.labels,b=void 0===y?f:y,x=e.templates,w=void 0===x?p:x,E=e.transformData,_=e.autoHideContainer,C=void 0===_?!0:_,N=a.getContainerNode(t),$=l(n(555));if(C===!0&&($=c($)),!t||!r)throw new Error(d);return{getConfiguration:function(){return{disjunctiveFacets:[r]}},render:function(e){for(var t=e.helper,n=e.results,c=e.templatesConfig,l=e.state,f=e.createURL,d=a.prepareTemplateProps({transformData:E,defaultTemplates:p,templatesConfig:c,templates:w}),h=[],v={},y=m-1;y>=0;--y)v[y]=0;n.getFacetValues(r).forEach(function(e){var t=Math.round(e.name);if(t&&!(t>m-1))for(var n=t;n>=1;--n)v[n]+=e.count});for(var x=this._getRefinedStar(t),_=m-1;_>=1;--_){var C=v[_];if(!x||_===x||0!==C){for(var O=[],T=1;m>=T;++T)O.push(_>=T);h.push({stars:O,name:""+_,count:C,isRefined:x===_,labels:b})}}var P={root:u(s(null),g.root),header:u(s("header"),g.header),body:u(s("body"),g.body),footer:u(s("footer"),g.footer),list:u(s("list"),g.list),item:u(s("item"),g.item),link:u(s("link"),g.link),disabledLink:u(s("link","disabled"),g.disabledLink),count:u(s("count"),g.count),star:u(s("star"),g.star),emptyStar:u(s("star","empty"),g.emptyStar),active:u(s("item","active"),g.active)};o.render(i.createElement($,{createURL:function(e){return f(l.toggleRefinement(r,e))},cssClasses:P,facetValues:h,shouldAutoHideContainer:0===n.nbHits,templateProps:d,toggleRefinement:this._toggleRefinement.bind(this,t)}),N)},_toggleRefinement:function(e,t){var n=this._getRefinedStar(e)===+t;if(e.clearRefinements(r),!n)for(var i=+t;m>=i;++i)e.addDisjunctiveFacetRefinement(r,i);e.search()},_getRefinedStar:function(e){var t=void 0,n=e.getRefinements(r);return n.forEach(function(e){(!t||+e.value<t)&&(t=+e.value)}),t}}}var i=n(313),o=n(469),a=n(470),s=a.bemHelper("ais-star-rating"),u=n(497),c=n(498),l=n(499),p=n(601),f=n(602),d="Usage:\nstarRating({\n container,\n attributeName,\n [ max=5 ],\n [ cssClasses.{root,header,body,footer,list,item,active,link,disabledLink,star,emptyStar,count} ],\n [ templates.{header,item,footer} ],\n [ labels.{andUp} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<a class="{{cssClasses.link}}{{^count}} {{cssClasses.disabledLink}}{{/count}}" {{#count}}href="{{href}}"{{/count}}>\n {{#stars}}<span class="{{#.}}{{cssClasses.star}}{{/.}}{{^.}}{{cssClasses.emptyStar}}{{/.}}"></span>{{/stars}}\n {{labels.andUp}}\n {{#count}}<span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>{{/count}}\n</a>',footer:""}},function(e){"use strict";e.exports={andUp:"& Up"}},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.cssClasses,d=void 0===r?{}:r,h=e.autoHideContainer,m=void 0===h?!0:h,v=e.templates,g=void 0===v?p:v,y=e.transformData;if(!t)throw new Error(f);var b=a.getContainerNode(t),x=u(n(605));if(m===!0&&(x=s(x)),!b)throw new Error(f);return{render:function(e){var t=e.results,n=e.templatesConfig,r=0===t.nbHits,s=a.prepareTemplateProps({transformData:y,defaultTemplates:p,templatesConfig:n,templates:g}),u={body:l(c("body"),d.body),footer:l(c("footer"),d.footer),header:l(c("header"),d.header),root:l(c(null),d.root),time:l(c("time"),d.time)};o.render(i.createElement(x,{cssClasses:u,hitsPerPage:t.hitsPerPage,nbHits:t.nbHits,nbPages:t.nbPages,page:t.page,processingTimeMS:t.processingTimeMS,query:t.query,shouldAutoHideContainer:r,templateProps:s}),b)}}}var i=n(313),o=n(469),a=n(470),s=n(498),u=n(499),c=n(470).bemHelper("ais-stats"),l=n(497),p=n(604),f="Usage:\nstats({\n container,\n [ template ],\n [ transformData ],\n [ autoHideContainer]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",body:'{{#hasNoResults}}No results{{/hasNoResults}}\n {{#hasOneResult}}1 result{{/hasOneResult}}\n {{#hasManyResults}}{{#helpers.formatNumber}}{{nbHits}}{{/helpers.formatNumber}} results{{/hasManyResults}}\n <span class="{{cssClasses.time}}">found in {{processingTimeMS}}ms</span>',footer:""}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=function(e,t,n){for(var r=!0;r;){var i=e,o=t,a=n;r=!1,null===i&&(i=Function.prototype);var s=Object.getOwnPropertyDescriptor(i,o);if(void 0!==s){if("value"in s)return s.value;var u=s.get;return void 0===u?void 0:u.call(a)}var c=Object.getPrototypeOf(i);if(null===c)return void 0;e=c,t=o,n=a,r=!0,s=c=void 0}},u=n(313),c=n(500),l=function(e){function t(){r(this,t),s(Object.getPrototypeOf(t.prototype),"constructor",this).apply(this,arguments)}return i(t,e),a(t,[{key:"render",value:function(){var e={hasManyResults:this.props.nbHits>1,hasNoResults:0===this.props.nbHits,hasOneResult:1===this.props.nbHits,hitsPerPage:this.props.hitsPerPage,nbHits:this.props.nbHits,nbPages:this.props.nbPages,page:this.props.page,processingTimeMS:this.props.processingTimeMS,query:this.props.query,cssClasses:this.props.cssClasses};return u.createElement(c,o({data:e,templateKey:"body"},this.props.templateProps))}}]),t}(u.Component);l.propTypes={cssClasses:u.PropTypes.shape({time:u.PropTypes.string}),hitsPerPage:u.PropTypes.number,nbHits:u.PropTypes.number,nbPages:u.PropTypes.number,page:u.PropTypes.number,processingTimeMS:u.PropTypes.number,query:u.PropTypes.string,templateProps:u.PropTypes.object.isRequired},e.exports=l},function(e,t,n){"use strict";function r(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=e.container,r=e.attributeName,h=e.label,m=e.values,v=void 0===m?{on:!0,off:void 0}:m,g=e.templates,y=void 0===g?f:g,b=e.cssClasses,x=void 0===b?{}:b,w=e.transformData,E=e.autoHideContainer,_=void 0===E?!0:E,C=s.getContainerNode(t),N=p(n(555));if(_===!0&&(N=l(N)),!t||!r||!h)throw new Error(d);var $=void 0!==v.off;return{getConfiguration:function(){return{facets:[r]}},init:function(e){var t=e.state,n=e.helper;if(void 0!==v.off){var i=t.isFacetRefined(r,v.on);i||n.addFacetRefinement(r,v.off)}},toggleRefinement:function(e,t){var n=v.on,i=v.off;t?(e.removeFacetRefinement(r,n),$&&e.addFacetRefinement(r,i)):($&&e.removeFacetRefinement(r,i),e.addFacetRefinement(r,n)),e.search()},render:function(e){var t=e.helper,n=e.results,l=e.templatesConfig,p=e.state,d=e.createURL,m=t.state.isFacetRefined(r,v.on),g=i(n.getFacetValues(r),{name:m.toString()}),b=0===n.nbHits,E=s.prepareTemplateProps({transformData:w,defaultTemplates:f,templatesConfig:l,templates:y}),_={name:h,isRefined:m,count:g&&g.count||null},$={root:c(u(null),x.root),header:c(u("header"),x.header),body:c(u("body"),x.body),footer:c(u("footer"),x.footer),list:c(u("list"),x.list),item:c(u("item"),x.item),active:c(u("item","active"),x.active),label:c(u("label"),x.label),checkbox:c(u("checkbox"),x.checkbox),count:c(u("count"),x.count)},O=this.toggleRefinement.bind(this,t,m);a.render(o.createElement(N,{createURL:function(){return d(p.toggleRefinement(r,_.isRefined))},cssClasses:$,facetValues:[_],shouldAutoHideContainer:b,templateProps:E,toggleRefinement:O}),C)}}}var i=n(490),o=n(313),a=n(469),s=n(470),u=s.bemHelper("ais-toggle"),c=n(497),l=n(498),p=n(499),f=n(607),d="Usage:\ntoggle({\n container,\n attributeName,\n label,\n [ userValues={on: true, off: undefined} ],\n [ cssClasses.{root,header,body,footer,list,item,active,label,checkbox,count} ],\n [ templates.{header,item,footer} ],\n [ transformData ],\n [ autoHideContainer=true ]\n})";e.exports=r},function(e){"use strict";e.exports={header:"",item:'<label class="{{cssClasses.label}}">\n <input type="checkbox" class="{{cssClasses.checkbox}}" value="{{name}}" {{#isRefined}}checked{{/isRefined}} />{{name}}\n <span class="{{cssClasses.count}}">{{#helpers.formatNumber}}{{count}}{{/helpers.formatNumber}}</span>\n</label>',footer:""}},function(e,t,n){"use strict";e.exports=n(609)},function(e,t,n){"use strict";var r=n(610),i=n(1);r.element=i;var o=n(611);o.isArray=i.isArray,o.isFunction=i.isFunction,o.isObject=i.isPlainObject,o.bind=i.proxy,o.each=function(e,t){function n(e,n){return t(n,e)}i.each(e,n)},o.map=i.map,o.mixin=i.extend;var a,s,u,c=n(612),l=n(613);a=i.fn.autocomplete,s="aaAutocomplete",u={initialize:function(e,t){function n(){var n,r=i(this),o=new l({el:r});n=new c({input:r,eventBus:o,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint?!0:!!e.hint,minLength:e.minLength,autoselect:e.autoselect,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,datasets:t}),r.data(s,n)}return t=o.isArray(t)?t:[].slice.call(arguments,1),e=e||{},this.each(n)},open:function(){function e(){var e,t=i(this);(e=t.data(s))&&e.open()}return this.each(e)},close:function(){function e(){var e,t=i(this);(e=t.data(s))&&e.close()}return this.each(e)},val:function(e){function t(){var t,n=i(this);(t=n.data(s))&&t.setVal(e)}function n(e){var t,n;return(t=e.data(s))&&(n=t.getVal()),n}return arguments.length?this.each(t):n(this.first())},destroy:function(){function e(){var e,t=i(this);(e=t.data(s))&&(e.destroy(),t.removeData(s))}return this.each(e)}},i.fn.autocomplete=function(e){var t;return u[e]&&"initialize"!==e?(t=this.filter(function(){return!!i(this).data(s)}),u[e].apply(t,[].slice.call(arguments,1))):u.initialize.apply(this,arguments)},i.fn.autocomplete.noConflict=function(){return i.fn.autocomplete=a,this},i.fn.autocomplete.sources=c.sources,e.exports=i.fn.autocomplete},function(e){"use strict";e.exports={element:null}},function(e,t,n){"use strict";var r=n(610);e.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(){return/(msie|trident)/i.test(navigator.userAgent)?navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]:!1},escapeRegExChars:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(e){return"number"==typeof e},toStr:function(e){return void 0===e||null===e?"":e+""},cloneDeep:function(e){var t=this.mixin({},e),n=this;return this.each(t,function(e,r){e&&(n.isArray(e)?t[r]=[].concat(e):n.isObject(e)&&(t[r]=n.cloneDeep(e)))}),t},error:function(e){throw new Error(e)},every:function(e,t){var n=!0;return e?(this.each(e,function(r,i){return n=t.call(null,r,i,e),n?void 0:!1}),!!n):n},getUniqueId:function(){var e=0;return function(){return e++}}(),templatify:function(e){if(this.isFunction(e))return e;var t=r.element(e);return"SCRIPT"===t.prop("tagName")?function(){return t.text()}:function(){return String(e)}},defer:function(e){setTimeout(e,0)},noop:function(){}}},function(e,t,n){"use strict";function r(e){var t,n,o;e=e||{},e.input||u.error("missing input"),this.isActivated=!1,this.debug=!!e.debug,this.autoselect=!!e.autoselect,this.openOnFocus=!!e.openOnFocus,this.minLength=u.isNumber(e.minLength)?e.minLength:1,this.$node=i(e),t=this.$node.find(".aa-dropdown-menu"),n=this.$node.find(".aa-input"),o=this.$node.find(".aa-hint"),e.dropdownMenuContainer&&c.element(e.dropdownMenuContainer).css("position","relative").append(t.css("top","0")),n.on("blur.aa",function(e){var r=document.activeElement;u.isMsie()&&(t.is(r)||t.has(r).length>0)&&(e.preventDefault(),e.stopImmediatePropagation(),u.defer(function(){n.focus()}))}),t.on("mousedown.aa",function(e){e.preventDefault()}),this.eventBus=e.eventBus||new l({el:n}),this.dropdown=new r.Dropdown({menu:t,datasets:e.datasets,templates:e.templates}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new r.Input({input:n,hint:o}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._setLanguageDirection()}function i(e){var t,n,r,i;t=c.element(e.input),n=c.element(d.wrapper).css(h.wrapper),"block"===t.css("display")&&"table"===t.parent().css("display")&&n.css("display","table-cell"),r=c.element(d.dropdown).css(h.dropdown),e.templates&&e.templates.dropdownMenu&&r.html(u.templatify(e.templates.dropdownMenu)()),i=t.clone().css(h.hint).css(o(t)),i.val("").addClass("aa-hint").removeAttr("id name placeholder required").prop("readonly",!0).attr({autocomplete:"off",spellcheck:"false",tabindex:-1}),i.removeData&&i.removeData(),t.data(s,{dir:t.attr("dir"),autocomplete:t.attr("autocomplete"),spellcheck:t.attr("spellcheck"),style:t.attr("style")}),t.addClass("aa-input").attr({autocomplete:"off",spellcheck:!1}).css(e.hint?h.input:h.inputWithNoHint);try{t.attr("dir")||t.attr("dir","auto")}catch(a){}return t.wrap(n).parent().prepend(e.hint?i:null).append(r)}function o(e){return{backgroundAttachment:e.css("background-attachment"),backgroundClip:e.css("background-clip"),backgroundColor:e.css("background-color"),backgroundImage:e.css("background-image"),backgroundOrigin:e.css("background-origin"),backgroundPosition:e.css("background-position"),backgroundRepeat:e.css("background-repeat"),backgroundSize:e.css("background-size")}}function a(e){var t=e.find(".aa-input");u.each(t.data(s),function(e,n){void 0===e?t.removeAttr(n):t.attr(n,e)}),t.detach().removeClass("aa-input").insertAfter(e),t.removeData&&t.removeData(s),e.remove()}var s="aaAttrs",u=n(611),c=n(610),l=n(613),p=n(614),f=n(617),d=n(619),h=n(620);u.mixin(r.prototype,{_onSuggestionClicked:function(e,t){var n;(n=this.dropdown.getDatumForSuggestion(t))&&this._select(n)},_onCursorMoved:function(){var e=this.dropdown.getDatumForCursor();this.input.setInputValue(e.value,!0),this.eventBus.trigger("cursorchanged",e.raw,e.datasetName)},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint()},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.eventBus.trigger("opened")},_onClosed:function(){this.input.clearHint(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var e=this.input.getQuery();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){this.debug||(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close())},_onEnterKeyed:function(e,t){var n,r;n=this.dropdown.getDatumForCursor(),r=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),t.preventDefault()):this.autoselect&&r&&(this._select(r),t.preventDefault())},_onTabKeyed:function(e,t){var n;(n=this.dropdown.getDatumForCursor())?(this._select(n),t.preventDefault()):this._autocomplete(!0)},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var e=this.input.getQuery();this.dropdown.isEmpty&&e.length>=this.minLength?this.dropdown.update(e):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(e,t){this.input.clearHintIfInvalid(),t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var e=this.input.getLanguageDirection();this.dir!==e&&(this.dir=e,this.$node.css("direction",e),this.dropdown.setLanguageDirection(e))},_updateHint:function(){var e,t,n,r,i,o;e=this.dropdown.getDatumForTopSuggestion(),e&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(t=this.input.getInputValue(),n=p.normalizeQuery(t),r=u.escapeRegExChars(n),i=new RegExp("^(?:"+r+")(.+$)","i"),o=i.exec(e.value),o?this.input.setHint(t+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(e){var t,n,r,i;t=this.input.getHint(),n=this.input.getQuery(),r=e||this.input.isCursorAtEnd(),t&&n!==t&&r&&(i=this.dropdown.getDatumForTopSuggestion(),i&&this.input.setInputValue(i.value),this.eventBus.trigger("autocompleted",i.raw,i.datasetName))},_select:function(e){"undefined"!=typeof e.value&&this.input.setQuery(e.value),this.input.setInputValue(e.value,!0),this._setLanguageDirection(),this.eventBus.trigger("selected",e.raw,e.datasetName),this.dropdown.close(),u.defer(u.bind(this.dropdown.empty,this.dropdown))},open:function(){if(!this.isActivated){var e=this.input.getInputValue();e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(e){e=u.toStr(e),this.isActivated?this.input.setInputValue(e):(this.input.setQuery(e),this.input.setInputValue(e,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){this.input.destroy(),this.dropdown.destroy(),a(this.$node),this.$node=null}}),r.Dropdown=f,r.Input=p,r.sources=n(621),e.exports=r},function(e,t,n){"use strict";function r(e){e&&e.el||o.error("EventBus initialized without el"),this.$el=a.element(e.el)}var i="autocomplete:",o=n(611),a=n(610);o.mixin(r.prototype,{trigger:function(e){var t=[].slice.call(arguments,1);this.$el.trigger(i+e,t)}}),e.exports=r},function(e,t,n){"use strict";function r(e){var t,n,r,o,a=this;e=e||{},e.input||u.error("input is missing"),t=u.bind(this._onBlur,this),n=u.bind(this._onFocus,this),r=u.bind(this._onKeydown,this),o=u.bind(this._onInput,this),this.$hint=c.element(e.hint),this.$input=c.element(e.input).on("blur.aa",t).on("focus.aa",n).on("keydown.aa",r),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=u.noop),u.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",function(e){s[e.which||e.keyCode]||u.defer(u.bind(a._onInput,a,e))}):this.$input.on("input.aa",o),this.query=this.$input.val(),this.$overflowHelper=i(this.$input)}function i(e){return c.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:e.css("font-family"),fontSize:e.css("font-size"),fontStyle:e.css("font-style"),fontVariant:e.css("font-variant"),fontWeight:e.css("font-weight"),wordSpacing:e.css("word-spacing"),letterSpacing:e.css("letter-spacing"),textIndent:e.css("text-indent"),textRendering:e.css("text-rendering"),textTransform:e.css("text-transform")}).insertAfter(e)}function o(e,t){return r.normalizeQuery(e)===r.normalizeQuery(t)}function a(e){return e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}var s;s={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var u=n(611),c=n(610),l=n(615);r.normalizeQuery=function(e){return(e||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},u.mixin(r.prototype,l,{_onBlur:function(){this.resetInputValue(),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(e){var t=s[e.which||e.keyCode];this._managePreventDefault(t,e),t&&this._shouldTrigger(t,e)&&this.trigger(t+"Keyed",e)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(e,t){var n,r,i;switch(e){case"tab":r=this.getHint(),i=this.getInputValue(),n=r&&r!==i&&!a(t);break;case"up":case"down":n=!a(t);break;default:n=!1}n&&t.preventDefault()},_shouldTrigger:function(e,t){var n;switch(e){case"tab":n=!a(t);break;default:n=!0}return n},_checkInputValue:function(){var e,t,n;e=this.getInputValue(),t=o(e,this.query),n=t&&this.query?this.query.length!==e.length:!1,this.query=e,t?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(e){this.query=e},getInputValue:function(){return this.$input.val()},setInputValue:function(e,t){"undefined"==typeof e&&(e=this.query),this.$input.val(e),t?this.clearHint():this._checkInputValue()},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(e){this.$hint.val(e)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var e,t,n,r;e=this.getInputValue(),t=this.getHint(),n=e!==t&&0===t.indexOf(e),r=""!==e&&n&&!this.hasOverflow(),r||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var e=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=e},isCursorAtEnd:function(){var e,t,n;return e=this.$input.val().length,t=this.$input[0].selectionStart,u.isNumber(t)?t===e:document.selection?(n=document.selection.createRange(),n.moveStart("character",-e),e===n.text.length):!0},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,t,n,r){var i;if(!n)return this;for(t=t.split(l),n=r?c(n,r):n,this._callbacks=this._callbacks||{};i=t.shift();)this._callbacks[i]=this._callbacks[i]||{sync:[],async:[]},this._callbacks[i][e].push(n);return this}function r(e,t,r){return n.call(this,"async",e,t,r)}function i(e,t,r){return n.call(this,"sync",e,t,r)}function o(e){var t;if(!this._callbacks)return this;for(e=e.split(l);t=e.shift();)delete this._callbacks[t];return this}function a(e){var t,n,r,i,o;if(!this._callbacks)return this;for(e=e.split(l),r=[].slice.call(arguments,1);(t=e.shift())&&(n=this._callbacks[t]);)i=s(n.sync,this,[t].concat(r)),o=s(n.async,this,[t].concat(r)),i()&&p(o);return this}function s(e,t,n){function r(){for(var r,i=0,o=e.length;!r&&o>i;i+=1)r=e[i].apply(t,n)===!1;return!r}return r}function u(){var e;return e=window.setImmediate?function(e){t(function(){e()})}:function(e){setTimeout(function(){e()},0)}}function c(e,t){return e.bind?e.bind(t):function(){e.apply(t,[].slice.call(arguments,0))}}var l=/\s+/,p=u();e.exports={onSync:i,onAsync:r,off:o,trigger:a}}).call(t,n(616).setImmediate)},function(e,t,n){(function(e,r){function i(e,t){this._id=e,this._clearFn=t}var o=n(8).nextTick,a=Function.prototype.apply,s=Array.prototype.slice,u={},c=0;t.setTimeout=function(){return new i(a.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(a.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout(function(){e._onTimeout&&e._onTimeout()},t))},t.setImmediate="function"==typeof e?e:function(e){var n=c++,r=arguments.length<2?!1:s.call(arguments,1);return u[n]=!0,o(function(){u[n]&&(r?e.apply(null,r):e.call(null),t.clearImmediate(n))}),n},t.clearImmediate="function"==typeof r?r:function(e){delete u[e]}}).call(t,n(616).setImmediate,n(616).clearImmediate)},function(e,t,n){"use strict";function r(e){var t,n,r,s=this;e=e||{},e.menu||o.error("menu is required"),o.isArray(e.datasets)||o.isObject(e.datasets)||o.error("1 or more datasets required"),e.datasets||o.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,t=o.bind(this._onSuggestionClick,this),n=o.bind(this._onSuggestionMouseEnter,this),r=o.bind(this._onSuggestionMouseLeave,this),this.$menu=a.element(e.menu).on("click.aa",".aa-suggestion",t).on("mouseenter.aa",".aa-suggestion",n).on("mouseleave.aa",".aa-suggestion",r),e.templates&&e.templates.header&&this.$menu.prepend(o.templatify(e.templates.header)()),
23
+ this.datasets=o.map(e.datasets,function(e){return i(s.$menu,e)}),o.each(this.datasets,function(e){var t=e.getRoot();t&&0===t.parent().length&&s.$menu.append(t),e.onSync("rendered",s._onRendered,s)}),e.templates&&e.templates.footer&&this.$menu.append(o.templatify(e.templates.footer)())}function i(e,t){return new r.Dataset(o.mixin({$menu:e},t))}var o=n(611),a=n(610),s=n(615),u=n(618),c=n(620);o.mixin(r.prototype,s,{_onSuggestionClick:function(e){this.trigger("suggestionClicked",a.element(e.currentTarget))},_onSuggestionMouseEnter:function(e){this._removeCursor(),this._setCursor(a.element(e.currentTarget),!0)},_onSuggestionMouseLeave:function(){this._removeCursor()},_onRendered:function(){function e(e){return e.isEmpty()}this.isEmpty=o.every(this.datasets,e),this.isEmpty?this._hide():this.isOpen&&this._show(),this.trigger("datasetRendered")},_hide:function(){this.$menu.hide()},_show:function(){this.$menu.css("display","block")},_getSuggestions:function(){return this.$menu.find(".aa-suggestion")},_getCursor:function(){return this.$menu.find(".aa-cursor").first()},_setCursor:function(e,t){e.first().addClass("aa-cursor"),t||this.trigger("cursorMoved")},_removeCursor:function(){this._getCursor().removeClass("aa-cursor")},_moveCursor:function(e){var t,n,r,i;if(this.isOpen){if(n=this._getCursor(),t=this._getSuggestions(),this._removeCursor(),r=t.index(n)+e,r=(r+1)%(t.length+1)-1,-1===r)return void this.trigger("cursorRemoved");-1>r&&(r=t.length-1),this._setCursor(i=t.eq(r)),this._ensureVisible(i)}},_ensureVisible:function(e){var t,n,r,i;t=e.position().top,n=t+e.height()+parseInt(e.css("margin-top"),10)+parseInt(e.css("margin-bottom"),10),r=this.$menu.scrollTop(),i=this.$menu.height()+parseInt(this.$menu.css("paddingTop"),10)+parseInt(this.$menu.css("paddingBottom"),10),0>t?this.$menu.scrollTop(r+t):n>i&&this.$menu.scrollTop(r+(n-i))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(e){this.$menu.css("ltr"===e?c.ltr:c.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(e){var t=null;return e.length&&(t={raw:u.extractDatum(e),value:u.extractValue(e),datasetName:u.extractDatasetName(e)}),t},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},update:function(e){function t(t){t.update(e)}o.each(this.datasets,t)},empty:function(){function e(e){e.clear()}o.each(this.datasets,e),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){function e(e){e.destroy()}this.$menu.off(".aa"),this.$menu=null,o.each(this.datasets,e)}}),r.Dataset=u,e.exports=r},function(e,t,n){"use strict";function r(e){e=e||{},e.templates=e.templates||{},e.source||l.error("missing source"),e.name&&!a(e.name)&&l.error("invalid dataset name: "+e.name),this.query=null,this.highlight=!!e.highlight,this.name="undefined"==typeof e.name||null===e.name?l.getUniqueId():e.name,this.source=e.source,this.displayFn=i(e.display||e.displayKey),this.templates=o(e.templates,this.displayFn),this.$el=p.element(e.$menu&&e.$menu.find(".aa-dataset-"+this.name).length>0?e.$menu.find(".aa-dataset-"+this.name)[0]:f.dataset.replace("%CLASS%",this.name)),this.$menu=e.$menu}function i(e){function t(t){return t[e]}return e=e||"value",l.isFunction(e)?e:t}function o(e,t){function n(e){return"<p>"+t(e)+"</p>"}return{empty:e.empty&&l.templatify(e.empty),header:e.header&&l.templatify(e.header),footer:e.footer&&l.templatify(e.footer),suggestion:e.suggestion||n}}function a(e){return/^[_a-zA-Z0-9-]+$/.test(e)}var s="aaDataset",u="aaValue",c="aaDatum",l=n(611),p=n(610),f=n(619),d=n(620),h=n(615);r.extractDatasetName=function(e){return p.element(e).data(s)},r.extractValue=function(e){return p.element(e).data(u)},r.extractDatum=function(e){var t=p.element(e).data(c);return"string"==typeof t&&(t=JSON.parse(t)),t},l.mixin(r.prototype,h,{_render:function(e,t){function n(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!0}].concat(t),h.templates.empty.apply(this,t)}function r(){function e(e){var t;return t=p.element(f.suggestion).append(h.templates.suggestion.apply(this,[e].concat(i))).data(s,h.name).data(u,h.displayFn(e)||void 0).data(c,JSON.stringify(e)),t.children().each(function(){p.element(this).css(d.suggestionChild)}),t}var n,r,i=[].slice.call(arguments,0);return n=p.element(f.suggestions).css(d.suggestions),r=l.map(t,e),n.append.apply(n,r),n}function i(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!a}].concat(t),h.templates.header.apply(this,t)}function o(){var t=[].slice.call(arguments,0);return t=[{query:e,isEmpty:!a}].concat(t),h.templates.footer.apply(this,t)}if(this.$el){var a,h=this,m=[].slice.call(arguments,2);this.$el.empty(),a=t&&t.length,!a&&this.templates.empty?this.$el.html(n.apply(this,m)).prepend(h.templates.header?i.apply(this,m):null).append(h.templates.footer?o.apply(this,m):null):a&&this.$el.html(r.apply(this,m)).prepend(h.templates.header?i.apply(this,m):null).append(h.templates.footer?o.apply(this,m):null),this.$menu&&this.$menu.addClass("aa-"+(a?"with":"without")+"-"+this.name).removeClass("aa-"+(a?"without":"with")+"-"+this.name),this.trigger("rendered")}},getRoot:function(){return this.$el},update:function(e){function t(t){if(!n.canceled&&e===n.query){var r=[].slice.call(arguments,1);r=[e,t].concat(r),n._render.apply(n,r)}}var n=this;this.query=e,this.canceled=!1,this.source(e,t)},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered")},isEmpty:function(){return this.$el.is(":empty")},destroy:function(){this.$el=null}}),e.exports=r},function(e){"use strict";e.exports={wrapper:'<span class="algolia-autocomplete"></span>',dropdown:'<span class="aa-dropdown-menu"></span>',dataset:'<div class="aa-dataset-%CLASS%"></div>',suggestions:'<span class="aa-suggestions"></span>',suggestion:'<div class="aa-suggestion"></div>'}},function(e,t,n){"use strict";var r=n(611),i={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"}};r.isMsie()&&r.mixin(i.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),r.isMsie()&&r.isMsie()<=7&&r.mixin(i.input,{marginTop:"-1px"}),e.exports=i},function(e,t,n){"use strict";e.exports={hits:n(622),popularIn:n(623)}},function(e,t,n){"use strict";var r=n(611);e.exports=function(e,t){function n(n,i){e.search(n,t,function(e,t){return e?void r.error(e.message):void i(t.hits,t)})}return n}},function(e,t,n){"use strict";var r=n(611);e.exports=function(e,t,n,i){function o(o,u){e.search(o,t,function(e,t){if(e)return void r.error(e.message);if(t.hits.length>0){var o=t.hits[0],c=r.mixin({hitsPerPage:0},n);return delete c.source,delete c.index,void s.search(a(o),c,function(e,n){if(e)return void r.error(e.message);var a=[];if(i.includeAll){var s=i.allTitle||"All departments";a.push(r.mixin({facet:{value:s,count:n.nbHits}},r.cloneDeep(o)))}r.each(n.facets,function(e,t){r.each(e,function(e,n){a.push(r.mixin({facet:{facet:t,value:n,count:e}},r.cloneDeep(o)))})});for(var c=1;c<t.hits.length;++c)a.push(t.hits[c]);u(a,t)})}u([])})}if(!n.source)return r.error("Missing 'source' key");var a=r.isFunction(n.source)?n.source:function(e){return e[n.source]};if(!n.index)return r.error("Missing 'index' key");var s=n.index;return i=i||{},o}},function(e,t,n){n(625),e.exports=angular},function(){!function(e,t,n){"use strict";function r(e,t){return t=t||Error,function(){var n,r,i=2,o=arguments,a=o[0],s="["+(e?e+":":"")+a+"] ",u=o[1];for(s+=u.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1),n=t+i;return n<o.length?be(o[n]):e}),s+="\nhttp://errors.angularjs.org/1.4.7/"+(e?e+"/":"")+a,r=i,n="?";r<o.length;r++,n="&")s+=n+"p"+(r-i)+"="+encodeURIComponent(be(o[r]));return new t(s)}}function i(e){if(null==e||T(e))return!1;var t="length"in Object(e)&&e.length;return e.nodeType===Kr&&t?!0:_(e)||Fr(e)||0===t||"number"==typeof t&&t>0&&t-1 in e}function o(e,t,n){var r,a;if(e)if($(e))for(r in e)"prototype"==r||"length"==r||"name"==r||e.hasOwnProperty&&!e.hasOwnProperty(r)||t.call(n,e[r],r,e);else if(Fr(e)||i(e)){var s="object"!=typeof e;for(r=0,a=e.length;a>r;r++)(s||r in e)&&t.call(n,e[r],r,e)}else if(e.forEach&&e.forEach!==o)e.forEach(t,n,e);else if(E(e))for(r in e)t.call(n,e[r],r,e);else if("function"==typeof e.hasOwnProperty)for(r in e)e.hasOwnProperty(r)&&t.call(n,e[r],r,e);else for(r in e)wr.call(e,r)&&t.call(n,e[r],r,e);return e}function a(e,t,n){for(var r=Object.keys(e).sort(),i=0;i<r.length;i++)t.call(n,e[r[i]],r[i]);return r}function s(e){return function(t,n){e(n,t)}}function u(){return++Ir}function c(e,t){t?e.$$hashKey=t:delete e.$$hashKey}function l(e,t,n){for(var r=e.$$hashKey,i=0,o=t.length;o>i;++i){var a=t[i];if(w(a)||$(a))for(var s=Object.keys(a),u=0,p=s.length;p>u;u++){var f=s[u],d=a[f];n&&w(d)?N(d)?e[f]=new Date(d.valueOf()):O(d)?e[f]=new RegExp(d):(w(e[f])||(e[f]=Fr(d)?[]:{}),l(e[f],[d],!0)):e[f]=d}}return c(e,r),e}function p(e){return l(e,Pr.call(arguments,1),!1)}function f(e){return l(e,Pr.call(arguments,1),!0)}function d(e){return parseInt(e,10)}function h(e,t){return p(Object.create(e),t)}function m(){}function v(e){return e}function g(e){return function(){return e}}function y(e){return $(e.toString)&&e.toString!==Object.prototype.toString}function b(e){return"undefined"==typeof e}function x(e){return"undefined"!=typeof e}function w(e){return null!==e&&"object"==typeof e}function E(e){return null!==e&&"object"==typeof e&&!kr(e)}function _(e){return"string"==typeof e}function C(e){return"number"==typeof e}function N(e){return"[object Date]"===Rr.call(e)}function $(e){return"function"==typeof e}function O(e){return"[object RegExp]"===Rr.call(e)}function T(e){return e&&e.window===e}function P(e){return e&&e.$evalAsync&&e.$watch}function S(e){return"[object File]"===Rr.call(e)}function D(e){return"[object FormData]"===Rr.call(e)}function R(e){return"[object Blob]"===Rr.call(e)}function k(e){return"boolean"==typeof e}function A(e){return e&&$(e.then)}function j(e){return Lr.test(Rr.call(e))}function I(e){return!(!e||!(e.nodeName||e.prop&&e.attr&&e.find))}function M(e){var t,n={},r=e.split(",");for(t=0;t<r.length;t++)n[r[t]]=!0;return n}function F(e){return xr(e.nodeName||e[0]&&e[0].nodeName)}function L(e,t){var n=e.indexOf(t);return n>=0&&e.splice(n,1),n}function V(e,t,n,r){if(T(e)||P(e))throw Ar("cpws","Can't copy! Making copies of Window or Scope instances is not supported.");if(j(t))throw Ar("cpta","Can't copy! TypedArray destination cannot be mutated.");if(t){if(e===t)throw Ar("cpi","Can't copy! Source and destination are identical.");n=n||[],r=r||[],w(e)&&(n.push(e),r.push(t));var i;if(Fr(e)){t.length=0;for(var a=0;a<e.length;a++)t.push(V(e[a],null,n,r))}else{var s=t.$$hashKey;if(Fr(t)?t.length=0:o(t,function(e,n){delete t[n]}),E(e))for(i in e)t[i]=V(e[i],null,n,r);else if(e&&"function"==typeof e.hasOwnProperty)for(i in e)e.hasOwnProperty(i)&&(t[i]=V(e[i],null,n,r));else for(i in e)wr.call(e,i)&&(t[i]=V(e[i],null,n,r));c(t,s)}}else if(t=e,w(e)){var u;if(n&&-1!==(u=n.indexOf(e)))return r[u];if(Fr(e))return V(e,[],n,r);if(j(e))t=new e.constructor(e);else if(N(e))t=new Date(e.getTime());else if(O(e))t=new RegExp(e.source,e.toString().match(/[^\/]*$/)[0]),t.lastIndex=e.lastIndex;else{if(!$(e.cloneNode)){var l=Object.create(kr(e));return V(e,l,n,r)}t=e.cloneNode(!0)}r&&(n.push(e),r.push(t))}return t}function U(e,t){if(Fr(e)){t=t||[];for(var n=0,r=e.length;r>n;n++)t[n]=e[n]}else if(w(e)){t=t||{};for(var i in e)("$"!==i.charAt(0)||"$"!==i.charAt(1))&&(t[i]=e[i])}return t||e}function H(e,t){if(e===t)return!0;if(null===e||null===t)return!1;if(e!==e&&t!==t)return!0;var n,r,i,o=typeof e,a=typeof t;if(o==a&&"object"==o){if(!Fr(e)){if(N(e))return N(t)?H(e.getTime(),t.getTime()):!1;if(O(e))return O(t)?e.toString()==t.toString():!1;if(P(e)||P(t)||T(e)||T(t)||Fr(t)||N(t)||O(t))return!1;i=ve();for(r in e)if("$"!==r.charAt(0)&&!$(e[r])){if(!H(e[r],t[r]))return!1;i[r]=!0}for(r in t)if(!(r in i)&&"$"!==r.charAt(0)&&x(t[r])&&!$(t[r]))return!1;return!0}if(!Fr(t))return!1;if((n=e.length)==t.length){for(r=0;n>r;r++)if(!H(e[r],t[r]))return!1;return!0}}return!1}function q(e,t,n){return e.concat(Pr.call(t,n))}function B(e,t){return Pr.call(e,t||0)}function W(e,t){var n=arguments.length>2?B(arguments,2):[];return!$(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,q(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function z(e,r){var i=r;return"string"==typeof e&&"$"===e.charAt(0)&&"$"===e.charAt(1)?i=n:T(r)?i="$WINDOW":r&&t===r?i="$DOCUMENT":P(r)&&(i="$SCOPE"),i}function K(e,t){return"undefined"==typeof e?n:(C(t)||(t=t?2:null),JSON.stringify(e,z,t))}function Q(e){return _(e)?JSON.parse(e):e}function Y(e,t){var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function G(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function X(e,t,n){n=n?-1:1;var r=Y(t,e.getTimezoneOffset());return G(e,n*(r-e.getTimezoneOffset()))}function J(e){e=$r(e).clone();try{e.empty()}catch(t){}var n=$r("<div>").append(e).html();try{return e[0].nodeType===Yr?xr(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+xr(t)})}catch(t){return xr(n)}}function Z(e){try{return decodeURIComponent(e)}catch(t){}}function ee(e){var t={};return o((e||"").split("&"),function(e){var n,r,i;e&&(r=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),-1!==n&&(r=e.substring(0,n),i=e.substring(n+1)),r=Z(r),x(r)&&(i=x(i)?Z(i):!0,wr.call(t,r)?Fr(t[r])?t[r].push(i):t[r]=[t[r],i]:t[r]=i))}),t}function te(e){var t=[];return o(e,function(e,n){Fr(e)?o(e,function(e){t.push(re(n,!0)+(e===!0?"":"="+re(e,!0)))}):t.push(re(n,!0)+(e===!0?"":"="+re(e,!0)))}),t.length?t.join("&"):""}function ne(e){return re(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function re(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ie(e,t){var n,r,i=Br.length;for(r=0;i>r;++r)if(n=Br[r]+t,_(n=e.getAttribute(n)))return n;return null}function oe(e,t){var n,r,i={};o(Br,function(t){var i=t+"app";!n&&e.hasAttribute&&e.hasAttribute(i)&&(n=e,r=e.getAttribute(i))}),o(Br,function(t){var i,o=t+"app";!n&&(i=e.querySelector("["+o.replace(":","\\:")+"]"))&&(n=i,r=i.getAttribute(o))}),n&&(i.strictDi=null!==ie(n,"strict-di"),t(n,r?[r]:[],i))}function ae(n,r,i){w(i)||(i={});var a={strictDi:!1};i=p(a,i);var s=function(){if(n=$r(n),n.injector()){var e=n[0]===t?"document":J(n);throw Ar("btstrpd","App Already Bootstrapped with this Element '{0}'",e.replace(/</,"&lt;").replace(/>/,"&gt;"))}r=r||[],r.unshift(["$provide",function(e){e.value("$rootElement",n)}]),i.debugInfoEnabled&&r.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),r.unshift("ng");var o=Je(r,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,r){e.$apply(function(){t.data("$injector",r),n(t)(e)})}]),o},u=/^NG_ENABLE_DEBUG_INFO!/,c=/^NG_DEFER_BOOTSTRAP!/;return e&&u.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(u,"")),e&&!c.test(e.name)?s():(e.name=e.name.replace(c,""),jr.resumeBootstrap=function(e){return o(e,function(e){r.push(e)}),s()},void($(jr.resumeDeferredBootstrap)&&jr.resumeDeferredBootstrap()))}function se(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function ue(e){var t=jr.element(e).injector();if(!t)throw Ar("test","no injector found for element argument to getTestability");return t.get("$$testability")}function ce(e,t){return t=t||"_",e.replace(Wr,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(){var t;if(!zr){var r=qr();Or=b(r)?e.jQuery:r?e[r]:n,Or&&Or.fn.on?($r=Or,p(Or.fn,{scope:di.scope,isolateScope:di.isolateScope,controller:di.controller,injector:di.injector,inheritedData:di.inheritedData}),t=Or.cleanData,Or.cleanData=function(e){var n;if(Mr)Mr=!1;else for(var r,i=0;null!=(r=e[i]);i++)n=Or._data(r,"events"),n&&n.$destroy&&Or(r).triggerHandler("$destroy");t(e)}):$r=Te,jr.element=$r,zr=!0}}function pe(e,t,n){if(!e)throw Ar("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function fe(e,t,n){return n&&Fr(e)&&(e=e[e.length-1]),pe($(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function de(e,t){if("hasOwnProperty"===e)throw Ar("badname","hasOwnProperty is not a valid {0} name",t)}function he(e,t,n){if(!t)return e;for(var r,i=t.split("."),o=e,a=i.length,s=0;a>s;s++)r=i[s],e&&(e=(o=e)[r]);return!n&&$(e)?W(o,e):e}function me(e){for(var t,n=e[0],r=e[e.length-1],i=1;n!==r&&(n=n.nextSibling);i++)(t||e[i]!==n)&&(t||(t=$r(Pr.call(e,0,i))),t.push(n));return t||e}function ve(){return Object.create(null)}function ge(e){function t(e,t,n){return e[t]||(e[t]=n())}var n=r("$injector"),i=r("ng"),o=t(e,"angular",Object);return o.$$minErr=o.$$minErr||r,t(o,"module",function(){var e={};return function(r,o,a){var s=function(e,t){if("hasOwnProperty"===e)throw i("badname","hasOwnProperty is not a valid {0} name",t)};return s(r,"module"),o&&e.hasOwnProperty(r)&&(e[r]=null),t(e,r,function(){function e(e,t,n,r){return r||(r=i),function(){return r[n||"push"]([e,t,arguments]),l}}function t(e,t){return function(n,o){return o&&$(o)&&(o.$$moduleName=r),i.push([e,t,arguments]),l}}if(!o)throw n("nomod","Module '{0}' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.",r);var i=[],s=[],u=[],c=e("$injector","invoke","push",s),l={_invokeQueue:i,_configBlocks:s,_runBlocks:u,requires:o,name:r,provider:t("$provide","provider"),factory:t("$provide","factory"),service:t("$provide","service"),value:e("$provide","value"),constant:e("$provide","constant","unshift"),decorator:t("$provide","decorator"),animation:t("$animateProvider","register"),filter:t("$filterProvider","register"),controller:t("$controllerProvider","register"),directive:t("$compileProvider","directive"),config:c,run:function(e){return u.push(e),this}};return a&&c(a),l})}})}function ye(e){var t=[];return JSON.stringify(e,function(e,n){if(n=z(e,n),w(n)){if(t.indexOf(n)>=0)return"...";t.push(n)}return n})}function be(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):b(e)?"undefined":"string"!=typeof e?ye(e):e}function xe(t){p(t,{bootstrap:ae,copy:V,extend:p,merge:f,equals:H,element:$r,forEach:o,injector:Je,noop:m,bind:W,toJson:K,fromJson:Q,identity:v,isUndefined:b,isDefined:x,isString:_,isFunction:$,isObject:w,isNumber:C,isElement:I,isArray:Fr,version:Zr,isDate:N,lowercase:xr,uppercase:Er,callbacks:{counter:0},getTestability:ue,$$minErr:r,$$csp:Hr,reloadWithDebugInfo:se}),(Tr=ge(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:gn}),e.provider("$compile",ut).directive({a:ho,input:Do,textarea:Do,form:bo,script:_a,select:$a,style:Ta,option:Oa,ngBind:Ao,ngBindHtml:Io,ngBindTemplate:jo,ngClass:Fo,ngClassEven:Vo,ngClassOdd:Lo,ngCloak:Uo,ngController:Ho,ngForm:xo,ngHide:ga,ngIf:Wo,ngInclude:zo,ngInit:Qo,ngNonBindable:ua,ngPluralize:fa,ngRepeat:da,ngShow:va,ngStyle:ya,ngSwitch:ba,ngSwitchWhen:xa,ngSwitchDefault:wa,ngOptions:pa,ngTransclude:Ea,ngModel:oa,ngList:Yo,ngChange:Mo,pattern:Sa,ngPattern:Sa,required:Pa,ngRequired:Pa,minlength:Ra,ngMinlength:Ra,maxlength:Da,ngMaxlength:Da,ngValue:ko,ngModelOptions:sa}).directive({ngInclude:Ko}).directive(mo).directive(qo),e.provider({$anchorScroll:Ze,$animate:Ti,$animateCss:Pi,$$animateQueue:Oi,$$AnimateRunner:$i,$browser:ot,$cacheFactory:at,$controller:dt,$document:ht,$exceptionHandler:mt,$filter:Dn,$$forceReflow:Ai,$interpolate:Pt,$interval:St,$http:Nt,$httpParamSerializer:gt,$httpParamSerializerJQLike:yt,$httpBackend:Ot,$xhrFactory:$t,$location:Bt,$log:Wt,$parse:pn,$rootScope:vn,$q:fn,$$q:dn,$sce:wn,$sceDelegate:xn,$sniffer:En,$templateCache:st,$templateRequest:_n,$$testability:Cn,$timeout:Nn,$window:Tn,$$rAF:mn,$$jqLite:Ke,$$HashMap:gi,$$cookieReader:Sn})}])}function we(){return++ti}function Ee(e){return e.replace(ii,function(e,t,n,r){return r?n.toUpperCase():n}).replace(oi,"Moz$1")}function _e(e){return!ci.test(e)}function Ce(e){var t=e.nodeType;return t===Kr||!t||t===Xr}function Ne(e){for(var t in ei[e.ng339])return!0;return!1}function $e(e,t){var n,r,i,a,s=t.createDocumentFragment(),u=[];if(_e(e))u.push(t.createTextNode(e));else{for(n=n||s.appendChild(t.createElement("div")),r=(li.exec(e)||["",""])[1].toLowerCase(),i=fi[r]||fi._default,n.innerHTML=i[1]+e.replace(pi,"<$1></$2>")+i[2],a=i[0];a--;)n=n.lastChild;u=q(u,n.childNodes),n=s.firstChild,n.textContent=""}return s.textContent="",s.innerHTML="",o(u,function(e){s.appendChild(e)}),s}function Oe(e,n){n=n||t;var r;return(r=ui.exec(e))?[n.createElement(r[1])]:(r=$e(e,n))?r.childNodes:[]}function Te(e){if(e instanceof Te)return e;var t;if(_(e)&&(e=Vr(e),t=!0),!(this instanceof Te)){if(t&&"<"!=e.charAt(0))throw si("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Te(e)}t?Fe(this,Oe(e)):Fe(this,e)}function Pe(e){return e.cloneNode(!0)}function Se(e,t){if(t||Re(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),r=0,i=n.length;i>r;r++)Re(n[r])}function De(e,t,n,r){if(x(r))throw si("offargs","jqLite#off() does not support the `selector` argument");var i=ke(e),a=i&&i.events,s=i&&i.handle;if(s)if(t)o(t.split(" "),function(t){if(x(n)){var r=a[t];if(L(r||[],n),r&&r.length>0)return}ri(e,t,s),delete a[t]});else for(t in a)"$destroy"!==t&&ri(e,t,s),delete a[t]}function Re(e,t){var r=e.ng339,i=r&&ei[r];if(i){if(t)return void delete i.data[t];i.handle&&(i.events.$destroy&&i.handle({},"$destroy"),De(e)),delete ei[r],e.ng339=n}}function ke(e,t){var r=e.ng339,i=r&&ei[r];return t&&!i&&(e.ng339=r=we(),i=ei[r]={events:{},data:{},handle:n}),i}function Ae(e,t,n){if(Ce(e)){var r=x(n),i=!r&&t&&!w(t),o=!t,a=ke(e,!i),s=a&&a.data;if(r)s[t]=n;else{if(o)return s;if(i)return s&&s[t];p(s,t)}}}function je(e,t){return e.getAttribute?(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1:!1}function Ie(e,t){t&&e.setAttribute&&o(t.split(" "),function(t){e.setAttribute("class",Vr((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Vr(t)+" "," ")))})}function Me(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");o(t.split(" "),function(e){e=Vr(e),-1===n.indexOf(" "+e+" ")&&(n+=e+" ")}),e.setAttribute("class",Vr(n))}}function Fe(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var r=0;n>r;r++)e[e.length++]=t[r]}else e[e.length++]=t}}function Le(e,t){return Ve(e,"$"+(t||"ngController")+"Controller")}function Ve(e,t,n){e.nodeType==Xr&&(e=e.documentElement);for(var r=Fr(t)?t:[t];e;){for(var i=0,o=r.length;o>i;i++)if(x(n=$r.data(e,r[i])))return n;e=e.parentNode||e.nodeType===Jr&&e.host}}function Ue(e){for(Se(e,!0);e.firstChild;)e.removeChild(e.firstChild)}function He(e,t){t||Se(e);var n=e.parentNode;n&&n.removeChild(e)}function qe(t,n){n=n||e,"complete"===n.document.readyState?n.setTimeout(t):$r(n).on("load",t)}function Be(e,t){var n=hi[t.toLowerCase()];return n&&mi[F(e)]&&n}function We(e){return vi[e]}function ze(e,t){var n=function(n,r){n.isDefaultPrevented=function(){return n.defaultPrevented};var i=t[r||n.type],o=i?i.length:0;if(o){if(b(n.immediatePropagationStopped)){var a=n.stopImmediatePropagation;n.stopImmediatePropagation=function(){n.immediatePropagationStopped=!0,n.stopPropagation&&n.stopPropagation(),a&&a.call(n)}}n.isImmediatePropagationStopped=function(){return n.immediatePropagationStopped===!0},o>1&&(i=U(i));for(var s=0;o>s;s++)n.isImmediatePropagationStopped()||i[s].call(e,n)}};return n.elem=e,n}function Ke(){this.$get=function(){return p(Te,{hasClass:function(e,t){return e.attr&&(e=e[0]),je(e,t)},addClass:function(e,t){return e.attr&&(e=e[0]),Me(e,t)},removeClass:function(e,t){return e.attr&&(e=e[0]),Ie(e,t)}})}}function Qe(e,t){var n=e&&e.$$hashKey;if(n)return"function"==typeof n&&(n=e.$$hashKey()),n;var r=typeof e;return n="function"==r||"object"==r&&null!==e?e.$$hashKey=r+":"+(t||u)():r+":"+e}function Ye(e,t){if(t){var n=0;this.nextUid=function(){return++n}}o(e,this.put,this)}function Ge(e){var t=e.toString().replace(wi,""),n=t.match(yi);return n?"function("+(n[1]||"").replace(/[\s\r\n]+/," ")+")":"fn"}function Xe(e,t,n){var r,i,a,s;if("function"==typeof e){if(!(r=e.$inject)){if(r=[],e.length){if(t)throw _(n)&&n||(n=e.name||Ge(e)),Ei("strictdi","{0} is not using explicit annotation and cannot be invoked in strict mode",n);i=e.toString().replace(wi,""),a=i.match(yi),o(a[1].split(bi),function(e){e.replace(xi,function(e,t,n){r.push(n)})})}e.$inject=r}}else Fr(e)?(s=e.length-1,fe(e[s],"fn"),r=e.slice(0,s)):fe(e,"fn",!0);return r}function Je(e,t){function r(e){return function(t,n){return w(t)?void o(t,s(e)):e(t,n)}}function i(e,t){if(de(e,"service"),($(t)||Fr(t))&&(t=C.instantiate(t)),!t.$get)throw Ei("pget","Provider '{0}' must define $get factory method.",e);return E[e+v]=t}function a(e,t){return function(){var n=O.invoke(t,this);if(b(n))throw Ei("undef","Provider '{0}' must return a value from $get factory method.",e);return n}}function u(e,t,n){return i(e,{$get:n!==!1?a(e,t):t})}function c(e,t){return u(e,["$injector",function(e){return e.instantiate(t)}])}function l(e,t){return u(e,g(t),!1)}function p(e,t){de(e,"constant"),E[e]=t,N[e]=t}function f(e,t){var n=C.get(e+v),r=n.$get;n.$get=function(){var e=O.invoke(r,n);return O.invoke(t,null,{$delegate:e})}}function d(e){pe(b(e)||Fr(e),"modulesToLoad","not an array");var t,n=[];return o(e,function(e){function r(e){var t,n;for(t=0,n=e.length;n>t;t++){var r=e[t],i=C.get(r[0]);i[r[1]].apply(i,r[2])}}if(!x.get(e)){x.put(e,!0);try{_(e)?(t=Tr(e),n=n.concat(d(t.requires)).concat(t._runBlocks),r(t._invokeQueue),r(t._configBlocks)):$(e)?n.push(C.invoke(e)):Fr(e)?n.push(C.invoke(e)):fe(e,"module")}catch(i){throw Fr(e)&&(e=e[e.length-1]),i.message&&i.stack&&-1==i.stack.indexOf(i.message)&&(i=i.message+"\n"+i.stack),Ei("modulerr","Failed to instantiate module {0} due to:\n{1}",e,i.stack||i.message||i)}}}),n}function h(e,n){function r(t,r){if(e.hasOwnProperty(t)){if(e[t]===m)throw Ei("cdep","Circular dependency found: {0}",t+" <- "+y.join(" <- "));return e[t]}try{return y.unshift(t),e[t]=m,e[t]=n(t,r)}catch(i){throw e[t]===m&&delete e[t],i}finally{y.shift()}}function i(e,n,i,o){"string"==typeof i&&(o=i,i=null);var a,s,u,c=[],l=Je.$$annotate(e,t,o);for(s=0,a=l.length;a>s;s++){if(u=l[s],"string"!=typeof u)throw Ei("itkn","Incorrect injection token! Expected service name as string, got {0}",u);c.push(i&&i.hasOwnProperty(u)?i[u]:r(u,o))}return Fr(e)&&(e=e[a]),e.apply(n,c)}function o(e,t,n){var r=Object.create((Fr(e)?e[e.length-1]:e).prototype||null),o=i(e,r,t,n);return w(o)||$(o)?o:r}return{invoke:i,instantiate:o,get:r,annotate:Je.$$annotate,has:function(t){return E.hasOwnProperty(t+v)||e.hasOwnProperty(t)}}}t=t===!0;var m={},v="Provider",y=[],x=new Ye([],!0),E={$provide:{provider:r(i),factory:r(u),service:r(c),value:r(l),constant:r(p),decorator:f}},C=E.$injector=h(E,function(e,t){throw jr.isString(t)&&y.push(t),Ei("unpr","Unknown provider: {0}",y.join(" <- "))}),N={},O=N.$injector=h(N,function(e,t){var r=C.get(e+v,t);return O.invoke(r.$get,r,n,e)});return o(d(e),function(e){e&&O.invoke(e)}),O}function Ze(){var e=!0;this.disableAutoScrolling=function(){e=!1},this.$get=["$window","$location","$rootScope",function(t,n,r){function i(e){var t=null;return Array.prototype.some.call(e,function(e){return"a"===F(e)?(t=e,!0):void 0}),t}function o(){var e=s.yOffset;if($(e))e=e();else if(I(e)){var n=e[0],r=t.getComputedStyle(n);e="fixed"!==r.position?0:n.getBoundingClientRect().bottom}else C(e)||(e=0);return e}function a(e){if(e){e.scrollIntoView();var n=o();if(n){var r=e.getBoundingClientRect().top;t.scrollBy(0,r-n)}}else t.scrollTo(0,0)}function s(e){e=_(e)?e:n.hash();var t;e?(t=u.getElementById(e))?a(t):(t=i(u.getElementsByName(e)))?a(t):"top"===e&&a(null):a(null)}var u=t.document;return e&&r.$watch(function(){return n.hash()},function(e,t){(e!==t||""!==e)&&qe(function(){r.$evalAsync(s)})}),s}]}function et(e,t){return e||t?e?t?(Fr(e)&&(e=e.join(" ")),Fr(t)&&(t=t.join(" ")),e+" "+t):e:t:""}function tt(e){for(var t=0;t<e.length;t++){var n=e[t];if(n.nodeType===Ci)return n}}function nt(e){_(e)&&(e=e.split(" "));var t=ve();return o(e,function(e){e.length&&(t[e]=!0)}),t}function rt(e){return w(e)?e:{}}function it(e,t,n,r){function i(e){try{e.apply(null,B(arguments,1))}finally{if(y--,0===y)for(;x.length;)try{x.pop()()}catch(t){n.error(t)}}}function a(e){var t=e.indexOf("#");return-1===t?"":e.substr(t)}function s(){N=null,c(),l()}function u(){try{return d.state}catch(e){}}function c(){w=u(),w=b(w)?null:w,H(w,T)&&(w=T),T=w}function l(){(_!==p.url()||E!==w)&&(_=p.url(),E=w,o($,function(e){e(p.url(),w)}))}var p=this,f=(t[0],e.location),d=e.history,h=e.setTimeout,v=e.clearTimeout,g={};p.isMock=!1;var y=0,x=[];p.$$completeOutstandingRequest=i,p.$$incOutstandingRequestCount=function(){y++},p.notifyWhenNoOutstandingRequests=function(e){0===y?e():x.push(e)};var w,E,_=f.href,C=t.find("base"),N=null;c(),E=w,p.url=function(t,n,i){if(b(i)&&(i=null),f!==e.location&&(f=e.location),d!==e.history&&(d=e.history),t){var o=E===i;if(_===t&&(!r.history||o))return p;var s=_&&jt(_)===jt(t);return _=t,E=i,!r.history||s&&o?((!s||N)&&(N=t),n?f.replace(t):s?f.hash=a(t):f.href=t,f.href!==t&&(N=t)):(d[n?"replaceState":"pushState"](i,"",t),c(),E=w),p}return N||f.href.replace(/%27/g,"'")},p.state=function(){return w};var $=[],O=!1,T=null;p.onUrlChange=function(t){return O||(r.history&&$r(e).on("popstate",s),$r(e).on("hashchange",s),O=!0),$.push(t),t},p.$$applicationDestroyed=function(){$r(e).off("hashchange popstate",s)},p.$$checkUrlChange=l,p.baseHref=function(){var e=C.attr("href");return e?e.replace(/^(https?\:)?\/\/[^\/]*/,""):""},p.defer=function(e,t){var n;return y++,n=h(function(){delete g[n],i(e)},t||0),g[n]=!0,n},p.defer.cancel=function(e){return g[e]?(delete g[e],v(e),i(m),!0):!1}}function ot(){this.$get=["$window","$log","$sniffer","$document",function(e,t,n,r){return new it(e,r,t,n)}]}function at(){this.$get=function(){function e(e,n){function i(e){e!=f&&(d?d==e&&(d=e.n):d=e,o(e.n,e.p),o(e,f),f=e,f.n=null)}function o(e,t){e!=t&&(e&&(e.p=t),t&&(t.n=e))}if(e in t)throw r("$cacheFactory")("iid","CacheId '{0}' is already taken!",e);var a=0,s=p({},n,{id:e}),u={},c=n&&n.capacity||Number.MAX_VALUE,l={},f=null,d=null;return t[e]={put:function(e,t){if(!b(t)){if(c<Number.MAX_VALUE){var n=l[e]||(l[e]={key:e});i(n)}return e in u||a++,u[e]=t,a>c&&this.remove(d.key),t}},get:function(e){if(c<Number.MAX_VALUE){var t=l[e];if(!t)return;i(t)}return u[e]},remove:function(e){if(c<Number.MAX_VALUE){var t=l[e];if(!t)return;t==f&&(f=t.p),t==d&&(d=t.n),o(t.n,t.p),delete l[e]}delete u[e],a--},removeAll:function(){u={},a=0,l={},f=d=null},destroy:function(){u=null,s=null,l=null,delete t[e]},info:function(){return p({},s,{size:a})}}}var t={};return e.info=function(){var e={};return o(t,function(t,n){e[n]=t.info()}),e},e.get=function(e){return t[e]},e}}function st(){this.$get=["$cacheFactory",function(e){return e("templates")}]}function ut(e,r){function i(e,t,n){var r=/^\s*([@&]|=(\*?))(\??)\s*(\w*)\s*$/,i={};
24
+
25
+ return o(e,function(e,o){var a=e.match(r);if(!a)throw Si("iscp","Invalid {3} for directive '{0}'. Definition: {... {1}: '{2}' ...}",t,o,e,n?"controller bindings definition":"isolate scope definition");i[o]={mode:a[1][0],collection:"*"===a[2],optional:"?"===a[3],attrName:a[4]||o}}),i}function a(e,t){var n={isolateScope:null,bindToController:null};if(w(e.scope)&&(e.bindToController===!0?(n.bindToController=i(e.scope,t,!0),n.isolateScope={}):n.isolateScope=i(e.scope,t,!1)),w(e.bindToController)&&(n.bindToController=i(e.bindToController,t,!0)),w(n.bindToController)){var r=e.controller,o=e.controllerAs;if(!r)throw Si("noctrl","Cannot bind to controller without directive '{0}'s controller.",t);if(!ft(r,o))throw Si("noident","Cannot bind to controller without identifier for directive '{0}'.",t)}return n}function u(e){var t=e.charAt(0);if(!t||t!==xr(t))throw Si("baddir","Directive name '{0}' is invalid. The first character must be a lowercase letter",e);if(e!==e.trim())throw Si("baddir","Directive name '{0}' is invalid. The name should not contain leading or trailing whitespaces",e)}var c={},l="Directive",f=/^\s*directive\:\s*([\w\-]+)\s+(.*)$/,d=/(([\w\-]+)(?:\:([^;]+))?;?)/,y=M("ngSrc,ngSrcset,src,srcset"),E=/^(?:(\^\^?)?(\?)?(\^\^?)?)?/,C=/^(on[a-z]+|formaction)$/;this.directive=function O(t,n){return de(t,"directive"),_(t)?(u(t),pe(n,"directiveFactory"),c.hasOwnProperty(t)||(c[t]=[],e.factory(t+l,["$injector","$exceptionHandler",function(e,n){var r=[];return o(c[t],function(i,o){try{var s=e.invoke(i);$(s)?s={compile:g(s)}:!s.compile&&s.link&&(s.compile=g(s.link)),s.priority=s.priority||0,s.index=o,s.name=s.name||t,s.require=s.require||s.controller&&s.name,s.restrict=s.restrict||"EA";var u=s.$$bindings=a(s,s.name);w(u.isolateScope)&&(s.$$isolateBindings=u.isolateScope),s.$$moduleName=i.$$moduleName,r.push(s)}catch(c){n(c)}}),r}])),c[t].push(n)):o(t,s(O)),this},this.aHrefSanitizationWhitelist=function(e){return x(e)?(r.aHrefSanitizationWhitelist(e),this):r.aHrefSanitizationWhitelist()},this.imgSrcSanitizationWhitelist=function(e){return x(e)?(r.imgSrcSanitizationWhitelist(e),this):r.imgSrcSanitizationWhitelist()};var N=!0;this.debugInfoEnabled=function(e){return x(e)?(N=e,this):N},this.$get=["$injector","$interpolate","$exceptionHandler","$templateRequest","$parse","$controller","$rootScope","$document","$sce","$animate","$$sanitizeUri",function(e,r,i,a,s,u,g,x,O,T,S){function D(e,t){try{e.addClass(t)}catch(n){}}function R(e,t,n,r,i){e instanceof $r||(e=$r(e)),o(e,function(t,n){t.nodeType==Yr&&t.nodeValue.match(/\S+/)&&(e[n]=$r(t).wrap("<span></span>").parent()[0])});var a=A(e,t,e,n,r,i);R.$$addScopeClass(e);var s=null;return function(t,n,r){pe(t,"scope"),r=r||{};var i=r.parentBoundTranscludeFn,o=r.transcludeControllers,u=r.futureParentElement;i&&i.$$boundTransclude&&(i=i.$$boundTransclude),s||(s=k(u));var c;if(c="html"!==s?$r(Z(s,$r("<div>").append(e).html())):n?di.clone.call(e):e,o)for(var l in o)c.data("$"+l+"Controller",o[l].instance);return R.$$addScopeInfo(c,t),n&&n(c,t),a&&a(t,c,c,i),c}}function k(e){var t=e&&e[0];return t&&"foreignobject"!==F(t)&&t.toString().match(/SVG/)?"svg":"html"}function A(e,t,r,i,o,a){function s(e,r,i,o){var a,s,u,c,l,p,f,d,v;if(h){var g=r.length;for(v=new Array(g),l=0;l<m.length;l+=3)f=m[l],v[f]=r[f]}else v=r;for(l=0,p=m.length;p>l;)if(u=v[m[l++]],a=m[l++],s=m[l++],a){if(a.scope){c=e.$new(),R.$$addScopeInfo($r(u),c);var y=a.$$destroyBindings;y&&(a.$$destroyBindings=null,c.$on("$destroyed",y))}else c=e;d=a.transcludeOnThisElement?j(e,a.transclude,o):!a.templateOnThisElement&&o?o:!o&&t?j(e,t):null,a(s,c,u,i,d,a)}else s&&s(e,u.childNodes,n,o)}for(var u,c,l,p,f,d,h,m=[],v=0;v<e.length;v++)u=new ae,c=I(e[v],[],u,0===v?i:n,o),l=c.length?U(c,e[v],u,t,r,null,[],[],a):null,l&&l.scope&&R.$$addScopeClass(u.$$element),f=l&&l.terminal||!(p=e[v].childNodes)||!p.length?null:A(p,l?(l.transcludeOnThisElement||!l.templateOnThisElement)&&l.transclude:t),(l||f)&&(m.push(v,l,f),d=!0,h=h||l),a=null;return d?s:null}function j(e,t,n){var r=function(r,i,o,a,s){return r||(r=e.$new(!1,s),r.$$transcluded=!0),t(r,i,{parentBoundTranscludeFn:n,transcludeControllers:o,futureParentElement:a})};return r}function I(e,t,n,r,i){var o,a,s=e.nodeType,u=n.$attr;switch(s){case Kr:W(t,ct(F(e)),"E",r,i);for(var c,l,p,h,m,v,g=e.attributes,y=0,b=g&&g.length;b>y;y++){var x=!1,E=!1;c=g[y],l=c.name,m=Vr(c.value),h=ct(l),(v=fe.test(h))&&(l=l.replace(Di,"").substr(8).replace(/_(.)/g,function(e,t){return t.toUpperCase()}));var C=h.replace(/(Start|End)$/,"");z(C)&&h===C+"Start"&&(x=l,E=l.substr(0,l.length-5)+"end",l=l.substr(0,l.length-6)),p=ct(l.toLowerCase()),u[p]=l,(v||!n.hasOwnProperty(p))&&(n[p]=m,Be(e,p)&&(n[p]=!0)),te(e,t,m,p,v),W(t,p,"A",r,i,x,E)}if(a=e.className,w(a)&&(a=a.animVal),_(a)&&""!==a)for(;o=d.exec(a);)p=ct(o[2]),W(t,p,"C",r,i)&&(n[p]=Vr(o[3])),a=a.substr(o.index+o[0].length);break;case Yr:if(11===Nr)for(;e.parentNode&&e.nextSibling&&e.nextSibling.nodeType===Yr;)e.nodeValue=e.nodeValue+e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);X(t,e.nodeValue);break;case Gr:try{o=f.exec(e.nodeValue),o&&(p=ct(o[1]),W(t,p,"M",r,i)&&(n[p]=Vr(o[2])))}catch(N){}}return t.sort(Y),t}function M(e,t,n){var r=[],i=0;if(t&&e.hasAttribute&&e.hasAttribute(t)){do{if(!e)throw Si("uterdir","Unterminated attribute, found '{0}' but no matching '{1}' found.",t,n);e.nodeType==Kr&&(e.hasAttribute(t)&&i++,e.hasAttribute(n)&&i--),r.push(e),e=e.nextSibling}while(i>0)}else r.push(e);return $r(r)}function V(e,t,n){return function(r,i,o,a,s){return i=M(i[0],t,n),e(r,i,o,a,s)}}function U(e,r,o,a,s,c,l,p,f){function d(e,t,n,r){e&&(n&&(e=V(e,n,r)),e.require=g.require,e.directiveName=y,(S===g||g.$$isolateScope)&&(e=re(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=V(t,n,r)),t.require=g.require,t.directiveName=y,(S===g||g.$$isolateScope)&&(t=re(t,{isolateScope:!0})),p.push(t))}function h(e,t,n,r){var i;if(_(t)){var o=t.match(E),a=t.substring(o[0].length),s=o[1]||o[3],u="?"===o[2];if("^^"===s?n=n.parent():(i=r&&r[a],i=i&&i.instance),!i){var c="$"+a+"Controller";i=s?n.inheritedData(c):n.data(c)}if(!i&&!u)throw Si("ctreq","Controller '{0}', required by directive '{1}', can't be found!",a,e)}else if(Fr(t)){i=[];for(var l=0,p=t.length;p>l;l++)i[l]=h(e,t[l],n,r)}return i||null}function m(e,t,n,r,i,o){var a=ve();for(var s in r){var c=r[s],l={$scope:c===S||c.$$isolateScope?i:o,$element:e,$attrs:t,$transclude:n},p=c.controller;"@"==p&&(p=t[c.name]);var f=u(p,l,!0,c.controllerAs);a[c.name]=f,F||e.data("$"+c.name+"Controller",f.instance)}return a}function v(e,t,i,a,s,u){function c(e,t,r){var i;return P(e)||(r=t,t=e,e=n),F&&(i=b),r||(r=F?w.parent():w),s(e,t,i,r,k)}var f,d,v,g,y,b,x,w,E;if(r===i?(E=o,w=o.$$element):(w=$r(i),E=new ae(w,o)),S&&(y=t.$new(!0)),s&&(x=c,x.$$boundTransclude=s),T&&(b=m(w,E,x,T,y,t)),S&&(R.$$addScopeInfo(w,y,!0,!(D&&(D===S||D===S.$$originalDirective))),R.$$addScopeClass(w,!0),y.$$isolateBindings=S.$$isolateBindings,oe(t,E,y,y.$$isolateBindings,S,y)),b){var _,C,N=S||O;N&&b[N.name]&&(_=N.$$bindings.bindToController,g=b[N.name],g&&g.identifier&&_&&(C=g,u.$$destroyBindings=oe(t,E,g.instance,_,N)));for(f in b){g=b[f];var $=g();$!==g.instance&&(g.instance=$,w.data("$"+f+"Controller",$),g===C&&(u.$$destroyBindings(),u.$$destroyBindings=oe(t,E,$,_,N)))}}for(f=0,d=l.length;d>f;f++)v=l[f],ie(v,v.isolateScope?y:t,w,E,v.require&&h(v.directiveName,v.require,w,b),x);var k=t;for(S&&(S.template||null===S.templateUrl)&&(k=y),e&&e(k,i.childNodes,n,s),f=p.length-1;f>=0;f--)v=p[f],ie(v,v.isolateScope?y:t,w,E,v.require&&h(v.directiveName,v.require,w,b),x)}f=f||{};for(var g,y,b,x,C,N=-Number.MAX_VALUE,O=f.newScopeDirective,T=f.controllerDirectives,S=f.newIsolateScopeDirective,D=f.templateDirective,k=f.nonTlbTranscludeDirective,A=!1,j=!1,F=f.hasElementTranscludeDirective,L=o.$$element=$r(r),U=c,H=a,W=0,z=e.length;z>W;W++){g=e[W];var Y=g.$$start,X=g.$$end;if(Y&&(L=M(r,Y,X)),b=n,N>g.priority)break;if((C=g.scope)&&(g.templateUrl||(w(C)?(G("new/isolated scope",S||O,g,L),S=g):G("new/isolated scope",S,g,L)),O=O||g),y=g.name,!g.templateUrl&&g.controller&&(C=g.controller,T=T||ve(),G("'"+y+"' controller",T[y],g,L),T[y]=g),(C=g.transclude)&&(A=!0,g.$$tlb||(G("transclusion",k,g,L),k=g),"element"==C?(F=!0,N=g.priority,b=L,L=o.$$element=$r(t.createComment(" "+y+": "+o[y]+" ")),r=L[0],ne(s,B(b),r),H=R(b,a,N,U&&U.name,{nonTlbTranscludeDirective:k})):(b=$r(Pe(r)).contents(),L.empty(),H=R(b,a))),g.template)if(j=!0,G("template",D,g,L),D=g,C=$(g.template)?g.template(L,o):g.template,C=le(C),g.replace){if(U=g,b=_e(C)?[]:pt(Z(g.templateNamespace,Vr(C))),r=b[0],1!=b.length||r.nodeType!==Kr)throw Si("tplrt","Template for directive '{0}' must have exactly one root element. {1}",y,"");ne(s,L,r);var ee={$attr:{}},te=I(r,[],ee),se=e.splice(W+1,e.length-(W+1));S&&q(te),e=e.concat(te).concat(se),K(o,ee),z=e.length}else L.html(C);if(g.templateUrl)j=!0,G("template",D,g,L),D=g,g.replace&&(U=g),v=Q(e.splice(W,e.length-W),L,o,s,A&&H,l,p,{controllerDirectives:T,newScopeDirective:O!==g&&O,newIsolateScopeDirective:S,templateDirective:D,nonTlbTranscludeDirective:k}),z=e.length;else if(g.compile)try{x=g.compile(L,o,H),$(x)?d(null,x,Y,X):x&&d(x.pre,x.post,Y,X)}catch(ue){i(ue,J(L))}g.terminal&&(v.terminal=!0,N=Math.max(N,g.priority))}return v.scope=O&&O.scope===!0,v.transcludeOnThisElement=A,v.templateOnThisElement=j,v.transclude=H,f.hasElementTranscludeDirective=F,v}function q(e){for(var t=0,n=e.length;n>t;t++)e[t]=h(e[t],{$$isolateScope:!0})}function W(t,n,r,o,a,s,u){if(n===a)return null;var p=null;if(c.hasOwnProperty(n))for(var f,d=e.get(n+l),m=0,v=d.length;v>m;m++)try{f=d[m],(b(o)||o>f.priority)&&-1!=f.restrict.indexOf(r)&&(s&&(f=h(f,{$$start:s,$$end:u})),t.push(f),p=f)}catch(g){i(g)}return p}function z(t){if(c.hasOwnProperty(t))for(var n,r=e.get(t+l),i=0,o=r.length;o>i;i++)if(n=r[i],n.multiElement)return!0;return!1}function K(e,t){var n=t.$attr,r=e.$attr,i=e.$$element;o(e,function(r,i){"$"!=i.charAt(0)&&(t[i]&&t[i]!==r&&(r+=("style"===i?";":" ")+t[i]),e.$set(i,r,!0,n[i]))}),o(t,function(t,o){"class"==o?(D(i,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==o?(i.attr("style",i.attr("style")+";"+t),e.style=(e.style?e.style+";":"")+t):"$"==o.charAt(0)||e.hasOwnProperty(o)||(e[o]=t,r[o]=n[o])})}function Q(e,t,n,r,i,s,u,c){var l,p,f=[],d=t[0],m=e.shift(),v=h(m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),g=$(m.templateUrl)?m.templateUrl(t,n):m.templateUrl,y=m.templateNamespace;return t.empty(),a(g).then(function(a){var h,b,x,E;if(a=le(a),m.replace){if(x=_e(a)?[]:pt(Z(y,Vr(a))),h=x[0],1!=x.length||h.nodeType!==Kr)throw Si("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,g);b={$attr:{}},ne(r,t,h);var _=I(h,[],b);w(m.scope)&&q(_),e=_.concat(e),K(n,b)}else h=d,t.html(a);for(e.unshift(v),l=U(e,h,n,i,t,m,s,u,c),o(r,function(e,n){e==h&&(r[n]=t[0])}),p=A(t[0].childNodes,i);f.length;){var C=f.shift(),N=f.shift(),$=f.shift(),O=f.shift(),T=t[0];if(!C.$$destroyed){if(N!==d){var P=N.className;c.hasElementTranscludeDirective&&m.replace||(T=Pe(h)),ne($,$r(N),T),D($r(T),P)}E=l.transcludeOnThisElement?j(C,l.transclude,O):O,l(p,C,T,r,E,l)}}f=null}),function(e,t,n,r,i){var o=i;t.$$destroyed||(f?f.push(t,n,r,o):(l.transcludeOnThisElement&&(o=j(t,l.transclude,i)),l(p,t,n,r,o,l)))}}function Y(e,t){var n=t.priority-e.priority;return 0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}function G(e,t,n,r){function i(e){return e?" (module: "+e+")":""}if(t)throw Si("multidir","Multiple directives [{0}{1}, {2}{3}] asking for {4} on: {5}",t.name,i(t.$$moduleName),n.name,i(n.$$moduleName),e,J(r))}function X(e,t){var n=r(t,!0);n&&e.push({priority:0,compile:function(e){var t=e.parent(),r=!!t.length;return r&&R.$$addBindingClass(t),function(e,t){var i=t.parent();r||R.$$addBindingClass(i),R.$$addBindingInfo(i,n.expressions),e.$watch(n,function(e){t[0].nodeValue=e})}}})}function Z(e,n){switch(e=xr(e||"html")){case"svg":case"math":var r=t.createElement("div");return r.innerHTML="<"+e+">"+n+"</"+e+">",r.childNodes[0].childNodes;default:return n}}function ee(e,t){if("srcdoc"==t)return O.HTML;var n=F(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?O.RESOURCE_URL:void 0}function te(e,t,n,i,o){var a=ee(e,i);o=y[i]||o;var s=r(n,!0,a,o);if(s){if("multiple"===i&&"select"===F(e))throw Si("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",J(e));t.push({priority:100,compile:function(){return{pre:function(e,t,u){var c=u.$$observers||(u.$$observers=ve());if(C.test(i))throw Si("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var l=u[i];l!==n&&(s=l&&r(l,!0,a,o),n=l),s&&(u[i]=s(e),(c[i]||(c[i]=[])).$$inter=!0,(u.$$observers&&u.$$observers[i].$$scope||e).$watch(s,function(e,t){"class"===i&&e!=t?u.$updateClass(e,t):u.$set(i,e)}))}}}})}}function ne(e,n,r){var i,o,a=n[0],s=n.length,u=a.parentNode;if(e)for(i=0,o=e.length;o>i;i++)if(e[i]==a){e[i++]=r;for(var c=i,l=c+s-1,p=e.length;p>c;c++,l++)p>l?e[c]=e[l]:delete e[c];e.length-=s-1,e.context===a&&(e.context=r);break}u&&u.replaceChild(r,a);var f=t.createDocumentFragment();f.appendChild(a),$r.hasData(a)&&($r(r).data($r(a).data()),Or?(Mr=!0,Or.cleanData([a])):delete $r.cache[a[$r.expando]]);for(var d=1,h=n.length;h>d;d++){var m=n[d];$r(m).remove(),f.appendChild(m),delete n[d]}n[0]=r,n.length=1}function re(e,t){return p(function(){return e.apply(null,arguments)},e,t)}function ie(e,t,n,r,o,a){try{e(t,n,r,o,a)}catch(s){i(s,J(n))}}function oe(e,t,n,i,a,u){var c;o(i,function(i,o){var u,l,p,f,d=i.attrName,h=i.optional,v=i.mode;switch(v){case"@":h||wr.call(t,d)||(n[o]=t[d]=void 0),t.$observe(d,function(e){_(e)&&(n[o]=e)}),t.$$observers[d].$$scope=e,_(t[d])&&(n[o]=r(t[d])(e));break;case"=":if(!wr.call(t,d)){if(h)break;t[d]=void 0}if(h&&!t[d])break;l=s(t[d]),f=l.literal?H:function(e,t){return e===t||e!==e&&t!==t},p=l.assign||function(){throw u=n[o]=l(e),Si("nonassign","Expression '{0}' used with directive '{1}' is non-assignable!",t[d],a.name)},u=n[o]=l(e);var g=function(t){return f(t,n[o])||(f(t,u)?p(e,t=n[o]):n[o]=t),u=t};g.$stateful=!0;var y;y=i.collection?e.$watchCollection(t[d],g):e.$watch(s(t[d],g),null,l.literal),c=c||[],c.push(y);break;case"&":if(l=t.hasOwnProperty(d)?s(t[d]):m,l===m&&h)break;n[o]=function(t){return l(e,t)}}});var l=c?function(){for(var e=0,t=c.length;t>e;++e)c[e]()}:m;return u&&l!==m?(u.$on("$destroy",l),m):l}var ae=function(e,t){if(t){var n,r,i,o=Object.keys(t);for(n=0,r=o.length;r>n;n++)i=o[n],this[i]=t[i]}else this.$attr={};this.$$element=e};ae.prototype={$normalize:ct,$addClass:function(e){e&&e.length>0&&T.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&T.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=lt(e,t);n&&n.length&&T.addClass(this.$$element,n);var r=lt(t,e);r&&r.length&&T.removeClass(this.$$element,r)},$set:function(e,t,n,r){var a,s=this.$$element[0],u=Be(s,e),c=We(e),l=e;if(u?(this.$$element.prop(e,t),r=u):c&&(this[c]=t,l=c),this[e]=t,r?this.$attr[e]=r:(r=this.$attr[e],r||(this.$attr[e]=r=ce(e,"-"))),a=F(this.$$element),"a"===a&&"href"===e||"img"===a&&"src"===e)this[e]=t=S(t,"src"===e);else if("img"===a&&"srcset"===e){for(var p="",f=Vr(t),d=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,h=/\s/.test(f)?d:/(,)/,m=f.split(h),v=Math.floor(m.length/2),g=0;v>g;g++){var y=2*g;p+=S(Vr(m[y]),!0),p+=" "+Vr(m[y+1])}var x=Vr(m[2*g]).split(/\s/);p+=S(Vr(x[0]),!0),2===x.length&&(p+=" "+Vr(x[1])),this[e]=t=p}n!==!1&&(null===t||b(t)?this.$$element.removeAttr(r):this.$$element.attr(r,t));var w=this.$$observers;w&&o(w[l],function(e){try{e(t)}catch(n){i(n)}})},$observe:function(e,t){var n=this,r=n.$$observers||(n.$$observers=ve()),i=r[e]||(r[e]=[]);return i.push(t),g.$evalAsync(function(){i.$$inter||!n.hasOwnProperty(e)||b(n[e])||t(n[e])}),function(){L(i,t)}}};var se=r.startSymbol(),ue=r.endSymbol(),le="{{"==se||"}}"==ue?v:function(e){return e.replace(/\{\{/g,se).replace(/}}/g,ue)},fe=/^ngAttr[A-Z]/;return R.$$addBindingInfo=N?function(e,t){var n=e.data("$binding")||[];Fr(t)?n=n.concat(t):n.push(t),e.data("$binding",n)}:m,R.$$addBindingClass=N?function(e){D(e,"ng-binding")}:m,R.$$addScopeInfo=N?function(e,t,n,r){var i=n?r?"$isolateScopeNoTemplate":"$isolateScope":"$scope";e.data(i,t)}:m,R.$$addScopeClass=N?function(e,t){D(e,t?"ng-isolate-scope":"ng-scope")}:m,R}]}function ct(e){return Ee(e.replace(Di,""))}function lt(e,t){var n="",r=e.split(/\s+/),i=t.split(/\s+/);e:for(var o=0;o<r.length;o++){for(var a=r[o],s=0;s<i.length;s++)if(a==i[s])continue e;n+=(n.length>0?" ":"")+a}return n}function pt(e){e=$r(e);var t=e.length;if(1>=t)return e;for(;t--;){var n=e[t];n.nodeType===Gr&&Sr.call(e,t,1)}return e}function ft(e,t){if(t&&_(t))return t;if(_(e)){var n=ki.exec(e);if(n)return n[3]}}function dt(){var e={},t=!1;this.register=function(t,n){de(t,"controller"),w(t)?p(e,t):e[t]=n},this.allowGlobals=function(){t=!0},this.$get=["$injector","$window",function(i,o){function a(e,t,n,i){if(!e||!w(e.$scope))throw r("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,t);e.$scope[t]=n}return function(r,s,u,c){var l,f,d,h;if(u=u===!0,c&&_(c)&&(h=c),_(r)){if(f=r.match(ki),!f)throw Ri("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",r);d=f[1],h=h||f[3],r=e.hasOwnProperty(d)?e[d]:he(s.$scope,d,!0)||(t?he(o,d,!0):n),fe(r,d,!0)}if(u){var m=(Fr(r)?r[r.length-1]:r).prototype;l=Object.create(m||null),h&&a(s,h,l,d||r.name);var v;return v=p(function(){var e=i.invoke(r,l,s,d);return e!==l&&(w(e)||$(e))&&(l=e,h&&a(s,h,l,d||r.name)),l},{instance:l,identifier:h})}return l=i.instantiate(r,s,d),h&&a(s,h,l,d||r.name),l}}]}function ht(){this.$get=["$window",function(e){return $r(e.document)}]}function mt(){this.$get=["$log",function(e){return function(){e.error.apply(e,arguments)}}]}function vt(e){return w(e)?N(e)?e.toISOString():K(e):e}function gt(){this.$get=function(){return function(e){if(!e)return"";var t=[];return a(e,function(e,n){null===e||b(e)||(Fr(e)?o(e,function(e){t.push(re(n)+"="+re(vt(e)))}):t.push(re(n)+"="+re(vt(e))))}),t.join("&")}}}function yt(){this.$get=function(){return function(e){function t(e,r,i){null===e||b(e)||(Fr(e)?o(e,function(e,n){t(e,r+"["+(w(e)?n:"")+"]")}):w(e)&&!N(e)?a(e,function(e,n){t(e,r+(i?"":"[")+n+(i?"":"]"))}):n.push(re(r)+"="+re(vt(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function bt(e,t){if(_(e)){var n=e.replace(Li,"").trim();if(n){var r=t("Content-Type");(r&&0===r.indexOf(ji)||xt(n))&&(e=Q(n))}}return e}function xt(e){var t=e.match(Mi);return t&&Fi[t[0]].test(e)}function wt(e){function t(e,t){e&&(r[e]=r[e]?r[e]+", "+t:t)}var n,r=ve();return _(e)?o(e.split("\n"),function(e){n=e.indexOf(":"),t(xr(Vr(e.substr(0,n))),Vr(e.substr(n+1)))}):w(e)&&o(e,function(e,n){t(xr(n),Vr(e))}),r}function Et(e){var t;return function(n){if(t||(t=wt(e)),n){var r=t[xr(n)];return void 0===r&&(r=null),r}return t}}function _t(e,t,n,r){return $(r)?r(e,t,n):(o(r,function(r){e=r(e,t,n)}),e)}function Ct(e){return e>=200&&300>e}function Nt(){var e=this.defaults={transformResponse:[bt],transformRequest:[function(e){return!w(e)||S(e)||R(e)||D(e)?e:K(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:U(Ii),put:U(Ii),patch:U(Ii)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},t=!1;this.useApplyAsync=function(e){return x(e)?(t=!!e,this):t};var i=!0;this.useLegacyPromiseExtensions=function(e){return x(e)?(i=!!e,this):i};var a=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,u,c,l,f,d){function h(t){function a(e){var t=p({},e);return t.data=e.data?_t(e.data,e.headers,e.status,c.transformResponse):e.data,Ct(e.status)?t:f.reject(t)}function s(e,t){var n,r={};return o(e,function(e,i){$(e)?(n=e(t),null!=n&&(r[i]=n)):r[i]=e}),r}function u(t){var n,r,i,o=e.headers,a=p({},t.headers);o=p({},o.common,o[xr(t.method)]);e:for(n in o){r=xr(n);for(i in a)if(xr(i)===r)continue e;a[n]=o[n]}return s(a,U(t))}if(!jr.isObject(t))throw r("$http")("badreq","Http request configuration must be an object. Received: {0}",t);var c=p({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},t);c.headers=u(t),c.method=Er(c.method),c.paramSerializer=_(c.paramSerializer)?d.get(c.paramSerializer):c.paramSerializer;var l=function(t){var r=t.headers,i=_t(t.data,Et(r),n,t.transformRequest);return b(i)&&o(r,function(e,t){"content-type"===xr(t)&&delete r[t]}),b(t.withCredentials)&&!b(e.withCredentials)&&(t.withCredentials=e.withCredentials),g(t,i).then(a,a)},h=[l,n],m=f.when(c);for(o(C,function(e){(e.request||e.requestError)&&h.unshift(e.request,e.requestError),(e.response||e.responseError)&&h.push(e.response,e.responseError)});h.length;){var v=h.shift(),y=h.shift();m=m.then(v,y)}return i?(m.success=function(e){return fe(e,"fn"),m.then(function(t){e(t.data,t.status,t.headers,c)}),m},m.error=function(e){return fe(e,"fn"),m.then(null,function(t){e(t.data,t.status,t.headers,c)}),m}):(m.success=Ui("success"),m.error=Ui("error")),m}function m(){o(arguments,function(e){h[e]=function(t,n){return h(p({},n||{},{method:e,url:t}))}})}function v(){o(arguments,function(e){h[e]=function(t,n,r){return h(p({},r||{},{method:e,url:t,data:n}))}})}function g(r,i){function o(e,n,r,i){function o(){a(n,e,r,i)}d&&(Ct(e)?d.put(C,[e,n,wt(r),i]):d.remove(C)),t?l.$applyAsync(o):(o(),l.$$phase||l.$apply())}function a(e,t,n,i){t=t>=-1?t:0,(Ct(t)?v.resolve:v.reject)({data:e,status:t,headers:Et(n),config:r,statusText:i})}function c(e){a(e.data,e.status,U(e.headers()),e.statusText)}function p(){var e=h.pendingRequests.indexOf(r);-1!==e&&h.pendingRequests.splice(e,1)}var d,m,v=f.defer(),g=v.promise,_=r.headers,C=y(r.url,r.paramSerializer(r.params));if(h.pendingRequests.push(r),g.then(p,p),!r.cache&&!e.cache||r.cache===!1||"GET"!==r.method&&"JSONP"!==r.method||(d=w(r.cache)?r.cache:w(e.cache)?e.cache:E),d&&(m=d.get(C),x(m)?A(m)?m.then(c,c):Fr(m)?a(m[1],m[0],U(m[2]),m[3]):a(m,200,{},"OK"):d.put(C,g)),b(m)){var N=On(r.url)?u()[r.xsrfCookieName||e.xsrfCookieName]:n;N&&(_[r.xsrfHeaderName||e.xsrfHeaderName]=N),s(r.method,C,i,o,_,r.timeout,r.withCredentials,r.responseType)}return g}function y(e,t){return t.length>0&&(e+=(-1==e.indexOf("?")?"?":"&")+t),e}var E=c("$http");e.paramSerializer=_(e.paramSerializer)?d.get(e.paramSerializer):e.paramSerializer;var C=[];return o(a,function(e){C.unshift(_(e)?d.get(e):d.invoke(e))}),h.pendingRequests=[],m("get","delete","head","jsonp"),v("post","put","patch"),h.defaults=e,h}]}function $t(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Ot(){this.$get=["$browser","$window","$document","$xhrFactory",function(e,t,n,r){return Tt(e,r,e.defer,t.angular.callbacks,n[0])}]}function Tt(e,t,n,r,i){function a(e,t,n){var o=i.createElement("script"),a=null;return o.type="text/javascript",o.src=e,o.async=!0,a=function(e){ri(o,"load",a),ri(o,"error",a),i.body.removeChild(o),o=null;var s=-1,u="unknown";e&&("load"!==e.type||r[t].called||(e={type:"error"}),u=e.type,s="error"===e.type?404:200),n&&n(s,u)},ni(o,"load",a),ni(o,"error",a),i.body.appendChild(o),a}return function(i,s,u,c,l,p,f,d){function h(){y&&y(),w&&w.abort()}function v(t,r,i,o,a){x(C)&&n.cancel(C),y=w=null,t(r,i,o,a),e.$$completeOutstandingRequest(m)}if(e.$$incOutstandingRequestCount(),s=s||e.url(),"jsonp"==xr(i)){var g="_"+(r.counter++).toString(36);r[g]=function(e){r[g].data=e,r[g].called=!0};var y=a(s.replace("JSON_CALLBACK","angular.callbacks."+g),g,function(e,t){v(c,e,r[g].data,"",t),r[g]=m})}else{var w=t(i,s);w.open(i,s,!0),o(l,function(e,t){x(e)&&w.setRequestHeader(t,e)}),w.onload=function(){var e=w.statusText||"",t="response"in w?w.response:w.responseText,n=1223===w.status?204:w.status;0===n&&(n=t?200:"file"==$n(s).protocol?404:0),v(c,n,t,w.getAllResponseHeaders(),e)};var E=function(){v(c,-1,null,null,"")};if(w.onerror=E,w.onabort=E,f&&(w.withCredentials=!0),d)try{w.responseType=d}catch(_){if("json"!==d)throw _}w.send(b(u)?null:u)}if(p>0)var C=n(h,p);else A(p)&&p.then(h)}}function Pt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,r,i){function o(e){return"\\\\\\"+e}function a(n){return n.replace(f,e).replace(d,t)}function s(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=K(e)}return e}function u(o,u,f,d){function h(e){try{return e=T(e),d&&!x(e)?e:s(e)}catch(t){r(Hi.interr(o,t))}}d=!!d;for(var m,v,g,y=0,w=[],E=[],_=o.length,C=[],N=[];_>y;){if(-1==(m=o.indexOf(e,y))||-1==(v=o.indexOf(t,m+c))){y!==_&&C.push(a(o.substring(y)));break}y!==m&&C.push(a(o.substring(y,m))),g=o.substring(m+c,v),w.push(g),E.push(n(g,h)),y=v+l,N.push(C.length),C.push("")}if(f&&C.length>1&&Hi.throwNoconcat(o),!u||w.length){var O=function(e){for(var t=0,n=w.length;n>t;t++){if(d&&b(e[t]))return;C[N[t]]=e[t]}return C.join("")},T=function(e){return f?i.getTrusted(f,e):i.valueOf(e)};return p(function(e){var t=0,n=w.length,i=new Array(n);try{for(;n>t;t++)i[t]=E[t](e);return O(i)}catch(a){r(Hi.interr(o,a))}},{exp:o,expressions:w,$$watchDelegate:function(e,t){var n;return e.$watchGroup(E,function(r,i){var o=O(r);$(t)&&t.call(this,o,r!==i?n:o,e),n=o})}})}}var c=e.length,l=t.length,f=new RegExp(e.replace(/./g,o),"g"),d=new RegExp(t.replace(/./g,o),"g");return u.startSymbol=function(){return e},u.endSymbol=function(){return t},u}]}function St(){this.$get=["$rootScope","$window","$q","$$q",function(e,t,n,r){function i(i,a,s,u){var c=arguments.length>4,l=c?B(arguments,4):[],p=t.setInterval,f=t.clearInterval,d=0,h=x(u)&&!u,m=(h?r:n).defer(),v=m.promise;return s=x(s)?s:0,v.then(null,null,c?function(){i.apply(null,l)}:i),v.$$intervalId=p(function(){m.notify(d++),s>0&&d>=s&&(m.resolve(d),f(v.$$intervalId),delete o[v.$$intervalId]),h||e.$apply()},a),o[v.$$intervalId]=m,v}var o={};return i.cancel=function(e){return e&&e.$$intervalId in o?(o[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete o[e.$$intervalId],!0):!1},i}]}function Dt(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ne(t[n]);return t.join("/")}function Rt(e,t){var n=$n(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=d(n.port)||Bi[n.protocol]||null}function kt(e,t){var n="/"!==e.charAt(0);n&&(e="/"+e);var r=$n(e);t.$$path=decodeURIComponent(n&&"/"===r.pathname.charAt(0)?r.pathname.substring(1):r.pathname),t.$$search=ee(r.search),t.$$hash=decodeURIComponent(r.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function At(e,t){return 0===t.indexOf(e)?t.substr(e.length):void 0}function jt(e){var t=e.indexOf("#");return-1==t?e:e.substr(0,t)}function It(e){return e.replace(/(#.+)|#$/,"$1")}function Mt(e){return e.substr(0,jt(e).lastIndexOf("/")+1)}function Ft(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Lt(e,t,n){this.$$html5=!0,n=n||"",Rt(e,this),this.$$parse=function(e){var n=At(t,e);if(!_(n))throw Wi("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);kt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=te(this.$$search),n=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a,s;return x(o=At(e,r))?(a=o,s=x(o=At(n,o))?t+(At("/",o)||o):e+a):x(o=At(t,r))?s=t+o:t==r+"/"&&(s=t),s&&this.$$parse(s),!!s}}function Vt(e,t,n){Rt(e,this),this.$$parse=function(r){function i(e,t,n){var r,i=/^\/[A-Z]:(\/.*)/;return 0===t.indexOf(n)&&(t=t.replace(n,"")),i.exec(t)?e:(r=i.exec(e),r?r[1]:e)}var o,a=At(e,r)||At(t,r);b(a)||"#"!==a.charAt(0)?this.$$html5?o=a:(o="",b(a)&&(e=r,this.replace())):(o=At(n,a),b(o)&&(o=a)),kt(o,this),this.$$path=i(this.$$path,o,e),this.$$compose()},this.$$compose=function(){var t=te(this.$$search),r=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t){return jt(e)==jt(t)?(this.$$parse(t),!0):!1}}function Ut(e,t,n){this.$$html5=!0,Vt.apply(this,arguments),this.$$parseLinkUrl=function(r,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,a;return e==jt(r)?o=r:(a=At(t,r))?o=e+n+a:t===r+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=te(this.$$search),r=this.$$hash?"#"+ne(this.$$hash):"";this.$$url=Dt(this.$$path)+(t?"?"+t:"")+r,this.$$absUrl=e+n+this.$$url}}function Ht(e){return function(){return this[e]}}function qt(e,t){return function(n){return b(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Bt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return x(t)?(e=t,this):e},this.html5Mode=function(e){return k(e)?(t.enabled=e,this):w(e)?(k(e.enabled)&&(t.enabled=e.enabled),k(e.requireBase)&&(t.requireBase=e.requireBase),k(e.rewriteLinks)&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,r,i,o,a){function s(e,t,n){var i=c.url(),o=c.$$state;try{r.url(e,t,n),c.$$state=r.state()}catch(a){throw c.url(i),c.$$state=o,a}}function u(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,l,p,f=r.baseHref(),d=r.url();if(t.enabled){if(!f&&t.requireBase)throw Wi("nobase","$location in HTML5 mode requires a <base> tag to be present!");p=Ft(d)+(f||"/"),l=i.history?Lt:Ut}else p=jt(d),l=Vt;var h=Mt(p);c=new l(p,h,"#"+e),c.$$parseLinkUrl(d,d),c.$$state=r.state();var m=/^\s*(javascript|mailto):/i;o.on("click",function(e){if(t.rewriteLinks&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!=e.which&&2!=e.button){for(var i=$r(e.target);"a"!==F(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var s=i.prop("href"),u=i.attr("href")||i.attr("xlink:href");w(s)&&"[object SVGAnimatedString]"===s.toString()&&(s=$n(s.animVal).href),m.test(s)||!s||i.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(s,u)&&(e.preventDefault(),c.absUrl()!=r.url()&&(n.$apply(),a.angular["ff-684208-preventDefault"]=!0))}}),It(c.absUrl())!=It(d)&&r.url(c.absUrl(),!0);var v=!0;return r.onUrlChange(function(e,t){return b(At(h,e))?void(a.location.href=e):(n.$evalAsync(function(){var r,i=c.absUrl(),o=c.$$state;c.$$parse(e),c.$$state=t,r=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,c.absUrl()===e&&(r?(c.$$parse(i),c.$$state=o,s(i,!1,o)):(v=!1,u(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var e=It(r.url()),t=It(c.absUrl()),o=r.state(),a=c.$$replace,l=e!==t||c.$$html5&&i.history&&o!==c.$$state;(v||l)&&(v=!1,n.$evalAsync(function(){var t=c.absUrl(),r=n.$broadcast("$locationChangeStart",t,e,c.$$state,o).defaultPrevented;c.absUrl()===t&&(r?(c.$$parse(e),c.$$state=o):(l&&s(t,a,o===c.$$state?null:c.$$state),u(e,o)))})),c.$$replace=!1}),c}]}function Wt(){var e=!0,t=this;this.debugEnabled=function(t){return x(t)?(e=t,this):e},this.$get=["$window",function(n){function r(e){return e instanceof Error&&(e.stack?e=e.message&&-1===e.stack.indexOf(e.message)?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function i(e){var t=n.console||{},i=t[e]||t.log||m,a=!1;try{a=!!i.apply}catch(s){}return a?function(){var e=[];return o(arguments,function(t){e.push(r(t))}),i.apply(t,e)}:function(e,t){i(e,null==t?"":t)}}return{log:i("log"),info:i("info"),warn:i("warn"),error:i("error"),debug:function(){var n=i("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function zt(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw Ki("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function Kt(e,t){if(e+="",!_(e))throw Ki("iseccst","Cannot convert object to primitive value! Expression: {0}",t);return e}function Qt(e,t){if(e){if(e.constructor===e)throw Ki("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);
26
+
27
+ if(e.window===e)throw Ki("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw Ki("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t);if(e===Object)throw Ki("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function Yt(e,t){if(e){if(e.constructor===e)throw Ki("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===Qi||e===Yi||e===Gi)throw Ki("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function Gt(e,t){if(e&&(e===0..constructor||e===(!1).constructor||e==="".constructor||e==={}.constructor||e===[].constructor||e===Function.constructor))throw Ki("isecaf","Assigning to a constructor is disallowed! Expression: {0}",t)}function Xt(e,t){return"undefined"!=typeof e?e:t}function Jt(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function Zt(e,t){var n=e(t);return!n.$stateful}function en(e,t){var n,r;switch(e.type){case eo.Program:n=!0,o(e.body,function(e){en(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case eo.Literal:e.constant=!0,e.toWatch=[];break;case eo.UnaryExpression:en(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case eo.BinaryExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case eo.LogicalExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case eo.ConditionalExpression:en(e.test,t),en(e.alternate,t),en(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case eo.Identifier:e.constant=!1,e.toWatch=[e];break;case eo.MemberExpression:en(e.object,t),e.computed&&en(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case eo.CallExpression:n=e.filter?Zt(t,e.callee.name):!1,r=[],o(e.arguments,function(e){en(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=e.filter&&Zt(t,e.callee.name)?r:[e];break;case eo.AssignmentExpression:en(e.left,t),en(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case eo.ArrayExpression:n=!0,r=[],o(e.elements,function(e){en(e,t),n=n&&e.constant,e.constant||r.push.apply(r,e.toWatch)}),e.constant=n,e.toWatch=r;break;case eo.ObjectExpression:n=!0,r=[],o(e.properties,function(e){en(e.value,t),n=n&&e.value.constant,e.value.constant||r.push.apply(r,e.value.toWatch)}),e.constant=n,e.toWatch=r;break;case eo.ThisExpression:e.constant=!1,e.toWatch=[]}}function tn(e){if(1==e.length){var t=e[0].expression,r=t.toWatch;return 1!==r.length?r:r[0]!==t?r:n}}function nn(e){return e.type===eo.Identifier||e.type===eo.MemberExpression}function rn(e){return 1===e.body.length&&nn(e.body[0].expression)?{type:eo.AssignmentExpression,left:e.body[0].expression,right:{type:eo.NGValueParameter},operator:"="}:void 0}function on(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===eo.Literal||e.body[0].expression.type===eo.ArrayExpression||e.body[0].expression.type===eo.ObjectExpression)}function an(e){return e.constant}function sn(e,t){this.astBuilder=e,this.$filter=t}function un(e,t){this.astBuilder=e,this.$filter=t}function cn(e){return"constructor"==e}function ln(e){return $(e.valueOf)?e.valueOf():no.call(e)}function pn(){var e=ve(),t=ve();this.$get=["$filter",function(r){function i(e,t){return null==e||null==t?e===t:"object"==typeof e&&(e=ln(e),"object"==typeof e)?!1:e===t||e!==e&&t!==t}function a(e,t,r,o,a){var s,u=o.inputs;if(1===u.length){var c=i;return u=u[0],e.$watch(function(e){var t=u(e);return i(t,c)||(s=o(e,n,n,[t]),c=t&&ln(t)),s},t,r,a)}for(var l=[],p=[],f=0,d=u.length;d>f;f++)l[f]=i,p[f]=null;return e.$watch(function(e){for(var t=!1,r=0,a=u.length;a>r;r++){var c=u[r](e);(t||(t=!i(c,l[r])))&&(p[r]=c,l[r]=c&&ln(c))}return t&&(s=o(e,n,n,p)),s},t,r,a)}function s(e,t,n,r){var i,o;return i=e.$watch(function(e){return r(e)},function(e,n,r){o=e,$(t)&&t.apply(this,arguments),x(e)&&r.$$postDigest(function(){x(o)&&i()})},n)}function u(e,t,n,r){function i(e){var t=!0;return o(e,function(e){x(e)||(t=!1)}),t}var a,s;return a=e.$watch(function(e){return r(e)},function(e,n,r){s=e,$(t)&&t.call(this,e,n,r),i(e)&&r.$$postDigest(function(){i(s)&&a()})},n)}function c(e,t,n,r){var i;return i=e.$watch(function(e){return r(e)},function(){$(t)&&t.apply(this,arguments),i()},n)}function l(e,t){if(!t)return e;var n=e.$$watchDelegate,r=n!==u&&n!==s,i=r?function(n,r,i,o){var a=e(n,r,i,o);return t(a,n,r)}:function(n,r,i,o){var a=e(n,r,i,o),s=t(a,n,r);return x(a)?s:a};return e.$$watchDelegate&&e.$$watchDelegate!==a?i.$$watchDelegate=e.$$watchDelegate:t.$stateful||(i.$$watchDelegate=a,i.inputs=e.inputs?e.inputs:[e]),i}var p=Hr().noUnsafeEval,f={csp:p,expensiveChecks:!1},d={csp:p,expensiveChecks:!0};return function(n,i,o){var p,h,v;switch(typeof n){case"string":n=n.trim(),v=n;var g=o?t:e;if(p=g[v],!p){":"===n.charAt(0)&&":"===n.charAt(1)&&(h=!0,n=n.substring(2));var y=o?d:f,b=new Zi(y),x=new to(b,r,y);p=x.parse(n),p.constant?p.$$watchDelegate=c:h?p.$$watchDelegate=p.literal?u:s:p.inputs&&(p.$$watchDelegate=a),g[v]=p}return l(p,i);case"function":return l(n,i);default:return m}}}]}function fn(){this.$get=["$rootScope","$exceptionHandler",function(e,t){return hn(function(t){e.$evalAsync(t)},t)}]}function dn(){this.$get=["$browser","$exceptionHandler",function(e,t){return hn(function(t){e.defer(t)},t)}]}function hn(e,t){function i(e,t,n){function r(t){return function(n){i||(i=!0,t.call(e,n))}}var i=!1;return[r(t),r(n)]}function a(){this.$$state={status:0}}function s(e,t){return function(n){t.call(e,n)}}function u(e){var r,i,o;o=e.pending,e.processScheduled=!1,e.pending=n;for(var a=0,s=o.length;s>a;++a){i=o[a][0],r=o[a][e.status];try{$(r)?i.resolve(r(e.value)):1===e.status?i.resolve(e.value):i.reject(e.value)}catch(u){i.reject(u),t(u)}}}function c(t){!t.processScheduled&&t.pending&&(t.processScheduled=!0,e(function(){u(t)}))}function l(){this.promise=new a,this.resolve=s(this,this.resolve),this.reject=s(this,this.reject),this.notify=s(this,this.notify)}function f(e){var t=new l,n=0,r=Fr(e)?[]:{};return o(e,function(e,i){n++,y(e).then(function(e){r.hasOwnProperty(i)||(r[i]=e,--n||t.resolve(r))},function(e){r.hasOwnProperty(i)||t.reject(e)})}),0===n&&t.resolve(r),t.promise}var d=r("$q",TypeError),h=function(){return new l};p(a.prototype,{then:function(e,t,n){if(b(e)&&b(t)&&b(n))return this;var r=new l;return this.$$state.pending=this.$$state.pending||[],this.$$state.pending.push([r,e,t,n]),this.$$state.status>0&&c(this.$$state),r.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return g(t,!0,e)},function(t){return g(t,!1,e)},t)}}),p(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(d("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){var n,r;r=i(this,this.$$resolve,this.$$reject);try{(w(e)||$(e))&&(n=e&&e.then),$(n)?(this.promise.$$state.status=-1,n.call(e,r[0],r[1],this.notify)):(this.promise.$$state.value=e,this.promise.$$state.status=1,c(this.promise.$$state))}catch(o){r[1](o),t(o)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,c(this.promise.$$state)},notify:function(n){var r=this.promise.$$state.pending;this.promise.$$state.status<=0&&r&&r.length&&e(function(){for(var e,i,o=0,a=r.length;a>o;o++){i=r[o][0],e=r[o][3];try{i.notify($(e)?e(n):n)}catch(s){t(s)}}})}});var m=function(e){var t=new l;return t.reject(e),t.promise},v=function(e,t){var n=new l;return t?n.resolve(e):n.reject(e),n.promise},g=function(e,t,n){var r=null;try{$(n)&&(r=n())}catch(i){return v(i,!1)}return A(r)?r.then(function(){return v(e,t)},function(e){return v(e,!1)}):v(e,t)},y=function(e,t,n,r){var i=new l;return i.resolve(e),i.promise.then(t,n,r)},x=y,E=function _(e){function t(e){r.resolve(e)}function n(e){r.reject(e)}if(!$(e))throw d("norslvr","Expected resolverFn, got '{0}'",e);if(!(this instanceof _))return new _(e);var r=new l;return e(t,n),r.promise};return E.defer=h,E.reject=m,E.when=y,E.resolve=x,E.all=f,E}function mn(){this.$get=["$window","$timeout",function(e,t){var n=e.requestAnimationFrame||e.webkitRequestAnimationFrame,r=e.cancelAnimationFrame||e.webkitCancelAnimationFrame||e.webkitCancelRequestAnimationFrame,i=!!n,o=i?function(e){var t=n(e);return function(){r(t)}}:function(e){var n=t(e,16.66,!1);return function(){t.cancel(n)}};return o.supported=i,o}]}function vn(){function e(e){function t(){this.$$watchers=this.$$nextSibling=this.$$childHead=this.$$childTail=null,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$id=u(),this.$$ChildScope=null}return t.prototype=e,t}var t=10,n=r("$rootScope"),a=null,s=null;this.digestTtl=function(e){return arguments.length&&(t=e),t},this.$get=["$injector","$exceptionHandler","$parse","$browser",function(r,c,l,p){function f(e){e.currentScope.$$destroyed=!0}function d(){this.$id=u(),this.$$phase=this.$parent=this.$$watchers=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=null,this.$root=this,this.$$destroyed=!1,this.$$listeners={},this.$$listenerCount={},this.$$watchersCount=0,this.$$isolateBindings=null}function h(e){if(C.$$phase)throw n("inprog","{0} already in progress",C.$$phase);C.$$phase=e}function v(){C.$$phase=null}function g(e,t){do e.$$watchersCount+=t;while(e=e.$parent)}function y(e,t,n){do e.$$listenerCount[n]-=t,0===e.$$listenerCount[n]&&delete e.$$listenerCount[n];while(e=e.$parent)}function x(){}function E(){for(;T.length;)try{T.shift()()}catch(e){c(e)}s=null}function _(){null===s&&(s=p.defer(function(){C.$apply(E)}))}d.prototype={constructor:d,$new:function(t,n){var r;return n=n||this,t?(r=new d,r.$root=this.$root):(this.$$ChildScope||(this.$$ChildScope=e(this)),r=new this.$$ChildScope),r.$parent=n,r.$$prevSibling=n.$$childTail,n.$$childHead?(n.$$childTail.$$nextSibling=r,n.$$childTail=r):n.$$childHead=n.$$childTail=r,(t||n!=this)&&r.$on("$destroy",f),r},$watch:function(e,t,n,r){var i=l(e);if(i.$$watchDelegate)return i.$$watchDelegate(this,t,n,i,e);var o=this,s=o.$$watchers,u={fn:t,last:x,get:i,exp:r||e,eq:!!n};return a=null,$(t)||(u.fn=m),s||(s=o.$$watchers=[]),s.unshift(u),g(this,1),function(){L(s,u)>=0&&g(o,-1),a=null}},$watchGroup:function(e,t){function n(){u=!1,c?(c=!1,t(i,i,s)):t(i,r,s)}var r=new Array(e.length),i=new Array(e.length),a=[],s=this,u=!1,c=!0;if(!e.length){var l=!0;return s.$evalAsync(function(){l&&t(i,i,s)}),function(){l=!1}}return 1===e.length?this.$watch(e[0],function(e,n,o){i[0]=e,r[0]=n,t(i,e===n?i:r,o)}):(o(e,function(e,t){var o=s.$watch(e,function(e,o){i[t]=e,r[t]=o,u||(u=!0,s.$evalAsync(n))});a.push(o)}),function(){for(;a.length;)a.shift()()})},$watchCollection:function(e,t){function n(e){o=e;var t,n,r,s,u;if(!b(o)){if(w(o))if(i(o)){a!==d&&(a=d,v=a.length=0,p++),t=o.length,v!==t&&(p++,a.length=v=t);for(var c=0;t>c;c++)u=a[c],s=o[c],r=u!==u&&s!==s,r||u===s||(p++,a[c]=s)}else{a!==h&&(a=h={},v=0,p++),t=0;for(n in o)wr.call(o,n)&&(t++,s=o[n],u=a[n],n in a?(r=u!==u&&s!==s,r||u===s||(p++,a[n]=s)):(v++,a[n]=s,p++));if(v>t){p++;for(n in a)wr.call(o,n)||(v--,delete a[n])}}else a!==o&&(a=o,p++);return p}}function r(){if(m?(m=!1,t(o,o,u)):t(o,s,u),c)if(w(o))if(i(o)){s=new Array(o.length);for(var e=0;e<o.length;e++)s[e]=o[e]}else{s={};for(var n in o)wr.call(o,n)&&(s[n]=o[n])}else s=o}n.$stateful=!0;var o,a,s,u=this,c=t.length>1,p=0,f=l(e,n),d=[],h={},m=!0,v=0;return this.$watch(f,r)},$digest:function(){var e,r,i,o,u,l,f,d,m,g,y=t,b=this,w=[];h("$digest"),p.$$checkUrlChange(),this===C&&null!==s&&(p.defer.cancel(s),E()),a=null;do{for(l=!1,d=b;N.length;){try{g=N.shift(),g.scope.$eval(g.expression,g.locals)}catch(_){c(_)}a=null}e:do{if(o=d.$$watchers)for(u=o.length;u--;)try{if(e=o[u])if((r=e.get(d))===(i=e.last)||(e.eq?H(r,i):"number"==typeof r&&"number"==typeof i&&isNaN(r)&&isNaN(i))){if(e===a){l=!1;break e}}else l=!0,a=e,e.last=e.eq?V(r,null):r,e.fn(r,i===x?r:i,d),5>y&&(m=4-y,w[m]||(w[m]=[]),w[m].push({msg:$(e.exp)?"fn: "+(e.exp.name||e.exp.toString()):e.exp,newVal:r,oldVal:i}))}catch(_){c(_)}if(!(f=d.$$watchersCount&&d.$$childHead||d!==b&&d.$$nextSibling))for(;d!==b&&!(f=d.$$nextSibling);)d=d.$parent}while(d=f);if((l||N.length)&&!y--)throw v(),n("infdig","{0} $digest() iterations reached. Aborting!\nWatchers fired in the last 5 iterations: {1}",t,w)}while(l||N.length);for(v();O.length;)try{O.shift()()}catch(_){c(_)}},$destroy:function(){if(!this.$$destroyed){var e=this.$parent;this.$broadcast("$destroy"),this.$$destroyed=!0,this===C&&p.$$applicationDestroyed(),g(this,-this.$$watchersCount);for(var t in this.$$listenerCount)y(this,this.$$listenerCount[t],t);e&&e.$$childHead==this&&(e.$$childHead=this.$$nextSibling),e&&e.$$childTail==this&&(e.$$childTail=this.$$prevSibling),this.$$prevSibling&&(this.$$prevSibling.$$nextSibling=this.$$nextSibling),this.$$nextSibling&&(this.$$nextSibling.$$prevSibling=this.$$prevSibling),this.$destroy=this.$digest=this.$apply=this.$evalAsync=this.$applyAsync=m,this.$on=this.$watch=this.$watchGroup=function(){return m},this.$$listeners={},this.$parent=this.$$nextSibling=this.$$prevSibling=this.$$childHead=this.$$childTail=this.$root=this.$$watchers=null}},$eval:function(e,t){return l(e)(this,t)},$evalAsync:function(e,t){C.$$phase||N.length||p.defer(function(){N.length&&C.$digest()}),N.push({scope:this,expression:e,locals:t})},$$postDigest:function(e){O.push(e)},$apply:function(e){try{h("$apply");try{return this.$eval(e)}finally{v()}}catch(t){c(t)}finally{try{C.$digest()}catch(t){throw c(t),t}}},$applyAsync:function(e){function t(){n.$eval(e)}var n=this;e&&T.push(t),_()},$on:function(e,t){var n=this.$$listeners[e];n||(this.$$listeners[e]=n=[]),n.push(t);var r=this;do r.$$listenerCount[e]||(r.$$listenerCount[e]=0),r.$$listenerCount[e]++;while(r=r.$parent);var i=this;return function(){var r=n.indexOf(t);-1!==r&&(n[r]=null,y(i,1,e))}},$emit:function(e){var t,n,r,i=[],o=this,a=!1,s={name:e,targetScope:o,stopPropagation:function(){a=!0},preventDefault:function(){s.defaultPrevented=!0},defaultPrevented:!1},u=q([s],arguments,1);do{for(t=o.$$listeners[e]||i,s.currentScope=o,n=0,r=t.length;r>n;n++)if(t[n])try{t[n].apply(null,u)}catch(l){c(l)}else t.splice(n,1),n--,r--;if(a)return s.currentScope=null,s;o=o.$parent}while(o);return s.currentScope=null,s},$broadcast:function(e){var t=this,n=t,r=t,i={name:e,targetScope:t,preventDefault:function(){i.defaultPrevented=!0},defaultPrevented:!1};if(!t.$$listenerCount[e])return i;for(var o,a,s,u=q([i],arguments,1);n=r;){for(i.currentScope=n,o=n.$$listeners[e]||[],a=0,s=o.length;s>a;a++)if(o[a])try{o[a].apply(null,u)}catch(l){c(l)}else o.splice(a,1),a--,s--;if(!(r=n.$$listenerCount[e]&&n.$$childHead||n!==t&&n.$$nextSibling))for(;n!==t&&!(r=n.$$nextSibling);)n=n.$parent}return i.currentScope=null,i}};var C=new d,N=C.$$asyncQueue=[],O=C.$$postDigestQueue=[],T=C.$$applyAsyncQueue=[];return C}]}function gn(){var e=/^\s*(https?|ftp|mailto|tel|file):/,t=/^\s*((https?|ftp|file|blob):|data:image\/)/;this.aHrefSanitizationWhitelist=function(t){return x(t)?(e=t,this):e},this.imgSrcSanitizationWhitelist=function(e){return x(e)?(t=e,this):t},this.$get=function(){return function(n,r){var i,o=r?t:e;return i=$n(n).href,""===i||i.match(o)?n:"unsafe:"+i}}}function yn(e){if("self"===e)return e;if(_(e)){if(e.indexOf("***")>-1)throw ro("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Ur(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(O(e))return new RegExp("^"+e.source+"$");throw ro("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function bn(e){var t=[];return x(e)&&o(e,function(e){t.push(yn(e))}),t}function xn(){this.SCE_CONTEXTS=io;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=bn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=bn(e)),t},this.$get=["$injector",function(n){function r(e,t){return"self"===e?On(t):!!e.exec(t.href)}function i(n){var i,o,a=$n(n.toString()),s=!1;for(i=0,o=e.length;o>i;i++)if(r(e[i],a)){s=!0;break}if(s)for(i=0,o=t.length;o>i;i++)if(r(t[i],a)){s=!1;break}return s}function o(e){var t=function(e){this.$$unwrapTrustedValue=function(){return e}};return e&&(t.prototype=new e),t.prototype.valueOf=function(){return this.$$unwrapTrustedValue()},t.prototype.toString=function(){return this.$$unwrapTrustedValue().toString()},t}function a(e,t){var n=p.hasOwnProperty(e)?p[e]:null;if(!n)throw ro("icontext","Attempted to trust a value in invalid context. Context: {0}; Value: {1}",e,t);if(null===t||b(t)||""===t)return t;if("string"!=typeof t)throw ro("itype","Attempted to trust a non-string value in a content requiring a string: Context: {0}",e);return new n(t)}function s(e){return e instanceof l?e.$$unwrapTrustedValue():e}function u(e,t){if(null===t||b(t)||""===t)return t;var n=p.hasOwnProperty(e)?p[e]:null;if(n&&t instanceof n)return t.$$unwrapTrustedValue();if(e===io.RESOURCE_URL){if(i(t))return t;throw ro("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===io.HTML)return c(t);throw ro("unsafe","Attempting to use an unsafe value in a safe context.")}var c=function(){throw ro("unsafe","Attempting to use an unsafe value in a safe context.")};n.has("$sanitize")&&(c=n.get("$sanitize"));var l=o(),p={};return p[io.HTML]=o(l),p[io.CSS]=o(l),p[io.URL]=o(l),p[io.JS]=o(l),p[io.RESOURCE_URL]=o(p[io.URL]),{trustAs:a,getTrusted:u,valueOf:s}}]}function wn(){var e=!0;this.enabled=function(t){return arguments.length&&(e=!!t),e},this.$get=["$parse","$sceDelegate",function(t,n){if(e&&8>Nr)throw ro("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 11 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var r=U(io);r.isEnabled=function(){return e},r.trustAs=n.trustAs,r.getTrusted=n.getTrusted,r.valueOf=n.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){return t},r.valueOf=v),r.parseAs=function(e,n){var i=t(n);return i.literal&&i.constant?i:t(n,function(t){return r.getTrusted(e,t)})};var i=r.parseAs,a=r.getTrusted,s=r.trustAs;return o(io,function(e,t){var n=xr(t);r[Ee("parse_as_"+n)]=function(t){return i(e,t)},r[Ee("get_trusted_"+n)]=function(t){return a(e,t)},r[Ee("trust_as_"+n)]=function(t){return s(e,t)}}),r}]}function En(){this.$get=["$window","$document",function(e,t){var n,r,i={},o=d((/android (\d+)/.exec(xr((e.navigator||{}).userAgent))||[])[1]),a=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},u=/^(Moz|webkit|ms)(?=[A-Z])/,c=s.body&&s.body.style,l=!1,p=!1;if(c){for(var f in c)if(r=u.exec(f)){n=r[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in c&&"webkit"),l=!!("transition"in c||n+"Transition"in c),p=!!("animation"in c||n+"Animation"in c),!o||l&&p||(l=_(c.webkitTransition),p=_(c.webkitAnimation))}return{history:!(!e.history||!e.history.pushState||4>o||a),hasEvent:function(e){if("input"===e&&11>=Nr)return!1;if(b(i[e])){var t=s.createElement("div");i[e]="on"+e in t}return i[e]},csp:Hr(),vendorPrefix:n,transitions:l,animations:p,android:o}}]}function _n(){this.$get=["$templateCache","$http","$q","$sce",function(e,t,n,r){function i(o,a){function s(e){if(!a)throw Si("tpload","Failed to load template: {0} (HTTP status: {1} {2})",o,e.status,e.statusText);return n.reject(e)}i.totalPendingRequests++,_(o)&&e.get(o)||(o=r.getTrustedResourceUrl(o));var u=t.defaults&&t.defaults.transformResponse;Fr(u)?u=u.filter(function(e){return e!==bt}):u===bt&&(u=null);var c={cache:e,transformResponse:u};return t.get(o,c)["finally"](function(){i.totalPendingRequests--}).then(function(t){return e.put(o,t.data),t.data},s)}return i.totalPendingRequests=0,i}]}function Cn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var r={};return r.findBindings=function(e,t,n){var r=e.getElementsByClassName("ng-binding"),i=[];return o(r,function(e){var r=jr.element(e).data("$binding");r&&o(r,function(r){if(n){var o=new RegExp("(^|\\s)"+Ur(t)+"(\\s|\\||$)");o.test(r)&&i.push(e)}else-1!=r.indexOf(t)&&i.push(e)})}),i},r.findModels=function(e,t,n){for(var r=["ng-","data-ng-","ng\\:"],i=0;i<r.length;++i){var o=n?"=":"*=",a="["+r[i]+"model"+o+'"'+t+'"]',s=e.querySelectorAll(a);if(s.length)return s}},r.getLocation=function(){return n.url()},r.setLocation=function(t){t!==n.url()&&(n.url(t),e.$digest())},r.whenStable=function(e){t.notifyWhenNoOutstandingRequests(e)},r}]}function Nn(){this.$get=["$rootScope","$browser","$q","$$q","$exceptionHandler",function(e,t,n,r,i){function o(o,s,u){$(o)||(u=s,s=o,o=m);var c,l=B(arguments,3),p=x(u)&&!u,f=(p?r:n).defer(),d=f.promise;return c=t.defer(function(){try{f.resolve(o.apply(null,l))}catch(t){f.reject(t),i(t)}finally{delete a[d.$$timeoutId]}p||e.$apply()},s),d.$$timeoutId=c,a[c]=f,d}var a={};return o.cancel=function(e){return e&&e.$$timeoutId in a?(a[e.$$timeoutId].reject("canceled"),delete a[e.$$timeoutId],t.defer.cancel(e.$$timeoutId)):!1},o}]}function $n(e){var t=e;return Nr&&(oo.setAttribute("href",t),t=oo.href),oo.setAttribute("href",t),{href:oo.href,protocol:oo.protocol?oo.protocol.replace(/:$/,""):"",host:oo.host,search:oo.search?oo.search.replace(/^\?/,""):"",hash:oo.hash?oo.hash.replace(/^#/,""):"",hostname:oo.hostname,port:oo.port,pathname:"/"===oo.pathname.charAt(0)?oo.pathname:"/"+oo.pathname}}function On(e){var t=_(e)?$n(e):e;return t.protocol===ao.protocol&&t.host===ao.host}function Tn(){this.$get=g(e)}function Pn(e){function t(e){try{return decodeURIComponent(e)}catch(t){return e}}var n=e[0]||{},r={},i="";return function(){var e,o,a,s,u,c=n.cookie||"";if(c!==i)for(i=c,e=i.split("; "),r={},a=0;a<e.length;a++)o=e[a],s=o.indexOf("="),s>0&&(u=t(o.substring(0,s)),b(r[u])&&(r[u]=t(o.substring(s+1))));return r}}function Sn(){this.$get=Pn}function Dn(e){function t(r,i){if(w(r)){var a={};return o(r,function(e,n){a[n]=t(n,e)}),a}return e.factory(r+n,i)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",In),t("date",Yn),t("filter",Rn),t("json",Gn),t("limitTo",Xn),t("lowercase",po),t("number",Mn),t("orderBy",Jn),t("uppercase",fo)}function Rn(){return function(e,t,n){if(!i(e)){if(null==e)return e;throw r("filter")("notarray","Expected array but received: {0}",e)}var o,a,s=jn(t);switch(s){case"function":o=t;break;case"boolean":case"null":case"number":case"string":a=!0;case"object":o=kn(t,n,a);break;default:return e}return Array.prototype.filter.call(e,o)}}function kn(e,t,n){var r,i=w(e)&&"$"in e;return t===!0?t=H:$(t)||(t=function(e,t){return b(e)?!1:null===e||null===t?e===t:w(t)||w(e)&&!y(e)?!1:(e=xr(""+e),t=xr(""+t),-1!==e.indexOf(t))}),r=function(r){return i&&!w(r)?An(r,e.$,t,!1):An(r,e,t,n)}}function An(e,t,n,r,i){var o=jn(e),a=jn(t);if("string"===a&&"!"===t.charAt(0))return!An(e,t.substring(1),n,r);if(Fr(e))return e.some(function(e){return An(e,t,n,r)});switch(o){case"object":var s;if(r){for(s in e)if("$"!==s.charAt(0)&&An(e[s],t,n,!0))return!0;return i?!1:An(e,t,n,!1)}if("object"===a){for(s in t){var u=t[s];if(!$(u)&&!b(u)){var c="$"===s,l=c?e:e[s];if(!An(l,u,n,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function jn(e){return null===e?"null":typeof e}function In(e){var t=e.NUMBER_FORMATS;return function(e,n,r){return b(n)&&(n=t.CURRENCY_SYM),b(r)&&(r=t.PATTERNS[1].maxFrac),null==e?e:Fn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,r).replace(/\u00A4/g,n)}}function Mn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Fn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Fn(e,t,n,r,i){if(w(e))return"";var o=0>e;e=Math.abs(e);var a=e===1/0;if(!a&&!isFinite(e))return"";var s=e+"",u="",c=!1,l=[];if(a&&(u="∞"),!a&&-1!==s.indexOf("e")){var p=s.match(/([\d\.]+)e(-?)(\d+)/);p&&"-"==p[2]&&p[3]>i+1?e=0:(u=s,c=!0)}if(a||c)i>0&&1>e&&(u=e.toFixed(i),e=parseFloat(u),u=u.replace(so,r));else{var f=(s.split(so)[1]||"").length;b(i)&&(i=Math.min(Math.max(t.minFrac,f),t.maxFrac)),e=+(Math.round(+(e.toString()+"e"+i)).toString()+"e"+-i);var d=(""+e).split(so),h=d[0];d=d[1]||"";var m,v=0,g=t.lgSize,y=t.gSize;if(h.length>=g+y)for(v=h.length-g,m=0;v>m;m++)(v-m)%y===0&&0!==m&&(u+=n),u+=h.charAt(m);for(m=v;m<h.length;m++)(h.length-m)%g===0&&0!==m&&(u+=n),u+=h.charAt(m);for(;d.length<i;)d+="0";i&&"0"!==i&&(u+=r+d.substr(0,i))}return 0===e&&(o=!1),l.push(o?t.negPre:t.posPre,u,o?t.negSuf:t.posSuf),l.join("")}function Ln(e,t,n){var r="";for(0>e&&(r="-",e=-e),e=""+e;e.length<t;)e="0"+e;return n&&(e=e.substr(e.length-t)),r+e}function Vn(e,t,n,r){return n=n||0,function(i){var o=i["get"+e]();return(n>0||o>-n)&&(o+=n),0===o&&-12==n&&(o=12),Ln(o,t,r)}}function Un(e,t){return function(n,r){var i=n["get"+e](),o=Er(t?"SHORT"+e:e);return r[o][i]}}function Hn(e,t,n){var r=-1*n,i=r>=0?"+":"";return i+=Ln(Math[r>0?"floor":"ceil"](r/60),2)+Ln(Math.abs(r%60),2)}function qn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(4>=t?5:12)-t)}function Bn(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function Wn(e){return function(t){var n=qn(t.getFullYear()),r=Bn(t),i=+r-+n,o=1+Math.round(i/6048e5);return Ln(o,e)}}function zn(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function Kn(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function Qn(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function Yn(e){function t(e){var t;if(t=e.match(n)){var r=new Date(0),i=0,o=0,a=t[8]?r.setUTCFullYear:r.setFullYear,s=t[8]?r.setUTCHours:r.setHours;t[9]&&(i=d(t[9]+t[10]),o=d(t[9]+t[11])),a.call(r,d(t[1]),d(t[2])-1,d(t[3]));var u=d(t[4]||0)-i,c=d(t[5]||0)-o,l=d(t[6]||0),p=Math.round(1e3*parseFloat("0."+(t[7]||0)));return s.call(r,u,c,l,p),r}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,r,i){var a,s,u="",c=[];if(r=r||"mediumDate",r=e.DATETIME_FORMATS[r]||r,_(n)&&(n=lo.test(n)?d(n):t(n)),C(n)&&(n=new Date(n)),!N(n)||!isFinite(n.getTime()))return n;for(;r;)s=co.exec(r),s?(c=q(c,s,1),r=c.pop()):(c.push(r),r=null);var l=n.getTimezoneOffset();return i&&(l=Y(i,n.getTimezoneOffset()),n=X(n,i,!0)),o(c,function(t){a=uo[t],u+=a?a(n,e.DATETIME_FORMATS,l):t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),u}}function Gn(){return function(e,t){return b(t)&&(t=2),K(e,t)}}function Xn(){return function(e,t,n){return t=Math.abs(Number(t))===1/0?Number(t):d(t),isNaN(t)?e:(C(e)&&(e=e.toString()),Fr(e)||_(e)?(n=!n||isNaN(n)?0:d(n),n=0>n&&n>=-e.length?e.length+n:n,t>=0?e.slice(n,n+t):0===n?e.slice(t,e.length):e.slice(Math.max(0,n+t),n)):e)}}function Jn(e){function t(t,n){return n=n?-1:1,t.map(function(t){var r=1,i=v;if($(t))i=t;else if(_(t)&&(("+"==t.charAt(0)||"-"==t.charAt(0))&&(r="-"==t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(i=e(t),i.constant))){var o=i();i=function(e){return e[o]}}return{get:i,descending:r*n}})}function n(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function r(e,t){return"function"==typeof e.valueOf&&(e=e.valueOf(),n(e))?e:y(e)&&(e=e.toString(),n(e))?e:t}function o(e,t){var n=typeof e;return null===e?(n="string",e="null"):"string"===n?e=e.toLowerCase():"object"===n&&(e=r(e,t)),{value:e,type:n}}function a(e,t){var n=0;return e.type===t.type?e.value!==t.value&&(n=e.value<t.value?-1:1):n=e.type<t.type?-1:1,n}return function(e,n,r){function s(e,t){return{value:e,predicateValues:c.map(function(n){return o(n.get(e),t)})}}function u(e,t){for(var n=0,r=0,i=c.length;i>r&&!(n=a(e.predicateValues[r],t.predicateValues[r])*c[r].descending);++r);return n}if(!i(e))return e;Fr(n)||(n=[n]),0===n.length&&(n=["+"]);var c=t(n,r);c.push({get:function(){return{}},descending:r?-1:1});var l=Array.prototype.map.call(e,s);return l.sort(u),e=l.map(function(e){return e.value})}}function Zn(e){return $(e)&&(e={link:e}),e.restrict=e.restrict||"AC",g(e)}function er(e,t){e.$name=t}function tr(e,t,r,i,a){var s=this,u=[];s.$error={},s.$$success={},s.$pending=n,s.$name=a(t.name||t.ngForm||"")(r),s.$dirty=!1,s.$pristine=!0,s.$valid=!0,s.$invalid=!1,s.$submitted=!1,s.$$parentForm=vo,s.$rollbackViewValue=function(){o(u,function(e){e.$rollbackViewValue()})},s.$commitViewValue=function(){o(u,function(e){e.$commitViewValue()})},s.$addControl=function(e){de(e.$name,"input"),u.push(e),e.$name&&(s[e.$name]=e),e.$$parentForm=s},s.$$renameControl=function(e,t){var n=e.$name;s[n]===e&&delete s[n],s[t]=e,e.$name=t},s.$removeControl=function(e){e.$name&&s[e.$name]===e&&delete s[e.$name],o(s.$pending,function(t,n){s.$setValidity(n,null,e)}),o(s.$error,function(t,n){s.$setValidity(n,null,e)}),o(s.$$success,function(t,n){s.$setValidity(n,null,e)}),L(u,e),e.$$parentForm=vo},vr({ctrl:this,$element:e,set:function(e,t,n){var r=e[t];if(r){var i=r.indexOf(n);-1===i&&r.push(n)}else e[t]=[n]},unset:function(e,t,n){var r=e[t];r&&(L(r,n),0===r.length&&delete e[t])},$animate:i}),s.$setDirty=function(){i.removeClass(e,Jo),i.addClass(e,Zo),s.$dirty=!0,s.$pristine=!1,s.$$parentForm.$setDirty()},s.$setPristine=function(){i.setClass(e,Jo,Zo+" "+go),s.$dirty=!1,s.$pristine=!0,s.$submitted=!1,o(u,function(e){e.$setPristine()})},s.$setUntouched=function(){o(u,function(e){e.$setUntouched()})},s.$setSubmitted=function(){i.addClass(e,go),s.$submitted=!0,s.$$parentForm.$setSubmitted()}}function nr(e){e.$formatters.push(function(t){return e.$isEmpty(t)?t:t.toString()})}function rr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r)}function ir(e,t,n,r,i,o){var a=xr(t[0].type);if(!i.android){var s=!1;t.on("compositionstart",function(){s=!0}),t.on("compositionend",function(){s=!1,u()})}var u=function(e){if(c&&(o.defer.cancel(c),c=null),!s){var i=t.val(),u=e&&e.type;"password"===a||n.ngTrim&&"false"===n.ngTrim||(i=Vr(i)),(r.$viewValue!==i||""===i&&r.$$hasNativeValidators)&&r.$setViewValue(i,u)}};if(i.hasEvent("input"))t.on("input",u);else{var c,l=function(e,t,n){c||(c=o.defer(function(){c=null,t&&t.value===n||u(e)}))};t.on("keydown",function(e){var t=e.keyCode;91===t||t>15&&19>t||t>=37&&40>=t||l(e,this,this.value)}),i.hasEvent("paste")&&t.on("paste cut",l)}t.on("change",u),r.$render=function(){var e=r.$isEmpty(r.$viewValue)?"":r.$viewValue;t.val()!==e&&t.val(e)}}function or(e,t){if(N(e))return e;if(_(e)){Oo.lastIndex=0;var n=Oo.exec(e);if(n){var r=+n[1],i=+n[2],o=0,a=0,s=0,u=0,c=qn(r),l=7*(i-1);return t&&(o=t.getHours(),a=t.getMinutes(),s=t.getSeconds(),u=t.getMilliseconds()),new Date(r,0,c.getDate()+l,o,a,s,u)}}return 0/0}function ar(e,t){return function(n,r){var i,a;if(N(n))return n;if(_(n)){if('"'==n.charAt(0)&&'"'==n.charAt(n.length-1)&&(n=n.substring(1,n.length-1)),wo.test(n))return new Date(n);if(e.lastIndex=0,i=e.exec(n))return i.shift(),a=r?{yyyy:r.getFullYear(),MM:r.getMonth()+1,dd:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds(),sss:r.getMilliseconds()/1e3}:{yyyy:1970,MM:1,dd:1,HH:0,mm:0,ss:0,sss:0},o(i,function(e,n){n<t.length&&(a[t[n]]=+e)}),new Date(a.yyyy,a.MM-1,a.dd,a.HH,a.mm,a.ss||0,1e3*a.sss||0)}return 0/0}}function sr(e,t,r,i){return function(o,a,s,u,c,l,p){function f(e){return e&&!(e.getTime&&e.getTime()!==e.getTime())}function d(e){return x(e)&&!N(e)?r(e)||n:e}ur(o,a,s,u),ir(o,a,s,u,c,l);var h,m=u&&u.$options&&u.$options.timezone;if(u.$$parserName=e,u.$parsers.push(function(e){if(u.$isEmpty(e))return null;if(t.test(e)){var i=r(e,h);return m&&(i=X(i,m)),i}return n}),u.$formatters.push(function(e){if(e&&!N(e))throw ra("datefmt","Expected `{0}` to be a date",e);return f(e)?(h=e,h&&m&&(h=X(h,m,!0)),p("date")(e,i,m)):(h=null,"")}),x(s.min)||s.ngMin){var v;u.$validators.min=function(e){return!f(e)||b(v)||r(e)>=v},s.$observe("min",function(e){v=d(e),u.$validate();
28
+
29
+ })}if(x(s.max)||s.ngMax){var g;u.$validators.max=function(e){return!f(e)||b(g)||r(e)<=g},s.$observe("max",function(e){g=d(e),u.$validate()})}}}function ur(e,t,r,i){var o=t[0],a=i.$$hasNativeValidators=w(o.validity);a&&i.$parsers.push(function(e){var r=t.prop(br)||{};return r.badInput&&!r.typeMismatch?n:e})}function cr(e,t,r,i,o,a){if(ur(e,t,r,i),ir(e,t,r,i,o,a),i.$$parserName="number",i.$parsers.push(function(e){return i.$isEmpty(e)?null:Co.test(e)?parseFloat(e):n}),i.$formatters.push(function(e){if(!i.$isEmpty(e)){if(!C(e))throw ra("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),x(r.min)||r.ngMin){var s;i.$validators.min=function(e){return i.$isEmpty(e)||b(s)||e>=s},r.$observe("min",function(e){x(e)&&!C(e)&&(e=parseFloat(e,10)),s=C(e)&&!isNaN(e)?e:n,i.$validate()})}if(x(r.max)||r.ngMax){var u;i.$validators.max=function(e){return i.$isEmpty(e)||b(u)||u>=e},r.$observe("max",function(e){x(e)&&!C(e)&&(e=parseFloat(e,10)),u=C(e)&&!isNaN(e)?e:n,i.$validate()})}}function lr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r),r.$$parserName="url",r.$validators.url=function(e,t){var n=e||t;return r.$isEmpty(n)||Eo.test(n)}}function pr(e,t,n,r,i,o){ir(e,t,n,r,i,o),nr(r),r.$$parserName="email",r.$validators.email=function(e,t){var n=e||t;return r.$isEmpty(n)||_o.test(n)}}function fr(e,t,n,r){b(n.name)&&t.attr("name",u());var i=function(e){t[0].checked&&r.$setViewValue(n.value,e&&e.type)};t.on("click",i),r.$render=function(){var e=n.value;t[0].checked=e==r.$viewValue},n.$observe("value",r.$render)}function dr(e,t,n,r,i){var o;if(x(r)){if(o=e(r),!o.constant)throw ra("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,r);return o(t)}return i}function hr(e,t,n,r,i,o,a,s){var u=dr(s,e,"ngTrueValue",n.ngTrueValue,!0),c=dr(s,e,"ngFalseValue",n.ngFalseValue,!1),l=function(e){r.$setViewValue(t[0].checked,e&&e.type)};t.on("click",l),r.$render=function(){t[0].checked=r.$viewValue},r.$isEmpty=function(e){return e===!1},r.$formatters.push(function(e){return H(e,u)}),r.$parsers.push(function(e){return e?u:c})}function mr(e,t){return e="ngClass"+e,["$animate",function(n){function r(e,t){var n=[];e:for(var r=0;r<e.length;r++){for(var i=e[r],o=0;o<t.length;o++)if(i==t[o])continue e;n.push(i)}return n}function i(e){var t=[];return Fr(e)?(o(e,function(e){t=t.concat(i(e))}),t):_(e)?e.split(" "):w(e)?(o(e,function(e,n){e&&(t=t.concat(n.split(" ")))}),t):e}return{restrict:"AC",link:function(a,s,u){function c(e){var t=p(e,1);u.$addClass(t)}function l(e){var t=p(e,-1);u.$removeClass(t)}function p(e,t){var n=s.data("$classCounts")||ve(),r=[];return o(e,function(e){(t>0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&r.push(e))}),s.data("$classCounts",n),r.join(" ")}function f(e,t){var i=r(t,e),o=r(e,t);i=p(i,1),o=p(o,-1),i&&i.length&&n.addClass(s,i),o&&o.length&&n.removeClass(s,o)}function d(e){if(t===!0||a.$index%2===t){var n=i(e||[]);if(h){if(!H(e,h)){var r=i(h);f(r,n)}}else c(n)}h=U(e)}var h;a.$watch(u[e],d,!0),u.$observe("class",function(){d(a.$eval(u[e]))}),"ngClass"!==e&&a.$watch("$index",function(n,r){var o=1&n;if(o!==(1&r)){var s=i(a.$eval(u[e]));o===t?c(s):l(s)}})}}}]}function vr(e){function t(e,t,u){b(t)?r("$pending",e,u):i("$pending",e,u),k(t)?t?(p(s.$error,e,u),l(s.$$success,e,u)):(l(s.$error,e,u),p(s.$$success,e,u)):(p(s.$error,e,u),p(s.$$success,e,u)),s.$pending?(o(na,!0),s.$valid=s.$invalid=n,a("",null)):(o(na,!1),s.$valid=gr(s.$error),s.$invalid=!s.$valid,a("",s.$valid));var c;c=s.$pending&&s.$pending[e]?n:s.$error[e]?!1:s.$$success[e]?!0:null,a(e,c),s.$$parentForm.$setValidity(e,c,s)}function r(e,t,n){s[e]||(s[e]={}),l(s[e],t,n)}function i(e,t,r){s[e]&&p(s[e],t,r),gr(s[e])&&(s[e]=n)}function o(e,t){t&&!c[e]?(f.addClass(u,e),c[e]=!0):!t&&c[e]&&(f.removeClass(u,e),c[e]=!1)}function a(e,t){e=e?"-"+ce(e,"-"):"",o(Go+e,t===!0),o(Xo+e,t===!1)}var s=e.ctrl,u=e.$element,c={},l=e.set,p=e.unset,f=e.$animate;c[Xo]=!(c[Go]=u.hasClass(Go)),s.$setValidity=t}function gr(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}var yr=/^\/(.+)\/([a-z]*)$/,br="validity",xr=function(e){return _(e)?e.toLowerCase():e},wr=Object.prototype.hasOwnProperty,Er=function(e){return _(e)?e.toUpperCase():e},_r=function(e){return _(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Cr=function(e){return _(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(-33&e.charCodeAt(0))}):e};"i"!=="I".toLowerCase()&&(xr=_r,Er=Cr);var Nr,$r,Or,Tr,Pr=[].slice,Sr=[].splice,Dr=[].push,Rr=Object.prototype.toString,kr=Object.getPrototypeOf,Ar=r("ng"),jr=e.angular||(e.angular={}),Ir=0;Nr=t.documentMode,m.$inject=[],v.$inject=[];var Mr,Fr=Array.isArray,Lr=/^\[object (Uint8(Clamped)?)|(Uint16)|(Uint32)|(Int8)|(Int16)|(Int32)|(Float(32)|(64))Array\]$/,Vr=function(e){return _(e)?e.trim():e},Ur=function(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},Hr=function(){function e(){try{return new Function(""),!1}catch(e){return!0}}if(!x(Hr.rules)){var n=t.querySelector("[ng-csp]")||t.querySelector("[data-ng-csp]");if(n){var r=n.getAttribute("ng-csp")||n.getAttribute("data-ng-csp");Hr.rules={noUnsafeEval:!r||-1!==r.indexOf("no-unsafe-eval"),noInlineStyle:!r||-1!==r.indexOf("no-inline-style")}}else Hr.rules={noUnsafeEval:e(),noInlineStyle:!1}}return Hr.rules},qr=function(){if(x(qr.name_))return qr.name_;var e,n,r,i,o=Br.length;for(n=0;o>n;++n)if(r=Br[n],e=t.querySelector("["+r.replace(":","\\:")+"jq]")){i=e.getAttribute(r+"jq");break}return qr.name_=i},Br=["ng-","data-ng-","ng:","x-ng-"],Wr=/[A-Z]/g,zr=!1,Kr=1,Qr=2,Yr=3,Gr=8,Xr=9,Jr=11,Zr={full:"1.4.7",major:1,minor:4,dot:7,codeName:"dark-luminescence"};Te.expando="ng339";var ei=Te.cache={},ti=1,ni=function(e,t,n){e.addEventListener(t,n,!1)},ri=function(e,t,n){e.removeEventListener(t,n,!1)};Te._data=function(e){return this.cache[e[this.expando]]||{}};var ii=/([\:\-\_]+(.))/g,oi=/^moz([A-Z])/,ai={mouseleave:"mouseout",mouseenter:"mouseover"},si=r("jqLite"),ui=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ci=/<|&#?\w+;/,li=/<([\w:-]+)/,pi=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,fi={option:[1,'<select multiple="multiple">',"</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};fi.optgroup=fi.option,fi.tbody=fi.tfoot=fi.colgroup=fi.caption=fi.thead,fi.th=fi.td;var di=Te.prototype={ready:function(n){function r(){i||(i=!0,n())}var i=!1;"complete"===t.readyState?setTimeout(r):(this.on("DOMContentLoaded",r),Te(e).on("load",r))},toString:function(){var e=[];return o(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return $r(e>=0?this[e]:this[this.length+e])},length:0,push:Dr,sort:[].sort,splice:[].splice},hi={};o("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){hi[xr(e)]=e});var mi={};o("input,select,option,textarea,button,form,details".split(","),function(e){mi[e]=!0});var vi={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};o({data:Ae,removeData:Re,hasData:Ne},function(e,t){Te[t]=e}),o({data:Ae,inheritedData:Ve,scope:function(e){return $r.data(e,"$scope")||Ve(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return $r.data(e,"$isolateScope")||$r.data(e,"$isolateScopeNoTemplate")},controller:Le,injector:function(e){return Ve(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:je,css:function(e,t,n){return t=Ee(t),x(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,r){var i=e.nodeType;if(i!==Yr&&i!==Qr&&i!==Gr){var o=xr(t);if(hi[o]){if(!x(r))return e[t]||(e.attributes.getNamedItem(t)||m).specified?o:n;r?(e[t]=!0,e.setAttribute(t,o)):(e[t]=!1,e.removeAttribute(o))}else if(x(r))e.setAttribute(t,r);else if(e.getAttribute){var a=e.getAttribute(t,2);return null===a?n:a}}},prop:function(e,t,n){return x(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(b(t)){var n=e.nodeType;return n===Kr||n===Yr?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(b(t)){if(e.multiple&&"select"===F(e)){var n=[];return o(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return b(t)?e.innerHTML:(Se(e,!0),void(e.innerHTML=t))},empty:Ue},function(e,t){Te.prototype[t]=function(t,n){var r,i,o=this.length;if(e!==Ue&&b(2==e.length&&e!==je&&e!==Le?t:n)){if(w(t)){for(r=0;o>r;r++)if(e===Ae)e(this[r],t);else for(i in t)e(this[r],i,t[i]);return this}for(var a=e.$dv,s=b(a)?Math.min(o,1):o,u=0;s>u;u++){var c=e(this[u],t,n);a=a?a+c:c}return a}for(r=0;o>r;r++)e(this[r],t,n);return this}}),o({removeData:Re,on:function ka(e,t,n,r){if(x(r))throw si("onargs","jqLite#on() does not support the `selector` or `eventData` parameters");if(Ce(e)){var i=ke(e,!0),o=i.events,a=i.handle;a||(a=i.handle=ze(e,o));for(var s=t.indexOf(" ")>=0?t.split(" "):[t],u=s.length;u--;){t=s[u];var c=o[t];c||(o[t]=[],"mouseenter"===t||"mouseleave"===t?ka(e,ai[t],function(e){var n=this,r=e.relatedTarget;(!r||r!==n&&!n.contains(r))&&a(e,t)}):"$destroy"!==t&&ni(e,t,a),c=o[t]),c.push(n)}}},off:De,one:function(e,t,n){e=$r(e),e.on(t,function r(){e.off(t,n),e.off(t,r)}),e.on(t,n)},replaceWith:function(e,t){var n,r=e.parentNode;Se(e),o(new Te(t),function(t){n?r.insertBefore(t,n.nextSibling):r.replaceChild(t,e),n=t})},children:function(e){var t=[];return o(e.childNodes,function(e){e.nodeType===Kr&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===Kr||n===Jr){t=new Te(t);for(var r=0,i=t.length;i>r;r++){var o=t[r];e.appendChild(o)}}},prepend:function(e,t){if(e.nodeType===Kr){var n=e.firstChild;o(new Te(t),function(t){e.insertBefore(t,n)})}},wrap:function(e,t){t=$r(t).eq(0).clone()[0];var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)},remove:He,detach:function(e){He(e,!0)},after:function(e,t){var n=e,r=e.parentNode;t=new Te(t);for(var i=0,o=t.length;o>i;i++){var a=t[i];r.insertBefore(a,n.nextSibling),n=a}},addClass:Me,removeClass:Ie,toggleClass:function(e,t,n){t&&o(t.split(" "),function(t){var r=n;b(r)&&(r=!je(e,t)),(r?Me:Ie)(e,t)})},parent:function(e){var t=e.parentNode;return t&&t.nodeType!==Jr?t:null},next:function(e){return e.nextElementSibling},find:function(e,t){return e.getElementsByTagName?e.getElementsByTagName(t):[]},clone:Pe,triggerHandler:function(e,t,n){var r,i,a,s=t.type||t,u=ke(e),c=u&&u.events,l=c&&c[s];l&&(r={preventDefault:function(){this.defaultPrevented=!0},isDefaultPrevented:function(){return this.defaultPrevented===!0},stopImmediatePropagation:function(){this.immediatePropagationStopped=!0},isImmediatePropagationStopped:function(){return this.immediatePropagationStopped===!0},stopPropagation:m,type:s,target:e},t.type&&(r=p(r,t)),i=U(l),a=n?[r].concat(n):[r],o(i,function(t){r.isImmediatePropagationStopped()||t.apply(e,a)}))}},function(e,t){Te.prototype[t]=function(t,n,r){for(var i,o=0,a=this.length;a>o;o++)b(i)?(i=e(this[o],t,n,r),x(i)&&(i=$r(i))):Fe(i,e(this[o],t,n,r));return x(i)?i:this},Te.prototype.bind=Te.prototype.on,Te.prototype.unbind=Te.prototype.off}),Ye.prototype={put:function(e,t){this[Qe(e,this.nextUid)]=t},get:function(e){return this[Qe(e,this.nextUid)]},remove:function(e){var t=this[e=Qe(e,this.nextUid)];return delete this[e],t}};var gi=[function(){this.$get=[function(){return Ye}]}],yi=/^[^\(]*\(\s*([^\)]*)\)/m,bi=/,/,xi=/^\s*(_?)(\S+?)\1\s*$/,wi=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ei=r("$injector");Je.$$annotate=Xe;var _i=r("$animate"),Ci=1,Ni="ng-animate",$i=function(){this.$get=["$q","$$rAF",function(e,t){function n(){}return n.all=m,n.chain=m,n.prototype={end:m,cancel:m,resume:m,pause:m,complete:m,then:function(n,r){return e(function(e){t(function(){e()})}).then(n,r)}},n}]},Oi=function(){var e=new Ye,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,r){function i(e,t,n){var r=!1;return t&&(t=_(t)?t.split(" "):Fr(t)?t:[],o(t,function(t){t&&(r=!0,e[t]=n)})),r}function a(){o(t,function(t){var n=e.get(t);if(n){var r=nt(t.attr("class")),i="",a="";o(n,function(e,t){var n=!!r[t];e!==n&&(e?i+=(i.length?" ":"")+t:a+=(a.length?" ":"")+t)}),o(t,function(e){i&&Me(e,i),a&&Ie(e,a)}),e.remove(t)}}),t.length=0}function s(n,o,s){var u=e.get(n)||{},c=i(u,o,!0),l=i(u,s,!1);(c||l)&&(e.put(n,u),t.push(n),1===t.length&&r.$$postDigest(a))}return{enabled:m,on:m,off:m,pin:m,push:function(e,t,r,i){return i&&i(),r=r||{},r.from&&e.css(r.from),r.to&&e.css(r.to),(r.addClass||r.removeClass)&&s(e,r.addClass,r.removeClass),new n}}}]},Ti=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,r){if(n&&"."!==n.charAt(0))throw _i("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,r)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)"+Ni+"(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw _i("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Ni)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var r=tt(n);!r||r.parentNode||r.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,r,i,o){return r=r&&$r(r),i=i&&$r(i),r=r||i.parent(),t(n,r,i),e.push(n,"enter",rt(o))},move:function(n,r,i,o){return r=r&&$r(r),i=i&&$r(i),r=r||i.parent(),t(n,r,i),e.push(n,"move",rt(o))},leave:function(t,n){return e.push(t,"leave",rt(n),function(){t.remove()})},addClass:function(t,n,r){return r=rt(r),r.addClass=et(r.addclass,n),e.push(t,"addClass",r)},removeClass:function(t,n,r){return r=rt(r),r.removeClass=et(r.removeClass,n),e.push(t,"removeClass",r)},setClass:function(t,n,r,i){return i=rt(i),i.addClass=et(i.addClass,n),i.removeClass=et(i.removeClass,r),e.push(t,"setClass",i)},animate:function(t,n,r,i,o){return o=rt(o),o.from=o.from?p(o.from,n):n,o.to=o.to?p(o.to,r):r,i=i||"ng-inline-animate",o.tempClasses=et(o.tempClasses,i),e.push(t,"animate",o)}}}]}],Pi=function(){this.$get=["$$rAF","$q",function(e,t){var n=function(){};return n.prototype={done:function(e){this.defer&&this.defer[e===!0?"reject":"resolve"]()},end:function(){this.done()},cancel:function(){this.done(!0)},getPromise:function(){return this.defer||(this.defer=t.defer()),this.defer.promise},then:function(e,t){return this.getPromise().then(e,t)},"catch":function(e){return this.getPromise()["catch"](e)},"finally":function(e){return this.getPromise()["finally"](e)}},function(t,r){function i(){return e(function(){o(),a||s.done(),a=!0}),s}function o(){r.addClass&&(t.addClass(r.addClass),r.addClass=null),r.removeClass&&(t.removeClass(r.removeClass),r.removeClass=null),r.to&&(t.css(r.to),r.to=null)}r.cleanupStyles&&(r.from=r.to=null),r.from&&(t.css(r.from),r.from=null);var a,s=new n;return{start:i,end:i}}}]},Si=r("$compile");ut.$inject=["$provide","$$sanitizeUriProvider"];var Di=/^((?:x|data)[\:\-_])/i,Ri=r("$controller"),ki=/^(\S+)(\s+as\s+(\w+))?$/,Ai=function(){this.$get=["$document",function(e){return function(t){return t?!t.nodeType&&t instanceof $r&&(t=t[0]):t=e[0].body,t.offsetWidth+1}}]},ji="application/json",Ii={"Content-Type":ji+";charset=utf-8"},Mi=/^\[|^\{(?!\{)/,Fi={"[":/]$/,"{":/}$/},Li=/^\)\]\}',?\n/,Vi=r("$http"),Ui=function(e){return function(){throw Vi("legacy","The method `{0}` on the promise returned from `$http` has been disabled.",e)}},Hi=jr.$interpolateMinErr=r("$interpolate");Hi.throwNoconcat=function(e){throw Hi("noconcat","Error while interpolating: {0}\nStrict Contextual Escaping disallows interpolations that concatenate multiple expressions when a trusted value is required. See http://docs.angularjs.org/api/ng.$sce",e)},Hi.interr=function(e,t){return Hi("interr","Can't interpolate: {0}\n{1}",e,t.toString())};var qi=/^([^\?#]*)(\?([^#]*))?(#(.*))?$/,Bi={http:80,https:443,ftp:21},Wi=r("$location"),zi={$$html5:!1,$$replace:!1,absUrl:Ht("$$absUrl"),url:function(e){if(b(e))return this.$$url;var t=qi.exec(e);return(t[1]||""===e)&&this.path(decodeURIComponent(t[1])),(t[2]||t[1]||""===e)&&this.search(t[3]||""),this.hash(t[5]||""),this},protocol:Ht("$$protocol"),host:Ht("$$host"),port:Ht("$$port"),path:qt("$$path",function(e){return e=null!==e?e.toString():"","/"==e.charAt(0)?e:"/"+e}),search:function(e,t){switch(arguments.length){case 0:return this.$$search;case 1:if(_(e)||C(e))e=e.toString(),this.$$search=ee(e);else{if(!w(e))throw Wi("isrcharg","The first argument of the `$location#search()` call must be a string or an object.");e=V(e,{}),o(e,function(t,n){null==t&&delete e[n]}),this.$$search=e}break;default:b(t)||null===t?delete this.$$search[e]:this.$$search[e]=t}return this.$$compose(),this},hash:qt("$$hash",function(e){return null!==e?e.toString():""}),replace:function(){return this.$$replace=!0,this}};o([Ut,Vt,Lt],function(e){e.prototype=Object.create(zi),e.prototype.state=function(t){if(!arguments.length)return this.$$state;if(e!==Lt||!this.$$html5)throw Wi("nostate","History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API");return this.$$state=b(t)?null:t,this}});var Ki=r("$parse"),Qi=Function.prototype.call,Yi=Function.prototype.apply,Gi=Function.prototype.bind,Xi=ve();o("+ - * / % === !== == != < > <= >= && || ! = |".split(" "),function(e){Xi[e]=!0});var Ji={n:"\n",f:"\f",r:"\r",t:" ",v:"","'":"'",'"':'"'},Zi=function(e){this.options=e};Zi.prototype={constructor:Zi,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index<this.text.length;){var t=this.text.charAt(this.index);if('"'===t||"'"===t)this.readString(t);else if(this.isNumber(t)||"."===t&&this.isNumber(this.peek()))this.readNumber();else if(this.isIdent(t))this.readIdent();else if(this.is(t,"(){}[].,;:?"))this.tokens.push({index:this.index,text:t}),this.index++;else if(this.isWhitespace(t))this.index++;else{var n=t+this.peek(),r=n+this.peek(2),i=Xi[t],o=Xi[n],a=Xi[r];if(i||o||a){var s=a?r:o?n:t;this.tokens.push({index:this.index,text:s,operator:!0}),this.index+=s.length}else this.throwError("Unexpected next character ",this.index,this.index+1)}}return this.tokens},is:function(e,t){return-1!==t.indexOf(e)},peek:function(e){var t=e||1;return this.index+t<this.text.length?this.text.charAt(this.index+t):!1},isNumber:function(e){return e>="0"&&"9">=e&&"string"==typeof e},isWhitespace:function(e){return" "===e||"\r"===e||" "===e||"\n"===e||""===e||" "===e},isIdent:function(e){return e>="a"&&"z">=e||e>="A"&&"Z">=e||"_"===e||"$"===e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var r=x(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw Ki("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,r,this.text)},readNumber:function(){for(var e="",t=this.index;this.index<this.text.length;){var n=xr(this.text.charAt(this.index));if("."==n||this.isNumber(n))e+=n;else{var r=this.peek();if("e"==n&&this.isExpOperator(r))e+=n;else if(this.isExpOperator(n)&&r&&this.isNumber(r)&&"e"==e.charAt(e.length-1))e+=n;else{if(!this.isExpOperator(n)||r&&this.isNumber(r)||"e"!=e.charAt(e.length-1))break;this.throwError("Invalid exponent")}}this.index++}this.tokens.push({index:t,text:e,constant:!0,value:Number(e)})},readIdent:function(){for(var e=this.index;this.index<this.text.length;){var t=this.text.charAt(this.index);if(!this.isIdent(t)&&!this.isNumber(t))break;this.index++}this.tokens.push({index:e,text:this.text.slice(e,this.index),identifier:!0})},readString:function(e){var t=this.index;this.index++;for(var n="",r=e,i=!1;this.index<this.text.length;){var o=this.text.charAt(this.index);if(r+=o,i){if("u"===o){var a=this.text.substring(this.index+1,this.index+5);a.match(/[\da-f]{4}/i)||this.throwError("Invalid unicode escape [\\u"+a+"]"),this.index+=4,n+=String.fromCharCode(parseInt(a,16))}else{var s=Ji[o];n+=s||o}i=!1}else if("\\"===o)i=!0;else{if(o===e)return this.index++,void this.tokens.push({index:t,text:r,constant:!0,value:n});n+=o}this.index++}this.throwError("Unterminated quote",t)}};var eo=function(e,t){this.lexer=e,this.options=t};eo.Program="Program",eo.ExpressionStatement="ExpressionStatement",eo.AssignmentExpression="AssignmentExpression",eo.ConditionalExpression="ConditionalExpression",eo.LogicalExpression="LogicalExpression",eo.BinaryExpression="BinaryExpression",eo.UnaryExpression="UnaryExpression",eo.CallExpression="CallExpression",eo.MemberExpression="MemberExpression",eo.Identifier="Identifier",eo.Literal="Literal",eo.ArrayExpression="ArrayExpression",eo.Property="Property",eo.ObjectExpression="ObjectExpression",eo.ThisExpression="ThisExpression",eo.NGValueParameter="NGValueParameter",eo.prototype={ast:function(e){this.text=e,this.tokens=this.lexer.lex(e);var t=this.program();return 0!==this.tokens.length&&this.throwError("is an unexpected token",this.tokens[0]),t},program:function(){for(var e=[];;)if(this.tokens.length>0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:eo.Program,body:e}},expressionStatement:function(){return{type:eo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e,t=this.expression();e=this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();return this.expect("=")&&(e={type:eo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}),e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:eo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:eo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:eo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:eo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:eo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.constants.hasOwnProperty(this.peek().text)?e=V(this.constants[this.consume().text]):this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:eo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:eo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:eo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:eo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.expression());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:eo.Identifier,name:e.text}},constant:function(){return{type:eo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:eo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:eo.Property,kind:"init"},this.peek().constant?e.key=this.constant():this.peek().identifier?e.key=this.identifier():this.throwError("invalid key",this.peek()),this.consume(":"),e.value=this.expression(),t.push(e)}while(this.expect(","));return this.consume("}"),{type:eo.ObjectExpression,properties:t}},throwError:function(e,t){throw Ki("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw Ki("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw Ki("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,r){return this.peekAhead(0,e,t,n,r)},peekAhead:function(e,t,n,r,i){if(this.tokens.length>e){var o=this.tokens[e],a=o.text;if(a===t||a===n||a===r||a===i||!t&&!n&&!r&&!i)return o}return!1},expect:function(e,t,n,r){var i=this.peek(e,t,n,r);return i?(this.tokens.shift(),i):!1},constants:{"true":{type:eo.Literal,value:!0},"false":{type:eo.Literal,value:!1},"null":{type:eo.Literal,value:null},undefined:{type:eo.Literal,value:n},"this":{type:eo.ThisExpression}}},sn.prototype={compile:function(e,t){var r=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},en(i,r.$filter);var a,s="";if(this.stage="assign",a=rn(i)){this.state.computing="assign";var u=this.nextId();this.recurse(a,u),this.return_(u),s="fn.assign="+this.generateFunction("assign","s,v,l")}var c=tn(i.body);r.stage="inputs",o(c,function(e,t){var n="fn"+t;r.state[n]={vars:[],body:[],own:{}},r.state.computing=n;var i=r.nextId();r.recurse(e,i),r.return_(i),r.state.inputs.push(n),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(i);var l='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+s+this.watchFns()+"return fn;",p=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",l)(this.$filter,zt,Qt,Yt,Kt,Gt,Xt,Jt,e);return this.state=this.stage=n,p.literal=on(i),p.constant=an(i),p},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return o(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return o(this.state.filters,function(n,r){e.push(n+"=$filter("+t.escape(r)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,r,i,a,s){var u,c,l,p,f=this;if(i=i||m,!s&&x(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,r,i,a,!0));switch(e.type){case eo.Program:o(e.body,function(t,r){f.recurse(t.expression,n,n,function(e){c=e}),r!==e.body.length-1?f.current().body.push(c,";"):f.return_(c)});break;case eo.Literal:p=this.escape(e.value),this.assign(t,p),i(p);break;case eo.UnaryExpression:this.recurse(e.argument,n,n,function(e){c=e}),p=e.operator+"("+this.ifDefined(c,0)+")",this.assign(t,p),i(p);break;case eo.BinaryExpression:this.recurse(e.left,n,n,function(e){u=e}),this.recurse(e.right,n,n,function(e){c=e}),p="+"===e.operator?this.plus(u,c):"-"===e.operator?this.ifDefined(u,0)+e.operator+this.ifDefined(c,0):"("+u+")"+e.operator+"("+c+")",this.assign(t,p),i(p);break;case eo.LogicalExpression:t=t||this.nextId(),f.recurse(e.left,t),f.if_("&&"===e.operator?t:f.not(t),f.lazyRecurse(e.right,t)),i(t);break;case eo.ConditionalExpression:t=t||this.nextId(),f.recurse(e.test,t),f.if_(t,f.lazyRecurse(e.alternate,t),f.lazyRecurse(e.consequent,t)),i(t);break;case eo.Identifier:t=t||this.nextId(),r&&(r.context="inputs"===f.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),r.computed=!1,r.name=e.name),zt(e.name),f.if_("inputs"===f.stage||f.not(f.getHasOwnProperty("l",e.name)),function(){f.if_("inputs"===f.stage||"s",function(){a&&1!==a&&f.if_(f.not(f.nonComputedMember("s",e.name)),f.lazyAssign(f.nonComputedMember("s",e.name),"{}")),f.assign(t,f.nonComputedMember("s",e.name))})},t&&f.lazyAssign(t,f.nonComputedMember("l",e.name))),(f.state.expensiveChecks||cn(e.name))&&f.addEnsureSafeObject(t),i(t);break;case eo.MemberExpression:u=r&&(r.context=this.nextId())||this.nextId(),t=t||this.nextId(),f.recurse(e.object,u,n,function(){f.if_(f.notNull(u),function(){e.computed?(c=f.nextId(),f.recurse(e.property,c),f.getStringValue(c),f.addEnsureSafeMemberName(c),a&&1!==a&&f.if_(f.not(f.computedMember(u,c)),f.lazyAssign(f.computedMember(u,c),"{}")),p=f.ensureSafeObject(f.computedMember(u,c)),f.assign(t,p),r&&(r.computed=!0,r.name=c)):(zt(e.property.name),a&&1!==a&&f.if_(f.not(f.nonComputedMember(u,e.property.name)),f.lazyAssign(f.nonComputedMember(u,e.property.name),"{}")),p=f.nonComputedMember(u,e.property.name),(f.state.expensiveChecks||cn(e.property.name))&&(p=f.ensureSafeObject(p)),f.assign(t,p),r&&(r.computed=!1,r.name=e.property.name))},function(){f.assign(t,"undefined")}),i(t)},!!a);break;case eo.CallExpression:t=t||this.nextId(),e.filter?(c=f.filter(e.callee.name),l=[],o(e.arguments,function(e){var t=f.nextId();f.recurse(e,t),l.push(t)}),p=c+"("+l.join(",")+")",f.assign(t,p),i(t)):(c=f.nextId(),u={},l=[],f.recurse(e.callee,c,u,function(){f.if_(f.notNull(c),function(){f.addEnsureSafeFunction(c),o(e.arguments,function(e){f.recurse(e,f.nextId(),n,function(e){l.push(f.ensureSafeObject(e))})}),u.name?(f.state.expensiveChecks||f.addEnsureSafeObject(u.context),p=f.member(u.context,u.name,u.computed)+"("+l.join(",")+")"):p=c+"("+l.join(",")+")",p=f.ensureSafeObject(p),f.assign(t,p)},function(){f.assign(t,"undefined")}),i(t)}));break;case eo.AssignmentExpression:if(c=this.nextId(),u={},!nn(e.left))throw Ki("lval","Trying to assing a value to a non l-value");this.recurse(e.left,n,u,function(){f.if_(f.notNull(u.context),function(){f.recurse(e.right,c),f.addEnsureSafeObject(f.member(u.context,u.name,u.computed)),f.addEnsureSafeAssignContext(u.context),p=f.member(u.context,u.name,u.computed)+e.operator+c,f.assign(t,p),i(t||p)})},1);break;case eo.ArrayExpression:l=[],o(e.elements,function(e){f.recurse(e,f.nextId(),n,function(e){l.push(e)})}),p="["+l.join(",")+"]",this.assign(t,p),i(p);break;case eo.ObjectExpression:l=[],o(e.properties,function(e){f.recurse(e.value,f.nextId(),n,function(t){l.push(f.escape(e.key.type===eo.Identifier?e.key.name:""+e.key.value)+":"+t)})}),p="{"+l.join(",")+"}",this.assign(t,p),i(p);break;case eo.ThisExpression:this.assign(t,"s"),i("s");break;case eo.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,r=this.current().own;return r.hasOwnProperty(n)||(r[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),r[n]},assign:function(e,t){return e?(this.current().body.push(e,"=",t,";"),e):void 0},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e];
30
+
31
+ },ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var r=this.current().body;r.push("if(",e,"){"),t(),r.push("}"),n&&(r.push("else{"),n(),r.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){return e+"."+t},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+",text)")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,r,i,o){var a=this;return function(){a.recurse(e,t,n,r,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(_(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(C(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw Ki("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},un.prototype={compile:function(e,t){var n=this,r=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,en(r,n.$filter);var i,a;(i=rn(r))&&(a=this.recurse(i));var s,u=tn(r.body);u&&(s=[],o(u,function(e,t){var r=n.recurse(e);e.input=r,s.push(r),e.watchId=t}));var c=[];o(r.body,function(e){c.push(n.recurse(e.expression))});var l=0===r.body.length?function(){}:1===r.body.length?c[0]:function(e,t){var n;return o(c,function(r){n=r(e,t)}),n};return a&&(l.assign=function(e,t,n){return a(e,n,t)}),s&&(l.inputs=s),l.literal=on(r),l.constant=an(r),l},recurse:function(e,t,r){var i,a,s,u=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case eo.Literal:return this.value(e.value,t);case eo.UnaryExpression:return a=this.recurse(e.argument),this["unary"+e.operator](a,t);case eo.BinaryExpression:return i=this.recurse(e.left),a=this.recurse(e.right),this["binary"+e.operator](i,a,t);case eo.LogicalExpression:return i=this.recurse(e.left),a=this.recurse(e.right),this["binary"+e.operator](i,a,t);case eo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case eo.Identifier:return zt(e.name,u.expression),u.identifier(e.name,u.expensiveChecks||cn(e.name),t,r,u.expression);case eo.MemberExpression:return i=this.recurse(e.object,!1,!!r),e.computed||(zt(e.property.name,u.expression),a=e.property.name),e.computed&&(a=this.recurse(e.property)),e.computed?this.computedMember(i,a,t,r,u.expression):this.nonComputedMember(i,a,u.expensiveChecks,t,r,u.expression);case eo.CallExpression:return s=[],o(e.arguments,function(e){s.push(u.recurse(e))}),e.filter&&(a=this.$filter(e.callee.name)),e.filter||(a=this.recurse(e.callee,!0)),e.filter?function(e,r,i,o){for(var u=[],c=0;c<s.length;++c)u.push(s[c](e,r,i,o));var l=a.apply(n,u,o);return t?{context:n,name:n,value:l}:l}:function(e,n,r,i){var o,c=a(e,n,r,i);if(null!=c.value){Qt(c.context,u.expression),Yt(c.value,u.expression);for(var l=[],p=0;p<s.length;++p)l.push(Qt(s[p](e,n,r,i),u.expression));o=Qt(c.value.apply(c.context,l),u.expression)}return t?{value:o}:o};case eo.AssignmentExpression:return i=this.recurse(e.left,!0,1),a=this.recurse(e.right),function(e,n,r,o){var s=i(e,n,r,o),c=a(e,n,r,o);return Qt(s.value,u.expression),Gt(s.context),s.context[s.name]=c,t?{value:c}:c};case eo.ArrayExpression:return s=[],o(e.elements,function(e){s.push(u.recurse(e))}),function(e,n,r,i){for(var o=[],a=0;a<s.length;++a)o.push(s[a](e,n,r,i));return t?{value:o}:o};case eo.ObjectExpression:return s=[],o(e.properties,function(e){s.push({key:e.key.type===eo.Identifier?e.key.name:""+e.key.value,value:u.recurse(e.value)})}),function(e,n,r,i){for(var o={},a=0;a<s.length;++a)o[s[a].key]=s[a].value(e,n,r,i);return t?{value:o}:o};case eo.ThisExpression:return function(e){return t?{value:e}:e};case eo.NGValueParameter:return function(e,n,r){return t?{value:r}:r}}},"unary+":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=x(a)?+a:0,t?{value:a}:a}},"unary-":function(e,t){return function(n,r,i,o){var a=e(n,r,i,o);return a=x(a)?-a:0,t?{value:a}:a}},"unary!":function(e,t){return function(n,r,i,o){var a=!e(n,r,i,o);return t?{value:a}:a}},"binary+":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),u=t(r,i,o,a),c=Jt(s,u);return n?{value:c}:c}},"binary-":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a),u=t(r,i,o,a),c=(x(s)?s:0)-(x(u)?u:0);return n?{value:c}:c}},"binary*":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)*t(r,i,o,a);return n?{value:s}:s}},"binary/":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)/t(r,i,o,a);return n?{value:s}:s}},"binary%":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)%t(r,i,o,a);return n?{value:s}:s}},"binary===":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)===t(r,i,o,a);return n?{value:s}:s}},"binary!==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!==t(r,i,o,a);return n?{value:s}:s}},"binary==":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)==t(r,i,o,a);return n?{value:s}:s}},"binary!=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)!=t(r,i,o,a);return n?{value:s}:s}},"binary<":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<t(r,i,o,a);return n?{value:s}:s}},"binary>":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>t(r,i,o,a);return n?{value:s}:s}},"binary<=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)<=t(r,i,o,a);return n?{value:s}:s}},"binary>=":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)>=t(r,i,o,a);return n?{value:s}:s}},"binary&&":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)&&t(r,i,o,a);return n?{value:s}:s}},"binary||":function(e,t,n){return function(r,i,o,a){var s=e(r,i,o,a)||t(r,i,o,a);return n?{value:s}:s}},"ternary?:":function(e,t,n,r){return function(i,o,a,s){var u=e(i,o,a,s)?t(i,o,a,s):n(i,o,a,s);return r?{value:u}:u}},value:function(e,t){return function(){return t?{context:n,name:n,value:e}:e}},identifier:function(e,t,r,i,o){return function(a,s){var u=s&&e in s?s:a;i&&1!==i&&u&&!u[e]&&(u[e]={});var c=u?u[e]:n;return t&&Qt(c,o),r?{context:u,name:e,value:c}:c}},computedMember:function(e,t,n,r,i){return function(o,a,s,u){var c,l,p=e(o,a,s,u);return null!=p&&(c=t(o,a,s,u),c=Kt(c),zt(c,i),r&&1!==r&&p&&!p[c]&&(p[c]={}),l=p[c],Qt(l,i)),n?{context:p,name:c,value:l}:l}},nonComputedMember:function(e,t,r,i,o,a){return function(s,u,c,l){var p=e(s,u,c,l);o&&1!==o&&p&&!p[t]&&(p[t]={});var f=null!=p?p[t]:n;return(r||cn(t))&&Qt(f,a),i?{context:p,name:t,value:f}:f}},inputs:function(e,t){return function(n,r,i,o){return o?o[t]:e(n,r,i)}}};var to=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new eo(this.lexer),this.astCompiler=n.csp?new un(this.ast,t):new sn(this.ast,t)};to.prototype={constructor:to,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var no=(ve(),ve(),Object.prototype.valueOf),ro=r("$sce"),io={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},Si=r("$compile"),oo=t.createElement("a"),ao=$n(e.location.href);Pn.$inject=["$document"],Dn.$inject=["$provide"],In.$inject=["$locale"],Mn.$inject=["$locale"];var so=".",uo={yyyy:Vn("FullYear",4),yy:Vn("FullYear",2,0,!0),y:Vn("FullYear",1),MMMM:Un("Month"),MMM:Un("Month",!0),MM:Vn("Month",2,1),M:Vn("Month",1,1),dd:Vn("Date",2),d:Vn("Date",1),HH:Vn("Hours",2),H:Vn("Hours",1),hh:Vn("Hours",2,-12),h:Vn("Hours",1,-12),mm:Vn("Minutes",2),m:Vn("Minutes",1),ss:Vn("Seconds",2),s:Vn("Seconds",1),sss:Vn("Milliseconds",3),EEEE:Un("Day"),EEE:Un("Day",!0),a:zn,Z:Hn,ww:Wn(2),w:Wn(1),G:Kn,GG:Kn,GGG:Kn,GGGG:Qn},co=/((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,lo=/^\-?\d+$/;Yn.$inject=["$locale"];var po=g(xr),fo=g(Er);Jn.$inject=["$parse"];var ho=g({restrict:"E",compile:function(e,t){return t.href||t.xlinkHref?void 0:function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Rr.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),mo={};o(hi,function(e,t){function n(e,n,i){e.$watch(i[r],function(e){i.$set(t,!!e)})}if("multiple"!=e){var r=ct("ng-"+t),i=n;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[r]&&n(e,t,i)}),mo[r]=function(){return{restrict:"A",priority:100,link:i}}}}),o(vi,function(e,t){mo[t]=function(){return{priority:100,link:function(e,n,r){if("ngPattern"===t&&"/"==r.ngPattern.charAt(0)){var i=r.ngPattern.match(yr);if(i)return void r.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(r[t],function(e){r.$set(t,e)})}}}}),o(["src","srcset","href"],function(e){var t=ct("ng-"+e);mo[t]=function(){return{priority:99,link:function(n,r,i){var o=e,a=e;"href"===e&&"[object SVGAnimatedString]"===Rr.call(r.prop("href"))&&(a="xlinkHref",i.$attr[a]="xlink:href",o=null),i.$observe(t,function(t){return t?(i.$set(a,t),void(Nr&&o&&r.prop(o,i[a]))):void("href"===e&&i.$set(a,null))})}}}});var vo={$addControl:m,$$renameControl:er,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},go="ng-submitted";tr.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var yo=function(e){return["$timeout","$parse",function(t,r){function i(e){return""===e?r('this[""]').assign:r(e).assign||m}var o={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:tr,compile:function(r,o){r.addClass(Jo).addClass(Go);var a=o.name?"name":e&&o.ngForm?"ngForm":!1;return{pre:function(e,r,o,s){var u=s[0];if(!("action"in o)){var c=function(t){e.$apply(function(){u.$commitViewValue(),u.$setSubmitted()}),t.preventDefault()};ni(r[0],"submit",c),r.on("$destroy",function(){t(function(){ri(r[0],"submit",c)},0,!1)})}var l=s[1]||u.$$parentForm;l.$addControl(u);var f=a?i(u.$name):m;a&&(f(e,u),o.$observe(a,function(t){u.$name!==t&&(f(e,n),u.$$parentForm.$$renameControl(u,t),(f=i(u.$name))(e,u))})),r.on("$destroy",function(){u.$$parentForm.$removeControl(u),f(e,n),p(u,vo)})}}}};return o}]},bo=yo(),xo=yo(!0),wo=/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/,Eo=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,_o=/^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Co=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,No=/^(\d{4})-(\d{2})-(\d{2})$/,$o=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Oo=/^(\d{4})-W(\d\d)$/,To=/^(\d{4})-(\d\d)$/,Po=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,So={text:rr,date:sr("date",No,ar(No,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":sr("datetimelocal",$o,ar($o,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:sr("time",Po,ar(Po,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:sr("week",Oo,or,"yyyy-Www"),month:sr("month",To,ar(To,["yyyy","MM"]),"yyyy-MM"),number:cr,url:lr,email:pr,radio:fr,checkbox:hr,hidden:m,button:m,submit:m,reset:m,file:m},Do=["$browser","$sniffer","$filter","$parse",function(e,t,n,r){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,a,s){s[0]&&(So[xr(a.type)]||So.text)(i,o,a,s[0],t,e,n,r)}}}}],Ro=/^(true|false|\d+)$/,ko=function(){return{restrict:"A",priority:100,compile:function(e,t){return Ro.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},Ao=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,r){e.$$addBindingInfo(n,r.ngBind),n=n[0],t.$watch(r.ngBind,function(e){n.textContent=b(e)?"":e})}}}}],jo=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,r,i){var o=e(r.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(r,o.expressions),r=r[0],i.$observe("ngBindTemplate",function(e){r.textContent=b(e)?"":e})}}}}],Io=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(r,i){var o=t(i.ngBindHtml),a=t(i.ngBindHtml,function(e){return(e||"").toString()});return n.$$addBindingClass(r),function(t,r,i){n.$$addBindingInfo(r,i.ngBindHtml),t.$watch(a,function(){r.html(e.getTrustedHtml(o(t))||"")})}}}}],Mo=g({restrict:"A",require:"ngModel",link:function(e,t,n,r){r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Fo=mr("",!0),Lo=mr("Odd",0),Vo=mr("Even",1),Uo=Zn({compile:function(e,t){t.$set("ngCloak",n),e.removeClass("ng-cloak")}}),Ho=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],qo={},Bo={blur:!0,focus:!0};o("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=ct("ng-"+e);qo[t]=["$parse","$rootScope",function(n,r){return{restrict:"A",compile:function(i,o){var a=n(o[t],null,!0);return function(t,n){n.on(e,function(n){var i=function(){a(t,{$event:n})};Bo[e]&&r.$$phase?t.$evalAsync(i):t.$apply(i)})}}}}]});var Wo=["$animate",function(e){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,r,i,o,a){var s,u,c;n.$watch(i.ngIf,function(n){n?u||a(function(n,o){u=o,n[n.length++]=t.createComment(" end ngIf: "+i.ngIf+" "),s={clone:n},e.enter(n,r.parent(),r)}):(c&&(c.remove(),c=null),u&&(u.$destroy(),u=null),s&&(c=me(s.clone),e.leave(c).then(function(){c=null}),s=null))})}}}],zo=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:jr.noop,compile:function(r,i){var o=i.ngInclude||i.src,a=i.onload||"",s=i.autoscroll;return function(r,i,u,c,l){var p,f,d,h=0,m=function(){f&&(f.remove(),f=null),p&&(p.$destroy(),p=null),d&&(n.leave(d).then(function(){f=null}),f=d,d=null)};r.$watch(o,function(o){var u=function(){!x(s)||s&&!r.$eval(s)||t()},f=++h;o?(e(o,!0).then(function(e){if(f===h){var t=r.$new();c.template=e;var s=l(t,function(e){m(),n.enter(e,null,i).then(u)});p=t,d=s,p.$emit("$includeContentLoaded",o),r.$eval(a)}},function(){f===h&&(m(),r.$emit("$includeContentError",o))}),r.$emit("$includeContentRequested",o)):(m(),c.template=null)})}}}}],Ko=["$compile",function(e){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,r,i,o){return/SVG/.test(r[0].toString())?(r.empty(),void e($e(o.template,t).childNodes)(n,function(e){r.append(e)},{futureParentElement:r})):(r.html(o.template),void e(r.contents())(n))}}}],Qo=Zn({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),Yo=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,r,i){var a=t.attr(r.$attr.ngList)||", ",s="false"!==r.ngTrim,u=s?Vr(a):a,c=function(e){if(!b(e)){var t=[];return e&&o(e.split(u),function(e){e&&t.push(s?Vr(e):e)}),t}};i.$parsers.push(c),i.$formatters.push(function(e){return Fr(e)?e.join(a):n}),i.$isEmpty=function(e){return!e||!e.length}}}},Go="ng-valid",Xo="ng-invalid",Jo="ng-pristine",Zo="ng-dirty",ea="ng-untouched",ta="ng-touched",na="ng-pending",ra=r("ngModel"),ia=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,r,i,a,s,u,c,l,p){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=n,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=n,this.$name=p(r.name||"",!1)(e),this.$$parentForm=vo;var f,d=a(r.ngModel),h=d.assign,v=d,g=h,y=null,w=this;this.$$setOptions=function(e){if(w.$options=e,e&&e.getterSetter){var t=a(r.ngModel+"()"),n=a(r.ngModel+"($$$p)");v=function(e){var n=d(e);return $(n)&&(n=t(e)),n},g=function(e){$(d(e))?n(e,{$$$p:w.$modelValue}):h(e,w.$modelValue)}}else if(!d.assign)throw ra("nonassign","Expression '{0}' is non-assignable. Element: {1}",r.ngModel,J(i))},this.$render=m,this.$isEmpty=function(e){return b(e)||""===e||null===e||e!==e};var E=0;vr({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:s}),this.$setPristine=function(){w.$dirty=!1,w.$pristine=!0,s.removeClass(i,Zo),s.addClass(i,Jo)},this.$setDirty=function(){w.$dirty=!0,w.$pristine=!1,s.removeClass(i,Jo),s.addClass(i,Zo),w.$$parentForm.$setDirty()},this.$setUntouched=function(){w.$touched=!1,w.$untouched=!0,s.setClass(i,ea,ta)},this.$setTouched=function(){w.$touched=!0,w.$untouched=!1,s.setClass(i,ta,ea)},this.$rollbackViewValue=function(){u.cancel(y),w.$viewValue=w.$$lastCommittedViewValue,w.$render()},this.$validate=function(){if(!C(w.$modelValue)||!isNaN(w.$modelValue)){var e=w.$$lastCommittedViewValue,t=w.$$rawModelValue,r=w.$valid,i=w.$modelValue,o=w.$options&&w.$options.allowInvalid;w.$$runValidators(t,e,function(e){o||r===e||(w.$modelValue=e?t:n,w.$modelValue!==i&&w.$$writeModelToScope())})}},this.$$runValidators=function(e,t,r){function i(){var e=w.$$parserName||"parse";return b(f)?(u(e,null),!0):(f||(o(w.$validators,function(e,t){u(t,null)}),o(w.$asyncValidators,function(e,t){u(t,null)})),u(e,f),f)}function a(){var n=!0;return o(w.$validators,function(r,i){var o=r(e,t);n=n&&o,u(i,o)}),n?!0:(o(w.$asyncValidators,function(e,t){u(t,null)}),!1)}function s(){var r=[],i=!0;o(w.$asyncValidators,function(o,a){var s=o(e,t);if(!A(s))throw ra("$asyncValidators","Expected asynchronous validator to return a promise but got '{0}' instead.",s);u(a,n),r.push(s.then(function(){u(a,!0)},function(){i=!1,u(a,!1)}))}),r.length?l.all(r).then(function(){c(i)},m):c(!0)}function u(e,t){p===E&&w.$setValidity(e,t)}function c(e){p===E&&r(e)}E++;var p=E;return i()&&a()?void s():void c(!1)},this.$commitViewValue=function(){var e=w.$viewValue;u.cancel(y),(w.$$lastCommittedViewValue!==e||""===e&&w.$$hasNativeValidators)&&(w.$$lastCommittedViewValue=e,w.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){w.$modelValue!==a&&w.$$writeModelToScope()}var r=w.$$lastCommittedViewValue,i=r;if(f=b(i)?n:!0)for(var o=0;o<w.$parsers.length;o++)if(i=w.$parsers[o](i),b(i)){f=!1;break}C(w.$modelValue)&&isNaN(w.$modelValue)&&(w.$modelValue=v(e));var a=w.$modelValue,s=w.$options&&w.$options.allowInvalid;w.$$rawModelValue=i,s&&(w.$modelValue=i,t()),w.$$runValidators(i,w.$$lastCommittedViewValue,function(e){s||(w.$modelValue=e?i:n,t())})},this.$$writeModelToScope=function(){g(e,w.$modelValue),o(w.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}})},this.$setViewValue=function(e,t){w.$viewValue=e,(!w.$options||w.$options.updateOnDefault)&&w.$$debounceViewValueCommit(t)},this.$$debounceViewValueCommit=function(t){var n,r=0,i=w.$options;i&&x(i.debounce)&&(n=i.debounce,C(n)?r=n:C(n[t])?r=n[t]:C(n["default"])&&(r=n["default"])),u.cancel(y),r?y=u(function(){w.$commitViewValue()},r):c.$$phase?w.$commitViewValue():e.$apply(function(){w.$commitViewValue()})},e.$watch(function(){var t=v(e);if(t!==w.$modelValue&&(w.$modelValue===w.$modelValue||t===t)){w.$modelValue=w.$$rawModelValue=t,f=n;for(var r=w.$formatters,i=r.length,o=t;i--;)o=r[i](o);w.$viewValue!==o&&(w.$viewValue=w.$$lastCommittedViewValue=o,w.$render(),w.$$runValidators(t,o,m))}return t})}],oa=["$rootScope",function(e){return{restrict:"A",require:["ngModel","^?form","^?ngModelOptions"],controller:ia,priority:1,compile:function(t){return t.addClass(Jo).addClass(ea).addClass(Go),{pre:function(e,t,n,r){var i=r[0],o=r[1]||i.$$parentForm;i.$$setOptions(r[2]&&r[2].$options),o.$addControl(i),n.$observe("name",function(e){i.$name!==e&&i.$$parentForm.$$renameControl(i,e)}),e.$on("$destroy",function(){i.$$parentForm.$removeControl(i)})},post:function(t,n,r,i){var o=i[0];o.$options&&o.$options.updateOn&&n.on(o.$options.updateOn,function(e){o.$$debounceViewValueCommit(e&&e.type)}),n.on("blur",function(){o.$touched||(e.$$phase?t.$evalAsync(o.$setTouched):t.$apply(o.$setTouched))})}}}}}],aa=/(\s+|^)default(\s+|$)/,sa=function(){return{restrict:"A",controller:["$scope","$attrs",function(e,t){var n=this;this.$options=V(e.$eval(t.ngModelOptions)),x(this.$options.updateOn)?(this.$options.updateOnDefault=!1,this.$options.updateOn=Vr(this.$options.updateOn.replace(aa,function(){return n.$options.updateOnDefault=!0," "}))):this.$options.updateOnDefault=!0}]}},ua=Zn({terminal:!0,priority:1e3}),ca=r("ngOptions"),la=/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?(?:\s+disable\s+when\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/,pa=["$compile","$parse",function(e,n){function r(e,t,r){function o(e,t,n,r,i){this.selectValue=e,this.viewValue=t,this.label=n,this.group=r,this.disabled=i}function a(e){var t;if(!c&&i(e))t=e;else{t=[];for(var n in e)e.hasOwnProperty(n)&&"$"!==n.charAt(0)&&t.push(n)}return t}var s=e.match(la);if(!s)throw ca("iexp","Expected expression in form of '_select_ (as _label_)? for (_key_,)?_value_ in _collection_' but got '{0}'. Element: {1}",e,J(t));var u=s[5]||s[7],c=s[6],l=/ as /.test(s[0])&&s[1],p=s[9],f=n(s[2]?s[1]:u),d=l&&n(l),h=d||f,m=p&&n(p),v=p?function(e,t){return m(r,t)}:function(e){return Qe(e)},g=function(e,t){return v(e,_(e,t))},y=n(s[2]||s[1]),b=n(s[3]||""),x=n(s[4]||""),w=n(s[8]),E={},_=c?function(e,t){return E[c]=t,E[u]=e,E}:function(e){return E[u]=e,E};return{trackBy:p,getTrackByValue:g,getWatchables:n(w,function(e){var t=[];e=e||[];for(var n=a(e),i=n.length,o=0;i>o;o++){var u=e===n?o:n[o],c=(e[u],_(e[u],u)),l=v(e[u],c);if(t.push(l),s[2]||s[1]){var p=y(r,c);t.push(p)}if(s[4]){var f=x(r,c);t.push(f)}}return t}),getOptions:function(){for(var e=[],t={},n=w(r)||[],i=a(n),s=i.length,u=0;s>u;u++){var c=n===i?u:i[u],l=n[c],f=_(l,c),d=h(r,f),m=v(d,f),E=y(r,f),C=b(r,f),N=x(r,f),$=new o(m,d,E,C,N);e.push($),t[m]=$}return{items:e,selectValueMap:t,getOptionFromViewValue:function(e){return t[g(e)]},getViewValueFromOption:function(e){return p?jr.copy(e.viewValue):e.viewValue}}}}}var a=t.createElement("option"),s=t.createElement("optgroup");return{restrict:"A",terminal:!0,require:["select","?ngModel"],link:function(t,n,i,u){function c(e,t){e.element=t,t.disabled=e.disabled,e.label!==t.label&&(t.label=e.label,t.textContent=e.label),e.value!==t.value&&(t.value=e.selectValue)}function l(e,t,n,r){var i;return t&&xr(t.nodeName)===n?i=t:(i=r.cloneNode(!1),t?e.insertBefore(i,t):e.appendChild(i)),i}function p(e){for(var t;e;)t=e.nextSibling,He(e),e=t}function f(e){var t=m&&m[0],n=E&&E[0];if(t||n)for(;e&&(e===t||e===n||t&&t.nodeType===Gr);)e=e.nextSibling;return e}function d(){var e=_&&v.readValue();_=C.getOptions();var t={},r=n[0].firstChild;if(w&&n.prepend(m),r=f(r),_.items.forEach(function(e){var i,o,u;e.group?(i=t[e.group],i||(o=l(n[0],r,"optgroup",s),r=o.nextSibling,o.label=e.group,i=t[e.group]={groupElement:o,currentOptionElement:o.firstChild}),u=l(i.groupElement,i.currentOptionElement,"option",a),c(e,u),i.currentOptionElement=u.nextSibling):(u=l(n[0],r,"option",a),c(e,u),r=u.nextSibling)}),Object.keys(t).forEach(function(e){p(t[e].currentOptionElement)}),p(r),h.$render(),!h.$isEmpty(e)){var i=v.readValue();(C.trackBy?H(e,i):e===i)||(h.$setViewValue(i),h.$render())}}var h=u[1];if(h){for(var m,v=u[0],g=i.multiple,y=0,b=n.children(),x=b.length;x>y;y++)if(""===b[y].value){m=b.eq(y);break}var w=!!m,E=$r(a.cloneNode(!1));E.val("?");var _,C=r(i.ngOptions,n,t),N=function(){w||n.prepend(m),n.val(""),m.prop("selected",!0),m.attr("selected",!0)},$=function(){w||m.remove()},O=function(){n.prepend(E),n.val("?"),E.prop("selected",!0),E.attr("selected",!0)},T=function(){E.remove()};g?(h.$isEmpty=function(e){return!e||0===e.length},v.writeValue=function(e){_.items.forEach(function(e){e.element.selected=!1}),e&&e.forEach(function(e){var t=_.getOptionFromViewValue(e);t&&!t.disabled&&(t.element.selected=!0)})},v.readValue=function(){var e=n.val()||[],t=[];return o(e,function(e){var n=_.selectValueMap[e];n&&!n.disabled&&t.push(_.getViewValueFromOption(n))}),t},C.trackBy&&t.$watchCollection(function(){return Fr(h.$viewValue)?h.$viewValue.map(function(e){return C.getTrackByValue(e)}):void 0},function(){h.$render()})):(v.writeValue=function(e){var t=_.getOptionFromViewValue(e);t&&!t.disabled?n[0].value!==t.selectValue&&(T(),$(),n[0].value=t.selectValue,t.element.selected=!0,t.element.setAttribute("selected","selected")):null===e||w?(T(),N()):($(),O())},v.readValue=function(){var e=_.selectValueMap[n.val()];return e&&!e.disabled?($(),T(),_.getViewValueFromOption(e)):null},C.trackBy&&t.$watch(function(){return C.getTrackByValue(h.$viewValue)},function(){h.$render()})),w?(m.remove(),e(m)(t),m.removeClass("ng-scope")):m=$r(a.cloneNode(!1)),d(),t.$watchCollection(C.getWatchables,d)}}}}],fa=["$locale","$interpolate","$log",function(e,t,n){var r=/{}/g,i=/^when(Minus)?(.+)$/;return{link:function(a,s,u){function c(e){s.text(e||"")}var l,p=u.count,f=u.$attr.when&&s.attr(u.$attr.when),d=u.offset||0,h=a.$eval(f)||{},v={},g=t.startSymbol(),y=t.endSymbol(),x=g+p+"-"+d+y,w=jr.noop;o(u,function(e,t){var n=i.exec(t);if(n){var r=(n[1]?"-":"")+xr(n[2]);h[r]=s.attr(u.$attr[t])}}),o(h,function(e,n){v[n]=t(e.replace(r,x))}),a.$watch(p,function(t){var r=parseFloat(t),i=isNaN(r);if(i||r in h||(r=e.pluralCat(r-d)),r!==l&&!(i&&C(l)&&isNaN(l))){w();var o=v[r];b(o)?(null!=t&&n.debug("ngPluralize: no rule defined for '"+r+"' in "+f),w=m,c()):w=a.$watch(o,c),l=r}})}}}],da=["$parse","$animate",function(e,a){var s="$$NG_REMOVED",u=r("ngRepeat"),c=function(e,t,n,r,i,o,a){e[n]=r,i&&(e[i]=o),e.$index=t,e.$first=0===t,e.$last=t===a-1,e.$middle=!(e.$first||e.$last),e.$odd=!(e.$even=0===(1&t))},l=function(e){return e.clone[0]},p=function(e){return e.clone[e.clone.length-1]};return{restrict:"A",multiElement:!0,transclude:"element",priority:1e3,terminal:!0,$$tlb:!0,compile:function(r,f){var d=f.ngRepeat,h=t.createComment(" end ngRepeat: "+d+" "),m=d.match(/^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+track\s+by\s+([\s\S]+?))?\s*$/);if(!m)throw u("iexp","Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '{0}'.",d);var v=m[1],g=m[2],y=m[3],b=m[4];if(m=v.match(/^(?:(\s*[\$\w]+)|\(\s*([\$\w]+)\s*,\s*([\$\w]+)\s*\))$/),!m)throw u("iidexp","'_item_' in '_item_ in _collection_' should be an identifier or '(_key_, _value_)' expression, but got '{0}'.",v);var x=m[3]||m[1],w=m[2];if(y&&(!/^[$a-zA-Z_][$a-zA-Z0-9_]*$/.test(y)||/^(null|undefined|this|\$index|\$first|\$middle|\$last|\$even|\$odd|\$parent|\$root|\$id)$/.test(y)))throw u("badident","alias '{0}' is invalid --- must be a valid JS identifier which is not a reserved name.",y);var E,_,C,N,$={$id:Qe};return b?E=e(b):(C=function(e,t){return Qe(t)},N=function(e){return e}),function(e,t,r,f,m){E&&(_=function(t,n,r){return w&&($[w]=t),$[x]=n,$.$index=r,E(e,$)});var v=ve();e.$watchCollection(g,function(r){var f,g,b,E,$,O,T,P,S,D,R,k,A=t[0],j=ve();if(y&&(e[y]=r),i(r))S=r,P=_||C;else{P=_||N,S=[];for(var I in r)wr.call(r,I)&&"$"!==I.charAt(0)&&S.push(I)}for(E=S.length,R=new Array(E),f=0;E>f;f++)if($=r===S?f:S[f],O=r[$],T=P($,O,f),v[T])D=v[T],delete v[T],j[T]=D,R[f]=D;else{if(j[T])throw o(R,function(e){e&&e.scope&&(v[e.id]=e)}),u("dupes","Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: {0}, Duplicate key: {1}, Duplicate value: {2}",d,T,O);R[f]={id:T,scope:n,clone:n},j[T]=!0}for(var M in v){if(D=v[M],k=me(D.clone),a.leave(k),k[0].parentNode)for(f=0,g=k.length;g>f;f++)k[f][s]=!0;D.scope.$destroy()}for(f=0;E>f;f++)if($=r===S?f:S[f],O=r[$],D=R[f],D.scope){b=A;do b=b.nextSibling;while(b&&b[s]);l(D)!=b&&a.move(me(D.clone),null,$r(A)),A=p(D),c(D.scope,f,x,O,w,$,E)}else m(function(e,t){D.scope=t;var n=h.cloneNode(!1);e[e.length++]=n,a.enter(e,null,$r(A)),A=n,D.clone=e,j[D.id]=D,c(D.scope,f,x,O,w,$,E)});v=j})}}}}],ha="ng-hide",ma="ng-hide-animate",va=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngShow,function(t){e[t?"removeClass":"addClass"](n,ha,{tempClasses:ma})})}}}],ga=["$animate",function(e){return{restrict:"A",multiElement:!0,link:function(t,n,r){t.$watch(r.ngHide,function(t){e[t?"addClass":"removeClass"](n,ha,{tempClasses:ma})})}}}],ya=Zn(function(e,t,n){e.$watch(n.ngStyle,function(e,n){n&&e!==n&&o(n,function(e,n){t.css(n,"")}),e&&t.css(e)},!0)}),ba=["$animate",function(e){return{require:"ngSwitch",controller:["$scope",function(){this.cases={}}],link:function(n,r,i,a){var s=i.ngSwitch||i.on,u=[],c=[],l=[],p=[],f=function(e,t){return function(){e.splice(t,1)}};n.$watch(s,function(n){var r,i;for(r=0,i=l.length;i>r;++r)e.cancel(l[r]);for(l.length=0,r=0,i=p.length;i>r;++r){var s=me(c[r].clone);p[r].$destroy();var d=l[r]=e.leave(s);d.then(f(l,r))}c.length=0,p.length=0,(u=a.cases["!"+n]||a.cases["?"])&&o(u,function(n){n.transclude(function(r,i){p.push(i);var o=n.element;r[r.length++]=t.createComment(" end ngSwitchWhen: ");var a={clone:r};c.push(a),e.enter(r,o.parent(),o)})})})}}}],xa=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["!"+n.ngSwitchWhen]=r.cases["!"+n.ngSwitchWhen]||[],r.cases["!"+n.ngSwitchWhen].push({transclude:i,element:t})}}),wa=Zn({transclude:"element",priority:1200,require:"^ngSwitch",multiElement:!0,link:function(e,t,n,r,i){r.cases["?"]=r.cases["?"]||[],r.cases["?"].push({transclude:i,element:t})}}),Ea=Zn({restrict:"EAC",link:function(e,t,n,i,o){if(!o)throw r("ngTransclude")("orphan","Illegal use of ngTransclude directive in the template! No parent directive that requires a transclusion found. Element: {0}",J(t));o(function(e){t.empty(),t.append(e)})}}),_a=["$templateCache",function(e){return{restrict:"E",terminal:!0,compile:function(t,n){if("text/ng-template"==n.type){var r=n.id,i=t[0].text;e.put(r,i)}}}}],Ca={$setViewValue:m,$render:m},Na=["$element","$scope","$attrs",function(e,r){var i=this,o=new Ye;i.ngModelCtrl=Ca,i.unknownOption=$r(t.createElement("option")),i.renderUnknownOption=function(t){var n="? "+Qe(t)+" ?";i.unknownOption.val(n),e.prepend(i.unknownOption),e.val(n)},r.$on("$destroy",function(){i.renderUnknownOption=m}),i.removeUnknownOption=function(){i.unknownOption.parent()&&i.unknownOption.remove()},i.readValue=function(){return i.removeUnknownOption(),e.val()},i.writeValue=function(t){i.hasOption(t)?(i.removeUnknownOption(),e.val(t),""===t&&i.emptyOption.prop("selected",!0)):null==t&&i.emptyOption?(i.removeUnknownOption(),e.val("")):i.renderUnknownOption(t)},i.addOption=function(e,t){de(e,'"option value"'),""===e&&(i.emptyOption=t);var n=o.get(e)||0;o.put(e,n+1)},i.removeOption=function(e){var t=o.get(e);t&&(1===t?(o.remove(e),""===e&&(i.emptyOption=n)):o.put(e,t-1))},i.hasOption=function(e){return!!o.get(e)}}],$a=function(){return{restrict:"E",require:["select","?ngModel"],controller:Na,link:function(e,t,n,r){var i=r[1];if(i){var a=r[0];if(a.ngModelCtrl=i,i.$render=function(){a.writeValue(i.$viewValue)},t.on("change",function(){e.$apply(function(){i.$setViewValue(a.readValue())})}),n.multiple){a.readValue=function(){var e=[];return o(t.find("option"),function(t){
32
+ t.selected&&e.push(t.value)}),e},a.writeValue=function(e){var n=new Ye(e);o(t.find("option"),function(e){e.selected=x(n.get(e.value))})};var s,u=0/0;e.$watch(function(){u!==i.$viewValue||H(s,i.$viewValue)||(s=U(i.$viewValue),i.$render()),u=i.$viewValue}),i.$isEmpty=function(e){return!e||0===e.length}}}}}},Oa=["$interpolate",function(e){function t(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}return{restrict:"E",priority:100,compile:function(n,r){if(x(r.value))var i=e(r.value,!0);else{var o=e(n.text(),!0);o||r.$set("value",n.text())}return function(e,n,r){function a(e){c.addOption(e,n),c.ngModelCtrl.$render(),t(n)}var s="$selectController",u=n.parent(),c=u.data(s)||u.parent().data(s);if(c&&c.ngModelCtrl){if(i){var l;r.$observe("value",function(e){x(l)&&c.removeOption(l),l=e,a(e)})}else o?e.$watch(o,function(e,t){r.$set("value",e),t!==e&&c.removeOption(t),a(e)}):a(r.value);n.on("$destroy",function(){c.removeOption(r.value),c.ngModelCtrl.$render()})}}}}}],Ta=g({restrict:"E",terminal:!1}),Pa=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){r&&(n.required=!0,r.$validators.required=function(e,t){return!n.required||!r.$isEmpty(t)},n.$observe("required",function(){r.$validate()}))}}},Sa=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,i,o){if(o){var a,s=i.ngPattern||i.pattern;i.$observe("pattern",function(e){if(_(e)&&e.length>0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw r("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,e,J(t));a=e||n,o.$validate()}),o.$validators.pattern=function(e,t){return o.$isEmpty(t)||b(a)||a.test(t)}}}}},Da=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=-1;n.$observe("maxlength",function(e){var t=d(e);i=isNaN(t)?-1:t,r.$validate()}),r.$validators.maxlength=function(e,t){return 0>i||r.$isEmpty(t)||t.length<=i}}}}},Ra=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,r){if(r){var i=0;n.$observe("minlength",function(e){i=d(e)||0,r.$validate()}),r.$validators.minlength=function(e,t){return r.$isEmpty(t)||t.length>=i}}}}};return e.angular.bootstrap?void console.log("WARNING: Tried to load angular more than once."):(le(),xe(jr),jr.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return-1==t?0:e.length-t-1}function r(e,r){var i=r;n===i&&(i=Math.min(t(e),3));var o=Math.pow(10,i),a=(e*o|0)%o;return{v:i,f:a}}var i={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",pluralCat:function(e,t){var n=0|e,o=r(e,t);return 1==n&&0==o.v?i.ONE:i.OTHER}})}]),void $r(t).ready(function(){oe(t,ae)}))}(window,document),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not(.ng-hide-animate){display:none !important;}ng\\:form{display:block;}.ng-animate-shim{visibility:hidden;}.ng-anchor{position:absolute;}</style>')},function(e,t,n){var r=n(1);n(627),n(628),n(629),function(e){function t(e,t,n){return e>t&&t+n>e}function n(e){return/left|right/.test(e.css("float"))||/inline|table-cell/.test(e.css("display"))}e.widget("ui.sortable",e.ui.mouse,{version:"1.10.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===e.axis||n(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){"disabled"===t?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=null,i=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(t),e(t.target).parents().each(function(){return e.data(this,o.widgetName+"-item")===o?(r=e(this),!1):void 0}),e.data(t.target,o.widgetName+"-item")===o&&(r=e(t.target)),r&&(!this.options.handle||n||(e(this.options.handle,r).find("*").addBack().each(function(){this===t.target&&(i=!0)}),i))?(this.currentItem=r,this._removeCurrentsFromItems(),!0):!1)},_mouseStart:function(t,n,r){var i,o,a=this.options;if(this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=e("<style>*{ cursor: "+a.cursor+" !important; }</style>").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!r)for(i=this.containers.length-1;i>=0;i--)this.containers[i]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var n,r,i,o,a=this.options,s=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<a.scrollSensitivity?this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop+a.scrollSpeed:t.pageY-this.overflowOffset.top<a.scrollSensitivity&&(this.scrollParent[0].scrollTop=s=this.scrollParent[0].scrollTop-a.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<a.scrollSensitivity?this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft+a.scrollSpeed:t.pageX-this.overflowOffset.left<a.scrollSensitivity&&(this.scrollParent[0].scrollLeft=s=this.scrollParent[0].scrollLeft-a.scrollSpeed)):(t.pageY-e(document).scrollTop()<a.scrollSensitivity?s=e(document).scrollTop(e(document).scrollTop()-a.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<a.scrollSensitivity&&(s=e(document).scrollTop(e(document).scrollTop()+a.scrollSpeed)),t.pageX-e(document).scrollLeft()<a.scrollSensitivity?s=e(document).scrollLeft(e(document).scrollLeft()-a.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<a.scrollSensitivity&&(s=e(document).scrollLeft(e(document).scrollLeft()+a.scrollSpeed))),s!==!1&&e.ui.ddmanager&&!a.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)),this.positionAbs=this._convertPositionTo("absolute"),this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),n=this.items.length-1;n>=0;n--)if(r=this.items[n],i=r.item[0],o=this._intersectsWithPointer(r),o&&r.instance===this.currentContainer&&i!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==i&&!e.contains(this.placeholder[0],i)&&("semi-dynamic"===this.options.type?!e.contains(this.element[0],i):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(r))break;this._rearrange(t,r),this._trigger("change",t,this._uiHash());break}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(t){if(e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t),this.options.revert){var r=this,i=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,e(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[\-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,o=e.left,a=o+e.width,s=e.top,u=s+e.height,c=this.offset.click.top,l=this.offset.click.left,p="x"===this.options.axis||r+c>s&&u>r+c,f="y"===this.options.axis||t+l>o&&a>t+l,d=p&&f;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?d:o<t+this.helperProportions.width/2&&n-this.helperProportions.width/2<a&&s<r+this.helperProportions.height/2&&i-this.helperProportions.height/2<u},_intersectsWithPointer:function(e){var n="x"===this.options.axis||t(this.positionAbs.top+this.offset.click.top,e.top,e.height),r="y"===this.options.axis||t(this.positionAbs.left+this.offset.click.left,e.left,e.width),i=n&&r,o=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return i?this.floating?a&&"right"===a||"down"===o?2:1:o&&("down"===o?2:1):!1},_intersectsWithSides:function(e){var n=t(this.positionAbs.top+this.offset.click.top,e.top+e.height/2,e.height),r=t(this.positionAbs.left+this.offset.click.left,e.left+e.width/2,e.width),i=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return this.floating&&o?"right"===o&&r||"left"===o&&!r:i&&("down"===i&&n||"up"===i&&!n)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return 0!==e&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return 0!==e&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor===String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){function n(){s.push(this)}var r,i,o,a,s=[],u=[],c=this._connectWith();if(c&&t)for(r=c.length-1;r>=0;r--)for(o=e(c[r]),i=o.length-1;i>=0;i--)a=e.data(o[i],this.widgetFullName),a&&a!==this&&!a.options.disabled&&u.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(u.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),r=u.length-1;r>=0;r--)u[r][0].each(n);return e(s)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n<t.length;n++)if(t[n]===e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var n,r,i,o,a,s,u,c,l=this.items,p=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(n=f.length-1;n>=0;n--)for(i=e(f[n]),r=i.length-1;r>=0;r--)o=e.data(i[r],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(p.push([e.isFunction(o.options.items)?o.options.items.call(o.element[0],t,{item:this.currentItem}):e(o.options.items,o.element),o]),this.containers.push(o));for(n=p.length-1;n>=0;n--)for(a=p[n][1],s=p[n][0],r=0,c=s.length;c>r;r++)u=e(s[r]),u.data(this.widgetName+"-item",a),l.push({item:u,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var n,r,i,o;for(n=this.items.length-1;n>=0;n--)r=this.items[n],r.instance!==this.currentContainer&&this.currentContainer&&r.item[0]!==this.currentItem[0]||(i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item,t||(r.width=i.outerWidth(),r.height=i.outerHeight()),o=i.offset(),r.left=o.left,r.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(n=this.containers.length-1;n>=0;n--)o=this.containers[n].element.offset(),this.containers[n].containerCache.left=o.left,this.containers[n].containerCache.top=o.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight();return this},_createPlaceholder:function(t){t=t||this;var n,r=t.options;r.placeholder&&r.placeholder.constructor!==String||(n=r.placeholder,r.placeholder={element:function(){var r=t.currentItem[0].nodeName.toLowerCase(),i=e("<"+r+">",t.document[0]).addClass(n||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===r?t.currentItem.children().each(function(){e("<td>&#160;</td>",t.document[0]).attr("colspan",e(this).attr("colspan")||1).appendTo(i)}):"img"===r&&i.attr("src",t.currentItem.attr("src")),n||i.css("visibility","hidden"),i},update:function(e,i){(!n||r.forcePlaceholderSize)&&(i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10)))}}),t.placeholder=e(r.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),r.placeholder.update(t,t.placeholder)},_contactContainers:function(r){var i,o,a,s,u,c,l,p,f,d,h=null,m=null;for(i=this.containers.length-1;i>=0;i--)if(!e.contains(this.currentItem[0],this.containers[i].element[0]))if(this._intersectsWith(this.containers[i].containerCache)){if(h&&e.contains(this.containers[i].element[0],h.element[0]))continue;h=this.containers[i],m=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",r,this._uiHash(this)),this.containers[i].containerCache.over=0);if(h)if(1===this.containers.length)this.containers[m].containerCache.over||(this.containers[m]._trigger("over",r,this._uiHash(this)),this.containers[m].containerCache.over=1);else{for(a=1e4,s=null,d=h.floating||n(this.currentItem),u=d?"left":"top",c=d?"width":"height",l=this.positionAbs[u]+this.offset.click[u],o=this.items.length-1;o>=0;o--)e.contains(this.containers[m].element[0],this.items[o].item[0])&&this.items[o].item[0]!==this.currentItem[0]&&(!d||t(this.positionAbs.top+this.offset.click.top,this.items[o].top,this.items[o].height))&&(p=this.items[o].item.offset()[u],f=!1,Math.abs(p-l)>Math.abs(p+this.items[o][c]-l)&&(f=!0,p+=this.items[o][c]),Math.abs(p-l)<a&&(a=Math.abs(p-l),s=this.items[o],this.direction=f?"up":"down"));if(!s&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[m])return;s?this._rearrange(r,s,null,!0):this._rearrange(r,null,this.containers[m].element,!0),this._trigger("change",r,this._uiHash()),this.containers[m]._trigger("change",r,this._uiHash(this)),this.currentContainer=this.containers[m],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[m]._trigger("over",r,this._uiHash(this)),this.containers[m].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):"clone"===n.helper?this.currentItem.clone():this.currentItem;return r.parents("body").length||e("parent"!==n.appendTo?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!r[0].style.width||n.forceHelperSize)&&r.width(this.currentItem.width()),(!r[0].style.height||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){"string"==typeof t&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&e.ui.ie)&&(t={top:0,left:0}),{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t,n,r,i=this.options;"parent"===i.containment&&(i.containment=this.helper[0].parentNode),("document"===i.containment||"window"===i.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e("document"===i.containment?document:window).width()-this.helperProportions.width-this.margins.left,(e("document"===i.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(i.containment)||(t=e(i.containment)[0],n=e(i.containment).offset(),r="hidden"!==e(t).css("overflow"),this.containment=[n.left+(parseInt(e(t).css("borderLeftWidth"),10)||0)+(parseInt(e(t).css("paddingLeft"),10)||0)-this.margins.left,n.top+(parseInt(e(t).css("borderTopWidth"),10)||0)+(parseInt(e(t).css("paddingTop"),10)||0)-this.margins.top,n.left+(r?Math.max(t.scrollWidth,t.offsetWidth):t.offsetWidth)-(parseInt(e(t).css("borderLeftWidth"),10)||0)-(parseInt(e(t).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,n.top+(r?Math.max(t.scrollHeight,t.offsetHeight):t.offsetHeight)-(parseInt(e(t).css("borderTopWidth"),10)||0)-(parseInt(e(t).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(t,n){n||(n=this.position);var r="absolute"===t?1:-1,i="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(i[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:i.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:i.scrollLeft())*r}},_generatePosition:function(t){var n,r,i=this.options,o=t.pageX,a=t.pageY,s="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,u=/(html|body)/i.test(s[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(o=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(a=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(o=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),i.grid&&(n=this.originalPageY+Math.round((a-this.originalPageY)/i.grid[1])*i.grid[1],a=this.containment?n-this.offset.click.top>=this.containment[1]&&n-this.offset.click.top<=this.containment[3]?n:n-this.offset.click.top>=this.containment[1]?n-i.grid[1]:n+i.grid[1]:n,r=this.originalPageX+Math.round((o-this.originalPageX)/i.grid[0])*i.grid[0],o=this.containment?r-this.offset.click.left>=this.containment[0]&&r-this.offset.click.left<=this.containment[2]?r:r-this.offset.click.left>=this.containment[0]?r-i.grid[0]:r+i.grid[0]:r)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():u?0:s.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():u?0:s.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay(function(){i===this.counter&&this.refreshPositions(!r)})},_clear:function(e,t){function n(e,t,n){return function(r){n._trigger(e,r,t._uiHash(t))}}this.reverting=!1;var r,i=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(r in this._storedCSS)("auto"===this._storedCSS[r]||"static"===this._storedCSS[r])&&(this._storedCSS[r]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!t&&i.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||t||i.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(t||(i.push(function(e){this._trigger("remove",e,this._uiHash())}),i.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),i.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer)))),r=this.containers.length-1;r>=0;r--)t||i.push(n("deactivate",this,this.containers[r])),this.containers[r].containerCache.over&&(i.push(n("out",this,this.containers[r])),this.containers[r].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!t){for(this._trigger("beforeStop",e,this._uiHash()),r=0;r<i.length;r++)i[r].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!1}if(t||this._trigger("beforeStop",e,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!t){for(r=0;r<i.length;r++)i[r].call(this,e);this._trigger("stop",e,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var n=t||this;return{helper:n.helper,placeholder:n.placeholder||e([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:t?t.element:null}}})}(r)},function(e,t,n){var r=n(1);!function(e,t){function n(t,n){var i,o,a,s=t.nodeName.toLowerCase();return"area"===s?(i=t.parentNode,o=i.name,t.href&&o&&"map"===i.nodeName.toLowerCase()?(a=e("img[usemap=#"+o+"]")[0],!!a&&r(a)):!1):(/input|select|textarea|button|object/.test(s)?!t.disabled:"a"===s?t.href||n:n)&&r(t)}function r(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var i=0,o=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(n,r){return"number"==typeof n?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),r&&r.call(t)},n)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length)for(var r,i,o=e(this[0]);o.length&&o[0]!==document;){if(r=o.css("position"),("absolute"===r||"relative"===r||"fixed"===r)&&(i=parseInt(o.css("zIndex"),10),!isNaN(i)&&0!==i))return i;o=o.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++i)})},removeUniqueId:function(){return this.each(function(){o.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return n(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var r=e.attr(t,"tabindex"),i=isNaN(r);return(i||r>=0)&&n(t,!i)}}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function i(t,n,r,i){return e.each(o,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),i&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var o="Width"===r?["Left","Right"]:["Top","Bottom"],a=r.toLowerCase(),s={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?s["inner"+r].call(this):this.each(function(){e(this).css(a,i(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return"number"!=typeof t?s["outer"+r].call(this,t):this.each(function(){e(this).css(a,i(this,t,!0,n)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,o=e.ui[t].prototype;for(i in r)o.plugins[i]=o.plugins[i]||[],o.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(i&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(r=0;r<i.length;r++)e.options[i[r][0]]&&i[r][1].apply(e.element,n)}},hasScroll:function(t,n){if("hidden"===e(t).css("overflow"))return!1;
33
+
34
+ var r=n&&"left"===n?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)}})}(r)},function(e,t,n){var r=n(1);n(629),function(e){var t=!1;e(document).mouseup(function(){t=!1}),e.widget("ui.mouse",{version:"1.10.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){return!0===e.data(n.target,t.widgetName+".preventClickEvent")?(e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(n){if(!t){this._mouseStarted&&this._mouseUp(n),this._mouseDownEvent=n;var r=this,i=1===n.which,o="string"==typeof this.options.cancel&&n.target.nodeName?e(n.target).closest(this.options.cancel).length:!1;return i&&!o&&this._mouseCapture(n)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(n)&&this._mouseDelayMet(n)&&(this._mouseStarted=this._mouseStart(n)!==!1,!this._mouseStarted)?(n.preventDefault(),!0):(!0===e.data(n.target,this.widgetName+".preventClickEvent")&&e.removeData(n.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),n.preventDefault(),t=!0,!0)):!0}},_mouseMove:function(t){return e.ui.ie&&(!document.documentMode||document.documentMode<9)&&!t.button?this._mouseUp(t):this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})}(r)},function(e,t,n){var r=n(1);!function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n,r=0;null!=(n=t[r]);r++)try{e(n).triggerHandler("remove")}catch(o){}i(t)},e.widget=function(t,n,r){var i,o,a,s,u={},c=t.split(".")[0];t=t.split(".")[1],i=c+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[c]=e[c]||{},o=e[c][t],a=e[c][t]=function(e,t){return this._createWidget?void(arguments.length&&this._createWidget(e,t)):new a(e,t)},e.extend(a,o,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),s=new n,s.options=e.widget.extend({},s.options),e.each(r,function(t,r){return e.isFunction(r)?void(u[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},i=function(e){return n.prototype[t].apply(this,e)};return function(){var t,n=this._super,o=this._superApply;return this._super=e,this._superApply=i,t=r.apply(this,arguments),this._super=n,this._superApply=o,t}}()):void(u[t]=r)}),a.prototype=e.widget.extend(s,{widgetEventPrefix:o?s.widgetEventPrefix||t:t},u,{constructor:a,namespace:c,widgetName:t,widgetFullName:i}),o?(e.each(o._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,a,n._proto)}),delete o._childConstructors):n._childConstructors.push(a),e.widget.bridge(t,a)},e.widget.extend=function(n){for(var i,o,a=r.call(arguments,1),s=0,u=a.length;u>s;s++)for(i in a[s])o=a[s][i],a[s].hasOwnProperty(i)&&o!==t&&(n[i]=e.isPlainObject(o)?e.isPlainObject(n[i])?e.widget.extend({},n[i],o):e.widget.extend({},o):o);return n},e.widget.bridge=function(n,i){var o=i.prototype.widgetFullName||n;e.fn[n]=function(a){var s="string"==typeof a,u=r.call(arguments,1),c=this;return a=!s&&u.length?e.widget.extend.apply(null,[a].concat(u)):a,this.each(s?function(){var r,i=e.data(this,o);return i?e.isFunction(i[a])&&"_"!==a.charAt(0)?(r=i[a].apply(i,u),r!==i&&r!==t?(c=r&&r.jquery?c.pushStack(r.get()):r,!1):void 0):e.error("no such method '"+a+"' for "+n+" widget instance"):e.error("cannot call methods on "+n+" prior to initialization; attempted to call method '"+a+"'")}:function(){var t=e.data(this,o);t?t.option(a||{})._init():e.data(this,o,new i(a,this))}),c}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i,o,a,s=n;if(0===arguments.length)return e.widget.extend({},this.options);if("string"==typeof n)if(s={},i=n.split("."),n=i.shift(),i.length){for(o=s[n]=e.widget.extend({},this.options[n]),a=0;a<i.length-1;a++)o[i[a]]=o[i[a]]||{},o=o[i[a]];if(n=i.pop(),1===arguments.length)return o[n]===t?null:o[n];o[n]=r}else{if(1===arguments.length)return this.options[n]===t?null:this.options[n];s[n]=r}return this._setOptions(s),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,"disabled"===e&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(t,n,r){var i,o=this;"boolean"!=typeof t&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,a){function s(){return t||o.options.disabled!==!0&&!e(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(s.guid=a.guid=a.guid||s.guid||e.guid++);var u=r.match(/^(\w+)\s*(.*)$/),c=u[1]+o.eventNamespace,l=u[2];l?i.delegate(l,c,s):n.bind(c,s)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function n(){return("string"==typeof e?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,o,a=this.options[t];if(r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],o=n.originalEvent)for(i in o)i in n||(n[i]=o[i]);return this.element.trigger(n,r),!(e.isFunction(a)&&a.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,o){"string"==typeof i&&(i={effect:i});var a,s=i?i===!0||"number"==typeof i?n:i.effect||n:t;i=i||{},"number"==typeof i&&(i={duration:i}),a=!e.isEmptyObject(i),i.complete=o,i.delay&&r.delay(i.delay),a&&e.effects&&e.effects.effect[s]?r[t](i):s!==t&&r[s]?r[s](i.duration,i.easing,o):r.queue(function(n){e(this)[t](),o&&o.call(r[0]),n()})}})}(r)}])});
js/algoliasearch/algoliaBundle.min.js ADDED
@@ -0,0 +1,22 @@
 
1
+ /*! algoliaBundle 4.2.0 | © Algolia SAS | algolia.com */!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.algoliaBundle=t():e.algoliaBundle=t()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){e.exports={$:n(1),instantsearch:n(2),algoliasearch:n(7),algoliasearchHelper:n(74),Hogan:n(537),autocomplete:n(608)}},function(e,t){var n,r;!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(o,i){function a(e){var t="length"in e&&e.length,n=ue.type(e);return"function"===n||ue.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function s(e,t,n){if(ue.isFunction(t))return ue.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return ue.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ve.test(t))return ue.filter(t,e,n);t=ue.filter(t,e)}return ue.grep(e,function(e){return ue.inArray(e,t)>=0!==n})}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e){var t=Ce[e]={};return ue.each(e.match(we)||[],function(e,n){t[n]=!0}),t}function l(){ye.addEventListener?(ye.removeEventListener("DOMContentLoaded",p,!1),o.removeEventListener("load",p,!1)):(ye.detachEvent("onreadystatechange",p),o.detachEvent("onload",p))}function p(){(ye.addEventListener||"load"===event.type||"complete"===ye.readyState)&&(l(),ue.ready())}function f(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(Re,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:Pe.test(n)?ue.parseJSON(n):n}catch(o){}ue.data(e,t,n)}else n=void 0}return n}function d(e){var t;for(t in e)if(("data"!==t||!ue.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function h(e,t,n,r){if(ue.acceptData(e)){var o,i,a=ue.expando,s=e.nodeType,u=s?ue.cache:e,c=s?e[a]:e[a]&&a;if(c&&u[c]&&(r||u[c].data)||void 0!==n||"string"!=typeof t)return c||(c=s?e[a]=J.pop()||ue.guid++:a),u[c]||(u[c]=s?{}:{toJSON:ue.noop}),("object"==typeof t||"function"==typeof t)&&(r?u[c]=ue.extend(u[c],t):u[c].data=ue.extend(u[c].data,t)),i=u[c],r||(i.data||(i.data={}),i=i.data),void 0!==n&&(i[ue.camelCase(t)]=n),"string"==typeof t?(o=i[t],null==o&&(o=i[ue.camelCase(t)])):o=i,o}}function m(e,t,n){if(ue.acceptData(e)){var r,o,i=e.nodeType,a=i?ue.cache:e,s=i?e[ue.expando]:ue.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){ue.isArray(t)?t=t.concat(ue.map(t,ue.camelCase)):t in r?t=[t]:(t=ue.camelCase(t),t=t in r?[t]:t.split(" ")),o=t.length;for(;o--;)delete r[t[o]];if(n?!d(r):!ue.isEmptyObject(r))return}(n||(delete a[s].data,d(a[s])))&&(i?ue.cleanData([e],!0):ae.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}function v(){return!0}function g(){return!1}function y(){try{return ye.activeElement}catch(e){}}function b(e){var t=Ve.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function x(e,t){var n,r,o=0,i=typeof e.getElementsByTagName!==Te?e.getElementsByTagName(t||"*"):typeof e.querySelectorAll!==Te?e.querySelectorAll(t||"*"):void 0;if(!i)for(i=[],n=e.childNodes||e;null!=(r=n[o]);o++)!t||ue.nodeName(r,t)?i.push(r):ue.merge(i,x(r,t));return void 0===t||t&&ue.nodeName(e,t)?ue.merge([e],i):i}function _(e){Ae.test(e.type)&&(e.defaultChecked=e.checked)}function E(e,t){return ue.nodeName(e,"table")&&ue.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function w(e){return e.type=(null!==ue.find.attr(e,"type"))+"/"+e.type,e}function C(e){var t=Xe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){for(var n,r=0;null!=(n=e[r]);r++)ue._data(n,"globalEval",!t||ue._data(t[r],"globalEval"))}function O(e,t){if(1===t.nodeType&&ue.hasData(e)){var n,r,o,i=ue._data(e),a=ue._data(t,i),s=i.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,o=s[n].length;o>r;r++)ue.event.add(t,n,s[n][r])}a.data&&(a.data=ue.extend({},a.data))}}function T(e,t){var n,r,o;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!ae.noCloneEvent&&t[ue.expando]){o=ue._data(t);for(r in o.events)ue.removeEvent(t,r,o.handle);t.removeAttribute(ue.expando)}"script"===n&&t.text!==e.text?(w(t).text=e.text,C(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),ae.html5Clone&&e.innerHTML&&!ue.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ae.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function P(e,t){var n,r=ue(t.createElement(e)).appendTo(t.body),i=o.getDefaultComputedStyle&&(n=o.getDefaultComputedStyle(r[0]))?n.display:ue.css(r[0],"display");return r.detach(),i}function R(e){var t=ye,n=rt[e];return n||(n=P(e,t),"none"!==n&&n||(nt=(nt||ue("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(nt[0].contentWindow||nt[0].contentDocument).document,t.write(),t.close(),n=P(e,t),nt.detach()),rt[e]=n),n}function D(e,t){return{get:function(){var n=e();if(null!=n)return n?void delete this.get:(this.get=t).apply(this,arguments)}}}function S(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,o=vt.length;o--;)if(t=vt[o]+n,t in e)return t;return r}function k(e,t){for(var n,r,o,i=[],a=0,s=e.length;s>a;a++)r=e[a],r.style&&(i[a]=ue._data(r,"olddisplay"),n=r.style.display,t?(i[a]||"none"!==n||(r.style.display=""),""===r.style.display&&ke(r)&&(i[a]=ue._data(r,"olddisplay",R(r.nodeName)))):(o=ke(r),(n&&"none"!==n||!o)&&ue._data(r,"olddisplay",o?n:ue.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?i[a]||"":"none"));return e}function j(e,t,n){var r=ft.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function A(e,t,n,r,o){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>i;i+=2)"margin"===n&&(a+=ue.css(e,n+Se[i],!0,o)),r?("content"===n&&(a-=ue.css(e,"padding"+Se[i],!0,o)),"margin"!==n&&(a-=ue.css(e,"border"+Se[i]+"Width",!0,o))):(a+=ue.css(e,"padding"+Se[i],!0,o),"padding"!==n&&(a+=ue.css(e,"border"+Se[i]+"Width",!0,o)));return a}function I(e,t,n){var r=!0,o="width"===t?e.offsetWidth:e.offsetHeight,i=ot(e),a=ae.boxSizing&&"border-box"===ue.css(e,"boxSizing",!1,i);if(0>=o||null==o){if(o=it(e,t,i),(0>o||null==o)&&(o=e.style[t]),st.test(o))return o;r=a&&(ae.boxSizingReliable()||o===e.style[t]),o=parseFloat(o)||0}return o+A(e,t,n||(a?"border":"content"),r,i)+"px"}function M(e,t,n,r,o){return new M.prototype.init(e,t,n,r,o)}function L(){return setTimeout(function(){gt=void 0}),gt=ue.now()}function F(e,t){var n,r={height:e},o=0;for(t=t?1:0;4>o;o+=2-t)n=Se[o],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function U(e,t,n){for(var r,o=(wt[t]||[]).concat(wt["*"]),i=0,a=o.length;a>i;i++)if(r=o[i].call(n,t,e))return r}function V(e,t,n){var r,o,i,a,s,u,c,l,p=this,f={},d=e.style,h=e.nodeType&&ke(e),m=ue._data(e,"fxshow");n.queue||(s=ue._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,p.always(function(){p.always(function(){s.unqueued--,ue.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],c=ue.css(e,"display"),l="none"===c?ue._data(e,"olddisplay")||R(e.nodeName):c,"inline"===l&&"none"===ue.css(e,"float")&&(ae.inlineBlockNeedsLayout&&"inline"!==R(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",ae.shrinkWrapBlocks()||p.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],bt.exec(o)){if(delete t[r],i=i||"toggle"===o,o===(h?"hide":"show")){if("show"!==o||!m||void 0===m[r])continue;h=!0}f[r]=m&&m[r]||ue.style(e,r)}else c=void 0;if(ue.isEmptyObject(f))"inline"===("none"===c?R(e.nodeName):c)&&(d.display=c);else{m?"hidden"in m&&(h=m.hidden):m=ue._data(e,"fxshow",{}),i&&(m.hidden=!h),h?ue(e).show():p.done(function(){ue(e).hide()}),p.done(function(){var t;ue._removeData(e,"fxshow");for(t in f)ue.style(e,t,f[t])});for(r in f)a=U(h?m[r]:0,r,p),r in m||(m[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function H(e,t){var n,r,o,i,a;for(n in e)if(r=ue.camelCase(n),o=t[r],i=e[n],ue.isArray(i)&&(o=i[1],i=e[n]=i[0]),n!==r&&(e[r]=i,delete e[n]),a=ue.cssHooks[r],a&&"expand"in a){i=a.expand(i),delete e[r];for(n in i)n in e||(e[n]=i[n],t[n]=o)}else t[r]=o}function q(e,t,n){var r,o,i=0,a=Et.length,s=ue.Deferred().always(function(){delete u.elem}),u=function(){if(o)return!1;for(var t=gt||L(),n=Math.max(0,c.startTime+c.duration-t),r=n/c.duration||0,i=1-r,a=0,u=c.tweens.length;u>a;a++)c.tweens[a].run(i);return s.notifyWith(e,[c,i,n]),1>i&&u?n:(s.resolveWith(e,[c]),!1)},c=s.promise({elem:e,props:ue.extend({},t),opts:ue.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:gt||L(),duration:n.duration,tweens:[],createTween:function(t,n){var r=ue.Tween(e,c.opts,t,n,c.opts.specialEasing[t]||c.opts.easing);return c.tweens.push(r),r},stop:function(t){var n=0,r=t?c.tweens.length:0;if(o)return this;for(o=!0;r>n;n++)c.tweens[n].run(1);return t?s.resolveWith(e,[c,t]):s.rejectWith(e,[c,t]),this}}),l=c.props;for(H(l,c.opts.specialEasing);a>i;i++)if(r=Et[i].call(c,e,l,c.opts))return r;return ue.map(l,U,c),ue.isFunction(c.opts.start)&&c.opts.start.call(e,c),ue.fx.timer(ue.extend(u,{elem:e,anim:c,queue:c.opts.queue})),c.progress(c.opts.progress).done(c.opts.done,c.opts.complete).fail(c.opts.fail).always(c.opts.always)}function B(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(we)||[];if(ue.isFunction(n))for(;r=i[o++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function W(e,t,n,r){function o(s){var u;return i[s]=!0,ue.each(e[s]||[],function(e,s){var c=s(t,n,r);return"string"!=typeof c||a||i[c]?a?!(u=c):void 0:(t.dataTypes.unshift(c),o(c),!1)}),u}var i={},a=e===zt;return o(t.dataTypes[0])||!i["*"]&&o("*")}function K(e,t){var n,r,o=ue.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((o[r]?e:n||(n={}))[r]=t[r]);return n&&ue.extend(!0,e,n),e}function $(e,t,n){for(var r,o,i,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===o&&(o=e.mimeType||t.getResponseHeader("Content-Type"));if(o)for(a in s)if(s[a]&&s[a].test(o)){u.unshift(a);break}if(u[0]in n)i=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){i=a;break}r||(r=a)}i=i||r}return i?(i!==u[0]&&u.unshift(i),n[i]):void 0}function z(e,t,n,r){var o,i,a,s,u,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(i=l.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=i,i=l.shift())if("*"===i)i=u;else if("*"!==u&&u!==i){if(a=c[u+" "+i]||c["* "+i],!a)for(o in c)if(s=o.split(" "),s[1]===i&&(a=c[u+" "+s[0]]||c["* "+s[0]])){a===!0?a=c[o]:c[o]!==!0&&(i=s[0],l.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+u+" to "+i}}}return{state:"success",data:t}}function Q(e,t,n,r){var o;if(ue.isArray(t))ue.each(t,function(t,o){n||Xt.test(e)?r(e,o):Q(e+"["+("object"==typeof o?t:"")+"]",o,n,r)});else if(n||"object"!==ue.type(t))r(e,t);else for(o in t)Q(e+"["+o+"]",t[o],n,r)}function Y(){try{return new o.XMLHttpRequest}catch(e){}}function G(){try{return new o.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}function X(e){return ue.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var J=[],Z=J.slice,ee=J.concat,te=J.push,ne=J.indexOf,re={},oe=re.toString,ie=re.hasOwnProperty,ae={},se="1.11.3",ue=function(e,t){return new ue.fn.init(e,t)},ce=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,le=/^-ms-/,pe=/-([\da-z])/gi,fe=function(e,t){return t.toUpperCase()};ue.fn=ue.prototype={jquery:se,constructor:ue,selector:"",length:0,toArray:function(){return Z.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:Z.call(this)},pushStack:function(e){var t=ue.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return ue.each(this,e,t)},map:function(e){return this.pushStack(ue.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(Z.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:te,sort:J.sort,splice:J.splice},ue.extend=ue.fn.extend=function(){var e,t,n,r,o,i,a=arguments[0]||{},s=1,u=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[s]||{},s++),"object"==typeof a||ue.isFunction(a)||(a={}),s===u&&(a=this,s--);u>s;s++)if(null!=(o=arguments[s]))for(r in o)e=a[r],n=o[r],a!==n&&(c&&n&&(ue.isPlainObject(n)||(t=ue.isArray(n)))?(t?(t=!1,i=e&&ue.isArray(e)?e:[]):i=e&&ue.isPlainObject(e)?e:{},a[r]=ue.extend(c,i,n)):void 0!==n&&(a[r]=n));return a},ue.extend({expando:"jQuery"+(se+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===ue.type(e)},isArray:Array.isArray||function(e){return"array"===ue.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!ue.isArray(e)&&e-parseFloat(e)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==ue.type(e)||e.nodeType||ue.isWindow(e))return!1;try{if(e.constructor&&!ie.call(e,"constructor")&&!ie.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(ae.ownLast)for(t in e)return ie.call(e,t);for(t in e);return void 0===t||ie.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?re[oe.call(e)]||"object":typeof e},globalEval:function(e){e&&ue.trim(e)&&(o.execScript||function(e){o.eval.call(o,e)})(e)},camelCase:function(e){return e.replace(le,"ms-").replace(pe,fe)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,o=0,i=e.length,s=a(e);if(n){if(s)for(;i>o&&(r=t.apply(e[o],n),r!==!1);o++);else for(o in e)if(r=t.apply(e[o],n),r===!1)break}else if(s)for(;i>o&&(r=t.call(e[o],o,e[o]),r!==!1);o++);else for(o in e)if(r=t.call(e[o],o,e[o]),r===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ce,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(a(Object(e))?ue.merge(n,"string"==typeof e?[e]:e):te.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(ne)return ne.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,o=e.length;n>r;)e[o++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[o++]=t[r++];return e.length=o,e},grep:function(e,t,n){for(var r,o=[],i=0,a=e.length,s=!n;a>i;i++)r=!t(e[i],i),r!==s&&o.push(e[i]);return o},map:function(e,t,n){var r,o=0,i=e.length,s=a(e),u=[];if(s)for(;i>o;o++)r=t(e[o],o,n),null!=r&&u.push(r);else for(o in e)r=t(e[o],o,n),null!=r&&u.push(r);return ee.apply([],u)},guid:1,proxy:function(e,t){var n,r,o;return"string"==typeof t&&(o=e[t],t=e,e=o),ue.isFunction(e)?(n=Z.call(arguments,2),r=function(){return e.apply(t||this,n.concat(Z.call(arguments)))},r.guid=e.guid=e.guid||ue.guid++,r):void 0},now:function(){return+new Date},support:ae}),ue.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){re["[object "+t+"]"]=t.toLowerCase()});var de=function(e){function t(e,t,n,r){var o,i,a,s,u,c,p,d,h,m;if((t?t.ownerDocument||t:V)!==k&&S(t),t=t||k,n=n||[],s=t.nodeType,"string"!=typeof e||!e||1!==s&&9!==s&&11!==s)return n;if(!r&&A){if(11!==s&&(o=ye.exec(e)))if(a=o[1]){if(9===s){if(i=t.getElementById(a),!i||!i.parentNode)return n;if(i.id===a)return n.push(i),n}else if(t.ownerDocument&&(i=t.ownerDocument.getElementById(a))&&F(t,i)&&i.id===a)return n.push(i),n}else{if(o[2])return J.apply(n,t.getElementsByTagName(e)),n;if((a=o[3])&&_.getElementsByClassName)return J.apply(n,t.getElementsByClassName(a)),n}if(_.qsa&&(!I||!I.test(e))){if(d=p=U,h=t,m=1!==s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=N(e),(p=t.getAttribute("id"))?d=p.replace(xe,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=c.length;u--;)c[u]=d+f(c[u]);h=be.test(e)&&l(t.parentNode)||t,m=c.join(",")}if(m)try{return J.apply(n,h.querySelectorAll(m)),n}catch(v){}finally{p||t.removeAttribute("id")}}}return T(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>E.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[U]=!0,e}function o(e){var t=k.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function i(e,t){for(var n=e.split("|"),r=e.length;r--;)E.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||z)-(~e.sourceIndex||z);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return r(function(t){return t=+t,r(function(n,r){for(var o,i=e([],n.length,t),a=i.length;a--;)n[o=i[a]]&&(n[o]=!(r[o]=n[o]))})})}function l(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function p(){}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,o=n&&"parentNode"===r,i=q++;return t.first?function(t,n,i){for(;t=t[r];)if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,a){var s,u,c=[H,i];if(a){for(;t=t[r];)if((1===t.nodeType||o)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||o){if(u=t[U]||(t[U]={}),(s=u[r])&&s[0]===H&&s[1]===i)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var o=e.length;o--;)if(!e[o](t,n,r))return!1;return!0}:e[0]}function m(e,n,r){for(var o=0,i=n.length;i>o;o++)t(e,n[o],r);return r}function v(e,t,n,r,o){for(var i,a=[],s=0,u=e.length,c=null!=t;u>s;s++)(i=e[s])&&(!n||n(i,r,o))&&(a.push(i),c&&t.push(s));return a}function g(e,t,n,o,i,a){return o&&!o[U]&&(o=g(o)),i&&!i[U]&&(i=g(i,a)),r(function(r,a,s,u){var c,l,p,f=[],d=[],h=a.length,g=r||m(t||"*",s.nodeType?[s]:s,[]),y=!e||!r&&t?g:v(g,f,e,s,u),b=n?i||(r?e:h||o)?[]:a:y;if(n&&n(y,b,s,u),o)for(c=v(b,d),o(c,[],s,u),l=c.length;l--;)(p=c[l])&&(b[d[l]]=!(y[d[l]]=p));if(r){if(i||e){if(i){for(c=[],l=b.length;l--;)(p=b[l])&&c.push(y[l]=p);i(null,b=[],c,u)}for(l=b.length;l--;)(p=b[l])&&(c=i?ee(r,p):f[l])>-1&&(r[c]=!(a[c]=p))}}else b=v(b===a?b.splice(h,b.length):b),i?i(null,a,b,u):J.apply(a,b)})}function y(e){for(var t,n,r,o=e.length,i=E.relative[e[0].type],a=i||E.relative[" "],s=i?1:0,u=d(function(e){return e===t},a,!0),c=d(function(e){return ee(t,e)>-1},a,!0),l=[function(e,n,r){var o=!i&&(r||n!==P)||((t=n).nodeType?u(e,n,r):c(e,n,r));return t=null,o}];o>s;s++)if(n=E.relative[e[s].type])l=[d(h(l),n)];else{if(n=E.filter[e[s].type].apply(null,e[s].matches),n[U]){for(r=++s;o>r&&!E.relative[e[r].type];r++);return g(s>1&&h(l),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(ue,"$1"),n,r>s&&y(e.slice(s,r)),o>r&&y(e=e.slice(r)),o>r&&f(e))}l.push(n)}return h(l)}function b(e,n){var o=n.length>0,i=e.length>0,a=function(r,a,s,u,c){var l,p,f,d=0,h="0",m=r&&[],g=[],y=P,b=r||i&&E.find.TAG("*",c),x=H+=null==y?1:Math.random()||.1,_=b.length;for(c&&(P=a!==k&&a);h!==_&&null!=(l=b[h]);h++){if(i&&l){for(p=0;f=e[p++];)if(f(l,a,s)){u.push(l);break}c&&(H=x)}o&&((l=!f&&l)&&d--,r&&m.push(l))}if(d+=h,o&&h!==d){for(p=0;f=n[p++];)f(m,g,a,s);if(r){if(d>0)for(;h--;)m[h]||g[h]||(g[h]=G.call(u));g=v(g)}J.apply(u,g),c&&!r&&g.length>0&&d+n.length>1&&t.uniqueSort(u)}return c&&(H=x,P=y),m};return o?r(a):a}var x,_,E,w,C,N,O,T,P,R,D,S,k,j,A,I,M,L,F,U="sizzle"+1*new Date,V=e.document,H=0,q=0,B=n(),W=n(),K=n(),$=function(e,t){return e===t&&(D=!0),0},z=1<<31,Q={}.hasOwnProperty,Y=[],G=Y.pop,X=Y.push,J=Y.push,Z=Y.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",oe=re.replace("w","w#"),ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+oe+"))|)"+ne+"*\\]",ae=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",se=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ce=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),pe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(ae),de=new RegExp("^"+oe+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},me=/^(?:input|select|textarea|button)$/i,ve=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,be=/[+~]/,xe=/'|\\/g,_e=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},we=function(){S()};try{J.apply(Y=Z.call(V.childNodes),V.childNodes),Y[V.childNodes.length].nodeType}catch(Ce){J={apply:Y.length?function(e,t){X.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}_=t.support={},C=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},S=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:V;return r!==k&&9===r.nodeType&&r.documentElement?(k=r,j=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",we,!1):n.attachEvent&&n.attachEvent("onunload",we)),A=!C(r),_.attributes=o(function(e){return e.className="i",!e.getAttribute("className")}),_.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),_.getElementsByClassName=ge.test(r.getElementsByClassName),_.getById=o(function(e){return j.appendChild(e).id=U,!r.getElementsByName||!r.getElementsByName(U).length}),_.getById?(E.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&A){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},E.filter.ID=function(e){var t=e.replace(_e,Ee);return function(e){return e.getAttribute("id")===t}}):(delete E.find.ID,E.filter.ID=function(e){var t=e.replace(_e,Ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),E.find.TAG=_.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):_.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],o=0,i=t.getElementsByTagName(e);if("*"===e){for(;n=i[o++];)1===n.nodeType&&r.push(n);return r}return i},E.find.CLASS=_.getElementsByClassName&&function(e,t){return A?t.getElementsByClassName(e):void 0},M=[],I=[],(_.qsa=ge.test(r.querySelectorAll))&&(o(function(e){j.appendChild(e).innerHTML="<a id='"+U+"'></a><select id='"+U+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&I.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||I.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+U+"-]").length||I.push("~="),e.querySelectorAll(":checked").length||I.push(":checked"),e.querySelectorAll("a#"+U+"+*").length||I.push(".#.+[+~]")}),o(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&I.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||I.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),I.push(",.*:")})),(_.matchesSelector=ge.test(L=j.matches||j.webkitMatchesSelector||j.mozMatchesSelector||j.oMatchesSelector||j.msMatchesSelector))&&o(function(e){_.disconnectedMatch=L.call(e,"div"),L.call(e,"[s!='']:x"),M.push("!=",ae)}),I=I.length&&new RegExp(I.join("|")),M=M.length&&new RegExp(M.join("|")),t=ge.test(j.compareDocumentPosition),F=t||ge.test(j.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},$=t?function(e,t){if(e===t)return D=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!_.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===V&&F(V,e)?-1:t===r||t.ownerDocument===V&&F(V,t)?1:R?ee(R,e)-ee(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return D=!0,0;var n,o=0,i=e.parentNode,s=t.parentNode,u=[e],c=[t];if(!i||!s)return e===r?-1:t===r?1:i?-1:s?1:R?ee(R,e)-ee(R,t):0;if(i===s)return a(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;u[o]===c[o];)o++;return o?a(u[o],c[o]):u[o]===V?-1:c[o]===V?1:0},r):k},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==k&&S(e),n=n.replace(pe,"='$1']"),!(!_.matchesSelector||!A||M&&M.test(n)||I&&I.test(n)))try{var r=L.call(e,n);if(r||_.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(o){}return t(n,k,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==k&&S(e),F(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==k&&S(e);var n=E.attrHandle[t.toLowerCase()],r=n&&Q.call(E.attrHandle,t.toLowerCase())?n(e,t,!A):void 0;return void 0!==r?r:_.attributes||!A?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,o=0;if(D=!_.detectDuplicates,R=!_.sortStable&&e.slice(0),e.sort($),D){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return R=null,e},w=t.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=w(e)}else if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=w(t);return n},E=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(_e,Ee),e[3]=(e[3]||e[4]||e[5]||"").replace(_e,Ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(_e,Ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=B[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&B(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(o){var i=t.attr(o,e);return null==i?"!="===n:n?(i+="","="===n?i===r:"!="===n?i!==r:"^="===n?r&&0===i.indexOf(r):"*="===n?r&&i.indexOf(r)>-1:"$="===n?r&&i.slice(-r.length)===r:"~="===n?(" "+i.replace(se," ")+" ").indexOf(r)>-1:"|="===n?i===r||i.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,o){var i="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===o?function(e){return!!e.parentNode}:function(t,n,u){var c,l,p,f,d,h,m=i!==a?"nextSibling":"previousSibling",v=t.parentNode,g=s&&t.nodeName.toLowerCase(),y=!u&&!s;if(v){if(i){for(;m;){for(p=t;p=p[m];)if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?v.firstChild:v.lastChild],a&&y){for(l=v[U]||(v[U]={}),c=l[e]||[],d=c[0]===H&&c[1],f=c[0]===H&&c[2],p=d&&v.childNodes[d];p=++d&&p&&p[m]||(f=d=0)||h.pop();)if(1===p.nodeType&&++f&&p===t){l[e]=[H,d,f];break}}else if(y&&(c=(t[U]||(t[U]={}))[e])&&c[0]===H)f=c[1];else for(;(p=++d&&p&&p[m]||(f=d=0)||h.pop())&&((s?p.nodeName.toLowerCase()!==g:1!==p.nodeType)||!++f||(y&&((p[U]||(p[U]={}))[e]=[H,f]),p!==t)););return f-=o,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(e,n){var o,i=E.pseudos[e]||E.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return i[U]?i(n):i.length>1?(o=[e,e,"",n],E.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,o=i(e,n),a=o.length;a--;)r=ee(e,o[a]),e[r]=!(t[r]=o[a])}):function(e){return i(e,0,o)}):i}},pseudos:{not:r(function(e){var t=[],n=[],o=O(e.replace(ue,"$1"));return o[U]?r(function(e,t,n,r){for(var i,a=o(e,null,r,[]),s=e.length;s--;)(i=a[s])&&(e[s]=!(t[s]=i))}):function(e,r,i){return t[0]=e,o(t,null,i,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(_e,Ee),function(t){return(t.textContent||t.innerText||w(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(_e,Ee).toLowerCase(),function(t){var n;do if(n=A?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===j},focus:function(e){return e===k.activeElement&&(!k.hasFocus||k.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"opti