svg_conform 0.1.0

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 (335) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +15 -0
  3. data/.github/workflows/release.yml +23 -0
  4. data/.github/workflows/svgcheck-compatibility.yml +135 -0
  5. data/.gitignore +12 -0
  6. data/.rspec +3 -0
  7. data/.rubocop.yml +13 -0
  8. data/.rubocop_todo.yml +183 -0
  9. data/CODE_OF_CONDUCT.md +132 -0
  10. data/Gemfile +14 -0
  11. data/README.adoc +1384 -0
  12. data/Rakefile +15 -0
  13. data/config/profiles/base.yml +34 -0
  14. data/config/profiles/lucid_fix.yml +37 -0
  15. data/config/profiles/metanorma.yml +212 -0
  16. data/config/profiles/no_external_css.yml +20 -0
  17. data/config/profiles/svg_1_2_rfc.yml +284 -0
  18. data/config/profiles/svg_1_2_rfc_with_rdf.yml +145 -0
  19. data/config/svgcheck_mapping.yml +180 -0
  20. data/docs/profiles.adoc +547 -0
  21. data/docs/rdf_metadata_support.adoc +212 -0
  22. data/docs/remediation.adoc +732 -0
  23. data/docs/requirements.adoc +709 -0
  24. data/examples/demo.rb +116 -0
  25. data/examples/requirements_demo.rb +240 -0
  26. data/exe/svg_conform +7 -0
  27. data/lib/svg_conform/batch_report.rb +70 -0
  28. data/lib/svg_conform/cli.rb +107 -0
  29. data/lib/svg_conform/commands/check.rb +390 -0
  30. data/lib/svg_conform/commands/profiles.rb +118 -0
  31. data/lib/svg_conform/commands/svgcheck.rb +90 -0
  32. data/lib/svg_conform/commands/svgcheck_compare.rb +92 -0
  33. data/lib/svg_conform/commands/svgcheck_compatibility.rb +43 -0
  34. data/lib/svg_conform/commands/svgcheck_generate.rb +262 -0
  35. data/lib/svg_conform/compatibility/analysis_context.rb +68 -0
  36. data/lib/svg_conform/compatibility/comparison_result.rb +147 -0
  37. data/lib/svg_conform/compatibility/compatibility_analyzer.rb +85 -0
  38. data/lib/svg_conform/compatibility/file_processor.rb +109 -0
  39. data/lib/svg_conform/compatibility/pattern_discovery.rb +319 -0
  40. data/lib/svg_conform/compatibility/report_formatter.rb +359 -0
  41. data/lib/svg_conform/compatibility/svg_analysis_engine.rb +316 -0
  42. data/lib/svg_conform/compatibility/validity_analysis.rb +252 -0
  43. data/lib/svg_conform/compatibility/xml_analysis_engine.rb +198 -0
  44. data/lib/svg_conform/compatibility_analyzer.rb +285 -0
  45. data/lib/svg_conform/conformance_report.rb +267 -0
  46. data/lib/svg_conform/constants.rb +199 -0
  47. data/lib/svg_conform/css_color.rb +262 -0
  48. data/lib/svg_conform/document.rb +203 -0
  49. data/lib/svg_conform/external_checkers/svgcheck/compatibility_engine.rb +166 -0
  50. data/lib/svg_conform/external_checkers/svgcheck/output_generator.rb +101 -0
  51. data/lib/svg_conform/external_checkers/svgcheck/parser.rb +200 -0
  52. data/lib/svg_conform/external_checkers/svgcheck/report_comparator.rb +175 -0
  53. data/lib/svg_conform/external_checkers/svgcheck/report_generator.rb +82 -0
  54. data/lib/svg_conform/external_checkers/svgcheck/validation_pipeline.rb +249 -0
  55. data/lib/svg_conform/external_checkers/svgcheck.rb +56 -0
  56. data/lib/svg_conform/external_checkers.rb +34 -0
  57. data/lib/svg_conform/fixer.rb +56 -0
  58. data/lib/svg_conform/profile.rb +164 -0
  59. data/lib/svg_conform/profiles.rb +60 -0
  60. data/lib/svg_conform/remediation_engine.rb +92 -0
  61. data/lib/svg_conform/remediation_result.rb +36 -0
  62. data/lib/svg_conform/remediation_runner.rb +225 -0
  63. data/lib/svg_conform/remediations/base_remediation.rb +165 -0
  64. data/lib/svg_conform/remediations/color_remediation.rb +226 -0
  65. data/lib/svg_conform/remediations/font_embedding_remediation.rb +145 -0
  66. data/lib/svg_conform/remediations/font_remediation.rb +122 -0
  67. data/lib/svg_conform/remediations/image_embedding_remediation.rb +154 -0
  68. data/lib/svg_conform/remediations/invalid_id_references_remediation.rb +129 -0
  69. data/lib/svg_conform/remediations/namespace_attribute_remediation.rb +244 -0
  70. data/lib/svg_conform/remediations/namespace_remediation.rb +151 -0
  71. data/lib/svg_conform/remediations/no_external_css_remediation.rb +192 -0
  72. data/lib/svg_conform/remediations/style_promotion_remediation.rb +93 -0
  73. data/lib/svg_conform/remediations/viewbox_remediation.rb +127 -0
  74. data/lib/svg_conform/remediations.rb +40 -0
  75. data/lib/svg_conform/report_comparator.rb +772 -0
  76. data/lib/svg_conform/requirements/allowed_elements_requirement.rb +367 -0
  77. data/lib/svg_conform/requirements/base_requirement.rb +98 -0
  78. data/lib/svg_conform/requirements/color_restrictions_requirement.rb +126 -0
  79. data/lib/svg_conform/requirements/element_requirement_config.rb +75 -0
  80. data/lib/svg_conform/requirements/font_family_requirement.rb +133 -0
  81. data/lib/svg_conform/requirements/forbidden_content_requirement.rb +60 -0
  82. data/lib/svg_conform/requirements/id_reference_requirement.rb +133 -0
  83. data/lib/svg_conform/requirements/invalid_id_references_requirement.rb +132 -0
  84. data/lib/svg_conform/requirements/link_validation_requirement.rb +55 -0
  85. data/lib/svg_conform/requirements/namespace_attributes_requirement.rb +211 -0
  86. data/lib/svg_conform/requirements/namespace_requirement.rb +294 -0
  87. data/lib/svg_conform/requirements/no_external_css_requirement.rb +132 -0
  88. data/lib/svg_conform/requirements/no_external_fonts_requirement.rb +121 -0
  89. data/lib/svg_conform/requirements/no_external_images_requirement.rb +91 -0
  90. data/lib/svg_conform/requirements/style_promotion_requirement.rb +72 -0
  91. data/lib/svg_conform/requirements/style_requirement.rb +226 -0
  92. data/lib/svg_conform/requirements/viewbox_required_requirement.rb +96 -0
  93. data/lib/svg_conform/requirements.rb +49 -0
  94. data/lib/svg_conform/semantic_comparator.rb +829 -0
  95. data/lib/svg_conform/validation_context.rb +408 -0
  96. data/lib/svg_conform/validation_result.rb +146 -0
  97. data/lib/svg_conform/validator.rb +91 -0
  98. data/lib/svg_conform/version.rb +5 -0
  99. data/lib/svg_conform.rb +68 -0
  100. data/lib/tasks/fixtures.rake +321 -0
  101. data/lib/tasks/svgcheck.rake +111 -0
  102. data/reference-docs/SVG-1.2-RFC.rnc.txt +1676 -0
  103. data/reference-docs/Scalable Vector Graphics (SVG) 1.1 (Second Edition).html +40764 -0
  104. data/reference-docs/Scalable Vector Graphics (SVG) Tiny 1.2 Specification.html +44591 -0
  105. data/reference-docs/rfc7996.txt +2971 -0
  106. data/sig/svg_conform.rbs +4 -0
  107. data/spec/fixtures/allowed_elements/inputs/basic_violations.svg +21 -0
  108. data/spec/fixtures/allowed_elements/repair/basic_violations.svg +18 -0
  109. data/spec/fixtures/color_restrictions/inputs/basic_violations.svg +23 -0
  110. data/spec/fixtures/color_restrictions/repair/basic_violations.svg +23 -0
  111. data/spec/fixtures/comprehensive/inputs/multiple_violations.svg +21 -0
  112. data/spec/fixtures/comprehensive/repair/multiple_violations.svg +16 -0
  113. data/spec/fixtures/font_family/inputs/basic_violations.svg +17 -0
  114. data/spec/fixtures/font_family/repair/basic_violations.svg +17 -0
  115. data/spec/fixtures/forbidden_content/inputs/basic_violations.svg +27 -0
  116. data/spec/fixtures/forbidden_content/repair/basic_violations.svg +19 -0
  117. data/spec/fixtures/id_reference/inputs/basic_violations.svg +17 -0
  118. data/spec/fixtures/id_reference/repair/basic_violations.svg +15 -0
  119. data/spec/fixtures/link_validation/inputs/basic_violations.svg +20 -0
  120. data/spec/fixtures/link_validation/repair/basic_violations.svg +16 -0
  121. data/spec/fixtures/lucid/inputs/simple.svg +67 -0
  122. data/spec/fixtures/lucid/repair/simple.svg +63 -0
  123. data/spec/fixtures/namespace/inputs/basic_violations.svg +20 -0
  124. data/spec/fixtures/namespace/repair/basic_violations.svg +17 -0
  125. data/spec/fixtures/namespace_attributes/inputs/basic_violations.svg +16 -0
  126. data/spec/fixtures/namespace_attributes/repair/basic_violations.svg +15 -0
  127. data/spec/fixtures/no_external_css/inputs/basic_violations.svg +20 -0
  128. data/spec/fixtures/no_external_css/repair/basic_violations.svg +18 -0
  129. data/spec/fixtures/style/inputs/basic_violations.svg +22 -0
  130. data/spec/fixtures/style/repair/basic_violations.svg +22 -0
  131. data/spec/fixtures/style_promotion/inputs/basic_test.svg +15 -0
  132. data/spec/fixtures/style_promotion/repair/basic_test.svg +15 -0
  133. data/spec/fixtures/svg_1_2_rfc/inputs/allowed_elements_violations.svg +18 -0
  134. data/spec/fixtures/svg_1_2_rfc/inputs/color_restrictions_violations.svg +23 -0
  135. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.code +1 -0
  136. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.err +0 -0
  137. data/spec/fixtures/svgcheck/check/DrawBerry-sample-2.svg.out +23 -0
  138. data/spec/fixtures/svgcheck/check/IETF-test.svg.code +1 -0
  139. data/spec/fixtures/svgcheck/check/IETF-test.svg.err +0 -0
  140. data/spec/fixtures/svgcheck/check/IETF-test.svg.out +20 -0
  141. data/spec/fixtures/svgcheck/check/circle.svg.code +1 -0
  142. data/spec/fixtures/svgcheck/check/circle.svg.err +0 -0
  143. data/spec/fixtures/svgcheck/check/circle.svg.out +2 -0
  144. data/spec/fixtures/svgcheck/check/colors.svg.code +1 -0
  145. data/spec/fixtures/svgcheck/check/colors.svg.err +0 -0
  146. data/spec/fixtures/svgcheck/check/colors.svg.out +13 -0
  147. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.code +1 -0
  148. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.err +0 -0
  149. data/spec/fixtures/svgcheck/check/dia-sample-svg.svg.out +76 -0
  150. data/spec/fixtures/svgcheck/check/example-dot.svg.code +1 -0
  151. data/spec/fixtures/svgcheck/check/example-dot.svg.err +0 -0
  152. data/spec/fixtures/svgcheck/check/example-dot.svg.out +11 -0
  153. data/spec/fixtures/svgcheck/check/full-tiny.svg.code +1 -0
  154. data/spec/fixtures/svgcheck/check/full-tiny.svg.err +0 -0
  155. data/spec/fixtures/svgcheck/check/full-tiny.svg.out +5835 -0
  156. data/spec/fixtures/svgcheck/check/good.svg.code +1 -0
  157. data/spec/fixtures/svgcheck/check/good.svg.err +0 -0
  158. data/spec/fixtures/svgcheck/check/good.svg.out +1 -0
  159. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.code +1 -0
  160. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.err +0 -0
  161. data/spec/fixtures/svgcheck/check/httpbis-proxy20-fig6.svg.out +5 -0
  162. data/spec/fixtures/svgcheck/check/malformed.svg.code +1 -0
  163. data/spec/fixtures/svgcheck/check/malformed.svg.err +0 -0
  164. data/spec/fixtures/svgcheck/check/malformed.svg.out +8 -0
  165. data/spec/fixtures/svgcheck/check/rfc-svg.svg.code +1 -0
  166. data/spec/fixtures/svgcheck/check/rfc-svg.svg.err +0 -0
  167. data/spec/fixtures/svgcheck/check/rfc-svg.svg.out +1 -0
  168. data/spec/fixtures/svgcheck/check/rfc.xml.code +1 -0
  169. data/spec/fixtures/svgcheck/check/rfc.xml.err +0 -0
  170. data/spec/fixtures/svgcheck/check/rfc.xml.out +2 -0
  171. data/spec/fixtures/svgcheck/check/rgb.svg.code +1 -0
  172. data/spec/fixtures/svgcheck/check/rgb.svg.err +0 -0
  173. data/spec/fixtures/svgcheck/check/rgb.svg.out +9 -0
  174. data/spec/fixtures/svgcheck/check/svg-wordle.svg.code +1 -0
  175. data/spec/fixtures/svgcheck/check/svg-wordle.svg.err +0 -0
  176. data/spec/fixtures/svgcheck/check/svg-wordle.svg.out +508 -0
  177. data/spec/fixtures/svgcheck/check/threshold.svg.code +1 -0
  178. data/spec/fixtures/svgcheck/check/threshold.svg.err +0 -0
  179. data/spec/fixtures/svgcheck/check/threshold.svg.out +20 -0
  180. data/spec/fixtures/svgcheck/check/utf8.svg.code +1 -0
  181. data/spec/fixtures/svgcheck/check/utf8.svg.err +0 -0
  182. data/spec/fixtures/svgcheck/check/utf8.svg.out +162 -0
  183. data/spec/fixtures/svgcheck/check/viewBox-both.svg.code +1 -0
  184. data/spec/fixtures/svgcheck/check/viewBox-both.svg.err +0 -0
  185. data/spec/fixtures/svgcheck/check/viewBox-both.svg.out +4 -0
  186. data/spec/fixtures/svgcheck/check/viewBox-height.svg.code +1 -0
  187. data/spec/fixtures/svgcheck/check/viewBox-height.svg.err +0 -0
  188. data/spec/fixtures/svgcheck/check/viewBox-height.svg.out +3 -0
  189. data/spec/fixtures/svgcheck/check/viewBox-none.svg.code +1 -0
  190. data/spec/fixtures/svgcheck/check/viewBox-none.svg.err +0 -0
  191. data/spec/fixtures/svgcheck/check/viewBox-none.svg.out +3 -0
  192. data/spec/fixtures/svgcheck/check/viewBox-width.svg.code +1 -0
  193. data/spec/fixtures/svgcheck/check/viewBox-width.svg.err +0 -0
  194. data/spec/fixtures/svgcheck/check/viewBox-width.svg.out +3 -0
  195. data/spec/fixtures/svgcheck/inputs/DrawBerry-sample-2.svg +28 -0
  196. data/spec/fixtures/svgcheck/inputs/IETF-test.svg +28 -0
  197. data/spec/fixtures/svgcheck/inputs/circle.svg +3 -0
  198. data/spec/fixtures/svgcheck/inputs/colors.svg +18 -0
  199. data/spec/fixtures/svgcheck/inputs/dia-sample-svg.svg +47 -0
  200. data/spec/fixtures/svgcheck/inputs/example-dot.svg +75 -0
  201. data/spec/fixtures/svgcheck/inputs/full-tiny.svg +16194 -0
  202. data/spec/fixtures/svgcheck/inputs/good.svg +19 -0
  203. data/spec/fixtures/svgcheck/inputs/httpbis-proxy20-fig6.svg +2 -0
  204. data/spec/fixtures/svgcheck/inputs/malformed.svg +11 -0
  205. data/spec/fixtures/svgcheck/inputs/rfc-svg.svg +1028 -0
  206. data/spec/fixtures/svgcheck/inputs/rfc.xml +37 -0
  207. data/spec/fixtures/svgcheck/inputs/rgb.svg +9 -0
  208. data/spec/fixtures/svgcheck/inputs/svg-wordle.svg +330 -0
  209. data/spec/fixtures/svgcheck/inputs/threshold.svg +26 -0
  210. data/spec/fixtures/svgcheck/inputs/utf8.svg +448 -0
  211. data/spec/fixtures/svgcheck/inputs/viewBox-both.svg +3 -0
  212. data/spec/fixtures/svgcheck/inputs/viewBox-height.svg +3 -0
  213. data/spec/fixtures/svgcheck/inputs/viewBox-none.svg +3 -0
  214. data/spec/fixtures/svgcheck/inputs/viewBox-width.svg +3 -0
  215. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.code +1 -0
  216. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.err +0 -0
  217. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.file +0 -0
  218. data/spec/fixtures/svgcheck/repair/DrawBerry-sample-2.svg.out +23 -0
  219. data/spec/fixtures/svgcheck/repair/IETF-test.svg.code +1 -0
  220. data/spec/fixtures/svgcheck/repair/IETF-test.svg.err +0 -0
  221. data/spec/fixtures/svgcheck/repair/IETF-test.svg.file +29 -0
  222. data/spec/fixtures/svgcheck/repair/IETF-test.svg.out +20 -0
  223. data/spec/fixtures/svgcheck/repair/circle.svg.code +1 -0
  224. data/spec/fixtures/svgcheck/repair/circle.svg.err +0 -0
  225. data/spec/fixtures/svgcheck/repair/circle.svg.file +4 -0
  226. data/spec/fixtures/svgcheck/repair/circle.svg.out +2 -0
  227. data/spec/fixtures/svgcheck/repair/colors.svg.code +1 -0
  228. data/spec/fixtures/svgcheck/repair/colors.svg.err +0 -0
  229. data/spec/fixtures/svgcheck/repair/colors.svg.file +19 -0
  230. data/spec/fixtures/svgcheck/repair/colors.svg.out +13 -0
  231. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.code +1 -0
  232. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.err +0 -0
  233. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.file +47 -0
  234. data/spec/fixtures/svgcheck/repair/dia-sample-svg.svg.out +76 -0
  235. data/spec/fixtures/svgcheck/repair/example-dot.svg.code +1 -0
  236. data/spec/fixtures/svgcheck/repair/example-dot.svg.err +0 -0
  237. data/spec/fixtures/svgcheck/repair/example-dot.svg.file +69 -0
  238. data/spec/fixtures/svgcheck/repair/example-dot.svg.out +11 -0
  239. data/spec/fixtures/svgcheck/repair/good.svg.code +1 -0
  240. data/spec/fixtures/svgcheck/repair/good.svg.err +0 -0
  241. data/spec/fixtures/svgcheck/repair/good.svg.file +0 -0
  242. data/spec/fixtures/svgcheck/repair/good.svg.out +1 -0
  243. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.code +1 -0
  244. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.err +0 -0
  245. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.file +73 -0
  246. data/spec/fixtures/svgcheck/repair/httpbis-proxy20-fig6.svg.out +5 -0
  247. data/spec/fixtures/svgcheck/repair/malformed.svg.code +1 -0
  248. data/spec/fixtures/svgcheck/repair/malformed.svg.err +0 -0
  249. data/spec/fixtures/svgcheck/repair/malformed.svg.file +9 -0
  250. data/spec/fixtures/svgcheck/repair/malformed.svg.out +8 -0
  251. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.code +1 -0
  252. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.err +0 -0
  253. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.file +0 -0
  254. data/spec/fixtures/svgcheck/repair/rfc-svg.svg.out +1 -0
  255. data/spec/fixtures/svgcheck/repair/rfc.xml.code +1 -0
  256. data/spec/fixtures/svgcheck/repair/rfc.xml.err +0 -0
  257. data/spec/fixtures/svgcheck/repair/rfc.xml.file +37 -0
  258. data/spec/fixtures/svgcheck/repair/rfc.xml.out +2 -0
  259. data/spec/fixtures/svgcheck/repair/rgb.svg.code +1 -0
  260. data/spec/fixtures/svgcheck/repair/rgb.svg.err +0 -0
  261. data/spec/fixtures/svgcheck/repair/rgb.svg.file +10 -0
  262. data/spec/fixtures/svgcheck/repair/rgb.svg.out +9 -0
  263. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.code +1 -0
  264. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.err +0 -0
  265. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.file +112 -0
  266. data/spec/fixtures/svgcheck/repair/svg-wordle.svg.out +508 -0
  267. data/spec/fixtures/svgcheck/repair/threshold.svg.code +1 -0
  268. data/spec/fixtures/svgcheck/repair/threshold.svg.err +0 -0
  269. data/spec/fixtures/svgcheck/repair/threshold.svg.file +27 -0
  270. data/spec/fixtures/svgcheck/repair/threshold.svg.out +20 -0
  271. data/spec/fixtures/svgcheck/repair/utf8.svg.code +1 -0
  272. data/spec/fixtures/svgcheck/repair/utf8.svg.err +0 -0
  273. data/spec/fixtures/svgcheck/repair/utf8.svg.file +381 -0
  274. data/spec/fixtures/svgcheck/repair/utf8.svg.out +162 -0
  275. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.code +1 -0
  276. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.err +0 -0
  277. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.file +4 -0
  278. data/spec/fixtures/svgcheck/repair/viewBox-both.svg.out +4 -0
  279. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.code +1 -0
  280. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.err +0 -0
  281. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.file +4 -0
  282. data/spec/fixtures/svgcheck/repair/viewBox-height.svg.out +3 -0
  283. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.code +1 -0
  284. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.err +0 -0
  285. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.file +4 -0
  286. data/spec/fixtures/svgcheck/repair/viewBox-none.svg.out +3 -0
  287. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.code +1 -0
  288. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.err +0 -0
  289. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.file +4 -0
  290. data/spec/fixtures/svgcheck/repair/viewBox-width.svg.out +3 -0
  291. data/spec/fixtures/viewbox_required/inputs/missing_viewbox.svg +10 -0
  292. data/spec/fixtures/viewbox_required/repair/missing_viewbox.svg +10 -0
  293. data/spec/spec_helper.rb +16 -0
  294. data/spec/svg_conform/batch_report_spec.rb +99 -0
  295. data/spec/svg_conform/commands/check_command_spec.rb +90 -0
  296. data/spec/svg_conform/commands/profiles_command_spec.rb +20 -0
  297. data/spec/svg_conform/commands/svgcheck_compare_command_spec.rb +13 -0
  298. data/spec/svg_conform/commands/svgcheck_compatibility_command_spec.rb +13 -0
  299. data/spec/svg_conform/commands/svgcheck_generate_command_spec.rb +14 -0
  300. data/spec/svg_conform/profiles/base_profile_spec.rb +42 -0
  301. data/spec/svg_conform/profiles/lucid_fix_profile_spec.rb +46 -0
  302. data/spec/svg_conform/profiles/lucid_profile_spec.rb +84 -0
  303. data/spec/svg_conform/profiles/metanorma_profile_spec.rb +62 -0
  304. data/spec/svg_conform/profiles/no_external_css_profile_spec.rb +66 -0
  305. data/spec/svg_conform/profiles/svg_1_2_rfc_profile_spec.rb +200 -0
  306. data/spec/svg_conform/profiles/svg_1_2_rfc_with_rdf_profile_spec.rb +81 -0
  307. data/spec/svg_conform/remediations/color_remediation_spec.rb +95 -0
  308. data/spec/svg_conform/remediations/font_embedding_remediation_spec.rb +20 -0
  309. data/spec/svg_conform/remediations/font_remediation_spec.rb +95 -0
  310. data/spec/svg_conform/remediations/image_embedding_remediation_spec.rb +20 -0
  311. data/spec/svg_conform/remediations/invalid_id_references_remediation_spec.rb +97 -0
  312. data/spec/svg_conform/remediations/namespace_attribute_remediation_spec.rb +97 -0
  313. data/spec/svg_conform/remediations/namespace_remediation_spec.rb +95 -0
  314. data/spec/svg_conform/remediations/no_external_css_remediation_spec.rb +97 -0
  315. data/spec/svg_conform/remediations/style_promotion_remediation_spec.rb +97 -0
  316. data/spec/svg_conform/remediations/viewbox_remediation_spec.rb +95 -0
  317. data/spec/svg_conform/requirements/allowed_elements_requirement_spec.rb +118 -0
  318. data/spec/svg_conform/requirements/color_restrictions_requirement_spec.rb +168 -0
  319. data/spec/svg_conform/requirements/font_family_requirement_spec.rb +188 -0
  320. data/spec/svg_conform/requirements/forbidden_content_requirement_spec.rb +195 -0
  321. data/spec/svg_conform/requirements/id_reference_requirement_spec.rb +78 -0
  322. data/spec/svg_conform/requirements/invalid_id_references_requirement_spec.rb +78 -0
  323. data/spec/svg_conform/requirements/link_validation_requirement_spec.rb +78 -0
  324. data/spec/svg_conform/requirements/namespace_attributes_requirement_spec.rb +86 -0
  325. data/spec/svg_conform/requirements/namespace_requirement_spec.rb +184 -0
  326. data/spec/svg_conform/requirements/no_external_css_requirement_spec.rb +78 -0
  327. data/spec/svg_conform/requirements/no_external_fonts_requirement_spec.rb +20 -0
  328. data/spec/svg_conform/requirements/no_external_images_requirement_spec.rb +20 -0
  329. data/spec/svg_conform/requirements/style_promotion_requirement_spec.rb +78 -0
  330. data/spec/svg_conform/requirements/style_requirement_spec.rb +76 -0
  331. data/spec/svg_conform/requirements/viewbox_required_requirement_spec.rb +165 -0
  332. data/spec/svg_conform_spec.rb +32 -0
  333. data/spec/svgcheck_compatibility_spec.rb +355 -0
  334. data/svg_conform.gemspec +35 -0
  335. metadata +436 -0
