less 2.4.0 → 2.5.3

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 (405) hide show
  1. package/.idea/jsLibraryMappings.xml +7 -7
  2. package/.idea/less.js.iml +9 -16
  3. package/.idea/libraries/less_js_node_modules.xml +14 -0
  4. package/.idea/misc.xml +14 -5
  5. package/.idea/modules.xml +8 -9
  6. package/.idea/vcs.xml +6 -7
  7. package/.idea/workspace.xml +592 -806
  8. package/.jscsrc +72 -72
  9. package/.travis.yml +1 -0
  10. package/CHANGELOG.md +54 -8
  11. package/Gruntfile.js +40 -13
  12. package/README.md +2 -0
  13. package/appveyor.yml +0 -6
  14. package/bin/lessc +22 -24
  15. package/bower.json +1 -2
  16. package/dist/less-rolledup.js +8572 -0
  17. package/dist/less.js +807 -401
  18. package/dist/less.min.js +9 -8
  19. package/lib/less/contexts.js +2 -0
  20. package/lib/less/environment/abstract-file-manager.js +5 -1
  21. package/lib/less/functions/color.js +46 -12
  22. package/lib/less/functions/function-caller.js +31 -2
  23. package/lib/less/functions/function-registry.js +28 -17
  24. package/lib/less/functions/math-helper.js +16 -0
  25. package/lib/less/functions/math.js +4 -16
  26. package/lib/less/functions/number.js +7 -2
  27. package/lib/less/functions/string.js +5 -3
  28. package/lib/less/functions/svg.js +19 -11
  29. package/lib/less/functions/types.js +1 -6
  30. package/lib/less/import-manager.js +8 -3
  31. package/lib/less/index.js +1 -1
  32. package/lib/less/parser/parser-input.js +55 -54
  33. package/lib/less/parser/parser.js +168 -52
  34. package/lib/less/plugins/function-importer.js +35 -0
  35. package/lib/less/source-map-output.js +1 -2
  36. package/lib/less/tree/anonymous.js +10 -2
  37. package/lib/less/tree/color.js +4 -1
  38. package/lib/less/tree/comment.js +0 -3
  39. package/lib/less/tree/dimension.js +5 -3
  40. package/lib/less/tree/directive.js +40 -15
  41. package/lib/less/tree/expression.js +5 -0
  42. package/lib/less/tree/import.js +22 -10
  43. package/lib/less/tree/media.js +3 -23
  44. package/lib/less/tree/mixin-call.js +17 -7
  45. package/lib/less/tree/mixin-definition.js +20 -6
  46. package/lib/less/tree/rule.js +19 -1
  47. package/lib/less/tree/ruleset.js +40 -27
  48. package/lib/less/tree/selector.js +8 -1
  49. package/lib/less/visitors/extend-visitor.js +1 -4
  50. package/lib/less/visitors/import-visitor.js +17 -2
  51. package/lib/less/visitors/join-selector-visitor.js +6 -0
  52. package/lib/less/visitors/to-css-visitor.js +48 -14
  53. package/lib/less-browser/bootstrap.js +5 -6
  54. package/lib/less-browser/index.js +20 -12
  55. package/lib/less-node/image-size.js +54 -31
  56. package/lib/less-node/index.js +1 -1
  57. package/lib/less-node/lessc-helper.js +2 -2
  58. package/lib/less-rhino/index.js +12 -8
  59. package/package.json +9 -13
  60. package/test/browser/less/urls.less +7 -1
  61. package/test/browser/less.js +30 -0
  62. package/test/browser/runner-VisitorPlugin-options.js +3 -0
  63. package/test/browser/runner-VisitorPlugin.js +3 -0
  64. package/test/browser/runner-filemanagerPlugin-options.js +4 -0
  65. package/test/browser/runner-filemanagerPlugin.js +3 -0
  66. package/test/browser/runner-global-vars-options.js +2 -1
  67. package/test/browser/runner-main-options.js +11 -11
  68. package/test/browser/runner-postProcessor.js +1 -1
  69. package/test/browser/runner-postProcessorPlugin-options.js +3 -0
  70. package/test/browser/runner-postProcessorPlugin.js +3 -0
  71. package/test/browser/runner-preProcessorPlugin-options.js +3 -0
  72. package/test/browser/runner-preProcessorPlugin.js +3 -0
  73. package/test/css/comments2.css +1 -1
  74. package/test/css/compression/compression.css +1 -1
  75. package/test/css/detached-rulesets.css +5 -0
  76. package/test/css/directives-bubling.css +119 -0
  77. package/test/css/extract-and-length.css +1 -1
  78. package/test/css/filemanagerPlugin/filemanager.css +3 -0
  79. package/test/css/functions.css +17 -1
  80. package/test/css/import-reference.css +5 -1
  81. package/test/css/import.css +4 -0
  82. package/test/css/include-path/include-path.css +4 -1
  83. package/test/css/include-path-string/include-path-string.css +3 -0
  84. package/test/css/legacy/legacy.css +14 -0
  85. package/test/css/media.css +0 -1
  86. package/test/css/mixins-args.css +51 -1
  87. package/test/css/plugin.css +44 -0
  88. package/test/css/postProcessorPlugin/postProcessor.css +4 -0
  89. package/test/css/preProcessorPlugin/preProcessor.css +3 -0
  90. package/test/css/scope.css +1 -1
  91. package/test/css/strings.css +1 -1
  92. package/test/css/url-args/urls.css +5 -5
  93. package/test/css/urls.css +8 -8
  94. package/test/css/variables.css +5 -5
  95. package/test/css/visitorPlugin/visitor.css +3 -0
  96. package/test/data/image.jpg +0 -0
  97. package/test/data/image.svg +2 -1
  98. package/test/data/page.html +1 -1
  99. package/test/index.js +5 -0
  100. package/test/less/detached-rulesets.less +9 -0
  101. package/test/less/directives-bubling.less +142 -0
  102. package/test/less/errors/at-rules-undefined-var.txt +4 -4
  103. package/test/less/errors/css-guard-default-func.txt +4 -4
  104. package/test/less/errors/javascript-undefined-var.txt +4 -4
  105. package/test/less/errors/mixins-guards-default-func-1.txt +4 -4
  106. package/test/less/errors/mixins-guards-default-func-2.txt +4 -4
  107. package/test/less/errors/mixins-guards-default-func-3.txt +4 -4
  108. package/test/less/errors/{parse-error-extra-parens.less → parse-error-media-no-block-1.less} +0 -0
  109. package/test/less/errors/parse-error-media-no-block-1.txt +3 -0
  110. package/test/less/errors/parse-error-media-no-block-2.less +1 -0
  111. package/test/less/errors/parse-error-media-no-block-2.txt +2 -0
  112. package/test/less/errors/parse-error-media-no-block-3.less +4 -0
  113. package/test/less/errors/parse-error-media-no-block-3.txt +3 -0
  114. package/test/less/errors/percentage-non-number-argument.less +3 -0
  115. package/test/less/errors/percentage-non-number-argument.txt +4 -0
  116. package/test/less/errors/property-interp-not-defined.txt +2 -2
  117. package/test/less/errors/svg-gradient2.txt +1 -1
  118. package/test/less/errors/svg-gradient3.txt +1 -1
  119. package/test/less/errors/svg-gradient4.less +4 -0
  120. package/test/less/errors/svg-gradient4.txt +4 -0
  121. package/test/less/errors/svg-gradient5.less +4 -0
  122. package/test/less/errors/svg-gradient5.txt +4 -0
  123. package/test/less/errors/svg-gradient6.less +4 -0
  124. package/test/less/errors/svg-gradient6.txt +4 -0
  125. package/test/less/filemanagerPlugin/colors.test +1 -0
  126. package/test/less/filemanagerPlugin/filemanager.less +4 -0
  127. package/test/less/functions.less +20 -2
  128. package/test/less/import/css-import.less +1 -0
  129. package/test/less/import/import-inline-invalid-css.less +1 -0
  130. package/test/less/import/import-reference.less +10 -1
  131. package/test/less/import/import-test-a.less +1 -0
  132. package/test/less/import-reference.less +4 -1
  133. package/test/less/import.less +1 -0
  134. package/test/less/include-path/include-path.less +3 -1
  135. package/test/less/include-path-string/include-path-string.less +3 -0
  136. package/test/less/legacy/legacy.less +14 -0
  137. package/test/less/mixins-args.less +48 -0
  138. package/test/less/mixins-guards.less +9 -0
  139. package/test/less/no-output.less +1 -1
  140. package/test/less/plugin/plugin-global.js +9 -0
  141. package/test/less/plugin/plugin-local.js +8 -0
  142. package/test/less/plugin/plugin-transitive.js +5 -0
  143. package/test/less/plugin/plugin-transitive.less +5 -0
  144. package/test/less/plugin.less +85 -0
  145. package/test/less/postProcessorPlugin/postProcessor.less +4 -0
  146. package/test/less/preProcessorPlugin/preProcessor.less +3 -0
  147. package/test/less/sourcemaps/imported.css +6 -6
  148. package/test/less/visitorPlugin/visitor.less +4 -0
  149. package/test/less-bom/charsets.less +3 -0
  150. package/test/less-bom/colors.less +98 -0
  151. package/test/less-bom/comments.less +102 -0
  152. package/test/less-bom/comments2.less +20 -0
  153. package/test/less-bom/compression/compression.less +36 -0
  154. package/test/less-bom/css-3.less +154 -0
  155. package/test/less-bom/css-escapes.less +33 -0
  156. package/test/less-bom/css-guards.less +103 -0
  157. package/test/less-bom/css.less +108 -0
  158. package/test/less-bom/debug/import/test.less +25 -0
  159. package/test/less-bom/debug/linenumbers.less +33 -0
  160. package/test/less-bom/detached-rulesets.less +112 -0
  161. package/test/less-bom/directives-bubling.less +142 -0
  162. package/test/less-bom/empty.less +1 -0
  163. package/test/less-bom/errors/add-mixed-units.less +3 -0
  164. package/test/less-bom/errors/add-mixed-units.txt +4 -0
  165. package/test/less-bom/errors/add-mixed-units2.less +3 -0
  166. package/test/less-bom/errors/add-mixed-units2.txt +4 -0
  167. package/test/less-bom/errors/at-rules-undefined-var.less +4 -0
  168. package/test/less-bom/errors/at-rules-undefined-var.txt +4 -0
  169. package/test/less-bom/errors/bad-variable-declaration1.less +1 -0
  170. package/test/less-bom/errors/bad-variable-declaration1.txt +2 -0
  171. package/test/less-bom/errors/color-func-invalid-color.less +3 -0
  172. package/test/less-bom/errors/color-func-invalid-color.txt +4 -0
  173. package/test/less-bom/errors/color-invalid-hex-code.less +3 -0
  174. package/test/less-bom/errors/color-invalid-hex-code.txt +4 -0
  175. package/test/less-bom/errors/color-invalid-hex-code2.less +3 -0
  176. package/test/less-bom/errors/color-invalid-hex-code2.txt +4 -0
  177. package/test/less-bom/errors/css-guard-default-func.less +4 -0
  178. package/test/less-bom/errors/css-guard-default-func.txt +4 -0
  179. package/test/less-bom/errors/detached-ruleset-1.less +6 -0
  180. package/test/less-bom/errors/detached-ruleset-1.txt +4 -0
  181. package/test/less-bom/errors/detached-ruleset-2.less +6 -0
  182. package/test/less-bom/errors/detached-ruleset-2.txt +4 -0
  183. package/test/less-bom/errors/detached-ruleset-3.less +4 -0
  184. package/test/less-bom/errors/detached-ruleset-3.txt +4 -0
  185. package/test/less-bom/errors/detached-ruleset-5.less +4 -0
  186. package/test/less-bom/errors/detached-ruleset-5.txt +3 -0
  187. package/test/less-bom/errors/detached-ruleset-6.less +5 -0
  188. package/test/less-bom/errors/detached-ruleset-6.txt +4 -0
  189. package/test/less-bom/errors/divide-mixed-units.less +3 -0
  190. package/test/less-bom/errors/divide-mixed-units.txt +4 -0
  191. package/test/less-bom/errors/extend-no-selector.less +3 -0
  192. package/test/less-bom/errors/extend-no-selector.txt +3 -0
  193. package/test/less-bom/errors/extend-not-at-end.less +3 -0
  194. package/test/less-bom/errors/extend-not-at-end.txt +3 -0
  195. package/test/less-bom/errors/import-malformed.less +1 -0
  196. package/test/less-bom/errors/import-malformed.txt +3 -0
  197. package/test/less-bom/errors/import-missing.less +6 -0
  198. package/test/less-bom/errors/import-missing.txt +3 -0
  199. package/test/less-bom/errors/import-no-semi.less +1 -0
  200. package/test/less-bom/errors/import-no-semi.txt +2 -0
  201. package/test/less-bom/errors/import-subfolder1.less +1 -0
  202. package/test/less-bom/errors/import-subfolder1.txt +3 -0
  203. package/test/less-bom/errors/import-subfolder2.less +1 -0
  204. package/test/less-bom/errors/import-subfolder2.txt +4 -0
  205. package/test/less-bom/errors/imports/import-subfolder1.less +1 -0
  206. package/test/less-bom/errors/imports/import-subfolder2.less +1 -0
  207. package/test/less-bom/errors/imports/import-test.less +4 -0
  208. package/test/less-bom/errors/imports/subfolder/mixin-not-defined.less +1 -0
  209. package/test/less-bom/errors/imports/subfolder/parse-error-curly-bracket.less +1 -0
  210. package/test/less-bom/errors/javascript-error.less +3 -0
  211. package/test/less-bom/errors/javascript-error.txt +4 -0
  212. package/test/less-bom/errors/javascript-undefined-var.less +3 -0
  213. package/test/less-bom/errors/javascript-undefined-var.txt +4 -0
  214. package/test/less-bom/errors/mixed-mixin-definition-args-1.less +6 -0
  215. package/test/less-bom/errors/mixed-mixin-definition-args-1.txt +4 -0
  216. package/test/less-bom/errors/mixed-mixin-definition-args-2.less +6 -0
  217. package/test/less-bom/errors/mixed-mixin-definition-args-2.txt +4 -0
  218. package/test/less-bom/errors/mixin-not-defined.less +11 -0
  219. package/test/less-bom/errors/mixin-not-defined.txt +3 -0
  220. package/test/less-bom/errors/mixin-not-matched.less +6 -0
  221. package/test/less-bom/errors/mixin-not-matched.txt +3 -0
  222. package/test/less-bom/errors/mixin-not-matched2.less +6 -0
  223. package/test/less-bom/errors/mixin-not-matched2.txt +3 -0
  224. package/test/less-bom/errors/mixin-not-visible-in-scope-1.less +9 -0
  225. package/test/less-bom/errors/mixin-not-visible-in-scope-1.txt +4 -0
  226. package/test/less-bom/errors/mixins-guards-default-func-1.less +9 -0
  227. package/test/less-bom/errors/mixins-guards-default-func-1.txt +4 -0
  228. package/test/less-bom/errors/mixins-guards-default-func-2.less +9 -0
  229. package/test/less-bom/errors/mixins-guards-default-func-2.txt +4 -0
  230. package/test/less-bom/errors/mixins-guards-default-func-3.less +9 -0
  231. package/test/less-bom/errors/mixins-guards-default-func-3.txt +4 -0
  232. package/test/less-bom/errors/multiple-guards-on-css-selectors.less +4 -0
  233. package/test/less-bom/errors/multiple-guards-on-css-selectors.txt +4 -0
  234. package/test/less-bom/errors/multiple-guards-on-css-selectors2.less +4 -0
  235. package/test/less-bom/errors/multiple-guards-on-css-selectors2.txt +4 -0
  236. package/test/less-bom/errors/multiply-mixed-units.less +7 -0
  237. package/test/less-bom/errors/multiply-mixed-units.txt +4 -0
  238. package/test/less-bom/errors/parens-error-1.less +3 -0
  239. package/test/less-bom/errors/parens-error-1.txt +4 -0
  240. package/test/less-bom/errors/parens-error-2.less +3 -0
  241. package/test/less-bom/errors/parens-error-2.txt +4 -0
  242. package/test/less-bom/errors/parens-error-3.less +3 -0
  243. package/test/less-bom/errors/parens-error-3.txt +4 -0
  244. package/test/less-bom/errors/parse-error-curly-bracket.less +4 -0
  245. package/test/less-bom/errors/parse-error-curly-bracket.txt +4 -0
  246. package/test/less-bom/errors/parse-error-media-no-block-1.less +5 -0
  247. package/test/less-bom/errors/parse-error-media-no-block-1.txt +3 -0
  248. package/test/less-bom/errors/parse-error-media-no-block-2.less +1 -0
  249. package/test/less-bom/errors/parse-error-media-no-block-2.txt +2 -0
  250. package/test/less-bom/errors/parse-error-media-no-block-3.less +4 -0
  251. package/test/less-bom/errors/parse-error-media-no-block-3.txt +3 -0
  252. package/test/less-bom/errors/parse-error-missing-bracket.less +2 -0
  253. package/test/less-bom/errors/parse-error-missing-bracket.txt +3 -0
  254. package/test/less-bom/errors/parse-error-missing-parens.less +5 -0
  255. package/test/less-bom/errors/parse-error-missing-parens.txt +3 -0
  256. package/test/less-bom/errors/parse-error-with-import.less +13 -0
  257. package/test/less-bom/errors/parse-error-with-import.txt +4 -0
  258. package/test/less-bom/errors/percentage-missing-space.less +3 -0
  259. package/test/less-bom/errors/percentage-missing-space.txt +4 -0
  260. package/test/less-bom/errors/percentage-non-number-argument.less +3 -0
  261. package/test/less-bom/errors/percentage-non-number-argument.txt +4 -0
  262. package/test/less-bom/errors/property-asterisk-only-name.less +3 -0
  263. package/test/less-bom/errors/property-asterisk-only-name.txt +4 -0
  264. package/test/less-bom/errors/property-ie5-hack.less +3 -0
  265. package/test/less-bom/errors/property-ie5-hack.txt +3 -0
  266. package/test/less-bom/errors/property-in-root.less +4 -0
  267. package/test/less-bom/errors/property-in-root.txt +4 -0
  268. package/test/less-bom/errors/property-in-root2.less +1 -0
  269. package/test/less-bom/errors/property-in-root2.txt +4 -0
  270. package/test/less-bom/errors/property-in-root3.less +4 -0
  271. package/test/less-bom/errors/property-in-root3.txt +3 -0
  272. package/test/less-bom/errors/property-interp-not-defined.less +1 -0
  273. package/test/less-bom/errors/property-interp-not-defined.txt +2 -0
  274. package/test/less-bom/errors/recursive-variable.less +1 -0
  275. package/test/less-bom/errors/recursive-variable.txt +2 -0
  276. package/test/less-bom/errors/single-character.less +1 -0
  277. package/test/less-bom/errors/single-character.txt +2 -0
  278. package/test/less-bom/errors/svg-gradient1.less +3 -0
  279. package/test/less-bom/errors/svg-gradient1.txt +4 -0
  280. package/test/less-bom/errors/svg-gradient2.less +3 -0
  281. package/test/less-bom/errors/svg-gradient2.txt +4 -0
  282. package/test/less-bom/errors/svg-gradient3.less +3 -0
  283. package/test/less-bom/errors/svg-gradient3.txt +4 -0
  284. package/test/less-bom/errors/svg-gradient4.less +4 -0
  285. package/test/less-bom/errors/svg-gradient4.txt +4 -0
  286. package/test/less-bom/errors/svg-gradient5.less +4 -0
  287. package/test/less-bom/errors/svg-gradient5.txt +4 -0
  288. package/test/less-bom/errors/svg-gradient6.less +4 -0
  289. package/test/less-bom/errors/svg-gradient6.txt +4 -0
  290. package/test/less-bom/errors/unit-function.less +3 -0
  291. package/test/less-bom/errors/unit-function.txt +4 -0
  292. package/test/less-bom/extend-chaining.less +91 -0
  293. package/test/less-bom/extend-clearfix.less +19 -0
  294. package/test/less-bom/extend-exact.less +46 -0
  295. package/test/less-bom/extend-media.less +24 -0
  296. package/test/less-bom/extend-nest.less +65 -0
  297. package/test/less-bom/extend-selector.less +99 -0
  298. package/test/less-bom/extend.less +81 -0
  299. package/test/less-bom/extract-and-length.less +133 -0
  300. package/test/less-bom/filemanagerPlugin/colors.test +1 -0
  301. package/test/less-bom/filemanagerPlugin/filemanager.less +4 -0
  302. package/test/less-bom/functions.less +232 -0
  303. package/test/less-bom/globalVars/extended.json +5 -0
  304. package/test/less-bom/globalVars/extended.less +10 -0
  305. package/test/less-bom/globalVars/simple.json +3 -0
  306. package/test/less-bom/globalVars/simple.less +3 -0
  307. package/test/less-bom/ie-filters.less +15 -0
  308. package/test/less-bom/import/css-import.less +1 -0
  309. package/test/less-bom/import/deeper/deeper-2/url-import-2.less +3 -0
  310. package/test/less-bom/import/deeper/deeper-2/url-import.less +1 -0
  311. package/test/less-bom/import/deeper/import-once-test-a.less +1 -0
  312. package/test/less-bom/import/deeper/url-import.less +1 -0
  313. package/test/less-bom/import/import-and-relative-paths-test.less +17 -0
  314. package/test/less-bom/import/import-charset-test.less +1 -0
  315. package/test/less-bom/import/import-inline-invalid-css.less +1 -0
  316. package/test/less-bom/import/import-interpolation.less +2 -0
  317. package/test/less-bom/import/import-interpolation2.less +5 -0
  318. package/test/less-bom/import/import-once-test-c.less +6 -0
  319. package/test/less-bom/import/import-reference.less +98 -0
  320. package/test/less-bom/import/import-test-a.less +5 -0
  321. package/test/less-bom/import/import-test-b.less +8 -0
  322. package/test/less-bom/import/import-test-c.less +6 -0
  323. package/test/less-bom/import/import-test-d.css +1 -0
  324. package/test/less-bom/import/import-test-e.less +2 -0
  325. package/test/less-bom/import/import-test-f.less +5 -0
  326. package/test/less-bom/import/imports/font.less +8 -0
  327. package/test/less-bom/import/imports/logo.less +6 -0
  328. package/test/less-bom/import/interpolation-vars.less +6 -0
  329. package/test/less-bom/import/invalid-css.less +1 -0
  330. package/test/less-bom/import/urls.less +1 -0
  331. package/test/less-bom/import-inline.less +3 -0
  332. package/test/less-bom/import-interpolation.less +8 -0
  333. package/test/less-bom/import-once.less +6 -0
  334. package/test/less-bom/import-reference.less +26 -0
  335. package/test/less-bom/import.less +31 -0
  336. package/test/less-bom/include-path/include-path.less +8 -0
  337. package/test/less-bom/include-path-string/include-path-string.less +3 -0
  338. package/test/less-bom/javascript.less +38 -0
  339. package/test/less-bom/lazy-eval.less +6 -0
  340. package/test/less-bom/legacy/legacy.less +21 -0
  341. package/test/less-bom/media.less +234 -0
  342. package/test/less-bom/merge.less +78 -0
  343. package/test/less-bom/mixins-args.less +263 -0
  344. package/test/less-bom/mixins-closure.less +26 -0
  345. package/test/less-bom/mixins-guards-default-func.less +195 -0
  346. package/test/less-bom/mixins-guards.less +280 -0
  347. package/test/less-bom/mixins-important.less +53 -0
  348. package/test/less-bom/mixins-interpolated.less +75 -0
  349. package/test/less-bom/mixins-named-args.less +36 -0
  350. package/test/less-bom/mixins-nested.less +22 -0
  351. package/test/less-bom/mixins-pattern.less +102 -0
  352. package/test/less-bom/mixins.less +145 -0
  353. package/test/less-bom/modifyVars/extended.json +5 -0
  354. package/test/less-bom/modifyVars/extended.less +11 -0
  355. package/test/less-bom/nested-gradient-with-svg-gradient/mixin-consumer.less +5 -0
  356. package/test/less-bom/nested-gradient-with-svg-gradient/svg-gradient-mixin.less +15 -0
  357. package/test/less-bom/no-js-errors/no-js-errors.less +3 -0
  358. package/test/less-bom/no-js-errors/no-js-errors.txt +4 -0
  359. package/test/less-bom/no-output.less +2 -0
  360. package/test/less-bom/operations.less +62 -0
  361. package/test/less-bom/parens.less +45 -0
  362. package/test/less-bom/plugin/plugin-global.js +9 -0
  363. package/test/less-bom/plugin/plugin-local.js +8 -0
  364. package/test/less-bom/plugin/plugin-transitive.js +5 -0
  365. package/test/less-bom/plugin/plugin-transitive.less +5 -0
  366. package/test/less-bom/plugin.less +85 -0
  367. package/test/less-bom/postProcessorPlugin/postProcessor.less +4 -0
  368. package/test/less-bom/preProcessorPlugin/preProcessor.less +3 -0
  369. package/test/less-bom/property-name-interp.less +56 -0
  370. package/test/less-bom/rulesets.less +30 -0
  371. package/test/less-bom/scope.less +104 -0
  372. package/test/less-bom/selectors.less +184 -0
  373. package/test/less-bom/sourcemaps/basic.json +3 -0
  374. package/test/less-bom/sourcemaps/basic.less +27 -0
  375. package/test/less-bom/sourcemaps/imported.css +7 -0
  376. package/test/less-bom/sourcemaps-empty/empty.less +1 -0
  377. package/test/less-bom/sourcemaps-empty/var-defs.less +1 -0
  378. package/test/less-bom/static-urls/urls.less +33 -0
  379. package/test/less-bom/strict-units/strict-units.less +4 -0
  380. package/test/less-bom/strings.less +73 -0
  381. package/test/less-bom/url-args/urls.less +63 -0
  382. package/test/less-bom/urls.less +94 -0
  383. package/test/less-bom/variables-in-at-rules.less +20 -0
  384. package/test/less-bom/variables.less +119 -0
  385. package/test/less-bom/visitorPlugin/visitor.less +4 -0
  386. package/test/less-bom/whitespace.less +44 -0
  387. package/test/less-test.js +9 -5
  388. package/test/plugins/filemanager/index.js +19 -0
  389. package/test/plugins/postprocess/index.js +14 -0
  390. package/test/plugins/preprocess/index.js +19 -0
  391. package/test/plugins/visitor/index.js +24 -0
  392. package/test.less +1 -0
  393. package/.idea/codeStyleSettings.xml +0 -13
  394. package/.idea/encodings.xml +0 -5
  395. package/.idea/inspectionProfiles/Project_Default.xml +0 -8
  396. package/.idea/inspectionProfiles/profiles_settings.xml +0 -7
  397. package/.idea/jsLinters/jscs.xml +0 -4
  398. package/.idea/jsLinters/jshint.xml +0 -70
  399. package/.idea/libraries/sass_stdlib.xml +0 -8
  400. package/.idea/scopes/scope_settings.xml +0 -5
  401. package/projectFilesBackup/.idea/libraries/sass_stdlib.xml +0 -8
  402. package/test/less/errors/detached-ruleset-4.less +0 -5
  403. package/test/less/errors/detached-ruleset-4.txt +0 -4
  404. package/test/less/errors/parse-error-extra-parens.txt +0 -3
  405. package/test/sourcemaps/maps/import-map.map +0 -1
