try_api 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +29 -0
  4. data/app/assets/javascripts/try_api/application.js.coffee +180 -0
  5. data/app/assets/javascripts/try_api/bower_components/angular/LICENSE.md +21 -0
  6. data/app/assets/javascripts/try_api/bower_components/angular/README.md +64 -0
  7. data/app/assets/javascripts/try_api/bower_components/angular/angular-csp.css +21 -0
  8. data/app/assets/javascripts/try_api/bower_components/angular/angular.js +31768 -0
  9. data/app/assets/javascripts/try_api/bower_components/angular/angular.min.js +318 -0
  10. data/app/assets/javascripts/try_api/bower_components/angular/angular.min.js.gzip +0 -0
  11. data/app/assets/javascripts/try_api/bower_components/angular/angular.min.js.map +8 -0
  12. data/app/assets/javascripts/try_api/bower_components/angular/bower.json +9 -0
  13. data/app/assets/javascripts/try_api/bower_components/angular/index.js +2 -0
  14. data/app/assets/javascripts/try_api/bower_components/angular/package.json +25 -0
  15. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/README.md +120 -0
  16. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/bower.json +19 -0
  17. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/index.js +2 -0
  18. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/package.json +23 -0
  19. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-csp.css +115 -0
  20. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-tpls.js +7476 -0
  21. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js +10 -0
  22. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap.js +7109 -0
  23. data/app/assets/javascripts/try_api/bower_components/angular-bootstrap/ui-bootstrap.min.js +10 -0
  24. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/LICENSE +20 -0
  25. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/README.md +186 -0
  26. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/angular-highlightjs.js +520 -0
  27. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/angular-highlightjs.min.js +6 -0
  28. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/bower.json +22 -0
  29. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/build/angular-highlightjs.js +520 -0
  30. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/build/angular-highlightjs.min.js +6 -0
  31. data/app/assets/javascripts/try_api/bower_components/angular-highlightjs/src/angular-highlightjs.js +501 -0
  32. data/app/assets/javascripts/try_api/bower_components/angular-ladda/CHANGELOG.md +71 -0
  33. data/app/assets/javascripts/try_api/bower_components/angular-ladda/LICENSE +22 -0
  34. data/app/assets/javascripts/try_api/bower_components/angular-ladda/README.md +203 -0
  35. data/app/assets/javascripts/try_api/bower_components/angular-ladda/bower.json +36 -0
  36. data/app/assets/javascripts/try_api/bower_components/angular-ladda/dist/angular-ladda.js +99 -0
  37. data/app/assets/javascripts/try_api/bower_components/angular-ladda/dist/angular-ladda.min.js +2 -0
  38. data/app/assets/javascripts/try_api/bower_components/angular-ladda/package.json +51 -0
  39. data/app/assets/javascripts/try_api/bower_components/angular-ladda/src/angular-ladda.js +98 -0
  40. data/app/assets/javascripts/try_api/bower_components/bootstrap/CHANGELOG.md +5 -0
  41. data/app/assets/javascripts/try_api/bower_components/bootstrap/Gemfile +6 -0
  42. data/app/assets/javascripts/try_api/bower_components/bootstrap/Gemfile.lock +43 -0
  43. data/app/assets/javascripts/try_api/bower_components/bootstrap/Gruntfile.js +511 -0
  44. data/app/assets/javascripts/try_api/bower_components/bootstrap/ISSUE_TEMPLATE.md +22 -0
  45. data/app/assets/javascripts/try_api/bower_components/bootstrap/LICENSE +21 -0
  46. data/app/assets/javascripts/try_api/bower_components/bootstrap/README.md +142 -0
  47. data/app/assets/javascripts/try_api/bower_components/bootstrap/bower.json +34 -0
  48. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap-theme.css +587 -0
  49. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
  50. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap-theme.min.css +6 -0
  51. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap-theme.min.css.map +1 -0
  52. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap.css +6757 -0
  53. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap.css.map +1 -0
  54. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap.min.css +6 -0
  55. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  56. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  57. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  58. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  59. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  60. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  61. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/js/bootstrap.js +2377 -0
  62. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/js/bootstrap.min.js +7 -0
  63. data/app/assets/javascripts/try_api/bower_components/bootstrap/dist/js/npm.js +13 -0
  64. data/app/assets/javascripts/try_api/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
  65. data/app/assets/javascripts/try_api/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg +288 -0
  66. data/app/assets/javascripts/try_api/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
  67. data/app/assets/javascripts/try_api/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
  68. data/app/assets/javascripts/try_api/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 +0 -0
  69. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/bs-commonjs-generator.js +30 -0
  70. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js +42 -0
  71. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/bs-lessdoc-parser.js +237 -0
  72. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/bs-raw-files-generator.js +44 -0
  73. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/change-version.js +109 -0
  74. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/configBridge.json +46 -0
  75. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/npm-shrinkwrap.json +2679 -0
  76. data/app/assets/javascripts/try_api/bower_components/bootstrap/grunt/sauce_browsers.yml +82 -0
  77. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/affix.js +162 -0
  78. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/alert.js +94 -0
  79. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/button.js +125 -0
  80. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/carousel.js +237 -0
  81. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/collapse.js +212 -0
  82. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/dropdown.js +165 -0
  83. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/modal.js +339 -0
  84. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/popover.js +108 -0
  85. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/scrollspy.js +172 -0
  86. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/tab.js +155 -0
  87. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/tooltip.js +520 -0
  88. data/app/assets/javascripts/try_api/bower_components/bootstrap/js/transition.js +59 -0
  89. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/alerts.less +73 -0
  90. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/badges.less +66 -0
  91. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/bootstrap.less +56 -0
  92. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/breadcrumbs.less +26 -0
  93. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/button-groups.less +244 -0
  94. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/buttons.less +166 -0
  95. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/carousel.less +270 -0
  96. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/close.less +34 -0
  97. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/code.less +69 -0
  98. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/component-animations.less +33 -0
  99. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/dropdowns.less +216 -0
  100. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/forms.less +613 -0
  101. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/glyphicons.less +305 -0
  102. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/grid.less +84 -0
  103. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/input-groups.less +171 -0
  104. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/jumbotron.less +54 -0
  105. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/labels.less +64 -0
  106. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/list-group.less +130 -0
  107. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/media.less +66 -0
  108. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/alerts.less +14 -0
  109. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/background-variant.less +9 -0
  110. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/border-radius.less +18 -0
  111. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/buttons.less +65 -0
  112. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/center-block.less +7 -0
  113. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/clearfix.less +22 -0
  114. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/forms.less +85 -0
  115. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/gradients.less +59 -0
  116. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/grid-framework.less +91 -0
  117. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/grid.less +122 -0
  118. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/hide-text.less +21 -0
  119. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/image.less +33 -0
  120. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/labels.less +12 -0
  121. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/list-group.less +30 -0
  122. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/nav-divider.less +10 -0
  123. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/nav-vertical-align.less +9 -0
  124. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/opacity.less +8 -0
  125. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/pagination.less +24 -0
  126. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/panels.less +24 -0
  127. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/progress-bar.less +10 -0
  128. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/reset-filter.less +8 -0
  129. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/reset-text.less +18 -0
  130. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/resize.less +6 -0
  131. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/responsive-visibility.less +15 -0
  132. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/size.less +10 -0
  133. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/tab-focus.less +9 -0
  134. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/table-row.less +28 -0
  135. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/text-emphasis.less +9 -0
  136. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/text-overflow.less +8 -0
  137. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins/vendor-prefixes.less +227 -0
  138. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/mixins.less +40 -0
  139. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/modals.less +150 -0
  140. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/navbar.less +660 -0
  141. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/navs.less +242 -0
  142. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/normalize.less +424 -0
  143. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/pager.less +54 -0
  144. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/pagination.less +89 -0
  145. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/panels.less +271 -0
  146. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/popovers.less +131 -0
  147. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/print.less +101 -0
  148. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/progress-bars.less +87 -0
  149. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/responsive-embed.less +35 -0
  150. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/responsive-utilities.less +194 -0
  151. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/scaffolding.less +161 -0
  152. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/tables.less +234 -0
  153. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/theme.less +291 -0
  154. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/thumbnails.less +36 -0
  155. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/tooltip.less +101 -0
  156. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/type.less +302 -0
  157. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/utilities.less +55 -0
  158. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/variables.less +869 -0
  159. data/app/assets/javascripts/try_api/bower_components/bootstrap/less/wells.less +29 -0
  160. data/app/assets/javascripts/try_api/bower_components/bootstrap/nuget/MyGet.ps1 +8 -0
  161. data/app/assets/javascripts/try_api/bower_components/bootstrap/nuget/bootstrap.less.nuspec +28 -0
  162. data/app/assets/javascripts/try_api/bower_components/bootstrap/nuget/bootstrap.nuspec +28 -0
  163. data/app/assets/javascripts/try_api/bower_components/bootstrap/package.js +32 -0
  164. data/app/assets/javascripts/try_api/bower_components/bootstrap/package.json +89 -0
  165. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/README.md +25 -0
  166. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/bower.json +27 -0
  167. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/css/font-awesome.css +2199 -0
  168. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/css/font-awesome.css.map +7 -0
  169. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/css/font-awesome.min.css +4 -0
  170. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/FontAwesome.otf +0 -0
  171. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.eot +0 -0
  172. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.svg +685 -0
  173. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  174. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.woff +0 -0
  175. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  176. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/animated.less +34 -0
  177. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/bordered-pulled.less +25 -0
  178. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/core.less +12 -0
  179. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/fixed-width.less +6 -0
  180. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/font-awesome.less +18 -0
  181. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/icons.less +733 -0
  182. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/larger.less +13 -0
  183. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/list.less +19 -0
  184. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/mixins.less +60 -0
  185. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/path.less +15 -0
  186. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/rotated-flipped.less +20 -0
  187. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/screen-reader.less +5 -0
  188. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/stacked.less +20 -0
  189. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/less/variables.less +744 -0
  190. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/package.json +14 -0
  191. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_animated.scss +34 -0
  192. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_bordered-pulled.scss +25 -0
  193. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_core.scss +12 -0
  194. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_fixed-width.scss +6 -0
  195. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_icons.scss +733 -0
  196. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_larger.scss +13 -0
  197. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_list.scss +19 -0
  198. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_mixins.scss +60 -0
  199. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_path.scss +15 -0
  200. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_rotated-flipped.scss +20 -0
  201. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_screen-reader.scss +5 -0
  202. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_stacked.scss +20 -0
  203. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/_variables.scss +744 -0
  204. data/app/assets/javascripts/try_api/bower_components/components-font-awesome/scss/font-awesome.scss +18 -0
  205. data/app/assets/javascripts/try_api/bower_components/highlightjs/LICENSE +24 -0
  206. data/app/assets/javascripts/try_api/bower_components/highlightjs/Makefile +21 -0
  207. data/app/assets/javascripts/try_api/bower_components/highlightjs/README.md +12 -0
  208. data/app/assets/javascripts/try_api/bower_components/highlightjs/bower.json +14 -0
  209. data/app/assets/javascripts/try_api/bower_components/highlightjs/component.json +12 -0
  210. data/app/assets/javascripts/try_api/bower_components/highlightjs/composer.json +26 -0
  211. data/app/assets/javascripts/try_api/bower_components/highlightjs/highlight.pack.js +15387 -0
  212. data/app/assets/javascripts/try_api/bower_components/highlightjs/highlight.pack.min.js +13 -0
  213. data/app/assets/javascripts/try_api/bower_components/highlightjs/package.json +8 -0
  214. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/agate.css +108 -0
  215. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/androidstudio.css +66 -0
  216. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/arduino-light.css +88 -0
  217. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/arta.css +73 -0
  218. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ascetic.css +45 -0
  219. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave-dark.css +83 -0
  220. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave-light.css +85 -0
  221. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave.dark.css +113 -0
  222. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-cave.light.css +113 -0
  223. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune-dark.css +69 -0
  224. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune-light.css +69 -0
  225. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune.dark.css +94 -0
  226. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-dune.light.css +94 -0
  227. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary-dark.css +84 -0
  228. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary-light.css +84 -0
  229. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary.dark.css +113 -0
  230. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-estuary.light.css +113 -0
  231. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest-dark.css +69 -0
  232. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest-light.css +69 -0
  233. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest.dark.css +94 -0
  234. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-forest.light.css +94 -0
  235. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath-dark.css +69 -0
  236. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath-light.css +69 -0
  237. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath.dark.css +94 -0
  238. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-heath.light.css +94 -0
  239. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside-dark.css +69 -0
  240. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside-light.css +69 -0
  241. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside.dark.css +94 -0
  242. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-lakeside.light.css +94 -0
  243. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau-dark.css +84 -0
  244. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau-light.css +84 -0
  245. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau.dark.css +113 -0
  246. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-plateau.light.css +113 -0
  247. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna-dark.css +84 -0
  248. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna-light.css +84 -0
  249. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna.dark.css +113 -0
  250. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-savanna.light.css +113 -0
  251. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside-dark.css +69 -0
  252. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside-light.css +69 -0
  253. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside.dark.css +94 -0
  254. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-seaside.light.css +94 -0
  255. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool-dark.css +69 -0
  256. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool-light.css +69 -0
  257. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool.dark.css +94 -0
  258. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atelier-sulphurpool.light.css +94 -0
  259. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atom-one-dark.css +95 -0
  260. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/atom-one-light.css +95 -0
  261. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown-paper.css +64 -0
  262. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown-papersq.png +0 -0
  263. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown_paper.css +103 -0
  264. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/brown_papersq.png +0 -0
  265. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/codepen-embed.css +60 -0
  266. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/color-brewer.css +71 -0
  267. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/darcula.css +77 -0
  268. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/dark.css +63 -0
  269. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/darkula.css +6 -0
  270. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/default.css +99 -0
  271. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/docco.css +97 -0
  272. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/dracula.css +76 -0
  273. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/far.css +71 -0
  274. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/foundation.css +88 -0
  275. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/github-gist.css +71 -0
  276. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/github.css +99 -0
  277. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/googlecode.css +89 -0
  278. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/grayscale.css +101 -0
  279. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/gruvbox-dark.css +108 -0
  280. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/gruvbox-light.css +108 -0
  281. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/hopscotch.css +83 -0
  282. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/hybrid.css +102 -0
  283. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/idea.css +97 -0
  284. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ir-black.css +73 -0
  285. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ir_black.css +106 -0
  286. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/kimbie.dark.css +74 -0
  287. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/kimbie.light.css +74 -0
  288. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/magula.css +70 -0
  289. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/mono-blue.css +59 -0
  290. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai-sublime.css +83 -0
  291. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai.css +70 -0
  292. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/monokai_sublime.css +154 -0
  293. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/obsidian.css +88 -0
  294. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/ocean.css +74 -0
  295. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso-dark.css +72 -0
  296. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso-light.css +72 -0
  297. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso.dark.css +96 -0
  298. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/paraiso.light.css +96 -0
  299. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/pojoaque.css +83 -0
  300. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/pojoaque.jpg +0 -0
  301. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/purebasic.css +96 -0
  302. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/qtcreator_dark.css +83 -0
  303. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/qtcreator_light.css +83 -0
  304. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/railscasts.css +106 -0
  305. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/rainbow.css +85 -0
  306. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school-book.css +72 -0
  307. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school-book.png +0 -0
  308. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school_book.css +111 -0
  309. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/school_book.png +0 -0
  310. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized-dark.css +84 -0
  311. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized-light.css +84 -0
  312. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized_dark.css +107 -0
  313. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/solarized_light.css +107 -0
  314. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/sunburst.css +102 -0
  315. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-blue.css +75 -0
  316. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-bright.css +74 -0
  317. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night-eighties.css +74 -0
  318. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow-night.css +75 -0
  319. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/tomorrow.css +72 -0
  320. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/vs.css +68 -0
  321. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/xcode.css +93 -0
  322. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/xt256.css +92 -0
  323. data/app/assets/javascripts/try_api/bower_components/highlightjs/styles/zenburn.css +80 -0
  324. data/app/assets/javascripts/try_api/bower_components/jquery/AUTHORS.txt +295 -0
  325. data/app/assets/javascripts/try_api/bower_components/jquery/LICENSE.txt +36 -0
  326. data/app/assets/javascripts/try_api/bower_components/jquery/README.md +65 -0
  327. data/app/assets/javascripts/try_api/bower_components/jquery/bower.json +14 -0
  328. data/app/assets/javascripts/try_api/bower_components/jquery/dist/core.js +481 -0
  329. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.js +10074 -0
  330. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.min.js +4 -0
  331. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.min.map +1 -0
  332. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.slim.js +7966 -0
  333. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.slim.min.js +4 -0
  334. data/app/assets/javascripts/try_api/bower_components/jquery/dist/jquery.slim.min.map +1 -0
  335. data/app/assets/javascripts/try_api/bower_components/jquery/external/sizzle/LICENSE.txt +36 -0
  336. data/app/assets/javascripts/try_api/bower_components/jquery/external/sizzle/dist/sizzle.js +2217 -0
  337. data/app/assets/javascripts/try_api/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  338. data/app/assets/javascripts/try_api/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  339. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/jsonp.js +102 -0
  340. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/load.js +75 -0
  341. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/parseXML.js +30 -0
  342. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/script.js +77 -0
  343. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/var/location.js +5 -0
  344. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/var/nonce.js +7 -0
  345. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/var/rquery.js +5 -0
  346. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax/xhr.js +169 -0
  347. data/app/assets/javascripts/try_api/bower_components/jquery/src/ajax.js +855 -0
  348. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes/attr.js +137 -0
  349. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes/classes.js +179 -0
  350. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes/prop.js +128 -0
  351. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes/support.js +33 -0
  352. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes/val.js +184 -0
  353. data/app/assets/javascripts/try_api/bower_components/jquery/src/attributes.js +13 -0
  354. data/app/assets/javascripts/try_api/bower_components/jquery/src/callbacks.js +234 -0
  355. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/DOMEval.js +16 -0
  356. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/access.js +67 -0
  357. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/init.js +127 -0
  358. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/parseHTML.js +65 -0
  359. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/ready-no-deferred.js +111 -0
  360. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/ready.js +95 -0
  361. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/readyException.js +13 -0
  362. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/support.js +20 -0
  363. data/app/assets/javascripts/try_api/bower_components/jquery/src/core/var/rsingleTag.js +6 -0
  364. data/app/assets/javascripts/try_api/bower_components/jquery/src/core.js +481 -0
  365. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/addGetHookIf.js +26 -0
  366. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/adjustCSS.js +71 -0
  367. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/curCSS.js +59 -0
  368. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  369. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/showHide.js +105 -0
  370. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/support.js +89 -0
  371. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/cssExpand.js +5 -0
  372. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/getStyles.js +17 -0
  373. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  374. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/rmargin.js +5 -0
  375. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/rnumnonpx.js +7 -0
  376. data/app/assets/javascripts/try_api/bower_components/jquery/src/css/var/swap.js +26 -0
  377. data/app/assets/javascripts/try_api/bower_components/jquery/src/css.js +424 -0
  378. data/app/assets/javascripts/try_api/bower_components/jquery/src/data/Data.js +161 -0
  379. data/app/assets/javascripts/try_api/bower_components/jquery/src/data/var/acceptData.js +19 -0
  380. data/app/assets/javascripts/try_api/bower_components/jquery/src/data/var/dataPriv.js +7 -0
  381. data/app/assets/javascripts/try_api/bower_components/jquery/src/data/var/dataUser.js +7 -0
  382. data/app/assets/javascripts/try_api/bower_components/jquery/src/data.js +161 -0
  383. data/app/assets/javascripts/try_api/bower_components/jquery/src/deferred/exceptionHook.js +21 -0
  384. data/app/assets/javascripts/try_api/bower_components/jquery/src/deferred.js +389 -0
  385. data/app/assets/javascripts/try_api/bower_components/jquery/src/deprecated.js +30 -0
  386. data/app/assets/javascripts/try_api/bower_components/jquery/src/dimensions.js +56 -0
  387. data/app/assets/javascripts/try_api/bower_components/jquery/src/effects/Tween.js +123 -0
  388. data/app/assets/javascripts/try_api/bower_components/jquery/src/effects/animatedSelector.js +15 -0
  389. data/app/assets/javascripts/try_api/bower_components/jquery/src/effects.js +688 -0
  390. data/app/assets/javascripts/try_api/bower_components/jquery/src/event/ajax.js +22 -0
  391. data/app/assets/javascripts/try_api/bower_components/jquery/src/event/alias.js +29 -0
  392. data/app/assets/javascripts/try_api/bower_components/jquery/src/event/focusin.js +55 -0
  393. data/app/assets/javascripts/try_api/bower_components/jquery/src/event/support.js +11 -0
  394. data/app/assets/javascripts/try_api/bower_components/jquery/src/event/trigger.js +185 -0
  395. data/app/assets/javascripts/try_api/bower_components/jquery/src/event.js +726 -0
  396. data/app/assets/javascripts/try_api/bower_components/jquery/src/exports/amd.js +26 -0
  397. data/app/assets/javascripts/try_api/bower_components/jquery/src/exports/global.js +34 -0
  398. data/app/assets/javascripts/try_api/bower_components/jquery/src/jquery.js +40 -0
  399. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/_evalUrl.js +23 -0
  400. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/buildFragment.js +104 -0
  401. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/getAll.js +23 -0
  402. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/setGlobalEval.js +22 -0
  403. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/support.js +35 -0
  404. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/var/rcheckableType.js +5 -0
  405. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/var/rscriptType.js +5 -0
  406. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/var/rtagName.js +5 -0
  407. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation/wrapMap.js +29 -0
  408. data/app/assets/javascripts/try_api/bower_components/jquery/src/manipulation.js +486 -0
  409. data/app/assets/javascripts/try_api/bower_components/jquery/src/offset.js +232 -0
  410. data/app/assets/javascripts/try_api/bower_components/jquery/src/queue/delay.js +24 -0
  411. data/app/assets/javascripts/try_api/bower_components/jquery/src/queue.js +145 -0
  412. data/app/assets/javascripts/try_api/bower_components/jquery/src/selector-native.js +237 -0
  413. data/app/assets/javascripts/try_api/bower_components/jquery/src/selector-sizzle.js +19 -0
  414. data/app/assets/javascripts/try_api/bower_components/jquery/src/selector.js +3 -0
  415. data/app/assets/javascripts/try_api/bower_components/jquery/src/serialize.js +126 -0
  416. data/app/assets/javascripts/try_api/bower_components/jquery/src/traversing/findFilter.js +99 -0
  417. data/app/assets/javascripts/try_api/bower_components/jquery/src/traversing/var/dir.js +22 -0
  418. data/app/assets/javascripts/try_api/bower_components/jquery/src/traversing/var/rneedsContext.js +8 -0
  419. data/app/assets/javascripts/try_api/bower_components/jquery/src/traversing/var/siblings.js +17 -0
  420. data/app/assets/javascripts/try_api/bower_components/jquery/src/traversing.js +178 -0
  421. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
  422. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/arr.js +5 -0
  423. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/class2type.js +6 -0
  424. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/concat.js +7 -0
  425. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/document.js +5 -0
  426. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/documentElement.js +7 -0
  427. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/fnToString.js +7 -0
  428. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/getProto.js +5 -0
  429. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/hasOwn.js +7 -0
  430. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/indexOf.js +7 -0
  431. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/pnum.js +5 -0
  432. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/push.js +7 -0
  433. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/rcssNum.js +9 -0
  434. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/rnotwhite.js +5 -0
  435. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/slice.js +7 -0
  436. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/support.js +6 -0
  437. data/app/assets/javascripts/try_api/bower_components/jquery/src/var/toString.js +7 -0
  438. data/app/assets/javascripts/try_api/bower_components/jquery/src/wrap.js +77 -0
  439. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/README.md +8 -0
  440. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/bower.json +46 -0
  441. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/allow-page-scroll.html +94 -0
  442. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/chaining.html +80 -0
  443. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/disable-fade-out.html +94 -0
  444. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/dynamic-content.html +81 -0
  445. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/height-width.html +125 -0
  446. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/index.html +9 -0
  447. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.css +52 -0
  448. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/libs/prettify/prettify.js +1477 -0
  449. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/mouse-wheel.html +99 -0
  450. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/multiple-elements.html +120 -0
  451. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/navigation.html +30 -0
  452. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/nested.html +82 -0
  453. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/programmatic-scrolling.html +138 -0
  454. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/rail.html +190 -0
  455. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/scroll-events.html +88 -0
  456. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/scrollbar.html +189 -0
  457. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/start-position.html +100 -0
  458. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/examples/style.css +13 -0
  459. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/jquery.slimscroll.js +474 -0
  460. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/jquery.slimscroll.min.js +16 -0
  461. data/app/assets/javascripts/try_api/bower_components/jquery-slimscroll/package.json +32 -0
  462. data/app/assets/javascripts/try_api/bower_components/ladda/Gruntfile.js +114 -0
  463. data/app/assets/javascripts/try_api/bower_components/ladda/LICENSE +19 -0
  464. data/app/assets/javascripts/try_api/bower_components/ladda/README.md +142 -0
  465. data/app/assets/javascripts/try_api/bower_components/ladda/bower.json +14 -0
  466. data/app/assets/javascripts/try_api/bower_components/ladda/css/demo.css +60 -0
  467. data/app/assets/javascripts/try_api/bower_components/ladda/css/ladda-themed.scss +81 -0
  468. data/app/assets/javascripts/try_api/bower_components/ladda/css/ladda.scss +486 -0
  469. data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda-themeless.min.css +7 -0
  470. data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.jquery.min.js +8 -0
  471. data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.min.css +9 -0
  472. data/app/assets/javascripts/try_api/bower_components/ladda/dist/ladda.min.js +8 -0
  473. data/app/assets/javascripts/try_api/bower_components/ladda/dist/spin.min.js +1 -0
  474. data/app/assets/javascripts/try_api/bower_components/ladda/index.html +185 -0
  475. data/app/assets/javascripts/try_api/bower_components/ladda/js/ladda.jquery.js +46 -0
  476. data/app/assets/javascripts/try_api/bower_components/ladda/js/ladda.js +459 -0
  477. data/app/assets/javascripts/try_api/bower_components/ladda/js/spin.js +354 -0
  478. data/app/assets/javascripts/try_api/bower_components/ladda/test/bootstrap.html +6302 -0
  479. data/app/assets/javascripts/try_api/bower_components/ladda/test/bootstrap.jquery.html +6306 -0
  480. data/app/assets/javascripts/try_api/bower_components/ladda/test/form.html +38 -0
  481. data/app/assets/javascripts/try_api/bower_components/spin.js/LICENSE.txt +21 -0
  482. data/app/assets/javascripts/try_api/bower_components/spin.js/README.md +21 -0
  483. data/app/assets/javascripts/try_api/bower_components/spin.js/bower.json +18 -0
  484. data/app/assets/javascripts/try_api/bower_components/spin.js/jquery.spin.js +80 -0
  485. data/app/assets/javascripts/try_api/bower_components/spin.js/spin.js +337 -0
  486. data/app/assets/javascripts/try_api/image.directive.js +95 -0
  487. data/app/assets/javascripts/try_api/param.directive.js.coffee +47 -0
  488. data/app/assets/javascripts/try_api/params.directive.js.coffee +18 -0
  489. data/app/assets/javascripts/try_api/paramsarray.directive.js.coffee +25 -0
  490. data/app/assets/stylesheets/try_api/application.css.sass +292 -0
  491. data/app/controllers/try_api/application_controller.rb +9 -0
  492. data/app/controllers/try_api/pages_controller.rb +10 -0
  493. data/app/controllers/try_api/projects_controller.rb +10 -0
  494. data/app/helpers/try_api/application_helper.rb +4 -0
  495. data/app/models/try_api/base.rb +49 -0
  496. data/app/models/try_api/config_parser.rb +16 -0
  497. data/app/models/try_api/example_response.rb +48 -0
  498. data/app/models/try_api/header.rb +17 -0
  499. data/app/models/try_api/menu_item.rb +27 -0
  500. data/app/models/try_api/method.rb +66 -0
  501. data/app/models/try_api/parameter.rb +30 -0
  502. data/app/models/try_api/project.rb +32 -0
  503. data/app/views/layouts/try_api/application.html.erb +14 -0
  504. data/app/views/try_api/pages/config_file_not_found.html.erb +4 -0
  505. data/app/views/try_api/pages/index.html +92 -0
  506. data/config/routes.rb +7 -0
  507. data/lib/generators/try_api/install_generator.rb +29 -0
  508. data/lib/generators/try_api/templates/config/try_api.yml +352 -0
  509. data/lib/tasks/try_api_tasks.rake +4 -0
  510. data/lib/try_api/engine.rb +5 -0
  511. data/lib/try_api/exceptions.rb +12 -0
  512. data/lib/try_api/version.rb +3 -0
  513. data/lib/try_api.rb +4 -0
  514. metadata +571 -0