@@ -0,0 +1,26 @@
1
+ <svg height="100" width="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100.0 100.0">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(0,0,0)"/>
4
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(126,126,126)"/>
5
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(128,128,128)"/>
6
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(128,128,182)"/>
7
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(255,255,255)"/>
8
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(400,255,255)"/>
9
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#fff"/>
10
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#aaa"/>
11
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000"/>
12
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#ffffff"/>
13
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#000000"/>
14
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="#0a0a0a"/>
15
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(0%,0%,0%)"/>
16
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(49%,50%,50%)"/>
17
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(51%,50%,50%)"/>
18
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(75%,75%,75%)"/>
19
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="rgb(100%,255,255)"/>
20
+
21
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="grey"/>
22
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="gray"/>
23
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="black"/>
24
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="white"/>
25
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="unknown"/>
26
+ </svg>
@@ -0,0 +1,448 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg version="1.2" viewBox="0 0 28000 21000" preserveAspectRatio="xMidYMid" fill-rule="evenodd" stroke-width="28.222" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg" xmlns:ooo="http://xml.openoffice.org/svg/export" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:presentation="http://sun.com/xmlns/staroffice/presentation" xmlns:smil="http://www.w3.org/2001/SMIL20/" xmlns:anim="urn:oasis:names:tc:opendocument:xmlns:animation:1.0" xml:space="preserve">
4
+ <defs class="ClipPathGroup">
5
+ <clipPath id="presentation_clip_path" clipPathUnits="userSpaceOnUse">
6
+ <rect x="0" y="0" width="28000" height="21000"/>
7
+ </clipPath>
8
+ <clipPath id="presentation_clip_path_shrink" clipPathUnits="userSpaceOnUse">
9
+ <rect x="28" y="21" width="27944" height="20958"/>
10
+ </clipPath>
11
+ </defs>
12
+ <defs>
13
+ <g id="ooo:meta_slides" ooo:number-of-slides="1" ooo:start-slide-number="0">
14
+ <g id="ooo:meta_dummy_slide" ooo:slide="dummy-slide" ooo:master="dummy-master-page" ooo:background-visibility="hidden" ooo:master-objects-visibility="hidden" ooo:has-transition="false"/>
15
+ <g id="ooo:meta_slide_0" ooo:slide="id1" ooo:master="id2" ooo:date-time-visibility="hidden" ooo:footer-visibility="hidden" ooo:has-transition="true"/>
16
+ </g>
17
+ </defs>
18
+ <defs id="presentation-animations"/>
19
+ <defs>
20
+ <font id="EmbeddedFont_1" horiz-adv-x="2048">
21
+ <font-face font-family="Arial embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1852" descent="441"/>
22
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
23
+ <glyph unicode="→" horiz-adv-x="1906" d="M 1555,876 C 1644,779 1720,706 1785,656 1850,605 1911,568 1968,543 L 1968,498 C 1902,466 1838,425 1776,376 1714,326 1640,253 1554,157 L 1477,157 C 1540,291 1605,394 1674,466 L 79,466 79,567 1674,567 C 1623,632 1588,680 1568,711 1548,742 1518,797 1479,876 L 1555,876 Z"/>
24
+ <glyph unicode="←" horiz-adv-x="1906" d="M 492,876 L 568,876 C 529,797 499,742 480,711 460,679 424,631 373,567 L 1968,567 1968,466 373,466 C 442,394 508,291 571,157 L 493,157 C 407,253 333,326 271,376 209,425 145,466 79,498 L 79,543 C 137,568 198,605 263,656 328,707 404,780 492,876 Z"/>
25
+ <glyph unicode="…" horiz-adv-x="1448" d="M 239,0 L 239,205 444,205 444,0 239,0 Z M 922,0 L 922,205 1127,205 1127,0 922,0 Z M 1604,0 L 1604,205 1810,205 1810,0 1604,0 Z"/>
26
+ <glyph unicode="y" horiz-adv-x="953" d="M 127,-409 L 107,-240 C 146,-251 181,-256 210,-256 250,-256 282,-249 306,-236 330,-223 350,-204 365,-180 376,-162 395,-117 420,-46 423,-36 429,-21 436,-2 L 33,1062 227,1062 448,447 C 477,369 502,287 525,201 546,284 570,364 599,443 L 826,1062 1006,1062 602,-18 C 559,-135 525,-215 501,-259 469,-318 432,-362 391,-389 350,-417 300,-431 243,-431 208,-431 170,-424 127,-409 Z"/>
27
+ <glyph unicode="x" horiz-adv-x="1006" d="M 15,0 L 403,552 44,1062 269,1062 432,813 C 463,766 487,726 506,694 535,738 562,777 587,811 L 766,1062 981,1062 614,562 1009,0 788,0 570,330 512,419 233,0 15,0 Z"/>
28
+ <glyph unicode="w" horiz-adv-x="1465" d="M 331,0 L 6,1062 192,1062 361,449 424,221 C 427,232 445,305 479,440 L 648,1062 833,1062 992,446 1045,243 1106,448 1288,1062 1463,1062 1131,0 944,0 775,636 734,817 519,0 331,0 Z"/>
29
+ <glyph unicode="v" horiz-adv-x="971" d="M 430,0 L 26,1062 216,1062 444,426 C 469,357 491,286 512,212 528,268 550,335 579,414 L 815,1062 1000,1062 598,0 430,0 Z"/>
30
+ <glyph unicode="u" horiz-adv-x="865" d="M 831,0 L 831,156 C 748,36 636,-24 494,-24 431,-24 373,-12 319,12 264,36 224,66 198,103 171,139 153,183 142,236 135,271 131,327 131,404 L 131,1062 311,1062 311,473 C 311,379 315,316 322,283 333,236 357,199 394,172 431,145 476,131 530,131 584,131 635,145 682,173 729,200 763,238 783,286 802,333 812,402 812,493 L 812,1062 992,1062 992,0 831,0 Z"/>
31
+ <glyph unicode="t" horiz-adv-x="530" d="M 528,161 L 554,2 C 503,-9 458,-14 418,-14 353,-14 302,-4 266,17 230,38 205,65 190,99 175,132 168,203 168,311 L 168,922 36,922 36,1062 168,1062 168,1325 347,1433 347,1062 528,1062 528,922 347,922 347,301 C 347,250 350,217 357,202 363,187 373,176 388,167 402,158 422,154 449,154 469,154 495,156 528,161 Z"/>
32
+ <glyph unicode="s" horiz-adv-x="883" d="M 63,317 L 241,345 C 251,274 279,219 325,181 370,143 434,124 516,124 599,124 660,141 700,175 740,208 760,248 760,293 760,334 742,366 707,389 682,405 621,425 523,450 391,483 300,512 249,537 198,561 159,595 133,638 106,681 93,728 93,780 93,827 104,871 126,912 147,952 177,985 214,1012 242,1033 280,1050 329,1065 377,1079 429,1086 484,1086 567,1086 641,1074 704,1050 767,1026 813,994 843,953 873,912 894,857 905,788 L 729,764 C 721,819 698,861 660,892 621,923 567,938 497,938 414,938 355,924 320,897 285,870 267,838 267,801 267,778 274,757 289,738 304,719 327,703 358,690 376,683 429,668 517,644 644,610 733,582 784,561 834,539 873,507 902,466 931,425 945,373 945,312 945,252 928,196 893,143 858,90 807,49 741,20 675,-9 600,-24 517,-24 379,-24 274,5 202,62 129,119 83,204 63,317 Z"/>
33
+ <glyph unicode="r" horiz-adv-x="566" d="M 133,0 L 133,1062 295,1062 295,901 C 336,976 375,1026 410,1050 445,1074 483,1086 525,1086 586,1086 647,1067 710,1028 L 648,861 C 604,887 560,900 516,900 477,900 441,888 410,865 379,841 356,808 343,766 323,702 313,632 313,556 L 313,0 133,0 Z"/>
34
+ <glyph unicode="p" horiz-adv-x="918" d="M 135,-407 L 135,1062 299,1062 299,924 C 338,978 381,1019 430,1046 479,1073 538,1086 607,1086 698,1086 778,1063 847,1016 916,969 969,904 1004,819 1039,734 1057,640 1057,539 1057,430 1038,333 999,246 960,159 903,92 829,46 754,-1 676,-24 594,-24 534,-24 480,-11 433,14 385,39 346,71 315,110 L 315,-407 135,-407 Z M 298,525 C 298,388 326,287 381,222 436,157 503,124 582,124 662,124 731,158 788,226 845,293 873,398 873,540 873,675 845,777 790,844 734,911 667,945 590,945 513,945 446,909 387,838 328,766 298,662 298,525 Z"/>
35
+ <glyph unicode="o" horiz-adv-x="971" d="M 68,531 C 68,728 123,873 232,968 323,1047 435,1086 566,1086 712,1086 831,1038 924,943 1017,847 1063,715 1063,546 1063,409 1043,302 1002,224 961,145 901,84 823,41 744,-2 659,-24 566,-24 417,-24 297,24 206,119 114,214 68,352 68,531 Z M 253,531 C 253,395 283,293 342,226 401,158 476,124 566,124 655,124 730,158 789,226 848,294 878,398 878,537 878,668 848,768 789,836 729,903 655,937 566,937 476,937 401,903 342,836 283,769 253,667 253,531 Z"/>
36
+ <glyph unicode="n" horiz-adv-x="865" d="M 135,0 L 135,1062 297,1062 297,911 C 375,1028 488,1086 635,1086 699,1086 758,1075 812,1052 865,1029 905,998 932,961 959,924 977,879 988,828 995,795 998,736 998,653 L 998,0 818,0 818,646 C 818,719 811,774 797,811 783,847 758,876 723,898 687,919 645,930 597,930 520,930 454,906 399,857 343,808 315,716 315,580 L 315,0 135,0 Z"/>
37
+ <glyph unicode="m" horiz-adv-x="1466" d="M 135,0 L 135,1062 296,1062 296,913 C 329,965 374,1007 429,1039 484,1070 547,1086 618,1086 697,1086 761,1070 812,1037 862,1004 897,959 918,900 1002,1024 1111,1086 1246,1086 1351,1086 1432,1057 1489,999 1546,940 1574,850 1574,729 L 1574,0 1395,0 1395,669 C 1395,741 1389,793 1378,825 1366,856 1345,882 1314,901 1283,920 1247,930 1206,930 1131,930 1069,905 1020,856 971,806 946,726 946,617 L 946,0 766,0 766,690 C 766,770 751,830 722,870 693,910 645,930 578,930 527,930 481,917 438,890 395,863 363,824 344,773 325,722 315,648 315,551 L 315,0 135,0 Z"/>
38
+ <glyph unicode="l" horiz-adv-x="178" d="M 131,0 L 131,1466 311,1466 311,0 131,0 Z"/>
39
+ <glyph unicode="k" horiz-adv-x="883" d="M 136,0 L 136,1466 316,1466 316,630 742,1062 975,1062 569,668 1016,0 794,0 443,543 316,421 316,0 136,0 Z"/>
40
+ <glyph unicode="i" horiz-adv-x="178" d="M 136,1259 L 136,1466 316,1466 316,1259 136,1259 Z M 136,0 L 136,1062 316,1062 316,0 136,0 Z"/>
41
+ <glyph unicode="h" horiz-adv-x="865" d="M 135,0 L 135,1466 315,1466 315,940 C 399,1037 505,1086 633,1086 712,1086 780,1071 838,1040 896,1009 938,966 963,911 988,856 1000,777 1000,673 L 1000,0 820,0 820,673 C 820,763 801,829 762,870 723,911 667,931 596,931 543,931 493,917 446,890 399,862 365,824 345,777 325,730 315,664 315,581 L 315,0 135,0 Z"/>
42
+ <glyph unicode="g" horiz-adv-x="936" d="M 102,-88 L 277,-114 C 284,-168 305,-207 338,-232 383,-265 444,-282 521,-282 604,-282 669,-265 714,-232 759,-199 790,-152 806,-92 815,-55 820,22 819,139 740,46 642,0 525,0 379,0 266,53 186,158 106,263 66,390 66,537 66,638 84,732 121,818 158,903 211,969 281,1016 350,1063 432,1086 526,1086 651,1086 755,1035 836,934 L 836,1062 1002,1062 1002,144 C 1002,-21 985,-138 952,-207 918,-276 865,-331 792,-371 719,-411 629,-431 522,-431 395,-431 293,-402 215,-345 137,-288 99,-203 102,-88 Z M 251,550 C 251,411 279,309 334,245 389,181 459,149 542,149 625,149 694,181 750,245 806,308 834,408 834,544 834,674 805,772 748,838 690,904 620,937 539,937 459,937 391,905 335,840 279,775 251,678 251,550 Z"/>
43
+ <glyph unicode="f" horiz-adv-x="618" d="M 178,0 L 178,922 19,922 19,1062 178,1062 178,1175 C 178,1246 184,1299 197,1334 214,1381 245,1419 289,1448 332,1477 393,1491 472,1491 523,1491 579,1485 640,1473 L 613,1316 C 576,1323 540,1326 507,1326 452,1326 414,1314 391,1291 368,1268 357,1224 357,1160 L 357,1062 564,1062 564,922 357,922 357,0 178,0 Z"/>
44
+ <glyph unicode="e" horiz-adv-x="1006" d="M 862,342 L 1048,319 C 1019,210 964,126 885,66 806,6 704,-24 581,-24 426,-24 303,24 212,120 121,215 75,349 75,522 75,701 121,839 213,938 305,1037 424,1086 571,1086 713,1086 829,1038 919,941 1009,844 1054,708 1054,533 1054,522 1054,506 1053,485 L 261,485 C 268,368 301,279 360,217 419,155 493,124 582,124 648,124 704,141 751,176 798,211 835,266 862,342 Z M 271,633 L 864,633 C 856,722 833,789 796,834 739,903 664,938 573,938 490,938 421,910 365,855 308,800 277,726 271,633 Z"/>
45
+ <glyph unicode="d" horiz-adv-x="918" d="M 824,0 L 824,134 C 757,29 658,-24 527,-24 442,-24 365,-1 294,46 223,93 168,158 129,242 90,325 70,421 70,530 70,636 88,732 123,819 158,905 211,971 282,1017 353,1063 432,1086 519,1086 583,1086 640,1073 690,1046 740,1019 781,983 812,940 L 812,1466 991,1466 991,0 824,0 Z M 255,530 C 255,394 284,292 341,225 398,158 466,124 544,124 623,124 690,156 745,221 800,285 827,383 827,515 827,660 799,767 743,835 687,903 618,937 536,937 456,937 389,904 336,839 282,774 255,671 255,530 Z"/>
46
+ <glyph unicode="c" horiz-adv-x="918" d="M 828,389 L 1005,366 C 986,244 936,149 857,80 777,11 679,-24 563,-24 418,-24 301,24 213,119 124,214 80,350 80,527 80,642 99,742 137,828 175,914 233,979 311,1022 388,1065 473,1086 564,1086 679,1086 774,1057 847,999 920,940 967,857 988,750 L 813,723 C 796,794 767,848 725,884 682,920 631,938 571,938 480,938 407,906 350,841 293,776 265,673 265,532 265,389 292,286 347,221 402,156 473,124 561,124 632,124 691,146 738,189 785,232 815,299 828,389 Z"/>
47
+ <glyph unicode="b" horiz-adv-x="918" d="M 301,0 L 134,0 134,1466 314,1466 314,943 C 390,1038 487,1086 605,1086 670,1086 732,1073 791,1047 849,1020 897,983 935,936 972,888 1002,830 1023,763 1044,696 1055,624 1055,547 1055,365 1010,224 920,125 830,26 722,-24 596,-24 471,-24 372,28 301,133 L 301,0 Z M 299,539 C 299,412 316,320 351,263 408,170 484,124 581,124 660,124 728,158 785,227 842,295 871,397 871,532 871,671 844,773 789,839 734,905 667,938 589,938 510,938 442,904 385,836 328,767 299,668 299,539 Z"/>
48
+ <glyph unicode="a" horiz-adv-x="971" d="M 828,131 C 761,74 697,34 636,11 574,-12 508,-24 437,-24 320,-24 231,5 168,62 105,119 74,191 74,280 74,332 86,380 110,423 133,466 164,500 203,526 241,552 284,572 332,585 367,594 421,603 492,612 637,629 744,650 813,674 814,699 814,714 814,721 814,794 797,846 763,876 717,917 649,937 558,937 473,937 411,922 371,893 330,863 300,810 281,735 L 105,759 C 121,834 147,895 184,942 221,988 274,1024 343,1049 412,1074 493,1086 584,1086 675,1086 748,1075 805,1054 862,1033 903,1006 930,974 957,941 975,900 986,851 992,820 995,765 995,685 L 995,445 C 995,278 999,172 1007,128 1014,83 1029,41 1052,0 L 864,0 C 845,37 833,81 828,131 Z M 813,533 C 748,506 650,484 519,465 445,454 393,442 362,429 331,416 308,396 291,371 274,345 266,316 266,285 266,237 284,197 321,165 357,133 410,117 480,117 549,117 611,132 665,163 719,193 759,234 784,287 803,328 813,388 813,467 L 813,533 Z"/>
49
+ <glyph unicode="U" horiz-adv-x="1165" d="M 1120,1466 L 1314,1466 1314,619 C 1314,472 1297,355 1264,268 1231,181 1171,111 1084,57 997,2 882,-25 741,-25 604,-25 491,-1 404,46 317,93 254,162 217,252 180,341 161,464 161,619 L 161,1466 355,1466 355,620 C 355,493 367,399 391,339 414,278 455,232 513,199 570,166 641,150 724,150 867,150 968,182 1029,247 1090,312 1120,436 1120,620 L 1120,1466 Z"/>
50
+ <glyph unicode="T" horiz-adv-x="1147" d="M 531,0 L 531,1293 48,1293 48,1466 1210,1466 1210,1293 725,1293 725,0 531,0 Z"/>
51
+ <glyph unicode="S" horiz-adv-x="1165" d="M 92,471 L 275,487 C 284,414 304,354 336,307 367,260 416,222 483,193 550,164 625,149 708,149 782,149 847,160 904,182 961,204 1003,234 1031,273 1058,311 1072,353 1072,398 1072,444 1059,484 1032,519 1005,553 961,582 900,605 861,620 774,644 639,677 504,709 410,739 356,768 286,805 234,850 200,905 165,959 148,1020 148,1087 148,1161 169,1230 211,1295 253,1359 314,1408 395,1441 476,1474 565,1491 664,1491 773,1491 869,1474 952,1439 1035,1404 1098,1352 1143,1284 1188,1216 1212,1139 1215,1053 L 1029,1039 C 1019,1132 985,1202 928,1249 870,1296 785,1320 672,1320 555,1320 469,1299 416,1256 362,1213 335,1161 335,1100 335,1047 354,1004 392,970 429,936 527,901 685,866 842,830 950,799 1009,772 1094,733 1157,683 1198,623 1239,562 1259,493 1259,414 1259,336 1237,263 1192,194 1147,125 1083,71 1000,33 916,-6 822,-25 717,-25 584,-25 473,-6 384,33 294,72 224,130 173,208 122,285 95,373 92,471 Z"/>
52
+ <glyph unicode="P" horiz-adv-x="1094" d="M 158,0 L 158,1466 711,1466 C 808,1466 883,1461 934,1452 1006,1440 1066,1417 1115,1384 1164,1350 1203,1303 1233,1242 1262,1181 1277,1115 1277,1042 1277,917 1237,812 1158,726 1079,639 935,596 728,596 L 352,596 352,0 158,0 Z M 352,769 L 731,769 C 856,769 945,792 998,839 1051,886 1077,951 1077,1036 1077,1097 1062,1150 1031,1194 1000,1237 959,1266 908,1280 875,1289 815,1293 727,1293 L 352,1293 352,769 Z"/>
53
+ <glyph unicode="O" horiz-adv-x="1395" d="M 99,714 C 99,957 164,1148 295,1286 426,1423 594,1492 801,1492 936,1492 1058,1460 1167,1395 1276,1330 1359,1240 1416,1125 1473,1009 1501,878 1501,731 1501,582 1471,449 1411,332 1351,215 1266,126 1156,66 1046,5 927,-25 800,-25 662,-25 539,8 430,75 321,142 239,233 183,348 127,463 99,585 99,714 Z M 299,711 C 299,534 347,395 442,294 537,192 656,141 799,141 945,141 1065,192 1160,295 1254,398 1301,543 1301,732 1301,851 1281,956 1241,1045 1200,1134 1141,1203 1064,1252 986,1301 899,1325 802,1325 665,1325 547,1278 448,1184 349,1089 299,932 299,711 Z"/>
54
+ <glyph unicode="N" horiz-adv-x="1165" d="M 156,0 L 156,1466 355,1466 1125,315 1125,1466 1311,1466 1311,0 1112,0 342,1152 342,0 156,0 Z"/>
55
+ <glyph unicode="L" horiz-adv-x="918" d="M 150,0 L 150,1466 344,1466 344,173 1066,173 1066,0 150,0 Z"/>
56
+ <glyph unicode="I" horiz-adv-x="195" d="M 191,0 L 191,1466 385,1466 385,0 191,0 Z"/>
57
+ <glyph unicode="H" horiz-adv-x="1165" d="M 164,0 L 164,1466 358,1466 358,864 1120,864 1120,1466 1314,1466 1314,0 1120,0 1120,691 358,691 358,0 164,0 Z"/>
58
+ <glyph unicode="F" horiz-adv-x="989" d="M 168,0 L 168,1466 1157,1466 1157,1293 362,1293 362,839 1050,839 1050,666 362,666 362,0 168,0 Z"/>
59
+ <glyph unicode="D" horiz-adv-x="1218" d="M 158,0 L 158,1466 663,1466 C 777,1466 864,1459 924,1445 1008,1426 1080,1391 1139,1340 1216,1275 1274,1191 1313,1090 1351,988 1370,872 1370,741 1370,630 1357,531 1331,445 1305,359 1272,288 1231,232 1190,175 1146,131 1098,99 1049,66 991,42 923,25 854,8 776,0 687,0 L 158,0 Z M 352,173 L 665,173 C 762,173 838,182 893,200 948,218 991,243 1024,276 1070,322 1106,384 1132,462 1157,539 1170,633 1170,744 1170,897 1145,1015 1095,1098 1044,1180 983,1235 911,1263 859,1283 775,1293 660,1293 L 352,1293 352,173 Z"/>
60
+ <glyph unicode="C" horiz-adv-x="1289" d="M 1204,514 L 1398,465 C 1357,306 1284,184 1179,101 1073,17 944,-25 791,-25 633,-25 505,7 406,72 307,136 231,229 180,351 128,473 102,604 102,744 102,897 131,1030 190,1144 248,1257 331,1344 439,1403 546,1462 665,1491 794,1491 941,1491 1064,1454 1164,1379 1264,1304 1334,1199 1373,1064 L 1182,1019 C 1148,1126 1099,1203 1034,1252 969,1301 888,1325 790,1325 677,1325 583,1298 508,1244 432,1190 379,1118 348,1027 317,936 302,842 302,745 302,620 320,512 357,419 393,326 449,256 526,210 603,164 686,141 775,141 884,141 976,172 1051,235 1126,298 1177,391 1204,514 Z"/>
61
+ <glyph unicode="&gt;" horiz-adv-x="971" d="M 1083,641 L 112,226 112,405 881,724 112,1040 112,1219 1083,809 1083,641 Z"/>
62
+ <glyph unicode="&lt;" horiz-adv-x="971" d="M 112,641 L 112,809 1083,1219 1083,1040 313,724 1083,405 1083,226 112,641 Z"/>
63
+ <glyph unicode="6" horiz-adv-x="1006" d="M 1019,1107 L 840,1093 C 824,1164 801,1215 772,1247 723,1298 663,1324 592,1324 535,1324 484,1308 441,1276 384,1235 340,1174 307,1095 274,1016 257,903 256,756 299,822 352,871 415,903 478,935 543,951 612,951 732,951 834,907 919,819 1003,730 1045,616 1045,476 1045,384 1025,299 986,220 946,141 891,80 822,38 753,-4 674,-25 586,-25 436,-25 314,30 219,141 124,251 77,433 77,686 77,969 129,1175 234,1304 325,1416 448,1472 603,1472 718,1472 813,1440 887,1375 960,1310 1004,1221 1019,1107 Z M 284,475 C 284,413 297,354 324,297 350,240 387,197 434,168 481,138 531,123 583,123 659,123 724,154 779,215 834,276 861,360 861,465 861,566 834,646 780,705 726,763 658,792 576,792 495,792 426,763 369,705 312,646 284,570 284,475 Z"/>
64
+ <glyph unicode="4" horiz-adv-x="1041" d="M 662,0 L 662,351 26,351 26,516 695,1466 842,1466 842,516 1040,516 1040,351 842,351 842,0 662,0 Z M 662,516 L 662,1177 203,516 662,516 Z"/>
65
+ <glyph unicode="3" horiz-adv-x="971" d="M 86,387 L 266,411 C 287,309 322,236 372,191 421,146 482,123 553,123 638,123 709,152 768,211 826,270 855,342 855,429 855,512 828,580 774,634 720,687 651,714 568,714 534,714 492,707 441,694 L 461,852 C 473,851 483,850 490,850 567,850 636,870 697,910 758,950 789,1012 789,1095 789,1161 767,1216 722,1259 677,1302 620,1324 549,1324 479,1324 421,1302 374,1258 327,1214 297,1148 284,1060 L 104,1092 C 126,1213 176,1306 254,1373 332,1439 429,1472 545,1472 625,1472 699,1455 766,1421 833,1386 885,1339 921,1280 956,1221 974,1158 974,1091 974,1028 957,970 923,918 889,866 839,825 772,794 859,774 926,733 974,670 1022,607 1046,528 1046,433 1046,305 999,197 906,108 813,19 695,-26 552,-26 423,-26 317,12 232,89 147,166 98,265 86,387 Z"/>
66
+ <glyph unicode="/" horiz-adv-x="601" d="M 0,-25 L 425,1491 569,1491 145,-25 0,-25 Z"/>
67
+ <glyph unicode="-" horiz-adv-x="565" d="M 65,440 L 65,621 618,621 618,440 65,440 Z"/>
68
+ <glyph unicode=" " horiz-adv-x="564"/>
69
+ </font>
70
+ </defs>
71
+ <defs>
72
+ <font id="EmbeddedFont_2" horiz-adv-x="2048">
73
+ <font-face font-family="Symbol embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="2064" descent="441"/>
74
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
75
+ <glyph unicode="" horiz-adv-x="1042" d="M 37,576 L 1087,576 1087,477 37,477 37,576 Z"/>
76
+ </font>
77
+ </defs>
78
+ <defs>
79
+ <font id="EmbeddedFont_3" horiz-adv-x="2048">
80
+ <font-face font-family="Wingdings embedded" units-per-em="2048" font-weight="normal" font-style="normal" ascent="1834" descent="423"/>
81
+ <missing-glyph horiz-adv-x="2048" d="M 0,0 L 2047,0 2047,2047 0,2047 0,0 Z"/>
82
+ <glyph unicode="" horiz-adv-x="1183" d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
83
+ </font>
84
+ </defs>
85
+ <defs class="TextShapeIndex">
86
+ <g ooo:slide="id1" ooo:id-list="id4 id5 id6 id7 id8 id9 id10 id11 id12 id13 id14 id15 id16 id17 id18 id19 id20 id21 id22 id23 id24 id25 id26 id27 id28 id29 id30 id31 id32 id33 id34 id35 id36 id37 id38 id39 id40 id41 id42 id43"/>
87
+ </defs>
88
+ <defs class="EmbeddedBulletChars">
89
+ <g id="bullet-char-template-57356" transform="scale(0.00048828125,-0.00048828125)">
90
+ <path d="M 580,1141 L 1163,571 580,0 -4,571 580,1141 Z"/>
91
+ </g>
92
+ <g id="bullet-char-template-57354" transform="scale(0.00048828125,-0.00048828125)">
93
+ <path d="M 8,1128 L 1137,1128 1137,0 8,0 8,1128 Z"/>
94
+ </g>
95
+ <g id="bullet-char-template-10146" transform="scale(0.00048828125,-0.00048828125)">
96
+ <path d="M 174,0 L 602,739 174,1481 1456,739 174,0 Z M 1358,739 L 309,1346 659,739 1358,739 Z"/>
97
+ </g>
98
+ <g id="bullet-char-template-10132" transform="scale(0.00048828125,-0.00048828125)">
99
+ <path d="M 2015,739 L 1276,0 717,0 1260,543 174,543 174,936 1260,936 717,1481 1274,1481 2015,739 Z"/>
100
+ </g>
101
+ <g id="bullet-char-template-10007" transform="scale(0.00048828125,-0.00048828125)">
102
+ <path d="M 0,-2 C -7,14 -16,27 -25,37 L 356,567 C 262,823 215,952 215,954 215,979 228,992 255,992 264,992 276,990 289,987 310,991 331,999 354,1012 L 381,999 492,748 772,1049 836,1024 860,1049 C 881,1039 901,1025 922,1006 886,937 835,863 770,784 769,783 710,716 594,584 L 774,223 C 774,196 753,168 711,139 L 727,119 C 717,90 699,76 672,76 641,76 570,178 457,381 L 164,-76 C 142,-110 111,-127 72,-127 30,-127 9,-110 8,-76 1,-67 -2,-52 -2,-32 -2,-23 -1,-13 0,-2 Z"/>
103
+ </g>
104
+ <g id="bullet-char-template-10004" transform="scale(0.00048828125,-0.00048828125)">
105
+ <path d="M 285,-33 C 182,-33 111,30 74,156 52,228 41,333 41,471 41,549 55,616 82,672 116,743 169,778 240,778 293,778 328,747 346,684 L 369,508 C 377,444 397,411 428,410 L 1163,1116 C 1174,1127 1196,1133 1229,1133 1271,1133 1292,1118 1292,1087 L 1292,965 C 1292,929 1282,901 1262,881 L 442,47 C 390,-6 338,-33 285,-33 Z"/>
106
+ </g>
107
+ <g id="bullet-char-template-9679" transform="scale(0.00048828125,-0.00048828125)">
108
+ <path d="M 813,0 C 632,0 489,54 383,161 276,268 223,411 223,592 223,773 276,916 383,1023 489,1130 632,1184 813,1184 992,1184 1136,1130 1245,1023 1353,916 1407,772 1407,592 1407,412 1353,268 1245,161 1136,54 992,0 813,0 Z"/>
109
+ </g>
110
+ <g id="bullet-char-template-8226" transform="scale(0.00048828125,-0.00048828125)">
111
+ <path d="M 346,457 C 273,457 209,483 155,535 101,586 74,649 74,723 74,796 101,859 155,911 209,963 273,989 346,989 419,989 480,963 531,910 582,859 608,796 608,723 608,648 583,586 532,535 482,483 420,457 346,457 Z"/>
112
+ </g>
113
+ <g id="bullet-char-template-8211" transform="scale(0.00048828125,-0.00048828125)">
114
+ <path d="M -4,459 L 1135,459 1135,606 -4,606 -4,459 Z"/>
115
+ </g>
116
+ <g id="bullet-char-template-61548" transform="scale(0.00048828125,-0.00048828125)">
117
+ <path d="M 173,740 C 173,903 231,1043 346,1159 462,1274 601,1332 765,1332 928,1332 1067,1274 1183,1159 1299,1043 1357,903 1357,740 1357,577 1299,437 1183,322 1067,206 928,148 765,148 601,148 462,206 346,322 231,437 173,577 173,740 Z"/>
118
+ </g>
119
+ </defs>
120
+ <defs class="TextEmbeddedBitmaps"/>
121
+ <defs>
122
+ <g id="dummy-master-page" ooo:name="dummy-master-page" class="Master_Slide">
123
+ <g id="bg-dummy-master-page" class="Background" visibility="hidden"/>
124
+ <g id="bo-dummy-master-page" class="BackgroundObjects" visibility="hidden"/>
125
+ </g>
126
+ <g id="id2" ooo:name="Default" class="Master_Slide">
127
+ <g id="bg-id2" class="Background">
128
+ <path fill="rgb(255,255,255)" stroke="none" d="M 14000,20999 L 0,20999 0,0 27999,0 27999,20999 14000,20999 Z"/>
129
+ </g>
130
+ <g id="bo-id2" class="BackgroundObjects">
131
+ <g visibility="hidden" ooo:text-adjust="left" class="Slide_Number">
132
+ <g id="id3">
133
+ <rect class="BoundingBox" stroke="none" fill="none" x="20076" y="19128" width="6506" height="1449"/>
134
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="20076" y="19591"><tspan class="PlaceholderText" fill="rgb(255,255,255)" stroke="none">&lt;number&gt;</tspan></tspan></tspan></text>
135
+ </g>
136
+ </g>
137
+ </g>
138
+ </g>
139
+ </defs>
140
+ <g class="DummySlide">
141
+ <g>
142
+ <g id="dummy-slide" class="Slide" clip-path="url(#presentation_clip_path)">
143
+ <g ooo:name="dummy-page" class="Page"/>
144
+ </g>
145
+ </g>
146
+ </g>
147
+ <g class="SlideGroup">
148
+ <g visibility="hidden">
149
+ <g id="container-id1">
150
+ <g id="id1" class="Slide" clip-path="url(#presentation_clip_path)">
151
+ <g ooo:name="page1" class="Page">
152
+ <g class="com.sun.star.drawing.LineShape">
153
+ <g id="id4">
154
+ <rect class="BoundingBox" stroke="none" fill="none" x="7184" y="10710" width="93" height="3178"/>
155
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 7232,10711 L 7228,13886"/>
156
+ </g>
157
+ </g>
158
+ <g class="com.sun.star.drawing.LineShape">
159
+ <g id="id5">
160
+ <rect class="BoundingBox" stroke="none" fill="none" x="20091" y="7324" width="93" height="3389"/>
161
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 20139,7325 L 20135,10711"/>
162
+ </g>
163
+ </g>
164
+ <g class="com.sun.star.drawing.LineShape">
165
+ <g id="id6">
166
+ <rect class="BoundingBox" stroke="none" fill="none" x="8236" y="7535" width="94" height="3178"/>
167
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 8285,7536 L 8280,10711"/>
168
+ </g>
169
+ </g>
170
+ <g class="com.sun.star.drawing.LineShape">
171
+ <g id="id7">
172
+ <rect class="BoundingBox" stroke="none" fill="none" x="23269" y="17272" width="94" height="1696"/>
173
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 23318,17273 L 23313,18966"/>
174
+ </g>
175
+ </g>
176
+ <g class="com.sun.star.drawing.LineShape">
177
+ <g id="id8">
178
+ <rect class="BoundingBox" stroke="none" fill="none" x="18402" y="17272" width="93" height="1696"/>
179
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 18450,17273 L 18446,18966"/>
180
+ </g>
181
+ </g>
182
+ <g class="com.sun.star.drawing.LineShape">
183
+ <g id="id9">
184
+ <rect class="BoundingBox" stroke="none" fill="none" x="13534" y="17272" width="93" height="1696"/>
185
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 13582,17273 L 13578,18966"/>
186
+ </g>
187
+ </g>
188
+ <g class="com.sun.star.drawing.LineShape">
189
+ <g id="id10">
190
+ <rect class="BoundingBox" stroke="none" fill="none" x="8454" y="17272" width="93" height="1696"/>
191
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 8502,17273 L 8498,18966"/>
192
+ </g>
193
+ </g>
194
+ <g class="com.sun.star.drawing.LineShape">
195
+ <g id="id11">
196
+ <rect class="BoundingBox" stroke="none" fill="none" x="3584" y="17272" width="94" height="1696"/>
197
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 3633,17273 L 3628,18966"/>
198
+ </g>
199
+ </g>
200
+ <g class="com.sun.star.drawing.LineShape">
201
+ <g id="id12">
202
+ <rect class="BoundingBox" stroke="none" fill="none" x="23694" y="13885" width="93" height="3390"/>
203
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 23742,13886 L 23738,17273"/>
204
+ </g>
205
+ </g>
206
+ <g class="com.sun.star.drawing.LineShape">
207
+ <g id="id13">
208
+ <rect class="BoundingBox" stroke="none" fill="none" x="17979" y="13885" width="93" height="3390"/>
209
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 18027,13886 L 18023,17273"/>
210
+ </g>
211
+ </g>
212
+ <g class="com.sun.star.drawing.LineShape">
213
+ <g id="id14">
214
+ <rect class="BoundingBox" stroke="none" fill="none" x="11204" y="13885" width="94" height="3390"/>
215
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 11253,13886 L 11248,17273"/>
216
+ </g>
217
+ </g>
218
+ <g class="com.sun.star.drawing.LineShape">
219
+ <g id="id15">
220
+ <rect class="BoundingBox" stroke="none" fill="none" x="4220" y="13886" width="89" height="3388"/>
221
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 4264,13886 L 4264,17273"/>
222
+ </g>
223
+ </g>
224
+ <g class="com.sun.star.drawing.LineShape">
225
+ <g id="id16">
226
+ <rect class="BoundingBox" stroke="none" fill="none" x="20307" y="10710" width="93" height="3178"/>
227
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 20355,10711 L 20351,13886"/>
228
+ </g>
229
+ </g>
230
+ <g class="TitleText">
231
+ <g id="id17">
232
+ <rect class="BoundingBox" stroke="none" fill="none" x="1512" y="340" width="25184" height="3490"/>
233
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="1552px" font-weight="400"><tspan class="TextPosition" x="4733" y="2509"><tspan fill="rgb(0,0,0)" stroke="none">Updated Scenario Diagram</tspan></tspan></tspan></text>
234
+ </g>
235
+ </g>
236
+ <g class="com.sun.star.drawing.CustomShape">
237
+ <g id="id18">
238
+ <rect class="BoundingBox" stroke="none" fill="none" x="863" y="3076" width="26272" height="4923"/>
239
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 3438,4858 C 2102,4892 1089,5169 1089,5500 1088,5729 1581,5940 2383,6056 L 2370,6049 C 1914,6168 1661,6324 1661,6487 1661,6842 2837,7129 4289,7129 4390,7129 4492,7127 4595,7124 L 4580,7129 C 5410,7484 6950,7704 8618,7704 9462,7703 10292,7647 11015,7540 L 11007,7541 C 11762,7818 13031,7985 14391,7985 16183,7985 17766,7696 18286,7275 L 18289,7281 C 18844,7365 19482,7410 20136,7410 22050,7410 23607,7032 23622,6564 L 23616,6562 C 25626,6491 27121,6070 27121,5572 27121,5352 26823,5138 26276,4963 L 26267,4963 C 26439,4865 26528,4759 26528,4652 26528,4296 25556,3985 24158,3891 L 24169,3890 C 23918,3549 22704,3302 21288,3302 20427,3302 19611,3394 19055,3554 L 19059,3555 C 18563,3395 17789,3302 16968,3302 15971,3302 15059,3440 14614,3658 L 14624,3669 C 14022,3524 13212,3442 12368,3442 11180,3442 10088,3603 9530,3861 L 9520,3866 C 8896,3776 8186,3729 7462,3729 5214,3729 3393,4175 3393,4726 3392,4770 3405,4815 3429,4860 L 3438,4858 Z"/>
240
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 2383,6056 C 2784,6114 3241,6144 3707,6144 3774,6144 3843,6144 3910,6142"/>
241
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 4595,7124 C 4824,7118 5048,7104 5263,7083"/>
242
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 10605,7352 C 10711,7418 10846,7482 11007,7541"/>
243
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 18286,7275 C 18369,7208 18422,7138 18446,7068"/>
244
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 23622,6564 C 23622,6562 23623,6559 23623,6557 23623,6231 22861,5933 21663,5790"/>
245
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 25395,5253 C 25773,5174 26071,5075 26267,4963"/>
246
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 24215,4027 C 24215,4023 24216,4020 24216,4016 24216,3974 24200,3931 24169,3890"/>
247
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 19055,3554 C 18873,3607 18722,3666 18609,3729"/>
248
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 14614,3658 C 14516,3706 14444,3757 14397,3809"/>
249
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 10304,4012 C 10067,3956 9805,3907 9520,3866"/>
250
+ <path fill="none" stroke="rgb(128,128,128)" stroke-width="26" stroke-linejoin="miter" d="M 3429,4860 C 3458,4912 3504,4963 3567,5014"/>
251
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 3226,4646 C 1890,4680 877,4957 877,5288 876,5517 1369,5728 2171,5844 L 2158,5837 C 1702,5956 1449,6112 1449,6275 1449,6630 2625,6917 4077,6917 4178,6917 4280,6915 4383,6912 L 4368,6917 C 5198,7272 6738,7492 8406,7492 9250,7491 10080,7435 10803,7328 L 10795,7329 C 11550,7606 12819,7773 14179,7773 15971,7773 17554,7484 18074,7063 L 18077,7069 C 18632,7153 19270,7198 19924,7198 21838,7198 23395,6820 23410,6352 L 23404,6350 C 25414,6279 26909,5858 26909,5360 26909,5140 26611,4926 26064,4751 L 26055,4751 C 26227,4653 26316,4547 26316,4440 26316,4084 25344,3773 23946,3679 L 23957,3678 C 23706,3337 22492,3090 21076,3090 20215,3090 19399,3182 18843,3342 L 18847,3343 C 18351,3183 17577,3090 16756,3090 15759,3090 14847,3228 14402,3446 L 14412,3457 C 13810,3312 13000,3230 12156,3230 10968,3230 9876,3391 9318,3649 L 9308,3654 C 8684,3564 7974,3517 7250,3517 5002,3517 3181,3963 3181,4514 3180,4558 3193,4603 3217,4648 L 3226,4646 Z"/>
252
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 2171,5844 C 2572,5902 3029,5932 3495,5932 3562,5932 3631,5932 3698,5930"/>
253
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 4383,6912 C 4612,6906 4836,6892 5051,6871"/>
254
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 10393,7140 C 10499,7206 10634,7270 10795,7329"/>
255
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 18074,7063 C 18157,6996 18210,6926 18234,6856"/>
256
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 23410,6352 C 23410,6350 23411,6347 23411,6345 23411,6019 22649,5721 21451,5578"/>
257
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 25183,5041 C 25561,4962 25859,4863 26055,4751"/>
258
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 24003,3815 C 24003,3811 24004,3808 24004,3804 24004,3762 23988,3719 23957,3678"/>
259
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 18843,3342 C 18661,3395 18510,3454 18397,3517"/>
260
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 14402,3446 C 14304,3494 14232,3545 14185,3597"/>
261
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 10092,3800 C 9855,3744 9593,3695 9308,3654"/>
262
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 3217,4648 C 3246,4700 3292,4751 3355,4802"/>
263
+ </g>
264
+ </g>
265
+ <g class="com.sun.star.drawing.CustomShape">
266
+ <g id="id19">
267
+ <rect class="BoundingBox" stroke="none" fill="none" x="7780" y="4915" width="11481" height="732"/>
268
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="988px" font-weight="400"><tspan class="TextPosition" x="7688" y="5634"><tspan fill="rgb(0,0,0)" stroke="none">IPv6 Clients in the Internet</tspan></tspan></tspan></text>
269
+ </g>
270
+ </g>
271
+ <g class="com.sun.star.drawing.CustomShape">
272
+ <g id="id20">
273
+ <rect class="BoundingBox" stroke="none" fill="none" x="6556" y="17871" width="4094" height="2190"/>
274
+ <path fill="rgb(255,255,255)" stroke="none" d="M 8603,20024 L 6592,20024 6592,17907 10613,17907 10613,20024 8603,20024 Z"/>
275
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 8603,20024 L 6592,20024 6592,17907 10613,17907 10613,20024 8603,20024 Z"/>
276
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="7500" y="18811"><tspan fill="rgb(0,0,0)" stroke="none">HTTP</tspan></tspan><tspan class="TextPosition" x="7426" y="19583"><tspan fill="rgb(0,0,0)" stroke="none">server</tspan></tspan></tspan></text>
277
+ </g>
278
+ </g>
279
+ <g class="com.sun.star.drawing.CustomShape">
280
+ <g id="id21">
281
+ <rect class="BoundingBox" stroke="none" fill="none" x="17352" y="11310" width="6423" height="1767"/>
282
+ <path fill="rgb(255,255,255)" stroke="none" d="M 20563,13040 L 17388,13040 17388,11346 23738,11346 23738,13040 20563,13040 Z"/>
283
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 20563,13040 L 17388,13040 17388,11346 23738,11346 23738,13040 20563,13040 Z"/>
284
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="17765" y="12424"><tspan fill="rgb(0,0,0)" stroke="none">L3/L4 balancer</tspan></tspan></tspan></text>
285
+ </g>
286
+ </g>
287
+ <g class="com.sun.star.drawing.CustomShape">
288
+ <g id="id22">
289
+ <rect class="BoundingBox" stroke="none" fill="none" x="8885" y="14696" width="5153" height="1766"/>
290
+ <path fill="rgb(255,255,255)" stroke="none" d="M 11461,16425 L 8921,16425 8921,14732 14001,14732 14001,16425 11461,16425 Z"/>
291
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 11461,16425 L 8921,16425 8921,14732 14001,14732 14001,16425 11461,16425 Z"/>
292
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="9205" y="15810"><tspan fill="rgb(0,0,0)" stroke="none">HTTP proxy</tspan></tspan></tspan></text>
293
+ </g>
294
+ </g>
295
+ <g class="com.sun.star.drawing.CustomShape">
296
+ <g id="id23">
297
+ <rect class="BoundingBox" stroke="none" fill="none" x="5287" y="8135" width="6423" height="1767"/>
298
+ <path fill="rgb(255,255,255)" stroke="none" d="M 8498,9865 L 5323,9865 5323,8171 11673,8171 11673,9865 8498,9865 Z"/>
299
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 8498,9865 L 5323,9865 5323,8171 11673,8171 11673,9865 8498,9865 Z"/>
300
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="5884" y="9249"><tspan fill="rgb(0,0,0)" stroke="none">Ingress router</tspan></tspan></tspan></text>
301
+ </g>
302
+ </g>
303
+ <g class="com.sun.star.drawing.CustomShape">
304
+ <g id="id24">
305
+ <rect class="BoundingBox" stroke="none" fill="none" x="21796" y="14696" width="4518" height="1766"/>
306
+ <path fill="rgb(255,255,255)" stroke="none" d="M 24055,16425 L 21832,16425 21832,14732 26277,14732 26277,16425 24055,16425 Z"/>
307
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 24055,16425 L 21832,16425 21832,14732 26277,14732 26277,16425 24055,16425 Z"/>
308
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="22126" y="15810"><tspan fill="rgb(0,0,0)" stroke="none">TLS proxy</tspan></tspan></tspan></text>
309
+ </g>
310
+ </g>
311
+ <g class="com.sun.star.drawing.CustomShape">
312
+ <g id="id25">
313
+ <rect class="BoundingBox" stroke="none" fill="none" x="1688" y="14696" width="5153" height="1766"/>
314
+ <path fill="rgb(255,255,255)" stroke="none" d="M 4264,16425 L 1724,16425 1724,14732 6804,14732 6804,16425 4264,16425 Z"/>
315
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 4264,16425 L 1724,16425 1724,14732 6804,14732 6804,16425 4264,16425 Z"/>
316
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="2008" y="15810"><tspan fill="rgb(0,0,0)" stroke="none">HTTP proxy</tspan></tspan></tspan></text>
317
+ </g>
318
+ </g>
319
+ <g class="com.sun.star.drawing.CustomShape">
320
+ <g id="id26">
321
+ <rect class="BoundingBox" stroke="none" fill="none" x="15869" y="14696" width="4518" height="1766"/>
322
+ <path fill="rgb(255,255,255)" stroke="none" d="M 18128,16425 L 15905,16425 15905,14732 20350,14732 20350,16425 18128,16425 Z"/>
323
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 18128,16425 L 15905,16425 15905,14732 20350,14732 20350,16425 18128,16425 Z"/>
324
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="16199" y="15810"><tspan fill="rgb(0,0,0)" stroke="none">TLS proxy</tspan></tspan></tspan></text>
325
+ </g>
326
+ </g>
327
+ <g class="com.sun.star.drawing.CustomShape">
328
+ <g id="id27">
329
+ <rect class="BoundingBox" stroke="none" fill="none" x="4017" y="11310" width="6423" height="1767"/>
330
+ <path fill="rgb(255,255,255)" stroke="none" d="M 7228,13040 L 4053,13040 4053,11346 10403,11346 10403,13040 7228,13040 Z"/>
331
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 7228,13040 L 4053,13040 4053,11346 10403,11346 10403,13040 7228,13040 Z"/>
332
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="4430" y="12424"><tspan fill="rgb(0,0,0)" stroke="none">L3/L4 balancer</tspan></tspan></tspan></text>
333
+ </g>
334
+ </g>
335
+ <g class="com.sun.star.drawing.CustomShape">
336
+ <g id="id28">
337
+ <rect class="BoundingBox" stroke="none" fill="none" x="11425" y="17871" width="4095" height="2190"/>
338
+ <path fill="rgb(255,255,255)" stroke="none" d="M 13472,20024 L 11461,20024 11461,17907 15483,17907 15483,20024 13472,20024 Z"/>
339
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 13472,20024 L 11461,20024 11461,17907 15483,17907 15483,20024 13472,20024 Z"/>
340
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="12369" y="18811"><tspan fill="rgb(0,0,0)" stroke="none">HTTP</tspan></tspan><tspan class="TextPosition" x="12295" y="19583"><tspan fill="rgb(0,0,0)" stroke="none">server</tspan></tspan></tspan></text>
341
+ </g>
342
+ </g>
343
+ <g class="com.sun.star.drawing.CustomShape">
344
+ <g id="id29">
345
+ <rect class="BoundingBox" stroke="none" fill="none" x="16293" y="17871" width="4095" height="2190"/>
346
+ <path fill="rgb(255,255,255)" stroke="none" d="M 18340,20024 L 16329,20024 16329,17907 20351,17907 20351,20024 18340,20024 Z"/>
347
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 18340,20024 L 16329,20024 16329,17907 20351,17907 20351,20024 18340,20024 Z"/>
348
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="17237" y="18811"><tspan fill="rgb(0,0,0)" stroke="none">HTTP</tspan></tspan><tspan class="TextPosition" x="17163" y="19583"><tspan fill="rgb(0,0,0)" stroke="none">server</tspan></tspan></tspan></text>
349
+ </g>
350
+ </g>
351
+ <g class="com.sun.star.drawing.CustomShape">
352
+ <g id="id30">
353
+ <rect class="BoundingBox" stroke="none" fill="none" x="21373" y="17871" width="4095" height="2190"/>
354
+ <path fill="rgb(255,255,255)" stroke="none" d="M 23420,20024 L 21409,20024 21409,17907 25431,17907 25431,20024 23420,20024 Z"/>
355
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 23420,20024 L 21409,20024 21409,17907 25431,17907 25431,20024 23420,20024 Z"/>
356
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="22317" y="18811"><tspan fill="rgb(0,0,0)" stroke="none">HTTP</tspan></tspan><tspan class="TextPosition" x="22243" y="19583"><tspan fill="rgb(0,0,0)" stroke="none">server</tspan></tspan></tspan></text>
357
+ </g>
358
+ </g>
359
+ <g class="com.sun.star.drawing.CustomShape">
360
+ <g id="id31">
361
+ <rect class="BoundingBox" stroke="none" fill="none" x="1688" y="17871" width="4095" height="2190"/>
362
+ <path fill="rgb(255,255,255)" stroke="none" d="M 3735,20024 L 1724,20024 1724,17907 5746,17907 5746,20024 3735,20024 Z"/>
363
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 3735,20024 L 1724,20024 1724,17907 5746,17907 5746,20024 3735,20024 Z"/>
364
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="2632" y="18811"><tspan fill="rgb(0,0,0)" stroke="none">HTTP</tspan></tspan><tspan class="TextPosition" x="2558" y="19583"><tspan fill="rgb(0,0,0)" stroke="none">server</tspan></tspan></tspan></text>
365
+ </g>
366
+ </g>
367
+ <g class="com.sun.star.drawing.LineShape">
368
+ <g id="id32">
369
+ <rect class="BoundingBox" stroke="none" fill="none" x="4052" y="13842" width="19899" height="94"/>
370
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 4053,13886 L 23949,13891"/>
371
+ </g>
372
+ </g>
373
+ <g class="com.sun.star.drawing.LineShape">
374
+ <g id="id33">
375
+ <rect class="BoundingBox" stroke="none" fill="none" x="1723" y="17229" width="24345" height="93"/>
376
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 1724,17273 L 26066,17277"/>
377
+ </g>
378
+ </g>
379
+ <g class="com.sun.star.drawing.LineShape">
380
+ <g id="id34">
381
+ <rect class="BoundingBox" stroke="none" fill="none" x="5533" y="10667" width="16513" height="94"/>
382
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="88" stroke-linejoin="miter" d="M 5534,10711 L 22044,10716"/>
383
+ </g>
384
+ </g>
385
+ <g class="com.sun.star.drawing.LineShape">
386
+ <g id="id35">
387
+ <rect class="BoundingBox" stroke="none" fill="none" x="7427" y="10700" width="26" height="26"/>
388
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="miter" d="M 7437,10715 L 7442,10710"/>
389
+ </g>
390
+ </g>
391
+ <g class="com.sun.star.drawing.CustomShape">
392
+ <g id="id36">
393
+ <rect class="BoundingBox" stroke="none" fill="none" x="11835" y="8512" width="4950" height="1176"/>
394
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="12682" y="8975"><tspan fill="rgb(0,0,0)" stroke="none">DNS-based</tspan></tspan><tspan class="TextPosition" x="11835" y="9554"><tspan fill="rgb(0,0,0)" stroke="none"> ←load splitting→</tspan></tspan></tspan></text>
395
+ </g>
396
+ </g>
397
+ <g class="com.sun.star.drawing.CustomShape">
398
+ <g id="id37">
399
+ <rect class="BoundingBox" stroke="none" fill="none" x="20388" y="15785" width="1310" height="115"/>
400
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="20388" y="15898"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan><tspan font-size="1129px" fill="rgb(0,0,0)" stroke="none">…</tspan><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan></tspan></text>
401
+ </g>
402
+ </g>
403
+ <g class="com.sun.star.drawing.CustomShape">
404
+ <g id="id38">
405
+ <rect class="BoundingBox" stroke="none" fill="none" x="249" y="18960" width="1310" height="115"/>
406
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="249" y="19073"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan><tspan font-size="1129px" fill="rgb(0,0,0)" stroke="none">…</tspan><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan></tspan></text>
407
+ </g>
408
+ </g>
409
+ <g class="com.sun.star.drawing.CustomShape">
410
+ <g id="id39">
411
+ <rect class="BoundingBox" stroke="none" fill="none" x="25532" y="19040" width="1310" height="115"/>
412
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="25532" y="19153"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan><tspan font-size="1129px" fill="rgb(0,0,0)" stroke="none">…</tspan><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan></tspan></text>
413
+ </g>
414
+ </g>
415
+ <g class="com.sun.star.drawing.CustomShape">
416
+ <g id="id40">
417
+ <rect class="BoundingBox" stroke="none" fill="none" x="7265" y="15573" width="1310" height="115"/>
418
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="635px" font-weight="400"><tspan class="TextPosition" x="7265" y="15686"><tspan fill="rgb(0,0,0)" stroke="none"> </tspan><tspan font-size="1129px" fill="rgb(0,0,0)" stroke="none">…</tspan><tspan fill="rgb(0,0,0)" stroke="none"> </tspan></tspan></tspan></text>
419
+ </g>
420
+ </g>
421
+ <g class="com.sun.star.drawing.CustomShape">
422
+ <g id="id41">
423
+ <rect class="BoundingBox" stroke="none" fill="none" x="17140" y="8135" width="6423" height="1767"/>
424
+ <path fill="rgb(255,255,255)" stroke="none" d="M 20351,9865 L 17176,9865 17176,8171 23526,8171 23526,9865 20351,9865 Z"/>
425
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="71" stroke-linejoin="miter" d="M 20351,9865 L 17176,9865 17176,8171 23526,8171 23526,9865 20351,9865 Z"/>
426
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="17737" y="9249"><tspan fill="rgb(0,0,0)" stroke="none">Ingress router</tspan></tspan></tspan></text>
427
+ </g>
428
+ </g>
429
+ <g class="com.sun.star.drawing.CustomShape">
430
+ <g id="id42">
431
+ <rect class="BoundingBox" stroke="none" fill="none" x="11236" y="10910" width="6104" height="2568"/>
432
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="round" d="M 12093,10923 C 11671,10923 11249,11134 11249,11345 L 11249,11661 11249,11978 11249,12408 11249,12725 11249,13041 C 11249,13252 11671,13464 12093,13464 L 12726,13464 13359,13464 14219,13464 14852,13464 15485,13464 C 15907,13464 16330,13252 16330,13041 L 16330,12725 16330,12408 16330,11978 17326,12165 16330,11345 C 16330,11134 15907,10923 15485,10923 L 14852,10923 14219,10923 13359,10923 12726,10923 12093,10923 Z"/>
433
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="11687" y="11764"><tspan fill="rgb(255,255,255)" stroke="none">Possible </tspan></tspan><tspan class="TextPosition" x="11687" y="12536"><tspan fill="rgb(255,255,255)" stroke="none">flow label </tspan></tspan><tspan class="TextPosition" x="11687" y="13308"><tspan fill="rgb(255,255,255)" stroke="none">use</tspan></tspan></tspan></text>
434
+ </g>
435
+ </g>
436
+ <g class="com.sun.star.drawing.CustomShape">
437
+ <g id="id43">
438
+ <rect class="BoundingBox" stroke="no—ne" fill="none" x="10349" y="10910" width="5995" height="2568"/>
439
+ <path fill="none" stroke="rgb(0,0,0)" stroke-width="26" stroke-linejoin="round" d="M 12093,10923 C 11671,10923 11249,11134 11249,11345 L 10362,12165 11249,11978 11249,12408 11249,12725 11249,13041 C 11249,13252 11671,13464 12093,13464 L 12726,13464 13359,13464 14219,13464 14852,13464 15485,13464 C 15907,13464 16330,13252 16330,13041 L 16330,12725 16330,12408 16330,11978 16330,11661 16330,11345 C 16330,11134 15907,10923 15485,10923 L 14852,10923 14219,10923 13359,10923 12726,10923 12093,10923 Z"/>
440
+ <text class="TextShape"><tspan class="TextParagraph" font-family="Arial, sans-serif" font-size="847px" font-weight="400"><tspan class="TextPosition" x="11687" y="11764"><tspan fill="rgb(0,0,0)" stroke="none">Possible </tspan></tspan><tspan class="TextPosition" x="11687" y="12536"><tspan fill="rgb(0,0,0)" stroke="none">flow label </tspan></tspan><tspan class="TextPosition" x="11687" y="13308"><tspan fill="rgb(0,0,0)" stroke="none">use</tspan></tspan></tspan></text>
441
+ </g>
442
+ </g>
443
+ </g>
444
+ </g>
445
+ </g>
446
+ </g>
447
+ </g>
448
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg height="100" width="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg height="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg datatype="foobar" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="100" datatype="foobar" xmlns="http://www.w3.org/2000/svg">
2
+ <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red"/>
3
+ </svg>
@@ -0,0 +1,23 @@
1
+ Tests/DrawBerry-sample-2.svg:14: Element 'g' does not allow attributes with namespace 'http://www.inkscape.org/namespaces/inkscape'
2
+ Tests/DrawBerry-sample-2.svg:14: Element 'g' does not allow attributes with namespace 'http://www.inkscape.org/namespaces/inkscape'
3
+ Tests/DrawBerry-sample-2.svg:16: Style property 'fill' promoted to attribute
4
+ Tests/DrawBerry-sample-2.svg:16: Style property 'stroke' promoted to attribute
5
+ Tests/DrawBerry-sample-2.svg:16: Style property 'stroke-width' promoted to attribute
6
+ Tests/DrawBerry-sample-2.svg:16: Style property 'stroke-opacity' promoted to attribute
7
+ Tests/DrawBerry-sample-2.svg:16: Style property 'stroke-linecap' promoted to attribute
8
+ Tests/DrawBerry-sample-2.svg:16: Style property 'stroke-linejoin' promoted to attribute
9
+ Tests/DrawBerry-sample-2.svg:18: Style property 'fill' promoted to attribute
10
+ Tests/DrawBerry-sample-2.svg:18: Style property 'stroke' promoted to attribute
11
+ Tests/DrawBerry-sample-2.svg:18: Style property 'stroke-width' promoted to attribute
12
+ Tests/DrawBerry-sample-2.svg:18: Style property 'stroke-opacity' promoted to attribute
13
+ Tests/DrawBerry-sample-2.svg:18: Style property 'stroke-linecap' promoted to attribute
14
+ Tests/DrawBerry-sample-2.svg:18: Style property 'stroke-linejoin' promoted to attribute
15
+ Tests/DrawBerry-sample-2.svg:20: Style property 'fill' promoted to attribute
16
+ Tests/DrawBerry-sample-2.svg:20: Style property 'stroke' promoted to attribute
17
+ Tests/DrawBerry-sample-2.svg:22: Style property 'fill' promoted to attribute
18
+ Tests/DrawBerry-sample-2.svg:22: Style property 'stroke' promoted to attribute
19
+ Tests/DrawBerry-sample-2.svg:24: Style property 'fill' promoted to attribute
20
+ Tests/DrawBerry-sample-2.svg:24: Style property 'stroke' promoted to attribute
21
+ Tests/DrawBerry-sample-2.svg:26: Style property 'fill' promoted to attribute
22
+ Tests/DrawBerry-sample-2.svg:26: Style property 'stroke' promoted to attribute
23
+ INFO: File conforms to SVG requirements.
File without changes