@@ -0,0 +1,119 @@
1
+ .parent {
2
+ color: green;
3
+ }
4
+ @document url-prefix() {
5
+ .parent .child {
6
+ color: red;
7
+ }
8
+ }
9
+ @supports (sandwitch: butter) {
10
+ .inside .top {
11
+ property: value;
12
+ }
13
+ }
14
+ @supports (sandwitch: bread) {
15
+ .in1 .in2 {
16
+ property: value;
17
+ }
18
+ }
19
+ @supports (sandwitch: ham) {
20
+ .inside .top {
21
+ property: value;
22
+ }
23
+ }
24
+ @supports (font-family: weirdFont) {
25
+ @font-face {
26
+ font-family: something;
27
+ src: made-up-url;
28
+ }
29
+ }
30
+ @font-face {
31
+ @supports not (-webkit-font-smoothing: subpixel-antialiased) {
32
+ font-family: something;
33
+ src: made-up-url;
34
+ }
35
+ }
36
+ @supports (property: value) {
37
+ @media (max-size: 2px) {
38
+ @supports (whatever: something) {
39
+ .outOfMedia {
40
+ property: value;
41
+ }
42
+ }
43
+ }
44
+ }
45
+ @supports (property: value) {
46
+ @media (max-size: 2px) {
47
+ @supports (whatever: something) {
48
+ .onTop {
49
+ property: value;
50
+ }
51
+ }
52
+ }
53
+ }
54
+ @media print {
55
+ html {
56
+ in-html: visible;
57
+ }
58
+ @supports (upper: test) {
59
+ html {
60
+ in-supports: first;
61
+ }
62
+ html div {
63
+ in-div: visible;
64
+ }
65
+ @supports not (-webkit-font-smoothing: subpixel-antialiased) {
66
+ html div {
67
+ in-supports: second;
68
+ }
69
+ @media screen {
70
+ html div {
71
+ font-weight: 400;
72
+ }
73
+ html div nested {
74
+ property: value;
75
+ }
76
+ }
77
+ }
78
+ }
79
+ }
80
+ @media print and (max-size: 2px) {
81
+ .in1 {
82
+ stay: here;
83
+ }
84
+ @supports not (-webkit-font-smoothing: subpixel-antialiased) {
85
+ @supports (whatever: something) {
86
+ .in2 .in1 {
87
+ property: value;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ html {
93
+ font-weight: 300;
94
+ -webkit-font-smoothing: subpixel-antialiased;
95
+ }
96
+ @supports not (-webkit-font-smoothing: subpixel-antialiased) {
97
+ html {
98
+ font-weight: 400;
99
+ }
100
+ html nested {
101
+ property: value;
102
+ }
103
+ }
104
+ .onTop {
105
+ animation: "textscale";
106
+ font-family: something;
107
+ }
108
+ @font-face {
109
+ font-family: something;
110
+ src: made-up-url;
111
+ }
112
+ @keyframes "textscale" {
113
+ 0% {
114
+ font-size: 1em;
115
+ }
116
+ 100% {
117
+ font-size: 2em;
118
+ }
119
+ }
@@ -1,6 +1,6 @@
1
1
  .multiunit {
2
2
  length: 6;
3
- extract: abc "abc" 1 1px 1% #112233;
3
+ extract: abc "abc" 1 1px 1% #123;
4
4
  }
5
5
  .incorrect-index {
6
6
  v1: extract(a b c, 5);
@@ -0,0 +1,3 @@
1
+ .test {
2
+ color: red;
3
+ }
@@ -4,14 +4,18 @@
4
4
  height: undefined("self");
5
5
  border-width: 5;
6
6
  variable: 11;
7
- background: linear-gradient(#000000, #ffffff);
7
+ background: linear-gradient(#000, #fff);
8
8
  }
9
9
  #built-in {
10
10
  escaped: -Some::weird(#thing, y);
11
11
  lighten: #ffcccc;
12
+ lighten-relative: #ff6666;
12
13
  darken: #330000;
14
+ darken-relative: #990000;
13
15
  saturate: #203c31;
16
+ saturate-relative: #28342f;
14
17
  desaturate: #29332f;
18
+ desaturate-relative: #233930;
15
19
  greyscale: #2e2e2e;
16
20
  hsl-clamp: #ffffff;
17
21
  spin-p: #bf6a40;
@@ -56,12 +60,16 @@
56
60
  replace-single-quoted: 'foo-2';
57
61
  replace-escaped-string: bar-2;
58
62
  replace-keyword: baz-2;
63
+ replace-with-color: "#135#1357";
64
+ replace-with-number: "2em07";
59
65
  format: "rgb(32, 128, 64)";
60
66
  format-string: "hello world";
61
67
  format-multiple: "hello earth 2";
62
68
  format-url-encode: "red is %23ff0000";
63
69
  format-single-quoted: 'hello single world';
64
70
  format-escaped-string: hello escaped world;
71
+ format-color-as-string: "#123";
72
+ format-number-as-string: "4px";
65
73
  eformat: rgb(32, 128, 64);
66
74
  unitless: 12;
67
75
  unit: 14em;
@@ -118,6 +126,10 @@
118
126
  shade-negative: #868686;
119
127
  fade-out: rgba(255, 0, 0, 0.95);
120
128
  fade-in: rgba(255, 0, 0, 0.95);
129
+ fade-out-relative: rgba(255, 0, 0, 0.95);
130
+ fade-in-relative: rgba(255, 0, 0, 0.945);
131
+ fade-out2: rgba(255, 0, 0, 0);
132
+ fade-out2-relative: rgba(255, 0, 0, 0.25);
121
133
  hsv: #4d2926;
122
134
  hsva: rgba(77, 40, 38, 0.2);
123
135
  mix: #ff3300;
@@ -183,3 +195,7 @@
183
195
  two-one: b;
184
196
  two-two: 2;
185
197
  }
198
+ /* comment1 */
199
+ html {
200
+ color: #8080ff;
201
+ }
@@ -59,7 +59,7 @@ div#id.class[a=1][b=2].class:not(1) {
59
59
  color: green;
60
60
  }
61
61
  .y {
62
- pulled-in: yes;
62
+ pulled-in: yes /* inline comment survives */;
63
63
  }
64
64
  /* comment pulled in */
65
65
  .visible {
@@ -91,3 +91,7 @@ div#id.class[a=1][b=2].class:not(1) {
91
91
  color: red;
92
92
  }
93
93
  }
94
+ div {
95
+ this isn't very valid CSS.
96
+ }
97
+ this isn't very valid CSS.
@@ -1,4 +1,5 @@
1
1
  @charset "UTF-8";
2
+ /** comment at the top**/
2
3
  @import url(http://fonts.googleapis.com/css?family=Open+Sans);
3
4
  @import url(/absolute/something.css) screen and (color) and (max-width: 600px);
4
5
  @import url("//ha.com/file.css") (min-width: 100px);
@@ -20,6 +21,9 @@
20
21
  height: 10px;
21
22
  color: red;
22
23
  }
24
+ .test-f {
25
+ height: 10px;
26
+ }
23
27
  .deep-import-url {
24
28
  color: red;
25
29
  }
@@ -2,5 +2,8 @@ body {
2
2
  width: 100%;
3
3
  }
4
4
  data-uri {
5
- property: url("data:image/svg+xml,%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E");
5
+ property: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
6
+ }
7
+ image-size {
8
+ property: 100px 100px;
6
9
  }
@@ -0,0 +1,3 @@
1
+ data-uri {
2
+ property: url("data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%20standalone%3D%22no%22%3F%3E%0A%3Csvg%20height%3D%22100%22%20width%3D%22100%22%3E%0A%20%20%3Ccircle%20cx%3D%2250%22%20cy%3D%2250%22%20r%3D%2240%22%20stroke%3D%22black%22%20stroke-width%3D%221%22%20fill%3D%22blue%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");
3
+ }
@@ -5,3 +5,17 @@
5
5
  simple: 2px;
6
6
  }
7
7
  }
8
+ #units {
9
+ t1: 22em;
10
+ t2: 22em;
11
+ t3: 2em;
12
+ t4: 22em;
13
+ t5: 22em;
14
+ t6: 2em;
15
+ t7: 22em;
16
+ t8: 22em;
17
+ t9: 2em;
18
+ t10: 22em;
19
+ t11: 22em;
20
+ t12: 2em;
21
+ }
@@ -119,7 +119,6 @@
119
119
  }