@@ -0,0 +1,2217 @@
1
+ /*!
2
+ * Sizzle CSS Selector Engine v2.3.0
3
+ * https://sizzlejs.com/
4
+ *
5
+ * Copyright jQuery Foundation and other contributors
6
+ * Released under the MIT license
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: 2016-01-04
10
+ */
11
+ (function( window ) {
12
+
13
+ var i,
14
+ support,
15
+ Expr,
16
+ getText,
17
+ isXML,
18
+ tokenize,
19
+ compile,
20
+ select,
21
+ outermostContext,
22
+ sortInput,
23
+ hasDuplicate,
24
+
25
+ // Local document vars
26
+ setDocument,
27
+ document,
28
+ docElem,
29
+ documentIsHTML,
30
+ rbuggyQSA,
31
+ rbuggyMatches,
32
+ matches,
33
+ contains,
34
+
35
+ // Instance-specific data
36
+ expando = "sizzle" + 1 * new Date(),
37
+ preferredDoc = window.document,
38
+ dirruns = 0,
39
+ done = 0,
40
+ classCache = createCache(),
41
+ tokenCache = createCache(),
42
+ compilerCache = createCache(),
43
+ sortOrder = function( a, b ) {
44
+ if ( a === b ) {
45
+ hasDuplicate = true;
46
+ }
47
+ return 0;
48
+ },
49
+
50
+ // Instance methods
51
+ hasOwn = ({}).hasOwnProperty,
52
+ arr = [],
53
+ pop = arr.pop,
54
+ push_native = arr.push,
55
+ push = arr.push,
56
+ slice = arr.slice,
57
+ // Use a stripped-down indexOf as it's faster than native
58
+ // https://jsperf.com/thor-indexof-vs-for/5
59
+ indexOf = function( list, elem ) {
60
+ var i = 0,
61
+ len = list.length;
62
+ for ( ; i < len; i++ ) {
63
+ if ( list[i] === elem ) {
64
+ return i;
65
+ }
66
+ }
67
+ return -1;
68
+ },
69
+
70
+ booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
71
+
72
+ // Regular expressions
73
+
74
+ // http://www.w3.org/TR/css3-selectors/#whitespace
75
+ whitespace = "[\\x20\\t\\r\\n\\f]",
76
+
77
+ // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
78
+ identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+",
79
+
80
+ // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors
81
+ attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace +
82
+ // Operator (capture 2)
83
+ "*([*^$|!~]?=)" + whitespace +
84
+ // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]"
85
+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace +
86
+ "*\\]",
87
+
88
+ pseudos = ":(" + identifier + ")(?:\\((" +
89
+ // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:
90
+ // 1. quoted (capture 3; capture 4 or capture 5)
91
+ "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" +
92
+ // 2. simple (capture 6)
93
+ "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" +
94
+ // 3. anything else (capture 2)
95
+ ".*" +
96
+ ")\\)|)",
97
+
98
+ // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter
99
+ rwhitespace = new RegExp( whitespace + "+", "g" ),
100
+ rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ),
101
+
102
+ rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
103
+ rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
104
+
105
+ rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
106
+
107
+ rpseudo = new RegExp( pseudos ),
108
+ ridentifier = new RegExp( "^" + identifier + "$" ),
109
+
110
+ matchExpr = {
111
+ "ID": new RegExp( "^#(" + identifier + ")" ),
112
+ "CLASS": new RegExp( "^\\.(" + identifier + ")" ),
113
+ "TAG": new RegExp( "^(" + identifier + "|[*])" ),
114
+ "ATTR": new RegExp( "^" + attributes ),
115
+ "PSEUDO": new RegExp( "^" + pseudos ),
116
+ "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace +
117
+ "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace +
118
+ "*(\\d+)|))" + whitespace + "*\\)|)", "i" ),
119
+ "bool": new RegExp( "^(?:" + booleans + ")$", "i" ),
120
+ // For use in libraries implementing .is()
121
+ // We use this for POS matching in `select`
122
+ "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" +
123
+ whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
124
+ },
125
+
126
+ rinputs = /^(?:input|select|textarea|button)$/i,
127
+ rheader = /^h\d$/i,
128
+
129
+ rnative = /^[^{]+\{\s*\[native \w/,
130
+
131
+ // Easily-parseable/retrievable ID or TAG or CLASS selectors
132
+ rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
133
+
134
+ rsibling = /[+~]/,
135
+
136
+ // CSS escapes
137
+ // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters
138
+ runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ),
139
+ funescape = function( _, escaped, escapedWhitespace ) {
140
+ var high = "0x" + escaped - 0x10000;
141
+ // NaN means non-codepoint
142
+ // Support: Firefox<24
143
+ // Workaround erroneous numeric interpretation of +"0x"
144
+ return high !== high || escapedWhitespace ?
145
+ escaped :
146
+ high < 0 ?
147
+ // BMP codepoint
148
+ String.fromCharCode( high + 0x10000 ) :
149
+ // Supplemental Plane codepoint (surrogate pair)
150
+ String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );
151
+ },
152
+
153
+ // CSS string/identifier serialization
154
+ // https://drafts.csswg.org/cssom/#common-serializing-idioms
155
+ rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
156
+ fcssescape = function( ch, asCodePoint ) {
157
+ if ( asCodePoint ) {
158
+
159
+ // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
160
+ if ( ch === "\0" ) {
161
+ return "\uFFFD";
162
+ }
163
+
164
+ // Control characters and (dependent upon position) numbers get escaped as code points
165
+ return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " ";
166
+ }
167
+
168
+ // Other potentially-special ASCII characters get backslash-escaped
169
+ return "\\" + ch;
170
+ },
171
+
172
+ // Used for iframes
173
+ // See setDocument()
174
+ // Removing the function wrapper causes a "Permission Denied"
175
+ // error in IE
176
+ unloadHandler = function() {
177
+ setDocument();
178
+ },
179
+
180
+ disabledAncestor = addCombinator(
181
+ function( elem ) {
182
+ return elem.disabled === true;
183
+ },
184
+ { dir: "parentNode", next: "legend" }
185
+ );
186
+
187
+ // Optimize for push.apply( _, NodeList )
188
+ try {
189
+ push.apply(
190
+ (arr = slice.call( preferredDoc.childNodes )),
191
+ preferredDoc.childNodes
192
+ );
193
+ // Support: Android<4.0
194
+ // Detect silently failing push.apply
195
+ arr[ preferredDoc.childNodes.length ].nodeType;
196
+ } catch ( e ) {
197
+ push = { apply: arr.length ?
198
+
199
+ // Leverage slice if possible
200
+ function( target, els ) {
201
+ push_native.apply( target, slice.call(els) );
202
+ } :
203
+
204
+ // Support: IE<9
205
+ // Otherwise append directly
206
+ function( target, els ) {
207
+ var j = target.length,
208
+ i = 0;
209
+ // Can't trust NodeList.length
210
+ while ( (target[j++] = els[i++]) ) {}
211
+ target.length = j - 1;
212
+ }
213
+ };
214
+ }
215
+
216
+ function Sizzle( selector, context, results, seed ) {
217
+ var m, i, elem, nid, match, groups, newSelector,
218
+ newContext = context && context.ownerDocument,
219
+
220
+ // nodeType defaults to 9, since context defaults to document
221
+ nodeType = context ? context.nodeType : 9;
222
+
223
+ results = results || [];
224
+
225
+ // Return early from calls with invalid selector or context
226
+ if ( typeof selector !== "string" || !selector ||
227
+ nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {
228
+
229
+ return results;
230
+ }
231
+
232
+ // Try to shortcut find operations (as opposed to filters) in HTML documents
233
+ if ( !seed ) {
234
+
235
+ if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {
236
+ setDocument( context );
237
+ }
238
+ context = context || document;
239
+
240
+ if ( documentIsHTML ) {
241
+
242
+ // If the selector is sufficiently simple, try using a "get*By*" DOM method
243
+ // (excepting DocumentFragment context, where the methods don't exist)
244
+ if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {
245
+
246
+ // ID selector
247
+ if ( (m = match[1]) ) {
248
+
249
+ // Document context
250
+ if ( nodeType === 9 ) {
251
+ if ( (elem = context.getElementById( m )) ) {
252
+
253
+ // Support: IE, Opera, Webkit
254
+ // TODO: identify versions
255
+ // getElementById can match elements by name instead of ID
256
+ if ( elem.id === m ) {
257
+ results.push( elem );
258
+ return results;
259
+ }
260
+ } else {
261
+ return results;
262
+ }
263
+
264
+ // Element context
265
+ } else {
266
+
267
+ // Support: IE, Opera, Webkit
268
+ // TODO: identify versions
269
+ // getElementById can match elements by name instead of ID
270
+ if ( newContext && (elem = newContext.getElementById( m )) &&
271
+ contains( context, elem ) &&
272
+ elem.id === m ) {
273
+
274
+ results.push( elem );
275
+ return results;
276
+ }
277
+ }
278
+
279
+ // Type selector
280
+ } else if ( match[2] ) {
281
+ push.apply( results, context.getElementsByTagName( selector ) );
282
+ return results;
283
+
284
+ // Class selector
285
+ } else if ( (m = match[3]) && support.getElementsByClassName &&
286
+ context.getElementsByClassName ) {
287
+
288
+ push.apply( results, context.getElementsByClassName( m ) );
289
+ return results;
290
+ }
291
+ }
292
+
293
+ // Take advantage of querySelectorAll
294
+ if ( support.qsa &&
295
+ !compilerCache[ selector + " " ] &&
296
+ (!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
297
+
298
+ if ( nodeType !== 1 ) {
299
+ newContext = context;
300
+ newSelector = selector;
301
+
302
+ // qSA looks outside Element context, which is not what we want
303
+ // Thanks to Andrew Dupont for this workaround technique
304
+ // Support: IE <=8
305
+ // Exclude object elements
306
+ } else if ( context.nodeName.toLowerCase() !== "object" ) {
307
+
308
+ // Capture the context ID, setting it first if necessary
309
+ if ( (nid = context.getAttribute( "id" )) ) {
310
+ nid = nid.replace( rcssescape, fcssescape );
311
+ } else {
312
+ context.setAttribute( "id", (nid = expando) );
313
+ }
314
+
315
+ // Prefix every selector in the list
316
+ groups = tokenize( selector );
317
+ i = groups.length;
318
+ while ( i-- ) {
319
+ groups[i] = "#" + nid + " " + toSelector( groups[i] );
320
+ }
321
+ newSelector = groups.join( "," );
322
+
323
+ // Expand context for sibling selectors
324
+ newContext = rsibling.test( selector ) && testContext( context.parentNode ) ||
325
+ context;
326
+ }
327
+
328
+ if ( newSelector ) {
329
+ try {
330
+ push.apply( results,
331
+ newContext.querySelectorAll( newSelector )
332
+ );
333
+ return results;
334
+ } catch ( qsaError ) {
335
+ } finally {
336
+ if ( nid === expando ) {
337
+ context.removeAttribute( "id" );
338
+ }
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+
345
+ // All others
346
+ return select( selector.replace( rtrim, "$1" ), context, results, seed );
347
+ }
348
+
349
+ /**
350
+ * Create key-value caches of limited size
351
+ * @returns {function(string, object)} Returns the Object data after storing it on itself with
352
+ * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)
353
+ * deleting the oldest entry
354
+ */
355
+ function createCache() {
356
+ var keys = [];
357
+
358
+ function cache( key, value ) {
359
+ // Use (key + " ") to avoid collision with native prototype properties (see Issue #157)
360
+ if ( keys.push( key + " " ) > Expr.cacheLength ) {
361
+ // Only keep the most recent entries
362
+ delete cache[ keys.shift() ];
363
+ }
364
+ return (cache[ key + " " ] = value);
365
+ }
366
+ return cache;
367
+ }
368
+
369
+ /**
370
+ * Mark a function for special use by Sizzle
371
+ * @param {Function} fn The function to mark
372
+ */
373
+ function markFunction( fn ) {
374
+ fn[ expando ] = true;
375
+ return fn;
376
+ }
377
+
378
+ /**
379
+ * Support testing using an element
380
+ * @param {Function} fn Passed the created element and returns a boolean result
381
+ */
382
+ function assert( fn ) {
383
+ var el = document.createElement("fieldset");
384
+
385
+ try {
386
+ return !!fn( el );
387
+ } catch (e) {
388
+ return false;
389
+ } finally {
390
+ // Remove from its parent by default
391
+ if ( el.parentNode ) {
392
+ el.parentNode.removeChild( el );
393
+ }
394
+ // release memory in IE
395
+ el = null;
396
+ }
397
+ }
398
+
399
+ /**
400
+ * Adds the same handler for all of the specified attrs
401
+ * @param {String} attrs Pipe-separated list of attributes
402
+ * @param {Function} handler The method that will be applied
403
+ */
404
+ function addHandle( attrs, handler ) {
405
+ var arr = attrs.split("|"),
406
+ i = arr.length;
407
+
408
+ while ( i-- ) {
409
+ Expr.attrHandle[ arr[i] ] = handler;
410
+ }
411
+ }
412
+
413
+ /**
414
+ * Checks document order of two siblings
415
+ * @param {Element} a
416
+ * @param {Element} b
417
+ * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b
418
+ */
419
+ function siblingCheck( a, b ) {
420
+ var cur = b && a,
421
+ diff = cur && a.nodeType === 1 && b.nodeType === 1 &&
422
+ a.sourceIndex - b.sourceIndex;
423
+
424
+ // Use IE sourceIndex if available on both nodes
425
+ if ( diff ) {
426
+ return diff;
427
+ }
428
+
429
+ // Check if b follows a
430
+ if ( cur ) {
431
+ while ( (cur = cur.nextSibling) ) {
432
+ if ( cur === b ) {
433
+ return -1;
434
+ }
435
+ }
436
+ }
437
+
438
+ return a ? 1 : -1;
439
+ }
440
+
441
+ /**
442
+ * Returns a function to use in pseudos for input types
443
+ * @param {String} type
444
+ */
445
+ function createInputPseudo( type ) {
446
+ return function( elem ) {
447
+ var name = elem.nodeName.toLowerCase();
448
+ return name === "input" && elem.type === type;
449
+ };
450
+ }
451
+
452
+ /**
453
+ * Returns a function to use in pseudos for buttons
454
+ * @param {String} type
455
+ */
456
+ function createButtonPseudo( type ) {
457
+ return function( elem ) {
458
+ var name = elem.nodeName.toLowerCase();
459
+ return (name === "input" || name === "button") && elem.type === type;
460
+ };
461
+ }
462
+
463
+ /**
464
+ * Returns a function to use in pseudos for :enabled/:disabled
465
+ * @param {Boolean} disabled true for :disabled; false for :enabled
466
+ */
467
+ function createDisabledPseudo( disabled ) {
468
+ // Known :disabled false positives:
469
+ // IE: *[disabled]:not(button, input, select, textarea, optgroup, option, menuitem, fieldset)
470
+ // not IE: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable
471
+ return function( elem ) {
472
+
473
+ // Check form elements and option elements for explicit disabling
474
+ return "label" in elem && elem.disabled === disabled ||
475
+ "form" in elem && elem.disabled === disabled ||
476
+
477
+ // Check non-disabled form elements for fieldset[disabled] ancestors
478
+ "form" in elem && elem.disabled === false && (
479
+ // Support: IE6-11+
480
+ // Ancestry is covered for us
481
+ elem.isDisabled === disabled ||
482
+
483
+ // Otherwise, assume any non-<option> under fieldset[disabled] is disabled
484
+ /* jshint -W018 */
485
+ elem.isDisabled !== !disabled &&
486
+ ("label" in elem || !disabledAncestor( elem )) !== disabled
487
+ );
488
+ };
489
+ }
490
+
491
+ /**
492
+ * Returns a function to use in pseudos for positionals
493
+ * @param {Function} fn
494
+ */
495
+ function createPositionalPseudo( fn ) {
496
+ return markFunction(function( argument ) {
497
+ argument = +argument;
498
+ return markFunction(function( seed, matches ) {
499
+ var j,
500
+ matchIndexes = fn( [], seed.length, argument ),
501
+ i = matchIndexes.length;
502
+
503
+ // Match elements found at the specified indexes
504
+ while ( i-- ) {
505
+ if ( seed[ (j = matchIndexes[i]) ] ) {
506
+ seed[j] = !(matches[j] = seed[j]);
507
+ }
508
+ }
509
+ });
510
+ });
511
+ }
512
+
513
+ /**
514
+ * Checks a node for validity as a Sizzle context
515
+ * @param {Element|Object=} context
516
+ * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value
517
+ */
518
+ function testContext( context ) {
519
+ return context && typeof context.getElementsByTagName !== "undefined" && context;
520
+ }
521
+
522
+ // Expose support vars for convenience
523
+ support = Sizzle.support = {};
524
+
525
+ /**
526
+ * Detects XML nodes
527
+ * @param {Element|Object} elem An element or a document
528
+ * @returns {Boolean} True iff elem is a non-HTML XML node
529
+ */
530
+ isXML = Sizzle.isXML = function( elem ) {
531
+ // documentElement is verified for cases where it doesn't yet exist
532
+ // (such as loading iframes in IE - #4833)
533
+ var documentElement = elem && (elem.ownerDocument || elem).documentElement;
534
+ return documentElement ? documentElement.nodeName !== "HTML" : false;
535
+ };
536
+
537
+ /**
538
+ * Sets document-related variables once based on the current document
539
+ * @param {Element|Object} [doc] An element or document object to use to set the document
540
+ * @returns {Object} Returns the current document
541
+ */
542
+ setDocument = Sizzle.setDocument = function( node ) {
543
+ var hasCompare, subWindow,
544
+ doc = node ? node.ownerDocument || node : preferredDoc;
545
+
546
+ // Return early if doc is invalid or already selected
547
+ if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {
548
+ return document;
549
+ }
550
+
551
+ // Update global variables
552
+ document = doc;
553
+ docElem = document.documentElement;
554
+ documentIsHTML = !isXML( document );
555
+
556
+ // Support: IE 9-11, Edge
557
+ // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936)
558
+ if ( preferredDoc !== document &&
559
+ (subWindow = document.defaultView) && subWindow.top !== subWindow ) {
560
+
561
+ // Support: IE 11, Edge
562
+ if ( subWindow.addEventListener ) {
563
+ subWindow.addEventListener( "unload", unloadHandler, false );
564
+
565
+ // Support: IE 9 - 10 only
566
+ } else if ( subWindow.attachEvent ) {
567
+ subWindow.attachEvent( "onunload", unloadHandler );
568
+ }
569
+ }
570
+
571
+ /* Attributes
572
+ ---------------------------------------------------------------------- */
573
+
574
+ // Support: IE<8
575
+ // Verify that getAttribute really returns attributes and not properties
576
+ // (excepting IE8 booleans)
577
+ support.attributes = assert(function( el ) {
578
+ el.className = "i";
579
+ return !el.getAttribute("className");
580
+ });
581
+
582
+ /* getElement(s)By*
583
+ ---------------------------------------------------------------------- */
584
+
585
+ // Check if getElementsByTagName("*") returns only elements
586
+ support.getElementsByTagName = assert(function( el ) {
587
+ el.appendChild( document.createComment("") );
588
+ return !el.getElementsByTagName("*").length;
589
+ });
590
+
591
+ // Support: IE<9
592
+ support.getElementsByClassName = rnative.test( document.getElementsByClassName );
593
+
594
+ // Support: IE<10
595
+ // Check if getElementById returns elements by name
596
+ // The broken getElementById methods don't pick up programmatically-set names,
597
+ // so use a roundabout getElementsByName test
598
+ support.getById = assert(function( el ) {
599
+ docElem.appendChild( el ).id = expando;
600
+ return !document.getElementsByName || !document.getElementsByName( expando ).length;
601
+ });
602
+
603
+ // ID find and filter
604
+ if ( support.getById ) {
605
+ Expr.find["ID"] = function( id, context ) {
606
+ if ( typeof context.getElementById !== "undefined" && documentIsHTML ) {
607
+ var m = context.getElementById( id );
608
+ return m ? [ m ] : [];
609
+ }
610
+ };
611
+ Expr.filter["ID"] = function( id ) {
612
+ var attrId = id.replace( runescape, funescape );
613
+ return function( elem ) {
614
+ return elem.getAttribute("id") === attrId;
615
+ };
616
+ };
617
+ } else {
618
+ // Support: IE6/7
619
+ // getElementById is not reliable as a find shortcut
620
+ delete Expr.find["ID"];
621
+
622
+ Expr.filter["ID"] = function( id ) {
623
+ var attrId = id.replace( runescape, funescape );
624
+ return function( elem ) {
625
+ var node = typeof elem.getAttributeNode !== "undefined" &&
626
+ elem.getAttributeNode("id");
627
+ return node && node.value === attrId;
628
+ };
629
+ };
630
+ }
631
+
632
+ // Tag
633
+ Expr.find["TAG"] = support.getElementsByTagName ?
634
+ function( tag, context ) {
635
+ if ( typeof context.getElementsByTagName !== "undefined" ) {
636
+ return context.getElementsByTagName( tag );
637
+
638
+ // DocumentFragment nodes don't have gEBTN
639
+ } else if ( support.qsa ) {
640
+ return context.querySelectorAll( tag );
641
+ }
642
+ } :
643
+
644
+ function( tag, context ) {
645
+ var elem,
646
+ tmp = [],
647
+ i = 0,
648
+ // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too
649
+ results = context.getElementsByTagName( tag );
650
+
651
+ // Filter out possible comments
652
+ if ( tag === "*" ) {
653
+ while ( (elem = results[i++]) ) {
654
+ if ( elem.nodeType === 1 ) {
655
+ tmp.push( elem );
656
+ }
657
+ }
658
+
659
+ return tmp;
660
+ }
661
+ return results;
662
+ };
663
+
664
+ // Class
665
+ Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) {
666
+ if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) {
667
+ return context.getElementsByClassName( className );
668
+ }
669
+ };
670
+
671
+ /* QSA/matchesSelector
672
+ ---------------------------------------------------------------------- */
673
+
674
+ // QSA and matchesSelector support
675
+
676
+ // matchesSelector(:active) reports false when true (IE9/Opera 11.5)
677
+ rbuggyMatches = [];
678
+
679
+ // qSa(:focus) reports false when true (Chrome 21)
680
+ // We allow this because of a bug in IE8/9 that throws an error
681
+ // whenever `document.activeElement` is accessed on an iframe
682
+ // So, we allow :focus to pass through QSA all the time to avoid the IE error
683
+ // See https://bugs.jquery.com/ticket/13378
684
+ rbuggyQSA = [];
685
+
686
+ if ( (support.qsa = rnative.test( document.querySelectorAll )) ) {
687
+ // Build QSA regex
688
+ // Regex strategy adopted from Diego Perini
689
+ assert(function( el ) {
690
+ // Select is set to empty string on purpose
691
+ // This is to test IE's treatment of not explicitly
692
+ // setting a boolean content attribute,
693
+ // since its presence should be enough
694
+ // https://bugs.jquery.com/ticket/12359
695
+ docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" +
696
+ "<select id='" + expando + "-\r\\' msallowcapture=''>" +
697
+ "<option selected=''></option></select>";
698
+
699
+ // Support: IE8, Opera 11-12.16
700
+ // Nothing should be selected when empty strings follow ^= or $= or *=
701
+ // The test attribute must be unknown in Opera but "safe" for WinRT
702
+ // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section
703
+ if ( el.querySelectorAll("[msallowcapture^='']").length ) {
704
+ rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" );
705
+ }
706
+
707
+ // Support: IE8
708
+ // Boolean attributes and "value" are not treated correctly
709
+ if ( !el.querySelectorAll("[selected]").length ) {
710
+ rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" );
711
+ }
712
+
713
+ // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+
714
+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) {
715
+ rbuggyQSA.push("~=");
716
+ }
717
+
718
+ // Webkit/Opera - :checked should return selected option elements
719
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
720
+ // IE8 throws error here and will not see later tests
721
+ if ( !el.querySelectorAll(":checked").length ) {
722
+ rbuggyQSA.push(":checked");
723
+ }
724
+
725
+ // Support: Safari 8+, iOS 8+
726
+ // https://bugs.webkit.org/show_bug.cgi?id=136851
727
+ // In-page `selector#id sibling-combinator selector` fails
728
+ if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) {
729
+ rbuggyQSA.push(".#.+[+~]");
730
+ }
731
+ });
732
+
733
+ assert(function( el ) {
734
+ el.innerHTML = "<a href='' disabled='disabled'></a>" +
735
+ "<select disabled='disabled'><option/></select>";
736
+
737
+ // Support: Windows 8 Native Apps
738
+ // The type and name attributes are restricted during .innerHTML assignment
739
+ var input = document.createElement("input");
740
+ input.setAttribute( "type", "hidden" );
741
+ el.appendChild( input ).setAttribute( "name", "D" );
742
+
743
+ // Support: IE8
744
+ // Enforce case-sensitivity of name attribute
745
+ if ( el.querySelectorAll("[name=d]").length ) {
746
+ rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" );
747
+ }
748
+
749
+ // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)
750
+ // IE8 throws error here and will not see later tests
751
+ if ( el.querySelectorAll(":enabled").length !== 2 ) {
752
+ rbuggyQSA.push( ":enabled", ":disabled" );
753
+ }
754
+
755
+ // Support: IE9-11+
756
+ // IE's :disabled selector does not pick up the children of disabled fieldsets
757
+ docElem.appendChild( el ).disabled = true;
758
+ if ( el.querySelectorAll(":disabled").length !== 2 ) {
759
+ rbuggyQSA.push( ":enabled", ":disabled" );
760
+ }
761
+
762
+ // Opera 10-11 does not throw on post-comma invalid pseudos
763
+ el.querySelectorAll("*,:x");
764
+ rbuggyQSA.push(",.*:");
765
+ });
766
+ }
767
+
768
+ if ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||
769
+ docElem.webkitMatchesSelector ||
770
+ docElem.mozMatchesSelector ||
771
+ docElem.oMatchesSelector ||
772
+ docElem.msMatchesSelector) )) ) {
773
+
774
+ assert(function( el ) {
775
+ // Check to see if it's possible to do matchesSelector
776
+ // on a disconnected node (IE 9)
777
+ support.disconnectedMatch = matches.call( el, "*" );
778
+
779
+ // This should fail with an exception
780
+ // Gecko does not error, returns false instead
781
+ matches.call( el, "[s!='']:x" );
782
+ rbuggyMatches.push( "!=", pseudos );
783
+ });
784
+ }
785
+
786
+ rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") );
787
+ rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") );
788
+
789
+ /* Contains
790
+ ---------------------------------------------------------------------- */
791
+ hasCompare = rnative.test( docElem.compareDocumentPosition );
792
+
793
+ // Element contains another
794
+ // Purposefully self-exclusive
795
+ // As in, an element does not contain itself
796
+ contains = hasCompare || rnative.test( docElem.contains ) ?
797
+ function( a, b ) {
798
+ var adown = a.nodeType === 9 ? a.documentElement : a,
799
+ bup = b && b.parentNode;
800
+ return a === bup || !!( bup && bup.nodeType === 1 && (
801
+ adown.contains ?
802
+ adown.contains( bup ) :
803
+ a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16
804
+ ));
805
+ } :
806
+ function( a, b ) {
807
+ if ( b ) {
808
+ while ( (b = b.parentNode) ) {
809
+ if ( b === a ) {
810
+ return true;
811
+ }
812
+ }
813
+ }
814
+ return false;
815
+ };
816
+
817
+ /* Sorting
818
+ ---------------------------------------------------------------------- */
819
+
820
+ // Document order sorting
821
+ sortOrder = hasCompare ?
822
+ function( a, b ) {
823
+
824
+ // Flag for duplicate removal
825
+ if ( a === b ) {
826
+ hasDuplicate = true;
827
+ return 0;
828
+ }
829
+
830
+ // Sort on method existence if only one input has compareDocumentPosition
831
+ var compare = !a.compareDocumentPosition - !b.compareDocumentPosition;
832
+ if ( compare ) {
833
+ return compare;
834
+ }
835
+
836
+ // Calculate position if both inputs belong to the same document
837
+ compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?
838
+ a.compareDocumentPosition( b ) :
839
+
840
+ // Otherwise we know they are disconnected
841
+ 1;
842
+
843
+ // Disconnected nodes
844
+ if ( compare & 1 ||
845
+ (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {
846
+
847
+ // Choose the first element that is related to our preferred document
848
+ if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {
849
+ return -1;
850
+ }
851
+ if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {
852
+ return 1;
853
+ }
854
+
855
+ // Maintain original order
856
+ return sortInput ?
857
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
858
+ 0;
859
+ }
860
+
861
+ return compare & 4 ? -1 : 1;
862
+ } :
863
+ function( a, b ) {
864
+ // Exit early if the nodes are identical
865
+ if ( a === b ) {
866
+ hasDuplicate = true;
867
+ return 0;
868
+ }
869
+
870
+ var cur,
871
+ i = 0,
872
+ aup = a.parentNode,
873
+ bup = b.parentNode,
874
+ ap = [ a ],
875
+ bp = [ b ];
876
+
877
+ // Parentless nodes are either documents or disconnected
878
+ if ( !aup || !bup ) {
879
+ return a === document ? -1 :
880
+ b === document ? 1 :
881
+ aup ? -1 :
882
+ bup ? 1 :
883
+ sortInput ?
884
+ ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :
885
+ 0;
886
+
887
+ // If the nodes are siblings, we can do a quick check
888
+ } else if ( aup === bup ) {
889
+ return siblingCheck( a, b );
890
+ }
891
+
892
+ // Otherwise we need full lists of their ancestors for comparison
893
+ cur = a;
894
+ while ( (cur = cur.parentNode) ) {
895
+ ap.unshift( cur );
896
+ }
897
+ cur = b;
898
+ while ( (cur = cur.parentNode) ) {
899
+ bp.unshift( cur );
900
+ }
901
+
902
+ // Walk down the tree looking for a discrepancy
903
+ while ( ap[i] === bp[i] ) {
904
+ i++;
905
+ }
906
+
907
+ return i ?
908
+ // Do a sibling check if the nodes have a common ancestor
909
+ siblingCheck( ap[i], bp[i] ) :
910
+
911
+ // Otherwise nodes in our document sort first
912
+ ap[i] === preferredDoc ? -1 :
913
+ bp[i] === preferredDoc ? 1 :
914
+ 0;
915
+ };
916
+
917
+ return document;
918
+ };
919
+
920
+ Sizzle.matches = function( expr, elements ) {
921
+ return Sizzle( expr, null, null, elements );
922
+ };
923
+
924
+ Sizzle.matchesSelector = function( elem, expr ) {
925
+ // Set document vars if needed
926
+ if ( ( elem.ownerDocument || elem ) !== document ) {
927
+ setDocument( elem );
928
+ }
929
+
930
+ // Make sure that attribute selectors are quoted
931
+ expr = expr.replace( rattributeQuotes, "='$1']" );
932
+
933
+ if ( support.matchesSelector && documentIsHTML &&
934
+ !compilerCache[ expr + " " ] &&
935
+ ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
936
+ ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
937
+
938
+ try {
939
+ var ret = matches.call( elem, expr );
940
+
941
+ // IE 9's matchesSelector returns false on disconnected nodes
942
+ if ( ret || support.disconnectedMatch ||
943
+ // As well, disconnected nodes are said to be in a document
944
+ // fragment in IE 9
945
+ elem.document && elem.document.nodeType !== 11 ) {
946
+ return ret;
947
+ }
948
+ } catch (e) {}
949
+ }
950
+
951
+ return Sizzle( expr, document, null, [ elem ] ).length > 0;
952
+ };
953
+
954
+ Sizzle.contains = function( context, elem ) {
955
+ // Set document vars if needed
956
+ if ( ( context.ownerDocument || context ) !== document ) {
957
+ setDocument( context );
958
+ }
959
+ return contains( context, elem );
960
+ };
961
+
962
+ Sizzle.attr = function( elem, name ) {
963
+ // Set document vars if needed
964
+ if ( ( elem.ownerDocument || elem ) !== document ) {
965
+ setDocument( elem );
966
+ }
967
+
968
+ var fn = Expr.attrHandle[ name.toLowerCase() ],
969
+ // Don't get fooled by Object.prototype properties (jQuery #13807)
970
+ val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?
971
+ fn( elem, name, !documentIsHTML ) :
972
+ undefined;
973
+
974
+ return val !== undefined ?
975
+ val :
976
+ support.attributes || !documentIsHTML ?
977
+ elem.getAttribute( name ) :
978
+ (val = elem.getAttributeNode(name)) && val.specified ?
979
+ val.value :
980
+ null;
981
+ };
982
+
983
+ Sizzle.escape = function( sel ) {
984
+ return (sel + "").replace( rcssescape, fcssescape );
985
+ };
986
+
987
+ Sizzle.error = function( msg ) {
988
+ throw new Error( "Syntax error, unrecognized expression: " + msg );
989
+ };
990
+
991
+ /**
992
+ * Document sorting and removing duplicates
993
+ * @param {ArrayLike} results
994
+ */
995
+ Sizzle.uniqueSort = function( results ) {
996
+ var elem,
997
+ duplicates = [],
998
+ j = 0,
999
+ i = 0;
1000
+
1001
+ // Unless we *know* we can detect duplicates, assume their presence
1002
+ hasDuplicate = !support.detectDuplicates;
1003
+ sortInput = !support.sortStable && results.slice( 0 );
1004
+ results.sort( sortOrder );
1005
+
1006
+ if ( hasDuplicate ) {
1007
+ while ( (elem = results[i++]) ) {
1008
+ if ( elem === results[ i ] ) {
1009
+ j = duplicates.push( i );
1010
+ }
1011
+ }
1012
+ while ( j-- ) {
1013
+ results.splice( duplicates[ j ], 1 );
1014
+ }
1015
+ }
1016
+
1017
+ // Clear input after sorting to release objects
1018
+ // See https://github.com/jquery/sizzle/pull/225
1019
+ sortInput = null;
1020
+
1021
+ return results;
1022
+ };
1023
+
1024
+ /**
1025
+ * Utility function for retrieving the text value of an array of DOM nodes
1026
+ * @param {Array|Element} elem
1027
+ */
1028
+ getText = Sizzle.getText = function( elem ) {
1029
+ var node,
1030
+ ret = "",
1031
+ i = 0,
1032
+ nodeType = elem.nodeType;
1033
+
1034
+ if ( !nodeType ) {
1035
+ // If no nodeType, this is expected to be an array
1036
+ while ( (node = elem[i++]) ) {
1037
+ // Do not traverse comment nodes
1038
+ ret += getText( node );
1039
+ }
1040
+ } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
1041
+ // Use textContent for elements
1042
+ // innerText usage removed for consistency of new lines (jQuery #11153)
1043
+ if ( typeof elem.textContent === "string" ) {
1044
+ return elem.textContent;
1045
+ } else {
1046
+ // Traverse its children
1047
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1048
+ ret += getText( elem );
1049
+ }
1050
+ }
1051
+ } else if ( nodeType === 3 || nodeType === 4 ) {
1052
+ return elem.nodeValue;
1053
+ }
1054
+ // Do not include comment or processing instruction nodes
1055
+
1056
+ return ret;
1057
+ };
1058
+
1059
+ Expr = Sizzle.selectors = {
1060
+
1061
+ // Can be adjusted by the user
1062
+ cacheLength: 50,
1063
+
1064
+ createPseudo: markFunction,
1065
+
1066
+ match: matchExpr,
1067
+
1068
+ attrHandle: {},
1069
+
1070
+ find: {},
1071
+
1072
+ relative: {
1073
+ ">": { dir: "parentNode", first: true },
1074
+ " ": { dir: "parentNode" },
1075
+ "+": { dir: "previousSibling", first: true },
1076
+ "~": { dir: "previousSibling" }
1077
+ },
1078
+
1079
+ preFilter: {
1080
+ "ATTR": function( match ) {
1081
+ match[1] = match[1].replace( runescape, funescape );
1082
+
1083
+ // Move the given value to match[3] whether quoted or unquoted
1084
+ match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape );
1085
+
1086
+ if ( match[2] === "~=" ) {
1087
+ match[3] = " " + match[3] + " ";
1088
+ }
1089
+
1090
+ return match.slice( 0, 4 );
1091
+ },
1092
+
1093
+ "CHILD": function( match ) {
1094
+ /* matches from matchExpr["CHILD"]
1095
+ 1 type (only|nth|...)
1096
+ 2 what (child|of-type)
1097
+ 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...)
1098
+ 4 xn-component of xn+y argument ([+-]?\d*n|)
1099
+ 5 sign of xn-component
1100
+ 6 x of xn-component
1101
+ 7 sign of y-component
1102
+ 8 y of y-component
1103
+ */
1104
+ match[1] = match[1].toLowerCase();
1105
+
1106
+ if ( match[1].slice( 0, 3 ) === "nth" ) {
1107
+ // nth-* requires argument
1108
+ if ( !match[3] ) {
1109
+ Sizzle.error( match[0] );
1110
+ }
1111
+
1112
+ // numeric x and y parameters for Expr.filter.CHILD
1113
+ // remember that false/true cast respectively to 0/1
1114
+ match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) );
1115
+ match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" );
1116
+
1117
+ // other types prohibit arguments
1118
+ } else if ( match[3] ) {
1119
+ Sizzle.error( match[0] );
1120
+ }
1121
+
1122
+ return match;
1123
+ },
1124
+
1125
+ "PSEUDO": function( match ) {
1126
+ var excess,
1127
+ unquoted = !match[6] && match[2];
1128
+
1129
+ if ( matchExpr["CHILD"].test( match[0] ) ) {
1130
+ return null;
1131
+ }
1132
+
1133
+ // Accept quoted arguments as-is
1134
+ if ( match[3] ) {
1135
+ match[2] = match[4] || match[5] || "";
1136
+
1137
+ // Strip excess characters from unquoted arguments
1138
+ } else if ( unquoted && rpseudo.test( unquoted ) &&
1139
+ // Get excess from tokenize (recursively)
1140
+ (excess = tokenize( unquoted, true )) &&
1141
+ // advance to the next closing parenthesis
1142
+ (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) {
1143
+
1144
+ // excess is a negative index
1145
+ match[0] = match[0].slice( 0, excess );
1146
+ match[2] = unquoted.slice( 0, excess );
1147
+ }
1148
+
1149
+ // Return only captures needed by the pseudo filter method (type and argument)
1150
+ return match.slice( 0, 3 );
1151
+ }
1152
+ },
1153
+
1154
+ filter: {
1155
+
1156
+ "TAG": function( nodeNameSelector ) {
1157
+ var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();
1158
+ return nodeNameSelector === "*" ?
1159
+ function() { return true; } :
1160
+ function( elem ) {
1161
+ return elem.nodeName && elem.nodeName.toLowerCase() === nodeName;
1162
+ };
1163
+ },
1164
+
1165
+ "CLASS": function( className ) {
1166
+ var pattern = classCache[ className + " " ];
1167
+
1168
+ return pattern ||
1169
+ (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) &&
1170
+ classCache( className, function( elem ) {
1171
+ return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" );
1172
+ });
1173
+ },
1174
+
1175
+ "ATTR": function( name, operator, check ) {
1176
+ return function( elem ) {
1177
+ var result = Sizzle.attr( elem, name );
1178
+
1179
+ if ( result == null ) {
1180
+ return operator === "!=";
1181
+ }
1182
+ if ( !operator ) {
1183
+ return true;
1184
+ }
1185
+
1186
+ result += "";
1187
+
1188
+ return operator === "=" ? result === check :
1189
+ operator === "!=" ? result !== check :
1190
+ operator === "^=" ? check && result.indexOf( check ) === 0 :
1191
+ operator === "*=" ? check && result.indexOf( check ) > -1 :
1192
+ operator === "$=" ? check && result.slice( -check.length ) === check :
1193
+ operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 :
1194
+ operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" :
1195
+ false;
1196
+ };
1197
+ },
1198
+
1199
+ "CHILD": function( type, what, argument, first, last ) {
1200
+ var simple = type.slice( 0, 3 ) !== "nth",
1201
+ forward = type.slice( -4 ) !== "last",
1202
+ ofType = what === "of-type";
1203
+
1204
+ return first === 1 && last === 0 ?
1205
+
1206
+ // Shortcut for :nth-*(n)
1207
+ function( elem ) {
1208
+ return !!elem.parentNode;
1209
+ } :
1210
+
1211
+ function( elem, context, xml ) {
1212
+ var cache, uniqueCache, outerCache, node, nodeIndex, start,
1213
+ dir = simple !== forward ? "nextSibling" : "previousSibling",
1214
+ parent = elem.parentNode,
1215
+ name = ofType && elem.nodeName.toLowerCase(),
1216
+ useCache = !xml && !ofType,
1217
+ diff = false;
1218
+
1219
+ if ( parent ) {
1220
+
1221
+ // :(first|last|only)-(child|of-type)
1222
+ if ( simple ) {
1223
+ while ( dir ) {
1224
+ node = elem;
1225
+ while ( (node = node[ dir ]) ) {
1226
+ if ( ofType ?
1227
+ node.nodeName.toLowerCase() === name :
1228
+ node.nodeType === 1 ) {
1229
+
1230
+ return false;
1231
+ }
1232
+ }
1233
+ // Reverse direction for :only-* (if we haven't yet done so)
1234
+ start = dir = type === "only" && !start && "nextSibling";
1235
+ }
1236
+ return true;
1237
+ }
1238
+
1239
+ start = [ forward ? parent.firstChild : parent.lastChild ];
1240
+
1241
+ // non-xml :nth-child(...) stores cache data on `parent`
1242
+ if ( forward && useCache ) {
1243
+
1244
+ // Seek `elem` from a previously-cached index
1245
+
1246
+ // ...in a gzip-friendly way
1247
+ node = parent;
1248
+ outerCache = node[ expando ] || (node[ expando ] = {});
1249
+
1250
+ // Support: IE <9 only
1251
+ // Defend against cloned attroperties (jQuery gh-1709)
1252
+ uniqueCache = outerCache[ node.uniqueID ] ||
1253
+ (outerCache[ node.uniqueID ] = {});
1254
+
1255
+ cache = uniqueCache[ type ] || [];
1256
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1257
+ diff = nodeIndex && cache[ 2 ];
1258
+ node = nodeIndex && parent.childNodes[ nodeIndex ];
1259
+
1260
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1261
+
1262
+ // Fallback to seeking `elem` from the start
1263
+ (diff = nodeIndex = 0) || start.pop()) ) {
1264
+
1265
+ // When found, cache indexes on `parent` and break
1266
+ if ( node.nodeType === 1 && ++diff && node === elem ) {
1267
+ uniqueCache[ type ] = [ dirruns, nodeIndex, diff ];
1268
+ break;
1269
+ }
1270
+ }
1271
+
1272
+ } else {
1273
+ // Use previously-cached element index if available
1274
+ if ( useCache ) {
1275
+ // ...in a gzip-friendly way
1276
+ node = elem;
1277
+ outerCache = node[ expando ] || (node[ expando ] = {});
1278
+
1279
+ // Support: IE <9 only
1280
+ // Defend against cloned attroperties (jQuery gh-1709)
1281
+ uniqueCache = outerCache[ node.uniqueID ] ||
1282
+ (outerCache[ node.uniqueID ] = {});
1283
+
1284
+ cache = uniqueCache[ type ] || [];
1285
+ nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];
1286
+ diff = nodeIndex;
1287
+ }
1288
+
1289
+ // xml :nth-child(...)
1290
+ // or :nth-last-child(...) or :nth(-last)?-of-type(...)
1291
+ if ( diff === false ) {
1292
+ // Use the same loop as above to seek `elem` from the start
1293
+ while ( (node = ++nodeIndex && node && node[ dir ] ||
1294
+ (diff = nodeIndex = 0) || start.pop()) ) {
1295
+
1296
+ if ( ( ofType ?
1297
+ node.nodeName.toLowerCase() === name :
1298
+ node.nodeType === 1 ) &&
1299
+ ++diff ) {
1300
+
1301
+ // Cache the index of each encountered element
1302
+ if ( useCache ) {
1303
+ outerCache = node[ expando ] || (node[ expando ] = {});
1304
+
1305
+ // Support: IE <9 only
1306
+ // Defend against cloned attroperties (jQuery gh-1709)
1307
+ uniqueCache = outerCache[ node.uniqueID ] ||
1308
+ (outerCache[ node.uniqueID ] = {});
1309
+
1310
+ uniqueCache[ type ] = [ dirruns, diff ];
1311
+ }
1312
+
1313
+ if ( node === elem ) {
1314
+ break;
1315
+ }
1316
+ }
1317
+ }
1318
+ }
1319
+ }
1320
+
1321
+ // Incorporate the offset, then check against cycle size
1322
+ diff -= last;
1323
+ return diff === first || ( diff % first === 0 && diff / first >= 0 );
1324
+ }
1325
+ };
1326
+ },
1327
+
1328
+ "PSEUDO": function( pseudo, argument ) {
1329
+ // pseudo-class names are case-insensitive
1330
+ // http://www.w3.org/TR/selectors/#pseudo-classes
1331
+ // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
1332
+ // Remember that setFilters inherits from pseudos
1333
+ var args,
1334
+ fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||
1335
+ Sizzle.error( "unsupported pseudo: " + pseudo );
1336
+
1337
+ // The user may use createPseudo to indicate that
1338
+ // arguments are needed to create the filter function
1339
+ // just as Sizzle does
1340
+ if ( fn[ expando ] ) {
1341
+ return fn( argument );
1342
+ }
1343
+
1344
+ // But maintain support for old signatures
1345
+ if ( fn.length > 1 ) {
1346
+ args = [ pseudo, pseudo, "", argument ];
1347
+ return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?
1348
+ markFunction(function( seed, matches ) {
1349
+ var idx,
1350
+ matched = fn( seed, argument ),
1351
+ i = matched.length;
1352
+ while ( i-- ) {
1353
+ idx = indexOf( seed, matched[i] );
1354
+ seed[ idx ] = !( matches[ idx ] = matched[i] );
1355
+ }
1356
+ }) :
1357
+ function( elem ) {
1358
+ return fn( elem, 0, args );
1359
+ };
1360
+ }
1361
+
1362
+ return fn;
1363
+ }
1364
+ },
1365
+
1366
+ pseudos: {
1367
+ // Potentially complex pseudos
1368
+ "not": markFunction(function( selector ) {
1369
+ // Trim the selector passed to compile
1370
+ // to avoid treating leading and trailing
1371
+ // spaces as combinators
1372
+ var input = [],
1373
+ results = [],
1374
+ matcher = compile( selector.replace( rtrim, "$1" ) );
1375
+
1376
+ return matcher[ expando ] ?
1377
+ markFunction(function( seed, matches, context, xml ) {
1378
+ var elem,
1379
+ unmatched = matcher( seed, null, xml, [] ),
1380
+ i = seed.length;
1381
+
1382
+ // Match elements unmatched by `matcher`
1383
+ while ( i-- ) {
1384
+ if ( (elem = unmatched[i]) ) {
1385
+ seed[i] = !(matches[i] = elem);
1386
+ }
1387
+ }
1388
+ }) :
1389
+ function( elem, context, xml ) {
1390
+ input[0] = elem;
1391
+ matcher( input, null, xml, results );
1392
+ // Don't keep the element (issue #299)
1393
+ input[0] = null;
1394
+ return !results.pop();
1395
+ };
1396
+ }),
1397
+
1398
+ "has": markFunction(function( selector ) {
1399
+ return function( elem ) {
1400
+ return Sizzle( selector, elem ).length > 0;
1401
+ };
1402
+ }),
1403
+
1404
+ "contains": markFunction(function( text ) {
1405
+ text = text.replace( runescape, funescape );
1406
+ return function( elem ) {
1407
+ return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
1408
+ };
1409
+ }),
1410
+
1411
+ // "Whether an element is represented by a :lang() selector
1412
+ // is based solely on the element's language value
1413
+ // being equal to the identifier C,
1414
+ // or beginning with the identifier C immediately followed by "-".
1415
+ // The matching of C against the element's language value is performed case-insensitively.
1416
+ // The identifier C does not have to be a valid language name."
1417
+ // http://www.w3.org/TR/selectors/#lang-pseudo
1418
+ "lang": markFunction( function( lang ) {
1419
+ // lang value must be a valid identifier
1420
+ if ( !ridentifier.test(lang || "") ) {
1421
+ Sizzle.error( "unsupported lang: " + lang );
1422
+ }
1423
+ lang = lang.replace( runescape, funescape ).toLowerCase();
1424
+ return function( elem ) {
1425
+ var elemLang;
1426
+ do {
1427
+ if ( (elemLang = documentIsHTML ?
1428
+ elem.lang :
1429
+ elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) {
1430
+
1431
+ elemLang = elemLang.toLowerCase();
1432
+ return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0;
1433
+ }
1434
+ } while ( (elem = elem.parentNode) && elem.nodeType === 1 );
1435
+ return false;
1436
+ };
1437
+ }),
1438
+
1439
+ // Miscellaneous
1440
+ "target": function( elem ) {
1441
+ var hash = window.location && window.location.hash;
1442
+ return hash && hash.slice( 1 ) === elem.id;
1443
+ },
1444
+
1445
+ "root": function( elem ) {
1446
+ return elem === docElem;
1447
+ },
1448
+
1449
+ "focus": function( elem ) {
1450
+ return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);
1451
+ },
1452
+
1453
+ // Boolean properties
1454
+ "enabled": createDisabledPseudo( false ),
1455
+ "disabled": createDisabledPseudo( true ),
1456
+
1457
+ "checked": function( elem ) {
1458
+ // In CSS3, :checked should return both checked and selected elements
1459
+ // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
1460
+ var nodeName = elem.nodeName.toLowerCase();
1461
+ return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
1462
+ },
1463
+
1464
+ "selected": function( elem ) {
1465
+ // Accessing this property makes selected-by-default
1466
+ // options in Safari work properly
1467
+ if ( elem.parentNode ) {
1468
+ elem.parentNode.selectedIndex;
1469
+ }
1470
+
1471
+ return elem.selected === true;
1472
+ },
1473
+
1474
+ // Contents
1475
+ "empty": function( elem ) {
1476
+ // http://www.w3.org/TR/selectors/#empty-pseudo
1477
+ // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),
1478
+ // but not by others (comment: 8; processing instruction: 7; etc.)
1479
+ // nodeType < 6 works because attributes (2) do not appear as children
1480
+ for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {
1481
+ if ( elem.nodeType < 6 ) {
1482
+ return false;
1483
+ }
1484
+ }
1485
+ return true;
1486
+ },
1487
+
1488
+ "parent": function( elem ) {
1489
+ return !Expr.pseudos["empty"]( elem );
1490
+ },
1491
+
1492
+ // Element/input types
1493
+ "header": function( elem ) {
1494
+ return rheader.test( elem.nodeName );
1495
+ },
1496
+
1497
+ "input": function( elem ) {
1498
+ return rinputs.test( elem.nodeName );
1499
+ },
1500
+
1501
+ "button": function( elem ) {
1502
+ var name = elem.nodeName.toLowerCase();
1503
+ return name === "input" && elem.type === "button" || name === "button";
1504
+ },
1505
+
1506
+ "text": function( elem ) {
1507
+ var attr;
1508
+ return elem.nodeName.toLowerCase() === "input" &&
1509
+ elem.type === "text" &&
1510
+
1511
+ // Support: IE<8
1512
+ // New HTML5 attribute values (e.g., "search") appear with elem.type === "text"
1513
+ ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" );
1514
+ },
1515
+
1516
+ // Position-in-collection
1517
+ "first": createPositionalPseudo(function() {
1518
+ return [ 0 ];
1519
+ }),
1520
+
1521
+ "last": createPositionalPseudo(function( matchIndexes, length ) {
1522
+ return [ length - 1 ];
1523
+ }),
1524
+
1525
+ "eq": createPositionalPseudo(function( matchIndexes, length, argument ) {
1526
+ return [ argument < 0 ? argument + length : argument ];
1527
+ }),
1528
+
1529
+ "even": createPositionalPseudo(function( matchIndexes, length ) {
1530
+ var i = 0;
1531
+ for ( ; i < length; i += 2 ) {
1532
+ matchIndexes.push( i );
1533
+ }
1534
+ return matchIndexes;
1535
+ }),
1536
+
1537
+ "odd": createPositionalPseudo(function( matchIndexes, length ) {
1538
+ var i = 1;
1539
+ for ( ; i < length; i += 2 ) {
1540
+ matchIndexes.push( i );
1541
+ }
1542
+ return matchIndexes;
1543
+ }),
1544
+
1545
+ "lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1546
+ var i = argument < 0 ? argument + length : argument;
1547
+ for ( ; --i >= 0; ) {
1548
+ matchIndexes.push( i );
1549
+ }
1550
+ return matchIndexes;
1551
+ }),
1552
+
1553
+ "gt": createPositionalPseudo(function( matchIndexes, length, argument ) {
1554
+ var i = argument < 0 ? argument + length : argument;
1555
+ for ( ; ++i < length; ) {
1556
+ matchIndexes.push( i );
1557
+ }
1558
+ return matchIndexes;
1559
+ })
1560
+ }
1561
+ };
1562
+
1563
+ Expr.pseudos["nth"] = Expr.pseudos["eq"];
1564
+
1565
+ // Add button/input type pseudos
1566
+ for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {
1567
+ Expr.pseudos[ i ] = createInputPseudo( i );
1568
+ }
1569
+ for ( i in { submit: true, reset: true } ) {
1570
+ Expr.pseudos[ i ] = createButtonPseudo( i );
1571
+ }
1572
+
1573
+ // Easy API for creating new setFilters
1574
+ function setFilters() {}
1575
+ setFilters.prototype = Expr.filters = Expr.pseudos;
1576
+ Expr.setFilters = new setFilters();
1577
+
1578
+ tokenize = Sizzle.tokenize = function( selector, parseOnly ) {
1579
+ var matched, match, tokens, type,
1580
+ soFar, groups, preFilters,
1581
+ cached = tokenCache[ selector + " " ];
1582
+
1583
+ if ( cached ) {
1584
+ return parseOnly ? 0 : cached.slice( 0 );
1585
+ }
1586
+
1587
+ soFar = selector;
1588
+ groups = [];
1589
+ preFilters = Expr.preFilter;
1590
+
1591
+ while ( soFar ) {
1592
+
1593
+ // Comma and first run
1594
+ if ( !matched || (match = rcomma.exec( soFar )) ) {
1595
+ if ( match ) {
1596
+ // Don't consume trailing commas as valid
1597
+ soFar = soFar.slice( match[0].length ) || soFar;
1598
+ }
1599
+ groups.push( (tokens = []) );
1600
+ }
1601
+
1602
+ matched = false;
1603
+
1604
+ // Combinators
1605
+ if ( (match = rcombinators.exec( soFar )) ) {
1606
+ matched = match.shift();
1607
+ tokens.push({
1608
+ value: matched,
1609
+ // Cast descendant combinators to space
1610
+ type: match[0].replace( rtrim, " " )
1611
+ });
1612
+ soFar = soFar.slice( matched.length );
1613
+ }
1614
+
1615
+ // Filters
1616
+ for ( type in Expr.filter ) {
1617
+ if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||
1618
+ (match = preFilters[ type ]( match ))) ) {
1619
+ matched = match.shift();
1620
+ tokens.push({
1621
+ value: matched,
1622
+ type: type,
1623
+ matches: match
1624
+ });
1625
+ soFar = soFar.slice( matched.length );
1626
+ }
1627
+ }
1628
+
1629
+ if ( !matched ) {
1630
+ break;
1631
+ }
1632
+ }
1633
+
1634
+ // Return the length of the invalid excess
1635
+ // if we're just parsing
1636
+ // Otherwise, throw an error or return tokens
1637
+ return parseOnly ?
1638
+ soFar.length :
1639
+ soFar ?
1640
+ Sizzle.error( selector ) :
1641
+ // Cache the tokens
1642
+ tokenCache( selector, groups ).slice( 0 );
1643
+ };
1644
+
1645
+ function toSelector( tokens ) {
1646
+ var i = 0,
1647
+ len = tokens.length,
1648
+ selector = "";
1649
+ for ( ; i < len; i++ ) {
1650
+ selector += tokens[i].value;
1651
+ }
1652
+ return selector;
1653
+ }
1654
+
1655
+ function addCombinator( matcher, combinator, base ) {
1656
+ var dir = combinator.dir,
1657
+ skip = combinator.next,
1658
+ key = skip || dir,
1659
+ checkNonElements = base && key === "parentNode",
1660
+ doneName = done++;
1661
+
1662
+ return combinator.first ?
1663
+ // Check against closest ancestor/preceding element
1664
+ function( elem, context, xml ) {
1665
+ while ( (elem = elem[ dir ]) ) {
1666
+ if ( elem.nodeType === 1 || checkNonElements ) {
1667
+ return matcher( elem, context, xml );
1668
+ }
1669
+ }
1670
+ } :
1671
+
1672
+ // Check against all ancestor/preceding elements
1673
+ function( elem, context, xml ) {
1674
+ var oldCache, uniqueCache, outerCache,
1675
+ newCache = [ dirruns, doneName ];
1676
+
1677
+ // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching
1678
+ if ( xml ) {
1679
+ while ( (elem = elem[ dir ]) ) {
1680
+ if ( elem.nodeType === 1 || checkNonElements ) {
1681
+ if ( matcher( elem, context, xml ) ) {
1682
+ return true;
1683
+ }
1684
+ }
1685
+ }
1686
+ } else {
1687
+ while ( (elem = elem[ dir ]) ) {
1688
+ if ( elem.nodeType === 1 || checkNonElements ) {
1689
+ outerCache = elem[ expando ] || (elem[ expando ] = {});
1690
+
1691
+ // Support: IE <9 only
1692
+ // Defend against cloned attroperties (jQuery gh-1709)
1693
+ uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});
1694
+
1695
+ if ( skip && skip === elem.nodeName.toLowerCase() ) {
1696
+ elem = elem[ dir ] || elem;
1697
+ } else if ( (oldCache = uniqueCache[ key ]) &&
1698
+ oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {
1699
+
1700
+ // Assign to newCache so results back-propagate to previous elements
1701
+ return (newCache[ 2 ] = oldCache[ 2 ]);
1702
+ } else {
1703
+ // Reuse newcache so results back-propagate to previous elements
1704
+ uniqueCache[ key ] = newCache;
1705
+
1706
+ // A match means we're done; a fail means we have to keep checking
1707
+ if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {
1708
+ return true;
1709
+ }
1710
+ }
1711
+ }
1712
+ }
1713
+ }
1714
+ };
1715
+ }
1716
+
1717
+ function elementMatcher( matchers ) {
1718
+ return matchers.length > 1 ?
1719
+ function( elem, context, xml ) {
1720
+ var i = matchers.length;
1721
+ while ( i-- ) {
1722
+ if ( !matchers[i]( elem, context, xml ) ) {
1723
+ return false;
1724
+ }
1725
+ }
1726
+ return true;
1727
+ } :
1728
+ matchers[0];
1729
+ }
1730
+
1731
+ function multipleContexts( selector, contexts, results ) {
1732
+ var i = 0,
1733
+ len = contexts.length;
1734
+ for ( ; i < len; i++ ) {
1735
+ Sizzle( selector, contexts[i], results );
1736
+ }
1737
+ return results;
1738
+ }
1739
+
1740
+ function condense( unmatched, map, filter, context, xml ) {
1741
+ var elem,
1742
+ newUnmatched = [],
1743
+ i = 0,
1744
+ len = unmatched.length,
1745
+ mapped = map != null;
1746
+
1747
+ for ( ; i < len; i++ ) {
1748
+ if ( (elem = unmatched[i]) ) {
1749
+ if ( !filter || filter( elem, context, xml ) ) {
1750
+ newUnmatched.push( elem );
1751
+ if ( mapped ) {
1752
+ map.push( i );
1753
+ }
1754
+ }
1755
+ }
1756
+ }
1757
+
1758
+ return newUnmatched;
1759
+ }
1760
+
1761
+ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {
1762
+ if ( postFilter && !postFilter[ expando ] ) {
1763
+ postFilter = setMatcher( postFilter );
1764
+ }
1765
+ if ( postFinder && !postFinder[ expando ] ) {
1766
+ postFinder = setMatcher( postFinder, postSelector );
1767
+ }
1768
+ return markFunction(function( seed, results, context, xml ) {
1769
+ var temp, i, elem,
1770
+ preMap = [],
1771
+ postMap = [],
1772
+ preexisting = results.length,
1773
+
1774
+ // Get initial elements from seed or context
1775
+ elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ),
1776
+
1777
+ // Prefilter to get matcher input, preserving a map for seed-results synchronization
1778
+ matcherIn = preFilter && ( seed || !selector ) ?
1779
+ condense( elems, preMap, preFilter, context, xml ) :
1780
+ elems,
1781
+
1782
+ matcherOut = matcher ?
1783
+ // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,
1784
+ postFinder || ( seed ? preFilter : preexisting || postFilter ) ?
1785
+
1786
+ // ...intermediate processing is necessary
1787
+ [] :
1788
+
1789
+ // ...otherwise use results directly
1790
+ results :
1791
+ matcherIn;
1792
+
1793
+ // Find primary matches
1794
+ if ( matcher ) {
1795
+ matcher( matcherIn, matcherOut, context, xml );
1796
+ }
1797
+
1798
+ // Apply postFilter
1799
+ if ( postFilter ) {
1800
+ temp = condense( matcherOut, postMap );
1801
+ postFilter( temp, [], context, xml );
1802
+
1803
+ // Un-match failing elements by moving them back to matcherIn
1804
+ i = temp.length;
1805
+ while ( i-- ) {
1806
+ if ( (elem = temp[i]) ) {
1807
+ matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);
1808
+ }
1809
+ }
1810
+ }
1811
+
1812
+ if ( seed ) {
1813
+ if ( postFinder || preFilter ) {
1814
+ if ( postFinder ) {
1815
+ // Get the final matcherOut by condensing this intermediate into postFinder contexts
1816
+ temp = [];
1817
+ i = matcherOut.length;
1818
+ while ( i-- ) {
1819
+ if ( (elem = matcherOut[i]) ) {
1820
+ // Restore matcherIn since elem is not yet a final match
1821
+ temp.push( (matcherIn[i] = elem) );
1822
+ }
1823
+ }
1824
+ postFinder( null, (matcherOut = []), temp, xml );
1825
+ }
1826
+
1827
+ // Move matched elements from seed to results to keep them synchronized
1828
+ i = matcherOut.length;
1829
+ while ( i-- ) {
1830
+ if ( (elem = matcherOut[i]) &&
1831
+ (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {
1832
+
1833
+ seed[temp] = !(results[temp] = elem);
1834
+ }
1835
+ }
1836
+ }
1837
+
1838
+ // Add elements to results, through postFinder if defined
1839
+ } else {
1840
+ matcherOut = condense(
1841
+ matcherOut === results ?
1842
+ matcherOut.splice( preexisting, matcherOut.length ) :
1843
+ matcherOut
1844
+ );
1845
+ if ( postFinder ) {
1846
+ postFinder( null, results, matcherOut, xml );
1847
+ } else {
1848
+ push.apply( results, matcherOut );
1849
+ }
1850
+ }
1851
+ });
1852
+ }
1853
+
1854
+ function matcherFromTokens( tokens ) {
1855
+ var checkContext, matcher, j,
1856
+ len = tokens.length,
1857
+ leadingRelative = Expr.relative[ tokens[0].type ],
1858
+ implicitRelative = leadingRelative || Expr.relative[" "],
1859
+ i = leadingRelative ? 1 : 0,
1860
+
1861
+ // The foundational matcher ensures that elements are reachable from top-level context(s)
1862
+ matchContext = addCombinator( function( elem ) {
1863
+ return elem === checkContext;
1864
+ }, implicitRelative, true ),
1865
+ matchAnyContext = addCombinator( function( elem ) {
1866
+ return indexOf( checkContext, elem ) > -1;
1867
+ }, implicitRelative, true ),
1868
+ matchers = [ function( elem, context, xml ) {
1869
+ var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (
1870
+ (checkContext = context).nodeType ?
1871
+ matchContext( elem, context, xml ) :
1872
+ matchAnyContext( elem, context, xml ) );
1873
+ // Avoid hanging onto element (issue #299)
1874
+ checkContext = null;
1875
+ return ret;
1876
+ } ];
1877
+
1878
+ for ( ; i < len; i++ ) {
1879
+ if ( (matcher = Expr.relative[ tokens[i].type ]) ) {
1880
+ matchers = [ addCombinator(elementMatcher( matchers ), matcher) ];
1881
+ } else {
1882
+ matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );
1883
+
1884
+ // Return special upon seeing a positional matcher
1885
+ if ( matcher[ expando ] ) {
1886
+ // Find the next relative operator (if any) for proper handling
1887
+ j = ++i;
1888
+ for ( ; j < len; j++ ) {
1889
+ if ( Expr.relative[ tokens[j].type ] ) {
1890
+ break;
1891
+ }
1892
+ }
1893
+ return setMatcher(
1894
+ i > 1 && elementMatcher( matchers ),
1895
+ i > 1 && toSelector(
1896
+ // If the preceding token was a descendant combinator, insert an implicit any-element `*`
1897
+ tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" })
1898
+ ).replace( rtrim, "$1" ),
1899
+ matcher,
1900
+ i < j && matcherFromTokens( tokens.slice( i, j ) ),
1901
+ j < len && matcherFromTokens( (tokens = tokens.slice( j )) ),
1902
+ j < len && toSelector( tokens )
1903
+ );
1904
+ }
1905
+ matchers.push( matcher );
1906
+ }
1907
+ }
1908
+
1909
+ return elementMatcher( matchers );
1910
+ }
1911
+
1912
+ function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
1913
+ var bySet = setMatchers.length > 0,
1914
+ byElement = elementMatchers.length > 0,
1915
+ superMatcher = function( seed, context, xml, results, outermost ) {
1916
+ var elem, j, matcher,
1917
+ matchedCount = 0,
1918
+ i = "0",
1919
+ unmatched = seed && [],
1920
+ setMatched = [],
1921
+ contextBackup = outermostContext,
1922
+ // We must always have either seed elements or outermost context
1923
+ elems = seed || byElement && Expr.find["TAG"]( "*", outermost ),
1924
+ // Use integer dirruns iff this is the outermost matcher
1925
+ dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),
1926
+ len = elems.length;
1927
+
1928
+ if ( outermost ) {
1929
+ outermostContext = context === document || context || outermost;
1930
+ }
1931
+
1932
+ // Add elements passing elementMatchers directly to results
1933
+ // Support: IE<9, Safari
1934
+ // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id
1935
+ for ( ; i !== len && (elem = elems[i]) != null; i++ ) {
1936
+ if ( byElement && elem ) {
1937
+ j = 0;
1938
+ if ( !context && elem.ownerDocument !== document ) {
1939
+ setDocument( elem );
1940
+ xml = !documentIsHTML;
1941
+ }
1942
+ while ( (matcher = elementMatchers[j++]) ) {
1943
+ if ( matcher( elem, context || document, xml) ) {
1944
+ results.push( elem );
1945
+ break;
1946
+ }
1947
+ }
1948
+ if ( outermost ) {
1949
+ dirruns = dirrunsUnique;
1950
+ }
1951
+ }
1952
+
1953
+ // Track unmatched elements for set filters
1954
+ if ( bySet ) {
1955
+ // They will have gone through all possible matchers
1956
+ if ( (elem = !matcher && elem) ) {
1957
+ matchedCount--;
1958
+ }
1959
+
1960
+ // Lengthen the array for every element, matched or not
1961
+ if ( seed ) {
1962
+ unmatched.push( elem );
1963
+ }
1964
+ }
1965
+ }
1966
+
1967
+ // `i` is now the count of elements visited above, and adding it to `matchedCount`
1968
+ // makes the latter nonnegative.
1969
+ matchedCount += i;
1970
+
1971
+ // Apply set filters to unmatched elements
1972
+ // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`
1973
+ // equals `i`), unless we didn't visit _any_ elements in the above loop because we have
1974
+ // no element matchers and no seed.
1975
+ // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that
1976
+ // case, which will result in a "00" `matchedCount` that differs from `i` but is also
1977
+ // numerically zero.
1978
+ if ( bySet && i !== matchedCount ) {
1979
+ j = 0;
1980
+ while ( (matcher = setMatchers[j++]) ) {
1981
+ matcher( unmatched, setMatched, context, xml );
1982
+ }
1983
+
1984
+ if ( seed ) {
1985
+ // Reintegrate element matches to eliminate the need for sorting
1986
+ if ( matchedCount > 0 ) {
1987
+ while ( i-- ) {
1988
+ if ( !(unmatched[i] || setMatched[i]) ) {
1989
+ setMatched[i] = pop.call( results );
1990
+ }
1991
+ }
1992
+ }
1993
+
1994
+ // Discard index placeholder values to get only actual matches
1995
+ setMatched = condense( setMatched );
1996
+ }
1997
+
1998
+ // Add matches to results
1999
+ push.apply( results, setMatched );
2000
+
2001
+ // Seedless set matches succeeding multiple successful matchers stipulate sorting
2002
+ if ( outermost && !seed && setMatched.length > 0 &&
2003
+ ( matchedCount + setMatchers.length ) > 1 ) {
2004
+
2005
+ Sizzle.uniqueSort( results );
2006
+ }
2007
+ }
2008
+
2009
+ // Override manipulation of globals by nested matchers
2010
+ if ( outermost ) {
2011
+ dirruns = dirrunsUnique;
2012
+ outermostContext = contextBackup;
2013
+ }
2014
+
2015
+ return unmatched;
2016
+ };
2017
+
2018
+ return bySet ?
2019
+ markFunction( superMatcher ) :
2020
+ superMatcher;
2021
+ }
2022
+
2023
+ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {
2024
+ var i,
2025
+ setMatchers = [],
2026
+ elementMatchers = [],
2027
+ cached = compilerCache[ selector + " " ];
2028
+
2029
+ if ( !cached ) {
2030
+ // Generate a function of recursive functions that can be used to check each element
2031
+ if ( !match ) {
2032
+ match = tokenize( selector );
2033
+ }
2034
+ i = match.length;
2035
+ while ( i-- ) {
2036
+ cached = matcherFromTokens( match[i] );
2037
+ if ( cached[ expando ] ) {
2038
+ setMatchers.push( cached );
2039
+ } else {
2040
+ elementMatchers.push( cached );
2041
+ }
2042
+ }
2043
+
2044
+ // Cache the compiled function
2045
+ cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );
2046
+
2047
+ // Save selector and tokenization
2048
+ cached.selector = selector;
2049
+ }
2050
+ return cached;
2051
+ };
2052
+
2053
+ /**
2054
+ * A low-level selection function that works with Sizzle's compiled
2055
+ * selector functions
2056
+ * @param {String|Function} selector A selector or a pre-compiled
2057
+ * selector function built with Sizzle.compile
2058
+ * @param {Element} context
2059
+ * @param {Array} [results]
2060
+ * @param {Array} [seed] A set of elements to match against
2061
+ */
2062
+ select = Sizzle.select = function( selector, context, results, seed ) {
2063
+ var i, tokens, token, type, find,
2064
+ compiled = typeof selector === "function" && selector,
2065
+ match = !seed && tokenize( (selector = compiled.selector || selector) );
2066
+
2067
+ results = results || [];
2068
+
2069
+ // Try to minimize operations if there is only one selector in the list and no seed
2070
+ // (the latter of which guarantees us context)
2071
+ if ( match.length === 1 ) {
2072
+
2073
+ // Reduce context if the leading compound selector is an ID
2074
+ tokens = match[0] = match[0].slice( 0 );
2075
+ if ( tokens.length > 2 && (token = tokens[0]).type === "ID" &&
2076
+ support.getById && context.nodeType === 9 && documentIsHTML &&
2077
+ Expr.relative[ tokens[1].type ] ) {
2078
+
2079
+ context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];
2080
+ if ( !context ) {
2081
+ return results;
2082
+
2083
+ // Precompiled matchers will still verify ancestry, so step up a level
2084
+ } else if ( compiled ) {
2085
+ context = context.parentNode;
2086
+ }
2087
+
2088
+ selector = selector.slice( tokens.shift().value.length );
2089
+ }
2090
+
2091
+ // Fetch a seed set for right-to-left matching
2092
+ i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length;
2093
+ while ( i-- ) {
2094
+ token = tokens[i];
2095
+
2096
+ // Abort if we hit a combinator
2097
+ if ( Expr.relative[ (type = token.type) ] ) {
2098
+ break;
2099
+ }
2100
+ if ( (find = Expr.find[ type ]) ) {
2101
+ // Search, expanding context for leading sibling combinators
2102
+ if ( (seed = find(
2103
+ token.matches[0].replace( runescape, funescape ),
2104
+ rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context
2105
+ )) ) {
2106
+
2107
+ // If seed is empty or no tokens remain, we can return early
2108
+ tokens.splice( i, 1 );
2109
+ selector = seed.length && toSelector( tokens );
2110
+ if ( !selector ) {
2111
+ push.apply( results, seed );
2112
+ return results;
2113
+ }
2114
+
2115
+ break;
2116
+ }
2117
+ }
2118
+ }
2119
+ }
2120
+
2121
+ // Compile and execute a filtering function if one is not provided
2122
+ // Provide `match` to avoid retokenization if we modified the selector above
2123
+ ( compiled || compile( selector, match ) )(
2124
+ seed,
2125
+ context,
2126
+ !documentIsHTML,
2127
+ results,
2128
+ !context || rsibling.test( selector ) && testContext( context.parentNode ) || context
2129
+ );
2130
+ return results;
2131
+ };
2132
+
2133
+ // One-time assignments
2134
+
2135
+ // Sort stability
2136
+ support.sortStable = expando.split("").sort( sortOrder ).join("") === expando;
2137
+
2138
+ // Support: Chrome 14-35+
2139
+ // Always assume duplicates if they aren't passed to the comparison function
2140
+ support.detectDuplicates = !!hasDuplicate;
2141
+
2142
+ // Initialize against the default document
2143
+ setDocument();
2144
+
2145
+ // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)
2146
+ // Detached nodes confoundingly follow *each other*
2147
+ support.sortDetached = assert(function( el ) {
2148
+ // Should return 1, but returns 4 (following)
2149
+ return el.compareDocumentPosition( document.createElement("fieldset") ) & 1;
2150
+ });
2151
+
2152
+ // Support: IE<8
2153
+ // Prevent attribute/property "interpolation"
2154
+ // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
2155
+ if ( !assert(function( el ) {
2156
+ el.innerHTML = "<a href='#'></a>";
2157
+ return el.firstChild.getAttribute("href") === "#" ;
2158
+ }) ) {
2159
+ addHandle( "type|href|height|width", function( elem, name, isXML ) {
2160
+ if ( !isXML ) {
2161
+ return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 );
2162
+ }
2163
+ });
2164
+ }
2165
+
2166
+ // Support: IE<9
2167
+ // Use defaultValue in place of getAttribute("value")
2168
+ if ( !support.attributes || !assert(function( el ) {
2169
+ el.innerHTML = "<input/>";
2170
+ el.firstChild.setAttribute( "value", "" );
2171
+ return el.firstChild.getAttribute( "value" ) === "";
2172
+ }) ) {
2173
+ addHandle( "value", function( elem, name, isXML ) {
2174
+ if ( !isXML && elem.nodeName.toLowerCase() === "input" ) {
2175
+ return elem.defaultValue;
2176
+ }
2177
+ });
2178
+ }
2179
+
2180
+ // Support: IE<9
2181
+ // Use getAttributeNode to fetch booleans when getAttribute lies
2182
+ if ( !assert(function( el ) {
2183
+ return el.getAttribute("disabled") == null;
2184
+ }) ) {
2185
+ addHandle( booleans, function( elem, name, isXML ) {
2186
+ var val;
2187
+ if ( !isXML ) {
2188
+ return elem[ name ] === true ? name.toLowerCase() :
2189
+ (val = elem.getAttributeNode( name )) && val.specified ?
2190
+ val.value :
2191
+ null;
2192
+ }
2193
+ });
2194
+ }
2195
+
2196
+ // EXPOSE
2197
+ var _sizzle = window.Sizzle;
2198
+
2199
+ Sizzle.noConflict = function() {
2200
+ if ( window.Sizzle === Sizzle ) {
2201
+ window.Sizzle = _sizzle;
2202
+ }
2203
+
2204
+ return Sizzle;
2205
+ };
2206
+
2207
+ if ( typeof define === "function" && define.amd ) {
2208
+ define(function() { return Sizzle; });
2209
+ // Sizzle requires that there be a global window in Common-JS like environments
2210
+ } else if ( typeof module !== "undefined" && module.exports ) {
2211
+ module.exports = Sizzle;
2212
+ } else {
2213
+ window.Sizzle = Sizzle;
2214
+ }
2215
+ // EXPOSE
2216
+
2217
+ })( window );