120
120
  @page :first {
121
121
  size: 8.5in 11in;
122
-
123
122
  @top-left {
124
123
  margin: 1cm;
125
124
  }
@@ -34,7 +34,7 @@
34
34
  }
35
35
  body {
36
36
  padding: 30px;
37
- color: #ff0000;
37
+ color: #f00;
38
38
  }
39
39
  .scope-mix {
40
40
  width: 8;
@@ -111,3 +111,53 @@ body {
111
111
  .selector3 {
112
112
  margin: 4;
113
113
  }
114
+ mixins-args-expand-op-1 {
115
+ m3: 1, 2, 3;
116
+ }
117
+ mixins-args-expand-op-2 {
118
+ m3: 4, 5, 6;
119
+ }
120
+ mixins-args-expand-op-3a {
121
+ m3: a, b, c;
122
+ }
123
+ mixins-args-expand-op-3b {
124
+ m4: 0, a, b, c;
125
+ }
126
+ mixins-args-expand-op-3c {
127
+ m4: a, b, c, 4;
128
+ }
129
+ mixins-args-expand-op-4a {
130
+ m3: a, b, c, d;
131
+ }
132
+ mixins-args-expand-op-4b {
133
+ m4: 0, a, b, c, d;
134
+ }
135
+ mixins-args-expand-op-4c {
136
+ m4: a, b, c, d, 4;
137
+ }
138
+ mixins-args-expand-op-5a {
139
+ m3: 1, 2, 3;
140
+ }
141
+ mixins-args-expand-op-5b {
142
+ m4: 0, 1, 2, 3;
143
+ }
144
+ mixins-args-expand-op-5c {
145
+ m4: 1, 2, 3, 4;
146
+ }
147
+ mixins-args-expand-op-6 {
148
+ m4: 0, 1, 2, 3;
149
+ }
150
+ mixins-args-expand-op-7 {
151
+ m4: 0, 1, 2, 3;
152
+ }
153
+ mixins-args-expand-op-8 {
154
+ m4: 1, 1.5, 2, 3;
155
+ }
156
+ mixins-args-expand-op-9 {
157
+ aa: 4 5 6 1 2 3 and again 4 5 6;
158
+ a4: and;
159
+ a8: 5;
160
+ }
161
+ #test-mixin-matching-when-default-2645 {
162
+ height: 20px;
163
+ }
@@ -0,0 +1,44 @@
1
+ .other {
2
+ trans: transitive;
3
+ }
4
+ .class {
5
+ trans: transitive;
6
+ global: global;
7
+ local: test-local();
8
+ shadow: global;
9
+ }
10
+ .class .local {
11
+ global: global;
12
+ local: local;
13
+ shadow: local;
14
+ }
15
+ .class {
16
+ ns-mixin-global: global;
17
+ ns-mixin-local: local;
18
+ ns-mixin-shadow: local;
19
+ mixin-local: local;
20
+ mixin-global: global;
21
+ mixin-shadow: local;
22
+ ruleset-local: local;
23
+ ruleset-global: global;
24
+ ruleset-shadow: local;
25
+ class-local: test-local();
26
+ }
27
+ @media screen {
28
+ .test {
29
+ result: global;
30
+ }
31
+ }
32
+ @font-face {
33
+ result: global;
34
+ }
35
+ @media screen and (min-width: 100px) and (max-width: 400px) {
36
+ .test {
37
+ result: global;
38
+ }
39
+ }
40
+ @media screen {
41
+ .test {
42
+ result: local;
43
+ }
44
+ }
@@ -0,0 +1,4 @@
1
+ hr {height:50px;}
2
+ .test {
3
+ color: white;
4
+ }
@@ -0,0 +1,3 @@
1
+ .test {
2
+ color: red;
3
+ }
@@ -1,5 +1,5 @@
1
1
  .tiny-scope {
2
- color: #998899;
2
+ color: #989;
3
3
  }
4
4
  .scope1 {
5
5
  color: blue;
@@ -28,7 +28,7 @@
28
28
  #interpolation {
29
29
  url: "http://lesscss.org/dev/image.jpg";
30
30
  url2: "http://lesscss.org/image-256.jpg";
31
- url3: "http://lesscss.org#445566";
31
+ url3: "http://lesscss.org#456";
32
32
  url4: "http://lesscss.org/hello";
33
33
  url5: "http://lesscss.org/54.4px";
34
34
  }
@@ -5,7 +5,7 @@
5
5
  #shorthands {
6
6
  background: url("http://www.lesscss.org/spec.html?424242") no-repeat 0 4px;
7
7
  background: url("img.jpg?424242") center / 100px;
8
- background: #ffffff url(image.png?424242) center / 1px 100px repeat-x scroll content-box padding-box;
8
+ background: #fff url(image.png?424242) center / 1px 100px repeat-x scroll content-box padding-box;
9
9
  }
10
10
  #misc {
11
11
  background-image: url(images/image.jpg?424242);
@@ -36,14 +36,14 @@
36
36
  font-family: xecret, sans-serif;
37
37
  }
38
38
  #data-uri {
39
- uri: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==");
39
+ uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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");
40
40
  }
41
41
  #data-uri-guess {
42
- uri: url("data:image/jpeg;base64,bm90IGFjdHVhbGx5IGEganBlZyBmaWxlCg==");
42
+ uri: url("data:image/jpeg;base64,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U3v/APtyCCCCCO+++6CD9tLCS2+++OCpCVCBCyyhylaHiCBCCCCGe+++yCDf999LDC2++++lCcJTCCCxCBCpCQJCCGe++++iCDf9R999LDCS2+62P888f7IhCZCvKPMP+++++yCCHd99BR999vDCCy188888885AOtK4+P3j+++yCCDP999xBBB1999PDU88888888j8P9pr1V496yCDBHf999hBtBBBR9999l88888888n8nWp8fvfCBCDTV9995BBB9tBBBBx9938888888708XEy/8880Mrz+d95hBBBN899JBBBBxe/888888v8AO/JwFuPPPPPPOOYQQQRXfdPPfbSQQQQ6d/8Az9/3/wA/8sd5FdZbz8wwBBBBN998AQ8899tJBBRjFHEyUnQGzgdp9hWxhwBBBBN99984AAA08899tNBBg18vro5/j0PfvfoBBBBFN99984gAOAAAQ088999NNBBBDJ0AATAQ/RBBFN999988wAAA+uIAAAQw8899999NNNNNOcuetN99999884wAAAAO+++uKAAAAw088899999999999998888wgAAAAO++C2+++uKAAAAAQw0888888888888wwAAAAAAO++++CCS2+++uOCAAAAAAAAAQwwAAAAAAAAAAGe++++yC/8QAJhEBAAICAgEDBAMBAAAAAAAAAQARITEQQUAgUWEwUHGRcIHRof/aAAgBAwEBPxD7r3B7/H2eyo5KiFOmDrZvrERI/ZU7w7ht4fmELvyzKzuT3+PsJRst+qmFGxyejqKmnJUB1mWdtvtojstnqrT3Guuh+/HBzQkwZiUOjVXLd/b/AHlj+07hN4fmXD/LN8Mx2Kz/ALMgE1NcEwaaMMQ4mbhTfv8AuEEaeMRRs+Z1YR5d8vtwFQwlRAU1H14zLqtXymWZI4qojvyHfBvkjge4fTPuOAau/wAzHPEfQbj5Dvg3z1EIunX9QAXK41sorfdxKa4fQb8l3wb5Yt2xgxa/8lo0o7jALoZorWz/ACFWg5PJd8G+XfJvgDayWS0pCkFu3PXku+DfBv0HFudTBVn6iqlrz15LKuF2p8Eo69HXBx1wAvUAKWP2eThgA16EHcU1wDx1wJASg0QT2FjmWEqLsHse78evL6DL8kSo8UL4SXT2hVlXLg10eNiPovA5RzDYIlkRGmdcPoNgjjwRi/on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");
43
43
  }
44
44
  #data-uri-ascii {
45
- uri-1: url("data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A");
46
- uri-2: url("data:text/html,%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%0A");
45
+ uri-1: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A");
46
+ uri-2: url("data:text/html,%3Chtml%3E%3Ch1%3EThis%20page%20is%20100%25%20Awesome.%3C%2Fh1%3E%3C%2Fhtml%3E%0A");
47
47
  }
48
48
  #svg-functions {
49
49
  background-image: url('data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20%3F%3E%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20width%3D%22100%25%22%20height%3D%22100%25%22%20viewBox%3D%220%200%201%201%22%20preserveAspectRatio%3D%22none%22%3E%3ClinearGradient%20id%3D%22gradient%22%20gradientUnits%3D%22userSpaceOnUse%22%20x1%3D%220%25%22%20y1%3D%220%25%22%20x2%3D%220%25%22%20y2%3D%22100%25%22%3E%3Cstop%20offset%3D%220%25%22%20stop-color%3D%22%23000000%22%2F%3E%3Cstop%20offset%3D%22100%25%22%20stop-color%3D%22%23ffffff%22%2F%3E%3C%2FlinearGradient%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%221%22%20height%3D%221%22%20fill%3D%22url(%23gradient)%22%20%2F%3E%3C%2Fsvg%3E');